gemi 0.35.0 → 0.36.0
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.
- package/dist/app/index.js +3 -3
- package/dist/app/index.js.map +3 -3
- package/dist/bin/gemi.js +134 -73
- package/dist/bin/gemi.js.map +6 -6
- package/dist/broadcasting/index.js +1 -1
- package/dist/{chunk-h9jhxz2x.js → chunk-07keqpsw.js} +2 -2
- package/dist/{chunk-h9jhxz2x.js.map → chunk-07keqpsw.js.map} +1 -1
- package/dist/{chunk-qr0d4b5g.js → chunk-1gd1fyth.js} +2 -2
- package/dist/{chunk-qr0d4b5g.js.map → chunk-1gd1fyth.js.map} +3 -3
- package/dist/{chunk-a9pdqf5t.js → chunk-1sdckzzr.js} +2 -2
- package/dist/{chunk-a9pdqf5t.js.map → chunk-1sdckzzr.js.map} +2 -2
- package/dist/chunk-21hd56fa.js +4 -0
- package/dist/{chunk-nrx04seh.js.map → chunk-21hd56fa.js.map} +4 -4
- package/dist/chunk-2vpsbhpm.js +5 -0
- package/dist/{chunk-9n86xysb.js.map → chunk-2vpsbhpm.js.map} +1 -1
- package/dist/chunk-3vxaqv3c.js +4 -0
- package/dist/chunk-3vxaqv3c.js.map +18 -0
- package/dist/chunk-4pxf7y2s.js +5 -0
- package/dist/{chunk-b6bzvtq4.js.map → chunk-4pxf7y2s.js.map} +1 -1
- package/dist/{chunk-k47r0hsx.js → chunk-513mekrd.js} +2 -2
- package/dist/{chunk-k47r0hsx.js.map → chunk-513mekrd.js.map} +3 -3
- package/dist/chunk-640e07kh.js +4 -0
- package/dist/chunk-640e07kh.js.map +18 -0
- package/dist/{chunk-767rmjwk.js → chunk-65z4wbps.js} +1 -1
- package/dist/chunk-69wrnjjn.js +5 -0
- package/dist/chunk-69wrnjjn.js.map +10 -0
- package/dist/chunk-6g2bsmwf.js +5 -0
- package/dist/{chunk-nmnvzhbg.js.map → chunk-6g2bsmwf.js.map} +3 -3
- package/dist/{chunk-2xy7v0g8.js → chunk-8ty8fefr.js} +2 -2
- package/dist/{chunk-2xy7v0g8.js.map → chunk-8ty8fefr.js.map} +1 -1
- package/dist/{chunk-r0830s5q.js → chunk-9p1z3vnt.js} +2 -2
- package/dist/{chunk-r0830s5q.js.map → chunk-9p1z3vnt.js.map} +1 -1
- package/dist/chunk-bwd327vf.js +32 -0
- package/dist/chunk-bwd327vf.js.map +43 -0
- package/dist/{chunk-qpyzybek.js → chunk-e2713ftx.js} +2 -2
- package/dist/{chunk-qpyzybek.js.map → chunk-e2713ftx.js.map} +1 -1
- package/dist/{chunk-ve14d93s.js → chunk-e4vawn5g.js} +2 -2
- package/dist/{chunk-ve14d93s.js.map → chunk-e4vawn5g.js.map} +1 -1
- package/dist/{chunk-rasyrk0x.js → chunk-es84e2a1.js} +3 -3
- package/dist/{chunk-rasyrk0x.js.map → chunk-es84e2a1.js.map} +1 -1
- package/dist/{chunk-xzg1b2z7.js → chunk-fjqa7s60.js} +2 -2
- package/dist/{chunk-xzg1b2z7.js.map → chunk-fjqa7s60.js.map} +2 -2
- package/dist/chunk-ghy6gn4g.js +5 -0
- package/dist/chunk-ghy6gn4g.js.map +11 -0
- package/dist/{chunk-36rsqj4c.js → chunk-gj2setdy.js} +2 -2
- package/dist/chunk-gj2setdy.js.map +13 -0
- package/dist/{chunk-myee2gs0.js → chunk-gncq70ga.js} +3 -3
- package/dist/{chunk-myee2gs0.js.map → chunk-gncq70ga.js.map} +2 -2
- package/dist/{chunk-zz9bxhhv.js → chunk-haenvmrp.js} +3 -3
- package/dist/{chunk-zz9bxhhv.js.map → chunk-haenvmrp.js.map} +1 -1
- package/dist/{chunk-wdhx2g1k.js → chunk-kp6wx276.js} +2 -2
- package/dist/{chunk-wdhx2g1k.js.map → chunk-kp6wx276.js.map} +2 -2
- package/dist/{chunk-nypaxg5s.js → chunk-m5g0mh9n.js} +3 -3
- package/dist/{chunk-nypaxg5s.js.map → chunk-m5g0mh9n.js.map} +1 -1
- package/dist/{chunk-mcxe6c90.js → chunk-mnvzewf8.js} +2 -2
- package/dist/{chunk-mcxe6c90.js.map → chunk-mnvzewf8.js.map} +3 -3
- package/dist/{chunk-ak88bhtn.js → chunk-pp10jse0.js} +3 -3
- package/dist/{chunk-ak88bhtn.js.map → chunk-pp10jse0.js.map} +2 -2
- package/dist/chunk-qy4114a4.js +4 -0
- package/dist/chunk-qy4114a4.js.map +19 -0
- package/dist/{chunk-3nxfa642.js → chunk-rat133ng.js} +51 -51
- package/dist/{chunk-3nxfa642.js.map → chunk-rat133ng.js.map} +17 -17
- package/dist/chunk-tp6rd9q1.js +4 -0
- package/dist/chunk-tp6rd9q1.js.map +22 -0
- package/dist/{chunk-hpdz0h4c.js → chunk-txk5dr5r.js} +2 -2
- package/dist/{chunk-hpdz0h4c.js.map → chunk-txk5dr5r.js.map} +2 -2
- package/dist/{chunk-av2gtbbe.js → chunk-vmpxc391.js} +2 -2
- package/dist/{chunk-av2gtbbe.js.map → chunk-vmpxc391.js.map} +1 -1
- package/dist/{chunk-v98329xf.js → chunk-wm448x87.js} +1 -1
- package/dist/chunk-xak5xspk.js +21 -0
- package/dist/chunk-xak5xspk.js.map +43 -0
- package/dist/{chunk-ap5svqgk.js → chunk-xdm3d6a3.js} +2 -2
- package/dist/{chunk-ap5svqgk.js.map → chunk-xdm3d6a3.js.map} +2 -2
- package/dist/chunk-y5h3n5t8.js +5 -0
- package/dist/{chunk-k78w4dqh.js.map → chunk-y5h3n5t8.js.map} +1 -1
- package/dist/chunk-yhrk5bfy.js +5 -0
- package/dist/{chunk-ssvnwn8n.js.map → chunk-yhrk5bfy.js.map} +4 -4
- package/dist/{chunk-th2hknhb.js → chunk-za0tn4cg.js} +6 -6
- package/dist/{chunk-th2hknhb.js.map → chunk-za0tn4cg.js.map} +4 -4
- package/dist/client/index.js +10208 -7659
- package/dist/client/index.js.map +1 -1
- package/dist/email/Email.d.ts +1 -0
- package/dist/email/Email.d.ts.map +1 -1
- package/dist/email/index.js +2 -2
- package/dist/email/index.js.map +3 -3
- package/dist/facades/index.js +2 -2
- package/dist/facades/index.js.map +1 -1
- package/dist/http/index.js +2 -2
- package/dist/http/index.js.map +1 -1
- package/dist/i18n/index.js +1 -1
- package/dist/kernel/index.js +2 -2
- package/dist/kernel/index.js.map +3 -3
- package/dist/server/index.js +2 -2
- package/dist/server/index.js.map +1 -1
- package/dist/services/index.js +2 -2
- package/dist/services/index.js.map +1 -1
- package/dist/vite/{index-DIJejLN8.mjs → index-3fSp4NVF.mjs} +1 -1
- package/dist/vite/index.mjs +1 -1
- package/dist/vite/{typescript-CM73P_uJ.mjs → typescript-1ZdUKbbC.mjs} +15 -5
- package/package.json +1 -2
- package/dist/chunk-11yk2z9x.js +0 -32
- package/dist/chunk-11yk2z9x.js.map +0 -43
- package/dist/chunk-36rsqj4c.js.map +0 -13
- package/dist/chunk-3kssr2vd.js +0 -4
- package/dist/chunk-3kssr2vd.js.map +0 -15
- package/dist/chunk-5sjb8aqm.js +0 -4
- package/dist/chunk-5sjb8aqm.js.map +0 -22
- package/dist/chunk-60w3jw47.js +0 -4
- package/dist/chunk-60w3jw47.js.map +0 -15
- package/dist/chunk-95b92a6a.js +0 -5
- package/dist/chunk-95b92a6a.js.map +0 -12
- package/dist/chunk-9n86xysb.js +0 -5
- package/dist/chunk-a11m65k0.js +0 -4
- package/dist/chunk-a11m65k0.js.map +0 -19
- package/dist/chunk-b6bzvtq4.js +0 -5
- package/dist/chunk-bqm0qsyv.js +0 -21
- package/dist/chunk-bqm0qsyv.js.map +0 -42
- package/dist/chunk-k78w4dqh.js +0 -5
- package/dist/chunk-nmnvzhbg.js +0 -5
- package/dist/chunk-nrx04seh.js +0 -4
- package/dist/chunk-ssvnwn8n.js +0 -5
- /package/dist/{chunk-767rmjwk.js.map → chunk-65z4wbps.js.map} +0 -0
- /package/dist/{chunk-v98329xf.js.map → chunk-wm448x87.js.map} +0 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../node_modules/.bun/@smithy+core@3.23.12/node_modules/@smithy/core/dist-cjs/index.js", "../../../node_modules/.bun/@aws-sdk+middleware-host-header@3.972.8/node_modules/@aws-sdk/middleware-host-header/dist-cjs/index.js", "../../../node_modules/.bun/@aws-sdk+middleware-logger@3.972.8/node_modules/@aws-sdk/middleware-logger/dist-cjs/index.js", "../../../node_modules/.bun/@aws+lambda-invoke-store@0.2.4/node_modules/@aws/lambda-invoke-store/dist-cjs/invoke-store.js", "../../../node_modules/.bun/@aws-sdk+middleware-recursion-detection@3.972.8/node_modules/@aws-sdk/middleware-recursion-detection/dist-cjs/recursionDetectionMiddleware.js", "../../../node_modules/.bun/@aws-sdk+middleware-recursion-detection@3.972.8/node_modules/@aws-sdk/middleware-recursion-detection/dist-cjs/index.js", "../../../node_modules/.bun/@smithy+util-endpoints@3.3.3/node_modules/@smithy/util-endpoints/dist-cjs/index.js", "../../../node_modules/.bun/@aws-sdk+util-endpoints@3.996.5/node_modules/@aws-sdk/util-endpoints/dist-cjs/index.js", "../../../node_modules/.bun/@smithy+signature-v4@5.3.12/node_modules/@smithy/signature-v4/dist-cjs/index.js", "../../../node_modules/.bun/@smithy+util-body-length-browser@4.2.2/node_modules/@smithy/util-body-length-browser/dist-cjs/index.js", "../../../node_modules/.bun/@smithy+core@3.23.12/node_modules/@smithy/core/dist-cjs/submodules/cbor/index.js", "../../../node_modules/.bun/fast-xml-parser@5.5.8/node_modules/fast-xml-parser/lib/fxp.cjs", "../../../node_modules/.bun/@aws-sdk+xml-builder@3.972.15/node_modules/@aws-sdk/xml-builder/dist-cjs/xml-parser.js", "../../../node_modules/.bun/@aws-sdk+xml-builder@3.972.15/node_modules/@aws-sdk/xml-builder/dist-cjs/index.js", "../../../node_modules/.bun/@aws-sdk+core@3.973.24/node_modules/@aws-sdk/core/dist-cjs/index.js", "../../../node_modules/.bun/@smithy+service-error-classification@4.2.12/node_modules/@smithy/service-error-classification/dist-cjs/index.js", "../../../node_modules/.bun/@smithy+util-retry@4.2.12/node_modules/@smithy/util-retry/dist-cjs/index.js", "../../../node_modules/.bun/@aws-sdk+middleware-user-agent@3.972.25/node_modules/@aws-sdk/middleware-user-agent/dist-cjs/index.js", "../../../node_modules/.bun/@smithy+util-config-provider@4.2.2/node_modules/@smithy/util-config-provider/dist-cjs/index.js", "../../../node_modules/.bun/@smithy+config-resolver@4.4.13/node_modules/@smithy/config-resolver/dist-cjs/index.js", "../../../node_modules/.bun/@smithy+middleware-content-length@4.2.12/node_modules/@smithy/middleware-content-length/dist-cjs/index.js", "../../../node_modules/.bun/@smithy+middleware-endpoint@4.4.27/node_modules/@smithy/middleware-endpoint/dist-cjs/adaptors/getEndpointUrlConfig.js", "../../../node_modules/.bun/@smithy+middleware-endpoint@4.4.27/node_modules/@smithy/middleware-endpoint/dist-cjs/adaptors/getEndpointFromConfig.js", "../../../node_modules/.bun/@smithy+middleware-serde@4.2.15/node_modules/@smithy/middleware-serde/dist-cjs/index.js", "../../../node_modules/.bun/@smithy+middleware-endpoint@4.4.27/node_modules/@smithy/middleware-endpoint/dist-cjs/index.js", "../../../node_modules/.bun/@smithy+middleware-retry@4.4.44/node_modules/@smithy/middleware-retry/dist-cjs/isStreamingPayload/isStreamingPayload.js", "../../../node_modules/.bun/@smithy+middleware-retry@4.4.44/node_modules/@smithy/middleware-retry/dist-cjs/index.js", "../../../node_modules/.bun/@aws-sdk+region-config-resolver@3.972.9/node_modules/@aws-sdk/region-config-resolver/dist-cjs/regionConfig/stsRegionDefaultResolver.js", "../../../node_modules/.bun/@aws-sdk+region-config-resolver@3.972.9/node_modules/@aws-sdk/region-config-resolver/dist-cjs/index.js", "../../../node_modules/.bun/@aws-sdk+util-user-agent-node@3.973.11/node_modules/@aws-sdk/util-user-agent-node/dist-cjs/index.js", "../../../node_modules/.bun/@smithy+hash-node@4.2.12/node_modules/@smithy/hash-node/dist-cjs/index.js", "../../../node_modules/.bun/@smithy+util-body-length-node@4.2.3/node_modules/@smithy/util-body-length-node/dist-cjs/index.js", "../../../node_modules/.bun/@smithy+util-defaults-mode-node@4.2.47/node_modules/@smithy/util-defaults-mode-node/dist-cjs/index.js", "../../../node_modules/.bun/@aws-sdk+core@3.973.24/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"'use strict';\n\nvar types = require('@smithy/types');\nvar utilMiddleware = require('@smithy/util-middleware');\nvar protocolHttp = require('@smithy/protocol-http');\nvar protocols = require('@smithy/core/protocols');\n\nconst getSmithyContext = (context) => context[types.SMITHY_CONTEXT_KEY] || (context[types.SMITHY_CONTEXT_KEY] = {});\n\nconst resolveAuthOptions = (candidateAuthOptions, authSchemePreference) => {\n if (!authSchemePreference || authSchemePreference.length === 0) {\n return candidateAuthOptions;\n }\n const preferredAuthOptions = [];\n for (const preferredSchemeName of authSchemePreference) {\n for (const candidateAuthOption of candidateAuthOptions) {\n const candidateAuthSchemeName = candidateAuthOption.schemeId.split(\"#\")[1];\n if (candidateAuthSchemeName === preferredSchemeName) {\n preferredAuthOptions.push(candidateAuthOption);\n }\n }\n }\n for (const candidateAuthOption of candidateAuthOptions) {\n if (!preferredAuthOptions.find(({ schemeId }) => schemeId === candidateAuthOption.schemeId)) {\n preferredAuthOptions.push(candidateAuthOption);\n }\n }\n return preferredAuthOptions;\n};\n\nfunction convertHttpAuthSchemesToMap(httpAuthSchemes) {\n const map = new Map();\n for (const scheme of httpAuthSchemes) {\n map.set(scheme.schemeId, scheme);\n }\n return map;\n}\nconst httpAuthSchemeMiddleware = (config, mwOptions) => (next, context) => async (args) => {\n const options = config.httpAuthSchemeProvider(await mwOptions.httpAuthSchemeParametersProvider(config, context, args.input));\n const authSchemePreference = config.authSchemePreference ? await config.authSchemePreference() : [];\n const resolvedOptions = resolveAuthOptions(options, authSchemePreference);\n const authSchemes = convertHttpAuthSchemesToMap(config.httpAuthSchemes);\n const smithyContext = utilMiddleware.getSmithyContext(context);\n const failureReasons = [];\n for (const option of resolvedOptions) {\n const scheme = authSchemes.get(option.schemeId);\n if (!scheme) {\n failureReasons.push(`HttpAuthScheme \\`${option.schemeId}\\` was not enabled for this service.`);\n continue;\n }\n const identityProvider = scheme.identityProvider(await mwOptions.identityProviderConfigProvider(config));\n if (!identityProvider) {\n failureReasons.push(`HttpAuthScheme \\`${option.schemeId}\\` did not have an IdentityProvider configured.`);\n continue;\n }\n const { identityProperties = {}, signingProperties = {} } = option.propertiesExtractor?.(config, context) || {};\n option.identityProperties = Object.assign(option.identityProperties || {}, identityProperties);\n option.signingProperties = Object.assign(option.signingProperties || {}, signingProperties);\n smithyContext.selectedHttpAuthScheme = {\n httpAuthOption: option,\n identity: await identityProvider(option.identityProperties),\n signer: scheme.signer,\n };\n break;\n }\n if (!smithyContext.selectedHttpAuthScheme) {\n throw new Error(failureReasons.join(\"\\n\"));\n }\n return next(args);\n};\n\nconst httpAuthSchemeEndpointRuleSetMiddlewareOptions = {\n step: \"serialize\",\n tags: [\"HTTP_AUTH_SCHEME\"],\n name: \"httpAuthSchemeMiddleware\",\n override: true,\n relation: \"before\",\n toMiddleware: \"endpointV2Middleware\",\n};\nconst getHttpAuthSchemeEndpointRuleSetPlugin = (config, { httpAuthSchemeParametersProvider, identityProviderConfigProvider, }) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo(httpAuthSchemeMiddleware(config, {\n httpAuthSchemeParametersProvider,\n identityProviderConfigProvider,\n }), httpAuthSchemeEndpointRuleSetMiddlewareOptions);\n },\n});\n\nconst httpAuthSchemeMiddlewareOptions = {\n step: \"serialize\",\n tags: [\"HTTP_AUTH_SCHEME\"],\n name: \"httpAuthSchemeMiddleware\",\n override: true,\n relation: \"before\",\n toMiddleware: \"serializerMiddleware\",\n};\nconst getHttpAuthSchemePlugin = (config, { httpAuthSchemeParametersProvider, identityProviderConfigProvider, }) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo(httpAuthSchemeMiddleware(config, {\n httpAuthSchemeParametersProvider,\n identityProviderConfigProvider,\n }), httpAuthSchemeMiddlewareOptions);\n },\n});\n\nconst defaultErrorHandler = (signingProperties) => (error) => {\n throw error;\n};\nconst defaultSuccessHandler = (httpResponse, signingProperties) => { };\nconst httpSigningMiddleware = (config) => (next, context) => async (args) => {\n if (!protocolHttp.HttpRequest.isInstance(args.request)) {\n return next(args);\n }\n const smithyContext = utilMiddleware.getSmithyContext(context);\n const scheme = smithyContext.selectedHttpAuthScheme;\n if (!scheme) {\n throw new Error(`No HttpAuthScheme was selected: unable to sign request`);\n }\n const { httpAuthOption: { signingProperties = {} }, identity, signer, } = scheme;\n const output = await next({\n ...args,\n request: await signer.sign(args.request, identity, signingProperties),\n }).catch((signer.errorHandler || defaultErrorHandler)(signingProperties));\n (signer.successHandler || defaultSuccessHandler)(output.response, signingProperties);\n return output;\n};\n\nconst httpSigningMiddlewareOptions = {\n step: \"finalizeRequest\",\n tags: [\"HTTP_SIGNING\"],\n name: \"httpSigningMiddleware\",\n aliases: [\"apiKeyMiddleware\", \"tokenMiddleware\", \"awsAuthMiddleware\"],\n override: true,\n relation: \"after\",\n toMiddleware: \"retryMiddleware\",\n};\nconst getHttpSigningPlugin = (config) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo(httpSigningMiddleware(), httpSigningMiddlewareOptions);\n },\n});\n\nconst normalizeProvider = (input) => {\n if (typeof input === \"function\")\n return input;\n const promisified = Promise.resolve(input);\n return () => promisified;\n};\n\nconst makePagedClientRequest = async (CommandCtor, client, input, withCommand = (_) => _, ...args) => {\n let command = new CommandCtor(input);\n command = withCommand(command) ?? command;\n return await client.send(command, ...args);\n};\nfunction createPaginator(ClientCtor, CommandCtor, inputTokenName, outputTokenName, pageSizeTokenName) {\n return async function* paginateOperation(config, input, ...additionalArguments) {\n const _input = input;\n let token = config.startingToken ?? _input[inputTokenName];\n let hasNext = true;\n let page;\n while (hasNext) {\n _input[inputTokenName] = token;\n if (pageSizeTokenName) {\n _input[pageSizeTokenName] = _input[pageSizeTokenName] ?? config.pageSize;\n }\n if (config.client instanceof ClientCtor) {\n page = await makePagedClientRequest(CommandCtor, config.client, input, config.withCommand, ...additionalArguments);\n }\n else {\n throw new Error(`Invalid client, expected instance of ${ClientCtor.name}`);\n }\n yield page;\n const prevToken = token;\n token = get(page, outputTokenName);\n hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));\n }\n return undefined;\n };\n}\nconst get = (fromObject, path) => {\n let cursor = fromObject;\n const pathComponents = path.split(\".\");\n for (const step of pathComponents) {\n if (!cursor || typeof cursor !== \"object\") {\n return undefined;\n }\n cursor = cursor[step];\n }\n return cursor;\n};\n\nfunction setFeature(context, feature, value) {\n if (!context.__smithy_context) {\n context.__smithy_context = {\n features: {},\n };\n }\n else if (!context.__smithy_context.features) {\n context.__smithy_context.features = {};\n }\n context.__smithy_context.features[feature] = value;\n}\n\nclass DefaultIdentityProviderConfig {\n authSchemes = new Map();\n constructor(config) {\n for (const [key, value] of Object.entries(config)) {\n if (value !== undefined) {\n this.authSchemes.set(key, value);\n }\n }\n }\n getIdentityProvider(schemeId) {\n return this.authSchemes.get(schemeId);\n }\n}\n\nclass HttpApiKeyAuthSigner {\n async sign(httpRequest, identity, signingProperties) {\n if (!signingProperties) {\n throw new Error(\"request could not be signed with `apiKey` since the `name` and `in` signer properties are missing\");\n }\n if (!signingProperties.name) {\n throw new Error(\"request could not be signed with `apiKey` since the `name` signer property is missing\");\n }\n if (!signingProperties.in) {\n throw new Error(\"request could not be signed with `apiKey` since the `in` signer property is missing\");\n }\n if (!identity.apiKey) {\n throw new Error(\"request could not be signed with `apiKey` since the `apiKey` is not defined\");\n }\n const clonedRequest = protocolHttp.HttpRequest.clone(httpRequest);\n if (signingProperties.in === types.HttpApiKeyAuthLocation.QUERY) {\n clonedRequest.query[signingProperties.name] = identity.apiKey;\n }\n else if (signingProperties.in === types.HttpApiKeyAuthLocation.HEADER) {\n clonedRequest.headers[signingProperties.name] = signingProperties.scheme\n ? `${signingProperties.scheme} ${identity.apiKey}`\n : identity.apiKey;\n }\n else {\n throw new Error(\"request can only be signed with `apiKey` locations `query` or `header`, \" +\n \"but found: `\" +\n signingProperties.in +\n \"`\");\n }\n return clonedRequest;\n }\n}\n\nclass HttpBearerAuthSigner {\n async sign(httpRequest, identity, signingProperties) {\n const clonedRequest = protocolHttp.HttpRequest.clone(httpRequest);\n if (!identity.token) {\n throw new Error(\"request could not be signed with `token` since the `token` is not defined\");\n }\n clonedRequest.headers[\"Authorization\"] = `Bearer ${identity.token}`;\n return clonedRequest;\n }\n}\n\nclass NoAuthSigner {\n async sign(httpRequest, identity, signingProperties) {\n return httpRequest;\n }\n}\n\nconst createIsIdentityExpiredFunction = (expirationMs) => function isIdentityExpired(identity) {\n return doesIdentityRequireRefresh(identity) && identity.expiration.getTime() - Date.now() < expirationMs;\n};\nconst EXPIRATION_MS = 300_000;\nconst isIdentityExpired = createIsIdentityExpiredFunction(EXPIRATION_MS);\nconst doesIdentityRequireRefresh = (identity) => identity.expiration !== undefined;\nconst memoizeIdentityProvider = (provider, isExpired, requiresRefresh) => {\n if (provider === undefined) {\n return undefined;\n }\n const normalizedProvider = typeof provider !== \"function\" ? async () => Promise.resolve(provider) : provider;\n let resolved;\n let pending;\n let hasResult;\n let isConstant = false;\n const coalesceProvider = async (options) => {\n if (!pending) {\n pending = normalizedProvider(options);\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(options);\n }\n return resolved;\n };\n }\n return async (options) => {\n if (!hasResult || options?.forceRefresh) {\n resolved = await coalesceProvider(options);\n }\n if (isConstant) {\n return resolved;\n }\n if (!requiresRefresh(resolved)) {\n isConstant = true;\n return resolved;\n }\n if (isExpired(resolved)) {\n await coalesceProvider(options);\n return resolved;\n }\n return resolved;\n };\n};\n\nexports.requestBuilder = protocols.requestBuilder;\nexports.DefaultIdentityProviderConfig = DefaultIdentityProviderConfig;\nexports.EXPIRATION_MS = EXPIRATION_MS;\nexports.HttpApiKeyAuthSigner = HttpApiKeyAuthSigner;\nexports.HttpBearerAuthSigner = HttpBearerAuthSigner;\nexports.NoAuthSigner = NoAuthSigner;\nexports.createIsIdentityExpiredFunction = createIsIdentityExpiredFunction;\nexports.createPaginator = createPaginator;\nexports.doesIdentityRequireRefresh = doesIdentityRequireRefresh;\nexports.getHttpAuthSchemeEndpointRuleSetPlugin = getHttpAuthSchemeEndpointRuleSetPlugin;\nexports.getHttpAuthSchemePlugin = getHttpAuthSchemePlugin;\nexports.getHttpSigningPlugin = getHttpSigningPlugin;\nexports.getSmithyContext = getSmithyContext;\nexports.httpAuthSchemeEndpointRuleSetMiddlewareOptions = httpAuthSchemeEndpointRuleSetMiddlewareOptions;\nexports.httpAuthSchemeMiddleware = httpAuthSchemeMiddleware;\nexports.httpAuthSchemeMiddlewareOptions = httpAuthSchemeMiddlewareOptions;\nexports.httpSigningMiddleware = httpSigningMiddleware;\nexports.httpSigningMiddlewareOptions = httpSigningMiddlewareOptions;\nexports.isIdentityExpired = isIdentityExpired;\nexports.memoizeIdentityProvider = memoizeIdentityProvider;\nexports.normalizeProvider = normalizeProvider;\nexports.setFeature = setFeature;\n",
|
|
6
|
+
"'use strict';\n\nvar protocolHttp = require('@smithy/protocol-http');\n\nfunction resolveHostHeaderConfig(input) {\n return input;\n}\nconst hostHeaderMiddleware = (options) => (next) => async (args) => {\n if (!protocolHttp.HttpRequest.isInstance(args.request))\n return next(args);\n const { request } = args;\n const { handlerProtocol = \"\" } = options.requestHandler.metadata || {};\n if (handlerProtocol.indexOf(\"h2\") >= 0 && !request.headers[\":authority\"]) {\n delete request.headers[\"host\"];\n request.headers[\":authority\"] = request.hostname + (request.port ? \":\" + request.port : \"\");\n }\n else if (!request.headers[\"host\"]) {\n let host = request.hostname;\n if (request.port != null)\n host += `:${request.port}`;\n request.headers[\"host\"] = host;\n }\n return next(args);\n};\nconst hostHeaderMiddlewareOptions = {\n name: \"hostHeaderMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"HOST\"],\n override: true,\n};\nconst getHostHeaderPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions);\n },\n});\n\nexports.getHostHeaderPlugin = getHostHeaderPlugin;\nexports.hostHeaderMiddleware = hostHeaderMiddleware;\nexports.hostHeaderMiddlewareOptions = hostHeaderMiddlewareOptions;\nexports.resolveHostHeaderConfig = resolveHostHeaderConfig;\n",
|
|
7
|
+
"'use strict';\n\nconst loggerMiddleware = () => (next, context) => async (args) => {\n try {\n const response = await next(args);\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog, overrideOutputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n const outputFilterSensitiveLog = overrideOutputFilterSensitiveLog ?? context.outputFilterSensitiveLog;\n const { $metadata, ...outputWithoutMetadata } = response.output;\n logger?.info?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n output: outputFilterSensitiveLog(outputWithoutMetadata),\n metadata: $metadata,\n });\n return response;\n }\n catch (error) {\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n logger?.error?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n error,\n metadata: error.$metadata,\n });\n throw error;\n }\n};\nconst loggerMiddlewareOptions = {\n name: \"loggerMiddleware\",\n tags: [\"LOGGER\"],\n step: \"initialize\",\n override: true,\n};\nconst getLoggerPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(loggerMiddleware(), loggerMiddlewareOptions);\n },\n});\n\nexports.getLoggerPlugin = getLoggerPlugin;\nexports.loggerMiddleware = loggerMiddleware;\nexports.loggerMiddlewareOptions = loggerMiddlewareOptions;\n",
|
|
8
|
+
"'use strict';\n\nconst PROTECTED_KEYS = {\n REQUEST_ID: Symbol.for(\"_AWS_LAMBDA_REQUEST_ID\"),\n X_RAY_TRACE_ID: Symbol.for(\"_AWS_LAMBDA_X_RAY_TRACE_ID\"),\n TENANT_ID: Symbol.for(\"_AWS_LAMBDA_TENANT_ID\"),\n};\nconst NO_GLOBAL_AWS_LAMBDA = [\"true\", \"1\"].includes(process.env?.AWS_LAMBDA_NODEJS_NO_GLOBAL_AWSLAMBDA ?? \"\");\nif (!NO_GLOBAL_AWS_LAMBDA) {\n globalThis.awslambda = globalThis.awslambda || {};\n}\nclass InvokeStoreBase {\n static PROTECTED_KEYS = PROTECTED_KEYS;\n isProtectedKey(key) {\n return Object.values(PROTECTED_KEYS).includes(key);\n }\n getRequestId() {\n return this.get(PROTECTED_KEYS.REQUEST_ID) ?? \"-\";\n }\n getXRayTraceId() {\n return this.get(PROTECTED_KEYS.X_RAY_TRACE_ID);\n }\n getTenantId() {\n return this.get(PROTECTED_KEYS.TENANT_ID);\n }\n}\nclass InvokeStoreSingle extends InvokeStoreBase {\n currentContext;\n getContext() {\n return this.currentContext;\n }\n hasContext() {\n return this.currentContext !== undefined;\n }\n get(key) {\n return this.currentContext?.[key];\n }\n set(key, value) {\n if (this.isProtectedKey(key)) {\n throw new Error(`Cannot modify protected Lambda context field: ${String(key)}`);\n }\n this.currentContext = this.currentContext || {};\n this.currentContext[key] = value;\n }\n run(context, fn) {\n this.currentContext = context;\n return fn();\n }\n}\nclass InvokeStoreMulti extends InvokeStoreBase {\n als;\n static async create() {\n const instance = new InvokeStoreMulti();\n const asyncHooks = await import('node:async_hooks');\n instance.als = new asyncHooks.AsyncLocalStorage();\n return instance;\n }\n getContext() {\n return this.als.getStore();\n }\n hasContext() {\n return this.als.getStore() !== undefined;\n }\n get(key) {\n return this.als.getStore()?.[key];\n }\n set(key, value) {\n if (this.isProtectedKey(key)) {\n throw new Error(`Cannot modify protected Lambda context field: ${String(key)}`);\n }\n const store = this.als.getStore();\n if (!store) {\n throw new Error(\"No context available\");\n }\n store[key] = value;\n }\n run(context, fn) {\n return this.als.run(context, fn);\n }\n}\nexports.InvokeStore = void 0;\n(function (InvokeStore) {\n let instance = null;\n async function getInstanceAsync(forceInvokeStoreMulti) {\n if (!instance) {\n instance = (async () => {\n const isMulti = forceInvokeStoreMulti === true || \"AWS_LAMBDA_MAX_CONCURRENCY\" in process.env;\n const newInstance = isMulti\n ? await InvokeStoreMulti.create()\n : new InvokeStoreSingle();\n if (!NO_GLOBAL_AWS_LAMBDA && globalThis.awslambda?.InvokeStore) {\n return globalThis.awslambda.InvokeStore;\n }\n else if (!NO_GLOBAL_AWS_LAMBDA && globalThis.awslambda) {\n globalThis.awslambda.InvokeStore = newInstance;\n return newInstance;\n }\n else {\n return newInstance;\n }\n })();\n }\n return instance;\n }\n InvokeStore.getInstanceAsync = getInstanceAsync;\n InvokeStore._testing = process.env.AWS_LAMBDA_BENCHMARK_MODE === \"1\"\n ? {\n reset: () => {\n instance = null;\n if (globalThis.awslambda?.InvokeStore) {\n delete globalThis.awslambda.InvokeStore;\n }\n globalThis.awslambda = { InvokeStore: undefined };\n },\n }\n : undefined;\n})(exports.InvokeStore || (exports.InvokeStore = {}));\n\nexports.InvokeStoreBase = InvokeStoreBase;\n",
|
|
9
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.recursionDetectionMiddleware = void 0;\nconst lambda_invoke_store_1 = require(\"@aws/lambda-invoke-store\");\nconst protocol_http_1 = require(\"@smithy/protocol-http\");\nconst TRACE_ID_HEADER_NAME = \"X-Amzn-Trace-Id\";\nconst ENV_LAMBDA_FUNCTION_NAME = \"AWS_LAMBDA_FUNCTION_NAME\";\nconst ENV_TRACE_ID = \"_X_AMZN_TRACE_ID\";\nconst recursionDetectionMiddleware = () => (next) => async (args) => {\n const { request } = args;\n if (!protocol_http_1.HttpRequest.isInstance(request)) {\n return next(args);\n }\n const traceIdHeader = Object.keys(request.headers ?? {}).find((h) => h.toLowerCase() === TRACE_ID_HEADER_NAME.toLowerCase()) ??\n TRACE_ID_HEADER_NAME;\n if (request.headers.hasOwnProperty(traceIdHeader)) {\n return next(args);\n }\n const functionName = process.env[ENV_LAMBDA_FUNCTION_NAME];\n const traceIdFromEnv = process.env[ENV_TRACE_ID];\n const invokeStore = await lambda_invoke_store_1.InvokeStore.getInstanceAsync();\n const traceIdFromInvokeStore = invokeStore?.getXRayTraceId();\n const traceId = traceIdFromInvokeStore ?? traceIdFromEnv;\n const nonEmptyString = (str) => typeof str === \"string\" && str.length > 0;\n if (nonEmptyString(functionName) && nonEmptyString(traceId)) {\n request.headers[TRACE_ID_HEADER_NAME] = traceId;\n }\n return next({\n ...args,\n request,\n });\n};\nexports.recursionDetectionMiddleware = recursionDetectionMiddleware;\n",
|
|
10
|
+
"'use strict';\n\nvar recursionDetectionMiddleware = require('./recursionDetectionMiddleware');\n\nconst recursionDetectionMiddlewareOptions = {\n step: \"build\",\n tags: [\"RECURSION_DETECTION\"],\n name: \"recursionDetectionMiddleware\",\n override: true,\n priority: \"low\",\n};\n\nconst getRecursionDetectionPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(recursionDetectionMiddleware.recursionDetectionMiddleware(), recursionDetectionMiddlewareOptions);\n },\n});\n\nexports.getRecursionDetectionPlugin = getRecursionDetectionPlugin;\nObject.prototype.hasOwnProperty.call(recursionDetectionMiddleware, '__proto__') &&\n !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n Object.defineProperty(exports, '__proto__', {\n enumerable: true,\n value: recursionDetectionMiddleware['__proto__']\n });\n\nObject.keys(recursionDetectionMiddleware).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = recursionDetectionMiddleware[k];\n});\n",
|
|
11
|
+
"'use strict';\n\nvar types = require('@smithy/types');\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\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 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\nconst customEndpointFunctions = {};\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\nclass EndpointError extends Error {\n constructor(message) {\n super(message);\n this.name = \"EndpointError\";\n }\n}\n\nconst booleanEquals = (value1, value2) => value1 === value2;\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 return acc[parseInt(index)];\n }\n return acc[index];\n}, value);\n\nconst isSet = (value) => value != null;\n\nconst not = (value) => !value;\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\nconst stringEquals = (value1, value2) => value1 === value2;\n\nconst substring = (input, start, stop, reverse) => {\n if (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 getAttr,\n isSet,\n isValidHostLabel,\n not,\n parseURL,\n stringEquals,\n substring,\n uriEncode,\n};\n\nconst evaluateTemplate = (template, options) => {\n const evaluatedTemplateArr = [];\n const templateContext = {\n ...options.endpointParams,\n ...options.referenceRecord,\n };\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(templateContext[refName], attrName));\n }\n else {\n evaluatedTemplateArr.push(templateContext[parameterName]);\n }\n currentIndex = closingBraceIndex + 1;\n }\n return evaluatedTemplateArr.join(\"\");\n};\n\nconst getReferenceValue = ({ ref }, options) => {\n const referenceRecord = {\n ...options.endpointParams,\n ...options.referenceRecord,\n };\n return referenceRecord[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 = argv.map((arg) => [\"boolean\", \"number\"].includes(typeof arg) ? arg : group$2.evaluateExpression(arg, \"arg\", options));\n const fnSegments = fn.split(\".\");\n if (fnSegments[0] in customEndpointFunctions && fnSegments[1] != null) {\n return customEndpointFunctions[fnSegments[0]][fnSegments[1]](...evaluatedArgs);\n }\n return endpointFunctions[fn](...evaluatedArgs);\n};\nconst group$2 = {\n evaluateExpression,\n callFunction,\n};\n\nconst evaluateCondition = ({ assign, ...fnArgs }, options) => {\n if (assign && assign in options.referenceRecord) {\n throw new EndpointError(`'${assign}' is already defined in Reference Record.`);\n }\n const value = callFunction(fnArgs, options);\n options.logger?.debug?.(`${debugId} evaluateCondition: ${toDebugString(fnArgs)} = ${toDebugString(value)}`);\n return {\n result: value === \"\" ? true : !!value,\n ...(assign != null && { toAssign: { name: assign, value } }),\n };\n};\n\nconst evaluateConditions = (conditions = [], options) => {\n const conditionsReferenceRecord = {};\n for (const condition of conditions) {\n const { result, toAssign } = evaluateCondition(condition, {\n ...options,\n referenceRecord: {\n ...options.referenceRecord,\n ...conditionsReferenceRecord,\n },\n });\n if (!result) {\n return { result };\n }\n if (toAssign) {\n conditionsReferenceRecord[toAssign.name] = toAssign.value;\n options.logger?.debug?.(`${debugId} assign: ${toAssign.name} := ${toDebugString(toAssign.value)}`);\n }\n }\n return { result: true, referenceRecord: conditionsReferenceRecord };\n};\n\nconst getEndpointHeaders = (headers, options) => Object.entries(headers).reduce((acc, [headerKey, headerVal]) => ({\n ...acc,\n [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}), {});\n\nconst getEndpointProperties = (properties, options) => Object.entries(properties).reduce((acc, [propertyKey, propertyVal]) => ({\n ...acc,\n [propertyKey]: group$1.getEndpointProperty(propertyVal, options),\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 evaluateEndpointRule = (endpointRule, options) => {\n const { conditions, endpoint } = endpointRule;\n const { result, referenceRecord } = evaluateConditions(conditions, options);\n if (!result) {\n return;\n }\n const endpointRuleOptions = {\n ...options,\n referenceRecord: { ...options.referenceRecord, ...referenceRecord },\n };\n const { url, properties, headers } = endpoint;\n options.logger?.debug?.(`${debugId} Resolving endpoint from template: ${toDebugString(endpoint)}`);\n return {\n ...(headers != undefined && {\n headers: getEndpointHeaders(headers, endpointRuleOptions),\n }),\n ...(properties != undefined && {\n properties: getEndpointProperties(properties, endpointRuleOptions),\n }),\n url: getEndpointUrl(url, endpointRuleOptions),\n };\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 throw new EndpointError(evaluateExpression(error, \"Error\", {\n ...options,\n referenceRecord: { ...options.referenceRecord, ...referenceRecord },\n }));\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 return group.evaluateRules(rules, {\n ...options,\n referenceRecord: { ...options.referenceRecord, ...referenceRecord },\n });\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 const paramsWithDefault = Object.entries(parameters)\n .filter(([, v]) => v.default != null)\n .map(([k, v]) => [k, v.default]);\n if (paramsWithDefault.length > 0) {\n for (const [paramKey, paramDefaultValue] of paramsWithDefault) {\n endpointParams[paramKey] = endpointParams[paramKey] ?? paramDefaultValue;\n }\n }\n const requiredParams = Object.entries(parameters)\n .filter(([, v]) => v.required)\n .map(([k]) => k);\n for (const requiredParam of requiredParams) {\n if (endpointParams[requiredParam] == null) {\n throw new EndpointError(`Missing required parameter: '${requiredParam}'`);\n }\n }\n const endpoint = evaluateRules(rules, { endpointParams, logger, referenceRecord: {} });\n options.logger?.debug?.(`${debugId} Resolved endpoint: ${toDebugString(endpoint)}`);\n return endpoint;\n};\n\nexports.EndpointCache = EndpointCache;\nexports.EndpointError = EndpointError;\nexports.customEndpointFunctions = customEndpointFunctions;\nexports.isIpAddress = isIpAddress;\nexports.isValidHostLabel = isValidHostLabel;\nexports.resolveEndpoint = resolveEndpoint;\n",
|
|
12
|
+
"'use strict';\n\nvar utilEndpoints = require('@smithy/util-endpoints');\nvar urlParser = require('@smithy/url-parser');\n\nconst isVirtualHostableS3Bucket = (value, allowSubDomains = false) => {\n if (allowSubDomains) {\n for (const label of value.split(\".\")) {\n if (!isVirtualHostableS3Bucket(label)) {\n return false;\n }\n }\n return true;\n }\n if (!utilEndpoints.isValidHostLabel(value)) {\n return false;\n }\n if (value.length < 3 || value.length > 63) {\n return false;\n }\n if (value !== value.toLowerCase()) {\n return false;\n }\n if (utilEndpoints.isIpAddress(value)) {\n return false;\n }\n return true;\n};\n\nconst ARN_DELIMITER = \":\";\nconst RESOURCE_DELIMITER = \"/\";\nconst parseArn = (value) => {\n const segments = value.split(ARN_DELIMITER);\n if (segments.length < 6)\n return null;\n const [arn, partition, service, region, accountId, ...resourcePath] = segments;\n if (arn !== \"arn\" || partition === \"\" || service === \"\" || resourcePath.join(ARN_DELIMITER) === \"\")\n return null;\n const resourceId = resourcePath.map((resource) => resource.split(RESOURCE_DELIMITER)).flat();\n return {\n partition,\n service,\n region,\n accountId,\n resourceId,\n };\n};\n\nvar partitions = [\n\t{\n\t\tid: \"aws\",\n\t\toutputs: {\n\t\t\tdnsSuffix: \"amazonaws.com\",\n\t\t\tdualStackDnsSuffix: \"api.aws\",\n\t\t\timplicitGlobalRegion: \"us-east-1\",\n\t\t\tname: \"aws\",\n\t\t\tsupportsDualStack: true,\n\t\t\tsupportsFIPS: true\n\t\t},\n\t\tregionRegex: \"^(us|eu|ap|sa|ca|me|af|il|mx)\\\\-\\\\w+\\\\-\\\\d+$\",\n\t\tregions: {\n\t\t\t\"af-south-1\": {\n\t\t\t\tdescription: \"Africa (Cape Town)\"\n\t\t\t},\n\t\t\t\"ap-east-1\": {\n\t\t\t\tdescription: \"Asia Pacific (Hong Kong)\"\n\t\t\t},\n\t\t\t\"ap-east-2\": {\n\t\t\t\tdescription: \"Asia Pacific (Taipei)\"\n\t\t\t},\n\t\t\t\"ap-northeast-1\": {\n\t\t\t\tdescription: \"Asia Pacific (Tokyo)\"\n\t\t\t},\n\t\t\t\"ap-northeast-2\": {\n\t\t\t\tdescription: \"Asia Pacific (Seoul)\"\n\t\t\t},\n\t\t\t\"ap-northeast-3\": {\n\t\t\t\tdescription: \"Asia Pacific (Osaka)\"\n\t\t\t},\n\t\t\t\"ap-south-1\": {\n\t\t\t\tdescription: \"Asia Pacific (Mumbai)\"\n\t\t\t},\n\t\t\t\"ap-south-2\": {\n\t\t\t\tdescription: \"Asia Pacific (Hyderabad)\"\n\t\t\t},\n\t\t\t\"ap-southeast-1\": {\n\t\t\t\tdescription: \"Asia Pacific (Singapore)\"\n\t\t\t},\n\t\t\t\"ap-southeast-2\": {\n\t\t\t\tdescription: \"Asia Pacific (Sydney)\"\n\t\t\t},\n\t\t\t\"ap-southeast-3\": {\n\t\t\t\tdescription: \"Asia Pacific (Jakarta)\"\n\t\t\t},\n\t\t\t\"ap-southeast-4\": {\n\t\t\t\tdescription: \"Asia Pacific (Melbourne)\"\n\t\t\t},\n\t\t\t\"ap-southeast-5\": {\n\t\t\t\tdescription: \"Asia Pacific (Malaysia)\"\n\t\t\t},\n\t\t\t\"ap-southeast-6\": {\n\t\t\t\tdescription: \"Asia Pacific (New Zealand)\"\n\t\t\t},\n\t\t\t\"ap-southeast-7\": {\n\t\t\t\tdescription: \"Asia Pacific (Thailand)\"\n\t\t\t},\n\t\t\t\"aws-global\": {\n\t\t\t\tdescription: \"aws global region\"\n\t\t\t},\n\t\t\t\"ca-central-1\": {\n\t\t\t\tdescription: \"Canada (Central)\"\n\t\t\t},\n\t\t\t\"ca-west-1\": {\n\t\t\t\tdescription: \"Canada West (Calgary)\"\n\t\t\t},\n\t\t\t\"eu-central-1\": {\n\t\t\t\tdescription: \"Europe (Frankfurt)\"\n\t\t\t},\n\t\t\t\"eu-central-2\": {\n\t\t\t\tdescription: \"Europe (Zurich)\"\n\t\t\t},\n\t\t\t\"eu-north-1\": {\n\t\t\t\tdescription: \"Europe (Stockholm)\"\n\t\t\t},\n\t\t\t\"eu-south-1\": {\n\t\t\t\tdescription: \"Europe (Milan)\"\n\t\t\t},\n\t\t\t\"eu-south-2\": {\n\t\t\t\tdescription: \"Europe (Spain)\"\n\t\t\t},\n\t\t\t\"eu-west-1\": {\n\t\t\t\tdescription: \"Europe (Ireland)\"\n\t\t\t},\n\t\t\t\"eu-west-2\": {\n\t\t\t\tdescription: \"Europe (London)\"\n\t\t\t},\n\t\t\t\"eu-west-3\": {\n\t\t\t\tdescription: \"Europe (Paris)\"\n\t\t\t},\n\t\t\t\"il-central-1\": {\n\t\t\t\tdescription: \"Israel (Tel Aviv)\"\n\t\t\t},\n\t\t\t\"me-central-1\": {\n\t\t\t\tdescription: \"Middle East (UAE)\"\n\t\t\t},\n\t\t\t\"me-south-1\": {\n\t\t\t\tdescription: \"Middle East (Bahrain)\"\n\t\t\t},\n\t\t\t\"mx-central-1\": {\n\t\t\t\tdescription: \"Mexico (Central)\"\n\t\t\t},\n\t\t\t\"sa-east-1\": {\n\t\t\t\tdescription: \"South America (Sao Paulo)\"\n\t\t\t},\n\t\t\t\"us-east-1\": {\n\t\t\t\tdescription: \"US East (N. Virginia)\"\n\t\t\t},\n\t\t\t\"us-east-2\": {\n\t\t\t\tdescription: \"US East (Ohio)\"\n\t\t\t},\n\t\t\t\"us-west-1\": {\n\t\t\t\tdescription: \"US West (N. California)\"\n\t\t\t},\n\t\t\t\"us-west-2\": {\n\t\t\t\tdescription: \"US West (Oregon)\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tid: \"aws-cn\",\n\t\toutputs: {\n\t\t\tdnsSuffix: \"amazonaws.com.cn\",\n\t\t\tdualStackDnsSuffix: \"api.amazonwebservices.com.cn\",\n\t\t\timplicitGlobalRegion: \"cn-northwest-1\",\n\t\t\tname: \"aws-cn\",\n\t\t\tsupportsDualStack: true,\n\t\t\tsupportsFIPS: true\n\t\t},\n\t\tregionRegex: \"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\n\t\tregions: {\n\t\t\t\"aws-cn-global\": {\n\t\t\t\tdescription: \"aws-cn global region\"\n\t\t\t},\n\t\t\t\"cn-north-1\": {\n\t\t\t\tdescription: \"China (Beijing)\"\n\t\t\t},\n\t\t\t\"cn-northwest-1\": {\n\t\t\t\tdescription: \"China (Ningxia)\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tid: \"aws-eusc\",\n\t\toutputs: {\n\t\t\tdnsSuffix: \"amazonaws.eu\",\n\t\t\tdualStackDnsSuffix: \"api.amazonwebservices.eu\",\n\t\t\timplicitGlobalRegion: \"eusc-de-east-1\",\n\t\t\tname: \"aws-eusc\",\n\t\t\tsupportsDualStack: true,\n\t\t\tsupportsFIPS: true\n\t\t},\n\t\tregionRegex: \"^eusc\\\\-(de)\\\\-\\\\w+\\\\-\\\\d+$\",\n\t\tregions: {\n\t\t\t\"eusc-de-east-1\": {\n\t\t\t\tdescription: \"AWS European Sovereign Cloud (Germany)\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tid: \"aws-iso\",\n\t\toutputs: {\n\t\t\tdnsSuffix: \"c2s.ic.gov\",\n\t\t\tdualStackDnsSuffix: \"api.aws.ic.gov\",\n\t\t\timplicitGlobalRegion: \"us-iso-east-1\",\n\t\t\tname: \"aws-iso\",\n\t\t\tsupportsDualStack: true,\n\t\t\tsupportsFIPS: true\n\t\t},\n\t\tregionRegex: \"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\n\t\tregions: {\n\t\t\t\"aws-iso-global\": {\n\t\t\t\tdescription: \"aws-iso global region\"\n\t\t\t},\n\t\t\t\"us-iso-east-1\": {\n\t\t\t\tdescription: \"US ISO East\"\n\t\t\t},\n\t\t\t\"us-iso-west-1\": {\n\t\t\t\tdescription: \"US ISO WEST\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tid: \"aws-iso-b\",\n\t\toutputs: {\n\t\t\tdnsSuffix: \"sc2s.sgov.gov\",\n\t\t\tdualStackDnsSuffix: \"api.aws.scloud\",\n\t\t\timplicitGlobalRegion: \"us-isob-east-1\",\n\t\t\tname: \"aws-iso-b\",\n\t\t\tsupportsDualStack: true,\n\t\t\tsupportsFIPS: true\n\t\t},\n\t\tregionRegex: \"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\n\t\tregions: {\n\t\t\t\"aws-iso-b-global\": {\n\t\t\t\tdescription: \"aws-iso-b global region\"\n\t\t\t},\n\t\t\t\"us-isob-east-1\": {\n\t\t\t\tdescription: \"US ISOB East (Ohio)\"\n\t\t\t},\n\t\t\t\"us-isob-west-1\": {\n\t\t\t\tdescription: \"US ISOB West\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tid: \"aws-iso-e\",\n\t\toutputs: {\n\t\t\tdnsSuffix: \"cloud.adc-e.uk\",\n\t\t\tdualStackDnsSuffix: \"api.cloud-aws.adc-e.uk\",\n\t\t\timplicitGlobalRegion: \"eu-isoe-west-1\",\n\t\t\tname: \"aws-iso-e\",\n\t\t\tsupportsDualStack: true,\n\t\t\tsupportsFIPS: true\n\t\t},\n\t\tregionRegex: \"^eu\\\\-isoe\\\\-\\\\w+\\\\-\\\\d+$\",\n\t\tregions: {\n\t\t\t\"aws-iso-e-global\": {\n\t\t\t\tdescription: \"aws-iso-e global region\"\n\t\t\t},\n\t\t\t\"eu-isoe-west-1\": {\n\t\t\t\tdescription: \"EU ISOE West\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tid: \"aws-iso-f\",\n\t\toutputs: {\n\t\t\tdnsSuffix: \"csp.hci.ic.gov\",\n\t\t\tdualStackDnsSuffix: \"api.aws.hci.ic.gov\",\n\t\t\timplicitGlobalRegion: \"us-isof-south-1\",\n\t\t\tname: \"aws-iso-f\",\n\t\t\tsupportsDualStack: true,\n\t\t\tsupportsFIPS: true\n\t\t},\n\t\tregionRegex: \"^us\\\\-isof\\\\-\\\\w+\\\\-\\\\d+$\",\n\t\tregions: {\n\t\t\t\"aws-iso-f-global\": {\n\t\t\t\tdescription: \"aws-iso-f global region\"\n\t\t\t},\n\t\t\t\"us-isof-east-1\": {\n\t\t\t\tdescription: \"US ISOF EAST\"\n\t\t\t},\n\t\t\t\"us-isof-south-1\": {\n\t\t\t\tdescription: \"US ISOF SOUTH\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tid: \"aws-us-gov\",\n\t\toutputs: {\n\t\t\tdnsSuffix: \"amazonaws.com\",\n\t\t\tdualStackDnsSuffix: \"api.aws\",\n\t\t\timplicitGlobalRegion: \"us-gov-west-1\",\n\t\t\tname: \"aws-us-gov\",\n\t\t\tsupportsDualStack: true,\n\t\t\tsupportsFIPS: true\n\t\t},\n\t\tregionRegex: \"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\n\t\tregions: {\n\t\t\t\"aws-us-gov-global\": {\n\t\t\t\tdescription: \"aws-us-gov global region\"\n\t\t\t},\n\t\t\t\"us-gov-east-1\": {\n\t\t\t\tdescription: \"AWS GovCloud (US-East)\"\n\t\t\t},\n\t\t\t\"us-gov-west-1\": {\n\t\t\t\tdescription: \"AWS GovCloud (US-West)\"\n\t\t\t}\n\t\t}\n\t}\n];\nvar version = \"1.1\";\nvar partitionsInfo = {\n\tpartitions: partitions,\n\tversion: version\n};\n\nlet selectedPartitionsInfo = partitionsInfo;\nlet selectedUserAgentPrefix = \"\";\nconst partition = (value) => {\n const { partitions } = selectedPartitionsInfo;\n for (const partition of partitions) {\n const { regions, outputs } = partition;\n for (const [region, regionData] of Object.entries(regions)) {\n if (region === value) {\n return {\n ...outputs,\n ...regionData,\n };\n }\n }\n }\n for (const partition of partitions) {\n const { regionRegex, outputs } = partition;\n if (new RegExp(regionRegex).test(value)) {\n return {\n ...outputs,\n };\n }\n }\n const DEFAULT_PARTITION = partitions.find((partition) => partition.id === \"aws\");\n if (!DEFAULT_PARTITION) {\n throw new Error(\"Provided region was not found in the partition array or regex,\" +\n \" and default partition with id 'aws' doesn't exist.\");\n }\n return {\n ...DEFAULT_PARTITION.outputs,\n };\n};\nconst setPartitionInfo = (partitionsInfo, userAgentPrefix = \"\") => {\n selectedPartitionsInfo = partitionsInfo;\n selectedUserAgentPrefix = userAgentPrefix;\n};\nconst useDefaultPartitionInfo = () => {\n setPartitionInfo(partitionsInfo, \"\");\n};\nconst getUserAgentPrefix = () => selectedUserAgentPrefix;\n\nconst awsEndpointFunctions = {\n isVirtualHostableS3Bucket: isVirtualHostableS3Bucket,\n parseArn: parseArn,\n partition: partition,\n};\nutilEndpoints.customEndpointFunctions.aws = awsEndpointFunctions;\n\nconst resolveDefaultAwsRegionalEndpointsConfig = (input) => {\n if (typeof input.endpointProvider !== \"function\") {\n throw new Error(\"@aws-sdk/util-endpoint - endpointProvider and endpoint missing in config for this client.\");\n }\n const { endpoint } = input;\n if (endpoint === undefined) {\n input.endpoint = async () => {\n return toEndpointV1(input.endpointProvider({\n Region: typeof input.region === \"function\" ? await input.region() : input.region,\n UseDualStack: typeof input.useDualstackEndpoint === \"function\"\n ? await input.useDualstackEndpoint()\n : input.useDualstackEndpoint,\n UseFIPS: typeof input.useFipsEndpoint === \"function\" ? await input.useFipsEndpoint() : input.useFipsEndpoint,\n Endpoint: undefined,\n }, { logger: input.logger }));\n };\n }\n return input;\n};\nconst toEndpointV1 = (endpoint) => urlParser.parseUrl(endpoint.url);\n\nexports.EndpointError = utilEndpoints.EndpointError;\nexports.isIpAddress = utilEndpoints.isIpAddress;\nexports.resolveEndpoint = utilEndpoints.resolveEndpoint;\nexports.awsEndpointFunctions = awsEndpointFunctions;\nexports.getUserAgentPrefix = getUserAgentPrefix;\nexports.partition = partition;\nexports.resolveDefaultAwsRegionalEndpointsConfig = resolveDefaultAwsRegionalEndpointsConfig;\nexports.setPartitionInfo = setPartitionInfo;\nexports.toEndpointV1 = toEndpointV1;\nexports.useDefaultPartitionInfo = useDefaultPartitionInfo;\n",
|
|
13
|
+
"'use strict';\n\nvar utilHexEncoding = require('@smithy/util-hex-encoding');\nvar utilUtf8 = require('@smithy/util-utf8');\nvar isArrayBuffer = require('@smithy/is-array-buffer');\nvar protocolHttp = require('@smithy/protocol-http');\nvar utilMiddleware = require('@smithy/util-middleware');\nvar utilUriEscape = require('@smithy/util-uri-escape');\n\nconst ALGORITHM_QUERY_PARAM = \"X-Amz-Algorithm\";\nconst CREDENTIAL_QUERY_PARAM = \"X-Amz-Credential\";\nconst AMZ_DATE_QUERY_PARAM = \"X-Amz-Date\";\nconst SIGNED_HEADERS_QUERY_PARAM = \"X-Amz-SignedHeaders\";\nconst EXPIRES_QUERY_PARAM = \"X-Amz-Expires\";\nconst SIGNATURE_QUERY_PARAM = \"X-Amz-Signature\";\nconst TOKEN_QUERY_PARAM = \"X-Amz-Security-Token\";\nconst REGION_SET_PARAM = \"X-Amz-Region-Set\";\nconst AUTH_HEADER = \"authorization\";\nconst AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase();\nconst DATE_HEADER = \"date\";\nconst GENERATED_HEADERS = [AUTH_HEADER, AMZ_DATE_HEADER, DATE_HEADER];\nconst SIGNATURE_HEADER = SIGNATURE_QUERY_PARAM.toLowerCase();\nconst SHA256_HEADER = \"x-amz-content-sha256\";\nconst TOKEN_HEADER = TOKEN_QUERY_PARAM.toLowerCase();\nconst HOST_HEADER = \"host\";\nconst ALWAYS_UNSIGNABLE_HEADERS = {\n authorization: true,\n \"cache-control\": true,\n connection: true,\n expect: true,\n from: true,\n \"keep-alive\": true,\n \"max-forwards\": true,\n pragma: true,\n referer: true,\n te: true,\n trailer: true,\n \"transfer-encoding\": true,\n upgrade: true,\n \"user-agent\": true,\n \"x-amzn-trace-id\": true,\n};\nconst PROXY_HEADER_PATTERN = /^proxy-/;\nconst SEC_HEADER_PATTERN = /^sec-/;\nconst UNSIGNABLE_PATTERNS = [/^proxy-/i, /^sec-/i];\nconst ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256\";\nconst ALGORITHM_IDENTIFIER_V4A = \"AWS4-ECDSA-P256-SHA256\";\nconst EVENT_ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256-PAYLOAD\";\nconst UNSIGNED_PAYLOAD = \"UNSIGNED-PAYLOAD\";\nconst MAX_CACHE_SIZE = 50;\nconst KEY_TYPE_IDENTIFIER = \"aws4_request\";\nconst MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7;\n\nconst signingKeyCache = {};\nconst cacheQueue = [];\nconst createScope = (shortDate, region, service) => `${shortDate}/${region}/${service}/${KEY_TYPE_IDENTIFIER}`;\nconst getSigningKey = async (sha256Constructor, credentials, shortDate, region, service) => {\n const credsHash = await hmac(sha256Constructor, credentials.secretAccessKey, credentials.accessKeyId);\n const cacheKey = `${shortDate}:${region}:${service}:${utilHexEncoding.toHex(credsHash)}:${credentials.sessionToken}`;\n if (cacheKey in signingKeyCache) {\n return signingKeyCache[cacheKey];\n }\n cacheQueue.push(cacheKey);\n while (cacheQueue.length > MAX_CACHE_SIZE) {\n delete signingKeyCache[cacheQueue.shift()];\n }\n let key = `AWS4${credentials.secretAccessKey}`;\n for (const signable of [shortDate, region, service, KEY_TYPE_IDENTIFIER]) {\n key = await hmac(sha256Constructor, key, signable);\n }\n return (signingKeyCache[cacheKey] = key);\n};\nconst clearCredentialCache = () => {\n cacheQueue.length = 0;\n Object.keys(signingKeyCache).forEach((cacheKey) => {\n delete signingKeyCache[cacheKey];\n });\n};\nconst hmac = (ctor, secret, data) => {\n const hash = new ctor(secret);\n hash.update(utilUtf8.toUint8Array(data));\n return hash.digest();\n};\n\nconst getCanonicalHeaders = ({ headers }, unsignableHeaders, signableHeaders) => {\n const canonical = {};\n for (const headerName of Object.keys(headers).sort()) {\n if (headers[headerName] == undefined) {\n continue;\n }\n const canonicalHeaderName = headerName.toLowerCase();\n if (canonicalHeaderName in ALWAYS_UNSIGNABLE_HEADERS ||\n unsignableHeaders?.has(canonicalHeaderName) ||\n PROXY_HEADER_PATTERN.test(canonicalHeaderName) ||\n SEC_HEADER_PATTERN.test(canonicalHeaderName)) {\n if (!signableHeaders || (signableHeaders && !signableHeaders.has(canonicalHeaderName))) {\n continue;\n }\n }\n canonical[canonicalHeaderName] = headers[headerName].trim().replace(/\\s+/g, \" \");\n }\n return canonical;\n};\n\nconst getPayloadHash = async ({ headers, body }, hashConstructor) => {\n for (const headerName of Object.keys(headers)) {\n if (headerName.toLowerCase() === SHA256_HEADER) {\n return headers[headerName];\n }\n }\n if (body == undefined) {\n return \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\";\n }\n else if (typeof body === \"string\" || ArrayBuffer.isView(body) || isArrayBuffer.isArrayBuffer(body)) {\n const hashCtor = new hashConstructor();\n hashCtor.update(utilUtf8.toUint8Array(body));\n return utilHexEncoding.toHex(await hashCtor.digest());\n }\n return UNSIGNED_PAYLOAD;\n};\n\nclass HeaderFormatter {\n format(headers) {\n const chunks = [];\n for (const headerName of Object.keys(headers)) {\n const bytes = utilUtf8.fromUtf8(headerName);\n chunks.push(Uint8Array.from([bytes.byteLength]), bytes, this.formatHeaderValue(headers[headerName]));\n }\n const out = new Uint8Array(chunks.reduce((carry, bytes) => carry + bytes.byteLength, 0));\n let position = 0;\n for (const chunk of chunks) {\n out.set(chunk, position);\n position += chunk.byteLength;\n }\n return out;\n }\n formatHeaderValue(header) {\n switch (header.type) {\n case \"boolean\":\n return Uint8Array.from([header.value ? 0 : 1]);\n case \"byte\":\n return Uint8Array.from([2, header.value]);\n case \"short\":\n const shortView = new DataView(new ArrayBuffer(3));\n shortView.setUint8(0, 3);\n shortView.setInt16(1, header.value, false);\n return new Uint8Array(shortView.buffer);\n case \"integer\":\n const intView = new DataView(new ArrayBuffer(5));\n intView.setUint8(0, 4);\n intView.setInt32(1, header.value, false);\n return new Uint8Array(intView.buffer);\n case \"long\":\n const longBytes = new Uint8Array(9);\n longBytes[0] = 5;\n longBytes.set(header.value.bytes, 1);\n return longBytes;\n case \"binary\":\n const binView = new DataView(new ArrayBuffer(3 + header.value.byteLength));\n binView.setUint8(0, 6);\n binView.setUint16(1, header.value.byteLength, false);\n const binBytes = new Uint8Array(binView.buffer);\n binBytes.set(header.value, 3);\n return binBytes;\n case \"string\":\n const utf8Bytes = utilUtf8.fromUtf8(header.value);\n const strView = new DataView(new ArrayBuffer(3 + utf8Bytes.byteLength));\n strView.setUint8(0, 7);\n strView.setUint16(1, utf8Bytes.byteLength, false);\n const strBytes = new Uint8Array(strView.buffer);\n strBytes.set(utf8Bytes, 3);\n return strBytes;\n case \"timestamp\":\n const tsBytes = new Uint8Array(9);\n tsBytes[0] = 8;\n tsBytes.set(Int64.fromNumber(header.value.valueOf()).bytes, 1);\n return tsBytes;\n case \"uuid\":\n if (!UUID_PATTERN.test(header.value)) {\n throw new Error(`Invalid UUID received: ${header.value}`);\n }\n const uuidBytes = new Uint8Array(17);\n uuidBytes[0] = 9;\n uuidBytes.set(utilHexEncoding.fromHex(header.value.replace(/\\-/g, \"\")), 1);\n return uuidBytes;\n }\n }\n}\nconst UUID_PATTERN = /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/;\nclass Int64 {\n bytes;\n constructor(bytes) {\n this.bytes = bytes;\n if (bytes.byteLength !== 8) {\n throw new Error(\"Int64 buffers must be exactly 8 bytes\");\n }\n }\n static fromNumber(number) {\n if (number > 9_223_372_036_854_775_807 || number < -9223372036854776e3) {\n throw new Error(`${number} is too large (or, if negative, too small) to represent as an Int64`);\n }\n const bytes = new Uint8Array(8);\n for (let i = 7, remaining = Math.abs(Math.round(number)); i > -1 && remaining > 0; i--, remaining /= 256) {\n bytes[i] = remaining;\n }\n if (number < 0) {\n negate(bytes);\n }\n return new Int64(bytes);\n }\n valueOf() {\n const bytes = this.bytes.slice(0);\n const negative = bytes[0] & 0b10000000;\n if (negative) {\n negate(bytes);\n }\n return parseInt(utilHexEncoding.toHex(bytes), 16) * (negative ? -1 : 1);\n }\n toString() {\n return String(this.valueOf());\n }\n}\nfunction negate(bytes) {\n for (let i = 0; i < 8; i++) {\n bytes[i] ^= 0xff;\n }\n for (let i = 7; i > -1; i--) {\n bytes[i]++;\n if (bytes[i] !== 0)\n break;\n }\n}\n\nconst hasHeader = (soughtHeader, headers) => {\n soughtHeader = soughtHeader.toLowerCase();\n for (const headerName of Object.keys(headers)) {\n if (soughtHeader === headerName.toLowerCase()) {\n return true;\n }\n }\n return false;\n};\n\nconst moveHeadersToQuery = (request, options = {}) => {\n const { headers, query = {} } = protocolHttp.HttpRequest.clone(request);\n for (const name of Object.keys(headers)) {\n const lname = name.toLowerCase();\n if ((lname.slice(0, 6) === \"x-amz-\" && !options.unhoistableHeaders?.has(lname)) ||\n options.hoistableHeaders?.has(lname)) {\n query[name] = headers[name];\n delete headers[name];\n }\n }\n return {\n ...request,\n headers,\n query,\n };\n};\n\nconst prepareRequest = (request) => {\n request = protocolHttp.HttpRequest.clone(request);\n for (const headerName of Object.keys(request.headers)) {\n if (GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) {\n delete request.headers[headerName];\n }\n }\n return request;\n};\n\nconst getCanonicalQuery = ({ query = {} }) => {\n const keys = [];\n const serialized = {};\n for (const key of Object.keys(query)) {\n if (key.toLowerCase() === SIGNATURE_HEADER) {\n continue;\n }\n const encodedKey = utilUriEscape.escapeUri(key);\n keys.push(encodedKey);\n const value = query[key];\n if (typeof value === \"string\") {\n serialized[encodedKey] = `${encodedKey}=${utilUriEscape.escapeUri(value)}`;\n }\n else if (Array.isArray(value)) {\n serialized[encodedKey] = value\n .slice(0)\n .reduce((encoded, value) => encoded.concat([`${encodedKey}=${utilUriEscape.escapeUri(value)}`]), [])\n .sort()\n .join(\"&\");\n }\n }\n return keys\n .sort()\n .map((key) => serialized[key])\n .filter((serialized) => serialized)\n .join(\"&\");\n};\n\nconst iso8601 = (time) => toDate(time)\n .toISOString()\n .replace(/\\.\\d{3}Z$/, \"Z\");\nconst toDate = (time) => {\n if (typeof time === \"number\") {\n return new Date(time * 1000);\n }\n if (typeof time === \"string\") {\n if (Number(time)) {\n return new Date(Number(time) * 1000);\n }\n return new Date(time);\n }\n return time;\n};\n\nclass SignatureV4Base {\n service;\n regionProvider;\n credentialProvider;\n sha256;\n uriEscapePath;\n applyChecksum;\n constructor({ applyChecksum, credentials, region, service, sha256, uriEscapePath = true, }) {\n this.service = service;\n this.sha256 = sha256;\n this.uriEscapePath = uriEscapePath;\n this.applyChecksum = typeof applyChecksum === \"boolean\" ? applyChecksum : true;\n this.regionProvider = utilMiddleware.normalizeProvider(region);\n this.credentialProvider = utilMiddleware.normalizeProvider(credentials);\n }\n createCanonicalRequest(request, canonicalHeaders, payloadHash) {\n const sortedHeaders = Object.keys(canonicalHeaders).sort();\n return `${request.method}\n${this.getCanonicalPath(request)}\n${getCanonicalQuery(request)}\n${sortedHeaders.map((name) => `${name}:${canonicalHeaders[name]}`).join(\"\\n\")}\n\n${sortedHeaders.join(\";\")}\n${payloadHash}`;\n }\n async createStringToSign(longDate, credentialScope, canonicalRequest, algorithmIdentifier) {\n const hash = new this.sha256();\n hash.update(utilUtf8.toUint8Array(canonicalRequest));\n const hashedRequest = await hash.digest();\n return `${algorithmIdentifier}\n${longDate}\n${credentialScope}\n${utilHexEncoding.toHex(hashedRequest)}`;\n }\n getCanonicalPath({ path }) {\n if (this.uriEscapePath) {\n const normalizedPathSegments = [];\n for (const pathSegment of path.split(\"/\")) {\n if (pathSegment?.length === 0)\n continue;\n if (pathSegment === \".\")\n continue;\n if (pathSegment === \"..\") {\n normalizedPathSegments.pop();\n }\n else {\n normalizedPathSegments.push(pathSegment);\n }\n }\n const normalizedPath = `${path?.startsWith(\"/\") ? \"/\" : \"\"}${normalizedPathSegments.join(\"/\")}${normalizedPathSegments.length > 0 && path?.endsWith(\"/\") ? \"/\" : \"\"}`;\n const doubleEncoded = utilUriEscape.escapeUri(normalizedPath);\n return doubleEncoded.replace(/%2F/g, \"/\");\n }\n return path;\n }\n validateResolvedCredentials(credentials) {\n if (typeof credentials !== \"object\" ||\n typeof credentials.accessKeyId !== \"string\" ||\n typeof credentials.secretAccessKey !== \"string\") {\n throw new Error(\"Resolved credential object is not valid\");\n }\n }\n formatDate(now) {\n const longDate = iso8601(now).replace(/[\\-:]/g, \"\");\n return {\n longDate,\n shortDate: longDate.slice(0, 8),\n };\n }\n getCanonicalHeaderList(headers) {\n return Object.keys(headers).sort().join(\";\");\n }\n}\n\nclass SignatureV4 extends SignatureV4Base {\n headerFormatter = new HeaderFormatter();\n constructor({ applyChecksum, credentials, region, service, sha256, uriEscapePath = true, }) {\n super({\n applyChecksum,\n credentials,\n region,\n service,\n sha256,\n uriEscapePath,\n });\n }\n async presign(originalRequest, options = {}) {\n const { signingDate = new Date(), expiresIn = 3600, unsignableHeaders, unhoistableHeaders, signableHeaders, hoistableHeaders, signingRegion, signingService, } = options;\n const credentials = await this.credentialProvider();\n this.validateResolvedCredentials(credentials);\n const region = signingRegion ?? (await this.regionProvider());\n const { longDate, shortDate } = this.formatDate(signingDate);\n if (expiresIn > MAX_PRESIGNED_TTL) {\n return Promise.reject(\"Signature version 4 presigned URLs\" + \" must have an expiration date less than one week in\" + \" the future\");\n }\n const scope = createScope(shortDate, region, signingService ?? this.service);\n const request = moveHeadersToQuery(prepareRequest(originalRequest), { unhoistableHeaders, hoistableHeaders });\n if (credentials.sessionToken) {\n request.query[TOKEN_QUERY_PARAM] = credentials.sessionToken;\n }\n request.query[ALGORITHM_QUERY_PARAM] = ALGORITHM_IDENTIFIER;\n request.query[CREDENTIAL_QUERY_PARAM] = `${credentials.accessKeyId}/${scope}`;\n request.query[AMZ_DATE_QUERY_PARAM] = longDate;\n request.query[EXPIRES_QUERY_PARAM] = expiresIn.toString(10);\n const canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders);\n request.query[SIGNED_HEADERS_QUERY_PARAM] = this.getCanonicalHeaderList(canonicalHeaders);\n request.query[SIGNATURE_QUERY_PARAM] = await this.getSignature(longDate, scope, this.getSigningKey(credentials, region, shortDate, signingService), this.createCanonicalRequest(request, canonicalHeaders, await getPayloadHash(originalRequest, this.sha256)));\n return request;\n }\n async sign(toSign, options) {\n if (typeof toSign === \"string\") {\n return this.signString(toSign, options);\n }\n else if (toSign.headers && toSign.payload) {\n return this.signEvent(toSign, options);\n }\n else if (toSign.message) {\n return this.signMessage(toSign, options);\n }\n else {\n return this.signRequest(toSign, options);\n }\n }\n async signEvent({ headers, payload }, { signingDate = new Date(), priorSignature, signingRegion, signingService }) {\n const region = signingRegion ?? (await this.regionProvider());\n const { shortDate, longDate } = this.formatDate(signingDate);\n const scope = createScope(shortDate, region, signingService ?? this.service);\n const hashedPayload = await getPayloadHash({ headers: {}, body: payload }, this.sha256);\n const hash = new this.sha256();\n hash.update(headers);\n const hashedHeaders = utilHexEncoding.toHex(await hash.digest());\n const stringToSign = [\n EVENT_ALGORITHM_IDENTIFIER,\n longDate,\n scope,\n priorSignature,\n hashedHeaders,\n hashedPayload,\n ].join(\"\\n\");\n return this.signString(stringToSign, { signingDate, signingRegion: region, signingService });\n }\n async signMessage(signableMessage, { signingDate = new Date(), signingRegion, signingService }) {\n const promise = this.signEvent({\n headers: this.headerFormatter.format(signableMessage.message.headers),\n payload: signableMessage.message.body,\n }, {\n signingDate,\n signingRegion,\n signingService,\n priorSignature: signableMessage.priorSignature,\n });\n return promise.then((signature) => {\n return { message: signableMessage.message, signature };\n });\n }\n async signString(stringToSign, { signingDate = new Date(), signingRegion, signingService } = {}) {\n const credentials = await this.credentialProvider();\n this.validateResolvedCredentials(credentials);\n const region = signingRegion ?? (await this.regionProvider());\n const { shortDate } = this.formatDate(signingDate);\n const hash = new this.sha256(await this.getSigningKey(credentials, region, shortDate, signingService));\n hash.update(utilUtf8.toUint8Array(stringToSign));\n return utilHexEncoding.toHex(await hash.digest());\n }\n async signRequest(requestToSign, { signingDate = new Date(), signableHeaders, unsignableHeaders, signingRegion, signingService, } = {}) {\n const credentials = await this.credentialProvider();\n this.validateResolvedCredentials(credentials);\n const region = signingRegion ?? (await this.regionProvider());\n const request = prepareRequest(requestToSign);\n const { longDate, shortDate } = this.formatDate(signingDate);\n const scope = createScope(shortDate, region, signingService ?? this.service);\n request.headers[AMZ_DATE_HEADER] = longDate;\n if (credentials.sessionToken) {\n request.headers[TOKEN_HEADER] = credentials.sessionToken;\n }\n const payloadHash = await getPayloadHash(request, this.sha256);\n if (!hasHeader(SHA256_HEADER, request.headers) && this.applyChecksum) {\n request.headers[SHA256_HEADER] = payloadHash;\n }\n const canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders);\n const signature = await this.getSignature(longDate, scope, this.getSigningKey(credentials, region, shortDate, signingService), this.createCanonicalRequest(request, canonicalHeaders, payloadHash));\n request.headers[AUTH_HEADER] =\n `${ALGORITHM_IDENTIFIER} ` +\n `Credential=${credentials.accessKeyId}/${scope}, ` +\n `SignedHeaders=${this.getCanonicalHeaderList(canonicalHeaders)}, ` +\n `Signature=${signature}`;\n return request;\n }\n async getSignature(longDate, credentialScope, keyPromise, canonicalRequest) {\n const stringToSign = await this.createStringToSign(longDate, credentialScope, canonicalRequest, ALGORITHM_IDENTIFIER);\n const hash = new this.sha256(await keyPromise);\n hash.update(utilUtf8.toUint8Array(stringToSign));\n return utilHexEncoding.toHex(await hash.digest());\n }\n getSigningKey(credentials, region, shortDate, service) {\n return getSigningKey(this.sha256, credentials, shortDate, region, service || this.service);\n }\n}\n\nconst signatureV4aContainer = {\n SignatureV4a: null,\n};\n\nexports.ALGORITHM_IDENTIFIER = ALGORITHM_IDENTIFIER;\nexports.ALGORITHM_IDENTIFIER_V4A = ALGORITHM_IDENTIFIER_V4A;\nexports.ALGORITHM_QUERY_PARAM = ALGORITHM_QUERY_PARAM;\nexports.ALWAYS_UNSIGNABLE_HEADERS = ALWAYS_UNSIGNABLE_HEADERS;\nexports.AMZ_DATE_HEADER = AMZ_DATE_HEADER;\nexports.AMZ_DATE_QUERY_PARAM = AMZ_DATE_QUERY_PARAM;\nexports.AUTH_HEADER = AUTH_HEADER;\nexports.CREDENTIAL_QUERY_PARAM = CREDENTIAL_QUERY_PARAM;\nexports.DATE_HEADER = DATE_HEADER;\nexports.EVENT_ALGORITHM_IDENTIFIER = EVENT_ALGORITHM_IDENTIFIER;\nexports.EXPIRES_QUERY_PARAM = EXPIRES_QUERY_PARAM;\nexports.GENERATED_HEADERS = GENERATED_HEADERS;\nexports.HOST_HEADER = HOST_HEADER;\nexports.KEY_TYPE_IDENTIFIER = KEY_TYPE_IDENTIFIER;\nexports.MAX_CACHE_SIZE = MAX_CACHE_SIZE;\nexports.MAX_PRESIGNED_TTL = MAX_PRESIGNED_TTL;\nexports.PROXY_HEADER_PATTERN = PROXY_HEADER_PATTERN;\nexports.REGION_SET_PARAM = REGION_SET_PARAM;\nexports.SEC_HEADER_PATTERN = SEC_HEADER_PATTERN;\nexports.SHA256_HEADER = SHA256_HEADER;\nexports.SIGNATURE_HEADER = SIGNATURE_HEADER;\nexports.SIGNATURE_QUERY_PARAM = SIGNATURE_QUERY_PARAM;\nexports.SIGNED_HEADERS_QUERY_PARAM = SIGNED_HEADERS_QUERY_PARAM;\nexports.SignatureV4 = SignatureV4;\nexports.SignatureV4Base = SignatureV4Base;\nexports.TOKEN_HEADER = TOKEN_HEADER;\nexports.TOKEN_QUERY_PARAM = TOKEN_QUERY_PARAM;\nexports.UNSIGNABLE_PATTERNS = UNSIGNABLE_PATTERNS;\nexports.UNSIGNED_PAYLOAD = UNSIGNED_PAYLOAD;\nexports.clearCredentialCache = clearCredentialCache;\nexports.createScope = createScope;\nexports.getCanonicalHeaders = getCanonicalHeaders;\nexports.getCanonicalQuery = getCanonicalQuery;\nexports.getPayloadHash = getPayloadHash;\nexports.getSigningKey = getSigningKey;\nexports.hasHeader = hasHeader;\nexports.moveHeadersToQuery = moveHeadersToQuery;\nexports.prepareRequest = prepareRequest;\nexports.signatureV4aContainer = signatureV4aContainer;\n",
|
|
14
|
+
"'use strict';\n\nconst TEXT_ENCODER = typeof TextEncoder == \"function\" ? new TextEncoder() : null;\nconst calculateBodyLength = (body) => {\n if (typeof body === \"string\") {\n if (TEXT_ENCODER) {\n return TEXT_ENCODER.encode(body).byteLength;\n }\n let len = body.length;\n for (let i = len - 1; i >= 0; i--) {\n const code = body.charCodeAt(i);\n if (code > 0x7f && code <= 0x7ff)\n len++;\n else if (code > 0x7ff && code <= 0xffff)\n len += 2;\n if (code >= 0xdc00 && code <= 0xdfff)\n i--;\n }\n return len;\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 throw new Error(`Body Length computation failed for ${body}`);\n};\n\nexports.calculateBodyLength = calculateBodyLength;\n",
|
|
15
|
+
"'use strict';\n\nvar serde = require('@smithy/core/serde');\nvar utilUtf8 = require('@smithy/util-utf8');\nvar protocols = require('@smithy/core/protocols');\nvar protocolHttp = require('@smithy/protocol-http');\nvar utilBodyLengthBrowser = require('@smithy/util-body-length-browser');\nvar schema = require('@smithy/core/schema');\nvar utilMiddleware = require('@smithy/util-middleware');\nvar utilBase64 = require('@smithy/util-base64');\n\nconst majorUint64 = 0;\nconst majorNegativeInt64 = 1;\nconst majorUnstructuredByteString = 2;\nconst majorUtf8String = 3;\nconst majorList = 4;\nconst majorMap = 5;\nconst majorTag = 6;\nconst majorSpecial = 7;\nconst specialFalse = 20;\nconst specialTrue = 21;\nconst specialNull = 22;\nconst specialUndefined = 23;\nconst extendedOneByte = 24;\nconst extendedFloat16 = 25;\nconst extendedFloat32 = 26;\nconst extendedFloat64 = 27;\nconst minorIndefinite = 31;\nfunction alloc(size) {\n return typeof Buffer !== \"undefined\" ? Buffer.alloc(size) : new Uint8Array(size);\n}\nconst tagSymbol = Symbol(\"@smithy/core/cbor::tagSymbol\");\nfunction tag(data) {\n data[tagSymbol] = true;\n return data;\n}\n\nconst USE_TEXT_DECODER = typeof TextDecoder !== \"undefined\";\nconst USE_BUFFER$1 = typeof Buffer !== \"undefined\";\nlet payload = alloc(0);\nlet dataView$1 = new DataView(payload.buffer, payload.byteOffset, payload.byteLength);\nconst textDecoder = USE_TEXT_DECODER ? new TextDecoder() : null;\nlet _offset = 0;\nfunction setPayload(bytes) {\n payload = bytes;\n dataView$1 = new DataView(payload.buffer, payload.byteOffset, payload.byteLength);\n}\nfunction decode(at, to) {\n if (at >= to) {\n throw new Error(\"unexpected end of (decode) payload.\");\n }\n const major = (payload[at] & 0b1110_0000) >> 5;\n const minor = payload[at] & 0b0001_1111;\n switch (major) {\n case majorUint64:\n case majorNegativeInt64:\n case majorTag:\n let unsignedInt;\n let offset;\n if (minor < 24) {\n unsignedInt = minor;\n offset = 1;\n }\n else {\n switch (minor) {\n case extendedOneByte:\n case extendedFloat16:\n case extendedFloat32:\n case extendedFloat64:\n const countLength = minorValueToArgumentLength[minor];\n const countOffset = (countLength + 1);\n offset = countOffset;\n if (to - at < countOffset) {\n throw new Error(`countLength ${countLength} greater than remaining buf len.`);\n }\n const countIndex = at + 1;\n if (countLength === 1) {\n unsignedInt = payload[countIndex];\n }\n else if (countLength === 2) {\n unsignedInt = dataView$1.getUint16(countIndex);\n }\n else if (countLength === 4) {\n unsignedInt = dataView$1.getUint32(countIndex);\n }\n else {\n unsignedInt = dataView$1.getBigUint64(countIndex);\n }\n break;\n default:\n throw new Error(`unexpected minor value ${minor}.`);\n }\n }\n if (major === majorUint64) {\n _offset = offset;\n return castBigInt(unsignedInt);\n }\n else if (major === majorNegativeInt64) {\n let negativeInt;\n if (typeof unsignedInt === \"bigint\") {\n negativeInt = BigInt(-1) - unsignedInt;\n }\n else {\n negativeInt = -1 - unsignedInt;\n }\n _offset = offset;\n return castBigInt(negativeInt);\n }\n else {\n if (minor === 2 || minor === 3) {\n const length = decodeCount(at + offset, to);\n let b = BigInt(0);\n const start = at + offset + _offset;\n for (let i = start; i < start + length; ++i) {\n b = (b << BigInt(8)) | BigInt(payload[i]);\n }\n _offset = offset + _offset + length;\n return minor === 3 ? -b - BigInt(1) : b;\n }\n else if (minor === 4) {\n const decimalFraction = decode(at + offset, to);\n const [exponent, mantissa] = decimalFraction;\n const normalizer = mantissa < 0 ? -1 : 1;\n const mantissaStr = \"0\".repeat(Math.abs(exponent) + 1) + String(BigInt(normalizer) * BigInt(mantissa));\n let numericString;\n const sign = mantissa < 0 ? \"-\" : \"\";\n numericString =\n exponent === 0\n ? mantissaStr\n : mantissaStr.slice(0, mantissaStr.length + exponent) + \".\" + mantissaStr.slice(exponent);\n numericString = numericString.replace(/^0+/g, \"\");\n if (numericString === \"\") {\n numericString = \"0\";\n }\n if (numericString[0] === \".\") {\n numericString = \"0\" + numericString;\n }\n numericString = sign + numericString;\n _offset = offset + _offset;\n return serde.nv(numericString);\n }\n else {\n const value = decode(at + offset, to);\n const valueOffset = _offset;\n _offset = offset + valueOffset;\n return tag({ tag: castBigInt(unsignedInt), value });\n }\n }\n case majorUtf8String:\n case majorMap:\n case majorList:\n case majorUnstructuredByteString:\n if (minor === minorIndefinite) {\n switch (major) {\n case majorUtf8String:\n return decodeUtf8StringIndefinite(at, to);\n case majorMap:\n return decodeMapIndefinite(at, to);\n case majorList:\n return decodeListIndefinite(at, to);\n case majorUnstructuredByteString:\n return decodeUnstructuredByteStringIndefinite(at, to);\n }\n }\n else {\n switch (major) {\n case majorUtf8String:\n return decodeUtf8String(at, to);\n case majorMap:\n return decodeMap(at, to);\n case majorList:\n return decodeList(at, to);\n case majorUnstructuredByteString:\n return decodeUnstructuredByteString(at, to);\n }\n }\n default:\n return decodeSpecial(at, to);\n }\n}\nfunction bytesToUtf8(bytes, at, to) {\n if (USE_BUFFER$1 && bytes.constructor?.name === \"Buffer\") {\n return bytes.toString(\"utf-8\", at, to);\n }\n if (textDecoder) {\n return textDecoder.decode(bytes.subarray(at, to));\n }\n return utilUtf8.toUtf8(bytes.subarray(at, to));\n}\nfunction demote(bigInteger) {\n const num = Number(bigInteger);\n if (num < Number.MIN_SAFE_INTEGER || Number.MAX_SAFE_INTEGER < num) {\n console.warn(new Error(`@smithy/core/cbor - truncating BigInt(${bigInteger}) to ${num} with loss of precision.`));\n }\n return num;\n}\nconst minorValueToArgumentLength = {\n [extendedOneByte]: 1,\n [extendedFloat16]: 2,\n [extendedFloat32]: 4,\n [extendedFloat64]: 8,\n};\nfunction bytesToFloat16(a, b) {\n const sign = a >> 7;\n const exponent = (a & 0b0111_1100) >> 2;\n const fraction = ((a & 0b0000_0011) << 8) | b;\n const scalar = sign === 0 ? 1 : -1;\n let exponentComponent;\n let summation;\n if (exponent === 0b00000) {\n if (fraction === 0b00000_00000) {\n return 0;\n }\n else {\n exponentComponent = Math.pow(2, 1 - 15);\n summation = 0;\n }\n }\n else if (exponent === 0b11111) {\n if (fraction === 0b00000_00000) {\n return scalar * Infinity;\n }\n else {\n return NaN;\n }\n }\n else {\n exponentComponent = Math.pow(2, exponent - 15);\n summation = 1;\n }\n summation += fraction / 1024;\n return scalar * (exponentComponent * summation);\n}\nfunction decodeCount(at, to) {\n const minor = payload[at] & 0b0001_1111;\n if (minor < 24) {\n _offset = 1;\n return minor;\n }\n if (minor === extendedOneByte ||\n minor === extendedFloat16 ||\n minor === extendedFloat32 ||\n minor === extendedFloat64) {\n const countLength = minorValueToArgumentLength[minor];\n _offset = (countLength + 1);\n if (to - at < _offset) {\n throw new Error(`countLength ${countLength} greater than remaining buf len.`);\n }\n const countIndex = at + 1;\n if (countLength === 1) {\n return payload[countIndex];\n }\n else if (countLength === 2) {\n return dataView$1.getUint16(countIndex);\n }\n else if (countLength === 4) {\n return dataView$1.getUint32(countIndex);\n }\n return demote(dataView$1.getBigUint64(countIndex));\n }\n throw new Error(`unexpected minor value ${minor}.`);\n}\nfunction decodeUtf8String(at, to) {\n const length = decodeCount(at, to);\n const offset = _offset;\n at += offset;\n if (to - at < length) {\n throw new Error(`string len ${length} greater than remaining buf len.`);\n }\n const value = bytesToUtf8(payload, at, at + length);\n _offset = offset + length;\n return value;\n}\nfunction decodeUtf8StringIndefinite(at, to) {\n at += 1;\n const vector = [];\n for (const base = at; at < to;) {\n if (payload[at] === 0b1111_1111) {\n const data = alloc(vector.length);\n data.set(vector, 0);\n _offset = at - base + 2;\n return bytesToUtf8(data, 0, data.length);\n }\n const major = (payload[at] & 0b1110_0000) >> 5;\n const minor = payload[at] & 0b0001_1111;\n if (major !== majorUtf8String) {\n throw new Error(`unexpected major type ${major} in indefinite string.`);\n }\n if (minor === minorIndefinite) {\n throw new Error(\"nested indefinite string.\");\n }\n const bytes = decodeUnstructuredByteString(at, to);\n const length = _offset;\n at += length;\n for (let i = 0; i < bytes.length; ++i) {\n vector.push(bytes[i]);\n }\n }\n throw new Error(\"expected break marker.\");\n}\nfunction decodeUnstructuredByteString(at, to) {\n const length = decodeCount(at, to);\n const offset = _offset;\n at += offset;\n if (to - at < length) {\n throw new Error(`unstructured byte string len ${length} greater than remaining buf len.`);\n }\n const value = payload.subarray(at, at + length);\n _offset = offset + length;\n return value;\n}\nfunction decodeUnstructuredByteStringIndefinite(at, to) {\n at += 1;\n const vector = [];\n for (const base = at; at < to;) {\n if (payload[at] === 0b1111_1111) {\n const data = alloc(vector.length);\n data.set(vector, 0);\n _offset = at - base + 2;\n return data;\n }\n const major = (payload[at] & 0b1110_0000) >> 5;\n const minor = payload[at] & 0b0001_1111;\n if (major !== majorUnstructuredByteString) {\n throw new Error(`unexpected major type ${major} in indefinite string.`);\n }\n if (minor === minorIndefinite) {\n throw new Error(\"nested indefinite string.\");\n }\n const bytes = decodeUnstructuredByteString(at, to);\n const length = _offset;\n at += length;\n for (let i = 0; i < bytes.length; ++i) {\n vector.push(bytes[i]);\n }\n }\n throw new Error(\"expected break marker.\");\n}\nfunction decodeList(at, to) {\n const listDataLength = decodeCount(at, to);\n const offset = _offset;\n at += offset;\n const base = at;\n const list = Array(listDataLength);\n for (let i = 0; i < listDataLength; ++i) {\n const item = decode(at, to);\n const itemOffset = _offset;\n list[i] = item;\n at += itemOffset;\n }\n _offset = offset + (at - base);\n return list;\n}\nfunction decodeListIndefinite(at, to) {\n at += 1;\n const list = [];\n for (const base = at; at < to;) {\n if (payload[at] === 0b1111_1111) {\n _offset = at - base + 2;\n return list;\n }\n const item = decode(at, to);\n const n = _offset;\n at += n;\n list.push(item);\n }\n throw new Error(\"expected break marker.\");\n}\nfunction decodeMap(at, to) {\n const mapDataLength = decodeCount(at, to);\n const offset = _offset;\n at += offset;\n const base = at;\n const map = {};\n for (let i = 0; i < mapDataLength; ++i) {\n if (at >= to) {\n throw new Error(\"unexpected end of map payload.\");\n }\n const major = (payload[at] & 0b1110_0000) >> 5;\n if (major !== majorUtf8String) {\n throw new Error(`unexpected major type ${major} for map key at index ${at}.`);\n }\n const key = decode(at, to);\n at += _offset;\n const value = decode(at, to);\n at += _offset;\n map[key] = value;\n }\n _offset = offset + (at - base);\n return map;\n}\nfunction decodeMapIndefinite(at, to) {\n at += 1;\n const base = at;\n const map = {};\n for (; at < to;) {\n if (at >= to) {\n throw new Error(\"unexpected end of map payload.\");\n }\n if (payload[at] === 0b1111_1111) {\n _offset = at - base + 2;\n return map;\n }\n const major = (payload[at] & 0b1110_0000) >> 5;\n if (major !== majorUtf8String) {\n throw new Error(`unexpected major type ${major} for map key.`);\n }\n const key = decode(at, to);\n at += _offset;\n const value = decode(at, to);\n at += _offset;\n map[key] = value;\n }\n throw new Error(\"expected break marker.\");\n}\nfunction decodeSpecial(at, to) {\n const minor = payload[at] & 0b0001_1111;\n switch (minor) {\n case specialTrue:\n case specialFalse:\n _offset = 1;\n return minor === specialTrue;\n case specialNull:\n _offset = 1;\n return null;\n case specialUndefined:\n _offset = 1;\n return null;\n case extendedFloat16:\n if (to - at < 3) {\n throw new Error(\"incomplete float16 at end of buf.\");\n }\n _offset = 3;\n return bytesToFloat16(payload[at + 1], payload[at + 2]);\n case extendedFloat32:\n if (to - at < 5) {\n throw new Error(\"incomplete float32 at end of buf.\");\n }\n _offset = 5;\n return dataView$1.getFloat32(at + 1);\n case extendedFloat64:\n if (to - at < 9) {\n throw new Error(\"incomplete float64 at end of buf.\");\n }\n _offset = 9;\n return dataView$1.getFloat64(at + 1);\n default:\n throw new Error(`unexpected minor value ${minor}.`);\n }\n}\nfunction castBigInt(bigInt) {\n if (typeof bigInt === \"number\") {\n return bigInt;\n }\n const num = Number(bigInt);\n if (Number.MIN_SAFE_INTEGER <= num && num <= Number.MAX_SAFE_INTEGER) {\n return num;\n }\n return bigInt;\n}\n\nconst USE_BUFFER = typeof Buffer !== \"undefined\";\nconst initialSize = 2048;\nlet data = alloc(initialSize);\nlet dataView = new DataView(data.buffer, data.byteOffset, data.byteLength);\nlet cursor = 0;\nfunction ensureSpace(bytes) {\n const remaining = data.byteLength - cursor;\n if (remaining < bytes) {\n if (cursor < 16_000_000) {\n resize(Math.max(data.byteLength * 4, data.byteLength + bytes));\n }\n else {\n resize(data.byteLength + bytes + 16_000_000);\n }\n }\n}\nfunction toUint8Array() {\n const out = alloc(cursor);\n out.set(data.subarray(0, cursor), 0);\n cursor = 0;\n return out;\n}\nfunction resize(size) {\n const old = data;\n data = alloc(size);\n if (old) {\n if (old.copy) {\n old.copy(data, 0, 0, old.byteLength);\n }\n else {\n data.set(old, 0);\n }\n }\n dataView = new DataView(data.buffer, data.byteOffset, data.byteLength);\n}\nfunction encodeHeader(major, value) {\n if (value < 24) {\n data[cursor++] = (major << 5) | value;\n }\n else if (value < 1 << 8) {\n data[cursor++] = (major << 5) | 24;\n data[cursor++] = value;\n }\n else if (value < 1 << 16) {\n data[cursor++] = (major << 5) | extendedFloat16;\n dataView.setUint16(cursor, value);\n cursor += 2;\n }\n else if (value < 2 ** 32) {\n data[cursor++] = (major << 5) | extendedFloat32;\n dataView.setUint32(cursor, value);\n cursor += 4;\n }\n else {\n data[cursor++] = (major << 5) | extendedFloat64;\n dataView.setBigUint64(cursor, typeof value === \"bigint\" ? value : BigInt(value));\n cursor += 8;\n }\n}\nfunction encode(_input) {\n const encodeStack = [_input];\n while (encodeStack.length) {\n const input = encodeStack.pop();\n ensureSpace(typeof input === \"string\" ? input.length * 4 : 64);\n if (typeof input === \"string\") {\n if (USE_BUFFER) {\n encodeHeader(majorUtf8String, Buffer.byteLength(input));\n cursor += data.write(input, cursor);\n }\n else {\n const bytes = utilUtf8.fromUtf8(input);\n encodeHeader(majorUtf8String, bytes.byteLength);\n data.set(bytes, cursor);\n cursor += bytes.byteLength;\n }\n continue;\n }\n else if (typeof input === \"number\") {\n if (Number.isInteger(input)) {\n const nonNegative = input >= 0;\n const major = nonNegative ? majorUint64 : majorNegativeInt64;\n const value = nonNegative ? input : -input - 1;\n if (value < 24) {\n data[cursor++] = (major << 5) | value;\n }\n else if (value < 256) {\n data[cursor++] = (major << 5) | 24;\n data[cursor++] = value;\n }\n else if (value < 65536) {\n data[cursor++] = (major << 5) | extendedFloat16;\n data[cursor++] = value >> 8;\n data[cursor++] = value;\n }\n else if (value < 4294967296) {\n data[cursor++] = (major << 5) | extendedFloat32;\n dataView.setUint32(cursor, value);\n cursor += 4;\n }\n else {\n data[cursor++] = (major << 5) | extendedFloat64;\n dataView.setBigUint64(cursor, BigInt(value));\n cursor += 8;\n }\n continue;\n }\n data[cursor++] = (majorSpecial << 5) | extendedFloat64;\n dataView.setFloat64(cursor, input);\n cursor += 8;\n continue;\n }\n else if (typeof input === \"bigint\") {\n const nonNegative = input >= 0;\n const major = nonNegative ? majorUint64 : majorNegativeInt64;\n const value = nonNegative ? input : -input - BigInt(1);\n const n = Number(value);\n if (n < 24) {\n data[cursor++] = (major << 5) | n;\n }\n else if (n < 256) {\n data[cursor++] = (major << 5) | 24;\n data[cursor++] = n;\n }\n else if (n < 65536) {\n data[cursor++] = (major << 5) | extendedFloat16;\n data[cursor++] = n >> 8;\n data[cursor++] = n & 0b1111_1111;\n }\n else if (n < 4294967296) {\n data[cursor++] = (major << 5) | extendedFloat32;\n dataView.setUint32(cursor, n);\n cursor += 4;\n }\n else if (value < BigInt(\"18446744073709551616\")) {\n data[cursor++] = (major << 5) | extendedFloat64;\n dataView.setBigUint64(cursor, value);\n cursor += 8;\n }\n else {\n const binaryBigInt = value.toString(2);\n const bigIntBytes = new Uint8Array(Math.ceil(binaryBigInt.length / 8));\n let b = value;\n let i = 0;\n while (bigIntBytes.byteLength - ++i >= 0) {\n bigIntBytes[bigIntBytes.byteLength - i] = Number(b & BigInt(255));\n b >>= BigInt(8);\n }\n ensureSpace(bigIntBytes.byteLength * 2);\n data[cursor++] = nonNegative ? 0b110_00010 : 0b110_00011;\n if (USE_BUFFER) {\n encodeHeader(majorUnstructuredByteString, Buffer.byteLength(bigIntBytes));\n }\n else {\n encodeHeader(majorUnstructuredByteString, bigIntBytes.byteLength);\n }\n data.set(bigIntBytes, cursor);\n cursor += bigIntBytes.byteLength;\n }\n continue;\n }\n else if (input === null) {\n data[cursor++] = (majorSpecial << 5) | specialNull;\n continue;\n }\n else if (typeof input === \"boolean\") {\n data[cursor++] = (majorSpecial << 5) | (input ? specialTrue : specialFalse);\n continue;\n }\n else if (typeof input === \"undefined\") {\n throw new Error(\"@smithy/core/cbor: client may not serialize undefined value.\");\n }\n else if (Array.isArray(input)) {\n for (let i = input.length - 1; i >= 0; --i) {\n encodeStack.push(input[i]);\n }\n encodeHeader(majorList, input.length);\n continue;\n }\n else if (typeof input.byteLength === \"number\") {\n ensureSpace(input.length * 2);\n encodeHeader(majorUnstructuredByteString, input.length);\n data.set(input, cursor);\n cursor += input.byteLength;\n continue;\n }\n else if (typeof input === \"object\") {\n if (input instanceof serde.NumericValue) {\n const decimalIndex = input.string.indexOf(\".\");\n const exponent = decimalIndex === -1 ? 0 : decimalIndex - input.string.length + 1;\n const mantissa = BigInt(input.string.replace(\".\", \"\"));\n data[cursor++] = 0b110_00100;\n encodeStack.push(mantissa);\n encodeStack.push(exponent);\n encodeHeader(majorList, 2);\n continue;\n }\n if (input[tagSymbol]) {\n if (\"tag\" in input && \"value\" in input) {\n encodeStack.push(input.value);\n encodeHeader(majorTag, input.tag);\n continue;\n }\n else {\n throw new Error(\"tag encountered with missing fields, need 'tag' and 'value', found: \" + JSON.stringify(input));\n }\n }\n const keys = Object.keys(input);\n for (let i = keys.length - 1; i >= 0; --i) {\n const key = keys[i];\n encodeStack.push(input[key]);\n encodeStack.push(key);\n }\n encodeHeader(majorMap, keys.length);\n continue;\n }\n throw new Error(`data type ${input?.constructor?.name ?? typeof input} not compatible for encoding.`);\n }\n}\n\nconst cbor = {\n deserialize(payload) {\n setPayload(payload);\n return decode(0, payload.length);\n },\n serialize(input) {\n try {\n encode(input);\n return toUint8Array();\n }\n catch (e) {\n toUint8Array();\n throw e;\n }\n },\n resizeEncodingBuffer(size) {\n resize(size);\n },\n};\n\nconst parseCborBody = (streamBody, context) => {\n return protocols.collectBody(streamBody, context).then(async (bytes) => {\n if (bytes.length) {\n try {\n return cbor.deserialize(bytes);\n }\n catch (e) {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: context.utf8Encoder(bytes),\n });\n throw e;\n }\n }\n return {};\n });\n};\nconst dateToTag = (date) => {\n return tag({\n tag: 1,\n value: date.getTime() / 1000,\n });\n};\nconst parseCborErrorBody = async (errorBody, context) => {\n const value = await parseCborBody(errorBody, context);\n value.message = value.message ?? value.Message;\n return value;\n};\nconst loadSmithyRpcV2CborErrorCode = (output, data) => {\n const sanitizeErrorCode = (rawValue) => {\n let cleanValue = rawValue;\n if (typeof cleanValue === \"number\") {\n cleanValue = cleanValue.toString();\n }\n if (cleanValue.indexOf(\",\") >= 0) {\n cleanValue = cleanValue.split(\",\")[0];\n }\n if (cleanValue.indexOf(\":\") >= 0) {\n cleanValue = cleanValue.split(\":\")[0];\n }\n if (cleanValue.indexOf(\"#\") >= 0) {\n cleanValue = cleanValue.split(\"#\")[1];\n }\n return cleanValue;\n };\n if (data[\"__type\"] !== undefined) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n const codeKey = Object.keys(data).find((key) => key.toLowerCase() === \"code\");\n if (codeKey && data[codeKey] !== undefined) {\n return sanitizeErrorCode(data[codeKey]);\n }\n};\nconst checkCborResponse = (response) => {\n if (String(response.headers[\"smithy-protocol\"]).toLowerCase() !== \"rpc-v2-cbor\") {\n throw new Error(\"Malformed RPCv2 CBOR response, status: \" + response.statusCode);\n }\n};\nconst buildHttpRpcRequest = async (context, headers, path, resolvedHostname, body) => {\n const endpoint = await context.endpoint();\n const { hostname, protocol = \"https\", port, path: basePath } = endpoint;\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers: {\n ...headers,\n },\n };\n if (resolvedHostname !== undefined) {\n contents.hostname = resolvedHostname;\n }\n if (endpoint.headers) {\n for (const [name, value] of Object.entries(endpoint.headers)) {\n contents.headers[name] = value;\n }\n }\n if (body !== undefined) {\n contents.body = body;\n try {\n contents.headers[\"content-length\"] = String(utilBodyLengthBrowser.calculateBodyLength(body));\n }\n catch (e) { }\n }\n return new protocolHttp.HttpRequest(contents);\n};\n\nclass CborCodec extends protocols.SerdeContext {\n createSerializer() {\n const serializer = new CborShapeSerializer();\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new CborShapeDeserializer();\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n}\nclass CborShapeSerializer extends protocols.SerdeContext {\n value;\n write(schema, value) {\n this.value = this.serialize(schema, value);\n }\n serialize(schema$1, source) {\n const ns = schema.NormalizedSchema.of(schema$1);\n if (source == null) {\n if (ns.isIdempotencyToken()) {\n return serde.generateIdempotencyToken();\n }\n return source;\n }\n if (ns.isBlobSchema()) {\n if (typeof source === \"string\") {\n return (this.serdeContext?.base64Decoder ?? utilBase64.fromBase64)(source);\n }\n return source;\n }\n if (ns.isTimestampSchema()) {\n if (typeof source === \"number\" || typeof source === \"bigint\") {\n return dateToTag(new Date((Number(source) / 1000) | 0));\n }\n return dateToTag(source);\n }\n if (typeof source === \"function\" || typeof source === \"object\") {\n const sourceObject = source;\n if (ns.isListSchema() && Array.isArray(sourceObject)) {\n const sparse = !!ns.getMergedTraits().sparse;\n const newArray = [];\n let i = 0;\n for (const item of sourceObject) {\n const value = this.serialize(ns.getValueSchema(), item);\n if (value != null || sparse) {\n newArray[i++] = value;\n }\n }\n return newArray;\n }\n if (sourceObject instanceof Date) {\n return dateToTag(sourceObject);\n }\n const newObject = {};\n if (ns.isMapSchema()) {\n const sparse = !!ns.getMergedTraits().sparse;\n for (const key of Object.keys(sourceObject)) {\n const value = this.serialize(ns.getValueSchema(), sourceObject[key]);\n if (value != null || sparse) {\n newObject[key] = value;\n }\n }\n }\n else if (ns.isStructSchema()) {\n for (const [key, memberSchema] of ns.structIterator()) {\n const value = this.serialize(memberSchema, sourceObject[key]);\n if (value != null) {\n newObject[key] = value;\n }\n }\n const isUnion = ns.isUnionSchema();\n if (isUnion && Array.isArray(sourceObject.$unknown)) {\n const [k, v] = sourceObject.$unknown;\n newObject[k] = v;\n }\n else if (typeof sourceObject.__type === \"string\") {\n for (const [k, v] of Object.entries(sourceObject)) {\n if (!(k in newObject)) {\n newObject[k] = this.serialize(15, v);\n }\n }\n }\n }\n else if (ns.isDocumentSchema()) {\n for (const key of Object.keys(sourceObject)) {\n newObject[key] = this.serialize(ns.getValueSchema(), sourceObject[key]);\n }\n }\n else if (ns.isBigDecimalSchema()) {\n return sourceObject;\n }\n return newObject;\n }\n return source;\n }\n flush() {\n const buffer = cbor.serialize(this.value);\n this.value = undefined;\n return buffer;\n }\n}\nclass CborShapeDeserializer extends protocols.SerdeContext {\n read(schema, bytes) {\n const data = cbor.deserialize(bytes);\n return this.readValue(schema, data);\n }\n readValue(_schema, value) {\n const ns = schema.NormalizedSchema.of(_schema);\n if (ns.isTimestampSchema()) {\n if (typeof value === \"number\") {\n return serde._parseEpochTimestamp(value);\n }\n if (typeof value === \"object\") {\n if (value.tag === 1 && \"value\" in value) {\n return serde._parseEpochTimestamp(value.value);\n }\n }\n }\n if (ns.isBlobSchema()) {\n if (typeof value === \"string\") {\n return (this.serdeContext?.base64Decoder ?? utilBase64.fromBase64)(value);\n }\n return value;\n }\n if (typeof value === \"undefined\" ||\n typeof value === \"boolean\" ||\n typeof value === \"number\" ||\n typeof value === \"string\" ||\n typeof value === \"bigint\" ||\n typeof value === \"symbol\") {\n return value;\n }\n else if (typeof value === \"object\") {\n if (value === null) {\n return null;\n }\n if (\"byteLength\" in value) {\n return value;\n }\n if (value instanceof Date) {\n return value;\n }\n if (ns.isDocumentSchema()) {\n return value;\n }\n if (ns.isListSchema()) {\n const newArray = [];\n const memberSchema = ns.getValueSchema();\n for (const item of value) {\n const itemValue = this.readValue(memberSchema, item);\n newArray.push(itemValue);\n }\n return newArray;\n }\n const newObject = {};\n if (ns.isMapSchema()) {\n const targetSchema = ns.getValueSchema();\n for (const key of Object.keys(value)) {\n const itemValue = this.readValue(targetSchema, value[key]);\n newObject[key] = itemValue;\n }\n }\n else if (ns.isStructSchema()) {\n const isUnion = ns.isUnionSchema();\n let keys;\n if (isUnion) {\n keys = new Set(Object.keys(value).filter((k) => k !== \"__type\"));\n }\n for (const [key, memberSchema] of ns.structIterator()) {\n if (isUnion) {\n keys.delete(key);\n }\n if (value[key] != null) {\n newObject[key] = this.readValue(memberSchema, value[key]);\n }\n }\n if (isUnion && keys?.size === 1 && Object.keys(newObject).length === 0) {\n const k = keys.values().next().value;\n newObject.$unknown = [k, value[k]];\n }\n else if (typeof value.__type === \"string\") {\n for (const [k, v] of Object.entries(value)) {\n if (!(k in newObject)) {\n newObject[k] = v;\n }\n }\n }\n }\n else if (value instanceof serde.NumericValue) {\n return value;\n }\n return newObject;\n }\n else {\n return value;\n }\n }\n}\n\nclass SmithyRpcV2CborProtocol extends protocols.RpcProtocol {\n codec = new CborCodec();\n serializer = this.codec.createSerializer();\n deserializer = this.codec.createDeserializer();\n constructor({ defaultNamespace, errorTypeRegistries, }) {\n super({ defaultNamespace, errorTypeRegistries });\n }\n getShapeId() {\n return \"smithy.protocols#rpcv2Cbor\";\n }\n getPayloadCodec() {\n return this.codec;\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n Object.assign(request.headers, {\n \"content-type\": this.getDefaultContentType(),\n \"smithy-protocol\": \"rpc-v2-cbor\",\n accept: this.getDefaultContentType(),\n });\n if (schema.deref(operationSchema.input) === \"unit\") {\n delete request.body;\n delete request.headers[\"content-type\"];\n }\n else {\n if (!request.body) {\n this.serializer.write(15, {});\n request.body = this.serializer.flush();\n }\n try {\n request.headers[\"content-length\"] = String(request.body.byteLength);\n }\n catch (e) { }\n }\n const { service, operation } = utilMiddleware.getSmithyContext(context);\n const path = `/service/${service}/operation/${operation}`;\n if (request.path.endsWith(\"/\")) {\n request.path += path.slice(1);\n }\n else {\n request.path += path;\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n return super.deserializeResponse(operationSchema, context, response);\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorName = loadSmithyRpcV2CborErrorCode(response, dataObject) ?? \"Unknown\";\n const errorMetadata = {\n $metadata: metadata,\n $fault: response.statusCode <= 500 ? \"client\" : \"server\",\n };\n let namespace = this.options.defaultNamespace;\n if (errorName.includes(\"#\")) {\n [namespace] = errorName.split(\"#\");\n }\n const registry = this.compositeErrorRegistry;\n const nsRegistry = schema.TypeRegistry.for(namespace);\n registry.copyFrom(nsRegistry);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorName);\n }\n catch (e) {\n if (dataObject.Message) {\n dataObject.message = dataObject.Message;\n }\n const syntheticRegistry = schema.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace);\n registry.copyFrom(syntheticRegistry);\n const baseExceptionSchema = registry.getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = registry.getErrorCtor(baseExceptionSchema);\n throw Object.assign(new ErrorCtor({ name: errorName }), errorMetadata, dataObject);\n }\n throw Object.assign(new Error(errorName), errorMetadata, dataObject);\n }\n const ns = schema.NormalizedSchema.of(errorSchema);\n const ErrorCtor = registry.getErrorCtor(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new ErrorCtor(message);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n output[name] = this.deserializer.readValue(member, dataObject[name]);\n }\n throw Object.assign(exception, errorMetadata, {\n $fault: ns.getMergedTraits().error,\n message,\n }, output);\n }\n getDefaultContentType() {\n return \"application/cbor\";\n }\n}\n\nexports.CborCodec = CborCodec;\nexports.CborShapeDeserializer = CborShapeDeserializer;\nexports.CborShapeSerializer = CborShapeSerializer;\nexports.SmithyRpcV2CborProtocol = SmithyRpcV2CborProtocol;\nexports.buildHttpRpcRequest = buildHttpRpcRequest;\nexports.cbor = cbor;\nexports.checkCborResponse = checkCborResponse;\nexports.dateToTag = dateToTag;\nexports.loadSmithyRpcV2CborErrorCode = loadSmithyRpcV2CborErrorCode;\nexports.parseCborBody = parseCborBody;\nexports.parseCborErrorBody = parseCborErrorBody;\nexports.tag = tag;\nexports.tagSymbol = tagSymbol;\n",
|
|
16
|
+
"(()=>{\"use strict\";var t={d:(e,i)=>{for(var n in i)t.o(i,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:i[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})}},e={};t.r(e),t.d(e,{XMLBuilder:()=>$t,XMLParser:()=>gt,XMLValidator:()=>It});const i=\":A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\",n=new RegExp(\"^[\"+i+\"][\"+i+\"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\");function s(t,e){const i=[];let n=e.exec(t);for(;n;){const s=[];s.startIndex=e.lastIndex-n[0].length;const r=n.length;for(let t=0;t<r;t++)s.push(n[t]);i.push(s),n=e.exec(t)}return i}const r=function(t){return!(null==n.exec(t))},o=[\"hasOwnProperty\",\"toString\",\"valueOf\",\"__defineGetter__\",\"__defineSetter__\",\"__lookupGetter__\",\"__lookupSetter__\"],a=[\"__proto__\",\"constructor\",\"prototype\"],h={allowBooleanAttributes:!1,unpairedTags:[]};function l(t,e){e=Object.assign({},h,e);const i=[];let n=!1,s=!1;\"\\ufeff\"===t[0]&&(t=t.substr(1));for(let r=0;r<t.length;r++)if(\"<\"===t[r]&&\"?\"===t[r+1]){if(r+=2,r=u(t,r),r.err)return r}else{if(\"<\"!==t[r]){if(p(t[r]))continue;return b(\"InvalidChar\",\"char '\"+t[r]+\"' is not expected.\",w(t,r))}{let o=r;if(r++,\"!\"===t[r]){r=c(t,r);continue}{let a=!1;\"/\"===t[r]&&(a=!0,r++);let h=\"\";for(;r<t.length&&\">\"!==t[r]&&\" \"!==t[r]&&\"\\t\"!==t[r]&&\"\\n\"!==t[r]&&\"\\r\"!==t[r];r++)h+=t[r];if(h=h.trim(),\"/\"===h[h.length-1]&&(h=h.substring(0,h.length-1),r--),!y(h)){let e;return e=0===h.trim().length?\"Invalid space after '<'.\":\"Tag '\"+h+\"' is an invalid name.\",b(\"InvalidTag\",e,w(t,r))}const l=g(t,r);if(!1===l)return b(\"InvalidAttr\",\"Attributes for '\"+h+\"' have open quote.\",w(t,r));let d=l.value;if(r=l.index,\"/\"===d[d.length-1]){const i=r-d.length;d=d.substring(0,d.length-1);const s=x(d,e);if(!0!==s)return b(s.err.code,s.err.msg,w(t,i+s.err.line));n=!0}else if(a){if(!l.tagClosed)return b(\"InvalidTag\",\"Closing tag '\"+h+\"' doesn't have proper closing.\",w(t,r));if(d.trim().length>0)return b(\"InvalidTag\",\"Closing tag '\"+h+\"' can't have attributes or invalid starting.\",w(t,o));if(0===i.length)return b(\"InvalidTag\",\"Closing tag '\"+h+\"' has not been opened.\",w(t,o));{const e=i.pop();if(h!==e.tagName){let i=w(t,e.tagStartPos);return b(\"InvalidTag\",\"Expected closing tag '\"+e.tagName+\"' (opened in line \"+i.line+\", col \"+i.col+\") instead of closing tag '\"+h+\"'.\",w(t,o))}0==i.length&&(s=!0)}}else{const a=x(d,e);if(!0!==a)return b(a.err.code,a.err.msg,w(t,r-d.length+a.err.line));if(!0===s)return b(\"InvalidXml\",\"Multiple possible root nodes found.\",w(t,r));-1!==e.unpairedTags.indexOf(h)||i.push({tagName:h,tagStartPos:o}),n=!0}for(r++;r<t.length;r++)if(\"<\"===t[r]){if(\"!\"===t[r+1]){r++,r=c(t,r);continue}if(\"?\"!==t[r+1])break;if(r=u(t,++r),r.err)return r}else if(\"&\"===t[r]){const e=N(t,r);if(-1==e)return b(\"InvalidChar\",\"char '&' is not expected.\",w(t,r));r=e}else if(!0===s&&!p(t[r]))return b(\"InvalidXml\",\"Extra text at the end\",w(t,r));\"<\"===t[r]&&r--}}}return n?1==i.length?b(\"InvalidTag\",\"Unclosed tag '\"+i[0].tagName+\"'.\",w(t,i[0].tagStartPos)):!(i.length>0)||b(\"InvalidXml\",\"Invalid '\"+JSON.stringify(i.map(t=>t.tagName),null,4).replace(/\\r?\\n/g,\"\")+\"' found.\",{line:1,col:1}):b(\"InvalidXml\",\"Start tag expected.\",1)}function p(t){return\" \"===t||\"\\t\"===t||\"\\n\"===t||\"\\r\"===t}function u(t,e){const i=e;for(;e<t.length;e++)if(\"?\"==t[e]||\" \"==t[e]){const n=t.substr(i,e-i);if(e>5&&\"xml\"===n)return b(\"InvalidXml\",\"XML declaration allowed only at the start of the document.\",w(t,e));if(\"?\"==t[e]&&\">\"==t[e+1]){e++;break}continue}return e}function c(t,e){if(t.length>e+5&&\"-\"===t[e+1]&&\"-\"===t[e+2]){for(e+=3;e<t.length;e++)if(\"-\"===t[e]&&\"-\"===t[e+1]&&\">\"===t[e+2]){e+=2;break}}else if(t.length>e+8&&\"D\"===t[e+1]&&\"O\"===t[e+2]&&\"C\"===t[e+3]&&\"T\"===t[e+4]&&\"Y\"===t[e+5]&&\"P\"===t[e+6]&&\"E\"===t[e+7]){let i=1;for(e+=8;e<t.length;e++)if(\"<\"===t[e])i++;else if(\">\"===t[e]&&(i--,0===i))break}else if(t.length>e+9&&\"[\"===t[e+1]&&\"C\"===t[e+2]&&\"D\"===t[e+3]&&\"A\"===t[e+4]&&\"T\"===t[e+5]&&\"A\"===t[e+6]&&\"[\"===t[e+7])for(e+=8;e<t.length;e++)if(\"]\"===t[e]&&\"]\"===t[e+1]&&\">\"===t[e+2]){e+=2;break}return e}const d='\"',f=\"'\";function g(t,e){let i=\"\",n=\"\",s=!1;for(;e<t.length;e++){if(t[e]===d||t[e]===f)\"\"===n?n=t[e]:n!==t[e]||(n=\"\");else if(\">\"===t[e]&&\"\"===n){s=!0;break}i+=t[e]}return\"\"===n&&{value:i,index:e,tagClosed:s}}const m=new RegExp(\"(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*(['\\\"])(([\\\\s\\\\S])*?)\\\\5)?\",\"g\");function x(t,e){const i=s(t,m),n={};for(let t=0;t<i.length;t++){if(0===i[t][1].length)return b(\"InvalidAttr\",\"Attribute '\"+i[t][2]+\"' has no space in starting.\",v(i[t]));if(void 0!==i[t][3]&&void 0===i[t][4])return b(\"InvalidAttr\",\"Attribute '\"+i[t][2]+\"' is without value.\",v(i[t]));if(void 0===i[t][3]&&!e.allowBooleanAttributes)return b(\"InvalidAttr\",\"boolean attribute '\"+i[t][2]+\"' is not allowed.\",v(i[t]));const s=i[t][2];if(!E(s))return b(\"InvalidAttr\",\"Attribute '\"+s+\"' is an invalid name.\",v(i[t]));if(Object.prototype.hasOwnProperty.call(n,s))return b(\"InvalidAttr\",\"Attribute '\"+s+\"' is repeated.\",v(i[t]));n[s]=1}return!0}function N(t,e){if(\";\"===t[++e])return-1;if(\"#\"===t[e])return function(t,e){let i=/\\d/;for(\"x\"===t[e]&&(e++,i=/[\\da-fA-F]/);e<t.length;e++){if(\";\"===t[e])return e;if(!t[e].match(i))break}return-1}(t,++e);let i=0;for(;e<t.length;e++,i++)if(!(t[e].match(/\\w/)&&i<20)){if(\";\"===t[e])break;return-1}return e}function b(t,e,i){return{err:{code:t,msg:e,line:i.line||i,col:i.col}}}function E(t){return r(t)}function y(t){return r(t)}function w(t,e){const i=t.substring(0,e).split(/\\r?\\n/);return{line:i.length,col:i[i.length-1].length+1}}function v(t){return t.startIndex+t[1].length}const T=t=>o.includes(t)?\"__\"+t:t,P={preserveOrder:!1,attributeNamePrefix:\"@_\",attributesGroupName:!1,textNodeName:\"#text\",ignoreAttributes:!0,removeNSPrefix:!1,allowBooleanAttributes:!1,parseTagValue:!0,parseAttributeValue:!1,trimValues:!0,cdataPropName:!1,numberParseOptions:{hex:!0,leadingZeros:!0,eNotation:!0},tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},stopNodes:[],alwaysCreateTextNode:!1,isArray:()=>!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(t,e,i){return t},captureMetaData:!1,maxNestedTags:100,strictReservedNames:!0,jPath:!0,onDangerousProperty:T};function S(t,e){if(\"string\"!=typeof t)return;const i=t.toLowerCase();if(o.some(t=>i===t.toLowerCase()))throw new Error(`[SECURITY] Invalid ${e}: \"${t}\" is a reserved JavaScript keyword that could cause prototype pollution`);if(a.some(t=>i===t.toLowerCase()))throw new Error(`[SECURITY] Invalid ${e}: \"${t}\" is a reserved JavaScript keyword that could cause prototype pollution`)}function A(t){return\"boolean\"==typeof t?{enabled:t,maxEntitySize:1e4,maxExpansionDepth:10,maxTotalExpansions:1e3,maxExpandedLength:1e5,maxEntityCount:100,allowedTags:null,tagFilter:null}:\"object\"==typeof t&&null!==t?{enabled:!1!==t.enabled,maxEntitySize:Math.max(1,t.maxEntitySize??1e4),maxExpansionDepth:Math.max(1,t.maxExpansionDepth??10),maxTotalExpansions:Math.max(1,t.maxTotalExpansions??1e3),maxExpandedLength:Math.max(1,t.maxExpandedLength??1e5),maxEntityCount:Math.max(1,t.maxEntityCount??100),allowedTags:t.allowedTags??null,tagFilter:t.tagFilter??null}:A(!0)}const O=function(t){const e=Object.assign({},P,t),i=[{value:e.attributeNamePrefix,name:\"attributeNamePrefix\"},{value:e.attributesGroupName,name:\"attributesGroupName\"},{value:e.textNodeName,name:\"textNodeName\"},{value:e.cdataPropName,name:\"cdataPropName\"},{value:e.commentPropName,name:\"commentPropName\"}];for(const{value:t,name:e}of i)t&&S(t,e);return null===e.onDangerousProperty&&(e.onDangerousProperty=T),e.processEntities=A(e.processEntities),e.stopNodes&&Array.isArray(e.stopNodes)&&(e.stopNodes=e.stopNodes.map(t=>\"string\"==typeof t&&t.startsWith(\"*.\")?\"..\"+t.substring(2):t)),e};let C;C=\"function\"!=typeof Symbol?\"@@xmlMetadata\":Symbol(\"XML Node Metadata\");class ${constructor(t){this.tagname=t,this.child=[],this[\":@\"]=Object.create(null)}add(t,e){\"__proto__\"===t&&(t=\"#__proto__\"),this.child.push({[t]:e})}addChild(t,e){\"__proto__\"===t.tagname&&(t.tagname=\"#__proto__\"),t[\":@\"]&&Object.keys(t[\":@\"]).length>0?this.child.push({[t.tagname]:t.child,\":@\":t[\":@\"]}):this.child.push({[t.tagname]:t.child}),void 0!==e&&(this.child[this.child.length-1][C]={startIndex:e})}static getMetaDataSymbol(){return C}}class I{constructor(t){this.suppressValidationErr=!t,this.options=t}readDocType(t,e){const i=Object.create(null);let n=0;if(\"O\"!==t[e+3]||\"C\"!==t[e+4]||\"T\"!==t[e+5]||\"Y\"!==t[e+6]||\"P\"!==t[e+7]||\"E\"!==t[e+8])throw new Error(\"Invalid Tag instead of DOCTYPE\");{e+=9;let s=1,r=!1,o=!1,a=\"\";for(;e<t.length;e++)if(\"<\"!==t[e]||o)if(\">\"===t[e]){if(o?\"-\"===t[e-1]&&\"-\"===t[e-2]&&(o=!1,s--):s--,0===s)break}else\"[\"===t[e]?r=!0:a+=t[e];else{if(r&&M(t,\"!ENTITY\",e)){let s,r;if(e+=7,[s,r,e]=this.readEntityExp(t,e+1,this.suppressValidationErr),-1===r.indexOf(\"&\")){if(!1!==this.options.enabled&&null!=this.options.maxEntityCount&&n>=this.options.maxEntityCount)throw new Error(`Entity count (${n+1}) exceeds maximum allowed (${this.options.maxEntityCount})`);const t=s.replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\");i[s]={regx:RegExp(`&${t};`,\"g\"),val:r},n++}}else if(r&&M(t,\"!ELEMENT\",e)){e+=8;const{index:i}=this.readElementExp(t,e+1);e=i}else if(r&&M(t,\"!ATTLIST\",e))e+=8;else if(r&&M(t,\"!NOTATION\",e)){e+=9;const{index:i}=this.readNotationExp(t,e+1,this.suppressValidationErr);e=i}else{if(!M(t,\"!--\",e))throw new Error(\"Invalid DOCTYPE\");o=!0}s++,a=\"\"}if(0!==s)throw new Error(\"Unclosed DOCTYPE\")}return{entities:i,i:e}}readEntityExp(t,e){const i=e=j(t,e);for(;e<t.length&&!/\\s/.test(t[e])&&'\"'!==t[e]&&\"'\"!==t[e];)e++;let n=t.substring(i,e);if(_(n),e=j(t,e),!this.suppressValidationErr){if(\"SYSTEM\"===t.substring(e,e+6).toUpperCase())throw new Error(\"External entities are not supported\");if(\"%\"===t[e])throw new Error(\"Parameter entities are not supported\")}let s=\"\";if([e,s]=this.readIdentifierVal(t,e,\"entity\"),!1!==this.options.enabled&&null!=this.options.maxEntitySize&&s.length>this.options.maxEntitySize)throw new Error(`Entity \"${n}\" size (${s.length}) exceeds maximum allowed size (${this.options.maxEntitySize})`);return[n,s,--e]}readNotationExp(t,e){const i=e=j(t,e);for(;e<t.length&&!/\\s/.test(t[e]);)e++;let n=t.substring(i,e);!this.suppressValidationErr&&_(n),e=j(t,e);const s=t.substring(e,e+6).toUpperCase();if(!this.suppressValidationErr&&\"SYSTEM\"!==s&&\"PUBLIC\"!==s)throw new Error(`Expected SYSTEM or PUBLIC, found \"${s}\"`);e+=s.length,e=j(t,e);let r=null,o=null;if(\"PUBLIC\"===s)[e,r]=this.readIdentifierVal(t,e,\"publicIdentifier\"),'\"'!==t[e=j(t,e)]&&\"'\"!==t[e]||([e,o]=this.readIdentifierVal(t,e,\"systemIdentifier\"));else if(\"SYSTEM\"===s&&([e,o]=this.readIdentifierVal(t,e,\"systemIdentifier\"),!this.suppressValidationErr&&!o))throw new Error(\"Missing mandatory system identifier for SYSTEM notation\");return{notationName:n,publicIdentifier:r,systemIdentifier:o,index:--e}}readIdentifierVal(t,e,i){let n=\"\";const s=t[e];if('\"'!==s&&\"'\"!==s)throw new Error(`Expected quoted string, found \"${s}\"`);const r=++e;for(;e<t.length&&t[e]!==s;)e++;if(n=t.substring(r,e),t[e]!==s)throw new Error(`Unterminated ${i} value`);return[++e,n]}readElementExp(t,e){const i=e=j(t,e);for(;e<t.length&&!/\\s/.test(t[e]);)e++;let n=t.substring(i,e);if(!this.suppressValidationErr&&!r(n))throw new Error(`Invalid element name: \"${n}\"`);let s=\"\";if(\"E\"===t[e=j(t,e)]&&M(t,\"MPTY\",e))e+=4;else if(\"A\"===t[e]&&M(t,\"NY\",e))e+=2;else if(\"(\"===t[e]){const i=++e;for(;e<t.length&&\")\"!==t[e];)e++;if(s=t.substring(i,e),\")\"!==t[e])throw new Error(\"Unterminated content model\")}else if(!this.suppressValidationErr)throw new Error(`Invalid Element Expression, found \"${t[e]}\"`);return{elementName:n,contentModel:s.trim(),index:e}}readAttlistExp(t,e){let i=e=j(t,e);for(;e<t.length&&!/\\s/.test(t[e]);)e++;let n=t.substring(i,e);for(_(n),i=e=j(t,e);e<t.length&&!/\\s/.test(t[e]);)e++;let s=t.substring(i,e);if(!_(s))throw new Error(`Invalid attribute name: \"${s}\"`);e=j(t,e);let r=\"\";if(\"NOTATION\"===t.substring(e,e+8).toUpperCase()){if(r=\"NOTATION\",\"(\"!==t[e=j(t,e+=8)])throw new Error(`Expected '(', found \"${t[e]}\"`);e++;let i=[];for(;e<t.length&&\")\"!==t[e];){const n=e;for(;e<t.length&&\"|\"!==t[e]&&\")\"!==t[e];)e++;let s=t.substring(n,e);if(s=s.trim(),!_(s))throw new Error(`Invalid notation name: \"${s}\"`);i.push(s),\"|\"===t[e]&&(e++,e=j(t,e))}if(\")\"!==t[e])throw new Error(\"Unterminated list of notations\");e++,r+=\" (\"+i.join(\"|\")+\")\"}else{const i=e;for(;e<t.length&&!/\\s/.test(t[e]);)e++;r+=t.substring(i,e);const n=[\"CDATA\",\"ID\",\"IDREF\",\"IDREFS\",\"ENTITY\",\"ENTITIES\",\"NMTOKEN\",\"NMTOKENS\"];if(!this.suppressValidationErr&&!n.includes(r.toUpperCase()))throw new Error(`Invalid attribute type: \"${r}\"`)}e=j(t,e);let o=\"\";return\"#REQUIRED\"===t.substring(e,e+8).toUpperCase()?(o=\"#REQUIRED\",e+=8):\"#IMPLIED\"===t.substring(e,e+7).toUpperCase()?(o=\"#IMPLIED\",e+=7):[e,o]=this.readIdentifierVal(t,e,\"ATTLIST\"),{elementName:n,attributeName:s,attributeType:r,defaultValue:o,index:e}}}const j=(t,e)=>{for(;e<t.length&&/\\s/.test(t[e]);)e++;return e};function M(t,e,i){for(let n=0;n<e.length;n++)if(e[n]!==t[i+n+1])return!1;return!0}function _(t){if(r(t))return t;throw new Error(`Invalid entity name ${t}`)}const D=/^[-+]?0x[a-fA-F0-9]+$/,V=/^([\\-\\+])?(0*)([0-9]*(\\.[0-9]*)?)$/,k={hex:!0,leadingZeros:!0,decimalPoint:\".\",eNotation:!0,infinity:\"original\"};const F=/^([-+])?(0*)(\\d*(\\.\\d*)?[eE][-\\+]?\\d+)$/,L=new Set([\"push\",\"pop\",\"reset\",\"updateCurrent\",\"restore\"]);class G{constructor(t={}){this.separator=t.separator||\".\",this.path=[],this.siblingStacks=[]}push(t,e=null,i=null){this.path.length>0&&(this.path[this.path.length-1].values=void 0);const n=this.path.length;this.siblingStacks[n]||(this.siblingStacks[n]=new Map);const s=this.siblingStacks[n],r=i?`${i}:${t}`:t,o=s.get(r)||0;let a=0;for(const t of s.values())a+=t;s.set(r,o+1);const h={tag:t,position:a,counter:o};null!=i&&(h.namespace=i),null!=e&&(h.values=e),this.path.push(h)}pop(){if(0===this.path.length)return;const t=this.path.pop();return this.siblingStacks.length>this.path.length+1&&(this.siblingStacks.length=this.path.length+1),t}updateCurrent(t){if(this.path.length>0){const e=this.path[this.path.length-1];null!=t&&(e.values=t)}}getCurrentTag(){return this.path.length>0?this.path[this.path.length-1].tag:void 0}getCurrentNamespace(){return this.path.length>0?this.path[this.path.length-1].namespace:void 0}getAttrValue(t){if(0===this.path.length)return;const e=this.path[this.path.length-1];return e.values?.[t]}hasAttr(t){if(0===this.path.length)return!1;const e=this.path[this.path.length-1];return void 0!==e.values&&t in e.values}getPosition(){return 0===this.path.length?-1:this.path[this.path.length-1].position??0}getCounter(){return 0===this.path.length?-1:this.path[this.path.length-1].counter??0}getIndex(){return this.getPosition()}getDepth(){return this.path.length}toString(t,e=!0){const i=t||this.separator;return this.path.map(t=>e&&t.namespace?`${t.namespace}:${t.tag}`:t.tag).join(i)}toArray(){return this.path.map(t=>t.tag)}reset(){this.path=[],this.siblingStacks=[]}matches(t){const e=t.segments;return 0!==e.length&&(t.hasDeepWildcard()?this._matchWithDeepWildcard(e):this._matchSimple(e))}_matchSimple(t){if(this.path.length!==t.length)return!1;for(let e=0;e<t.length;e++){const i=t[e],n=this.path[e],s=e===this.path.length-1;if(!this._matchSegment(i,n,s))return!1}return!0}_matchWithDeepWildcard(t){let e=this.path.length-1,i=t.length-1;for(;i>=0&&e>=0;){const n=t[i];if(\"deep-wildcard\"===n.type){if(i--,i<0)return!0;const n=t[i];let s=!1;for(let t=e;t>=0;t--){const r=t===this.path.length-1;if(this._matchSegment(n,this.path[t],r)){e=t-1,i--,s=!0;break}}if(!s)return!1}else{const t=e===this.path.length-1;if(!this._matchSegment(n,this.path[e],t))return!1;e--,i--}}return i<0}_matchSegment(t,e,i){if(\"*\"!==t.tag&&t.tag!==e.tag)return!1;if(void 0!==t.namespace&&\"*\"!==t.namespace&&t.namespace!==e.namespace)return!1;if(void 0!==t.attrName){if(!i)return!1;if(!e.values||!(t.attrName in e.values))return!1;if(void 0!==t.attrValue){const i=e.values[t.attrName];if(String(i)!==String(t.attrValue))return!1}}if(void 0!==t.position){if(!i)return!1;const n=e.counter??0;if(\"first\"===t.position&&0!==n)return!1;if(\"odd\"===t.position&&n%2!=1)return!1;if(\"even\"===t.position&&n%2!=0)return!1;if(\"nth\"===t.position&&n!==t.positionValue)return!1}return!0}snapshot(){return{path:this.path.map(t=>({...t})),siblingStacks:this.siblingStacks.map(t=>new Map(t))}}restore(t){this.path=t.path.map(t=>({...t})),this.siblingStacks=t.siblingStacks.map(t=>new Map(t))}readOnly(){return new Proxy(this,{get(t,e,i){if(L.has(e))return()=>{throw new TypeError(`Cannot call '${e}' on a read-only Matcher. Obtain a writable instance to mutate state.`)};const n=Reflect.get(t,e,i);return\"path\"===e||\"siblingStacks\"===e?Object.freeze(Array.isArray(n)?n.map(t=>t instanceof Map?Object.freeze(new Map(t)):Object.freeze({...t})):n):\"function\"==typeof n?n.bind(t):n},set(t,e){throw new TypeError(`Cannot set property '${String(e)}' on a read-only Matcher.`)},deleteProperty(t,e){throw new TypeError(`Cannot delete property '${String(e)}' from a read-only Matcher.`)}})}}class R{constructor(t,e={}){this.pattern=t,this.separator=e.separator||\".\",this.segments=this._parse(t),this._hasDeepWildcard=this.segments.some(t=>\"deep-wildcard\"===t.type),this._hasAttributeCondition=this.segments.some(t=>void 0!==t.attrName),this._hasPositionSelector=this.segments.some(t=>void 0!==t.position)}_parse(t){const e=[];let i=0,n=\"\";for(;i<t.length;)t[i]===this.separator?i+1<t.length&&t[i+1]===this.separator?(n.trim()&&(e.push(this._parseSegment(n.trim())),n=\"\"),e.push({type:\"deep-wildcard\"}),i+=2):(n.trim()&&e.push(this._parseSegment(n.trim())),n=\"\",i++):(n+=t[i],i++);return n.trim()&&e.push(this._parseSegment(n.trim())),e}_parseSegment(t){const e={type:\"tag\"};let i=null,n=t;const s=t.match(/^([^\\[]+)(\\[[^\\]]*\\])(.*)$/);if(s&&(n=s[1]+s[3],s[2])){const t=s[2].slice(1,-1);t&&(i=t)}let r,o,a=n;if(n.includes(\"::\")){const e=n.indexOf(\"::\");if(r=n.substring(0,e).trim(),a=n.substring(e+2).trim(),!r)throw new Error(`Invalid namespace in pattern: ${t}`)}let h=null;if(a.includes(\":\")){const t=a.lastIndexOf(\":\"),e=a.substring(0,t).trim(),i=a.substring(t+1).trim();[\"first\",\"last\",\"odd\",\"even\"].includes(i)||/^nth\\(\\d+\\)$/.test(i)?(o=e,h=i):o=a}else o=a;if(!o)throw new Error(`Invalid segment pattern: ${t}`);if(e.tag=o,r&&(e.namespace=r),i)if(i.includes(\"=\")){const t=i.indexOf(\"=\");e.attrName=i.substring(0,t).trim(),e.attrValue=i.substring(t+1).trim()}else e.attrName=i.trim();if(h){const t=h.match(/^nth\\((\\d+)\\)$/);t?(e.position=\"nth\",e.positionValue=parseInt(t[1],10)):e.position=h}return e}get length(){return this.segments.length}hasDeepWildcard(){return this._hasDeepWildcard}hasAttributeCondition(){return this._hasAttributeCondition}hasPositionSelector(){return this._hasPositionSelector}toString(){return this.pattern}}function U(t,e){if(!t)return{};const i=e.attributesGroupName?t[e.attributesGroupName]:t;if(!i)return{};const n={};for(const t in i)t.startsWith(e.attributeNamePrefix)?n[t.substring(e.attributeNamePrefix.length)]=i[t]:n[t]=i[t];return n}function B(t){if(!t||\"string\"!=typeof t)return;const e=t.indexOf(\":\");if(-1!==e&&e>0){const i=t.substring(0,e);if(\"xmlns\"!==i)return i}}class W{constructor(t){var e;if(this.options=t,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:\"'\"},gt:{regex:/&(gt|#62|#x3E);/g,val:\">\"},lt:{regex:/&(lt|#60|#x3C);/g,val:\"<\"},quot:{regex:/&(quot|#34|#x22);/g,val:'\"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:\"&\"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:\" \"},cent:{regex:/&(cent|#162);/g,val:\"¢\"},pound:{regex:/&(pound|#163);/g,val:\"£\"},yen:{regex:/&(yen|#165);/g,val:\"¥\"},euro:{regex:/&(euro|#8364);/g,val:\"€\"},copyright:{regex:/&(copy|#169);/g,val:\"©\"},reg:{regex:/&(reg|#174);/g,val:\"®\"},inr:{regex:/&(inr|#8377);/g,val:\"₹\"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(t,e)=>rt(e,10,\"&#\")},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(t,e)=>rt(e,16,\"&#x\")}},this.addExternalEntities=Y,this.parseXml=J,this.parseTextData=z,this.resolveNameSpace=X,this.buildAttributesMap=Z,this.isItStopNode=tt,this.replaceEntitiesValue=Q,this.readStopNodeData=nt,this.saveTextToParentTag=H,this.addChild=K,this.ignoreAttributesFn=\"function\"==typeof(e=this.options.ignoreAttributes)?e:Array.isArray(e)?t=>{for(const i of e){if(\"string\"==typeof i&&t===i)return!0;if(i instanceof RegExp&&i.test(t))return!0}}:()=>!1,this.entityExpansionCount=0,this.currentExpandedLength=0,this.matcher=new G,this.readonlyMatcher=this.matcher.readOnly(),this.isCurrentNodeStopNode=!1,this.options.stopNodes&&this.options.stopNodes.length>0){this.stopNodeExpressions=[];for(let t=0;t<this.options.stopNodes.length;t++){const e=this.options.stopNodes[t];\"string\"==typeof e?this.stopNodeExpressions.push(new R(e)):e instanceof R&&this.stopNodeExpressions.push(e)}}}}function Y(t){const e=Object.keys(t);for(let i=0;i<e.length;i++){const n=e[i],s=n.replace(/[.\\-+*:]/g,\"\\\\.\");this.lastEntities[n]={regex:new RegExp(\"&\"+s+\";\",\"g\"),val:t[n]}}}function z(t,e,i,n,s,r,o){if(void 0!==t&&(this.options.trimValues&&!n&&(t=t.trim()),t.length>0)){o||(t=this.replaceEntitiesValue(t,e,i));const n=this.options.jPath?i.toString():i,a=this.options.tagValueProcessor(e,t,n,s,r);return null==a?t:typeof a!=typeof t||a!==t?a:this.options.trimValues||t.trim()===t?st(t,this.options.parseTagValue,this.options.numberParseOptions):t}}function X(t){if(this.options.removeNSPrefix){const e=t.split(\":\"),i=\"/\"===t.charAt(0)?\"/\":\"\";if(\"xmlns\"===e[0])return\"\";2===e.length&&(t=i+e[1])}return t}const q=new RegExp(\"([^\\\\s=]+)\\\\s*(=\\\\s*(['\\\"])([\\\\s\\\\S]*?)\\\\3)?\",\"gm\");function Z(t,e,i){if(!0!==this.options.ignoreAttributes&&\"string\"==typeof t){const n=s(t,q),r=n.length,o={},a={};for(let t=0;t<r;t++){const e=this.resolveNameSpace(n[t][1]),s=n[t][4];if(e.length&&void 0!==s){let t=s;this.options.trimValues&&(t=t.trim()),t=this.replaceEntitiesValue(t,i,this.readonlyMatcher),a[e]=t}}Object.keys(a).length>0&&\"object\"==typeof e&&e.updateCurrent&&e.updateCurrent(a);for(let t=0;t<r;t++){const s=this.resolveNameSpace(n[t][1]),r=this.options.jPath?e.toString():this.readonlyMatcher;if(this.ignoreAttributesFn(s,r))continue;let a=n[t][4],h=this.options.attributeNamePrefix+s;if(s.length)if(this.options.transformAttributeName&&(h=this.options.transformAttributeName(h)),h=at(h,this.options),void 0!==a){this.options.trimValues&&(a=a.trim()),a=this.replaceEntitiesValue(a,i,this.readonlyMatcher);const t=this.options.jPath?e.toString():this.readonlyMatcher,n=this.options.attributeValueProcessor(s,a,t);o[h]=null==n?a:typeof n!=typeof a||n!==a?n:st(a,this.options.parseAttributeValue,this.options.numberParseOptions)}else this.options.allowBooleanAttributes&&(o[h]=!0)}if(!Object.keys(o).length)return;if(this.options.attributesGroupName){const t={};return t[this.options.attributesGroupName]=o,t}return o}}const J=function(t){t=t.replace(/\\r\\n?/g,\"\\n\");const e=new $(\"!xml\");let i=e,n=\"\";this.matcher.reset(),this.entityExpansionCount=0,this.currentExpandedLength=0;const s=new I(this.options.processEntities);for(let r=0;r<t.length;r++)if(\"<\"===t[r])if(\"/\"===t[r+1]){const e=et(t,\">\",r,\"Closing Tag is not closed.\");let s=t.substring(r+2,e).trim();if(this.options.removeNSPrefix){const t=s.indexOf(\":\");-1!==t&&(s=s.substr(t+1))}s=ot(this.options.transformTagName,s,\"\",this.options).tagName,i&&(n=this.saveTextToParentTag(n,i,this.readonlyMatcher));const o=this.matcher.getCurrentTag();if(s&&-1!==this.options.unpairedTags.indexOf(s))throw new Error(`Unpaired tag can not be used as closing tag: </${s}>`);o&&-1!==this.options.unpairedTags.indexOf(o)&&(this.matcher.pop(),this.tagsNodeStack.pop()),this.matcher.pop(),this.isCurrentNodeStopNode=!1,i=this.tagsNodeStack.pop(),n=\"\",r=e}else if(\"?\"===t[r+1]){let e=it(t,r,!1,\"?>\");if(!e)throw new Error(\"Pi Tag is not closed.\");if(n=this.saveTextToParentTag(n,i,this.readonlyMatcher),this.options.ignoreDeclaration&&\"?xml\"===e.tagName||this.options.ignorePiTags);else{const t=new $(e.tagName);t.add(this.options.textNodeName,\"\"),e.tagName!==e.tagExp&&e.attrExpPresent&&(t[\":@\"]=this.buildAttributesMap(e.tagExp,this.matcher,e.tagName)),this.addChild(i,t,this.readonlyMatcher,r)}r=e.closeIndex+1}else if(\"!--\"===t.substr(r+1,3)){const e=et(t,\"--\\x3e\",r+4,\"Comment is not closed.\");if(this.options.commentPropName){const s=t.substring(r+4,e-2);n=this.saveTextToParentTag(n,i,this.readonlyMatcher),i.add(this.options.commentPropName,[{[this.options.textNodeName]:s}])}r=e}else if(\"!D\"===t.substr(r+1,2)){const e=s.readDocType(t,r);this.docTypeEntities=e.entities,r=e.i}else if(\"![\"===t.substr(r+1,2)){const e=et(t,\"]]>\",r,\"CDATA is not closed.\")-2,s=t.substring(r+9,e);n=this.saveTextToParentTag(n,i,this.readonlyMatcher);let o=this.parseTextData(s,i.tagname,this.readonlyMatcher,!0,!1,!0,!0);null==o&&(o=\"\"),this.options.cdataPropName?i.add(this.options.cdataPropName,[{[this.options.textNodeName]:s}]):i.add(this.options.textNodeName,o),r=e+2}else{let s=it(t,r,this.options.removeNSPrefix);if(!s){const e=t.substring(Math.max(0,r-50),Math.min(t.length,r+50));throw new Error(`readTagExp returned undefined at position ${r}. Context: \"${e}\"`)}let o=s.tagName;const a=s.rawTagName;let h=s.tagExp,l=s.attrExpPresent,p=s.closeIndex;if(({tagName:o,tagExp:h}=ot(this.options.transformTagName,o,h,this.options)),this.options.strictReservedNames&&(o===this.options.commentPropName||o===this.options.cdataPropName||o===this.options.textNodeName||o===this.options.attributesGroupName))throw new Error(`Invalid tag name: ${o}`);i&&n&&\"!xml\"!==i.tagname&&(n=this.saveTextToParentTag(n,i,this.readonlyMatcher,!1));const u=i;u&&-1!==this.options.unpairedTags.indexOf(u.tagname)&&(i=this.tagsNodeStack.pop(),this.matcher.pop());let c=!1;h.length>0&&h.lastIndexOf(\"/\")===h.length-1&&(c=!0,\"/\"===o[o.length-1]?(o=o.substr(0,o.length-1),h=o):h=h.substr(0,h.length-1),l=o!==h);let d,f=null,g={};d=B(a),o!==e.tagname&&this.matcher.push(o,{},d),o!==h&&l&&(f=this.buildAttributesMap(h,this.matcher,o),f&&(g=U(f,this.options))),o!==e.tagname&&(this.isCurrentNodeStopNode=this.isItStopNode(this.stopNodeExpressions,this.matcher));const m=r;if(this.isCurrentNodeStopNode){let e=\"\";if(c)r=s.closeIndex;else if(-1!==this.options.unpairedTags.indexOf(o))r=s.closeIndex;else{const i=this.readStopNodeData(t,a,p+1);if(!i)throw new Error(`Unexpected end of ${a}`);r=i.i,e=i.tagContent}const n=new $(o);f&&(n[\":@\"]=f),n.add(this.options.textNodeName,e),this.matcher.pop(),this.isCurrentNodeStopNode=!1,this.addChild(i,n,this.readonlyMatcher,m)}else{if(c){({tagName:o,tagExp:h}=ot(this.options.transformTagName,o,h,this.options));const t=new $(o);f&&(t[\":@\"]=f),this.addChild(i,t,this.readonlyMatcher,m),this.matcher.pop(),this.isCurrentNodeStopNode=!1}else{if(-1!==this.options.unpairedTags.indexOf(o)){const t=new $(o);f&&(t[\":@\"]=f),this.addChild(i,t,this.readonlyMatcher,m),this.matcher.pop(),this.isCurrentNodeStopNode=!1,r=s.closeIndex;continue}{const t=new $(o);if(this.tagsNodeStack.length>this.options.maxNestedTags)throw new Error(\"Maximum nested tags exceeded\");this.tagsNodeStack.push(i),f&&(t[\":@\"]=f),this.addChild(i,t,this.readonlyMatcher,m),i=t}}n=\"\",r=p}}else n+=t[r];return e.child};function K(t,e,i,n){this.options.captureMetaData||(n=void 0);const s=this.options.jPath?i.toString():i,r=this.options.updateTag(e.tagname,s,e[\":@\"]);!1===r||(\"string\"==typeof r?(e.tagname=r,t.addChild(e,n)):t.addChild(e,n))}function Q(t,e,i){const n=this.options.processEntities;if(!n||!n.enabled)return t;if(n.allowedTags){const s=this.options.jPath?i.toString():i;if(!(Array.isArray(n.allowedTags)?n.allowedTags.includes(e):n.allowedTags(e,s)))return t}if(n.tagFilter){const s=this.options.jPath?i.toString():i;if(!n.tagFilter(e,s))return t}for(const e of Object.keys(this.docTypeEntities)){const i=this.docTypeEntities[e],s=t.match(i.regx);if(s){if(this.entityExpansionCount+=s.length,n.maxTotalExpansions&&this.entityExpansionCount>n.maxTotalExpansions)throw new Error(`Entity expansion limit exceeded: ${this.entityExpansionCount} > ${n.maxTotalExpansions}`);const e=t.length;if(t=t.replace(i.regx,i.val),n.maxExpandedLength&&(this.currentExpandedLength+=t.length-e,this.currentExpandedLength>n.maxExpandedLength))throw new Error(`Total expanded content size exceeded: ${this.currentExpandedLength} > ${n.maxExpandedLength}`)}}for(const e of Object.keys(this.lastEntities)){const i=this.lastEntities[e],s=t.match(i.regex);if(s&&(this.entityExpansionCount+=s.length,n.maxTotalExpansions&&this.entityExpansionCount>n.maxTotalExpansions))throw new Error(`Entity expansion limit exceeded: ${this.entityExpansionCount} > ${n.maxTotalExpansions}`);t=t.replace(i.regex,i.val)}if(-1===t.indexOf(\"&\"))return t;if(this.options.htmlEntities)for(const e of Object.keys(this.htmlEntities)){const i=this.htmlEntities[e],s=t.match(i.regex);if(s&&(this.entityExpansionCount+=s.length,n.maxTotalExpansions&&this.entityExpansionCount>n.maxTotalExpansions))throw new Error(`Entity expansion limit exceeded: ${this.entityExpansionCount} > ${n.maxTotalExpansions}`);t=t.replace(i.regex,i.val)}return t.replace(this.ampEntity.regex,this.ampEntity.val)}function H(t,e,i,n){return t&&(void 0===n&&(n=0===e.child.length),void 0!==(t=this.parseTextData(t,e.tagname,i,!1,!!e[\":@\"]&&0!==Object.keys(e[\":@\"]).length,n))&&\"\"!==t&&e.add(this.options.textNodeName,t),t=\"\"),t}function tt(t,e){if(!t||0===t.length)return!1;for(let i=0;i<t.length;i++)if(e.matches(t[i]))return!0;return!1}function et(t,e,i,n){const s=t.indexOf(e,i);if(-1===s)throw new Error(n);return s+e.length-1}function it(t,e,i,n=\">\"){const s=function(t,e,i=\">\"){let n,s=\"\";for(let r=e;r<t.length;r++){let e=t[r];if(n)e===n&&(n=\"\");else if('\"'===e||\"'\"===e)n=e;else if(e===i[0]){if(!i[1])return{data:s,index:r};if(t[r+1]===i[1])return{data:s,index:r}}else\"\\t\"===e&&(e=\" \");s+=e}}(t,e+1,n);if(!s)return;let r=s.data;const o=s.index,a=r.search(/\\s/);let h=r,l=!0;-1!==a&&(h=r.substring(0,a),r=r.substring(a+1).trimStart());const p=h;if(i){const t=h.indexOf(\":\");-1!==t&&(h=h.substr(t+1),l=h!==s.data.substr(t+1))}return{tagName:h,tagExp:r,closeIndex:o,attrExpPresent:l,rawTagName:p}}function nt(t,e,i){const n=i;let s=1;for(;i<t.length;i++)if(\"<\"===t[i])if(\"/\"===t[i+1]){const r=et(t,\">\",i,`${e} is not closed`);if(t.substring(i+2,r).trim()===e&&(s--,0===s))return{tagContent:t.substring(n,i),i:r};i=r}else if(\"?\"===t[i+1])i=et(t,\"?>\",i+1,\"StopNode is not closed.\");else if(\"!--\"===t.substr(i+1,3))i=et(t,\"--\\x3e\",i+3,\"StopNode is not closed.\");else if(\"![\"===t.substr(i+1,2))i=et(t,\"]]>\",i,\"StopNode is not closed.\")-2;else{const n=it(t,i,\">\");n&&((n&&n.tagName)===e&&\"/\"!==n.tagExp[n.tagExp.length-1]&&s++,i=n.closeIndex)}}function st(t,e,i){if(e&&\"string\"==typeof t){const e=t.trim();return\"true\"===e||\"false\"!==e&&function(t,e={}){if(e=Object.assign({},k,e),!t||\"string\"!=typeof t)return t;let i=t.trim();if(void 0!==e.skipLike&&e.skipLike.test(i))return t;if(\"0\"===t)return 0;if(e.hex&&D.test(i))return function(t){if(parseInt)return parseInt(t,16);if(Number.parseInt)return Number.parseInt(t,16);if(window&&window.parseInt)return window.parseInt(t,16);throw new Error(\"parseInt, Number.parseInt, window.parseInt are not supported\")}(i);if(isFinite(i)){if(i.includes(\"e\")||i.includes(\"E\"))return function(t,e,i){if(!i.eNotation)return t;const n=e.match(F);if(n){let s=n[1]||\"\";const r=-1===n[3].indexOf(\"e\")?\"E\":\"e\",o=n[2],a=s?t[o.length+1]===r:t[o.length]===r;return o.length>1&&a?t:(1!==o.length||!n[3].startsWith(`.${r}`)&&n[3][0]!==r)&&o.length>0?i.leadingZeros&&!a?(e=(n[1]||\"\")+n[3],Number(e)):t:Number(e)}return t}(t,i,e);{const s=V.exec(i);if(s){const r=s[1]||\"\",o=s[2];let a=(n=s[3])&&-1!==n.indexOf(\".\")?(\".\"===(n=n.replace(/0+$/,\"\"))?n=\"0\":\".\"===n[0]?n=\"0\"+n:\".\"===n[n.length-1]&&(n=n.substring(0,n.length-1)),n):n;const h=r?\".\"===t[o.length+1]:\".\"===t[o.length];if(!e.leadingZeros&&(o.length>1||1===o.length&&!h))return t;{const n=Number(i),s=String(n);if(0===n)return n;if(-1!==s.search(/[eE]/))return e.eNotation?n:t;if(-1!==i.indexOf(\".\"))return\"0\"===s||s===a||s===`${r}${a}`?n:t;let h=o?a:i;return o?h===s||r+h===s?n:t:h===s||h===r+s?n:t}}return t}}var n;return function(t,e,i){const n=e===1/0;switch(i.infinity.toLowerCase()){case\"null\":return null;case\"infinity\":return e;case\"string\":return n?\"Infinity\":\"-Infinity\";default:return t}}(t,Number(i),e)}(t,i)}return void 0!==t?t:\"\"}function rt(t,e,i){const n=Number.parseInt(t,e);return n>=0&&n<=1114111?String.fromCodePoint(n):i+t+\";\"}function ot(t,e,i,n){if(t){const n=t(e);i===e&&(i=n),e=n}return{tagName:e=at(e,n),tagExp:i}}function at(t,e){if(a.includes(t))throw new Error(`[SECURITY] Invalid name: \"${t}\" is a reserved JavaScript keyword that could cause prototype pollution`);return o.includes(t)?e.onDangerousProperty(t):t}const ht=$.getMetaDataSymbol();function lt(t,e){if(!t||\"object\"!=typeof t)return{};if(!e)return t;const i={};for(const n in t)n.startsWith(e)?i[n.substring(e.length)]=t[n]:i[n]=t[n];return i}function pt(t,e,i,n){return ut(t,e,i,n)}function ut(t,e,i,n){let s;const r={};for(let o=0;o<t.length;o++){const a=t[o],h=ct(a);if(void 0!==h&&h!==e.textNodeName){const t=lt(a[\":@\"]||{},e.attributeNamePrefix);i.push(h,t)}if(h===e.textNodeName)void 0===s?s=a[h]:s+=\"\"+a[h];else{if(void 0===h)continue;if(a[h]){let t=ut(a[h],e,i,n);const s=ft(t,e);if(a[\":@\"]?dt(t,a[\":@\"],n,e):1!==Object.keys(t).length||void 0===t[e.textNodeName]||e.alwaysCreateTextNode?0===Object.keys(t).length&&(e.alwaysCreateTextNode?t[e.textNodeName]=\"\":t=\"\"):t=t[e.textNodeName],void 0!==a[ht]&&\"object\"==typeof t&&null!==t&&(t[ht]=a[ht]),void 0!==r[h]&&Object.prototype.hasOwnProperty.call(r,h))Array.isArray(r[h])||(r[h]=[r[h]]),r[h].push(t);else{const i=e.jPath?n.toString():n;e.isArray(h,i,s)?r[h]=[t]:r[h]=t}void 0!==h&&h!==e.textNodeName&&i.pop()}}}return\"string\"==typeof s?s.length>0&&(r[e.textNodeName]=s):void 0!==s&&(r[e.textNodeName]=s),r}function ct(t){const e=Object.keys(t);for(let t=0;t<e.length;t++){const i=e[t];if(\":@\"!==i)return i}}function dt(t,e,i,n){if(e){const s=Object.keys(e),r=s.length;for(let o=0;o<r;o++){const r=s[o],a=r.startsWith(n.attributeNamePrefix)?r.substring(n.attributeNamePrefix.length):r,h=n.jPath?i.toString()+\".\"+a:i;n.isArray(r,h,!0,!0)?t[r]=[e[r]]:t[r]=e[r]}}}function ft(t,e){const{textNodeName:i}=e,n=Object.keys(t).length;return 0===n||!(1!==n||!t[i]&&\"boolean\"!=typeof t[i]&&0!==t[i])}class gt{constructor(t){this.externalEntities={},this.options=O(t)}parse(t,e){if(\"string\"!=typeof t&&t.toString)t=t.toString();else if(\"string\"!=typeof t)throw new Error(\"XML data is accepted in String or Bytes[] form.\");if(e){!0===e&&(e={});const i=l(t,e);if(!0!==i)throw Error(`${i.err.msg}:${i.err.line}:${i.err.col}`)}const i=new W(this.options);i.addExternalEntities(this.externalEntities);const n=i.parseXml(t);return this.options.preserveOrder||void 0===n?n:pt(n,this.options,i.matcher,i.readonlyMatcher)}addEntity(t,e){if(-1!==e.indexOf(\"&\"))throw new Error(\"Entity value can't have '&'\");if(-1!==t.indexOf(\"&\")||-1!==t.indexOf(\";\"))throw new Error(\"An entity must be set without '&' and ';'. Eg. use '#xD' for '
'\");if(\"&\"===e)throw new Error(\"An entity with value '&' is not permitted\");this.externalEntities[t]=e}static getMetaDataSymbol(){return $.getMetaDataSymbol()}}function mt(t,e){let i=\"\";e.format&&e.indentBy.length>0&&(i=\"\\n\");const n=[];if(e.stopNodes&&Array.isArray(e.stopNodes))for(let t=0;t<e.stopNodes.length;t++){const i=e.stopNodes[t];\"string\"==typeof i?n.push(new R(i)):i instanceof R&&n.push(i)}return xt(t,e,i,new G,n)}function xt(t,e,i,n,s){let r=\"\",o=!1;if(e.maxNestedTags&&n.getDepth()>e.maxNestedTags)throw new Error(\"Maximum nested tags exceeded\");if(!Array.isArray(t)){if(null!=t){let i=t.toString();return i=Tt(i,e),i}return\"\"}for(let a=0;a<t.length;a++){const h=t[a],l=yt(h);if(void 0===l)continue;const p=Nt(h[\":@\"],e);n.push(l,p);const u=vt(n,s);if(l===e.textNodeName){let t=h[l];u||(t=e.tagValueProcessor(l,t),t=Tt(t,e)),o&&(r+=i),r+=t,o=!1,n.pop();continue}if(l===e.cdataPropName){o&&(r+=i),r+=`<![CDATA[${h[l][0][e.textNodeName]}]]>`,o=!1,n.pop();continue}if(l===e.commentPropName){r+=i+`\\x3c!--${h[l][0][e.textNodeName]}--\\x3e`,o=!0,n.pop();continue}if(\"?\"===l[0]){const t=wt(h[\":@\"],e,u),s=\"?xml\"===l?\"\":i;let a=h[l][0][e.textNodeName];a=0!==a.length?\" \"+a:\"\",r+=s+`<${l}${a}${t}?>`,o=!0,n.pop();continue}let c=i;\"\"!==c&&(c+=e.indentBy);const d=i+`<${l}${wt(h[\":@\"],e,u)}`;let f;f=u?bt(h[l],e):xt(h[l],e,c,n,s),-1!==e.unpairedTags.indexOf(l)?e.suppressUnpairedNode?r+=d+\">\":r+=d+\"/>\":f&&0!==f.length||!e.suppressEmptyNode?f&&f.endsWith(\">\")?r+=d+`>${f}${i}</${l}>`:(r+=d+\">\",f&&\"\"!==i&&(f.includes(\"/>\")||f.includes(\"</\"))?r+=i+e.indentBy+f+i:r+=f,r+=`</${l}>`):r+=d+\"/>\",o=!0,n.pop()}return r}function Nt(t,e){if(!t||e.ignoreAttributes)return null;const i={};let n=!1;for(let s in t)Object.prototype.hasOwnProperty.call(t,s)&&(i[s.startsWith(e.attributeNamePrefix)?s.substr(e.attributeNamePrefix.length):s]=t[s],n=!0);return n?i:null}function bt(t,e){if(!Array.isArray(t))return null!=t?t.toString():\"\";let i=\"\";for(let n=0;n<t.length;n++){const s=t[n],r=yt(s);if(r===e.textNodeName)i+=s[r];else if(r===e.cdataPropName)i+=s[r][0][e.textNodeName];else if(r===e.commentPropName)i+=s[r][0][e.textNodeName];else{if(r&&\"?\"===r[0])continue;if(r){const t=Et(s[\":@\"],e),n=bt(s[r],e);n&&0!==n.length?i+=`<${r}${t}>${n}</${r}>`:i+=`<${r}${t}/>`}}}return i}function Et(t,e){let i=\"\";if(t&&!e.ignoreAttributes)for(let n in t){if(!Object.prototype.hasOwnProperty.call(t,n))continue;let s=t[n];!0===s&&e.suppressBooleanAttributes?i+=` ${n.substr(e.attributeNamePrefix.length)}`:i+=` ${n.substr(e.attributeNamePrefix.length)}=\"${s}\"`}return i}function yt(t){const e=Object.keys(t);for(let i=0;i<e.length;i++){const n=e[i];if(Object.prototype.hasOwnProperty.call(t,n)&&\":@\"!==n)return n}}function wt(t,e,i){let n=\"\";if(t&&!e.ignoreAttributes)for(let s in t){if(!Object.prototype.hasOwnProperty.call(t,s))continue;let r;i?r=t[s]:(r=e.attributeValueProcessor(s,t[s]),r=Tt(r,e)),!0===r&&e.suppressBooleanAttributes?n+=` ${s.substr(e.attributeNamePrefix.length)}`:n+=` ${s.substr(e.attributeNamePrefix.length)}=\"${r}\"`}return n}function vt(t,e){if(!e||0===e.length)return!1;for(let i=0;i<e.length;i++)if(t.matches(e[i]))return!0;return!1}function Tt(t,e){if(t&&t.length>0&&e.processEntities)for(let i=0;i<e.entities.length;i++){const n=e.entities[i];t=t.replace(n.regex,n.val)}return t}const Pt={attributeNamePrefix:\"@_\",attributesGroupName:!1,textNodeName:\"#text\",ignoreAttributes:!0,cdataPropName:!1,format:!1,indentBy:\" \",suppressEmptyNode:!1,suppressUnpairedNode:!0,suppressBooleanAttributes:!0,tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},preserveOrder:!1,commentPropName:!1,unpairedTags:[],entities:[{regex:new RegExp(\"&\",\"g\"),val:\"&\"},{regex:new RegExp(\">\",\"g\"),val:\">\"},{regex:new RegExp(\"<\",\"g\"),val:\"<\"},{regex:new RegExp(\"'\",\"g\"),val:\"'\"},{regex:new RegExp('\"',\"g\"),val:\""\"}],processEntities:!0,stopNodes:[],oneListGroup:!1,maxNestedTags:100,jPath:!0};function St(t){if(this.options=Object.assign({},Pt,t),this.options.stopNodes&&Array.isArray(this.options.stopNodes)&&(this.options.stopNodes=this.options.stopNodes.map(t=>\"string\"==typeof t&&t.startsWith(\"*.\")?\"..\"+t.substring(2):t)),this.stopNodeExpressions=[],this.options.stopNodes&&Array.isArray(this.options.stopNodes))for(let t=0;t<this.options.stopNodes.length;t++){const e=this.options.stopNodes[t];\"string\"==typeof e?this.stopNodeExpressions.push(new R(e)):e instanceof R&&this.stopNodeExpressions.push(e)}var e;!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn=\"function\"==typeof(e=this.options.ignoreAttributes)?e:Array.isArray(e)?t=>{for(const i of e){if(\"string\"==typeof i&&t===i)return!0;if(i instanceof RegExp&&i.test(t))return!0}}:()=>!1,this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=Ct),this.processTextOrObjNode=At,this.options.format?(this.indentate=Ot,this.tagEndChar=\">\\n\",this.newLine=\"\\n\"):(this.indentate=function(){return\"\"},this.tagEndChar=\">\",this.newLine=\"\")}function At(t,e,i,n){const s=this.extractAttributes(t);if(n.push(e,s),this.checkStopNode(n)){const s=this.buildRawContent(t),r=this.buildAttributesForStopNode(t);return n.pop(),this.buildObjectNode(s,e,r,i)}const r=this.j2x(t,i+1,n);return n.pop(),void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextValNode(t[this.options.textNodeName],e,r.attrStr,i,n):this.buildObjectNode(r.val,e,r.attrStr,i)}function Ot(t){return this.options.indentBy.repeat(t)}function Ct(t){return!(!t.startsWith(this.options.attributeNamePrefix)||t===this.options.textNodeName)&&t.substr(this.attrPrefixLen)}St.prototype.build=function(t){if(this.options.preserveOrder)return mt(t,this.options);{Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(t={[this.options.arrayNodeName]:t});const e=new G;return this.j2x(t,0,e).val}},St.prototype.j2x=function(t,e,i){let n=\"\",s=\"\";if(this.options.maxNestedTags&&i.getDepth()>=this.options.maxNestedTags)throw new Error(\"Maximum nested tags exceeded\");const r=this.options.jPath?i.toString():i,o=this.checkStopNode(i);for(let a in t)if(Object.prototype.hasOwnProperty.call(t,a))if(void 0===t[a])this.isAttribute(a)&&(s+=\"\");else if(null===t[a])this.isAttribute(a)||a===this.options.cdataPropName?s+=\"\":\"?\"===a[0]?s+=this.indentate(e)+\"<\"+a+\"?\"+this.tagEndChar:s+=this.indentate(e)+\"<\"+a+\"/\"+this.tagEndChar;else if(t[a]instanceof Date)s+=this.buildTextValNode(t[a],a,\"\",e,i);else if(\"object\"!=typeof t[a]){const h=this.isAttribute(a);if(h&&!this.ignoreAttributesFn(h,r))n+=this.buildAttrPairStr(h,\"\"+t[a],o);else if(!h)if(a===this.options.textNodeName){let e=this.options.tagValueProcessor(a,\"\"+t[a]);s+=this.replaceEntitiesValue(e)}else{i.push(a);const n=this.checkStopNode(i);if(i.pop(),n){const i=\"\"+t[a];s+=\"\"===i?this.indentate(e)+\"<\"+a+this.closeTag(a)+this.tagEndChar:this.indentate(e)+\"<\"+a+\">\"+i+\"</\"+a+this.tagEndChar}else s+=this.buildTextValNode(t[a],a,\"\",e,i)}}else if(Array.isArray(t[a])){const n=t[a].length;let r=\"\",o=\"\";for(let h=0;h<n;h++){const n=t[a][h];if(void 0===n);else if(null===n)\"?\"===a[0]?s+=this.indentate(e)+\"<\"+a+\"?\"+this.tagEndChar:s+=this.indentate(e)+\"<\"+a+\"/\"+this.tagEndChar;else if(\"object\"==typeof n)if(this.options.oneListGroup){i.push(a);const t=this.j2x(n,e+1,i);i.pop(),r+=t.val,this.options.attributesGroupName&&n.hasOwnProperty(this.options.attributesGroupName)&&(o+=t.attrStr)}else r+=this.processTextOrObjNode(n,a,e,i);else if(this.options.oneListGroup){let t=this.options.tagValueProcessor(a,n);t=this.replaceEntitiesValue(t),r+=t}else{i.push(a);const t=this.checkStopNode(i);if(i.pop(),t){const t=\"\"+n;r+=\"\"===t?this.indentate(e)+\"<\"+a+this.closeTag(a)+this.tagEndChar:this.indentate(e)+\"<\"+a+\">\"+t+\"</\"+a+this.tagEndChar}else r+=this.buildTextValNode(n,a,\"\",e,i)}}this.options.oneListGroup&&(r=this.buildObjectNode(r,a,o,e)),s+=r}else if(this.options.attributesGroupName&&a===this.options.attributesGroupName){const e=Object.keys(t[a]),i=e.length;for(let s=0;s<i;s++)n+=this.buildAttrPairStr(e[s],\"\"+t[a][e[s]],o)}else s+=this.processTextOrObjNode(t[a],a,e,i);return{attrStr:n,val:s}},St.prototype.buildAttrPairStr=function(t,e,i){return i||(e=this.options.attributeValueProcessor(t,\"\"+e),e=this.replaceEntitiesValue(e)),this.options.suppressBooleanAttributes&&\"true\"===e?\" \"+t:\" \"+t+'=\"'+e+'\"'},St.prototype.extractAttributes=function(t){if(!t||\"object\"!=typeof t)return null;const e={};let i=!1;if(this.options.attributesGroupName&&t[this.options.attributesGroupName]){const n=t[this.options.attributesGroupName];for(let t in n)Object.prototype.hasOwnProperty.call(n,t)&&(e[t.startsWith(this.options.attributeNamePrefix)?t.substring(this.options.attributeNamePrefix.length):t]=n[t],i=!0)}else for(let n in t){if(!Object.prototype.hasOwnProperty.call(t,n))continue;const s=this.isAttribute(n);s&&(e[s]=t[n],i=!0)}return i?e:null},St.prototype.buildRawContent=function(t){if(\"string\"==typeof t)return t;if(\"object\"!=typeof t||null===t)return String(t);if(void 0!==t[this.options.textNodeName])return t[this.options.textNodeName];let e=\"\";for(let i in t){if(!Object.prototype.hasOwnProperty.call(t,i))continue;if(this.isAttribute(i))continue;if(this.options.attributesGroupName&&i===this.options.attributesGroupName)continue;const n=t[i];if(i===this.options.textNodeName)e+=n;else if(Array.isArray(n)){for(let t of n)if(\"string\"==typeof t||\"number\"==typeof t)e+=`<${i}>${t}</${i}>`;else if(\"object\"==typeof t&&null!==t){const n=this.buildRawContent(t),s=this.buildAttributesForStopNode(t);e+=\"\"===n?`<${i}${s}/>`:`<${i}${s}>${n}</${i}>`}}else if(\"object\"==typeof n&&null!==n){const t=this.buildRawContent(n),s=this.buildAttributesForStopNode(n);e+=\"\"===t?`<${i}${s}/>`:`<${i}${s}>${t}</${i}>`}else e+=`<${i}>${n}</${i}>`}return e},St.prototype.buildAttributesForStopNode=function(t){if(!t||\"object\"!=typeof t)return\"\";let e=\"\";if(this.options.attributesGroupName&&t[this.options.attributesGroupName]){const i=t[this.options.attributesGroupName];for(let t in i){if(!Object.prototype.hasOwnProperty.call(i,t))continue;const n=t.startsWith(this.options.attributeNamePrefix)?t.substring(this.options.attributeNamePrefix.length):t,s=i[t];!0===s&&this.options.suppressBooleanAttributes?e+=\" \"+n:e+=\" \"+n+'=\"'+s+'\"'}}else for(let i in t){if(!Object.prototype.hasOwnProperty.call(t,i))continue;const n=this.isAttribute(i);if(n){const s=t[i];!0===s&&this.options.suppressBooleanAttributes?e+=\" \"+n:e+=\" \"+n+'=\"'+s+'\"'}}return e},St.prototype.buildObjectNode=function(t,e,i,n){if(\"\"===t)return\"?\"===e[0]?this.indentate(n)+\"<\"+e+i+\"?\"+this.tagEndChar:this.indentate(n)+\"<\"+e+i+this.closeTag(e)+this.tagEndChar;{let s=\"</\"+e+this.tagEndChar,r=\"\";return\"?\"===e[0]&&(r=\"?\",s=\"\"),!i&&\"\"!==i||-1!==t.indexOf(\"<\")?!1!==this.options.commentPropName&&e===this.options.commentPropName&&0===r.length?this.indentate(n)+`\\x3c!--${t}--\\x3e`+this.newLine:this.indentate(n)+\"<\"+e+i+r+this.tagEndChar+t+this.indentate(n)+s:this.indentate(n)+\"<\"+e+i+r+\">\"+t+s}},St.prototype.closeTag=function(t){let e=\"\";return-1!==this.options.unpairedTags.indexOf(t)?this.options.suppressUnpairedNode||(e=\"/\"):e=this.options.suppressEmptyNode?\"/\":`></${t}`,e},St.prototype.checkStopNode=function(t){if(!this.stopNodeExpressions||0===this.stopNodeExpressions.length)return!1;for(let e=0;e<this.stopNodeExpressions.length;e++)if(t.matches(this.stopNodeExpressions[e]))return!0;return!1},St.prototype.buildTextValNode=function(t,e,i,n,s){if(!1!==this.options.cdataPropName&&e===this.options.cdataPropName)return this.indentate(n)+`<![CDATA[${t}]]>`+this.newLine;if(!1!==this.options.commentPropName&&e===this.options.commentPropName)return this.indentate(n)+`\\x3c!--${t}--\\x3e`+this.newLine;if(\"?\"===e[0])return this.indentate(n)+\"<\"+e+i+\"?\"+this.tagEndChar;{let s=this.options.tagValueProcessor(e,t);return s=this.replaceEntitiesValue(s),\"\"===s?this.indentate(n)+\"<\"+e+i+this.closeTag(e)+this.tagEndChar:this.indentate(n)+\"<\"+e+i+\">\"+s+\"</\"+e+this.tagEndChar}},St.prototype.replaceEntitiesValue=function(t){if(t&&t.length>0&&this.options.processEntities)for(let e=0;e<this.options.entities.length;e++){const i=this.options.entities[e];t=t.replace(i.regex,i.val)}return t};const $t=St,It={validate:l};module.exports=e})();",
|
|
17
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseXML = parseXML;\nconst fast_xml_parser_1 = require(\"fast-xml-parser\");\nconst parser = new fast_xml_parser_1.XMLParser({\n attributeNamePrefix: \"\",\n processEntities: {\n enabled: true,\n maxTotalExpansions: Infinity,\n },\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: (_, val) => (val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : undefined),\n maxNestedTags: Infinity,\n});\nparser.addEntity(\"#xD\", \"\\r\");\nparser.addEntity(\"#10\", \"\\n\");\nfunction parseXML(xmlString) {\n return parser.parse(xmlString, true);\n}\n",
|
|
18
|
+
"'use strict';\n\nvar xmlParser = require('./xml-parser');\n\nconst ATTR_ESCAPE_RE = /[&<>\"]/g;\nconst ATTR_ESCAPE_MAP = {\n \"&\": \"&\",\n \"<\": \"<\",\n \">\": \">\",\n '\"': \""\",\n};\nfunction escapeAttribute(value) {\n return value.replace(ATTR_ESCAPE_RE, (ch) => ATTR_ESCAPE_MAP[ch]);\n}\n\nconst ELEMENT_ESCAPE_RE = /[&\"'<>\\r\\n\\u0085\\u2028]/g;\nconst ELEMENT_ESCAPE_MAP = {\n \"&\": \"&\",\n '\"': \""\",\n \"'\": \"'\",\n \"<\": \"<\",\n \">\": \">\",\n \"\\r\": \"
\",\n \"\\n\": \"
\",\n \"\\u0085\": \"…\",\n \"\\u2028\": \"
\",\n};\nfunction escapeElement(value) {\n return value.replace(ELEMENT_ESCAPE_RE, (ch) => ELEMENT_ESCAPE_MAP[ch]);\n}\n\nclass XmlText {\n value;\n constructor(value) {\n this.value = value;\n }\n toString() {\n return escapeElement(\"\" + this.value);\n }\n}\n\nclass XmlNode {\n name;\n children;\n attributes = {};\n static of(name, childText, withName) {\n const node = new XmlNode(name);\n if (childText !== undefined) {\n node.addChildNode(new XmlText(childText));\n }\n if (withName !== undefined) {\n node.withName(withName);\n }\n return node;\n }\n constructor(name, children = []) {\n this.name = name;\n this.children = children;\n }\n withName(name) {\n this.name = name;\n return this;\n }\n addAttribute(name, value) {\n this.attributes[name] = value;\n return this;\n }\n addChildNode(child) {\n this.children.push(child);\n return this;\n }\n removeAttribute(name) {\n delete this.attributes[name];\n return this;\n }\n n(name) {\n this.name = name;\n return this;\n }\n c(child) {\n this.children.push(child);\n return this;\n }\n a(name, value) {\n if (value != null) {\n this.attributes[name] = value;\n }\n return this;\n }\n cc(input, field, withName = field) {\n if (input[field] != null) {\n const node = XmlNode.of(field, input[field]).withName(withName);\n this.c(node);\n }\n }\n l(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n nodes.map((node) => {\n node.withName(memberName);\n this.c(node);\n });\n }\n }\n lc(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n const containerNode = new XmlNode(memberName);\n nodes.map((node) => {\n containerNode.c(node);\n });\n this.c(containerNode);\n }\n }\n toString() {\n const hasChildren = Boolean(this.children.length);\n let xmlText = `<${this.name}`;\n const attributes = this.attributes;\n for (const attributeName of Object.keys(attributes)) {\n const attribute = attributes[attributeName];\n if (attribute != null) {\n xmlText += ` ${attributeName}=\"${escapeAttribute(\"\" + attribute)}\"`;\n }\n }\n return (xmlText += !hasChildren ? \"/>\" : `>${this.children.map((c) => c.toString()).join(\"\")}</${this.name}>`);\n }\n}\n\nexports.parseXML = xmlParser.parseXML;\nexports.XmlNode = XmlNode;\nexports.XmlText = XmlText;\n",
|
|
19
|
+
"'use strict';\n\nvar protocolHttp = require('@smithy/protocol-http');\nvar core = require('@smithy/core');\nvar propertyProvider = require('@smithy/property-provider');\nvar client = require('@aws-sdk/core/client');\nvar signatureV4 = require('@smithy/signature-v4');\nvar cbor = require('@smithy/core/cbor');\nvar schema = require('@smithy/core/schema');\nvar smithyClient = require('@smithy/smithy-client');\nvar protocols = require('@smithy/core/protocols');\nvar serde = require('@smithy/core/serde');\nvar utilBase64 = require('@smithy/util-base64');\nvar utilUtf8 = require('@smithy/util-utf8');\nvar xmlBuilder = require('@aws-sdk/xml-builder');\n\nconst state = {\n warningEmitted: false,\n};\nconst emitWarningIfUnsupportedVersion = (version) => {\n if (version && !state.warningEmitted && parseInt(version.substring(1, version.indexOf(\".\"))) < 20) {\n state.warningEmitted = true;\n process.emitWarning(`NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will\nno longer support Node.js ${version} in January 2026.\n\nTo continue receiving updates to AWS services, bug fixes, and security\nupdates please upgrade to a supported Node.js LTS version.\n\nMore information can be found at: https://a.co/c895JFp`);\n }\n};\n\nfunction setCredentialFeature(credentials, feature, value) {\n if (!credentials.$source) {\n credentials.$source = {};\n }\n credentials.$source[feature] = value;\n return credentials;\n}\n\nfunction setFeature(context, feature, value) {\n if (!context.__aws_sdk_context) {\n context.__aws_sdk_context = {\n features: {},\n };\n }\n else if (!context.__aws_sdk_context.features) {\n context.__aws_sdk_context.features = {};\n }\n context.__aws_sdk_context.features[feature] = value;\n}\n\nfunction setTokenFeature(token, feature, value) {\n if (!token.$source) {\n token.$source = {};\n }\n token.$source[feature] = value;\n return token;\n}\n\nconst getDateHeader = (response) => protocolHttp.HttpResponse.isInstance(response) ? response.headers?.date ?? response.headers?.Date : undefined;\n\nconst getSkewCorrectedDate = (systemClockOffset) => new Date(Date.now() + systemClockOffset);\n\nconst isClockSkewed = (clockTime, systemClockOffset) => Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - clockTime) >= 300000;\n\nconst getUpdatedSystemClockOffset = (clockTime, currentSystemClockOffset) => {\n const clockTimeInMs = Date.parse(clockTime);\n if (isClockSkewed(clockTimeInMs, currentSystemClockOffset)) {\n return clockTimeInMs - Date.now();\n }\n return currentSystemClockOffset;\n};\n\nconst throwSigningPropertyError = (name, property) => {\n if (!property) {\n throw new Error(`Property \\`${name}\\` is not resolved for AWS SDK SigV4Auth`);\n }\n return property;\n};\nconst validateSigningProperties = async (signingProperties) => {\n const context = throwSigningPropertyError(\"context\", signingProperties.context);\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const authScheme = context.endpointV2?.properties?.authSchemes?.[0];\n const signerFunction = throwSigningPropertyError(\"signer\", config.signer);\n const signer = await signerFunction(authScheme);\n const signingRegion = signingProperties?.signingRegion;\n const signingRegionSet = signingProperties?.signingRegionSet;\n const signingName = signingProperties?.signingName;\n return {\n config,\n signer,\n signingRegion,\n signingRegionSet,\n signingName,\n };\n};\nclass AwsSdkSigV4Signer {\n async sign(httpRequest, identity, signingProperties) {\n if (!protocolHttp.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const validatedProps = await validateSigningProperties(signingProperties);\n const { config, signer } = validatedProps;\n let { signingRegion, signingName } = validatedProps;\n const handlerExecutionContext = signingProperties.context;\n if (handlerExecutionContext?.authSchemes?.length ?? 0 > 1) {\n const [first, second] = handlerExecutionContext.authSchemes;\n if (first?.name === \"sigv4a\" && second?.name === \"sigv4\") {\n signingRegion = second?.signingRegion ?? signingRegion;\n signingName = second?.signingName ?? signingName;\n }\n }\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion: signingRegion,\n signingService: signingName,\n });\n return signedRequest;\n }\n errorHandler(signingProperties) {\n return (error) => {\n const serverTime = error.ServerTime ?? getDateHeader(error.$response);\n if (serverTime) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const initialSystemClockOffset = config.systemClockOffset;\n config.systemClockOffset = getUpdatedSystemClockOffset(serverTime, config.systemClockOffset);\n const clockSkewCorrected = config.systemClockOffset !== initialSystemClockOffset;\n if (clockSkewCorrected && error.$metadata) {\n error.$metadata.clockSkewCorrected = true;\n }\n }\n throw error;\n };\n }\n successHandler(httpResponse, signingProperties) {\n const dateHeader = getDateHeader(httpResponse);\n if (dateHeader) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n config.systemClockOffset = getUpdatedSystemClockOffset(dateHeader, config.systemClockOffset);\n }\n }\n}\nconst AWSSDKSigV4Signer = AwsSdkSigV4Signer;\n\nclass AwsSdkSigV4ASigner extends AwsSdkSigV4Signer {\n async sign(httpRequest, identity, signingProperties) {\n if (!protocolHttp.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const { config, signer, signingRegion, signingRegionSet, signingName } = await validateSigningProperties(signingProperties);\n const configResolvedSigningRegionSet = await config.sigv4aSigningRegionSet?.();\n const multiRegionOverride = (configResolvedSigningRegionSet ??\n signingRegionSet ?? [signingRegion]).join(\",\");\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion: multiRegionOverride,\n signingService: signingName,\n });\n return signedRequest;\n }\n}\n\nconst getArrayForCommaSeparatedString = (str) => typeof str === \"string\" && str.length > 0 ? str.split(\",\").map((item) => item.trim()) : [];\n\nconst getBearerTokenEnvKey = (signingName) => `AWS_BEARER_TOKEN_${signingName.replace(/[\\s-]/g, \"_\").toUpperCase()}`;\n\nconst NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY = \"AWS_AUTH_SCHEME_PREFERENCE\";\nconst NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY = \"auth_scheme_preference\";\nconst NODE_AUTH_SCHEME_PREFERENCE_OPTIONS = {\n environmentVariableSelector: (env, options) => {\n if (options?.signingName) {\n const bearerTokenKey = getBearerTokenEnvKey(options.signingName);\n if (bearerTokenKey in env)\n return [\"httpBearerAuth\"];\n }\n if (!(NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY in env))\n return undefined;\n return getArrayForCommaSeparatedString(env[NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY]);\n },\n configFileSelector: (profile) => {\n if (!(NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY in profile))\n return undefined;\n return getArrayForCommaSeparatedString(profile[NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY]);\n },\n default: [],\n};\n\nconst resolveAwsSdkSigV4AConfig = (config) => {\n config.sigv4aSigningRegionSet = core.normalizeProvider(config.sigv4aSigningRegionSet);\n return config;\n};\nconst NODE_SIGV4A_CONFIG_OPTIONS = {\n environmentVariableSelector(env) {\n if (env.AWS_SIGV4A_SIGNING_REGION_SET) {\n return env.AWS_SIGV4A_SIGNING_REGION_SET.split(\",\").map((_) => _.trim());\n }\n throw new propertyProvider.ProviderError(\"AWS_SIGV4A_SIGNING_REGION_SET not set in env.\", {\n tryNextLink: true,\n });\n },\n configFileSelector(profile) {\n if (profile.sigv4a_signing_region_set) {\n return (profile.sigv4a_signing_region_set ?? \"\").split(\",\").map((_) => _.trim());\n }\n throw new propertyProvider.ProviderError(\"sigv4a_signing_region_set not set in profile.\", {\n tryNextLink: true,\n });\n },\n default: undefined,\n};\n\nconst resolveAwsSdkSigV4Config = (config) => {\n let inputCredentials = config.credentials;\n let isUserSupplied = !!config.credentials;\n let resolvedCredentials = undefined;\n Object.defineProperty(config, \"credentials\", {\n set(credentials) {\n if (credentials && credentials !== inputCredentials && credentials !== resolvedCredentials) {\n isUserSupplied = true;\n }\n inputCredentials = credentials;\n const memoizedProvider = normalizeCredentialProvider(config, {\n credentials: inputCredentials,\n credentialDefaultProvider: config.credentialDefaultProvider,\n });\n const boundProvider = bindCallerConfig(config, memoizedProvider);\n if (isUserSupplied && !boundProvider.attributed) {\n const isCredentialObject = typeof inputCredentials === \"object\" && inputCredentials !== null;\n resolvedCredentials = async (options) => {\n const creds = await boundProvider(options);\n const attributedCreds = creds;\n if (isCredentialObject && (!attributedCreds.$source || Object.keys(attributedCreds.$source).length === 0)) {\n return client.setCredentialFeature(attributedCreds, \"CREDENTIALS_CODE\", \"e\");\n }\n return attributedCreds;\n };\n resolvedCredentials.memoized = boundProvider.memoized;\n resolvedCredentials.configBound = boundProvider.configBound;\n resolvedCredentials.attributed = true;\n }\n else {\n resolvedCredentials = boundProvider;\n }\n },\n get() {\n return resolvedCredentials;\n },\n enumerable: true,\n configurable: true,\n });\n config.credentials = inputCredentials;\n const { signingEscapePath = true, systemClockOffset = config.systemClockOffset || 0, sha256, } = config;\n let signer;\n if (config.signer) {\n signer = core.normalizeProvider(config.signer);\n }\n else if (config.regionInfoProvider) {\n signer = () => core.normalizeProvider(config.region)()\n .then(async (region) => [\n (await config.regionInfoProvider(region, {\n useFipsEndpoint: await config.useFipsEndpoint(),\n useDualstackEndpoint: await config.useDualstackEndpoint(),\n })) || {},\n region,\n ])\n .then(([regionInfo, region]) => {\n const { signingRegion, signingService } = regionInfo;\n config.signingRegion = config.signingRegion || signingRegion || region;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath,\n };\n const SignerCtor = config.signerConstructor || signatureV4.SignatureV4;\n return new SignerCtor(params);\n });\n }\n else {\n signer = async (authScheme) => {\n authScheme = Object.assign({}, {\n name: \"sigv4\",\n signingName: config.signingName || config.defaultSigningName,\n signingRegion: await core.normalizeProvider(config.region)(),\n properties: {},\n }, authScheme);\n const signingRegion = authScheme.signingRegion;\n const signingService = authScheme.signingName;\n config.signingRegion = config.signingRegion || signingRegion;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath,\n };\n const SignerCtor = config.signerConstructor || signatureV4.SignatureV4;\n return new SignerCtor(params);\n };\n }\n const resolvedConfig = Object.assign(config, {\n systemClockOffset,\n signingEscapePath,\n signer,\n });\n return resolvedConfig;\n};\nconst resolveAWSSDKSigV4Config = resolveAwsSdkSigV4Config;\nfunction normalizeCredentialProvider(config, { credentials, credentialDefaultProvider, }) {\n let credentialsProvider;\n if (credentials) {\n if (!credentials?.memoized) {\n credentialsProvider = core.memoizeIdentityProvider(credentials, core.isIdentityExpired, core.doesIdentityRequireRefresh);\n }\n else {\n credentialsProvider = credentials;\n }\n }\n else {\n if (credentialDefaultProvider) {\n credentialsProvider = core.normalizeProvider(credentialDefaultProvider(Object.assign({}, config, {\n parentClientConfig: config,\n })));\n }\n else {\n credentialsProvider = async () => {\n throw new Error(\"@aws-sdk/core::resolveAwsSdkSigV4Config - `credentials` not provided and no credentialDefaultProvider was configured.\");\n };\n }\n }\n credentialsProvider.memoized = true;\n return credentialsProvider;\n}\nfunction bindCallerConfig(config, credentialsProvider) {\n if (credentialsProvider.configBound) {\n return credentialsProvider;\n }\n const fn = async (options) => credentialsProvider({ ...options, callerClientConfig: config });\n fn.memoized = credentialsProvider.memoized;\n fn.configBound = true;\n return fn;\n}\n\nclass ProtocolLib {\n queryCompat;\n errorRegistry;\n constructor(queryCompat = false) {\n this.queryCompat = queryCompat;\n }\n resolveRestContentType(defaultContentType, inputSchema) {\n const members = inputSchema.getMemberSchemas();\n const httpPayloadMember = Object.values(members).find((m) => {\n return !!m.getMergedTraits().httpPayload;\n });\n if (httpPayloadMember) {\n const mediaType = httpPayloadMember.getMergedTraits().mediaType;\n if (mediaType) {\n return mediaType;\n }\n else if (httpPayloadMember.isStringSchema()) {\n return \"text/plain\";\n }\n else if (httpPayloadMember.isBlobSchema()) {\n return \"application/octet-stream\";\n }\n else {\n return defaultContentType;\n }\n }\n else if (!inputSchema.isUnitSchema()) {\n const hasBody = Object.values(members).find((m) => {\n const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m.getMergedTraits();\n const noPrefixHeaders = httpPrefixHeaders === void 0;\n return !httpQuery && !httpQueryParams && !httpHeader && !httpLabel && noPrefixHeaders;\n });\n if (hasBody) {\n return defaultContentType;\n }\n }\n }\n async getErrorSchemaOrThrowBaseException(errorIdentifier, defaultNamespace, response, dataObject, metadata, getErrorSchema) {\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [, errorName] = errorIdentifier.split(\"#\");\n }\n const errorMetadata = {\n $metadata: metadata,\n $fault: response.statusCode < 500 ? \"client\" : \"server\",\n };\n if (!this.errorRegistry) {\n throw new Error(\"@aws-sdk/core/protocols - error handler not initialized.\");\n }\n try {\n const errorSchema = getErrorSchema?.(this.errorRegistry, errorName) ??\n this.errorRegistry.getSchema(errorIdentifier);\n return { errorSchema, errorMetadata };\n }\n catch (e) {\n dataObject.message = dataObject.message ?? dataObject.Message ?? \"UnknownError\";\n const synthetic = this.errorRegistry;\n const baseExceptionSchema = synthetic.getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = synthetic.getErrorCtor(baseExceptionSchema) ?? Error;\n throw this.decorateServiceException(Object.assign(new ErrorCtor({ name: errorName }), errorMetadata), dataObject);\n }\n const d = dataObject;\n const message = d?.message ?? d?.Message ?? d?.Error?.Message ?? d?.Error?.message;\n throw this.decorateServiceException(Object.assign(new Error(message), {\n name: errorName,\n }, errorMetadata), dataObject);\n }\n }\n compose(composite, errorIdentifier, defaultNamespace) {\n let namespace = defaultNamespace;\n if (errorIdentifier.includes(\"#\")) {\n [namespace] = errorIdentifier.split(\"#\");\n }\n const staticRegistry = schema.TypeRegistry.for(namespace);\n const defaultSyntheticRegistry = schema.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + defaultNamespace);\n composite.copyFrom(staticRegistry);\n composite.copyFrom(defaultSyntheticRegistry);\n this.errorRegistry = composite;\n }\n decorateServiceException(exception, additions = {}) {\n if (this.queryCompat) {\n const msg = exception.Message ?? additions.Message;\n const error = smithyClient.decorateServiceException(exception, additions);\n if (msg) {\n error.message = msg;\n }\n error.Error = {\n ...error.Error,\n Type: error.Error?.Type,\n Code: error.Error?.Code,\n Message: error.Error?.message ?? error.Error?.Message ?? msg,\n };\n const reqId = error.$metadata.requestId;\n if (reqId) {\n error.RequestId = reqId;\n }\n return error;\n }\n return smithyClient.decorateServiceException(exception, additions);\n }\n setQueryCompatError(output, response) {\n const queryErrorHeader = response.headers?.[\"x-amzn-query-error\"];\n if (output !== undefined && queryErrorHeader != null) {\n const [Code, Type] = queryErrorHeader.split(\";\");\n const entries = Object.entries(output);\n const Error = {\n Code,\n Type,\n };\n Object.assign(output, Error);\n for (const [k, v] of entries) {\n Error[k === \"message\" ? \"Message\" : k] = v;\n }\n delete Error.__type;\n output.Error = Error;\n }\n }\n queryCompatOutput(queryCompatErrorData, errorData) {\n if (queryCompatErrorData.Error) {\n errorData.Error = queryCompatErrorData.Error;\n }\n if (queryCompatErrorData.Type) {\n errorData.Type = queryCompatErrorData.Type;\n }\n if (queryCompatErrorData.Code) {\n errorData.Code = queryCompatErrorData.Code;\n }\n }\n findQueryCompatibleError(registry, errorName) {\n try {\n return registry.getSchema(errorName);\n }\n catch (e) {\n return registry.find((schema$1) => schema.NormalizedSchema.of(schema$1).getMergedTraits().awsQueryError?.[0] === errorName);\n }\n }\n}\n\nclass AwsSmithyRpcV2CborProtocol extends cbor.SmithyRpcV2CborProtocol {\n awsQueryCompatible;\n mixin;\n constructor({ defaultNamespace, errorTypeRegistries, awsQueryCompatible, }) {\n super({ defaultNamespace, errorTypeRegistries });\n this.awsQueryCompatible = !!awsQueryCompatible;\n this.mixin = new ProtocolLib(this.awsQueryCompatible);\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (this.awsQueryCompatible) {\n request.headers[\"x-amzn-query-mode\"] = \"true\";\n }\n return request;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n if (this.awsQueryCompatible) {\n this.mixin.setQueryCompatError(dataObject, response);\n }\n const errorName = (() => {\n const compatHeader = response.headers[\"x-amzn-query-error\"];\n if (compatHeader && this.awsQueryCompatible) {\n return compatHeader.split(\";\")[0];\n }\n return cbor.loadSmithyRpcV2CborErrorCode(response, dataObject) ?? \"Unknown\";\n })();\n this.mixin.compose(this.compositeErrorRegistry, errorName, this.options.defaultNamespace);\n const { errorSchema, errorMetadata } = await this.mixin.getErrorSchemaOrThrowBaseException(errorName, this.options.defaultNamespace, response, dataObject, metadata, this.awsQueryCompatible ? this.mixin.findQueryCompatibleError : undefined);\n const ns = schema.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"UnknownError\";\n const ErrorCtor = this.compositeErrorRegistry.getErrorCtor(errorSchema) ?? Error;\n const exception = new ErrorCtor(message);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n if (dataObject[name] != null) {\n output[name] = this.deserializer.readValue(member, dataObject[name]);\n }\n }\n if (this.awsQueryCompatible) {\n this.mixin.queryCompatOutput(dataObject, output);\n }\n throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {\n $fault: ns.getMergedTraits().error,\n message,\n }, output), dataObject);\n }\n}\n\nconst _toStr = (val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\" || typeof val === \"bigint\") {\n const warning = new Error(`Received number ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n if (typeof val === \"boolean\") {\n const warning = new Error(`Received boolean ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n return val;\n};\nconst _toBool = (val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"string\") {\n const lowercase = val.toLowerCase();\n if (val !== \"\" && lowercase !== \"false\" && lowercase !== \"true\") {\n const warning = new Error(`Received string \"${val}\" where a boolean was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n }\n return val !== \"\" && lowercase !== \"false\";\n }\n return val;\n};\nconst _toNum = (val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"string\") {\n const num = Number(val);\n if (num.toString() !== val) {\n const warning = new Error(`Received string \"${val}\" where a number was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return val;\n }\n return num;\n }\n return val;\n};\n\nclass SerdeContextConfig {\n serdeContext;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n }\n}\n\nclass UnionSerde {\n from;\n to;\n keys;\n constructor(from, to) {\n this.from = from;\n this.to = to;\n this.keys = new Set(Object.keys(this.from).filter((k) => k !== \"__type\"));\n }\n mark(key) {\n this.keys.delete(key);\n }\n hasUnknown() {\n return this.keys.size === 1 && Object.keys(this.to).length === 0;\n }\n writeUnknown() {\n if (this.hasUnknown()) {\n const k = this.keys.values().next().value;\n const v = this.from[k];\n this.to.$unknown = [k, v];\n }\n }\n}\n\nfunction jsonReviver(key, value, context) {\n if (context?.source) {\n const numericString = context.source;\n if (typeof value === \"number\") {\n if (value > Number.MAX_SAFE_INTEGER || value < Number.MIN_SAFE_INTEGER || numericString !== String(value)) {\n const isFractional = numericString.includes(\".\");\n if (isFractional) {\n return new serde.NumericValue(numericString, \"bigDecimal\");\n }\n else {\n return BigInt(numericString);\n }\n }\n }\n }\n return value;\n}\n\nconst collectBodyString = (streamBody, context) => smithyClient.collectBody(streamBody, context).then((body) => (context?.utf8Encoder ?? utilUtf8.toUtf8)(body));\n\nconst parseJsonBody = (streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n try {\n return JSON.parse(encoded);\n }\n catch (e) {\n if (e?.name === \"SyntaxError\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded,\n });\n }\n throw e;\n }\n }\n return {};\n});\nconst parseJsonErrorBody = async (errorBody, context) => {\n const value = await parseJsonBody(errorBody, context);\n value.message = value.message ?? value.Message;\n return value;\n};\nconst loadRestJsonErrorCode = (output, data) => {\n const findKey = (object, key) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase());\n const sanitizeErrorCode = (rawValue) => {\n let cleanValue = rawValue;\n if (typeof cleanValue === \"number\") {\n cleanValue = cleanValue.toString();\n }\n if (cleanValue.indexOf(\",\") >= 0) {\n cleanValue = cleanValue.split(\",\")[0];\n }\n if (cleanValue.indexOf(\":\") >= 0) {\n cleanValue = cleanValue.split(\":\")[0];\n }\n if (cleanValue.indexOf(\"#\") >= 0) {\n cleanValue = cleanValue.split(\"#\")[1];\n }\n return cleanValue;\n };\n const headerKey = findKey(output.headers, \"x-amzn-errortype\");\n if (headerKey !== undefined) {\n return sanitizeErrorCode(output.headers[headerKey]);\n }\n if (data && typeof data === \"object\") {\n const codeKey = findKey(data, \"code\");\n if (codeKey && data[codeKey] !== undefined) {\n return sanitizeErrorCode(data[codeKey]);\n }\n if (data[\"__type\"] !== undefined) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n }\n};\n\nclass JsonShapeDeserializer extends SerdeContextConfig {\n settings;\n constructor(settings) {\n super();\n this.settings = settings;\n }\n async read(schema, data) {\n return this._read(schema, typeof data === \"string\" ? JSON.parse(data, jsonReviver) : await parseJsonBody(data, this.serdeContext));\n }\n readObject(schema, data) {\n return this._read(schema, data);\n }\n _read(schema$1, value) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = schema.NormalizedSchema.of(schema$1);\n if (isObject) {\n if (ns.isStructSchema()) {\n const record = value;\n const union = ns.isUnionSchema();\n const out = {};\n let nameMap = void 0;\n const { jsonName } = this.settings;\n if (jsonName) {\n nameMap = {};\n }\n let unionSerde;\n if (union) {\n unionSerde = new UnionSerde(record, out);\n }\n for (const [memberName, memberSchema] of ns.structIterator()) {\n let fromKey = memberName;\n if (jsonName) {\n fromKey = memberSchema.getMergedTraits().jsonName ?? fromKey;\n nameMap[fromKey] = memberName;\n }\n if (union) {\n unionSerde.mark(fromKey);\n }\n if (record[fromKey] != null) {\n out[memberName] = this._read(memberSchema, record[fromKey]);\n }\n }\n if (union) {\n unionSerde.writeUnknown();\n }\n else if (typeof record.__type === \"string\") {\n for (const [k, v] of Object.entries(record)) {\n const t = jsonName ? nameMap[k] ?? k : k;\n if (!(t in out)) {\n out[t] = v;\n }\n }\n }\n return out;\n }\n if (Array.isArray(value) && ns.isListSchema()) {\n const listMember = ns.getValueSchema();\n const out = [];\n for (const item of value) {\n out.push(this._read(listMember, item));\n }\n return out;\n }\n if (ns.isMapSchema()) {\n const mapMember = ns.getValueSchema();\n const out = {};\n for (const [_k, _v] of Object.entries(value)) {\n out[_k] = this._read(mapMember, _v);\n }\n return out;\n }\n }\n if (ns.isBlobSchema() && typeof value === \"string\") {\n return utilBase64.fromBase64(value);\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (ns.isStringSchema() && typeof value === \"string\" && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return serde.LazyJsonString.from(value);\n }\n return value;\n }\n if (ns.isTimestampSchema() && value != null) {\n const format = protocols.determineTimestampFormat(ns, this.settings);\n switch (format) {\n case 5:\n return serde.parseRfc3339DateTimeWithOffset(value);\n case 6:\n return serde.parseRfc7231DateTime(value);\n case 7:\n return serde.parseEpochTimestamp(value);\n default:\n console.warn(\"Missing timestamp format, parsing value with Date constructor:\", value);\n return new Date(value);\n }\n }\n if (ns.isBigIntegerSchema() && (typeof value === \"number\" || typeof value === \"string\")) {\n return BigInt(value);\n }\n if (ns.isBigDecimalSchema() && value != undefined) {\n if (value instanceof serde.NumericValue) {\n return value;\n }\n const untyped = value;\n if (untyped.type === \"bigDecimal\" && \"string\" in untyped) {\n return new serde.NumericValue(untyped.string, untyped.type);\n }\n return new serde.NumericValue(String(value), \"bigDecimal\");\n }\n if (ns.isNumericSchema() && typeof value === \"string\") {\n switch (value) {\n case \"Infinity\":\n return Infinity;\n case \"-Infinity\":\n return -Infinity;\n case \"NaN\":\n return NaN;\n }\n return value;\n }\n if (ns.isDocumentSchema()) {\n if (isObject) {\n const out = Array.isArray(value) ? [] : {};\n for (const [k, v] of Object.entries(value)) {\n if (v instanceof serde.NumericValue) {\n out[k] = v;\n }\n else {\n out[k] = this._read(ns, v);\n }\n }\n return out;\n }\n else {\n return structuredClone(value);\n }\n }\n return value;\n }\n}\n\nconst NUMERIC_CONTROL_CHAR = String.fromCharCode(925);\nclass JsonReplacer {\n values = new Map();\n counter = 0;\n stage = 0;\n createReplacer() {\n if (this.stage === 1) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer already created.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 1;\n return (key, value) => {\n if (value instanceof serde.NumericValue) {\n const v = `${NUMERIC_CONTROL_CHAR + \"nv\" + this.counter++}_` + value.string;\n this.values.set(`\"${v}\"`, value.string);\n return v;\n }\n if (typeof value === \"bigint\") {\n const s = value.toString();\n const v = `${NUMERIC_CONTROL_CHAR + \"b\" + this.counter++}_` + s;\n this.values.set(`\"${v}\"`, s);\n return v;\n }\n return value;\n };\n }\n replaceInJson(json) {\n if (this.stage === 0) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer not created yet.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 2;\n if (this.counter === 0) {\n return json;\n }\n for (const [key, value] of this.values) {\n json = json.replace(key, value);\n }\n return json;\n }\n}\n\nclass JsonShapeSerializer extends SerdeContextConfig {\n settings;\n buffer;\n useReplacer = false;\n rootSchema;\n constructor(settings) {\n super();\n this.settings = settings;\n }\n write(schema$1, value) {\n this.rootSchema = schema.NormalizedSchema.of(schema$1);\n this.buffer = this._write(this.rootSchema, value);\n }\n writeDiscriminatedDocument(schema$1, value) {\n this.write(schema$1, value);\n if (typeof this.buffer === \"object\") {\n this.buffer.__type = schema.NormalizedSchema.of(schema$1).getName(true);\n }\n }\n flush() {\n const { rootSchema, useReplacer } = this;\n this.rootSchema = undefined;\n this.useReplacer = false;\n if (rootSchema?.isStructSchema() || rootSchema?.isDocumentSchema()) {\n if (!useReplacer) {\n return JSON.stringify(this.buffer);\n }\n const replacer = new JsonReplacer();\n return replacer.replaceInJson(JSON.stringify(this.buffer, replacer.createReplacer(), 0));\n }\n return this.buffer;\n }\n _write(schema$1, value, container) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = schema.NormalizedSchema.of(schema$1);\n if (isObject) {\n if (ns.isStructSchema()) {\n const record = value;\n const out = {};\n const { jsonName } = this.settings;\n let nameMap = void 0;\n if (jsonName) {\n nameMap = {};\n }\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const serializableValue = this._write(memberSchema, record[memberName], ns);\n if (serializableValue !== undefined) {\n let targetKey = memberName;\n if (jsonName) {\n targetKey = memberSchema.getMergedTraits().jsonName ?? memberName;\n nameMap[memberName] = targetKey;\n }\n out[targetKey] = serializableValue;\n }\n }\n if (ns.isUnionSchema() && Object.keys(out).length === 0) {\n const { $unknown } = record;\n if (Array.isArray($unknown)) {\n const [k, v] = $unknown;\n out[k] = this._write(15, v);\n }\n }\n else if (typeof record.__type === \"string\") {\n for (const [k, v] of Object.entries(record)) {\n const targetKey = jsonName ? nameMap[k] ?? k : k;\n if (!(targetKey in out)) {\n out[targetKey] = this._write(15, v);\n }\n }\n }\n return out;\n }\n if (Array.isArray(value) && ns.isListSchema()) {\n const listMember = ns.getValueSchema();\n const out = [];\n const sparse = !!ns.getMergedTraits().sparse;\n for (const item of value) {\n if (sparse || item != null) {\n out.push(this._write(listMember, item));\n }\n }\n return out;\n }\n if (ns.isMapSchema()) {\n const mapMember = ns.getValueSchema();\n const out = {};\n const sparse = !!ns.getMergedTraits().sparse;\n for (const [_k, _v] of Object.entries(value)) {\n if (sparse || _v != null) {\n out[_k] = this._write(mapMember, _v);\n }\n }\n return out;\n }\n if (value instanceof Uint8Array && (ns.isBlobSchema() || ns.isDocumentSchema())) {\n if (ns === this.rootSchema) {\n return value;\n }\n return (this.serdeContext?.base64Encoder ?? utilBase64.toBase64)(value);\n }\n if (value instanceof Date && (ns.isTimestampSchema() || ns.isDocumentSchema())) {\n const format = protocols.determineTimestampFormat(ns, this.settings);\n switch (format) {\n case 5:\n return value.toISOString().replace(\".000Z\", \"Z\");\n case 6:\n return serde.dateToUtcString(value);\n case 7:\n return value.getTime() / 1000;\n default:\n console.warn(\"Missing timestamp format, using epoch seconds\", value);\n return value.getTime() / 1000;\n }\n }\n if (value instanceof serde.NumericValue) {\n this.useReplacer = true;\n }\n }\n if (value === null && container?.isStructSchema()) {\n return void 0;\n }\n if (ns.isStringSchema()) {\n if (typeof value === \"undefined\" && ns.isIdempotencyToken()) {\n return serde.generateIdempotencyToken();\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (value != null && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return serde.LazyJsonString.from(value);\n }\n }\n return value;\n }\n if (typeof value === \"number\" && ns.isNumericSchema()) {\n if (Math.abs(value) === Infinity || isNaN(value)) {\n return String(value);\n }\n return value;\n }\n if (typeof value === \"string\" && ns.isBlobSchema()) {\n if (ns === this.rootSchema) {\n return value;\n }\n return (this.serdeContext?.base64Encoder ?? utilBase64.toBase64)(value);\n }\n if (typeof value === \"bigint\") {\n this.useReplacer = true;\n }\n if (ns.isDocumentSchema()) {\n if (isObject) {\n const out = Array.isArray(value) ? [] : {};\n for (const [k, v] of Object.entries(value)) {\n if (v instanceof serde.NumericValue) {\n this.useReplacer = true;\n out[k] = v;\n }\n else {\n out[k] = this._write(ns, v);\n }\n }\n return out;\n }\n else {\n return structuredClone(value);\n }\n }\n return value;\n }\n}\n\nclass JsonCodec extends SerdeContextConfig {\n settings;\n constructor(settings) {\n super();\n this.settings = settings;\n }\n createSerializer() {\n const serializer = new JsonShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new JsonShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n}\n\nclass AwsJsonRpcProtocol extends protocols.RpcProtocol {\n serializer;\n deserializer;\n serviceTarget;\n codec;\n mixin;\n awsQueryCompatible;\n constructor({ defaultNamespace, errorTypeRegistries, serviceTarget, awsQueryCompatible, jsonCodec, }) {\n super({\n defaultNamespace,\n errorTypeRegistries,\n });\n this.serviceTarget = serviceTarget;\n this.codec =\n jsonCodec ??\n new JsonCodec({\n timestampFormat: {\n useTrait: true,\n default: 7,\n },\n jsonName: false,\n });\n this.serializer = this.codec.createSerializer();\n this.deserializer = this.codec.createDeserializer();\n this.awsQueryCompatible = !!awsQueryCompatible;\n this.mixin = new ProtocolLib(this.awsQueryCompatible);\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n Object.assign(request.headers, {\n \"content-type\": `application/x-amz-json-${this.getJsonRpcVersion()}`,\n \"x-amz-target\": `${this.serviceTarget}.${operationSchema.name}`,\n });\n if (this.awsQueryCompatible) {\n request.headers[\"x-amzn-query-mode\"] = \"true\";\n }\n if (schema.deref(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"{}\";\n }\n return request;\n }\n getPayloadCodec() {\n return this.codec;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n if (this.awsQueryCompatible) {\n this.mixin.setQueryCompatError(dataObject, response);\n }\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n this.mixin.compose(this.compositeErrorRegistry, errorIdentifier, this.options.defaultNamespace);\n const { errorSchema, errorMetadata } = await this.mixin.getErrorSchemaOrThrowBaseException(errorIdentifier, this.options.defaultNamespace, response, dataObject, metadata, this.awsQueryCompatible ? this.mixin.findQueryCompatibleError : undefined);\n const ns = schema.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"UnknownError\";\n const ErrorCtor = this.compositeErrorRegistry.getErrorCtor(errorSchema) ?? Error;\n const exception = new ErrorCtor(message);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n if (dataObject[name] != null) {\n output[name] = this.codec.createDeserializer().readObject(member, dataObject[name]);\n }\n }\n if (this.awsQueryCompatible) {\n this.mixin.queryCompatOutput(dataObject, output);\n }\n throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {\n $fault: ns.getMergedTraits().error,\n message,\n }, output), dataObject);\n }\n}\n\nclass AwsJson1_0Protocol extends AwsJsonRpcProtocol {\n constructor({ defaultNamespace, errorTypeRegistries, serviceTarget, awsQueryCompatible, jsonCodec, }) {\n super({\n defaultNamespace,\n errorTypeRegistries,\n serviceTarget,\n awsQueryCompatible,\n jsonCodec,\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_0\";\n }\n getJsonRpcVersion() {\n return \"1.0\";\n }\n getDefaultContentType() {\n return \"application/x-amz-json-1.0\";\n }\n}\n\nclass AwsJson1_1Protocol extends AwsJsonRpcProtocol {\n constructor({ defaultNamespace, errorTypeRegistries, serviceTarget, awsQueryCompatible, jsonCodec, }) {\n super({\n defaultNamespace,\n errorTypeRegistries,\n serviceTarget,\n awsQueryCompatible,\n jsonCodec,\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_1\";\n }\n getJsonRpcVersion() {\n return \"1.1\";\n }\n getDefaultContentType() {\n return \"application/x-amz-json-1.1\";\n }\n}\n\nclass AwsRestJsonProtocol extends protocols.HttpBindingProtocol {\n serializer;\n deserializer;\n codec;\n mixin = new ProtocolLib();\n constructor({ defaultNamespace, errorTypeRegistries, }) {\n super({\n defaultNamespace,\n errorTypeRegistries,\n });\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: 7,\n },\n httpBindings: true,\n jsonName: true,\n };\n this.codec = new JsonCodec(settings);\n this.serializer = new protocols.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new protocols.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n }\n getShapeId() {\n return \"aws.protocols#restJson1\";\n }\n getPayloadCodec() {\n return this.codec;\n }\n setSerdeContext(serdeContext) {\n this.codec.setSerdeContext(serdeContext);\n super.setSerdeContext(serdeContext);\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const inputSchema = schema.NormalizedSchema.of(operationSchema.input);\n if (!request.headers[\"content-type\"]) {\n const contentType = this.mixin.resolveRestContentType(this.getDefaultContentType(), inputSchema);\n if (contentType) {\n request.headers[\"content-type\"] = contentType;\n }\n }\n if (request.body == null && request.headers[\"content-type\"] === this.getDefaultContentType()) {\n request.body = \"{}\";\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n const output = await super.deserializeResponse(operationSchema, context, response);\n const outputSchema = schema.NormalizedSchema.of(operationSchema.output);\n for (const [name, member] of outputSchema.structIterator()) {\n if (member.getMemberTraits().httpPayload && !(name in output)) {\n output[name] = null;\n }\n }\n return output;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n this.mixin.compose(this.compositeErrorRegistry, errorIdentifier, this.options.defaultNamespace);\n const { errorSchema, errorMetadata } = await this.mixin.getErrorSchemaOrThrowBaseException(errorIdentifier, this.options.defaultNamespace, response, dataObject, metadata);\n const ns = schema.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"UnknownError\";\n const ErrorCtor = this.compositeErrorRegistry.getErrorCtor(errorSchema) ?? Error;\n const exception = new ErrorCtor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().jsonName ?? name;\n output[name] = this.codec.createDeserializer().readObject(member, dataObject[target]);\n }\n throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {\n $fault: ns.getMergedTraits().error,\n message,\n }, output), dataObject);\n }\n getDefaultContentType() {\n return \"application/json\";\n }\n}\n\nconst awsExpectUnion = (value) => {\n if (value == null) {\n return undefined;\n }\n if (typeof value === \"object\" && \"__type\" in value) {\n delete value.__type;\n }\n return smithyClient.expectUnion(value);\n};\n\nclass XmlShapeDeserializer extends SerdeContextConfig {\n settings;\n stringDeserializer;\n constructor(settings) {\n super();\n this.settings = settings;\n this.stringDeserializer = new protocols.FromStringShapeDeserializer(settings);\n }\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n this.stringDeserializer.setSerdeContext(serdeContext);\n }\n read(schema$1, bytes, key) {\n const ns = schema.NormalizedSchema.of(schema$1);\n const memberSchemas = ns.getMemberSchemas();\n const isEventPayload = ns.isStructSchema() &&\n ns.isMemberSchema() &&\n !!Object.values(memberSchemas).find((memberNs) => {\n return !!memberNs.getMemberTraits().eventPayload;\n });\n if (isEventPayload) {\n const output = {};\n const memberName = Object.keys(memberSchemas)[0];\n const eventMemberSchema = memberSchemas[memberName];\n if (eventMemberSchema.isBlobSchema()) {\n output[memberName] = bytes;\n }\n else {\n output[memberName] = this.read(memberSchemas[memberName], bytes);\n }\n return output;\n }\n const xmlString = (this.serdeContext?.utf8Encoder ?? utilUtf8.toUtf8)(bytes);\n const parsedObject = this.parseXml(xmlString);\n return this.readSchema(schema$1, key ? parsedObject[key] : parsedObject);\n }\n readSchema(_schema, value) {\n const ns = schema.NormalizedSchema.of(_schema);\n if (ns.isUnitSchema()) {\n return;\n }\n const traits = ns.getMergedTraits();\n if (ns.isListSchema() && !Array.isArray(value)) {\n return this.readSchema(ns, [value]);\n }\n if (value == null) {\n return value;\n }\n if (typeof value === \"object\") {\n const flat = !!traits.xmlFlattened;\n if (ns.isListSchema()) {\n const listValue = ns.getValueSchema();\n const buffer = [];\n const sourceKey = listValue.getMergedTraits().xmlName ?? \"member\";\n const source = flat ? value : (value[0] ?? value)[sourceKey];\n if (source == null) {\n return buffer;\n }\n const sourceArray = Array.isArray(source) ? source : [source];\n for (const v of sourceArray) {\n buffer.push(this.readSchema(listValue, v));\n }\n return buffer;\n }\n const buffer = {};\n if (ns.isMapSchema()) {\n const keyNs = ns.getKeySchema();\n const memberNs = ns.getValueSchema();\n let entries;\n if (flat) {\n entries = Array.isArray(value) ? value : [value];\n }\n else {\n entries = Array.isArray(value.entry) ? value.entry : [value.entry];\n }\n const keyProperty = keyNs.getMergedTraits().xmlName ?? \"key\";\n const valueProperty = memberNs.getMergedTraits().xmlName ?? \"value\";\n for (const entry of entries) {\n const key = entry[keyProperty];\n const value = entry[valueProperty];\n buffer[key] = this.readSchema(memberNs, value);\n }\n return buffer;\n }\n if (ns.isStructSchema()) {\n const union = ns.isUnionSchema();\n let unionSerde;\n if (union) {\n unionSerde = new UnionSerde(value, buffer);\n }\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const memberTraits = memberSchema.getMergedTraits();\n const xmlObjectKey = !memberTraits.httpPayload\n ? memberSchema.getMemberTraits().xmlName ?? memberName\n : memberTraits.xmlName ?? memberSchema.getName();\n if (union) {\n unionSerde.mark(xmlObjectKey);\n }\n if (value[xmlObjectKey] != null) {\n buffer[memberName] = this.readSchema(memberSchema, value[xmlObjectKey]);\n }\n }\n if (union) {\n unionSerde.writeUnknown();\n }\n return buffer;\n }\n if (ns.isDocumentSchema()) {\n return value;\n }\n throw new Error(`@aws-sdk/core/protocols - xml deserializer unhandled schema type for ${ns.getName(true)}`);\n }\n if (ns.isListSchema()) {\n return [];\n }\n if (ns.isMapSchema() || ns.isStructSchema()) {\n return {};\n }\n return this.stringDeserializer.read(ns, value);\n }\n parseXml(xml) {\n if (xml.length) {\n let parsedObj;\n try {\n parsedObj = xmlBuilder.parseXML(xml);\n }\n catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: xml,\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return smithyClient.getValueFromTextNode(parsedObjToReturn);\n }\n return {};\n }\n}\n\nclass QueryShapeSerializer extends SerdeContextConfig {\n settings;\n buffer;\n constructor(settings) {\n super();\n this.settings = settings;\n }\n write(schema$1, value, prefix = \"\") {\n if (this.buffer === undefined) {\n this.buffer = \"\";\n }\n const ns = schema.NormalizedSchema.of(schema$1);\n if (prefix && !prefix.endsWith(\".\")) {\n prefix += \".\";\n }\n if (ns.isBlobSchema()) {\n if (typeof value === \"string\" || value instanceof Uint8Array) {\n this.writeKey(prefix);\n this.writeValue((this.serdeContext?.base64Encoder ?? utilBase64.toBase64)(value));\n }\n }\n else if (ns.isBooleanSchema() || ns.isNumericSchema() || ns.isStringSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n else if (ns.isIdempotencyToken()) {\n this.writeKey(prefix);\n this.writeValue(serde.generateIdempotencyToken());\n }\n }\n else if (ns.isBigIntegerSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n }\n else if (ns.isBigDecimalSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(value instanceof serde.NumericValue ? value.string : String(value));\n }\n }\n else if (ns.isTimestampSchema()) {\n if (value instanceof Date) {\n this.writeKey(prefix);\n const format = protocols.determineTimestampFormat(ns, this.settings);\n switch (format) {\n case 5:\n this.writeValue(value.toISOString().replace(\".000Z\", \"Z\"));\n break;\n case 6:\n this.writeValue(smithyClient.dateToUtcString(value));\n break;\n case 7:\n this.writeValue(String(value.getTime() / 1000));\n break;\n }\n }\n }\n else if (ns.isDocumentSchema()) {\n if (Array.isArray(value)) {\n this.write(64 | 15, value, prefix);\n }\n else if (value instanceof Date) {\n this.write(4, value, prefix);\n }\n else if (value instanceof Uint8Array) {\n this.write(21, value, prefix);\n }\n else if (value && typeof value === \"object\") {\n this.write(128 | 15, value, prefix);\n }\n else {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n }\n else if (ns.isListSchema()) {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n if (this.settings.serializeEmptyLists) {\n this.writeKey(prefix);\n this.writeValue(\"\");\n }\n }\n else {\n const member = ns.getValueSchema();\n const flat = this.settings.flattenLists || ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const item of value) {\n if (item == null) {\n continue;\n }\n const traits = member.getMergedTraits();\n const suffix = this.getKey(\"member\", traits.xmlName, traits.ec2QueryName);\n const key = flat ? `${prefix}${i}` : `${prefix}${suffix}.${i}`;\n this.write(member, item, key);\n ++i;\n }\n }\n }\n }\n else if (ns.isMapSchema()) {\n if (value && typeof value === \"object\") {\n const keySchema = ns.getKeySchema();\n const memberSchema = ns.getValueSchema();\n const flat = ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const [k, v] of Object.entries(value)) {\n if (v == null) {\n continue;\n }\n const keyTraits = keySchema.getMergedTraits();\n const keySuffix = this.getKey(\"key\", keyTraits.xmlName, keyTraits.ec2QueryName);\n const key = flat ? `${prefix}${i}.${keySuffix}` : `${prefix}entry.${i}.${keySuffix}`;\n const valTraits = memberSchema.getMergedTraits();\n const valueSuffix = this.getKey(\"value\", valTraits.xmlName, valTraits.ec2QueryName);\n const valueKey = flat ? `${prefix}${i}.${valueSuffix}` : `${prefix}entry.${i}.${valueSuffix}`;\n this.write(keySchema, k, key);\n this.write(memberSchema, v, valueKey);\n ++i;\n }\n }\n }\n else if (ns.isStructSchema()) {\n if (value && typeof value === \"object\") {\n let didWriteMember = false;\n for (const [memberName, member] of ns.structIterator()) {\n if (value[memberName] == null && !member.isIdempotencyToken()) {\n continue;\n }\n const traits = member.getMergedTraits();\n const suffix = this.getKey(memberName, traits.xmlName, traits.ec2QueryName, \"struct\");\n const key = `${prefix}${suffix}`;\n this.write(member, value[memberName], key);\n didWriteMember = true;\n }\n if (!didWriteMember && ns.isUnionSchema()) {\n const { $unknown } = value;\n if (Array.isArray($unknown)) {\n const [k, v] = $unknown;\n const key = `${prefix}${k}`;\n this.write(15, v, key);\n }\n }\n }\n }\n else if (ns.isUnitSchema()) ;\n else {\n throw new Error(`@aws-sdk/core/protocols - QuerySerializer unrecognized schema type ${ns.getName(true)}`);\n }\n }\n flush() {\n if (this.buffer === undefined) {\n throw new Error(\"@aws-sdk/core/protocols - QuerySerializer cannot flush with nothing written to buffer.\");\n }\n const str = this.buffer;\n delete this.buffer;\n return str;\n }\n getKey(memberName, xmlName, ec2QueryName, keySource) {\n const { ec2, capitalizeKeys } = this.settings;\n if (ec2 && ec2QueryName) {\n return ec2QueryName;\n }\n const key = xmlName ?? memberName;\n if (capitalizeKeys && keySource === \"struct\") {\n return key[0].toUpperCase() + key.slice(1);\n }\n return key;\n }\n writeKey(key) {\n if (key.endsWith(\".\")) {\n key = key.slice(0, key.length - 1);\n }\n this.buffer += `&${protocols.extendedEncodeURIComponent(key)}=`;\n }\n writeValue(value) {\n this.buffer += protocols.extendedEncodeURIComponent(value);\n }\n}\n\nclass AwsQueryProtocol extends protocols.RpcProtocol {\n options;\n serializer;\n deserializer;\n mixin = new ProtocolLib();\n constructor(options) {\n super({\n defaultNamespace: options.defaultNamespace,\n errorTypeRegistries: options.errorTypeRegistries,\n });\n this.options = options;\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: 5,\n },\n httpBindings: false,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace,\n serializeEmptyLists: true,\n };\n this.serializer = new QueryShapeSerializer(settings);\n this.deserializer = new XmlShapeDeserializer(settings);\n }\n getShapeId() {\n return \"aws.protocols#awsQuery\";\n }\n setSerdeContext(serdeContext) {\n this.serializer.setSerdeContext(serdeContext);\n this.deserializer.setSerdeContext(serdeContext);\n }\n getPayloadCodec() {\n throw new Error(\"AWSQuery protocol has no payload codec.\");\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n Object.assign(request.headers, {\n \"content-type\": `application/x-www-form-urlencoded`,\n });\n if (schema.deref(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"\";\n }\n const action = operationSchema.name.split(\"#\")[1] ?? operationSchema.name;\n request.body = `Action=${action}&Version=${this.options.version}` + request.body;\n if (request.body.endsWith(\"&\")) {\n request.body = request.body.slice(-1);\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n const deserializer = this.deserializer;\n const ns = schema.NormalizedSchema.of(operationSchema.output);\n const dataObject = {};\n if (response.statusCode >= 300) {\n const bytes = await protocols.collectBody(response.body, context);\n if (bytes.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(15, bytes));\n }\n await this.handleError(operationSchema, context, response, dataObject, this.deserializeMetadata(response));\n }\n for (const header in response.headers) {\n const value = response.headers[header];\n delete response.headers[header];\n response.headers[header.toLowerCase()] = value;\n }\n const shortName = operationSchema.name.split(\"#\")[1] ?? operationSchema.name;\n const awsQueryResultKey = ns.isStructSchema() && this.useNestedResult() ? shortName + \"Result\" : undefined;\n const bytes = await protocols.collectBody(response.body, context);\n if (bytes.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(ns, bytes, awsQueryResultKey));\n }\n const output = {\n $metadata: this.deserializeMetadata(response),\n ...dataObject,\n };\n return output;\n }\n useNestedResult() {\n return true;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = this.loadQueryErrorCode(response, dataObject) ?? \"Unknown\";\n this.mixin.compose(this.compositeErrorRegistry, errorIdentifier, this.options.defaultNamespace);\n const errorData = this.loadQueryError(dataObject) ?? {};\n const message = this.loadQueryErrorMessage(dataObject);\n errorData.message = message;\n errorData.Error = {\n Type: errorData.Type,\n Code: errorData.Code,\n Message: message,\n };\n const { errorSchema, errorMetadata } = await this.mixin.getErrorSchemaOrThrowBaseException(errorIdentifier, this.options.defaultNamespace, response, errorData, metadata, this.mixin.findQueryCompatibleError);\n const ns = schema.NormalizedSchema.of(errorSchema);\n const ErrorCtor = this.compositeErrorRegistry.getErrorCtor(errorSchema) ?? Error;\n const exception = new ErrorCtor(message);\n const output = {\n Type: errorData.Error.Type,\n Code: errorData.Error.Code,\n Error: errorData.Error,\n };\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = errorData[target] ?? dataObject[target];\n output[name] = this.deserializer.readSchema(member, value);\n }\n throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {\n $fault: ns.getMergedTraits().error,\n message,\n }, output), dataObject);\n }\n loadQueryErrorCode(output, data) {\n const code = (data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error)?.Code;\n if (code !== undefined) {\n return code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n }\n loadQueryError(data) {\n return data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error;\n }\n loadQueryErrorMessage(data) {\n const errorData = this.loadQueryError(data);\n return errorData?.message ?? errorData?.Message ?? data.message ?? data.Message ?? \"Unknown\";\n }\n getDefaultContentType() {\n return \"application/x-www-form-urlencoded\";\n }\n}\n\nclass AwsEc2QueryProtocol extends AwsQueryProtocol {\n options;\n constructor(options) {\n super(options);\n this.options = options;\n const ec2Settings = {\n capitalizeKeys: true,\n flattenLists: true,\n serializeEmptyLists: false,\n ec2: true,\n };\n Object.assign(this.serializer.settings, ec2Settings);\n }\n getShapeId() {\n return \"aws.protocols#ec2Query\";\n }\n useNestedResult() {\n return false;\n }\n}\n\nconst parseXmlBody = (streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n let parsedObj;\n try {\n parsedObj = xmlBuilder.parseXML(encoded);\n }\n catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded,\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return smithyClient.getValueFromTextNode(parsedObjToReturn);\n }\n return {};\n});\nconst parseXmlErrorBody = async (errorBody, context) => {\n const value = await parseXmlBody(errorBody, context);\n if (value.Error) {\n value.Error.message = value.Error.message ?? value.Error.Message;\n }\n return value;\n};\nconst loadRestXmlErrorCode = (output, data) => {\n if (data?.Error?.Code !== undefined) {\n return data.Error.Code;\n }\n if (data?.Code !== undefined) {\n return data.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n};\n\nclass XmlShapeSerializer extends SerdeContextConfig {\n settings;\n stringBuffer;\n byteBuffer;\n buffer;\n constructor(settings) {\n super();\n this.settings = settings;\n }\n write(schema$1, value) {\n const ns = schema.NormalizedSchema.of(schema$1);\n if (ns.isStringSchema() && typeof value === \"string\") {\n this.stringBuffer = value;\n }\n else if (ns.isBlobSchema()) {\n this.byteBuffer =\n \"byteLength\" in value\n ? value\n : (this.serdeContext?.base64Decoder ?? utilBase64.fromBase64)(value);\n }\n else {\n this.buffer = this.writeStruct(ns, value, undefined);\n const traits = ns.getMergedTraits();\n if (traits.httpPayload && !traits.xmlName) {\n this.buffer.withName(ns.getName());\n }\n }\n }\n flush() {\n if (this.byteBuffer !== undefined) {\n const bytes = this.byteBuffer;\n delete this.byteBuffer;\n return bytes;\n }\n if (this.stringBuffer !== undefined) {\n const str = this.stringBuffer;\n delete this.stringBuffer;\n return str;\n }\n const buffer = this.buffer;\n if (this.settings.xmlNamespace) {\n if (!buffer?.attributes?.[\"xmlns\"]) {\n buffer.addAttribute(\"xmlns\", this.settings.xmlNamespace);\n }\n }\n delete this.buffer;\n return buffer.toString();\n }\n writeStruct(ns, value, parentXmlns) {\n const traits = ns.getMergedTraits();\n const name = ns.isMemberSchema() && !traits.httpPayload\n ? ns.getMemberTraits().xmlName ?? ns.getMemberName()\n : traits.xmlName ?? ns.getName();\n if (!name || !ns.isStructSchema()) {\n throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write struct with empty name or non-struct, schema=${ns.getName(true)}.`);\n }\n const structXmlNode = xmlBuilder.XmlNode.of(name);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const val = value[memberName];\n if (val != null || memberSchema.isIdempotencyToken()) {\n if (memberSchema.getMergedTraits().xmlAttribute) {\n structXmlNode.addAttribute(memberSchema.getMergedTraits().xmlName ?? memberName, this.writeSimple(memberSchema, val));\n continue;\n }\n if (memberSchema.isListSchema()) {\n this.writeList(memberSchema, val, structXmlNode, xmlns);\n }\n else if (memberSchema.isMapSchema()) {\n this.writeMap(memberSchema, val, structXmlNode, xmlns);\n }\n else if (memberSchema.isStructSchema()) {\n structXmlNode.addChildNode(this.writeStruct(memberSchema, val, xmlns));\n }\n else {\n const memberNode = xmlBuilder.XmlNode.of(memberSchema.getMergedTraits().xmlName ?? memberSchema.getMemberName());\n this.writeSimpleInto(memberSchema, val, memberNode, xmlns);\n structXmlNode.addChildNode(memberNode);\n }\n }\n }\n const { $unknown } = value;\n if ($unknown && ns.isUnionSchema() && Array.isArray($unknown) && Object.keys(value).length === 1) {\n const [k, v] = $unknown;\n const node = xmlBuilder.XmlNode.of(k);\n if (typeof v !== \"string\") {\n if (value instanceof xmlBuilder.XmlNode || value instanceof xmlBuilder.XmlText) {\n structXmlNode.addChildNode(value);\n }\n else {\n throw new Error(`@aws-sdk - $unknown union member in XML requires ` +\n `value of type string, @aws-sdk/xml-builder::XmlNode or XmlText.`);\n }\n }\n this.writeSimpleInto(0, v, node, xmlns);\n structXmlNode.addChildNode(node);\n }\n if (xmlns) {\n structXmlNode.addAttribute(xmlnsAttr, xmlns);\n }\n return structXmlNode;\n }\n writeList(listMember, array, container, parentXmlns) {\n if (!listMember.isMemberSchema()) {\n throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write non-member list: ${listMember.getName(true)}`);\n }\n const listTraits = listMember.getMergedTraits();\n const listValueSchema = listMember.getValueSchema();\n const listValueTraits = listValueSchema.getMergedTraits();\n const sparse = !!listValueTraits.sparse;\n const flat = !!listTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(listMember, parentXmlns);\n const writeItem = (container, value) => {\n if (listValueSchema.isListSchema()) {\n this.writeList(listValueSchema, Array.isArray(value) ? value : [value], container, xmlns);\n }\n else if (listValueSchema.isMapSchema()) {\n this.writeMap(listValueSchema, value, container, xmlns);\n }\n else if (listValueSchema.isStructSchema()) {\n const struct = this.writeStruct(listValueSchema, value, xmlns);\n container.addChildNode(struct.withName(flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\"));\n }\n else {\n const listItemNode = xmlBuilder.XmlNode.of(flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\");\n this.writeSimpleInto(listValueSchema, value, listItemNode, xmlns);\n container.addChildNode(listItemNode);\n }\n };\n if (flat) {\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(container, value);\n }\n }\n }\n else {\n const listNode = xmlBuilder.XmlNode.of(listTraits.xmlName ?? listMember.getMemberName());\n if (xmlns) {\n listNode.addAttribute(xmlnsAttr, xmlns);\n }\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(listNode, value);\n }\n }\n container.addChildNode(listNode);\n }\n }\n writeMap(mapMember, map, container, parentXmlns, containerIsMap = false) {\n if (!mapMember.isMemberSchema()) {\n throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write non-member map: ${mapMember.getName(true)}`);\n }\n const mapTraits = mapMember.getMergedTraits();\n const mapKeySchema = mapMember.getKeySchema();\n const mapKeyTraits = mapKeySchema.getMergedTraits();\n const keyTag = mapKeyTraits.xmlName ?? \"key\";\n const mapValueSchema = mapMember.getValueSchema();\n const mapValueTraits = mapValueSchema.getMergedTraits();\n const valueTag = mapValueTraits.xmlName ?? \"value\";\n const sparse = !!mapValueTraits.sparse;\n const flat = !!mapTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(mapMember, parentXmlns);\n const addKeyValue = (entry, key, val) => {\n const keyNode = xmlBuilder.XmlNode.of(keyTag, key);\n const [keyXmlnsAttr, keyXmlns] = this.getXmlnsAttribute(mapKeySchema, xmlns);\n if (keyXmlns) {\n keyNode.addAttribute(keyXmlnsAttr, keyXmlns);\n }\n entry.addChildNode(keyNode);\n let valueNode = xmlBuilder.XmlNode.of(valueTag);\n if (mapValueSchema.isListSchema()) {\n this.writeList(mapValueSchema, val, valueNode, xmlns);\n }\n else if (mapValueSchema.isMapSchema()) {\n this.writeMap(mapValueSchema, val, valueNode, xmlns, true);\n }\n else if (mapValueSchema.isStructSchema()) {\n valueNode = this.writeStruct(mapValueSchema, val, xmlns);\n }\n else {\n this.writeSimpleInto(mapValueSchema, val, valueNode, xmlns);\n }\n entry.addChildNode(valueNode);\n };\n if (flat) {\n for (const [key, val] of Object.entries(map)) {\n if (sparse || val != null) {\n const entry = xmlBuilder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n addKeyValue(entry, key, val);\n container.addChildNode(entry);\n }\n }\n }\n else {\n let mapNode;\n if (!containerIsMap) {\n mapNode = xmlBuilder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n if (xmlns) {\n mapNode.addAttribute(xmlnsAttr, xmlns);\n }\n container.addChildNode(mapNode);\n }\n for (const [key, val] of Object.entries(map)) {\n if (sparse || val != null) {\n const entry = xmlBuilder.XmlNode.of(\"entry\");\n addKeyValue(entry, key, val);\n (containerIsMap ? container : mapNode).addChildNode(entry);\n }\n }\n }\n }\n writeSimple(_schema, value) {\n if (null === value) {\n throw new Error(\"@aws-sdk/core/protocols - (XML serializer) cannot write null value.\");\n }\n const ns = schema.NormalizedSchema.of(_schema);\n let nodeContents = null;\n if (value && typeof value === \"object\") {\n if (ns.isBlobSchema()) {\n nodeContents = (this.serdeContext?.base64Encoder ?? utilBase64.toBase64)(value);\n }\n else if (ns.isTimestampSchema() && value instanceof Date) {\n const format = protocols.determineTimestampFormat(ns, this.settings);\n switch (format) {\n case 5:\n nodeContents = value.toISOString().replace(\".000Z\", \"Z\");\n break;\n case 6:\n nodeContents = smithyClient.dateToUtcString(value);\n break;\n case 7:\n nodeContents = String(value.getTime() / 1000);\n break;\n default:\n console.warn(\"Missing timestamp format, using http date\", value);\n nodeContents = smithyClient.dateToUtcString(value);\n break;\n }\n }\n else if (ns.isBigDecimalSchema() && value) {\n if (value instanceof serde.NumericValue) {\n return value.string;\n }\n return String(value);\n }\n else if (ns.isMapSchema() || ns.isListSchema()) {\n throw new Error(\"@aws-sdk/core/protocols - xml serializer, cannot call _write() on List/Map schema, call writeList or writeMap() instead.\");\n }\n else {\n throw new Error(`@aws-sdk/core/protocols - xml serializer, unhandled schema type for object value and schema: ${ns.getName(true)}`);\n }\n }\n if (ns.isBooleanSchema() || ns.isNumericSchema() || ns.isBigIntegerSchema() || ns.isBigDecimalSchema()) {\n nodeContents = String(value);\n }\n if (ns.isStringSchema()) {\n if (value === undefined && ns.isIdempotencyToken()) {\n nodeContents = serde.generateIdempotencyToken();\n }\n else {\n nodeContents = String(value);\n }\n }\n if (nodeContents === null) {\n throw new Error(`Unhandled schema-value pair ${ns.getName(true)}=${value}`);\n }\n return nodeContents;\n }\n writeSimpleInto(_schema, value, into, parentXmlns) {\n const nodeContents = this.writeSimple(_schema, value);\n const ns = schema.NormalizedSchema.of(_schema);\n const content = new xmlBuilder.XmlText(nodeContents);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n if (xmlns) {\n into.addAttribute(xmlnsAttr, xmlns);\n }\n into.addChildNode(content);\n }\n getXmlnsAttribute(ns, parentXmlns) {\n const traits = ns.getMergedTraits();\n const [prefix, xmlns] = traits.xmlNamespace ?? [];\n if (xmlns && xmlns !== parentXmlns) {\n return [prefix ? `xmlns:${prefix}` : \"xmlns\", xmlns];\n }\n return [void 0, void 0];\n }\n}\n\nclass XmlCodec extends SerdeContextConfig {\n settings;\n constructor(settings) {\n super();\n this.settings = settings;\n }\n createSerializer() {\n const serializer = new XmlShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new XmlShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n}\n\nclass AwsRestXmlProtocol extends protocols.HttpBindingProtocol {\n codec;\n serializer;\n deserializer;\n mixin = new ProtocolLib();\n constructor(options) {\n super(options);\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: 5,\n },\n httpBindings: true,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace,\n };\n this.codec = new XmlCodec(settings);\n this.serializer = new protocols.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new protocols.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n this.compositeErrorRegistry;\n }\n getPayloadCodec() {\n return this.codec;\n }\n getShapeId() {\n return \"aws.protocols#restXml\";\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const inputSchema = schema.NormalizedSchema.of(operationSchema.input);\n if (!request.headers[\"content-type\"]) {\n const contentType = this.mixin.resolveRestContentType(this.getDefaultContentType(), inputSchema);\n if (contentType) {\n request.headers[\"content-type\"] = contentType;\n }\n }\n if (typeof request.body === \"string\" &&\n request.headers[\"content-type\"] === this.getDefaultContentType() &&\n !request.body.startsWith(\"<?xml \") &&\n !this.hasUnstructuredPayloadBinding(inputSchema)) {\n request.body = '<?xml version=\"1.0\" encoding=\"UTF-8\"?>' + request.body;\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n return super.deserializeResponse(operationSchema, context, response);\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestXmlErrorCode(response, dataObject) ?? \"Unknown\";\n this.mixin.compose(this.compositeErrorRegistry, errorIdentifier, this.options.defaultNamespace);\n if (dataObject.Error && typeof dataObject.Error === \"object\") {\n for (const key of Object.keys(dataObject.Error)) {\n dataObject[key] = dataObject.Error[key];\n if (key.toLowerCase() === \"message\") {\n dataObject.message = dataObject.Error[key];\n }\n }\n }\n if (dataObject.RequestId && !metadata.requestId) {\n metadata.requestId = dataObject.RequestId;\n }\n const { errorSchema, errorMetadata } = await this.mixin.getErrorSchemaOrThrowBaseException(errorIdentifier, this.options.defaultNamespace, response, dataObject, metadata);\n const ns = schema.NormalizedSchema.of(errorSchema);\n const message = dataObject.Error?.message ??\n dataObject.Error?.Message ??\n dataObject.message ??\n dataObject.Message ??\n \"UnknownError\";\n const ErrorCtor = this.compositeErrorRegistry.getErrorCtor(errorSchema) ?? Error;\n const exception = new ErrorCtor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = dataObject.Error?.[target] ?? dataObject[target];\n output[name] = this.codec.createDeserializer().readSchema(member, value);\n }\n throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {\n $fault: ns.getMergedTraits().error,\n message,\n }, output), dataObject);\n }\n getDefaultContentType() {\n return \"application/xml\";\n }\n hasUnstructuredPayloadBinding(ns) {\n for (const [, member] of ns.structIterator()) {\n if (member.getMergedTraits().httpPayload) {\n return !(member.isStructSchema() || member.isMapSchema() || member.isListSchema());\n }\n }\n return false;\n }\n}\n\nexports.AWSSDKSigV4Signer = AWSSDKSigV4Signer;\nexports.AwsEc2QueryProtocol = AwsEc2QueryProtocol;\nexports.AwsJson1_0Protocol = AwsJson1_0Protocol;\nexports.AwsJson1_1Protocol = AwsJson1_1Protocol;\nexports.AwsJsonRpcProtocol = AwsJsonRpcProtocol;\nexports.AwsQueryProtocol = AwsQueryProtocol;\nexports.AwsRestJsonProtocol = AwsRestJsonProtocol;\nexports.AwsRestXmlProtocol = AwsRestXmlProtocol;\nexports.AwsSdkSigV4ASigner = AwsSdkSigV4ASigner;\nexports.AwsSdkSigV4Signer = AwsSdkSigV4Signer;\nexports.AwsSmithyRpcV2CborProtocol = AwsSmithyRpcV2CborProtocol;\nexports.JsonCodec = JsonCodec;\nexports.JsonShapeDeserializer = JsonShapeDeserializer;\nexports.JsonShapeSerializer = JsonShapeSerializer;\nexports.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS = NODE_AUTH_SCHEME_PREFERENCE_OPTIONS;\nexports.NODE_SIGV4A_CONFIG_OPTIONS = NODE_SIGV4A_CONFIG_OPTIONS;\nexports.QueryShapeSerializer = QueryShapeSerializer;\nexports.XmlCodec = XmlCodec;\nexports.XmlShapeDeserializer = XmlShapeDeserializer;\nexports.XmlShapeSerializer = XmlShapeSerializer;\nexports._toBool = _toBool;\nexports._toNum = _toNum;\nexports._toStr = _toStr;\nexports.awsExpectUnion = awsExpectUnion;\nexports.emitWarningIfUnsupportedVersion = emitWarningIfUnsupportedVersion;\nexports.getBearerTokenEnvKey = getBearerTokenEnvKey;\nexports.loadRestJsonErrorCode = loadRestJsonErrorCode;\nexports.loadRestXmlErrorCode = loadRestXmlErrorCode;\nexports.parseJsonBody = parseJsonBody;\nexports.parseJsonErrorBody = parseJsonErrorBody;\nexports.parseXmlBody = parseXmlBody;\nexports.parseXmlErrorBody = parseXmlErrorBody;\nexports.resolveAWSSDKSigV4Config = resolveAWSSDKSigV4Config;\nexports.resolveAwsSdkSigV4AConfig = resolveAwsSdkSigV4AConfig;\nexports.resolveAwsSdkSigV4Config = resolveAwsSdkSigV4Config;\nexports.setCredentialFeature = setCredentialFeature;\nexports.setFeature = setFeature;\nexports.setTokenFeature = setTokenFeature;\nexports.state = state;\nexports.validateSigningProperties = validateSigningProperties;\n",
|
|
20
|
+
"'use strict';\n\nconst CLOCK_SKEW_ERROR_CODES = [\n \"AuthFailure\",\n \"InvalidSignatureException\",\n \"RequestExpired\",\n \"RequestInTheFuture\",\n \"RequestTimeTooSkewed\",\n \"SignatureDoesNotMatch\",\n];\nconst THROTTLING_ERROR_CODES = [\n \"BandwidthLimitExceeded\",\n \"EC2ThrottledException\",\n \"LimitExceededException\",\n \"PriorRequestNotComplete\",\n \"ProvisionedThroughputExceededException\",\n \"RequestLimitExceeded\",\n \"RequestThrottled\",\n \"RequestThrottledException\",\n \"SlowDown\",\n \"ThrottledException\",\n \"Throttling\",\n \"ThrottlingException\",\n \"TooManyRequestsException\",\n \"TransactionInProgressException\",\n];\nconst TRANSIENT_ERROR_CODES = [\"TimeoutError\", \"RequestTimeout\", \"RequestTimeoutException\"];\nconst TRANSIENT_ERROR_STATUS_CODES = [500, 502, 503, 504];\nconst NODEJS_TIMEOUT_ERROR_CODES = [\"ECONNRESET\", \"ECONNREFUSED\", \"EPIPE\", \"ETIMEDOUT\"];\nconst NODEJS_NETWORK_ERROR_CODES = [\"EHOSTUNREACH\", \"ENETUNREACH\", \"ENOTFOUND\"];\n\nconst isRetryableByTrait = (error) => error?.$retryable !== undefined;\nconst isClockSkewError = (error) => CLOCK_SKEW_ERROR_CODES.includes(error.name);\nconst isClockSkewCorrectedError = (error) => error.$metadata?.clockSkewCorrected;\nconst isBrowserNetworkError = (error) => {\n const errorMessages = new Set([\n \"Failed to fetch\",\n \"NetworkError when attempting to fetch resource\",\n \"The Internet connection appears to be offline\",\n \"Load failed\",\n \"Network request failed\",\n ]);\n const isValid = error && error instanceof TypeError;\n if (!isValid) {\n return false;\n }\n return errorMessages.has(error.message);\n};\nconst isThrottlingError = (error) => error.$metadata?.httpStatusCode === 429 ||\n THROTTLING_ERROR_CODES.includes(error.name) ||\n error.$retryable?.throttling == true;\nconst isTransientError = (error, depth = 0) => isRetryableByTrait(error) ||\n isClockSkewCorrectedError(error) ||\n TRANSIENT_ERROR_CODES.includes(error.name) ||\n NODEJS_TIMEOUT_ERROR_CODES.includes(error?.code || \"\") ||\n NODEJS_NETWORK_ERROR_CODES.includes(error?.code || \"\") ||\n TRANSIENT_ERROR_STATUS_CODES.includes(error.$metadata?.httpStatusCode || 0) ||\n isBrowserNetworkError(error) ||\n (error.cause !== undefined && depth <= 10 && isTransientError(error.cause, depth + 1));\nconst isServerError = (error) => {\n if (error.$metadata?.httpStatusCode !== undefined) {\n const statusCode = error.$metadata.httpStatusCode;\n if (500 <= statusCode && statusCode <= 599 && !isTransientError(error)) {\n return true;\n }\n return false;\n }\n return false;\n};\n\nexports.isBrowserNetworkError = isBrowserNetworkError;\nexports.isClockSkewCorrectedError = isClockSkewCorrectedError;\nexports.isClockSkewError = isClockSkewError;\nexports.isRetryableByTrait = isRetryableByTrait;\nexports.isServerError = isServerError;\nexports.isThrottlingError = isThrottlingError;\nexports.isTransientError = isTransientError;\n",
|
|
21
|
+
"'use strict';\n\nvar serviceErrorClassification = require('@smithy/service-error-classification');\n\nexports.RETRY_MODES = void 0;\n(function (RETRY_MODES) {\n RETRY_MODES[\"STANDARD\"] = \"standard\";\n RETRY_MODES[\"ADAPTIVE\"] = \"adaptive\";\n})(exports.RETRY_MODES || (exports.RETRY_MODES = {}));\nconst DEFAULT_MAX_ATTEMPTS = 3;\nconst DEFAULT_RETRY_MODE = exports.RETRY_MODES.STANDARD;\n\nclass DefaultRateLimiter {\n static setTimeoutFn = setTimeout;\n beta;\n minCapacity;\n minFillRate;\n scaleConstant;\n smooth;\n currentCapacity = 0;\n enabled = false;\n lastMaxRate = 0;\n measuredTxRate = 0;\n requestCount = 0;\n fillRate;\n lastThrottleTime;\n lastTimestamp = 0;\n lastTxRateBucket;\n maxCapacity;\n timeWindow = 0;\n constructor(options) {\n this.beta = options?.beta ?? 0.7;\n this.minCapacity = options?.minCapacity ?? 1;\n this.minFillRate = options?.minFillRate ?? 0.5;\n this.scaleConstant = options?.scaleConstant ?? 0.4;\n this.smooth = options?.smooth ?? 0.8;\n const currentTimeInSeconds = this.getCurrentTimeInSeconds();\n this.lastThrottleTime = currentTimeInSeconds;\n this.lastTxRateBucket = Math.floor(this.getCurrentTimeInSeconds());\n this.fillRate = this.minFillRate;\n this.maxCapacity = this.minCapacity;\n }\n getCurrentTimeInSeconds() {\n return Date.now() / 1000;\n }\n async getSendToken() {\n return this.acquireTokenBucket(1);\n }\n async acquireTokenBucket(amount) {\n if (!this.enabled) {\n return;\n }\n this.refillTokenBucket();\n if (amount > this.currentCapacity) {\n const delay = ((amount - this.currentCapacity) / this.fillRate) * 1000;\n await new Promise((resolve) => DefaultRateLimiter.setTimeoutFn(resolve, delay));\n }\n this.currentCapacity = this.currentCapacity - amount;\n }\n refillTokenBucket() {\n const timestamp = this.getCurrentTimeInSeconds();\n if (!this.lastTimestamp) {\n this.lastTimestamp = timestamp;\n return;\n }\n const fillAmount = (timestamp - this.lastTimestamp) * this.fillRate;\n this.currentCapacity = Math.min(this.maxCapacity, this.currentCapacity + fillAmount);\n this.lastTimestamp = timestamp;\n }\n updateClientSendingRate(response) {\n let calculatedRate;\n this.updateMeasuredRate();\n if (serviceErrorClassification.isThrottlingError(response)) {\n const rateToUse = !this.enabled ? this.measuredTxRate : Math.min(this.measuredTxRate, this.fillRate);\n this.lastMaxRate = rateToUse;\n this.calculateTimeWindow();\n this.lastThrottleTime = this.getCurrentTimeInSeconds();\n calculatedRate = this.cubicThrottle(rateToUse);\n this.enableTokenBucket();\n }\n else {\n this.calculateTimeWindow();\n calculatedRate = this.cubicSuccess(this.getCurrentTimeInSeconds());\n }\n const newRate = Math.min(calculatedRate, 2 * this.measuredTxRate);\n this.updateTokenBucketRate(newRate);\n }\n calculateTimeWindow() {\n this.timeWindow = this.getPrecise(Math.pow((this.lastMaxRate * (1 - this.beta)) / this.scaleConstant, 1 / 3));\n }\n cubicThrottle(rateToUse) {\n return this.getPrecise(rateToUse * this.beta);\n }\n cubicSuccess(timestamp) {\n return this.getPrecise(this.scaleConstant * Math.pow(timestamp - this.lastThrottleTime - this.timeWindow, 3) + this.lastMaxRate);\n }\n enableTokenBucket() {\n this.enabled = true;\n }\n updateTokenBucketRate(newRate) {\n this.refillTokenBucket();\n this.fillRate = Math.max(newRate, this.minFillRate);\n this.maxCapacity = Math.max(newRate, this.minCapacity);\n this.currentCapacity = Math.min(this.currentCapacity, this.maxCapacity);\n }\n updateMeasuredRate() {\n const t = this.getCurrentTimeInSeconds();\n const timeBucket = Math.floor(t * 2) / 2;\n this.requestCount++;\n if (timeBucket > this.lastTxRateBucket) {\n const currentRate = this.requestCount / (timeBucket - this.lastTxRateBucket);\n this.measuredTxRate = this.getPrecise(currentRate * this.smooth + this.measuredTxRate * (1 - this.smooth));\n this.requestCount = 0;\n this.lastTxRateBucket = timeBucket;\n }\n }\n getPrecise(num) {\n return parseFloat(num.toFixed(8));\n }\n}\n\nconst DEFAULT_RETRY_DELAY_BASE = 100;\nconst MAXIMUM_RETRY_DELAY = 20 * 1000;\nconst THROTTLING_RETRY_DELAY_BASE = 500;\nconst INITIAL_RETRY_TOKENS = 500;\nconst RETRY_COST = 5;\nconst TIMEOUT_RETRY_COST = 10;\nconst NO_RETRY_INCREMENT = 1;\nconst INVOCATION_ID_HEADER = \"amz-sdk-invocation-id\";\nconst REQUEST_HEADER = \"amz-sdk-request\";\n\nconst getDefaultRetryBackoffStrategy = () => {\n let delayBase = DEFAULT_RETRY_DELAY_BASE;\n const computeNextBackoffDelay = (attempts) => {\n return Math.floor(Math.min(MAXIMUM_RETRY_DELAY, Math.random() * 2 ** attempts * delayBase));\n };\n const setDelayBase = (delay) => {\n delayBase = delay;\n };\n return {\n computeNextBackoffDelay,\n setDelayBase,\n };\n};\n\nconst createDefaultRetryToken = ({ retryDelay, retryCount, retryCost, }) => {\n const getRetryCount = () => retryCount;\n const getRetryDelay = () => Math.min(MAXIMUM_RETRY_DELAY, retryDelay);\n const getRetryCost = () => retryCost;\n return {\n getRetryCount,\n getRetryDelay,\n getRetryCost,\n };\n};\n\nclass StandardRetryStrategy {\n maxAttempts;\n mode = exports.RETRY_MODES.STANDARD;\n capacity = INITIAL_RETRY_TOKENS;\n retryBackoffStrategy = getDefaultRetryBackoffStrategy();\n maxAttemptsProvider;\n constructor(maxAttempts) {\n this.maxAttempts = maxAttempts;\n this.maxAttemptsProvider = typeof maxAttempts === \"function\" ? maxAttempts : async () => maxAttempts;\n }\n async acquireInitialRetryToken(retryTokenScope) {\n return createDefaultRetryToken({\n retryDelay: DEFAULT_RETRY_DELAY_BASE,\n retryCount: 0,\n });\n }\n async refreshRetryTokenForRetry(token, errorInfo) {\n const maxAttempts = await this.getMaxAttempts();\n if (this.shouldRetry(token, errorInfo, maxAttempts)) {\n const errorType = errorInfo.errorType;\n this.retryBackoffStrategy.setDelayBase(errorType === \"THROTTLING\" ? THROTTLING_RETRY_DELAY_BASE : DEFAULT_RETRY_DELAY_BASE);\n const delayFromErrorType = this.retryBackoffStrategy.computeNextBackoffDelay(token.getRetryCount());\n const retryDelay = errorInfo.retryAfterHint\n ? Math.max(errorInfo.retryAfterHint.getTime() - Date.now() || 0, delayFromErrorType)\n : delayFromErrorType;\n const capacityCost = this.getCapacityCost(errorType);\n this.capacity -= capacityCost;\n return createDefaultRetryToken({\n retryDelay,\n retryCount: token.getRetryCount() + 1,\n retryCost: capacityCost,\n });\n }\n throw new Error(\"No retry token available\");\n }\n recordSuccess(token) {\n this.capacity = Math.max(INITIAL_RETRY_TOKENS, this.capacity + (token.getRetryCost() ?? NO_RETRY_INCREMENT));\n }\n getCapacity() {\n return this.capacity;\n }\n async getMaxAttempts() {\n try {\n return await this.maxAttemptsProvider();\n }\n catch (error) {\n console.warn(`Max attempts provider could not resolve. Using default of ${DEFAULT_MAX_ATTEMPTS}`);\n return DEFAULT_MAX_ATTEMPTS;\n }\n }\n shouldRetry(tokenToRenew, errorInfo, maxAttempts) {\n const attempts = tokenToRenew.getRetryCount() + 1;\n return (attempts < maxAttempts &&\n this.capacity >= this.getCapacityCost(errorInfo.errorType) &&\n this.isRetryableError(errorInfo.errorType));\n }\n getCapacityCost(errorType) {\n return errorType === \"TRANSIENT\" ? TIMEOUT_RETRY_COST : RETRY_COST;\n }\n isRetryableError(errorType) {\n return errorType === \"THROTTLING\" || errorType === \"TRANSIENT\";\n }\n}\n\nclass AdaptiveRetryStrategy {\n maxAttemptsProvider;\n rateLimiter;\n standardRetryStrategy;\n mode = exports.RETRY_MODES.ADAPTIVE;\n constructor(maxAttemptsProvider, options) {\n this.maxAttemptsProvider = maxAttemptsProvider;\n const { rateLimiter } = options ?? {};\n this.rateLimiter = rateLimiter ?? new DefaultRateLimiter();\n this.standardRetryStrategy = new StandardRetryStrategy(maxAttemptsProvider);\n }\n async acquireInitialRetryToken(retryTokenScope) {\n await this.rateLimiter.getSendToken();\n return this.standardRetryStrategy.acquireInitialRetryToken(retryTokenScope);\n }\n async refreshRetryTokenForRetry(tokenToRenew, errorInfo) {\n this.rateLimiter.updateClientSendingRate(errorInfo);\n return this.standardRetryStrategy.refreshRetryTokenForRetry(tokenToRenew, errorInfo);\n }\n recordSuccess(token) {\n this.rateLimiter.updateClientSendingRate({});\n this.standardRetryStrategy.recordSuccess(token);\n }\n}\n\nclass ConfiguredRetryStrategy extends StandardRetryStrategy {\n computeNextBackoffDelay;\n constructor(maxAttempts, computeNextBackoffDelay = DEFAULT_RETRY_DELAY_BASE) {\n super(typeof maxAttempts === \"function\" ? maxAttempts : async () => maxAttempts);\n if (typeof computeNextBackoffDelay === \"number\") {\n this.computeNextBackoffDelay = () => computeNextBackoffDelay;\n }\n else {\n this.computeNextBackoffDelay = computeNextBackoffDelay;\n }\n }\n async refreshRetryTokenForRetry(tokenToRenew, errorInfo) {\n const token = await super.refreshRetryTokenForRetry(tokenToRenew, errorInfo);\n token.getRetryDelay = () => this.computeNextBackoffDelay(token.getRetryCount());\n return token;\n }\n}\n\nexports.AdaptiveRetryStrategy = AdaptiveRetryStrategy;\nexports.ConfiguredRetryStrategy = ConfiguredRetryStrategy;\nexports.DEFAULT_MAX_ATTEMPTS = DEFAULT_MAX_ATTEMPTS;\nexports.DEFAULT_RETRY_DELAY_BASE = DEFAULT_RETRY_DELAY_BASE;\nexports.DEFAULT_RETRY_MODE = DEFAULT_RETRY_MODE;\nexports.DefaultRateLimiter = DefaultRateLimiter;\nexports.INITIAL_RETRY_TOKENS = INITIAL_RETRY_TOKENS;\nexports.INVOCATION_ID_HEADER = INVOCATION_ID_HEADER;\nexports.MAXIMUM_RETRY_DELAY = MAXIMUM_RETRY_DELAY;\nexports.NO_RETRY_INCREMENT = NO_RETRY_INCREMENT;\nexports.REQUEST_HEADER = REQUEST_HEADER;\nexports.RETRY_COST = RETRY_COST;\nexports.StandardRetryStrategy = StandardRetryStrategy;\nexports.THROTTLING_RETRY_DELAY_BASE = THROTTLING_RETRY_DELAY_BASE;\nexports.TIMEOUT_RETRY_COST = TIMEOUT_RETRY_COST;\n",
|
|
22
|
+
"'use strict';\n\nvar core = require('@smithy/core');\nvar utilEndpoints = require('@aws-sdk/util-endpoints');\nvar protocolHttp = require('@smithy/protocol-http');\nvar core$1 = require('@aws-sdk/core');\nvar utilRetry = require('@smithy/util-retry');\n\nconst DEFAULT_UA_APP_ID = undefined;\nfunction isValidUserAgentAppId(appId) {\n if (appId === undefined) {\n return true;\n }\n return typeof appId === \"string\" && appId.length <= 50;\n}\nfunction resolveUserAgentConfig(input) {\n const normalizedAppIdProvider = core.normalizeProvider(input.userAgentAppId ?? DEFAULT_UA_APP_ID);\n const { customUserAgent } = input;\n return Object.assign(input, {\n customUserAgent: typeof customUserAgent === \"string\" ? [[customUserAgent]] : customUserAgent,\n userAgentAppId: async () => {\n const appId = await normalizedAppIdProvider();\n if (!isValidUserAgentAppId(appId)) {\n const logger = input.logger?.constructor?.name === \"NoOpLogger\" || !input.logger ? console : input.logger;\n if (typeof appId !== \"string\") {\n logger?.warn(\"userAgentAppId must be a string or undefined.\");\n }\n else if (appId.length > 50) {\n logger?.warn(\"The provided userAgentAppId exceeds the maximum length of 50 characters.\");\n }\n }\n return appId;\n },\n });\n}\n\nconst ACCOUNT_ID_ENDPOINT_REGEX = /\\d{12}\\.ddb/;\nasync function checkFeatures(context, config, args) {\n const request = args.request;\n if (request?.headers?.[\"smithy-protocol\"] === \"rpc-v2-cbor\") {\n core$1.setFeature(context, \"PROTOCOL_RPC_V2_CBOR\", \"M\");\n }\n if (typeof config.retryStrategy === \"function\") {\n const retryStrategy = await config.retryStrategy();\n if (typeof retryStrategy.mode === \"string\") {\n switch (retryStrategy.mode) {\n case utilRetry.RETRY_MODES.ADAPTIVE:\n core$1.setFeature(context, \"RETRY_MODE_ADAPTIVE\", \"F\");\n break;\n case utilRetry.RETRY_MODES.STANDARD:\n core$1.setFeature(context, \"RETRY_MODE_STANDARD\", \"E\");\n break;\n }\n }\n }\n if (typeof config.accountIdEndpointMode === \"function\") {\n const endpointV2 = context.endpointV2;\n if (String(endpointV2?.url?.hostname).match(ACCOUNT_ID_ENDPOINT_REGEX)) {\n core$1.setFeature(context, \"ACCOUNT_ID_ENDPOINT\", \"O\");\n }\n switch (await config.accountIdEndpointMode?.()) {\n case \"disabled\":\n core$1.setFeature(context, \"ACCOUNT_ID_MODE_DISABLED\", \"Q\");\n break;\n case \"preferred\":\n core$1.setFeature(context, \"ACCOUNT_ID_MODE_PREFERRED\", \"P\");\n break;\n case \"required\":\n core$1.setFeature(context, \"ACCOUNT_ID_MODE_REQUIRED\", \"R\");\n break;\n }\n }\n const identity = context.__smithy_context?.selectedHttpAuthScheme?.identity;\n if (identity?.$source) {\n const credentials = identity;\n if (credentials.accountId) {\n core$1.setFeature(context, \"RESOLVED_ACCOUNT_ID\", \"T\");\n }\n for (const [key, value] of Object.entries(credentials.$source ?? {})) {\n core$1.setFeature(context, key, value);\n }\n }\n}\n\nconst USER_AGENT = \"user-agent\";\nconst X_AMZ_USER_AGENT = \"x-amz-user-agent\";\nconst SPACE = \" \";\nconst UA_NAME_SEPARATOR = \"/\";\nconst UA_NAME_ESCAPE_REGEX = /[^!$%&'*+\\-.^_`|~\\w]/g;\nconst UA_VALUE_ESCAPE_REGEX = /[^!$%&'*+\\-.^_`|~\\w#]/g;\nconst UA_ESCAPE_CHAR = \"-\";\n\nconst BYTE_LIMIT = 1024;\nfunction encodeFeatures(features) {\n let buffer = \"\";\n for (const key in features) {\n const val = features[key];\n if (buffer.length + val.length + 1 <= BYTE_LIMIT) {\n if (buffer.length) {\n buffer += \",\" + val;\n }\n else {\n buffer += val;\n }\n continue;\n }\n break;\n }\n return buffer;\n}\n\nconst userAgentMiddleware = (options) => (next, context) => async (args) => {\n const { request } = args;\n if (!protocolHttp.HttpRequest.isInstance(request)) {\n return next(args);\n }\n const { headers } = request;\n const userAgent = context?.userAgent?.map(escapeUserAgent) || [];\n const defaultUserAgent = (await options.defaultUserAgentProvider()).map(escapeUserAgent);\n await checkFeatures(context, options, args);\n const awsContext = context;\n defaultUserAgent.push(`m/${encodeFeatures(Object.assign({}, context.__smithy_context?.features, awsContext.__aws_sdk_context?.features))}`);\n const customUserAgent = options?.customUserAgent?.map(escapeUserAgent) || [];\n const appId = await options.userAgentAppId();\n if (appId) {\n defaultUserAgent.push(escapeUserAgent([`app`, `${appId}`]));\n }\n const prefix = utilEndpoints.getUserAgentPrefix();\n const sdkUserAgentValue = (prefix ? [prefix] : [])\n .concat([...defaultUserAgent, ...userAgent, ...customUserAgent])\n .join(SPACE);\n const normalUAValue = [\n ...defaultUserAgent.filter((section) => section.startsWith(\"aws-sdk-\")),\n ...customUserAgent,\n ].join(SPACE);\n if (options.runtime !== \"browser\") {\n if (normalUAValue) {\n headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT]\n ? `${headers[USER_AGENT]} ${normalUAValue}`\n : normalUAValue;\n }\n headers[USER_AGENT] = sdkUserAgentValue;\n }\n else {\n headers[X_AMZ_USER_AGENT] = sdkUserAgentValue;\n }\n return next({\n ...args,\n request,\n });\n};\nconst escapeUserAgent = (userAgentPair) => {\n const name = userAgentPair[0]\n .split(UA_NAME_SEPARATOR)\n .map((part) => part.replace(UA_NAME_ESCAPE_REGEX, UA_ESCAPE_CHAR))\n .join(UA_NAME_SEPARATOR);\n const version = userAgentPair[1]?.replace(UA_VALUE_ESCAPE_REGEX, UA_ESCAPE_CHAR);\n const prefixSeparatorIndex = name.indexOf(UA_NAME_SEPARATOR);\n const prefix = name.substring(0, prefixSeparatorIndex);\n let uaName = name.substring(prefixSeparatorIndex + 1);\n if (prefix === \"api\") {\n uaName = uaName.toLowerCase();\n }\n return [prefix, uaName, version]\n .filter((item) => item && item.length > 0)\n .reduce((acc, item, index) => {\n switch (index) {\n case 0:\n return item;\n case 1:\n return `${acc}/${item}`;\n default:\n return `${acc}#${item}`;\n }\n }, \"\");\n};\nconst getUserAgentMiddlewareOptions = {\n name: \"getUserAgentMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"SET_USER_AGENT\", \"USER_AGENT\"],\n override: true,\n};\nconst getUserAgentPlugin = (config) => ({\n applyToStack: (clientStack) => {\n clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions);\n },\n});\n\nexports.DEFAULT_UA_APP_ID = DEFAULT_UA_APP_ID;\nexports.getUserAgentMiddlewareOptions = getUserAgentMiddlewareOptions;\nexports.getUserAgentPlugin = getUserAgentPlugin;\nexports.resolveUserAgentConfig = resolveUserAgentConfig;\nexports.userAgentMiddleware = userAgentMiddleware;\n",
|
|
23
|
+
"'use strict';\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\nexports.booleanSelector = booleanSelector;\nexports.numberSelector = numberSelector;\n",
|
|
24
|
+
"'use strict';\n\nvar utilConfigProvider = require('@smithy/util-config-provider');\nvar utilMiddleware = require('@smithy/util-middleware');\nvar utilEndpoints = require('@smithy/util-endpoints');\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) => utilConfigProvider.booleanSelector(env, ENV_USE_DUALSTACK_ENDPOINT, utilConfigProvider.SelectorType.ENV),\n configFileSelector: (profile) => utilConfigProvider.booleanSelector(profile, CONFIG_USE_DUALSTACK_ENDPOINT, utilConfigProvider.SelectorType.CONFIG),\n default: false,\n};\nconst nodeDualstackConfigSelectors = {\n environmentVariableSelector: (env) => utilConfigProvider.booleanSelector(env, ENV_USE_DUALSTACK_ENDPOINT, utilConfigProvider.SelectorType.ENV),\n configFileSelector: (profile) => utilConfigProvider.booleanSelector(profile, CONFIG_USE_DUALSTACK_ENDPOINT, utilConfigProvider.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) => utilConfigProvider.booleanSelector(env, ENV_USE_FIPS_ENDPOINT, utilConfigProvider.SelectorType.ENV),\n configFileSelector: (profile) => utilConfigProvider.booleanSelector(profile, CONFIG_USE_FIPS_ENDPOINT, utilConfigProvider.SelectorType.CONFIG),\n default: false,\n};\nconst nodeFipsConfigSelectors = {\n environmentVariableSelector: (env) => utilConfigProvider.booleanSelector(env, ENV_USE_FIPS_ENDPOINT, utilConfigProvider.SelectorType.ENV),\n configFileSelector: (profile) => utilConfigProvider.booleanSelector(profile, CONFIG_USE_FIPS_ENDPOINT, utilConfigProvider.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: utilMiddleware.normalizeProvider(typeof endpoint === \"string\" ? urlParser(endpoint) : endpoint),\n isCustomEndpoint: true,\n useDualstackEndpoint: utilMiddleware.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 = utilMiddleware.normalizeProvider(input.useDualstackEndpoint ?? false);\n const { endpoint, useFipsEndpoint, urlParser, tls } = input;\n return Object.assign(input, {\n tls: tls ?? true,\n endpoint: endpoint\n ? utilMiddleware.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 = utilEndpoints.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\nexports.CONFIG_USE_DUALSTACK_ENDPOINT = CONFIG_USE_DUALSTACK_ENDPOINT;\nexports.CONFIG_USE_FIPS_ENDPOINT = CONFIG_USE_FIPS_ENDPOINT;\nexports.DEFAULT_USE_DUALSTACK_ENDPOINT = DEFAULT_USE_DUALSTACK_ENDPOINT;\nexports.DEFAULT_USE_FIPS_ENDPOINT = DEFAULT_USE_FIPS_ENDPOINT;\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.REGION_ENV_NAME = REGION_ENV_NAME;\nexports.REGION_INI_NAME = REGION_INI_NAME;\nexports.getRegionInfo = getRegionInfo;\nexports.nodeDualstackConfigSelectors = nodeDualstackConfigSelectors;\nexports.nodeFipsConfigSelectors = nodeFipsConfigSelectors;\nexports.resolveCustomEndpointsConfig = resolveCustomEndpointsConfig;\nexports.resolveEndpointsConfig = resolveEndpointsConfig;\nexports.resolveRegionConfig = resolveRegionConfig;\n",
|
|
25
|
+
"'use strict';\n\nvar protocolHttp = require('@smithy/protocol-http');\n\nconst CONTENT_LENGTH_HEADER = \"content-length\";\nfunction contentLengthMiddleware(bodyLengthChecker) {\n return (next) => async (args) => {\n const request = args.request;\n if (protocolHttp.HttpRequest.isInstance(request)) {\n const { body, headers } = request;\n if (body &&\n Object.keys(headers)\n .map((str) => str.toLowerCase())\n .indexOf(CONTENT_LENGTH_HEADER) === -1) {\n try {\n const length = bodyLengthChecker(body);\n request.headers = {\n ...request.headers,\n [CONTENT_LENGTH_HEADER]: String(length),\n };\n }\n catch (error) {\n }\n }\n }\n return next({\n ...args,\n request,\n });\n };\n}\nconst contentLengthMiddlewareOptions = {\n step: \"build\",\n tags: [\"SET_CONTENT_LENGTH\", \"CONTENT_LENGTH\"],\n name: \"contentLengthMiddleware\",\n override: true,\n};\nconst getContentLengthPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(contentLengthMiddleware(options.bodyLengthChecker), contentLengthMiddlewareOptions);\n },\n});\n\nexports.contentLengthMiddleware = contentLengthMiddleware;\nexports.contentLengthMiddlewareOptions = contentLengthMiddlewareOptions;\nexports.getContentLengthPlugin = getContentLengthPlugin;\n",
|
|
26
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getEndpointUrlConfig = void 0;\nconst shared_ini_file_loader_1 = require(\"@smithy/shared-ini-file-loader\");\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) => {\n if (config && profile.services) {\n const servicesSection = config[[\"services\", profile.services].join(shared_ini_file_loader_1.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(shared_ini_file_loader_1.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});\nexports.getEndpointUrlConfig = getEndpointUrlConfig;\n",
|
|
27
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getEndpointFromConfig = void 0;\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst getEndpointUrlConfig_1 = require(\"./getEndpointUrlConfig\");\nconst getEndpointFromConfig = async (serviceId) => (0, node_config_provider_1.loadConfig)((0, getEndpointUrlConfig_1.getEndpointUrlConfig)(serviceId ?? \"\"))();\nexports.getEndpointFromConfig = getEndpointFromConfig;\n",
|
|
28
|
+
"'use strict';\n\nvar protocolHttp = require('@smithy/protocol-http');\nvar endpoints = require('@smithy/core/endpoints');\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 (protocolHttp.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\nexports.deserializerMiddleware = deserializerMiddleware;\nexports.deserializerMiddlewareOption = deserializerMiddlewareOption;\nexports.getSerdePlugin = getSerdePlugin;\nexports.serializerMiddleware = serializerMiddleware;\nexports.serializerMiddlewareOption = serializerMiddlewareOption;\n",
|
|
29
|
+
"'use strict';\n\nvar getEndpointFromConfig = require('./adaptors/getEndpointFromConfig');\nvar urlParser = require('@smithy/url-parser');\nvar core = require('@smithy/core');\nvar utilMiddleware = require('@smithy/util-middleware');\nvar middlewareSerde = require('@smithy/middleware-serde');\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\nconst toEndpointV1 = (endpoint) => {\n if (typeof endpoint === \"object\") {\n if (\"url\" in endpoint) {\n const v1Endpoint = urlParser.parseUrl(endpoint.url);\n if (endpoint.headers) {\n v1Endpoint.headers = {};\n for (const [name, values] of Object.entries(endpoint.headers)) {\n v1Endpoint.headers[name.toLowerCase()] = values.join(\", \");\n }\n }\n return v1Endpoint;\n }\n return endpoint;\n }\n return urlParser.parseUrl(endpoint);\n};\n\nconst getEndpointFromInstructions = 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.getEndpointFromConfig(clientConfig.serviceId);\n }\n if (endpointFromConfig) {\n clientConfig.endpoint = () => Promise.resolve(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};\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\nconst endpointMiddleware = ({ config, instructions, }) => {\n return (next, context) => async (args) => {\n if (config.isCustomEndpoint) {\n core.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 = utilMiddleware.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\nconst endpointMiddlewareOptions = {\n step: \"serialize\",\n tags: [\"ENDPOINT_PARAMETERS\", \"ENDPOINT_V2\", \"ENDPOINT\"],\n name: \"endpointV2Middleware\",\n override: true,\n relation: \"before\",\n toMiddleware: middlewareSerde.serializerMiddlewareOption.name,\n};\nconst getEndpointPlugin = (config, instructions) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo(endpointMiddleware({\n config,\n instructions,\n }), endpointMiddlewareOptions);\n },\n});\n\nconst resolveEndpointConfig = (input) => {\n const tls = input.tls ?? true;\n const { endpoint, useDualstackEndpoint, useFipsEndpoint } = input;\n const customEndpointProvider = endpoint != null ? async () => toEndpointV1(await utilMiddleware.normalizeProvider(endpoint)()) : undefined;\n const isCustomEndpoint = !!endpoint;\n const resolvedConfig = Object.assign(input, {\n endpoint: customEndpointProvider,\n tls,\n isCustomEndpoint,\n useDualstackEndpoint: utilMiddleware.normalizeProvider(useDualstackEndpoint ?? false),\n useFipsEndpoint: utilMiddleware.normalizeProvider(useFipsEndpoint ?? false),\n });\n let configuredEndpointPromise = undefined;\n resolvedConfig.serviceConfiguredEndpoint = async () => {\n if (input.serviceId && !configuredEndpointPromise) {\n configuredEndpointPromise = getEndpointFromConfig.getEndpointFromConfig(input.serviceId);\n }\n return configuredEndpointPromise;\n };\n return resolvedConfig;\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\nexports.endpointMiddleware = endpointMiddleware;\nexports.endpointMiddlewareOptions = endpointMiddlewareOptions;\nexports.getEndpointFromInstructions = getEndpointFromInstructions;\nexports.getEndpointPlugin = getEndpointPlugin;\nexports.resolveEndpointConfig = resolveEndpointConfig;\nexports.resolveEndpointRequiredConfig = resolveEndpointRequiredConfig;\nexports.resolveParams = resolveParams;\nexports.toEndpointV1 = toEndpointV1;\n",
|
|
30
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isStreamingPayload = void 0;\nconst stream_1 = require(\"stream\");\nconst isStreamingPayload = (request) => request?.body instanceof stream_1.Readable ||\n (typeof ReadableStream !== \"undefined\" && request?.body instanceof ReadableStream);\nexports.isStreamingPayload = isStreamingPayload;\n",
|
|
31
|
+
"'use strict';\n\nvar utilRetry = require('@smithy/util-retry');\nvar protocolHttp = require('@smithy/protocol-http');\nvar serviceErrorClassification = require('@smithy/service-error-classification');\nvar uuid = require('@smithy/uuid');\nvar utilMiddleware = require('@smithy/util-middleware');\nvar smithyClient = require('@smithy/smithy-client');\nvar isStreamingPayload = require('./isStreamingPayload/isStreamingPayload');\n\nconst getDefaultRetryQuota = (initialRetryTokens, options) => {\n const MAX_CAPACITY = initialRetryTokens;\n const noRetryIncrement = utilRetry.NO_RETRY_INCREMENT;\n const retryCost = utilRetry.RETRY_COST;\n const timeoutRetryCost = utilRetry.TIMEOUT_RETRY_COST;\n let availableCapacity = initialRetryTokens;\n const getCapacityAmount = (error) => (error.name === \"TimeoutError\" ? timeoutRetryCost : retryCost);\n const hasRetryTokens = (error) => getCapacityAmount(error) <= availableCapacity;\n const retrieveRetryTokens = (error) => {\n if (!hasRetryTokens(error)) {\n throw new Error(\"No retry token available\");\n }\n const capacityAmount = getCapacityAmount(error);\n availableCapacity -= capacityAmount;\n return capacityAmount;\n };\n const releaseRetryTokens = (capacityReleaseAmount) => {\n availableCapacity += capacityReleaseAmount ?? noRetryIncrement;\n availableCapacity = Math.min(availableCapacity, MAX_CAPACITY);\n };\n return Object.freeze({\n hasRetryTokens,\n retrieveRetryTokens,\n releaseRetryTokens,\n });\n};\n\nconst defaultDelayDecider = (delayBase, attempts) => Math.floor(Math.min(utilRetry.MAXIMUM_RETRY_DELAY, Math.random() * 2 ** attempts * delayBase));\n\nconst defaultRetryDecider = (error) => {\n if (!error) {\n return false;\n }\n return serviceErrorClassification.isRetryableByTrait(error) || serviceErrorClassification.isClockSkewError(error) || serviceErrorClassification.isThrottlingError(error) || serviceErrorClassification.isTransientError(error);\n};\n\nconst asSdkError = (error) => {\n if (error instanceof Error)\n return error;\n if (error instanceof Object)\n return Object.assign(new Error(), error);\n if (typeof error === \"string\")\n return new Error(error);\n return new Error(`AWS SDK error wrapper for ${error}`);\n};\n\nclass StandardRetryStrategy {\n maxAttemptsProvider;\n retryDecider;\n delayDecider;\n retryQuota;\n mode = utilRetry.RETRY_MODES.STANDARD;\n constructor(maxAttemptsProvider, options) {\n this.maxAttemptsProvider = maxAttemptsProvider;\n this.retryDecider = options?.retryDecider ?? defaultRetryDecider;\n this.delayDecider = options?.delayDecider ?? defaultDelayDecider;\n this.retryQuota = options?.retryQuota ?? getDefaultRetryQuota(utilRetry.INITIAL_RETRY_TOKENS);\n }\n shouldRetry(error, attempts, maxAttempts) {\n return attempts < maxAttempts && this.retryDecider(error) && this.retryQuota.hasRetryTokens(error);\n }\n async getMaxAttempts() {\n let maxAttempts;\n try {\n maxAttempts = await this.maxAttemptsProvider();\n }\n catch (error) {\n maxAttempts = utilRetry.DEFAULT_MAX_ATTEMPTS;\n }\n return maxAttempts;\n }\n async retry(next, args, options) {\n let retryTokenAmount;\n let attempts = 0;\n let totalDelay = 0;\n const maxAttempts = await this.getMaxAttempts();\n const { request } = args;\n if (protocolHttp.HttpRequest.isInstance(request)) {\n request.headers[utilRetry.INVOCATION_ID_HEADER] = uuid.v4();\n }\n while (true) {\n try {\n if (protocolHttp.HttpRequest.isInstance(request)) {\n request.headers[utilRetry.REQUEST_HEADER] = `attempt=${attempts + 1}; max=${maxAttempts}`;\n }\n if (options?.beforeRequest) {\n await options.beforeRequest();\n }\n const { response, output } = await next(args);\n if (options?.afterRequest) {\n options.afterRequest(response);\n }\n this.retryQuota.releaseRetryTokens(retryTokenAmount);\n output.$metadata.attempts = attempts + 1;\n output.$metadata.totalRetryDelay = totalDelay;\n return { response, output };\n }\n catch (e) {\n const err = asSdkError(e);\n attempts++;\n if (this.shouldRetry(err, attempts, maxAttempts)) {\n retryTokenAmount = this.retryQuota.retrieveRetryTokens(err);\n const delayFromDecider = this.delayDecider(serviceErrorClassification.isThrottlingError(err) ? utilRetry.THROTTLING_RETRY_DELAY_BASE : utilRetry.DEFAULT_RETRY_DELAY_BASE, attempts);\n const delayFromResponse = getDelayFromRetryAfterHeader(err.$response);\n const delay = Math.max(delayFromResponse || 0, delayFromDecider);\n totalDelay += delay;\n await new Promise((resolve) => setTimeout(resolve, delay));\n continue;\n }\n if (!err.$metadata) {\n err.$metadata = {};\n }\n err.$metadata.attempts = attempts;\n err.$metadata.totalRetryDelay = totalDelay;\n throw err;\n }\n }\n }\n}\nconst getDelayFromRetryAfterHeader = (response) => {\n if (!protocolHttp.HttpResponse.isInstance(response))\n return;\n const retryAfterHeaderName = Object.keys(response.headers).find((key) => key.toLowerCase() === \"retry-after\");\n if (!retryAfterHeaderName)\n return;\n const retryAfter = response.headers[retryAfterHeaderName];\n const retryAfterSeconds = Number(retryAfter);\n if (!Number.isNaN(retryAfterSeconds))\n return retryAfterSeconds * 1000;\n const retryAfterDate = new Date(retryAfter);\n return retryAfterDate.getTime() - Date.now();\n};\n\nclass AdaptiveRetryStrategy extends StandardRetryStrategy {\n rateLimiter;\n constructor(maxAttemptsProvider, options) {\n const { rateLimiter, ...superOptions } = options ?? {};\n super(maxAttemptsProvider, superOptions);\n this.rateLimiter = rateLimiter ?? new utilRetry.DefaultRateLimiter();\n this.mode = utilRetry.RETRY_MODES.ADAPTIVE;\n }\n async retry(next, args) {\n return super.retry(next, args, {\n beforeRequest: async () => {\n return this.rateLimiter.getSendToken();\n },\n afterRequest: (response) => {\n this.rateLimiter.updateClientSendingRate(response);\n },\n });\n }\n}\n\nconst ENV_MAX_ATTEMPTS = \"AWS_MAX_ATTEMPTS\";\nconst CONFIG_MAX_ATTEMPTS = \"max_attempts\";\nconst NODE_MAX_ATTEMPT_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => {\n const value = env[ENV_MAX_ATTEMPTS];\n if (!value)\n return undefined;\n const maxAttempt = parseInt(value);\n if (Number.isNaN(maxAttempt)) {\n throw new Error(`Environment variable ${ENV_MAX_ATTEMPTS} mast be a number, got \"${value}\"`);\n }\n return maxAttempt;\n },\n configFileSelector: (profile) => {\n const value = profile[CONFIG_MAX_ATTEMPTS];\n if (!value)\n return undefined;\n const maxAttempt = parseInt(value);\n if (Number.isNaN(maxAttempt)) {\n throw new Error(`Shared config file entry ${CONFIG_MAX_ATTEMPTS} mast be a number, got \"${value}\"`);\n }\n return maxAttempt;\n },\n default: utilRetry.DEFAULT_MAX_ATTEMPTS,\n};\nconst resolveRetryConfig = (input) => {\n const { retryStrategy, retryMode } = input;\n const maxAttempts = utilMiddleware.normalizeProvider(input.maxAttempts ?? utilRetry.DEFAULT_MAX_ATTEMPTS);\n let controller = retryStrategy\n ? Promise.resolve(retryStrategy)\n : undefined;\n const getDefault = async () => (await utilMiddleware.normalizeProvider(retryMode)()) === utilRetry.RETRY_MODES.ADAPTIVE\n ? new utilRetry.AdaptiveRetryStrategy(maxAttempts)\n : new utilRetry.StandardRetryStrategy(maxAttempts);\n return Object.assign(input, {\n maxAttempts,\n retryStrategy: () => (controller ??= getDefault()),\n });\n};\nconst ENV_RETRY_MODE = \"AWS_RETRY_MODE\";\nconst CONFIG_RETRY_MODE = \"retry_mode\";\nconst NODE_RETRY_MODE_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => env[ENV_RETRY_MODE],\n configFileSelector: (profile) => profile[CONFIG_RETRY_MODE],\n default: utilRetry.DEFAULT_RETRY_MODE,\n};\n\nconst omitRetryHeadersMiddleware = () => (next) => async (args) => {\n const { request } = args;\n if (protocolHttp.HttpRequest.isInstance(request)) {\n delete request.headers[utilRetry.INVOCATION_ID_HEADER];\n delete request.headers[utilRetry.REQUEST_HEADER];\n }\n return next(args);\n};\nconst omitRetryHeadersMiddlewareOptions = {\n name: \"omitRetryHeadersMiddleware\",\n tags: [\"RETRY\", \"HEADERS\", \"OMIT_RETRY_HEADERS\"],\n relation: \"before\",\n toMiddleware: \"awsAuthMiddleware\",\n override: true,\n};\nconst getOmitRetryHeadersPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo(omitRetryHeadersMiddleware(), omitRetryHeadersMiddlewareOptions);\n },\n});\n\nconst retryMiddleware = (options) => (next, context) => async (args) => {\n let retryStrategy = await options.retryStrategy();\n const maxAttempts = await options.maxAttempts();\n if (isRetryStrategyV2(retryStrategy)) {\n retryStrategy = retryStrategy;\n let retryToken = await retryStrategy.acquireInitialRetryToken(context[\"partition_id\"]);\n let lastError = new Error();\n let attempts = 0;\n let totalRetryDelay = 0;\n const { request } = args;\n const isRequest = protocolHttp.HttpRequest.isInstance(request);\n if (isRequest) {\n request.headers[utilRetry.INVOCATION_ID_HEADER] = uuid.v4();\n }\n while (true) {\n try {\n if (isRequest) {\n request.headers[utilRetry.REQUEST_HEADER] = `attempt=${attempts + 1}; max=${maxAttempts}`;\n }\n const { response, output } = await next(args);\n retryStrategy.recordSuccess(retryToken);\n output.$metadata.attempts = attempts + 1;\n output.$metadata.totalRetryDelay = totalRetryDelay;\n return { response, output };\n }\n catch (e) {\n const retryErrorInfo = getRetryErrorInfo(e);\n lastError = asSdkError(e);\n if (isRequest && isStreamingPayload.isStreamingPayload(request)) {\n (context.logger instanceof smithyClient.NoOpLogger ? console : context.logger)?.warn(\"An error was encountered in a non-retryable streaming request.\");\n throw lastError;\n }\n try {\n retryToken = await retryStrategy.refreshRetryTokenForRetry(retryToken, retryErrorInfo);\n }\n catch (refreshError) {\n if (!lastError.$metadata) {\n lastError.$metadata = {};\n }\n lastError.$metadata.attempts = attempts + 1;\n lastError.$metadata.totalRetryDelay = totalRetryDelay;\n throw lastError;\n }\n attempts = retryToken.getRetryCount();\n const delay = retryToken.getRetryDelay();\n totalRetryDelay += delay;\n await new Promise((resolve) => setTimeout(resolve, delay));\n }\n }\n }\n else {\n retryStrategy = retryStrategy;\n if (retryStrategy?.mode)\n context.userAgent = [...(context.userAgent || []), [\"cfg/retry-mode\", retryStrategy.mode]];\n return retryStrategy.retry(next, args);\n }\n};\nconst isRetryStrategyV2 = (retryStrategy) => typeof retryStrategy.acquireInitialRetryToken !== \"undefined\" &&\n typeof retryStrategy.refreshRetryTokenForRetry !== \"undefined\" &&\n typeof retryStrategy.recordSuccess !== \"undefined\";\nconst getRetryErrorInfo = (error) => {\n const errorInfo = {\n error,\n errorType: getRetryErrorType(error),\n };\n const retryAfterHint = getRetryAfterHint(error.$response);\n if (retryAfterHint) {\n errorInfo.retryAfterHint = retryAfterHint;\n }\n return errorInfo;\n};\nconst getRetryErrorType = (error) => {\n if (serviceErrorClassification.isThrottlingError(error))\n return \"THROTTLING\";\n if (serviceErrorClassification.isTransientError(error))\n return \"TRANSIENT\";\n if (serviceErrorClassification.isServerError(error))\n return \"SERVER_ERROR\";\n return \"CLIENT_ERROR\";\n};\nconst retryMiddlewareOptions = {\n name: \"retryMiddleware\",\n tags: [\"RETRY\"],\n step: \"finalizeRequest\",\n priority: \"high\",\n override: true,\n};\nconst getRetryPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(retryMiddleware(options), retryMiddlewareOptions);\n },\n});\nconst getRetryAfterHint = (response) => {\n if (!protocolHttp.HttpResponse.isInstance(response))\n return;\n const retryAfterHeaderName = Object.keys(response.headers).find((key) => key.toLowerCase() === \"retry-after\");\n if (!retryAfterHeaderName)\n return;\n const retryAfter = response.headers[retryAfterHeaderName];\n const retryAfterSeconds = Number(retryAfter);\n if (!Number.isNaN(retryAfterSeconds))\n return new Date(retryAfterSeconds * 1000);\n const retryAfterDate = new Date(retryAfter);\n return retryAfterDate;\n};\n\nexports.AdaptiveRetryStrategy = AdaptiveRetryStrategy;\nexports.CONFIG_MAX_ATTEMPTS = CONFIG_MAX_ATTEMPTS;\nexports.CONFIG_RETRY_MODE = CONFIG_RETRY_MODE;\nexports.ENV_MAX_ATTEMPTS = ENV_MAX_ATTEMPTS;\nexports.ENV_RETRY_MODE = ENV_RETRY_MODE;\nexports.NODE_MAX_ATTEMPT_CONFIG_OPTIONS = NODE_MAX_ATTEMPT_CONFIG_OPTIONS;\nexports.NODE_RETRY_MODE_CONFIG_OPTIONS = NODE_RETRY_MODE_CONFIG_OPTIONS;\nexports.StandardRetryStrategy = StandardRetryStrategy;\nexports.defaultDelayDecider = defaultDelayDecider;\nexports.defaultRetryDecider = defaultRetryDecider;\nexports.getOmitRetryHeadersPlugin = getOmitRetryHeadersPlugin;\nexports.getRetryAfterHint = getRetryAfterHint;\nexports.getRetryPlugin = getRetryPlugin;\nexports.omitRetryHeadersMiddleware = omitRetryHeadersMiddleware;\nexports.omitRetryHeadersMiddlewareOptions = omitRetryHeadersMiddlewareOptions;\nexports.resolveRetryConfig = resolveRetryConfig;\nexports.retryMiddleware = retryMiddleware;\nexports.retryMiddlewareOptions = retryMiddlewareOptions;\n",
|
|
32
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.warning = void 0;\nexports.stsRegionDefaultResolver = stsRegionDefaultResolver;\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nfunction stsRegionDefaultResolver(loaderConfig = {}) {\n return (0, node_config_provider_1.loadConfig)({\n ...config_resolver_1.NODE_REGION_CONFIG_OPTIONS,\n async default() {\n if (!exports.warning.silence) {\n console.warn(\"@aws-sdk - WARN - default STS region of us-east-1 used. See @aws-sdk/credential-providers README and set a region explicitly.\");\n }\n return \"us-east-1\";\n },\n }, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig });\n}\nexports.warning = {\n silence: false,\n};\n",
|
|
33
|
+
"'use strict';\n\nvar stsRegionDefaultResolver = require('./regionConfig/stsRegionDefaultResolver');\nvar configResolver = require('@smithy/config-resolver');\n\nconst getAwsRegionExtensionConfiguration = (runtimeConfig) => {\n return {\n setRegion(region) {\n runtimeConfig.region = region;\n },\n region() {\n return runtimeConfig.region;\n },\n };\n};\nconst resolveAwsRegionExtensionConfiguration = (awsRegionExtensionConfiguration) => {\n return {\n region: awsRegionExtensionConfiguration.region(),\n };\n};\n\nexports.NODE_REGION_CONFIG_FILE_OPTIONS = configResolver.NODE_REGION_CONFIG_FILE_OPTIONS;\nexports.NODE_REGION_CONFIG_OPTIONS = configResolver.NODE_REGION_CONFIG_OPTIONS;\nexports.REGION_ENV_NAME = configResolver.REGION_ENV_NAME;\nexports.REGION_INI_NAME = configResolver.REGION_INI_NAME;\nexports.resolveRegionConfig = configResolver.resolveRegionConfig;\nexports.getAwsRegionExtensionConfiguration = getAwsRegionExtensionConfiguration;\nexports.resolveAwsRegionExtensionConfiguration = resolveAwsRegionExtensionConfiguration;\nObject.prototype.hasOwnProperty.call(stsRegionDefaultResolver, '__proto__') &&\n !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n Object.defineProperty(exports, '__proto__', {\n enumerable: true,\n value: stsRegionDefaultResolver['__proto__']\n });\n\nObject.keys(stsRegionDefaultResolver).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = stsRegionDefaultResolver[k];\n});\n",
|
|
34
|
+
"'use strict';\n\nvar node_os = require('node:os');\nvar node_process = require('node:process');\nvar utilConfigProvider = require('@smithy/util-config-provider');\nvar promises = require('node:fs/promises');\nvar node_path = require('node:path');\nvar middlewareUserAgent = require('@aws-sdk/middleware-user-agent');\n\nconst getRuntimeUserAgentPair = () => {\n const runtimesToCheck = [\"deno\", \"bun\", \"llrt\"];\n for (const runtime of runtimesToCheck) {\n if (node_process.versions[runtime]) {\n return [`md/${runtime}`, node_process.versions[runtime]];\n }\n }\n return [\"md/nodejs\", node_process.versions.node];\n};\n\nconst getNodeModulesParentDirs = (dirname) => {\n const cwd = process.cwd();\n if (!dirname) {\n return [cwd];\n }\n const normalizedPath = node_path.normalize(dirname);\n const parts = normalizedPath.split(node_path.sep);\n const nodeModulesIndex = parts.indexOf(\"node_modules\");\n const parentDir = nodeModulesIndex !== -1 ? parts.slice(0, nodeModulesIndex).join(node_path.sep) : normalizedPath;\n if (cwd === parentDir) {\n return [cwd];\n }\n return [parentDir, cwd];\n};\n\nconst SEMVER_REGEX = /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+[0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*)?$/;\nconst getSanitizedTypeScriptVersion = (version = \"\") => {\n const match = version.match(SEMVER_REGEX);\n if (!match) {\n return undefined;\n }\n const [major, minor, patch, prerelease] = [match[1], match[2], match[3], match[4]];\n return prerelease ? `${major}.${minor}.${patch}-${prerelease}` : `${major}.${minor}.${patch}`;\n};\n\nconst ALLOWED_PREFIXES = [\"^\", \"~\", \">=\", \"<=\", \">\", \"<\"];\nconst ALLOWED_DIST_TAGS = [\"latest\", \"beta\", \"dev\", \"rc\", \"insiders\", \"next\"];\nconst getSanitizedDevTypeScriptVersion = (version = \"\") => {\n if (ALLOWED_DIST_TAGS.includes(version)) {\n return version;\n }\n const prefix = ALLOWED_PREFIXES.find((p) => version.startsWith(p)) ?? \"\";\n const sanitizedTypeScriptVersion = getSanitizedTypeScriptVersion(version.slice(prefix.length));\n if (!sanitizedTypeScriptVersion) {\n return undefined;\n }\n return `${prefix}${sanitizedTypeScriptVersion}`;\n};\n\nlet tscVersion;\nconst TS_PACKAGE_JSON = node_path.join(\"node_modules\", \"typescript\", \"package.json\");\nconst getTypeScriptUserAgentPair = async () => {\n if (tscVersion === null) {\n return undefined;\n }\n else if (typeof tscVersion === \"string\") {\n return [\"md/tsc\", tscVersion];\n }\n let isTypeScriptDetectionDisabled = false;\n try {\n isTypeScriptDetectionDisabled =\n utilConfigProvider.booleanSelector(process.env, \"AWS_SDK_JS_TYPESCRIPT_DETECTION_DISABLED\", utilConfigProvider.SelectorType.ENV) || false;\n }\n catch { }\n if (isTypeScriptDetectionDisabled) {\n tscVersion = null;\n return undefined;\n }\n const dirname = typeof __dirname !== \"undefined\" ? __dirname : undefined;\n const nodeModulesParentDirs = getNodeModulesParentDirs(dirname);\n let versionFromApp;\n for (const nodeModulesParentDir of nodeModulesParentDirs) {\n try {\n const appPackageJsonPath = node_path.join(nodeModulesParentDir, \"package.json\");\n const packageJson = await promises.readFile(appPackageJsonPath, \"utf-8\");\n const { dependencies, devDependencies } = JSON.parse(packageJson);\n const version = devDependencies?.typescript ?? dependencies?.typescript;\n if (typeof version !== \"string\") {\n continue;\n }\n versionFromApp = version;\n break;\n }\n catch {\n }\n }\n if (!versionFromApp) {\n tscVersion = null;\n return undefined;\n }\n let versionFromNodeModules;\n for (const nodeModulesParentDir of nodeModulesParentDirs) {\n try {\n const tsPackageJsonPath = node_path.join(nodeModulesParentDir, TS_PACKAGE_JSON);\n const packageJson = await promises.readFile(tsPackageJsonPath, \"utf-8\");\n const { version } = JSON.parse(packageJson);\n const sanitizedVersion = getSanitizedTypeScriptVersion(version);\n if (typeof sanitizedVersion !== \"string\") {\n continue;\n }\n versionFromNodeModules = sanitizedVersion;\n break;\n }\n catch {\n }\n }\n if (versionFromNodeModules) {\n tscVersion = versionFromNodeModules;\n return [\"md/tsc\", tscVersion];\n }\n const sanitizedVersion = getSanitizedDevTypeScriptVersion(versionFromApp);\n if (typeof sanitizedVersion !== \"string\") {\n tscVersion = null;\n return undefined;\n }\n tscVersion = `dev_${sanitizedVersion}`;\n return [\"md/tsc\", tscVersion];\n};\n\nconst crtAvailability = {\n isCrtAvailable: false,\n};\n\nconst isCrtAvailable = () => {\n if (crtAvailability.isCrtAvailable) {\n return [\"md/crt-avail\"];\n }\n return null;\n};\n\nconst createDefaultUserAgentProvider = ({ serviceId, clientVersion }) => {\n const runtimeUserAgentPair = getRuntimeUserAgentPair();\n return async (config) => {\n const sections = [\n [\"aws-sdk-js\", clientVersion],\n [\"ua\", \"2.1\"],\n [`os/${node_os.platform()}`, node_os.release()],\n [\"lang/js\"],\n runtimeUserAgentPair,\n ];\n const typescriptUserAgentPair = await getTypeScriptUserAgentPair();\n if (typescriptUserAgentPair) {\n sections.push(typescriptUserAgentPair);\n }\n const crtAvailable = isCrtAvailable();\n if (crtAvailable) {\n sections.push(crtAvailable);\n }\n if (serviceId) {\n sections.push([`api/${serviceId}`, clientVersion]);\n }\n if (node_process.env.AWS_EXECUTION_ENV) {\n sections.push([`exec-env/${node_process.env.AWS_EXECUTION_ENV}`]);\n }\n const appId = await config?.userAgentAppId?.();\n const resolvedUserAgent = appId ? [...sections, [`app/${appId}`]] : [...sections];\n return resolvedUserAgent;\n };\n};\nconst defaultUserAgent = createDefaultUserAgentProvider;\n\nconst UA_APP_ID_ENV_NAME = \"AWS_SDK_UA_APP_ID\";\nconst UA_APP_ID_INI_NAME = \"sdk_ua_app_id\";\nconst UA_APP_ID_INI_NAME_DEPRECATED = \"sdk-ua-app-id\";\nconst NODE_APP_ID_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => env[UA_APP_ID_ENV_NAME],\n configFileSelector: (profile) => profile[UA_APP_ID_INI_NAME] ?? profile[UA_APP_ID_INI_NAME_DEPRECATED],\n default: middlewareUserAgent.DEFAULT_UA_APP_ID,\n};\n\nexports.NODE_APP_ID_CONFIG_OPTIONS = NODE_APP_ID_CONFIG_OPTIONS;\nexports.UA_APP_ID_ENV_NAME = UA_APP_ID_ENV_NAME;\nexports.UA_APP_ID_INI_NAME = UA_APP_ID_INI_NAME;\nexports.createDefaultUserAgentProvider = createDefaultUserAgentProvider;\nexports.crtAvailability = crtAvailability;\nexports.defaultUserAgent = defaultUserAgent;\n",
|
|
35
|
+
"'use strict';\n\nvar utilBufferFrom = require('@smithy/util-buffer-from');\nvar utilUtf8 = require('@smithy/util-utf8');\nvar buffer = require('buffer');\nvar crypto = require('crypto');\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(utilUtf8.toUint8Array(castSourceData(toHash, encoding)));\n }\n digest() {\n return Promise.resolve(this.hash.digest());\n }\n reset() {\n this.hash = this.secret\n ? crypto.createHmac(this.algorithmIdentifier, castSourceData(this.secret))\n : crypto.createHash(this.algorithmIdentifier);\n }\n}\nfunction castSourceData(toCast, encoding) {\n if (buffer.Buffer.isBuffer(toCast)) {\n return toCast;\n }\n if (typeof toCast === \"string\") {\n return utilBufferFrom.fromString(toCast, encoding);\n }\n if (ArrayBuffer.isView(toCast)) {\n return utilBufferFrom.fromArrayBuffer(toCast.buffer, toCast.byteOffset, toCast.byteLength);\n }\n return utilBufferFrom.fromArrayBuffer(toCast);\n}\n\nexports.Hash = Hash;\n",
|
|
36
|
+
"'use strict';\n\nvar node_fs = require('node:fs');\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\nexports.calculateBodyLength = calculateBodyLength;\n",
|
|
37
|
+
"'use strict';\n\nvar configResolver = require('@smithy/config-resolver');\nvar nodeConfigProvider = require('@smithy/node-config-provider');\nvar propertyProvider = require('@smithy/property-provider');\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 = nodeConfigProvider.loadConfig(configResolver.NODE_REGION_CONFIG_OPTIONS), defaultsMode = nodeConfigProvider.loadConfig(NODE_DEFAULTS_MODE_CONFIG_OPTIONS), } = {}) => propertyProvider.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 { getInstanceMetadataEndpoint, httpRequest } = await import('@smithy/credential-provider-imds');\n const endpoint = await getInstanceMetadataEndpoint();\n return (await httpRequest({ ...endpoint, path: IMDS_REGION_PATH })).toString();\n }\n catch (e) {\n }\n }\n};\n\nexports.resolveDefaultsModeConfig = resolveDefaultsModeConfig;\n",
|
|
38
|
+
"'use strict';\n\nvar cbor = require('@smithy/core/cbor');\nvar schema = require('@smithy/core/schema');\nvar smithyClient = require('@smithy/smithy-client');\nvar protocols = require('@smithy/core/protocols');\nvar serde = require('@smithy/core/serde');\nvar utilBase64 = require('@smithy/util-base64');\nvar utilUtf8 = require('@smithy/util-utf8');\nvar xmlBuilder = require('@aws-sdk/xml-builder');\n\nclass ProtocolLib {\n queryCompat;\n errorRegistry;\n constructor(queryCompat = false) {\n this.queryCompat = queryCompat;\n }\n resolveRestContentType(defaultContentType, inputSchema) {\n const members = inputSchema.getMemberSchemas();\n const httpPayloadMember = Object.values(members).find((m) => {\n return !!m.getMergedTraits().httpPayload;\n });\n if (httpPayloadMember) {\n const mediaType = httpPayloadMember.getMergedTraits().mediaType;\n if (mediaType) {\n return mediaType;\n }\n else if (httpPayloadMember.isStringSchema()) {\n return \"text/plain\";\n }\n else if (httpPayloadMember.isBlobSchema()) {\n return \"application/octet-stream\";\n }\n else {\n return defaultContentType;\n }\n }\n else if (!inputSchema.isUnitSchema()) {\n const hasBody = Object.values(members).find((m) => {\n const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m.getMergedTraits();\n const noPrefixHeaders = httpPrefixHeaders === void 0;\n return !httpQuery && !httpQueryParams && !httpHeader && !httpLabel && noPrefixHeaders;\n });\n if (hasBody) {\n return defaultContentType;\n }\n }\n }\n async getErrorSchemaOrThrowBaseException(errorIdentifier, defaultNamespace, response, dataObject, metadata, getErrorSchema) {\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [, errorName] = errorIdentifier.split(\"#\");\n }\n const errorMetadata = {\n $metadata: metadata,\n $fault: response.statusCode < 500 ? \"client\" : \"server\",\n };\n if (!this.errorRegistry) {\n throw new Error(\"@aws-sdk/core/protocols - error handler not initialized.\");\n }\n try {\n const errorSchema = getErrorSchema?.(this.errorRegistry, errorName) ??\n this.errorRegistry.getSchema(errorIdentifier);\n return { errorSchema, errorMetadata };\n }\n catch (e) {\n dataObject.message = dataObject.message ?? dataObject.Message ?? \"UnknownError\";\n const synthetic = this.errorRegistry;\n const baseExceptionSchema = synthetic.getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = synthetic.getErrorCtor(baseExceptionSchema) ?? Error;\n throw this.decorateServiceException(Object.assign(new ErrorCtor({ name: errorName }), errorMetadata), dataObject);\n }\n const d = dataObject;\n const message = d?.message ?? d?.Message ?? d?.Error?.Message ?? d?.Error?.message;\n throw this.decorateServiceException(Object.assign(new Error(message), {\n name: errorName,\n }, errorMetadata), dataObject);\n }\n }\n compose(composite, errorIdentifier, defaultNamespace) {\n let namespace = defaultNamespace;\n if (errorIdentifier.includes(\"#\")) {\n [namespace] = errorIdentifier.split(\"#\");\n }\n const staticRegistry = schema.TypeRegistry.for(namespace);\n const defaultSyntheticRegistry = schema.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + defaultNamespace);\n composite.copyFrom(staticRegistry);\n composite.copyFrom(defaultSyntheticRegistry);\n this.errorRegistry = composite;\n }\n decorateServiceException(exception, additions = {}) {\n if (this.queryCompat) {\n const msg = exception.Message ?? additions.Message;\n const error = smithyClient.decorateServiceException(exception, additions);\n if (msg) {\n error.message = msg;\n }\n error.Error = {\n ...error.Error,\n Type: error.Error?.Type,\n Code: error.Error?.Code,\n Message: error.Error?.message ?? error.Error?.Message ?? msg,\n };\n const reqId = error.$metadata.requestId;\n if (reqId) {\n error.RequestId = reqId;\n }\n return error;\n }\n return smithyClient.decorateServiceException(exception, additions);\n }\n setQueryCompatError(output, response) {\n const queryErrorHeader = response.headers?.[\"x-amzn-query-error\"];\n if (output !== undefined && queryErrorHeader != null) {\n const [Code, Type] = queryErrorHeader.split(\";\");\n const entries = Object.entries(output);\n const Error = {\n Code,\n Type,\n };\n Object.assign(output, Error);\n for (const [k, v] of entries) {\n Error[k === \"message\" ? \"Message\" : k] = v;\n }\n delete Error.__type;\n output.Error = Error;\n }\n }\n queryCompatOutput(queryCompatErrorData, errorData) {\n if (queryCompatErrorData.Error) {\n errorData.Error = queryCompatErrorData.Error;\n }\n if (queryCompatErrorData.Type) {\n errorData.Type = queryCompatErrorData.Type;\n }\n if (queryCompatErrorData.Code) {\n errorData.Code = queryCompatErrorData.Code;\n }\n }\n findQueryCompatibleError(registry, errorName) {\n try {\n return registry.getSchema(errorName);\n }\n catch (e) {\n return registry.find((schema$1) => schema.NormalizedSchema.of(schema$1).getMergedTraits().awsQueryError?.[0] === errorName);\n }\n }\n}\n\nclass AwsSmithyRpcV2CborProtocol extends cbor.SmithyRpcV2CborProtocol {\n awsQueryCompatible;\n mixin;\n constructor({ defaultNamespace, errorTypeRegistries, awsQueryCompatible, }) {\n super({ defaultNamespace, errorTypeRegistries });\n this.awsQueryCompatible = !!awsQueryCompatible;\n this.mixin = new ProtocolLib(this.awsQueryCompatible);\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (this.awsQueryCompatible) {\n request.headers[\"x-amzn-query-mode\"] = \"true\";\n }\n return request;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n if (this.awsQueryCompatible) {\n this.mixin.setQueryCompatError(dataObject, response);\n }\n const errorName = (() => {\n const compatHeader = response.headers[\"x-amzn-query-error\"];\n if (compatHeader && this.awsQueryCompatible) {\n return compatHeader.split(\";\")[0];\n }\n return cbor.loadSmithyRpcV2CborErrorCode(response, dataObject) ?? \"Unknown\";\n })();\n this.mixin.compose(this.compositeErrorRegistry, errorName, this.options.defaultNamespace);\n const { errorSchema, errorMetadata } = await this.mixin.getErrorSchemaOrThrowBaseException(errorName, this.options.defaultNamespace, response, dataObject, metadata, this.awsQueryCompatible ? this.mixin.findQueryCompatibleError : undefined);\n const ns = schema.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"UnknownError\";\n const ErrorCtor = this.compositeErrorRegistry.getErrorCtor(errorSchema) ?? Error;\n const exception = new ErrorCtor(message);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n if (dataObject[name] != null) {\n output[name] = this.deserializer.readValue(member, dataObject[name]);\n }\n }\n if (this.awsQueryCompatible) {\n this.mixin.queryCompatOutput(dataObject, output);\n }\n throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {\n $fault: ns.getMergedTraits().error,\n message,\n }, output), dataObject);\n }\n}\n\nconst _toStr = (val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\" || typeof val === \"bigint\") {\n const warning = new Error(`Received number ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n if (typeof val === \"boolean\") {\n const warning = new Error(`Received boolean ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n return val;\n};\nconst _toBool = (val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"string\") {\n const lowercase = val.toLowerCase();\n if (val !== \"\" && lowercase !== \"false\" && lowercase !== \"true\") {\n const warning = new Error(`Received string \"${val}\" where a boolean was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n }\n return val !== \"\" && lowercase !== \"false\";\n }\n return val;\n};\nconst _toNum = (val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"string\") {\n const num = Number(val);\n if (num.toString() !== val) {\n const warning = new Error(`Received string \"${val}\" where a number was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return val;\n }\n return num;\n }\n return val;\n};\n\nclass SerdeContextConfig {\n serdeContext;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n }\n}\n\nclass UnionSerde {\n from;\n to;\n keys;\n constructor(from, to) {\n this.from = from;\n this.to = to;\n this.keys = new Set(Object.keys(this.from).filter((k) => k !== \"__type\"));\n }\n mark(key) {\n this.keys.delete(key);\n }\n hasUnknown() {\n return this.keys.size === 1 && Object.keys(this.to).length === 0;\n }\n writeUnknown() {\n if (this.hasUnknown()) {\n const k = this.keys.values().next().value;\n const v = this.from[k];\n this.to.$unknown = [k, v];\n }\n }\n}\n\nfunction jsonReviver(key, value, context) {\n if (context?.source) {\n const numericString = context.source;\n if (typeof value === \"number\") {\n if (value > Number.MAX_SAFE_INTEGER || value < Number.MIN_SAFE_INTEGER || numericString !== String(value)) {\n const isFractional = numericString.includes(\".\");\n if (isFractional) {\n return new serde.NumericValue(numericString, \"bigDecimal\");\n }\n else {\n return BigInt(numericString);\n }\n }\n }\n }\n return value;\n}\n\nconst collectBodyString = (streamBody, context) => smithyClient.collectBody(streamBody, context).then((body) => (context?.utf8Encoder ?? utilUtf8.toUtf8)(body));\n\nconst parseJsonBody = (streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n try {\n return JSON.parse(encoded);\n }\n catch (e) {\n if (e?.name === \"SyntaxError\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded,\n });\n }\n throw e;\n }\n }\n return {};\n});\nconst parseJsonErrorBody = async (errorBody, context) => {\n const value = await parseJsonBody(errorBody, context);\n value.message = value.message ?? value.Message;\n return value;\n};\nconst loadRestJsonErrorCode = (output, data) => {\n const findKey = (object, key) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase());\n const sanitizeErrorCode = (rawValue) => {\n let cleanValue = rawValue;\n if (typeof cleanValue === \"number\") {\n cleanValue = cleanValue.toString();\n }\n if (cleanValue.indexOf(\",\") >= 0) {\n cleanValue = cleanValue.split(\",\")[0];\n }\n if (cleanValue.indexOf(\":\") >= 0) {\n cleanValue = cleanValue.split(\":\")[0];\n }\n if (cleanValue.indexOf(\"#\") >= 0) {\n cleanValue = cleanValue.split(\"#\")[1];\n }\n return cleanValue;\n };\n const headerKey = findKey(output.headers, \"x-amzn-errortype\");\n if (headerKey !== undefined) {\n return sanitizeErrorCode(output.headers[headerKey]);\n }\n if (data && typeof data === \"object\") {\n const codeKey = findKey(data, \"code\");\n if (codeKey && data[codeKey] !== undefined) {\n return sanitizeErrorCode(data[codeKey]);\n }\n if (data[\"__type\"] !== undefined) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n }\n};\n\nclass JsonShapeDeserializer extends SerdeContextConfig {\n settings;\n constructor(settings) {\n super();\n this.settings = settings;\n }\n async read(schema, data) {\n return this._read(schema, typeof data === \"string\" ? JSON.parse(data, jsonReviver) : await parseJsonBody(data, this.serdeContext));\n }\n readObject(schema, data) {\n return this._read(schema, data);\n }\n _read(schema$1, value) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = schema.NormalizedSchema.of(schema$1);\n if (isObject) {\n if (ns.isStructSchema()) {\n const record = value;\n const union = ns.isUnionSchema();\n const out = {};\n let nameMap = void 0;\n const { jsonName } = this.settings;\n if (jsonName) {\n nameMap = {};\n }\n let unionSerde;\n if (union) {\n unionSerde = new UnionSerde(record, out);\n }\n for (const [memberName, memberSchema] of ns.structIterator()) {\n let fromKey = memberName;\n if (jsonName) {\n fromKey = memberSchema.getMergedTraits().jsonName ?? fromKey;\n nameMap[fromKey] = memberName;\n }\n if (union) {\n unionSerde.mark(fromKey);\n }\n if (record[fromKey] != null) {\n out[memberName] = this._read(memberSchema, record[fromKey]);\n }\n }\n if (union) {\n unionSerde.writeUnknown();\n }\n else if (typeof record.__type === \"string\") {\n for (const [k, v] of Object.entries(record)) {\n const t = jsonName ? nameMap[k] ?? k : k;\n if (!(t in out)) {\n out[t] = v;\n }\n }\n }\n return out;\n }\n if (Array.isArray(value) && ns.isListSchema()) {\n const listMember = ns.getValueSchema();\n const out = [];\n for (const item of value) {\n out.push(this._read(listMember, item));\n }\n return out;\n }\n if (ns.isMapSchema()) {\n const mapMember = ns.getValueSchema();\n const out = {};\n for (const [_k, _v] of Object.entries(value)) {\n out[_k] = this._read(mapMember, _v);\n }\n return out;\n }\n }\n if (ns.isBlobSchema() && typeof value === \"string\") {\n return utilBase64.fromBase64(value);\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (ns.isStringSchema() && typeof value === \"string\" && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return serde.LazyJsonString.from(value);\n }\n return value;\n }\n if (ns.isTimestampSchema() && value != null) {\n const format = protocols.determineTimestampFormat(ns, this.settings);\n switch (format) {\n case 5:\n return serde.parseRfc3339DateTimeWithOffset(value);\n case 6:\n return serde.parseRfc7231DateTime(value);\n case 7:\n return serde.parseEpochTimestamp(value);\n default:\n console.warn(\"Missing timestamp format, parsing value with Date constructor:\", value);\n return new Date(value);\n }\n }\n if (ns.isBigIntegerSchema() && (typeof value === \"number\" || typeof value === \"string\")) {\n return BigInt(value);\n }\n if (ns.isBigDecimalSchema() && value != undefined) {\n if (value instanceof serde.NumericValue) {\n return value;\n }\n const untyped = value;\n if (untyped.type === \"bigDecimal\" && \"string\" in untyped) {\n return new serde.NumericValue(untyped.string, untyped.type);\n }\n return new serde.NumericValue(String(value), \"bigDecimal\");\n }\n if (ns.isNumericSchema() && typeof value === \"string\") {\n switch (value) {\n case \"Infinity\":\n return Infinity;\n case \"-Infinity\":\n return -Infinity;\n case \"NaN\":\n return NaN;\n }\n return value;\n }\n if (ns.isDocumentSchema()) {\n if (isObject) {\n const out = Array.isArray(value) ? [] : {};\n for (const [k, v] of Object.entries(value)) {\n if (v instanceof serde.NumericValue) {\n out[k] = v;\n }\n else {\n out[k] = this._read(ns, v);\n }\n }\n return out;\n }\n else {\n return structuredClone(value);\n }\n }\n return value;\n }\n}\n\nconst NUMERIC_CONTROL_CHAR = String.fromCharCode(925);\nclass JsonReplacer {\n values = new Map();\n counter = 0;\n stage = 0;\n createReplacer() {\n if (this.stage === 1) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer already created.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 1;\n return (key, value) => {\n if (value instanceof serde.NumericValue) {\n const v = `${NUMERIC_CONTROL_CHAR + \"nv\" + this.counter++}_` + value.string;\n this.values.set(`\"${v}\"`, value.string);\n return v;\n }\n if (typeof value === \"bigint\") {\n const s = value.toString();\n const v = `${NUMERIC_CONTROL_CHAR + \"b\" + this.counter++}_` + s;\n this.values.set(`\"${v}\"`, s);\n return v;\n }\n return value;\n };\n }\n replaceInJson(json) {\n if (this.stage === 0) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer not created yet.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 2;\n if (this.counter === 0) {\n return json;\n }\n for (const [key, value] of this.values) {\n json = json.replace(key, value);\n }\n return json;\n }\n}\n\nclass JsonShapeSerializer extends SerdeContextConfig {\n settings;\n buffer;\n useReplacer = false;\n rootSchema;\n constructor(settings) {\n super();\n this.settings = settings;\n }\n write(schema$1, value) {\n this.rootSchema = schema.NormalizedSchema.of(schema$1);\n this.buffer = this._write(this.rootSchema, value);\n }\n writeDiscriminatedDocument(schema$1, value) {\n this.write(schema$1, value);\n if (typeof this.buffer === \"object\") {\n this.buffer.__type = schema.NormalizedSchema.of(schema$1).getName(true);\n }\n }\n flush() {\n const { rootSchema, useReplacer } = this;\n this.rootSchema = undefined;\n this.useReplacer = false;\n if (rootSchema?.isStructSchema() || rootSchema?.isDocumentSchema()) {\n if (!useReplacer) {\n return JSON.stringify(this.buffer);\n }\n const replacer = new JsonReplacer();\n return replacer.replaceInJson(JSON.stringify(this.buffer, replacer.createReplacer(), 0));\n }\n return this.buffer;\n }\n _write(schema$1, value, container) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = schema.NormalizedSchema.of(schema$1);\n if (isObject) {\n if (ns.isStructSchema()) {\n const record = value;\n const out = {};\n const { jsonName } = this.settings;\n let nameMap = void 0;\n if (jsonName) {\n nameMap = {};\n }\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const serializableValue = this._write(memberSchema, record[memberName], ns);\n if (serializableValue !== undefined) {\n let targetKey = memberName;\n if (jsonName) {\n targetKey = memberSchema.getMergedTraits().jsonName ?? memberName;\n nameMap[memberName] = targetKey;\n }\n out[targetKey] = serializableValue;\n }\n }\n if (ns.isUnionSchema() && Object.keys(out).length === 0) {\n const { $unknown } = record;\n if (Array.isArray($unknown)) {\n const [k, v] = $unknown;\n out[k] = this._write(15, v);\n }\n }\n else if (typeof record.__type === \"string\") {\n for (const [k, v] of Object.entries(record)) {\n const targetKey = jsonName ? nameMap[k] ?? k : k;\n if (!(targetKey in out)) {\n out[targetKey] = this._write(15, v);\n }\n }\n }\n return out;\n }\n if (Array.isArray(value) && ns.isListSchema()) {\n const listMember = ns.getValueSchema();\n const out = [];\n const sparse = !!ns.getMergedTraits().sparse;\n for (const item of value) {\n if (sparse || item != null) {\n out.push(this._write(listMember, item));\n }\n }\n return out;\n }\n if (ns.isMapSchema()) {\n const mapMember = ns.getValueSchema();\n const out = {};\n const sparse = !!ns.getMergedTraits().sparse;\n for (const [_k, _v] of Object.entries(value)) {\n if (sparse || _v != null) {\n out[_k] = this._write(mapMember, _v);\n }\n }\n return out;\n }\n if (value instanceof Uint8Array && (ns.isBlobSchema() || ns.isDocumentSchema())) {\n if (ns === this.rootSchema) {\n return value;\n }\n return (this.serdeContext?.base64Encoder ?? utilBase64.toBase64)(value);\n }\n if (value instanceof Date && (ns.isTimestampSchema() || ns.isDocumentSchema())) {\n const format = protocols.determineTimestampFormat(ns, this.settings);\n switch (format) {\n case 5:\n return value.toISOString().replace(\".000Z\", \"Z\");\n case 6:\n return serde.dateToUtcString(value);\n case 7:\n return value.getTime() / 1000;\n default:\n console.warn(\"Missing timestamp format, using epoch seconds\", value);\n return value.getTime() / 1000;\n }\n }\n if (value instanceof serde.NumericValue) {\n this.useReplacer = true;\n }\n }\n if (value === null && container?.isStructSchema()) {\n return void 0;\n }\n if (ns.isStringSchema()) {\n if (typeof value === \"undefined\" && ns.isIdempotencyToken()) {\n return serde.generateIdempotencyToken();\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (value != null && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return serde.LazyJsonString.from(value);\n }\n }\n return value;\n }\n if (typeof value === \"number\" && ns.isNumericSchema()) {\n if (Math.abs(value) === Infinity || isNaN(value)) {\n return String(value);\n }\n return value;\n }\n if (typeof value === \"string\" && ns.isBlobSchema()) {\n if (ns === this.rootSchema) {\n return value;\n }\n return (this.serdeContext?.base64Encoder ?? utilBase64.toBase64)(value);\n }\n if (typeof value === \"bigint\") {\n this.useReplacer = true;\n }\n if (ns.isDocumentSchema()) {\n if (isObject) {\n const out = Array.isArray(value) ? [] : {};\n for (const [k, v] of Object.entries(value)) {\n if (v instanceof serde.NumericValue) {\n this.useReplacer = true;\n out[k] = v;\n }\n else {\n out[k] = this._write(ns, v);\n }\n }\n return out;\n }\n else {\n return structuredClone(value);\n }\n }\n return value;\n }\n}\n\nclass JsonCodec extends SerdeContextConfig {\n settings;\n constructor(settings) {\n super();\n this.settings = settings;\n }\n createSerializer() {\n const serializer = new JsonShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new JsonShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n}\n\nclass AwsJsonRpcProtocol extends protocols.RpcProtocol {\n serializer;\n deserializer;\n serviceTarget;\n codec;\n mixin;\n awsQueryCompatible;\n constructor({ defaultNamespace, errorTypeRegistries, serviceTarget, awsQueryCompatible, jsonCodec, }) {\n super({\n defaultNamespace,\n errorTypeRegistries,\n });\n this.serviceTarget = serviceTarget;\n this.codec =\n jsonCodec ??\n new JsonCodec({\n timestampFormat: {\n useTrait: true,\n default: 7,\n },\n jsonName: false,\n });\n this.serializer = this.codec.createSerializer();\n this.deserializer = this.codec.createDeserializer();\n this.awsQueryCompatible = !!awsQueryCompatible;\n this.mixin = new ProtocolLib(this.awsQueryCompatible);\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n Object.assign(request.headers, {\n \"content-type\": `application/x-amz-json-${this.getJsonRpcVersion()}`,\n \"x-amz-target\": `${this.serviceTarget}.${operationSchema.name}`,\n });\n if (this.awsQueryCompatible) {\n request.headers[\"x-amzn-query-mode\"] = \"true\";\n }\n if (schema.deref(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"{}\";\n }\n return request;\n }\n getPayloadCodec() {\n return this.codec;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n if (this.awsQueryCompatible) {\n this.mixin.setQueryCompatError(dataObject, response);\n }\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n this.mixin.compose(this.compositeErrorRegistry, errorIdentifier, this.options.defaultNamespace);\n const { errorSchema, errorMetadata } = await this.mixin.getErrorSchemaOrThrowBaseException(errorIdentifier, this.options.defaultNamespace, response, dataObject, metadata, this.awsQueryCompatible ? this.mixin.findQueryCompatibleError : undefined);\n const ns = schema.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"UnknownError\";\n const ErrorCtor = this.compositeErrorRegistry.getErrorCtor(errorSchema) ?? Error;\n const exception = new ErrorCtor(message);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n if (dataObject[name] != null) {\n output[name] = this.codec.createDeserializer().readObject(member, dataObject[name]);\n }\n }\n if (this.awsQueryCompatible) {\n this.mixin.queryCompatOutput(dataObject, output);\n }\n throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {\n $fault: ns.getMergedTraits().error,\n message,\n }, output), dataObject);\n }\n}\n\nclass AwsJson1_0Protocol extends AwsJsonRpcProtocol {\n constructor({ defaultNamespace, errorTypeRegistries, serviceTarget, awsQueryCompatible, jsonCodec, }) {\n super({\n defaultNamespace,\n errorTypeRegistries,\n serviceTarget,\n awsQueryCompatible,\n jsonCodec,\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_0\";\n }\n getJsonRpcVersion() {\n return \"1.0\";\n }\n getDefaultContentType() {\n return \"application/x-amz-json-1.0\";\n }\n}\n\nclass AwsJson1_1Protocol extends AwsJsonRpcProtocol {\n constructor({ defaultNamespace, errorTypeRegistries, serviceTarget, awsQueryCompatible, jsonCodec, }) {\n super({\n defaultNamespace,\n errorTypeRegistries,\n serviceTarget,\n awsQueryCompatible,\n jsonCodec,\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_1\";\n }\n getJsonRpcVersion() {\n return \"1.1\";\n }\n getDefaultContentType() {\n return \"application/x-amz-json-1.1\";\n }\n}\n\nclass AwsRestJsonProtocol extends protocols.HttpBindingProtocol {\n serializer;\n deserializer;\n codec;\n mixin = new ProtocolLib();\n constructor({ defaultNamespace, errorTypeRegistries, }) {\n super({\n defaultNamespace,\n errorTypeRegistries,\n });\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: 7,\n },\n httpBindings: true,\n jsonName: true,\n };\n this.codec = new JsonCodec(settings);\n this.serializer = new protocols.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new protocols.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n }\n getShapeId() {\n return \"aws.protocols#restJson1\";\n }\n getPayloadCodec() {\n return this.codec;\n }\n setSerdeContext(serdeContext) {\n this.codec.setSerdeContext(serdeContext);\n super.setSerdeContext(serdeContext);\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const inputSchema = schema.NormalizedSchema.of(operationSchema.input);\n if (!request.headers[\"content-type\"]) {\n const contentType = this.mixin.resolveRestContentType(this.getDefaultContentType(), inputSchema);\n if (contentType) {\n request.headers[\"content-type\"] = contentType;\n }\n }\n if (request.body == null && request.headers[\"content-type\"] === this.getDefaultContentType()) {\n request.body = \"{}\";\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n const output = await super.deserializeResponse(operationSchema, context, response);\n const outputSchema = schema.NormalizedSchema.of(operationSchema.output);\n for (const [name, member] of outputSchema.structIterator()) {\n if (member.getMemberTraits().httpPayload && !(name in output)) {\n output[name] = null;\n }\n }\n return output;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n this.mixin.compose(this.compositeErrorRegistry, errorIdentifier, this.options.defaultNamespace);\n const { errorSchema, errorMetadata } = await this.mixin.getErrorSchemaOrThrowBaseException(errorIdentifier, this.options.defaultNamespace, response, dataObject, metadata);\n const ns = schema.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"UnknownError\";\n const ErrorCtor = this.compositeErrorRegistry.getErrorCtor(errorSchema) ?? Error;\n const exception = new ErrorCtor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().jsonName ?? name;\n output[name] = this.codec.createDeserializer().readObject(member, dataObject[target]);\n }\n throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {\n $fault: ns.getMergedTraits().error,\n message,\n }, output), dataObject);\n }\n getDefaultContentType() {\n return \"application/json\";\n }\n}\n\nconst awsExpectUnion = (value) => {\n if (value == null) {\n return undefined;\n }\n if (typeof value === \"object\" && \"__type\" in value) {\n delete value.__type;\n }\n return smithyClient.expectUnion(value);\n};\n\nclass XmlShapeDeserializer extends SerdeContextConfig {\n settings;\n stringDeserializer;\n constructor(settings) {\n super();\n this.settings = settings;\n this.stringDeserializer = new protocols.FromStringShapeDeserializer(settings);\n }\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n this.stringDeserializer.setSerdeContext(serdeContext);\n }\n read(schema$1, bytes, key) {\n const ns = schema.NormalizedSchema.of(schema$1);\n const memberSchemas = ns.getMemberSchemas();\n const isEventPayload = ns.isStructSchema() &&\n ns.isMemberSchema() &&\n !!Object.values(memberSchemas).find((memberNs) => {\n return !!memberNs.getMemberTraits().eventPayload;\n });\n if (isEventPayload) {\n const output = {};\n const memberName = Object.keys(memberSchemas)[0];\n const eventMemberSchema = memberSchemas[memberName];\n if (eventMemberSchema.isBlobSchema()) {\n output[memberName] = bytes;\n }\n else {\n output[memberName] = this.read(memberSchemas[memberName], bytes);\n }\n return output;\n }\n const xmlString = (this.serdeContext?.utf8Encoder ?? utilUtf8.toUtf8)(bytes);\n const parsedObject = this.parseXml(xmlString);\n return this.readSchema(schema$1, key ? parsedObject[key] : parsedObject);\n }\n readSchema(_schema, value) {\n const ns = schema.NormalizedSchema.of(_schema);\n if (ns.isUnitSchema()) {\n return;\n }\n const traits = ns.getMergedTraits();\n if (ns.isListSchema() && !Array.isArray(value)) {\n return this.readSchema(ns, [value]);\n }\n if (value == null) {\n return value;\n }\n if (typeof value === \"object\") {\n const flat = !!traits.xmlFlattened;\n if (ns.isListSchema()) {\n const listValue = ns.getValueSchema();\n const buffer = [];\n const sourceKey = listValue.getMergedTraits().xmlName ?? \"member\";\n const source = flat ? value : (value[0] ?? value)[sourceKey];\n if (source == null) {\n return buffer;\n }\n const sourceArray = Array.isArray(source) ? source : [source];\n for (const v of sourceArray) {\n buffer.push(this.readSchema(listValue, v));\n }\n return buffer;\n }\n const buffer = {};\n if (ns.isMapSchema()) {\n const keyNs = ns.getKeySchema();\n const memberNs = ns.getValueSchema();\n let entries;\n if (flat) {\n entries = Array.isArray(value) ? value : [value];\n }\n else {\n entries = Array.isArray(value.entry) ? value.entry : [value.entry];\n }\n const keyProperty = keyNs.getMergedTraits().xmlName ?? \"key\";\n const valueProperty = memberNs.getMergedTraits().xmlName ?? \"value\";\n for (const entry of entries) {\n const key = entry[keyProperty];\n const value = entry[valueProperty];\n buffer[key] = this.readSchema(memberNs, value);\n }\n return buffer;\n }\n if (ns.isStructSchema()) {\n const union = ns.isUnionSchema();\n let unionSerde;\n if (union) {\n unionSerde = new UnionSerde(value, buffer);\n }\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const memberTraits = memberSchema.getMergedTraits();\n const xmlObjectKey = !memberTraits.httpPayload\n ? memberSchema.getMemberTraits().xmlName ?? memberName\n : memberTraits.xmlName ?? memberSchema.getName();\n if (union) {\n unionSerde.mark(xmlObjectKey);\n }\n if (value[xmlObjectKey] != null) {\n buffer[memberName] = this.readSchema(memberSchema, value[xmlObjectKey]);\n }\n }\n if (union) {\n unionSerde.writeUnknown();\n }\n return buffer;\n }\n if (ns.isDocumentSchema()) {\n return value;\n }\n throw new Error(`@aws-sdk/core/protocols - xml deserializer unhandled schema type for ${ns.getName(true)}`);\n }\n if (ns.isListSchema()) {\n return [];\n }\n if (ns.isMapSchema() || ns.isStructSchema()) {\n return {};\n }\n return this.stringDeserializer.read(ns, value);\n }\n parseXml(xml) {\n if (xml.length) {\n let parsedObj;\n try {\n parsedObj = xmlBuilder.parseXML(xml);\n }\n catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: xml,\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return smithyClient.getValueFromTextNode(parsedObjToReturn);\n }\n return {};\n }\n}\n\nclass QueryShapeSerializer extends SerdeContextConfig {\n settings;\n buffer;\n constructor(settings) {\n super();\n this.settings = settings;\n }\n write(schema$1, value, prefix = \"\") {\n if (this.buffer === undefined) {\n this.buffer = \"\";\n }\n const ns = schema.NormalizedSchema.of(schema$1);\n if (prefix && !prefix.endsWith(\".\")) {\n prefix += \".\";\n }\n if (ns.isBlobSchema()) {\n if (typeof value === \"string\" || value instanceof Uint8Array) {\n this.writeKey(prefix);\n this.writeValue((this.serdeContext?.base64Encoder ?? utilBase64.toBase64)(value));\n }\n }\n else if (ns.isBooleanSchema() || ns.isNumericSchema() || ns.isStringSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n else if (ns.isIdempotencyToken()) {\n this.writeKey(prefix);\n this.writeValue(serde.generateIdempotencyToken());\n }\n }\n else if (ns.isBigIntegerSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n }\n else if (ns.isBigDecimalSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(value instanceof serde.NumericValue ? value.string : String(value));\n }\n }\n else if (ns.isTimestampSchema()) {\n if (value instanceof Date) {\n this.writeKey(prefix);\n const format = protocols.determineTimestampFormat(ns, this.settings);\n switch (format) {\n case 5:\n this.writeValue(value.toISOString().replace(\".000Z\", \"Z\"));\n break;\n case 6:\n this.writeValue(smithyClient.dateToUtcString(value));\n break;\n case 7:\n this.writeValue(String(value.getTime() / 1000));\n break;\n }\n }\n }\n else if (ns.isDocumentSchema()) {\n if (Array.isArray(value)) {\n this.write(64 | 15, value, prefix);\n }\n else if (value instanceof Date) {\n this.write(4, value, prefix);\n }\n else if (value instanceof Uint8Array) {\n this.write(21, value, prefix);\n }\n else if (value && typeof value === \"object\") {\n this.write(128 | 15, value, prefix);\n }\n else {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n }\n else if (ns.isListSchema()) {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n if (this.settings.serializeEmptyLists) {\n this.writeKey(prefix);\n this.writeValue(\"\");\n }\n }\n else {\n const member = ns.getValueSchema();\n const flat = this.settings.flattenLists || ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const item of value) {\n if (item == null) {\n continue;\n }\n const traits = member.getMergedTraits();\n const suffix = this.getKey(\"member\", traits.xmlName, traits.ec2QueryName);\n const key = flat ? `${prefix}${i}` : `${prefix}${suffix}.${i}`;\n this.write(member, item, key);\n ++i;\n }\n }\n }\n }\n else if (ns.isMapSchema()) {\n if (value && typeof value === \"object\") {\n const keySchema = ns.getKeySchema();\n const memberSchema = ns.getValueSchema();\n const flat = ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const [k, v] of Object.entries(value)) {\n if (v == null) {\n continue;\n }\n const keyTraits = keySchema.getMergedTraits();\n const keySuffix = this.getKey(\"key\", keyTraits.xmlName, keyTraits.ec2QueryName);\n const key = flat ? `${prefix}${i}.${keySuffix}` : `${prefix}entry.${i}.${keySuffix}`;\n const valTraits = memberSchema.getMergedTraits();\n const valueSuffix = this.getKey(\"value\", valTraits.xmlName, valTraits.ec2QueryName);\n const valueKey = flat ? `${prefix}${i}.${valueSuffix}` : `${prefix}entry.${i}.${valueSuffix}`;\n this.write(keySchema, k, key);\n this.write(memberSchema, v, valueKey);\n ++i;\n }\n }\n }\n else if (ns.isStructSchema()) {\n if (value && typeof value === \"object\") {\n let didWriteMember = false;\n for (const [memberName, member] of ns.structIterator()) {\n if (value[memberName] == null && !member.isIdempotencyToken()) {\n continue;\n }\n const traits = member.getMergedTraits();\n const suffix = this.getKey(memberName, traits.xmlName, traits.ec2QueryName, \"struct\");\n const key = `${prefix}${suffix}`;\n this.write(member, value[memberName], key);\n didWriteMember = true;\n }\n if (!didWriteMember && ns.isUnionSchema()) {\n const { $unknown } = value;\n if (Array.isArray($unknown)) {\n const [k, v] = $unknown;\n const key = `${prefix}${k}`;\n this.write(15, v, key);\n }\n }\n }\n }\n else if (ns.isUnitSchema()) ;\n else {\n throw new Error(`@aws-sdk/core/protocols - QuerySerializer unrecognized schema type ${ns.getName(true)}`);\n }\n }\n flush() {\n if (this.buffer === undefined) {\n throw new Error(\"@aws-sdk/core/protocols - QuerySerializer cannot flush with nothing written to buffer.\");\n }\n const str = this.buffer;\n delete this.buffer;\n return str;\n }\n getKey(memberName, xmlName, ec2QueryName, keySource) {\n const { ec2, capitalizeKeys } = this.settings;\n if (ec2 && ec2QueryName) {\n return ec2QueryName;\n }\n const key = xmlName ?? memberName;\n if (capitalizeKeys && keySource === \"struct\") {\n return key[0].toUpperCase() + key.slice(1);\n }\n return key;\n }\n writeKey(key) {\n if (key.endsWith(\".\")) {\n key = key.slice(0, key.length - 1);\n }\n this.buffer += `&${protocols.extendedEncodeURIComponent(key)}=`;\n }\n writeValue(value) {\n this.buffer += protocols.extendedEncodeURIComponent(value);\n }\n}\n\nclass AwsQueryProtocol extends protocols.RpcProtocol {\n options;\n serializer;\n deserializer;\n mixin = new ProtocolLib();\n constructor(options) {\n super({\n defaultNamespace: options.defaultNamespace,\n errorTypeRegistries: options.errorTypeRegistries,\n });\n this.options = options;\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: 5,\n },\n httpBindings: false,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace,\n serializeEmptyLists: true,\n };\n this.serializer = new QueryShapeSerializer(settings);\n this.deserializer = new XmlShapeDeserializer(settings);\n }\n getShapeId() {\n return \"aws.protocols#awsQuery\";\n }\n setSerdeContext(serdeContext) {\n this.serializer.setSerdeContext(serdeContext);\n this.deserializer.setSerdeContext(serdeContext);\n }\n getPayloadCodec() {\n throw new Error(\"AWSQuery protocol has no payload codec.\");\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n Object.assign(request.headers, {\n \"content-type\": `application/x-www-form-urlencoded`,\n });\n if (schema.deref(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"\";\n }\n const action = operationSchema.name.split(\"#\")[1] ?? operationSchema.name;\n request.body = `Action=${action}&Version=${this.options.version}` + request.body;\n if (request.body.endsWith(\"&\")) {\n request.body = request.body.slice(-1);\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n const deserializer = this.deserializer;\n const ns = schema.NormalizedSchema.of(operationSchema.output);\n const dataObject = {};\n if (response.statusCode >= 300) {\n const bytes = await protocols.collectBody(response.body, context);\n if (bytes.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(15, bytes));\n }\n await this.handleError(operationSchema, context, response, dataObject, this.deserializeMetadata(response));\n }\n for (const header in response.headers) {\n const value = response.headers[header];\n delete response.headers[header];\n response.headers[header.toLowerCase()] = value;\n }\n const shortName = operationSchema.name.split(\"#\")[1] ?? operationSchema.name;\n const awsQueryResultKey = ns.isStructSchema() && this.useNestedResult() ? shortName + \"Result\" : undefined;\n const bytes = await protocols.collectBody(response.body, context);\n if (bytes.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(ns, bytes, awsQueryResultKey));\n }\n const output = {\n $metadata: this.deserializeMetadata(response),\n ...dataObject,\n };\n return output;\n }\n useNestedResult() {\n return true;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = this.loadQueryErrorCode(response, dataObject) ?? \"Unknown\";\n this.mixin.compose(this.compositeErrorRegistry, errorIdentifier, this.options.defaultNamespace);\n const errorData = this.loadQueryError(dataObject) ?? {};\n const message = this.loadQueryErrorMessage(dataObject);\n errorData.message = message;\n errorData.Error = {\n Type: errorData.Type,\n Code: errorData.Code,\n Message: message,\n };\n const { errorSchema, errorMetadata } = await this.mixin.getErrorSchemaOrThrowBaseException(errorIdentifier, this.options.defaultNamespace, response, errorData, metadata, this.mixin.findQueryCompatibleError);\n const ns = schema.NormalizedSchema.of(errorSchema);\n const ErrorCtor = this.compositeErrorRegistry.getErrorCtor(errorSchema) ?? Error;\n const exception = new ErrorCtor(message);\n const output = {\n Type: errorData.Error.Type,\n Code: errorData.Error.Code,\n Error: errorData.Error,\n };\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = errorData[target] ?? dataObject[target];\n output[name] = this.deserializer.readSchema(member, value);\n }\n throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {\n $fault: ns.getMergedTraits().error,\n message,\n }, output), dataObject);\n }\n loadQueryErrorCode(output, data) {\n const code = (data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error)?.Code;\n if (code !== undefined) {\n return code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n }\n loadQueryError(data) {\n return data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error;\n }\n loadQueryErrorMessage(data) {\n const errorData = this.loadQueryError(data);\n return errorData?.message ?? errorData?.Message ?? data.message ?? data.Message ?? \"Unknown\";\n }\n getDefaultContentType() {\n return \"application/x-www-form-urlencoded\";\n }\n}\n\nclass AwsEc2QueryProtocol extends AwsQueryProtocol {\n options;\n constructor(options) {\n super(options);\n this.options = options;\n const ec2Settings = {\n capitalizeKeys: true,\n flattenLists: true,\n serializeEmptyLists: false,\n ec2: true,\n };\n Object.assign(this.serializer.settings, ec2Settings);\n }\n getShapeId() {\n return \"aws.protocols#ec2Query\";\n }\n useNestedResult() {\n return false;\n }\n}\n\nconst parseXmlBody = (streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n let parsedObj;\n try {\n parsedObj = xmlBuilder.parseXML(encoded);\n }\n catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded,\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return smithyClient.getValueFromTextNode(parsedObjToReturn);\n }\n return {};\n});\nconst parseXmlErrorBody = async (errorBody, context) => {\n const value = await parseXmlBody(errorBody, context);\n if (value.Error) {\n value.Error.message = value.Error.message ?? value.Error.Message;\n }\n return value;\n};\nconst loadRestXmlErrorCode = (output, data) => {\n if (data?.Error?.Code !== undefined) {\n return data.Error.Code;\n }\n if (data?.Code !== undefined) {\n return data.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n};\n\nclass XmlShapeSerializer extends SerdeContextConfig {\n settings;\n stringBuffer;\n byteBuffer;\n buffer;\n constructor(settings) {\n super();\n this.settings = settings;\n }\n write(schema$1, value) {\n const ns = schema.NormalizedSchema.of(schema$1);\n if (ns.isStringSchema() && typeof value === \"string\") {\n this.stringBuffer = value;\n }\n else if (ns.isBlobSchema()) {\n this.byteBuffer =\n \"byteLength\" in value\n ? value\n : (this.serdeContext?.base64Decoder ?? utilBase64.fromBase64)(value);\n }\n else {\n this.buffer = this.writeStruct(ns, value, undefined);\n const traits = ns.getMergedTraits();\n if (traits.httpPayload && !traits.xmlName) {\n this.buffer.withName(ns.getName());\n }\n }\n }\n flush() {\n if (this.byteBuffer !== undefined) {\n const bytes = this.byteBuffer;\n delete this.byteBuffer;\n return bytes;\n }\n if (this.stringBuffer !== undefined) {\n const str = this.stringBuffer;\n delete this.stringBuffer;\n return str;\n }\n const buffer = this.buffer;\n if (this.settings.xmlNamespace) {\n if (!buffer?.attributes?.[\"xmlns\"]) {\n buffer.addAttribute(\"xmlns\", this.settings.xmlNamespace);\n }\n }\n delete this.buffer;\n return buffer.toString();\n }\n writeStruct(ns, value, parentXmlns) {\n const traits = ns.getMergedTraits();\n const name = ns.isMemberSchema() && !traits.httpPayload\n ? ns.getMemberTraits().xmlName ?? ns.getMemberName()\n : traits.xmlName ?? ns.getName();\n if (!name || !ns.isStructSchema()) {\n throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write struct with empty name or non-struct, schema=${ns.getName(true)}.`);\n }\n const structXmlNode = xmlBuilder.XmlNode.of(name);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const val = value[memberName];\n if (val != null || memberSchema.isIdempotencyToken()) {\n if (memberSchema.getMergedTraits().xmlAttribute) {\n structXmlNode.addAttribute(memberSchema.getMergedTraits().xmlName ?? memberName, this.writeSimple(memberSchema, val));\n continue;\n }\n if (memberSchema.isListSchema()) {\n this.writeList(memberSchema, val, structXmlNode, xmlns);\n }\n else if (memberSchema.isMapSchema()) {\n this.writeMap(memberSchema, val, structXmlNode, xmlns);\n }\n else if (memberSchema.isStructSchema()) {\n structXmlNode.addChildNode(this.writeStruct(memberSchema, val, xmlns));\n }\n else {\n const memberNode = xmlBuilder.XmlNode.of(memberSchema.getMergedTraits().xmlName ?? memberSchema.getMemberName());\n this.writeSimpleInto(memberSchema, val, memberNode, xmlns);\n structXmlNode.addChildNode(memberNode);\n }\n }\n }\n const { $unknown } = value;\n if ($unknown && ns.isUnionSchema() && Array.isArray($unknown) && Object.keys(value).length === 1) {\n const [k, v] = $unknown;\n const node = xmlBuilder.XmlNode.of(k);\n if (typeof v !== \"string\") {\n if (value instanceof xmlBuilder.XmlNode || value instanceof xmlBuilder.XmlText) {\n structXmlNode.addChildNode(value);\n }\n else {\n throw new Error(`@aws-sdk - $unknown union member in XML requires ` +\n `value of type string, @aws-sdk/xml-builder::XmlNode or XmlText.`);\n }\n }\n this.writeSimpleInto(0, v, node, xmlns);\n structXmlNode.addChildNode(node);\n }\n if (xmlns) {\n structXmlNode.addAttribute(xmlnsAttr, xmlns);\n }\n return structXmlNode;\n }\n writeList(listMember, array, container, parentXmlns) {\n if (!listMember.isMemberSchema()) {\n throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write non-member list: ${listMember.getName(true)}`);\n }\n const listTraits = listMember.getMergedTraits();\n const listValueSchema = listMember.getValueSchema();\n const listValueTraits = listValueSchema.getMergedTraits();\n const sparse = !!listValueTraits.sparse;\n const flat = !!listTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(listMember, parentXmlns);\n const writeItem = (container, value) => {\n if (listValueSchema.isListSchema()) {\n this.writeList(listValueSchema, Array.isArray(value) ? value : [value], container, xmlns);\n }\n else if (listValueSchema.isMapSchema()) {\n this.writeMap(listValueSchema, value, container, xmlns);\n }\n else if (listValueSchema.isStructSchema()) {\n const struct = this.writeStruct(listValueSchema, value, xmlns);\n container.addChildNode(struct.withName(flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\"));\n }\n else {\n const listItemNode = xmlBuilder.XmlNode.of(flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\");\n this.writeSimpleInto(listValueSchema, value, listItemNode, xmlns);\n container.addChildNode(listItemNode);\n }\n };\n if (flat) {\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(container, value);\n }\n }\n }\n else {\n const listNode = xmlBuilder.XmlNode.of(listTraits.xmlName ?? listMember.getMemberName());\n if (xmlns) {\n listNode.addAttribute(xmlnsAttr, xmlns);\n }\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(listNode, value);\n }\n }\n container.addChildNode(listNode);\n }\n }\n writeMap(mapMember, map, container, parentXmlns, containerIsMap = false) {\n if (!mapMember.isMemberSchema()) {\n throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write non-member map: ${mapMember.getName(true)}`);\n }\n const mapTraits = mapMember.getMergedTraits();\n const mapKeySchema = mapMember.getKeySchema();\n const mapKeyTraits = mapKeySchema.getMergedTraits();\n const keyTag = mapKeyTraits.xmlName ?? \"key\";\n const mapValueSchema = mapMember.getValueSchema();\n const mapValueTraits = mapValueSchema.getMergedTraits();\n const valueTag = mapValueTraits.xmlName ?? \"value\";\n const sparse = !!mapValueTraits.sparse;\n const flat = !!mapTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(mapMember, parentXmlns);\n const addKeyValue = (entry, key, val) => {\n const keyNode = xmlBuilder.XmlNode.of(keyTag, key);\n const [keyXmlnsAttr, keyXmlns] = this.getXmlnsAttribute(mapKeySchema, xmlns);\n if (keyXmlns) {\n keyNode.addAttribute(keyXmlnsAttr, keyXmlns);\n }\n entry.addChildNode(keyNode);\n let valueNode = xmlBuilder.XmlNode.of(valueTag);\n if (mapValueSchema.isListSchema()) {\n this.writeList(mapValueSchema, val, valueNode, xmlns);\n }\n else if (mapValueSchema.isMapSchema()) {\n this.writeMap(mapValueSchema, val, valueNode, xmlns, true);\n }\n else if (mapValueSchema.isStructSchema()) {\n valueNode = this.writeStruct(mapValueSchema, val, xmlns);\n }\n else {\n this.writeSimpleInto(mapValueSchema, val, valueNode, xmlns);\n }\n entry.addChildNode(valueNode);\n };\n if (flat) {\n for (const [key, val] of Object.entries(map)) {\n if (sparse || val != null) {\n const entry = xmlBuilder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n addKeyValue(entry, key, val);\n container.addChildNode(entry);\n }\n }\n }\n else {\n let mapNode;\n if (!containerIsMap) {\n mapNode = xmlBuilder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n if (xmlns) {\n mapNode.addAttribute(xmlnsAttr, xmlns);\n }\n container.addChildNode(mapNode);\n }\n for (const [key, val] of Object.entries(map)) {\n if (sparse || val != null) {\n const entry = xmlBuilder.XmlNode.of(\"entry\");\n addKeyValue(entry, key, val);\n (containerIsMap ? container : mapNode).addChildNode(entry);\n }\n }\n }\n }\n writeSimple(_schema, value) {\n if (null === value) {\n throw new Error(\"@aws-sdk/core/protocols - (XML serializer) cannot write null value.\");\n }\n const ns = schema.NormalizedSchema.of(_schema);\n let nodeContents = null;\n if (value && typeof value === \"object\") {\n if (ns.isBlobSchema()) {\n nodeContents = (this.serdeContext?.base64Encoder ?? utilBase64.toBase64)(value);\n }\n else if (ns.isTimestampSchema() && value instanceof Date) {\n const format = protocols.determineTimestampFormat(ns, this.settings);\n switch (format) {\n case 5:\n nodeContents = value.toISOString().replace(\".000Z\", \"Z\");\n break;\n case 6:\n nodeContents = smithyClient.dateToUtcString(value);\n break;\n case 7:\n nodeContents = String(value.getTime() / 1000);\n break;\n default:\n console.warn(\"Missing timestamp format, using http date\", value);\n nodeContents = smithyClient.dateToUtcString(value);\n break;\n }\n }\n else if (ns.isBigDecimalSchema() && value) {\n if (value instanceof serde.NumericValue) {\n return value.string;\n }\n return String(value);\n }\n else if (ns.isMapSchema() || ns.isListSchema()) {\n throw new Error(\"@aws-sdk/core/protocols - xml serializer, cannot call _write() on List/Map schema, call writeList or writeMap() instead.\");\n }\n else {\n throw new Error(`@aws-sdk/core/protocols - xml serializer, unhandled schema type for object value and schema: ${ns.getName(true)}`);\n }\n }\n if (ns.isBooleanSchema() || ns.isNumericSchema() || ns.isBigIntegerSchema() || ns.isBigDecimalSchema()) {\n nodeContents = String(value);\n }\n if (ns.isStringSchema()) {\n if (value === undefined && ns.isIdempotencyToken()) {\n nodeContents = serde.generateIdempotencyToken();\n }\n else {\n nodeContents = String(value);\n }\n }\n if (nodeContents === null) {\n throw new Error(`Unhandled schema-value pair ${ns.getName(true)}=${value}`);\n }\n return nodeContents;\n }\n writeSimpleInto(_schema, value, into, parentXmlns) {\n const nodeContents = this.writeSimple(_schema, value);\n const ns = schema.NormalizedSchema.of(_schema);\n const content = new xmlBuilder.XmlText(nodeContents);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n if (xmlns) {\n into.addAttribute(xmlnsAttr, xmlns);\n }\n into.addChildNode(content);\n }\n getXmlnsAttribute(ns, parentXmlns) {\n const traits = ns.getMergedTraits();\n const [prefix, xmlns] = traits.xmlNamespace ?? [];\n if (xmlns && xmlns !== parentXmlns) {\n return [prefix ? `xmlns:${prefix}` : \"xmlns\", xmlns];\n }\n return [void 0, void 0];\n }\n}\n\nclass XmlCodec extends SerdeContextConfig {\n settings;\n constructor(settings) {\n super();\n this.settings = settings;\n }\n createSerializer() {\n const serializer = new XmlShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new XmlShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n}\n\nclass AwsRestXmlProtocol extends protocols.HttpBindingProtocol {\n codec;\n serializer;\n deserializer;\n mixin = new ProtocolLib();\n constructor(options) {\n super(options);\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: 5,\n },\n httpBindings: true,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace,\n };\n this.codec = new XmlCodec(settings);\n this.serializer = new protocols.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new protocols.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n this.compositeErrorRegistry;\n }\n getPayloadCodec() {\n return this.codec;\n }\n getShapeId() {\n return \"aws.protocols#restXml\";\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const inputSchema = schema.NormalizedSchema.of(operationSchema.input);\n if (!request.headers[\"content-type\"]) {\n const contentType = this.mixin.resolveRestContentType(this.getDefaultContentType(), inputSchema);\n if (contentType) {\n request.headers[\"content-type\"] = contentType;\n }\n }\n if (typeof request.body === \"string\" &&\n request.headers[\"content-type\"] === this.getDefaultContentType() &&\n !request.body.startsWith(\"<?xml \") &&\n !this.hasUnstructuredPayloadBinding(inputSchema)) {\n request.body = '<?xml version=\"1.0\" encoding=\"UTF-8\"?>' + request.body;\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n return super.deserializeResponse(operationSchema, context, response);\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestXmlErrorCode(response, dataObject) ?? \"Unknown\";\n this.mixin.compose(this.compositeErrorRegistry, errorIdentifier, this.options.defaultNamespace);\n if (dataObject.Error && typeof dataObject.Error === \"object\") {\n for (const key of Object.keys(dataObject.Error)) {\n dataObject[key] = dataObject.Error[key];\n if (key.toLowerCase() === \"message\") {\n dataObject.message = dataObject.Error[key];\n }\n }\n }\n if (dataObject.RequestId && !metadata.requestId) {\n metadata.requestId = dataObject.RequestId;\n }\n const { errorSchema, errorMetadata } = await this.mixin.getErrorSchemaOrThrowBaseException(errorIdentifier, this.options.defaultNamespace, response, dataObject, metadata);\n const ns = schema.NormalizedSchema.of(errorSchema);\n const message = dataObject.Error?.message ??\n dataObject.Error?.Message ??\n dataObject.message ??\n dataObject.Message ??\n \"UnknownError\";\n const ErrorCtor = this.compositeErrorRegistry.getErrorCtor(errorSchema) ?? Error;\n const exception = new ErrorCtor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = dataObject.Error?.[target] ?? dataObject[target];\n output[name] = this.codec.createDeserializer().readSchema(member, value);\n }\n throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {\n $fault: ns.getMergedTraits().error,\n message,\n }, output), dataObject);\n }\n getDefaultContentType() {\n return \"application/xml\";\n }\n hasUnstructuredPayloadBinding(ns) {\n for (const [, member] of ns.structIterator()) {\n if (member.getMergedTraits().httpPayload) {\n return !(member.isStructSchema() || member.isMapSchema() || member.isListSchema());\n }\n }\n return false;\n }\n}\n\nexports.AwsEc2QueryProtocol = AwsEc2QueryProtocol;\nexports.AwsJson1_0Protocol = AwsJson1_0Protocol;\nexports.AwsJson1_1Protocol = AwsJson1_1Protocol;\nexports.AwsJsonRpcProtocol = AwsJsonRpcProtocol;\nexports.AwsQueryProtocol = AwsQueryProtocol;\nexports.AwsRestJsonProtocol = AwsRestJsonProtocol;\nexports.AwsRestXmlProtocol = AwsRestXmlProtocol;\nexports.AwsSmithyRpcV2CborProtocol = AwsSmithyRpcV2CborProtocol;\nexports.JsonCodec = JsonCodec;\nexports.JsonShapeDeserializer = JsonShapeDeserializer;\nexports.JsonShapeSerializer = JsonShapeSerializer;\nexports.QueryShapeSerializer = QueryShapeSerializer;\nexports.XmlCodec = XmlCodec;\nexports.XmlShapeDeserializer = XmlShapeDeserializer;\nexports.XmlShapeSerializer = XmlShapeSerializer;\nexports._toBool = _toBool;\nexports._toNum = _toNum;\nexports._toStr = _toStr;\nexports.awsExpectUnion = awsExpectUnion;\nexports.loadRestJsonErrorCode = loadRestJsonErrorCode;\nexports.loadRestXmlErrorCode = loadRestXmlErrorCode;\nexports.parseJsonBody = parseJsonBody;\nexports.parseJsonErrorBody = parseJsonErrorBody;\nexports.parseXmlBody = parseXmlBody;\nexports.parseXmlErrorBody = parseXmlErrorBody;\n"
|
|
39
|
+
],
|
|
40
|
+
"mappings": "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YAAa,oBACd,EACA,aAAc,CACb,YAAa,gBACd,EACA,aAAc,CACb,YAAa,gBACd,EACA,YAAa,CACZ,YAAa,kBACd,EACA,YAAa,CACZ,YAAa,iBACd,EACA,YAAa,CACZ,YAAa,gBACd,EACA,eAAgB,CACf,YAAa,mBACd,EACA,eAAgB,CACf,YAAa,mBACd,EACA,aAAc,CACb,YAAa,uBACd,EACA,eAAgB,CACf,YAAa,kBACd,EACA,YAAa,CACZ,YAAa,2BACd,EACA,YAAa,CACZ,YAAa,uBACd,EACA,YAAa,CACZ,YAAa,gBACd,EACA,YAAa,CACZ,YAAa,yBACd,EACA,YAAa,CACZ,YAAa,kBACd,CACD,CACD,EACA,CACC,GAAI,SACJ,QAAS,CACR,UAAW,mBACX,mBAAoB,+BACpB,qBAAsB,iBACtB,KAAM,SACN,kBAAmB,GACnB,aAAc,EACf,EACA,YAAa,qBACb,QAAS,CACR,gBAAiB,CAChB,YAAa,sBACd,EACA,aAAc,CACb,YAAa,iBACd,EACA,iBAAkB,CACjB,YAAa,iBACd,CACD,CACD,EACA,CACC,GAAI,WACJ,QAAS,CACR,UAAW,eACX,mBAAoB,2BACpB,qBAAsB,iBACtB,KAAM,WACN,kBAAmB,GACnB,aAAc,EACf,EACA,YAAa,8BACb,QAAS,CACR,iBAAkB,CACjB,YAAa,wCACd,CACD,CACD,EACA,CACC,GAAI,UACJ,QAAS,CACR,UAAW,aACX,mBAAoB,iBACpB,qBAAsB,gBACtB,KAAM,UACN,kBAAmB,GACnB,aAAc,EACf,EACA,YAAa,2BACb,QAAS,CACR,iBAAkB,CACjB,YAAa,uBACd,EACA,gBAAiB,CAChB,YAAa,aACd,EACA,gBAAiB,CAChB,YAAa,aACd,CACD,CACD,EACA,CACC,GAAI,YACJ,QAAS,CACR,UAAW,gBACX,mBAAoB,iBACpB,qBAAsB,iBACtB,KAAM,YACN,kBAAmB,GACnB,aAAc,EACf,EACA,YAAa,4BACb,QAAS,CACR,mBAAoB,CACnB,YAAa,yBACd,EACA,iBAAkB,CACjB,YAAa,qBACd,EACA,iBAAkB,CACjB,YAAa,cACd,CACD,CAC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",
|
|
41
|
+
"debugId": "D9E27C0B8EB108A964756E2164756E21",
|
|
42
|
+
"names": []
|
|
43
|
+
}
|