@psnext/slingcli 3.5.20261007-3 → 3.5.20261026-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 (453) hide show
  1. package/node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js +12 -3
  2. package/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js +94 -1589
  3. package/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.js +12 -3
  4. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/index.js +1 -7
  5. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsJsonRpcProtocol.js +1 -3
  6. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsRestJsonProtocol.js +1 -3
  7. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/index.d.ts +2 -8
  8. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJson1_0Protocol.d.ts +1 -2
  9. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJson1_1Protocol.d.ts +1 -2
  10. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJsonRpcProtocol.d.ts +2 -3
  11. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsRestJsonProtocol.d.ts +2 -3
  12. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/index.d.ts +10 -10
  13. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJson1_0Protocol.d.ts +1 -2
  14. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJson1_1Protocol.d.ts +1 -2
  15. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJsonRpcProtocol.d.ts +2 -3
  16. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsRestJsonProtocol.d.ts +2 -3
  17. package/node_modules/@aws-sdk/core/package.json +4 -4
  18. package/node_modules/@aws-sdk/credential-provider-env/package.json +4 -4
  19. package/node_modules/@aws-sdk/credential-provider-http/package.json +4 -4
  20. package/node_modules/@aws-sdk/credential-provider-ini/package.json +11 -11
  21. package/node_modules/@aws-sdk/credential-provider-login/package.json +5 -5
  22. package/node_modules/@aws-sdk/credential-provider-node/package.json +9 -9
  23. package/node_modules/@aws-sdk/credential-provider-process/package.json +4 -4
  24. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-cjs/index.js +37 -19
  25. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/fromSso.js +37 -19
  26. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/package.json +5 -5
  27. package/node_modules/@aws-sdk/credential-provider-sso/package.json +6 -6
  28. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +5 -5
  29. package/node_modules/@aws-sdk/eventstream-handler-node/package.json +3 -3
  30. package/node_modules/@aws-sdk/middleware-eventstream/package.json +3 -3
  31. package/node_modules/@aws-sdk/middleware-websocket/package.json +5 -5
  32. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/cognito-identity/index.js +11 -1
  33. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/index.js +6 -1
  34. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso/index.js +6 -1
  35. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js +13 -1
  36. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js +9 -1
  37. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/cognito-identity/models/CognitoIdentityServiceException.js +1 -0
  38. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/cognito-identity/models/errors.js +9 -0
  39. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/models/SigninServiceException.js +1 -0
  40. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/models/errors.js +4 -0
  41. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/models/SSOServiceException.js +1 -0
  42. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/models/errors.js +4 -0
  43. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/models/SSOOIDCServiceException.js +1 -0
  44. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/models/errors.js +11 -0
  45. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/models/STSServiceException.js +1 -0
  46. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/models/errors.js +7 -0
  47. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/CognitoIdentityClient.d.ts +2 -1
  48. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/models/CognitoIdentityServiceException.d.ts +1 -0
  49. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/models/errors.d.ts +9 -0
  50. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/SigninClient.d.ts +2 -1
  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/SSOClient.d.ts +2 -1
  54. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/models/SSOServiceException.d.ts +1 -0
  55. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/models/errors.d.ts +4 -0
  56. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/SSOOIDCClient.d.ts +2 -1
  57. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/models/SSOOIDCServiceException.d.ts +1 -0
  58. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/models/errors.d.ts +11 -0
  59. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/STSClient.d.ts +2 -1
  60. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/models/STSServiceException.d.ts +1 -0
  61. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/models/errors.d.ts +7 -0
  62. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/models/CognitoIdentityServiceException.d.ts +1 -0
  63. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/models/errors.d.ts +9 -0
  64. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/models/SigninServiceException.d.ts +1 -0
  65. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/models/errors.d.ts +4 -0
  66. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/models/SSOServiceException.d.ts +1 -0
  67. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/models/errors.d.ts +4 -0
  68. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/models/SSOOIDCServiceException.d.ts +1 -0
  69. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/models/errors.d.ts +11 -0
  70. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/models/STSServiceException.d.ts +1 -0
  71. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/models/errors.d.ts +7 -0
  72. package/node_modules/@aws-sdk/nested-clients/package.json +5 -5
  73. package/node_modules/@aws-sdk/signature-v4-multi-region/package.json +3 -3
  74. package/node_modules/@aws-sdk/types/dist-types/feature-ids.d.ts +3 -0
  75. package/node_modules/@aws-sdk/types/dist-types/ts3.4/feature-ids.d.ts +3 -0
  76. package/node_modules/@aws-sdk/types/package.json +1 -1
  77. package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.js +2 -0
  78. package/node_modules/@earendil-works/pi-codemode/dist/runtime/host.js +21 -86
  79. package/node_modules/@earendil-works/pi-codemode/dist/runtime/prelude-source.js +3 -103
  80. package/node_modules/@earendil-works/pi-codemode/package.json +1 -1
  81. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/{chunk-TFS67BSI.js → chunk-23QDZLZG.js} +20 -14
  82. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/{chunk-IB6ONE3U.js → chunk-QPFSTNX5.js} +1 -1
  83. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/{virtual-modules-P5ROWYIG.js → virtual-modules-GRXGP6ZA.js} +1 -1
  84. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/cli-runtime.js +1 -1
  85. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/index.js +1 -1
  86. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/rpc-entry.js +1 -1
  87. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/Agent.md +8 -8
  88. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/CacheStore.md +24 -9
  89. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/Client.md +11 -6
  90. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +9 -6
  91. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/Dispatcher.md +12 -0
  92. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/Errors.md +101 -1
  93. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/Fetch.md +10 -0
  94. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/H2CClient.md +3 -2
  95. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/Interceptors.md +17 -9
  96. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/Pool.md +5 -6
  97. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/RedirectHandler.md +13 -10
  98. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/index.md +22 -13
  99. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/type-map.json +66 -66
  100. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/api/readable.js +1 -2
  101. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/cache/memory-cache-store.js +48 -13
  102. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/cache/sqlite-cache-store.js +83 -5
  103. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/core/connect.js +10 -4
  104. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/core/constants.js +12 -1
  105. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/core/errors.js +38 -1
  106. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/core/request.js +39 -3
  107. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/core/symbols.js +2 -0
  108. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/core/util.js +26 -40
  109. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/agent.js +6 -2
  110. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/client-h1.js +127 -84
  111. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/client-h2.js +97 -21
  112. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/client.js +10 -2
  113. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/dispatcher-base.js +3 -2
  114. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/dispatcher1-wrapper.js +20 -3
  115. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +21 -6
  116. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/parser-h1.js +1064 -0
  117. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/pool-base.js +117 -19
  118. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/pool.js +99 -13
  119. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/proxy-agent.js +34 -11
  120. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/retry-agent.js +10 -0
  121. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/round-robin-pool.js +15 -5
  122. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/handler/cache-handler.js +153 -15
  123. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/handler/deduplication-handler.js +126 -52
  124. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/handler/redirect-handler.js +31 -6
  125. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/handler/retry-handler.js +116 -24
  126. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/interceptor/cache.js +15 -4
  127. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/interceptor/decompress.js +253 -73
  128. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/interceptor/dns.js +11 -0
  129. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/interceptor/response-error.js +72 -28
  130. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/milo/LICENSE.md +7 -0
  131. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/milo/no-simd.js +1002 -0
  132. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/milo/simd.js +1002 -0
  133. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/mock/mock-agent.js +11 -0
  134. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/mock/snapshot-recorder.js +3 -2
  135. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/mock/snapshot-utils.js +3 -2
  136. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/util/cache.js +11 -5
  137. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/cache/cache.js +17 -8
  138. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/cache/cachestorage.js +11 -5
  139. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/cookies/index.js +19 -7
  140. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/cookies/util.js +21 -2
  141. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/eventsource/eventsource-stream.js +69 -15
  142. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/eventsource/eventsource.js +50 -3
  143. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/body.js +69 -53
  144. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/data-url.js +6 -6
  145. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/formdata-parser.js +12 -4
  146. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/formdata.js +30 -36
  147. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/headers.js +36 -33
  148. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/index.js +54 -29
  149. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/request.js +74 -79
  150. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/response.js +43 -44
  151. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/util.js +7 -7
  152. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/infra/index.js +16 -1
  153. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/subresource-integrity/subresource-integrity.js +5 -5
  154. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/webidl/index.js +2 -14
  155. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/websocket/connection.js +33 -12
  156. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/websocket/events.js +43 -26
  157. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/websocket/receiver.js +27 -4
  158. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/websocket/stream/websocketerror.js +13 -10
  159. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/websocket/stream/websocketstream.js +19 -4
  160. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/websocket/websocket.js +44 -41
  161. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/package.json +7 -5
  162. package/node_modules/@earendil-works/pi-coding-agent/package.json +2 -2
  163. package/node_modules/@hono/node-server/README.md +2 -0
  164. package/node_modules/@hono/node-server/dist/index.cjs +1 -1
  165. package/node_modules/@hono/node-server/dist/index.mjs +1 -1
  166. package/node_modules/@hono/node-server/dist/serve-static.cjs +2 -1
  167. package/node_modules/@hono/node-server/dist/serve-static.mjs +2 -1
  168. package/node_modules/@hono/node-server/package.json +2 -2
  169. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/mcp.d.ts.map +1 -1
  170. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/mcp.js +10 -0
  171. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/mcp.js.map +1 -1
  172. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/transport.d.ts +8 -8
  173. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/transport.d.ts.map +1 -1
  174. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.d.ts.map +1 -1
  175. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js +10 -0
  176. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js.map +1 -1
  177. package/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/transport.d.ts +8 -8
  178. package/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/transport.d.ts.map +1 -1
  179. package/node_modules/@modelcontextprotocol/sdk/package.json +1 -1
  180. package/node_modules/@smithy/core/dist-cjs/submodules/client/index.js +15 -2
  181. package/node_modules/@smithy/core/dist-cjs/submodules/endpoints/index.browser.js +2 -1
  182. package/node_modules/@smithy/core/dist-cjs/submodules/endpoints/index.js +2 -1
  183. package/node_modules/@smithy/core/dist-cjs/submodules/event-streams/index.browser.js +10 -0
  184. package/node_modules/@smithy/core/dist-cjs/submodules/event-streams/index.js +10 -0
  185. package/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +1695 -3
  186. package/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/command.js +16 -2
  187. package/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/cache/EndpointCache.js +2 -1
  188. package/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-codec/HeaderMarshaller.js +10 -0
  189. package/node_modules/@smithy/core/dist-es/submodules/protocols/ConfigurableSerdeContext.js +6 -0
  190. package/node_modules/@smithy/core/dist-es/submodules/protocols/UnionSerde.js +26 -0
  191. package/node_modules/@smithy/core/dist-es/submodules/protocols/common.js +3 -0
  192. package/node_modules/@smithy/core/dist-es/submodules/protocols/index.js +8 -0
  193. package/node_modules/@smithy/core/dist-es/submodules/protocols/json/SmithyRpcV2JsonProtocol.js +102 -0
  194. package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v1/JsonShapeDeserializer.js +8 -1
  195. package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v1/JsonShapeSerializer.js +8 -1
  196. package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v2/JsonShapeDeserializer2.js +13 -2
  197. package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v2/JsonShapeSerializer2.js +16 -6
  198. package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/parseJsonBody.js +16 -1
  199. package/node_modules/@smithy/core/dist-es/submodules/protocols/writeKey.js +3 -0
  200. package/node_modules/@smithy/core/dist-types/submodules/protocols/ConfigurableSerdeContext.d.ts +8 -0
  201. package/node_modules/@smithy/core/dist-types/submodules/protocols/UnionSerde.d.ts +24 -0
  202. package/node_modules/@smithy/core/dist-types/submodules/protocols/common.d.ts +2 -0
  203. package/node_modules/@smithy/core/dist-types/submodules/protocols/index.d.ts +9 -0
  204. package/node_modules/@smithy/core/dist-types/submodules/protocols/json/JsonSettings.d.ts +13 -0
  205. package/node_modules/@smithy/core/dist-types/submodules/protocols/json/SmithyRpcV2JsonProtocol.d.ts +28 -0
  206. package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/parseJsonBody.d.ts +16 -0
  207. package/node_modules/@smithy/core/dist-types/submodules/protocols/writeKey.d.ts +4 -0
  208. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/ConfigurableSerdeContext.d.ts +8 -0
  209. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/UnionSerde.d.ts +24 -0
  210. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/common.d.ts +2 -0
  211. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/index.d.ts +9 -0
  212. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/JsonSettings.d.ts +13 -0
  213. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/SmithyRpcV2JsonProtocol.d.ts +28 -0
  214. package/node_modules/{@aws-sdk → @smithy}/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonCodec.d.ts +15 -11
  215. 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
  216. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonShapeDeserializer.d.ts +14 -0
  217. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonShapeSerializer.d.ts +29 -0
  218. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonBytesStringAdapter.d.ts +51 -0
  219. package/node_modules/{@aws-sdk → @smithy}/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonCodec2.d.ts +13 -9
  220. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonShapeDeserializer2.d.ts +30 -0
  221. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonShapeSerializer2.d.ts +60 -0
  222. package/node_modules/{@aws-sdk → @smithy}/core/dist-types/ts3.4/submodules/protocols/json/detectBufferParsing.d.ts +1 -1
  223. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/jsonReplacer.d.ts +21 -0
  224. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/jsonReviver.d.ts +15 -0
  225. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/needsReviver.d.ts +11 -0
  226. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/parseJsonBody.d.ts +38 -0
  227. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/writeKey.d.ts +4 -0
  228. package/node_modules/@smithy/core/package.json +2 -1
  229. package/node_modules/@types/node/README.md +1 -1
  230. package/node_modules/@types/node/package.json +2 -2
  231. package/node_modules/@types/node/util.d.ts +6 -3
  232. package/node_modules/body-parser/README.md +17 -13
  233. package/node_modules/body-parser/lib/read.js +74 -57
  234. package/node_modules/body-parser/lib/types/json.js +11 -11
  235. package/node_modules/body-parser/lib/types/urlencoded.js +5 -5
  236. package/node_modules/body-parser/lib/utils.js +0 -15
  237. package/node_modules/body-parser/package.json +7 -12
  238. package/node_modules/content-disposition/README.md +105 -35
  239. package/node_modules/content-disposition/dist/index.d.ts +72 -0
  240. package/node_modules/content-disposition/dist/index.js +388 -0
  241. package/node_modules/content-disposition/dist/index.js.map +1 -0
  242. package/node_modules/content-disposition/package.json +31 -19
  243. package/node_modules/express/Readme.md +15 -9
  244. package/node_modules/express/lib/application.js +2 -2
  245. package/node_modules/express/lib/request.js +32 -19
  246. package/node_modules/express/lib/response.js +27 -30
  247. package/node_modules/express/node_modules/content-type/LICENSE +22 -0
  248. package/node_modules/express/node_modules/content-type/README.md +71 -0
  249. package/node_modules/express/node_modules/content-type/dist/index.d.ts +46 -0
  250. package/node_modules/express/node_modules/content-type/dist/index.js +176 -0
  251. package/node_modules/express/node_modules/content-type/dist/index.js.map +1 -0
  252. package/node_modules/express/node_modules/content-type/package.json +52 -0
  253. package/node_modules/express/package.json +10 -10
  254. package/node_modules/fast-uri/.github/workflows/release.yml +35 -0
  255. package/node_modules/fast-uri/README.md +8 -0
  256. package/node_modules/fast-uri/index.js +98 -18
  257. package/node_modules/fast-uri/lib/utils.js +52 -0
  258. package/node_modules/fast-uri/package.json +1 -1
  259. package/node_modules/fast-uri/test/host-delimiter-security.test.js +94 -0
  260. package/node_modules/fast-uri/test/relative-normalization-security.test.js +156 -0
  261. package/node_modules/fast-uri/test/reserved-path-normalization.test.js +32 -4
  262. package/node_modules/fast-uri/test/scheme-validation.test.js +53 -14
  263. package/node_modules/hono/README.md +2 -3
  264. package/node_modules/hono/dist/cjs/helper/css/common.js +8 -3
  265. package/node_modules/hono/dist/cjs/helper/css/index.js +1 -1
  266. package/node_modules/hono/dist/cjs/helper/route/index.js +3 -1
  267. package/node_modules/hono/dist/cjs/jsx/base.js +1 -1
  268. package/node_modules/hono/dist/cjs/middleware/bearer-auth/index.js +8 -0
  269. package/node_modules/hono/dist/cjs/middleware/serve-static/index.js +3 -1
  270. package/node_modules/hono/dist/cjs/router/trie-router/node.js +2 -2
  271. package/node_modules/hono/dist/cjs/utils/url.js +11 -6
  272. package/node_modules/hono/dist/helper/css/common.js +8 -3
  273. package/node_modules/hono/dist/helper/css/index.js +1 -1
  274. package/node_modules/hono/dist/helper/route/index.js +3 -1
  275. package/node_modules/hono/dist/jsx/base.js +1 -1
  276. package/node_modules/hono/dist/middleware/bearer-auth/index.js +8 -0
  277. package/node_modules/hono/dist/middleware/serve-static/index.js +3 -1
  278. package/node_modules/hono/dist/router/trie-router/node.js +2 -2
  279. package/node_modules/hono/dist/types/adapter/aws-lambda/conninfo.d.ts +1 -1
  280. package/node_modules/hono/dist/types/adapter/bun/conninfo.d.ts +1 -1
  281. package/node_modules/hono/dist/types/adapter/bun/ssg.d.ts +1 -1
  282. package/node_modules/hono/dist/types/adapter/cloudflare-pages/conninfo.d.ts +1 -1
  283. package/node_modules/hono/dist/types/adapter/cloudflare-workers/conninfo.d.ts +1 -1
  284. package/node_modules/hono/dist/types/adapter/deno/conninfo.d.ts +1 -1
  285. package/node_modules/hono/dist/types/adapter/deno/ssg.d.ts +1 -1
  286. package/node_modules/hono/dist/types/adapter/lambda-edge/conninfo.d.ts +1 -1
  287. package/node_modules/hono/dist/types/adapter/netlify/conninfo.d.ts +1 -1
  288. package/node_modules/hono/dist/types/adapter/vercel/conninfo.d.ts +1 -1
  289. package/node_modules/hono/dist/types/helper/testing/index.d.ts +2 -1
  290. package/node_modules/hono/dist/types/hono-base.d.ts +21 -9
  291. package/node_modules/hono/dist/types/index.d.ts +1 -1
  292. package/node_modules/hono/dist/types/jsx/components.d.ts +2 -2
  293. package/node_modules/hono/dist/types/jsx/context.d.ts +2 -2
  294. package/node_modules/hono/dist/types/jsx/dom/components.d.ts +2 -2
  295. package/node_modules/hono/dist/types/jsx/dom/css.d.ts +2 -2
  296. package/node_modules/hono/dist/types/jsx/streaming.d.ts +4 -3
  297. package/node_modules/hono/dist/types/middleware/bearer-auth/index.d.ts +2 -1
  298. package/node_modules/hono/dist/types/middleware/ip-restriction/index.d.ts +3 -3
  299. package/node_modules/hono/dist/types/middleware/jsx-renderer/index.d.ts +3 -3
  300. package/node_modules/hono/dist/types/utils/ipaddr.d.ts +1 -1
  301. package/node_modules/hono/dist/utils/url.js +11 -6
  302. package/node_modules/hono/package.json +1 -1
  303. package/node_modules/ip-address/README.md +70 -70
  304. package/node_modules/ip-address/dist/common.js +2 -2
  305. package/node_modules/ip-address/dist/common.js.map +1 -1
  306. package/node_modules/ip-address/dist/ipv6.js +7 -4
  307. package/node_modules/ip-address/dist/ipv6.js.map +1 -1
  308. package/node_modules/ip-address/dist/v6/constants.d.ts +3 -0
  309. package/node_modules/ip-address/dist/v6/constants.js +3 -0
  310. package/node_modules/ip-address/dist/v6/constants.js.map +1 -1
  311. package/node_modules/ip-address/package.json +3 -2
  312. package/node_modules/jose/README.md +2 -2
  313. package/node_modules/jose/dist/types/jwe/compact/decrypt.d.ts +5 -4
  314. package/node_modules/jose/dist/types/jwe/compact/encrypt.d.ts +4 -4
  315. package/node_modules/jose/dist/types/jwe/flattened/decrypt.d.ts +5 -4
  316. package/node_modules/jose/dist/types/jwe/flattened/encrypt.d.ts +5 -5
  317. package/node_modules/jose/dist/types/jwe/general/decrypt.d.ts +5 -4
  318. package/node_modules/jose/dist/types/jwe/general/encrypt.d.ts +5 -5
  319. package/node_modules/jose/dist/types/jws/compact/sign.d.ts +5 -4
  320. package/node_modules/jose/dist/types/jws/compact/verify.d.ts +5 -5
  321. package/node_modules/jose/dist/types/jws/flattened/sign.d.ts +5 -4
  322. package/node_modules/jose/dist/types/jws/flattened/verify.d.ts +6 -5
  323. package/node_modules/jose/dist/types/jws/general/sign.d.ts +9 -6
  324. package/node_modules/jose/dist/types/jws/general/verify.d.ts +7 -5
  325. package/node_modules/jose/dist/types/jwt/decrypt.d.ts +7 -6
  326. package/node_modules/jose/dist/types/jwt/encrypt.d.ts +1 -1
  327. package/node_modules/jose/dist/types/jwt/sign.d.ts +1 -1
  328. package/node_modules/jose/dist/types/jwt/unsecured.d.ts +1 -1
  329. package/node_modules/jose/dist/types/jwt/verify.d.ts +3 -5
  330. package/node_modules/jose/dist/types/key/export.d.ts +1 -1
  331. package/node_modules/jose/dist/types/key/generate_secret.d.ts +1 -1
  332. package/node_modules/jose/dist/types/key/import.d.ts +2 -2
  333. package/node_modules/jose/dist/types/types.d.ts +165 -107
  334. package/node_modules/jose/dist/types/util/decode_jwt.d.ts +2 -2
  335. package/node_modules/jose/dist/types/util/errors.d.ts +1 -1
  336. package/node_modules/jose/dist/webapi/jwe/general/encrypt.js +3 -3
  337. package/node_modules/jose/dist/webapi/jwk/thumbprint.js +8 -8
  338. package/node_modules/jose/dist/webapi/jwks/local.js +2 -1
  339. package/node_modules/jose/dist/webapi/jwks/remote.js +4 -4
  340. package/node_modules/jose/dist/webapi/jws/general/sign.js +3 -3
  341. package/node_modules/jose/dist/webapi/jws/general/verify.js +3 -3
  342. package/node_modules/jose/dist/webapi/jwt/encrypt.js +2 -2
  343. package/node_modules/jose/dist/webapi/jwt/sign.js +2 -2
  344. package/node_modules/jose/dist/webapi/jwt/unsecured.js +3 -3
  345. package/node_modules/jose/dist/webapi/key/generate_secret.js +4 -4
  346. package/node_modules/jose/dist/webapi/lib/asn1.js +2 -2
  347. package/node_modules/jose/dist/webapi/lib/buffer_utils.js +4 -4
  348. package/node_modules/jose/dist/webapi/lib/content_encryption.js +8 -8
  349. package/node_modules/jose/dist/webapi/lib/jwe_decrypt.js +14 -14
  350. package/node_modules/jose/dist/webapi/lib/jwe_encrypt.js +3 -3
  351. package/node_modules/jose/dist/webapi/lib/jws_algorithms.js +2 -2
  352. package/node_modules/jose/dist/webapi/lib/jws_sign.js +11 -11
  353. package/node_modules/jose/dist/webapi/lib/jws_verify.js +19 -16
  354. package/node_modules/jose/dist/webapi/lib/jwt_claims_set.js +44 -43
  355. package/node_modules/jose/dist/webapi/lib/key.js +4 -4
  356. package/node_modules/jose/dist/webapi/lib/key_management.js +17 -17
  357. package/node_modules/jose/dist/webapi/lib/validate.js +10 -10
  358. package/node_modules/jose/dist/webapi/util/decode_jwt.js +12 -12
  359. package/node_modules/jose/dist/webapi/util/decode_protected_header.js +5 -5
  360. package/node_modules/jose/package.json +1 -1
  361. package/node_modules/on-finished/index.js +14 -2
  362. package/node_modules/on-finished/package.json +11 -7
  363. package/node_modules/qs/.github/THREAT_MODEL.md +4 -2
  364. package/node_modules/qs/CHANGELOG.md +38 -14
  365. package/node_modules/qs/README.md +31 -3
  366. package/node_modules/qs/dist/qs.js +20 -20
  367. package/node_modules/qs/lib/parse.js +94 -4
  368. package/node_modules/qs/lib/stringify.js +4 -4
  369. package/node_modules/qs/lib/utils.js +130 -6
  370. package/node_modules/qs/package.json +4 -4
  371. package/node_modules/qs/test/parse.js +174 -0
  372. package/node_modules/qs/test/stringify.js +263 -33
  373. package/node_modules/qs/test/utils.js +184 -0
  374. package/node_modules/undici/docs/docs/api/Client.md +2 -0
  375. package/node_modules/undici/lib/core/connect.js +10 -4
  376. package/node_modules/undici/lib/core/symbols.js +1 -0
  377. package/node_modules/undici/lib/dispatcher/agent.js +6 -2
  378. package/node_modules/undici/lib/dispatcher/client-h1.js +0 -2
  379. package/node_modules/undici/lib/dispatcher/client-h2.js +0 -4
  380. package/node_modules/undici/lib/dispatcher/client.js +3 -2
  381. package/node_modules/undici/lib/dispatcher/dispatcher-base.js +12 -0
  382. package/node_modules/undici/lib/handler/cache-handler.js +48 -0
  383. package/node_modules/undici/lib/handler/deduplication-handler.js +57 -13
  384. package/node_modules/undici/lib/handler/redirect-handler.js +8 -1
  385. package/node_modules/undici/lib/interceptor/decompress.js +15 -5
  386. package/node_modules/undici/lib/web/cookies/index.js +3 -1
  387. package/node_modules/undici/lib/web/cookies/parse.js +138 -137
  388. package/node_modules/undici/lib/web/cookies/util.js +21 -2
  389. package/node_modules/undici/lib/web/eventsource/eventsource-stream.js +90 -9
  390. package/node_modules/undici/lib/web/eventsource/eventsource.js +4 -1
  391. package/node_modules/undici/lib/web/fetch/index.js +3 -3
  392. package/node_modules/undici/lib/web/infra/index.js +14 -0
  393. package/node_modules/undici/lib/web/subresource-integrity/subresource-integrity.js +5 -5
  394. package/node_modules/undici/lib/web/websocket/receiver.js +13 -0
  395. package/node_modules/undici/package.json +1 -1
  396. package/node_modules/undici/types/client.d.ts +14 -0
  397. package/node_modules/zod/package.json +1 -1
  398. package/node_modules/zod/src/v4/classic/tests/array.test.ts +27 -0
  399. package/node_modules/zod/src/v4/classic/tests/map.test.ts +7 -0
  400. package/node_modules/zod/src/v4/classic/tests/set.test.ts +6 -0
  401. package/node_modules/zod/src/v4/core/compile.ts +9 -0
  402. package/node_modules/zod/src/v4/core/schemas.ts +35 -1
  403. package/node_modules/zod/src/v4/core/util.ts +13 -0
  404. package/node_modules/zod/src/v4/core/versions.ts +1 -1
  405. package/node_modules/zod/v4/core/compile.cjs +8 -0
  406. package/node_modules/zod/v4/core/compile.js +8 -0
  407. package/node_modules/zod/v4/core/schemas.cjs +30 -0
  408. package/node_modules/zod/v4/core/schemas.d.cts +3 -1
  409. package/node_modules/zod/v4/core/schemas.d.ts +3 -1
  410. package/node_modules/zod/v4/core/schemas.js +30 -0
  411. package/node_modules/zod/v4/core/util.cjs +15 -0
  412. package/node_modules/zod/v4/core/util.d.cts +2 -0
  413. package/node_modules/zod/v4/core/util.d.ts +2 -0
  414. package/node_modules/zod/v4/core/util.js +14 -0
  415. package/node_modules/zod/v4/core/versions.cjs +1 -1
  416. package/node_modules/zod/v4/core/versions.js +1 -1
  417. package/package.json +5 -4
  418. package/sling-default-packages.json +3 -2
  419. package/slingshot/index.js +124 -124
  420. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/codec-v1/JsonSettings.d.ts +0 -7
  421. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonSettings.d.ts +0 -4
  422. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonShapeDeserializer.d.ts +0 -13
  423. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonShapeSerializer.d.ts +0 -18
  424. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonBytesStringAdapter.d.ts +0 -27
  425. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonShapeDeserializer2.d.ts +0 -15
  426. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonShapeSerializer2.d.ts +0 -39
  427. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/jsonReplacer.d.ts +0 -7
  428. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/jsonReviver.d.ts +0 -7
  429. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/needsReviver.d.ts +0 -2
  430. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/parseJsonBody.d.ts +0 -14
  431. package/node_modules/content-disposition/index.js +0 -536
  432. package/node_modules/on-finished/HISTORY.md +0 -98
  433. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/JsonSettings.js +0 -0
  434. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v1/JsonCodec.js +0 -0
  435. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v1/JsonSettings.js +0 -0
  436. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v2/JsonBytesStringAdapter.js +0 -0
  437. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v2/JsonCodec2.js +0 -0
  438. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/detectBufferParsing.js +0 -0
  439. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/jsonReplacer.js +0 -0
  440. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/jsonReviver.js +0 -0
  441. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/needsReviver.js +0 -0
  442. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v1/JsonCodec.d.ts +0 -0
  443. /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
  444. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v1/JsonShapeDeserializer.d.ts +0 -0
  445. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v1/JsonShapeSerializer.d.ts +0 -0
  446. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v2/JsonBytesStringAdapter.d.ts +0 -0
  447. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v2/JsonCodec2.d.ts +0 -0
  448. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v2/JsonShapeDeserializer2.d.ts +0 -0
  449. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v2/JsonShapeSerializer2.d.ts +0 -0
  450. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/detectBufferParsing.d.ts +0 -0
  451. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/jsonReplacer.d.ts +0 -0
  452. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/jsonReviver.d.ts +0 -0
  453. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/needsReviver.d.ts +0 -0
@@ -1,9 +1,20 @@
1
1
  const { SmithyRpcV2CborProtocol, loadSmithyRpcV2CborErrorCode } = require("@smithy/core/cbor");
2
2
  const { TypeRegistry, NormalizedSchema, deref } = require("@smithy/core/schema");
3
3
  const { decorateServiceException, getValueFromTextNode } = require("@smithy/core/client");
4
- const { collectBody, determineTimestampFormat, RpcProtocol, HttpBindingProtocol, HttpInterceptingShapeSerializer, HttpInterceptingShapeDeserializer, FromStringShapeDeserializer, extendedEncodeURIComponent } = require("@smithy/core/protocols");
5
- const { NumericValue, toUtf8, fromBase64, LazyJsonString, parseEpochTimestamp, parseRfc7231DateTime, parseRfc3339DateTimeWithOffset, generateIdempotencyToken, toBase64, dateToUtcString, expectUnion } = require("@smithy/core/serde");
4
+ const { RpcProtocol, JsonCodec2, loadJsonRpcErrorCode, HttpBindingProtocol, HttpInterceptingShapeSerializer, HttpInterceptingShapeDeserializer, loadRestJsonErrorCode, FromStringShapeDeserializer, determineTimestampFormat, extendedEncodeURIComponent, collectBody } = require("@smithy/core/protocols");
5
+ const { JsonCodec, JsonShapeDeserializer, JsonShapeDeserializer2, JsonShapeSerializer, JsonShapeSerializer2, parseJsonBody, parseJsonErrorBody } = require("@smithy/core/protocols");
6
+ exports.JsonCodec = JsonCodec;
7
+ exports.JsonCodec2 = JsonCodec2;
8
+ exports.JsonShapeDeserializer = JsonShapeDeserializer;
9
+ exports.JsonShapeDeserializer2 = JsonShapeDeserializer2;
10
+ exports.JsonShapeSerializer = JsonShapeSerializer;
11
+ exports.JsonShapeSerializer2 = JsonShapeSerializer2;
12
+ exports.loadJsonRpcErrorCode = loadJsonRpcErrorCode;
13
+ exports.loadRestJsonErrorCode = loadRestJsonErrorCode;
14
+ exports.parseJsonBody = parseJsonBody;
15
+ exports.parseJsonErrorBody = parseJsonErrorBody;
6
16
  const { parseXML, XmlNode, XmlText } = require("@aws-sdk/xml-builder");
17
+ const { toUtf8, toBase64, generateIdempotencyToken, NumericValue, dateToUtcString, fromBase64, expectUnion } = require("@smithy/core/serde");
7
18
 
8
19
  class ProtocolLib {
9
20
  queryCompat;
@@ -128,1201 +139,68 @@ class ProtocolLib {
128
139
  if (queryCompatErrorData.Error) {
129
140
  errorData.Error = queryCompatErrorData.Error;
130
141
  }
131
- if (queryCompatErrorData.Type) {
132
- errorData.Type = queryCompatErrorData.Type;
133
- }
134
- if (queryCompatErrorData.Code) {
135
- errorData.Code = queryCompatErrorData.Code;
136
- }
137
- }
138
- findQueryCompatibleError(registry, errorName) {
139
- try {
140
- return registry.getSchema(errorName);
141
- }
142
- catch (e) {
143
- return registry.find((schema) => NormalizedSchema.of(schema).getMergedTraits().awsQueryError?.[0] === errorName);
144
- }
145
- }
146
- }
147
-
148
- class AwsSmithyRpcV2CborProtocol extends SmithyRpcV2CborProtocol {
149
- awsQueryCompatible;
150
- mixin;
151
- constructor({ defaultNamespace, errorTypeRegistries, awsQueryCompatible, }) {
152
- super({ defaultNamespace, errorTypeRegistries });
153
- this.awsQueryCompatible = !!awsQueryCompatible;
154
- this.mixin = new ProtocolLib(this.awsQueryCompatible);
155
- }
156
- async serializeRequest(operationSchema, input, context) {
157
- const request = await super.serializeRequest(operationSchema, input, context);
158
- if (this.awsQueryCompatible) {
159
- request.headers["x-amzn-query-mode"] = "true";
160
- }
161
- return request;
162
- }
163
- async handleError(operationSchema, context, response, dataObject, metadata) {
164
- if (this.awsQueryCompatible) {
165
- this.mixin.setQueryCompatError(dataObject, response);
166
- }
167
- const errorName = (() => {
168
- const compatHeader = response.headers["x-amzn-query-error"];
169
- if (compatHeader && this.awsQueryCompatible) {
170
- return compatHeader.split(";")[0];
171
- }
172
- return loadSmithyRpcV2CborErrorCode(response, dataObject) ?? "Unknown";
173
- })();
174
- this.mixin.compose(this.compositeErrorRegistry, errorName, this.options.defaultNamespace);
175
- const { errorSchema, errorMetadata } = await this.mixin.getErrorSchemaOrThrowBaseException(errorName, this.options.defaultNamespace, response, dataObject, metadata, this.awsQueryCompatible ? this.mixin.findQueryCompatibleError : undefined);
176
- const ns = NormalizedSchema.of(errorSchema);
177
- const message = dataObject.message ?? dataObject.Message ?? "UnknownError";
178
- const ErrorCtor = this.compositeErrorRegistry.getErrorCtor(errorSchema) ?? Error;
179
- const exception = new ErrorCtor({});
180
- const output = {};
181
- for (const [name, member] of ns.structIterator()) {
182
- if (dataObject[name] != null) {
183
- output[name] = this.deserializer.readValue(member, dataObject[name]);
184
- }
185
- }
186
- if (this.awsQueryCompatible) {
187
- this.mixin.queryCompatOutput(dataObject, output);
188
- }
189
- throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {
190
- $fault: ns.getMergedTraits().error,
191
- message,
192
- }, output), dataObject);
193
- }
194
- }
195
-
196
- class SerdeContextConfig {
197
- serdeContext;
198
- setSerdeContext(serdeContext) {
199
- this.serdeContext = serdeContext;
200
- }
201
- }
202
-
203
- class UnionSerde {
204
- from;
205
- to;
206
- keys;
207
- constructor(from, to) {
208
- this.from = from;
209
- this.to = to;
210
- const keys = Object.keys(this.from);
211
- const set = new Set(keys);
212
- set.delete("__type");
213
- this.keys = set;
214
- }
215
- mark(key) {
216
- this.keys.delete(key);
217
- }
218
- hasUnknown() {
219
- return this.keys.size === 1 && Object.keys(this.to).length === 0;
220
- }
221
- writeUnknown() {
222
- if (this.hasUnknown()) {
223
- const k = this.keys.values().next().value;
224
- const v = this.from[k];
225
- this.to.$unknown = [k, v];
226
- }
227
- }
228
- }
229
-
230
- let canParseBuffer;
231
- function detectBufferParsing() {
232
- if (canParseBuffer === undefined) {
233
- try {
234
- if (typeof Buffer !== "function") {
235
- canParseBuffer = false;
236
- }
237
- else {
238
- const result = JSON.parse(Buffer.from([0x7b, 0x7d]));
239
- canParseBuffer = result !== null && typeof result === "object";
240
- }
241
- }
242
- catch {
243
- canParseBuffer = false;
244
- }
245
- }
246
- return canParseBuffer;
247
- }
248
-
249
- function jsonReviver(key, value, context) {
250
- if (context?.source) {
251
- const numericString = context.source;
252
- if (typeof value === "number") {
253
- const inSafeRange = value <= Number.MAX_SAFE_INTEGER && value >= Number.MIN_SAFE_INTEGER;
254
- if (inSafeRange) {
255
- if (isRepresentable(numericString, value)) {
256
- return value;
257
- }
258
- return new NumericValue(numericString, "bigDecimal");
259
- }
260
- else {
261
- if (isFractionalBigNumeric(numericString)) {
262
- return new NumericValue(numericString, "bigDecimal");
263
- }
264
- if (/[eE]/.test(numericString)) {
265
- return expandExponentToBigInt(numericString);
266
- }
267
- return BigInt(numericString);
268
- }
269
- }
270
- }
271
- return value;
272
- }
273
- function isFractionalBigNumeric(s) {
274
- const dotIndex = s.indexOf(".");
275
- if (dotIndex === -1) {
276
- return false;
277
- }
278
- const eIndex = s.search(/[eE]/);
279
- if (eIndex === -1) {
280
- return true;
281
- }
282
- const fracDigits = eIndex - dotIndex - 1;
283
- const exp = parseInt(s.slice(eIndex + 1), 10);
284
- return exp < fracDigits;
285
- }
286
- function isRepresentable(numericString, value) {
287
- if (numericString === String(value)) {
288
- return true;
289
- }
290
- if (Object.is(value, -0)) {
291
- return true;
292
- }
293
- if (/[eE]/.test(numericString)) {
294
- return expandToDecimal(numericString) === expandToDecimal(String(value));
295
- }
296
- const normalized = numericString.replace(/(\.\d*?)0+$/, "$1").replace(/\.$/, "");
297
- const canonical = String(value);
298
- if (normalized === canonical) {
299
- return true;
300
- }
301
- if (/[eE]/.test(canonical)) {
302
- return normalized === expandToDecimal(canonical);
303
- }
304
- return false;
305
- }
306
- function expandToDecimal(s) {
307
- const negative = s.startsWith("-");
308
- const abs = negative ? s.slice(1) : s;
309
- const eIndex = abs.search(/[eE]/);
310
- let result;
311
- if (eIndex === -1) {
312
- result = abs;
313
- }
314
- else {
315
- const exp = parseInt(abs.slice(eIndex + 1), 10);
316
- const mantissa = abs.slice(0, eIndex);
317
- const dotIndex = mantissa.indexOf(".");
318
- let digits;
319
- let intLen;
320
- if (dotIndex === -1) {
321
- digits = mantissa;
322
- intLen = mantissa.length;
323
- }
324
- else {
325
- digits = mantissa.slice(0, dotIndex) + mantissa.slice(dotIndex + 1);
326
- intLen = dotIndex;
327
- }
328
- digits = digits.replace(/0+$/, "") || "0";
329
- const newDotPos = intLen + exp;
330
- if (digits === "0") {
331
- result = "0";
332
- }
333
- else if (newDotPos <= 0) {
334
- result = "0." + "0".repeat(-newDotPos) + digits;
335
- }
336
- else if (newDotPos >= digits.length) {
337
- result = digits + "0".repeat(newDotPos - digits.length);
338
- }
339
- else {
340
- result = digits.slice(0, newDotPos) + "." + digits.slice(newDotPos);
341
- }
342
- }
343
- if (result.includes(".")) {
344
- result = result.replace(/(\.\d*?)0+$/, "$1").replace(/\.$/, "");
345
- }
346
- return (negative ? "-" : "") + result;
347
- }
348
- function expandExponentToBigInt(s) {
349
- const eIndex = s.search(/[eE]/);
350
- const exp = parseInt(s.slice(eIndex + 1), 10);
351
- const negative = s.startsWith("-");
352
- const mantissa = s.slice(negative ? 1 : 0, eIndex);
353
- const dotIndex = mantissa.indexOf(".");
354
- let digits;
355
- let shift;
356
- if (dotIndex === -1) {
357
- digits = mantissa;
358
- shift = exp;
359
- }
360
- else {
361
- digits = mantissa.slice(0, dotIndex) + mantissa.slice(dotIndex + 1);
362
- const fracDigits = mantissa.length - dotIndex - 1;
363
- shift = exp - fracDigits;
364
- }
365
- digits = digits.replace(/0+$/, "") || "0";
366
- const result = BigInt(digits) * 10n ** BigInt(shift + (mantissa.replace(".", "").length - digits.length));
367
- return negative ? -result : result;
368
- }
369
-
370
- const REVIVER_SYMBOL = Symbol.for("@aws-sdk/reviver");
371
- function needsReviver(schema) {
372
- const ns = NormalizedSchema.of(schema);
373
- const raw = ns.getSchema();
374
- if (Array.isArray(raw) && ns.isStructSchema()) {
375
- if (REVIVER_SYMBOL in raw) {
376
- return raw[REVIVER_SYMBOL];
377
- }
378
- const result = _check(ns, new Set());
379
- raw[REVIVER_SYMBOL] = result;
380
- return result;
381
- }
382
- return _check(ns, new Set());
383
- }
384
- function _check(ns, seen) {
385
- const raw = ns.getSchema();
386
- if (seen.has(raw)) {
387
- return false;
388
- }
389
- seen.add(raw);
390
- if (ns.isBigIntegerSchema() || ns.isBigDecimalSchema()) {
391
- return true;
392
- }
393
- if (ns.isStructSchema()) {
394
- for (const [, memberSchema] of ns.structIterator()) {
395
- if (_check(memberSchema, seen)) {
396
- return true;
397
- }
398
- }
399
- }
400
- else if (ns.isListSchema() || ns.isMapSchema()) {
401
- if (_check(ns.getValueSchema(), seen)) {
402
- return true;
403
- }
404
- }
405
- else if (ns.isDocumentSchema()) {
406
- return true;
407
- }
408
- return false;
409
- }
410
-
411
- const collectBodyString = (streamBody, context) => collectBody(streamBody, context).then((body) => (context?.utf8Encoder ?? toUtf8)(body));
412
-
413
- async function parseJsonBody(streamBody, context, schema) {
414
- let parsingInput;
415
- if (detectBufferParsing() && typeof streamBody?.[Symbol.asyncIterator] === "function") {
416
- const buffer = await collectBody(streamBody, context);
417
- if (typeof Buffer === "function") {
418
- if (Buffer.isBuffer(buffer)) {
419
- parsingInput = buffer;
420
- }
421
- else {
422
- parsingInput = Buffer.from(buffer.buffer, buffer.byteOffset, buffer.byteLength);
423
- }
424
- }
425
- }
426
- if (!parsingInput) {
427
- parsingInput = await collectBodyString(streamBody, context);
428
- }
429
- if (parsingInput.length === 0) {
430
- return {};
431
- }
432
- const reviver = schema && needsReviver(schema) ? jsonReviver : undefined;
433
- try {
434
- return JSON.parse(parsingInput, reviver);
435
- }
436
- catch (e) {
437
- if (e?.name === "SyntaxError") {
438
- Object.defineProperty(e, "$responseBodyText", {
439
- value: typeof parsingInput === "string" ? parsingInput : parsingInput.toString("utf8"),
440
- });
441
- }
442
- throw e;
443
- }
444
- }
445
- const parseJsonErrorBody = async (errorBody, context) => {
446
- const value = await parseJsonBody(errorBody, context);
447
- value.message = value.message ?? value.Message;
448
- return value;
449
- };
450
- const findKey = (object, key) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase());
451
- const sanitizeErrorCode = (rawValue) => {
452
- let cleanValue = rawValue;
453
- if (typeof cleanValue === "number") {
454
- cleanValue = cleanValue.toString();
455
- }
456
- if (cleanValue.indexOf(",") >= 0) {
457
- cleanValue = cleanValue.split(",")[0];
458
- }
459
- if (cleanValue.indexOf(":") >= 0) {
460
- cleanValue = cleanValue.split(":")[0];
461
- }
462
- if (cleanValue.indexOf("#") >= 0) {
463
- cleanValue = cleanValue.split("#")[1];
464
- }
465
- return cleanValue;
466
- };
467
- const loadRestJsonErrorCode = (output, data) => {
468
- return loadErrorCode(output, data, ["header", "code", "type"]);
469
- };
470
- const loadJsonRpcErrorCode = (output, data, queryCompat = false) => {
471
- return loadErrorCode(output, data, queryCompat ? ["code", "header", "type"] : ["type", "code", "header"]);
472
- };
473
- const loadErrorCode = ({ headers }, data, order) => {
474
- while (order.length > 0) {
475
- const location = order.shift();
476
- switch (location) {
477
- case "header":
478
- const headerKey = findKey(headers ?? {}, "x-amzn-errortype");
479
- if (headerKey !== undefined) {
480
- return sanitizeErrorCode(headers[headerKey]);
481
- }
482
- break;
483
- case "code":
484
- const codeKey = findKey(data ?? {}, "code");
485
- if (codeKey && data[codeKey] !== undefined) {
486
- return sanitizeErrorCode(data[codeKey]);
487
- }
488
- break;
489
- case "type":
490
- if (data?.__type !== undefined) {
491
- return sanitizeErrorCode(data.__type);
492
- }
493
- break;
494
- }
495
- }
496
- };
497
-
498
- function writeKey(obj) {
499
- Object.defineProperty(obj, "__proto__", { value: undefined, writable: true, enumerable: true, configurable: true });
500
- }
501
-
502
- class JsonShapeDeserializer2 extends SerdeContextConfig {
503
- settings;
504
- constructor(settings) {
505
- super();
506
- this.settings = settings;
507
- }
508
- async read(schema, data) {
509
- const reviver = needsReviver(schema) ? jsonReviver : undefined;
510
- let parsed;
511
- if (typeof data === "string") {
512
- if (data.length === 0) {
513
- return {};
514
- }
515
- parsed = JSON.parse(data, reviver);
516
- }
517
- else if (data instanceof Uint8Array && detectBufferParsing()) {
518
- if (data.byteLength === 0) {
519
- return {};
520
- }
521
- const buf = Buffer.isBuffer(data) ? data : Buffer.from(data.buffer, data.byteOffset, data.byteLength);
522
- parsed = JSON.parse(buf, reviver);
523
- }
524
- else {
525
- parsed = await parseJsonBody(data, this.serdeContext, schema);
526
- }
527
- return this._read(schema, parsed);
528
- }
529
- readObject(schema, data) {
530
- return this._read(schema, data);
531
- }
532
- _read(schema, value) {
533
- const isObject = value !== null && typeof value === "object";
534
- const ns = NormalizedSchema.of(schema);
535
- if (isObject) {
536
- if (ns.isStructSchema()) {
537
- return this._readStruct(ns, value);
538
- }
539
- if (Array.isArray(value) && ns.isListSchema()) {
540
- const listMember = ns.getValueSchema();
541
- if (this.needsTransform(listMember)) {
542
- for (let i = 0; i < value.length; ++i) {
543
- value[i] = this._read(listMember, value[i]);
544
- }
545
- }
546
- return value;
547
- }
548
- if (ns.isMapSchema()) {
549
- const mapMember = ns.getValueSchema();
550
- const map = value;
551
- if (this.needsTransform(mapMember)) {
552
- for (const k in map) {
553
- if (k === "__proto__") {
554
- writeKey(map);
555
- }
556
- map[k] = this._read(mapMember, map[k]);
557
- }
558
- }
559
- return map;
560
- }
561
- }
562
- if (ns.isBlobSchema() && typeof value === "string") {
563
- return fromBase64(value);
564
- }
565
- const mediaType = ns.getMergedTraits().mediaType;
566
- if (ns.isStringSchema() && typeof value === "string" && mediaType) {
567
- const isJson = mediaType === "application/json" || mediaType.endsWith("+json");
568
- if (isJson) {
569
- return LazyJsonString.from(value);
570
- }
571
- return value;
572
- }
573
- if (ns.isTimestampSchema() && value != null) {
574
- const format = determineTimestampFormat(ns, this.settings);
575
- switch (format) {
576
- case 5:
577
- return parseRfc3339DateTimeWithOffset(value);
578
- case 6:
579
- return parseRfc7231DateTime(value);
580
- case 7:
581
- return parseEpochTimestamp(value);
582
- default:
583
- console.warn("Missing timestamp format, parsing value with Date constructor:", value);
584
- return new Date(value);
585
- }
586
- }
587
- if (ns.isBigIntegerSchema() && (typeof value === "number" || typeof value === "string")) {
588
- return BigInt(value);
589
- }
590
- if (ns.isBigDecimalSchema() && value != undefined) {
591
- if (value instanceof NumericValue) {
592
- return value;
593
- }
594
- const untyped = value;
595
- if (untyped.type === "bigDecimal" && "string" in untyped) {
596
- return new NumericValue(untyped.string, untyped.type);
597
- }
598
- return new NumericValue(String(value), "bigDecimal");
599
- }
600
- if (ns.isNumericSchema() && typeof value === "string") {
601
- switch (value) {
602
- case "Infinity":
603
- return Infinity;
604
- case "-Infinity":
605
- return -Infinity;
606
- case "NaN":
607
- return NaN;
608
- }
609
- return value;
610
- }
611
- if (ns.isDocumentSchema()) {
612
- if (isObject) {
613
- if (Array.isArray(value)) {
614
- for (let i = 0; i < value.length; ++i) {
615
- const v = value[i];
616
- if (!(v instanceof NumericValue)) {
617
- value[i] = this._read(ns, v);
618
- }
619
- }
620
- }
621
- else {
622
- const doc = value;
623
- for (const k in doc) {
624
- if (k === "__proto__") {
625
- writeKey(doc);
626
- }
627
- const v = doc[k];
628
- if (!(v instanceof NumericValue)) {
629
- doc[k] = this._read(ns, v);
630
- }
631
- }
632
- }
633
- }
634
- }
635
- return value;
636
- }
637
- _readStruct(ns, record) {
638
- const union = ns.isUnionSchema();
639
- const out = {};
640
- let nameMap;
641
- const hasType = typeof record.__type === "string";
642
- const { jsonName } = this.settings;
643
- if (jsonName && hasType) {
644
- nameMap = {};
645
- }
646
- let unionSerde;
647
- if (union) {
648
- unionSerde = new UnionSerde(record, out);
649
- }
650
- for (const [memberName, memberSchema] of ns.structIterator()) {
651
- let fromKey = memberName;
652
- if (jsonName) {
653
- fromKey = memberSchema.getMergedTraits().jsonName ?? fromKey;
654
- if (hasType) {
655
- nameMap[fromKey] = memberName;
656
- }
657
- }
658
- if (union) {
659
- unionSerde.mark(fromKey);
660
- }
661
- if (record[fromKey] != null) {
662
- out[memberName] = this._read(memberSchema, record[fromKey]);
663
- }
664
- }
665
- if (union) {
666
- unionSerde.writeUnknown();
667
- }
668
- else if (hasType) {
669
- for (const k in record) {
670
- const v = record[k];
671
- const t = jsonName ? (nameMap[k] ?? k) : k;
672
- if (!(t in out)) {
673
- out[t] = v;
674
- }
675
- }
676
- }
677
- return out;
678
- }
679
- needsTransform(ns) {
680
- if (ns.isBlobSchema() || ns.isTimestampSchema() || ns.isBigIntegerSchema() || ns.isBigDecimalSchema()) {
681
- return true;
682
- }
683
- if (ns.isDocumentSchema() || ns.isStructSchema() || ns.isListSchema() || ns.isMapSchema()) {
684
- return true;
685
- }
686
- if (ns.isStringSchema() && ns.getMergedTraits().mediaType) {
687
- return true;
688
- }
689
- return false;
690
- }
691
- }
692
-
693
- class JsonBytesStringAdapter extends Uint8Array {
694
- string = null;
695
- static allocUnsafe(bytes) {
696
- if (typeof Buffer === "function") {
697
- const buffer = Buffer.allocUnsafe(bytes);
698
- return new JsonBytesStringAdapter(buffer.buffer, buffer.byteOffset, buffer.byteLength);
699
- }
700
- return new JsonBytesStringAdapter(bytes);
701
- }
702
- toString() {
703
- return this.s();
704
- }
705
- valueOf() {
706
- return this.s();
707
- }
708
- includes(searchString, position) {
709
- if (typeof searchString === "string") {
710
- return this.s().includes(searchString, position);
711
- }
712
- return Uint8Array.prototype.includes.call(this, searchString, position);
713
- }
714
- indexOf(searchString, position) {
715
- if (typeof searchString === "string") {
716
- return this.s().indexOf(searchString, position);
717
- }
718
- return Uint8Array.prototype.indexOf.call(this, searchString, position);
719
- }
720
- lastIndexOf(searchString, position) {
721
- if (typeof searchString === "string") {
722
- return this.s().lastIndexOf(searchString, position);
723
- }
724
- const fn = Uint8Array.prototype.lastIndexOf;
725
- if (position !== undefined) {
726
- return fn.call(this, searchString, position);
727
- }
728
- return fn.call(this, searchString);
729
- }
730
- startsWith(searchString, position) {
731
- return this.s().startsWith(searchString, position);
732
- }
733
- endsWith(searchString, endPosition) {
734
- return this.s().endsWith(searchString, endPosition);
735
- }
736
- match(regexp) {
737
- return this.s().match(regexp);
738
- }
739
- replace(searchValue, replaceValue) {
740
- return this.s().replace(searchValue, replaceValue);
741
- }
742
- search(regexp) {
743
- return this.s().search(regexp);
744
- }
745
- split(separator, limit) {
746
- return this.s().split(separator, limit);
747
- }
748
- substring(start, end) {
749
- return this.s().substring(start, end);
750
- }
751
- trim() {
752
- return this.s().trim();
753
- }
754
- trimStart() {
755
- return this.s().trimStart();
756
- }
757
- trimEnd() {
758
- return this.s().trimEnd();
759
- }
760
- charAt(pos) {
761
- return this.s().charAt(pos);
762
- }
763
- charCodeAt(index) {
764
- return this.s().charCodeAt(index);
765
- }
766
- padStart(maxLength, fillString) {
767
- return this.s().padStart(maxLength, fillString);
768
- }
769
- padEnd(maxLength, fillString) {
770
- return this.s().padEnd(maxLength, fillString);
771
- }
772
- repeat(count) {
773
- return this.s().repeat(count);
774
- }
775
- toUpperCase() {
776
- return this.s().toUpperCase();
777
- }
778
- toLowerCase() {
779
- return this.s().toLowerCase();
780
- }
781
- s() {
782
- if (this.string == null) {
783
- const n = Date.now();
784
- if (n > warned + 60_000) {
785
- console.warn("@aws-sdk/core/protocols - WARN - JsonCodec2: you have called a string method on a Uint8Array request body. " +
786
- "It has been automatically converted to string. In a future version this will throw an error.");
787
- warned = n;
788
- }
789
- this.string = toUtf8(this);
790
- }
791
- return this.string;
792
- }
793
- }
794
- var warned = 0;
795
-
796
- const encoder = new TextEncoder();
797
- const OPEN_BRACE = 0x7b;
798
- const CLOSE_BRACE = 0x7d;
799
- const OPEN_BRACKET = 0x5b;
800
- const CLOSE_BRACKET = 0x5d;
801
- const QUOTE = 0x22;
802
- const COLON = 0x3a;
803
- const COMMA = 0x2c;
804
- const BACKSLASH = 0x5c;
805
- const TRUE = new Uint8Array([0x74, 0x72, 0x75, 0x65]);
806
- const FALSE = new Uint8Array([0x66, 0x61, 0x6c, 0x73, 0x65]);
807
- const NULL = new Uint8Array([0x6e, 0x75, 0x6c, 0x6c]);
808
- const ESCAPE_TABLE = new Array(128).fill(null);
809
- ESCAPE_TABLE[0x08] = "b";
810
- ESCAPE_TABLE[0x09] = "t";
811
- ESCAPE_TABLE[0x0a] = "n";
812
- ESCAPE_TABLE[0x0c] = "f";
813
- ESCAPE_TABLE[0x0d] = "r";
814
- ESCAPE_TABLE[0x22] = '"';
815
- ESCAPE_TABLE[0x5c] = "\\";
816
- for (let i = 0; i < 0x20; i++) {
817
- if (ESCAPE_TABLE[i] === null) {
818
- ESCAPE_TABLE[i] = "u00" + i.toString(16).padStart(2, "0");
819
- }
820
- }
821
- const INITIAL_BUFFER_SIZE = 2048;
822
- function alloc(size) {
823
- return JsonBytesStringAdapter.allocUnsafe(size);
824
- }
825
- class JsonShapeSerializer2 extends SerdeContextConfig {
826
- settings;
827
- json;
828
- i = 0;
829
- rootSchema;
830
- rawValue;
831
- passthrough = false;
832
- constructor(settings) {
833
- super();
834
- this.settings = settings;
835
- this.json = alloc(INITIAL_BUFFER_SIZE);
836
- }
837
- write(schema, value) {
838
- this.i = 0;
839
- this.rawValue = value;
840
- this.rootSchema = NormalizedSchema.of(schema);
841
- this.passthrough = this.rootSchema.isBlobSchema() || this.rootSchema.isStringSchema();
842
- if (!this.passthrough) {
843
- this.writeValue(this.rootSchema, value, undefined);
844
- }
845
- }
846
- writeDiscriminatedDocument(schema, value) {
847
- this.i = 0;
848
- this.rootSchema = NormalizedSchema.of(schema);
849
- const ns = this.rootSchema;
850
- if (ns.isStructSchema() && value != null && typeof value === "object") {
851
- this.writeValue(ns, value, undefined);
852
- const prefix = `"__type":"${ns.getName(true) ?? "Unknown"}",`;
853
- const z = prefix.length;
854
- this.ensure(z);
855
- this.json.copyWithin(1 + z, 1, this.i);
856
- encoder.encodeInto(prefix, this.json.subarray(1));
857
- this.i += z;
858
- }
859
- else {
860
- this.writeValue(ns, value, undefined);
861
- }
862
- }
863
- flush() {
864
- this.rootSchema = undefined;
865
- const finalPosition = this.i;
866
- this.i = 0;
867
- const raw = this.rawValue;
868
- this.rawValue = undefined;
869
- if (finalPosition === 0) {
870
- return raw;
871
- }
872
- const result = this.json.subarray(0, finalPosition);
873
- this.json = alloc(INITIAL_BUFFER_SIZE);
874
- return result;
875
- }
876
- ensure(byteCount) {
877
- const { i, json } = this;
878
- if (i + byteCount > json.length) {
879
- let newSize = json.length * 2;
880
- while (newSize < i + byteCount) {
881
- newSize *= 2;
882
- }
883
- const next = alloc(newSize);
884
- next.set(this.json);
885
- this.json = next;
886
- }
887
- }
888
- writeAscii(s) {
889
- const z = s.length;
890
- this.ensure(z);
891
- let { i, json } = this;
892
- for (let j = 0; j < z; ++j) {
893
- json[i] = s.charCodeAt(j);
894
- i += 1;
895
- }
896
- this.i = i;
897
- }
898
- writeAsciiQuoted(s) {
899
- const z = s.length;
900
- this.ensure(z + 4);
901
- let { json, i } = this;
902
- json[i++] = QUOTE;
903
- for (let j = 0; j < z; ++j) {
904
- json[i++] = s.charCodeAt(j);
905
- }
906
- json[i++] = QUOTE;
907
- this.i = i;
908
- }
909
- writeJsonString(s) {
910
- this.ensure(s.length * 3 + 2);
911
- this.json[this.i++] = QUOTE;
912
- const z = s.length;
913
- for (let j = 0; j < z; ++j) {
914
- const c = s.charCodeAt(j);
915
- if (c > 0x22 && c < 0x5c) {
916
- this.json[this.i++] = c;
917
- }
918
- else if (c < 0x80) {
919
- const esc = ESCAPE_TABLE[c];
920
- if (esc !== null) {
921
- this.ensure(esc.length + 1);
922
- this.json[this.i++] = BACKSLASH;
923
- for (let k = 0; k < esc.length; k++) {
924
- this.json[this.i++] = esc.charCodeAt(k);
925
- }
926
- }
927
- else {
928
- this.json[this.i++] = c;
929
- }
930
- }
931
- else if (c >= 0xd800 && c <= 0xdbff) {
932
- const next = j + 1 < z ? s.charCodeAt(j + 1) : 0;
933
- if (next >= 0xdc00 && next <= 0xdfff) {
934
- this.ensure(4);
935
- const { written } = encoder.encodeInto(s.substring(j, j + 2), this.json.subarray(this.i));
936
- this.i += written;
937
- ++j;
938
- }
939
- else {
940
- this.ensure(6);
941
- this.writeUnicodeEscape(c);
942
- }
943
- }
944
- else if (c >= 0xdc00 && c <= 0xdfff) {
945
- this.ensure(6);
946
- this.writeUnicodeEscape(c);
947
- }
948
- else {
949
- let { i, json } = this;
950
- if (c < 0x800) {
951
- json[i++] = 0xc0 | (c >> 6);
952
- json[i++] = 0x80 | (c & 0x3f);
953
- }
954
- else {
955
- json[i++] = 0xe0 | (c >> 12);
956
- json[i++] = 0x80 | ((c >> 6) & 0x3f);
957
- json[i++] = 0x80 | (c & 0x3f);
958
- }
959
- this.i = i;
960
- }
961
- }
962
- this.json[this.i++] = QUOTE;
963
- }
964
- writeUnicodeEscape(code) {
965
- let { json, i } = this;
966
- json[i++] = BACKSLASH;
967
- json[i++] = 0x75;
968
- const hex = code.toString(16).padStart(4, "0");
969
- for (let j = 0; j < 4; ++j) {
970
- json[i++] = hex.charCodeAt(j);
971
- }
972
- this.i = i;
973
- }
974
- static B64 = (() => {
975
- const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
976
- const table = new Uint8Array(64);
977
- for (let i = 0; i < 64; ++i) {
978
- table[i] = chars.charCodeAt(i);
979
- }
980
- return table;
981
- })();
982
- writeBase64(data) {
983
- const b64Len = Math.ceil(data.length / 3) * 4;
984
- this.ensure(b64Len + 2);
985
- const json = this.json;
986
- const B64 = JsonShapeSerializer2.B64;
987
- let i = this.i;
988
- json[i++] = QUOTE;
989
- const len = data.length;
990
- const remainder = len % 3;
991
- const mainLen = len - remainder;
992
- for (let j = 0; j < mainLen; j += 3) {
993
- const a = data[j];
994
- const b = data[j + 1];
995
- const c = data[j + 2];
996
- json[i++] = B64[a >> 2];
997
- json[i++] = B64[((a & 0x03) << 4) | (b >> 4)];
998
- json[i++] = B64[((b & 0x0f) << 2) | (c >> 6)];
999
- json[i++] = B64[c & 0x3f];
1000
- }
1001
- if (remainder === 2) {
1002
- const a = data[mainLen];
1003
- const b = data[mainLen + 1];
1004
- json[i++] = B64[a >> 2];
1005
- json[i++] = B64[((a & 0x03) << 4) | (b >> 4)];
1006
- json[i++] = B64[(b & 0x0f) << 2];
1007
- json[i++] = 0x3d;
1008
- }
1009
- else if (remainder === 1) {
1010
- const a = data[mainLen];
1011
- json[i++] = B64[a >> 2];
1012
- json[i++] = B64[(a & 0x03) << 4];
1013
- json[i++] = 0x3d;
1014
- json[i++] = 0x3d;
1015
- }
1016
- json[i++] = QUOTE;
1017
- this.i = i;
1018
- }
1019
- writeValue(schema, value, container) {
1020
- if (value == null) {
1021
- if (container?.isStructSchema()) {
1022
- if (value === undefined) {
1023
- const ns = NormalizedSchema.of(schema);
1024
- if (ns.isIdempotencyToken()) {
1025
- this.writeAsciiQuoted(generateIdempotencyToken());
1026
- return;
1027
- }
1028
- }
1029
- return;
1030
- }
1031
- this.ensure(4);
1032
- this.json.set(NULL, this.i);
1033
- this.i += 4;
1034
- return;
1035
- }
1036
- const ns = NormalizedSchema.of(schema);
1037
- const isObject = typeof value === "object";
1038
- if (ns.isStringSchema()) {
1039
- const mediaType = ns.getMergedTraits().mediaType;
1040
- if (mediaType) {
1041
- const isJson = mediaType === "application/json" || mediaType.endsWith("+json");
1042
- if (isJson) {
1043
- this.writeJsonString(LazyJsonString.from(value).toString());
1044
- return;
1045
- }
1046
- }
1047
- }
1048
- if (isObject) {
1049
- if (ns.isStructSchema()) {
1050
- this.writeStruct(ns, value);
1051
- return;
1052
- }
1053
- if (Array.isArray(value) && (ns.isListSchema() || ns.isDocumentSchema())) {
1054
- this.writeList(ns, value, ns.isDocumentSchema());
1055
- return;
1056
- }
1057
- if (ns.isMapSchema()) {
1058
- this.writeMap(ns, value, false);
1059
- return;
1060
- }
1061
- if (value instanceof Uint8Array && (ns.isBlobSchema() || ns.isDocumentSchema())) {
1062
- this.writeBase64(value);
1063
- return;
1064
- }
1065
- if (value instanceof Date && (ns.isTimestampSchema() || ns.isDocumentSchema())) {
1066
- this.writeTimestamp(ns, value);
1067
- return;
1068
- }
1069
- if (value instanceof NumericValue) {
1070
- this.writeAscii(value.string);
1071
- return;
1072
- }
1073
- if (ns.isDocumentSchema()) {
1074
- if (Array.isArray(value)) {
1075
- this.writeList(ns, value, true);
1076
- }
1077
- else {
1078
- this.writeMap(ns, value, true);
1079
- }
1080
- return;
1081
- }
1082
- const json = JSON.stringify(value);
1083
- this.writeAscii(json);
1084
- return;
1085
- }
1086
- if (typeof value === "string") {
1087
- if (ns.isBlobSchema()) {
1088
- const b64 = (this.serdeContext?.base64Encoder ?? toBase64)(value);
1089
- this.writeAsciiQuoted(b64);
1090
- return;
1091
- }
1092
- this.writeJsonString(value);
1093
- return;
1094
- }
1095
- if (typeof value === "number") {
1096
- if (Math.abs(value) === Infinity || Number.isNaN(value)) {
1097
- this.writeAsciiQuoted(String(value));
1098
- return;
1099
- }
1100
- const numStr = String(value);
1101
- this.writeAscii(numStr);
1102
- return;
1103
- }
1104
- if (typeof value === "boolean") {
1105
- this.ensure(5);
1106
- let { i, json } = this;
1107
- if (value) {
1108
- json.set(TRUE, i);
1109
- i += 4;
1110
- }
1111
- else {
1112
- json.set(FALSE, i);
1113
- i += 5;
1114
- }
1115
- this.i = i;
1116
- return;
1117
- }
1118
- if (typeof value === "bigint") {
1119
- this.writeAscii(value.toString());
1120
- return;
1121
- }
1122
- this.writeAscii(String(value));
1123
- }
1124
- writeStruct(ns, value) {
1125
- this.ensure(2);
1126
- this.json[this.i++] = OPEN_BRACE;
1127
- let wroteAny = false;
1128
- const hasType = typeof value.__type === "string";
1129
- let writtenKeys;
1130
- if (hasType) {
1131
- writtenKeys = new Set();
1132
- }
1133
- for (const [memberName, memberSchema] of ns.structIterator()) {
1134
- const item = value[memberName];
1135
- if (item == null && !memberSchema.isIdempotencyToken()) {
1136
- continue;
1137
- }
1138
- if (wroteAny) {
1139
- this.ensure(1);
1140
- this.json[this.i++] = COMMA;
1141
- }
1142
- wroteAny = true;
1143
- const targetKey = this.settings.jsonName ? (memberSchema.getMergedTraits().jsonName ?? memberName) : memberName;
1144
- if (writtenKeys) {
1145
- writtenKeys.add(memberName);
1146
- writtenKeys.add(targetKey);
1147
- }
1148
- this.writeAsciiQuoted(targetKey);
1149
- this.json[this.i++] = COLON;
1150
- this.writeValue(memberSchema, item, ns);
1151
- }
1152
- if (!wroteAny && ns.isUnionSchema()) {
1153
- const { $unknown } = value;
1154
- if (Array.isArray($unknown)) {
1155
- const [k, v] = $unknown;
1156
- this.writeAsciiQuoted(k);
1157
- this.ensure(1);
1158
- this.json[this.i++] = COLON;
1159
- this.writeValue(15, v, ns);
1160
- }
1161
- }
1162
- else if (hasType) {
1163
- for (const k in value) {
1164
- if (writtenKeys.has(k)) {
1165
- continue;
1166
- }
1167
- writtenKeys.add(k);
1168
- const v = value[k];
1169
- if (wroteAny) {
1170
- this.ensure(1);
1171
- this.json[this.i++] = COMMA;
1172
- }
1173
- wroteAny = true;
1174
- this.writeAsciiQuoted(k);
1175
- this.ensure(1);
1176
- this.json[this.i++] = COLON;
1177
- this.writeValue(15, v, undefined);
1178
- }
1179
- }
1180
- this.ensure(1);
1181
- this.json[this.i++] = CLOSE_BRACE;
1182
- }
1183
- writeList(ns, value, isDocument) {
1184
- const sparse = !!ns.getMergedTraits().sparse;
1185
- const valueSchema = ns.getValueSchema();
1186
- if (!isDocument) {
1187
- if (valueSchema.isStringSchema() || valueSchema.isNumericSchema() || valueSchema.isBooleanSchema()) {
1188
- let hasSpecials = false;
1189
- for (let i = 0; i < value.length; ++i) {
1190
- const v = value[i];
1191
- if (Number.isNaN(v) || v === Infinity || v === -Infinity || (v == null && !sparse)) {
1192
- hasSpecials = true;
1193
- break;
1194
- }
1195
- }
1196
- let json;
1197
- if (!hasSpecials) {
1198
- json = JSON.stringify(value);
1199
- }
1200
- else {
1201
- const out = [];
1202
- for (let i = 0; i < value.length; ++i) {
1203
- const v = value[i];
1204
- if (v == null && !sparse)
1205
- continue;
1206
- if (Number.isNaN(v) || v === Infinity || v === -Infinity) {
1207
- out.push(String(v));
1208
- }
1209
- else {
1210
- out.push(v);
1211
- }
1212
- }
1213
- json = JSON.stringify(out);
1214
- }
1215
- this.ensure(json.length * 3);
1216
- this.i += encoder.encodeInto(json, this.json.subarray(this.i)).written;
1217
- return;
1218
- }
1219
- }
1220
- this.ensure(2);
1221
- this.json[this.i++] = OPEN_BRACKET;
1222
- let wroteFirstItem = false;
1223
- for (let i = 0; i < value.length; ++i) {
1224
- const item = value[i];
1225
- if (isDocument ? item === undefined : item == null && !sparse) {
1226
- continue;
1227
- }
1228
- if (wroteFirstItem) {
1229
- this.ensure(1);
1230
- this.json[this.i++] = COMMA;
1231
- }
1232
- this.writeValue(valueSchema, item, undefined);
1233
- wroteFirstItem = true;
1234
- }
1235
- this.ensure(1);
1236
- this.json[this.i++] = CLOSE_BRACKET;
1237
- }
1238
- writeMap(ns, value, isDocument) {
1239
- const sparse = !!ns.getMergedTraits().sparse;
1240
- const valueSchema = ns.getValueSchema();
1241
- if (!isDocument) {
1242
- if (valueSchema.isStringSchema() || valueSchema.isNumericSchema() || valueSchema.isBooleanSchema()) {
1243
- let modifications;
1244
- for (const k in value) {
1245
- const v = value[k];
1246
- if (Number.isNaN(v) || v === Infinity || v === -Infinity) {
1247
- (modifications ??= {})[k] = v;
1248
- value[k] = String(v);
1249
- }
1250
- else if (v === null && !sparse) {
1251
- (modifications ??= {})[k] = null;
1252
- value[k] = undefined;
1253
- }
1254
- }
1255
- const json = JSON.stringify(value);
1256
- if (modifications) {
1257
- Object.assign(value, modifications);
1258
- }
1259
- this.ensure(json.length * 3);
1260
- this.i += encoder.encodeInto(json, this.json.subarray(this.i)).written;
1261
- return;
1262
- }
142
+ if (queryCompatErrorData.Type) {
143
+ errorData.Type = queryCompatErrorData.Type;
1263
144
  }
1264
- this.ensure(2);
1265
- this.json[this.i++] = OPEN_BRACE;
1266
- let first = true;
1267
- for (const k in value) {
1268
- const v = value[k];
1269
- if (isDocument ? v === undefined : v == null && !sparse) {
1270
- continue;
1271
- }
1272
- if (!first) {
1273
- this.ensure(1);
1274
- this.json[this.i++] = COMMA;
1275
- }
1276
- first = false;
1277
- this.writeJsonString(k);
1278
- this.ensure(1);
1279
- this.json[this.i++] = COLON;
1280
- this.writeValue(valueSchema, v, undefined);
145
+ if (queryCompatErrorData.Code) {
146
+ errorData.Code = queryCompatErrorData.Code;
1281
147
  }
1282
- this.ensure(1);
1283
- this.json[this.i++] = CLOSE_BRACE;
1284
148
  }
1285
- writeTimestamp(ns, value) {
1286
- const format = determineTimestampFormat(ns, this.settings);
1287
- switch (format) {
1288
- case 5: {
1289
- const iso = value.toISOString().replace(".000Z", "Z");
1290
- this.writeAsciiQuoted(iso);
1291
- return;
1292
- }
1293
- case 6: {
1294
- this.writeAsciiQuoted(dateToUtcString(value));
1295
- return;
1296
- }
1297
- case 7: {
1298
- const epochSecs = String(value.getTime() / 1000);
1299
- this.writeAscii(epochSecs);
1300
- return;
1301
- }
1302
- default: {
1303
- const epochSecs = String(value.getTime() / 1000);
1304
- this.writeAscii(epochSecs);
1305
- return;
1306
- }
149
+ findQueryCompatibleError(registry, errorName) {
150
+ try {
151
+ return registry.getSchema(errorName);
152
+ }
153
+ catch (e) {
154
+ return registry.find((schema) => NormalizedSchema.of(schema).getMergedTraits().awsQueryError?.[0] === errorName);
1307
155
  }
1308
156
  }
1309
157
  }
1310
158
 
1311
- class JsonCodec2 extends SerdeContextConfig {
1312
- settings;
1313
- constructor(settings) {
1314
- super();
1315
- this.settings = settings;
159
+ class AwsSmithyRpcV2CborProtocol extends SmithyRpcV2CborProtocol {
160
+ awsQueryCompatible;
161
+ mixin;
162
+ constructor({ defaultNamespace, errorTypeRegistries, awsQueryCompatible, }) {
163
+ super({ defaultNamespace, errorTypeRegistries });
164
+ this.awsQueryCompatible = !!awsQueryCompatible;
165
+ this.mixin = new ProtocolLib(this.awsQueryCompatible);
1316
166
  }
1317
- createSerializer() {
1318
- const serializer = new JsonShapeSerializer2(this.settings);
1319
- serializer.setSerdeContext(this.serdeContext);
1320
- return serializer;
167
+ async serializeRequest(operationSchema, input, context) {
168
+ const request = await super.serializeRequest(operationSchema, input, context);
169
+ if (this.awsQueryCompatible) {
170
+ request.headers["x-amzn-query-mode"] = "true";
171
+ }
172
+ return request;
1321
173
  }
1322
- createDeserializer() {
1323
- const deserializer = new JsonShapeDeserializer2(this.settings);
1324
- deserializer.setSerdeContext(this.serdeContext);
1325
- return deserializer;
174
+ async handleError(operationSchema, context, response, dataObject, metadata) {
175
+ if (this.awsQueryCompatible) {
176
+ this.mixin.setQueryCompatError(dataObject, response);
177
+ }
178
+ const errorName = (() => {
179
+ const compatHeader = response.headers["x-amzn-query-error"];
180
+ if (compatHeader && this.awsQueryCompatible) {
181
+ return compatHeader.split(";")[0];
182
+ }
183
+ return loadSmithyRpcV2CborErrorCode(response, dataObject) ?? "Unknown";
184
+ })();
185
+ this.mixin.compose(this.compositeErrorRegistry, errorName, this.options.defaultNamespace);
186
+ const { errorSchema, errorMetadata } = await this.mixin.getErrorSchemaOrThrowBaseException(errorName, this.options.defaultNamespace, response, dataObject, metadata, this.awsQueryCompatible ? this.mixin.findQueryCompatibleError : undefined);
187
+ const ns = NormalizedSchema.of(errorSchema);
188
+ const message = dataObject.message ?? dataObject.Message ?? "UnknownError";
189
+ const ErrorCtor = this.compositeErrorRegistry.getErrorCtor(errorSchema) ?? Error;
190
+ const exception = new ErrorCtor({});
191
+ const output = {};
192
+ for (const [name, member] of ns.structIterator()) {
193
+ if (dataObject[name] != null) {
194
+ output[name] = this.deserializer.readValue(member, dataObject[name]);
195
+ }
196
+ }
197
+ if (this.awsQueryCompatible) {
198
+ this.mixin.queryCompatOutput(dataObject, output);
199
+ }
200
+ throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {
201
+ $fault: ns.getMergedTraits().error,
202
+ message,
203
+ }, output), dataObject);
1326
204
  }
1327
205
  }
1328
206
 
@@ -1523,407 +401,42 @@ class AwsRestJsonProtocol extends HttpBindingProtocol {
1523
401
  }
1524
402
  }
1525
403
 
1526
- class JsonShapeDeserializer extends SerdeContextConfig {
1527
- settings;
1528
- constructor(settings) {
1529
- super();
1530
- this.settings = settings;
1531
- }
1532
- async read(schema, data) {
1533
- const reviver = needsReviver(schema) ? jsonReviver : undefined;
1534
- return this._read(schema, typeof data === "string" ? JSON.parse(data, reviver) : await parseJsonBody(data, this.serdeContext, schema));
1535
- }
1536
- readObject(schema, data) {
1537
- return this._read(schema, data);
1538
- }
1539
- _read(schema, value) {
1540
- const isObject = value !== null && typeof value === "object";
1541
- const ns = NormalizedSchema.of(schema);
1542
- if (isObject) {
1543
- if (ns.isStructSchema()) {
1544
- const record = value;
1545
- const union = ns.isUnionSchema();
1546
- const out = {};
1547
- let nameMap = void 0;
1548
- const { jsonName } = this.settings;
1549
- if (jsonName) {
1550
- nameMap = {};
1551
- }
1552
- let unionSerde;
1553
- if (union) {
1554
- unionSerde = new UnionSerde(record, out);
1555
- }
1556
- for (const [memberName, memberSchema] of ns.structIterator()) {
1557
- let fromKey = memberName;
1558
- if (jsonName) {
1559
- fromKey = memberSchema.getMergedTraits().jsonName ?? fromKey;
1560
- nameMap[fromKey] = memberName;
1561
- }
1562
- if (union) {
1563
- unionSerde.mark(fromKey);
1564
- }
1565
- if (record[fromKey] != null) {
1566
- out[memberName] = this._read(memberSchema, record[fromKey]);
1567
- }
1568
- }
1569
- if (union) {
1570
- unionSerde.writeUnknown();
1571
- }
1572
- else if (typeof record.__type === "string") {
1573
- for (const k in record) {
1574
- const v = record[k];
1575
- const t = jsonName ? (nameMap[k] ?? k) : k;
1576
- if (!(t in out)) {
1577
- out[t] = v;
1578
- }
1579
- }
1580
- }
1581
- return out;
1582
- }
1583
- if (Array.isArray(value) && ns.isListSchema()) {
1584
- const listMember = ns.getValueSchema();
1585
- const out = [];
1586
- for (const item of value) {
1587
- out.push(this._read(listMember, item));
1588
- }
1589
- return out;
1590
- }
1591
- if (ns.isMapSchema()) {
1592
- const mapMember = ns.getValueSchema();
1593
- const out = {};
1594
- for (const _k in value) {
1595
- if (_k === "__proto__") {
1596
- writeKey(out);
1597
- }
1598
- out[_k] = this._read(mapMember, value[_k]);
1599
- }
1600
- return out;
1601
- }
1602
- }
1603
- if (ns.isBlobSchema() && typeof value === "string") {
1604
- return fromBase64(value);
1605
- }
1606
- const mediaType = ns.getMergedTraits().mediaType;
1607
- if (ns.isStringSchema() && typeof value === "string" && mediaType) {
1608
- const isJson = mediaType === "application/json" || mediaType.endsWith("+json");
1609
- if (isJson) {
1610
- return LazyJsonString.from(value);
1611
- }
1612
- return value;
1613
- }
1614
- if (ns.isTimestampSchema() && value != null) {
1615
- const format = determineTimestampFormat(ns, this.settings);
1616
- switch (format) {
1617
- case 5:
1618
- return parseRfc3339DateTimeWithOffset(value);
1619
- case 6:
1620
- return parseRfc7231DateTime(value);
1621
- case 7:
1622
- return parseEpochTimestamp(value);
1623
- default:
1624
- console.warn("Missing timestamp format, parsing value with Date constructor:", value);
1625
- return new Date(value);
1626
- }
1627
- }
1628
- if (ns.isBigIntegerSchema() && (typeof value === "number" || typeof value === "string")) {
1629
- return BigInt(value);
1630
- }
1631
- if (ns.isBigDecimalSchema() && value != undefined) {
1632
- if (value instanceof NumericValue) {
1633
- return value;
1634
- }
1635
- const untyped = value;
1636
- if (untyped.type === "bigDecimal" && "string" in untyped) {
1637
- return new NumericValue(untyped.string, untyped.type);
1638
- }
1639
- return new NumericValue(String(value), "bigDecimal");
1640
- }
1641
- if (ns.isNumericSchema() && typeof value === "string") {
1642
- switch (value) {
1643
- case "Infinity":
1644
- return Infinity;
1645
- case "-Infinity":
1646
- return -Infinity;
1647
- case "NaN":
1648
- return NaN;
1649
- }
1650
- return value;
1651
- }
1652
- if (ns.isDocumentSchema()) {
1653
- if (isObject) {
1654
- const out = Array.isArray(value) ? [] : {};
1655
- for (const k in value) {
1656
- if (k === "__proto__") {
1657
- writeKey(out);
1658
- }
1659
- const v = value[k];
1660
- if (v instanceof NumericValue) {
1661
- out[k] = v;
1662
- }
1663
- else {
1664
- out[k] = this._read(ns, v);
1665
- }
1666
- }
1667
- return out;
1668
- }
1669
- else {
1670
- return structuredClone(value);
1671
- }
1672
- }
1673
- return value;
1674
- }
1675
- }
1676
-
1677
- const NUMERIC_CONTROL_CHAR = String.fromCharCode(925);
1678
- class JsonReplacer {
1679
- values = new Map();
1680
- counter = 0;
1681
- stage = 0;
1682
- createReplacer() {
1683
- if (this.stage === 1) {
1684
- throw new Error("@aws-sdk/core/protocols - JsonReplacer already created.");
1685
- }
1686
- if (this.stage === 2) {
1687
- throw new Error("@aws-sdk/core/protocols - JsonReplacer exhausted.");
1688
- }
1689
- this.stage = 1;
1690
- return (key, value) => {
1691
- if (value instanceof NumericValue) {
1692
- const v = `${NUMERIC_CONTROL_CHAR + "nv" + this.counter++}_` + value.string;
1693
- this.values.set(`"${v}"`, value.string);
1694
- return v;
1695
- }
1696
- if (typeof value === "bigint") {
1697
- const s = value.toString();
1698
- const v = `${NUMERIC_CONTROL_CHAR + "b" + this.counter++}_` + s;
1699
- this.values.set(`"${v}"`, s);
1700
- return v;
1701
- }
1702
- return value;
1703
- };
1704
- }
1705
- replaceInJson(json) {
1706
- if (this.stage === 0) {
1707
- throw new Error("@aws-sdk/core/protocols - JsonReplacer not created yet.");
1708
- }
1709
- if (this.stage === 2) {
1710
- throw new Error("@aws-sdk/core/protocols - JsonReplacer exhausted.");
1711
- }
1712
- this.stage = 2;
1713
- if (this.counter === 0) {
1714
- return json;
1715
- }
1716
- for (const [key, value] of this.values) {
1717
- json = json.replace(key, value);
1718
- }
1719
- return json;
404
+ class SerdeContextConfig {
405
+ serdeContext;
406
+ setSerdeContext(serdeContext) {
407
+ this.serdeContext = serdeContext;
1720
408
  }
1721
409
  }
1722
410
 
1723
- class JsonShapeSerializer extends SerdeContextConfig {
1724
- settings;
1725
- buffer;
1726
- useReplacer = false;
1727
- rootSchema;
1728
- constructor(settings) {
1729
- super();
1730
- this.settings = settings;
1731
- }
1732
- write(schema, value) {
1733
- this.rootSchema = NormalizedSchema.of(schema);
1734
- this.buffer = this._write(this.rootSchema, value);
411
+ class UnionSerde {
412
+ from;
413
+ to;
414
+ keys;
415
+ constructor(from, to) {
416
+ this.from = from;
417
+ this.to = to;
418
+ const keys = Object.keys(this.from);
419
+ const set = new Set(keys);
420
+ set.delete("__type");
421
+ this.keys = set;
1735
422
  }
1736
- flush() {
1737
- const { rootSchema, useReplacer } = this;
1738
- this.rootSchema = undefined;
1739
- this.useReplacer = false;
1740
- if (rootSchema?.isStructSchema() || rootSchema?.isDocumentSchema()) {
1741
- if (!useReplacer) {
1742
- return JSON.stringify(this.buffer);
1743
- }
1744
- const replacer = new JsonReplacer();
1745
- return replacer.replaceInJson(JSON.stringify(this.buffer, replacer.createReplacer(), 0));
1746
- }
1747
- return this.buffer;
423
+ mark(key) {
424
+ this.keys.delete(key);
1748
425
  }
1749
- writeDiscriminatedDocument(schema, value) {
1750
- this.write(schema, value);
1751
- if (typeof this.buffer === "object") {
1752
- this.buffer.__type = NormalizedSchema.of(schema).getName(true);
1753
- }
426
+ hasUnknown() {
427
+ return this.keys.size === 1 && Object.keys(this.to).length === 0;
1754
428
  }
1755
- _write(schema, value, container) {
1756
- const isObject = value !== null && typeof value === "object";
1757
- const ns = NormalizedSchema.of(schema);
1758
- if (isObject) {
1759
- if (ns.isStructSchema()) {
1760
- const record = value;
1761
- const out = {};
1762
- const { jsonName } = this.settings;
1763
- let nameMap = void 0;
1764
- if (jsonName) {
1765
- nameMap = {};
1766
- }
1767
- let outCount = 0;
1768
- for (const [memberName, memberSchema] of ns.structIterator()) {
1769
- const serializableValue = this._write(memberSchema, record[memberName], ns);
1770
- if (serializableValue !== undefined) {
1771
- let targetKey = memberName;
1772
- if (jsonName) {
1773
- targetKey = memberSchema.getMergedTraits().jsonName ?? memberName;
1774
- nameMap[memberName] = targetKey;
1775
- }
1776
- out[targetKey] = serializableValue;
1777
- outCount++;
1778
- }
1779
- }
1780
- if (ns.isUnionSchema() && outCount === 0) {
1781
- const { $unknown } = record;
1782
- if (Array.isArray($unknown)) {
1783
- const [k, v] = $unknown;
1784
- if (k === "__proto__") {
1785
- writeKey(out);
1786
- }
1787
- out[k] = this._write(15, v);
1788
- }
1789
- }
1790
- else if (typeof record.__type === "string") {
1791
- for (const k in record) {
1792
- const v = record[k];
1793
- const targetKey = jsonName ? (nameMap[k] ?? k) : k;
1794
- if (!(targetKey in out)) {
1795
- out[targetKey] = this._write(15, v);
1796
- }
1797
- }
1798
- }
1799
- return out;
1800
- }
1801
- if (Array.isArray(value) && ns.isListSchema()) {
1802
- const listMember = ns.getValueSchema();
1803
- const out = [];
1804
- const sparse = !!ns.getMergedTraits().sparse;
1805
- for (const item of value) {
1806
- if (sparse || item != null) {
1807
- out.push(this._write(listMember, item));
1808
- }
1809
- }
1810
- return out;
1811
- }
1812
- if (ns.isMapSchema()) {
1813
- const mapMember = ns.getValueSchema();
1814
- const out = {};
1815
- const sparse = !!ns.getMergedTraits().sparse;
1816
- for (const _k in value) {
1817
- const _v = value[_k];
1818
- if (sparse || _v != null) {
1819
- if (_k === "__proto__") {
1820
- writeKey(out);
1821
- }
1822
- out[_k] = this._write(mapMember, _v);
1823
- }
1824
- }
1825
- return out;
1826
- }
1827
- if (value instanceof Uint8Array && ns.isBlobSchema()) {
1828
- if (ns === this.rootSchema) {
1829
- return value;
1830
- }
1831
- return (this.serdeContext?.base64Encoder ?? toBase64)(value);
1832
- }
1833
- if (value instanceof Date && (ns.isTimestampSchema() || ns.isDocumentSchema())) {
1834
- const format = determineTimestampFormat(ns, this.settings);
1835
- switch (format) {
1836
- case 5:
1837
- return value.toISOString().replace(".000Z", "Z");
1838
- case 6:
1839
- return dateToUtcString(value);
1840
- case 7:
1841
- return value.getTime() / 1000;
1842
- default:
1843
- console.warn("Missing timestamp format, using epoch seconds", value);
1844
- return value.getTime() / 1000;
1845
- }
1846
- }
1847
- if (value instanceof NumericValue) {
1848
- this.useReplacer = true;
1849
- }
1850
- }
1851
- if (value === null && container?.isStructSchema()) {
1852
- return void 0;
1853
- }
1854
- if (ns.isStringSchema()) {
1855
- if (typeof value === "undefined" && ns.isIdempotencyToken()) {
1856
- return generateIdempotencyToken();
1857
- }
1858
- const mediaType = ns.getMergedTraits().mediaType;
1859
- if (value != null && mediaType) {
1860
- const isJson = mediaType === "application/json" || mediaType.endsWith("+json");
1861
- if (isJson) {
1862
- return LazyJsonString.from(value);
1863
- }
1864
- }
1865
- return value;
1866
- }
1867
- if (typeof value === "number") {
1868
- if (Math.abs(value) === Infinity || isNaN(value)) {
1869
- return String(value);
1870
- }
1871
- return value;
1872
- }
1873
- if (typeof value === "string" && ns.isBlobSchema()) {
1874
- if (ns === this.rootSchema) {
1875
- return value;
1876
- }
1877
- return (this.serdeContext?.base64Encoder ?? toBase64)(value);
1878
- }
1879
- if (typeof value === "bigint") {
1880
- this.useReplacer = true;
1881
- }
1882
- if (ns.isDocumentSchema()) {
1883
- if (isObject) {
1884
- if (value instanceof Uint8Array) {
1885
- return (this.serdeContext?.base64Encoder ?? toBase64)(value);
1886
- }
1887
- const out = Array.isArray(value) ? [] : {};
1888
- for (const k in value) {
1889
- const v = value[k];
1890
- if (k === "__proto__") {
1891
- writeKey(out);
1892
- }
1893
- if (v instanceof NumericValue) {
1894
- this.useReplacer = true;
1895
- out[k] = v;
1896
- }
1897
- else {
1898
- out[k] = this._write(ns, v);
1899
- }
1900
- }
1901
- return out;
1902
- }
1903
- else {
1904
- return structuredClone(value);
1905
- }
429
+ writeUnknown() {
430
+ if (this.hasUnknown()) {
431
+ const k = this.keys.values().next().value;
432
+ const v = this.from[k];
433
+ this.to.$unknown = [k, v];
1906
434
  }
1907
- return value;
1908
435
  }
1909
436
  }
1910
437
 
1911
- class JsonCodec extends SerdeContextConfig {
1912
- settings;
1913
- constructor(settings) {
1914
- super();
1915
- this.settings = settings;
1916
- }
1917
- createSerializer() {
1918
- const serializer = new JsonShapeSerializer(this.settings);
1919
- serializer.setSerdeContext(this.serdeContext);
1920
- return serializer;
1921
- }
1922
- createDeserializer() {
1923
- const deserializer = new JsonShapeDeserializer(this.settings);
1924
- deserializer.setSerdeContext(this.serdeContext);
1925
- return deserializer;
1926
- }
438
+ function writeKey(obj) {
439
+ Object.defineProperty(obj, "__proto__", { value: undefined, writable: true, enumerable: true, configurable: true });
1927
440
  }
1928
441
 
1929
442
  class XmlShapeDeserializer extends SerdeContextConfig {
@@ -2410,6 +923,8 @@ class AwsEc2QueryProtocol extends AwsQueryProtocol {
2410
923
  }
2411
924
  }
2412
925
 
926
+ const collectBodyString = (streamBody, context) => collectBody(streamBody, context).then((body) => (context?.utf8Encoder ?? toUtf8)(body));
927
+
2413
928
  const parseXmlBody = (streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {
2414
929
  if (encoded.length) {
2415
930
  let parsedObj;
@@ -2926,12 +1441,6 @@ exports.AwsQueryProtocol = AwsQueryProtocol;
2926
1441
  exports.AwsRestJsonProtocol = AwsRestJsonProtocol;
2927
1442
  exports.AwsRestXmlProtocol = AwsRestXmlProtocol;
2928
1443
  exports.AwsSmithyRpcV2CborProtocol = AwsSmithyRpcV2CborProtocol;
2929
- exports.JsonCodec = JsonCodec;
2930
- exports.JsonCodec2 = JsonCodec2;
2931
- exports.JsonShapeDeserializer = JsonShapeDeserializer;
2932
- exports.JsonShapeDeserializer2 = JsonShapeDeserializer2;
2933
- exports.JsonShapeSerializer = JsonShapeSerializer;
2934
- exports.JsonShapeSerializer2 = JsonShapeSerializer2;
2935
1444
  exports.QueryShapeSerializer = QueryShapeSerializer;
2936
1445
  exports.XmlCodec = XmlCodec;
2937
1446
  exports.XmlShapeDeserializer = XmlShapeDeserializer;
@@ -2940,10 +1449,6 @@ exports._toBool = _toBool;
2940
1449
  exports._toNum = _toNum;
2941
1450
  exports._toStr = _toStr;
2942
1451
  exports.awsExpectUnion = awsExpectUnion;
2943
- exports.loadJsonRpcErrorCode = loadJsonRpcErrorCode;
2944
- exports.loadRestJsonErrorCode = loadRestJsonErrorCode;
2945
1452
  exports.loadRestXmlErrorCode = loadRestXmlErrorCode;
2946
- exports.parseJsonBody = parseJsonBody;
2947
- exports.parseJsonErrorBody = parseJsonErrorBody;
2948
1453
  exports.parseXmlBody = parseXmlBody;
2949
1454
  exports.parseXmlErrorBody = parseXmlErrorBody;