@cdklabs/cdk-ecs-codedeploy 0.0.432 → 0.0.434

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 (274) hide show
  1. package/.jsii +3 -3
  2. package/.jsii.tabl.json +1 -1
  3. package/lib/api-canary/index.js +1 -1
  4. package/lib/ecs-appspec/index.js +1 -1
  5. package/lib/ecs-deployment/index.js +1 -1
  6. package/lib/ecs-patterns/application-load-balanced-codedeployed-fargate-service.js +1 -1
  7. package/node_modules/@aws/lambda-invoke-store/dist-cjs/invoke-store.js +2 -2
  8. package/node_modules/@aws/lambda-invoke-store/dist-es/invoke-store.js +2 -2
  9. package/node_modules/@aws/lambda-invoke-store/dist-types/invoke-store.d.ts +1 -1
  10. package/node_modules/@aws/lambda-invoke-store/package.json +1 -1
  11. package/node_modules/@aws-sdk/client-codedeploy/README.md +26 -46
  12. package/node_modules/@aws-sdk/client-codedeploy/package.json +34 -34
  13. package/node_modules/@aws-sdk/core/dist-cjs/index.js +4 -0
  14. package/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js +4 -0
  15. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/index.js +2 -0
  16. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/query/AwsEc2QueryProtocol.js +3 -0
  17. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/index.d.ts +2 -0
  18. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/query/AwsEc2QueryProtocol.d.ts +4 -0
  19. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/query/QuerySerializerSettings.d.ts +3 -0
  20. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/index.d.ts +2 -0
  21. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/query/AwsEc2QueryProtocol.d.ts +1 -0
  22. package/node_modules/@aws-sdk/core/package.json +11 -11
  23. package/node_modules/@aws-sdk/credential-provider-env/package.json +5 -5
  24. package/node_modules/@aws-sdk/credential-provider-http/package.json +10 -10
  25. package/node_modules/@aws-sdk/credential-provider-ini/package.json +14 -14
  26. package/node_modules/@aws-sdk/credential-provider-login/package.json +8 -8
  27. package/node_modules/@aws-sdk/credential-provider-node/package.json +12 -12
  28. package/node_modules/@aws-sdk/credential-provider-process/package.json +6 -6
  29. package/node_modules/@aws-sdk/credential-provider-sso/package.json +8 -8
  30. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +7 -7
  31. package/node_modules/@aws-sdk/middleware-host-header/package.json +4 -4
  32. package/node_modules/@aws-sdk/middleware-logger/package.json +3 -3
  33. package/node_modules/@aws-sdk/middleware-recursion-detection/package.json +4 -4
  34. package/node_modules/@aws-sdk/middleware-user-agent/package.json +8 -8
  35. package/node_modules/@aws-sdk/nested-clients/package.json +32 -32
  36. package/node_modules/@aws-sdk/region-config-resolver/package.json +5 -5
  37. package/node_modules/@aws-sdk/token-providers/package.json +7 -7
  38. package/node_modules/@aws-sdk/types/package.json +2 -2
  39. package/node_modules/@aws-sdk/util-endpoints/package.json +5 -5
  40. package/node_modules/@aws-sdk/util-user-agent-browser/package.json +3 -3
  41. package/node_modules/@aws-sdk/util-user-agent-node/dist-cjs/index.js +75 -19
  42. package/node_modules/@aws-sdk/util-user-agent-node/dist-es/getNodeModulesParentDirs.js +15 -0
  43. package/node_modules/@aws-sdk/util-user-agent-node/dist-es/getSanitizedDevTypeScriptVersion.js +14 -0
  44. package/node_modules/@aws-sdk/util-user-agent-node/dist-es/getTypeScriptUserAgentPair.js +53 -7
  45. package/node_modules/@aws-sdk/util-user-agent-node/dist-types/{getTypeScriptPackageJsonPaths.d.ts → getNodeModulesParentDirs.d.ts} +2 -2
  46. package/node_modules/@aws-sdk/util-user-agent-node/dist-types/getSanitizedDevTypeScriptVersion.d.ts +8 -0
  47. package/node_modules/@aws-sdk/util-user-agent-node/dist-types/ts3.4/getNodeModulesParentDirs.d.ts +1 -0
  48. package/node_modules/@aws-sdk/util-user-agent-node/dist-types/ts3.4/getSanitizedDevTypeScriptVersion.d.ts +3 -0
  49. package/node_modules/@aws-sdk/util-user-agent-node/package.json +6 -5
  50. package/node_modules/@aws-sdk/xml-builder/dist-cjs/index.js +21 -11
  51. package/node_modules/@aws-sdk/xml-builder/dist-cjs/xml-parser.js +5 -1
  52. package/node_modules/@aws-sdk/xml-builder/dist-es/escape-attribute.js +8 -1
  53. package/node_modules/@aws-sdk/xml-builder/dist-es/escape-element.js +13 -10
  54. package/node_modules/@aws-sdk/xml-builder/dist-es/xml-parser.js +5 -1
  55. package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/CHANGELOG.md +40 -4
  56. package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/README.md +8 -7
  57. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxbuilder.min.js +2 -0
  58. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxbuilder.min.js.map +1 -0
  59. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxp.cjs +1 -0
  60. package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/lib/fxp.d.cts +82 -20
  61. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxp.min.js +2 -0
  62. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxp.min.js.map +1 -0
  63. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxparser.min.js +2 -0
  64. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxparser.min.js.map +1 -0
  65. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxvalidator.min.js.map +1 -0
  66. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/pem.d.cts +148 -0
  67. package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/package.json +4 -3
  68. package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/src/fxp.d.ts +75 -19
  69. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/pem.d.ts +135 -0
  70. package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/src/util.js +18 -0
  71. package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/src/xmlparser/DocTypeReader.js +37 -18
  72. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/OptionsBuilder.js +159 -0
  73. package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/src/xmlparser/OrderedObjParser.js +298 -116
  74. package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/src/xmlparser/XMLParser.js +2 -2
  75. package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/src/xmlparser/node2json.js +65 -15
  76. package/node_modules/{strnum → @aws-sdk/xml-builder/node_modules/strnum}/CHANGELOG.md +9 -2
  77. package/node_modules/{strnum → @aws-sdk/xml-builder/node_modules/strnum}/package.json +1 -1
  78. package/node_modules/{strnum → @aws-sdk/xml-builder/node_modules/strnum}/strnum.js +12 -6
  79. package/node_modules/{strnum → @aws-sdk/xml-builder/node_modules/strnum}/tests/strnum_test.js +3 -0
  80. package/node_modules/@aws-sdk/xml-builder/node_modules/strnum/tests/temp.js +8 -0
  81. package/node_modules/@aws-sdk/xml-builder/package.json +3 -3
  82. package/node_modules/@smithy/abort-controller/package.json +2 -2
  83. package/node_modules/@smithy/config-resolver/dist-cjs/index.js +12 -0
  84. package/node_modules/@smithy/config-resolver/dist-es/endpointsConfig/NodeUseDualstackEndpointConfigOptions.js +5 -0
  85. package/node_modules/@smithy/config-resolver/dist-es/endpointsConfig/NodeUseFipsEndpointConfigOptions.js +5 -0
  86. package/node_modules/@smithy/config-resolver/dist-types/endpointsConfig/NodeUseDualstackEndpointConfigOptions.d.ts +6 -0
  87. package/node_modules/@smithy/config-resolver/dist-types/endpointsConfig/NodeUseFipsEndpointConfigOptions.d.ts +6 -0
  88. package/node_modules/@smithy/config-resolver/dist-types/ts3.4/endpointsConfig/NodeUseDualstackEndpointConfigOptions.d.ts +6 -0
  89. package/node_modules/@smithy/config-resolver/dist-types/ts3.4/endpointsConfig/NodeUseFipsEndpointConfigOptions.d.ts +6 -0
  90. package/node_modules/@smithy/config-resolver/package.json +5 -5
  91. package/node_modules/@smithy/core/dist-cjs/index.js +1 -2
  92. package/node_modules/@smithy/core/dist-cjs/submodules/cbor/index.js +7 -1
  93. package/node_modules/@smithy/core/dist-cjs/submodules/endpoints/index.js +22 -0
  94. package/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +11 -1
  95. package/node_modules/@smithy/core/dist-cjs/submodules/schema/index.js +41 -4
  96. package/node_modules/@smithy/core/dist-es/middleware-http-auth-scheme/getHttpAuthSchemePlugin.js +1 -2
  97. package/node_modules/@smithy/core/dist-es/submodules/cbor/parseCborBody.js +7 -1
  98. package/node_modules/@smithy/core/dist-es/submodules/endpoints/index.js +1 -0
  99. package/node_modules/@smithy/core/dist-es/submodules/endpoints/toEndpointV1.js +17 -0
  100. package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpProtocol.js +10 -0
  101. package/node_modules/@smithy/core/dist-es/submodules/protocols/RpcProtocol.js +1 -1
  102. package/node_modules/@smithy/core/dist-es/submodules/schema/middleware/schemaSerializationMiddleware.js +3 -2
  103. package/node_modules/@smithy/core/dist-es/submodules/schema/schemas/NormalizedSchema.js +30 -1
  104. package/node_modules/@smithy/core/dist-es/submodules/schema/schemas/translateTraits.js +5 -1
  105. package/node_modules/@smithy/core/dist-types/submodules/endpoints/index.d.ts +1 -0
  106. package/node_modules/@smithy/core/dist-types/submodules/endpoints/toEndpointV1.d.ts +6 -0
  107. package/node_modules/@smithy/core/dist-types/submodules/schema/schemas/NormalizedSchema.d.ts +11 -0
  108. package/node_modules/@smithy/core/dist-types/submodules/schema/schemas/translateTraits.d.ts +6 -0
  109. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/endpoints/index.d.ts +1 -0
  110. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/endpoints/toEndpointV1.d.ts +6 -0
  111. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/schema/schemas/NormalizedSchema.d.ts +11 -0
  112. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/schema/schemas/translateTraits.d.ts +6 -0
  113. package/node_modules/@smithy/core/endpoints.d.ts +7 -0
  114. package/node_modules/@smithy/core/endpoints.js +6 -0
  115. package/node_modules/@smithy/core/package.json +16 -7
  116. package/node_modules/@smithy/credential-provider-imds/package.json +5 -5
  117. package/node_modules/@smithy/fetch-http-handler/dist-cjs/index.js +4 -1
  118. package/node_modules/@smithy/fetch-http-handler/dist-es/fetch-http-handler.js +4 -1
  119. package/node_modules/@smithy/fetch-http-handler/package.json +5 -5
  120. package/node_modules/@smithy/hash-node/package.json +2 -2
  121. package/node_modules/@smithy/invalid-dependency/package.json +2 -2
  122. package/node_modules/@smithy/middleware-content-length/package.json +3 -3
  123. package/node_modules/@smithy/middleware-endpoint/dist-cjs/index.js +17 -1
  124. package/node_modules/@smithy/middleware-endpoint/dist-es/adaptors/getEndpointFromInstructions.js +9 -0
  125. package/node_modules/@smithy/middleware-endpoint/dist-es/adaptors/toEndpointV1.js +8 -1
  126. package/node_modules/@smithy/middleware-endpoint/dist-types/adaptors/toEndpointV1.d.ts +1 -0
  127. package/node_modules/@smithy/middleware-endpoint/dist-types/resolveEndpointConfig.d.ts +2 -2
  128. package/node_modules/@smithy/middleware-endpoint/dist-types/ts3.4/adaptors/toEndpointV1.d.ts +1 -0
  129. package/node_modules/@smithy/middleware-endpoint/dist-types/ts3.4/resolveEndpointConfig.d.ts +2 -2
  130. package/node_modules/@smithy/middleware-endpoint/package.json +8 -8
  131. package/node_modules/@smithy/middleware-retry/dist-cjs/index.js +9 -12
  132. package/node_modules/@smithy/middleware-retry/dist-es/configurations.js +9 -12
  133. package/node_modules/@smithy/middleware-retry/package.json +8 -8
  134. package/node_modules/@smithy/middleware-serde/dist-cjs/index.js +3 -2
  135. package/node_modules/@smithy/middleware-serde/dist-es/serializerMiddleware.js +3 -2
  136. package/node_modules/@smithy/middleware-serde/package.json +4 -3
  137. package/node_modules/@smithy/middleware-stack/package.json +2 -2
  138. package/node_modules/@smithy/node-config-provider/package.json +4 -4
  139. package/node_modules/@smithy/node-http-handler/dist-cjs/index.js +48 -38
  140. package/node_modules/@smithy/node-http-handler/dist-es/build-abort-error.js +4 -1
  141. package/node_modules/@smithy/node-http-handler/dist-es/node-http-handler.js +38 -31
  142. package/node_modules/@smithy/node-http-handler/dist-es/node-http2-connection-manager.js +1 -1
  143. package/node_modules/@smithy/node-http-handler/dist-es/node-http2-handler.js +1 -1
  144. package/node_modules/@smithy/node-http-handler/dist-es/readable.mock.js +1 -1
  145. package/node_modules/@smithy/node-http-handler/dist-es/server.mock.js +6 -6
  146. package/node_modules/@smithy/node-http-handler/dist-es/stream-collector/collector.js +1 -1
  147. package/node_modules/@smithy/node-http-handler/dist-es/stream-collector/readable.mock.js +1 -1
  148. package/node_modules/@smithy/node-http-handler/dist-es/write-request-body.js +1 -1
  149. package/node_modules/@smithy/node-http-handler/dist-types/build-abort-error.d.ts +4 -3
  150. package/node_modules/@smithy/node-http-handler/dist-types/get-transformed-headers.d.ts +1 -1
  151. package/node_modules/@smithy/node-http-handler/dist-types/node-http-handler.d.ts +4 -4
  152. package/node_modules/@smithy/node-http-handler/dist-types/node-http2-connection-manager.d.ts +1 -1
  153. package/node_modules/@smithy/node-http-handler/dist-types/node-http2-connection-pool.d.ts +1 -1
  154. package/node_modules/@smithy/node-http-handler/dist-types/readable.mock.d.ts +2 -2
  155. package/node_modules/@smithy/node-http-handler/dist-types/server.mock.d.ts +3 -3
  156. package/node_modules/@smithy/node-http-handler/dist-types/set-connection-timeout.d.ts +1 -1
  157. package/node_modules/@smithy/node-http-handler/dist-types/set-request-timeout.d.ts +1 -1
  158. package/node_modules/@smithy/node-http-handler/dist-types/set-socket-keep-alive.d.ts +1 -1
  159. package/node_modules/@smithy/node-http-handler/dist-types/set-socket-timeout.d.ts +1 -1
  160. package/node_modules/@smithy/node-http-handler/dist-types/stream-collector/collector.d.ts +1 -1
  161. package/node_modules/@smithy/node-http-handler/dist-types/stream-collector/readable.mock.d.ts +2 -2
  162. package/node_modules/@smithy/node-http-handler/dist-types/ts3.4/build-abort-error.d.ts +4 -3
  163. package/node_modules/@smithy/node-http-handler/dist-types/ts3.4/get-transformed-headers.d.ts +1 -1
  164. package/node_modules/@smithy/node-http-handler/dist-types/ts3.4/node-http-handler.d.ts +4 -4
  165. package/node_modules/@smithy/node-http-handler/dist-types/ts3.4/node-http2-connection-manager.d.ts +1 -1
  166. package/node_modules/@smithy/node-http-handler/dist-types/ts3.4/node-http2-connection-pool.d.ts +1 -1
  167. package/node_modules/@smithy/node-http-handler/dist-types/ts3.4/readable.mock.d.ts +2 -2
  168. package/node_modules/@smithy/node-http-handler/dist-types/ts3.4/server.mock.d.ts +3 -3
  169. package/node_modules/@smithy/node-http-handler/dist-types/ts3.4/set-connection-timeout.d.ts +1 -1
  170. package/node_modules/@smithy/node-http-handler/dist-types/ts3.4/set-request-timeout.d.ts +1 -1
  171. package/node_modules/@smithy/node-http-handler/dist-types/ts3.4/set-socket-keep-alive.d.ts +1 -1
  172. package/node_modules/@smithy/node-http-handler/dist-types/ts3.4/set-socket-timeout.d.ts +1 -1
  173. package/node_modules/@smithy/node-http-handler/dist-types/ts3.4/stream-collector/collector.d.ts +1 -1
  174. package/node_modules/@smithy/node-http-handler/dist-types/ts3.4/stream-collector/readable.mock.d.ts +2 -2
  175. package/node_modules/@smithy/node-http-handler/dist-types/ts3.4/write-request-body.d.ts +2 -2
  176. package/node_modules/@smithy/node-http-handler/dist-types/write-request-body.d.ts +2 -2
  177. package/node_modules/@smithy/node-http-handler/package.json +5 -5
  178. package/node_modules/@smithy/property-provider/package.json +2 -2
  179. package/node_modules/@smithy/protocol-http/package.json +2 -2
  180. package/node_modules/@smithy/querystring-builder/package.json +2 -2
  181. package/node_modules/@smithy/querystring-parser/package.json +2 -2
  182. package/node_modules/@smithy/service-error-classification/package.json +2 -2
  183. package/node_modules/@smithy/shared-ini-file-loader/package.json +2 -2
  184. package/node_modules/@smithy/signature-v4/package.json +4 -4
  185. package/node_modules/@smithy/smithy-client/package.json +7 -7
  186. package/node_modules/@smithy/types/dist-types/http.d.ts +1 -0
  187. package/node_modules/@smithy/types/dist-types/ts3.4/http.d.ts +1 -0
  188. package/node_modules/@smithy/types/package.json +1 -1
  189. package/node_modules/@smithy/url-parser/package.json +3 -3
  190. package/node_modules/@smithy/util-defaults-mode-browser/package.json +4 -4
  191. package/node_modules/@smithy/util-defaults-mode-node/package.json +7 -7
  192. package/node_modules/@smithy/util-endpoints/package.json +3 -3
  193. package/node_modules/@smithy/util-middleware/package.json +2 -2
  194. package/node_modules/@smithy/util-retry/package.json +3 -3
  195. package/node_modules/@smithy/util-stream/package.json +4 -4
  196. package/node_modules/@smithy/util-waiter/dist-cjs/index.js +1 -1
  197. package/node_modules/@smithy/util-waiter/dist-es/poller.js +1 -1
  198. package/node_modules/@smithy/util-waiter/package.json +3 -3
  199. package/node_modules/fast-xml-builder/CHANGELOG.md +16 -0
  200. package/node_modules/fast-xml-builder/README.md +1 -1
  201. package/node_modules/fast-xml-builder/lib/fxb.cjs +1 -0
  202. package/node_modules/fast-xml-builder/lib/fxb.d.cts +22 -9
  203. package/node_modules/fast-xml-builder/lib/fxb.min.js +2 -0
  204. package/node_modules/fast-xml-builder/lib/fxb.min.js.map +1 -0
  205. package/node_modules/fast-xml-builder/package.json +7 -5
  206. package/node_modules/fast-xml-builder/src/fxb.d.ts +27 -3
  207. package/node_modules/fast-xml-builder/src/fxb.js +265 -21
  208. package/node_modules/fast-xml-builder/src/orderedJs2Xml.js +165 -18
  209. package/node_modules/path-expression-matcher/LICENSE +21 -0
  210. package/node_modules/path-expression-matcher/README.md +720 -0
  211. package/node_modules/path-expression-matcher/lib/pem.cjs +1 -0
  212. package/node_modules/path-expression-matcher/lib/pem.d.cts +523 -0
  213. package/node_modules/path-expression-matcher/lib/pem.min.js +2 -0
  214. package/node_modules/path-expression-matcher/lib/pem.min.js.map +1 -0
  215. package/node_modules/path-expression-matcher/package.json +78 -0
  216. package/node_modules/path-expression-matcher/src/Expression.js +232 -0
  217. package/node_modules/path-expression-matcher/src/Matcher.js +498 -0
  218. package/node_modules/path-expression-matcher/src/index.d.ts +518 -0
  219. package/node_modules/path-expression-matcher/src/index.js +28 -0
  220. package/package.json +4 -4
  221. package/node_modules/@aws-sdk/util-user-agent-node/dist-es/getTypeScriptPackageJsonPaths.js +0 -17
  222. package/node_modules/@aws-sdk/util-user-agent-node/dist-types/ts3.4/getTypeScriptPackageJsonPaths.d.ts +0 -3
  223. package/node_modules/fast-xml-builder/lib/builder.cjs +0 -1
  224. package/node_modules/fast-xml-builder/lib/builder.min.js +0 -2
  225. package/node_modules/fast-xml-builder/lib/builder.min.js.map +0 -1
  226. package/node_modules/fast-xml-parser/lib/fxbuilder.min.js +0 -2
  227. package/node_modules/fast-xml-parser/lib/fxbuilder.min.js.map +0 -1
  228. package/node_modules/fast-xml-parser/lib/fxp.cjs +0 -1
  229. package/node_modules/fast-xml-parser/lib/fxp.min.js +0 -2
  230. package/node_modules/fast-xml-parser/lib/fxp.min.js.map +0 -1
  231. package/node_modules/fast-xml-parser/lib/fxparser.min.js +0 -2
  232. package/node_modules/fast-xml-parser/lib/fxparser.min.js.map +0 -1
  233. package/node_modules/fast-xml-parser/lib/fxvalidator.min.js.map +0 -1
  234. package/node_modules/fast-xml-parser/src/xmlparser/OptionsBuilder.js +0 -88
  235. /package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/LICENSE +0 -0
  236. /package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/lib/fxvalidator.min.js +0 -0
  237. /package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/src/cli/cli.js +0 -0
  238. /package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/src/cli/man.js +0 -0
  239. /package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/src/cli/read.js +0 -0
  240. /package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/src/fxp.js +0 -0
  241. /package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/src/ignoreAttributes.js +0 -0
  242. /package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/src/v6/CharsSymbol.js +0 -0
  243. /package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/src/v6/EntitiesParser.js +0 -0
  244. /package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/src/v6/OptionsBuilder.js +0 -0
  245. /package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/src/v6/OutputBuilders/BaseOutputBuilder.js +0 -0
  246. /package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/src/v6/OutputBuilders/JsArrBuilder.js +0 -0
  247. /package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/src/v6/OutputBuilders/JsMinArrBuilder.js +0 -0
  248. /package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/src/v6/OutputBuilders/JsObjBuilder.js +0 -0
  249. /package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/src/v6/OutputBuilders/ParserOptionsBuilder.js +0 -0
  250. /package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/src/v6/Report.js +0 -0
  251. /package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/src/v6/TagPath.js +0 -0
  252. /package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/src/v6/TagPathMatcher.js +0 -0
  253. /package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/src/v6/XMLParser.js +0 -0
  254. /package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/src/v6/Xml2JsParser.js +0 -0
  255. /package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/src/v6/XmlPartReader.js +0 -0
  256. /package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/src/v6/XmlSpecialTagsReader.js +0 -0
  257. /package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/src/v6/inputSource/BufferSource.js +0 -0
  258. /package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/src/v6/inputSource/StringSource.js +0 -0
  259. /package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/src/v6/valueParsers/EntitiesParser.js +0 -0
  260. /package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/src/v6/valueParsers/booleanParser.js +0 -0
  261. /package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/src/v6/valueParsers/booleanParserExt.js +0 -0
  262. /package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/src/v6/valueParsers/currency.js +0 -0
  263. /package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/src/v6/valueParsers/join.js +0 -0
  264. /package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/src/v6/valueParsers/number.js +0 -0
  265. /package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/src/v6/valueParsers/trim.js +0 -0
  266. /package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/src/validator.js +0 -0
  267. /package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/src/xmlbuilder/json2xml.js +0 -0
  268. /package/node_modules/{fast-xml-parser → @aws-sdk/xml-builder/node_modules/fast-xml-parser}/src/xmlparser/xmlNode.js +0 -0
  269. /package/node_modules/{strnum → @aws-sdk/xml-builder/node_modules/strnum}/.github/SECURITY.md +0 -0
  270. /package/node_modules/{strnum → @aws-sdk/xml-builder/node_modules/strnum}/.vscode/launch.json +0 -0
  271. /package/node_modules/{strnum → @aws-sdk/xml-builder/node_modules/strnum}/LICENSE +0 -0
  272. /package/node_modules/{strnum → @aws-sdk/xml-builder/node_modules/strnum}/README.md +0 -0
  273. /package/node_modules/{strnum → @aws-sdk/xml-builder/node_modules/strnum}/algo.stflow +0 -0
  274. /package/node_modules/{strnum → @aws-sdk/xml-builder/node_modules/strnum}/tests/infinity_test.js +0 -0
@@ -2,6 +2,7 @@
2
2
 
3
3
  var node_os = require('node:os');
4
4
  var node_process = require('node:process');
5
+ var utilConfigProvider = require('@smithy/util-config-provider');
5
6
  var promises = require('node:fs/promises');
6
7
  var node_path = require('node:path');
7
8
  var middlewareUserAgent = require('@aws-sdk/middleware-user-agent');
@@ -16,6 +17,21 @@ const getRuntimeUserAgentPair = () => {
16
17
  return ["md/nodejs", node_process.versions.node];
17
18
  };
18
19
 
20
+ const getNodeModulesParentDirs = (dirname) => {
21
+ const cwd = process.cwd();
22
+ if (!dirname) {
23
+ return [cwd];
24
+ }
25
+ const normalizedPath = node_path.normalize(dirname);
26
+ const parts = normalizedPath.split(node_path.sep);
27
+ const nodeModulesIndex = parts.indexOf("node_modules");
28
+ const parentDir = nodeModulesIndex !== -1 ? parts.slice(0, nodeModulesIndex).join(node_path.sep) : normalizedPath;
29
+ if (cwd === parentDir) {
30
+ return [cwd];
31
+ }
32
+ return [parentDir, cwd];
33
+ };
34
+
19
35
  const SEMVER_REGEX = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*)?$/;
20
36
  const getSanitizedTypeScriptVersion = (version = "") => {
21
37
  const match = version.match(SEMVER_REGEX);
@@ -26,24 +42,22 @@ const getSanitizedTypeScriptVersion = (version = "") => {
26
42
  return prerelease ? `${major}.${minor}.${patch}-${prerelease}` : `${major}.${minor}.${patch}`;
27
43
  };
28
44
 
29
- const typescriptPackageJsonPath = node_path.join("node_modules", "typescript", "package.json");
30
- const getTypeScriptPackageJsonPaths = (dirname) => {
31
- const cwdPath = node_path.join(process.cwd(), typescriptPackageJsonPath);
32
- if (!dirname) {
33
- return [cwdPath];
45
+ const ALLOWED_PREFIXES = ["^", "~", ">=", "<=", ">", "<"];
46
+ const ALLOWED_DIST_TAGS = ["latest", "beta", "dev", "rc", "insiders", "next"];
47
+ const getSanitizedDevTypeScriptVersion = (version = "") => {
48
+ if (ALLOWED_DIST_TAGS.includes(version)) {
49
+ return version;
34
50
  }
35
- const normalizedPath = node_path.normalize(dirname);
36
- const parts = normalizedPath.split(node_path.sep);
37
- const nodeModulesIndex = parts.indexOf("node_modules");
38
- const parentDir = nodeModulesIndex !== -1 ? parts.slice(0, nodeModulesIndex).join(node_path.sep) : dirname;
39
- const parentDirPath = node_path.join(parentDir, typescriptPackageJsonPath);
40
- if (cwdPath === parentDirPath) {
41
- return [cwdPath];
51
+ const prefix = ALLOWED_PREFIXES.find((p) => version.startsWith(p)) ?? "";
52
+ const sanitizedTypeScriptVersion = getSanitizedTypeScriptVersion(version.slice(prefix.length));
53
+ if (!sanitizedTypeScriptVersion) {
54
+ return undefined;
42
55
  }
43
- return [parentDirPath, cwdPath];
56
+ return `${prefix}${sanitizedTypeScriptVersion}`;
44
57
  };
45
58
 
46
59
  let tscVersion;
60
+ const TS_PACKAGE_JSON = node_path.join("node_modules", "typescript", "package.json");
47
61
  const getTypeScriptUserAgentPair = async () => {
48
62
  if (tscVersion === null) {
49
63
  return undefined;
@@ -51,23 +65,65 @@ const getTypeScriptUserAgentPair = async () => {
51
65
  else if (typeof tscVersion === "string") {
52
66
  return ["md/tsc", tscVersion];
53
67
  }
68
+ let isTypeScriptDetectionDisabled = false;
69
+ try {
70
+ isTypeScriptDetectionDisabled =
71
+ utilConfigProvider.booleanSelector(process.env, "AWS_SDK_JS_TYPESCRIPT_DETECTION_DISABLED", utilConfigProvider.SelectorType.ENV) || false;
72
+ }
73
+ catch { }
74
+ if (isTypeScriptDetectionDisabled) {
75
+ tscVersion = null;
76
+ return undefined;
77
+ }
54
78
  const dirname = typeof __dirname !== "undefined" ? __dirname : undefined;
55
- for (const typescriptPackageJsonPath of getTypeScriptPackageJsonPaths(dirname)) {
79
+ const nodeModulesParentDirs = getNodeModulesParentDirs(dirname);
80
+ let versionFromApp;
81
+ for (const nodeModulesParentDir of nodeModulesParentDirs) {
82
+ try {
83
+ const appPackageJsonPath = node_path.join(nodeModulesParentDir, "package.json");
84
+ const packageJson = await promises.readFile(appPackageJsonPath, "utf-8");
85
+ const { dependencies, devDependencies } = JSON.parse(packageJson);
86
+ const version = devDependencies?.typescript ?? dependencies?.typescript;
87
+ if (typeof version !== "string") {
88
+ continue;
89
+ }
90
+ versionFromApp = version;
91
+ break;
92
+ }
93
+ catch {
94
+ }
95
+ }
96
+ if (!versionFromApp) {
97
+ tscVersion = null;
98
+ return undefined;
99
+ }
100
+ let versionFromNodeModules;
101
+ for (const nodeModulesParentDir of nodeModulesParentDirs) {
56
102
  try {
57
- const packageJson = await promises.readFile(typescriptPackageJsonPath, "utf-8");
103
+ const tsPackageJsonPath = node_path.join(nodeModulesParentDir, TS_PACKAGE_JSON);
104
+ const packageJson = await promises.readFile(tsPackageJsonPath, "utf-8");
58
105
  const { version } = JSON.parse(packageJson);
59
106
  const sanitizedVersion = getSanitizedTypeScriptVersion(version);
60
107
  if (typeof sanitizedVersion !== "string") {
61
108
  continue;
62
109
  }
63
- tscVersion = sanitizedVersion;
64
- return ["md/tsc", tscVersion];
110
+ versionFromNodeModules = sanitizedVersion;
111
+ break;
65
112
  }
66
113
  catch {
67
114
  }
68
115
  }
69
- tscVersion = null;
70
- return undefined;
116
+ if (versionFromNodeModules) {
117
+ tscVersion = versionFromNodeModules;
118
+ return ["md/tsc", tscVersion];
119
+ }
120
+ const sanitizedVersion = getSanitizedDevTypeScriptVersion(versionFromApp);
121
+ if (typeof sanitizedVersion !== "string") {
122
+ tscVersion = null;
123
+ return undefined;
124
+ }
125
+ tscVersion = `dev_${sanitizedVersion}`;
126
+ return ["md/tsc", tscVersion];
71
127
  };
72
128
 
73
129
  const crtAvailability = {
@@ -0,0 +1,15 @@
1
+ import { normalize, sep } from "node:path";
2
+ export const getNodeModulesParentDirs = (dirname) => {
3
+ const cwd = process.cwd();
4
+ if (!dirname) {
5
+ return [cwd];
6
+ }
7
+ const normalizedPath = normalize(dirname);
8
+ const parts = normalizedPath.split(sep);
9
+ const nodeModulesIndex = parts.indexOf("node_modules");
10
+ const parentDir = nodeModulesIndex !== -1 ? parts.slice(0, nodeModulesIndex).join(sep) : normalizedPath;
11
+ if (cwd === parentDir) {
12
+ return [cwd];
13
+ }
14
+ return [parentDir, cwd];
15
+ };
@@ -0,0 +1,14 @@
1
+ import { getSanitizedTypeScriptVersion } from "./getSanitizedTypeScriptVersion";
2
+ const ALLOWED_PREFIXES = ["^", "~", ">=", "<=", ">", "<"];
3
+ const ALLOWED_DIST_TAGS = ["latest", "beta", "dev", "rc", "insiders", "next"];
4
+ export const getSanitizedDevTypeScriptVersion = (version = "") => {
5
+ if (ALLOWED_DIST_TAGS.includes(version)) {
6
+ return version;
7
+ }
8
+ const prefix = ALLOWED_PREFIXES.find((p) => version.startsWith(p)) ?? "";
9
+ const sanitizedTypeScriptVersion = getSanitizedTypeScriptVersion(version.slice(prefix.length));
10
+ if (!sanitizedTypeScriptVersion) {
11
+ return undefined;
12
+ }
13
+ return `${prefix}${sanitizedTypeScriptVersion}`;
14
+ };
@@ -1,7 +1,11 @@
1
+ import { booleanSelector, SelectorType } from "@smithy/util-config-provider";
1
2
  import { readFile } from "node:fs/promises";
3
+ import { join } from "node:path";
4
+ import { getNodeModulesParentDirs } from "./getNodeModulesParentDirs";
5
+ import { getSanitizedDevTypeScriptVersion } from "./getSanitizedDevTypeScriptVersion";
2
6
  import { getSanitizedTypeScriptVersion } from "./getSanitizedTypeScriptVersion";
3
- import { getTypeScriptPackageJsonPaths } from "./getTypeScriptPackageJsonPaths";
4
7
  let tscVersion;
8
+ const TS_PACKAGE_JSON = join("node_modules", "typescript", "package.json");
5
9
  export const getTypeScriptUserAgentPair = async () => {
6
10
  if (tscVersion === null) {
7
11
  return undefined;
@@ -9,21 +13,63 @@ export const getTypeScriptUserAgentPair = async () => {
9
13
  else if (typeof tscVersion === "string") {
10
14
  return ["md/tsc", tscVersion];
11
15
  }
16
+ let isTypeScriptDetectionDisabled = false;
17
+ try {
18
+ isTypeScriptDetectionDisabled =
19
+ booleanSelector(process.env, "AWS_SDK_JS_TYPESCRIPT_DETECTION_DISABLED", SelectorType.ENV) || false;
20
+ }
21
+ catch { }
22
+ if (isTypeScriptDetectionDisabled) {
23
+ tscVersion = null;
24
+ return undefined;
25
+ }
12
26
  const dirname = typeof __dirname !== "undefined" ? __dirname : undefined;
13
- for (const typescriptPackageJsonPath of getTypeScriptPackageJsonPaths(dirname)) {
27
+ const nodeModulesParentDirs = getNodeModulesParentDirs(dirname);
28
+ let versionFromApp;
29
+ for (const nodeModulesParentDir of nodeModulesParentDirs) {
30
+ try {
31
+ const appPackageJsonPath = join(nodeModulesParentDir, "package.json");
32
+ const packageJson = await readFile(appPackageJsonPath, "utf-8");
33
+ const { dependencies, devDependencies } = JSON.parse(packageJson);
34
+ const version = devDependencies?.typescript ?? dependencies?.typescript;
35
+ if (typeof version !== "string") {
36
+ continue;
37
+ }
38
+ versionFromApp = version;
39
+ break;
40
+ }
41
+ catch {
42
+ }
43
+ }
44
+ if (!versionFromApp) {
45
+ tscVersion = null;
46
+ return undefined;
47
+ }
48
+ let versionFromNodeModules;
49
+ for (const nodeModulesParentDir of nodeModulesParentDirs) {
14
50
  try {
15
- const packageJson = await readFile(typescriptPackageJsonPath, "utf-8");
51
+ const tsPackageJsonPath = join(nodeModulesParentDir, TS_PACKAGE_JSON);
52
+ const packageJson = await readFile(tsPackageJsonPath, "utf-8");
16
53
  const { version } = JSON.parse(packageJson);
17
54
  const sanitizedVersion = getSanitizedTypeScriptVersion(version);
18
55
  if (typeof sanitizedVersion !== "string") {
19
56
  continue;
20
57
  }
21
- tscVersion = sanitizedVersion;
22
- return ["md/tsc", tscVersion];
58
+ versionFromNodeModules = sanitizedVersion;
59
+ break;
23
60
  }
24
61
  catch {
25
62
  }
26
63
  }
27
- tscVersion = null;
28
- return undefined;
64
+ if (versionFromNodeModules) {
65
+ tscVersion = versionFromNodeModules;
66
+ return ["md/tsc", tscVersion];
67
+ }
68
+ const sanitizedVersion = getSanitizedDevTypeScriptVersion(versionFromApp);
69
+ if (typeof sanitizedVersion !== "string") {
70
+ tscVersion = null;
71
+ return undefined;
72
+ }
73
+ tscVersion = `dev_${sanitizedVersion}`;
74
+ return ["md/tsc", tscVersion];
29
75
  };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Returns candidate paths to the TypeScript package.json file derived from the current
2
+ * Returns candidate paths to the node_modules parent directories based on current
3
3
  * working directory and, if provided, from the given directory.
4
4
  *
5
5
  * @param dirname - Optional directory path to derive an additional candidate path from.
@@ -7,4 +7,4 @@
7
7
  *
8
8
  * @internal
9
9
  */
10
- export declare const getTypeScriptPackageJsonPaths: (dirname?: string) => string[];
10
+ export declare const getNodeModulesParentDirs: (dirname?: string) => string[];
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Sanitizes a TypeScript version string for user-agent reporting.
3
+ * Handles dist tags (e.g., "latest", "beta"), version prefixes (e.g., "^", "~"),
4
+ * and semver strings. Returns undefined if the version is invalid.
5
+ *
6
+ * @internal
7
+ */
8
+ export declare const getSanitizedDevTypeScriptVersion: (version?: string) => string | undefined;
@@ -0,0 +1 @@
1
+ export declare const getNodeModulesParentDirs: (dirname?: string) => string[];
@@ -0,0 +1,3 @@
1
+ export declare const getSanitizedDevTypeScriptVersion: (
2
+ version?: string
3
+ ) => string | undefined;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-sdk/util-user-agent-node",
3
- "version": "3.973.4",
3
+ "version": "3.973.10",
4
4
  "scripts": {
5
5
  "build": "concurrently 'yarn:build:types' 'yarn:build:es' && yarn build:cjs",
6
6
  "build:cjs": "node ../../scripts/compilation/inline util-user-agent-node",
@@ -24,10 +24,11 @@
24
24
  },
25
25
  "license": "Apache-2.0",
26
26
  "dependencies": {
27
- "@aws-sdk/middleware-user-agent": "^3.972.19",
28
- "@aws-sdk/types": "^3.973.5",
29
- "@smithy/node-config-provider": "^4.3.11",
30
- "@smithy/types": "^4.13.0",
27
+ "@aws-sdk/middleware-user-agent": "^3.972.24",
28
+ "@aws-sdk/types": "^3.973.6",
29
+ "@smithy/node-config-provider": "^4.3.12",
30
+ "@smithy/types": "^4.13.1",
31
+ "@smithy/util-config-provider": "^4.2.2",
31
32
  "tslib": "^2.6.2"
32
33
  },
33
34
  "devDependencies": {
@@ -2,21 +2,31 @@
2
2
 
3
3
  var xmlParser = require('./xml-parser');
4
4
 
5
+ const ATTR_ESCAPE_RE = /[&<>"]/g;
6
+ const ATTR_ESCAPE_MAP = {
7
+ "&": "&amp;",
8
+ "<": "&lt;",
9
+ ">": "&gt;",
10
+ '"': "&quot;",
11
+ };
5
12
  function escapeAttribute(value) {
6
- return value.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
13
+ return value.replace(ATTR_ESCAPE_RE, (ch) => ATTR_ESCAPE_MAP[ch]);
7
14
  }
8
15
 
16
+ const ELEMENT_ESCAPE_RE = /[&"'<>\r\n\u0085\u2028]/g;
17
+ const ELEMENT_ESCAPE_MAP = {
18
+ "&": "&amp;",
19
+ '"': "&quot;",
20
+ "'": "&apos;",
21
+ "<": "&lt;",
22
+ ">": "&gt;",
23
+ "\r": "&#x0D;",
24
+ "\n": "&#x0A;",
25
+ "\u0085": "&#x85;",
26
+ "\u2028": "&#x2028;",
27
+ };
9
28
  function escapeElement(value) {
10
- return value
11
- .replace(/&/g, "&amp;")
12
- .replace(/"/g, "&quot;")
13
- .replace(/'/g, "&apos;")
14
- .replace(/</g, "&lt;")
15
- .replace(/>/g, "&gt;")
16
- .replace(/\r/g, "&#x0D;")
17
- .replace(/\n/g, "&#x0A;")
18
- .replace(/\u0085/g, "&#x85;")
19
- .replace(/\u2028/, "&#x2028;");
29
+ return value.replace(ELEMENT_ESCAPE_RE, (ch) => ELEMENT_ESCAPE_MAP[ch]);
20
30
  }
21
31
 
22
32
  class XmlText {
@@ -4,13 +4,17 @@ exports.parseXML = parseXML;
4
4
  const fast_xml_parser_1 = require("fast-xml-parser");
5
5
  const parser = new fast_xml_parser_1.XMLParser({
6
6
  attributeNamePrefix: "",
7
+ processEntities: {
8
+ enabled: true,
9
+ maxTotalExpansions: Infinity,
10
+ },
7
11
  htmlEntities: true,
8
12
  ignoreAttributes: false,
9
13
  ignoreDeclaration: true,
10
14
  parseTagValue: false,
11
15
  trimValues: false,
12
16
  tagValueProcessor: (_, val) => (val.trim() === "" && val.includes("\n") ? "" : undefined),
13
- maxNestedTags: 1024,
17
+ maxNestedTags: Infinity,
14
18
  });
15
19
  parser.addEntity("#xD", "\r");
16
20
  parser.addEntity("#10", "\n");
@@ -1,3 +1,10 @@
1
+ const ATTR_ESCAPE_RE = /[&<>"]/g;
2
+ const ATTR_ESCAPE_MAP = {
3
+ "&": "&amp;",
4
+ "<": "&lt;",
5
+ ">": "&gt;",
6
+ '"': "&quot;",
7
+ };
1
8
  export function escapeAttribute(value) {
2
- return value.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
9
+ return value.replace(ATTR_ESCAPE_RE, (ch) => ATTR_ESCAPE_MAP[ch]);
3
10
  }
@@ -1,12 +1,15 @@
1
+ const ELEMENT_ESCAPE_RE = /[&"'<>\r\n\u0085\u2028]/g;
2
+ const ELEMENT_ESCAPE_MAP = {
3
+ "&": "&amp;",
4
+ '"': "&quot;",
5
+ "'": "&apos;",
6
+ "<": "&lt;",
7
+ ">": "&gt;",
8
+ "\r": "&#x0D;",
9
+ "\n": "&#x0A;",
10
+ "\u0085": "&#x85;",
11
+ "\u2028": "&#x2028;",
12
+ };
1
13
  export function escapeElement(value) {
2
- return value
3
- .replace(/&/g, "&amp;")
4
- .replace(/"/g, "&quot;")
5
- .replace(/'/g, "&apos;")
6
- .replace(/</g, "&lt;")
7
- .replace(/>/g, "&gt;")
8
- .replace(/\r/g, "&#x0D;")
9
- .replace(/\n/g, "&#x0A;")
10
- .replace(/\u0085/g, "&#x85;")
11
- .replace(/\u2028/, "&#x2028;");
14
+ return value.replace(ELEMENT_ESCAPE_RE, (ch) => ELEMENT_ESCAPE_MAP[ch]);
12
15
  }
@@ -1,13 +1,17 @@
1
1
  import { XMLParser } from "fast-xml-parser";
2
2
  const parser = new XMLParser({
3
3
  attributeNamePrefix: "",
4
+ processEntities: {
5
+ enabled: true,
6
+ maxTotalExpansions: Infinity,
7
+ },
4
8
  htmlEntities: true,
5
9
  ignoreAttributes: false,
6
10
  ignoreDeclaration: true,
7
11
  parseTagValue: false,
8
12
  trimValues: false,
9
13
  tagValueProcessor: (_, val) => (val.trim() === "" && val.includes("\n") ? "" : undefined),
10
- maxNestedTags: 1024,
14
+ maxNestedTags: Infinity,
11
15
  });
12
16
  parser.addEntity("#xD", "\r");
13
17
  parser.addEntity("#10", "\n");
@@ -1,23 +1,59 @@
1
1
  <small>Note: If you find missing information about particular minor version, that version must have been changed without any functional change in this library.</small>
2
2
 
3
+ Note: Due to some last quick changes on v4, detail of v4.5.3 & v4.5.4 are not updated here. v4.5.4x is the last tag of v4 in github repository. I'm extremely sorry for the confusion
4
+
5
+ **5.5.8 / 2026-03-20**
6
+ - pass read only matcher in callback
7
+
8
+ **5.5.7 / 2026-03-19**
9
+ - fix: entity expansion limits
10
+ - update strnum package to 2.2.0
11
+
12
+ **5.5.6 / 2026-03-16**
13
+ - update builder dependency
14
+ - fix incorrect regex to replace \. in entity name
15
+ - fix check for entitiy expansion for lastEntities and html entities too
16
+
17
+ **5.5.5 / 2026-03-13**
18
+ - sanitize dangerous tag or attribute name
19
+ - error on critical property name
20
+ - support onDangerousProperty option
21
+
22
+ **5.5.4 / 2026-03-13**
23
+ - declare Matcher & Expression as unknown so user is not forced to install path-expression-matcher
24
+
25
+
26
+ **5.5.3 / 2026-03-11**
27
+ - upgrade builder
28
+
29
+ **5.5.2 / 2026-03-11**
30
+ - update dependency to fix typings
31
+
32
+ **5.5.1 / 2026-03-10**
33
+ - fix dependency
34
+
35
+ **5.5.0 / 2026-03-10**
36
+ - support path-expression-matcher
37
+ - fix: stopNode should not be parsed
38
+ - performance improvement for stopNode checking
39
+
40
+ **5.4.2 / 2026-03-03**
41
+ - support maxEntityCount option
42
+
3
43
  **5.4.1 / 2026-02-25**
4
44
  - fix (#785) unpairedTag node should not have tag content
5
45
 
6
-
7
46
  **5.4.0 / 2026-02-25**
8
47
  - migrate to fast-xml-builder
9
48
 
10
- 5.3.9
11
49
  **5.3.9 / 2026-02-25**
12
50
  - support strictReservedNames
13
51
 
14
- 5.3.8
15
52
  **5.3.8 / 2026-02-25**
16
53
  - support maxNestedTags
17
54
  - handle non-array input for XML builder when preserveOrder is true (By [Angelo Coetzee](https://github.com/Angelopvtac))
18
55
  - save use of js properies
19
56
 
20
- 5.3.7
21
57
  **5.3.7 / 2026-02-20**
22
58
  - fix typings for CJS (By [Corentin Girard](https://github.com/Drarig29))
23
59
 
@@ -152,13 +152,14 @@ Bundle size
152
152
  <a href="./docs/v3/docs.md">documents</a>
153
153
  </td>
154
154
  <td><ol>
155
- <li><a href="./docs/v4/1.GettingStarted.md">Getting Started</a></li>
156
- <li><a href="./docs/v4/2.XMLparseOptions.md">XML Parser</a></li>
157
- <li><a href="./docs/v4/3.XMLBuilder.md">XML Builder</a></li>
158
- <li><a href="./docs/v4/4.XMLValidator.md">XML Validator</a></li>
159
- <li><a href="./docs/v4/5.Entities.md">Entities</a></li>
160
- <li><a href="./docs/v4/6.HTMLParsing.md">HTML Document Parsing</a></li>
161
- <li><a href="./docs/v4/7.PITags.md">PI Tag processing</a></li>
155
+ <li><a href="./docs/v4,v5/1.GettingStarted.md">Getting Started</a></li>
156
+ <li><a href="./docs/v4,v5/2.XMLparseOptions.md">XML Parser</a></li>
157
+ <li><a href="./docs/v4,v5/3.XMLBuilder.md">XML Builder</a></li>
158
+ <li><a href="./docs/v4,v5/4.XMLValidator.md">XML Validator</a></li>
159
+ <li><a href="./docs/v4,v5/5.Entities.md">Entities</a></li>
160
+ <li><a href="./docs/v4,v5/6.HTMLParsing.md">HTML Document Parsing</a></li>
161
+ <li><a href="./docs/v4,v5/7.PITags.md">PI Tag processing</a></li>
162
+ <li><a href="./docs/v4,v5/8.PathExpression.md">Path Expression</a></li>
162
163
  </ol></td>
163
164
  <td><ol>
164
165
  <li></li><a href="./docs/v6/1.GettingStarted.md">Getting Started</a></li>
@@ -0,0 +1,2 @@
1
+ !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.XMLBuilder=e():t.XMLBuilder=e()}(this,()=>(()=>{"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:()=>y});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 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}}const s=new Set(["push","pop","reset","updateCurrent","restore"]);class n{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],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;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 r=t===this.path.length-1;if(this._matchSegment(s,this.path[t],r)){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))}readOnly(){return new Proxy(this,{get(t,e,i){if(s.has(e))return()=>{throw new TypeError(`Cannot call '${e}' on a read-only Matcher. Obtain a writable instance to mutate state.`)};const n=Reflect.get(t,e,i);return"path"===e||"siblingStacks"===e?Object.freeze(Array.isArray(n)?n.map(t=>t instanceof Map?Object.freeze(new Map(t)):Object.freeze({...t})):n):"function"==typeof n?n.bind(t):n},set(t,e){throw new TypeError(`Cannot set property '${String(e)}' on a read-only Matcher.`)},deleteProperty(t,e){throw new TypeError(`Cannot delete property '${String(e)}' from a read-only Matcher.`)}})}}function r(t,e){let s="";e.format&&e.indentBy.length>0&&(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)}return o(t,e,s,new n,r)}function o(t,e,i,s,n){let r="",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=d(i,e),i}return""}for(let f=0;f<t.length;f++){const g=t[f],m=u(g);if(void 0===m)continue;const b=a(g[":@"],e);s.push(m,b);const N=c(s,n);if(m===e.textNodeName){let t=g[m];N||(t=e.tagValueProcessor(m,t),t=d(t,e)),p&&(r+=i),r+=t,p=!1,s.pop();continue}if(m===e.cdataPropName){p&&(r+=i),r+=`<![CDATA[${g[m][0][e.textNodeName]}]]>`,p=!1,s.pop();continue}if(m===e.commentPropName){r+=i+`\x3c!--${g[m][0][e.textNodeName]}--\x3e`,p=!0,s.pop();continue}if("?"===m[0]){const t=l(g[":@"],e,N),n="?xml"===m?"":i;let o=g[m][0][e.textNodeName];o=0!==o.length?" "+o:"",r+=n+`<${m}${o}${t}?>`,p=!0,s.pop();continue}let y=i;""!==y&&(y+=e.indentBy);const x=i+`<${m}${l(g[":@"],e,N)}`;let P;P=N?h(g[m],e):o(g[m],e,y,s,n),-1!==e.unpairedTags.indexOf(m)?e.suppressUnpairedNode?r+=x+">":r+=x+"/>":P&&0!==P.length||!e.suppressEmptyNode?P&&P.endsWith(">")?r+=x+`>${P}${i}</${m}>`:(r+=x+">",P&&""!==i&&(P.includes("/>")||P.includes("</"))?r+=i+e.indentBy+P+i:r+=P,r+=`</${m}>`):r+=x+"/>",p=!0,s.pop()}return r}function a(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 h(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=u(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=p(n[":@"],e),s=h(n[r],e);s&&0!==s.length?i+=`<${r}${t}>${s}</${r}>`:i+=`<${r}${t}/>`}}}return i}function p(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 u(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 l(t,e,i){let s="";if(t&&!e.ignoreAttributes)for(let n in t){if(!Object.prototype.hasOwnProperty.call(t,n))continue;let r;i?r=t[n]:(r=e.attributeValueProcessor(n,t[n]),r=d(r,e)),!0===r&&e.suppressBooleanAttributes?s+=` ${n.substr(e.attributeNamePrefix.length)}`:s+=` ${n.substr(e.attributeNamePrefix.length)}="${r}"`}return s}function c(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 d(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 f={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 g(t){if(this.options=Object.assign({},f,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=N),this.processTextOrObjNode=m,this.options.format?(this.indentate=b,this.tagEndChar=">\n",this.newLine="\n"):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine="")}function m(t,e,i,s){const n=this.extractAttributes(t);if(s.push(e,n),this.checkStopNode(s)){const n=this.buildRawContent(t),r=this.buildAttributesForStopNode(t);return s.pop(),this.buildObjectNode(n,e,r,i)}const r=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,r.attrStr,i,s):this.buildObjectNode(r.val,e,r.attrStr,i)}function b(t){return this.options.indentBy.repeat(t)}function N(t){return!(!t.startsWith(this.options.attributeNamePrefix)||t===this.options.textNodeName)&&t.substr(this.attrPrefixLen)}g.prototype.build=function(t){if(this.options.preserveOrder)return r(t,this.options);{Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(t={[this.options.arrayNodeName]:t});const e=new n;return this.j2x(t,0,e).val}},g.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 r=this.options.jPath?i.toString():i,o=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,r))s+=this.buildAttrPairStr(h,""+t[a],o);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 r="",o="";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(),r+=t.val,this.options.attributesGroupName&&s.hasOwnProperty(this.options.attributesGroupName)&&(o+=t.attrStr)}else r+=this.processTextOrObjNode(s,a,e,i);else if(this.options.oneListGroup){let t=this.options.tagValueProcessor(a,s);t=this.replaceEntitiesValue(t),r+=t}else{i.push(a);const t=this.checkStopNode(i);if(i.pop(),t){const t=""+s;r+=""===t?this.indentate(e)+"<"+a+this.closeTag(a)+this.tagEndChar:this.indentate(e)+"<"+a+">"+t+"</"+a+this.tagEndChar}else r+=this.buildTextValNode(s,a,"",e,i)}}this.options.oneListGroup&&(r=this.buildObjectNode(r,a,o,e)),n+=r}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]],o)}else n+=this.processTextOrObjNode(t[a],a,e,i);return{attrStr:s,val:n}},g.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+'"'},g.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},g.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},g.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},g.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,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}},g.prototype.closeTag=function(t){let e="";return-1!==this.options.unpairedTags.indexOf(t)?this.options.suppressUnpairedNode||(e="/"):e=this.options.suppressEmptyNode?"/":`></${t}`,e},g.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},g.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}},g.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};const y=g;return e})());
2
+ //# sourceMappingURL=fxbuilder.min.js.map