@psnext/slingcli 3.5.20261007-2 → 3.5.20261019-1

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 (392) hide show
  1. package/bin/sling-startup-output.js +47 -0
  2. package/bin/sling.js +29 -2
  3. package/node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js +12 -3
  4. package/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js +94 -1589
  5. package/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.js +12 -3
  6. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/index.js +1 -7
  7. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsJsonRpcProtocol.js +1 -3
  8. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsRestJsonProtocol.js +1 -3
  9. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/index.d.ts +2 -8
  10. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJson1_0Protocol.d.ts +1 -2
  11. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJson1_1Protocol.d.ts +1 -2
  12. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJsonRpcProtocol.d.ts +2 -3
  13. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsRestJsonProtocol.d.ts +2 -3
  14. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/index.d.ts +10 -10
  15. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJson1_0Protocol.d.ts +1 -2
  16. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJson1_1Protocol.d.ts +1 -2
  17. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJsonRpcProtocol.d.ts +2 -3
  18. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsRestJsonProtocol.d.ts +2 -3
  19. package/node_modules/@aws-sdk/core/package.json +3 -3
  20. package/node_modules/@aws-sdk/credential-provider-env/package.json +3 -3
  21. package/node_modules/@aws-sdk/credential-provider-http/package.json +3 -3
  22. package/node_modules/@aws-sdk/credential-provider-ini/package.json +10 -10
  23. package/node_modules/@aws-sdk/credential-provider-login/package.json +4 -4
  24. package/node_modules/@aws-sdk/credential-provider-node/package.json +8 -8
  25. package/node_modules/@aws-sdk/credential-provider-process/package.json +3 -3
  26. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-cjs/index.js +37 -19
  27. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/fromSso.js +37 -19
  28. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/package.json +4 -4
  29. package/node_modules/@aws-sdk/credential-provider-sso/package.json +5 -5
  30. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +4 -4
  31. package/node_modules/@aws-sdk/eventstream-handler-node/package.json +2 -2
  32. package/node_modules/@aws-sdk/middleware-eventstream/package.json +2 -2
  33. package/node_modules/@aws-sdk/middleware-websocket/package.json +4 -4
  34. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/cognito-identity/index.js +11 -1
  35. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/index.js +6 -1
  36. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso/index.js +6 -1
  37. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js +13 -1
  38. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js +9 -1
  39. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/cognito-identity/models/CognitoIdentityServiceException.js +1 -0
  40. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/cognito-identity/models/errors.js +9 -0
  41. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/models/SigninServiceException.js +1 -0
  42. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/models/errors.js +4 -0
  43. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/models/SSOServiceException.js +1 -0
  44. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/models/errors.js +4 -0
  45. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/models/SSOOIDCServiceException.js +1 -0
  46. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/models/errors.js +11 -0
  47. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/models/STSServiceException.js +1 -0
  48. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/models/errors.js +7 -0
  49. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/models/CognitoIdentityServiceException.d.ts +1 -0
  50. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/models/errors.d.ts +9 -0
  51. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/models/SigninServiceException.d.ts +1 -0
  52. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/models/errors.d.ts +4 -0
  53. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/models/SSOServiceException.d.ts +1 -0
  54. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/models/errors.d.ts +4 -0
  55. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/models/SSOOIDCServiceException.d.ts +1 -0
  56. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/models/errors.d.ts +11 -0
  57. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/models/STSServiceException.d.ts +1 -0
  58. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/models/errors.d.ts +7 -0
  59. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/models/CognitoIdentityServiceException.d.ts +1 -0
  60. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/models/errors.d.ts +9 -0
  61. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/models/SigninServiceException.d.ts +1 -0
  62. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/models/errors.d.ts +4 -0
  63. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/models/SSOServiceException.d.ts +1 -0
  64. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/models/errors.d.ts +4 -0
  65. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/models/SSOOIDCServiceException.d.ts +1 -0
  66. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/models/errors.d.ts +11 -0
  67. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/models/STSServiceException.d.ts +1 -0
  68. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/models/errors.d.ts +7 -0
  69. package/node_modules/@aws-sdk/nested-clients/package.json +4 -4
  70. package/node_modules/@aws-sdk/signature-v4-multi-region/package.json +2 -2
  71. package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.js +2 -0
  72. package/node_modules/@earendil-works/pi-codemode/dist/runtime/host.js +21 -86
  73. package/node_modules/@earendil-works/pi-codemode/dist/runtime/prelude-source.js +3 -103
  74. package/node_modules/@earendil-works/pi-codemode/package.json +1 -1
  75. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/{chunk-JPNA2XH6.js → chunk-23QDZLZG.js} +22 -16
  76. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/{chunk-4RGLMKVY.js → chunk-QPFSTNX5.js} +1 -1
  77. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/{virtual-modules-SXTR3NIO.js → virtual-modules-GRXGP6ZA.js} +1 -1
  78. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/cli-runtime.js +1 -1
  79. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/index.js +1 -1
  80. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/rpc-entry.js +1 -1
  81. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/pi-logo.js +8 -0
  82. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.js +6 -3
  83. package/node_modules/@earendil-works/pi-coding-agent/docs/mcp.md +1 -0
  84. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/Agent.md +8 -8
  85. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/CacheStore.md +24 -9
  86. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/Client.md +11 -6
  87. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +9 -6
  88. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/Dispatcher.md +12 -0
  89. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/Errors.md +101 -1
  90. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/Fetch.md +10 -0
  91. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/H2CClient.md +3 -2
  92. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/Interceptors.md +17 -9
  93. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/Pool.md +5 -6
  94. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/RedirectHandler.md +13 -10
  95. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/index.md +22 -13
  96. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/type-map.json +66 -66
  97. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/api/readable.js +1 -2
  98. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/cache/memory-cache-store.js +48 -13
  99. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/cache/sqlite-cache-store.js +83 -5
  100. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/core/connect.js +10 -4
  101. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/core/constants.js +12 -1
  102. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/core/errors.js +38 -1
  103. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/core/request.js +39 -3
  104. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/core/symbols.js +2 -0
  105. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/core/util.js +26 -40
  106. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/agent.js +6 -2
  107. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/client-h1.js +127 -84
  108. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/client-h2.js +97 -21
  109. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/client.js +10 -2
  110. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/dispatcher-base.js +3 -2
  111. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/dispatcher1-wrapper.js +20 -3
  112. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +21 -6
  113. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/parser-h1.js +1064 -0
  114. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/pool-base.js +117 -19
  115. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/pool.js +99 -13
  116. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/proxy-agent.js +34 -11
  117. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/retry-agent.js +10 -0
  118. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/round-robin-pool.js +15 -5
  119. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/handler/cache-handler.js +153 -15
  120. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/handler/deduplication-handler.js +126 -52
  121. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/handler/redirect-handler.js +31 -6
  122. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/handler/retry-handler.js +116 -24
  123. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/interceptor/cache.js +15 -4
  124. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/interceptor/decompress.js +253 -73
  125. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/interceptor/dns.js +11 -0
  126. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/interceptor/response-error.js +72 -28
  127. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/milo/LICENSE.md +7 -0
  128. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/milo/no-simd.js +1002 -0
  129. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/milo/simd.js +1002 -0
  130. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/mock/mock-agent.js +11 -0
  131. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/mock/snapshot-recorder.js +3 -2
  132. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/mock/snapshot-utils.js +3 -2
  133. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/util/cache.js +11 -5
  134. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/cache/cache.js +17 -8
  135. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/cache/cachestorage.js +11 -5
  136. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/cookies/index.js +19 -7
  137. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/cookies/util.js +21 -2
  138. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/eventsource/eventsource-stream.js +69 -15
  139. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/eventsource/eventsource.js +50 -3
  140. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/body.js +69 -53
  141. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/data-url.js +6 -6
  142. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/formdata-parser.js +12 -4
  143. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/formdata.js +30 -36
  144. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/headers.js +36 -33
  145. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/index.js +54 -29
  146. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/request.js +74 -79
  147. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/response.js +43 -44
  148. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/util.js +7 -7
  149. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/infra/index.js +16 -1
  150. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/subresource-integrity/subresource-integrity.js +5 -5
  151. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/webidl/index.js +2 -14
  152. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/websocket/connection.js +33 -12
  153. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/websocket/events.js +43 -26
  154. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/websocket/receiver.js +27 -4
  155. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/websocket/stream/websocketerror.js +13 -10
  156. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/websocket/stream/websocketstream.js +19 -4
  157. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/websocket/websocket.js +44 -41
  158. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/package.json +7 -5
  159. package/node_modules/@earendil-works/pi-coding-agent/package.json +2 -2
  160. package/node_modules/@hono/node-server/README.md +2 -0
  161. package/node_modules/@hono/node-server/dist/index.cjs +1 -1
  162. package/node_modules/@hono/node-server/dist/index.mjs +1 -1
  163. package/node_modules/@hono/node-server/dist/serve-static.cjs +2 -1
  164. package/node_modules/@hono/node-server/dist/serve-static.mjs +2 -1
  165. package/node_modules/@hono/node-server/package.json +2 -2
  166. package/node_modules/@smithy/core/dist-cjs/submodules/endpoints/index.browser.js +2 -1
  167. package/node_modules/@smithy/core/dist-cjs/submodules/endpoints/index.js +2 -1
  168. package/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +1695 -3
  169. package/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/cache/EndpointCache.js +2 -1
  170. package/node_modules/@smithy/core/dist-es/submodules/protocols/ConfigurableSerdeContext.js +6 -0
  171. package/node_modules/@smithy/core/dist-es/submodules/protocols/UnionSerde.js +26 -0
  172. package/node_modules/@smithy/core/dist-es/submodules/protocols/common.js +3 -0
  173. package/node_modules/@smithy/core/dist-es/submodules/protocols/index.js +8 -0
  174. package/node_modules/@smithy/core/dist-es/submodules/protocols/json/SmithyRpcV2JsonProtocol.js +102 -0
  175. package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v1/JsonShapeDeserializer.js +8 -1
  176. package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v1/JsonShapeSerializer.js +8 -1
  177. package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v2/JsonShapeDeserializer2.js +13 -2
  178. package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v2/JsonShapeSerializer2.js +11 -1
  179. package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/parseJsonBody.js +16 -1
  180. package/node_modules/@smithy/core/dist-es/submodules/protocols/writeKey.js +3 -0
  181. package/node_modules/@smithy/core/dist-types/submodules/protocols/ConfigurableSerdeContext.d.ts +8 -0
  182. package/node_modules/@smithy/core/dist-types/submodules/protocols/UnionSerde.d.ts +24 -0
  183. package/node_modules/@smithy/core/dist-types/submodules/protocols/common.d.ts +2 -0
  184. package/node_modules/@smithy/core/dist-types/submodules/protocols/index.d.ts +9 -0
  185. package/node_modules/@smithy/core/dist-types/submodules/protocols/json/JsonSettings.d.ts +13 -0
  186. package/node_modules/@smithy/core/dist-types/submodules/protocols/json/SmithyRpcV2JsonProtocol.d.ts +28 -0
  187. package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/parseJsonBody.d.ts +16 -0
  188. package/node_modules/@smithy/core/dist-types/submodules/protocols/writeKey.d.ts +4 -0
  189. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/ConfigurableSerdeContext.d.ts +8 -0
  190. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/UnionSerde.d.ts +24 -0
  191. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/common.d.ts +2 -0
  192. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/index.d.ts +9 -0
  193. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/JsonSettings.d.ts +13 -0
  194. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/SmithyRpcV2JsonProtocol.d.ts +28 -0
  195. package/node_modules/{@aws-sdk → @smithy}/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonCodec.d.ts +15 -11
  196. package/node_modules/{@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json → @smithy/core/dist-types/ts3.4/submodules/protocols/json/codec-v1}/JsonSettings.d.ts +7 -4
  197. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonShapeDeserializer.d.ts +14 -0
  198. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonShapeSerializer.d.ts +29 -0
  199. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonBytesStringAdapter.d.ts +51 -0
  200. package/node_modules/{@aws-sdk → @smithy}/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonCodec2.d.ts +13 -9
  201. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonShapeDeserializer2.d.ts +30 -0
  202. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonShapeSerializer2.d.ts +60 -0
  203. package/node_modules/{@aws-sdk → @smithy}/core/dist-types/ts3.4/submodules/protocols/json/detectBufferParsing.d.ts +1 -1
  204. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/jsonReplacer.d.ts +21 -0
  205. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/jsonReviver.d.ts +15 -0
  206. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/needsReviver.d.ts +11 -0
  207. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/parseJsonBody.d.ts +38 -0
  208. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/writeKey.d.ts +4 -0
  209. package/node_modules/@smithy/core/package.json +2 -1
  210. package/node_modules/@types/node/README.md +1 -1
  211. package/node_modules/@types/node/package.json +2 -2
  212. package/node_modules/@types/node/util.d.ts +6 -3
  213. package/node_modules/content-disposition/README.md +105 -35
  214. package/node_modules/content-disposition/dist/index.d.ts +72 -0
  215. package/node_modules/content-disposition/dist/index.js +388 -0
  216. package/node_modules/content-disposition/dist/index.js.map +1 -0
  217. package/node_modules/content-disposition/package.json +31 -19
  218. package/node_modules/express/Readme.md +15 -9
  219. package/node_modules/express/lib/application.js +2 -2
  220. package/node_modules/express/lib/request.js +32 -19
  221. package/node_modules/express/lib/response.js +27 -30
  222. package/node_modules/express/node_modules/content-type/LICENSE +22 -0
  223. package/node_modules/express/node_modules/content-type/README.md +71 -0
  224. package/node_modules/express/node_modules/content-type/dist/index.d.ts +46 -0
  225. package/node_modules/express/node_modules/content-type/dist/index.js +176 -0
  226. package/node_modules/express/node_modules/content-type/dist/index.js.map +1 -0
  227. package/node_modules/express/node_modules/content-type/package.json +52 -0
  228. package/node_modules/express/package.json +10 -10
  229. package/node_modules/fast-uri/.github/workflows/release.yml +35 -0
  230. package/node_modules/fast-uri/README.md +8 -0
  231. package/node_modules/fast-uri/index.js +98 -18
  232. package/node_modules/fast-uri/lib/utils.js +52 -0
  233. package/node_modules/fast-uri/package.json +1 -1
  234. package/node_modules/fast-uri/test/host-delimiter-security.test.js +94 -0
  235. package/node_modules/fast-uri/test/relative-normalization-security.test.js +156 -0
  236. package/node_modules/fast-uri/test/reserved-path-normalization.test.js +32 -4
  237. package/node_modules/fast-uri/test/scheme-validation.test.js +53 -14
  238. package/node_modules/ip-address/README.md +70 -70
  239. package/node_modules/ip-address/dist/ipv6.js +7 -4
  240. package/node_modules/ip-address/dist/ipv6.js.map +1 -1
  241. package/node_modules/ip-address/dist/v6/constants.d.ts +3 -0
  242. package/node_modules/ip-address/dist/v6/constants.js +3 -0
  243. package/node_modules/ip-address/dist/v6/constants.js.map +1 -1
  244. package/node_modules/ip-address/package.json +2 -1
  245. package/node_modules/jose/README.md +2 -2
  246. package/node_modules/jose/dist/types/jwe/compact/decrypt.d.ts +5 -4
  247. package/node_modules/jose/dist/types/jwe/compact/encrypt.d.ts +4 -4
  248. package/node_modules/jose/dist/types/jwe/flattened/decrypt.d.ts +5 -4
  249. package/node_modules/jose/dist/types/jwe/flattened/encrypt.d.ts +5 -5
  250. package/node_modules/jose/dist/types/jwe/general/decrypt.d.ts +5 -4
  251. package/node_modules/jose/dist/types/jwe/general/encrypt.d.ts +5 -5
  252. package/node_modules/jose/dist/types/jws/compact/sign.d.ts +5 -4
  253. package/node_modules/jose/dist/types/jws/compact/verify.d.ts +5 -5
  254. package/node_modules/jose/dist/types/jws/flattened/sign.d.ts +5 -4
  255. package/node_modules/jose/dist/types/jws/flattened/verify.d.ts +6 -5
  256. package/node_modules/jose/dist/types/jws/general/sign.d.ts +9 -6
  257. package/node_modules/jose/dist/types/jws/general/verify.d.ts +7 -5
  258. package/node_modules/jose/dist/types/jwt/decrypt.d.ts +7 -6
  259. package/node_modules/jose/dist/types/jwt/encrypt.d.ts +1 -1
  260. package/node_modules/jose/dist/types/jwt/sign.d.ts +1 -1
  261. package/node_modules/jose/dist/types/jwt/unsecured.d.ts +1 -1
  262. package/node_modules/jose/dist/types/jwt/verify.d.ts +3 -5
  263. package/node_modules/jose/dist/types/key/export.d.ts +1 -1
  264. package/node_modules/jose/dist/types/key/generate_secret.d.ts +1 -1
  265. package/node_modules/jose/dist/types/key/import.d.ts +2 -2
  266. package/node_modules/jose/dist/types/types.d.ts +165 -107
  267. package/node_modules/jose/dist/types/util/decode_jwt.d.ts +2 -2
  268. package/node_modules/jose/dist/types/util/errors.d.ts +1 -1
  269. package/node_modules/jose/dist/webapi/jwe/general/encrypt.js +3 -3
  270. package/node_modules/jose/dist/webapi/jwk/thumbprint.js +8 -8
  271. package/node_modules/jose/dist/webapi/jwks/local.js +2 -1
  272. package/node_modules/jose/dist/webapi/jwks/remote.js +4 -4
  273. package/node_modules/jose/dist/webapi/jws/general/sign.js +3 -3
  274. package/node_modules/jose/dist/webapi/jws/general/verify.js +3 -3
  275. package/node_modules/jose/dist/webapi/jwt/encrypt.js +2 -2
  276. package/node_modules/jose/dist/webapi/jwt/sign.js +2 -2
  277. package/node_modules/jose/dist/webapi/jwt/unsecured.js +3 -3
  278. package/node_modules/jose/dist/webapi/key/generate_secret.js +4 -4
  279. package/node_modules/jose/dist/webapi/lib/asn1.js +2 -2
  280. package/node_modules/jose/dist/webapi/lib/buffer_utils.js +4 -4
  281. package/node_modules/jose/dist/webapi/lib/content_encryption.js +8 -8
  282. package/node_modules/jose/dist/webapi/lib/jwe_decrypt.js +14 -14
  283. package/node_modules/jose/dist/webapi/lib/jwe_encrypt.js +3 -3
  284. package/node_modules/jose/dist/webapi/lib/jws_algorithms.js +2 -2
  285. package/node_modules/jose/dist/webapi/lib/jws_sign.js +11 -11
  286. package/node_modules/jose/dist/webapi/lib/jws_verify.js +19 -16
  287. package/node_modules/jose/dist/webapi/lib/jwt_claims_set.js +44 -43
  288. package/node_modules/jose/dist/webapi/lib/key.js +4 -4
  289. package/node_modules/jose/dist/webapi/lib/key_management.js +17 -17
  290. package/node_modules/jose/dist/webapi/lib/validate.js +10 -10
  291. package/node_modules/jose/dist/webapi/util/decode_jwt.js +12 -12
  292. package/node_modules/jose/dist/webapi/util/decode_protected_header.js +5 -5
  293. package/node_modules/jose/package.json +1 -1
  294. package/node_modules/qs/.github/THREAT_MODEL.md +4 -2
  295. package/node_modules/qs/CHANGELOG.md +38 -14
  296. package/node_modules/qs/README.md +31 -3
  297. package/node_modules/qs/dist/qs.js +20 -20
  298. package/node_modules/qs/lib/parse.js +94 -4
  299. package/node_modules/qs/lib/stringify.js +4 -4
  300. package/node_modules/qs/lib/utils.js +130 -6
  301. package/node_modules/qs/package.json +4 -4
  302. package/node_modules/qs/test/parse.js +174 -0
  303. package/node_modules/qs/test/stringify.js +263 -33
  304. package/node_modules/qs/test/utils.js +184 -0
  305. package/node_modules/undici/docs/docs/api/Client.md +2 -0
  306. package/node_modules/undici/lib/core/connect.js +10 -4
  307. package/node_modules/undici/lib/core/symbols.js +1 -0
  308. package/node_modules/undici/lib/dispatcher/agent.js +6 -2
  309. package/node_modules/undici/lib/dispatcher/client-h1.js +0 -2
  310. package/node_modules/undici/lib/dispatcher/client-h2.js +0 -4
  311. package/node_modules/undici/lib/dispatcher/client.js +3 -2
  312. package/node_modules/undici/lib/dispatcher/dispatcher-base.js +12 -0
  313. package/node_modules/undici/lib/handler/cache-handler.js +48 -0
  314. package/node_modules/undici/lib/handler/deduplication-handler.js +57 -13
  315. package/node_modules/undici/lib/handler/redirect-handler.js +8 -1
  316. package/node_modules/undici/lib/interceptor/decompress.js +15 -5
  317. package/node_modules/undici/lib/web/cookies/index.js +3 -1
  318. package/node_modules/undici/lib/web/cookies/parse.js +138 -137
  319. package/node_modules/undici/lib/web/cookies/util.js +21 -2
  320. package/node_modules/undici/lib/web/eventsource/eventsource-stream.js +90 -9
  321. package/node_modules/undici/lib/web/eventsource/eventsource.js +4 -1
  322. package/node_modules/undici/lib/web/fetch/index.js +3 -3
  323. package/node_modules/undici/lib/web/infra/index.js +14 -0
  324. package/node_modules/undici/lib/web/subresource-integrity/subresource-integrity.js +5 -5
  325. package/node_modules/undici/lib/web/websocket/receiver.js +13 -0
  326. package/node_modules/undici/package.json +1 -1
  327. package/node_modules/undici/types/client.d.ts +14 -0
  328. package/node_modules/zod/package.json +1 -1
  329. package/node_modules/zod/src/v4/classic/tests/array.test.ts +27 -0
  330. package/node_modules/zod/src/v4/classic/tests/map.test.ts +7 -0
  331. package/node_modules/zod/src/v4/classic/tests/set.test.ts +6 -0
  332. package/node_modules/zod/src/v4/core/compile.ts +9 -0
  333. package/node_modules/zod/src/v4/core/schemas.ts +35 -1
  334. package/node_modules/zod/src/v4/core/util.ts +13 -0
  335. package/node_modules/zod/src/v4/core/versions.ts +1 -1
  336. package/node_modules/zod/v4/core/compile.cjs +8 -0
  337. package/node_modules/zod/v4/core/compile.js +8 -0
  338. package/node_modules/zod/v4/core/schemas.cjs +30 -0
  339. package/node_modules/zod/v4/core/schemas.d.cts +3 -1
  340. package/node_modules/zod/v4/core/schemas.d.ts +3 -1
  341. package/node_modules/zod/v4/core/schemas.js +30 -0
  342. package/node_modules/zod/v4/core/util.cjs +15 -0
  343. package/node_modules/zod/v4/core/util.d.cts +2 -0
  344. package/node_modules/zod/v4/core/util.d.ts +2 -0
  345. package/node_modules/zod/v4/core/util.js +14 -0
  346. package/node_modules/zod/v4/core/versions.cjs +1 -1
  347. package/node_modules/zod/v4/core/versions.js +1 -1
  348. package/package.json +5 -4
  349. package/slingshot/index.js +214 -214
  350. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/codec-v1/JsonSettings.d.ts +0 -7
  351. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonSettings.d.ts +0 -4
  352. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonShapeDeserializer.d.ts +0 -13
  353. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonShapeSerializer.d.ts +0 -18
  354. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonBytesStringAdapter.d.ts +0 -27
  355. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonShapeDeserializer2.d.ts +0 -15
  356. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonShapeSerializer2.d.ts +0 -39
  357. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/jsonReplacer.d.ts +0 -7
  358. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/jsonReviver.d.ts +0 -7
  359. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/needsReviver.d.ts +0 -2
  360. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/parseJsonBody.d.ts +0 -14
  361. package/node_modules/@esbuild/linux-x64/README.md +0 -3
  362. package/node_modules/@esbuild/linux-x64/bin/esbuild +0 -0
  363. package/node_modules/@esbuild/linux-x64/package.json +0 -20
  364. package/node_modules/content-disposition/index.js +0 -536
  365. package/node_modules/esbuild/LICENSE.md +0 -21
  366. package/node_modules/esbuild/README.md +0 -3
  367. package/node_modules/esbuild/bin/esbuild +0 -0
  368. package/node_modules/esbuild/install.js +0 -300
  369. package/node_modules/esbuild/lib/main.d.ts +0 -720
  370. package/node_modules/esbuild/lib/main.js +0 -2536
  371. package/node_modules/esbuild/package.json +0 -74
  372. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/JsonSettings.js +0 -0
  373. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v1/JsonCodec.js +0 -0
  374. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v1/JsonSettings.js +0 -0
  375. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v2/JsonBytesStringAdapter.js +0 -0
  376. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v2/JsonCodec2.js +0 -0
  377. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/detectBufferParsing.js +0 -0
  378. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/jsonReplacer.js +0 -0
  379. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/jsonReviver.js +0 -0
  380. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/needsReviver.js +0 -0
  381. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v1/JsonCodec.d.ts +0 -0
  382. /package/node_modules/{@aws-sdk/core/dist-types/submodules/protocols/json → @smithy/core/dist-types/submodules/protocols/json/codec-v1}/JsonSettings.d.ts +0 -0
  383. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v1/JsonShapeDeserializer.d.ts +0 -0
  384. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v1/JsonShapeSerializer.d.ts +0 -0
  385. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v2/JsonBytesStringAdapter.d.ts +0 -0
  386. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v2/JsonCodec2.d.ts +0 -0
  387. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v2/JsonShapeDeserializer2.d.ts +0 -0
  388. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v2/JsonShapeSerializer2.d.ts +0 -0
  389. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/detectBufferParsing.d.ts +0 -0
  390. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/jsonReplacer.d.ts +0 -0
  391. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/jsonReviver.d.ts +0 -0
  392. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/needsReviver.d.ts +0 -0
@@ -1,12 +1,12 @@
1
- const { Uint8ArrayBlobAdapter, sdkStreamMixin, splitEvery, splitHeader, fromBase64, _parseEpochTimestamp, _parseRfc7231DateTime, _parseRfc3339DateTimeWithOffset, LazyJsonString, NumericValue, toUtf8, fromUtf8, generateIdempotencyToken, toBase64, dateToUtcString, quoteHeader } = require("@smithy/core/serde");
2
- const { HttpRequest, HttpResponse, hasOwn, isValidHostname } = require("@smithy/core/transport");
1
+ const { Uint8ArrayBlobAdapter, sdkStreamMixin, splitEvery, splitHeader, fromBase64, _parseEpochTimestamp, _parseRfc7231DateTime, _parseRfc3339DateTimeWithOffset, LazyJsonString, NumericValue, toUtf8, fromUtf8, generateIdempotencyToken, toBase64, dateToUtcString, quoteHeader, parseEpochTimestamp, parseRfc7231DateTime, parseRfc3339DateTimeWithOffset } = require("@smithy/core/serde");
2
+ const { HttpRequest, HttpResponse, hasOwn, isValidHostname, getSmithyContext } = require("@smithy/core/transport");
3
3
  const { parseQueryString, parseUrl } = require("@smithy/core/transport");
4
4
  exports.HttpRequest = HttpRequest;
5
5
  exports.HttpResponse = HttpResponse;
6
6
  exports.isValidHostname = isValidHostname;
7
7
  exports.parseQueryString = parseQueryString;
8
8
  exports.parseUrl = parseUrl;
9
- const { TypeRegistry, NormalizedSchema, translateTraits } = require("@smithy/core/schema");
9
+ const { TypeRegistry, NormalizedSchema, translateTraits, deref } = require("@smithy/core/schema");
10
10
  const { FieldPosition } = require("@smithy/types");
11
11
 
12
12
  const collectBody = async (streamBody = new Uint8Array(), context) => {
@@ -1073,6 +1073,1686 @@ function buildQueryString(query) {
1073
1073
  return parts.join("&");
1074
1074
  }
1075
1075
 
1076
+ class SerdeContextConfig {
1077
+ serdeContext;
1078
+ setSerdeContext(serdeContext) {
1079
+ this.serdeContext = serdeContext;
1080
+ }
1081
+ }
1082
+
1083
+ class UnionSerde {
1084
+ from;
1085
+ to;
1086
+ keys;
1087
+ constructor(from, to) {
1088
+ this.from = from;
1089
+ this.to = to;
1090
+ const keys = Object.keys(this.from);
1091
+ const set = new Set(keys);
1092
+ set.delete("__type");
1093
+ this.keys = set;
1094
+ }
1095
+ mark(key) {
1096
+ this.keys.delete(key);
1097
+ }
1098
+ hasUnknown() {
1099
+ return this.keys.size === 1 && Object.keys(this.to).length === 0;
1100
+ }
1101
+ writeUnknown() {
1102
+ if (this.hasUnknown()) {
1103
+ const k = this.keys.values().next().value;
1104
+ const v = this.from[k];
1105
+ this.to.$unknown = [k, v];
1106
+ }
1107
+ }
1108
+ }
1109
+
1110
+ let canParseBuffer;
1111
+ function detectBufferParsing() {
1112
+ if (canParseBuffer === undefined) {
1113
+ try {
1114
+ if (typeof Buffer !== "function") {
1115
+ canParseBuffer = false;
1116
+ }
1117
+ else {
1118
+ const result = JSON.parse(Buffer.from([0x7b, 0x7d]));
1119
+ canParseBuffer = result !== null && typeof result === "object";
1120
+ }
1121
+ }
1122
+ catch {
1123
+ canParseBuffer = false;
1124
+ }
1125
+ }
1126
+ return canParseBuffer;
1127
+ }
1128
+
1129
+ function jsonReviver(key, value, context) {
1130
+ if (context?.source) {
1131
+ const numericString = context.source;
1132
+ if (typeof value === "number") {
1133
+ const inSafeRange = value <= Number.MAX_SAFE_INTEGER && value >= Number.MIN_SAFE_INTEGER;
1134
+ if (inSafeRange) {
1135
+ if (isRepresentable(numericString, value)) {
1136
+ return value;
1137
+ }
1138
+ return new NumericValue(numericString, "bigDecimal");
1139
+ }
1140
+ else {
1141
+ if (isFractionalBigNumeric(numericString)) {
1142
+ return new NumericValue(numericString, "bigDecimal");
1143
+ }
1144
+ if (/[eE]/.test(numericString)) {
1145
+ return expandExponentToBigInt(numericString);
1146
+ }
1147
+ return BigInt(numericString);
1148
+ }
1149
+ }
1150
+ }
1151
+ return value;
1152
+ }
1153
+ function isFractionalBigNumeric(s) {
1154
+ const dotIndex = s.indexOf(".");
1155
+ if (dotIndex === -1) {
1156
+ return false;
1157
+ }
1158
+ const eIndex = s.search(/[eE]/);
1159
+ if (eIndex === -1) {
1160
+ return true;
1161
+ }
1162
+ const fracDigits = eIndex - dotIndex - 1;
1163
+ const exp = parseInt(s.slice(eIndex + 1), 10);
1164
+ return exp < fracDigits;
1165
+ }
1166
+ function isRepresentable(numericString, value) {
1167
+ if (numericString === String(value)) {
1168
+ return true;
1169
+ }
1170
+ if (Object.is(value, -0)) {
1171
+ return true;
1172
+ }
1173
+ if (/[eE]/.test(numericString)) {
1174
+ return expandToDecimal(numericString) === expandToDecimal(String(value));
1175
+ }
1176
+ const normalized = numericString.replace(/(\.\d*?)0+$/, "$1").replace(/\.$/, "");
1177
+ const canonical = String(value);
1178
+ if (normalized === canonical) {
1179
+ return true;
1180
+ }
1181
+ if (/[eE]/.test(canonical)) {
1182
+ return normalized === expandToDecimal(canonical);
1183
+ }
1184
+ return false;
1185
+ }
1186
+ function expandToDecimal(s) {
1187
+ const negative = s.startsWith("-");
1188
+ const abs = negative ? s.slice(1) : s;
1189
+ const eIndex = abs.search(/[eE]/);
1190
+ let result;
1191
+ if (eIndex === -1) {
1192
+ result = abs;
1193
+ }
1194
+ else {
1195
+ const exp = parseInt(abs.slice(eIndex + 1), 10);
1196
+ const mantissa = abs.slice(0, eIndex);
1197
+ const dotIndex = mantissa.indexOf(".");
1198
+ let digits;
1199
+ let intLen;
1200
+ if (dotIndex === -1) {
1201
+ digits = mantissa;
1202
+ intLen = mantissa.length;
1203
+ }
1204
+ else {
1205
+ digits = mantissa.slice(0, dotIndex) + mantissa.slice(dotIndex + 1);
1206
+ intLen = dotIndex;
1207
+ }
1208
+ digits = digits.replace(/0+$/, "") || "0";
1209
+ const newDotPos = intLen + exp;
1210
+ if (digits === "0") {
1211
+ result = "0";
1212
+ }
1213
+ else if (newDotPos <= 0) {
1214
+ result = "0." + "0".repeat(-newDotPos) + digits;
1215
+ }
1216
+ else if (newDotPos >= digits.length) {
1217
+ result = digits + "0".repeat(newDotPos - digits.length);
1218
+ }
1219
+ else {
1220
+ result = digits.slice(0, newDotPos) + "." + digits.slice(newDotPos);
1221
+ }
1222
+ }
1223
+ if (result.includes(".")) {
1224
+ result = result.replace(/(\.\d*?)0+$/, "$1").replace(/\.$/, "");
1225
+ }
1226
+ return (negative ? "-" : "") + result;
1227
+ }
1228
+ function expandExponentToBigInt(s) {
1229
+ const eIndex = s.search(/[eE]/);
1230
+ const exp = parseInt(s.slice(eIndex + 1), 10);
1231
+ const negative = s.startsWith("-");
1232
+ const mantissa = s.slice(negative ? 1 : 0, eIndex);
1233
+ const dotIndex = mantissa.indexOf(".");
1234
+ let digits;
1235
+ let shift;
1236
+ if (dotIndex === -1) {
1237
+ digits = mantissa;
1238
+ shift = exp;
1239
+ }
1240
+ else {
1241
+ digits = mantissa.slice(0, dotIndex) + mantissa.slice(dotIndex + 1);
1242
+ const fracDigits = mantissa.length - dotIndex - 1;
1243
+ shift = exp - fracDigits;
1244
+ }
1245
+ digits = digits.replace(/0+$/, "") || "0";
1246
+ const result = BigInt(digits) * 10n ** BigInt(shift + (mantissa.replace(".", "").length - digits.length));
1247
+ return negative ? -result : result;
1248
+ }
1249
+
1250
+ const REVIVER_SYMBOL = Symbol.for("@aws-sdk/reviver");
1251
+ function needsReviver(schema) {
1252
+ const ns = NormalizedSchema.of(schema);
1253
+ const raw = ns.getSchema();
1254
+ if (Array.isArray(raw) && ns.isStructSchema()) {
1255
+ if (REVIVER_SYMBOL in raw) {
1256
+ return raw[REVIVER_SYMBOL];
1257
+ }
1258
+ const result = _check(ns, new Set());
1259
+ raw[REVIVER_SYMBOL] = result;
1260
+ return result;
1261
+ }
1262
+ return _check(ns, new Set());
1263
+ }
1264
+ function _check(ns, seen) {
1265
+ const raw = ns.getSchema();
1266
+ if (seen.has(raw)) {
1267
+ return false;
1268
+ }
1269
+ seen.add(raw);
1270
+ if (ns.isBigIntegerSchema() || ns.isBigDecimalSchema()) {
1271
+ return true;
1272
+ }
1273
+ if (ns.isStructSchema()) {
1274
+ for (const [, memberSchema] of ns.structIterator()) {
1275
+ if (_check(memberSchema, seen)) {
1276
+ return true;
1277
+ }
1278
+ }
1279
+ }
1280
+ else if (ns.isListSchema() || ns.isMapSchema()) {
1281
+ if (_check(ns.getValueSchema(), seen)) {
1282
+ return true;
1283
+ }
1284
+ }
1285
+ else if (ns.isDocumentSchema()) {
1286
+ return true;
1287
+ }
1288
+ return false;
1289
+ }
1290
+
1291
+ const collectBodyString = (streamBody, context) => collectBody(streamBody, context).then((body) => (context?.utf8Encoder ?? toUtf8)(body));
1292
+
1293
+ async function parseJsonBody(streamBody, context, schema) {
1294
+ let parsingInput;
1295
+ if (detectBufferParsing() && typeof streamBody?.[Symbol.asyncIterator] === "function") {
1296
+ const buffer = await collectBody(streamBody, context);
1297
+ if (typeof Buffer === "function") {
1298
+ if (Buffer.isBuffer(buffer)) {
1299
+ parsingInput = buffer;
1300
+ }
1301
+ else {
1302
+ parsingInput = Buffer.from(buffer.buffer, buffer.byteOffset, buffer.byteLength);
1303
+ }
1304
+ }
1305
+ }
1306
+ if (!parsingInput) {
1307
+ parsingInput = await collectBodyString(streamBody, context);
1308
+ }
1309
+ if (parsingInput.length === 0) {
1310
+ return {};
1311
+ }
1312
+ const reviver = schema && needsReviver(schema) ? jsonReviver : undefined;
1313
+ try {
1314
+ return JSON.parse(parsingInput, reviver);
1315
+ }
1316
+ catch (e) {
1317
+ if (e?.name === "SyntaxError") {
1318
+ Object.defineProperty(e, "$responseBodyText", {
1319
+ value: typeof parsingInput === "string" ? parsingInput : parsingInput.toString("utf8"),
1320
+ });
1321
+ }
1322
+ throw e;
1323
+ }
1324
+ }
1325
+ const parseJsonErrorBody = async (errorBody, context) => {
1326
+ const value = await parseJsonBody(errorBody, context);
1327
+ value.message = value.message ?? value.Message;
1328
+ return value;
1329
+ };
1330
+ const findKey = (object, key) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase());
1331
+ const sanitizeErrorCode = (rawValue) => {
1332
+ let cleanValue = rawValue;
1333
+ if (typeof cleanValue === "number") {
1334
+ cleanValue = cleanValue.toString();
1335
+ }
1336
+ if (cleanValue.indexOf(",") >= 0) {
1337
+ cleanValue = cleanValue.split(",")[0];
1338
+ }
1339
+ if (cleanValue.indexOf(":") >= 0) {
1340
+ cleanValue = cleanValue.split(":")[0];
1341
+ }
1342
+ if (cleanValue.indexOf("#") >= 0) {
1343
+ cleanValue = cleanValue.split("#")[1];
1344
+ }
1345
+ return cleanValue;
1346
+ };
1347
+ const loadRestJsonErrorCode = (output, data) => {
1348
+ return loadErrorCode(output, data, ["header", "code", "type"]);
1349
+ };
1350
+ const loadJsonRpcErrorCode = (output, data, queryCompat = false) => {
1351
+ return loadErrorCode(output, data, queryCompat ? ["code", "header", "type"] : ["type", "code", "header"]);
1352
+ };
1353
+ const loadSmithyRpcV2JsonErrorCode = (output, data) => {
1354
+ if (data?.__type !== undefined) {
1355
+ let cleanValue = data.__type;
1356
+ if (typeof cleanValue === "number") {
1357
+ cleanValue = cleanValue.toString();
1358
+ }
1359
+ if (cleanValue.indexOf(",") >= 0) {
1360
+ cleanValue = cleanValue.split(",")[0];
1361
+ }
1362
+ if (cleanValue.indexOf(":") >= 0) {
1363
+ cleanValue = cleanValue.split(":")[0];
1364
+ }
1365
+ return cleanValue;
1366
+ }
1367
+ };
1368
+ const loadErrorCode = ({ headers }, data, order) => {
1369
+ while (order.length > 0) {
1370
+ const location = order.shift();
1371
+ switch (location) {
1372
+ case "header":
1373
+ const headerKey = findKey(headers ?? {}, "x-amzn-errortype");
1374
+ if (headerKey !== undefined) {
1375
+ return sanitizeErrorCode(headers[headerKey]);
1376
+ }
1377
+ break;
1378
+ case "code":
1379
+ const codeKey = findKey(data ?? {}, "code");
1380
+ if (codeKey && data[codeKey] !== undefined) {
1381
+ return sanitizeErrorCode(data[codeKey]);
1382
+ }
1383
+ break;
1384
+ case "type":
1385
+ if (data?.__type !== undefined) {
1386
+ return sanitizeErrorCode(data.__type);
1387
+ }
1388
+ break;
1389
+ }
1390
+ }
1391
+ };
1392
+
1393
+ function writeKey(obj) {
1394
+ Object.defineProperty(obj, "__proto__", { value: undefined, writable: true, enumerable: true, configurable: true });
1395
+ }
1396
+
1397
+ class JsonShapeDeserializer2 extends SerdeContextConfig {
1398
+ settings;
1399
+ constructor(settings) {
1400
+ super();
1401
+ this.settings = settings;
1402
+ }
1403
+ async read(schema, data) {
1404
+ const reviver = needsReviver(schema) ? jsonReviver : undefined;
1405
+ let parsed;
1406
+ if (typeof data === "string") {
1407
+ if (data.length === 0) {
1408
+ return {};
1409
+ }
1410
+ parsed = JSON.parse(data, reviver);
1411
+ }
1412
+ else if (data instanceof Uint8Array && detectBufferParsing()) {
1413
+ if (data.byteLength === 0) {
1414
+ return {};
1415
+ }
1416
+ const buf = Buffer.isBuffer(data) ? data : Buffer.from(data.buffer, data.byteOffset, data.byteLength);
1417
+ parsed = JSON.parse(buf, reviver);
1418
+ }
1419
+ else {
1420
+ parsed = await parseJsonBody(data, this.serdeContext, schema);
1421
+ }
1422
+ return this._read(schema, parsed);
1423
+ }
1424
+ readObject(schema, data) {
1425
+ return this._read(schema, data);
1426
+ }
1427
+ _read(schema, value) {
1428
+ const isObject = value !== null && typeof value === "object";
1429
+ const ns = NormalizedSchema.of(schema);
1430
+ if (isObject) {
1431
+ if (ns.isStructSchema()) {
1432
+ return this._readStruct(ns, value);
1433
+ }
1434
+ if (Array.isArray(value) && ns.isListSchema()) {
1435
+ const listMember = ns.getValueSchema();
1436
+ if (this.needsTransform(listMember)) {
1437
+ for (let i = 0; i < value.length; ++i) {
1438
+ value[i] = this._read(listMember, value[i]);
1439
+ }
1440
+ }
1441
+ return value;
1442
+ }
1443
+ if (ns.isMapSchema()) {
1444
+ const mapMember = ns.getValueSchema();
1445
+ const map = value;
1446
+ if (this.needsTransform(mapMember)) {
1447
+ for (const k in map) {
1448
+ if (!hasOwn(map, k))
1449
+ continue;
1450
+ if (k === "__proto__") {
1451
+ writeKey(map);
1452
+ }
1453
+ map[k] = this._read(mapMember, map[k]);
1454
+ }
1455
+ }
1456
+ return map;
1457
+ }
1458
+ }
1459
+ if (ns.isBlobSchema() && typeof value === "string") {
1460
+ return fromBase64(value);
1461
+ }
1462
+ const mediaType = ns.getMergedTraits().mediaType;
1463
+ if (ns.isStringSchema() && typeof value === "string" && mediaType) {
1464
+ const isJson = mediaType === "application/json" || mediaType.endsWith("+json");
1465
+ if (isJson) {
1466
+ return LazyJsonString.from(value);
1467
+ }
1468
+ return value;
1469
+ }
1470
+ if (ns.isTimestampSchema() && value != null) {
1471
+ const format = determineTimestampFormat(ns, this.settings);
1472
+ switch (format) {
1473
+ case 5:
1474
+ return parseRfc3339DateTimeWithOffset(value);
1475
+ case 6:
1476
+ return parseRfc7231DateTime(value);
1477
+ case 7:
1478
+ return parseEpochTimestamp(value);
1479
+ default:
1480
+ console.warn("Missing timestamp format, parsing value with Date constructor:", value);
1481
+ return new Date(value);
1482
+ }
1483
+ }
1484
+ if (ns.isBigIntegerSchema() && (typeof value === "number" || typeof value === "string")) {
1485
+ return BigInt(value);
1486
+ }
1487
+ if (ns.isBigDecimalSchema() && value != undefined) {
1488
+ if (value instanceof NumericValue) {
1489
+ return value;
1490
+ }
1491
+ const untyped = value;
1492
+ if (untyped.type === "bigDecimal" && "string" in untyped) {
1493
+ return new NumericValue(untyped.string, untyped.type);
1494
+ }
1495
+ return new NumericValue(String(value), "bigDecimal");
1496
+ }
1497
+ if (ns.isNumericSchema() && typeof value === "string") {
1498
+ switch (value) {
1499
+ case "Infinity":
1500
+ return Infinity;
1501
+ case "-Infinity":
1502
+ return -Infinity;
1503
+ case "NaN":
1504
+ return NaN;
1505
+ }
1506
+ return value;
1507
+ }
1508
+ if (ns.isDocumentSchema()) {
1509
+ if (isObject) {
1510
+ if (Array.isArray(value)) {
1511
+ for (let i = 0; i < value.length; ++i) {
1512
+ const v = value[i];
1513
+ if (!(v instanceof NumericValue)) {
1514
+ value[i] = this._read(ns, v);
1515
+ }
1516
+ }
1517
+ }
1518
+ else {
1519
+ const doc = value;
1520
+ for (const k in doc) {
1521
+ if (!hasOwn(doc, k))
1522
+ continue;
1523
+ if (k === "__proto__") {
1524
+ writeKey(doc);
1525
+ }
1526
+ const v = doc[k];
1527
+ if (!(v instanceof NumericValue)) {
1528
+ doc[k] = this._read(ns, v);
1529
+ }
1530
+ }
1531
+ }
1532
+ }
1533
+ }
1534
+ return value;
1535
+ }
1536
+ _readStruct(ns, record) {
1537
+ const union = ns.isUnionSchema();
1538
+ const out = {};
1539
+ let nameMap;
1540
+ const hasType = typeof record.__type === "string";
1541
+ const { jsonName } = this.settings;
1542
+ if (jsonName && hasType) {
1543
+ nameMap = {};
1544
+ }
1545
+ let unionSerde;
1546
+ if (union) {
1547
+ unionSerde = new UnionSerde(record, out);
1548
+ }
1549
+ for (const [memberName, memberSchema] of ns.structIterator()) {
1550
+ let fromKey = memberName;
1551
+ if (jsonName) {
1552
+ fromKey = memberSchema.getMergedTraits().jsonName ?? fromKey;
1553
+ if (hasType) {
1554
+ nameMap[fromKey] = memberName;
1555
+ }
1556
+ }
1557
+ if (union) {
1558
+ unionSerde.mark(fromKey);
1559
+ }
1560
+ if (record[fromKey] != null) {
1561
+ out[memberName] = this._read(memberSchema, record[fromKey]);
1562
+ }
1563
+ }
1564
+ if (union) {
1565
+ unionSerde.writeUnknown();
1566
+ }
1567
+ else if (hasType) {
1568
+ for (const k in record) {
1569
+ if (!hasOwn(record, k))
1570
+ continue;
1571
+ const v = record[k];
1572
+ const t = jsonName ? (nameMap[k] ?? k) : k;
1573
+ if (!(t in out)) {
1574
+ out[t] = v;
1575
+ }
1576
+ }
1577
+ }
1578
+ return out;
1579
+ }
1580
+ needsTransform(ns) {
1581
+ if (ns.isBlobSchema() ||
1582
+ ns.isTimestampSchema() ||
1583
+ ns.isBigIntegerSchema() ||
1584
+ ns.isBigDecimalSchema() ||
1585
+ ns.isNumericSchema()) {
1586
+ return true;
1587
+ }
1588
+ if (ns.isDocumentSchema() || ns.isStructSchema() || ns.isListSchema() || ns.isMapSchema()) {
1589
+ return true;
1590
+ }
1591
+ if (ns.isStringSchema() && ns.getMergedTraits().mediaType) {
1592
+ return true;
1593
+ }
1594
+ return false;
1595
+ }
1596
+ }
1597
+
1598
+ class JsonBytesStringAdapter extends Uint8Array {
1599
+ string = null;
1600
+ static allocUnsafe(bytes) {
1601
+ if (typeof Buffer === "function") {
1602
+ const buffer = Buffer.allocUnsafe(bytes);
1603
+ return new JsonBytesStringAdapter(buffer.buffer, buffer.byteOffset, buffer.byteLength);
1604
+ }
1605
+ return new JsonBytesStringAdapter(bytes);
1606
+ }
1607
+ toString() {
1608
+ return this.s();
1609
+ }
1610
+ valueOf() {
1611
+ return this.s();
1612
+ }
1613
+ includes(searchString, position) {
1614
+ if (typeof searchString === "string") {
1615
+ return this.s().includes(searchString, position);
1616
+ }
1617
+ return Uint8Array.prototype.includes.call(this, searchString, position);
1618
+ }
1619
+ indexOf(searchString, position) {
1620
+ if (typeof searchString === "string") {
1621
+ return this.s().indexOf(searchString, position);
1622
+ }
1623
+ return Uint8Array.prototype.indexOf.call(this, searchString, position);
1624
+ }
1625
+ lastIndexOf(searchString, position) {
1626
+ if (typeof searchString === "string") {
1627
+ return this.s().lastIndexOf(searchString, position);
1628
+ }
1629
+ const fn = Uint8Array.prototype.lastIndexOf;
1630
+ if (position !== undefined) {
1631
+ return fn.call(this, searchString, position);
1632
+ }
1633
+ return fn.call(this, searchString);
1634
+ }
1635
+ startsWith(searchString, position) {
1636
+ return this.s().startsWith(searchString, position);
1637
+ }
1638
+ endsWith(searchString, endPosition) {
1639
+ return this.s().endsWith(searchString, endPosition);
1640
+ }
1641
+ match(regexp) {
1642
+ return this.s().match(regexp);
1643
+ }
1644
+ replace(searchValue, replaceValue) {
1645
+ return this.s().replace(searchValue, replaceValue);
1646
+ }
1647
+ search(regexp) {
1648
+ return this.s().search(regexp);
1649
+ }
1650
+ split(separator, limit) {
1651
+ return this.s().split(separator, limit);
1652
+ }
1653
+ substring(start, end) {
1654
+ return this.s().substring(start, end);
1655
+ }
1656
+ trim() {
1657
+ return this.s().trim();
1658
+ }
1659
+ trimStart() {
1660
+ return this.s().trimStart();
1661
+ }
1662
+ trimEnd() {
1663
+ return this.s().trimEnd();
1664
+ }
1665
+ charAt(pos) {
1666
+ return this.s().charAt(pos);
1667
+ }
1668
+ charCodeAt(index) {
1669
+ return this.s().charCodeAt(index);
1670
+ }
1671
+ padStart(maxLength, fillString) {
1672
+ return this.s().padStart(maxLength, fillString);
1673
+ }
1674
+ padEnd(maxLength, fillString) {
1675
+ return this.s().padEnd(maxLength, fillString);
1676
+ }
1677
+ repeat(count) {
1678
+ return this.s().repeat(count);
1679
+ }
1680
+ toUpperCase() {
1681
+ return this.s().toUpperCase();
1682
+ }
1683
+ toLowerCase() {
1684
+ return this.s().toLowerCase();
1685
+ }
1686
+ s() {
1687
+ if (this.string == null) {
1688
+ const n = Date.now();
1689
+ if (n > warned + 60_000) {
1690
+ console.warn("@aws-sdk/core/protocols - WARN - JsonCodec2: you have called a string method on a Uint8Array request body. " +
1691
+ "It has been automatically converted to string. In a future version this will throw an error.");
1692
+ warned = n;
1693
+ }
1694
+ this.string = toUtf8(this);
1695
+ }
1696
+ return this.string;
1697
+ }
1698
+ }
1699
+ var warned = 0;
1700
+
1701
+ const encoder = new TextEncoder();
1702
+ const OPEN_BRACE = 0x7b;
1703
+ const CLOSE_BRACE = 0x7d;
1704
+ const OPEN_BRACKET = 0x5b;
1705
+ const CLOSE_BRACKET = 0x5d;
1706
+ const QUOTE = 0x22;
1707
+ const COLON = 0x3a;
1708
+ const COMMA = 0x2c;
1709
+ const BACKSLASH = 0x5c;
1710
+ const TRUE = new Uint8Array([0x74, 0x72, 0x75, 0x65]);
1711
+ const FALSE = new Uint8Array([0x66, 0x61, 0x6c, 0x73, 0x65]);
1712
+ const NULL = new Uint8Array([0x6e, 0x75, 0x6c, 0x6c]);
1713
+ const ESCAPE_TABLE = new Array(128).fill(null);
1714
+ ESCAPE_TABLE[0x08] = "b";
1715
+ ESCAPE_TABLE[0x09] = "t";
1716
+ ESCAPE_TABLE[0x0a] = "n";
1717
+ ESCAPE_TABLE[0x0c] = "f";
1718
+ ESCAPE_TABLE[0x0d] = "r";
1719
+ ESCAPE_TABLE[0x22] = '"';
1720
+ ESCAPE_TABLE[0x5c] = "\\";
1721
+ for (let i = 0; i < 0x20; i++) {
1722
+ if (ESCAPE_TABLE[i] === null) {
1723
+ ESCAPE_TABLE[i] = "u00" + i.toString(16).padStart(2, "0");
1724
+ }
1725
+ }
1726
+ const INITIAL_BUFFER_SIZE = 2048;
1727
+ function alloc(size) {
1728
+ return JsonBytesStringAdapter.allocUnsafe(size);
1729
+ }
1730
+ class JsonShapeSerializer2 extends SerdeContextConfig {
1731
+ settings;
1732
+ json;
1733
+ i = 0;
1734
+ rootSchema;
1735
+ rawValue;
1736
+ passthrough = false;
1737
+ constructor(settings) {
1738
+ super();
1739
+ this.settings = settings;
1740
+ this.json = alloc(INITIAL_BUFFER_SIZE);
1741
+ }
1742
+ write(schema, value) {
1743
+ this.i = 0;
1744
+ this.rawValue = value;
1745
+ this.rootSchema = NormalizedSchema.of(schema);
1746
+ this.passthrough = this.rootSchema.isBlobSchema() || this.rootSchema.isStringSchema();
1747
+ if (!this.passthrough) {
1748
+ this.writeValue(this.rootSchema, value, undefined);
1749
+ }
1750
+ }
1751
+ writeDiscriminatedDocument(schema, value) {
1752
+ this.i = 0;
1753
+ this.rootSchema = NormalizedSchema.of(schema);
1754
+ const ns = this.rootSchema;
1755
+ if (ns.isStructSchema() && value != null && typeof value === "object") {
1756
+ this.writeValue(ns, value, undefined);
1757
+ const prefix = `"__type":"${ns.getName(true) ?? "Unknown"}",`;
1758
+ const z = prefix.length;
1759
+ this.ensure(z);
1760
+ this.json.copyWithin(1 + z, 1, this.i);
1761
+ encoder.encodeInto(prefix, this.json.subarray(1));
1762
+ this.i += z;
1763
+ }
1764
+ else {
1765
+ this.writeValue(ns, value, undefined);
1766
+ }
1767
+ }
1768
+ flush() {
1769
+ this.rootSchema = undefined;
1770
+ const finalPosition = this.i;
1771
+ this.i = 0;
1772
+ const raw = this.rawValue;
1773
+ this.rawValue = undefined;
1774
+ if (finalPosition === 0) {
1775
+ return raw;
1776
+ }
1777
+ const result = this.json.subarray(0, finalPosition);
1778
+ this.json = alloc(INITIAL_BUFFER_SIZE);
1779
+ return result;
1780
+ }
1781
+ ensure(byteCount) {
1782
+ const { i, json } = this;
1783
+ if (i + byteCount > json.length) {
1784
+ let newSize = json.length * 2;
1785
+ while (newSize < i + byteCount) {
1786
+ newSize *= 2;
1787
+ }
1788
+ const next = alloc(newSize);
1789
+ next.set(this.json);
1790
+ this.json = next;
1791
+ }
1792
+ }
1793
+ writeAscii(s) {
1794
+ const z = s.length;
1795
+ this.ensure(z);
1796
+ let { i, json } = this;
1797
+ for (let j = 0; j < z; ++j) {
1798
+ json[i] = s.charCodeAt(j);
1799
+ i += 1;
1800
+ }
1801
+ this.i = i;
1802
+ }
1803
+ writeAsciiQuoted(s) {
1804
+ const z = s.length;
1805
+ this.ensure(z + 4);
1806
+ let { json, i } = this;
1807
+ json[i++] = QUOTE;
1808
+ for (let j = 0; j < z; ++j) {
1809
+ json[i++] = s.charCodeAt(j);
1810
+ }
1811
+ json[i++] = QUOTE;
1812
+ this.i = i;
1813
+ }
1814
+ writeJsonString(s) {
1815
+ this.ensure(s.length * 3 + 2);
1816
+ this.json[this.i++] = QUOTE;
1817
+ const z = s.length;
1818
+ for (let j = 0; j < z; ++j) {
1819
+ const c = s.charCodeAt(j);
1820
+ if (c > 0x22 && c < 0x5c) {
1821
+ this.json[this.i++] = c;
1822
+ }
1823
+ else if (c < 0x80) {
1824
+ const esc = ESCAPE_TABLE[c];
1825
+ if (esc !== null) {
1826
+ this.ensure(esc.length + 1);
1827
+ this.json[this.i++] = BACKSLASH;
1828
+ for (let k = 0; k < esc.length; k++) {
1829
+ this.json[this.i++] = esc.charCodeAt(k);
1830
+ }
1831
+ }
1832
+ else {
1833
+ this.json[this.i++] = c;
1834
+ }
1835
+ }
1836
+ else if (c >= 0xd800 && c <= 0xdbff) {
1837
+ const next = j + 1 < z ? s.charCodeAt(j + 1) : 0;
1838
+ if (next >= 0xdc00 && next <= 0xdfff) {
1839
+ this.ensure(4);
1840
+ const { written } = encoder.encodeInto(s.substring(j, j + 2), this.json.subarray(this.i));
1841
+ this.i += written;
1842
+ ++j;
1843
+ }
1844
+ else {
1845
+ this.ensure(6);
1846
+ this.writeUnicodeEscape(c);
1847
+ }
1848
+ }
1849
+ else if (c >= 0xdc00 && c <= 0xdfff) {
1850
+ this.ensure(6);
1851
+ this.writeUnicodeEscape(c);
1852
+ }
1853
+ else {
1854
+ let { i, json } = this;
1855
+ if (c < 0x800) {
1856
+ json[i++] = 0xc0 | (c >> 6);
1857
+ json[i++] = 0x80 | (c & 0x3f);
1858
+ }
1859
+ else {
1860
+ json[i++] = 0xe0 | (c >> 12);
1861
+ json[i++] = 0x80 | ((c >> 6) & 0x3f);
1862
+ json[i++] = 0x80 | (c & 0x3f);
1863
+ }
1864
+ this.i = i;
1865
+ }
1866
+ }
1867
+ this.json[this.i++] = QUOTE;
1868
+ }
1869
+ writeUnicodeEscape(code) {
1870
+ let { json, i } = this;
1871
+ json[i++] = BACKSLASH;
1872
+ json[i++] = 0x75;
1873
+ const hex = code.toString(16).padStart(4, "0");
1874
+ for (let j = 0; j < 4; ++j) {
1875
+ json[i++] = hex.charCodeAt(j);
1876
+ }
1877
+ this.i = i;
1878
+ }
1879
+ static B64 = (() => {
1880
+ const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
1881
+ const table = new Uint8Array(64);
1882
+ for (let i = 0; i < 64; ++i) {
1883
+ table[i] = chars.charCodeAt(i);
1884
+ }
1885
+ return table;
1886
+ })();
1887
+ writeBase64(data) {
1888
+ const b64Len = Math.ceil(data.length / 3) * 4;
1889
+ this.ensure(b64Len + 2);
1890
+ const json = this.json;
1891
+ const B64 = JsonShapeSerializer2.B64;
1892
+ let i = this.i;
1893
+ json[i++] = QUOTE;
1894
+ const len = data.length;
1895
+ const remainder = len % 3;
1896
+ const mainLen = len - remainder;
1897
+ for (let j = 0; j < mainLen; j += 3) {
1898
+ const a = data[j];
1899
+ const b = data[j + 1];
1900
+ const c = data[j + 2];
1901
+ json[i++] = B64[a >> 2];
1902
+ json[i++] = B64[((a & 0x03) << 4) | (b >> 4)];
1903
+ json[i++] = B64[((b & 0x0f) << 2) | (c >> 6)];
1904
+ json[i++] = B64[c & 0x3f];
1905
+ }
1906
+ if (remainder === 2) {
1907
+ const a = data[mainLen];
1908
+ const b = data[mainLen + 1];
1909
+ json[i++] = B64[a >> 2];
1910
+ json[i++] = B64[((a & 0x03) << 4) | (b >> 4)];
1911
+ json[i++] = B64[(b & 0x0f) << 2];
1912
+ json[i++] = 0x3d;
1913
+ }
1914
+ else if (remainder === 1) {
1915
+ const a = data[mainLen];
1916
+ json[i++] = B64[a >> 2];
1917
+ json[i++] = B64[(a & 0x03) << 4];
1918
+ json[i++] = 0x3d;
1919
+ json[i++] = 0x3d;
1920
+ }
1921
+ json[i++] = QUOTE;
1922
+ this.i = i;
1923
+ }
1924
+ writeValue(schema, value, container) {
1925
+ if (value == null) {
1926
+ if (container?.isStructSchema()) {
1927
+ if (value === undefined) {
1928
+ const ns = NormalizedSchema.of(schema);
1929
+ if (ns.isIdempotencyToken()) {
1930
+ this.writeAsciiQuoted(generateIdempotencyToken());
1931
+ return;
1932
+ }
1933
+ }
1934
+ return;
1935
+ }
1936
+ this.ensure(4);
1937
+ this.json.set(NULL, this.i);
1938
+ this.i += 4;
1939
+ return;
1940
+ }
1941
+ const ns = NormalizedSchema.of(schema);
1942
+ const isObject = typeof value === "object";
1943
+ if (ns.isStringSchema()) {
1944
+ const mediaType = ns.getMergedTraits().mediaType;
1945
+ if (mediaType) {
1946
+ const isJson = mediaType === "application/json" || mediaType.endsWith("+json");
1947
+ if (isJson) {
1948
+ this.writeJsonString(LazyJsonString.from(value).toString());
1949
+ return;
1950
+ }
1951
+ }
1952
+ }
1953
+ if (this.settings.bigNumberAsString && value != null && (ns.isBigIntegerSchema() || ns.isBigDecimalSchema())) {
1954
+ const asString = value instanceof NumericValue ? value.string : String(value);
1955
+ this.writeAsciiQuoted(asString);
1956
+ return;
1957
+ }
1958
+ if (isObject) {
1959
+ if (ns.isStructSchema()) {
1960
+ this.writeStruct(ns, value);
1961
+ return;
1962
+ }
1963
+ if (Array.isArray(value) && (ns.isListSchema() || ns.isDocumentSchema())) {
1964
+ this.writeList(ns, value, ns.isDocumentSchema());
1965
+ return;
1966
+ }
1967
+ if (ns.isMapSchema()) {
1968
+ this.writeMap(ns, value, false);
1969
+ return;
1970
+ }
1971
+ if (value instanceof Uint8Array && (ns.isBlobSchema() || ns.isDocumentSchema())) {
1972
+ this.writeBase64(value);
1973
+ return;
1974
+ }
1975
+ if (value instanceof Date && (ns.isTimestampSchema() || ns.isDocumentSchema())) {
1976
+ this.writeTimestamp(ns, value);
1977
+ return;
1978
+ }
1979
+ if (value instanceof NumericValue) {
1980
+ this.writeAscii(value.string);
1981
+ return;
1982
+ }
1983
+ if (ns.isDocumentSchema()) {
1984
+ if (Array.isArray(value)) {
1985
+ this.writeList(ns, value, true);
1986
+ }
1987
+ else {
1988
+ this.writeMap(ns, value, true);
1989
+ }
1990
+ return;
1991
+ }
1992
+ const json = JSON.stringify(value);
1993
+ this.writeAscii(json);
1994
+ return;
1995
+ }
1996
+ if (typeof value === "string") {
1997
+ if (ns.isBlobSchema()) {
1998
+ const b64 = (this.serdeContext?.base64Encoder ?? toBase64)(value);
1999
+ this.writeAsciiQuoted(b64);
2000
+ return;
2001
+ }
2002
+ this.writeJsonString(value);
2003
+ return;
2004
+ }
2005
+ if (typeof value === "number") {
2006
+ if (Math.abs(value) === Infinity || Number.isNaN(value)) {
2007
+ this.writeAsciiQuoted(String(value));
2008
+ return;
2009
+ }
2010
+ const numStr = String(value);
2011
+ this.writeAscii(numStr);
2012
+ return;
2013
+ }
2014
+ if (typeof value === "boolean") {
2015
+ this.ensure(5);
2016
+ let { i, json } = this;
2017
+ if (value) {
2018
+ json.set(TRUE, i);
2019
+ i += 4;
2020
+ }
2021
+ else {
2022
+ json.set(FALSE, i);
2023
+ i += 5;
2024
+ }
2025
+ this.i = i;
2026
+ return;
2027
+ }
2028
+ if (typeof value === "bigint") {
2029
+ this.writeAscii(value.toString());
2030
+ return;
2031
+ }
2032
+ this.writeAscii(String(value));
2033
+ }
2034
+ writeStruct(ns, value) {
2035
+ this.ensure(2);
2036
+ this.json[this.i++] = OPEN_BRACE;
2037
+ let wroteAny = false;
2038
+ const hasType = typeof value.__type === "string";
2039
+ let writtenKeys;
2040
+ if (hasType) {
2041
+ writtenKeys = new Set();
2042
+ }
2043
+ for (const [memberName, memberSchema] of ns.structIterator()) {
2044
+ const item = value[memberName];
2045
+ if (item == null && !memberSchema.isIdempotencyToken()) {
2046
+ continue;
2047
+ }
2048
+ if (wroteAny) {
2049
+ this.ensure(1);
2050
+ this.json[this.i++] = COMMA;
2051
+ }
2052
+ wroteAny = true;
2053
+ const targetKey = this.settings.jsonName ? (memberSchema.getMergedTraits().jsonName ?? memberName) : memberName;
2054
+ if (writtenKeys) {
2055
+ writtenKeys.add(memberName);
2056
+ writtenKeys.add(targetKey);
2057
+ }
2058
+ this.writeAsciiQuoted(targetKey);
2059
+ this.json[this.i++] = COLON;
2060
+ this.writeValue(memberSchema, item, ns);
2061
+ }
2062
+ if (!wroteAny && ns.isUnionSchema()) {
2063
+ const { $unknown } = value;
2064
+ if (Array.isArray($unknown)) {
2065
+ const [k, v] = $unknown;
2066
+ this.writeAsciiQuoted(k);
2067
+ this.ensure(1);
2068
+ this.json[this.i++] = COLON;
2069
+ this.writeValue(15, v, ns);
2070
+ }
2071
+ }
2072
+ else if (hasType) {
2073
+ for (const k in value) {
2074
+ if (writtenKeys.has(k)) {
2075
+ continue;
2076
+ }
2077
+ writtenKeys.add(k);
2078
+ const v = value[k];
2079
+ if (wroteAny) {
2080
+ this.ensure(1);
2081
+ this.json[this.i++] = COMMA;
2082
+ }
2083
+ wroteAny = true;
2084
+ this.writeAsciiQuoted(k);
2085
+ this.ensure(1);
2086
+ this.json[this.i++] = COLON;
2087
+ this.writeValue(15, v, undefined);
2088
+ }
2089
+ }
2090
+ this.ensure(1);
2091
+ this.json[this.i++] = CLOSE_BRACE;
2092
+ }
2093
+ writeList(ns, value, isDocument) {
2094
+ const sparse = !!ns.getMergedTraits().sparse;
2095
+ const valueSchema = ns.getValueSchema();
2096
+ if (!isDocument) {
2097
+ if (valueSchema.isStringSchema() || valueSchema.isNumericSchema() || valueSchema.isBooleanSchema()) {
2098
+ let hasSpecials = false;
2099
+ for (let i = 0; i < value.length; ++i) {
2100
+ const v = value[i];
2101
+ if (Number.isNaN(v) || v === Infinity || v === -Infinity || (v == null && !sparse)) {
2102
+ hasSpecials = true;
2103
+ break;
2104
+ }
2105
+ }
2106
+ let json;
2107
+ if (!hasSpecials) {
2108
+ json = JSON.stringify(value);
2109
+ }
2110
+ else {
2111
+ const out = [];
2112
+ for (let i = 0; i < value.length; ++i) {
2113
+ const v = value[i];
2114
+ if (v == null && !sparse)
2115
+ continue;
2116
+ if (Number.isNaN(v) || v === Infinity || v === -Infinity) {
2117
+ out.push(String(v));
2118
+ }
2119
+ else {
2120
+ out.push(v);
2121
+ }
2122
+ }
2123
+ json = JSON.stringify(out);
2124
+ }
2125
+ this.ensure(json.length * 3);
2126
+ this.i += encoder.encodeInto(json, this.json.subarray(this.i)).written;
2127
+ return;
2128
+ }
2129
+ }
2130
+ this.ensure(2);
2131
+ this.json[this.i++] = OPEN_BRACKET;
2132
+ let wroteFirstItem = false;
2133
+ for (let i = 0; i < value.length; ++i) {
2134
+ const item = value[i];
2135
+ if (isDocument ? item === undefined : item == null && !sparse) {
2136
+ continue;
2137
+ }
2138
+ if (wroteFirstItem) {
2139
+ this.ensure(1);
2140
+ this.json[this.i++] = COMMA;
2141
+ }
2142
+ this.writeValue(valueSchema, item, undefined);
2143
+ wroteFirstItem = true;
2144
+ }
2145
+ this.ensure(1);
2146
+ this.json[this.i++] = CLOSE_BRACKET;
2147
+ }
2148
+ writeMap(ns, value, isDocument) {
2149
+ const sparse = !!ns.getMergedTraits().sparse;
2150
+ const valueSchema = ns.getValueSchema();
2151
+ if (!isDocument) {
2152
+ if (valueSchema.isStringSchema() || valueSchema.isNumericSchema() || valueSchema.isBooleanSchema()) {
2153
+ let modifications;
2154
+ for (const k in value) {
2155
+ if (!hasOwn(value, k))
2156
+ continue;
2157
+ const v = value[k];
2158
+ if (Number.isNaN(v) || v === Infinity || v === -Infinity) {
2159
+ (modifications ??= {})[k] = v;
2160
+ value[k] = String(v);
2161
+ }
2162
+ else if (v === null && !sparse) {
2163
+ (modifications ??= {})[k] = null;
2164
+ value[k] = undefined;
2165
+ }
2166
+ }
2167
+ const json = JSON.stringify(value);
2168
+ if (modifications) {
2169
+ Object.assign(value, modifications);
2170
+ }
2171
+ this.ensure(json.length * 3);
2172
+ this.i += encoder.encodeInto(json, this.json.subarray(this.i)).written;
2173
+ return;
2174
+ }
2175
+ }
2176
+ this.ensure(2);
2177
+ this.json[this.i++] = OPEN_BRACE;
2178
+ let first = true;
2179
+ for (const k in value) {
2180
+ if (!hasOwn(value, k))
2181
+ continue;
2182
+ const v = value[k];
2183
+ if (isDocument ? v === undefined : v == null && !sparse) {
2184
+ continue;
2185
+ }
2186
+ if (!first) {
2187
+ this.ensure(1);
2188
+ this.json[this.i++] = COMMA;
2189
+ }
2190
+ first = false;
2191
+ this.writeJsonString(k);
2192
+ this.ensure(1);
2193
+ this.json[this.i++] = COLON;
2194
+ this.writeValue(valueSchema, v, undefined);
2195
+ }
2196
+ this.ensure(1);
2197
+ this.json[this.i++] = CLOSE_BRACE;
2198
+ }
2199
+ writeTimestamp(ns, value) {
2200
+ const format = determineTimestampFormat(ns, this.settings);
2201
+ switch (format) {
2202
+ case 5: {
2203
+ const iso = value.toISOString().replace(".000Z", "Z");
2204
+ this.writeAsciiQuoted(iso);
2205
+ return;
2206
+ }
2207
+ case 6: {
2208
+ this.writeAsciiQuoted(dateToUtcString(value));
2209
+ return;
2210
+ }
2211
+ case 7: {
2212
+ const epochSecs = String(value.getTime() / 1000);
2213
+ this.writeAscii(epochSecs);
2214
+ return;
2215
+ }
2216
+ default: {
2217
+ const epochSecs = String(value.getTime() / 1000);
2218
+ this.writeAscii(epochSecs);
2219
+ return;
2220
+ }
2221
+ }
2222
+ }
2223
+ }
2224
+
2225
+ class JsonCodec2 extends SerdeContextConfig {
2226
+ settings;
2227
+ constructor(settings) {
2228
+ super();
2229
+ this.settings = settings;
2230
+ }
2231
+ createSerializer() {
2232
+ const serializer = new JsonShapeSerializer2(this.settings);
2233
+ serializer.setSerdeContext(this.serdeContext);
2234
+ return serializer;
2235
+ }
2236
+ createDeserializer() {
2237
+ const deserializer = new JsonShapeDeserializer2(this.settings);
2238
+ deserializer.setSerdeContext(this.serdeContext);
2239
+ return deserializer;
2240
+ }
2241
+ }
2242
+
2243
+ class SmithyRpcV2JsonProtocol extends RpcProtocol {
2244
+ codec = new JsonCodec2({
2245
+ timestampFormat: {
2246
+ useTrait: false,
2247
+ default: 7,
2248
+ },
2249
+ jsonName: false,
2250
+ bigNumberAsString: true,
2251
+ });
2252
+ serializer = this.codec.createSerializer();
2253
+ deserializer = this.codec.createDeserializer();
2254
+ constructor({ defaultNamespace, errorTypeRegistries, }) {
2255
+ super({ defaultNamespace, errorTypeRegistries });
2256
+ }
2257
+ getShapeId() {
2258
+ return "smithy.protocols#rpcv2Json";
2259
+ }
2260
+ getPayloadCodec() {
2261
+ return this.codec;
2262
+ }
2263
+ async serializeRequest(operationSchema, input, context) {
2264
+ const request = await super.serializeRequest(operationSchema, input, context);
2265
+ Object.assign(request.headers, {
2266
+ "content-type": this.getDefaultContentType(),
2267
+ "smithy-protocol": "rpc-v2-json",
2268
+ accept: this.getDefaultContentType(),
2269
+ });
2270
+ if (deref(operationSchema.input) === "unit") {
2271
+ delete request.body;
2272
+ delete request.headers["content-type"];
2273
+ }
2274
+ else if (!request.body) {
2275
+ request.body = "{}";
2276
+ }
2277
+ const { service, operation } = getSmithyContext(context);
2278
+ const path = `/service/${service}/operation/${operation}`;
2279
+ if (request.path.endsWith("/")) {
2280
+ request.path += path.slice(1);
2281
+ }
2282
+ else {
2283
+ request.path += path;
2284
+ }
2285
+ return request;
2286
+ }
2287
+ async deserializeResponse(operationSchema, context, response) {
2288
+ return super.deserializeResponse(operationSchema, context, response);
2289
+ }
2290
+ async handleError(operationSchema, context, response, dataObject, metadata) {
2291
+ const errorName = loadSmithyRpcV2JsonErrorCode(response, dataObject) ?? "Unknown";
2292
+ const errorMetadata = {
2293
+ $metadata: metadata,
2294
+ $fault: response.statusCode <= 500 ? "client" : "server",
2295
+ };
2296
+ let namespace = this.options.defaultNamespace;
2297
+ if (errorName.includes("#")) {
2298
+ [namespace] = errorName.split("#");
2299
+ }
2300
+ const registry = this.compositeErrorRegistry;
2301
+ const nsRegistry = TypeRegistry.for(namespace);
2302
+ registry.copyFrom(nsRegistry);
2303
+ let errorSchema;
2304
+ try {
2305
+ errorSchema = registry.getSchema(errorName);
2306
+ }
2307
+ catch (ignored) {
2308
+ if (dataObject.Message) {
2309
+ dataObject.message = dataObject.Message;
2310
+ }
2311
+ const syntheticRegistry = TypeRegistry.for("smithy.ts.sdk.synthetic." + namespace);
2312
+ registry.copyFrom(syntheticRegistry);
2313
+ const baseExceptionSchema = registry.getBaseException();
2314
+ if (baseExceptionSchema) {
2315
+ const ErrorCtor = registry.getErrorCtor(baseExceptionSchema);
2316
+ throw Object.assign(new ErrorCtor({ name: errorName }), errorMetadata, dataObject);
2317
+ }
2318
+ throw Object.assign(new Error(errorName), errorMetadata, dataObject);
2319
+ }
2320
+ const ns = NormalizedSchema.of(errorSchema);
2321
+ const ErrorCtor = registry.getErrorCtor(errorSchema);
2322
+ const message = dataObject.message ?? dataObject.Message ?? "Unknown";
2323
+ const exception = new ErrorCtor({});
2324
+ const output = {};
2325
+ const errorDeserializer = this.codec.createDeserializer();
2326
+ for (const [name, member] of ns.structIterator()) {
2327
+ if (dataObject[name] != null) {
2328
+ output[name] = errorDeserializer.readObject(member, dataObject[name]);
2329
+ }
2330
+ }
2331
+ throw Object.assign(exception, errorMetadata, {
2332
+ $fault: ns.getMergedTraits().error,
2333
+ message,
2334
+ }, output);
2335
+ }
2336
+ getDefaultContentType() {
2337
+ return "application/json";
2338
+ }
2339
+ }
2340
+
2341
+ class JsonShapeDeserializer extends SerdeContextConfig {
2342
+ settings;
2343
+ constructor(settings) {
2344
+ super();
2345
+ this.settings = settings;
2346
+ }
2347
+ async read(schema, data) {
2348
+ const reviver = needsReviver(schema) ? jsonReviver : undefined;
2349
+ return this._read(schema, typeof data === "string" ? JSON.parse(data, reviver) : await parseJsonBody(data, this.serdeContext, schema));
2350
+ }
2351
+ readObject(schema, data) {
2352
+ return this._read(schema, data);
2353
+ }
2354
+ _read(schema, value) {
2355
+ const isObject = value !== null && typeof value === "object";
2356
+ const ns = NormalizedSchema.of(schema);
2357
+ if (isObject) {
2358
+ if (ns.isStructSchema()) {
2359
+ const record = value;
2360
+ const union = ns.isUnionSchema();
2361
+ const out = {};
2362
+ let nameMap = void 0;
2363
+ const { jsonName } = this.settings;
2364
+ if (jsonName) {
2365
+ nameMap = {};
2366
+ }
2367
+ let unionSerde;
2368
+ if (union) {
2369
+ unionSerde = new UnionSerde(record, out);
2370
+ }
2371
+ for (const [memberName, memberSchema] of ns.structIterator()) {
2372
+ let fromKey = memberName;
2373
+ if (jsonName) {
2374
+ fromKey = memberSchema.getMergedTraits().jsonName ?? fromKey;
2375
+ nameMap[fromKey] = memberName;
2376
+ }
2377
+ if (union) {
2378
+ unionSerde.mark(fromKey);
2379
+ }
2380
+ if (record[fromKey] != null) {
2381
+ out[memberName] = this._read(memberSchema, record[fromKey]);
2382
+ }
2383
+ }
2384
+ if (union) {
2385
+ unionSerde.writeUnknown();
2386
+ }
2387
+ else if (typeof record.__type === "string") {
2388
+ for (const k in record) {
2389
+ if (!hasOwn(record, k))
2390
+ continue;
2391
+ const v = record[k];
2392
+ const t = jsonName ? (nameMap[k] ?? k) : k;
2393
+ if (!(t in out)) {
2394
+ out[t] = v;
2395
+ }
2396
+ }
2397
+ }
2398
+ return out;
2399
+ }
2400
+ if (Array.isArray(value) && ns.isListSchema()) {
2401
+ const listMember = ns.getValueSchema();
2402
+ const out = [];
2403
+ for (const item of value) {
2404
+ out.push(this._read(listMember, item));
2405
+ }
2406
+ return out;
2407
+ }
2408
+ if (ns.isMapSchema()) {
2409
+ const mapMember = ns.getValueSchema();
2410
+ const out = {};
2411
+ for (const _k in value) {
2412
+ if (!hasOwn(value, _k))
2413
+ continue;
2414
+ if (_k === "__proto__") {
2415
+ writeKey(out);
2416
+ }
2417
+ out[_k] = this._read(mapMember, value[_k]);
2418
+ }
2419
+ return out;
2420
+ }
2421
+ }
2422
+ if (ns.isBlobSchema() && typeof value === "string") {
2423
+ return fromBase64(value);
2424
+ }
2425
+ const mediaType = ns.getMergedTraits().mediaType;
2426
+ if (ns.isStringSchema() && typeof value === "string" && mediaType) {
2427
+ const isJson = mediaType === "application/json" || mediaType.endsWith("+json");
2428
+ if (isJson) {
2429
+ return LazyJsonString.from(value);
2430
+ }
2431
+ return value;
2432
+ }
2433
+ if (ns.isTimestampSchema() && value != null) {
2434
+ const format = determineTimestampFormat(ns, this.settings);
2435
+ switch (format) {
2436
+ case 5:
2437
+ return parseRfc3339DateTimeWithOffset(value);
2438
+ case 6:
2439
+ return parseRfc7231DateTime(value);
2440
+ case 7:
2441
+ return parseEpochTimestamp(value);
2442
+ default:
2443
+ console.warn("Missing timestamp format, parsing value with Date constructor:", value);
2444
+ return new Date(value);
2445
+ }
2446
+ }
2447
+ if (ns.isBigIntegerSchema() && (typeof value === "number" || typeof value === "string")) {
2448
+ return BigInt(value);
2449
+ }
2450
+ if (ns.isBigDecimalSchema() && value != undefined) {
2451
+ if (value instanceof NumericValue) {
2452
+ return value;
2453
+ }
2454
+ const untyped = value;
2455
+ if (untyped.type === "bigDecimal" && "string" in untyped) {
2456
+ return new NumericValue(untyped.string, untyped.type);
2457
+ }
2458
+ return new NumericValue(String(value), "bigDecimal");
2459
+ }
2460
+ if (ns.isNumericSchema() && typeof value === "string") {
2461
+ switch (value) {
2462
+ case "Infinity":
2463
+ return Infinity;
2464
+ case "-Infinity":
2465
+ return -Infinity;
2466
+ case "NaN":
2467
+ return NaN;
2468
+ }
2469
+ return value;
2470
+ }
2471
+ if (ns.isDocumentSchema()) {
2472
+ if (isObject) {
2473
+ const out = Array.isArray(value) ? [] : {};
2474
+ for (const k in value) {
2475
+ if (!hasOwn(value, k))
2476
+ continue;
2477
+ if (k === "__proto__") {
2478
+ writeKey(out);
2479
+ }
2480
+ const v = value[k];
2481
+ if (v instanceof NumericValue) {
2482
+ out[k] = v;
2483
+ }
2484
+ else {
2485
+ out[k] = this._read(ns, v);
2486
+ }
2487
+ }
2488
+ return out;
2489
+ }
2490
+ else {
2491
+ return structuredClone(value);
2492
+ }
2493
+ }
2494
+ return value;
2495
+ }
2496
+ }
2497
+
2498
+ const NUMERIC_CONTROL_CHAR = String.fromCharCode(925);
2499
+ class JsonReplacer {
2500
+ values = new Map();
2501
+ counter = 0;
2502
+ stage = 0;
2503
+ createReplacer() {
2504
+ if (this.stage === 1) {
2505
+ throw new Error("@aws-sdk/core/protocols - JsonReplacer already created.");
2506
+ }
2507
+ if (this.stage === 2) {
2508
+ throw new Error("@aws-sdk/core/protocols - JsonReplacer exhausted.");
2509
+ }
2510
+ this.stage = 1;
2511
+ return (key, value) => {
2512
+ if (value instanceof NumericValue) {
2513
+ const v = `${NUMERIC_CONTROL_CHAR + "nv" + this.counter++}_` + value.string;
2514
+ this.values.set(`"${v}"`, value.string);
2515
+ return v;
2516
+ }
2517
+ if (typeof value === "bigint") {
2518
+ const s = value.toString();
2519
+ const v = `${NUMERIC_CONTROL_CHAR + "b" + this.counter++}_` + s;
2520
+ this.values.set(`"${v}"`, s);
2521
+ return v;
2522
+ }
2523
+ return value;
2524
+ };
2525
+ }
2526
+ replaceInJson(json) {
2527
+ if (this.stage === 0) {
2528
+ throw new Error("@aws-sdk/core/protocols - JsonReplacer not created yet.");
2529
+ }
2530
+ if (this.stage === 2) {
2531
+ throw new Error("@aws-sdk/core/protocols - JsonReplacer exhausted.");
2532
+ }
2533
+ this.stage = 2;
2534
+ if (this.counter === 0) {
2535
+ return json;
2536
+ }
2537
+ for (const [key, value] of this.values) {
2538
+ json = json.replace(key, value);
2539
+ }
2540
+ return json;
2541
+ }
2542
+ }
2543
+
2544
+ class JsonShapeSerializer extends SerdeContextConfig {
2545
+ settings;
2546
+ buffer;
2547
+ useReplacer = false;
2548
+ rootSchema;
2549
+ constructor(settings) {
2550
+ super();
2551
+ this.settings = settings;
2552
+ }
2553
+ write(schema, value) {
2554
+ this.rootSchema = NormalizedSchema.of(schema);
2555
+ this.buffer = this._write(this.rootSchema, value);
2556
+ }
2557
+ flush() {
2558
+ const { rootSchema, useReplacer } = this;
2559
+ this.rootSchema = undefined;
2560
+ this.useReplacer = false;
2561
+ if (rootSchema?.isStructSchema() || rootSchema?.isDocumentSchema()) {
2562
+ if (!useReplacer) {
2563
+ return JSON.stringify(this.buffer);
2564
+ }
2565
+ const replacer = new JsonReplacer();
2566
+ return replacer.replaceInJson(JSON.stringify(this.buffer, replacer.createReplacer(), 0));
2567
+ }
2568
+ return this.buffer;
2569
+ }
2570
+ writeDiscriminatedDocument(schema, value) {
2571
+ this.write(schema, value);
2572
+ if (typeof this.buffer === "object") {
2573
+ this.buffer.__type = NormalizedSchema.of(schema).getName(true);
2574
+ }
2575
+ }
2576
+ _write(schema, value, container) {
2577
+ const isObject = value !== null && typeof value === "object";
2578
+ const ns = NormalizedSchema.of(schema);
2579
+ if (isObject) {
2580
+ if (ns.isStructSchema()) {
2581
+ const record = value;
2582
+ const out = {};
2583
+ const { jsonName } = this.settings;
2584
+ let nameMap = void 0;
2585
+ if (jsonName) {
2586
+ nameMap = {};
2587
+ }
2588
+ let outCount = 0;
2589
+ for (const [memberName, memberSchema] of ns.structIterator()) {
2590
+ const serializableValue = this._write(memberSchema, record[memberName], ns);
2591
+ if (serializableValue !== undefined) {
2592
+ let targetKey = memberName;
2593
+ if (jsonName) {
2594
+ targetKey = memberSchema.getMergedTraits().jsonName ?? memberName;
2595
+ nameMap[memberName] = targetKey;
2596
+ }
2597
+ out[targetKey] = serializableValue;
2598
+ outCount++;
2599
+ }
2600
+ }
2601
+ if (ns.isUnionSchema() && outCount === 0) {
2602
+ const { $unknown } = record;
2603
+ if (Array.isArray($unknown)) {
2604
+ const [k, v] = $unknown;
2605
+ if (k === "__proto__") {
2606
+ writeKey(out);
2607
+ }
2608
+ out[k] = this._write(15, v);
2609
+ }
2610
+ }
2611
+ else if (typeof record.__type === "string") {
2612
+ for (const k in record) {
2613
+ if (!hasOwn(record, k))
2614
+ continue;
2615
+ const v = record[k];
2616
+ const targetKey = jsonName ? (nameMap[k] ?? k) : k;
2617
+ if (!(targetKey in out)) {
2618
+ out[targetKey] = this._write(15, v);
2619
+ }
2620
+ }
2621
+ }
2622
+ return out;
2623
+ }
2624
+ if (Array.isArray(value) && ns.isListSchema()) {
2625
+ const listMember = ns.getValueSchema();
2626
+ const out = [];
2627
+ const sparse = !!ns.getMergedTraits().sparse;
2628
+ for (const item of value) {
2629
+ if (sparse || item != null) {
2630
+ out.push(this._write(listMember, item));
2631
+ }
2632
+ }
2633
+ return out;
2634
+ }
2635
+ if (ns.isMapSchema()) {
2636
+ const mapMember = ns.getValueSchema();
2637
+ const out = {};
2638
+ const sparse = !!ns.getMergedTraits().sparse;
2639
+ for (const _k in value) {
2640
+ if (!hasOwn(value, _k))
2641
+ continue;
2642
+ const _v = value[_k];
2643
+ if (sparse || _v != null) {
2644
+ if (_k === "__proto__") {
2645
+ writeKey(out);
2646
+ }
2647
+ out[_k] = this._write(mapMember, _v);
2648
+ }
2649
+ }
2650
+ return out;
2651
+ }
2652
+ if (value instanceof Uint8Array && ns.isBlobSchema()) {
2653
+ if (ns === this.rootSchema) {
2654
+ return value;
2655
+ }
2656
+ return (this.serdeContext?.base64Encoder ?? toBase64)(value);
2657
+ }
2658
+ if (value instanceof Date && (ns.isTimestampSchema() || ns.isDocumentSchema())) {
2659
+ const format = determineTimestampFormat(ns, this.settings);
2660
+ switch (format) {
2661
+ case 5:
2662
+ return value.toISOString().replace(".000Z", "Z");
2663
+ case 6:
2664
+ return dateToUtcString(value);
2665
+ case 7:
2666
+ return value.getTime() / 1000;
2667
+ default:
2668
+ console.warn("Missing timestamp format, using epoch seconds", value);
2669
+ return value.getTime() / 1000;
2670
+ }
2671
+ }
2672
+ if (value instanceof NumericValue) {
2673
+ this.useReplacer = true;
2674
+ }
2675
+ }
2676
+ if (value === null && container?.isStructSchema()) {
2677
+ return void 0;
2678
+ }
2679
+ if (ns.isStringSchema()) {
2680
+ if (typeof value === "undefined" && ns.isIdempotencyToken()) {
2681
+ return generateIdempotencyToken();
2682
+ }
2683
+ const mediaType = ns.getMergedTraits().mediaType;
2684
+ if (value != null && mediaType) {
2685
+ const isJson = mediaType === "application/json" || mediaType.endsWith("+json");
2686
+ if (isJson) {
2687
+ return LazyJsonString.from(value);
2688
+ }
2689
+ }
2690
+ return value;
2691
+ }
2692
+ if (typeof value === "number") {
2693
+ if (Math.abs(value) === Infinity || isNaN(value)) {
2694
+ return String(value);
2695
+ }
2696
+ return value;
2697
+ }
2698
+ if (typeof value === "string" && ns.isBlobSchema()) {
2699
+ if (ns === this.rootSchema) {
2700
+ return value;
2701
+ }
2702
+ return (this.serdeContext?.base64Encoder ?? toBase64)(value);
2703
+ }
2704
+ if (typeof value === "bigint") {
2705
+ this.useReplacer = true;
2706
+ }
2707
+ if (ns.isDocumentSchema()) {
2708
+ if (isObject) {
2709
+ if (value instanceof Uint8Array) {
2710
+ return (this.serdeContext?.base64Encoder ?? toBase64)(value);
2711
+ }
2712
+ const out = Array.isArray(value) ? [] : {};
2713
+ for (const k in value) {
2714
+ if (!hasOwn(value, k))
2715
+ continue;
2716
+ const v = value[k];
2717
+ if (k === "__proto__") {
2718
+ writeKey(out);
2719
+ }
2720
+ if (v instanceof NumericValue) {
2721
+ this.useReplacer = true;
2722
+ out[k] = v;
2723
+ }
2724
+ else {
2725
+ out[k] = this._write(ns, v);
2726
+ }
2727
+ }
2728
+ return out;
2729
+ }
2730
+ else {
2731
+ return structuredClone(value);
2732
+ }
2733
+ }
2734
+ return value;
2735
+ }
2736
+ }
2737
+
2738
+ class JsonCodec extends SerdeContextConfig {
2739
+ settings;
2740
+ constructor(settings) {
2741
+ super();
2742
+ this.settings = settings;
2743
+ }
2744
+ createSerializer() {
2745
+ const serializer = new JsonShapeSerializer(this.settings);
2746
+ serializer.setSerdeContext(this.serdeContext);
2747
+ return serializer;
2748
+ }
2749
+ createDeserializer() {
2750
+ const deserializer = new JsonShapeDeserializer(this.settings);
2751
+ deserializer.setSerdeContext(this.serdeContext);
2752
+ return deserializer;
2753
+ }
2754
+ }
2755
+
1076
2756
  exports.Field = Field;
1077
2757
  exports.Fields = Fields;
1078
2758
  exports.FromStringShapeDeserializer = FromStringShapeDeserializer;
@@ -1080,9 +2760,16 @@ exports.HttpBindingProtocol = HttpBindingProtocol;
1080
2760
  exports.HttpInterceptingShapeDeserializer = HttpInterceptingShapeDeserializer;
1081
2761
  exports.HttpInterceptingShapeSerializer = HttpInterceptingShapeSerializer;
1082
2762
  exports.HttpProtocol = HttpProtocol;
2763
+ exports.JsonCodec = JsonCodec;
2764
+ exports.JsonCodec2 = JsonCodec2;
2765
+ exports.JsonShapeDeserializer = JsonShapeDeserializer;
2766
+ exports.JsonShapeDeserializer2 = JsonShapeDeserializer2;
2767
+ exports.JsonShapeSerializer = JsonShapeSerializer;
2768
+ exports.JsonShapeSerializer2 = JsonShapeSerializer2;
1083
2769
  exports.RequestBuilder = RequestBuilder;
1084
2770
  exports.RpcProtocol = RpcProtocol;
1085
2771
  exports.SerdeContext = SerdeContext;
2772
+ exports.SmithyRpcV2JsonProtocol = SmithyRpcV2JsonProtocol;
1086
2773
  exports.ToStringShapeSerializer = ToStringShapeSerializer;
1087
2774
  exports.buildQueryString = buildQueryString;
1088
2775
  exports.collectBody = collectBody;
@@ -1094,6 +2781,11 @@ exports.escapeUriPath = escapeUriPath;
1094
2781
  exports.extendedEncodeURIComponent = extendedEncodeURIComponent;
1095
2782
  exports.getContentLengthPlugin = getContentLengthPlugin;
1096
2783
  exports.getHttpHandlerExtensionConfiguration = getHttpHandlerExtensionConfiguration;
2784
+ exports.loadJsonRpcErrorCode = loadJsonRpcErrorCode;
2785
+ exports.loadRestJsonErrorCode = loadRestJsonErrorCode;
2786
+ exports.loadSmithyRpcV2JsonErrorCode = loadSmithyRpcV2JsonErrorCode;
2787
+ exports.parseJsonBody = parseJsonBody;
2788
+ exports.parseJsonErrorBody = parseJsonErrorBody;
1097
2789
  exports.requestBuilder = requestBuilder;
1098
2790
  exports.resolveHttpHandlerRuntimeConfig = resolveHttpHandlerRuntimeConfig;
1099
2791
  exports.resolvedPath = resolvedPath;