@opencode-ai/cli-linux-x64 0.0.0-beta-202606050000

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 (137) hide show
  1. package/bin/chunk-01tb5qes.js.map +131 -0
  2. package/bin/chunk-06d8aa69.js.map +10 -0
  3. package/bin/chunk-07w2xsfy.js.map +50 -0
  4. package/bin/chunk-0azwkk9z.js.map +12 -0
  5. package/bin/chunk-0d9ja06r.js.map +9 -0
  6. package/bin/chunk-14kv2kjk.js.map +13 -0
  7. package/bin/chunk-17j53wgt.js.map +11 -0
  8. package/bin/chunk-191djt7z.js.map +113 -0
  9. package/bin/chunk-1brm44vt.js.map +10 -0
  10. package/bin/chunk-1jb1dn9p.js.map +10 -0
  11. package/bin/chunk-1paeax4j.js.map +56 -0
  12. package/bin/chunk-1wb39pye.js.map +9 -0
  13. package/bin/chunk-2mjmecen.js.map +10 -0
  14. package/bin/chunk-2wqpg9fb.js.map +10 -0
  15. package/bin/chunk-32ewzcjk.js.map +10 -0
  16. package/bin/chunk-334z6v35.js.map +9 -0
  17. package/bin/chunk-3jqjf0hd.js.map +10 -0
  18. package/bin/chunk-3n6vddyq.js.map +73 -0
  19. package/bin/chunk-3zmvhepw.js.map +10 -0
  20. package/bin/chunk-4980h0t7.js.map +37 -0
  21. package/bin/chunk-4q5k6a0e.js.map +10 -0
  22. package/bin/chunk-5ft9zwf9.js.map +10 -0
  23. package/bin/chunk-6ttpn29p.js.map +10 -0
  24. package/bin/chunk-7fvpf4bs.js.map +10 -0
  25. package/bin/chunk-7vb6kdat.js.map +10 -0
  26. package/bin/chunk-84amh6xf.js.map +11 -0
  27. package/bin/chunk-8akfq1ty.js.map +19 -0
  28. package/bin/chunk-8rd9r1gb.js.map +11 -0
  29. package/bin/chunk-8x80qvzn.js.map +10 -0
  30. package/bin/chunk-943th5qs.js.map +10 -0
  31. package/bin/chunk-94yf089p.js.map +10 -0
  32. package/bin/chunk-98cxndhz.js.map +9 -0
  33. package/bin/chunk-9f8tmby0.js.map +9 -0
  34. package/bin/chunk-9fbstsnw.js.map +9 -0
  35. package/bin/chunk-9hq8aywf.js.map +10 -0
  36. package/bin/chunk-9m7hf7ms.js.map +10 -0
  37. package/bin/chunk-9vf55fj3.js.map +10 -0
  38. package/bin/chunk-9w9rk9en.js.map +20 -0
  39. package/bin/chunk-9y4hgfns.js.map +10 -0
  40. package/bin/chunk-aag5p1fp.js.map +10 -0
  41. package/bin/chunk-axy1v6wd.js.map +27 -0
  42. package/bin/chunk-bj9msmj2.js.map +10 -0
  43. package/bin/chunk-bt0r89ee.js.map +9 -0
  44. package/bin/chunk-c2gsyspz.js.map +10 -0
  45. package/bin/chunk-c8hr0q5n.js.map +10 -0
  46. package/bin/chunk-cab6ccj0.js.map +10 -0
  47. package/bin/chunk-ck4nkjtx.js.map +193 -0
  48. package/bin/chunk-cvm4kr56.js.map +23 -0
  49. package/bin/chunk-cyb9bpgm.js.map +10 -0
  50. package/bin/chunk-d1p8awq6.js.map +10 -0
  51. package/bin/chunk-d6nz1m6v.js.map +10 -0
  52. package/bin/chunk-d9g5798m.js.map +81 -0
  53. package/bin/chunk-dcn0azxw.js.map +10 -0
  54. package/bin/chunk-dd9pfwmr.js.map +10 -0
  55. package/bin/chunk-dk4qekzk.js.map +10 -0
  56. package/bin/chunk-dk9tgwkh.js.map +9 -0
  57. package/bin/chunk-dzzhxh1c.js.map +10 -0
  58. package/bin/chunk-efsmps94.js.map +9 -0
  59. package/bin/chunk-fdw7znt6.js.map +11 -0
  60. package/bin/chunk-fs6t8jdg.js.map +10 -0
  61. package/bin/chunk-fzcqzwx5.js.map +10 -0
  62. package/bin/chunk-g4fcmhkj.js.map +11 -0
  63. package/bin/chunk-g4ff66n8.js.map +10 -0
  64. package/bin/chunk-g8mpn6ke.js.map +11 -0
  65. package/bin/chunk-gahs293a.js.map +10 -0
  66. package/bin/chunk-gh9dcqbv.js.map +10 -0
  67. package/bin/chunk-grvxd8zq.js.map +10 -0
  68. package/bin/chunk-gv6nagng.js.map +10 -0
  69. package/bin/chunk-h1vz14ze.js.map +167 -0
  70. package/bin/chunk-hav16yge.js.map +10 -0
  71. package/bin/chunk-hp5nnq6f.js.map +11 -0
  72. package/bin/chunk-hrcbafh3.js.map +9 -0
  73. package/bin/chunk-hxfsfpek.js.map +10 -0
  74. package/bin/chunk-jcqp2wmf.js.map +10 -0
  75. package/bin/chunk-jt9t8203.js.map +9 -0
  76. package/bin/chunk-k0980eb5.js.map +10 -0
  77. package/bin/chunk-kghptcgb.js.map +9 -0
  78. package/bin/chunk-kkvk5eez.js.map +10 -0
  79. package/bin/chunk-kv0b3sh5.js.map +10 -0
  80. package/bin/chunk-kvfs5rat.js.map +10 -0
  81. package/bin/chunk-mf0qqhvb.js.map +10 -0
  82. package/bin/chunk-mkze6twx.js.map +10 -0
  83. package/bin/chunk-mzjs3qj3.js.map +10 -0
  84. package/bin/chunk-n10mj2m3.js.map +17 -0
  85. package/bin/chunk-n2fbt143.js.map +9 -0
  86. package/bin/chunk-n6a0rctn.js.map +9 -0
  87. package/bin/chunk-nd3yv9bg.js.map +388 -0
  88. package/bin/chunk-njn9a3jp.js.map +13 -0
  89. package/bin/chunk-nkhzpsnk.js.map +13 -0
  90. package/bin/chunk-ny5cyeha.js.map +10 -0
  91. package/bin/chunk-p3nkd9t2.js.map +10 -0
  92. package/bin/chunk-p3pr1t3k.js.map +10 -0
  93. package/bin/chunk-p7j7e7hb.js.map +10 -0
  94. package/bin/chunk-p89bk96c.js.map +10 -0
  95. package/bin/chunk-pnkd37ss.js.map +20 -0
  96. package/bin/chunk-prat77ba.js.map +577 -0
  97. package/bin/chunk-q6nf6fka.js.map +10 -0
  98. package/bin/chunk-qbpebjh2.js.map +10 -0
  99. package/bin/chunk-qzx2gre7.js.map +13 -0
  100. package/bin/chunk-r55kafff.js.map +9 -0
  101. package/bin/chunk-rrwp4x01.js.map +10 -0
  102. package/bin/chunk-rt02k446.js.map +11 -0
  103. package/bin/chunk-s39nwv01.js.map +9 -0
  104. package/bin/chunk-s983v0dp.js.map +10 -0
  105. package/bin/chunk-san15sca.js.map +10 -0
  106. package/bin/chunk-sfk73pp2.js.map +10 -0
  107. package/bin/chunk-sjd3wbjd.js.map +10 -0
  108. package/bin/chunk-swbdmja3.js.map +10 -0
  109. package/bin/chunk-tc8tvjey.js.map +33 -0
  110. package/bin/chunk-tcqtz83b.js.map +10 -0
  111. package/bin/chunk-tgxxchfy.js.map +28 -0
  112. package/bin/chunk-tvxakxv2.js.map +10 -0
  113. package/bin/chunk-v81ta3tx.js.map +15 -0
  114. package/bin/chunk-va2h4xya.js.map +37 -0
  115. package/bin/chunk-vezq3hc4.js.map +9 -0
  116. package/bin/chunk-vmbpvmpg.js.map +10 -0
  117. package/bin/chunk-w7p62pb6.js.map +17 -0
  118. package/bin/chunk-wr4x72qd.js.map +13 -0
  119. package/bin/chunk-x3ywttp7.js.map +10 -0
  120. package/bin/chunk-x988wmrk.js.map +10 -0
  121. package/bin/chunk-x9zjg1f7.js.map +20 -0
  122. package/bin/chunk-xaqrhtz6.js.map +10 -0
  123. package/bin/chunk-xd2mrkwy.js.map +10 -0
  124. package/bin/chunk-xfh2377b.js.map +10 -0
  125. package/bin/chunk-xs0ras4j.js.map +51 -0
  126. package/bin/chunk-xt7ap9fb.js.map +10 -0
  127. package/bin/chunk-xya5qk3h.js.map +16 -0
  128. package/bin/chunk-yg7w4jgd.js.map +10 -0
  129. package/bin/chunk-yhpv46tb.js.map +20 -0
  130. package/bin/chunk-ymy66kr8.js.map +15 -0
  131. package/bin/chunk-yx4z6xsb.js.map +11 -0
  132. package/bin/chunk-yymwxqpy.js.map +10 -0
  133. package/bin/chunk-z70c75xe.js.map +11 -0
  134. package/bin/chunk-zkqyr3hc.js.map +10 -0
  135. package/bin/index.js.map +12 -0
  136. package/bin/lildax +0 -0
  137. package/package.json +15 -0
@@ -0,0 +1,16 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../node_modules/.bun/@smithy+types@4.14.2/node_modules/@smithy/types/dist-cjs/index.js", "../../node_modules/.bun/@smithy+core@3.24.5/node_modules/@smithy/core/dist-cjs/submodules/transport/index.js", "../../node_modules/.bun/@smithy+core@3.24.5/node_modules/@smithy/core/dist-cjs/submodules/schema/index.js", "../../node_modules/.bun/@smithy+core@3.24.5/node_modules/@smithy/core/dist-cjs/submodules/client/index.js", "../../node_modules/.bun/@smithy+core@3.24.5/node_modules/@smithy/core/dist-cjs/submodules/config/index.js", "../../node_modules/.bun/@smithy+core@3.24.5/node_modules/@smithy/core/dist-cjs/submodules/endpoints/index.js", "../../node_modules/.bun/@smithy+core@3.24.5/node_modules/@smithy/core/dist-cjs/submodules/serde/index.js"],
4
+ "sourcesContent": [
5
+ "'use strict';\n\nexports.HttpAuthLocation = void 0;\n(function (HttpAuthLocation) {\n HttpAuthLocation[\"HEADER\"] = \"header\";\n HttpAuthLocation[\"QUERY\"] = \"query\";\n})(exports.HttpAuthLocation || (exports.HttpAuthLocation = {}));\n\nexports.HttpApiKeyAuthLocation = void 0;\n(function (HttpApiKeyAuthLocation) {\n HttpApiKeyAuthLocation[\"HEADER\"] = \"header\";\n HttpApiKeyAuthLocation[\"QUERY\"] = \"query\";\n})(exports.HttpApiKeyAuthLocation || (exports.HttpApiKeyAuthLocation = {}));\n\nexports.EndpointURLScheme = void 0;\n(function (EndpointURLScheme) {\n EndpointURLScheme[\"HTTP\"] = \"http\";\n EndpointURLScheme[\"HTTPS\"] = \"https\";\n})(exports.EndpointURLScheme || (exports.EndpointURLScheme = {}));\n\nexports.AlgorithmId = void 0;\n(function (AlgorithmId) {\n AlgorithmId[\"MD5\"] = \"md5\";\n AlgorithmId[\"CRC32\"] = \"crc32\";\n AlgorithmId[\"CRC32C\"] = \"crc32c\";\n AlgorithmId[\"SHA1\"] = \"sha1\";\n AlgorithmId[\"SHA256\"] = \"sha256\";\n})(exports.AlgorithmId || (exports.AlgorithmId = {}));\nconst getChecksumConfiguration = (runtimeConfig) => {\n const checksumAlgorithms = [];\n if (runtimeConfig.sha256 !== undefined) {\n checksumAlgorithms.push({\n algorithmId: () => exports.AlgorithmId.SHA256,\n checksumConstructor: () => runtimeConfig.sha256,\n });\n }\n if (runtimeConfig.md5 != undefined) {\n checksumAlgorithms.push({\n algorithmId: () => exports.AlgorithmId.MD5,\n checksumConstructor: () => runtimeConfig.md5,\n });\n }\n return {\n addChecksumAlgorithm(algo) {\n checksumAlgorithms.push(algo);\n },\n checksumAlgorithms() {\n return checksumAlgorithms;\n },\n };\n};\nconst resolveChecksumRuntimeConfig = (clientConfig) => {\n const runtimeConfig = {};\n clientConfig.checksumAlgorithms().forEach((checksumAlgorithm) => {\n runtimeConfig[checksumAlgorithm.algorithmId()] = checksumAlgorithm.checksumConstructor();\n });\n return runtimeConfig;\n};\n\nconst getDefaultClientConfiguration = (runtimeConfig) => {\n return getChecksumConfiguration(runtimeConfig);\n};\nconst resolveDefaultRuntimeConfig = (config) => {\n return resolveChecksumRuntimeConfig(config);\n};\n\nexports.FieldPosition = void 0;\n(function (FieldPosition) {\n FieldPosition[FieldPosition[\"HEADER\"] = 0] = \"HEADER\";\n FieldPosition[FieldPosition[\"TRAILER\"] = 1] = \"TRAILER\";\n})(exports.FieldPosition || (exports.FieldPosition = {}));\n\nconst SMITHY_CONTEXT_KEY = \"__smithy_context\";\n\nexports.IniSectionType = void 0;\n(function (IniSectionType) {\n IniSectionType[\"PROFILE\"] = \"profile\";\n IniSectionType[\"SSO_SESSION\"] = \"sso-session\";\n IniSectionType[\"SERVICES\"] = \"services\";\n})(exports.IniSectionType || (exports.IniSectionType = {}));\n\nexports.RequestHandlerProtocol = void 0;\n(function (RequestHandlerProtocol) {\n RequestHandlerProtocol[\"HTTP_0_9\"] = \"http/0.9\";\n RequestHandlerProtocol[\"HTTP_1_0\"] = \"http/1.0\";\n RequestHandlerProtocol[\"TDS_8_0\"] = \"tds/8.0\";\n})(exports.RequestHandlerProtocol || (exports.RequestHandlerProtocol = {}));\n\nexports.SMITHY_CONTEXT_KEY = SMITHY_CONTEXT_KEY;\nexports.getDefaultClientConfiguration = getDefaultClientConfiguration;\nexports.resolveDefaultRuntimeConfig = resolveDefaultRuntimeConfig;\n",
6
+ "'use strict';\n\nvar types = require('@smithy/types');\n\nconst getSmithyContext = (context) => context[types.SMITHY_CONTEXT_KEY] || (context[types.SMITHY_CONTEXT_KEY] = {});\n\nclass HttpRequest {\n method;\n protocol;\n hostname;\n port;\n path;\n query;\n headers;\n username;\n password;\n fragment;\n body;\n constructor(options) {\n this.method = options.method || \"GET\";\n this.hostname = options.hostname || \"localhost\";\n this.port = options.port;\n this.query = options.query || {};\n this.headers = options.headers || {};\n this.body = options.body;\n this.protocol = options.protocol\n ? options.protocol.slice(-1) !== \":\"\n ? `${options.protocol}:`\n : options.protocol\n : \"https:\";\n this.path = options.path ? (options.path.charAt(0) !== \"/\" ? `/${options.path}` : options.path) : \"/\";\n this.username = options.username;\n this.password = options.password;\n this.fragment = options.fragment;\n }\n static clone(request) {\n const cloned = new HttpRequest({\n ...request,\n headers: { ...request.headers },\n });\n if (cloned.query) {\n cloned.query = cloneQuery(cloned.query);\n }\n return cloned;\n }\n static isInstance(request) {\n if (!request) {\n return false;\n }\n const req = request;\n return (\"method\" in req &&\n \"protocol\" in req &&\n \"hostname\" in req &&\n \"path\" in req &&\n typeof req[\"query\"] === \"object\" &&\n typeof req[\"headers\"] === \"object\");\n }\n clone() {\n return HttpRequest.clone(this);\n }\n}\nfunction cloneQuery(query) {\n return Object.keys(query).reduce((carry, paramName) => {\n const param = query[paramName];\n return {\n ...carry,\n [paramName]: Array.isArray(param) ? [...param] : param,\n };\n }, {});\n}\n\nclass HttpResponse {\n statusCode;\n reason;\n headers;\n body;\n constructor(options) {\n this.statusCode = options.statusCode;\n this.reason = options.reason;\n this.headers = options.headers || {};\n this.body = options.body;\n }\n static isInstance(response) {\n if (!response)\n return false;\n const resp = response;\n return typeof resp.statusCode === \"number\" && typeof resp.headers === \"object\";\n }\n}\n\nconst VALID_HOST_LABEL_REGEX = new RegExp(`^(?!.*-$)(?!-)[a-zA-Z0-9-]{1,63}$`);\nconst isValidHostLabel = (value, allowSubDomains = false) => {\n if (!allowSubDomains) {\n return VALID_HOST_LABEL_REGEX.test(value);\n }\n const labels = value.split(\".\");\n for (const label of labels) {\n if (!isValidHostLabel(label)) {\n return false;\n }\n }\n return true;\n};\n\nfunction isValidHostname(hostname) {\n const hostPattern = /^[a-z0-9][a-z0-9\\.\\-]*[a-z0-9]$/;\n return hostPattern.test(hostname);\n}\n\nconst normalizeProvider = (input) => {\n if (typeof input === \"function\")\n return input;\n const promisified = Promise.resolve(input);\n return () => promisified;\n};\n\nfunction parseQueryString(querystring) {\n const query = {};\n querystring = querystring.replace(/^\\?/, \"\");\n if (querystring) {\n for (const pair of querystring.split(\"&\")) {\n let [key, value = null] = pair.split(\"=\");\n key = decodeURIComponent(key);\n if (value) {\n value = decodeURIComponent(value);\n }\n if (!(key in query)) {\n query[key] = value;\n }\n else if (Array.isArray(query[key])) {\n query[key].push(value);\n }\n else {\n query[key] = [query[key], value];\n }\n }\n }\n return query;\n}\n\nconst parseUrl = (url) => {\n if (typeof url === \"string\") {\n return parseUrl(new URL(url));\n }\n const { hostname, pathname, port, protocol, search } = url;\n let query;\n if (search) {\n query = parseQueryString(search);\n }\n return {\n hostname,\n port: port ? parseInt(port) : undefined,\n protocol,\n path: pathname,\n query,\n };\n};\n\nconst toEndpointV1 = (endpoint) => {\n if (typeof endpoint === \"object\") {\n if (\"url\" in endpoint) {\n const v1Endpoint = parseUrl(endpoint.url);\n if (endpoint.headers) {\n v1Endpoint.headers = {};\n for (const name in endpoint.headers) {\n v1Endpoint.headers[name.toLowerCase()] = endpoint.headers[name].join(\", \");\n }\n }\n return v1Endpoint;\n }\n return endpoint;\n }\n return parseUrl(endpoint);\n};\n\nexports.HttpRequest = HttpRequest;\nexports.HttpResponse = HttpResponse;\nexports.getSmithyContext = getSmithyContext;\nexports.isValidHostLabel = isValidHostLabel;\nexports.isValidHostname = isValidHostname;\nexports.normalizeProvider = normalizeProvider;\nexports.parseQueryString = parseQueryString;\nexports.parseUrl = parseUrl;\nexports.toEndpointV1 = toEndpointV1;\n",
7
+ "'use strict';\n\nvar transport = require('@smithy/core/transport');\n\nconst deref = (schemaRef) => {\n if (typeof schemaRef === \"function\") {\n return schemaRef();\n }\n return schemaRef;\n};\n\nconst operation = (namespace, name, traits, input, output) => ({\n name,\n namespace,\n traits,\n input,\n output,\n});\n\nconst schemaDeserializationMiddleware = (config) => (next, context) => async (args) => {\n const { response } = await next(args);\n const { operationSchema } = transport.getSmithyContext(context);\n const [, ns, n, t, i, o] = operationSchema ?? [];\n try {\n const parsed = await config.protocol.deserializeResponse(operation(ns, n, t, i, o), {\n ...config,\n ...context,\n }, response);\n return {\n response,\n output: parsed,\n };\n }\n catch (error) {\n Object.defineProperty(error, \"$response\", {\n value: response,\n enumerable: false,\n writable: false,\n configurable: false,\n });\n if (!(\"$metadata\" in error)) {\n const hint = `Deserialization error: to see the raw response, inspect the hidden field {error}.$response on this object.`;\n try {\n error.message += \"\\n \" + hint;\n }\n catch (e) {\n if (!context.logger || context.logger?.constructor?.name === \"NoOpLogger\") {\n console.warn(hint);\n }\n else {\n context.logger?.warn?.(hint);\n }\n }\n if (typeof error.$responseBodyText !== \"undefined\") {\n if (error.$response) {\n error.$response.body = error.$responseBodyText;\n }\n }\n try {\n if (transport.HttpResponse.isInstance(response)) {\n const { headers = {}, statusCode } = response;\n const headerEntries = Object.entries(headers);\n error.$metadata = {\n httpStatusCode: statusCode,\n requestId: findHeader(/^x-[\\w-]+-request-?id$/, headerEntries),\n extendedRequestId: findHeader(/^x-[\\w-]+-id-2$/, headerEntries),\n cfId: findHeader(/^x-[\\w-]+-cf-id$/, headerEntries),\n };\n }\n }\n catch (e) {\n }\n }\n throw error;\n }\n};\nconst findHeader = (pattern, headers) => {\n return (headers.find(([k]) => {\n return k.match(pattern);\n }) || [void 0, void 0])[1];\n};\n\nconst schemaSerializationMiddleware = (config) => (next, context) => async (args) => {\n const { operationSchema } = transport.getSmithyContext(context);\n const [, ns, n, t, i, o] = operationSchema ?? [];\n const endpoint = context.endpointV2\n ? async () => transport.toEndpointV1(context.endpointV2)\n : config.endpoint;\n const request = await config.protocol.serializeRequest(operation(ns, n, t, i, o), args.input, {\n ...config,\n ...context,\n endpoint,\n });\n return next({\n ...args,\n request,\n });\n};\n\nconst deserializerMiddlewareOption = {\n name: \"deserializerMiddleware\",\n step: \"deserialize\",\n tags: [\"DESERIALIZER\"],\n override: true,\n};\nconst serializerMiddlewareOption = {\n name: \"serializerMiddleware\",\n step: \"serialize\",\n tags: [\"SERIALIZER\"],\n override: true,\n};\nfunction getSchemaSerdePlugin(config) {\n return {\n applyToStack: (commandStack) => {\n commandStack.add(schemaSerializationMiddleware(config), serializerMiddlewareOption);\n commandStack.add(schemaDeserializationMiddleware(config), deserializerMiddlewareOption);\n config.protocol.setSerdeContext(config);\n },\n };\n}\n\nclass Schema {\n name;\n namespace;\n traits;\n static assign(instance, values) {\n const schema = Object.assign(instance, values);\n return schema;\n }\n static [Symbol.hasInstance](lhs) {\n const isPrototype = this.prototype.isPrototypeOf(lhs);\n if (!isPrototype && typeof lhs === \"object\" && lhs !== null) {\n const list = lhs;\n return list.symbol === this.symbol;\n }\n return isPrototype;\n }\n getName() {\n return this.namespace + \"#\" + this.name;\n }\n}\n\nclass ListSchema extends Schema {\n static symbol = Symbol.for(\"@smithy/lis\");\n name;\n traits;\n valueSchema;\n symbol = ListSchema.symbol;\n}\nconst list = (namespace, name, traits, valueSchema) => Schema.assign(new ListSchema(), {\n name,\n namespace,\n traits,\n valueSchema,\n});\n\nclass MapSchema extends Schema {\n static symbol = Symbol.for(\"@smithy/map\");\n name;\n traits;\n keySchema;\n valueSchema;\n symbol = MapSchema.symbol;\n}\nconst map = (namespace, name, traits, keySchema, valueSchema) => Schema.assign(new MapSchema(), {\n name,\n namespace,\n traits,\n keySchema,\n valueSchema,\n});\n\nclass OperationSchema extends Schema {\n static symbol = Symbol.for(\"@smithy/ope\");\n name;\n traits;\n input;\n output;\n symbol = OperationSchema.symbol;\n}\nconst op = (namespace, name, traits, input, output) => Schema.assign(new OperationSchema(), {\n name,\n namespace,\n traits,\n input,\n output,\n});\n\nclass StructureSchema extends Schema {\n static symbol = Symbol.for(\"@smithy/str\");\n name;\n traits;\n memberNames;\n memberList;\n symbol = StructureSchema.symbol;\n}\nconst struct = (namespace, name, traits, memberNames, memberList) => Schema.assign(new StructureSchema(), {\n name,\n namespace,\n traits,\n memberNames,\n memberList,\n});\n\nclass ErrorSchema extends StructureSchema {\n static symbol = Symbol.for(\"@smithy/err\");\n ctor;\n symbol = ErrorSchema.symbol;\n}\nconst error = (namespace, name, traits, memberNames, memberList, ctor) => Schema.assign(new ErrorSchema(), {\n name,\n namespace,\n traits,\n memberNames,\n memberList,\n ctor: null,\n});\n\nconst traitsCache = [];\nfunction translateTraits(indicator) {\n if (typeof indicator === \"object\") {\n return indicator;\n }\n indicator = indicator | 0;\n if (traitsCache[indicator]) {\n return traitsCache[indicator];\n }\n const traits = {};\n let i = 0;\n for (const trait of [\n \"httpLabel\",\n \"idempotent\",\n \"idempotencyToken\",\n \"sensitive\",\n \"httpPayload\",\n \"httpResponseCode\",\n \"httpQueryParams\",\n ]) {\n if (((indicator >> i++) & 1) === 1) {\n traits[trait] = 1;\n }\n }\n return (traitsCache[indicator] = traits);\n}\n\nconst anno = {\n it: Symbol.for(\"@smithy/nor-struct-it\"),\n ns: Symbol.for(\"@smithy/ns\"),\n};\nconst simpleSchemaCacheN = [];\nconst simpleSchemaCacheS = {};\nclass NormalizedSchema {\n ref;\n memberName;\n static symbol = Symbol.for(\"@smithy/nor\");\n symbol = NormalizedSchema.symbol;\n name;\n schema;\n _isMemberSchema;\n traits;\n memberTraits;\n normalizedTraits;\n constructor(ref, memberName) {\n this.ref = ref;\n this.memberName = memberName;\n const traitStack = [];\n let _ref = ref;\n let schema = ref;\n this._isMemberSchema = false;\n while (isMemberSchema(_ref)) {\n traitStack.push(_ref[1]);\n _ref = _ref[0];\n schema = deref(_ref);\n this._isMemberSchema = true;\n }\n if (traitStack.length > 0) {\n this.memberTraits = {};\n for (let i = traitStack.length - 1; i >= 0; --i) {\n const traitSet = traitStack[i];\n Object.assign(this.memberTraits, translateTraits(traitSet));\n }\n }\n else {\n this.memberTraits = 0;\n }\n if (schema instanceof NormalizedSchema) {\n const computedMemberTraits = this.memberTraits;\n Object.assign(this, schema);\n this.memberTraits = Object.assign({}, computedMemberTraits, schema.getMemberTraits(), this.getMemberTraits());\n this.normalizedTraits = void 0;\n this.memberName = memberName ?? schema.memberName;\n return;\n }\n this.schema = deref(schema);\n if (isStaticSchema(this.schema)) {\n this.name = `${this.schema[1]}#${this.schema[2]}`;\n this.traits = this.schema[3];\n }\n else {\n this.name = this.memberName ?? String(schema);\n this.traits = 0;\n }\n if (this._isMemberSchema && !memberName) {\n throw new Error(`@smithy/core/schema - NormalizedSchema member init ${this.getName(true)} missing member name.`);\n }\n }\n static [Symbol.hasInstance](lhs) {\n const isPrototype = this.prototype.isPrototypeOf(lhs);\n if (!isPrototype && typeof lhs === \"object\" && lhs !== null) {\n const ns = lhs;\n return ns.symbol === this.symbol;\n }\n return isPrototype;\n }\n static of(ref) {\n const keyAble = typeof ref === \"function\" || (typeof ref === \"object\" && ref !== null);\n if (typeof ref === \"number\") {\n if (simpleSchemaCacheN[ref]) {\n return simpleSchemaCacheN[ref];\n }\n }\n else if (typeof ref === \"string\") {\n if (simpleSchemaCacheS[ref]) {\n return simpleSchemaCacheS[ref];\n }\n }\n else if (keyAble) {\n if (ref[anno.ns]) {\n return ref[anno.ns];\n }\n }\n const sc = deref(ref);\n if (sc instanceof NormalizedSchema) {\n return sc;\n }\n if (isMemberSchema(sc)) {\n const [ns, traits] = sc;\n if (ns instanceof NormalizedSchema) {\n Object.assign(ns.getMergedTraits(), translateTraits(traits));\n return ns;\n }\n throw new Error(`@smithy/core/schema - may not init unwrapped member schema=${JSON.stringify(ref, null, 2)}.`);\n }\n const ns = new NormalizedSchema(sc);\n if (keyAble) {\n return (ref[anno.ns] = ns);\n }\n if (typeof sc === \"string\") {\n return (simpleSchemaCacheS[sc] = ns);\n }\n if (typeof sc === \"number\") {\n return (simpleSchemaCacheN[sc] = ns);\n }\n return ns;\n }\n getSchema() {\n const sc = this.schema;\n if (Array.isArray(sc) && sc[0] === 0) {\n return sc[4];\n }\n return sc;\n }\n getName(withNamespace = false) {\n const { name } = this;\n const short = !withNamespace && name && name.includes(\"#\");\n return short ? name.split(\"#\")[1] : name || undefined;\n }\n getMemberName() {\n return this.memberName;\n }\n isMemberSchema() {\n return this._isMemberSchema;\n }\n isListSchema() {\n const sc = this.getSchema();\n return typeof sc === \"number\"\n ? sc >= 64 && sc < 128\n : sc[0] === 1;\n }\n isMapSchema() {\n const sc = this.getSchema();\n return typeof sc === \"number\"\n ? sc >= 128 && sc <= 0b1111_1111\n : sc[0] === 2;\n }\n isStructSchema() {\n const sc = this.getSchema();\n if (typeof sc !== \"object\") {\n return false;\n }\n const id = sc[0];\n return (id === 3 ||\n id === -3 ||\n id === 4);\n }\n isUnionSchema() {\n const sc = this.getSchema();\n if (typeof sc !== \"object\") {\n return false;\n }\n return sc[0] === 4;\n }\n isBlobSchema() {\n const sc = this.getSchema();\n return sc === 21 || sc === 42;\n }\n isTimestampSchema() {\n const sc = this.getSchema();\n return (typeof sc === \"number\" &&\n sc >= 4 &&\n sc <= 7);\n }\n isUnitSchema() {\n return this.getSchema() === \"unit\";\n }\n isDocumentSchema() {\n return this.getSchema() === 15;\n }\n isStringSchema() {\n return this.getSchema() === 0;\n }\n isBooleanSchema() {\n return this.getSchema() === 2;\n }\n isNumericSchema() {\n return this.getSchema() === 1;\n }\n isBigIntegerSchema() {\n return this.getSchema() === 17;\n }\n isBigDecimalSchema() {\n return this.getSchema() === 19;\n }\n isStreaming() {\n const { streaming } = this.getMergedTraits();\n return !!streaming || this.getSchema() === 42;\n }\n isIdempotencyToken() {\n return !!this.getMergedTraits().idempotencyToken;\n }\n getMergedTraits() {\n return (this.normalizedTraits ??\n (this.normalizedTraits = {\n ...this.getOwnTraits(),\n ...this.getMemberTraits(),\n }));\n }\n getMemberTraits() {\n return translateTraits(this.memberTraits);\n }\n getOwnTraits() {\n return translateTraits(this.traits);\n }\n getKeySchema() {\n const [isDoc, isMap] = [this.isDocumentSchema(), this.isMapSchema()];\n if (!isDoc && !isMap) {\n throw new Error(`@smithy/core/schema - cannot get key for non-map: ${this.getName(true)}`);\n }\n const schema = this.getSchema();\n const memberSchema = isDoc\n ? 15\n : schema[4] ?? 0;\n return member([memberSchema, 0], \"key\");\n }\n getValueSchema() {\n const sc = this.getSchema();\n const [isDoc, isMap, isList] = [this.isDocumentSchema(), this.isMapSchema(), this.isListSchema()];\n const memberSchema = typeof sc === \"number\"\n ? 0b0011_1111 & sc\n : sc && typeof sc === \"object\" && (isMap || isList)\n ? sc[3 + sc[0]]\n : isDoc\n ? 15\n : void 0;\n if (memberSchema != null) {\n return member([memberSchema, 0], isMap ? \"value\" : \"member\");\n }\n throw new Error(`@smithy/core/schema - ${this.getName(true)} has no value member.`);\n }\n getMemberSchema(memberName) {\n const struct = this.getSchema();\n if (this.isStructSchema() && struct[4].includes(memberName)) {\n const i = struct[4].indexOf(memberName);\n const memberSchema = struct[5][i];\n return member(isMemberSchema(memberSchema) ? memberSchema : [memberSchema, 0], memberName);\n }\n if (this.isDocumentSchema()) {\n return member([15, 0], memberName);\n }\n throw new Error(`@smithy/core/schema - ${this.getName(true)} has no member=${memberName}.`);\n }\n getMemberSchemas() {\n const buffer = {};\n try {\n for (const [k, v] of this.structIterator()) {\n buffer[k] = v;\n }\n }\n catch (ignored) { }\n return buffer;\n }\n getEventStreamMember() {\n if (this.isStructSchema()) {\n for (const [memberName, memberSchema] of this.structIterator()) {\n if (memberSchema.isStreaming() && memberSchema.isStructSchema()) {\n return memberName;\n }\n }\n }\n return \"\";\n }\n *structIterator() {\n if (this.isUnitSchema()) {\n return;\n }\n if (!this.isStructSchema()) {\n throw new Error(\"@smithy/core/schema - cannot iterate non-struct schema.\");\n }\n const struct = this.getSchema();\n const z = struct[4].length;\n let it = struct[anno.it];\n if (it && z === it.length) {\n yield* it;\n return;\n }\n it = Array(z);\n for (let i = 0; i < z; ++i) {\n const k = struct[4][i];\n const v = member([struct[5][i], 0], k);\n yield (it[i] = [k, v]);\n }\n struct[anno.it] = it;\n }\n}\nfunction member(memberSchema, memberName) {\n if (memberSchema instanceof NormalizedSchema) {\n return Object.assign(memberSchema, {\n memberName,\n _isMemberSchema: true,\n });\n }\n const internalCtorAccess = NormalizedSchema;\n return new internalCtorAccess(memberSchema, memberName);\n}\nconst isMemberSchema = (sc) => Array.isArray(sc) && sc.length === 2;\nconst isStaticSchema = (sc) => Array.isArray(sc) && sc.length >= 5;\n\nclass SimpleSchema extends Schema {\n static symbol = Symbol.for(\"@smithy/sim\");\n name;\n schemaRef;\n traits;\n symbol = SimpleSchema.symbol;\n}\nconst sim = (namespace, name, schemaRef, traits) => Schema.assign(new SimpleSchema(), {\n name,\n namespace,\n traits,\n schemaRef,\n});\nconst simAdapter = (namespace, name, traits, schemaRef) => Schema.assign(new SimpleSchema(), {\n name,\n namespace,\n traits,\n schemaRef,\n});\n\nconst SCHEMA = {\n BLOB: 0b0001_0101,\n STREAMING_BLOB: 0b0010_1010,\n BOOLEAN: 0b0000_0010,\n STRING: 0b0000_0000,\n NUMERIC: 0b0000_0001,\n BIG_INTEGER: 0b0001_0001,\n BIG_DECIMAL: 0b0001_0011,\n DOCUMENT: 0b0000_1111,\n TIMESTAMP_DEFAULT: 0b0000_0100,\n TIMESTAMP_DATE_TIME: 0b0000_0101,\n TIMESTAMP_HTTP_DATE: 0b0000_0110,\n TIMESTAMP_EPOCH_SECONDS: 0b0000_0111,\n LIST_MODIFIER: 0b0100_0000,\n MAP_MODIFIER: 0b1000_0000,\n};\n\nclass TypeRegistry {\n namespace;\n schemas;\n exceptions;\n static registries = new Map();\n constructor(namespace, schemas = new Map(), exceptions = new Map()) {\n this.namespace = namespace;\n this.schemas = schemas;\n this.exceptions = exceptions;\n }\n static for(namespace) {\n if (!TypeRegistry.registries.has(namespace)) {\n TypeRegistry.registries.set(namespace, new TypeRegistry(namespace));\n }\n return TypeRegistry.registries.get(namespace);\n }\n copyFrom(other) {\n const { schemas, exceptions } = this;\n for (const [k, v] of other.schemas) {\n if (!schemas.has(k)) {\n schemas.set(k, v);\n }\n }\n for (const [k, v] of other.exceptions) {\n if (!exceptions.has(k)) {\n exceptions.set(k, v);\n }\n }\n }\n register(shapeId, schema) {\n const qualifiedName = this.normalizeShapeId(shapeId);\n for (const r of [this, TypeRegistry.for(qualifiedName.split(\"#\")[0])]) {\n r.schemas.set(qualifiedName, schema);\n }\n }\n getSchema(shapeId) {\n const id = this.normalizeShapeId(shapeId);\n if (!this.schemas.has(id)) {\n if (!shapeId.includes(\"#\")) {\n const suffix = \"#\" + shapeId;\n const candidates = [];\n for (const [shapeId, schema] of this.schemas.entries()) {\n if (shapeId.endsWith(suffix)) {\n candidates.push(schema);\n }\n }\n if (candidates.length === 1) {\n return candidates[0];\n }\n }\n throw new Error(`@smithy/core/schema - schema not found for ${id}`);\n }\n return this.schemas.get(id);\n }\n registerError(es, ctor) {\n const $error = es;\n const ns = $error[1];\n for (const r of [this, TypeRegistry.for(ns)]) {\n r.schemas.set(ns + \"#\" + $error[2], $error);\n r.exceptions.set($error, ctor);\n }\n }\n getErrorCtor(es) {\n const $error = es;\n if (this.exceptions.has($error)) {\n return this.exceptions.get($error);\n }\n const registry = TypeRegistry.for($error[1]);\n return registry.exceptions.get($error);\n }\n getBaseException() {\n for (const exceptionKey of this.exceptions.keys()) {\n if (Array.isArray(exceptionKey)) {\n const [, ns, name] = exceptionKey;\n const id = ns + \"#\" + name;\n if (id.startsWith(\"smithy.ts.sdk.synthetic.\") && id.endsWith(\"ServiceException\")) {\n return exceptionKey;\n }\n }\n }\n return undefined;\n }\n find(predicate) {\n for (const schema of this.schemas.values()) {\n if (predicate(schema)) {\n return schema;\n }\n }\n return undefined;\n }\n clear() {\n this.schemas.clear();\n this.exceptions.clear();\n }\n normalizeShapeId(shapeId) {\n if (shapeId.includes(\"#\")) {\n return shapeId;\n }\n return this.namespace + \"#\" + shapeId;\n }\n}\n\nexports.ErrorSchema = ErrorSchema;\nexports.ListSchema = ListSchema;\nexports.MapSchema = MapSchema;\nexports.NormalizedSchema = NormalizedSchema;\nexports.OperationSchema = OperationSchema;\nexports.SCHEMA = SCHEMA;\nexports.Schema = Schema;\nexports.SimpleSchema = SimpleSchema;\nexports.StructureSchema = StructureSchema;\nexports.TypeRegistry = TypeRegistry;\nexports.deref = deref;\nexports.deserializerMiddlewareOption = deserializerMiddlewareOption;\nexports.error = error;\nexports.getSchemaSerdePlugin = getSchemaSerdePlugin;\nexports.isStaticSchema = isStaticSchema;\nexports.list = list;\nexports.map = map;\nexports.op = op;\nexports.operation = operation;\nexports.serializerMiddlewareOption = serializerMiddlewareOption;\nexports.sim = sim;\nexports.simAdapter = simAdapter;\nexports.simpleSchemaCacheN = simpleSchemaCacheN;\nexports.simpleSchemaCacheS = simpleSchemaCacheS;\nexports.struct = struct;\nexports.traitsCache = traitsCache;\nexports.translateTraits = translateTraits;\n",
8
+ "'use strict';\n\nvar transport = require('@smithy/core/transport');\nvar types = require('@smithy/types');\nvar schema = require('@smithy/core/schema');\n\nconst getAllAliases = (name, aliases) => {\n const _aliases = [];\n if (name) {\n _aliases.push(name);\n }\n if (aliases) {\n for (const alias of aliases) {\n _aliases.push(alias);\n }\n }\n return _aliases;\n};\nconst getMiddlewareNameWithAliases = (name, aliases) => {\n return `${name || \"anonymous\"}${aliases && aliases.length > 0 ? ` (a.k.a. ${aliases.join(\",\")})` : \"\"}`;\n};\nconst constructStack = () => {\n let absoluteEntries = [];\n let relativeEntries = [];\n let identifyOnResolve = false;\n const entriesNameSet = new Set();\n const sort = (entries) => entries.sort((a, b) => stepWeights[b.step] - stepWeights[a.step] ||\n priorityWeights[b.priority || \"normal\"] - priorityWeights[a.priority || \"normal\"]);\n const removeByName = (toRemove) => {\n let isRemoved = false;\n const filterCb = (entry) => {\n const aliases = getAllAliases(entry.name, entry.aliases);\n if (aliases.includes(toRemove)) {\n isRemoved = true;\n for (const alias of aliases) {\n entriesNameSet.delete(alias);\n }\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n };\n const removeByReference = (toRemove) => {\n let isRemoved = false;\n const filterCb = (entry) => {\n if (entry.middleware === toRemove) {\n isRemoved = true;\n for (const alias of getAllAliases(entry.name, entry.aliases)) {\n entriesNameSet.delete(alias);\n }\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n };\n const cloneTo = (toStack) => {\n absoluteEntries.forEach((entry) => {\n toStack.add(entry.middleware, { ...entry });\n });\n relativeEntries.forEach((entry) => {\n toStack.addRelativeTo(entry.middleware, { ...entry });\n });\n toStack.identifyOnResolve?.(stack.identifyOnResolve());\n return toStack;\n };\n const expandRelativeMiddlewareList = (from) => {\n const expandedMiddlewareList = [];\n from.before.forEach((entry) => {\n if (entry.before.length === 0 && entry.after.length === 0) {\n expandedMiddlewareList.push(entry);\n }\n else {\n expandedMiddlewareList.push(...expandRelativeMiddlewareList(entry));\n }\n });\n expandedMiddlewareList.push(from);\n from.after.reverse().forEach((entry) => {\n if (entry.before.length === 0 && entry.after.length === 0) {\n expandedMiddlewareList.push(entry);\n }\n else {\n expandedMiddlewareList.push(...expandRelativeMiddlewareList(entry));\n }\n });\n return expandedMiddlewareList;\n };\n const getMiddlewareList = (debug = false) => {\n const normalizedAbsoluteEntries = [];\n const normalizedRelativeEntries = [];\n const normalizedEntriesNameMap = {};\n absoluteEntries.forEach((entry) => {\n const normalizedEntry = {\n ...entry,\n before: [],\n after: [],\n };\n for (const alias of getAllAliases(normalizedEntry.name, normalizedEntry.aliases)) {\n normalizedEntriesNameMap[alias] = normalizedEntry;\n }\n normalizedAbsoluteEntries.push(normalizedEntry);\n });\n relativeEntries.forEach((entry) => {\n const normalizedEntry = {\n ...entry,\n before: [],\n after: [],\n };\n for (const alias of getAllAliases(normalizedEntry.name, normalizedEntry.aliases)) {\n normalizedEntriesNameMap[alias] = normalizedEntry;\n }\n normalizedRelativeEntries.push(normalizedEntry);\n });\n normalizedRelativeEntries.forEach((entry) => {\n if (entry.toMiddleware) {\n const toMiddleware = normalizedEntriesNameMap[entry.toMiddleware];\n if (toMiddleware === undefined) {\n if (debug) {\n return;\n }\n throw new Error(`${entry.toMiddleware} is not found when adding ` +\n `${getMiddlewareNameWithAliases(entry.name, entry.aliases)} ` +\n `middleware ${entry.relation} ${entry.toMiddleware}`);\n }\n if (entry.relation === \"after\") {\n toMiddleware.after.push(entry);\n }\n if (entry.relation === \"before\") {\n toMiddleware.before.push(entry);\n }\n }\n });\n const mainChain = sort(normalizedAbsoluteEntries)\n .map(expandRelativeMiddlewareList)\n .reduce((wholeList, expandedMiddlewareList) => {\n wholeList.push(...expandedMiddlewareList);\n return wholeList;\n }, []);\n return mainChain;\n };\n const stack = {\n add: (middleware, options = {}) => {\n const { name, override, aliases: _aliases } = options;\n const entry = {\n step: \"initialize\",\n priority: \"normal\",\n middleware,\n ...options,\n };\n const aliases = getAllAliases(name, _aliases);\n if (aliases.length > 0) {\n if (aliases.some((alias) => entriesNameSet.has(alias))) {\n if (!override)\n throw new Error(`Duplicate middleware name '${getMiddlewareNameWithAliases(name, _aliases)}'`);\n for (const alias of aliases) {\n const toOverrideIndex = absoluteEntries.findIndex((entry) => entry.name === alias || entry.aliases?.some((a) => a === alias));\n if (toOverrideIndex === -1) {\n continue;\n }\n const toOverride = absoluteEntries[toOverrideIndex];\n if (toOverride.step !== entry.step || entry.priority !== toOverride.priority) {\n throw new Error(`\"${getMiddlewareNameWithAliases(toOverride.name, toOverride.aliases)}\" middleware with ` +\n `${toOverride.priority} priority in ${toOverride.step} step cannot ` +\n `be overridden by \"${getMiddlewareNameWithAliases(name, _aliases)}\" middleware with ` +\n `${entry.priority} priority in ${entry.step} step.`);\n }\n absoluteEntries.splice(toOverrideIndex, 1);\n }\n }\n for (const alias of aliases) {\n entriesNameSet.add(alias);\n }\n }\n absoluteEntries.push(entry);\n },\n addRelativeTo: (middleware, options) => {\n const { name, override, aliases: _aliases } = options;\n const entry = {\n middleware,\n ...options,\n };\n const aliases = getAllAliases(name, _aliases);\n if (aliases.length > 0) {\n if (aliases.some((alias) => entriesNameSet.has(alias))) {\n if (!override)\n throw new Error(`Duplicate middleware name '${getMiddlewareNameWithAliases(name, _aliases)}'`);\n for (const alias of aliases) {\n const toOverrideIndex = relativeEntries.findIndex((entry) => entry.name === alias || entry.aliases?.some((a) => a === alias));\n if (toOverrideIndex === -1) {\n continue;\n }\n const toOverride = relativeEntries[toOverrideIndex];\n if (toOverride.toMiddleware !== entry.toMiddleware || toOverride.relation !== entry.relation) {\n throw new Error(`\"${getMiddlewareNameWithAliases(toOverride.name, toOverride.aliases)}\" middleware ` +\n `${toOverride.relation} \"${toOverride.toMiddleware}\" middleware cannot be overridden ` +\n `by \"${getMiddlewareNameWithAliases(name, _aliases)}\" middleware ${entry.relation} ` +\n `\"${entry.toMiddleware}\" middleware.`);\n }\n relativeEntries.splice(toOverrideIndex, 1);\n }\n }\n for (const alias of aliases) {\n entriesNameSet.add(alias);\n }\n }\n relativeEntries.push(entry);\n },\n clone: () => cloneTo(constructStack()),\n use: (plugin) => {\n plugin.applyToStack(stack);\n },\n remove: (toRemove) => {\n if (typeof toRemove === \"string\")\n return removeByName(toRemove);\n else\n return removeByReference(toRemove);\n },\n removeByTag: (toRemove) => {\n let isRemoved = false;\n const filterCb = (entry) => {\n const { tags, name, aliases: _aliases } = entry;\n if (tags && tags.includes(toRemove)) {\n const aliases = getAllAliases(name, _aliases);\n for (const alias of aliases) {\n entriesNameSet.delete(alias);\n }\n isRemoved = true;\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n },\n concat: (from) => {\n const cloned = cloneTo(constructStack());\n cloned.use(from);\n cloned.identifyOnResolve(identifyOnResolve || cloned.identifyOnResolve() || (from.identifyOnResolve?.() ?? false));\n return cloned;\n },\n applyToStack: cloneTo,\n identify: () => {\n return getMiddlewareList(true).map((mw) => {\n const step = mw.step ??\n mw.relation +\n \" \" +\n mw.toMiddleware;\n return getMiddlewareNameWithAliases(mw.name, mw.aliases) + \" - \" + step;\n });\n },\n identifyOnResolve(toggle) {\n if (typeof toggle === \"boolean\")\n identifyOnResolve = toggle;\n return identifyOnResolve;\n },\n resolve: (handler, context) => {\n for (const middleware of getMiddlewareList()\n .map((entry) => entry.middleware)\n .reverse()) {\n handler = middleware(handler, context);\n }\n if (identifyOnResolve) {\n console.log(stack.identify());\n }\n return handler;\n },\n };\n return stack;\n};\nconst stepWeights = {\n initialize: 5,\n serialize: 4,\n build: 3,\n finalizeRequest: 2,\n deserialize: 1,\n};\nconst priorityWeights = {\n high: 3,\n normal: 2,\n low: 1,\n};\n\nconst invalidFunction = (message) => () => {\n throw new Error(message);\n};\n\nconst invalidProvider = (message) => () => Promise.reject(message);\n\nconst getCircularReplacer = () => {\n const seen = new WeakSet();\n return (key, value) => {\n if (typeof value === \"object\" && value !== null) {\n if (seen.has(value)) {\n return \"[Circular]\";\n }\n seen.add(value);\n }\n return value;\n };\n};\n\nconst sleep = (seconds) => {\n return new Promise((resolve) => setTimeout(resolve, seconds * 1000));\n};\n\nconst waiterServiceDefaults = {\n minDelay: 2,\n maxDelay: 120,\n};\nexports.WaiterState = void 0;\n(function (WaiterState) {\n WaiterState[\"ABORTED\"] = \"ABORTED\";\n WaiterState[\"FAILURE\"] = \"FAILURE\";\n WaiterState[\"SUCCESS\"] = \"SUCCESS\";\n WaiterState[\"RETRY\"] = \"RETRY\";\n WaiterState[\"TIMEOUT\"] = \"TIMEOUT\";\n})(exports.WaiterState || (exports.WaiterState = {}));\nconst checkExceptions = (result) => {\n if (result.state === exports.WaiterState.ABORTED) {\n const abortError = new Error(`${JSON.stringify({\n ...result,\n reason: \"Request was aborted\",\n }, getCircularReplacer())}`);\n abortError.name = \"AbortError\";\n throw abortError;\n }\n else if (result.state === exports.WaiterState.TIMEOUT) {\n const timeoutError = new Error(`${JSON.stringify({\n ...result,\n reason: \"Waiter has timed out\",\n }, getCircularReplacer())}`);\n timeoutError.name = \"TimeoutError\";\n throw timeoutError;\n }\n else if (result.state !== exports.WaiterState.SUCCESS) {\n throw new Error(`${JSON.stringify(result, getCircularReplacer())}`);\n }\n return result;\n};\n\nconst runPolling = async ({ minDelay, maxDelay, maxWaitTime, abortController, client, abortSignal }, input, acceptorChecks) => {\n const observedResponses = {};\n const [minDelayMs, maxDelayMs] = [minDelay * 1000, maxDelay * 1000];\n let currentAttempt = 0;\n const waitUntil = Date.now() + maxWaitTime * 1000;\n const warn403Time = Date.now() + 60_000;\n let didWarn403 = false;\n while (true) {\n if (currentAttempt > 0) {\n const delayMs = exponentialBackoffWithJitter(minDelayMs, maxDelayMs, currentAttempt, waitUntil);\n if (abortController?.signal?.aborted || abortSignal?.aborted) {\n const message = \"AbortController signal aborted.\";\n observedResponses[message] |= 0;\n observedResponses[message] += 1;\n return { state: exports.WaiterState.ABORTED, observedResponses };\n }\n if (Date.now() + delayMs > waitUntil) {\n return { state: exports.WaiterState.TIMEOUT, observedResponses };\n }\n await sleep(delayMs / 1_000);\n }\n const { state, reason } = await acceptorChecks(client, input);\n if (reason) {\n const message = createMessageFromResponse(reason);\n observedResponses[message] |= 0;\n observedResponses[message] += 1;\n }\n if (state !== exports.WaiterState.RETRY) {\n return { state, reason, final: reason, observedResponses };\n }\n currentAttempt += 1;\n if (!didWarn403 && Date.now() >= warn403Time) {\n checkWarn403(observedResponses, client);\n didWarn403 = true;\n }\n }\n};\nconst checkWarn403 = (observedResponses = {}, client) => {\n const orderedErrors = Object.keys(observedResponses);\n let count403 = 0;\n for (const response of orderedErrors) {\n const n = observedResponses[response] | 0;\n if (response.startsWith(\"403:\")) {\n count403 += n;\n }\n }\n const clientLogger = client?.config?.logger;\n const warningLogger = typeof clientLogger?.warn === \"function\" && !clientLogger.constructor?.name?.includes?.(\"NoOpLogger\")\n ? clientLogger\n : console;\n if (count403 >= 3 || orderedErrors[orderedErrors.length - 1]?.startsWith(\"403:\")) {\n warningLogger.warn(`@smithy/util-waiter WARN - 403 status code encountered during waiter polling.`);\n }\n};\nconst createMessageFromResponse = (reason) => {\n const status = reason?.$response?.statusCode ?? reason?.$metadata?.httpStatusCode;\n if (reason?.$responseBodyText) {\n return `${status ? status + \": \" : \"\"}Deserialization error for body: ${reason.$responseBodyText}`;\n }\n if (status) {\n if (reason?.$response || reason?.message) {\n return `${status ?? \"Unknown\"}: ${reason?.message}`;\n }\n return `${status}: OK`;\n }\n return String(reason?.message ?? JSON.stringify(reason, getCircularReplacer()) ?? \"Unknown\");\n};\nconst exponentialBackoffWithJitter = (minDelayMs, maxDelayMs, attempt, waitUntil) => {\n const attemptCountCeiling = Math.log(maxDelayMs / minDelayMs) / Math.log(2) + 1;\n if (attempt > attemptCountCeiling) {\n return maxDelayMs;\n }\n const delay = minDelayMs * 2 ** (attempt - 1);\n const capped = Math.min(delay, maxDelayMs);\n const waitFor = randomInRange(minDelayMs, capped);\n if (Date.now() + waitFor > waitUntil) {\n const timeRemaining = waitUntil - Date.now();\n return Math.max(0, timeRemaining - 500);\n }\n return waitFor;\n};\nconst randomInRange = (min, max) => min + Math.random() * (max - min);\n\nconst validateWaiterOptions = (options) => {\n if (options.maxWaitTime <= 0) {\n throw new Error(`WaiterConfiguration.maxWaitTime must be greater than 0`);\n }\n else if (options.minDelay <= 0) {\n throw new Error(`WaiterConfiguration.minDelay must be greater than 0`);\n }\n else if (options.maxDelay <= 0) {\n throw new Error(`WaiterConfiguration.maxDelay must be greater than 0`);\n }\n else if (options.maxWaitTime <= options.minDelay) {\n throw new Error(`WaiterConfiguration.maxWaitTime [${options.maxWaitTime}] must be greater than WaiterConfiguration.minDelay [${options.minDelay}] for this waiter`);\n }\n else if (options.maxDelay < options.minDelay) {\n throw new Error(`WaiterConfiguration.maxDelay [${options.maxDelay}] must be greater than WaiterConfiguration.minDelay [${options.minDelay}] for this waiter`);\n }\n};\n\nconst abortTimeout = (abortSignal) => {\n let onAbort;\n const promise = new Promise((resolve) => {\n onAbort = () => resolve({ state: exports.WaiterState.ABORTED });\n if (typeof abortSignal.addEventListener === \"function\") {\n abortSignal.addEventListener(\"abort\", onAbort);\n }\n else {\n abortSignal.onabort = onAbort;\n }\n });\n return {\n clearListener() {\n if (typeof abortSignal.removeEventListener === \"function\") {\n abortSignal.removeEventListener(\"abort\", onAbort);\n }\n },\n aborted: promise,\n };\n};\nconst createWaiter = async (options, input, acceptorChecks) => {\n const params = {\n ...waiterServiceDefaults,\n ...options,\n };\n validateWaiterOptions(params);\n const exitConditions = [runPolling(params, input, acceptorChecks)];\n const finalize = [];\n if (options.abortSignal) {\n const { aborted, clearListener } = abortTimeout(options.abortSignal);\n finalize.push(clearListener);\n exitConditions.push(aborted);\n }\n if (options.abortController?.signal) {\n const { aborted, clearListener } = abortTimeout(options.abortController.signal);\n finalize.push(clearListener);\n exitConditions.push(aborted);\n }\n return Promise.race(exitConditions).then((result) => {\n for (const fn of finalize) {\n fn();\n }\n return result;\n });\n};\n\nclass Client {\n config;\n middlewareStack = constructStack();\n initConfig;\n handlers;\n constructor(config) {\n this.config = config;\n const { protocol, protocolSettings } = config;\n if (protocolSettings) {\n if (typeof protocol === \"function\") {\n config.protocol = new protocol(protocolSettings);\n }\n }\n }\n send(command, optionsOrCb, cb) {\n const options = typeof optionsOrCb !== \"function\" ? optionsOrCb : undefined;\n const callback = typeof optionsOrCb === \"function\" ? optionsOrCb : cb;\n const useHandlerCache = options === undefined && this.config.cacheMiddleware === true;\n let handler;\n if (useHandlerCache) {\n if (!this.handlers) {\n this.handlers = new WeakMap();\n }\n const handlers = this.handlers;\n if (handlers.has(command.constructor)) {\n handler = handlers.get(command.constructor);\n }\n else {\n handler = command.resolveMiddleware(this.middlewareStack, this.config, options);\n handlers.set(command.constructor, handler);\n }\n }\n else {\n delete this.handlers;\n handler = command.resolveMiddleware(this.middlewareStack, this.config, options);\n }\n if (callback) {\n handler(command)\n .then((result) => callback(null, result.output), (err) => callback(err))\n .catch(() => { });\n }\n else {\n return handler(command).then((result) => result.output);\n }\n }\n destroy() {\n this.config?.requestHandler?.destroy?.();\n delete this.handlers;\n }\n}\n\nconst SENSITIVE_STRING$1 = \"***SensitiveInformation***\";\nfunction schemaLogFilter(schema$1, data) {\n if (data == null) {\n return data;\n }\n const ns = schema.NormalizedSchema.of(schema$1);\n if (ns.getMergedTraits().sensitive) {\n return SENSITIVE_STRING$1;\n }\n if (ns.isListSchema()) {\n const isSensitive = !!ns.getValueSchema().getMergedTraits().sensitive;\n if (isSensitive) {\n return SENSITIVE_STRING$1;\n }\n }\n else if (ns.isMapSchema()) {\n const isSensitive = !!ns.getKeySchema().getMergedTraits().sensitive || !!ns.getValueSchema().getMergedTraits().sensitive;\n if (isSensitive) {\n return SENSITIVE_STRING$1;\n }\n }\n else if (ns.isStructSchema() && typeof data === \"object\") {\n const object = data;\n const newObject = {};\n for (const [member, memberNs] of ns.structIterator()) {\n if (object[member] != null) {\n newObject[member] = schemaLogFilter(memberNs, object[member]);\n }\n }\n return newObject;\n }\n return data;\n}\n\nclass Command {\n middlewareStack = constructStack();\n schema;\n static classBuilder() {\n return new ClassBuilder();\n }\n resolveMiddlewareWithContext(clientStack, configuration, options, { middlewareFn, clientName, commandName, inputFilterSensitiveLog, outputFilterSensitiveLog, smithyContext, additionalContext, CommandCtor, }) {\n for (const mw of middlewareFn.bind(this)(CommandCtor, clientStack, configuration, options)) {\n this.middlewareStack.use(mw);\n }\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog,\n outputFilterSensitiveLog,\n [types.SMITHY_CONTEXT_KEY]: {\n commandInstance: this,\n ...smithyContext,\n },\n ...additionalContext,\n };\n const { requestHandler } = configuration;\n let requestOptions = options ?? {};\n if (smithyContext.eventStream) {\n requestOptions = {\n isEventStream: true,\n ...requestOptions,\n };\n }\n return stack.resolve((request) => requestHandler.handle(request.request, requestOptions), handlerExecutionContext);\n }\n}\nclass ClassBuilder {\n _init = () => { };\n _ep = {};\n _middlewareFn = () => [];\n _commandName = \"\";\n _clientName = \"\";\n _additionalContext = {};\n _smithyContext = {};\n _inputFilterSensitiveLog = undefined;\n _outputFilterSensitiveLog = undefined;\n _serializer = null;\n _deserializer = null;\n _operationSchema;\n init(cb) {\n this._init = cb;\n }\n ep(endpointParameterInstructions) {\n this._ep = endpointParameterInstructions;\n return this;\n }\n m(middlewareSupplier) {\n this._middlewareFn = middlewareSupplier;\n return this;\n }\n s(service, operation, smithyContext = {}) {\n this._smithyContext = {\n service,\n operation,\n ...smithyContext,\n };\n return this;\n }\n c(additionalContext = {}) {\n this._additionalContext = additionalContext;\n return this;\n }\n n(clientName, commandName) {\n this._clientName = clientName;\n this._commandName = commandName;\n return this;\n }\n f(inputFilter = (_) => _, outputFilter = (_) => _) {\n this._inputFilterSensitiveLog = inputFilter;\n this._outputFilterSensitiveLog = outputFilter;\n return this;\n }\n ser(serializer) {\n this._serializer = serializer;\n return this;\n }\n de(deserializer) {\n this._deserializer = deserializer;\n return this;\n }\n sc(operation) {\n this._operationSchema = operation;\n this._smithyContext.operationSchema = operation;\n return this;\n }\n build() {\n const closure = this;\n let CommandRef;\n return (CommandRef = class extends Command {\n input;\n static getEndpointParameterInstructions() {\n return closure._ep;\n }\n constructor(...[input]) {\n super();\n this.input = input ?? {};\n closure._init(this);\n this.schema = closure._operationSchema;\n }\n resolveMiddleware(stack, configuration, options) {\n const op = closure._operationSchema;\n const input = op?.[4] ?? op?.input;\n const output = op?.[5] ?? op?.output;\n return this.resolveMiddlewareWithContext(stack, configuration, options, {\n CommandCtor: CommandRef,\n middlewareFn: closure._middlewareFn,\n clientName: closure._clientName,\n commandName: closure._commandName,\n inputFilterSensitiveLog: closure._inputFilterSensitiveLog ?? (op ? schemaLogFilter.bind(null, input) : (_) => _),\n outputFilterSensitiveLog: closure._outputFilterSensitiveLog ?? (op ? schemaLogFilter.bind(null, output) : (_) => _),\n smithyContext: closure._smithyContext,\n additionalContext: closure._additionalContext,\n });\n }\n serialize = closure._serializer;\n deserialize = closure._deserializer;\n });\n }\n}\n\nconst SENSITIVE_STRING = \"***SensitiveInformation***\";\n\nconst createAggregatedClient = (commands, Client, options) => {\n for (const [command, CommandCtor] of Object.entries(commands)) {\n const methodImpl = async function (args, optionsOrCb, cb) {\n const command = new CommandCtor(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expected http options but got ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n };\n const methodName = (command[0].toLowerCase() + command.slice(1)).replace(/Command$/, \"\");\n Client.prototype[methodName] = methodImpl;\n }\n const { paginators = {}, waiters = {} } = options ?? {};\n for (const [paginatorName, paginatorFn] of Object.entries(paginators)) {\n if (Client.prototype[paginatorName] === void 0) {\n Client.prototype[paginatorName] = function (commandInput = {}, paginationConfiguration, ...rest) {\n return paginatorFn({\n ...paginationConfiguration,\n client: this,\n }, commandInput, ...rest);\n };\n }\n }\n for (const [waiterName, waiterFn] of Object.entries(waiters)) {\n if (Client.prototype[waiterName] === void 0) {\n Client.prototype[waiterName] = async function (commandInput = {}, waiterConfiguration, ...rest) {\n let config = waiterConfiguration;\n if (typeof waiterConfiguration === \"number\") {\n config = {\n maxWaitTime: waiterConfiguration,\n };\n }\n return waiterFn({\n ...config,\n client: this,\n }, commandInput, ...rest);\n };\n }\n }\n};\n\nclass ServiceException extends Error {\n $fault;\n $response;\n $retryable;\n $metadata;\n constructor(options) {\n super(options.message);\n Object.setPrototypeOf(this, Object.getPrototypeOf(this).constructor.prototype);\n this.name = options.name;\n this.$fault = options.$fault;\n this.$metadata = options.$metadata;\n }\n static isInstance(value) {\n if (!value)\n return false;\n const candidate = value;\n return (ServiceException.prototype.isPrototypeOf(candidate) ||\n (Boolean(candidate.$fault) &&\n Boolean(candidate.$metadata) &&\n (candidate.$fault === \"client\" || candidate.$fault === \"server\")));\n }\n static [Symbol.hasInstance](instance) {\n if (!instance)\n return false;\n const candidate = instance;\n if (this === ServiceException) {\n return ServiceException.isInstance(instance);\n }\n if (ServiceException.isInstance(instance)) {\n if (candidate.name && this.name) {\n return this.prototype.isPrototypeOf(instance) || candidate.name === this.name;\n }\n return this.prototype.isPrototypeOf(instance);\n }\n return false;\n }\n}\nconst decorateServiceException = (exception, additions = {}) => {\n Object.entries(additions)\n .filter(([, v]) => v !== undefined)\n .forEach(([k, v]) => {\n if (exception[k] == undefined || exception[k] === \"\") {\n exception[k] = v;\n }\n });\n const message = exception.message || exception.Message || \"UnknownError\";\n exception.message = message;\n delete exception.Message;\n return exception;\n};\n\nconst throwDefaultError = ({ output, parsedBody, exceptionCtor, errorCode }) => {\n const $metadata = deserializeMetadata(output);\n const statusCode = $metadata.httpStatusCode ? $metadata.httpStatusCode + \"\" : undefined;\n const response = new exceptionCtor({\n name: parsedBody?.code || parsedBody?.Code || errorCode || statusCode || \"UnknownError\",\n $fault: \"client\",\n $metadata,\n });\n throw decorateServiceException(response, parsedBody);\n};\nconst withBaseException = (ExceptionCtor) => {\n return ({ output, parsedBody, errorCode }) => {\n throwDefaultError({ output, parsedBody, exceptionCtor: ExceptionCtor, errorCode });\n };\n};\nconst deserializeMetadata = (output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"],\n});\n\nconst loadConfigsForDefaultMode = (mode) => {\n switch (mode) {\n case \"standard\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 3100,\n };\n case \"in-region\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 1100,\n };\n case \"cross-region\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 3100,\n };\n case \"mobile\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 30000,\n };\n default:\n return {};\n }\n};\n\nlet warningEmitted = false;\nconst emitWarningIfUnsupportedVersion = (version) => {\n if (version && !warningEmitted && parseInt(version.substring(1, version.indexOf(\".\"))) < 16) {\n warningEmitted = true;\n }\n};\n\nconst knownAlgorithms = Object.values(types.AlgorithmId);\nconst getChecksumConfiguration = (runtimeConfig) => {\n const checksumAlgorithms = [];\n for (const id in types.AlgorithmId) {\n const algorithmId = types.AlgorithmId[id];\n if (runtimeConfig[algorithmId] === undefined) {\n continue;\n }\n checksumAlgorithms.push({\n algorithmId: () => algorithmId,\n checksumConstructor: () => runtimeConfig[algorithmId],\n });\n }\n for (const [id, ChecksumCtor] of Object.entries(runtimeConfig.checksumAlgorithms ?? {})) {\n checksumAlgorithms.push({\n algorithmId: () => id,\n checksumConstructor: () => ChecksumCtor,\n });\n }\n return {\n addChecksumAlgorithm(algo) {\n runtimeConfig.checksumAlgorithms = runtimeConfig.checksumAlgorithms ?? {};\n const id = algo.algorithmId();\n const ctor = algo.checksumConstructor();\n if (knownAlgorithms.includes(id)) {\n runtimeConfig.checksumAlgorithms[id.toUpperCase()] = ctor;\n }\n else {\n runtimeConfig.checksumAlgorithms[id] = ctor;\n }\n checksumAlgorithms.push(algo);\n },\n checksumAlgorithms() {\n return checksumAlgorithms;\n },\n };\n};\nconst resolveChecksumRuntimeConfig = (clientConfig) => {\n const runtimeConfig = {};\n clientConfig.checksumAlgorithms().forEach((checksumAlgorithm) => {\n const id = checksumAlgorithm.algorithmId();\n if (knownAlgorithms.includes(id)) {\n runtimeConfig[id] = checksumAlgorithm.checksumConstructor();\n }\n });\n return runtimeConfig;\n};\n\nconst getRetryConfiguration = (runtimeConfig) => {\n return {\n setRetryStrategy(retryStrategy) {\n runtimeConfig.retryStrategy = retryStrategy;\n },\n retryStrategy() {\n return runtimeConfig.retryStrategy;\n },\n };\n};\nconst resolveRetryRuntimeConfig = (retryStrategyConfiguration) => {\n const runtimeConfig = {};\n runtimeConfig.retryStrategy = retryStrategyConfiguration.retryStrategy();\n return runtimeConfig;\n};\n\nconst getDefaultExtensionConfiguration = (runtimeConfig) => {\n return Object.assign(getChecksumConfiguration(runtimeConfig), getRetryConfiguration(runtimeConfig));\n};\nconst getDefaultClientConfiguration = getDefaultExtensionConfiguration;\nconst resolveDefaultRuntimeConfig = (config) => {\n return Object.assign(resolveChecksumRuntimeConfig(config), resolveRetryRuntimeConfig(config));\n};\n\nconst getArrayIfSingleItem = (mayBeArray) => Array.isArray(mayBeArray) ? mayBeArray : [mayBeArray];\n\nconst getValueFromTextNode = (obj) => {\n const textNodeName = \"#text\";\n for (const key in obj) {\n if (obj.hasOwnProperty(key) && obj[key][textNodeName] !== undefined) {\n obj[key] = obj[key][textNodeName];\n }\n else if (typeof obj[key] === \"object\" && obj[key] !== null) {\n obj[key] = getValueFromTextNode(obj[key]);\n }\n }\n return obj;\n};\n\nconst isSerializableHeaderValue = (value) => {\n return value != null;\n};\n\nclass NoOpLogger {\n trace() { }\n debug() { }\n info() { }\n warn() { }\n error() { }\n}\n\nfunction map(arg0, arg1, arg2) {\n let target;\n let filter;\n let instructions;\n if (typeof arg1 === \"undefined\" && typeof arg2 === \"undefined\") {\n target = {};\n instructions = arg0;\n }\n else {\n target = arg0;\n if (typeof arg1 === \"function\") {\n filter = arg1;\n instructions = arg2;\n return mapWithFilter(target, filter, instructions);\n }\n else {\n instructions = arg1;\n }\n }\n for (const key of Object.keys(instructions)) {\n if (!Array.isArray(instructions[key])) {\n target[key] = instructions[key];\n continue;\n }\n applyInstruction(target, null, instructions, key);\n }\n return target;\n}\nconst convertMap = (target) => {\n const output = {};\n for (const [k, v] of Object.entries(target || {})) {\n output[k] = [, v];\n }\n return output;\n};\nconst take = (source, instructions) => {\n const out = {};\n for (const key in instructions) {\n applyInstruction(out, source, instructions, key);\n }\n return out;\n};\nconst mapWithFilter = (target, filter, instructions) => {\n return map(target, Object.entries(instructions).reduce((_instructions, [key, value]) => {\n if (Array.isArray(value)) {\n _instructions[key] = value;\n }\n else {\n if (typeof value === \"function\") {\n _instructions[key] = [filter, value()];\n }\n else {\n _instructions[key] = [filter, value];\n }\n }\n return _instructions;\n }, {}));\n};\nconst applyInstruction = (target, source, instructions, targetKey) => {\n if (source !== null) {\n let instruction = instructions[targetKey];\n if (typeof instruction === \"function\") {\n instruction = [, instruction];\n }\n const [filter = nonNullish, valueFn = pass, sourceKey = targetKey] = instruction;\n if ((typeof filter === \"function\" && filter(source[sourceKey])) || (typeof filter !== \"function\" && !!filter)) {\n target[targetKey] = valueFn(source[sourceKey]);\n }\n return;\n }\n let [filter, value] = instructions[targetKey];\n if (typeof value === \"function\") {\n let _value;\n const defaultFilterPassed = filter === undefined && (_value = value()) != null;\n const customFilterPassed = (typeof filter === \"function\" && !!filter(void 0)) || (typeof filter !== \"function\" && !!filter);\n if (defaultFilterPassed) {\n target[targetKey] = _value;\n }\n else if (customFilterPassed) {\n target[targetKey] = value();\n }\n }\n else {\n const defaultFilterPassed = filter === undefined && value != null;\n const customFilterPassed = (typeof filter === \"function\" && !!filter(value)) || (typeof filter !== \"function\" && !!filter);\n if (defaultFilterPassed || customFilterPassed) {\n target[targetKey] = value;\n }\n }\n};\nconst nonNullish = (_) => _ != null;\nconst pass = (_) => _;\n\nconst serializeFloat = (value) => {\n if (value !== value) {\n return \"NaN\";\n }\n switch (value) {\n case Infinity:\n return \"Infinity\";\n case -Infinity:\n return \"-Infinity\";\n default:\n return value;\n }\n};\nconst serializeDateTime = (date) => date.toISOString().replace(\".000Z\", \"Z\");\n\nconst _json = (obj) => {\n if (obj == null) {\n return {};\n }\n if (Array.isArray(obj)) {\n return obj.filter((_) => _ != null).map(_json);\n }\n if (typeof obj === \"object\") {\n const target = {};\n for (const key of Object.keys(obj)) {\n if (obj[key] == null) {\n continue;\n }\n target[key] = _json(obj[key]);\n }\n return target;\n }\n return obj;\n};\n\nexports.getSmithyContext = transport.getSmithyContext;\nexports.normalizeProvider = transport.normalizeProvider;\nexports.AlgorithmId = types.AlgorithmId;\nexports.Client = Client;\nexports.Command = Command;\nexports.NoOpLogger = NoOpLogger;\nexports.SENSITIVE_STRING = SENSITIVE_STRING;\nexports.ServiceException = ServiceException;\nexports._json = _json;\nexports.checkExceptions = checkExceptions;\nexports.constructStack = constructStack;\nexports.convertMap = convertMap;\nexports.createAggregatedClient = createAggregatedClient;\nexports.createWaiter = createWaiter;\nexports.decorateServiceException = decorateServiceException;\nexports.emitWarningIfUnsupportedVersion = emitWarningIfUnsupportedVersion;\nexports.getArrayIfSingleItem = getArrayIfSingleItem;\nexports.getChecksumConfiguration = getChecksumConfiguration;\nexports.getDefaultClientConfiguration = getDefaultClientConfiguration;\nexports.getDefaultExtensionConfiguration = getDefaultExtensionConfiguration;\nexports.getRetryConfiguration = getRetryConfiguration;\nexports.getValueFromTextNode = getValueFromTextNode;\nexports.invalidFunction = invalidFunction;\nexports.invalidProvider = invalidProvider;\nexports.isSerializableHeaderValue = isSerializableHeaderValue;\nexports.loadConfigsForDefaultMode = loadConfigsForDefaultMode;\nexports.map = map;\nexports.resolveChecksumRuntimeConfig = resolveChecksumRuntimeConfig;\nexports.resolveDefaultRuntimeConfig = resolveDefaultRuntimeConfig;\nexports.resolveRetryRuntimeConfig = resolveRetryRuntimeConfig;\nexports.schemaLogFilter = schemaLogFilter;\nexports.serializeDateTime = serializeDateTime;\nexports.serializeFloat = serializeFloat;\nexports.take = take;\nexports.throwDefaultError = throwDefaultError;\nexports.waiterServiceDefaults = waiterServiceDefaults;\nexports.withBaseException = withBaseException;\n",
9
+ "'use strict';\n\nvar node_os = require('node:os');\nvar node_path = require('node:path');\nvar node_crypto = require('node:crypto');\nvar promises = require('node:fs/promises');\nvar types = require('@smithy/types');\nvar client = require('@smithy/core/client');\nvar transport = require('@smithy/core/transport');\n\nclass ProviderError extends Error {\n name = \"ProviderError\";\n tryNextLink;\n constructor(message, options = true) {\n let logger;\n let tryNextLink = true;\n if (typeof options === \"boolean\") {\n logger = undefined;\n tryNextLink = options;\n }\n else if (options != null && typeof options === \"object\") {\n logger = options.logger;\n tryNextLink = options.tryNextLink ?? true;\n }\n super(message);\n this.tryNextLink = tryNextLink;\n Object.setPrototypeOf(this, ProviderError.prototype);\n logger?.debug?.(`@smithy/property-provider ${tryNextLink ? \"->\" : \"(!)\"} ${message}`);\n }\n static from(error, options = true) {\n return Object.assign(new this(error.message, options), error);\n }\n}\n\nclass CredentialsProviderError extends ProviderError {\n name = \"CredentialsProviderError\";\n constructor(message, options = true) {\n super(message, options);\n Object.setPrototypeOf(this, CredentialsProviderError.prototype);\n }\n}\n\nclass TokenProviderError extends ProviderError {\n name = \"TokenProviderError\";\n constructor(message, options = true) {\n super(message, options);\n Object.setPrototypeOf(this, TokenProviderError.prototype);\n }\n}\n\nconst chain = (...providers) => async () => {\n if (providers.length === 0) {\n throw new ProviderError(\"No providers in chain\");\n }\n let lastProviderError;\n for (const provider of providers) {\n try {\n const credentials = await provider();\n return credentials;\n }\n catch (err) {\n lastProviderError = err;\n if (err?.tryNextLink) {\n continue;\n }\n throw err;\n }\n }\n throw lastProviderError;\n};\n\nconst fromValue = (staticValue) => () => Promise.resolve(staticValue);\n\nconst memoize = (provider, isExpired, requiresRefresh) => {\n let resolved;\n let pending;\n let hasResult;\n let isConstant = false;\n const coalesceProvider = async () => {\n if (!pending) {\n pending = provider();\n }\n try {\n resolved = await pending;\n hasResult = true;\n isConstant = false;\n }\n finally {\n pending = undefined;\n }\n return resolved;\n };\n if (isExpired === undefined) {\n return async (options) => {\n if (!hasResult || options?.forceRefresh) {\n resolved = await coalesceProvider();\n }\n return resolved;\n };\n }\n return async (options) => {\n if (!hasResult || options?.forceRefresh) {\n resolved = await coalesceProvider();\n }\n if (isConstant) {\n return resolved;\n }\n if (requiresRefresh && !requiresRefresh(resolved)) {\n isConstant = true;\n return resolved;\n }\n if (isExpired(resolved)) {\n await coalesceProvider();\n return resolved;\n }\n return resolved;\n };\n};\n\nconst booleanSelector = (obj, key, type) => {\n if (!(key in obj))\n return undefined;\n if (obj[key] === \"true\")\n return true;\n if (obj[key] === \"false\")\n return false;\n throw new Error(`Cannot load ${type} \"${key}\". Expected \"true\" or \"false\", got ${obj[key]}.`);\n};\n\nconst numberSelector = (obj, key, type) => {\n if (!(key in obj))\n return undefined;\n const numberValue = parseInt(obj[key], 10);\n if (Number.isNaN(numberValue)) {\n throw new TypeError(`Cannot load ${type} '${key}'. Expected number, got '${obj[key]}'.`);\n }\n return numberValue;\n};\n\nexports.SelectorType = void 0;\n(function (SelectorType) {\n SelectorType[\"ENV\"] = \"env\";\n SelectorType[\"CONFIG\"] = \"shared config entry\";\n})(exports.SelectorType || (exports.SelectorType = {}));\n\nconst homeDirCache = {};\nconst getHomeDirCacheKey = () => {\n if (process && process.geteuid) {\n return `${process.geteuid()}`;\n }\n return \"DEFAULT\";\n};\nconst getHomeDir = () => {\n const { HOME, USERPROFILE, HOMEPATH, HOMEDRIVE = `C:${node_path.sep}` } = process.env;\n if (HOME)\n return HOME;\n if (USERPROFILE)\n return USERPROFILE;\n if (HOMEPATH)\n return `${HOMEDRIVE}${HOMEPATH}`;\n const homeDirCacheKey = getHomeDirCacheKey();\n if (!homeDirCache[homeDirCacheKey])\n homeDirCache[homeDirCacheKey] = node_os.homedir();\n return homeDirCache[homeDirCacheKey];\n};\n\nconst ENV_PROFILE = \"AWS_PROFILE\";\nconst DEFAULT_PROFILE = \"default\";\nconst getProfileName = (init) => init.profile || process.env[ENV_PROFILE] || DEFAULT_PROFILE;\n\nconst getSSOTokenFilepath = (id) => {\n const hasher = node_crypto.createHash(\"sha1\");\n const cacheName = hasher.update(id).digest(\"hex\");\n return node_path.join(getHomeDir(), \".aws\", \"sso\", \"cache\", `${cacheName}.json`);\n};\n\nconst tokenIntercept = {};\nconst getSSOTokenFromFile = async (id) => {\n if (tokenIntercept[id]) {\n return tokenIntercept[id];\n }\n const ssoTokenFilepath = getSSOTokenFilepath(id);\n const ssoTokenText = await promises.readFile(ssoTokenFilepath, \"utf8\");\n return JSON.parse(ssoTokenText);\n};\n\nconst CONFIG_PREFIX_SEPARATOR = \".\";\n\nconst getConfigData = (data) => Object.entries(data)\n .filter(([key]) => {\n const indexOfSeparator = key.indexOf(CONFIG_PREFIX_SEPARATOR);\n if (indexOfSeparator === -1) {\n return false;\n }\n return Object.values(types.IniSectionType).includes(key.substring(0, indexOfSeparator));\n})\n .reduce((acc, [key, value]) => {\n const indexOfSeparator = key.indexOf(CONFIG_PREFIX_SEPARATOR);\n const updatedKey = key.substring(0, indexOfSeparator) === types.IniSectionType.PROFILE ? key.substring(indexOfSeparator + 1) : key;\n acc[updatedKey] = value;\n return acc;\n}, {\n ...(data.default && { default: data.default }),\n});\n\nconst ENV_CONFIG_PATH = \"AWS_CONFIG_FILE\";\nconst getConfigFilepath = () => process.env[ENV_CONFIG_PATH] || node_path.join(getHomeDir(), \".aws\", \"config\");\n\nconst ENV_CREDENTIALS_PATH = \"AWS_SHARED_CREDENTIALS_FILE\";\nconst getCredentialsFilepath = () => process.env[ENV_CREDENTIALS_PATH] || node_path.join(getHomeDir(), \".aws\", \"credentials\");\n\nconst prefixKeyRegex = /^([\\w-]+)\\s([\"'])?([\\w-@\\+\\.%:/]+)\\2$/;\nconst profileNameBlockList = [\"__proto__\", \"profile __proto__\"];\nconst parseIni = (iniData) => {\n const map = {};\n let currentSection;\n let currentSubSection;\n for (const iniLine of iniData.split(/\\r?\\n/)) {\n const trimmedLine = iniLine.split(/(^|\\s)[;#]/)[0].trim();\n const isSection = trimmedLine[0] === \"[\" && trimmedLine[trimmedLine.length - 1] === \"]\";\n if (isSection) {\n currentSection = undefined;\n currentSubSection = undefined;\n const sectionName = trimmedLine.substring(1, trimmedLine.length - 1);\n const matches = prefixKeyRegex.exec(sectionName);\n if (matches) {\n const [, prefix, , name] = matches;\n if (Object.values(types.IniSectionType).includes(prefix)) {\n currentSection = [prefix, name].join(CONFIG_PREFIX_SEPARATOR);\n }\n }\n else {\n currentSection = sectionName;\n }\n if (profileNameBlockList.includes(sectionName)) {\n throw new Error(`Found invalid profile name \"${sectionName}\"`);\n }\n }\n else if (currentSection) {\n const indexOfEqualsSign = trimmedLine.indexOf(\"=\");\n if (![0, -1].includes(indexOfEqualsSign)) {\n const [name, value] = [\n trimmedLine.substring(0, indexOfEqualsSign).trim(),\n trimmedLine.substring(indexOfEqualsSign + 1).trim(),\n ];\n if (value === \"\") {\n currentSubSection = name;\n }\n else {\n if (currentSubSection && iniLine.trimStart() === iniLine) {\n currentSubSection = undefined;\n }\n map[currentSection] = map[currentSection] || {};\n const key = currentSubSection ? [currentSubSection, name].join(CONFIG_PREFIX_SEPARATOR) : name;\n map[currentSection][key] = value;\n }\n }\n }\n }\n return map;\n};\n\nconst filePromises = {};\nconst fileIntercept = {};\nconst readFile = (path, options) => {\n if (fileIntercept[path] !== undefined) {\n return fileIntercept[path];\n }\n if (!filePromises[path] || options?.ignoreCache) {\n filePromises[path] = promises.readFile(path, \"utf8\");\n }\n return filePromises[path];\n};\n\nconst swallowError$1 = () => ({});\nconst loadSharedConfigFiles = async (init = {}) => {\n const { filepath = getCredentialsFilepath(), configFilepath = getConfigFilepath() } = init;\n const homeDir = getHomeDir();\n const relativeHomeDirPrefix = \"~/\";\n let resolvedFilepath = filepath;\n if (filepath.startsWith(relativeHomeDirPrefix)) {\n resolvedFilepath = node_path.join(homeDir, filepath.slice(2));\n }\n let resolvedConfigFilepath = configFilepath;\n if (configFilepath.startsWith(relativeHomeDirPrefix)) {\n resolvedConfigFilepath = node_path.join(homeDir, configFilepath.slice(2));\n }\n const parsedFiles = await Promise.all([\n readFile(resolvedConfigFilepath, {\n ignoreCache: init.ignoreCache,\n })\n .then(parseIni)\n .then(getConfigData)\n .catch(swallowError$1),\n readFile(resolvedFilepath, {\n ignoreCache: init.ignoreCache,\n })\n .then(parseIni)\n .catch(swallowError$1),\n ]);\n return {\n configFile: parsedFiles[0],\n credentialsFile: parsedFiles[1],\n };\n};\n\nconst getSsoSessionData = (data) => Object.entries(data)\n .filter(([key]) => key.startsWith(types.IniSectionType.SSO_SESSION + CONFIG_PREFIX_SEPARATOR))\n .reduce((acc, [key, value]) => ({ ...acc, [key.substring(key.indexOf(CONFIG_PREFIX_SEPARATOR) + 1)]: value }), {});\n\nconst swallowError = () => ({});\nconst loadSsoSessionData = async (init = {}) => readFile(init.configFilepath ?? getConfigFilepath())\n .then(parseIni)\n .then(getSsoSessionData)\n .catch(swallowError);\n\nconst mergeConfigFiles = (...files) => {\n const merged = {};\n for (const file of files) {\n for (const [key, values] of Object.entries(file)) {\n if (merged[key] !== undefined) {\n Object.assign(merged[key], values);\n }\n else {\n merged[key] = values;\n }\n }\n }\n return merged;\n};\n\nconst parseKnownFiles = async (init) => {\n const parsedFiles = await loadSharedConfigFiles(init);\n return mergeConfigFiles(parsedFiles.configFile, parsedFiles.credentialsFile);\n};\n\nconst externalDataInterceptor = {\n getFileRecord() {\n return fileIntercept;\n },\n interceptFile(path, contents) {\n fileIntercept[path] = Promise.resolve(contents);\n },\n getTokenRecord() {\n return tokenIntercept;\n },\n interceptToken(id, contents) {\n tokenIntercept[id] = contents;\n },\n};\n\nfunction getSelectorName(functionString) {\n try {\n const constants = new Set(Array.from(functionString.match(/([A-Z_]){3,}/g) ?? []));\n constants.delete(\"CONFIG\");\n constants.delete(\"CONFIG_PREFIX_SEPARATOR\");\n constants.delete(\"ENV\");\n return [...constants].join(\", \");\n }\n catch (e) {\n return functionString;\n }\n}\n\nconst fromEnv = (envVarSelector, options) => async () => {\n try {\n const config = envVarSelector(process.env, options);\n if (config === undefined) {\n throw new Error();\n }\n return config;\n }\n catch (e) {\n throw new CredentialsProviderError(e.message || `Not found in ENV: ${getSelectorName(envVarSelector.toString())}`, { logger: options?.logger });\n }\n};\n\nconst fromSharedConfigFiles = (configSelector, { preferredFile = \"config\", ...init } = {}) => async () => {\n const profile = getProfileName(init);\n const { configFile, credentialsFile } = await loadSharedConfigFiles(init);\n const profileFromCredentials = credentialsFile[profile] || {};\n const profileFromConfig = configFile[profile] || {};\n const mergedProfile = preferredFile === \"config\"\n ? { ...profileFromCredentials, ...profileFromConfig }\n : { ...profileFromConfig, ...profileFromCredentials };\n try {\n const cfgFile = preferredFile === \"config\" ? configFile : credentialsFile;\n const configValue = configSelector(mergedProfile, cfgFile);\n if (configValue === undefined) {\n throw new Error();\n }\n return configValue;\n }\n catch (e) {\n throw new CredentialsProviderError(e.message || `Not found in config files w/ profile [${profile}]: ${getSelectorName(configSelector.toString())}`, { logger: init.logger });\n }\n};\n\nconst isFunction = (func) => typeof func === \"function\";\nconst fromStatic = (defaultValue) => isFunction(defaultValue) ? async () => await defaultValue() : fromValue(defaultValue);\n\nconst loadConfig = ({ environmentVariableSelector, configFileSelector, default: defaultValue }, configuration = {}) => {\n const { signingName, logger } = configuration;\n const envOptions = { signingName, logger };\n return memoize(chain(fromEnv(environmentVariableSelector, envOptions), fromSharedConfigFiles(configFileSelector, configuration), fromStatic(defaultValue)));\n};\n\nconst ENV_USE_DUALSTACK_ENDPOINT = \"AWS_USE_DUALSTACK_ENDPOINT\";\nconst CONFIG_USE_DUALSTACK_ENDPOINT = \"use_dualstack_endpoint\";\nconst DEFAULT_USE_DUALSTACK_ENDPOINT = false;\nconst NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => booleanSelector(env, ENV_USE_DUALSTACK_ENDPOINT, exports.SelectorType.ENV),\n configFileSelector: (profile) => booleanSelector(profile, CONFIG_USE_DUALSTACK_ENDPOINT, exports.SelectorType.CONFIG),\n default: false,\n};\nconst nodeDualstackConfigSelectors = {\n environmentVariableSelector: (env) => booleanSelector(env, ENV_USE_DUALSTACK_ENDPOINT, exports.SelectorType.ENV),\n configFileSelector: (profile) => booleanSelector(profile, CONFIG_USE_DUALSTACK_ENDPOINT, exports.SelectorType.CONFIG),\n default: undefined,\n};\n\nconst ENV_USE_FIPS_ENDPOINT = \"AWS_USE_FIPS_ENDPOINT\";\nconst CONFIG_USE_FIPS_ENDPOINT = \"use_fips_endpoint\";\nconst DEFAULT_USE_FIPS_ENDPOINT = false;\nconst NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => booleanSelector(env, ENV_USE_FIPS_ENDPOINT, exports.SelectorType.ENV),\n configFileSelector: (profile) => booleanSelector(profile, CONFIG_USE_FIPS_ENDPOINT, exports.SelectorType.CONFIG),\n default: false,\n};\nconst nodeFipsConfigSelectors = {\n environmentVariableSelector: (env) => booleanSelector(env, ENV_USE_FIPS_ENDPOINT, exports.SelectorType.ENV),\n configFileSelector: (profile) => booleanSelector(profile, CONFIG_USE_FIPS_ENDPOINT, exports.SelectorType.CONFIG),\n default: undefined,\n};\n\nconst resolveCustomEndpointsConfig = (input) => {\n const { tls, endpoint, urlParser, useDualstackEndpoint } = input;\n return Object.assign(input, {\n tls: tls ?? true,\n endpoint: client.normalizeProvider(typeof endpoint === \"string\" ? urlParser(endpoint) : endpoint),\n isCustomEndpoint: true,\n useDualstackEndpoint: client.normalizeProvider(useDualstackEndpoint ?? false),\n });\n};\n\nconst getEndpointFromRegion = async (input) => {\n const { tls = true } = input;\n const region = await input.region();\n const dnsHostRegex = new RegExp(/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/);\n if (!dnsHostRegex.test(region)) {\n throw new Error(\"Invalid region in client config\");\n }\n const useDualstackEndpoint = await input.useDualstackEndpoint();\n const useFipsEndpoint = await input.useFipsEndpoint();\n const { hostname } = (await input.regionInfoProvider(region, { useDualstackEndpoint, useFipsEndpoint })) ?? {};\n if (!hostname) {\n throw new Error(\"Cannot resolve hostname from client config\");\n }\n return input.urlParser(`${tls ? \"https:\" : \"http:\"}//${hostname}`);\n};\n\nconst resolveEndpointsConfig = (input) => {\n const useDualstackEndpoint = client.normalizeProvider(input.useDualstackEndpoint ?? false);\n const { endpoint, useFipsEndpoint, urlParser, tls } = input;\n return Object.assign(input, {\n tls: tls ?? true,\n endpoint: endpoint\n ? client.normalizeProvider(typeof endpoint === \"string\" ? urlParser(endpoint) : endpoint)\n : () => getEndpointFromRegion({ ...input, useDualstackEndpoint, useFipsEndpoint }),\n isCustomEndpoint: !!endpoint,\n useDualstackEndpoint,\n });\n};\n\nconst REGION_ENV_NAME = \"AWS_REGION\";\nconst REGION_INI_NAME = \"region\";\nconst NODE_REGION_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => env[REGION_ENV_NAME],\n configFileSelector: (profile) => profile[REGION_INI_NAME],\n default: () => {\n throw new Error(\"Region is missing\");\n },\n};\nconst NODE_REGION_CONFIG_FILE_OPTIONS = {\n preferredFile: \"credentials\",\n};\n\nconst validRegions = new Set();\nconst checkRegion = (region, check = transport.isValidHostLabel) => {\n if (!validRegions.has(region) && !check(region)) {\n if (region === \"*\") {\n console.warn(`@smithy/config-resolver WARN - Please use the caller region instead of \"*\". See \"sigv4a\" in https://github.com/aws/aws-sdk-js-v3/blob/main/supplemental-docs/CLIENTS.md.`);\n }\n else {\n throw new Error(`Region not accepted: region=\"${region}\" is not a valid hostname component.`);\n }\n }\n else {\n validRegions.add(region);\n }\n};\n\nconst isFipsRegion = (region) => typeof region === \"string\" && (region.startsWith(\"fips-\") || region.endsWith(\"-fips\"));\n\nconst getRealRegion = (region) => isFipsRegion(region)\n ? [\"fips-aws-global\", \"aws-fips\"].includes(region)\n ? \"us-east-1\"\n : region.replace(/fips-(dkr-|prod-)?|-fips/, \"\")\n : region;\n\nconst resolveRegionConfig = (input) => {\n const { region, useFipsEndpoint } = input;\n if (!region) {\n throw new Error(\"Region is missing\");\n }\n return Object.assign(input, {\n region: async () => {\n const providedRegion = typeof region === \"function\" ? await region() : region;\n const realRegion = getRealRegion(providedRegion);\n checkRegion(realRegion);\n return realRegion;\n },\n useFipsEndpoint: async () => {\n const providedRegion = typeof region === \"string\" ? region : await region();\n if (isFipsRegion(providedRegion)) {\n return true;\n }\n return typeof useFipsEndpoint !== \"function\" ? Promise.resolve(!!useFipsEndpoint) : useFipsEndpoint();\n },\n });\n};\n\nconst getHostnameFromVariants = (variants = [], { useFipsEndpoint, useDualstackEndpoint }) => variants.find(({ tags }) => useFipsEndpoint === tags.includes(\"fips\") && useDualstackEndpoint === tags.includes(\"dualstack\"))?.hostname;\n\nconst getResolvedHostname = (resolvedRegion, { regionHostname, partitionHostname }) => regionHostname\n ? regionHostname\n : partitionHostname\n ? partitionHostname.replace(\"{region}\", resolvedRegion)\n : undefined;\n\nconst getResolvedPartition = (region, { partitionHash }) => Object.keys(partitionHash || {}).find((key) => partitionHash[key].regions.includes(region)) ?? \"aws\";\n\nconst getResolvedSigningRegion = (hostname, { signingRegion, regionRegex, useFipsEndpoint }) => {\n if (signingRegion) {\n return signingRegion;\n }\n else if (useFipsEndpoint) {\n const regionRegexJs = regionRegex.replace(\"\\\\\\\\\", \"\\\\\").replace(/^\\^/g, \"\\\\.\").replace(/\\$$/g, \"\\\\.\");\n const regionRegexmatchArray = hostname.match(regionRegexJs);\n if (regionRegexmatchArray) {\n return regionRegexmatchArray[0].slice(1, -1);\n }\n }\n};\n\nconst getRegionInfo = (region, { useFipsEndpoint = false, useDualstackEndpoint = false, signingService, regionHash, partitionHash, }) => {\n const partition = getResolvedPartition(region, { partitionHash });\n const resolvedRegion = region in regionHash ? region : partitionHash[partition]?.endpoint ?? region;\n const hostnameOptions = { useFipsEndpoint, useDualstackEndpoint };\n const regionHostname = getHostnameFromVariants(regionHash[resolvedRegion]?.variants, hostnameOptions);\n const partitionHostname = getHostnameFromVariants(partitionHash[partition]?.variants, hostnameOptions);\n const hostname = getResolvedHostname(resolvedRegion, { regionHostname, partitionHostname });\n if (hostname === undefined) {\n throw new Error(`Endpoint resolution failed for: ${{ resolvedRegion, useFipsEndpoint, useDualstackEndpoint }}`);\n }\n const signingRegion = getResolvedSigningRegion(hostname, {\n signingRegion: regionHash[resolvedRegion]?.signingRegion,\n regionRegex: partitionHash[partition].regionRegex,\n useFipsEndpoint,\n });\n return {\n partition,\n signingService,\n hostname,\n ...(signingRegion && { signingRegion }),\n ...(regionHash[resolvedRegion]?.signingService && {\n signingService: regionHash[resolvedRegion].signingService,\n }),\n };\n};\n\nconst AWS_EXECUTION_ENV = \"AWS_EXECUTION_ENV\";\nconst AWS_REGION_ENV = \"AWS_REGION\";\nconst AWS_DEFAULT_REGION_ENV = \"AWS_DEFAULT_REGION\";\nconst ENV_IMDS_DISABLED = \"AWS_EC2_METADATA_DISABLED\";\nconst DEFAULTS_MODE_OPTIONS = [\"in-region\", \"cross-region\", \"mobile\", \"standard\", \"legacy\"];\nconst IMDS_REGION_PATH = \"/latest/meta-data/placement/region\";\n\nconst AWS_DEFAULTS_MODE_ENV = \"AWS_DEFAULTS_MODE\";\nconst AWS_DEFAULTS_MODE_CONFIG = \"defaults_mode\";\nconst NODE_DEFAULTS_MODE_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => {\n return env[AWS_DEFAULTS_MODE_ENV];\n },\n configFileSelector: (profile) => {\n return profile[AWS_DEFAULTS_MODE_CONFIG];\n },\n default: \"legacy\",\n};\n\nconst resolveDefaultsModeConfig = ({ region = loadConfig(NODE_REGION_CONFIG_OPTIONS), defaultsMode = loadConfig(NODE_DEFAULTS_MODE_CONFIG_OPTIONS), } = {}) => memoize(async () => {\n const mode = typeof defaultsMode === \"function\" ? await defaultsMode() : defaultsMode;\n switch (mode?.toLowerCase()) {\n case \"auto\":\n return resolveNodeDefaultsModeAuto(region);\n case \"in-region\":\n case \"cross-region\":\n case \"mobile\":\n case \"standard\":\n case \"legacy\":\n return Promise.resolve(mode?.toLocaleLowerCase());\n case undefined:\n return Promise.resolve(\"legacy\");\n default:\n throw new Error(`Invalid parameter for \"defaultsMode\", expect ${DEFAULTS_MODE_OPTIONS.join(\", \")}, got ${mode}`);\n }\n});\nconst resolveNodeDefaultsModeAuto = async (clientRegion) => {\n if (clientRegion) {\n const resolvedRegion = typeof clientRegion === \"function\" ? await clientRegion() : clientRegion;\n const inferredRegion = await inferPhysicalRegion();\n if (!inferredRegion) {\n return \"standard\";\n }\n if (resolvedRegion === inferredRegion) {\n return \"in-region\";\n }\n else {\n return \"cross-region\";\n }\n }\n return \"standard\";\n};\nconst inferPhysicalRegion = async () => {\n if (process.env[AWS_EXECUTION_ENV] && (process.env[AWS_REGION_ENV] || process.env[AWS_DEFAULT_REGION_ENV])) {\n return process.env[AWS_REGION_ENV] ?? process.env[AWS_DEFAULT_REGION_ENV];\n }\n if (!process.env[ENV_IMDS_DISABLED]) {\n try {\n const endpoint = await getImdsEndpoint();\n return (await imdsHttpGet({ hostname: endpoint.hostname, path: IMDS_REGION_PATH })).toString();\n }\n catch (e) {\n }\n }\n};\nconst getImdsEndpoint = async () => {\n const envEndpoint = process.env.AWS_EC2_METADATA_SERVICE_ENDPOINT;\n if (envEndpoint) {\n const url = new URL(envEndpoint);\n return { hostname: url.hostname, path: url.pathname };\n }\n const envMode = process.env.AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE;\n if (envMode === \"IPv6\") {\n return { hostname: \"fd00:ec2::254\", path: \"/\" };\n }\n return { hostname: \"169.254.169.254\", path: \"/\" };\n};\nconst imdsHttpGet = async ({ hostname, path }) => {\n const { request } = await import('node:http');\n return new Promise((resolve, reject) => {\n const req = request({\n method: \"GET\",\n hostname: hostname.replace(/^\\[(.+)]$/, \"$1\"),\n path,\n timeout: 1000,\n signal: AbortSignal.timeout(1000),\n });\n req.on(\"error\", (err) => {\n reject(err);\n req.destroy();\n });\n req.on(\"timeout\", () => {\n reject(new Error(\"TimeoutError from instance metadata service\"));\n req.destroy();\n });\n req.on(\"response\", (res) => {\n const { statusCode = 400 } = res;\n if (statusCode < 200 || 300 <= statusCode) {\n reject(Object.assign(new Error(\"Error response received from instance metadata service\"), { statusCode }));\n req.destroy();\n return;\n }\n const chunks = [];\n res.on(\"data\", (chunk) => chunks.push(chunk));\n res.on(\"end\", () => {\n resolve(Buffer.concat(chunks));\n req.destroy();\n });\n });\n req.end();\n });\n};\n\nexports.CONFIG_PREFIX_SEPARATOR = CONFIG_PREFIX_SEPARATOR;\nexports.CONFIG_USE_DUALSTACK_ENDPOINT = CONFIG_USE_DUALSTACK_ENDPOINT;\nexports.CONFIG_USE_FIPS_ENDPOINT = CONFIG_USE_FIPS_ENDPOINT;\nexports.CredentialsProviderError = CredentialsProviderError;\nexports.DEFAULT_PROFILE = DEFAULT_PROFILE;\nexports.DEFAULT_USE_DUALSTACK_ENDPOINT = DEFAULT_USE_DUALSTACK_ENDPOINT;\nexports.DEFAULT_USE_FIPS_ENDPOINT = DEFAULT_USE_FIPS_ENDPOINT;\nexports.ENV_PROFILE = ENV_PROFILE;\nexports.ENV_USE_DUALSTACK_ENDPOINT = ENV_USE_DUALSTACK_ENDPOINT;\nexports.ENV_USE_FIPS_ENDPOINT = ENV_USE_FIPS_ENDPOINT;\nexports.NODE_REGION_CONFIG_FILE_OPTIONS = NODE_REGION_CONFIG_FILE_OPTIONS;\nexports.NODE_REGION_CONFIG_OPTIONS = NODE_REGION_CONFIG_OPTIONS;\nexports.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS = NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS;\nexports.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS = NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS;\nexports.ProviderError = ProviderError;\nexports.REGION_ENV_NAME = REGION_ENV_NAME;\nexports.REGION_INI_NAME = REGION_INI_NAME;\nexports.TokenProviderError = TokenProviderError;\nexports.booleanSelector = booleanSelector;\nexports.chain = chain;\nexports.externalDataInterceptor = externalDataInterceptor;\nexports.fromStatic = fromStatic;\nexports.fromValue = fromValue;\nexports.getHomeDir = getHomeDir;\nexports.getProfileName = getProfileName;\nexports.getRegionInfo = getRegionInfo;\nexports.getSSOTokenFilepath = getSSOTokenFilepath;\nexports.getSSOTokenFromFile = getSSOTokenFromFile;\nexports.loadConfig = loadConfig;\nexports.loadSharedConfigFiles = loadSharedConfigFiles;\nexports.loadSsoSessionData = loadSsoSessionData;\nexports.memoize = memoize;\nexports.nodeDualstackConfigSelectors = nodeDualstackConfigSelectors;\nexports.nodeFipsConfigSelectors = nodeFipsConfigSelectors;\nexports.numberSelector = numberSelector;\nexports.parseKnownFiles = parseKnownFiles;\nexports.readFile = readFile;\nexports.resolveCustomEndpointsConfig = resolveCustomEndpointsConfig;\nexports.resolveDefaultsModeConfig = resolveDefaultsModeConfig;\nexports.resolveEndpointsConfig = resolveEndpointsConfig;\nexports.resolveRegionConfig = resolveRegionConfig;\n",
10
+ "'use strict';\n\nvar config = require('@smithy/core/config');\nvar transport = require('@smithy/core/transport');\nvar client = require('@smithy/core/client');\nvar types = require('@smithy/types');\n\nconst ENV_ENDPOINT_URL = \"AWS_ENDPOINT_URL\";\nconst CONFIG_ENDPOINT_URL = \"endpoint_url\";\nconst getEndpointUrlConfig = (serviceId) => ({\n environmentVariableSelector: (env) => {\n const serviceSuffixParts = serviceId.split(\" \").map((w) => w.toUpperCase());\n const serviceEndpointUrl = env[[ENV_ENDPOINT_URL, ...serviceSuffixParts].join(\"_\")];\n if (serviceEndpointUrl)\n return serviceEndpointUrl;\n const endpointUrl = env[ENV_ENDPOINT_URL];\n if (endpointUrl)\n return endpointUrl;\n return undefined;\n },\n configFileSelector: (profile, config$1) => {\n if (config$1 && profile.services) {\n const servicesSection = config$1[[\"services\", profile.services].join(config.CONFIG_PREFIX_SEPARATOR)];\n if (servicesSection) {\n const servicePrefixParts = serviceId.split(\" \").map((w) => w.toLowerCase());\n const endpointUrl = servicesSection[[servicePrefixParts.join(\"_\"), CONFIG_ENDPOINT_URL].join(config.CONFIG_PREFIX_SEPARATOR)];\n if (endpointUrl)\n return endpointUrl;\n }\n }\n const endpointUrl = profile[CONFIG_ENDPOINT_URL];\n if (endpointUrl)\n return endpointUrl;\n return undefined;\n },\n default: undefined,\n});\n\nconst getEndpointFromConfig = async (serviceId) => config.loadConfig(getEndpointUrlConfig(serviceId ?? \"\"))();\n\nconst resolveParamsForS3 = async (endpointParams) => {\n const bucket = endpointParams?.Bucket || \"\";\n if (typeof endpointParams.Bucket === \"string\") {\n endpointParams.Bucket = bucket.replace(/#/g, encodeURIComponent(\"#\")).replace(/\\?/g, encodeURIComponent(\"?\"));\n }\n if (isArnBucketName(bucket)) {\n if (endpointParams.ForcePathStyle === true) {\n throw new Error(\"Path-style addressing cannot be used with ARN buckets\");\n }\n }\n else if (!isDnsCompatibleBucketName(bucket) ||\n (bucket.indexOf(\".\") !== -1 && !String(endpointParams.Endpoint).startsWith(\"http:\")) ||\n bucket.toLowerCase() !== bucket ||\n bucket.length < 3) {\n endpointParams.ForcePathStyle = true;\n }\n if (endpointParams.DisableMultiRegionAccessPoints) {\n endpointParams.disableMultiRegionAccessPoints = true;\n endpointParams.DisableMRAP = true;\n }\n return endpointParams;\n};\nconst DOMAIN_PATTERN = /^[a-z0-9][a-z0-9\\.\\-]{1,61}[a-z0-9]$/;\nconst IP_ADDRESS_PATTERN = /(\\d+\\.){3}\\d+/;\nconst DOTS_PATTERN = /\\.\\./;\nconst isDnsCompatibleBucketName = (bucketName) => DOMAIN_PATTERN.test(bucketName) && !IP_ADDRESS_PATTERN.test(bucketName) && !DOTS_PATTERN.test(bucketName);\nconst isArnBucketName = (bucketName) => {\n const [arn, partition, service, , , bucket] = bucketName.split(\":\");\n const isArn = arn === \"arn\" && bucketName.split(\":\").length >= 6;\n const isValidArn = Boolean(isArn && partition && service && bucket);\n if (isArn && !isValidArn) {\n throw new Error(`Invalid ARN: ${bucketName} was an invalid ARN.`);\n }\n return isValidArn;\n};\n\nconst createConfigValueProvider = (configKey, canonicalEndpointParamKey, config, isClientContextParam = false) => {\n const configProvider = async () => {\n let configValue;\n if (isClientContextParam) {\n const clientContextParams = config.clientContextParams;\n const nestedValue = clientContextParams?.[configKey];\n configValue = nestedValue ?? config[configKey] ?? config[canonicalEndpointParamKey];\n }\n else {\n configValue = config[configKey] ?? config[canonicalEndpointParamKey];\n }\n if (typeof configValue === \"function\") {\n return configValue();\n }\n return configValue;\n };\n if (configKey === \"credentialScope\" || canonicalEndpointParamKey === \"CredentialScope\") {\n return async () => {\n const credentials = typeof config.credentials === \"function\" ? await config.credentials() : config.credentials;\n const configValue = credentials?.credentialScope ?? credentials?.CredentialScope;\n return configValue;\n };\n }\n if (configKey === \"accountId\" || canonicalEndpointParamKey === \"AccountId\") {\n return async () => {\n const credentials = typeof config.credentials === \"function\" ? await config.credentials() : config.credentials;\n const configValue = credentials?.accountId ?? credentials?.AccountId;\n return configValue;\n };\n }\n if (configKey === \"endpoint\" || canonicalEndpointParamKey === \"endpoint\") {\n return async () => {\n if (config.isCustomEndpoint === false) {\n return undefined;\n }\n const endpoint = await configProvider();\n if (endpoint && typeof endpoint === \"object\") {\n if (\"url\" in endpoint) {\n return endpoint.url.href;\n }\n if (\"hostname\" in endpoint) {\n const { protocol, hostname, port, path } = endpoint;\n return `${protocol}//${hostname}${port ? \":\" + port : \"\"}${path}`;\n }\n }\n return endpoint;\n };\n }\n return configProvider;\n};\n\nfunction bindGetEndpointFromInstructions(getEndpointFromConfig) {\n return async (commandInput, instructionsSupplier, clientConfig, context) => {\n if (!clientConfig.isCustomEndpoint) {\n let endpointFromConfig;\n if (clientConfig.serviceConfiguredEndpoint) {\n endpointFromConfig = await clientConfig.serviceConfiguredEndpoint();\n }\n else {\n endpointFromConfig = await getEndpointFromConfig(clientConfig.serviceId);\n }\n if (endpointFromConfig) {\n clientConfig.endpoint = () => Promise.resolve(transport.toEndpointV1(endpointFromConfig));\n clientConfig.isCustomEndpoint = true;\n }\n }\n const endpointParams = await resolveParams(commandInput, instructionsSupplier, clientConfig);\n if (typeof clientConfig.endpointProvider !== \"function\") {\n throw new Error(\"config.endpointProvider is not set.\");\n }\n const endpoint = clientConfig.endpointProvider(endpointParams, context);\n if (clientConfig.isCustomEndpoint && clientConfig.endpoint) {\n const customEndpoint = await clientConfig.endpoint();\n if (customEndpoint?.headers) {\n endpoint.headers ??= {};\n for (const [name, value] of Object.entries(customEndpoint.headers)) {\n endpoint.headers[name] = Array.isArray(value) ? value : [value];\n }\n }\n }\n return endpoint;\n };\n}\nconst resolveParams = async (commandInput, instructionsSupplier, clientConfig) => {\n const endpointParams = {};\n const instructions = instructionsSupplier?.getEndpointParameterInstructions?.() || {};\n for (const [name, instruction] of Object.entries(instructions)) {\n switch (instruction.type) {\n case \"staticContextParams\":\n endpointParams[name] = instruction.value;\n break;\n case \"contextParams\":\n endpointParams[name] = commandInput[instruction.name];\n break;\n case \"clientContextParams\":\n case \"builtInParams\":\n endpointParams[name] = await createConfigValueProvider(instruction.name, name, clientConfig, instruction.type !== \"builtInParams\")();\n break;\n case \"operationContextParams\":\n endpointParams[name] = instruction.get(commandInput);\n break;\n default:\n throw new Error(\"Unrecognized endpoint parameter instruction: \" + JSON.stringify(instruction));\n }\n }\n if (Object.keys(instructions).length === 0) {\n Object.assign(endpointParams, clientConfig);\n }\n if (String(clientConfig.serviceId).toLowerCase() === \"s3\") {\n await resolveParamsForS3(endpointParams);\n }\n return endpointParams;\n};\n\nfunction setFeature(context, feature, value) {\n if (!context.__smithy_context) {\n context.__smithy_context = { features: {} };\n }\n else if (!context.__smithy_context.features) {\n context.__smithy_context.features = {};\n }\n context.__smithy_context.features[feature] = value;\n}\nfunction bindEndpointMiddleware(getEndpointFromConfig) {\n const getEndpointFromInstructions = bindGetEndpointFromInstructions(getEndpointFromConfig);\n return ({ config, instructions, }) => {\n return (next, context) => async (args) => {\n if (config.isCustomEndpoint) {\n setFeature(context, \"ENDPOINT_OVERRIDE\", \"N\");\n }\n const endpoint = await getEndpointFromInstructions(args.input, {\n getEndpointParameterInstructions() {\n return instructions;\n },\n }, { ...config }, context);\n context.endpointV2 = endpoint;\n context.authSchemes = endpoint.properties?.authSchemes;\n const authScheme = context.authSchemes?.[0];\n if (authScheme) {\n context[\"signing_region\"] = authScheme.signingRegion;\n context[\"signing_service\"] = authScheme.signingName;\n const smithyContext = client.getSmithyContext(context);\n const httpAuthOption = smithyContext?.selectedHttpAuthScheme?.httpAuthOption;\n if (httpAuthOption) {\n httpAuthOption.signingProperties = Object.assign(httpAuthOption.signingProperties || {}, {\n signing_region: authScheme.signingRegion,\n signingRegion: authScheme.signingRegion,\n signing_service: authScheme.signingName,\n signingName: authScheme.signingName,\n signingRegionSet: authScheme.signingRegionSet,\n }, authScheme.properties);\n }\n }\n return next({\n ...args,\n });\n };\n };\n}\n\nconst serializerMiddlewareOption = {\n name: \"serializerMiddleware\"};\nconst endpointMiddlewareOptions = {\n step: \"serialize\",\n tags: [\"ENDPOINT_PARAMETERS\", \"ENDPOINT_V2\", \"ENDPOINT\"],\n name: \"endpointV2Middleware\",\n override: true,\n relation: \"before\",\n toMiddleware: serializerMiddlewareOption.name,\n};\nfunction bindGetEndpointPlugin(getEndpointFromConfig) {\n const endpointMiddleware = bindEndpointMiddleware(getEndpointFromConfig);\n return (config, instructions) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo(endpointMiddleware({\n config,\n instructions,\n }), endpointMiddlewareOptions);\n },\n });\n}\n\nfunction bindResolveEndpointConfig(getEndpointFromConfig) {\n return (input) => {\n const tls = input.tls ?? true;\n const { endpoint, useDualstackEndpoint, useFipsEndpoint } = input;\n const customEndpointProvider = endpoint != null ? async () => transport.toEndpointV1(await transport.normalizeProvider(endpoint)()) : undefined;\n const isCustomEndpoint = !!endpoint;\n const resolvedConfig = Object.assign(input, {\n endpoint: customEndpointProvider,\n tls,\n isCustomEndpoint,\n useDualstackEndpoint: transport.normalizeProvider(useDualstackEndpoint ?? false),\n useFipsEndpoint: transport.normalizeProvider(useFipsEndpoint ?? false),\n });\n let configuredEndpointPromise = undefined;\n resolvedConfig.serviceConfiguredEndpoint = async () => {\n if (input.serviceId && !configuredEndpointPromise) {\n configuredEndpointPromise = getEndpointFromConfig(input.serviceId);\n }\n return configuredEndpointPromise;\n };\n return resolvedConfig;\n };\n}\n\nclass BinaryDecisionDiagram {\n nodes;\n root;\n conditions;\n results;\n constructor(bdd, root, conditions, results) {\n this.nodes = bdd;\n this.root = root;\n this.conditions = conditions;\n this.results = results;\n }\n static from(bdd, root, conditions, results) {\n return new BinaryDecisionDiagram(bdd, root, conditions, results);\n }\n}\n\nclass EndpointCache {\n capacity;\n data = new Map();\n parameters = [];\n constructor({ size, params }) {\n this.capacity = size ?? 50;\n if (params) {\n this.parameters = params;\n }\n }\n get(endpointParams, resolver) {\n const key = this.hash(endpointParams);\n if (key === false) {\n return resolver();\n }\n if (!this.data.has(key)) {\n if (this.data.size > this.capacity + 10) {\n const keys = this.data.keys();\n let i = 0;\n while (true) {\n const { value, done } = keys.next();\n this.data.delete(value);\n if (done || ++i > 10) {\n break;\n }\n }\n }\n this.data.set(key, resolver());\n }\n return this.data.get(key);\n }\n size() {\n return this.data.size;\n }\n hash(endpointParams) {\n let buffer = \"\";\n const { parameters } = this;\n if (parameters.length === 0) {\n return false;\n }\n for (const param of parameters) {\n const val = String(endpointParams[param] ?? \"\");\n if (val.includes(\"|;\")) {\n return false;\n }\n buffer += val + \"|;\";\n }\n return buffer;\n }\n}\n\nclass EndpointError extends Error {\n constructor(message) {\n super(message);\n this.name = \"EndpointError\";\n }\n}\n\nconst debugId = \"endpoints\";\n\nfunction toDebugString(input) {\n if (typeof input !== \"object\" || input == null) {\n return input;\n }\n if (\"ref\" in input) {\n return `$${toDebugString(input.ref)}`;\n }\n if (\"fn\" in input) {\n return `${input.fn}(${(input.argv || []).map(toDebugString).join(\", \")})`;\n }\n return JSON.stringify(input, null, 2);\n}\n\nconst customEndpointFunctions = {};\n\nconst booleanEquals = (value1, value2) => value1 === value2;\n\nfunction coalesce(...args) {\n for (const arg of args) {\n if (arg != null) {\n return arg;\n }\n }\n return undefined;\n}\n\nconst getAttrPathList = (path) => {\n const parts = path.split(\".\");\n const pathList = [];\n for (const part of parts) {\n const squareBracketIndex = part.indexOf(\"[\");\n if (squareBracketIndex !== -1) {\n if (part.indexOf(\"]\") !== part.length - 1) {\n throw new EndpointError(`Path: '${path}' does not end with ']'`);\n }\n const arrayIndex = part.slice(squareBracketIndex + 1, -1);\n if (Number.isNaN(parseInt(arrayIndex))) {\n throw new EndpointError(`Invalid array index: '${arrayIndex}' in path: '${path}'`);\n }\n if (squareBracketIndex !== 0) {\n pathList.push(part.slice(0, squareBracketIndex));\n }\n pathList.push(arrayIndex);\n }\n else {\n pathList.push(part);\n }\n }\n return pathList;\n};\n\nconst getAttr = (value, path) => getAttrPathList(path).reduce((acc, index) => {\n if (typeof acc !== \"object\") {\n throw new EndpointError(`Index '${index}' in '${path}' not found in '${JSON.stringify(value)}'`);\n }\n else if (Array.isArray(acc)) {\n const i = parseInt(index);\n return acc[i < 0 ? acc.length + i : i];\n }\n return acc[index];\n}, value);\n\nconst isSet = (value) => value != null;\n\nfunction ite(condition, trueValue, falseValue) {\n return condition ? trueValue : falseValue;\n}\n\nconst not = (value) => !value;\n\nconst IP_V4_REGEX = new RegExp(`^(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}$`);\nconst isIpAddress = (value) => IP_V4_REGEX.test(value) || (value.startsWith(\"[\") && value.endsWith(\"]\"));\n\nconst DEFAULT_PORTS = {\n [types.EndpointURLScheme.HTTP]: 80,\n [types.EndpointURLScheme.HTTPS]: 443,\n};\nconst parseURL = (value) => {\n const whatwgURL = (() => {\n try {\n if (value instanceof URL) {\n return value;\n }\n if (typeof value === \"object\" && \"hostname\" in value) {\n const { hostname, port, protocol = \"\", path = \"\", query = {} } = value;\n const url = new URL(`${protocol}//${hostname}${port ? `:${port}` : \"\"}${path}`);\n url.search = Object.entries(query)\n .map(([k, v]) => `${k}=${v}`)\n .join(\"&\");\n return url;\n }\n return new URL(value);\n }\n catch (error) {\n return null;\n }\n })();\n if (!whatwgURL) {\n console.error(`Unable to parse ${JSON.stringify(value)} as a whatwg URL.`);\n return null;\n }\n const urlString = whatwgURL.href;\n const { host, hostname, pathname, protocol, search } = whatwgURL;\n if (search) {\n return null;\n }\n const scheme = protocol.slice(0, -1);\n if (!Object.values(types.EndpointURLScheme).includes(scheme)) {\n return null;\n }\n const isIp = isIpAddress(hostname);\n const inputContainsDefaultPort = urlString.includes(`${host}:${DEFAULT_PORTS[scheme]}`) ||\n (typeof value === \"string\" && value.includes(`${host}:${DEFAULT_PORTS[scheme]}`));\n const authority = `${host}${inputContainsDefaultPort ? `:${DEFAULT_PORTS[scheme]}` : ``}`;\n return {\n scheme,\n authority,\n path: pathname,\n normalizedPath: pathname.endsWith(\"/\") ? pathname : `${pathname}/`,\n isIp,\n };\n};\n\nfunction split(value, delimiter, limit) {\n if (limit === 1) {\n return [value];\n }\n if (value === \"\") {\n return [\"\"];\n }\n const parts = value.split(delimiter);\n if (limit === 0) {\n return parts;\n }\n return parts.slice(0, limit - 1).concat(parts.slice(1).join(delimiter));\n}\n\nconst stringEquals = (value1, value2) => value1 === value2;\n\nconst substring = (input, start, stop, reverse) => {\n if (input == null || start >= stop || input.length < stop || /[^\\u0000-\\u007f]/.test(input)) {\n return null;\n }\n if (!reverse) {\n return input.substring(start, stop);\n }\n return input.substring(input.length - stop, input.length - start);\n};\n\nconst uriEncode = (value) => encodeURIComponent(value).replace(/[!*'()]/g, (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`);\n\nconst endpointFunctions = {\n booleanEquals,\n coalesce,\n getAttr,\n isSet,\n isValidHostLabel: transport.isValidHostLabel,\n ite,\n not,\n parseURL,\n split,\n stringEquals,\n substring,\n uriEncode,\n};\n\nconst evaluateTemplate = (template, options) => {\n const evaluatedTemplateArr = [];\n const { referenceRecord, endpointParams } = options;\n let currentIndex = 0;\n while (currentIndex < template.length) {\n const openingBraceIndex = template.indexOf(\"{\", currentIndex);\n if (openingBraceIndex === -1) {\n evaluatedTemplateArr.push(template.slice(currentIndex));\n break;\n }\n evaluatedTemplateArr.push(template.slice(currentIndex, openingBraceIndex));\n const closingBraceIndex = template.indexOf(\"}\", openingBraceIndex);\n if (closingBraceIndex === -1) {\n evaluatedTemplateArr.push(template.slice(openingBraceIndex));\n break;\n }\n if (template[openingBraceIndex + 1] === \"{\" && template[closingBraceIndex + 1] === \"}\") {\n evaluatedTemplateArr.push(template.slice(openingBraceIndex + 1, closingBraceIndex));\n currentIndex = closingBraceIndex + 2;\n }\n const parameterName = template.substring(openingBraceIndex + 1, closingBraceIndex);\n if (parameterName.includes(\"#\")) {\n const [refName, attrName] = parameterName.split(\"#\");\n evaluatedTemplateArr.push(getAttr((referenceRecord[refName] ?? endpointParams[refName]), attrName));\n }\n else {\n evaluatedTemplateArr.push((referenceRecord[parameterName] ?? endpointParams[parameterName]));\n }\n currentIndex = closingBraceIndex + 1;\n }\n return evaluatedTemplateArr.join(\"\");\n};\n\nconst getReferenceValue = ({ ref }, options) => {\n return options.referenceRecord[ref] ?? options.endpointParams[ref];\n};\n\nconst evaluateExpression = (obj, keyName, options) => {\n if (typeof obj === \"string\") {\n return evaluateTemplate(obj, options);\n }\n else if (obj[\"fn\"]) {\n return group$2.callFunction(obj, options);\n }\n else if (obj[\"ref\"]) {\n return getReferenceValue(obj, options);\n }\n throw new EndpointError(`'${keyName}': ${String(obj)} is not a string, function or reference.`);\n};\nconst callFunction = ({ fn, argv }, options) => {\n const evaluatedArgs = Array(argv.length);\n for (let i = 0; i < evaluatedArgs.length; ++i) {\n const arg = argv[i];\n if (typeof arg === \"boolean\" || typeof arg === \"number\") {\n evaluatedArgs[i] = arg;\n }\n else {\n evaluatedArgs[i] = group$2.evaluateExpression(arg, \"arg\", options);\n }\n }\n const namespaceSeparatorIndex = fn.indexOf(\".\");\n if (namespaceSeparatorIndex !== -1) {\n const namespaceFunctions = customEndpointFunctions[fn.slice(0, namespaceSeparatorIndex)];\n const customFunction = namespaceFunctions?.[fn.slice(namespaceSeparatorIndex + 1)];\n if (typeof customFunction === \"function\") {\n return customFunction(...evaluatedArgs);\n }\n }\n const callable = endpointFunctions[fn];\n if (typeof callable === \"function\") {\n return callable(...evaluatedArgs);\n }\n throw new Error(`function ${fn} not loaded in endpointFunctions.`);\n};\nconst group$2 = {\n evaluateExpression,\n callFunction,\n};\n\nconst evaluateCondition = (condition, options) => {\n const { assign } = condition;\n if (assign && assign in options.referenceRecord) {\n throw new EndpointError(`'${assign}' is already defined in Reference Record.`);\n }\n const value = callFunction(condition, options);\n options.logger?.debug?.(`${debugId} evaluateCondition: ${toDebugString(condition)} = ${toDebugString(value)}`);\n const result = value === \"\" ? true : !!value;\n if (assign != null) {\n return { result, toAssign: { name: assign, value } };\n }\n return { result };\n};\n\nconst getEndpointHeaders = (headers, options) => Object.entries(headers ?? {}).reduce((acc, [headerKey, headerVal]) => {\n acc[headerKey] = headerVal.map((headerValEntry) => {\n const processedExpr = evaluateExpression(headerValEntry, \"Header value entry\", options);\n if (typeof processedExpr !== \"string\") {\n throw new EndpointError(`Header '${headerKey}' value '${processedExpr}' is not a string`);\n }\n return processedExpr;\n });\n return acc;\n}, {});\n\nconst getEndpointProperties = (properties, options) => Object.entries(properties).reduce((acc, [propertyKey, propertyVal]) => {\n acc[propertyKey] = group$1.getEndpointProperty(propertyVal, options);\n return acc;\n}, {});\nconst getEndpointProperty = (property, options) => {\n if (Array.isArray(property)) {\n return property.map((propertyEntry) => getEndpointProperty(propertyEntry, options));\n }\n switch (typeof property) {\n case \"string\":\n return evaluateTemplate(property, options);\n case \"object\":\n if (property === null) {\n throw new EndpointError(`Unexpected endpoint property: ${property}`);\n }\n return group$1.getEndpointProperties(property, options);\n case \"boolean\":\n return property;\n default:\n throw new EndpointError(`Unexpected endpoint property type: ${typeof property}`);\n }\n};\nconst group$1 = {\n getEndpointProperty,\n getEndpointProperties,\n};\n\nconst getEndpointUrl = (endpointUrl, options) => {\n const expression = evaluateExpression(endpointUrl, \"Endpoint URL\", options);\n if (typeof expression === \"string\") {\n try {\n return new URL(expression);\n }\n catch (error) {\n console.error(`Failed to construct URL with ${expression}`, error);\n throw error;\n }\n }\n throw new EndpointError(`Endpoint URL must be a string, got ${typeof expression}`);\n};\n\nconst RESULT = 100_000_000;\nconst decideEndpoint = (bdd, options) => {\n const { nodes, root, results, conditions } = bdd;\n let ref = root;\n const referenceRecord = {};\n const closure = {\n referenceRecord,\n endpointParams: options.endpointParams,\n logger: options.logger,\n };\n while (ref !== 1 && ref !== -1 && ref < RESULT) {\n const node_i = 3 * (Math.abs(ref) - 1);\n const [condition_i, highRef, lowRef] = [nodes[node_i], nodes[node_i + 1], nodes[node_i + 2]];\n const [fn, argv, assign] = conditions[condition_i];\n const evaluation = evaluateCondition({ fn, assign, argv }, closure);\n if (evaluation.toAssign) {\n const { name, value } = evaluation.toAssign;\n referenceRecord[name] = value;\n }\n ref = ref >= 0 === evaluation.result ? highRef : lowRef;\n }\n if (ref >= RESULT) {\n const result = results[ref - RESULT];\n if (result[0] === -1) {\n const [, errorExpression] = result;\n throw new EndpointError(evaluateExpression(errorExpression, \"Error\", closure));\n }\n const [url, properties, headers] = result;\n return {\n url: getEndpointUrl(url, closure),\n properties: getEndpointProperties(properties, closure),\n headers: getEndpointHeaders(headers ?? {}, closure),\n };\n }\n throw new EndpointError(`No matching endpoint.`);\n};\n\nconst evaluateConditions = (conditions = [], options) => {\n const conditionsReferenceRecord = {};\n const conditionOptions = {\n ...options,\n referenceRecord: { ...options.referenceRecord },\n };\n let didAssign = false;\n for (const condition of conditions) {\n const { result, toAssign } = evaluateCondition(condition, conditionOptions);\n if (!result) {\n return { result };\n }\n if (toAssign) {\n didAssign = true;\n conditionsReferenceRecord[toAssign.name] = toAssign.value;\n conditionOptions.referenceRecord[toAssign.name] = toAssign.value;\n options.logger?.debug?.(`${debugId} assign: ${toAssign.name} := ${toDebugString(toAssign.value)}`);\n }\n }\n if (didAssign) {\n return { result: true, referenceRecord: conditionsReferenceRecord };\n }\n return { result: true };\n};\n\nconst evaluateEndpointRule = (endpointRule, options) => {\n const { conditions, endpoint } = endpointRule;\n const { result, referenceRecord } = evaluateConditions(conditions, options);\n if (!result) {\n return;\n }\n const endpointRuleOptions = referenceRecord\n ? {\n ...options,\n referenceRecord: { ...options.referenceRecord, ...referenceRecord },\n }\n : options;\n const { url, properties, headers } = endpoint;\n options.logger?.debug?.(`${debugId} Resolving endpoint from template: ${toDebugString(endpoint)}`);\n const endpointToReturn = { url: getEndpointUrl(url, endpointRuleOptions) };\n if (headers != null) {\n endpointToReturn.headers = getEndpointHeaders(headers, endpointRuleOptions);\n }\n if (properties != null) {\n endpointToReturn.properties = getEndpointProperties(properties, endpointRuleOptions);\n }\n return endpointToReturn;\n};\n\nconst evaluateErrorRule = (errorRule, options) => {\n const { conditions, error } = errorRule;\n const { result, referenceRecord } = evaluateConditions(conditions, options);\n if (!result) {\n return;\n }\n const errorRuleOptions = referenceRecord\n ? {\n ...options,\n referenceRecord: { ...options.referenceRecord, ...referenceRecord },\n }\n : options;\n throw new EndpointError(evaluateExpression(error, \"Error\", errorRuleOptions));\n};\n\nconst evaluateRules = (rules, options) => {\n for (const rule of rules) {\n if (rule.type === \"endpoint\") {\n const endpointOrUndefined = evaluateEndpointRule(rule, options);\n if (endpointOrUndefined) {\n return endpointOrUndefined;\n }\n }\n else if (rule.type === \"error\") {\n evaluateErrorRule(rule, options);\n }\n else if (rule.type === \"tree\") {\n const endpointOrUndefined = group.evaluateTreeRule(rule, options);\n if (endpointOrUndefined) {\n return endpointOrUndefined;\n }\n }\n else {\n throw new EndpointError(`Unknown endpoint rule: ${rule}`);\n }\n }\n throw new EndpointError(`Rules evaluation failed`);\n};\nconst evaluateTreeRule = (treeRule, options) => {\n const { conditions, rules } = treeRule;\n const { result, referenceRecord } = evaluateConditions(conditions, options);\n if (!result) {\n return;\n }\n const treeRuleOptions = referenceRecord\n ? { ...options, referenceRecord: { ...options.referenceRecord, ...referenceRecord } }\n : options;\n return group.evaluateRules(rules, treeRuleOptions);\n};\nconst group = {\n evaluateRules,\n evaluateTreeRule,\n};\n\nconst resolveEndpoint = (ruleSetObject, options) => {\n const { endpointParams, logger } = options;\n const { parameters, rules } = ruleSetObject;\n options.logger?.debug?.(`${debugId} Initial EndpointParams: ${toDebugString(endpointParams)}`);\n for (const paramKey in parameters) {\n const parameter = parameters[paramKey];\n const endpointParam = endpointParams[paramKey];\n if (endpointParam == null && parameter.default != null) {\n endpointParams[paramKey] = parameter.default;\n continue;\n }\n if (parameter.required && endpointParam == null) {\n throw new EndpointError(`Missing required parameter: '${paramKey}'`);\n }\n }\n const endpoint = evaluateRules(rules, { endpointParams, logger, referenceRecord: {} });\n options.logger?.debug?.(`${debugId} Resolved endpoint: ${toDebugString(endpoint)}`);\n return endpoint;\n};\n\nconst resolveEndpointRequiredConfig = (input) => {\n const { endpoint } = input;\n if (endpoint === undefined) {\n input.endpoint = async () => {\n throw new Error(\"@smithy/middleware-endpoint: (default endpointRuleSet) endpoint is not set - you must configure an endpoint.\");\n };\n }\n return input;\n};\n\nconst getEndpointFromInstructions = bindGetEndpointFromInstructions(getEndpointFromConfig);\nconst resolveEndpointConfig = bindResolveEndpointConfig(getEndpointFromConfig);\nconst endpointMiddleware = bindEndpointMiddleware(getEndpointFromConfig);\nconst getEndpointPlugin = bindGetEndpointPlugin(getEndpointFromConfig);\n\nexports.isValidHostLabel = transport.isValidHostLabel;\nexports.middlewareEndpointToEndpointV1 = transport.toEndpointV1;\nexports.toEndpointV1 = transport.toEndpointV1;\nexports.BinaryDecisionDiagram = BinaryDecisionDiagram;\nexports.EndpointCache = EndpointCache;\nexports.EndpointError = EndpointError;\nexports.customEndpointFunctions = customEndpointFunctions;\nexports.decideEndpoint = decideEndpoint;\nexports.endpointMiddleware = endpointMiddleware;\nexports.endpointMiddlewareOptions = endpointMiddlewareOptions;\nexports.getEndpointFromInstructions = getEndpointFromInstructions;\nexports.getEndpointPlugin = getEndpointPlugin;\nexports.isIpAddress = isIpAddress;\nexports.resolveEndpoint = resolveEndpoint;\nexports.resolveEndpointConfig = resolveEndpointConfig;\nexports.resolveEndpointRequiredConfig = resolveEndpointRequiredConfig;\nexports.resolveParams = resolveParams;\n",
11
+ "'use strict';\n\nvar node_crypto = require('node:crypto');\nvar node_fs = require('node:fs');\nvar transport = require('@smithy/core/transport');\nvar endpoints = require('@smithy/core/endpoints');\nvar node_stream = require('node:stream');\n\nconst isArrayBuffer = (arg) => (typeof ArrayBuffer === \"function\" && arg instanceof ArrayBuffer) ||\n Object.prototype.toString.call(arg) === \"[object ArrayBuffer]\";\n\nconst fromArrayBuffer = (input, offset = 0, length = input.byteLength - offset) => {\n if (!isArrayBuffer(input)) {\n throw new TypeError(`The \"input\" argument must be ArrayBuffer. Received type ${typeof input} (${input})`);\n }\n return Buffer.from(input, offset, length);\n};\nconst fromString = (input, encoding) => {\n if (typeof input !== \"string\") {\n throw new TypeError(`The \"input\" argument must be of type string. Received type ${typeof input} (${input})`);\n }\n return encoding ? Buffer.from(input, encoding) : Buffer.from(input);\n};\n\nconst BASE64_REGEX = /^[A-Za-z0-9+/]*={0,2}$/;\nconst fromBase64$1 = (input) => {\n if ((input.length * 3) % 4 !== 0) {\n throw new TypeError(`Incorrect padding on base64 string.`);\n }\n if (!BASE64_REGEX.exec(input)) {\n throw new TypeError(`Invalid base64 string.`);\n }\n const buffer = fromString(input, \"base64\");\n return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n};\n\nconst fromUtf8$1 = (input) => {\n const buf = fromString(input, \"utf8\");\n return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n};\n\nconst toBase64$1 = (_input) => {\n let input;\n if (typeof _input === \"string\") {\n input = fromUtf8$1(_input);\n }\n else {\n input = _input;\n }\n if (typeof input !== \"object\" || typeof input.byteOffset !== \"number\" || typeof input.byteLength !== \"number\") {\n throw new Error(\"@smithy/util-base64: toBase64 encoder function only accepts string | Uint8Array.\");\n }\n return fromArrayBuffer(input.buffer, input.byteOffset, input.byteLength).toString(\"base64\");\n};\n\nfunction bindUint8ArrayBlobAdapter(toUtf8, fromUtf8, toBase64, fromBase64) {\n return class Uint8ArrayBlobAdapter extends Uint8Array {\n static fromString(source, encoding = \"utf-8\") {\n if (typeof source === \"string\") {\n if (encoding === \"base64\") {\n return Uint8ArrayBlobAdapter.mutate(fromBase64(source));\n }\n return Uint8ArrayBlobAdapter.mutate(fromUtf8(source));\n }\n throw new Error(`Unsupported conversion from ${typeof source} to Uint8ArrayBlobAdapter.`);\n }\n static mutate(source) {\n Object.setPrototypeOf(source, Uint8ArrayBlobAdapter.prototype);\n return source;\n }\n transformToString(encoding = \"utf-8\") {\n if (encoding === \"base64\") {\n return toBase64(this);\n }\n return toUtf8(this);\n }\n };\n}\n\nconst toUtf8$1 = (input) => {\n if (typeof input === \"string\") {\n return input;\n }\n if (typeof input !== \"object\" || typeof input.byteOffset !== \"number\" || typeof input.byteLength !== \"number\") {\n throw new Error(\"@smithy/util-utf8: toUtf8 encoder function only accepts string | Uint8Array.\");\n }\n return fromArrayBuffer(input.buffer, input.byteOffset, input.byteLength).toString(\"utf8\");\n};\n\nconst decimalToHex = Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, \"0\"));\nfunction bindV4(getRandomValues) {\n if (typeof crypto !== \"undefined\" && typeof crypto.randomUUID === \"function\") {\n return () => crypto.randomUUID();\n }\n return () => {\n const rnds = new Uint8Array(16);\n getRandomValues(rnds);\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n return (decimalToHex[rnds[0]] +\n decimalToHex[rnds[1]] +\n decimalToHex[rnds[2]] +\n decimalToHex[rnds[3]] +\n \"-\" +\n decimalToHex[rnds[4]] +\n decimalToHex[rnds[5]] +\n \"-\" +\n decimalToHex[rnds[6]] +\n decimalToHex[rnds[7]] +\n \"-\" +\n decimalToHex[rnds[8]] +\n decimalToHex[rnds[9]] +\n \"-\" +\n decimalToHex[rnds[10]] +\n decimalToHex[rnds[11]] +\n decimalToHex[rnds[12]] +\n decimalToHex[rnds[13]] +\n decimalToHex[rnds[14]] +\n decimalToHex[rnds[15]]);\n };\n}\n\nconst copyDocumentWithTransform = (source, schemaRef, transform = (_) => _) => source;\n\nconst parseBoolean = (value) => {\n switch (value) {\n case \"true\":\n return true;\n case \"false\":\n return false;\n default:\n throw new Error(`Unable to parse boolean value \"${value}\"`);\n }\n};\nconst expectBoolean = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"number\") {\n if (value === 0 || value === 1) {\n logger.warn(stackTraceWarning(`Expected boolean, got ${typeof value}: ${value}`));\n }\n if (value === 0) {\n return false;\n }\n if (value === 1) {\n return true;\n }\n }\n if (typeof value === \"string\") {\n const lower = value.toLowerCase();\n if (lower === \"false\" || lower === \"true\") {\n logger.warn(stackTraceWarning(`Expected boolean, got ${typeof value}: ${value}`));\n }\n if (lower === \"false\") {\n return false;\n }\n if (lower === \"true\") {\n return true;\n }\n }\n if (typeof value === \"boolean\") {\n return value;\n }\n throw new TypeError(`Expected boolean, got ${typeof value}: ${value}`);\n};\nconst expectNumber = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"string\") {\n const parsed = parseFloat(value);\n if (!Number.isNaN(parsed)) {\n if (String(parsed) !== String(value)) {\n logger.warn(stackTraceWarning(`Expected number but observed string: ${value}`));\n }\n return parsed;\n }\n }\n if (typeof value === \"number\") {\n return value;\n }\n throw new TypeError(`Expected number, got ${typeof value}: ${value}`);\n};\nconst MAX_FLOAT = Math.ceil(2 ** 127 * (2 - 2 ** -23));\nconst expectFloat32 = (value) => {\n const expected = expectNumber(value);\n if (expected !== undefined && !Number.isNaN(expected) && expected !== Infinity && expected !== -Infinity) {\n if (Math.abs(expected) > MAX_FLOAT) {\n throw new TypeError(`Expected 32-bit float, got ${value}`);\n }\n }\n return expected;\n};\nconst expectLong = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (Number.isInteger(value) && !Number.isNaN(value)) {\n return value;\n }\n throw new TypeError(`Expected integer, got ${typeof value}: ${value}`);\n};\nconst expectInt = expectLong;\nconst expectInt32 = (value) => expectSizedInt(value, 32);\nconst expectShort = (value) => expectSizedInt(value, 16);\nconst expectByte = (value) => expectSizedInt(value, 8);\nconst expectSizedInt = (value, size) => {\n const expected = expectLong(value);\n if (expected !== undefined && castInt(expected, size) !== expected) {\n throw new TypeError(`Expected ${size}-bit integer, got ${value}`);\n }\n return expected;\n};\nconst castInt = (value, size) => {\n switch (size) {\n case 32:\n return Int32Array.of(value)[0];\n case 16:\n return Int16Array.of(value)[0];\n case 8:\n return Int8Array.of(value)[0];\n }\n};\nconst expectNonNull = (value, location) => {\n if (value === null || value === undefined) {\n if (location) {\n throw new TypeError(`Expected a non-null value for ${location}`);\n }\n throw new TypeError(\"Expected a non-null value\");\n }\n return value;\n};\nconst expectObject = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"object\" && !Array.isArray(value)) {\n return value;\n }\n const receivedType = Array.isArray(value) ? \"array\" : typeof value;\n throw new TypeError(`Expected object, got ${receivedType}: ${value}`);\n};\nconst expectString = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"string\") {\n return value;\n }\n if ([\"boolean\", \"number\", \"bigint\"].includes(typeof value)) {\n logger.warn(stackTraceWarning(`Expected string, got ${typeof value}: ${value}`));\n return String(value);\n }\n throw new TypeError(`Expected string, got ${typeof value}: ${value}`);\n};\nconst expectUnion = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n const asObject = expectObject(value);\n const setKeys = [];\n for (const k in asObject) {\n if (asObject[k] != null) {\n setKeys.push(k);\n }\n }\n if (setKeys.length === 0) {\n throw new TypeError(`Unions must have exactly one non-null member. None were found.`);\n }\n if (setKeys.length > 1) {\n throw new TypeError(`Unions must have exactly one non-null member. Keys ${setKeys} were not null.`);\n }\n return asObject;\n};\nconst strictParseDouble = (value) => {\n if (typeof value == \"string\") {\n return expectNumber(parseNumber(value));\n }\n return expectNumber(value);\n};\nconst strictParseFloat = strictParseDouble;\nconst strictParseFloat32 = (value) => {\n if (typeof value == \"string\") {\n return expectFloat32(parseNumber(value));\n }\n return expectFloat32(value);\n};\nconst NUMBER_REGEX = /(-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)|(-?Infinity)|(NaN)/g;\nconst parseNumber = (value) => {\n const matches = value.match(NUMBER_REGEX);\n if (matches === null || matches[0].length !== value.length) {\n throw new TypeError(`Expected real number, got implicit NaN`);\n }\n return parseFloat(value);\n};\nconst limitedParseDouble = (value) => {\n if (typeof value == \"string\") {\n return parseFloatString(value);\n }\n return expectNumber(value);\n};\nconst handleFloat = limitedParseDouble;\nconst limitedParseFloat = limitedParseDouble;\nconst limitedParseFloat32 = (value) => {\n if (typeof value == \"string\") {\n return parseFloatString(value);\n }\n return expectFloat32(value);\n};\nconst parseFloatString = (value) => {\n switch (value) {\n case \"NaN\":\n return NaN;\n case \"Infinity\":\n return Infinity;\n case \"-Infinity\":\n return -Infinity;\n default:\n throw new Error(`Unable to parse float value: ${value}`);\n }\n};\nconst strictParseLong = (value) => {\n if (typeof value === \"string\") {\n return expectLong(parseNumber(value));\n }\n return expectLong(value);\n};\nconst strictParseInt = strictParseLong;\nconst strictParseInt32 = (value) => {\n if (typeof value === \"string\") {\n return expectInt32(parseNumber(value));\n }\n return expectInt32(value);\n};\nconst strictParseShort = (value) => {\n if (typeof value === \"string\") {\n return expectShort(parseNumber(value));\n }\n return expectShort(value);\n};\nconst strictParseByte = (value) => {\n if (typeof value === \"string\") {\n return expectByte(parseNumber(value));\n }\n return expectByte(value);\n};\nconst stackTraceWarning = (message) => {\n return String(new TypeError(message).stack || message)\n .split(\"\\n\")\n .slice(0, 5)\n .filter((s) => !s.includes(\"stackTraceWarning\"))\n .join(\"\\n\");\n};\nconst logger = {\n warn: console.warn,\n};\n\nconst DAYS = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\nconst MONTHS = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\nfunction dateToUtcString(date) {\n const year = date.getUTCFullYear();\n const month = date.getUTCMonth();\n const dayOfWeek = date.getUTCDay();\n const dayOfMonthInt = date.getUTCDate();\n const hoursInt = date.getUTCHours();\n const minutesInt = date.getUTCMinutes();\n const secondsInt = date.getUTCSeconds();\n const dayOfMonthString = dayOfMonthInt < 10 ? `0${dayOfMonthInt}` : `${dayOfMonthInt}`;\n const hoursString = hoursInt < 10 ? `0${hoursInt}` : `${hoursInt}`;\n const minutesString = minutesInt < 10 ? `0${minutesInt}` : `${minutesInt}`;\n const secondsString = secondsInt < 10 ? `0${secondsInt}` : `${secondsInt}`;\n return `${DAYS[dayOfWeek]}, ${dayOfMonthString} ${MONTHS[month]} ${year} ${hoursString}:${minutesString}:${secondsString} GMT`;\n}\nconst RFC3339 = new RegExp(/^(\\d{4})-(\\d{2})-(\\d{2})[tT](\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))?[zZ]$/);\nconst parseRfc3339DateTime = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value !== \"string\") {\n throw new TypeError(\"RFC-3339 date-times must be expressed as strings\");\n }\n const match = RFC3339.exec(value);\n if (!match) {\n throw new TypeError(\"Invalid RFC-3339 date-time value\");\n }\n const [_, yearStr, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds] = match;\n const year = strictParseShort(stripLeadingZeroes(yearStr));\n const month = parseDateValue(monthStr, \"month\", 1, 12);\n const day = parseDateValue(dayStr, \"day\", 1, 31);\n return buildDate(year, month, day, { hours, minutes, seconds, fractionalMilliseconds });\n};\nconst RFC3339_WITH_OFFSET$1 = new RegExp(/^(\\d{4})-(\\d{2})-(\\d{2})[tT](\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))?(([-+]\\d{2}\\:\\d{2})|[zZ])$/);\nconst parseRfc3339DateTimeWithOffset = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value !== \"string\") {\n throw new TypeError(\"RFC-3339 date-times must be expressed as strings\");\n }\n const match = RFC3339_WITH_OFFSET$1.exec(value);\n if (!match) {\n throw new TypeError(\"Invalid RFC-3339 date-time value\");\n }\n const [_, yearStr, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds, offsetStr] = match;\n const year = strictParseShort(stripLeadingZeroes(yearStr));\n const month = parseDateValue(monthStr, \"month\", 1, 12);\n const day = parseDateValue(dayStr, \"day\", 1, 31);\n const date = buildDate(year, month, day, { hours, minutes, seconds, fractionalMilliseconds });\n if (offsetStr.toUpperCase() != \"Z\") {\n date.setTime(date.getTime() - parseOffsetToMilliseconds(offsetStr));\n }\n return date;\n};\nconst IMF_FIXDATE$1 = new RegExp(/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\\d{2}) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\\d{4}) (\\d{1,2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? GMT$/);\nconst RFC_850_DATE$1 = new RegExp(/^(?:Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\\d{2})-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\\d{2}) (\\d{1,2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? GMT$/);\nconst ASC_TIME$1 = new RegExp(/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( [1-9]|\\d{2}) (\\d{1,2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? (\\d{4})$/);\nconst parseRfc7231DateTime = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value !== \"string\") {\n throw new TypeError(\"RFC-7231 date-times must be expressed as strings\");\n }\n let match = IMF_FIXDATE$1.exec(value);\n if (match) {\n const [_, dayStr, monthStr, yearStr, hours, minutes, seconds, fractionalMilliseconds] = match;\n return buildDate(strictParseShort(stripLeadingZeroes(yearStr)), parseMonthByShortName(monthStr), parseDateValue(dayStr, \"day\", 1, 31), { hours, minutes, seconds, fractionalMilliseconds });\n }\n match = RFC_850_DATE$1.exec(value);\n if (match) {\n const [_, dayStr, monthStr, yearStr, hours, minutes, seconds, fractionalMilliseconds] = match;\n return adjustRfc850Year(buildDate(parseTwoDigitYear(yearStr), parseMonthByShortName(monthStr), parseDateValue(dayStr, \"day\", 1, 31), {\n hours,\n minutes,\n seconds,\n fractionalMilliseconds,\n }));\n }\n match = ASC_TIME$1.exec(value);\n if (match) {\n const [_, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds, yearStr] = match;\n return buildDate(strictParseShort(stripLeadingZeroes(yearStr)), parseMonthByShortName(monthStr), parseDateValue(dayStr.trimLeft(), \"day\", 1, 31), { hours, minutes, seconds, fractionalMilliseconds });\n }\n throw new TypeError(\"Invalid RFC-7231 date-time value\");\n};\nconst parseEpochTimestamp = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n let valueAsDouble;\n if (typeof value === \"number\") {\n valueAsDouble = value;\n }\n else if (typeof value === \"string\") {\n valueAsDouble = strictParseDouble(value);\n }\n else if (typeof value === \"object\" && value.tag === 1) {\n valueAsDouble = value.value;\n }\n else {\n throw new TypeError(\"Epoch timestamps must be expressed as floating point numbers or their string representation\");\n }\n if (Number.isNaN(valueAsDouble) || valueAsDouble === Infinity || valueAsDouble === -Infinity) {\n throw new TypeError(\"Epoch timestamps must be valid, non-Infinite, non-NaN numerics\");\n }\n return new Date(Math.round(valueAsDouble * 1000));\n};\nconst buildDate = (year, month, day, time) => {\n const adjustedMonth = month - 1;\n validateDayOfMonth(year, adjustedMonth, day);\n return new Date(Date.UTC(year, adjustedMonth, day, parseDateValue(time.hours, \"hour\", 0, 23), parseDateValue(time.minutes, \"minute\", 0, 59), parseDateValue(time.seconds, \"seconds\", 0, 60), parseMilliseconds(time.fractionalMilliseconds)));\n};\nconst parseTwoDigitYear = (value) => {\n const thisYear = new Date().getUTCFullYear();\n const valueInThisCentury = Math.floor(thisYear / 100) * 100 + strictParseShort(stripLeadingZeroes(value));\n if (valueInThisCentury < thisYear) {\n return valueInThisCentury + 100;\n }\n return valueInThisCentury;\n};\nconst FIFTY_YEARS_IN_MILLIS = 50 * 365 * 24 * 60 * 60 * 1000;\nconst adjustRfc850Year = (input) => {\n if (input.getTime() - new Date().getTime() > FIFTY_YEARS_IN_MILLIS) {\n return new Date(Date.UTC(input.getUTCFullYear() - 100, input.getUTCMonth(), input.getUTCDate(), input.getUTCHours(), input.getUTCMinutes(), input.getUTCSeconds(), input.getUTCMilliseconds()));\n }\n return input;\n};\nconst parseMonthByShortName = (value) => {\n const monthIdx = MONTHS.indexOf(value);\n if (monthIdx < 0) {\n throw new TypeError(`Invalid month: ${value}`);\n }\n return monthIdx + 1;\n};\nconst DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst validateDayOfMonth = (year, month, day) => {\n let maxDays = DAYS_IN_MONTH[month];\n if (month === 1 && isLeapYear(year)) {\n maxDays = 29;\n }\n if (day > maxDays) {\n throw new TypeError(`Invalid day for ${MONTHS[month]} in ${year}: ${day}`);\n }\n};\nconst isLeapYear = (year) => {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n};\nconst parseDateValue = (value, type, lower, upper) => {\n const dateVal = strictParseByte(stripLeadingZeroes(value));\n if (dateVal < lower || dateVal > upper) {\n throw new TypeError(`${type} must be between ${lower} and ${upper}, inclusive`);\n }\n return dateVal;\n};\nconst parseMilliseconds = (value) => {\n if (value === null || value === undefined) {\n return 0;\n }\n return strictParseFloat32(\"0.\" + value) * 1000;\n};\nconst parseOffsetToMilliseconds = (value) => {\n const directionStr = value[0];\n let direction = 1;\n if (directionStr == \"+\") {\n direction = 1;\n }\n else if (directionStr == \"-\") {\n direction = -1;\n }\n else {\n throw new TypeError(`Offset direction, ${directionStr}, must be \"+\" or \"-\"`);\n }\n const hour = Number(value.substring(1, 3));\n const minute = Number(value.substring(4, 6));\n return direction * (hour * 60 + minute) * 60 * 1000;\n};\nconst stripLeadingZeroes = (value) => {\n let idx = 0;\n while (idx < value.length - 1 && value.charAt(idx) === \"0\") {\n idx++;\n }\n if (idx === 0) {\n return value;\n }\n return value.slice(idx);\n};\n\nconst LazyJsonString = function LazyJsonString(val) {\n const str = Object.assign(new String(val), {\n deserializeJSON() {\n return JSON.parse(String(val));\n },\n toString() {\n return String(val);\n },\n toJSON() {\n return String(val);\n },\n });\n return str;\n};\nLazyJsonString.from = (object) => {\n if (object && typeof object === \"object\" && (object instanceof LazyJsonString || \"deserializeJSON\" in object)) {\n return object;\n }\n else if (typeof object === \"string\" || Object.getPrototypeOf(object) === String.prototype) {\n return LazyJsonString(String(object));\n }\n return LazyJsonString(JSON.stringify(object));\n};\nLazyJsonString.fromObject = LazyJsonString.from;\n\nfunction quoteHeader(part) {\n if (part.includes(\",\") || part.includes('\"')) {\n part = `\"${part.replace(/\"/g, '\\\\\"')}\"`;\n }\n return part;\n}\n\nconst ddd = `(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun)(?:[ne|u?r]?s?day)?`;\nconst mmm = `(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)`;\nconst time = `(\\\\d?\\\\d):(\\\\d{2}):(\\\\d{2})(?:\\\\.(\\\\d+))?`;\nconst date = `(\\\\d?\\\\d)`;\nconst year = `(\\\\d{4})`;\nconst RFC3339_WITH_OFFSET = new RegExp(/^(\\d{4})-(\\d\\d)-(\\d\\d)[tT](\\d\\d):(\\d\\d):(\\d\\d)(\\.(\\d+))?(([-+]\\d\\d:\\d\\d)|[zZ])$/);\nconst IMF_FIXDATE = new RegExp(`^${ddd}, ${date} ${mmm} ${year} ${time} GMT$`);\nconst RFC_850_DATE = new RegExp(`^${ddd}, ${date}-${mmm}-(\\\\d\\\\d) ${time} GMT$`);\nconst ASC_TIME = new RegExp(`^${ddd} ${mmm} ( [1-9]|\\\\d\\\\d) ${time} ${year}$`);\nconst months = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\nconst _parseEpochTimestamp = (value) => {\n if (value == null) {\n return void 0;\n }\n let num = NaN;\n if (typeof value === \"number\") {\n num = value;\n }\n else if (typeof value === \"string\") {\n if (!/^-?\\d*\\.?\\d+$/.test(value)) {\n throw new TypeError(`parseEpochTimestamp - numeric string invalid.`);\n }\n num = Number.parseFloat(value);\n }\n else if (typeof value === \"object\" && value.tag === 1) {\n num = value.value;\n }\n if (isNaN(num) || Math.abs(num) === Infinity) {\n throw new TypeError(\"Epoch timestamps must be valid finite numbers.\");\n }\n return new Date(Math.round(num * 1000));\n};\nconst _parseRfc3339DateTimeWithOffset = (value) => {\n if (value == null) {\n return void 0;\n }\n if (typeof value !== \"string\") {\n throw new TypeError(\"RFC3339 timestamps must be strings\");\n }\n const matches = RFC3339_WITH_OFFSET.exec(value);\n if (!matches) {\n throw new TypeError(`Invalid RFC3339 timestamp format ${value}`);\n }\n const [, yearStr, monthStr, dayStr, hours, minutes, seconds, , ms, offsetStr] = matches;\n range(monthStr, 1, 12);\n range(dayStr, 1, 31);\n range(hours, 0, 23);\n range(minutes, 0, 59);\n range(seconds, 0, 60);\n const date = new Date(Date.UTC(Number(yearStr), Number(monthStr) - 1, Number(dayStr), Number(hours), Number(minutes), Number(seconds), Number(ms) ? Math.round(parseFloat(`0.${ms}`) * 1000) : 0));\n date.setUTCFullYear(Number(yearStr));\n if (offsetStr.toUpperCase() != \"Z\") {\n const [, sign, offsetH, offsetM] = /([+-])(\\d\\d):(\\d\\d)/.exec(offsetStr) || [void 0, \"+\", 0, 0];\n const scalar = sign === \"-\" ? 1 : -1;\n date.setTime(date.getTime() + scalar * (Number(offsetH) * 60 * 60 * 1000 + Number(offsetM) * 60 * 1000));\n }\n return date;\n};\nconst _parseRfc7231DateTime = (value) => {\n if (value == null) {\n return void 0;\n }\n if (typeof value !== \"string\") {\n throw new TypeError(\"RFC7231 timestamps must be strings.\");\n }\n let day;\n let month;\n let year;\n let hour;\n let minute;\n let second;\n let fraction;\n let matches;\n if ((matches = IMF_FIXDATE.exec(value))) {\n [, day, month, year, hour, minute, second, fraction] = matches;\n }\n else if ((matches = RFC_850_DATE.exec(value))) {\n [, day, month, year, hour, minute, second, fraction] = matches;\n year = (Number(year) + 1900).toString();\n }\n else if ((matches = ASC_TIME.exec(value))) {\n [, month, day, hour, minute, second, fraction, year] = matches;\n }\n if (year && second) {\n const timestamp = Date.UTC(Number(year), months.indexOf(month), Number(day), Number(hour), Number(minute), Number(second), fraction ? Math.round(parseFloat(`0.${fraction}`) * 1000) : 0);\n range(day, 1, 31);\n range(hour, 0, 23);\n range(minute, 0, 59);\n range(second, 0, 60);\n const date = new Date(timestamp);\n date.setUTCFullYear(Number(year));\n return date;\n }\n throw new TypeError(`Invalid RFC7231 date-time value ${value}.`);\n};\nfunction range(v, min, max) {\n const _v = Number(v);\n if (_v < min || _v > max) {\n throw new Error(`Value ${_v} out of range [${min}, ${max}]`);\n }\n}\n\nfunction splitEvery(value, delimiter, numDelimiters) {\n if (numDelimiters <= 0 || !Number.isInteger(numDelimiters)) {\n throw new Error(\"Invalid number of delimiters (\" + numDelimiters + \") for splitEvery.\");\n }\n const segments = value.split(delimiter);\n if (numDelimiters === 1) {\n return segments;\n }\n const compoundSegments = [];\n let currentSegment = \"\";\n for (let i = 0; i < segments.length; i++) {\n if (currentSegment === \"\") {\n currentSegment = segments[i];\n }\n else {\n currentSegment += delimiter + segments[i];\n }\n if ((i + 1) % numDelimiters === 0) {\n compoundSegments.push(currentSegment);\n currentSegment = \"\";\n }\n }\n if (currentSegment !== \"\") {\n compoundSegments.push(currentSegment);\n }\n return compoundSegments;\n}\n\nconst splitHeader = (value) => {\n const z = value.length;\n const values = [];\n let withinQuotes = false;\n let prevChar = undefined;\n let anchor = 0;\n for (let i = 0; i < z; ++i) {\n const char = value[i];\n switch (char) {\n case `\"`:\n if (prevChar !== \"\\\\\") {\n withinQuotes = !withinQuotes;\n }\n break;\n case \",\":\n if (!withinQuotes) {\n values.push(value.slice(anchor, i));\n anchor = i + 1;\n }\n break;\n }\n prevChar = char;\n }\n values.push(value.slice(anchor));\n return values.map((v) => {\n v = v.trim();\n const z = v.length;\n if (z < 2) {\n return v;\n }\n if (v[0] === `\"` && v[z - 1] === `\"`) {\n v = v.slice(1, z - 1);\n }\n return v.replace(/\\\\\"/g, '\"');\n });\n};\n\nconst format = /^-?\\d*(\\.\\d+)?$/;\nclass NumericValue {\n string;\n type;\n constructor(string, type) {\n this.string = string;\n this.type = type;\n if (!format.test(string)) {\n throw new Error(`@smithy/core/serde - NumericValue must only contain [0-9], at most one decimal point \".\", and an optional negation prefix \"-\".`);\n }\n }\n toString() {\n return this.string;\n }\n static [Symbol.hasInstance](object) {\n if (!object || typeof object !== \"object\") {\n return false;\n }\n const _nv = object;\n return NumericValue.prototype.isPrototypeOf(object) || (_nv.type === \"bigDecimal\" && format.test(_nv.string));\n }\n}\nfunction nv(input) {\n return new NumericValue(String(input), \"bigDecimal\");\n}\n\nconst SHORT_TO_HEX = {};\nconst HEX_TO_SHORT = {};\nfor (let i = 0; i < 256; i++) {\n let encodedByte = i.toString(16).toLowerCase();\n if (encodedByte.length === 1) {\n encodedByte = `0${encodedByte}`;\n }\n SHORT_TO_HEX[i] = encodedByte;\n HEX_TO_SHORT[encodedByte] = i;\n}\nfunction fromHex(encoded) {\n if (encoded.length % 2 !== 0) {\n throw new Error(\"Hex encoded strings must have an even number length\");\n }\n const out = new Uint8Array(encoded.length / 2);\n for (let i = 0; i < encoded.length; i += 2) {\n const encodedByte = encoded.slice(i, i + 2).toLowerCase();\n if (encodedByte in HEX_TO_SHORT) {\n out[i / 2] = HEX_TO_SHORT[encodedByte];\n }\n else {\n throw new Error(`Cannot decode unrecognized sequence ${encodedByte} as hexadecimal`);\n }\n }\n return out;\n}\nfunction toHex(bytes) {\n let out = \"\";\n for (let i = 0; i < bytes.byteLength; i++) {\n out += SHORT_TO_HEX[bytes[i]];\n }\n return out;\n}\n\nconst calculateBodyLength = (body) => {\n if (!body) {\n return 0;\n }\n if (typeof body === \"string\") {\n return Buffer.byteLength(body);\n }\n else if (typeof body.byteLength === \"number\") {\n return body.byteLength;\n }\n else if (typeof body.size === \"number\") {\n return body.size;\n }\n else if (typeof body.start === \"number\" && typeof body.end === \"number\") {\n return body.end + 1 - body.start;\n }\n else if (body instanceof node_fs.ReadStream) {\n if (body.path != null) {\n return node_fs.lstatSync(body.path).size;\n }\n else if (typeof body.fd === \"number\") {\n return node_fs.fstatSync(body.fd).size;\n }\n }\n throw new Error(`Body Length computation failed for ${body}`);\n};\n\nconst toUint8Array = (data) => {\n if (typeof data === \"string\") {\n return fromUtf8$1(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n};\n\nconst deserializerMiddleware = (options, deserializer) => (next, context) => async (args) => {\n const { response } = await next(args);\n try {\n const parsed = await deserializer(response, options);\n return {\n response,\n output: parsed,\n };\n }\n catch (error) {\n Object.defineProperty(error, \"$response\", {\n value: response,\n enumerable: false,\n writable: false,\n configurable: false,\n });\n if (!(\"$metadata\" in error)) {\n const hint = `Deserialization error: to see the raw response, inspect the hidden field {error}.$response on this object.`;\n try {\n error.message += \"\\n \" + hint;\n }\n catch (e) {\n if (!context.logger || context.logger?.constructor?.name === \"NoOpLogger\") {\n console.warn(hint);\n }\n else {\n context.logger?.warn?.(hint);\n }\n }\n if (typeof error.$responseBodyText !== \"undefined\") {\n if (error.$response) {\n error.$response.body = error.$responseBodyText;\n }\n }\n try {\n if (transport.HttpResponse.isInstance(response)) {\n const { headers = {} } = response;\n const headerEntries = Object.entries(headers);\n error.$metadata = {\n httpStatusCode: response.statusCode,\n requestId: findHeader(/^x-[\\w-]+-request-?id$/, headerEntries),\n extendedRequestId: findHeader(/^x-[\\w-]+-id-2$/, headerEntries),\n cfId: findHeader(/^x-[\\w-]+-cf-id$/, headerEntries),\n };\n }\n }\n catch (e) {\n }\n }\n throw error;\n }\n};\nconst findHeader = (pattern, headers) => {\n return (headers.find(([k]) => {\n return k.match(pattern);\n }) || [void 0, void 0])[1];\n};\n\nconst serializerMiddleware = (options, serializer) => (next, context) => async (args) => {\n const endpointConfig = options;\n const endpoint = context.endpointV2\n ? async () => endpoints.toEndpointV1(context.endpointV2)\n : endpointConfig.endpoint;\n if (!endpoint) {\n throw new Error(\"No valid endpoint provider available.\");\n }\n const request = await serializer(args.input, { ...options, endpoint });\n return next({\n ...args,\n request,\n });\n};\n\nconst deserializerMiddlewareOption = {\n name: \"deserializerMiddleware\",\n step: \"deserialize\",\n tags: [\"DESERIALIZER\"],\n override: true,\n};\nconst serializerMiddlewareOption = {\n name: \"serializerMiddleware\",\n step: \"serialize\",\n tags: [\"SERIALIZER\"],\n override: true,\n};\nfunction getSerdePlugin(config, serializer, deserializer) {\n return {\n applyToStack: (commandStack) => {\n commandStack.add(deserializerMiddleware(config, deserializer), deserializerMiddlewareOption);\n commandStack.add(serializerMiddleware(config, serializer), serializerMiddlewareOption);\n },\n };\n}\n\nclass Hash {\n algorithmIdentifier;\n secret;\n hash;\n constructor(algorithmIdentifier, secret) {\n this.algorithmIdentifier = algorithmIdentifier;\n this.secret = secret;\n this.reset();\n }\n update(toHash, encoding) {\n this.hash.update(toUint8Array(castSourceData(toHash, encoding)));\n }\n digest() {\n return Promise.resolve(this.hash.digest());\n }\n reset() {\n this.hash = this.secret\n ? node_crypto.createHmac(this.algorithmIdentifier, castSourceData(this.secret))\n : node_crypto.createHash(this.algorithmIdentifier);\n }\n}\nfunction castSourceData(toCast, encoding) {\n if (Buffer.isBuffer(toCast)) {\n return toCast;\n }\n if (typeof toCast === \"string\") {\n return fromString(toCast, encoding);\n }\n if (ArrayBuffer.isView(toCast)) {\n return fromArrayBuffer(toCast.buffer, toCast.byteOffset, toCast.byteLength);\n }\n return fromArrayBuffer(toCast);\n}\n\nlet ChecksumStream$1 = class ChecksumStream extends node_stream.Duplex {\n expectedChecksum;\n checksumSourceLocation;\n checksum;\n source;\n base64Encoder;\n pendingCallback = null;\n constructor({ expectedChecksum, checksum, source, checksumSourceLocation, base64Encoder, }) {\n super();\n if (typeof source.pipe === \"function\") {\n this.source = source;\n }\n else {\n throw new Error(`@smithy/util-stream: unsupported source type ${source?.constructor?.name ?? source} in ChecksumStream.`);\n }\n this.base64Encoder = base64Encoder ?? toBase64$1;\n this.expectedChecksum = expectedChecksum;\n this.checksum = checksum;\n this.checksumSourceLocation = checksumSourceLocation;\n this.source.pipe(this);\n }\n _read(size) {\n if (this.pendingCallback) {\n const callback = this.pendingCallback;\n this.pendingCallback = null;\n callback();\n }\n }\n _write(chunk, encoding, callback) {\n try {\n this.checksum.update(chunk);\n const canPushMore = this.push(chunk);\n if (!canPushMore) {\n this.pendingCallback = callback;\n return;\n }\n }\n catch (e) {\n return callback(e);\n }\n return callback();\n }\n async _final(callback) {\n try {\n const digest = await this.checksum.digest();\n const received = this.base64Encoder(digest);\n if (this.expectedChecksum !== received) {\n return callback(new Error(`Checksum mismatch: expected \"${this.expectedChecksum}\" but received \"${received}\"` +\n ` in response header \"${this.checksumSourceLocation}\".`));\n }\n }\n catch (e) {\n return callback(e);\n }\n this.push(null);\n return callback();\n }\n};\n\nconst isReadableStream = (stream) => typeof ReadableStream === \"function\" &&\n (stream?.constructor?.name === ReadableStream.name || stream instanceof ReadableStream);\nconst isBlob = (blob) => {\n return typeof Blob === \"function\" && (blob?.constructor?.name === Blob.name || blob instanceof Blob);\n};\n\nconst fromUtf8 = (input) => new TextEncoder().encode(input);\n\nconst chars = `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`;\nconst alphabetByEncoding = Object.entries(chars).reduce((acc, [i, c]) => {\n acc[c] = Number(i);\n return acc;\n}, {});\nconst alphabetByValue = chars.split(\"\");\nconst bitsPerLetter = 6;\nconst bitsPerByte = 8;\nconst maxLetterValue = 0b111111;\n\nfunction toBase64(_input) {\n let input;\n if (typeof _input === \"string\") {\n input = fromUtf8(_input);\n }\n else {\n input = _input;\n }\n const isArrayLike = typeof input === \"object\" && typeof input.length === \"number\";\n const isUint8Array = typeof input === \"object\" &&\n typeof input.byteOffset === \"number\" &&\n typeof input.byteLength === \"number\";\n if (!isArrayLike && !isUint8Array) {\n throw new Error(\"@smithy/util-base64: toBase64 encoder function only accepts string | Uint8Array.\");\n }\n let str = \"\";\n for (let i = 0; i < input.length; i += 3) {\n let bits = 0;\n let bitLength = 0;\n for (let j = i, limit = Math.min(i + 3, input.length); j < limit; j++) {\n bits |= input[j] << ((limit - j - 1) * bitsPerByte);\n bitLength += bitsPerByte;\n }\n const bitClusterCount = Math.ceil(bitLength / bitsPerLetter);\n bits <<= bitClusterCount * bitsPerLetter - bitLength;\n for (let k = 1; k <= bitClusterCount; k++) {\n const offset = (bitClusterCount - k) * bitsPerLetter;\n str += alphabetByValue[(bits & (maxLetterValue << offset)) >> offset];\n }\n str += \"==\".slice(0, 4 - bitClusterCount);\n }\n return str;\n}\n\nconst ReadableStreamRef = typeof ReadableStream === \"function\" ? ReadableStream : function () { };\nclass ChecksumStream extends ReadableStreamRef {\n}\n\nconst createChecksumStream$1 = ({ expectedChecksum, checksum, source, checksumSourceLocation, base64Encoder, }) => {\n if (!isReadableStream(source)) {\n throw new Error(`@smithy/util-stream: unsupported source type ${source?.constructor?.name ?? source} in ChecksumStream.`);\n }\n const encoder = base64Encoder ?? toBase64;\n if (typeof TransformStream !== \"function\") {\n throw new Error(\"@smithy/util-stream: unable to instantiate ChecksumStream because API unavailable: ReadableStream/TransformStream.\");\n }\n const transform = new TransformStream({\n start() { },\n async transform(chunk, controller) {\n checksum.update(chunk);\n controller.enqueue(chunk);\n },\n async flush(controller) {\n const digest = await checksum.digest();\n const received = encoder(digest);\n if (expectedChecksum !== received) {\n const error = new Error(`Checksum mismatch: expected \"${expectedChecksum}\" but received \"${received}\"` +\n ` in response header \"${checksumSourceLocation}\".`);\n controller.error(error);\n }\n else {\n controller.terminate();\n }\n },\n });\n source.pipeThrough(transform);\n const readable = transform.readable;\n Object.setPrototypeOf(readable, ChecksumStream.prototype);\n return readable;\n};\n\nfunction createChecksumStream(init) {\n if (typeof ReadableStream === \"function\" && isReadableStream(init.source)) {\n return createChecksumStream$1(init);\n }\n return new ChecksumStream$1(init);\n}\n\nclass ByteArrayCollector {\n allocByteArray;\n byteLength = 0;\n byteArrays = [];\n constructor(allocByteArray) {\n this.allocByteArray = allocByteArray;\n }\n push(byteArray) {\n this.byteArrays.push(byteArray);\n this.byteLength += byteArray.byteLength;\n }\n flush() {\n if (this.byteArrays.length === 1) {\n const bytes = this.byteArrays[0];\n this.reset();\n return bytes;\n }\n const aggregation = this.allocByteArray(this.byteLength);\n let cursor = 0;\n for (let i = 0; i < this.byteArrays.length; ++i) {\n const bytes = this.byteArrays[i];\n aggregation.set(bytes, cursor);\n cursor += bytes.byteLength;\n }\n this.reset();\n return aggregation;\n }\n reset() {\n this.byteArrays = [];\n this.byteLength = 0;\n }\n}\n\nfunction createBufferedReadableStream(upstream, size, logger) {\n const reader = upstream.getReader();\n let streamBufferingLoggedWarning = false;\n let bytesSeen = 0;\n const buffers = [\"\", new ByteArrayCollector((size) => new Uint8Array(size))];\n let mode = -1;\n const pull = async (controller) => {\n const { value, done } = await reader.read();\n const chunk = value;\n if (done) {\n if (mode !== -1) {\n const remainder = flush(buffers, mode);\n if (sizeOf(remainder) > 0) {\n controller.enqueue(remainder);\n }\n }\n controller.close();\n }\n else {\n const chunkMode = modeOf(chunk, false);\n if (mode !== chunkMode) {\n if (mode >= 0) {\n controller.enqueue(flush(buffers, mode));\n }\n mode = chunkMode;\n }\n if (mode === -1) {\n controller.enqueue(chunk);\n return;\n }\n const chunkSize = sizeOf(chunk);\n bytesSeen += chunkSize;\n const bufferSize = sizeOf(buffers[mode]);\n if (chunkSize >= size && bufferSize === 0) {\n controller.enqueue(chunk);\n }\n else {\n const newSize = merge(buffers, mode, chunk);\n if (!streamBufferingLoggedWarning && bytesSeen > size * 2) {\n streamBufferingLoggedWarning = true;\n logger?.warn(`@smithy/util-stream - stream chunk size ${chunkSize} is below threshold of ${size}, automatically buffering.`);\n }\n if (newSize >= size) {\n controller.enqueue(flush(buffers, mode));\n }\n else {\n await pull(controller);\n }\n }\n }\n };\n return new ReadableStream({\n pull,\n });\n}\nfunction merge(buffers, mode, chunk) {\n switch (mode) {\n case 0:\n buffers[0] += chunk;\n return sizeOf(buffers[0]);\n case 1:\n case 2:\n buffers[mode].push(chunk);\n return sizeOf(buffers[mode]);\n }\n}\nfunction flush(buffers, mode) {\n switch (mode) {\n case 0:\n const s = buffers[0];\n buffers[0] = \"\";\n return s;\n case 1:\n case 2:\n return buffers[mode].flush();\n }\n throw new Error(`@smithy/util-stream - invalid index ${mode} given to flush()`);\n}\nfunction sizeOf(chunk) {\n return chunk?.byteLength ?? chunk?.length ?? 0;\n}\nfunction modeOf(chunk, allowBuffer = true) {\n if (allowBuffer && typeof Buffer !== \"undefined\" && chunk instanceof Buffer) {\n return 2;\n }\n if (chunk instanceof Uint8Array) {\n return 1;\n }\n if (typeof chunk === \"string\") {\n return 0;\n }\n return -1;\n}\n\nfunction createBufferedReadable(upstream, size, logger) {\n if (isReadableStream(upstream)) {\n return createBufferedReadableStream(upstream, size, logger);\n }\n const downstream = new node_stream.Readable({ read() { } });\n let streamBufferingLoggedWarning = false;\n let bytesSeen = 0;\n const buffers = [\n \"\",\n new ByteArrayCollector((size) => new Uint8Array(size)),\n new ByteArrayCollector((size) => Buffer.from(new Uint8Array(size))),\n ];\n let mode = -1;\n upstream.on(\"data\", (chunk) => {\n const chunkMode = modeOf(chunk, true);\n if (mode !== chunkMode) {\n if (mode >= 0) {\n downstream.push(flush(buffers, mode));\n }\n mode = chunkMode;\n }\n if (mode === -1) {\n downstream.push(chunk);\n return;\n }\n const chunkSize = sizeOf(chunk);\n bytesSeen += chunkSize;\n const bufferSize = sizeOf(buffers[mode]);\n if (chunkSize >= size && bufferSize === 0) {\n downstream.push(chunk);\n }\n else {\n const newSize = merge(buffers, mode, chunk);\n if (!streamBufferingLoggedWarning && bytesSeen > size * 2) {\n streamBufferingLoggedWarning = true;\n logger?.warn(`@smithy/util-stream - stream chunk size ${chunkSize} is below threshold of ${size}, automatically buffering.`);\n }\n if (newSize >= size) {\n downstream.push(flush(buffers, mode));\n }\n }\n });\n upstream.on(\"end\", () => {\n if (mode !== -1) {\n const remainder = flush(buffers, mode);\n if (sizeOf(remainder) > 0) {\n downstream.push(remainder);\n }\n }\n downstream.push(null);\n });\n return downstream;\n}\n\nconst getAwsChunkedEncodingStream$1 = (readableStream, options) => {\n const { base64Encoder, bodyLengthChecker, checksumAlgorithmFn, checksumLocationName, streamHasher } = options;\n const checksumRequired = base64Encoder !== undefined &&\n bodyLengthChecker !== undefined &&\n checksumAlgorithmFn !== undefined &&\n checksumLocationName !== undefined &&\n streamHasher !== undefined;\n const digest = checksumRequired ? streamHasher(checksumAlgorithmFn, readableStream) : undefined;\n const reader = readableStream.getReader();\n return new ReadableStream({\n async pull(controller) {\n const { value, done } = await reader.read();\n if (done) {\n controller.enqueue(`0\\r\\n`);\n if (checksumRequired) {\n const checksum = base64Encoder(await digest);\n controller.enqueue(`${checksumLocationName}:${checksum}\\r\\n`);\n controller.enqueue(`\\r\\n`);\n }\n controller.close();\n }\n else {\n controller.enqueue(`${(bodyLengthChecker(value) || 0).toString(16)}\\r\\n${value}\\r\\n`);\n }\n },\n });\n};\n\nfunction getAwsChunkedEncodingStream(stream, options) {\n const readable = stream;\n const readableStream = stream;\n if (isReadableStream(readableStream)) {\n return getAwsChunkedEncodingStream$1(readableStream, options);\n }\n const { base64Encoder, bodyLengthChecker, checksumAlgorithmFn, checksumLocationName, streamHasher } = options;\n const checksumRequired = base64Encoder !== undefined &&\n checksumAlgorithmFn !== undefined &&\n checksumLocationName !== undefined &&\n streamHasher !== undefined;\n const digest = checksumRequired ? streamHasher(checksumAlgorithmFn, readable) : undefined;\n const awsChunkedEncodingStream = new node_stream.Readable({\n read: () => { },\n });\n readable.on(\"data\", (data) => {\n const length = bodyLengthChecker(data) || 0;\n if (length === 0) {\n return;\n }\n awsChunkedEncodingStream.push(`${length.toString(16)}\\r\\n`);\n awsChunkedEncodingStream.push(data);\n awsChunkedEncodingStream.push(\"\\r\\n\");\n });\n readable.on(\"end\", async () => {\n awsChunkedEncodingStream.push(`0\\r\\n`);\n if (checksumRequired) {\n const checksum = base64Encoder(await digest);\n awsChunkedEncodingStream.push(`${checksumLocationName}:${checksum}\\r\\n`);\n awsChunkedEncodingStream.push(`\\r\\n`);\n }\n awsChunkedEncodingStream.push(null);\n });\n return awsChunkedEncodingStream;\n}\n\nasync function headStream$1(stream, bytes) {\n let byteLengthCounter = 0;\n const chunks = [];\n const reader = stream.getReader();\n let isDone = false;\n while (!isDone) {\n const { done, value } = await reader.read();\n if (value) {\n chunks.push(value);\n byteLengthCounter += value?.byteLength ?? 0;\n }\n if (byteLengthCounter >= bytes) {\n break;\n }\n isDone = done;\n }\n reader.releaseLock();\n const collected = new Uint8Array(Math.min(bytes, byteLengthCounter));\n let offset = 0;\n for (const chunk of chunks) {\n if (chunk.byteLength > collected.byteLength - offset) {\n collected.set(chunk.subarray(0, collected.byteLength - offset), offset);\n break;\n }\n else {\n collected.set(chunk, offset);\n }\n offset += chunk.length;\n }\n return collected;\n}\n\nconst headStream = (stream, bytes) => {\n if (isReadableStream(stream)) {\n return headStream$1(stream, bytes);\n }\n return new Promise((resolve, reject) => {\n const collector = new Collector$1();\n collector.limit = bytes;\n stream.pipe(collector);\n stream.on(\"error\", (err) => {\n collector.end();\n reject(err);\n });\n collector.on(\"error\", reject);\n collector.on(\"finish\", function () {\n const bytes = new Uint8Array(Buffer.concat(this.buffers));\n resolve(bytes);\n });\n });\n};\nlet Collector$1 = class Collector extends node_stream.Writable {\n buffers = [];\n limit = Infinity;\n bytesBuffered = 0;\n _write(chunk, encoding, callback) {\n this.buffers.push(chunk);\n this.bytesBuffered += chunk.byteLength ?? 0;\n if (this.bytesBuffered >= this.limit) {\n const excess = this.bytesBuffered - this.limit;\n const tailBuffer = this.buffers[this.buffers.length - 1];\n this.buffers[this.buffers.length - 1] = tailBuffer.subarray(0, tailBuffer.byteLength - excess);\n this.emit(\"finish\");\n }\n callback();\n }\n};\n\nconst toUtf8 = (input) => {\n if (typeof input === \"string\") {\n return input;\n }\n if (typeof input !== \"object\" || typeof input.byteOffset !== \"number\" || typeof input.byteLength !== \"number\") {\n throw new Error(\"@smithy/util-utf8: toUtf8 encoder function only accepts string | Uint8Array.\");\n }\n return new TextDecoder(\"utf-8\").decode(input);\n};\n\nconst fromBase64 = (input) => {\n let totalByteLength = (input.length / 4) * 3;\n if (input.slice(-2) === \"==\") {\n totalByteLength -= 2;\n }\n else if (input.slice(-1) === \"=\") {\n totalByteLength--;\n }\n const out = new ArrayBuffer(totalByteLength);\n const dataView = new DataView(out);\n for (let i = 0; i < input.length; i += 4) {\n let bits = 0;\n let bitLength = 0;\n for (let j = i, limit = i + 3; j <= limit; j++) {\n if (input[j] !== \"=\") {\n if (!(input[j] in alphabetByEncoding)) {\n throw new TypeError(`Invalid character ${input[j]} in base64 string.`);\n }\n bits |= alphabetByEncoding[input[j]] << ((limit - j) * bitsPerLetter);\n bitLength += bitsPerLetter;\n }\n else {\n bits >>= bitsPerLetter;\n }\n }\n const chunkOffset = (i / 4) * 3;\n bits >>= bitLength % bitsPerByte;\n const byteLength = Math.floor(bitLength / bitsPerByte);\n for (let k = 0; k < byteLength; k++) {\n const offset = (byteLength - k - 1) * bitsPerByte;\n dataView.setUint8(chunkOffset + k, (bits & (255 << offset)) >> offset);\n }\n }\n return new Uint8Array(out);\n};\n\nconst streamCollector$1 = async (stream) => {\n if ((typeof Blob === \"function\" && stream instanceof Blob) || stream.constructor?.name === \"Blob\") {\n if (Blob.prototype.arrayBuffer !== undefined) {\n return new Uint8Array(await stream.arrayBuffer());\n }\n return collectBlob(stream);\n }\n return collectStream(stream);\n};\nasync function collectBlob(blob) {\n const base64 = await readToBase64(blob);\n const arrayBuffer = fromBase64(base64);\n return new Uint8Array(arrayBuffer);\n}\nasync function collectStream(stream) {\n const chunks = [];\n const reader = stream.getReader();\n let isDone = false;\n let length = 0;\n while (!isDone) {\n const { done, value } = await reader.read();\n if (value) {\n chunks.push(value);\n length += value.length;\n }\n isDone = done;\n }\n const collected = new Uint8Array(length);\n let offset = 0;\n for (const chunk of chunks) {\n collected.set(chunk, offset);\n offset += chunk.length;\n }\n return collected;\n}\nfunction readToBase64(blob) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onloadend = () => {\n if (reader.readyState !== 2) {\n return reject(new Error(\"Reader aborted too early\"));\n }\n const result = (reader.result ?? \"\");\n const commaIndex = result.indexOf(\",\");\n const dataOffset = commaIndex > -1 ? commaIndex + 1 : result.length;\n resolve(result.substring(dataOffset));\n };\n reader.onabort = () => reject(new Error(\"Read aborted\"));\n reader.onerror = () => reject(reader.error);\n reader.readAsDataURL(blob);\n });\n}\n\nconst ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED$1 = \"The stream has already been transformed.\";\nconst sdkStreamMixin$1 = (stream) => {\n if (!isBlobInstance(stream) && !isReadableStream(stream)) {\n const name = stream?.__proto__?.constructor?.name || stream;\n throw new Error(`Unexpected stream implementation, expect Blob or ReadableStream, got ${name}`);\n }\n let transformed = false;\n const transformToByteArray = async () => {\n if (transformed) {\n throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED$1);\n }\n transformed = true;\n return await streamCollector$1(stream);\n };\n const blobToWebStream = (blob) => {\n if (typeof blob.stream !== \"function\") {\n throw new Error(\"Cannot transform payload Blob to web stream. Please make sure the Blob.stream() is polyfilled.\\n\" +\n \"If you are using React Native, this API is not yet supported, see: https://react-native.canny.io/feature-requests/p/fetch-streaming-body\");\n }\n return blob.stream();\n };\n return Object.assign(stream, {\n transformToByteArray: transformToByteArray,\n transformToString: async (encoding) => {\n const buf = await transformToByteArray();\n if (encoding === \"base64\") {\n return toBase64(buf);\n }\n else if (encoding === \"hex\") {\n return toHex(buf);\n }\n else if (encoding === undefined || encoding === \"utf8\" || encoding === \"utf-8\") {\n return toUtf8(buf);\n }\n else if (typeof TextDecoder === \"function\") {\n return new TextDecoder(encoding).decode(buf);\n }\n else {\n throw new Error(\"TextDecoder is not available, please make sure polyfill is provided.\");\n }\n },\n transformToWebStream: () => {\n if (transformed) {\n throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED$1);\n }\n transformed = true;\n if (isBlobInstance(stream)) {\n return blobToWebStream(stream);\n }\n else if (isReadableStream(stream)) {\n return stream;\n }\n else {\n throw new Error(`Cannot transform payload to web stream, got ${stream}`);\n }\n },\n });\n};\nconst isBlobInstance = (stream) => typeof Blob === \"function\" && stream instanceof Blob;\n\nclass Collector extends node_stream.Writable {\n bufferedBytes = [];\n _write(chunk, encoding, callback) {\n this.bufferedBytes.push(chunk);\n callback();\n }\n}\nconst isReadableStreamInstance = (stream) => typeof ReadableStream === \"function\" && stream instanceof ReadableStream;\nasync function collectReadableStream(stream) {\n const chunks = [];\n const reader = stream.getReader();\n let isDone = false;\n let length = 0;\n while (!isDone) {\n const { done, value } = await reader.read();\n if (value) {\n chunks.push(value);\n length += value.length;\n }\n isDone = done;\n }\n const collected = new Uint8Array(length);\n let offset = 0;\n for (const chunk of chunks) {\n collected.set(chunk, offset);\n offset += chunk.length;\n }\n return collected;\n}\nconst streamCollector = (stream) => {\n if (isReadableStreamInstance(stream)) {\n return collectReadableStream(stream);\n }\n return new Promise((resolve, reject) => {\n const collector = new Collector();\n stream.pipe(collector);\n stream.on(\"error\", (err) => {\n collector.end();\n reject(err);\n });\n collector.on(\"error\", reject);\n collector.on(\"finish\", function () {\n const bytes = new Uint8Array(Buffer.concat(this.bufferedBytes));\n resolve(bytes);\n });\n });\n};\n\nconst ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED = \"The stream has already been transformed.\";\nconst sdkStreamMixin = (stream) => {\n if (!(stream instanceof node_stream.Readable)) {\n try {\n return sdkStreamMixin$1(stream);\n }\n catch (e) {\n const name = stream?.__proto__?.constructor?.name || stream;\n throw new Error(`Unexpected stream implementation, expect Stream.Readable instance, got ${name}`);\n }\n }\n let transformed = false;\n const transformToByteArray = async () => {\n if (transformed) {\n throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED);\n }\n transformed = true;\n return await streamCollector(stream);\n };\n return Object.assign(stream, {\n transformToByteArray,\n transformToString: async (encoding) => {\n const buf = await transformToByteArray();\n if (encoding === undefined || Buffer.isEncoding(encoding)) {\n return fromArrayBuffer(buf.buffer, buf.byteOffset, buf.byteLength).toString(encoding);\n }\n else {\n const decoder = new TextDecoder(encoding);\n return decoder.decode(buf);\n }\n },\n transformToWebStream: () => {\n if (transformed) {\n throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED);\n }\n if (stream.readableFlowing !== null) {\n throw new Error(\"The stream has been consumed by other callbacks.\");\n }\n if (typeof node_stream.Readable.toWeb !== \"function\") {\n throw new Error(\"Readable.toWeb() is not supported. Please ensure a polyfill is available.\");\n }\n transformed = true;\n return node_stream.Readable.toWeb(stream);\n },\n });\n};\n\nasync function splitStream$1(stream) {\n if (typeof stream.stream === \"function\") {\n stream = stream.stream();\n }\n const readableStream = stream;\n return readableStream.tee();\n}\n\nasync function splitStream(stream) {\n if (isReadableStream(stream) || isBlob(stream)) {\n return splitStream$1(stream);\n }\n const stream1 = new node_stream.PassThrough();\n const stream2 = new node_stream.PassThrough();\n stream.pipe(stream1);\n stream.pipe(stream2);\n return [stream1, stream2];\n}\n\nclass Uint8ArrayBlobAdapter extends bindUint8ArrayBlobAdapter(toUtf8$1, fromUtf8$1, toBase64$1, fromBase64$1) {\n}\nconst _getRandomValues = node_crypto.getRandomValues;\nconst v4 = bindV4(_getRandomValues);\nconst generateIdempotencyToken = v4;\n\nexports.ChecksumStream = ChecksumStream$1;\nexports.Hash = Hash;\nexports.LazyJsonString = LazyJsonString;\nexports.NumericValue = NumericValue;\nexports.Uint8ArrayBlobAdapter = Uint8ArrayBlobAdapter;\nexports._parseEpochTimestamp = _parseEpochTimestamp;\nexports._parseRfc3339DateTimeWithOffset = _parseRfc3339DateTimeWithOffset;\nexports._parseRfc7231DateTime = _parseRfc7231DateTime;\nexports.calculateBodyLength = calculateBodyLength;\nexports.copyDocumentWithTransform = copyDocumentWithTransform;\nexports.createBufferedReadable = createBufferedReadable;\nexports.createChecksumStream = createChecksumStream;\nexports.dateToUtcString = dateToUtcString;\nexports.deserializerMiddleware = deserializerMiddleware;\nexports.deserializerMiddlewareOption = deserializerMiddlewareOption;\nexports.expectBoolean = expectBoolean;\nexports.expectByte = expectByte;\nexports.expectFloat32 = expectFloat32;\nexports.expectInt = expectInt;\nexports.expectInt32 = expectInt32;\nexports.expectLong = expectLong;\nexports.expectNonNull = expectNonNull;\nexports.expectNumber = expectNumber;\nexports.expectObject = expectObject;\nexports.expectShort = expectShort;\nexports.expectString = expectString;\nexports.expectUnion = expectUnion;\nexports.fromArrayBuffer = fromArrayBuffer;\nexports.fromBase64 = fromBase64$1;\nexports.fromHex = fromHex;\nexports.fromString = fromString;\nexports.fromUtf8 = fromUtf8$1;\nexports.generateIdempotencyToken = generateIdempotencyToken;\nexports.getAwsChunkedEncodingStream = getAwsChunkedEncodingStream;\nexports.getSerdePlugin = getSerdePlugin;\nexports.handleFloat = handleFloat;\nexports.headStream = headStream;\nexports.isArrayBuffer = isArrayBuffer;\nexports.isBlob = isBlob;\nexports.isReadableStream = isReadableStream;\nexports.limitedParseDouble = limitedParseDouble;\nexports.limitedParseFloat = limitedParseFloat;\nexports.limitedParseFloat32 = limitedParseFloat32;\nexports.logger = logger;\nexports.nv = nv;\nexports.parseBoolean = parseBoolean;\nexports.parseEpochTimestamp = parseEpochTimestamp;\nexports.parseRfc3339DateTime = parseRfc3339DateTime;\nexports.parseRfc3339DateTimeWithOffset = parseRfc3339DateTimeWithOffset;\nexports.parseRfc7231DateTime = parseRfc7231DateTime;\nexports.quoteHeader = quoteHeader;\nexports.sdkStreamMixin = sdkStreamMixin;\nexports.serializerMiddleware = serializerMiddleware;\nexports.serializerMiddlewareOption = serializerMiddlewareOption;\nexports.splitEvery = splitEvery;\nexports.splitHeader = splitHeader;\nexports.splitStream = splitStream;\nexports.strictParseByte = strictParseByte;\nexports.strictParseDouble = strictParseDouble;\nexports.strictParseFloat = strictParseFloat;\nexports.strictParseFloat32 = strictParseFloat32;\nexports.strictParseInt = strictParseInt;\nexports.strictParseInt32 = strictParseInt32;\nexports.strictParseLong = strictParseLong;\nexports.strictParseShort = strictParseShort;\nexports.toBase64 = toBase64$1;\nexports.toHex = toHex;\nexports.toUint8Array = toUint8Array;\nexports.toUtf8 = toUtf8$1;\nexports.v4 = v4;\n"
12
+ ],
13
+ "mappings": "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",
14
+ "debugId": "9F4F36CEB7A9870E64756E2164756E21",
15
+ "names": []
16
+ }