gemi 0.4.93 → 0.4.95
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/App.d.ts +2 -11
- package/dist/app/App.d.ts.map +1 -1
- package/dist/app/index.js +3 -1
- package/dist/app/index.js.map +13 -0
- package/dist/auth/AuthenticationServiceContainer.d.ts +3 -1
- package/dist/auth/AuthenticationServiceContainer.d.ts.map +1 -1
- package/dist/auth/AuthenticationServiceProvider.d.ts +3 -5
- package/dist/auth/AuthenticationServiceProvider.d.ts.map +1 -1
- package/dist/bin/index.js +3 -0
- package/dist/broadcasting/index.js +3 -1
- package/dist/broadcasting/index.js.map +10 -0
- package/dist/{chunk-d09948245f5b426d.js → chunk-07f44e411ae4ea5e.js} +3 -1
- package/dist/chunk-07f44e411ae4ea5e.js.map +11 -0
- package/dist/{chunk-7ce930fe69575c87.js → chunk-0d97333b6af9fc45.js} +3 -1
- package/dist/chunk-0d97333b6af9fc45.js.map +9 -0
- package/dist/{chunk-e76c7e3bf2d698af.js → chunk-11de5b0adccef35c.js} +3 -1
- package/dist/chunk-11de5b0adccef35c.js.map +17 -0
- package/dist/{chunk-1770e9abf10029e0.js → chunk-18a59fffad60f059.js} +3 -1
- package/dist/chunk-18a59fffad60f059.js.map +12 -0
- package/dist/{chunk-8fec55214eb03a61.js → chunk-201c5005a90452fa.js} +4 -2
- package/dist/chunk-201c5005a90452fa.js.map +11 -0
- package/dist/{chunk-cfb8c5b12b0e5378.js → chunk-23d3df5f8342ecc6.js} +4 -2
- package/dist/chunk-23d3df5f8342ecc6.js.map +54 -0
- package/dist/chunk-278677330e53423b.js +4 -0
- package/dist/chunk-278677330e53423b.js.map +26 -0
- package/dist/{chunk-e1929f0f7003fbdf.js → chunk-28ec4c2b20e69deb.js} +4 -2
- package/dist/chunk-28ec4c2b20e69deb.js.map +10 -0
- package/dist/chunk-2f8cf8372320b622.js +4 -0
- package/dist/chunk-2f8cf8372320b622.js.map +11 -0
- package/dist/{chunk-ef791082443c0cbd.js → chunk-53b0fab00d83f47e.js} +3 -1
- package/dist/chunk-53b0fab00d83f47e.js.map +13 -0
- package/dist/chunk-57ba59dd008d6e0e.js +4 -0
- package/dist/chunk-57ba59dd008d6e0e.js.map +32 -0
- package/dist/chunk-642b04056dab5d64.js +4 -0
- package/dist/chunk-642b04056dab5d64.js.map +11 -0
- package/dist/{chunk-dfb863d471bf3b18.js → chunk-643529c2ad120db7.js} +4 -2
- package/dist/chunk-643529c2ad120db7.js.map +50 -0
- package/dist/{chunk-b6fb088270ea6584.js → chunk-683905a55f8da1ad.js} +4 -2
- package/dist/chunk-683905a55f8da1ad.js.map +64 -0
- package/dist/{chunk-035e233acf299392.js → chunk-90436b32a64fc784.js} +4 -2
- package/dist/chunk-90436b32a64fc784.js.map +53 -0
- package/dist/chunk-99c32e4d937131e0.js +4 -0
- package/dist/chunk-99c32e4d937131e0.js.map +10 -0
- package/dist/{chunk-d7525516b1305ba3.js → chunk-9be25fac5f76b2f7.js} +3 -1
- package/dist/chunk-9be25fac5f76b2f7.js.map +13 -0
- package/dist/{chunk-f10ba402aaacfc12.js → chunk-9f9e21f9fd0d6af1.js} +4 -2
- package/dist/chunk-9f9e21f9fd0d6af1.js.map +10 -0
- package/dist/chunk-9ff3d7096b6de8eb.js +4 -0
- package/dist/chunk-9ff3d7096b6de8eb.js.map +22 -0
- package/dist/{chunk-cfbe2cbcadcb1ac1.js → chunk-a7d87b5d6d789781.js} +3 -1
- package/dist/chunk-a7d87b5d6d789781.js.map +23 -0
- package/dist/chunk-b84d011a2972c7d1.js +4 -0
- package/dist/chunk-b84d011a2972c7d1.js.map +10 -0
- package/dist/{chunk-2f8839f406606d63.js → chunk-bace428bfab523c4.js} +3 -1
- package/dist/chunk-bace428bfab523c4.js.map +23 -0
- package/dist/{chunk-494de321e3423d54.js → chunk-bd708d3c982948aa.js} +4 -2
- package/dist/chunk-bd708d3c982948aa.js.map +16 -0
- package/dist/{chunk-496c32676431beab.js → chunk-c8c4a1285a266c51.js} +4 -2
- package/dist/chunk-c8c4a1285a266c51.js.map +169 -0
- package/dist/{chunk-eabfa03c809e14df.js → chunk-cd4bfdd46ec4cbb8.js} +4 -2
- package/dist/chunk-cd4bfdd46ec4cbb8.js.map +10 -0
- package/dist/{chunk-0f0add364d3ea615.js → chunk-cd9c5e8a6c80384f.js} +3 -1
- package/dist/chunk-cd9c5e8a6c80384f.js.map +20 -0
- package/dist/{chunk-04f04986e53516f0.js → chunk-d5b8023c223e3a60.js} +3 -1
- package/dist/chunk-d5b8023c223e3a60.js.map +10 -0
- package/dist/chunk-e4961d79807acd3d.js +4 -0
- package/dist/chunk-e4961d79807acd3d.js.map +33 -0
- package/dist/client/ClientRouterContext.d.ts.map +1 -1
- package/dist/client/HttpReload.d.ts.map +1 -1
- package/dist/email/index.js +3 -1
- package/dist/email/index.js.map +11 -0
- package/dist/facades/Auth.d.ts.map +1 -1
- package/dist/facades/Broadcast.d.ts.map +1 -1
- package/dist/facades/FileStorage.d.ts.map +1 -1
- package/dist/facades/I18n.d.ts.map +1 -1
- package/dist/facades/Prefetch.d.ts.map +1 -1
- package/dist/facades/index.js +3 -1
- package/dist/facades/index.js.map +28 -0
- package/dist/http/AuthenticationMiddlware.d.ts.map +1 -1
- package/dist/http/I18nServiceContainer.d.ts +6 -9
- package/dist/http/I18nServiceContainer.d.ts.map +1 -1
- package/dist/http/I18nServiceProvider.d.ts +3 -1
- package/dist/http/I18nServiceProvider.d.ts.map +1 -1
- package/dist/http/MiddlewareServiceProvider.d.ts +3 -1
- package/dist/http/MiddlewareServiceProvider.d.ts.map +1 -1
- package/dist/http/RateLimitMiddleware.d.ts.map +1 -1
- package/dist/http/index.js +3 -1
- package/dist/http/index.js.map +29 -0
- package/dist/kernel/Kernel.d.ts +4 -32
- package/dist/kernel/Kernel.d.ts.map +1 -1
- package/dist/kernel/KernelContext.d.ts +1 -1
- package/dist/kernel/KernelContext.d.ts.map +1 -1
- package/dist/kernel/context.d.ts +1 -21
- package/dist/kernel/context.d.ts.map +1 -1
- package/dist/kernel/index.js +3 -1
- package/dist/kernel/index.js.map +11 -0
- package/dist/server/index.js +6 -4
- package/dist/server/index.js.map +17 -0
- package/dist/services/ServiceContainer.d.ts +2 -2
- package/dist/services/ServiceContainer.d.ts.map +1 -1
- package/dist/services/email/EmailServiceContainer.d.ts +1 -1
- package/dist/services/email/EmailServiceContainer.d.ts.map +1 -1
- package/dist/services/file-storage/FileStorageServiceContainer.d.ts +3 -1
- package/dist/services/file-storage/FileStorageServiceContainer.d.ts.map +1 -1
- package/dist/services/file-storage/FileStorageServiceProvider.d.ts +3 -1
- package/dist/services/file-storage/FileStorageServiceProvider.d.ts.map +1 -1
- package/dist/services/index.d.ts +2 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +12 -1
- package/dist/services/index.js.map +121 -0
- package/dist/services/middleware/MiddlewareServiceContainer.d.ts +3 -1
- package/dist/services/middleware/MiddlewareServiceContainer.d.ts.map +1 -1
- package/dist/services/rate-limiter/RateLimiterServiceContainer.d.ts +3 -1
- package/dist/services/rate-limiter/RateLimiterServiceContainer.d.ts.map +1 -1
- package/dist/services/rate-limiter/RateLimiterServiceProvider.d.ts +3 -1
- package/dist/services/rate-limiter/RateLimiterServiceProvider.d.ts.map +1 -1
- package/dist/services/router/ApiRouterServiceContainer.d.ts +5 -1
- package/dist/services/router/ApiRouterServiceContainer.d.ts.map +1 -1
- package/dist/services/router/ApiRouterServiceProvider.d.ts +3 -4
- package/dist/services/router/ApiRouterServiceProvider.d.ts.map +1 -1
- package/dist/services/router/ViewRouterServiceContainer.d.ts +11 -1
- package/dist/services/router/ViewRouterServiceContainer.d.ts.map +1 -1
- package/dist/services/router/ViewRouterServiceProvider.d.ts +4 -9
- package/dist/services/router/ViewRouterServiceProvider.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/chunk-0fd23409fff0376b.js +0 -2
- package/dist/chunk-2573b2361de4a370.js +0 -2
- package/dist/chunk-33abc8f4f7df6791.js +0 -2
- package/dist/chunk-6286081da32e2feb.js +0 -2
- package/dist/chunk-9a9d43e4b919c267.js +0 -2
- package/dist/chunk-c459f3e37965c22f.js +0 -2
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../node_modules/uuid/dist/rng.js", "../../../node_modules/uuid/dist/regex.js", "../../../node_modules/uuid/dist/validate.js", "../../../node_modules/uuid/dist/stringify.js", "../../../node_modules/uuid/dist/v1.js", "../../../node_modules/uuid/dist/parse.js", "../../../node_modules/uuid/dist/v35.js", "../../../node_modules/uuid/dist/md5.js", "../../../node_modules/uuid/dist/v3.js", "../../../node_modules/uuid/dist/native.js", "../../../node_modules/uuid/dist/v4.js", "../../../node_modules/uuid/dist/sha1.js", "../../../node_modules/uuid/dist/v5.js", "../../../node_modules/uuid/dist/nil.js", "../../../node_modules/uuid/dist/version.js", "../../../node_modules/uuid/dist/index.js", "../../../node_modules/@smithy/util-middleware/dist-cjs/index.js", "../../../node_modules/@smithy/shared-ini-file-loader/dist-cjs/getHomeDir.js", "../../../node_modules/@smithy/shared-ini-file-loader/dist-cjs/getSSOTokenFilepath.js", "../../../node_modules/@smithy/shared-ini-file-loader/dist-cjs/getSSOTokenFromFile.js", "../../../node_modules/@smithy/shared-ini-file-loader/dist-cjs/slurpFile.js", "../../../node_modules/@smithy/shared-ini-file-loader/dist-cjs/index.js", "../../../node_modules/@smithy/node-config-provider/dist-cjs/index.js", "../../../node_modules/@smithy/middleware-endpoint/dist-cjs/adaptors/getEndpointUrlConfig.js", "../../../node_modules/@smithy/middleware-endpoint/dist-cjs/adaptors/getEndpointFromConfig.js", "../../../node_modules/@smithy/querystring-parser/dist-cjs/index.js", "../../../node_modules/@smithy/url-parser/dist-cjs/index.js", "../../../node_modules/@smithy/middleware-serde/dist-cjs/index.js", "../../../node_modules/@smithy/middleware-endpoint/dist-cjs/index.js", "../../../node_modules/@smithy/protocol-http/dist-cjs/index.js", "../../../node_modules/@smithy/service-error-classification/dist-cjs/index.js", "../../../node_modules/@smithy/util-retry/dist-cjs/index.js", "../../../node_modules/@smithy/middleware-stack/dist-cjs/index.js", "../../../node_modules/@smithy/is-array-buffer/dist-cjs/index.js", "../../../node_modules/@smithy/util-buffer-from/dist-cjs/index.js", "../../../node_modules/@smithy/util-base64/dist-cjs/fromBase64.js", "../../../node_modules/@smithy/util-utf8/dist-cjs/index.js", "../../../node_modules/@smithy/util-base64/dist-cjs/toBase64.js", "../../../node_modules/@smithy/util-base64/dist-cjs/index.js", "../../../node_modules/@smithy/util-stream/dist-cjs/getAwsChunkedEncodingStream.js", "../../../node_modules/@smithy/querystring-builder/dist-cjs/index.js", "../../../node_modules/@smithy/node-http-handler/dist-cjs/index.js", "../../../node_modules/@smithy/fetch-http-handler/dist-cjs/index.js", "../../../node_modules/@smithy/util-stream/dist-cjs/stream-type-check.js", "../../../node_modules/@smithy/util-stream/dist-cjs/sdk-stream-mixin.browser.js", "../../../node_modules/@smithy/util-stream/dist-cjs/sdk-stream-mixin.js", "../../../node_modules/@smithy/util-stream/dist-cjs/splitStream.browser.js", "../../../node_modules/@smithy/util-stream/dist-cjs/splitStream.js", "../../../node_modules/@smithy/util-stream/dist-cjs/headStream.browser.js", "../../../node_modules/@smithy/util-stream/dist-cjs/headStream.js", "../../../node_modules/@smithy/util-stream/dist-cjs/index.js", "../../../node_modules/@smithy/smithy-client/dist-cjs/index.js", "../../../node_modules/@smithy/middleware-retry/dist-cjs/isStreamingPayload/isStreamingPayload.js", "../../../node_modules/@smithy/middleware-retry/dist-cjs/index.js", "../../../node_modules/@smithy/core/dist-cjs/index.js", "../../../node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.js", "../../../node_modules/@smithy/signature-v4/dist-cjs/index.js", "../../../node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js", "../../../node_modules/fast-xml-parser/src/util.js", "../../../node_modules/fast-xml-parser/src/validator.js", "../../../node_modules/fast-xml-parser/src/xmlparser/OptionsBuilder.js", "../../../node_modules/fast-xml-parser/src/xmlparser/xmlNode.js", "../../../node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js", "../../../node_modules/strnum/strnum.js", "../../../node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js", "../../../node_modules/fast-xml-parser/src/xmlparser/node2json.js", "../../../node_modules/fast-xml-parser/src/xmlparser/XMLParser.js", "../../../node_modules/fast-xml-parser/src/xmlbuilder/orderedJs2Xml.js", "../../../node_modules/fast-xml-parser/src/xmlbuilder/json2xml.js", "../../../node_modules/fast-xml-parser/src/fxp.js", "../../../node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js", "../../../node_modules/@aws-sdk/core/dist-cjs/index.js", "../../../node_modules/uuid/wrapper.mjs", "../../../node_modules/@aws-sdk/middleware-host-header/dist-es/index.js", "../../../node_modules/@aws-sdk/middleware-logger/dist-es/loggerMiddleware.js", "../../../node_modules/@aws-sdk/middleware-recursion-detection/dist-es/index.js", "../../../node_modules/@aws-sdk/middleware-user-agent/dist-es/configurations.js", "../../../node_modules/@smithy/util-endpoints/dist-es/cache/EndpointCache.js", "../../../node_modules/@smithy/util-endpoints/dist-es/lib/isIpAddress.js", "../../../node_modules/@smithy/util-endpoints/dist-es/lib/isValidHostLabel.js", "../../../node_modules/@smithy/util-endpoints/dist-es/utils/customEndpointFunctions.js", "../../../node_modules/@smithy/util-endpoints/dist-es/debug/debugId.js", "../../../node_modules/@smithy/util-endpoints/dist-es/debug/toDebugString.js", "../../../node_modules/@smithy/util-endpoints/dist-es/types/EndpointError.js", "../../../node_modules/@smithy/util-endpoints/dist-es/lib/booleanEquals.js", "../../../node_modules/@smithy/util-endpoints/dist-es/lib/getAttrPathList.js", "../../../node_modules/@smithy/util-endpoints/dist-es/lib/getAttr.js", "../../../node_modules/@smithy/util-endpoints/dist-es/lib/isSet.js", "../../../node_modules/@smithy/util-endpoints/dist-es/lib/not.js", "../../../node_modules/@smithy/util-endpoints/dist-es/lib/parseURL.js", "../../../node_modules/@smithy/util-endpoints/dist-es/lib/stringEquals.js", "../../../node_modules/@smithy/util-endpoints/dist-es/lib/substring.js", "../../../node_modules/@smithy/util-endpoints/dist-es/lib/uriEncode.js", "../../../node_modules/@smithy/util-endpoints/dist-es/utils/endpointFunctions.js", "../../../node_modules/@smithy/util-endpoints/dist-es/utils/evaluateTemplate.js", "../../../node_modules/@smithy/util-endpoints/dist-es/utils/getReferenceValue.js", "../../../node_modules/@smithy/util-endpoints/dist-es/utils/evaluateExpression.js", "../../../node_modules/@smithy/util-endpoints/dist-es/utils/callFunction.js", "../../../node_modules/@smithy/util-endpoints/dist-es/utils/evaluateCondition.js", "../../../node_modules/@smithy/util-endpoints/dist-es/utils/evaluateConditions.js", "../../../node_modules/@smithy/util-endpoints/dist-es/utils/getEndpointHeaders.js", "../../../node_modules/@smithy/util-endpoints/dist-es/utils/getEndpointProperty.js", "../../../node_modules/@smithy/util-endpoints/dist-es/utils/getEndpointProperties.js", "../../../node_modules/@smithy/util-endpoints/dist-es/utils/getEndpointUrl.js", "../../../node_modules/@smithy/util-endpoints/dist-es/utils/evaluateEndpointRule.js", "../../../node_modules/@smithy/util-endpoints/dist-es/utils/evaluateErrorRule.js", "../../../node_modules/@smithy/util-endpoints/dist-es/utils/evaluateTreeRule.js", "../../../node_modules/@smithy/util-endpoints/dist-es/utils/evaluateRules.js", "../../../node_modules/@smithy/util-endpoints/dist-es/resolveEndpoint.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/isVirtualHostableS3Bucket.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/parseArn.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/partition.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-es/aws.js", "../../../node_modules/@aws-sdk/middleware-user-agent/dist-es/constants.js", "../../../node_modules/@aws-sdk/middleware-user-agent/dist-es/user-agent-middleware.js", "../../../node_modules/@smithy/config-resolver/dist-es/regionConfig/isFipsRegion.js", "../../../node_modules/@smithy/config-resolver/dist-es/regionConfig/getRealRegion.js", "../../../node_modules/@smithy/config-resolver/dist-es/regionConfig/resolveRegionConfig.js", "../../../node_modules/@smithy/util-config-provider/dist-es/booleanSelector.js", "../../../node_modules/@smithy/util-config-provider/dist-es/types.js", "../../../node_modules/@smithy/config-resolver/dist-es/endpointsConfig/NodeUseDualstackEndpointConfigOptions.js", "../../../node_modules/@smithy/config-resolver/dist-es/endpointsConfig/NodeUseFipsEndpointConfigOptions.js", "../../../node_modules/@smithy/util-middleware/dist-es/getSmithyContext.js", "../../../node_modules/@smithy/util-middleware/dist-es/normalizeProvider.js", "../../../node_modules/@smithy/config-resolver/dist-es/regionConfig/config.js", "../../../node_modules/@smithy/middleware-content-length/dist-es/index.js", "../../../node_modules/@smithy/middleware-serde/dist-es/deserializerMiddleware.js", "../../../node_modules/@smithy/middleware-serde/dist-es/serializerMiddleware.js", "../../../node_modules/@smithy/middleware-serde/dist-es/serdePlugin.js", "../../../node_modules/@smithy/middleware-endpoint/dist-es/service-customizations/s3.js", "../../../node_modules/@smithy/middleware-endpoint/dist-es/adaptors/createConfigValueProvider.js", "../../../node_modules/@smithy/middleware-endpoint/dist-es/adaptors/getEndpointUrlConfig.js", "../../../node_modules/@smithy/middleware-endpoint/dist-es/adaptors/getEndpointFromConfig.js", "../../../node_modules/@smithy/middleware-endpoint/dist-es/adaptors/toEndpointV1.js", "../../../node_modules/@smithy/middleware-endpoint/dist-es/adaptors/getEndpointFromInstructions.js", "../../../node_modules/@smithy/middleware-endpoint/dist-es/endpointMiddleware.js", "../../../node_modules/@smithy/middleware-endpoint/dist-es/getEndpointPlugin.js", "../../../node_modules/@smithy/middleware-endpoint/dist-es/resolveEndpointConfig.js", "../../../node_modules/@smithy/util-retry/dist-es/config.js", "../../../node_modules/@smithy/service-error-classification/dist-es/constants.js", "../../../node_modules/@smithy/service-error-classification/dist-es/index.js", "../../../node_modules/@smithy/util-retry/dist-es/DefaultRateLimiter.js", "../../../node_modules/@smithy/util-retry/dist-es/constants.js", "../../../node_modules/@smithy/util-retry/dist-es/defaultRetryBackoffStrategy.js", "../../../node_modules/@smithy/util-retry/dist-es/defaultRetryToken.js", "../../../node_modules/@smithy/util-retry/dist-es/StandardRetryStrategy.js", "../../../node_modules/@smithy/util-retry/dist-es/AdaptiveRetryStrategy.js", "../../../node_modules/@smithy/middleware-retry/dist-es/configurations.js", "../../../node_modules/@smithy/middleware-retry/dist-es/isStreamingPayload/isStreamingPayload.js", "../../../node_modules/@smithy/middleware-retry/dist-es/util.js", "../../../node_modules/@smithy/middleware-retry/dist-es/retryMiddleware.js", "../../../node_modules/@aws-sdk/util-user-agent-node/dist-es/index.js", "../../../node_modules/@aws-sdk/util-user-agent-node/dist-es/crt-availability.js", "../../../node_modules/@aws-sdk/util-user-agent-node/dist-es/is-crt-available.js", "../../../node_modules/@smithy/hash-node/dist-es/index.js", "../../../node_modules/@smithy/util-body-length-node/dist-es/calculateBodyLength.js", "../../../node_modules/@smithy/util-defaults-mode-node/dist-es/resolveDefaultsModeConfig.js", "../../../node_modules/@smithy/util-defaults-mode-node/dist-es/constants.js", "../../../node_modules/@smithy/util-defaults-mode-node/dist-es/defaultsModeConfig.js", "../../../node_modules/@aws-sdk/region-config-resolver/dist-es/extensions/index.js"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate\n\nlet poolPtr = rnds8Pool.length;\n\nfunction rng() {\n if (poolPtr > rnds8Pool.length - 16) {\n _crypto.default.randomFillSync(rnds8Pool);\n\n poolPtr = 0;\n }\n\n return rnds8Pool.slice(poolPtr, poolPtr += 16);\n}",
|
|
6
|
+
"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nexports.default = _default;",
|
|
7
|
+
"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _regex = _interopRequireDefault(require(\"./regex.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && _regex.default.test(uuid);\n}\n\nvar _default = validate;\nexports.default = _default;",
|
|
8
|
+
"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nexports.unsafeStringify = unsafeStringify;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nfunction unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nvar _default = stringify;\nexports.default = _default;",
|
|
9
|
+
"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nlet _nodeId;\n\nlet _clockseq; // Previous uuid creation time\n\n\nlet _lastMSecs = 0;\nlet _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n let i = buf && offset || 0;\n const b = buf || new Array(16);\n options = options || {};\n let node = options.node || _nodeId;\n let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n const seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (let n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || (0, _stringify.unsafeStringify)(b);\n}\n\nvar _default = v1;\nexports.default = _default;",
|
|
10
|
+
"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction parse(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nvar _default = parse;\nexports.default = _default;",
|
|
11
|
+
"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.URL = exports.DNS = void 0;\nexports.default = v35;\n\nvar _stringify = require(\"./stringify.js\");\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction v35(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n var _namespace;\n\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = (0, _parse.default)(namespace);\n }\n\n if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}",
|
|
12
|
+
"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction md5(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('md5').update(bytes).digest();\n}\n\nvar _default = md5;\nexports.default = _default;",
|
|
13
|
+
"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;",
|
|
14
|
+
"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _default = {\n randomUUID: _crypto.default.randomUUID\n};\nexports.default = _default;",
|
|
15
|
+
"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _native = _interopRequireDefault(require(\"./native.js\"));\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n if (_native.default.randomUUID && !buf && !options) {\n return _native.default.randomUUID();\n }\n\n options = options || {};\n\n const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;",
|
|
16
|
+
"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction sha1(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('sha1').update(bytes).digest();\n}\n\nvar _default = sha1;\nexports.default = _default;",
|
|
17
|
+
"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;",
|
|
18
|
+
"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = '00000000-0000-0000-0000-000000000000';\nexports.default = _default;",
|
|
19
|
+
"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction version(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.slice(14, 15), 16);\n}\n\nvar _default = version;\nexports.default = _default;",
|
|
20
|
+
"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"NIL\", {\n enumerable: true,\n get: function () {\n return _nil.default;\n }\n});\nObject.defineProperty(exports, \"parse\", {\n enumerable: true,\n get: function () {\n return _parse.default;\n }\n});\nObject.defineProperty(exports, \"stringify\", {\n enumerable: true,\n get: function () {\n return _stringify.default;\n }\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function () {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function () {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function () {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function () {\n return _v4.default;\n }\n});\nObject.defineProperty(exports, \"validate\", {\n enumerable: true,\n get: function () {\n return _validate.default;\n }\n});\nObject.defineProperty(exports, \"version\", {\n enumerable: true,\n get: function () {\n return _version.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nvar _nil = _interopRequireDefault(require(\"./nil.js\"));\n\nvar _version = _interopRequireDefault(require(\"./version.js\"));\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }",
|
|
21
|
+
"var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n getSmithyContext: () => getSmithyContext,\n normalizeProvider: () => normalizeProvider\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/getSmithyContext.ts\nvar import_types = require(\"@smithy/types\");\nvar getSmithyContext = /* @__PURE__ */ __name((context) => context[import_types.SMITHY_CONTEXT_KEY] || (context[import_types.SMITHY_CONTEXT_KEY] = {}), \"getSmithyContext\");\n\n// src/normalizeProvider.ts\nvar normalizeProvider = /* @__PURE__ */ __name((input) => {\n if (typeof input === \"function\")\n return input;\n const promisified = Promise.resolve(input);\n return () => promisified;\n}, \"normalizeProvider\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n getSmithyContext,\n normalizeProvider\n});\n\n",
|
|
22
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getHomeDir = void 0;\nconst os_1 = require(\"os\");\nconst path_1 = require(\"path\");\nconst homeDirCache = {};\nconst getHomeDirCacheKey = () => {\n if (process && process.geteuid) {\n return `${process.geteuid()}`;\n }\n return \"DEFAULT\";\n};\nconst getHomeDir = () => {\n const { HOME, USERPROFILE, HOMEPATH, HOMEDRIVE = `C:${path_1.sep}` } = process.env;\n if (HOME)\n return HOME;\n if (USERPROFILE)\n return USERPROFILE;\n if (HOMEPATH)\n return `${HOMEDRIVE}${HOMEPATH}`;\n const homeDirCacheKey = getHomeDirCacheKey();\n if (!homeDirCache[homeDirCacheKey])\n homeDirCache[homeDirCacheKey] = (0, os_1.homedir)();\n return homeDirCache[homeDirCacheKey];\n};\nexports.getHomeDir = getHomeDir;\n",
|
|
23
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getSSOTokenFilepath = void 0;\nconst crypto_1 = require(\"crypto\");\nconst path_1 = require(\"path\");\nconst getHomeDir_1 = require(\"./getHomeDir\");\nconst getSSOTokenFilepath = (id) => {\n const hasher = (0, crypto_1.createHash)(\"sha1\");\n const cacheName = hasher.update(id).digest(\"hex\");\n return (0, path_1.join)((0, getHomeDir_1.getHomeDir)(), \".aws\", \"sso\", \"cache\", `${cacheName}.json`);\n};\nexports.getSSOTokenFilepath = getSSOTokenFilepath;\n",
|
|
24
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getSSOTokenFromFile = void 0;\nconst fs_1 = require(\"fs\");\nconst getSSOTokenFilepath_1 = require(\"./getSSOTokenFilepath\");\nconst { readFile } = fs_1.promises;\nconst getSSOTokenFromFile = async (id) => {\n const ssoTokenFilepath = (0, getSSOTokenFilepath_1.getSSOTokenFilepath)(id);\n const ssoTokenText = await readFile(ssoTokenFilepath, \"utf8\");\n return JSON.parse(ssoTokenText);\n};\nexports.getSSOTokenFromFile = getSSOTokenFromFile;\n",
|
|
25
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.slurpFile = void 0;\nconst fs_1 = require(\"fs\");\nconst { readFile } = fs_1.promises;\nconst filePromisesHash = {};\nconst slurpFile = (path, options) => {\n if (!filePromisesHash[path] || (options === null || options === void 0 ? void 0 : options.ignoreCache)) {\n filePromisesHash[path] = readFile(path, \"utf8\");\n }\n return filePromisesHash[path];\n};\nexports.slurpFile = slurpFile;\n",
|
|
26
|
+
"var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n CONFIG_PREFIX_SEPARATOR: () => CONFIG_PREFIX_SEPARATOR,\n DEFAULT_PROFILE: () => DEFAULT_PROFILE,\n ENV_PROFILE: () => ENV_PROFILE,\n getProfileName: () => getProfileName,\n loadSharedConfigFiles: () => loadSharedConfigFiles,\n loadSsoSessionData: () => loadSsoSessionData,\n parseKnownFiles: () => parseKnownFiles\n});\nmodule.exports = __toCommonJS(src_exports);\n__reExport(src_exports, require(\"././getHomeDir\"), module.exports);\n\n// src/getProfileName.ts\nvar ENV_PROFILE = \"AWS_PROFILE\";\nvar DEFAULT_PROFILE = \"default\";\nvar getProfileName = /* @__PURE__ */ __name((init) => init.profile || process.env[ENV_PROFILE] || DEFAULT_PROFILE, \"getProfileName\");\n\n// src/index.ts\n__reExport(src_exports, require(\"././getSSOTokenFilepath\"), module.exports);\n__reExport(src_exports, require(\"././getSSOTokenFromFile\"), module.exports);\n\n// src/loadSharedConfigFiles.ts\n\n\n// src/getConfigData.ts\nvar import_types = require(\"@smithy/types\");\nvar getConfigData = /* @__PURE__ */ __name((data) => Object.entries(data).filter(([key]) => {\n const indexOfSeparator = key.indexOf(CONFIG_PREFIX_SEPARATOR);\n if (indexOfSeparator === -1) {\n return false;\n }\n return Object.values(import_types.IniSectionType).includes(key.substring(0, indexOfSeparator));\n}).reduce(\n (acc, [key, value]) => {\n const indexOfSeparator = key.indexOf(CONFIG_PREFIX_SEPARATOR);\n const updatedKey = key.substring(0, indexOfSeparator) === import_types.IniSectionType.PROFILE ? key.substring(indexOfSeparator + 1) : key;\n acc[updatedKey] = value;\n return acc;\n },\n {\n // Populate default profile, if present.\n ...data.default && { default: data.default }\n }\n), \"getConfigData\");\n\n// src/getConfigFilepath.ts\nvar import_path = require(\"path\");\nvar import_getHomeDir = require(\"././getHomeDir\");\nvar ENV_CONFIG_PATH = \"AWS_CONFIG_FILE\";\nvar getConfigFilepath = /* @__PURE__ */ __name(() => process.env[ENV_CONFIG_PATH] || (0, import_path.join)((0, import_getHomeDir.getHomeDir)(), \".aws\", \"config\"), \"getConfigFilepath\");\n\n// src/getCredentialsFilepath.ts\n\nvar import_getHomeDir2 = require(\"././getHomeDir\");\nvar ENV_CREDENTIALS_PATH = \"AWS_SHARED_CREDENTIALS_FILE\";\nvar getCredentialsFilepath = /* @__PURE__ */ __name(() => process.env[ENV_CREDENTIALS_PATH] || (0, import_path.join)((0, import_getHomeDir2.getHomeDir)(), \".aws\", \"credentials\"), \"getCredentialsFilepath\");\n\n// src/loadSharedConfigFiles.ts\nvar import_getHomeDir3 = require(\"././getHomeDir\");\n\n// src/parseIni.ts\n\nvar prefixKeyRegex = /^([\\w-]+)\\s([\"'])?([\\w-@\\+\\.%:/]+)\\2$/;\nvar profileNameBlockList = [\"__proto__\", \"profile __proto__\"];\nvar parseIni = /* @__PURE__ */ __name((iniData) => {\n const map = {};\n let currentSection;\n let currentSubSection;\n for (const iniLine of iniData.split(/\\r?\\n/)) {\n const trimmedLine = iniLine.split(/(^|\\s)[;#]/)[0].trim();\n const isSection = trimmedLine[0] === \"[\" && trimmedLine[trimmedLine.length - 1] === \"]\";\n if (isSection) {\n currentSection = void 0;\n currentSubSection = void 0;\n const sectionName = trimmedLine.substring(1, trimmedLine.length - 1);\n const matches = prefixKeyRegex.exec(sectionName);\n if (matches) {\n const [, prefix, , name] = matches;\n if (Object.values(import_types.IniSectionType).includes(prefix)) {\n currentSection = [prefix, name].join(CONFIG_PREFIX_SEPARATOR);\n }\n } else {\n currentSection = sectionName;\n }\n if (profileNameBlockList.includes(sectionName)) {\n throw new Error(`Found invalid profile name \"${sectionName}\"`);\n }\n } else if (currentSection) {\n const indexOfEqualsSign = trimmedLine.indexOf(\"=\");\n if (![0, -1].includes(indexOfEqualsSign)) {\n const [name, value] = [\n trimmedLine.substring(0, indexOfEqualsSign).trim(),\n trimmedLine.substring(indexOfEqualsSign + 1).trim()\n ];\n if (value === \"\") {\n currentSubSection = name;\n } else {\n if (currentSubSection && iniLine.trimStart() === iniLine) {\n currentSubSection = void 0;\n }\n map[currentSection] = map[currentSection] || {};\n const key = currentSubSection ? [currentSubSection, name].join(CONFIG_PREFIX_SEPARATOR) : name;\n map[currentSection][key] = value;\n }\n }\n }\n }\n return map;\n}, \"parseIni\");\n\n// src/loadSharedConfigFiles.ts\nvar import_slurpFile = require(\"././slurpFile\");\nvar swallowError = /* @__PURE__ */ __name(() => ({}), \"swallowError\");\nvar CONFIG_PREFIX_SEPARATOR = \".\";\nvar loadSharedConfigFiles = /* @__PURE__ */ __name(async (init = {}) => {\n const { filepath = getCredentialsFilepath(), configFilepath = getConfigFilepath() } = init;\n const homeDir = (0, import_getHomeDir3.getHomeDir)();\n const relativeHomeDirPrefix = \"~/\";\n let resolvedFilepath = filepath;\n if (filepath.startsWith(relativeHomeDirPrefix)) {\n resolvedFilepath = (0, import_path.join)(homeDir, filepath.slice(2));\n }\n let resolvedConfigFilepath = configFilepath;\n if (configFilepath.startsWith(relativeHomeDirPrefix)) {\n resolvedConfigFilepath = (0, import_path.join)(homeDir, configFilepath.slice(2));\n }\n const parsedFiles = await Promise.all([\n (0, import_slurpFile.slurpFile)(resolvedConfigFilepath, {\n ignoreCache: init.ignoreCache\n }).then(parseIni).then(getConfigData).catch(swallowError),\n (0, import_slurpFile.slurpFile)(resolvedFilepath, {\n ignoreCache: init.ignoreCache\n }).then(parseIni).catch(swallowError)\n ]);\n return {\n configFile: parsedFiles[0],\n credentialsFile: parsedFiles[1]\n };\n}, \"loadSharedConfigFiles\");\n\n// src/getSsoSessionData.ts\n\nvar getSsoSessionData = /* @__PURE__ */ __name((data) => Object.entries(data).filter(([key]) => key.startsWith(import_types.IniSectionType.SSO_SESSION + CONFIG_PREFIX_SEPARATOR)).reduce((acc, [key, value]) => ({ ...acc, [key.substring(key.indexOf(CONFIG_PREFIX_SEPARATOR) + 1)]: value }), {}), \"getSsoSessionData\");\n\n// src/loadSsoSessionData.ts\nvar import_slurpFile2 = require(\"././slurpFile\");\nvar swallowError2 = /* @__PURE__ */ __name(() => ({}), \"swallowError\");\nvar loadSsoSessionData = /* @__PURE__ */ __name(async (init = {}) => (0, import_slurpFile2.slurpFile)(init.configFilepath ?? getConfigFilepath()).then(parseIni).then(getSsoSessionData).catch(swallowError2), \"loadSsoSessionData\");\n\n// src/mergeConfigFiles.ts\nvar mergeConfigFiles = /* @__PURE__ */ __name((...files) => {\n const merged = {};\n for (const file of files) {\n for (const [key, values] of Object.entries(file)) {\n if (merged[key] !== void 0) {\n Object.assign(merged[key], values);\n } else {\n merged[key] = values;\n }\n }\n }\n return merged;\n}, \"mergeConfigFiles\");\n\n// src/parseKnownFiles.ts\nvar parseKnownFiles = /* @__PURE__ */ __name(async (init) => {\n const parsedFiles = await loadSharedConfigFiles(init);\n return mergeConfigFiles(parsedFiles.configFile, parsedFiles.credentialsFile);\n}, \"parseKnownFiles\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n getHomeDir,\n ENV_PROFILE,\n DEFAULT_PROFILE,\n getProfileName,\n getSSOTokenFilepath,\n getSSOTokenFromFile,\n CONFIG_PREFIX_SEPARATOR,\n loadSharedConfigFiles,\n loadSsoSessionData,\n parseKnownFiles\n});\n\n",
|
|
27
|
+
"var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n loadConfig: () => loadConfig\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/configLoader.ts\n\n\n// src/fromEnv.ts\nvar import_property_provider = require(\"@smithy/property-provider\");\n\n// src/getSelectorName.ts\nfunction getSelectorName(functionString) {\n try {\n const constants = new Set(Array.from(functionString.match(/([A-Z_]){3,}/g) ?? []));\n constants.delete(\"CONFIG\");\n constants.delete(\"CONFIG_PREFIX_SEPARATOR\");\n constants.delete(\"ENV\");\n return [...constants].join(\", \");\n } catch (e) {\n return functionString;\n }\n}\n__name(getSelectorName, \"getSelectorName\");\n\n// src/fromEnv.ts\nvar fromEnv = /* @__PURE__ */ __name((envVarSelector, logger) => async () => {\n try {\n const config = envVarSelector(process.env);\n if (config === void 0) {\n throw new Error();\n }\n return config;\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(\n e.message || `Not found in ENV: ${getSelectorName(envVarSelector.toString())}`,\n { logger }\n );\n }\n}, \"fromEnv\");\n\n// src/fromSharedConfigFiles.ts\n\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\nvar fromSharedConfigFiles = /* @__PURE__ */ __name((configSelector, { preferredFile = \"config\", ...init } = {}) => async () => {\n const profile = (0, import_shared_ini_file_loader.getProfileName)(init);\n const { configFile, credentialsFile } = await (0, import_shared_ini_file_loader.loadSharedConfigFiles)(init);\n const profileFromCredentials = credentialsFile[profile] || {};\n const profileFromConfig = configFile[profile] || {};\n const mergedProfile = preferredFile === \"config\" ? { ...profileFromCredentials, ...profileFromConfig } : { ...profileFromConfig, ...profileFromCredentials };\n try {\n const cfgFile = preferredFile === \"config\" ? configFile : credentialsFile;\n const configValue = configSelector(mergedProfile, cfgFile);\n if (configValue === void 0) {\n throw new Error();\n }\n return configValue;\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(\n e.message || `Not found in config files w/ profile [${profile}]: ${getSelectorName(configSelector.toString())}`,\n { logger: init.logger }\n );\n }\n}, \"fromSharedConfigFiles\");\n\n// src/fromStatic.ts\n\nvar isFunction = /* @__PURE__ */ __name((func) => typeof func === \"function\", \"isFunction\");\nvar fromStatic = /* @__PURE__ */ __name((defaultValue) => isFunction(defaultValue) ? async () => await defaultValue() : (0, import_property_provider.fromStatic)(defaultValue), \"fromStatic\");\n\n// src/configLoader.ts\nvar loadConfig = /* @__PURE__ */ __name(({ environmentVariableSelector, configFileSelector, default: defaultValue }, configuration = {}) => (0, import_property_provider.memoize)(\n (0, import_property_provider.chain)(\n fromEnv(environmentVariableSelector),\n fromSharedConfigFiles(configFileSelector, configuration),\n fromStatic(defaultValue)\n )\n), \"loadConfig\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n loadConfig\n});\n\n",
|
|
28
|
+
"\"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",
|
|
29
|
+
"\"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 !== null && serviceId !== void 0 ? serviceId : \"\"))();\nexports.getEndpointFromConfig = getEndpointFromConfig;\n",
|
|
30
|
+
"var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n parseQueryString: () => parseQueryString\n});\nmodule.exports = __toCommonJS(src_exports);\nfunction parseQueryString(querystring) {\n const query = {};\n querystring = querystring.replace(/^\\?/, \"\");\n if (querystring) {\n for (const pair of querystring.split(\"&\")) {\n let [key, value = null] = pair.split(\"=\");\n key = decodeURIComponent(key);\n if (value) {\n value = decodeURIComponent(value);\n }\n if (!(key in query)) {\n query[key] = value;\n } else if (Array.isArray(query[key])) {\n query[key].push(value);\n } else {\n query[key] = [query[key], value];\n }\n }\n }\n return query;\n}\n__name(parseQueryString, \"parseQueryString\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n parseQueryString\n});\n\n",
|
|
31
|
+
"var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n parseUrl: () => parseUrl\n});\nmodule.exports = __toCommonJS(src_exports);\nvar import_querystring_parser = require(\"@smithy/querystring-parser\");\nvar parseUrl = /* @__PURE__ */ __name((url) => {\n if (typeof url === \"string\") {\n return parseUrl(new URL(url));\n }\n const { hostname, pathname, port, protocol, search } = url;\n let query;\n if (search) {\n query = (0, import_querystring_parser.parseQueryString)(search);\n }\n return {\n hostname,\n port: port ? parseInt(port) : void 0,\n protocol,\n path: pathname,\n query\n };\n}, \"parseUrl\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n parseUrl\n});\n\n",
|
|
32
|
+
"var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n deserializerMiddleware: () => deserializerMiddleware,\n deserializerMiddlewareOption: () => deserializerMiddlewareOption,\n getSerdePlugin: () => getSerdePlugin,\n serializerMiddleware: () => serializerMiddleware,\n serializerMiddlewareOption: () => serializerMiddlewareOption\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/deserializerMiddleware.ts\nvar deserializerMiddleware = /* @__PURE__ */ __name((options, deserializer) => (next) => 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 } catch (error) {\n Object.defineProperty(error, \"$response\", {\n value: response\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 error.message += \"\\n \" + hint;\n if (typeof error.$responseBodyText !== \"undefined\") {\n if (error.$response) {\n error.$response.body = error.$responseBodyText;\n }\n }\n }\n throw error;\n }\n}, \"deserializerMiddleware\");\n\n// src/serializerMiddleware.ts\nvar serializerMiddleware = /* @__PURE__ */ __name((options, serializer) => (next, context) => async (args) => {\n var _a;\n const endpoint = ((_a = context.endpointV2) == null ? void 0 : _a.url) && options.urlParser ? async () => options.urlParser(context.endpointV2.url) : options.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}, \"serializerMiddleware\");\n\n// src/serdePlugin.ts\nvar deserializerMiddlewareOption = {\n name: \"deserializerMiddleware\",\n step: \"deserialize\",\n tags: [\"DESERIALIZER\"],\n override: true\n};\nvar 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__name(getSerdePlugin, \"getSerdePlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n deserializerMiddleware,\n deserializerMiddlewareOption,\n serializerMiddlewareOption,\n getSerdePlugin,\n serializerMiddleware\n});\n\n",
|
|
33
|
+
"var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n endpointMiddleware: () => endpointMiddleware,\n endpointMiddlewareOptions: () => endpointMiddlewareOptions,\n getEndpointFromInstructions: () => getEndpointFromInstructions,\n getEndpointPlugin: () => getEndpointPlugin,\n resolveEndpointConfig: () => resolveEndpointConfig,\n resolveParams: () => resolveParams,\n toEndpointV1: () => toEndpointV1\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/service-customizations/s3.ts\nvar resolveParamsForS3 = /* @__PURE__ */ __name(async (endpointParams) => {\n const bucket = (endpointParams == null ? void 0 : 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 } else if (!isDnsCompatibleBucketName(bucket) || bucket.indexOf(\".\") !== -1 && !String(endpointParams.Endpoint).startsWith(\"http:\") || bucket.toLowerCase() !== bucket || 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}, \"resolveParamsForS3\");\nvar DOMAIN_PATTERN = /^[a-z0-9][a-z0-9\\.\\-]{1,61}[a-z0-9]$/;\nvar IP_ADDRESS_PATTERN = /(\\d+\\.){3}\\d+/;\nvar DOTS_PATTERN = /\\.\\./;\nvar isDnsCompatibleBucketName = /* @__PURE__ */ __name((bucketName) => DOMAIN_PATTERN.test(bucketName) && !IP_ADDRESS_PATTERN.test(bucketName) && !DOTS_PATTERN.test(bucketName), \"isDnsCompatibleBucketName\");\nvar isArnBucketName = /* @__PURE__ */ __name((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}, \"isArnBucketName\");\n\n// src/adaptors/createConfigValueProvider.ts\nvar createConfigValueProvider = /* @__PURE__ */ __name((configKey, canonicalEndpointParamKey, config) => {\n const configProvider = /* @__PURE__ */ __name(async () => {\n const configValue = config[configKey] ?? config[canonicalEndpointParamKey];\n if (typeof configValue === \"function\") {\n return configValue();\n }\n return configValue;\n }, \"configProvider\");\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 == null ? void 0 : credentials.credentialScope) ?? (credentials == null ? void 0 : 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 == null ? void 0 : credentials.accountId) ?? (credentials == null ? void 0 : credentials.AccountId);\n return configValue;\n };\n }\n if (configKey === \"endpoint\" || canonicalEndpointParamKey === \"endpoint\") {\n return async () => {\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}, \"createConfigValueProvider\");\n\n// src/adaptors/getEndpointFromInstructions.ts\nvar import_getEndpointFromConfig = require(\"./adaptors/getEndpointFromConfig\");\n\n// src/adaptors/toEndpointV1.ts\nvar import_url_parser = require(\"@smithy/url-parser\");\nvar toEndpointV1 = /* @__PURE__ */ __name((endpoint) => {\n if (typeof endpoint === \"object\") {\n if (\"url\" in endpoint) {\n return (0, import_url_parser.parseUrl)(endpoint.url);\n }\n return endpoint;\n }\n return (0, import_url_parser.parseUrl)(endpoint);\n}, \"toEndpointV1\");\n\n// src/adaptors/getEndpointFromInstructions.ts\nvar getEndpointFromInstructions = /* @__PURE__ */ __name(async (commandInput, instructionsSupplier, clientConfig, context) => {\n if (!clientConfig.endpoint) {\n let endpointFromConfig;\n if (clientConfig.serviceConfiguredEndpoint) {\n endpointFromConfig = await clientConfig.serviceConfiguredEndpoint();\n } else {\n endpointFromConfig = await (0, import_getEndpointFromConfig.getEndpointFromConfig)(clientConfig.serviceId);\n }\n if (endpointFromConfig) {\n clientConfig.endpoint = () => Promise.resolve(toEndpointV1(endpointFromConfig));\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 return endpoint;\n}, \"getEndpointFromInstructions\");\nvar resolveParams = /* @__PURE__ */ __name(async (commandInput, instructionsSupplier, clientConfig) => {\n var _a;\n const endpointParams = {};\n const instructions = ((_a = instructionsSupplier == null ? void 0 : instructionsSupplier.getEndpointParameterInstructions) == null ? void 0 : _a.call(instructionsSupplier)) || {};\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)();\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}, \"resolveParams\");\n\n// src/endpointMiddleware.ts\nvar import_util_middleware = require(\"@smithy/util-middleware\");\nvar endpointMiddleware = /* @__PURE__ */ __name(({\n config,\n instructions\n}) => {\n return (next, context) => async (args) => {\n var _a, _b, _c;\n const endpoint = await getEndpointFromInstructions(\n args.input,\n {\n getEndpointParameterInstructions() {\n return instructions;\n }\n },\n { ...config },\n context\n );\n context.endpointV2 = endpoint;\n context.authSchemes = (_a = endpoint.properties) == null ? void 0 : _a.authSchemes;\n const authScheme = (_b = context.authSchemes) == null ? void 0 : _b[0];\n if (authScheme) {\n context[\"signing_region\"] = authScheme.signingRegion;\n context[\"signing_service\"] = authScheme.signingName;\n const smithyContext = (0, import_util_middleware.getSmithyContext)(context);\n const httpAuthOption = (_c = smithyContext == null ? void 0 : smithyContext.selectedHttpAuthScheme) == null ? void 0 : _c.httpAuthOption;\n if (httpAuthOption) {\n httpAuthOption.signingProperties = Object.assign(\n httpAuthOption.signingProperties || {},\n {\n signing_region: authScheme.signingRegion,\n signingRegion: authScheme.signingRegion,\n signing_service: authScheme.signingName,\n signingName: authScheme.signingName,\n signingRegionSet: authScheme.signingRegionSet\n },\n authScheme.properties\n );\n }\n }\n return next({\n ...args\n });\n };\n}, \"endpointMiddleware\");\n\n// src/getEndpointPlugin.ts\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\nvar endpointMiddlewareOptions = {\n step: \"serialize\",\n tags: [\"ENDPOINT_PARAMETERS\", \"ENDPOINT_V2\", \"ENDPOINT\"],\n name: \"endpointV2Middleware\",\n override: true,\n relation: \"before\",\n toMiddleware: import_middleware_serde.serializerMiddlewareOption.name\n};\nvar getEndpointPlugin = /* @__PURE__ */ __name((config, instructions) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo(\n endpointMiddleware({\n config,\n instructions\n }),\n endpointMiddlewareOptions\n );\n }\n}), \"getEndpointPlugin\");\n\n// src/resolveEndpointConfig.ts\n\nvar import_getEndpointFromConfig2 = require(\"./adaptors/getEndpointFromConfig\");\nvar resolveEndpointConfig = /* @__PURE__ */ __name((input) => {\n const tls = input.tls ?? true;\n const { endpoint } = input;\n const customEndpointProvider = endpoint != null ? async () => toEndpointV1(await (0, import_util_middleware.normalizeProvider)(endpoint)()) : void 0;\n const isCustomEndpoint = !!endpoint;\n const resolvedConfig = {\n ...input,\n endpoint: customEndpointProvider,\n tls,\n isCustomEndpoint,\n useDualstackEndpoint: (0, import_util_middleware.normalizeProvider)(input.useDualstackEndpoint ?? false),\n useFipsEndpoint: (0, import_util_middleware.normalizeProvider)(input.useFipsEndpoint ?? false)\n };\n let configuredEndpointPromise = void 0;\n resolvedConfig.serviceConfiguredEndpoint = async () => {\n if (input.serviceId && !configuredEndpointPromise) {\n configuredEndpointPromise = (0, import_getEndpointFromConfig2.getEndpointFromConfig)(input.serviceId);\n }\n return configuredEndpointPromise;\n };\n return resolvedConfig;\n}, \"resolveEndpointConfig\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n getEndpointFromInstructions,\n resolveParams,\n toEndpointV1,\n endpointMiddleware,\n endpointMiddlewareOptions,\n getEndpointPlugin,\n resolveEndpointConfig\n});\n\n",
|
|
34
|
+
"var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n Field: () => Field,\n Fields: () => Fields,\n HttpRequest: () => HttpRequest,\n HttpResponse: () => HttpResponse,\n IHttpRequest: () => import_types.HttpRequest,\n getHttpHandlerExtensionConfiguration: () => getHttpHandlerExtensionConfiguration,\n isValidHostname: () => isValidHostname,\n resolveHttpHandlerRuntimeConfig: () => resolveHttpHandlerRuntimeConfig\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/extensions/httpExtensionConfiguration.ts\nvar getHttpHandlerExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n let httpHandler = runtimeConfig.httpHandler;\n return {\n setHttpHandler(handler) {\n httpHandler = handler;\n },\n httpHandler() {\n return httpHandler;\n },\n updateHttpClientConfig(key, value) {\n httpHandler.updateHttpClientConfig(key, value);\n },\n httpHandlerConfigs() {\n return httpHandler.httpHandlerConfigs();\n }\n };\n}, \"getHttpHandlerExtensionConfiguration\");\nvar resolveHttpHandlerRuntimeConfig = /* @__PURE__ */ __name((httpHandlerExtensionConfiguration) => {\n return {\n httpHandler: httpHandlerExtensionConfiguration.httpHandler()\n };\n}, \"resolveHttpHandlerRuntimeConfig\");\n\n// src/Field.ts\nvar import_types = require(\"@smithy/types\");\nvar _Field = class _Field {\n constructor({ name, kind = import_types.FieldPosition.HEADER, values = [] }) {\n this.name = name;\n this.kind = kind;\n this.values = values;\n }\n /**\n * Appends a value to the field.\n *\n * @param value The value to append.\n */\n add(value) {\n this.values.push(value);\n }\n /**\n * Overwrite existing field values.\n *\n * @param values The new field values.\n */\n set(values) {\n this.values = values;\n }\n /**\n * Remove all matching entries from list.\n *\n * @param value Value to remove.\n */\n remove(value) {\n this.values = this.values.filter((v) => v !== value);\n }\n /**\n * Get comma-delimited string.\n *\n * @returns String representation of {@link Field}.\n */\n toString() {\n return this.values.map((v) => v.includes(\",\") || v.includes(\" \") ? `\"${v}\"` : v).join(\", \");\n }\n /**\n * Get string values as a list\n *\n * @returns Values in {@link Field} as a list.\n */\n get() {\n return this.values;\n }\n};\n__name(_Field, \"Field\");\nvar Field = _Field;\n\n// src/Fields.ts\nvar _Fields = class _Fields {\n constructor({ fields = [], encoding = \"utf-8\" }) {\n this.entries = {};\n fields.forEach(this.setField.bind(this));\n this.encoding = encoding;\n }\n /**\n * Set entry for a {@link Field} name. The `name`\n * attribute will be used to key the collection.\n *\n * @param field The {@link Field} to set.\n */\n setField(field) {\n this.entries[field.name.toLowerCase()] = field;\n }\n /**\n * Retrieve {@link Field} entry by name.\n *\n * @param name The name of the {@link Field} entry\n * to retrieve\n * @returns The {@link Field} if it exists.\n */\n getField(name) {\n return this.entries[name.toLowerCase()];\n }\n /**\n * Delete entry from collection.\n *\n * @param name Name of the entry to delete.\n */\n removeField(name) {\n delete this.entries[name.toLowerCase()];\n }\n /**\n * Helper function for retrieving specific types of fields.\n * Used to grab all headers or all trailers.\n *\n * @param kind {@link FieldPosition} of entries to retrieve.\n * @returns The {@link Field} entries with the specified\n * {@link FieldPosition}.\n */\n getByType(kind) {\n return Object.values(this.entries).filter((field) => field.kind === kind);\n }\n};\n__name(_Fields, \"Fields\");\nvar Fields = _Fields;\n\n// src/httpRequest.ts\n\nvar _HttpRequest = class _HttpRequest {\n constructor(options) {\n this.method = options.method || \"GET\";\n this.hostname = options.hostname || \"localhost\";\n this.port = options.port;\n this.query = options.query || {};\n this.headers = options.headers || {};\n this.body = options.body;\n this.protocol = options.protocol ? options.protocol.slice(-1) !== \":\" ? `${options.protocol}:` : options.protocol : \"https:\";\n this.path = options.path ? options.path.charAt(0) !== \"/\" ? `/${options.path}` : options.path : \"/\";\n this.username = options.username;\n this.password = options.password;\n this.fragment = options.fragment;\n }\n /**\n * Note: this does not deep-clone the body.\n */\n static clone(request) {\n const cloned = new _HttpRequest({\n ...request,\n headers: { ...request.headers }\n });\n if (cloned.query) {\n cloned.query = cloneQuery(cloned.query);\n }\n return cloned;\n }\n /**\n * This method only actually asserts that request is the interface {@link IHttpRequest},\n * and not necessarily this concrete class. Left in place for API stability.\n *\n * Do not call instance methods on the input of this function, and\n * do not assume it has the HttpRequest prototype.\n */\n static isInstance(request) {\n if (!request) {\n return false;\n }\n const req = request;\n return \"method\" in req && \"protocol\" in req && \"hostname\" in req && \"path\" in req && typeof req[\"query\"] === \"object\" && typeof req[\"headers\"] === \"object\";\n }\n /**\n * @deprecated use static HttpRequest.clone(request) instead. It's not safe to call\n * this method because {@link HttpRequest.isInstance} incorrectly\n * asserts that IHttpRequest (interface) objects are of type HttpRequest (class).\n */\n clone() {\n return _HttpRequest.clone(this);\n }\n};\n__name(_HttpRequest, \"HttpRequest\");\nvar HttpRequest = _HttpRequest;\nfunction cloneQuery(query) {\n return Object.keys(query).reduce((carry, paramName) => {\n const param = query[paramName];\n return {\n ...carry,\n [paramName]: Array.isArray(param) ? [...param] : param\n };\n }, {});\n}\n__name(cloneQuery, \"cloneQuery\");\n\n// src/httpResponse.ts\nvar _HttpResponse = class _HttpResponse {\n constructor(options) {\n this.statusCode = options.statusCode;\n this.reason = options.reason;\n this.headers = options.headers || {};\n this.body = options.body;\n }\n static isInstance(response) {\n if (!response)\n return false;\n const resp = response;\n return typeof resp.statusCode === \"number\" && typeof resp.headers === \"object\";\n }\n};\n__name(_HttpResponse, \"HttpResponse\");\nvar HttpResponse = _HttpResponse;\n\n// src/isValidHostname.ts\nfunction isValidHostname(hostname) {\n const hostPattern = /^[a-z0-9][a-z0-9\\.\\-]*[a-z0-9]$/;\n return hostPattern.test(hostname);\n}\n__name(isValidHostname, \"isValidHostname\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n getHttpHandlerExtensionConfiguration,\n resolveHttpHandlerRuntimeConfig,\n Field,\n Fields,\n HttpRequest,\n HttpResponse,\n isValidHostname\n});\n\n",
|
|
35
|
+
"var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n isClockSkewCorrectedError: () => isClockSkewCorrectedError,\n isClockSkewError: () => isClockSkewError,\n isRetryableByTrait: () => isRetryableByTrait,\n isServerError: () => isServerError,\n isThrottlingError: () => isThrottlingError,\n isTransientError: () => isTransientError\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/constants.ts\nvar CLOCK_SKEW_ERROR_CODES = [\n \"AuthFailure\",\n \"InvalidSignatureException\",\n \"RequestExpired\",\n \"RequestInTheFuture\",\n \"RequestTimeTooSkewed\",\n \"SignatureDoesNotMatch\"\n];\nvar 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 // DynamoDB\n];\nvar TRANSIENT_ERROR_CODES = [\"TimeoutError\", \"RequestTimeout\", \"RequestTimeoutException\"];\nvar TRANSIENT_ERROR_STATUS_CODES = [500, 502, 503, 504];\nvar NODEJS_TIMEOUT_ERROR_CODES = [\"ECONNRESET\", \"ECONNREFUSED\", \"EPIPE\", \"ETIMEDOUT\"];\n\n// src/index.ts\nvar isRetryableByTrait = /* @__PURE__ */ __name((error) => error.$retryable !== void 0, \"isRetryableByTrait\");\nvar isClockSkewError = /* @__PURE__ */ __name((error) => CLOCK_SKEW_ERROR_CODES.includes(error.name), \"isClockSkewError\");\nvar isClockSkewCorrectedError = /* @__PURE__ */ __name((error) => {\n var _a;\n return (_a = error.$metadata) == null ? void 0 : _a.clockSkewCorrected;\n}, \"isClockSkewCorrectedError\");\nvar isThrottlingError = /* @__PURE__ */ __name((error) => {\n var _a, _b;\n return ((_a = error.$metadata) == null ? void 0 : _a.httpStatusCode) === 429 || THROTTLING_ERROR_CODES.includes(error.name) || ((_b = error.$retryable) == null ? void 0 : _b.throttling) == true;\n}, \"isThrottlingError\");\nvar isTransientError = /* @__PURE__ */ __name((error) => {\n var _a;\n return isClockSkewCorrectedError(error) || TRANSIENT_ERROR_CODES.includes(error.name) || NODEJS_TIMEOUT_ERROR_CODES.includes((error == null ? void 0 : error.code) || \"\") || TRANSIENT_ERROR_STATUS_CODES.includes(((_a = error.$metadata) == null ? void 0 : _a.httpStatusCode) || 0);\n}, \"isTransientError\");\nvar isServerError = /* @__PURE__ */ __name((error) => {\n var _a;\n if (((_a = error.$metadata) == null ? void 0 : _a.httpStatusCode) !== void 0) {\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}, \"isServerError\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n isRetryableByTrait,\n isClockSkewError,\n isClockSkewCorrectedError,\n isThrottlingError,\n isTransientError,\n isServerError\n});\n\n",
|
|
36
|
+
"var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n AdaptiveRetryStrategy: () => AdaptiveRetryStrategy,\n ConfiguredRetryStrategy: () => ConfiguredRetryStrategy,\n DEFAULT_MAX_ATTEMPTS: () => DEFAULT_MAX_ATTEMPTS,\n DEFAULT_RETRY_DELAY_BASE: () => DEFAULT_RETRY_DELAY_BASE,\n DEFAULT_RETRY_MODE: () => DEFAULT_RETRY_MODE,\n DefaultRateLimiter: () => DefaultRateLimiter,\n INITIAL_RETRY_TOKENS: () => INITIAL_RETRY_TOKENS,\n INVOCATION_ID_HEADER: () => INVOCATION_ID_HEADER,\n MAXIMUM_RETRY_DELAY: () => MAXIMUM_RETRY_DELAY,\n NO_RETRY_INCREMENT: () => NO_RETRY_INCREMENT,\n REQUEST_HEADER: () => REQUEST_HEADER,\n RETRY_COST: () => RETRY_COST,\n RETRY_MODES: () => RETRY_MODES,\n StandardRetryStrategy: () => StandardRetryStrategy,\n THROTTLING_RETRY_DELAY_BASE: () => THROTTLING_RETRY_DELAY_BASE,\n TIMEOUT_RETRY_COST: () => TIMEOUT_RETRY_COST\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/config.ts\nvar RETRY_MODES = /* @__PURE__ */ ((RETRY_MODES2) => {\n RETRY_MODES2[\"STANDARD\"] = \"standard\";\n RETRY_MODES2[\"ADAPTIVE\"] = \"adaptive\";\n return RETRY_MODES2;\n})(RETRY_MODES || {});\nvar DEFAULT_MAX_ATTEMPTS = 3;\nvar DEFAULT_RETRY_MODE = \"standard\" /* STANDARD */;\n\n// src/DefaultRateLimiter.ts\nvar import_service_error_classification = require(\"@smithy/service-error-classification\");\nvar _DefaultRateLimiter = class _DefaultRateLimiter {\n constructor(options) {\n // Pre-set state variables\n this.currentCapacity = 0;\n this.enabled = false;\n this.lastMaxRate = 0;\n this.measuredTxRate = 0;\n this.requestCount = 0;\n this.lastTimestamp = 0;\n this.timeWindow = 0;\n this.beta = (options == null ? void 0 : options.beta) ?? 0.7;\n this.minCapacity = (options == null ? void 0 : options.minCapacity) ?? 1;\n this.minFillRate = (options == null ? void 0 : options.minFillRate) ?? 0.5;\n this.scaleConstant = (options == null ? void 0 : options.scaleConstant) ?? 0.4;\n this.smooth = (options == null ? void 0 : 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() / 1e3;\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 * 1e3;\n await new Promise((resolve) => setTimeout(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 ((0, import_service_error_classification.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 } 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(\n this.scaleConstant * Math.pow(timestamp - this.lastThrottleTime - this.timeWindow, 3) + this.lastMaxRate\n );\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__name(_DefaultRateLimiter, \"DefaultRateLimiter\");\nvar DefaultRateLimiter = _DefaultRateLimiter;\n\n// src/constants.ts\nvar DEFAULT_RETRY_DELAY_BASE = 100;\nvar MAXIMUM_RETRY_DELAY = 20 * 1e3;\nvar THROTTLING_RETRY_DELAY_BASE = 500;\nvar INITIAL_RETRY_TOKENS = 500;\nvar RETRY_COST = 5;\nvar TIMEOUT_RETRY_COST = 10;\nvar NO_RETRY_INCREMENT = 1;\nvar INVOCATION_ID_HEADER = \"amz-sdk-invocation-id\";\nvar REQUEST_HEADER = \"amz-sdk-request\";\n\n// src/defaultRetryBackoffStrategy.ts\nvar getDefaultRetryBackoffStrategy = /* @__PURE__ */ __name(() => {\n let delayBase = DEFAULT_RETRY_DELAY_BASE;\n const computeNextBackoffDelay = /* @__PURE__ */ __name((attempts) => {\n return Math.floor(Math.min(MAXIMUM_RETRY_DELAY, Math.random() * 2 ** attempts * delayBase));\n }, \"computeNextBackoffDelay\");\n const setDelayBase = /* @__PURE__ */ __name((delay) => {\n delayBase = delay;\n }, \"setDelayBase\");\n return {\n computeNextBackoffDelay,\n setDelayBase\n };\n}, \"getDefaultRetryBackoffStrategy\");\n\n// src/defaultRetryToken.ts\nvar createDefaultRetryToken = /* @__PURE__ */ __name(({\n retryDelay,\n retryCount,\n retryCost\n}) => {\n const getRetryCount = /* @__PURE__ */ __name(() => retryCount, \"getRetryCount\");\n const getRetryDelay = /* @__PURE__ */ __name(() => Math.min(MAXIMUM_RETRY_DELAY, retryDelay), \"getRetryDelay\");\n const getRetryCost = /* @__PURE__ */ __name(() => retryCost, \"getRetryCost\");\n return {\n getRetryCount,\n getRetryDelay,\n getRetryCost\n };\n}, \"createDefaultRetryToken\");\n\n// src/StandardRetryStrategy.ts\nvar _StandardRetryStrategy = class _StandardRetryStrategy {\n constructor(maxAttempts) {\n this.maxAttempts = maxAttempts;\n this.mode = \"standard\" /* STANDARD */;\n this.capacity = INITIAL_RETRY_TOKENS;\n this.retryBackoffStrategy = getDefaultRetryBackoffStrategy();\n this.maxAttemptsProvider = typeof maxAttempts === \"function\" ? maxAttempts : async () => maxAttempts;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\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(\n errorType === \"THROTTLING\" ? THROTTLING_RETRY_DELAY_BASE : DEFAULT_RETRY_DELAY_BASE\n );\n const delayFromErrorType = this.retryBackoffStrategy.computeNextBackoffDelay(token.getRetryCount());\n const retryDelay = errorInfo.retryAfterHint ? Math.max(errorInfo.retryAfterHint.getTime() - Date.now() || 0, delayFromErrorType) : 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 /**\n * @returns the current available retry capacity.\n *\n * This number decreases when retries are executed and refills when requests or retries succeed.\n */\n getCapacity() {\n return this.capacity;\n }\n async getMaxAttempts() {\n try {\n return await this.maxAttemptsProvider();\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 && this.capacity >= this.getCapacityCost(errorInfo.errorType) && 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__name(_StandardRetryStrategy, \"StandardRetryStrategy\");\nvar StandardRetryStrategy = _StandardRetryStrategy;\n\n// src/AdaptiveRetryStrategy.ts\nvar _AdaptiveRetryStrategy = class _AdaptiveRetryStrategy {\n constructor(maxAttemptsProvider, options) {\n this.maxAttemptsProvider = maxAttemptsProvider;\n this.mode = \"adaptive\" /* ADAPTIVE */;\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__name(_AdaptiveRetryStrategy, \"AdaptiveRetryStrategy\");\nvar AdaptiveRetryStrategy = _AdaptiveRetryStrategy;\n\n// src/ConfiguredRetryStrategy.ts\nvar _ConfiguredRetryStrategy = class _ConfiguredRetryStrategy extends StandardRetryStrategy {\n /**\n * @param maxAttempts - the maximum number of retry attempts allowed.\n * e.g., if set to 3, then 4 total requests are possible.\n * @param computeNextBackoffDelay - a millisecond delay for each retry or a function that takes the retry attempt\n * and returns the delay.\n *\n * @example exponential backoff.\n * ```js\n * new Client({\n * retryStrategy: new ConfiguredRetryStrategy(3, (attempt) => attempt ** 2)\n * });\n * ```\n * @example constant delay.\n * ```js\n * new Client({\n * retryStrategy: new ConfiguredRetryStrategy(3, 2000)\n * });\n * ```\n */\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 } 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__name(_ConfiguredRetryStrategy, \"ConfiguredRetryStrategy\");\nvar ConfiguredRetryStrategy = _ConfiguredRetryStrategy;\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n AdaptiveRetryStrategy,\n ConfiguredRetryStrategy,\n DefaultRateLimiter,\n StandardRetryStrategy,\n RETRY_MODES,\n DEFAULT_MAX_ATTEMPTS,\n DEFAULT_RETRY_MODE,\n DEFAULT_RETRY_DELAY_BASE,\n MAXIMUM_RETRY_DELAY,\n THROTTLING_RETRY_DELAY_BASE,\n INITIAL_RETRY_TOKENS,\n RETRY_COST,\n TIMEOUT_RETRY_COST,\n NO_RETRY_INCREMENT,\n INVOCATION_ID_HEADER,\n REQUEST_HEADER\n});\n\n",
|
|
37
|
+
"var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n constructStack: () => constructStack\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/MiddlewareStack.ts\nvar getAllAliases = /* @__PURE__ */ __name((name, aliases) => {\n const _aliases = [];\n if (name) {\n _aliases.push(name);\n }\n if (aliases) {\n for (const alias of aliases) {\n _aliases.push(alias);\n }\n }\n return _aliases;\n}, \"getAllAliases\");\nvar getMiddlewareNameWithAliases = /* @__PURE__ */ __name((name, aliases) => {\n return `${name || \"anonymous\"}${aliases && aliases.length > 0 ? ` (a.k.a. ${aliases.join(\",\")})` : \"\"}`;\n}, \"getMiddlewareNameWithAliases\");\nvar constructStack = /* @__PURE__ */ __name(() => {\n let absoluteEntries = [];\n let relativeEntries = [];\n let identifyOnResolve = false;\n const entriesNameSet = /* @__PURE__ */ new Set();\n const sort = /* @__PURE__ */ __name((entries) => entries.sort(\n (a, b) => stepWeights[b.step] - stepWeights[a.step] || priorityWeights[b.priority || \"normal\"] - priorityWeights[a.priority || \"normal\"]\n ), \"sort\");\n const removeByName = /* @__PURE__ */ __name((toRemove) => {\n let isRemoved = false;\n const filterCb = /* @__PURE__ */ __name((entry) => {\n const aliases = getAllAliases(entry.name, entry.aliases);\n if (aliases.includes(toRemove)) {\n isRemoved = true;\n for (const alias of aliases) {\n entriesNameSet.delete(alias);\n }\n return false;\n }\n return true;\n }, \"filterCb\");\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n }, \"removeByName\");\n const removeByReference = /* @__PURE__ */ __name((toRemove) => {\n let isRemoved = false;\n const filterCb = /* @__PURE__ */ __name((entry) => {\n if (entry.middleware === toRemove) {\n isRemoved = true;\n for (const alias of getAllAliases(entry.name, entry.aliases)) {\n entriesNameSet.delete(alias);\n }\n return false;\n }\n return true;\n }, \"filterCb\");\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n }, \"removeByReference\");\n const cloneTo = /* @__PURE__ */ __name((toStack) => {\n var _a;\n absoluteEntries.forEach((entry) => {\n toStack.add(entry.middleware, { ...entry });\n });\n relativeEntries.forEach((entry) => {\n toStack.addRelativeTo(entry.middleware, { ...entry });\n });\n (_a = toStack.identifyOnResolve) == null ? void 0 : _a.call(toStack, stack.identifyOnResolve());\n return toStack;\n }, \"cloneTo\");\n const expandRelativeMiddlewareList = /* @__PURE__ */ __name((from) => {\n const expandedMiddlewareList = [];\n from.before.forEach((entry) => {\n if (entry.before.length === 0 && entry.after.length === 0) {\n expandedMiddlewareList.push(entry);\n } else {\n expandedMiddlewareList.push(...expandRelativeMiddlewareList(entry));\n }\n });\n expandedMiddlewareList.push(from);\n from.after.reverse().forEach((entry) => {\n if (entry.before.length === 0 && entry.after.length === 0) {\n expandedMiddlewareList.push(entry);\n } else {\n expandedMiddlewareList.push(...expandRelativeMiddlewareList(entry));\n }\n });\n return expandedMiddlewareList;\n }, \"expandRelativeMiddlewareList\");\n const getMiddlewareList = /* @__PURE__ */ __name((debug = false) => {\n const normalizedAbsoluteEntries = [];\n const normalizedRelativeEntries = [];\n const normalizedEntriesNameMap = {};\n absoluteEntries.forEach((entry) => {\n const normalizedEntry = {\n ...entry,\n before: [],\n after: []\n };\n for (const alias of getAllAliases(normalizedEntry.name, normalizedEntry.aliases)) {\n normalizedEntriesNameMap[alias] = normalizedEntry;\n }\n normalizedAbsoluteEntries.push(normalizedEntry);\n });\n relativeEntries.forEach((entry) => {\n const normalizedEntry = {\n ...entry,\n before: [],\n after: []\n };\n for (const alias of getAllAliases(normalizedEntry.name, normalizedEntry.aliases)) {\n normalizedEntriesNameMap[alias] = normalizedEntry;\n }\n normalizedRelativeEntries.push(normalizedEntry);\n });\n normalizedRelativeEntries.forEach((entry) => {\n if (entry.toMiddleware) {\n const toMiddleware = normalizedEntriesNameMap[entry.toMiddleware];\n if (toMiddleware === void 0) {\n if (debug) {\n return;\n }\n throw new Error(\n `${entry.toMiddleware} is not found when adding ${getMiddlewareNameWithAliases(entry.name, entry.aliases)} middleware ${entry.relation} ${entry.toMiddleware}`\n );\n }\n if (entry.relation === \"after\") {\n toMiddleware.after.push(entry);\n }\n if (entry.relation === \"before\") {\n toMiddleware.before.push(entry);\n }\n }\n });\n const mainChain = sort(normalizedAbsoluteEntries).map(expandRelativeMiddlewareList).reduce(\n (wholeList, expandedMiddlewareList) => {\n wholeList.push(...expandedMiddlewareList);\n return wholeList;\n },\n []\n );\n return mainChain;\n }, \"getMiddlewareList\");\n const stack = {\n add: (middleware, options = {}) => {\n const { name, override, aliases: _aliases } = options;\n const entry = {\n step: \"initialize\",\n priority: \"normal\",\n middleware,\n ...options\n };\n const aliases = getAllAliases(name, _aliases);\n if (aliases.length > 0) {\n if (aliases.some((alias) => entriesNameSet.has(alias))) {\n if (!override)\n throw new Error(`Duplicate middleware name '${getMiddlewareNameWithAliases(name, _aliases)}'`);\n for (const alias of aliases) {\n const toOverrideIndex = absoluteEntries.findIndex(\n (entry2) => {\n var _a;\n return entry2.name === alias || ((_a = entry2.aliases) == null ? void 0 : _a.some((a) => a === alias));\n }\n );\n if (toOverrideIndex === -1) {\n continue;\n }\n const toOverride = absoluteEntries[toOverrideIndex];\n if (toOverride.step !== entry.step || entry.priority !== toOverride.priority) {\n throw new Error(\n `\"${getMiddlewareNameWithAliases(toOverride.name, toOverride.aliases)}\" middleware with ${toOverride.priority} priority in ${toOverride.step} step cannot be overridden by \"${getMiddlewareNameWithAliases(name, _aliases)}\" middleware with ${entry.priority} priority in ${entry.step} step.`\n );\n }\n absoluteEntries.splice(toOverrideIndex, 1);\n }\n }\n for (const alias of aliases) {\n entriesNameSet.add(alias);\n }\n }\n absoluteEntries.push(entry);\n },\n addRelativeTo: (middleware, options) => {\n const { name, override, aliases: _aliases } = options;\n const entry = {\n middleware,\n ...options\n };\n const aliases = getAllAliases(name, _aliases);\n if (aliases.length > 0) {\n if (aliases.some((alias) => entriesNameSet.has(alias))) {\n if (!override)\n throw new Error(`Duplicate middleware name '${getMiddlewareNameWithAliases(name, _aliases)}'`);\n for (const alias of aliases) {\n const toOverrideIndex = relativeEntries.findIndex(\n (entry2) => {\n var _a;\n return entry2.name === alias || ((_a = entry2.aliases) == null ? void 0 : _a.some((a) => a === alias));\n }\n );\n if (toOverrideIndex === -1) {\n continue;\n }\n const toOverride = relativeEntries[toOverrideIndex];\n if (toOverride.toMiddleware !== entry.toMiddleware || toOverride.relation !== entry.relation) {\n throw new Error(\n `\"${getMiddlewareNameWithAliases(toOverride.name, toOverride.aliases)}\" middleware ${toOverride.relation} \"${toOverride.toMiddleware}\" middleware cannot be overridden by \"${getMiddlewareNameWithAliases(name, _aliases)}\" middleware ${entry.relation} \"${entry.toMiddleware}\" middleware.`\n );\n }\n relativeEntries.splice(toOverrideIndex, 1);\n }\n }\n for (const alias of aliases) {\n entriesNameSet.add(alias);\n }\n }\n relativeEntries.push(entry);\n },\n clone: () => cloneTo(constructStack()),\n use: (plugin) => {\n plugin.applyToStack(stack);\n },\n remove: (toRemove) => {\n if (typeof toRemove === \"string\")\n return removeByName(toRemove);\n else\n return removeByReference(toRemove);\n },\n removeByTag: (toRemove) => {\n let isRemoved = false;\n const filterCb = /* @__PURE__ */ __name((entry) => {\n const { tags, name, aliases: _aliases } = entry;\n if (tags && tags.includes(toRemove)) {\n const aliases = getAllAliases(name, _aliases);\n for (const alias of aliases) {\n entriesNameSet.delete(alias);\n }\n isRemoved = true;\n return false;\n }\n return true;\n }, \"filterCb\");\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n },\n concat: (from) => {\n var _a;\n const cloned = cloneTo(constructStack());\n cloned.use(from);\n cloned.identifyOnResolve(\n identifyOnResolve || cloned.identifyOnResolve() || (((_a = from.identifyOnResolve) == null ? void 0 : _a.call(from)) ?? false)\n );\n return cloned;\n },\n applyToStack: cloneTo,\n identify: () => {\n return getMiddlewareList(true).map((mw) => {\n const step = mw.step ?? mw.relation + \" \" + mw.toMiddleware;\n return getMiddlewareNameWithAliases(mw.name, mw.aliases) + \" - \" + step;\n });\n },\n identifyOnResolve(toggle) {\n if (typeof toggle === \"boolean\")\n identifyOnResolve = toggle;\n return identifyOnResolve;\n },\n resolve: (handler, context) => {\n for (const middleware of getMiddlewareList().map((entry) => entry.middleware).reverse()) {\n handler = middleware(handler, context);\n }\n if (identifyOnResolve) {\n console.log(stack.identify());\n }\n return handler;\n }\n };\n return stack;\n}, \"constructStack\");\nvar stepWeights = {\n initialize: 5,\n serialize: 4,\n build: 3,\n finalizeRequest: 2,\n deserialize: 1\n};\nvar priorityWeights = {\n high: 3,\n normal: 2,\n low: 1\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n constructStack\n});\n\n",
|
|
38
|
+
"var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n isArrayBuffer: () => isArrayBuffer\n});\nmodule.exports = __toCommonJS(src_exports);\nvar isArrayBuffer = /* @__PURE__ */ __name((arg) => typeof ArrayBuffer === \"function\" && arg instanceof ArrayBuffer || Object.prototype.toString.call(arg) === \"[object ArrayBuffer]\", \"isArrayBuffer\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n isArrayBuffer\n});\n\n",
|
|
39
|
+
"var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n fromArrayBuffer: () => fromArrayBuffer,\n fromString: () => fromString\n});\nmodule.exports = __toCommonJS(src_exports);\nvar import_is_array_buffer = require(\"@smithy/is-array-buffer\");\nvar import_buffer = require(\"buffer\");\nvar fromArrayBuffer = /* @__PURE__ */ __name((input, offset = 0, length = input.byteLength - offset) => {\n if (!(0, import_is_array_buffer.isArrayBuffer)(input)) {\n throw new TypeError(`The \"input\" argument must be ArrayBuffer. Received type ${typeof input} (${input})`);\n }\n return import_buffer.Buffer.from(input, offset, length);\n}, \"fromArrayBuffer\");\nvar fromString = /* @__PURE__ */ __name((input, encoding) => {\n if (typeof input !== \"string\") {\n throw new TypeError(`The \"input\" argument must be of type string. Received type ${typeof input} (${input})`);\n }\n return encoding ? import_buffer.Buffer.from(input, encoding) : import_buffer.Buffer.from(input);\n}, \"fromString\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromArrayBuffer,\n fromString\n});\n\n",
|
|
40
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromBase64 = void 0;\nconst util_buffer_from_1 = require(\"@smithy/util-buffer-from\");\nconst BASE64_REGEX = /^[A-Za-z0-9+/]*={0,2}$/;\nconst fromBase64 = (input) => {\n if ((input.length * 3) % 4 !== 0) {\n throw new TypeError(`Incorrect padding on base64 string.`);\n }\n if (!BASE64_REGEX.exec(input)) {\n throw new TypeError(`Invalid base64 string.`);\n }\n const buffer = (0, util_buffer_from_1.fromString)(input, \"base64\");\n return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n};\nexports.fromBase64 = fromBase64;\n",
|
|
41
|
+
"var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n fromUtf8: () => fromUtf8,\n toUint8Array: () => toUint8Array,\n toUtf8: () => toUtf8\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/fromUtf8.ts\nvar import_util_buffer_from = require(\"@smithy/util-buffer-from\");\nvar fromUtf8 = /* @__PURE__ */ __name((input) => {\n const buf = (0, import_util_buffer_from.fromString)(input, \"utf8\");\n return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n}, \"fromUtf8\");\n\n// src/toUint8Array.ts\nvar toUint8Array = /* @__PURE__ */ __name((data) => {\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n}, \"toUint8Array\");\n\n// src/toUtf8.ts\n\nvar toUtf8 = /* @__PURE__ */ __name((input) => {\n if (typeof input === \"string\") {\n return input;\n }\n if (typeof input !== \"object\" || typeof input.byteOffset !== \"number\" || typeof input.byteLength !== \"number\") {\n throw new Error(\"@smithy/util-utf8: toUtf8 encoder function only accepts string | Uint8Array.\");\n }\n return (0, import_util_buffer_from.fromArrayBuffer)(input.buffer, input.byteOffset, input.byteLength).toString(\"utf8\");\n}, \"toUtf8\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromUtf8,\n toUint8Array,\n toUtf8\n});\n\n",
|
|
42
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toBase64 = void 0;\nconst util_buffer_from_1 = require(\"@smithy/util-buffer-from\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst toBase64 = (_input) => {\n let input;\n if (typeof _input === \"string\") {\n input = (0, util_utf8_1.fromUtf8)(_input);\n }\n else {\n input = _input;\n }\n if (typeof input !== \"object\" || typeof input.byteOffset !== \"number\" || typeof input.byteLength !== \"number\") {\n throw new Error(\"@smithy/util-base64: toBase64 encoder function only accepts string | Uint8Array.\");\n }\n return (0, util_buffer_from_1.fromArrayBuffer)(input.buffer, input.byteOffset, input.byteLength).toString(\"base64\");\n};\nexports.toBase64 = toBase64;\n",
|
|
43
|
+
"var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\nmodule.exports = __toCommonJS(src_exports);\n__reExport(src_exports, require(\"././fromBase64\"), module.exports);\n__reExport(src_exports, require(\"././toBase64\"), module.exports);\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromBase64,\n toBase64\n});\n\n",
|
|
44
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getAwsChunkedEncodingStream = void 0;\nconst stream_1 = require(\"stream\");\nconst getAwsChunkedEncodingStream = (readableStream, options) => {\n const { base64Encoder, bodyLengthChecker, checksumAlgorithmFn, checksumLocationName, streamHasher } = options;\n const checksumRequired = base64Encoder !== undefined &&\n checksumAlgorithmFn !== undefined &&\n checksumLocationName !== undefined &&\n streamHasher !== undefined;\n const digest = checksumRequired ? streamHasher(checksumAlgorithmFn, readableStream) : undefined;\n const awsChunkedEncodingStream = new stream_1.Readable({ read: () => { } });\n readableStream.on(\"data\", (data) => {\n const length = bodyLengthChecker(data) || 0;\n awsChunkedEncodingStream.push(`${length.toString(16)}\\r\\n`);\n awsChunkedEncodingStream.push(data);\n awsChunkedEncodingStream.push(\"\\r\\n\");\n });\n readableStream.on(\"end\", async () => {\n awsChunkedEncodingStream.push(`0\\r\\n`);\n if (checksumRequired) {\n const checksum = base64Encoder(await digest);\n awsChunkedEncodingStream.push(`${checksumLocationName}:${checksum}\\r\\n`);\n awsChunkedEncodingStream.push(`\\r\\n`);\n }\n awsChunkedEncodingStream.push(null);\n });\n return awsChunkedEncodingStream;\n};\nexports.getAwsChunkedEncodingStream = getAwsChunkedEncodingStream;\n",
|
|
45
|
+
"var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n buildQueryString: () => buildQueryString\n});\nmodule.exports = __toCommonJS(src_exports);\nvar import_util_uri_escape = require(\"@smithy/util-uri-escape\");\nfunction buildQueryString(query) {\n const parts = [];\n for (let key of Object.keys(query).sort()) {\n const value = query[key];\n key = (0, import_util_uri_escape.escapeUri)(key);\n if (Array.isArray(value)) {\n for (let i = 0, iLen = value.length; i < iLen; i++) {\n parts.push(`${key}=${(0, import_util_uri_escape.escapeUri)(value[i])}`);\n }\n } else {\n let qsEntry = key;\n if (value || typeof value === \"string\") {\n qsEntry += `=${(0, import_util_uri_escape.escapeUri)(value)}`;\n }\n parts.push(qsEntry);\n }\n }\n return parts.join(\"&\");\n}\n__name(buildQueryString, \"buildQueryString\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n buildQueryString\n});\n\n",
|
|
46
|
+
"var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n DEFAULT_REQUEST_TIMEOUT: () => DEFAULT_REQUEST_TIMEOUT,\n NodeHttp2Handler: () => NodeHttp2Handler,\n NodeHttpHandler: () => NodeHttpHandler,\n streamCollector: () => streamCollector\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/node-http-handler.ts\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_querystring_builder = require(\"@smithy/querystring-builder\");\nvar import_http = require(\"http\");\nvar import_https = require(\"https\");\n\n// src/constants.ts\nvar NODEJS_TIMEOUT_ERROR_CODES = [\"ECONNRESET\", \"EPIPE\", \"ETIMEDOUT\"];\n\n// src/get-transformed-headers.ts\nvar getTransformedHeaders = /* @__PURE__ */ __name((headers) => {\n const transformedHeaders = {};\n for (const name of Object.keys(headers)) {\n const headerValues = headers[name];\n transformedHeaders[name] = Array.isArray(headerValues) ? headerValues.join(\",\") : headerValues;\n }\n return transformedHeaders;\n}, \"getTransformedHeaders\");\n\n// src/set-connection-timeout.ts\nvar DEFER_EVENT_LISTENER_TIME = 1e3;\nvar setConnectionTimeout = /* @__PURE__ */ __name((request, reject, timeoutInMs = 0) => {\n if (!timeoutInMs) {\n return -1;\n }\n const registerTimeout = /* @__PURE__ */ __name((offset) => {\n const timeoutId = setTimeout(() => {\n request.destroy();\n reject(\n Object.assign(new Error(`Socket timed out without establishing a connection within ${timeoutInMs} ms`), {\n name: \"TimeoutError\"\n })\n );\n }, timeoutInMs - offset);\n const doWithSocket = /* @__PURE__ */ __name((socket) => {\n if (socket == null ? void 0 : socket.connecting) {\n socket.on(\"connect\", () => {\n clearTimeout(timeoutId);\n });\n } else {\n clearTimeout(timeoutId);\n }\n }, \"doWithSocket\");\n if (request.socket) {\n doWithSocket(request.socket);\n } else {\n request.on(\"socket\", doWithSocket);\n }\n }, \"registerTimeout\");\n if (timeoutInMs < 2e3) {\n registerTimeout(0);\n return 0;\n }\n return setTimeout(registerTimeout.bind(null, DEFER_EVENT_LISTENER_TIME), DEFER_EVENT_LISTENER_TIME);\n}, \"setConnectionTimeout\");\n\n// src/set-socket-keep-alive.ts\nvar DEFER_EVENT_LISTENER_TIME2 = 3e3;\nvar setSocketKeepAlive = /* @__PURE__ */ __name((request, { keepAlive, keepAliveMsecs }, deferTimeMs = DEFER_EVENT_LISTENER_TIME2) => {\n if (keepAlive !== true) {\n return -1;\n }\n const registerListener = /* @__PURE__ */ __name(() => {\n if (request.socket) {\n request.socket.setKeepAlive(keepAlive, keepAliveMsecs || 0);\n } else {\n request.on(\"socket\", (socket) => {\n socket.setKeepAlive(keepAlive, keepAliveMsecs || 0);\n });\n }\n }, \"registerListener\");\n if (deferTimeMs === 0) {\n registerListener();\n return 0;\n }\n return setTimeout(registerListener, deferTimeMs);\n}, \"setSocketKeepAlive\");\n\n// src/set-socket-timeout.ts\nvar DEFER_EVENT_LISTENER_TIME3 = 3e3;\nvar setSocketTimeout = /* @__PURE__ */ __name((request, reject, timeoutInMs = 0) => {\n const registerTimeout = /* @__PURE__ */ __name((offset) => {\n request.setTimeout(timeoutInMs - offset, () => {\n request.destroy();\n reject(Object.assign(new Error(`Connection timed out after ${timeoutInMs} ms`), { name: \"TimeoutError\" }));\n });\n }, \"registerTimeout\");\n if (0 < timeoutInMs && timeoutInMs < 6e3) {\n registerTimeout(0);\n return 0;\n }\n return setTimeout(\n registerTimeout.bind(null, timeoutInMs === 0 ? 0 : DEFER_EVENT_LISTENER_TIME3),\n DEFER_EVENT_LISTENER_TIME3\n );\n}, \"setSocketTimeout\");\n\n// src/write-request-body.ts\nvar import_stream = require(\"stream\");\nvar MIN_WAIT_TIME = 1e3;\nasync function writeRequestBody(httpRequest, request, maxContinueTimeoutMs = MIN_WAIT_TIME) {\n const headers = request.headers ?? {};\n const expect = headers[\"Expect\"] || headers[\"expect\"];\n let timeoutId = -1;\n let hasError = false;\n if (expect === \"100-continue\") {\n await Promise.race([\n new Promise((resolve) => {\n timeoutId = Number(setTimeout(resolve, Math.max(MIN_WAIT_TIME, maxContinueTimeoutMs)));\n }),\n new Promise((resolve) => {\n httpRequest.on(\"continue\", () => {\n clearTimeout(timeoutId);\n resolve();\n });\n httpRequest.on(\"error\", () => {\n hasError = true;\n clearTimeout(timeoutId);\n resolve();\n });\n })\n ]);\n }\n if (!hasError) {\n writeBody(httpRequest, request.body);\n }\n}\n__name(writeRequestBody, \"writeRequestBody\");\nfunction writeBody(httpRequest, body) {\n if (body instanceof import_stream.Readable) {\n body.pipe(httpRequest);\n return;\n }\n if (body) {\n if (Buffer.isBuffer(body) || typeof body === \"string\") {\n httpRequest.end(body);\n return;\n }\n const uint8 = body;\n if (typeof uint8 === \"object\" && uint8.buffer && typeof uint8.byteOffset === \"number\" && typeof uint8.byteLength === \"number\") {\n httpRequest.end(Buffer.from(uint8.buffer, uint8.byteOffset, uint8.byteLength));\n return;\n }\n httpRequest.end(Buffer.from(body));\n return;\n }\n httpRequest.end();\n}\n__name(writeBody, \"writeBody\");\n\n// src/node-http-handler.ts\nvar DEFAULT_REQUEST_TIMEOUT = 0;\nvar _NodeHttpHandler = class _NodeHttpHandler {\n constructor(options) {\n this.socketWarningTimestamp = 0;\n // Node http handler is hard-coded to http/1.1: https://github.com/nodejs/node/blob/ff5664b83b89c55e4ab5d5f60068fb457f1f5872/lib/_http_server.js#L286\n this.metadata = { handlerProtocol: \"http/1.1\" };\n this.configProvider = new Promise((resolve, reject) => {\n if (typeof options === \"function\") {\n options().then((_options) => {\n resolve(this.resolveDefaultConfig(_options));\n }).catch(reject);\n } else {\n resolve(this.resolveDefaultConfig(options));\n }\n });\n }\n /**\n * @returns the input if it is an HttpHandler of any class,\n * or instantiates a new instance of this handler.\n */\n static create(instanceOrOptions) {\n if (typeof (instanceOrOptions == null ? void 0 : instanceOrOptions.handle) === \"function\") {\n return instanceOrOptions;\n }\n return new _NodeHttpHandler(instanceOrOptions);\n }\n /**\n * @internal\n *\n * @param agent - http(s) agent in use by the NodeHttpHandler instance.\n * @param socketWarningTimestamp - last socket usage check timestamp.\n * @param logger - channel for the warning.\n * @returns timestamp of last emitted warning.\n */\n static checkSocketUsage(agent, socketWarningTimestamp, logger = console) {\n var _a, _b, _c;\n const { sockets, requests, maxSockets } = agent;\n if (typeof maxSockets !== \"number\" || maxSockets === Infinity) {\n return socketWarningTimestamp;\n }\n const interval = 15e3;\n if (Date.now() - interval < socketWarningTimestamp) {\n return socketWarningTimestamp;\n }\n if (sockets && requests) {\n for (const origin in sockets) {\n const socketsInUse = ((_a = sockets[origin]) == null ? void 0 : _a.length) ?? 0;\n const requestsEnqueued = ((_b = requests[origin]) == null ? void 0 : _b.length) ?? 0;\n if (socketsInUse >= maxSockets && requestsEnqueued >= 2 * maxSockets) {\n (_c = logger == null ? void 0 : logger.warn) == null ? void 0 : _c.call(\n logger,\n `@smithy/node-http-handler:WARN - socket usage at capacity=${socketsInUse} and ${requestsEnqueued} additional requests are enqueued.\nSee https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html\nor increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.`\n );\n return Date.now();\n }\n }\n }\n return socketWarningTimestamp;\n }\n resolveDefaultConfig(options) {\n const { requestTimeout, connectionTimeout, socketTimeout, httpAgent, httpsAgent } = options || {};\n const keepAlive = true;\n const maxSockets = 50;\n return {\n connectionTimeout,\n requestTimeout: requestTimeout ?? socketTimeout,\n httpAgent: (() => {\n if (httpAgent instanceof import_http.Agent || typeof (httpAgent == null ? void 0 : httpAgent.destroy) === \"function\") {\n return httpAgent;\n }\n return new import_http.Agent({ keepAlive, maxSockets, ...httpAgent });\n })(),\n httpsAgent: (() => {\n if (httpsAgent instanceof import_https.Agent || typeof (httpsAgent == null ? void 0 : httpsAgent.destroy) === \"function\") {\n return httpsAgent;\n }\n return new import_https.Agent({ keepAlive, maxSockets, ...httpsAgent });\n })(),\n logger: console\n };\n }\n destroy() {\n var _a, _b, _c, _d;\n (_b = (_a = this.config) == null ? void 0 : _a.httpAgent) == null ? void 0 : _b.destroy();\n (_d = (_c = this.config) == null ? void 0 : _c.httpsAgent) == null ? void 0 : _d.destroy();\n }\n async handle(request, { abortSignal } = {}) {\n if (!this.config) {\n this.config = await this.configProvider;\n }\n return new Promise((_resolve, _reject) => {\n let writeRequestBodyPromise = void 0;\n const timeouts = [];\n const resolve = /* @__PURE__ */ __name(async (arg) => {\n await writeRequestBodyPromise;\n timeouts.forEach(clearTimeout);\n _resolve(arg);\n }, \"resolve\");\n const reject = /* @__PURE__ */ __name(async (arg) => {\n await writeRequestBodyPromise;\n timeouts.forEach(clearTimeout);\n _reject(arg);\n }, \"reject\");\n if (!this.config) {\n throw new Error(\"Node HTTP request handler config is not resolved\");\n }\n if (abortSignal == null ? void 0 : abortSignal.aborted) {\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n reject(abortError);\n return;\n }\n const isSSL = request.protocol === \"https:\";\n const agent = isSSL ? this.config.httpsAgent : this.config.httpAgent;\n timeouts.push(\n setTimeout(\n () => {\n this.socketWarningTimestamp = _NodeHttpHandler.checkSocketUsage(\n agent,\n this.socketWarningTimestamp,\n this.config.logger\n );\n },\n this.config.socketAcquisitionWarningTimeout ?? (this.config.requestTimeout ?? 2e3) + (this.config.connectionTimeout ?? 1e3)\n )\n );\n const queryString = (0, import_querystring_builder.buildQueryString)(request.query || {});\n let auth = void 0;\n if (request.username != null || request.password != null) {\n const username = request.username ?? \"\";\n const password = request.password ?? \"\";\n auth = `${username}:${password}`;\n }\n let path = request.path;\n if (queryString) {\n path += `?${queryString}`;\n }\n if (request.fragment) {\n path += `#${request.fragment}`;\n }\n let hostname = request.hostname ?? \"\";\n if (hostname[0] === \"[\" && hostname.endsWith(\"]\")) {\n hostname = request.hostname.slice(1, -1);\n } else {\n hostname = request.hostname;\n }\n const nodeHttpsOptions = {\n headers: request.headers,\n host: hostname,\n method: request.method,\n path,\n port: request.port,\n agent,\n auth\n };\n const requestFunc = isSSL ? import_https.request : import_http.request;\n const req = requestFunc(nodeHttpsOptions, (res) => {\n const httpResponse = new import_protocol_http.HttpResponse({\n statusCode: res.statusCode || -1,\n reason: res.statusMessage,\n headers: getTransformedHeaders(res.headers),\n body: res\n });\n resolve({ response: httpResponse });\n });\n req.on(\"error\", (err) => {\n if (NODEJS_TIMEOUT_ERROR_CODES.includes(err.code)) {\n reject(Object.assign(err, { name: \"TimeoutError\" }));\n } else {\n reject(err);\n }\n });\n if (abortSignal) {\n const onAbort = /* @__PURE__ */ __name(() => {\n req.destroy();\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n reject(abortError);\n }, \"onAbort\");\n if (typeof abortSignal.addEventListener === \"function\") {\n const signal = abortSignal;\n signal.addEventListener(\"abort\", onAbort, { once: true });\n req.once(\"close\", () => signal.removeEventListener(\"abort\", onAbort));\n } else {\n abortSignal.onabort = onAbort;\n }\n }\n timeouts.push(setConnectionTimeout(req, reject, this.config.connectionTimeout));\n timeouts.push(setSocketTimeout(req, reject, this.config.requestTimeout));\n const httpAgent = nodeHttpsOptions.agent;\n if (typeof httpAgent === \"object\" && \"keepAlive\" in httpAgent) {\n timeouts.push(\n setSocketKeepAlive(req, {\n // @ts-expect-error keepAlive is not public on httpAgent.\n keepAlive: httpAgent.keepAlive,\n // @ts-expect-error keepAliveMsecs is not public on httpAgent.\n keepAliveMsecs: httpAgent.keepAliveMsecs\n })\n );\n }\n writeRequestBodyPromise = writeRequestBody(req, request, this.config.requestTimeout).catch((e) => {\n timeouts.forEach(clearTimeout);\n return _reject(e);\n });\n });\n }\n updateHttpClientConfig(key, value) {\n this.config = void 0;\n this.configProvider = this.configProvider.then((config) => {\n return {\n ...config,\n [key]: value\n };\n });\n }\n httpHandlerConfigs() {\n return this.config ?? {};\n }\n};\n__name(_NodeHttpHandler, \"NodeHttpHandler\");\nvar NodeHttpHandler = _NodeHttpHandler;\n\n// src/node-http2-handler.ts\n\n\nvar import_http22 = require(\"http2\");\n\n// src/node-http2-connection-manager.ts\nvar import_http2 = __toESM(require(\"http2\"));\n\n// src/node-http2-connection-pool.ts\nvar _NodeHttp2ConnectionPool = class _NodeHttp2ConnectionPool {\n constructor(sessions) {\n this.sessions = [];\n this.sessions = sessions ?? [];\n }\n poll() {\n if (this.sessions.length > 0) {\n return this.sessions.shift();\n }\n }\n offerLast(session) {\n this.sessions.push(session);\n }\n contains(session) {\n return this.sessions.includes(session);\n }\n remove(session) {\n this.sessions = this.sessions.filter((s) => s !== session);\n }\n [Symbol.iterator]() {\n return this.sessions[Symbol.iterator]();\n }\n destroy(connection) {\n for (const session of this.sessions) {\n if (session === connection) {\n if (!session.destroyed) {\n session.destroy();\n }\n }\n }\n }\n};\n__name(_NodeHttp2ConnectionPool, \"NodeHttp2ConnectionPool\");\nvar NodeHttp2ConnectionPool = _NodeHttp2ConnectionPool;\n\n// src/node-http2-connection-manager.ts\nvar _NodeHttp2ConnectionManager = class _NodeHttp2ConnectionManager {\n constructor(config) {\n this.sessionCache = /* @__PURE__ */ new Map();\n this.config = config;\n if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) {\n throw new RangeError(\"maxConcurrency must be greater than zero.\");\n }\n }\n lease(requestContext, connectionConfiguration) {\n const url = this.getUrlString(requestContext);\n const existingPool = this.sessionCache.get(url);\n if (existingPool) {\n const existingSession = existingPool.poll();\n if (existingSession && !this.config.disableConcurrency) {\n return existingSession;\n }\n }\n const session = import_http2.default.connect(url);\n if (this.config.maxConcurrency) {\n session.settings({ maxConcurrentStreams: this.config.maxConcurrency }, (err) => {\n if (err) {\n throw new Error(\n \"Fail to set maxConcurrentStreams to \" + this.config.maxConcurrency + \"when creating new session for \" + requestContext.destination.toString()\n );\n }\n });\n }\n session.unref();\n const destroySessionCb = /* @__PURE__ */ __name(() => {\n session.destroy();\n this.deleteSession(url, session);\n }, \"destroySessionCb\");\n session.on(\"goaway\", destroySessionCb);\n session.on(\"error\", destroySessionCb);\n session.on(\"frameError\", destroySessionCb);\n session.on(\"close\", () => this.deleteSession(url, session));\n if (connectionConfiguration.requestTimeout) {\n session.setTimeout(connectionConfiguration.requestTimeout, destroySessionCb);\n }\n const connectionPool = this.sessionCache.get(url) || new NodeHttp2ConnectionPool();\n connectionPool.offerLast(session);\n this.sessionCache.set(url, connectionPool);\n return session;\n }\n /**\n * Delete a session from the connection pool.\n * @param authority The authority of the session to delete.\n * @param session The session to delete.\n */\n deleteSession(authority, session) {\n const existingConnectionPool = this.sessionCache.get(authority);\n if (!existingConnectionPool) {\n return;\n }\n if (!existingConnectionPool.contains(session)) {\n return;\n }\n existingConnectionPool.remove(session);\n this.sessionCache.set(authority, existingConnectionPool);\n }\n release(requestContext, session) {\n var _a;\n const cacheKey = this.getUrlString(requestContext);\n (_a = this.sessionCache.get(cacheKey)) == null ? void 0 : _a.offerLast(session);\n }\n destroy() {\n for (const [key, connectionPool] of this.sessionCache) {\n for (const session of connectionPool) {\n if (!session.destroyed) {\n session.destroy();\n }\n connectionPool.remove(session);\n }\n this.sessionCache.delete(key);\n }\n }\n setMaxConcurrentStreams(maxConcurrentStreams) {\n if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) {\n throw new RangeError(\"maxConcurrentStreams must be greater than zero.\");\n }\n this.config.maxConcurrency = maxConcurrentStreams;\n }\n setDisableConcurrentStreams(disableConcurrentStreams) {\n this.config.disableConcurrency = disableConcurrentStreams;\n }\n getUrlString(request) {\n return request.destination.toString();\n }\n};\n__name(_NodeHttp2ConnectionManager, \"NodeHttp2ConnectionManager\");\nvar NodeHttp2ConnectionManager = _NodeHttp2ConnectionManager;\n\n// src/node-http2-handler.ts\nvar _NodeHttp2Handler = class _NodeHttp2Handler {\n constructor(options) {\n this.metadata = { handlerProtocol: \"h2\" };\n this.connectionManager = new NodeHttp2ConnectionManager({});\n this.configProvider = new Promise((resolve, reject) => {\n if (typeof options === \"function\") {\n options().then((opts) => {\n resolve(opts || {});\n }).catch(reject);\n } else {\n resolve(options || {});\n }\n });\n }\n /**\n * @returns the input if it is an HttpHandler of any class,\n * or instantiates a new instance of this handler.\n */\n static create(instanceOrOptions) {\n if (typeof (instanceOrOptions == null ? void 0 : instanceOrOptions.handle) === \"function\") {\n return instanceOrOptions;\n }\n return new _NodeHttp2Handler(instanceOrOptions);\n }\n destroy() {\n this.connectionManager.destroy();\n }\n async handle(request, { abortSignal } = {}) {\n if (!this.config) {\n this.config = await this.configProvider;\n this.connectionManager.setDisableConcurrentStreams(this.config.disableConcurrentStreams || false);\n if (this.config.maxConcurrentStreams) {\n this.connectionManager.setMaxConcurrentStreams(this.config.maxConcurrentStreams);\n }\n }\n const { requestTimeout, disableConcurrentStreams } = this.config;\n return new Promise((_resolve, _reject) => {\n var _a;\n let fulfilled = false;\n let writeRequestBodyPromise = void 0;\n const resolve = /* @__PURE__ */ __name(async (arg) => {\n await writeRequestBodyPromise;\n _resolve(arg);\n }, \"resolve\");\n const reject = /* @__PURE__ */ __name(async (arg) => {\n await writeRequestBodyPromise;\n _reject(arg);\n }, \"reject\");\n if (abortSignal == null ? void 0 : abortSignal.aborted) {\n fulfilled = true;\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n reject(abortError);\n return;\n }\n const { hostname, method, port, protocol, query } = request;\n let auth = \"\";\n if (request.username != null || request.password != null) {\n const username = request.username ?? \"\";\n const password = request.password ?? \"\";\n auth = `${username}:${password}@`;\n }\n const authority = `${protocol}//${auth}${hostname}${port ? `:${port}` : \"\"}`;\n const requestContext = { destination: new URL(authority) };\n const session = this.connectionManager.lease(requestContext, {\n requestTimeout: (_a = this.config) == null ? void 0 : _a.sessionTimeout,\n disableConcurrentStreams: disableConcurrentStreams || false\n });\n const rejectWithDestroy = /* @__PURE__ */ __name((err) => {\n if (disableConcurrentStreams) {\n this.destroySession(session);\n }\n fulfilled = true;\n reject(err);\n }, \"rejectWithDestroy\");\n const queryString = (0, import_querystring_builder.buildQueryString)(query || {});\n let path = request.path;\n if (queryString) {\n path += `?${queryString}`;\n }\n if (request.fragment) {\n path += `#${request.fragment}`;\n }\n const req = session.request({\n ...request.headers,\n [import_http22.constants.HTTP2_HEADER_PATH]: path,\n [import_http22.constants.HTTP2_HEADER_METHOD]: method\n });\n session.ref();\n req.on(\"response\", (headers) => {\n const httpResponse = new import_protocol_http.HttpResponse({\n statusCode: headers[\":status\"] || -1,\n headers: getTransformedHeaders(headers),\n body: req\n });\n fulfilled = true;\n resolve({ response: httpResponse });\n if (disableConcurrentStreams) {\n session.close();\n this.connectionManager.deleteSession(authority, session);\n }\n });\n if (requestTimeout) {\n req.setTimeout(requestTimeout, () => {\n req.close();\n const timeoutError = new Error(`Stream timed out because of no activity for ${requestTimeout} ms`);\n timeoutError.name = \"TimeoutError\";\n rejectWithDestroy(timeoutError);\n });\n }\n if (abortSignal) {\n const onAbort = /* @__PURE__ */ __name(() => {\n req.close();\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n rejectWithDestroy(abortError);\n }, \"onAbort\");\n if (typeof abortSignal.addEventListener === \"function\") {\n const signal = abortSignal;\n signal.addEventListener(\"abort\", onAbort, { once: true });\n req.once(\"close\", () => signal.removeEventListener(\"abort\", onAbort));\n } else {\n abortSignal.onabort = onAbort;\n }\n }\n req.on(\"frameError\", (type, code, id) => {\n rejectWithDestroy(new Error(`Frame type id ${type} in stream id ${id} has failed with code ${code}.`));\n });\n req.on(\"error\", rejectWithDestroy);\n req.on(\"aborted\", () => {\n rejectWithDestroy(\n new Error(`HTTP/2 stream is abnormally aborted in mid-communication with result code ${req.rstCode}.`)\n );\n });\n req.on(\"close\", () => {\n session.unref();\n if (disableConcurrentStreams) {\n session.destroy();\n }\n if (!fulfilled) {\n rejectWithDestroy(new Error(\"Unexpected error: http2 request did not get a response\"));\n }\n });\n writeRequestBodyPromise = writeRequestBody(req, request, requestTimeout);\n });\n }\n updateHttpClientConfig(key, value) {\n this.config = void 0;\n this.configProvider = this.configProvider.then((config) => {\n return {\n ...config,\n [key]: value\n };\n });\n }\n httpHandlerConfigs() {\n return this.config ?? {};\n }\n /**\n * Destroys a session.\n * @param session The session to destroy.\n */\n destroySession(session) {\n if (!session.destroyed) {\n session.destroy();\n }\n }\n};\n__name(_NodeHttp2Handler, \"NodeHttp2Handler\");\nvar NodeHttp2Handler = _NodeHttp2Handler;\n\n// src/stream-collector/collector.ts\n\nvar _Collector = class _Collector extends import_stream.Writable {\n constructor() {\n super(...arguments);\n this.bufferedBytes = [];\n }\n _write(chunk, encoding, callback) {\n this.bufferedBytes.push(chunk);\n callback();\n }\n};\n__name(_Collector, \"Collector\");\nvar Collector = _Collector;\n\n// src/stream-collector/index.ts\nvar streamCollector = /* @__PURE__ */ __name((stream) => {\n if (isReadableStreamInstance(stream)) {\n return collectReadableStream(stream);\n }\n return new Promise((resolve, reject) => {\n const collector = new Collector();\n stream.pipe(collector);\n stream.on(\"error\", (err) => {\n collector.end();\n reject(err);\n });\n collector.on(\"error\", reject);\n collector.on(\"finish\", function() {\n const bytes = new Uint8Array(Buffer.concat(this.bufferedBytes));\n resolve(bytes);\n });\n });\n}, \"streamCollector\");\nvar isReadableStreamInstance = /* @__PURE__ */ __name((stream) => typeof ReadableStream === \"function\" && stream instanceof ReadableStream, \"isReadableStreamInstance\");\nasync function collectReadableStream(stream) {\n const chunks = [];\n const reader = stream.getReader();\n let isDone = false;\n let length = 0;\n while (!isDone) {\n const { done, value } = await reader.read();\n if (value) {\n chunks.push(value);\n length += value.length;\n }\n isDone = done;\n }\n const collected = new Uint8Array(length);\n let offset = 0;\n for (const chunk of chunks) {\n collected.set(chunk, offset);\n offset += chunk.length;\n }\n return collected;\n}\n__name(collectReadableStream, \"collectReadableStream\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n DEFAULT_REQUEST_TIMEOUT,\n NodeHttpHandler,\n NodeHttp2Handler,\n streamCollector\n});\n\n",
|
|
47
|
+
"var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n FetchHttpHandler: () => FetchHttpHandler,\n keepAliveSupport: () => keepAliveSupport,\n streamCollector: () => streamCollector\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/fetch-http-handler.ts\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_querystring_builder = require(\"@smithy/querystring-builder\");\n\n// src/request-timeout.ts\nfunction requestTimeout(timeoutInMs = 0) {\n return new Promise((resolve, reject) => {\n if (timeoutInMs) {\n setTimeout(() => {\n const timeoutError = new Error(`Request did not complete within ${timeoutInMs} ms`);\n timeoutError.name = \"TimeoutError\";\n reject(timeoutError);\n }, timeoutInMs);\n }\n });\n}\n__name(requestTimeout, \"requestTimeout\");\n\n// src/fetch-http-handler.ts\nvar keepAliveSupport = {\n supported: void 0\n};\nvar _FetchHttpHandler = class _FetchHttpHandler {\n /**\n * @returns the input if it is an HttpHandler of any class,\n * or instantiates a new instance of this handler.\n */\n static create(instanceOrOptions) {\n if (typeof (instanceOrOptions == null ? void 0 : instanceOrOptions.handle) === \"function\") {\n return instanceOrOptions;\n }\n return new _FetchHttpHandler(instanceOrOptions);\n }\n constructor(options) {\n if (typeof options === \"function\") {\n this.configProvider = options().then((opts) => opts || {});\n } else {\n this.config = options ?? {};\n this.configProvider = Promise.resolve(this.config);\n }\n if (keepAliveSupport.supported === void 0) {\n keepAliveSupport.supported = Boolean(\n typeof Request !== \"undefined\" && \"keepalive\" in new Request(\"https://[::1]\")\n );\n }\n }\n destroy() {\n }\n async handle(request, { abortSignal } = {}) {\n var _a;\n if (!this.config) {\n this.config = await this.configProvider;\n }\n const requestTimeoutInMs = this.config.requestTimeout;\n const keepAlive = this.config.keepAlive === true;\n const credentials = this.config.credentials;\n if (abortSignal == null ? void 0 : abortSignal.aborted) {\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n return Promise.reject(abortError);\n }\n let path = request.path;\n const queryString = (0, import_querystring_builder.buildQueryString)(request.query || {});\n if (queryString) {\n path += `?${queryString}`;\n }\n if (request.fragment) {\n path += `#${request.fragment}`;\n }\n let auth = \"\";\n if (request.username != null || request.password != null) {\n const username = request.username ?? \"\";\n const password = request.password ?? \"\";\n auth = `${username}:${password}@`;\n }\n const { port, method } = request;\n const url = `${request.protocol}//${auth}${request.hostname}${port ? `:${port}` : \"\"}${path}`;\n const body = method === \"GET\" || method === \"HEAD\" ? void 0 : request.body;\n const requestOptions = {\n body,\n headers: new Headers(request.headers),\n method,\n credentials\n };\n if ((_a = this.config) == null ? void 0 : _a.cache) {\n requestOptions.cache = this.config.cache;\n }\n if (body) {\n requestOptions.duplex = \"half\";\n }\n if (typeof AbortController !== \"undefined\") {\n requestOptions.signal = abortSignal;\n }\n if (keepAliveSupport.supported) {\n requestOptions.keepalive = keepAlive;\n }\n if (typeof this.config.requestInit === \"function\") {\n Object.assign(requestOptions, this.config.requestInit(request));\n }\n let removeSignalEventListener = /* @__PURE__ */ __name(() => {\n }, \"removeSignalEventListener\");\n const fetchRequest = new Request(url, requestOptions);\n const raceOfPromises = [\n fetch(fetchRequest).then((response) => {\n const fetchHeaders = response.headers;\n const transformedHeaders = {};\n for (const pair of fetchHeaders.entries()) {\n transformedHeaders[pair[0]] = pair[1];\n }\n const hasReadableStream = response.body != void 0;\n if (!hasReadableStream) {\n return response.blob().then((body2) => ({\n response: new import_protocol_http.HttpResponse({\n headers: transformedHeaders,\n reason: response.statusText,\n statusCode: response.status,\n body: body2\n })\n }));\n }\n return {\n response: new import_protocol_http.HttpResponse({\n headers: transformedHeaders,\n reason: response.statusText,\n statusCode: response.status,\n body: response.body\n })\n };\n }),\n requestTimeout(requestTimeoutInMs)\n ];\n if (abortSignal) {\n raceOfPromises.push(\n new Promise((resolve, reject) => {\n const onAbort = /* @__PURE__ */ __name(() => {\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n reject(abortError);\n }, \"onAbort\");\n if (typeof abortSignal.addEventListener === \"function\") {\n const signal = abortSignal;\n signal.addEventListener(\"abort\", onAbort, { once: true });\n removeSignalEventListener = /* @__PURE__ */ __name(() => signal.removeEventListener(\"abort\", onAbort), \"removeSignalEventListener\");\n } else {\n abortSignal.onabort = onAbort;\n }\n })\n );\n }\n return Promise.race(raceOfPromises).finally(removeSignalEventListener);\n }\n updateHttpClientConfig(key, value) {\n this.config = void 0;\n this.configProvider = this.configProvider.then((config) => {\n config[key] = value;\n return config;\n });\n }\n httpHandlerConfigs() {\n return this.config ?? {};\n }\n};\n__name(_FetchHttpHandler, \"FetchHttpHandler\");\nvar FetchHttpHandler = _FetchHttpHandler;\n\n// src/stream-collector.ts\nvar import_util_base64 = require(\"@smithy/util-base64\");\nvar streamCollector = /* @__PURE__ */ __name((stream) => {\n if (typeof Blob === \"function\" && stream instanceof Blob) {\n return collectBlob(stream);\n }\n return collectStream(stream);\n}, \"streamCollector\");\nasync function collectBlob(blob) {\n const base64 = await readToBase64(blob);\n const arrayBuffer = (0, import_util_base64.fromBase64)(base64);\n return new Uint8Array(arrayBuffer);\n}\n__name(collectBlob, \"collectBlob\");\nasync function collectStream(stream) {\n const chunks = [];\n const reader = stream.getReader();\n let isDone = false;\n let length = 0;\n while (!isDone) {\n const { done, value } = await reader.read();\n if (value) {\n chunks.push(value);\n length += value.length;\n }\n isDone = done;\n }\n const collected = new Uint8Array(length);\n let offset = 0;\n for (const chunk of chunks) {\n collected.set(chunk, offset);\n offset += chunk.length;\n }\n return collected;\n}\n__name(collectStream, \"collectStream\");\nfunction readToBase64(blob) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onloadend = () => {\n if (reader.readyState !== 2) {\n return reject(new Error(\"Reader aborted too early\"));\n }\n const result = reader.result ?? \"\";\n const commaIndex = result.indexOf(\",\");\n const dataOffset = commaIndex > -1 ? commaIndex + 1 : result.length;\n resolve(result.substring(dataOffset));\n };\n reader.onabort = () => reject(new Error(\"Read aborted\"));\n reader.onerror = () => reject(reader.error);\n reader.readAsDataURL(blob);\n });\n}\n__name(readToBase64, \"readToBase64\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n keepAliveSupport,\n FetchHttpHandler,\n streamCollector\n});\n\n",
|
|
48
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isReadableStream = void 0;\nconst isReadableStream = (stream) => {\n var _a;\n return typeof ReadableStream === \"function\" &&\n (((_a = stream === null || stream === void 0 ? void 0 : stream.constructor) === null || _a === void 0 ? void 0 : _a.name) === ReadableStream.name || stream instanceof ReadableStream);\n};\nexports.isReadableStream = isReadableStream;\n",
|
|
49
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sdkStreamMixin = void 0;\nconst fetch_http_handler_1 = require(\"@smithy/fetch-http-handler\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_hex_encoding_1 = require(\"@smithy/util-hex-encoding\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst stream_type_check_1 = require(\"./stream-type-check\");\nconst ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED = \"The stream has already been transformed.\";\nconst sdkStreamMixin = (stream) => {\n var _a, _b;\n if (!isBlobInstance(stream) && !(0, stream_type_check_1.isReadableStream)(stream)) {\n const name = ((_b = (_a = stream === null || stream === void 0 ? void 0 : stream.__proto__) === null || _a === void 0 ? void 0 : _a.constructor) === null || _b === void 0 ? void 0 : _b.name) || stream;\n throw new Error(`Unexpected stream implementation, expect Blob or ReadableStream, got ${name}`);\n }\n let transformed = false;\n const transformToByteArray = async () => {\n if (transformed) {\n throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED);\n }\n transformed = true;\n return await (0, fetch_http_handler_1.streamCollector)(stream);\n };\n const blobToWebStream = (blob) => {\n if (typeof blob.stream !== \"function\") {\n throw new Error(\"Cannot transform payload Blob to web stream. Please make sure the Blob.stream() is polyfilled.\\n\" +\n \"If you are using React Native, this API is not yet supported, see: https://react-native.canny.io/feature-requests/p/fetch-streaming-body\");\n }\n return blob.stream();\n };\n return Object.assign(stream, {\n transformToByteArray: transformToByteArray,\n transformToString: async (encoding) => {\n const buf = await transformToByteArray();\n if (encoding === \"base64\") {\n return (0, util_base64_1.toBase64)(buf);\n }\n else if (encoding === \"hex\") {\n return (0, util_hex_encoding_1.toHex)(buf);\n }\n else if (encoding === undefined || encoding === \"utf8\" || encoding === \"utf-8\") {\n return (0, util_utf8_1.toUtf8)(buf);\n }\n else if (typeof TextDecoder === \"function\") {\n return new TextDecoder(encoding).decode(buf);\n }\n else {\n throw new Error(\"TextDecoder is not available, please make sure polyfill is provided.\");\n }\n },\n transformToWebStream: () => {\n if (transformed) {\n throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED);\n }\n transformed = true;\n if (isBlobInstance(stream)) {\n return blobToWebStream(stream);\n }\n else if ((0, stream_type_check_1.isReadableStream)(stream)) {\n return stream;\n }\n else {\n throw new Error(`Cannot transform payload to web stream, got ${stream}`);\n }\n },\n });\n};\nexports.sdkStreamMixin = sdkStreamMixin;\nconst isBlobInstance = (stream) => typeof Blob === \"function\" && stream instanceof Blob;\n",
|
|
50
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sdkStreamMixin = void 0;\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_buffer_from_1 = require(\"@smithy/util-buffer-from\");\nconst stream_1 = require(\"stream\");\nconst util_1 = require(\"util\");\nconst sdk_stream_mixin_browser_1 = require(\"./sdk-stream-mixin.browser\");\nconst ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED = \"The stream has already been transformed.\";\nconst sdkStreamMixin = (stream) => {\n var _a, _b;\n if (!(stream instanceof stream_1.Readable)) {\n try {\n return (0, sdk_stream_mixin_browser_1.sdkStreamMixin)(stream);\n }\n catch (e) {\n const name = ((_b = (_a = stream === null || stream === void 0 ? void 0 : stream.__proto__) === null || _a === void 0 ? void 0 : _a.constructor) === null || _b === void 0 ? void 0 : _b.name) || stream;\n throw new Error(`Unexpected stream implementation, expect Stream.Readable instance, got ${name}`);\n }\n }\n let transformed = false;\n const transformToByteArray = async () => {\n if (transformed) {\n throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED);\n }\n transformed = true;\n return await (0, node_http_handler_1.streamCollector)(stream);\n };\n return Object.assign(stream, {\n transformToByteArray,\n transformToString: async (encoding) => {\n const buf = await transformToByteArray();\n if (encoding === undefined || Buffer.isEncoding(encoding)) {\n return (0, util_buffer_from_1.fromArrayBuffer)(buf.buffer, buf.byteOffset, buf.byteLength).toString(encoding);\n }\n else {\n const decoder = new util_1.TextDecoder(encoding);\n return decoder.decode(buf);\n }\n },\n transformToWebStream: () => {\n if (transformed) {\n throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED);\n }\n if (stream.readableFlowing !== null) {\n throw new Error(\"The stream has been consumed by other callbacks.\");\n }\n if (typeof stream_1.Readable.toWeb !== \"function\") {\n throw new Error(\"Readable.toWeb() is not supported. Please make sure you are using Node.js >= 17.0.0, or polyfill is available.\");\n }\n transformed = true;\n return stream_1.Readable.toWeb(stream);\n },\n });\n};\nexports.sdkStreamMixin = sdkStreamMixin;\n",
|
|
51
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.splitStream = void 0;\nasync function splitStream(stream) {\n if (typeof stream.stream === \"function\") {\n stream = stream.stream();\n }\n const readableStream = stream;\n return readableStream.tee();\n}\nexports.splitStream = splitStream;\n",
|
|
52
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.splitStream = void 0;\nconst stream_1 = require(\"stream\");\nconst splitStream_browser_1 = require(\"./splitStream.browser\");\nconst stream_type_check_1 = require(\"./stream-type-check\");\nasync function splitStream(stream) {\n if ((0, stream_type_check_1.isReadableStream)(stream)) {\n return (0, splitStream_browser_1.splitStream)(stream);\n }\n const stream1 = new stream_1.PassThrough();\n const stream2 = new stream_1.PassThrough();\n stream.pipe(stream1);\n stream.pipe(stream2);\n return [stream1, stream2];\n}\nexports.splitStream = splitStream;\n",
|
|
53
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.headStream = void 0;\nasync function headStream(stream, bytes) {\n var _a;\n let byteLengthCounter = 0;\n const chunks = [];\n const reader = stream.getReader();\n let isDone = false;\n while (!isDone) {\n const { done, value } = await reader.read();\n if (value) {\n chunks.push(value);\n byteLengthCounter += (_a = value === null || value === void 0 ? void 0 : value.byteLength) !== null && _a !== void 0 ? _a : 0;\n }\n if (byteLengthCounter >= bytes) {\n break;\n }\n isDone = done;\n }\n reader.releaseLock();\n const collected = new Uint8Array(Math.min(bytes, byteLengthCounter));\n let offset = 0;\n for (const chunk of chunks) {\n if (chunk.byteLength > collected.byteLength - offset) {\n collected.set(chunk.subarray(0, collected.byteLength - offset), offset);\n break;\n }\n else {\n collected.set(chunk, offset);\n }\n offset += chunk.length;\n }\n return collected;\n}\nexports.headStream = headStream;\n",
|
|
54
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.headStream = void 0;\nconst stream_1 = require(\"stream\");\nconst headStream_browser_1 = require(\"./headStream.browser\");\nconst stream_type_check_1 = require(\"./stream-type-check\");\nconst headStream = (stream, bytes) => {\n if ((0, stream_type_check_1.isReadableStream)(stream)) {\n return (0, headStream_browser_1.headStream)(stream, bytes);\n }\n return new Promise((resolve, reject) => {\n const collector = new Collector();\n collector.limit = bytes;\n stream.pipe(collector);\n stream.on(\"error\", (err) => {\n collector.end();\n reject(err);\n });\n collector.on(\"error\", reject);\n collector.on(\"finish\", function () {\n const bytes = new Uint8Array(Buffer.concat(this.buffers));\n resolve(bytes);\n });\n });\n};\nexports.headStream = headStream;\nclass Collector extends stream_1.Writable {\n constructor() {\n super(...arguments);\n this.buffers = [];\n this.limit = Infinity;\n this.bytesBuffered = 0;\n }\n _write(chunk, encoding, callback) {\n var _a;\n this.buffers.push(chunk);\n this.bytesBuffered += (_a = chunk.byteLength) !== null && _a !== void 0 ? _a : 0;\n if (this.bytesBuffered >= this.limit) {\n const excess = this.bytesBuffered - this.limit;\n const tailBuffer = this.buffers[this.buffers.length - 1];\n this.buffers[this.buffers.length - 1] = tailBuffer.subarray(0, tailBuffer.byteLength - excess);\n this.emit(\"finish\");\n }\n callback();\n }\n}\n",
|
|
55
|
+
"var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n Uint8ArrayBlobAdapter: () => Uint8ArrayBlobAdapter\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/blob/transforms.ts\nvar import_util_base64 = require(\"@smithy/util-base64\");\nvar import_util_utf8 = require(\"@smithy/util-utf8\");\nfunction transformToString(payload, encoding = \"utf-8\") {\n if (encoding === \"base64\") {\n return (0, import_util_base64.toBase64)(payload);\n }\n return (0, import_util_utf8.toUtf8)(payload);\n}\n__name(transformToString, \"transformToString\");\nfunction transformFromString(str, encoding) {\n if (encoding === \"base64\") {\n return Uint8ArrayBlobAdapter.mutate((0, import_util_base64.fromBase64)(str));\n }\n return Uint8ArrayBlobAdapter.mutate((0, import_util_utf8.fromUtf8)(str));\n}\n__name(transformFromString, \"transformFromString\");\n\n// src/blob/Uint8ArrayBlobAdapter.ts\nvar _Uint8ArrayBlobAdapter = class _Uint8ArrayBlobAdapter extends Uint8Array {\n /**\n * @param source - such as a string or Stream.\n * @returns a new Uint8ArrayBlobAdapter extending Uint8Array.\n */\n static fromString(source, encoding = \"utf-8\") {\n switch (typeof source) {\n case \"string\":\n return transformFromString(source, encoding);\n default:\n throw new Error(`Unsupported conversion from ${typeof source} to Uint8ArrayBlobAdapter.`);\n }\n }\n /**\n * @param source - Uint8Array to be mutated.\n * @returns the same Uint8Array but with prototype switched to Uint8ArrayBlobAdapter.\n */\n static mutate(source) {\n Object.setPrototypeOf(source, _Uint8ArrayBlobAdapter.prototype);\n return source;\n }\n /**\n * @param encoding - default 'utf-8'.\n * @returns the blob as string.\n */\n transformToString(encoding = \"utf-8\") {\n return transformToString(this, encoding);\n }\n};\n__name(_Uint8ArrayBlobAdapter, \"Uint8ArrayBlobAdapter\");\nvar Uint8ArrayBlobAdapter = _Uint8ArrayBlobAdapter;\n\n// src/index.ts\n__reExport(src_exports, require(\"././getAwsChunkedEncodingStream\"), module.exports);\n__reExport(src_exports, require(\"././sdk-stream-mixin\"), module.exports);\n__reExport(src_exports, require(\"././splitStream\"), module.exports);\n__reExport(src_exports, require(\"././headStream\"), module.exports);\n__reExport(src_exports, require(\"././stream-type-check\"), module.exports);\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n Uint8ArrayBlobAdapter,\n getAwsChunkedEncodingStream,\n sdkStreamMixin,\n splitStream,\n headStream,\n isReadableStream\n});\n\n",
|
|
56
|
+
"var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n Client: () => Client,\n Command: () => Command,\n LazyJsonString: () => LazyJsonString,\n NoOpLogger: () => NoOpLogger,\n SENSITIVE_STRING: () => SENSITIVE_STRING,\n ServiceException: () => ServiceException,\n StringWrapper: () => StringWrapper,\n _json: () => _json,\n collectBody: () => collectBody,\n convertMap: () => convertMap,\n createAggregatedClient: () => createAggregatedClient,\n dateToUtcString: () => dateToUtcString,\n decorateServiceException: () => decorateServiceException,\n emitWarningIfUnsupportedVersion: () => emitWarningIfUnsupportedVersion,\n expectBoolean: () => expectBoolean,\n expectByte: () => expectByte,\n expectFloat32: () => expectFloat32,\n expectInt: () => expectInt,\n expectInt32: () => expectInt32,\n expectLong: () => expectLong,\n expectNonNull: () => expectNonNull,\n expectNumber: () => expectNumber,\n expectObject: () => expectObject,\n expectShort: () => expectShort,\n expectString: () => expectString,\n expectUnion: () => expectUnion,\n extendedEncodeURIComponent: () => extendedEncodeURIComponent,\n getArrayIfSingleItem: () => getArrayIfSingleItem,\n getDefaultClientConfiguration: () => getDefaultClientConfiguration,\n getDefaultExtensionConfiguration: () => getDefaultExtensionConfiguration,\n getValueFromTextNode: () => getValueFromTextNode,\n handleFloat: () => handleFloat,\n limitedParseDouble: () => limitedParseDouble,\n limitedParseFloat: () => limitedParseFloat,\n limitedParseFloat32: () => limitedParseFloat32,\n loadConfigsForDefaultMode: () => loadConfigsForDefaultMode,\n logger: () => logger,\n map: () => map,\n parseBoolean: () => parseBoolean,\n parseEpochTimestamp: () => parseEpochTimestamp,\n parseRfc3339DateTime: () => parseRfc3339DateTime,\n parseRfc3339DateTimeWithOffset: () => parseRfc3339DateTimeWithOffset,\n parseRfc7231DateTime: () => parseRfc7231DateTime,\n resolveDefaultRuntimeConfig: () => resolveDefaultRuntimeConfig,\n resolvedPath: () => resolvedPath,\n serializeDateTime: () => serializeDateTime,\n serializeFloat: () => serializeFloat,\n splitEvery: () => splitEvery,\n strictParseByte: () => strictParseByte,\n strictParseDouble: () => strictParseDouble,\n strictParseFloat: () => strictParseFloat,\n strictParseFloat32: () => strictParseFloat32,\n strictParseInt: () => strictParseInt,\n strictParseInt32: () => strictParseInt32,\n strictParseLong: () => strictParseLong,\n strictParseShort: () => strictParseShort,\n take: () => take,\n throwDefaultError: () => throwDefaultError,\n withBaseException: () => withBaseException\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/NoOpLogger.ts\nvar _NoOpLogger = class _NoOpLogger {\n trace() {\n }\n debug() {\n }\n info() {\n }\n warn() {\n }\n error() {\n }\n};\n__name(_NoOpLogger, \"NoOpLogger\");\nvar NoOpLogger = _NoOpLogger;\n\n// src/client.ts\nvar import_middleware_stack = require(\"@smithy/middleware-stack\");\nvar _Client = class _Client {\n constructor(config) {\n this.config = config;\n this.middlewareStack = (0, import_middleware_stack.constructStack)();\n }\n send(command, optionsOrCb, cb) {\n const options = typeof optionsOrCb !== \"function\" ? optionsOrCb : void 0;\n const callback = typeof optionsOrCb === \"function\" ? optionsOrCb : cb;\n const useHandlerCache = options === void 0 && this.config.cacheMiddleware === true;\n let handler;\n if (useHandlerCache) {\n if (!this.handlers) {\n this.handlers = /* @__PURE__ */ new WeakMap();\n }\n const handlers = this.handlers;\n if (handlers.has(command.constructor)) {\n handler = handlers.get(command.constructor);\n } else {\n handler = command.resolveMiddleware(this.middlewareStack, this.config, options);\n handlers.set(command.constructor, handler);\n }\n } else {\n delete this.handlers;\n handler = command.resolveMiddleware(this.middlewareStack, this.config, options);\n }\n if (callback) {\n handler(command).then(\n (result) => callback(null, result.output),\n (err) => callback(err)\n ).catch(\n // prevent any errors thrown in the callback from triggering an\n // unhandled promise rejection\n () => {\n }\n );\n } else {\n return handler(command).then((result) => result.output);\n }\n }\n destroy() {\n var _a, _b, _c;\n (_c = (_b = (_a = this.config) == null ? void 0 : _a.requestHandler) == null ? void 0 : _b.destroy) == null ? void 0 : _c.call(_b);\n delete this.handlers;\n }\n};\n__name(_Client, \"Client\");\nvar Client = _Client;\n\n// src/collect-stream-body.ts\nvar import_util_stream = require(\"@smithy/util-stream\");\nvar collectBody = /* @__PURE__ */ __name(async (streamBody = new Uint8Array(), context) => {\n if (streamBody instanceof Uint8Array) {\n return import_util_stream.Uint8ArrayBlobAdapter.mutate(streamBody);\n }\n if (!streamBody) {\n return import_util_stream.Uint8ArrayBlobAdapter.mutate(new Uint8Array());\n }\n const fromContext = context.streamCollector(streamBody);\n return import_util_stream.Uint8ArrayBlobAdapter.mutate(await fromContext);\n}, \"collectBody\");\n\n// src/command.ts\n\nvar import_types = require(\"@smithy/types\");\nvar _Command = class _Command {\n constructor() {\n this.middlewareStack = (0, import_middleware_stack.constructStack)();\n }\n /**\n * Factory for Command ClassBuilder.\n * @internal\n */\n static classBuilder() {\n return new ClassBuilder();\n }\n /**\n * @internal\n */\n resolveMiddlewareWithContext(clientStack, configuration, options, {\n middlewareFn,\n clientName,\n commandName,\n inputFilterSensitiveLog,\n outputFilterSensitiveLog,\n smithyContext,\n additionalContext,\n CommandCtor\n }) {\n for (const mw of middlewareFn.bind(this)(CommandCtor, clientStack, configuration, options)) {\n this.middlewareStack.use(mw);\n }\n const stack = clientStack.concat(this.middlewareStack);\n const { logger: logger2 } = configuration;\n const handlerExecutionContext = {\n logger: logger2,\n clientName,\n commandName,\n inputFilterSensitiveLog,\n outputFilterSensitiveLog,\n [import_types.SMITHY_CONTEXT_KEY]: {\n commandInstance: this,\n ...smithyContext\n },\n ...additionalContext\n };\n const { requestHandler } = configuration;\n return stack.resolve(\n (request) => requestHandler.handle(request.request, options || {}),\n handlerExecutionContext\n );\n }\n};\n__name(_Command, \"Command\");\nvar Command = _Command;\nvar _ClassBuilder = class _ClassBuilder {\n constructor() {\n this._init = () => {\n };\n this._ep = {};\n this._middlewareFn = () => [];\n this._commandName = \"\";\n this._clientName = \"\";\n this._additionalContext = {};\n this._smithyContext = {};\n this._inputFilterSensitiveLog = (_) => _;\n this._outputFilterSensitiveLog = (_) => _;\n this._serializer = null;\n this._deserializer = null;\n }\n /**\n * Optional init callback.\n */\n init(cb) {\n this._init = cb;\n }\n /**\n * Set the endpoint parameter instructions.\n */\n ep(endpointParameterInstructions) {\n this._ep = endpointParameterInstructions;\n return this;\n }\n /**\n * Add any number of middleware.\n */\n m(middlewareSupplier) {\n this._middlewareFn = middlewareSupplier;\n return this;\n }\n /**\n * Set the initial handler execution context Smithy field.\n */\n s(service, operation, smithyContext = {}) {\n this._smithyContext = {\n service,\n operation,\n ...smithyContext\n };\n return this;\n }\n /**\n * Set the initial handler execution context.\n */\n c(additionalContext = {}) {\n this._additionalContext = additionalContext;\n return this;\n }\n /**\n * Set constant string identifiers for the operation.\n */\n n(clientName, commandName) {\n this._clientName = clientName;\n this._commandName = commandName;\n return this;\n }\n /**\n * Set the input and output sensistive log filters.\n */\n f(inputFilter = (_) => _, outputFilter = (_) => _) {\n this._inputFilterSensitiveLog = inputFilter;\n this._outputFilterSensitiveLog = outputFilter;\n return this;\n }\n /**\n * Sets the serializer.\n */\n ser(serializer) {\n this._serializer = serializer;\n return this;\n }\n /**\n * Sets the deserializer.\n */\n de(deserializer) {\n this._deserializer = deserializer;\n return this;\n }\n /**\n * @returns a Command class with the classBuilder properties.\n */\n build() {\n var _a;\n const closure = this;\n let CommandRef;\n return CommandRef = (_a = class extends Command {\n /**\n * @public\n */\n constructor(...[input]) {\n super();\n /**\n * @internal\n */\n // @ts-ignore used in middlewareFn closure.\n this.serialize = closure._serializer;\n /**\n * @internal\n */\n // @ts-ignore used in middlewareFn closure.\n this.deserialize = closure._deserializer;\n this.input = input ?? {};\n closure._init(this);\n }\n /**\n * @public\n */\n static getEndpointParameterInstructions() {\n return closure._ep;\n }\n /**\n * @internal\n */\n resolveMiddleware(stack, configuration, options) {\n return this.resolveMiddlewareWithContext(stack, configuration, options, {\n CommandCtor: CommandRef,\n middlewareFn: closure._middlewareFn,\n clientName: closure._clientName,\n commandName: closure._commandName,\n inputFilterSensitiveLog: closure._inputFilterSensitiveLog,\n outputFilterSensitiveLog: closure._outputFilterSensitiveLog,\n smithyContext: closure._smithyContext,\n additionalContext: closure._additionalContext\n });\n }\n }, __name(_a, \"CommandRef\"), _a);\n }\n};\n__name(_ClassBuilder, \"ClassBuilder\");\nvar ClassBuilder = _ClassBuilder;\n\n// src/constants.ts\nvar SENSITIVE_STRING = \"***SensitiveInformation***\";\n\n// src/create-aggregated-client.ts\nvar createAggregatedClient = /* @__PURE__ */ __name((commands, Client2) => {\n for (const command of Object.keys(commands)) {\n const CommandCtor = commands[command];\n const methodImpl = /* @__PURE__ */ __name(async function(args, optionsOrCb, cb) {\n const command2 = new CommandCtor(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command2, optionsOrCb);\n } else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expected http options but got ${typeof optionsOrCb}`);\n this.send(command2, optionsOrCb || {}, cb);\n } else {\n return this.send(command2, optionsOrCb);\n }\n }, \"methodImpl\");\n const methodName = (command[0].toLowerCase() + command.slice(1)).replace(/Command$/, \"\");\n Client2.prototype[methodName] = methodImpl;\n }\n}, \"createAggregatedClient\");\n\n// src/parse-utils.ts\nvar parseBoolean = /* @__PURE__ */ __name((value) => {\n switch (value) {\n case \"true\":\n return true;\n case \"false\":\n return false;\n default:\n throw new Error(`Unable to parse boolean value \"${value}\"`);\n }\n}, \"parseBoolean\");\nvar expectBoolean = /* @__PURE__ */ __name((value) => {\n if (value === null || value === void 0) {\n return void 0;\n }\n if (typeof value === \"number\") {\n if (value === 0 || value === 1) {\n logger.warn(stackTraceWarning(`Expected boolean, got ${typeof value}: ${value}`));\n }\n if (value === 0) {\n return false;\n }\n if (value === 1) {\n return true;\n }\n }\n if (typeof value === \"string\") {\n const lower = value.toLowerCase();\n if (lower === \"false\" || lower === \"true\") {\n logger.warn(stackTraceWarning(`Expected boolean, got ${typeof value}: ${value}`));\n }\n if (lower === \"false\") {\n return false;\n }\n if (lower === \"true\") {\n return true;\n }\n }\n if (typeof value === \"boolean\") {\n return value;\n }\n throw new TypeError(`Expected boolean, got ${typeof value}: ${value}`);\n}, \"expectBoolean\");\nvar expectNumber = /* @__PURE__ */ __name((value) => {\n if (value === null || value === void 0) {\n return void 0;\n }\n if (typeof value === \"string\") {\n const parsed = parseFloat(value);\n if (!Number.isNaN(parsed)) {\n if (String(parsed) !== String(value)) {\n logger.warn(stackTraceWarning(`Expected number but observed string: ${value}`));\n }\n return parsed;\n }\n }\n if (typeof value === \"number\") {\n return value;\n }\n throw new TypeError(`Expected number, got ${typeof value}: ${value}`);\n}, \"expectNumber\");\nvar MAX_FLOAT = Math.ceil(2 ** 127 * (2 - 2 ** -23));\nvar expectFloat32 = /* @__PURE__ */ __name((value) => {\n const expected = expectNumber(value);\n if (expected !== void 0 && !Number.isNaN(expected) && expected !== Infinity && expected !== -Infinity) {\n if (Math.abs(expected) > MAX_FLOAT) {\n throw new TypeError(`Expected 32-bit float, got ${value}`);\n }\n }\n return expected;\n}, \"expectFloat32\");\nvar expectLong = /* @__PURE__ */ __name((value) => {\n if (value === null || value === void 0) {\n return void 0;\n }\n if (Number.isInteger(value) && !Number.isNaN(value)) {\n return value;\n }\n throw new TypeError(`Expected integer, got ${typeof value}: ${value}`);\n}, \"expectLong\");\nvar expectInt = expectLong;\nvar expectInt32 = /* @__PURE__ */ __name((value) => expectSizedInt(value, 32), \"expectInt32\");\nvar expectShort = /* @__PURE__ */ __name((value) => expectSizedInt(value, 16), \"expectShort\");\nvar expectByte = /* @__PURE__ */ __name((value) => expectSizedInt(value, 8), \"expectByte\");\nvar expectSizedInt = /* @__PURE__ */ __name((value, size) => {\n const expected = expectLong(value);\n if (expected !== void 0 && castInt(expected, size) !== expected) {\n throw new TypeError(`Expected ${size}-bit integer, got ${value}`);\n }\n return expected;\n}, \"expectSizedInt\");\nvar castInt = /* @__PURE__ */ __name((value, size) => {\n switch (size) {\n case 32:\n return Int32Array.of(value)[0];\n case 16:\n return Int16Array.of(value)[0];\n case 8:\n return Int8Array.of(value)[0];\n }\n}, \"castInt\");\nvar expectNonNull = /* @__PURE__ */ __name((value, location) => {\n if (value === null || value === void 0) {\n if (location) {\n throw new TypeError(`Expected a non-null value for ${location}`);\n }\n throw new TypeError(\"Expected a non-null value\");\n }\n return value;\n}, \"expectNonNull\");\nvar expectObject = /* @__PURE__ */ __name((value) => {\n if (value === null || value === void 0) {\n return void 0;\n }\n if (typeof value === \"object\" && !Array.isArray(value)) {\n return value;\n }\n const receivedType = Array.isArray(value) ? \"array\" : typeof value;\n throw new TypeError(`Expected object, got ${receivedType}: ${value}`);\n}, \"expectObject\");\nvar expectString = /* @__PURE__ */ __name((value) => {\n if (value === null || value === void 0) {\n return void 0;\n }\n if (typeof value === \"string\") {\n return value;\n }\n if ([\"boolean\", \"number\", \"bigint\"].includes(typeof value)) {\n logger.warn(stackTraceWarning(`Expected string, got ${typeof value}: ${value}`));\n return String(value);\n }\n throw new TypeError(`Expected string, got ${typeof value}: ${value}`);\n}, \"expectString\");\nvar expectUnion = /* @__PURE__ */ __name((value) => {\n if (value === null || value === void 0) {\n return void 0;\n }\n const asObject = expectObject(value);\n const setKeys = Object.entries(asObject).filter(([, v]) => v != null).map(([k]) => k);\n if (setKeys.length === 0) {\n throw new TypeError(`Unions must have exactly one non-null member. None were found.`);\n }\n if (setKeys.length > 1) {\n throw new TypeError(`Unions must have exactly one non-null member. Keys ${setKeys} were not null.`);\n }\n return asObject;\n}, \"expectUnion\");\nvar strictParseDouble = /* @__PURE__ */ __name((value) => {\n if (typeof value == \"string\") {\n return expectNumber(parseNumber(value));\n }\n return expectNumber(value);\n}, \"strictParseDouble\");\nvar strictParseFloat = strictParseDouble;\nvar strictParseFloat32 = /* @__PURE__ */ __name((value) => {\n if (typeof value == \"string\") {\n return expectFloat32(parseNumber(value));\n }\n return expectFloat32(value);\n}, \"strictParseFloat32\");\nvar NUMBER_REGEX = /(-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)|(-?Infinity)|(NaN)/g;\nvar parseNumber = /* @__PURE__ */ __name((value) => {\n const matches = value.match(NUMBER_REGEX);\n if (matches === null || matches[0].length !== value.length) {\n throw new TypeError(`Expected real number, got implicit NaN`);\n }\n return parseFloat(value);\n}, \"parseNumber\");\nvar limitedParseDouble = /* @__PURE__ */ __name((value) => {\n if (typeof value == \"string\") {\n return parseFloatString(value);\n }\n return expectNumber(value);\n}, \"limitedParseDouble\");\nvar handleFloat = limitedParseDouble;\nvar limitedParseFloat = limitedParseDouble;\nvar limitedParseFloat32 = /* @__PURE__ */ __name((value) => {\n if (typeof value == \"string\") {\n return parseFloatString(value);\n }\n return expectFloat32(value);\n}, \"limitedParseFloat32\");\nvar parseFloatString = /* @__PURE__ */ __name((value) => {\n switch (value) {\n case \"NaN\":\n return NaN;\n case \"Infinity\":\n return Infinity;\n case \"-Infinity\":\n return -Infinity;\n default:\n throw new Error(`Unable to parse float value: ${value}`);\n }\n}, \"parseFloatString\");\nvar strictParseLong = /* @__PURE__ */ __name((value) => {\n if (typeof value === \"string\") {\n return expectLong(parseNumber(value));\n }\n return expectLong(value);\n}, \"strictParseLong\");\nvar strictParseInt = strictParseLong;\nvar strictParseInt32 = /* @__PURE__ */ __name((value) => {\n if (typeof value === \"string\") {\n return expectInt32(parseNumber(value));\n }\n return expectInt32(value);\n}, \"strictParseInt32\");\nvar strictParseShort = /* @__PURE__ */ __name((value) => {\n if (typeof value === \"string\") {\n return expectShort(parseNumber(value));\n }\n return expectShort(value);\n}, \"strictParseShort\");\nvar strictParseByte = /* @__PURE__ */ __name((value) => {\n if (typeof value === \"string\") {\n return expectByte(parseNumber(value));\n }\n return expectByte(value);\n}, \"strictParseByte\");\nvar stackTraceWarning = /* @__PURE__ */ __name((message) => {\n return String(new TypeError(message).stack || message).split(\"\\n\").slice(0, 5).filter((s) => !s.includes(\"stackTraceWarning\")).join(\"\\n\");\n}, \"stackTraceWarning\");\nvar logger = {\n warn: console.warn\n};\n\n// src/date-utils.ts\nvar DAYS = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\nvar MONTHS = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\nfunction dateToUtcString(date) {\n const year = date.getUTCFullYear();\n const month = date.getUTCMonth();\n const dayOfWeek = date.getUTCDay();\n const dayOfMonthInt = date.getUTCDate();\n const hoursInt = date.getUTCHours();\n const minutesInt = date.getUTCMinutes();\n const secondsInt = date.getUTCSeconds();\n const dayOfMonthString = dayOfMonthInt < 10 ? `0${dayOfMonthInt}` : `${dayOfMonthInt}`;\n const hoursString = hoursInt < 10 ? `0${hoursInt}` : `${hoursInt}`;\n const minutesString = minutesInt < 10 ? `0${minutesInt}` : `${minutesInt}`;\n const secondsString = secondsInt < 10 ? `0${secondsInt}` : `${secondsInt}`;\n return `${DAYS[dayOfWeek]}, ${dayOfMonthString} ${MONTHS[month]} ${year} ${hoursString}:${minutesString}:${secondsString} GMT`;\n}\n__name(dateToUtcString, \"dateToUtcString\");\nvar RFC3339 = new RegExp(/^(\\d{4})-(\\d{2})-(\\d{2})[tT](\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))?[zZ]$/);\nvar parseRfc3339DateTime = /* @__PURE__ */ __name((value) => {\n if (value === null || value === void 0) {\n return void 0;\n }\n if (typeof value !== \"string\") {\n throw new TypeError(\"RFC-3339 date-times must be expressed as strings\");\n }\n const match = RFC3339.exec(value);\n if (!match) {\n throw new TypeError(\"Invalid RFC-3339 date-time value\");\n }\n const [_, yearStr, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds] = match;\n const year = strictParseShort(stripLeadingZeroes(yearStr));\n const month = parseDateValue(monthStr, \"month\", 1, 12);\n const day = parseDateValue(dayStr, \"day\", 1, 31);\n return buildDate(year, month, day, { hours, minutes, seconds, fractionalMilliseconds });\n}, \"parseRfc3339DateTime\");\nvar RFC3339_WITH_OFFSET = new RegExp(\n /^(\\d{4})-(\\d{2})-(\\d{2})[tT](\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))?(([-+]\\d{2}\\:\\d{2})|[zZ])$/\n);\nvar parseRfc3339DateTimeWithOffset = /* @__PURE__ */ __name((value) => {\n if (value === null || value === void 0) {\n return void 0;\n }\n if (typeof value !== \"string\") {\n throw new TypeError(\"RFC-3339 date-times must be expressed as strings\");\n }\n const match = RFC3339_WITH_OFFSET.exec(value);\n if (!match) {\n throw new TypeError(\"Invalid RFC-3339 date-time value\");\n }\n const [_, yearStr, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds, offsetStr] = match;\n const year = strictParseShort(stripLeadingZeroes(yearStr));\n const month = parseDateValue(monthStr, \"month\", 1, 12);\n const day = parseDateValue(dayStr, \"day\", 1, 31);\n const date = buildDate(year, month, day, { hours, minutes, seconds, fractionalMilliseconds });\n if (offsetStr.toUpperCase() != \"Z\") {\n date.setTime(date.getTime() - parseOffsetToMilliseconds(offsetStr));\n }\n return date;\n}, \"parseRfc3339DateTimeWithOffset\");\nvar IMF_FIXDATE = new RegExp(\n /^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\\d{2}) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\\d{4}) (\\d{1,2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? GMT$/\n);\nvar RFC_850_DATE = new RegExp(\n /^(?:Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\\d{2})-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\\d{2}) (\\d{1,2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? GMT$/\n);\nvar ASC_TIME = new RegExp(\n /^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( [1-9]|\\d{2}) (\\d{1,2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? (\\d{4})$/\n);\nvar parseRfc7231DateTime = /* @__PURE__ */ __name((value) => {\n if (value === null || value === void 0) {\n return void 0;\n }\n if (typeof value !== \"string\") {\n throw new TypeError(\"RFC-7231 date-times must be expressed as strings\");\n }\n let match = IMF_FIXDATE.exec(value);\n if (match) {\n const [_, dayStr, monthStr, yearStr, hours, minutes, seconds, fractionalMilliseconds] = match;\n return buildDate(\n strictParseShort(stripLeadingZeroes(yearStr)),\n parseMonthByShortName(monthStr),\n parseDateValue(dayStr, \"day\", 1, 31),\n { hours, minutes, seconds, fractionalMilliseconds }\n );\n }\n match = RFC_850_DATE.exec(value);\n if (match) {\n const [_, dayStr, monthStr, yearStr, hours, minutes, seconds, fractionalMilliseconds] = match;\n return adjustRfc850Year(\n buildDate(parseTwoDigitYear(yearStr), parseMonthByShortName(monthStr), parseDateValue(dayStr, \"day\", 1, 31), {\n hours,\n minutes,\n seconds,\n fractionalMilliseconds\n })\n );\n }\n match = ASC_TIME.exec(value);\n if (match) {\n const [_, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds, yearStr] = match;\n return buildDate(\n strictParseShort(stripLeadingZeroes(yearStr)),\n parseMonthByShortName(monthStr),\n parseDateValue(dayStr.trimLeft(), \"day\", 1, 31),\n { hours, minutes, seconds, fractionalMilliseconds }\n );\n }\n throw new TypeError(\"Invalid RFC-7231 date-time value\");\n}, \"parseRfc7231DateTime\");\nvar parseEpochTimestamp = /* @__PURE__ */ __name((value) => {\n if (value === null || value === void 0) {\n return void 0;\n }\n let valueAsDouble;\n if (typeof value === \"number\") {\n valueAsDouble = value;\n } else if (typeof value === \"string\") {\n valueAsDouble = strictParseDouble(value);\n } else if (typeof value === \"object\" && value.tag === 1) {\n valueAsDouble = value.value;\n } else {\n throw new TypeError(\"Epoch timestamps must be expressed as floating point numbers or their string representation\");\n }\n if (Number.isNaN(valueAsDouble) || valueAsDouble === Infinity || valueAsDouble === -Infinity) {\n throw new TypeError(\"Epoch timestamps must be valid, non-Infinite, non-NaN numerics\");\n }\n return new Date(Math.round(valueAsDouble * 1e3));\n}, \"parseEpochTimestamp\");\nvar buildDate = /* @__PURE__ */ __name((year, month, day, time) => {\n const adjustedMonth = month - 1;\n validateDayOfMonth(year, adjustedMonth, day);\n return new Date(\n Date.UTC(\n year,\n adjustedMonth,\n day,\n parseDateValue(time.hours, \"hour\", 0, 23),\n parseDateValue(time.minutes, \"minute\", 0, 59),\n // seconds can go up to 60 for leap seconds\n parseDateValue(time.seconds, \"seconds\", 0, 60),\n parseMilliseconds(time.fractionalMilliseconds)\n )\n );\n}, \"buildDate\");\nvar parseTwoDigitYear = /* @__PURE__ */ __name((value) => {\n const thisYear = (/* @__PURE__ */ new Date()).getUTCFullYear();\n const valueInThisCentury = Math.floor(thisYear / 100) * 100 + strictParseShort(stripLeadingZeroes(value));\n if (valueInThisCentury < thisYear) {\n return valueInThisCentury + 100;\n }\n return valueInThisCentury;\n}, \"parseTwoDigitYear\");\nvar FIFTY_YEARS_IN_MILLIS = 50 * 365 * 24 * 60 * 60 * 1e3;\nvar adjustRfc850Year = /* @__PURE__ */ __name((input) => {\n if (input.getTime() - (/* @__PURE__ */ new Date()).getTime() > FIFTY_YEARS_IN_MILLIS) {\n return new Date(\n Date.UTC(\n input.getUTCFullYear() - 100,\n input.getUTCMonth(),\n input.getUTCDate(),\n input.getUTCHours(),\n input.getUTCMinutes(),\n input.getUTCSeconds(),\n input.getUTCMilliseconds()\n )\n );\n }\n return input;\n}, \"adjustRfc850Year\");\nvar parseMonthByShortName = /* @__PURE__ */ __name((value) => {\n const monthIdx = MONTHS.indexOf(value);\n if (monthIdx < 0) {\n throw new TypeError(`Invalid month: ${value}`);\n }\n return monthIdx + 1;\n}, \"parseMonthByShortName\");\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar validateDayOfMonth = /* @__PURE__ */ __name((year, month, day) => {\n let maxDays = DAYS_IN_MONTH[month];\n if (month === 1 && isLeapYear(year)) {\n maxDays = 29;\n }\n if (day > maxDays) {\n throw new TypeError(`Invalid day for ${MONTHS[month]} in ${year}: ${day}`);\n }\n}, \"validateDayOfMonth\");\nvar isLeapYear = /* @__PURE__ */ __name((year) => {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}, \"isLeapYear\");\nvar parseDateValue = /* @__PURE__ */ __name((value, type, lower, upper) => {\n const dateVal = strictParseByte(stripLeadingZeroes(value));\n if (dateVal < lower || dateVal > upper) {\n throw new TypeError(`${type} must be between ${lower} and ${upper}, inclusive`);\n }\n return dateVal;\n}, \"parseDateValue\");\nvar parseMilliseconds = /* @__PURE__ */ __name((value) => {\n if (value === null || value === void 0) {\n return 0;\n }\n return strictParseFloat32(\"0.\" + value) * 1e3;\n}, \"parseMilliseconds\");\nvar parseOffsetToMilliseconds = /* @__PURE__ */ __name((value) => {\n const directionStr = value[0];\n let direction = 1;\n if (directionStr == \"+\") {\n direction = 1;\n } else if (directionStr == \"-\") {\n direction = -1;\n } else {\n throw new TypeError(`Offset direction, ${directionStr}, must be \"+\" or \"-\"`);\n }\n const hour = Number(value.substring(1, 3));\n const minute = Number(value.substring(4, 6));\n return direction * (hour * 60 + minute) * 60 * 1e3;\n}, \"parseOffsetToMilliseconds\");\nvar stripLeadingZeroes = /* @__PURE__ */ __name((value) => {\n let idx = 0;\n while (idx < value.length - 1 && value.charAt(idx) === \"0\") {\n idx++;\n }\n if (idx === 0) {\n return value;\n }\n return value.slice(idx);\n}, \"stripLeadingZeroes\");\n\n// src/exceptions.ts\nvar _ServiceException = class _ServiceException extends Error {\n constructor(options) {\n super(options.message);\n Object.setPrototypeOf(this, _ServiceException.prototype);\n this.name = options.name;\n this.$fault = options.$fault;\n this.$metadata = options.$metadata;\n }\n};\n__name(_ServiceException, \"ServiceException\");\nvar ServiceException = _ServiceException;\nvar decorateServiceException = /* @__PURE__ */ __name((exception, additions = {}) => {\n Object.entries(additions).filter(([, v]) => v !== void 0).forEach(([k, v]) => {\n if (exception[k] == void 0 || exception[k] === \"\") {\n exception[k] = v;\n }\n });\n const message = exception.message || exception.Message || \"UnknownError\";\n exception.message = message;\n delete exception.Message;\n return exception;\n}, \"decorateServiceException\");\n\n// src/default-error-handler.ts\nvar throwDefaultError = /* @__PURE__ */ __name(({ output, parsedBody, exceptionCtor, errorCode }) => {\n const $metadata = deserializeMetadata(output);\n const statusCode = $metadata.httpStatusCode ? $metadata.httpStatusCode + \"\" : void 0;\n const response = new exceptionCtor({\n name: (parsedBody == null ? void 0 : parsedBody.code) || (parsedBody == null ? void 0 : parsedBody.Code) || errorCode || statusCode || \"UnknownError\",\n $fault: \"client\",\n $metadata\n });\n throw decorateServiceException(response, parsedBody);\n}, \"throwDefaultError\");\nvar withBaseException = /* @__PURE__ */ __name((ExceptionCtor) => {\n return ({ output, parsedBody, errorCode }) => {\n throwDefaultError({ output, parsedBody, exceptionCtor: ExceptionCtor, errorCode });\n };\n}, \"withBaseException\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\n\n// src/defaults-mode.ts\nvar loadConfigsForDefaultMode = /* @__PURE__ */ __name((mode) => {\n switch (mode) {\n case \"standard\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 3100\n };\n case \"in-region\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 1100\n };\n case \"cross-region\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 3100\n };\n case \"mobile\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 3e4\n };\n default:\n return {};\n }\n}, \"loadConfigsForDefaultMode\");\n\n// src/emitWarningIfUnsupportedVersion.ts\nvar warningEmitted = false;\nvar emitWarningIfUnsupportedVersion = /* @__PURE__ */ __name((version) => {\n if (version && !warningEmitted && parseInt(version.substring(1, version.indexOf(\".\"))) < 16) {\n warningEmitted = true;\n }\n}, \"emitWarningIfUnsupportedVersion\");\n\n// src/extensions/checksum.ts\n\nvar getChecksumConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const checksumAlgorithms = [];\n for (const id in import_types.AlgorithmId) {\n const algorithmId = import_types.AlgorithmId[id];\n if (runtimeConfig[algorithmId] === void 0) {\n continue;\n }\n checksumAlgorithms.push({\n algorithmId: () => algorithmId,\n checksumConstructor: () => runtimeConfig[algorithmId]\n });\n }\n return {\n _checksumAlgorithms: checksumAlgorithms,\n addChecksumAlgorithm(algo) {\n this._checksumAlgorithms.push(algo);\n },\n checksumAlgorithms() {\n return this._checksumAlgorithms;\n }\n };\n}, \"getChecksumConfiguration\");\nvar resolveChecksumRuntimeConfig = /* @__PURE__ */ __name((clientConfig) => {\n const runtimeConfig = {};\n clientConfig.checksumAlgorithms().forEach((checksumAlgorithm) => {\n runtimeConfig[checksumAlgorithm.algorithmId()] = checksumAlgorithm.checksumConstructor();\n });\n return runtimeConfig;\n}, \"resolveChecksumRuntimeConfig\");\n\n// src/extensions/retry.ts\nvar getRetryConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n let _retryStrategy = runtimeConfig.retryStrategy;\n return {\n setRetryStrategy(retryStrategy) {\n _retryStrategy = retryStrategy;\n },\n retryStrategy() {\n return _retryStrategy;\n }\n };\n}, \"getRetryConfiguration\");\nvar resolveRetryRuntimeConfig = /* @__PURE__ */ __name((retryStrategyConfiguration) => {\n const runtimeConfig = {};\n runtimeConfig.retryStrategy = retryStrategyConfiguration.retryStrategy();\n return runtimeConfig;\n}, \"resolveRetryRuntimeConfig\");\n\n// src/extensions/defaultExtensionConfiguration.ts\nvar getDefaultExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n return {\n ...getChecksumConfiguration(runtimeConfig),\n ...getRetryConfiguration(runtimeConfig)\n };\n}, \"getDefaultExtensionConfiguration\");\nvar getDefaultClientConfiguration = getDefaultExtensionConfiguration;\nvar resolveDefaultRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n ...resolveChecksumRuntimeConfig(config),\n ...resolveRetryRuntimeConfig(config)\n };\n}, \"resolveDefaultRuntimeConfig\");\n\n// src/extended-encode-uri-component.ts\nfunction extendedEncodeURIComponent(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function(c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\n__name(extendedEncodeURIComponent, \"extendedEncodeURIComponent\");\n\n// src/get-array-if-single-item.ts\nvar getArrayIfSingleItem = /* @__PURE__ */ __name((mayBeArray) => Array.isArray(mayBeArray) ? mayBeArray : [mayBeArray], \"getArrayIfSingleItem\");\n\n// src/get-value-from-text-node.ts\nvar getValueFromTextNode = /* @__PURE__ */ __name((obj) => {\n const textNodeName = \"#text\";\n for (const key in obj) {\n if (obj.hasOwnProperty(key) && obj[key][textNodeName] !== void 0) {\n obj[key] = obj[key][textNodeName];\n } else if (typeof obj[key] === \"object\" && obj[key] !== null) {\n obj[key] = getValueFromTextNode(obj[key]);\n }\n }\n return obj;\n}, \"getValueFromTextNode\");\n\n// src/lazy-json.ts\nvar StringWrapper = /* @__PURE__ */ __name(function() {\n const Class = Object.getPrototypeOf(this).constructor;\n const Constructor = Function.bind.apply(String, [null, ...arguments]);\n const instance = new Constructor();\n Object.setPrototypeOf(instance, Class.prototype);\n return instance;\n}, \"StringWrapper\");\nStringWrapper.prototype = Object.create(String.prototype, {\n constructor: {\n value: StringWrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n});\nObject.setPrototypeOf(StringWrapper, String);\nvar _LazyJsonString = class _LazyJsonString extends StringWrapper {\n deserializeJSON() {\n return JSON.parse(super.toString());\n }\n toJSON() {\n return super.toString();\n }\n static fromObject(object) {\n if (object instanceof _LazyJsonString) {\n return object;\n } else if (object instanceof String || typeof object === \"string\") {\n return new _LazyJsonString(object);\n }\n return new _LazyJsonString(JSON.stringify(object));\n }\n};\n__name(_LazyJsonString, \"LazyJsonString\");\nvar LazyJsonString = _LazyJsonString;\n\n// src/object-mapping.ts\nfunction map(arg0, arg1, arg2) {\n let target;\n let filter;\n let instructions;\n if (typeof arg1 === \"undefined\" && typeof arg2 === \"undefined\") {\n target = {};\n instructions = arg0;\n } else {\n target = arg0;\n if (typeof arg1 === \"function\") {\n filter = arg1;\n instructions = arg2;\n return mapWithFilter(target, filter, instructions);\n } else {\n instructions = arg1;\n }\n }\n for (const key of Object.keys(instructions)) {\n if (!Array.isArray(instructions[key])) {\n target[key] = instructions[key];\n continue;\n }\n applyInstruction(target, null, instructions, key);\n }\n return target;\n}\n__name(map, \"map\");\nvar convertMap = /* @__PURE__ */ __name((target) => {\n const output = {};\n for (const [k, v] of Object.entries(target || {})) {\n output[k] = [, v];\n }\n return output;\n}, \"convertMap\");\nvar take = /* @__PURE__ */ __name((source, instructions) => {\n const out = {};\n for (const key in instructions) {\n applyInstruction(out, source, instructions, key);\n }\n return out;\n}, \"take\");\nvar mapWithFilter = /* @__PURE__ */ __name((target, filter, instructions) => {\n return map(\n target,\n Object.entries(instructions).reduce(\n (_instructions, [key, value]) => {\n if (Array.isArray(value)) {\n _instructions[key] = value;\n } else {\n if (typeof value === \"function\") {\n _instructions[key] = [filter, value()];\n } else {\n _instructions[key] = [filter, value];\n }\n }\n return _instructions;\n },\n {}\n )\n );\n}, \"mapWithFilter\");\nvar applyInstruction = /* @__PURE__ */ __name((target, source, instructions, targetKey) => {\n if (source !== null) {\n let instruction = instructions[targetKey];\n if (typeof instruction === \"function\") {\n instruction = [, instruction];\n }\n const [filter2 = nonNullish, valueFn = pass, sourceKey = targetKey] = instruction;\n if (typeof filter2 === \"function\" && filter2(source[sourceKey]) || typeof filter2 !== \"function\" && !!filter2) {\n target[targetKey] = valueFn(source[sourceKey]);\n }\n return;\n }\n let [filter, value] = instructions[targetKey];\n if (typeof value === \"function\") {\n let _value;\n const defaultFilterPassed = filter === void 0 && (_value = value()) != null;\n const customFilterPassed = typeof filter === \"function\" && !!filter(void 0) || typeof filter !== \"function\" && !!filter;\n if (defaultFilterPassed) {\n target[targetKey] = _value;\n } else if (customFilterPassed) {\n target[targetKey] = value();\n }\n } else {\n const defaultFilterPassed = filter === void 0 && value != null;\n const customFilterPassed = typeof filter === \"function\" && !!filter(value) || typeof filter !== \"function\" && !!filter;\n if (defaultFilterPassed || customFilterPassed) {\n target[targetKey] = value;\n }\n }\n}, \"applyInstruction\");\nvar nonNullish = /* @__PURE__ */ __name((_) => _ != null, \"nonNullish\");\nvar pass = /* @__PURE__ */ __name((_) => _, \"pass\");\n\n// src/resolve-path.ts\nvar resolvedPath = /* @__PURE__ */ __name((resolvedPath2, input, memberName, labelValueProvider, uriLabel, isGreedyLabel) => {\n if (input != null && input[memberName] !== void 0) {\n const labelValue = labelValueProvider();\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: \" + memberName + \".\");\n }\n resolvedPath2 = resolvedPath2.replace(\n uriLabel,\n isGreedyLabel ? labelValue.split(\"/\").map((segment) => extendedEncodeURIComponent(segment)).join(\"/\") : extendedEncodeURIComponent(labelValue)\n );\n } else {\n throw new Error(\"No value provided for input HTTP label: \" + memberName + \".\");\n }\n return resolvedPath2;\n}, \"resolvedPath\");\n\n// src/ser-utils.ts\nvar serializeFloat = /* @__PURE__ */ __name((value) => {\n if (value !== value) {\n return \"NaN\";\n }\n switch (value) {\n case Infinity:\n return \"Infinity\";\n case -Infinity:\n return \"-Infinity\";\n default:\n return value;\n }\n}, \"serializeFloat\");\nvar serializeDateTime = /* @__PURE__ */ __name((date) => date.toISOString().replace(\".000Z\", \"Z\"), \"serializeDateTime\");\n\n// src/serde-json.ts\nvar _json = /* @__PURE__ */ __name((obj) => {\n if (obj == null) {\n return {};\n }\n if (Array.isArray(obj)) {\n return obj.filter((_) => _ != null).map(_json);\n }\n if (typeof obj === \"object\") {\n const target = {};\n for (const key of Object.keys(obj)) {\n if (obj[key] == null) {\n continue;\n }\n target[key] = _json(obj[key]);\n }\n return target;\n }\n return obj;\n}, \"_json\");\n\n// src/split-every.ts\nfunction splitEvery(value, delimiter, numDelimiters) {\n if (numDelimiters <= 0 || !Number.isInteger(numDelimiters)) {\n throw new Error(\"Invalid number of delimiters (\" + numDelimiters + \") for splitEvery.\");\n }\n const segments = value.split(delimiter);\n if (numDelimiters === 1) {\n return segments;\n }\n const compoundSegments = [];\n let currentSegment = \"\";\n for (let i = 0; i < segments.length; i++) {\n if (currentSegment === \"\") {\n currentSegment = segments[i];\n } else {\n currentSegment += delimiter + segments[i];\n }\n if ((i + 1) % numDelimiters === 0) {\n compoundSegments.push(currentSegment);\n currentSegment = \"\";\n }\n }\n if (currentSegment !== \"\") {\n compoundSegments.push(currentSegment);\n }\n return compoundSegments;\n}\n__name(splitEvery, \"splitEvery\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n NoOpLogger,\n Client,\n collectBody,\n Command,\n SENSITIVE_STRING,\n createAggregatedClient,\n dateToUtcString,\n parseRfc3339DateTime,\n parseRfc3339DateTimeWithOffset,\n parseRfc7231DateTime,\n parseEpochTimestamp,\n throwDefaultError,\n withBaseException,\n loadConfigsForDefaultMode,\n emitWarningIfUnsupportedVersion,\n getDefaultExtensionConfiguration,\n getDefaultClientConfiguration,\n resolveDefaultRuntimeConfig,\n ServiceException,\n decorateServiceException,\n extendedEncodeURIComponent,\n getArrayIfSingleItem,\n getValueFromTextNode,\n StringWrapper,\n LazyJsonString,\n map,\n convertMap,\n take,\n parseBoolean,\n expectBoolean,\n expectNumber,\n expectFloat32,\n expectLong,\n expectInt,\n expectInt32,\n expectShort,\n expectByte,\n expectNonNull,\n expectObject,\n expectString,\n expectUnion,\n strictParseDouble,\n strictParseFloat,\n strictParseFloat32,\n limitedParseDouble,\n handleFloat,\n limitedParseFloat,\n limitedParseFloat32,\n strictParseLong,\n strictParseInt,\n strictParseInt32,\n strictParseShort,\n strictParseByte,\n logger,\n resolvedPath,\n serializeFloat,\n serializeDateTime,\n _json,\n splitEvery\n});\n\n",
|
|
57
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isStreamingPayload = void 0;\nconst stream_1 = require(\"stream\");\nconst isStreamingPayload = (request) => (request === null || request === void 0 ? void 0 : request.body) instanceof stream_1.Readable ||\n (typeof ReadableStream !== \"undefined\" && (request === null || request === void 0 ? void 0 : request.body) instanceof ReadableStream);\nexports.isStreamingPayload = isStreamingPayload;\n",
|
|
58
|
+
"var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n AdaptiveRetryStrategy: () => AdaptiveRetryStrategy,\n CONFIG_MAX_ATTEMPTS: () => CONFIG_MAX_ATTEMPTS,\n CONFIG_RETRY_MODE: () => CONFIG_RETRY_MODE,\n ENV_MAX_ATTEMPTS: () => ENV_MAX_ATTEMPTS,\n ENV_RETRY_MODE: () => ENV_RETRY_MODE,\n NODE_MAX_ATTEMPT_CONFIG_OPTIONS: () => NODE_MAX_ATTEMPT_CONFIG_OPTIONS,\n NODE_RETRY_MODE_CONFIG_OPTIONS: () => NODE_RETRY_MODE_CONFIG_OPTIONS,\n StandardRetryStrategy: () => StandardRetryStrategy,\n defaultDelayDecider: () => defaultDelayDecider,\n defaultRetryDecider: () => defaultRetryDecider,\n getOmitRetryHeadersPlugin: () => getOmitRetryHeadersPlugin,\n getRetryAfterHint: () => getRetryAfterHint,\n getRetryPlugin: () => getRetryPlugin,\n omitRetryHeadersMiddleware: () => omitRetryHeadersMiddleware,\n omitRetryHeadersMiddlewareOptions: () => omitRetryHeadersMiddlewareOptions,\n resolveRetryConfig: () => resolveRetryConfig,\n retryMiddleware: () => retryMiddleware,\n retryMiddlewareOptions: () => retryMiddlewareOptions\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/AdaptiveRetryStrategy.ts\n\n\n// src/StandardRetryStrategy.ts\nvar import_protocol_http = require(\"@smithy/protocol-http\");\n\n\nvar import_uuid = require(\"uuid\");\n\n// src/defaultRetryQuota.ts\nvar import_util_retry = require(\"@smithy/util-retry\");\nvar getDefaultRetryQuota = /* @__PURE__ */ __name((initialRetryTokens, options) => {\n const MAX_CAPACITY = initialRetryTokens;\n const noRetryIncrement = (options == null ? void 0 : options.noRetryIncrement) ?? import_util_retry.NO_RETRY_INCREMENT;\n const retryCost = (options == null ? void 0 : options.retryCost) ?? import_util_retry.RETRY_COST;\n const timeoutRetryCost = (options == null ? void 0 : options.timeoutRetryCost) ?? import_util_retry.TIMEOUT_RETRY_COST;\n let availableCapacity = initialRetryTokens;\n const getCapacityAmount = /* @__PURE__ */ __name((error) => error.name === \"TimeoutError\" ? timeoutRetryCost : retryCost, \"getCapacityAmount\");\n const hasRetryTokens = /* @__PURE__ */ __name((error) => getCapacityAmount(error) <= availableCapacity, \"hasRetryTokens\");\n const retrieveRetryTokens = /* @__PURE__ */ __name((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 }, \"retrieveRetryTokens\");\n const releaseRetryTokens = /* @__PURE__ */ __name((capacityReleaseAmount) => {\n availableCapacity += capacityReleaseAmount ?? noRetryIncrement;\n availableCapacity = Math.min(availableCapacity, MAX_CAPACITY);\n }, \"releaseRetryTokens\");\n return Object.freeze({\n hasRetryTokens,\n retrieveRetryTokens,\n releaseRetryTokens\n });\n}, \"getDefaultRetryQuota\");\n\n// src/delayDecider.ts\n\nvar defaultDelayDecider = /* @__PURE__ */ __name((delayBase, attempts) => Math.floor(Math.min(import_util_retry.MAXIMUM_RETRY_DELAY, Math.random() * 2 ** attempts * delayBase)), \"defaultDelayDecider\");\n\n// src/retryDecider.ts\nvar import_service_error_classification = require(\"@smithy/service-error-classification\");\nvar defaultRetryDecider = /* @__PURE__ */ __name((error) => {\n if (!error) {\n return false;\n }\n return (0, import_service_error_classification.isRetryableByTrait)(error) || (0, import_service_error_classification.isClockSkewError)(error) || (0, import_service_error_classification.isThrottlingError)(error) || (0, import_service_error_classification.isTransientError)(error);\n}, \"defaultRetryDecider\");\n\n// src/util.ts\nvar asSdkError = /* @__PURE__ */ __name((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}, \"asSdkError\");\n\n// src/StandardRetryStrategy.ts\nvar _StandardRetryStrategy = class _StandardRetryStrategy {\n constructor(maxAttemptsProvider, options) {\n this.maxAttemptsProvider = maxAttemptsProvider;\n this.mode = import_util_retry.RETRY_MODES.STANDARD;\n this.retryDecider = (options == null ? void 0 : options.retryDecider) ?? defaultRetryDecider;\n this.delayDecider = (options == null ? void 0 : options.delayDecider) ?? defaultDelayDecider;\n this.retryQuota = (options == null ? void 0 : options.retryQuota) ?? getDefaultRetryQuota(import_util_retry.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 } catch (error) {\n maxAttempts = import_util_retry.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 (import_protocol_http.HttpRequest.isInstance(request)) {\n request.headers[import_util_retry.INVOCATION_ID_HEADER] = (0, import_uuid.v4)();\n }\n while (true) {\n try {\n if (import_protocol_http.HttpRequest.isInstance(request)) {\n request.headers[import_util_retry.REQUEST_HEADER] = `attempt=${attempts + 1}; max=${maxAttempts}`;\n }\n if (options == null ? void 0 : options.beforeRequest) {\n await options.beforeRequest();\n }\n const { response, output } = await next(args);\n if (options == null ? void 0 : 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 } 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(\n (0, import_service_error_classification.isThrottlingError)(err) ? import_util_retry.THROTTLING_RETRY_DELAY_BASE : import_util_retry.DEFAULT_RETRY_DELAY_BASE,\n attempts\n );\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};\n__name(_StandardRetryStrategy, \"StandardRetryStrategy\");\nvar StandardRetryStrategy = _StandardRetryStrategy;\nvar getDelayFromRetryAfterHeader = /* @__PURE__ */ __name((response) => {\n if (!import_protocol_http.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 * 1e3;\n const retryAfterDate = new Date(retryAfter);\n return retryAfterDate.getTime() - Date.now();\n}, \"getDelayFromRetryAfterHeader\");\n\n// src/AdaptiveRetryStrategy.ts\nvar _AdaptiveRetryStrategy = class _AdaptiveRetryStrategy extends StandardRetryStrategy {\n constructor(maxAttemptsProvider, options) {\n const { rateLimiter, ...superOptions } = options ?? {};\n super(maxAttemptsProvider, superOptions);\n this.rateLimiter = rateLimiter ?? new import_util_retry.DefaultRateLimiter();\n this.mode = import_util_retry.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__name(_AdaptiveRetryStrategy, \"AdaptiveRetryStrategy\");\nvar AdaptiveRetryStrategy = _AdaptiveRetryStrategy;\n\n// src/configurations.ts\nvar import_util_middleware = require(\"@smithy/util-middleware\");\n\nvar ENV_MAX_ATTEMPTS = \"AWS_MAX_ATTEMPTS\";\nvar CONFIG_MAX_ATTEMPTS = \"max_attempts\";\nvar NODE_MAX_ATTEMPT_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => {\n const value = env[ENV_MAX_ATTEMPTS];\n if (!value)\n return void 0;\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 void 0;\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: import_util_retry.DEFAULT_MAX_ATTEMPTS\n};\nvar resolveRetryConfig = /* @__PURE__ */ __name((input) => {\n const { retryStrategy } = input;\n const maxAttempts = (0, import_util_middleware.normalizeProvider)(input.maxAttempts ?? import_util_retry.DEFAULT_MAX_ATTEMPTS);\n return {\n ...input,\n maxAttempts,\n retryStrategy: async () => {\n if (retryStrategy) {\n return retryStrategy;\n }\n const retryMode = await (0, import_util_middleware.normalizeProvider)(input.retryMode)();\n if (retryMode === import_util_retry.RETRY_MODES.ADAPTIVE) {\n return new import_util_retry.AdaptiveRetryStrategy(maxAttempts);\n }\n return new import_util_retry.StandardRetryStrategy(maxAttempts);\n }\n };\n}, \"resolveRetryConfig\");\nvar ENV_RETRY_MODE = \"AWS_RETRY_MODE\";\nvar CONFIG_RETRY_MODE = \"retry_mode\";\nvar NODE_RETRY_MODE_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => env[ENV_RETRY_MODE],\n configFileSelector: (profile) => profile[CONFIG_RETRY_MODE],\n default: import_util_retry.DEFAULT_RETRY_MODE\n};\n\n// src/omitRetryHeadersMiddleware.ts\n\n\nvar omitRetryHeadersMiddleware = /* @__PURE__ */ __name(() => (next) => async (args) => {\n const { request } = args;\n if (import_protocol_http.HttpRequest.isInstance(request)) {\n delete request.headers[import_util_retry.INVOCATION_ID_HEADER];\n delete request.headers[import_util_retry.REQUEST_HEADER];\n }\n return next(args);\n}, \"omitRetryHeadersMiddleware\");\nvar omitRetryHeadersMiddlewareOptions = {\n name: \"omitRetryHeadersMiddleware\",\n tags: [\"RETRY\", \"HEADERS\", \"OMIT_RETRY_HEADERS\"],\n relation: \"before\",\n toMiddleware: \"awsAuthMiddleware\",\n override: true\n};\nvar getOmitRetryHeadersPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo(omitRetryHeadersMiddleware(), omitRetryHeadersMiddlewareOptions);\n }\n}), \"getOmitRetryHeadersPlugin\");\n\n// src/retryMiddleware.ts\n\n\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n\nvar import_isStreamingPayload = require(\"./isStreamingPayload/isStreamingPayload\");\nvar retryMiddleware = /* @__PURE__ */ __name((options) => (next, context) => async (args) => {\n var _a;\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 = import_protocol_http.HttpRequest.isInstance(request);\n if (isRequest) {\n request.headers[import_util_retry.INVOCATION_ID_HEADER] = (0, import_uuid.v4)();\n }\n while (true) {\n try {\n if (isRequest) {\n request.headers[import_util_retry.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 } catch (e) {\n const retryErrorInfo = getRetryErrorInfo(e);\n lastError = asSdkError(e);\n if (isRequest && (0, import_isStreamingPayload.isStreamingPayload)(request)) {\n (_a = context.logger instanceof import_smithy_client.NoOpLogger ? console : context.logger) == null ? void 0 : _a.warn(\n \"An error was encountered in a non-retryable streaming request.\"\n );\n throw lastError;\n }\n try {\n retryToken = await retryStrategy.refreshRetryTokenForRetry(retryToken, retryErrorInfo);\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 } else {\n retryStrategy = retryStrategy;\n if (retryStrategy == null ? void 0 : retryStrategy.mode)\n context.userAgent = [...context.userAgent || [], [\"cfg/retry-mode\", retryStrategy.mode]];\n return retryStrategy.retry(next, args);\n }\n}, \"retryMiddleware\");\nvar isRetryStrategyV2 = /* @__PURE__ */ __name((retryStrategy) => typeof retryStrategy.acquireInitialRetryToken !== \"undefined\" && typeof retryStrategy.refreshRetryTokenForRetry !== \"undefined\" && typeof retryStrategy.recordSuccess !== \"undefined\", \"isRetryStrategyV2\");\nvar getRetryErrorInfo = /* @__PURE__ */ __name((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}, \"getRetryErrorInfo\");\nvar getRetryErrorType = /* @__PURE__ */ __name((error) => {\n if ((0, import_service_error_classification.isThrottlingError)(error))\n return \"THROTTLING\";\n if ((0, import_service_error_classification.isTransientError)(error))\n return \"TRANSIENT\";\n if ((0, import_service_error_classification.isServerError)(error))\n return \"SERVER_ERROR\";\n return \"CLIENT_ERROR\";\n}, \"getRetryErrorType\");\nvar retryMiddlewareOptions = {\n name: \"retryMiddleware\",\n tags: [\"RETRY\"],\n step: \"finalizeRequest\",\n priority: \"high\",\n override: true\n};\nvar getRetryPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(retryMiddleware(options), retryMiddlewareOptions);\n }\n}), \"getRetryPlugin\");\nvar getRetryAfterHint = /* @__PURE__ */ __name((response) => {\n if (!import_protocol_http.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 * 1e3);\n const retryAfterDate = new Date(retryAfter);\n return retryAfterDate;\n}, \"getRetryAfterHint\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n AdaptiveRetryStrategy,\n StandardRetryStrategy,\n ENV_MAX_ATTEMPTS,\n CONFIG_MAX_ATTEMPTS,\n NODE_MAX_ATTEMPT_CONFIG_OPTIONS,\n resolveRetryConfig,\n ENV_RETRY_MODE,\n CONFIG_RETRY_MODE,\n NODE_RETRY_MODE_CONFIG_OPTIONS,\n defaultDelayDecider,\n omitRetryHeadersMiddleware,\n omitRetryHeadersMiddlewareOptions,\n getOmitRetryHeadersPlugin,\n defaultRetryDecider,\n retryMiddleware,\n retryMiddlewareOptions,\n getRetryPlugin,\n getRetryAfterHint\n});\n\n",
|
|
59
|
+
"var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n DefaultIdentityProviderConfig: () => DefaultIdentityProviderConfig,\n EXPIRATION_MS: () => EXPIRATION_MS,\n HttpApiKeyAuthSigner: () => HttpApiKeyAuthSigner,\n HttpBearerAuthSigner: () => HttpBearerAuthSigner,\n NoAuthSigner: () => NoAuthSigner,\n RequestBuilder: () => RequestBuilder,\n createIsIdentityExpiredFunction: () => createIsIdentityExpiredFunction,\n createPaginator: () => createPaginator,\n doesIdentityRequireRefresh: () => doesIdentityRequireRefresh,\n getHttpAuthSchemeEndpointRuleSetPlugin: () => getHttpAuthSchemeEndpointRuleSetPlugin,\n getHttpAuthSchemePlugin: () => getHttpAuthSchemePlugin,\n getHttpSigningPlugin: () => getHttpSigningPlugin,\n getSmithyContext: () => getSmithyContext3,\n httpAuthSchemeEndpointRuleSetMiddlewareOptions: () => httpAuthSchemeEndpointRuleSetMiddlewareOptions,\n httpAuthSchemeMiddleware: () => httpAuthSchemeMiddleware,\n httpAuthSchemeMiddlewareOptions: () => httpAuthSchemeMiddlewareOptions,\n httpSigningMiddleware: () => httpSigningMiddleware,\n httpSigningMiddlewareOptions: () => httpSigningMiddlewareOptions,\n isIdentityExpired: () => isIdentityExpired,\n memoizeIdentityProvider: () => memoizeIdentityProvider,\n normalizeProvider: () => normalizeProvider,\n requestBuilder: () => requestBuilder\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/middleware-http-auth-scheme/httpAuthSchemeMiddleware.ts\nvar import_util_middleware = require(\"@smithy/util-middleware\");\nfunction convertHttpAuthSchemesToMap(httpAuthSchemes) {\n const map = /* @__PURE__ */ new Map();\n for (const scheme of httpAuthSchemes) {\n map.set(scheme.schemeId, scheme);\n }\n return map;\n}\n__name(convertHttpAuthSchemesToMap, \"convertHttpAuthSchemesToMap\");\nvar httpAuthSchemeMiddleware = /* @__PURE__ */ __name((config, mwOptions) => (next, context) => async (args) => {\n var _a;\n const options = config.httpAuthSchemeProvider(\n await mwOptions.httpAuthSchemeParametersProvider(config, context, args.input)\n );\n const authSchemes = convertHttpAuthSchemesToMap(config.httpAuthSchemes);\n const smithyContext = (0, import_util_middleware.getSmithyContext)(context);\n const failureReasons = [];\n for (const option of options) {\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 = {} } = ((_a = option.propertiesExtractor) == null ? void 0 : _a.call(option, 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}, \"httpAuthSchemeMiddleware\");\n\n// src/middleware-http-auth-scheme/getHttpAuthSchemeEndpointRuleSetPlugin.ts\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar httpAuthSchemeEndpointRuleSetMiddlewareOptions = {\n step: \"serialize\",\n tags: [\"HTTP_AUTH_SCHEME\"],\n name: \"httpAuthSchemeMiddleware\",\n override: true,\n relation: \"before\",\n toMiddleware: import_middleware_endpoint.endpointMiddlewareOptions.name\n};\nvar getHttpAuthSchemeEndpointRuleSetPlugin = /* @__PURE__ */ __name((config, {\n httpAuthSchemeParametersProvider,\n identityProviderConfigProvider\n}) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo(\n httpAuthSchemeMiddleware(config, {\n httpAuthSchemeParametersProvider,\n identityProviderConfigProvider\n }),\n httpAuthSchemeEndpointRuleSetMiddlewareOptions\n );\n }\n}), \"getHttpAuthSchemeEndpointRuleSetPlugin\");\n\n// src/middleware-http-auth-scheme/getHttpAuthSchemePlugin.ts\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\nvar httpAuthSchemeMiddlewareOptions = {\n step: \"serialize\",\n tags: [\"HTTP_AUTH_SCHEME\"],\n name: \"httpAuthSchemeMiddleware\",\n override: true,\n relation: \"before\",\n toMiddleware: import_middleware_serde.serializerMiddlewareOption.name\n};\nvar getHttpAuthSchemePlugin = /* @__PURE__ */ __name((config, {\n httpAuthSchemeParametersProvider,\n identityProviderConfigProvider\n}) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo(\n httpAuthSchemeMiddleware(config, {\n httpAuthSchemeParametersProvider,\n identityProviderConfigProvider\n }),\n httpAuthSchemeMiddlewareOptions\n );\n }\n}), \"getHttpAuthSchemePlugin\");\n\n// src/middleware-http-signing/httpSigningMiddleware.ts\nvar import_protocol_http = require(\"@smithy/protocol-http\");\n\nvar defaultErrorHandler = /* @__PURE__ */ __name((signingProperties) => (error) => {\n throw error;\n}, \"defaultErrorHandler\");\nvar defaultSuccessHandler = /* @__PURE__ */ __name((httpResponse, signingProperties) => {\n}, \"defaultSuccessHandler\");\nvar httpSigningMiddleware = /* @__PURE__ */ __name((config) => (next, context) => async (args) => {\n if (!import_protocol_http.HttpRequest.isInstance(args.request)) {\n return next(args);\n }\n const smithyContext = (0, import_util_middleware.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 {\n httpAuthOption: { signingProperties = {} },\n identity,\n signer\n } = 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}, \"httpSigningMiddleware\");\n\n// src/middleware-http-signing/getHttpSigningMiddleware.ts\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\nvar httpSigningMiddlewareOptions = {\n step: \"finalizeRequest\",\n tags: [\"HTTP_SIGNING\"],\n name: \"httpSigningMiddleware\",\n aliases: [\"apiKeyMiddleware\", \"tokenMiddleware\", \"awsAuthMiddleware\"],\n override: true,\n relation: \"after\",\n toMiddleware: import_middleware_retry.retryMiddlewareOptions.name\n};\nvar getHttpSigningPlugin = /* @__PURE__ */ __name((config) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo(httpSigningMiddleware(config), httpSigningMiddlewareOptions);\n }\n}), \"getHttpSigningPlugin\");\n\n// src/util-identity-and-auth/DefaultIdentityProviderConfig.ts\nvar _DefaultIdentityProviderConfig = class _DefaultIdentityProviderConfig {\n /**\n * Creates an IdentityProviderConfig with a record of scheme IDs to identity providers.\n *\n * @param config scheme IDs and identity providers to configure\n */\n constructor(config) {\n this.authSchemes = /* @__PURE__ */ new Map();\n for (const [key, value] of Object.entries(config)) {\n if (value !== void 0) {\n this.authSchemes.set(key, value);\n }\n }\n }\n getIdentityProvider(schemeId) {\n return this.authSchemes.get(schemeId);\n }\n};\n__name(_DefaultIdentityProviderConfig, \"DefaultIdentityProviderConfig\");\nvar DefaultIdentityProviderConfig = _DefaultIdentityProviderConfig;\n\n// src/util-identity-and-auth/httpAuthSchemes/httpApiKeyAuth.ts\n\nvar import_types = require(\"@smithy/types\");\nvar _HttpApiKeyAuthSigner = class _HttpApiKeyAuthSigner {\n async sign(httpRequest, identity, signingProperties) {\n if (!signingProperties) {\n throw new Error(\n \"request could not be signed with `apiKey` since the `name` and `in` signer properties are missing\"\n );\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 = import_protocol_http.HttpRequest.clone(httpRequest);\n if (signingProperties.in === import_types.HttpApiKeyAuthLocation.QUERY) {\n clonedRequest.query[signingProperties.name] = identity.apiKey;\n } else if (signingProperties.in === import_types.HttpApiKeyAuthLocation.HEADER) {\n clonedRequest.headers[signingProperties.name] = signingProperties.scheme ? `${signingProperties.scheme} ${identity.apiKey}` : identity.apiKey;\n } else {\n throw new Error(\n \"request can only be signed with `apiKey` locations `query` or `header`, but found: `\" + signingProperties.in + \"`\"\n );\n }\n return clonedRequest;\n }\n};\n__name(_HttpApiKeyAuthSigner, \"HttpApiKeyAuthSigner\");\nvar HttpApiKeyAuthSigner = _HttpApiKeyAuthSigner;\n\n// src/util-identity-and-auth/httpAuthSchemes/httpBearerAuth.ts\n\nvar _HttpBearerAuthSigner = class _HttpBearerAuthSigner {\n async sign(httpRequest, identity, signingProperties) {\n const clonedRequest = import_protocol_http.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__name(_HttpBearerAuthSigner, \"HttpBearerAuthSigner\");\nvar HttpBearerAuthSigner = _HttpBearerAuthSigner;\n\n// src/util-identity-and-auth/httpAuthSchemes/noAuth.ts\nvar _NoAuthSigner = class _NoAuthSigner {\n async sign(httpRequest, identity, signingProperties) {\n return httpRequest;\n }\n};\n__name(_NoAuthSigner, \"NoAuthSigner\");\nvar NoAuthSigner = _NoAuthSigner;\n\n// src/util-identity-and-auth/memoizeIdentityProvider.ts\nvar createIsIdentityExpiredFunction = /* @__PURE__ */ __name((expirationMs) => (identity) => doesIdentityRequireRefresh(identity) && identity.expiration.getTime() - Date.now() < expirationMs, \"createIsIdentityExpiredFunction\");\nvar EXPIRATION_MS = 3e5;\nvar isIdentityExpired = createIsIdentityExpiredFunction(EXPIRATION_MS);\nvar doesIdentityRequireRefresh = /* @__PURE__ */ __name((identity) => identity.expiration !== void 0, \"doesIdentityRequireRefresh\");\nvar memoizeIdentityProvider = /* @__PURE__ */ __name((provider, isExpired, requiresRefresh) => {\n if (provider === void 0) {\n return void 0;\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 = /* @__PURE__ */ __name(async (options) => {\n if (!pending) {\n pending = normalizedProvider(options);\n }\n try {\n resolved = await pending;\n hasResult = true;\n isConstant = false;\n } finally {\n pending = void 0;\n }\n return resolved;\n }, \"coalesceProvider\");\n if (isExpired === void 0) {\n return async (options) => {\n if (!hasResult || (options == null ? void 0 : options.forceRefresh)) {\n resolved = await coalesceProvider(options);\n }\n return resolved;\n };\n }\n return async (options) => {\n if (!hasResult || (options == null ? void 0 : 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}, \"memoizeIdentityProvider\");\n\n// src/getSmithyContext.ts\n\nvar getSmithyContext3 = /* @__PURE__ */ __name((context) => context[import_types.SMITHY_CONTEXT_KEY] || (context[import_types.SMITHY_CONTEXT_KEY] = {}), \"getSmithyContext\");\n\n// src/normalizeProvider.ts\nvar normalizeProvider = /* @__PURE__ */ __name((input) => {\n if (typeof input === \"function\")\n return input;\n const promisified = Promise.resolve(input);\n return () => promisified;\n}, \"normalizeProvider\");\n\n// src/protocols/requestBuilder.ts\n\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nfunction requestBuilder(input, context) {\n return new RequestBuilder(input, context);\n}\n__name(requestBuilder, \"requestBuilder\");\nvar _RequestBuilder = class _RequestBuilder {\n constructor(input, context) {\n this.input = input;\n this.context = context;\n this.query = {};\n this.method = \"\";\n this.headers = {};\n this.path = \"\";\n this.body = null;\n this.hostname = \"\";\n this.resolvePathStack = [];\n }\n async build() {\n const { hostname, protocol = \"https\", port, path: basePath } = await this.context.endpoint();\n this.path = basePath;\n for (const resolvePath of this.resolvePathStack) {\n resolvePath(this.path);\n }\n return new import_protocol_http.HttpRequest({\n protocol,\n hostname: this.hostname || hostname,\n port,\n method: this.method,\n path: this.path,\n query: this.query,\n body: this.body,\n headers: this.headers\n });\n }\n /**\n * Brevity setter for \"hostname\".\n */\n hn(hostname) {\n this.hostname = hostname;\n return this;\n }\n /**\n * Brevity initial builder for \"basepath\".\n */\n bp(uriLabel) {\n this.resolvePathStack.push((basePath) => {\n this.path = `${(basePath == null ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\"}` + uriLabel;\n });\n return this;\n }\n /**\n * Brevity incremental builder for \"path\".\n */\n p(memberName, labelValueProvider, uriLabel, isGreedyLabel) {\n this.resolvePathStack.push((path) => {\n this.path = (0, import_smithy_client.resolvedPath)(path, this.input, memberName, labelValueProvider, uriLabel, isGreedyLabel);\n });\n return this;\n }\n /**\n * Brevity setter for \"headers\".\n */\n h(headers) {\n this.headers = headers;\n return this;\n }\n /**\n * Brevity setter for \"query\".\n */\n q(query) {\n this.query = query;\n return this;\n }\n /**\n * Brevity setter for \"body\".\n */\n b(body) {\n this.body = body;\n return this;\n }\n /**\n * Brevity setter for \"method\".\n */\n m(method) {\n this.method = method;\n return this;\n }\n};\n__name(_RequestBuilder, \"RequestBuilder\");\nvar RequestBuilder = _RequestBuilder;\n\n// src/pagination/createPaginator.ts\nvar makePagedClientRequest = /* @__PURE__ */ __name(async (CommandCtor, client, input, ...args) => {\n return await client.send(new CommandCtor(input), ...args);\n}, \"makePagedClientRequest\");\nfunction createPaginator(ClientCtor, CommandCtor, inputTokenName, outputTokenName, pageSizeTokenName) {\n return /* @__PURE__ */ __name(async function* paginateOperation(config, input, ...additionalArguments) {\n let token = config.startingToken || void 0;\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, ...additionalArguments);\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 void 0;\n }, \"paginateOperation\");\n}\n__name(createPaginator, \"createPaginator\");\nvar get = /* @__PURE__ */ __name((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 void 0;\n }\n cursor = cursor[step];\n }\n return cursor;\n}, \"get\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n createPaginator,\n httpAuthSchemeMiddleware,\n httpAuthSchemeEndpointRuleSetMiddlewareOptions,\n getHttpAuthSchemeEndpointRuleSetPlugin,\n httpAuthSchemeMiddlewareOptions,\n getHttpAuthSchemePlugin,\n httpSigningMiddleware,\n httpSigningMiddlewareOptions,\n getHttpSigningPlugin,\n DefaultIdentityProviderConfig,\n HttpApiKeyAuthSigner,\n HttpBearerAuthSigner,\n NoAuthSigner,\n createIsIdentityExpiredFunction,\n EXPIRATION_MS,\n isIdentityExpired,\n doesIdentityRequireRefresh,\n memoizeIdentityProvider,\n getSmithyContext,\n normalizeProvider,\n requestBuilder,\n RequestBuilder\n});\n\n",
|
|
60
|
+
"\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/client/index.ts\nvar client_exports = {};\n__export(client_exports, {\n emitWarningIfUnsupportedVersion: () => emitWarningIfUnsupportedVersion\n});\nmodule.exports = __toCommonJS(client_exports);\n\n// src/submodules/client/emitWarningIfUnsupportedVersion.ts\nvar warningEmitted = false;\nvar emitWarningIfUnsupportedVersion = /* @__PURE__ */ __name((version) => {\n if (version && !warningEmitted && parseInt(version.substring(1, version.indexOf(\".\"))) < 18) {\n warningEmitted = true;\n process.emitWarning(\n `NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will\nno longer support Node.js 16.x on January 6, 2025.\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/74kJMmI`\n );\n }\n}, \"emitWarningIfUnsupportedVersion\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n emitWarningIfUnsupportedVersion\n});\n",
|
|
61
|
+
"var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n SignatureV4: () => SignatureV4,\n clearCredentialCache: () => clearCredentialCache,\n createScope: () => createScope,\n getCanonicalHeaders: () => getCanonicalHeaders,\n getCanonicalQuery: () => getCanonicalQuery,\n getPayloadHash: () => getPayloadHash,\n getSigningKey: () => getSigningKey,\n moveHeadersToQuery: () => moveHeadersToQuery,\n prepareRequest: () => prepareRequest\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/SignatureV4.ts\n\nvar import_util_middleware = require(\"@smithy/util-middleware\");\n\nvar import_util_utf84 = require(\"@smithy/util-utf8\");\n\n// src/constants.ts\nvar ALGORITHM_QUERY_PARAM = \"X-Amz-Algorithm\";\nvar CREDENTIAL_QUERY_PARAM = \"X-Amz-Credential\";\nvar AMZ_DATE_QUERY_PARAM = \"X-Amz-Date\";\nvar SIGNED_HEADERS_QUERY_PARAM = \"X-Amz-SignedHeaders\";\nvar EXPIRES_QUERY_PARAM = \"X-Amz-Expires\";\nvar SIGNATURE_QUERY_PARAM = \"X-Amz-Signature\";\nvar TOKEN_QUERY_PARAM = \"X-Amz-Security-Token\";\nvar AUTH_HEADER = \"authorization\";\nvar AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase();\nvar DATE_HEADER = \"date\";\nvar GENERATED_HEADERS = [AUTH_HEADER, AMZ_DATE_HEADER, DATE_HEADER];\nvar SIGNATURE_HEADER = SIGNATURE_QUERY_PARAM.toLowerCase();\nvar SHA256_HEADER = \"x-amz-content-sha256\";\nvar TOKEN_HEADER = TOKEN_QUERY_PARAM.toLowerCase();\nvar 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};\nvar PROXY_HEADER_PATTERN = /^proxy-/;\nvar SEC_HEADER_PATTERN = /^sec-/;\nvar ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256\";\nvar EVENT_ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256-PAYLOAD\";\nvar UNSIGNED_PAYLOAD = \"UNSIGNED-PAYLOAD\";\nvar MAX_CACHE_SIZE = 50;\nvar KEY_TYPE_IDENTIFIER = \"aws4_request\";\nvar MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7;\n\n// src/credentialDerivation.ts\nvar import_util_hex_encoding = require(\"@smithy/util-hex-encoding\");\nvar import_util_utf8 = require(\"@smithy/util-utf8\");\nvar signingKeyCache = {};\nvar cacheQueue = [];\nvar createScope = /* @__PURE__ */ __name((shortDate, region, service) => `${shortDate}/${region}/${service}/${KEY_TYPE_IDENTIFIER}`, \"createScope\");\nvar getSigningKey = /* @__PURE__ */ __name(async (sha256Constructor, credentials, shortDate, region, service) => {\n const credsHash = await hmac(sha256Constructor, credentials.secretAccessKey, credentials.accessKeyId);\n const cacheKey = `${shortDate}:${region}:${service}:${(0, import_util_hex_encoding.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}, \"getSigningKey\");\nvar clearCredentialCache = /* @__PURE__ */ __name(() => {\n cacheQueue.length = 0;\n Object.keys(signingKeyCache).forEach((cacheKey) => {\n delete signingKeyCache[cacheKey];\n });\n}, \"clearCredentialCache\");\nvar hmac = /* @__PURE__ */ __name((ctor, secret, data) => {\n const hash = new ctor(secret);\n hash.update((0, import_util_utf8.toUint8Array)(data));\n return hash.digest();\n}, \"hmac\");\n\n// src/getCanonicalHeaders.ts\nvar getCanonicalHeaders = /* @__PURE__ */ __name(({ headers }, unsignableHeaders, signableHeaders) => {\n const canonical = {};\n for (const headerName of Object.keys(headers).sort()) {\n if (headers[headerName] == void 0) {\n continue;\n }\n const canonicalHeaderName = headerName.toLowerCase();\n if (canonicalHeaderName in ALWAYS_UNSIGNABLE_HEADERS || (unsignableHeaders == null ? void 0 : unsignableHeaders.has(canonicalHeaderName)) || PROXY_HEADER_PATTERN.test(canonicalHeaderName) || 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}, \"getCanonicalHeaders\");\n\n// src/getCanonicalQuery.ts\nvar import_util_uri_escape = require(\"@smithy/util-uri-escape\");\nvar getCanonicalQuery = /* @__PURE__ */ __name(({ 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 = (0, import_util_uri_escape.escapeUri)(key);\n keys.push(encodedKey);\n const value = query[key];\n if (typeof value === \"string\") {\n serialized[encodedKey] = `${encodedKey}=${(0, import_util_uri_escape.escapeUri)(value)}`;\n } else if (Array.isArray(value)) {\n serialized[encodedKey] = value.slice(0).reduce((encoded, value2) => encoded.concat([`${encodedKey}=${(0, import_util_uri_escape.escapeUri)(value2)}`]), []).sort().join(\"&\");\n }\n }\n return keys.sort().map((key) => serialized[key]).filter((serialized2) => serialized2).join(\"&\");\n}, \"getCanonicalQuery\");\n\n// src/getPayloadHash.ts\nvar import_is_array_buffer = require(\"@smithy/is-array-buffer\");\n\nvar import_util_utf82 = require(\"@smithy/util-utf8\");\nvar getPayloadHash = /* @__PURE__ */ __name(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 == void 0) {\n return \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\";\n } else if (typeof body === \"string\" || ArrayBuffer.isView(body) || (0, import_is_array_buffer.isArrayBuffer)(body)) {\n const hashCtor = new hashConstructor();\n hashCtor.update((0, import_util_utf82.toUint8Array)(body));\n return (0, import_util_hex_encoding.toHex)(await hashCtor.digest());\n }\n return UNSIGNED_PAYLOAD;\n}, \"getPayloadHash\");\n\n// src/HeaderFormatter.ts\n\nvar import_util_utf83 = require(\"@smithy/util-utf8\");\nvar _HeaderFormatter = class _HeaderFormatter {\n format(headers) {\n const chunks = [];\n for (const headerName of Object.keys(headers)) {\n const bytes = (0, import_util_utf83.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 /* boolTrue */ : 1 /* boolFalse */]);\n case \"byte\":\n return Uint8Array.from([2 /* byte */, header.value]);\n case \"short\":\n const shortView = new DataView(new ArrayBuffer(3));\n shortView.setUint8(0, 3 /* short */);\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 /* integer */);\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 /* long */;\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 /* byteArray */);\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 = (0, import_util_utf83.fromUtf8)(header.value);\n const strView = new DataView(new ArrayBuffer(3 + utf8Bytes.byteLength));\n strView.setUint8(0, 7 /* string */);\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 /* timestamp */;\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 /* uuid */;\n uuidBytes.set((0, import_util_hex_encoding.fromHex)(header.value.replace(/\\-/g, \"\")), 1);\n return uuidBytes;\n }\n }\n};\n__name(_HeaderFormatter, \"HeaderFormatter\");\nvar HeaderFormatter = _HeaderFormatter;\nvar UUID_PATTERN = /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/;\nvar _Int64 = class _Int64 {\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 > 9223372036854776e3 || 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 /**\n * Called implicitly by infix arithmetic operators.\n */\n valueOf() {\n const bytes = this.bytes.slice(0);\n const negative = bytes[0] & 128;\n if (negative) {\n negate(bytes);\n }\n return parseInt((0, import_util_hex_encoding.toHex)(bytes), 16) * (negative ? -1 : 1);\n }\n toString() {\n return String(this.valueOf());\n }\n};\n__name(_Int64, \"Int64\");\nvar Int64 = _Int64;\nfunction negate(bytes) {\n for (let i = 0; i < 8; i++) {\n bytes[i] ^= 255;\n }\n for (let i = 7; i > -1; i--) {\n bytes[i]++;\n if (bytes[i] !== 0)\n break;\n }\n}\n__name(negate, \"negate\");\n\n// src/headerUtil.ts\nvar hasHeader = /* @__PURE__ */ __name((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}, \"hasHeader\");\n\n// src/moveHeadersToQuery.ts\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar moveHeadersToQuery = /* @__PURE__ */ __name((request, options = {}) => {\n var _a;\n const { headers, query = {} } = import_protocol_http.HttpRequest.clone(request);\n for (const name of Object.keys(headers)) {\n const lname = name.toLowerCase();\n if (lname.slice(0, 6) === \"x-amz-\" && !((_a = options.unhoistableHeaders) == null ? void 0 : _a.has(lname))) {\n query[name] = headers[name];\n delete headers[name];\n }\n }\n return {\n ...request,\n headers,\n query\n };\n}, \"moveHeadersToQuery\");\n\n// src/prepareRequest.ts\n\nvar prepareRequest = /* @__PURE__ */ __name((request) => {\n request = import_protocol_http.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}, \"prepareRequest\");\n\n// src/utilDate.ts\nvar iso8601 = /* @__PURE__ */ __name((time) => toDate(time).toISOString().replace(/\\.\\d{3}Z$/, \"Z\"), \"iso8601\");\nvar toDate = /* @__PURE__ */ __name((time) => {\n if (typeof time === \"number\") {\n return new Date(time * 1e3);\n }\n if (typeof time === \"string\") {\n if (Number(time)) {\n return new Date(Number(time) * 1e3);\n }\n return new Date(time);\n }\n return time;\n}, \"toDate\");\n\n// src/SignatureV4.ts\nvar _SignatureV4 = class _SignatureV4 {\n constructor({\n applyChecksum,\n credentials,\n region,\n service,\n sha256,\n uriEscapePath = true\n }) {\n this.headerFormatter = new HeaderFormatter();\n this.service = service;\n this.sha256 = sha256;\n this.uriEscapePath = uriEscapePath;\n this.applyChecksum = typeof applyChecksum === \"boolean\" ? applyChecksum : true;\n this.regionProvider = (0, import_util_middleware.normalizeProvider)(region);\n this.credentialProvider = (0, import_util_middleware.normalizeProvider)(credentials);\n }\n async presign(originalRequest, options = {}) {\n const {\n signingDate = /* @__PURE__ */ new Date(),\n expiresIn = 3600,\n unsignableHeaders,\n unhoistableHeaders,\n signableHeaders,\n signingRegion,\n signingService\n } = options;\n const credentials = await this.credentialProvider();\n this.validateResolvedCredentials(credentials);\n const region = signingRegion ?? await this.regionProvider();\n const { longDate, shortDate } = formatDate(signingDate);\n if (expiresIn > MAX_PRESIGNED_TTL) {\n return Promise.reject(\n \"Signature version 4 presigned URLs must have an expiration date less than one week in the future\"\n );\n }\n const scope = createScope(shortDate, region, signingService ?? this.service);\n const request = moveHeadersToQuery(prepareRequest(originalRequest), { unhoistableHeaders });\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] = getCanonicalHeaderList(canonicalHeaders);\n request.query[SIGNATURE_QUERY_PARAM] = await this.getSignature(\n longDate,\n scope,\n this.getSigningKey(credentials, region, shortDate, signingService),\n this.createCanonicalRequest(request, canonicalHeaders, await getPayloadHash(originalRequest, this.sha256))\n );\n return request;\n }\n async sign(toSign, options) {\n if (typeof toSign === \"string\") {\n return this.signString(toSign, options);\n } else if (toSign.headers && toSign.payload) {\n return this.signEvent(toSign, options);\n } else if (toSign.message) {\n return this.signMessage(toSign, options);\n } else {\n return this.signRequest(toSign, options);\n }\n }\n async signEvent({ headers, payload }, { signingDate = /* @__PURE__ */ new Date(), priorSignature, signingRegion, signingService }) {\n const region = signingRegion ?? await this.regionProvider();\n const { shortDate, longDate } = 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 = (0, import_util_hex_encoding.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 = /* @__PURE__ */ new Date(), signingRegion, signingService }) {\n const promise = this.signEvent(\n {\n headers: this.headerFormatter.format(signableMessage.message.headers),\n payload: signableMessage.message.body\n },\n {\n signingDate,\n signingRegion,\n signingService,\n priorSignature: signableMessage.priorSignature\n }\n );\n return promise.then((signature) => {\n return { message: signableMessage.message, signature };\n });\n }\n async signString(stringToSign, { signingDate = /* @__PURE__ */ new Date(), signingRegion, signingService } = {}) {\n const credentials = await this.credentialProvider();\n this.validateResolvedCredentials(credentials);\n const region = signingRegion ?? await this.regionProvider();\n const { shortDate } = formatDate(signingDate);\n const hash = new this.sha256(await this.getSigningKey(credentials, region, shortDate, signingService));\n hash.update((0, import_util_utf84.toUint8Array)(stringToSign));\n return (0, import_util_hex_encoding.toHex)(await hash.digest());\n }\n async signRequest(requestToSign, {\n signingDate = /* @__PURE__ */ new Date(),\n signableHeaders,\n unsignableHeaders,\n signingRegion,\n signingService\n } = {}) {\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 } = 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(\n longDate,\n scope,\n this.getSigningKey(credentials, region, shortDate, signingService),\n this.createCanonicalRequest(request, canonicalHeaders, payloadHash)\n );\n request.headers[AUTH_HEADER] = `${ALGORITHM_IDENTIFIER} Credential=${credentials.accessKeyId}/${scope}, SignedHeaders=${getCanonicalHeaderList(canonicalHeaders)}, Signature=${signature}`;\n return request;\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) {\n const hash = new this.sha256();\n hash.update((0, import_util_utf84.toUint8Array)(canonicalRequest));\n const hashedRequest = await hash.digest();\n return `${ALGORITHM_IDENTIFIER}\n${longDate}\n${credentialScope}\n${(0, import_util_hex_encoding.toHex)(hashedRequest)}`;\n }\n getCanonicalPath({ path }) {\n if (this.uriEscapePath) {\n const normalizedPathSegments = [];\n for (const pathSegment of path.split(\"/\")) {\n if ((pathSegment == null ? void 0 : pathSegment.length) === 0)\n continue;\n if (pathSegment === \".\")\n continue;\n if (pathSegment === \"..\") {\n normalizedPathSegments.pop();\n } else {\n normalizedPathSegments.push(pathSegment);\n }\n }\n const normalizedPath = `${(path == null ? void 0 : path.startsWith(\"/\")) ? \"/\" : \"\"}${normalizedPathSegments.join(\"/\")}${normalizedPathSegments.length > 0 && (path == null ? void 0 : path.endsWith(\"/\")) ? \"/\" : \"\"}`;\n const doubleEncoded = (0, import_util_uri_escape.escapeUri)(normalizedPath);\n return doubleEncoded.replace(/%2F/g, \"/\");\n }\n return path;\n }\n async getSignature(longDate, credentialScope, keyPromise, canonicalRequest) {\n const stringToSign = await this.createStringToSign(longDate, credentialScope, canonicalRequest);\n const hash = new this.sha256(await keyPromise);\n hash.update((0, import_util_utf84.toUint8Array)(stringToSign));\n return (0, import_util_hex_encoding.toHex)(await hash.digest());\n }\n getSigningKey(credentials, region, shortDate, service) {\n return getSigningKey(this.sha256, credentials, shortDate, region, service || this.service);\n }\n validateResolvedCredentials(credentials) {\n if (typeof credentials !== \"object\" || // @ts-expect-error: Property 'accessKeyId' does not exist on type 'object'.ts(2339)\n typeof credentials.accessKeyId !== \"string\" || // @ts-expect-error: Property 'secretAccessKey' does not exist on type 'object'.ts(2339)\n typeof credentials.secretAccessKey !== \"string\") {\n throw new Error(\"Resolved credential object is not valid\");\n }\n }\n};\n__name(_SignatureV4, \"SignatureV4\");\nvar SignatureV4 = _SignatureV4;\nvar formatDate = /* @__PURE__ */ __name((now) => {\n const longDate = iso8601(now).replace(/[\\-:]/g, \"\");\n return {\n longDate,\n shortDate: longDate.slice(0, 8)\n };\n}, \"formatDate\");\nvar getCanonicalHeaderList = /* @__PURE__ */ __name((headers) => Object.keys(headers).sort().join(\";\"), \"getCanonicalHeaderList\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n getCanonicalHeaders,\n getCanonicalQuery,\n getPayloadHash,\n moveHeadersToQuery,\n prepareRequest,\n SignatureV4,\n createScope,\n getSigningKey,\n clearCredentialCache\n});\n\n",
|
|
62
|
+
"\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/httpAuthSchemes/index.ts\nvar httpAuthSchemes_exports = {};\n__export(httpAuthSchemes_exports, {\n AWSSDKSigV4Signer: () => AWSSDKSigV4Signer,\n AwsSdkSigV4ASigner: () => AwsSdkSigV4ASigner,\n AwsSdkSigV4Signer: () => AwsSdkSigV4Signer,\n NODE_SIGV4A_CONFIG_OPTIONS: () => NODE_SIGV4A_CONFIG_OPTIONS,\n resolveAWSSDKSigV4Config: () => resolveAWSSDKSigV4Config,\n resolveAwsSdkSigV4AConfig: () => resolveAwsSdkSigV4AConfig,\n resolveAwsSdkSigV4Config: () => resolveAwsSdkSigV4Config,\n validateSigningProperties: () => validateSigningProperties\n});\nmodule.exports = __toCommonJS(httpAuthSchemes_exports);\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts\nvar import_protocol_http2 = require(\"@smithy/protocol-http\");\n\n// src/submodules/httpAuthSchemes/utils/getDateHeader.ts\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar getDateHeader = /* @__PURE__ */ __name((response) => {\n var _a, _b;\n return import_protocol_http.HttpResponse.isInstance(response) ? ((_a = response.headers) == null ? void 0 : _a.date) ?? ((_b = response.headers) == null ? void 0 : _b.Date) : void 0;\n}, \"getDateHeader\");\n\n// src/submodules/httpAuthSchemes/utils/getSkewCorrectedDate.ts\nvar getSkewCorrectedDate = /* @__PURE__ */ __name((systemClockOffset) => new Date(Date.now() + systemClockOffset), \"getSkewCorrectedDate\");\n\n// src/submodules/httpAuthSchemes/utils/isClockSkewed.ts\nvar isClockSkewed = /* @__PURE__ */ __name((clockTime, systemClockOffset) => Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - clockTime) >= 3e5, \"isClockSkewed\");\n\n// src/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.ts\nvar getUpdatedSystemClockOffset = /* @__PURE__ */ __name((clockTime, currentSystemClockOffset) => {\n const clockTimeInMs = Date.parse(clockTime);\n if (isClockSkewed(clockTimeInMs, currentSystemClockOffset)) {\n return clockTimeInMs - Date.now();\n }\n return currentSystemClockOffset;\n}, \"getUpdatedSystemClockOffset\");\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts\nvar throwSigningPropertyError = /* @__PURE__ */ __name((name, property) => {\n if (!property) {\n throw new Error(`Property \\`${name}\\` is not resolved for AWS SDK SigV4Auth`);\n }\n return property;\n}, \"throwSigningPropertyError\");\nvar validateSigningProperties = /* @__PURE__ */ __name(async (signingProperties) => {\n var _a, _b, _c;\n const context = throwSigningPropertyError(\n \"context\",\n signingProperties.context\n );\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const authScheme = (_c = (_b = (_a = context.endpointV2) == null ? void 0 : _a.properties) == null ? void 0 : _b.authSchemes) == null ? void 0 : _c[0];\n const signerFunction = throwSigningPropertyError(\n \"signer\",\n config.signer\n );\n const signer = await signerFunction(authScheme);\n const signingRegion = signingProperties == null ? void 0 : signingProperties.signingRegion;\n const signingRegionSet = signingProperties == null ? void 0 : signingProperties.signingRegionSet;\n const signingName = signingProperties == null ? void 0 : signingProperties.signingName;\n return {\n config,\n signer,\n signingRegion,\n signingRegionSet,\n signingName\n };\n}, \"validateSigningProperties\");\nvar _AwsSdkSigV4Signer = class _AwsSdkSigV4Signer {\n async sign(httpRequest, identity, signingProperties) {\n var _a;\n if (!import_protocol_http2.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 (((_a = handlerExecutionContext == null ? void 0 : handlerExecutionContext.authSchemes) == null ? void 0 : _a.length) ?? 0 > 1) {\n const [first, second] = handlerExecutionContext.authSchemes;\n if ((first == null ? void 0 : first.name) === \"sigv4a\" && (second == null ? void 0 : second.name) === \"sigv4\") {\n signingRegion = (second == null ? void 0 : second.signingRegion) ?? signingRegion;\n signingName = (second == null ? void 0 : second.signingName) ?? signingName;\n }\n }\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n 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};\n__name(_AwsSdkSigV4Signer, \"AwsSdkSigV4Signer\");\nvar AwsSdkSigV4Signer = _AwsSdkSigV4Signer;\nvar AWSSDKSigV4Signer = AwsSdkSigV4Signer;\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.ts\nvar import_protocol_http3 = require(\"@smithy/protocol-http\");\nvar _AwsSdkSigV4ASigner = class _AwsSdkSigV4ASigner extends AwsSdkSigV4Signer {\n async sign(httpRequest, identity, signingProperties) {\n var _a;\n if (!import_protocol_http3.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(\n signingProperties\n );\n const configResolvedSigningRegionSet = await ((_a = config.sigv4aSigningRegionSet) == null ? void 0 : _a.call(config));\n const multiRegionOverride = (configResolvedSigningRegionSet ?? 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__name(_AwsSdkSigV4ASigner, \"AwsSdkSigV4ASigner\");\nvar AwsSdkSigV4ASigner = _AwsSdkSigV4ASigner;\n\n// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4AConfig.ts\nvar import_core = require(\"@smithy/core\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar resolveAwsSdkSigV4AConfig = /* @__PURE__ */ __name((config) => {\n config.sigv4aSigningRegionSet = (0, import_core.normalizeProvider)(config.sigv4aSigningRegionSet);\n return config;\n}, \"resolveAwsSdkSigV4AConfig\");\nvar 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 import_property_provider.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 import_property_provider.ProviderError(\"sigv4a_signing_region_set not set in profile.\", {\n tryNextLink: true\n });\n },\n default: void 0\n};\n\n// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.ts\nvar import_core2 = require(\"@smithy/core\");\nvar import_signature_v4 = require(\"@smithy/signature-v4\");\nvar resolveAwsSdkSigV4Config = /* @__PURE__ */ __name((config) => {\n let normalizedCreds;\n if (config.credentials) {\n normalizedCreds = (0, import_core2.memoizeIdentityProvider)(config.credentials, import_core2.isIdentityExpired, import_core2.doesIdentityRequireRefresh);\n }\n if (!normalizedCreds) {\n if (config.credentialDefaultProvider) {\n normalizedCreds = (0, import_core2.normalizeProvider)(\n config.credentialDefaultProvider(\n Object.assign({}, config, {\n parentClientConfig: config\n })\n )\n );\n } else {\n normalizedCreds = /* @__PURE__ */ __name(async () => {\n throw new Error(\"`credentials` is missing\");\n }, \"normalizedCreds\");\n }\n }\n const {\n // Default for signingEscapePath\n signingEscapePath = true,\n // Default for systemClockOffset\n systemClockOffset = config.systemClockOffset || 0,\n // No default for sha256 since it is platform dependent\n sha256\n } = config;\n let signer;\n if (config.signer) {\n signer = (0, import_core2.normalizeProvider)(config.signer);\n } else if (config.regionInfoProvider) {\n signer = /* @__PURE__ */ __name(() => (0, import_core2.normalizeProvider)(config.region)().then(\n 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: normalizedCreds,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath\n };\n const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4;\n return new SignerCtor(params);\n }), \"signer\");\n } else {\n signer = /* @__PURE__ */ __name(async (authScheme) => {\n authScheme = Object.assign(\n {},\n {\n name: \"sigv4\",\n signingName: config.signingName || config.defaultSigningName,\n signingRegion: await (0, import_core2.normalizeProvider)(config.region)(),\n properties: {}\n },\n authScheme\n );\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: normalizedCreds,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath\n };\n const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4;\n return new SignerCtor(params);\n }, \"signer\");\n }\n return {\n ...config,\n systemClockOffset,\n signingEscapePath,\n credentials: normalizedCreds,\n signer\n };\n}, \"resolveAwsSdkSigV4Config\");\nvar resolveAWSSDKSigV4Config = resolveAwsSdkSigV4Config;\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AWSSDKSigV4Signer,\n AwsSdkSigV4ASigner,\n AwsSdkSigV4Signer,\n NODE_SIGV4A_CONFIG_OPTIONS,\n resolveAWSSDKSigV4Config,\n resolveAwsSdkSigV4AConfig,\n resolveAwsSdkSigV4Config,\n validateSigningProperties\n});\n",
|
|
63
|
+
"'use strict';\n\nconst nameStartChar = ':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';\nconst nameChar = nameStartChar + '\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040';\nconst nameRegexp = '[' + nameStartChar + '][' + nameChar + ']*'\nconst regexName = new RegExp('^' + nameRegexp + '$');\n\nconst getAllMatches = function(string, regex) {\n const matches = [];\n let match = regex.exec(string);\n while (match) {\n const allmatches = [];\n allmatches.startIndex = regex.lastIndex - match[0].length;\n const len = match.length;\n for (let index = 0; index < len; index++) {\n allmatches.push(match[index]);\n }\n matches.push(allmatches);\n match = regex.exec(string);\n }\n return matches;\n};\n\nconst isName = function(string) {\n const match = regexName.exec(string);\n return !(match === null || typeof match === 'undefined');\n};\n\nexports.isExist = function(v) {\n return typeof v !== 'undefined';\n};\n\nexports.isEmptyObject = function(obj) {\n return Object.keys(obj).length === 0;\n};\n\n/**\n * Copy all the properties of a into b.\n * @param {*} target\n * @param {*} a\n */\nexports.merge = function(target, a, arrayMode) {\n if (a) {\n const keys = Object.keys(a); // will return an array of own properties\n const len = keys.length; //don't make it inline\n for (let i = 0; i < len; i++) {\n if (arrayMode === 'strict') {\n target[keys[i]] = [ a[keys[i]] ];\n } else {\n target[keys[i]] = a[keys[i]];\n }\n }\n }\n};\n/* exports.merge =function (b,a){\n return Object.assign(b,a);\n} */\n\nexports.getValue = function(v) {\n if (exports.isExist(v)) {\n return v;\n } else {\n return '';\n }\n};\n\n// const fakeCall = function(a) {return a;};\n// const fakeCallNoReturn = function() {};\n\nexports.isName = isName;\nexports.getAllMatches = getAllMatches;\nexports.nameRegexp = nameRegexp;\n",
|
|
64
|
+
"'use strict';\n\nconst util = require('./util');\n\nconst defaultOptions = {\n allowBooleanAttributes: false, //A tag can have attributes without any value\n unpairedTags: []\n};\n\n//const tagsPattern = new RegExp(\"<\\\\/?([\\\\w:\\\\-_\\.]+)\\\\s*\\/?>\",\"g\");\nexports.validate = function (xmlData, options) {\n options = Object.assign({}, defaultOptions, options);\n\n //xmlData = xmlData.replace(/(\\r\\n|\\n|\\r)/gm,\"\");//make it single line\n //xmlData = xmlData.replace(/(^\\s*<\\?xml.*?\\?>)/g,\"\");//Remove XML starting tag\n //xmlData = xmlData.replace(/(<!DOCTYPE[\\s\\w\\\"\\.\\/\\-\\:]+(\\[.*\\])*\\s*>)/g,\"\");//Remove DOCTYPE\n const tags = [];\n let tagFound = false;\n\n //indicates that the root tag has been closed (aka. depth 0 has been reached)\n let reachedRoot = false;\n\n if (xmlData[0] === '\\ufeff') {\n // check for byte order mark (BOM)\n xmlData = xmlData.substr(1);\n }\n \n for (let i = 0; i < xmlData.length; i++) {\n\n if (xmlData[i] === '<' && xmlData[i+1] === '?') {\n i+=2;\n i = readPI(xmlData,i);\n if (i.err) return i;\n }else if (xmlData[i] === '<') {\n //starting of tag\n //read until you reach to '>' avoiding any '>' in attribute value\n let tagStartPos = i;\n i++;\n \n if (xmlData[i] === '!') {\n i = readCommentAndCDATA(xmlData, i);\n continue;\n } else {\n let closingTag = false;\n if (xmlData[i] === '/') {\n //closing tag\n closingTag = true;\n i++;\n }\n //read tagname\n let tagName = '';\n for (; i < xmlData.length &&\n xmlData[i] !== '>' &&\n xmlData[i] !== ' ' &&\n xmlData[i] !== '\\t' &&\n xmlData[i] !== '\\n' &&\n xmlData[i] !== '\\r'; i++\n ) {\n tagName += xmlData[i];\n }\n tagName = tagName.trim();\n //console.log(tagName);\n\n if (tagName[tagName.length - 1] === '/') {\n //self closing tag without attributes\n tagName = tagName.substring(0, tagName.length - 1);\n //continue;\n i--;\n }\n if (!validateTagName(tagName)) {\n let msg;\n if (tagName.trim().length === 0) {\n msg = \"Invalid space after '<'.\";\n } else {\n msg = \"Tag '\"+tagName+\"' is an invalid name.\";\n }\n return getErrorObject('InvalidTag', msg, getLineNumberForPosition(xmlData, i));\n }\n\n const result = readAttributeStr(xmlData, i);\n if (result === false) {\n return getErrorObject('InvalidAttr', \"Attributes for '\"+tagName+\"' have open quote.\", getLineNumberForPosition(xmlData, i));\n }\n let attrStr = result.value;\n i = result.index;\n\n if (attrStr[attrStr.length - 1] === '/') {\n //self closing tag\n const attrStrStart = i - attrStr.length;\n attrStr = attrStr.substring(0, attrStr.length - 1);\n const isValid = validateAttributeString(attrStr, options);\n if (isValid === true) {\n tagFound = true;\n //continue; //text may presents after self closing tag\n } else {\n //the result from the nested function returns the position of the error within the attribute\n //in order to get the 'true' error line, we need to calculate the position where the attribute begins (i - attrStr.length) and then add the position within the attribute\n //this gives us the absolute index in the entire xml, which we can use to find the line at last\n return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, attrStrStart + isValid.err.line));\n }\n } else if (closingTag) {\n if (!result.tagClosed) {\n return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' doesn't have proper closing.\", getLineNumberForPosition(xmlData, i));\n } else if (attrStr.trim().length > 0) {\n return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' can't have attributes or invalid starting.\", getLineNumberForPosition(xmlData, tagStartPos));\n } else if (tags.length === 0) {\n return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' has not been opened.\", getLineNumberForPosition(xmlData, tagStartPos));\n } else {\n const otg = tags.pop();\n if (tagName !== otg.tagName) {\n let openPos = getLineNumberForPosition(xmlData, otg.tagStartPos);\n return getErrorObject('InvalidTag',\n \"Expected closing tag '\"+otg.tagName+\"' (opened in line \"+openPos.line+\", col \"+openPos.col+\") instead of closing tag '\"+tagName+\"'.\",\n getLineNumberForPosition(xmlData, tagStartPos));\n }\n\n //when there are no more tags, we reached the root level.\n if (tags.length == 0) {\n reachedRoot = true;\n }\n }\n } else {\n const isValid = validateAttributeString(attrStr, options);\n if (isValid !== true) {\n //the result from the nested function returns the position of the error within the attribute\n //in order to get the 'true' error line, we need to calculate the position where the attribute begins (i - attrStr.length) and then add the position within the attribute\n //this gives us the absolute index in the entire xml, which we can use to find the line at last\n return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, i - attrStr.length + isValid.err.line));\n }\n\n //if the root level has been reached before ...\n if (reachedRoot === true) {\n return getErrorObject('InvalidXml', 'Multiple possible root nodes found.', getLineNumberForPosition(xmlData, i));\n } else if(options.unpairedTags.indexOf(tagName) !== -1){\n //don't push into stack\n } else {\n tags.push({tagName, tagStartPos});\n }\n tagFound = true;\n }\n\n //skip tag text value\n //It may include comments and CDATA value\n for (i++; i < xmlData.length; i++) {\n if (xmlData[i] === '<') {\n if (xmlData[i + 1] === '!') {\n //comment or CADATA\n i++;\n i = readCommentAndCDATA(xmlData, i);\n continue;\n } else if (xmlData[i+1] === '?') {\n i = readPI(xmlData, ++i);\n if (i.err) return i;\n } else{\n break;\n }\n } else if (xmlData[i] === '&') {\n const afterAmp = validateAmpersand(xmlData, i);\n if (afterAmp == -1)\n return getErrorObject('InvalidChar', \"char '&' is not expected.\", getLineNumberForPosition(xmlData, i));\n i = afterAmp;\n }else{\n if (reachedRoot === true && !isWhiteSpace(xmlData[i])) {\n return getErrorObject('InvalidXml', \"Extra text at the end\", getLineNumberForPosition(xmlData, i));\n }\n }\n } //end of reading tag text value\n if (xmlData[i] === '<') {\n i--;\n }\n }\n } else {\n if ( isWhiteSpace(xmlData[i])) {\n continue;\n }\n return getErrorObject('InvalidChar', \"char '\"+xmlData[i]+\"' is not expected.\", getLineNumberForPosition(xmlData, i));\n }\n }\n\n if (!tagFound) {\n return getErrorObject('InvalidXml', 'Start tag expected.', 1);\n }else if (tags.length == 1) {\n return getErrorObject('InvalidTag', \"Unclosed tag '\"+tags[0].tagName+\"'.\", getLineNumberForPosition(xmlData, tags[0].tagStartPos));\n }else if (tags.length > 0) {\n return getErrorObject('InvalidXml', \"Invalid '\"+\n JSON.stringify(tags.map(t => t.tagName), null, 4).replace(/\\r?\\n/g, '')+\n \"' found.\", {line: 1, col: 1});\n }\n\n return true;\n};\n\nfunction isWhiteSpace(char){\n return char === ' ' || char === '\\t' || char === '\\n' || char === '\\r';\n}\n/**\n * Read Processing insstructions and skip\n * @param {*} xmlData\n * @param {*} i\n */\nfunction readPI(xmlData, i) {\n const start = i;\n for (; i < xmlData.length; i++) {\n if (xmlData[i] == '?' || xmlData[i] == ' ') {\n //tagname\n const tagname = xmlData.substr(start, i - start);\n if (i > 5 && tagname === 'xml') {\n return getErrorObject('InvalidXml', 'XML declaration allowed only at the start of the document.', getLineNumberForPosition(xmlData, i));\n } else if (xmlData[i] == '?' && xmlData[i + 1] == '>') {\n //check if valid attribut string\n i++;\n break;\n } else {\n continue;\n }\n }\n }\n return i;\n}\n\nfunction readCommentAndCDATA(xmlData, i) {\n if (xmlData.length > i + 5 && xmlData[i + 1] === '-' && xmlData[i + 2] === '-') {\n //comment\n for (i += 3; i < xmlData.length; i++) {\n if (xmlData[i] === '-' && xmlData[i + 1] === '-' && xmlData[i + 2] === '>') {\n i += 2;\n break;\n }\n }\n } else if (\n xmlData.length > i + 8 &&\n xmlData[i + 1] === 'D' &&\n xmlData[i + 2] === 'O' &&\n xmlData[i + 3] === 'C' &&\n xmlData[i + 4] === 'T' &&\n xmlData[i + 5] === 'Y' &&\n xmlData[i + 6] === 'P' &&\n xmlData[i + 7] === 'E'\n ) {\n let angleBracketsCount = 1;\n for (i += 8; i < xmlData.length; i++) {\n if (xmlData[i] === '<') {\n angleBracketsCount++;\n } else if (xmlData[i] === '>') {\n angleBracketsCount--;\n if (angleBracketsCount === 0) {\n break;\n }\n }\n }\n } else if (\n xmlData.length > i + 9 &&\n xmlData[i + 1] === '[' &&\n xmlData[i + 2] === 'C' &&\n xmlData[i + 3] === 'D' &&\n xmlData[i + 4] === 'A' &&\n xmlData[i + 5] === 'T' &&\n xmlData[i + 6] === 'A' &&\n xmlData[i + 7] === '['\n ) {\n for (i += 8; i < xmlData.length; i++) {\n if (xmlData[i] === ']' && xmlData[i + 1] === ']' && xmlData[i + 2] === '>') {\n i += 2;\n break;\n }\n }\n }\n\n return i;\n}\n\nconst doubleQuote = '\"';\nconst singleQuote = \"'\";\n\n/**\n * Keep reading xmlData until '<' is found outside the attribute value.\n * @param {string} xmlData\n * @param {number} i\n */\nfunction readAttributeStr(xmlData, i) {\n let attrStr = '';\n let startChar = '';\n let tagClosed = false;\n for (; i < xmlData.length; i++) {\n if (xmlData[i] === doubleQuote || xmlData[i] === singleQuote) {\n if (startChar === '') {\n startChar = xmlData[i];\n } else if (startChar !== xmlData[i]) {\n //if vaue is enclosed with double quote then single quotes are allowed inside the value and vice versa\n } else {\n startChar = '';\n }\n } else if (xmlData[i] === '>') {\n if (startChar === '') {\n tagClosed = true;\n break;\n }\n }\n attrStr += xmlData[i];\n }\n if (startChar !== '') {\n return false;\n }\n\n return {\n value: attrStr,\n index: i,\n tagClosed: tagClosed\n };\n}\n\n/**\n * Select all the attributes whether valid or invalid.\n */\nconst validAttrStrRegxp = new RegExp('(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*([\\'\"])(([\\\\s\\\\S])*?)\\\\5)?', 'g');\n\n//attr, =\"sd\", a=\"amit's\", a=\"sd\"b=\"saf\", ab cd=\"\"\n\nfunction validateAttributeString(attrStr, options) {\n //console.log(\"start:\"+attrStr+\":end\");\n\n //if(attrStr.trim().length === 0) return true; //empty string\n\n const matches = util.getAllMatches(attrStr, validAttrStrRegxp);\n const attrNames = {};\n\n for (let i = 0; i < matches.length; i++) {\n if (matches[i][1].length === 0) {\n //nospace before attribute name: a=\"sd\"b=\"saf\"\n return getErrorObject('InvalidAttr', \"Attribute '\"+matches[i][2]+\"' has no space in starting.\", getPositionFromMatch(matches[i]))\n } else if (matches[i][3] !== undefined && matches[i][4] === undefined) {\n return getErrorObject('InvalidAttr', \"Attribute '\"+matches[i][2]+\"' is without value.\", getPositionFromMatch(matches[i]));\n } else if (matches[i][3] === undefined && !options.allowBooleanAttributes) {\n //independent attribute: ab\n return getErrorObject('InvalidAttr', \"boolean attribute '\"+matches[i][2]+\"' is not allowed.\", getPositionFromMatch(matches[i]));\n }\n /* else if(matches[i][6] === undefined){//attribute without value: ab=\n return { err: { code:\"InvalidAttr\",msg:\"attribute \" + matches[i][2] + \" has no value assigned.\"}};\n } */\n const attrName = matches[i][2];\n if (!validateAttrName(attrName)) {\n return getErrorObject('InvalidAttr', \"Attribute '\"+attrName+\"' is an invalid name.\", getPositionFromMatch(matches[i]));\n }\n if (!attrNames.hasOwnProperty(attrName)) {\n //check for duplicate attribute.\n attrNames[attrName] = 1;\n } else {\n return getErrorObject('InvalidAttr', \"Attribute '\"+attrName+\"' is repeated.\", getPositionFromMatch(matches[i]));\n }\n }\n\n return true;\n}\n\nfunction validateNumberAmpersand(xmlData, i) {\n let re = /\\d/;\n if (xmlData[i] === 'x') {\n i++;\n re = /[\\da-fA-F]/;\n }\n for (; i < xmlData.length; i++) {\n if (xmlData[i] === ';')\n return i;\n if (!xmlData[i].match(re))\n break;\n }\n return -1;\n}\n\nfunction validateAmpersand(xmlData, i) {\n // https://www.w3.org/TR/xml/#dt-charref\n i++;\n if (xmlData[i] === ';')\n return -1;\n if (xmlData[i] === '#') {\n i++;\n return validateNumberAmpersand(xmlData, i);\n }\n let count = 0;\n for (; i < xmlData.length; i++, count++) {\n if (xmlData[i].match(/\\w/) && count < 20)\n continue;\n if (xmlData[i] === ';')\n break;\n return -1;\n }\n return i;\n}\n\nfunction getErrorObject(code, message, lineNumber) {\n return {\n err: {\n code: code,\n msg: message,\n line: lineNumber.line || lineNumber,\n col: lineNumber.col,\n },\n };\n}\n\nfunction validateAttrName(attrName) {\n return util.isName(attrName);\n}\n\n// const startsWithXML = /^xml/i;\n\nfunction validateTagName(tagname) {\n return util.isName(tagname) /* && !tagname.match(startsWithXML) */;\n}\n\n//this function returns the line number for the character at the given index\nfunction getLineNumberForPosition(xmlData, index) {\n const lines = xmlData.substring(0, index).split(/\\r?\\n/);\n return {\n line: lines.length,\n\n // column number is last line's length + 1, because column numbering starts at 1:\n col: lines[lines.length - 1].length + 1\n };\n}\n\n//this function returns the position of the first character of match within attrStr\nfunction getPositionFromMatch(match) {\n return match.startIndex + match[1].length;\n}\n",
|
|
65
|
+
"\nconst defaultOptions = {\n preserveOrder: false,\n attributeNamePrefix: '@_',\n attributesGroupName: false,\n textNodeName: '#text',\n ignoreAttributes: true,\n removeNSPrefix: false, // remove NS from tag name or attribute name if true\n allowBooleanAttributes: false, //a tag can have attributes without any value\n //ignoreRootElement : false,\n parseTagValue: true,\n parseAttributeValue: false,\n trimValues: true, //Trim string values of tag and attributes\n cdataPropName: false,\n numberParseOptions: {\n hex: true,\n leadingZeros: true,\n eNotation: true\n },\n tagValueProcessor: function(tagName, val) {\n return val;\n },\n attributeValueProcessor: function(attrName, val) {\n return val;\n },\n stopNodes: [], //nested tags will not be parsed even for errors\n alwaysCreateTextNode: false,\n isArray: () => false,\n commentPropName: false,\n unpairedTags: [],\n processEntities: true,\n htmlEntities: false,\n ignoreDeclaration: false,\n ignorePiTags: false,\n transformTagName: false,\n transformAttributeName: false,\n updateTag: function(tagName, jPath, attrs){\n return tagName\n },\n // skipEmptyListItem: false\n};\n \nconst buildOptions = function(options) {\n return Object.assign({}, defaultOptions, options);\n};\n\nexports.buildOptions = buildOptions;\nexports.defaultOptions = defaultOptions;",
|
|
66
|
+
"'use strict';\n\nclass XmlNode{\n constructor(tagname) {\n this.tagname = tagname;\n this.child = []; //nested tags, text, cdata, comments in order\n this[\":@\"] = {}; //attributes map\n }\n add(key,val){\n // this.child.push( {name : key, val: val, isCdata: isCdata });\n if(key === \"__proto__\") key = \"#__proto__\";\n this.child.push( {[key]: val });\n }\n addChild(node) {\n if(node.tagname === \"__proto__\") node.tagname = \"#__proto__\";\n if(node[\":@\"] && Object.keys(node[\":@\"]).length > 0){\n this.child.push( { [node.tagname]: node.child, [\":@\"]: node[\":@\"] });\n }else{\n this.child.push( { [node.tagname]: node.child });\n }\n };\n};\n\n\nmodule.exports = XmlNode;",
|
|
67
|
+
"const util = require('../util');\n\n//TODO: handle comments\nfunction readDocType(xmlData, i){\n \n const entities = {};\n if( xmlData[i + 3] === 'O' &&\n xmlData[i + 4] === 'C' &&\n xmlData[i + 5] === 'T' &&\n xmlData[i + 6] === 'Y' &&\n xmlData[i + 7] === 'P' &&\n xmlData[i + 8] === 'E')\n { \n i = i+9;\n let angleBracketsCount = 1;\n let hasBody = false, comment = false;\n let exp = \"\";\n for(;i<xmlData.length;i++){\n if (xmlData[i] === '<' && !comment) { //Determine the tag type\n if( hasBody && isEntity(xmlData, i)){\n i += 7; \n [entityName, val,i] = readEntityExp(xmlData,i+1);\n if(val.indexOf(\"&\") === -1) //Parameter entities are not supported\n entities[ validateEntityName(entityName) ] = {\n regx : RegExp( `&${entityName};`,\"g\"),\n val: val\n };\n }\n else if( hasBody && isElement(xmlData, i)) i += 8;//Not supported\n else if( hasBody && isAttlist(xmlData, i)) i += 8;//Not supported\n else if( hasBody && isNotation(xmlData, i)) i += 9;//Not supported\n else if( isComment) comment = true;\n else throw new Error(\"Invalid DOCTYPE\");\n\n angleBracketsCount++;\n exp = \"\";\n } else if (xmlData[i] === '>') { //Read tag content\n if(comment){\n if( xmlData[i - 1] === \"-\" && xmlData[i - 2] === \"-\"){\n comment = false;\n angleBracketsCount--;\n }\n }else{\n angleBracketsCount--;\n }\n if (angleBracketsCount === 0) {\n break;\n }\n }else if( xmlData[i] === '['){\n hasBody = true;\n }else{\n exp += xmlData[i];\n }\n }\n if(angleBracketsCount !== 0){\n throw new Error(`Unclosed DOCTYPE`);\n }\n }else{\n throw new Error(`Invalid Tag instead of DOCTYPE`);\n }\n return {entities, i};\n}\n\nfunction readEntityExp(xmlData,i){\n //External entities are not supported\n // <!ENTITY ext SYSTEM \"http://normal-website.com\" >\n\n //Parameter entities are not supported\n // <!ENTITY entityname \"&anotherElement;\">\n\n //Internal entities are supported\n // <!ENTITY entityname \"replacement text\">\n \n //read EntityName\n let entityName = \"\";\n for (; i < xmlData.length && (xmlData[i] !== \"'\" && xmlData[i] !== '\"' ); i++) {\n // if(xmlData[i] === \" \") continue;\n // else \n entityName += xmlData[i];\n }\n entityName = entityName.trim();\n if(entityName.indexOf(\" \") !== -1) throw new Error(\"External entites are not supported\");\n\n //read Entity Value\n const startChar = xmlData[i++];\n let val = \"\"\n for (; i < xmlData.length && xmlData[i] !== startChar ; i++) {\n val += xmlData[i];\n }\n return [entityName, val, i];\n}\n\nfunction isComment(xmlData, i){\n if(xmlData[i+1] === '!' &&\n xmlData[i+2] === '-' &&\n xmlData[i+3] === '-') return true\n return false\n}\nfunction isEntity(xmlData, i){\n if(xmlData[i+1] === '!' &&\n xmlData[i+2] === 'E' &&\n xmlData[i+3] === 'N' &&\n xmlData[i+4] === 'T' &&\n xmlData[i+5] === 'I' &&\n xmlData[i+6] === 'T' &&\n xmlData[i+7] === 'Y') return true\n return false\n}\nfunction isElement(xmlData, i){\n if(xmlData[i+1] === '!' &&\n xmlData[i+2] === 'E' &&\n xmlData[i+3] === 'L' &&\n xmlData[i+4] === 'E' &&\n xmlData[i+5] === 'M' &&\n xmlData[i+6] === 'E' &&\n xmlData[i+7] === 'N' &&\n xmlData[i+8] === 'T') return true\n return false\n}\n\nfunction isAttlist(xmlData, i){\n if(xmlData[i+1] === '!' &&\n xmlData[i+2] === 'A' &&\n xmlData[i+3] === 'T' &&\n xmlData[i+4] === 'T' &&\n xmlData[i+5] === 'L' &&\n xmlData[i+6] === 'I' &&\n xmlData[i+7] === 'S' &&\n xmlData[i+8] === 'T') return true\n return false\n}\nfunction isNotation(xmlData, i){\n if(xmlData[i+1] === '!' &&\n xmlData[i+2] === 'N' &&\n xmlData[i+3] === 'O' &&\n xmlData[i+4] === 'T' &&\n xmlData[i+5] === 'A' &&\n xmlData[i+6] === 'T' &&\n xmlData[i+7] === 'I' &&\n xmlData[i+8] === 'O' &&\n xmlData[i+9] === 'N') return true\n return false\n}\n\nfunction validateEntityName(name){\n if (util.isName(name))\n\treturn name;\n else\n throw new Error(`Invalid entity name ${name}`);\n}\n\nmodule.exports = readDocType;\n",
|
|
68
|
+
"const hexRegex = /^[-+]?0x[a-fA-F0-9]+$/;\nconst numRegex = /^([\\-\\+])?(0*)(\\.[0-9]+([eE]\\-?[0-9]+)?|[0-9]+(\\.[0-9]+([eE]\\-?[0-9]+)?)?)$/;\n// const octRegex = /0x[a-z0-9]+/;\n// const binRegex = /0x[a-z0-9]+/;\n\n\n//polyfill\nif (!Number.parseInt && window.parseInt) {\n Number.parseInt = window.parseInt;\n}\nif (!Number.parseFloat && window.parseFloat) {\n Number.parseFloat = window.parseFloat;\n}\n\n \nconst consider = {\n hex : true,\n leadingZeros: true,\n decimalPoint: \"\\.\",\n eNotation: true\n //skipLike: /regex/\n};\n\nfunction toNumber(str, options = {}){\n // const options = Object.assign({}, consider);\n // if(opt.leadingZeros === false){\n // options.leadingZeros = false;\n // }else if(opt.hex === false){\n // options.hex = false;\n // }\n\n options = Object.assign({}, consider, options );\n if(!str || typeof str !== \"string\" ) return str;\n \n let trimmedStr = str.trim();\n // if(trimmedStr === \"0.0\") return 0;\n // else if(trimmedStr === \"+0.0\") return 0;\n // else if(trimmedStr === \"-0.0\") return -0;\n\n if(options.skipLike !== undefined && options.skipLike.test(trimmedStr)) return str;\n else if (options.hex && hexRegex.test(trimmedStr)) {\n return Number.parseInt(trimmedStr, 16);\n // } else if (options.parseOct && octRegex.test(str)) {\n // return Number.parseInt(val, 8);\n // }else if (options.parseBin && binRegex.test(str)) {\n // return Number.parseInt(val, 2);\n }else{\n //separate negative sign, leading zeros, and rest number\n const match = numRegex.exec(trimmedStr);\n if(match){\n const sign = match[1];\n const leadingZeros = match[2];\n let numTrimmedByZeros = trimZeros(match[3]); //complete num without leading zeros\n //trim ending zeros for floating number\n \n const eNotation = match[4] || match[6];\n if(!options.leadingZeros && leadingZeros.length > 0 && sign && trimmedStr[2] !== \".\") return str; //-0123\n else if(!options.leadingZeros && leadingZeros.length > 0 && !sign && trimmedStr[1] !== \".\") return str; //0123\n else{//no leading zeros or leading zeros are allowed\n const num = Number(trimmedStr);\n const numStr = \"\" + num;\n if(numStr.search(/[eE]/) !== -1){ //given number is long and parsed to eNotation\n if(options.eNotation) return num;\n else return str;\n }else if(eNotation){ //given number has enotation\n if(options.eNotation) return num;\n else return str;\n }else if(trimmedStr.indexOf(\".\") !== -1){ //floating number\n // const decimalPart = match[5].substr(1);\n // const intPart = trimmedStr.substr(0,trimmedStr.indexOf(\".\"));\n\n \n // const p = numStr.indexOf(\".\");\n // const givenIntPart = numStr.substr(0,p);\n // const givenDecPart = numStr.substr(p+1);\n if(numStr === \"0\" && (numTrimmedByZeros === \"\") ) return num; //0.0\n else if(numStr === numTrimmedByZeros) return num; //0.456. 0.79000\n else if( sign && numStr === \"-\"+numTrimmedByZeros) return num;\n else return str;\n }\n \n if(leadingZeros){\n // if(numTrimmedByZeros === numStr){\n // if(options.leadingZeros) return num;\n // else return str;\n // }else return str;\n if(numTrimmedByZeros === numStr) return num;\n else if(sign+numTrimmedByZeros === numStr) return num;\n else return str;\n }\n\n if(trimmedStr === numStr) return num;\n else if(trimmedStr === sign+numStr) return num;\n // else{\n // //number with +/- sign\n // trimmedStr.test(/[-+][0-9]);\n\n // }\n return str;\n }\n // else if(!eNotation && trimmedStr && trimmedStr !== Number(trimmedStr) ) return str;\n \n }else{ //non-numeric string\n return str;\n }\n }\n}\n\n/**\n * \n * @param {string} numStr without leading zeros\n * @returns \n */\nfunction trimZeros(numStr){\n if(numStr && numStr.indexOf(\".\") !== -1){//float\n numStr = numStr.replace(/0+$/, \"\"); //remove ending zeros\n if(numStr === \".\") numStr = \"0\";\n else if(numStr[0] === \".\") numStr = \"0\"+numStr;\n else if(numStr[numStr.length-1] === \".\") numStr = numStr.substr(0,numStr.length-1);\n return numStr;\n }\n return numStr;\n}\nmodule.exports = toNumber\n",
|
|
69
|
+
"'use strict';\n///@ts-check\n\nconst util = require('../util');\nconst xmlNode = require('./xmlNode');\nconst readDocType = require(\"./DocTypeReader\");\nconst toNumber = require(\"strnum\");\n\n// const regx =\n// '<((!\\\\[CDATA\\\\[([\\\\s\\\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\\\/)(NAME)\\\\s*>))([^<]*)'\n// .replace(/NAME/g, util.nameRegexp);\n\n//const tagsRegx = new RegExp(\"<(\\\\/?[\\\\w:\\\\-\\._]+)([^>]*)>(\\\\s*\"+cdataRegx+\")*([^<]+)?\",\"g\");\n//const tagsRegx = new RegExp(\"<(\\\\/?)((\\\\w*:)?([\\\\w:\\\\-\\._]+))([^>]*)>([^<]*)(\"+cdataRegx+\"([^<]*))*([^<]+)?\",\"g\");\n\nclass OrderedObjParser{\n constructor(options){\n this.options = options;\n this.currentNode = null;\n this.tagsNodeStack = [];\n this.docTypeEntities = {};\n this.lastEntities = {\n \"apos\" : { regex: /&(apos|#39|#x27);/g, val : \"'\"},\n \"gt\" : { regex: /&(gt|#62|#x3E);/g, val : \">\"},\n \"lt\" : { regex: /&(lt|#60|#x3C);/g, val : \"<\"},\n \"quot\" : { regex: /&(quot|#34|#x22);/g, val : \"\\\"\"},\n };\n this.ampEntity = { regex: /&(amp|#38|#x26);/g, val : \"&\"};\n this.htmlEntities = {\n \"space\": { regex: /&(nbsp|#160);/g, val: \" \" },\n // \"lt\" : { regex: /&(lt|#60);/g, val: \"<\" },\n // \"gt\" : { regex: /&(gt|#62);/g, val: \">\" },\n // \"amp\" : { regex: /&(amp|#38);/g, val: \"&\" },\n // \"quot\" : { regex: /&(quot|#34);/g, val: \"\\\"\" },\n // \"apos\" : { regex: /&(apos|#39);/g, val: \"'\" },\n \"cent\" : { regex: /&(cent|#162);/g, val: \"¢\" },\n \"pound\" : { regex: /&(pound|#163);/g, val: \"£\" },\n \"yen\" : { regex: /&(yen|#165);/g, val: \"¥\" },\n \"euro\" : { regex: /&(euro|#8364);/g, val: \"€\" },\n \"copyright\" : { regex: /&(copy|#169);/g, val: \"©\" },\n \"reg\" : { regex: /&(reg|#174);/g, val: \"®\" },\n \"inr\" : { regex: /&(inr|#8377);/g, val: \"₹\" },\n \"num_dec\": { regex: /&#([0-9]{1,7});/g, val : (_, str) => String.fromCharCode(Number.parseInt(str, 10)) },\n \"num_hex\": { regex: /&#x([0-9a-fA-F]{1,6});/g, val : (_, str) => String.fromCharCode(Number.parseInt(str, 16)) },\n };\n this.addExternalEntities = addExternalEntities;\n this.parseXml = parseXml;\n this.parseTextData = parseTextData;\n this.resolveNameSpace = resolveNameSpace;\n this.buildAttributesMap = buildAttributesMap;\n this.isItStopNode = isItStopNode;\n this.replaceEntitiesValue = replaceEntitiesValue;\n this.readStopNodeData = readStopNodeData;\n this.saveTextToParentTag = saveTextToParentTag;\n this.addChild = addChild;\n }\n\n}\n\nfunction addExternalEntities(externalEntities){\n const entKeys = Object.keys(externalEntities);\n for (let i = 0; i < entKeys.length; i++) {\n const ent = entKeys[i];\n this.lastEntities[ent] = {\n regex: new RegExp(\"&\"+ent+\";\",\"g\"),\n val : externalEntities[ent]\n }\n }\n}\n\n/**\n * @param {string} val\n * @param {string} tagName\n * @param {string} jPath\n * @param {boolean} dontTrim\n * @param {boolean} hasAttributes\n * @param {boolean} isLeafNode\n * @param {boolean} escapeEntities\n */\nfunction parseTextData(val, tagName, jPath, dontTrim, hasAttributes, isLeafNode, escapeEntities) {\n if (val !== undefined) {\n if (this.options.trimValues && !dontTrim) {\n val = val.trim();\n }\n if(val.length > 0){\n if(!escapeEntities) val = this.replaceEntitiesValue(val);\n \n const newval = this.options.tagValueProcessor(tagName, val, jPath, hasAttributes, isLeafNode);\n if(newval === null || newval === undefined){\n //don't parse\n return val;\n }else if(typeof newval !== typeof val || newval !== val){\n //overwrite\n return newval;\n }else if(this.options.trimValues){\n return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions);\n }else{\n const trimmedVal = val.trim();\n if(trimmedVal === val){\n return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions);\n }else{\n return val;\n }\n }\n }\n }\n}\n\nfunction resolveNameSpace(tagname) {\n if (this.options.removeNSPrefix) {\n const tags = tagname.split(':');\n const prefix = tagname.charAt(0) === '/' ? '/' : '';\n if (tags[0] === 'xmlns') {\n return '';\n }\n if (tags.length === 2) {\n tagname = prefix + tags[1];\n }\n }\n return tagname;\n}\n\n//TODO: change regex to capture NS\n//const attrsRegx = new RegExp(\"([\\\\w\\\\-\\\\.\\\\:]+)\\\\s*=\\\\s*(['\\\"])((.|\\n)*?)\\\\2\",\"gm\");\nconst attrsRegx = new RegExp('([^\\\\s=]+)\\\\s*(=\\\\s*([\\'\"])([\\\\s\\\\S]*?)\\\\3)?', 'gm');\n\nfunction buildAttributesMap(attrStr, jPath, tagName) {\n if (!this.options.ignoreAttributes && typeof attrStr === 'string') {\n // attrStr = attrStr.replace(/\\r?\\n/g, ' ');\n //attrStr = attrStr || attrStr.trim();\n\n const matches = util.getAllMatches(attrStr, attrsRegx);\n const len = matches.length; //don't make it inline\n const attrs = {};\n for (let i = 0; i < len; i++) {\n const attrName = this.resolveNameSpace(matches[i][1]);\n let oldVal = matches[i][4];\n let aName = this.options.attributeNamePrefix + attrName;\n if (attrName.length) {\n if (this.options.transformAttributeName) {\n aName = this.options.transformAttributeName(aName);\n }\n if(aName === \"__proto__\") aName = \"#__proto__\";\n if (oldVal !== undefined) {\n if (this.options.trimValues) {\n oldVal = oldVal.trim();\n }\n oldVal = this.replaceEntitiesValue(oldVal);\n const newVal = this.options.attributeValueProcessor(attrName, oldVal, jPath);\n if(newVal === null || newVal === undefined){\n //don't parse\n attrs[aName] = oldVal;\n }else if(typeof newVal !== typeof oldVal || newVal !== oldVal){\n //overwrite\n attrs[aName] = newVal;\n }else{\n //parse\n attrs[aName] = parseValue(\n oldVal,\n this.options.parseAttributeValue,\n this.options.numberParseOptions\n );\n }\n } else if (this.options.allowBooleanAttributes) {\n attrs[aName] = true;\n }\n }\n }\n if (!Object.keys(attrs).length) {\n return;\n }\n if (this.options.attributesGroupName) {\n const attrCollection = {};\n attrCollection[this.options.attributesGroupName] = attrs;\n return attrCollection;\n }\n return attrs\n }\n}\n\nconst parseXml = function(xmlData) {\n xmlData = xmlData.replace(/\\r\\n?/g, \"\\n\"); //TODO: remove this line\n const xmlObj = new xmlNode('!xml');\n let currentNode = xmlObj;\n let textData = \"\";\n let jPath = \"\";\n for(let i=0; i< xmlData.length; i++){//for each char in XML data\n const ch = xmlData[i];\n if(ch === '<'){\n // const nextIndex = i+1;\n // const _2ndChar = xmlData[nextIndex];\n if( xmlData[i+1] === '/') {//Closing Tag\n const closeIndex = findClosingIndex(xmlData, \">\", i, \"Closing Tag is not closed.\")\n let tagName = xmlData.substring(i+2,closeIndex).trim();\n\n if(this.options.removeNSPrefix){\n const colonIndex = tagName.indexOf(\":\");\n if(colonIndex !== -1){\n tagName = tagName.substr(colonIndex+1);\n }\n }\n\n if(this.options.transformTagName) {\n tagName = this.options.transformTagName(tagName);\n }\n\n if(currentNode){\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n }\n\n //check if last tag of nested tag was unpaired tag\n const lastTagName = jPath.substring(jPath.lastIndexOf(\".\")+1);\n if(tagName && this.options.unpairedTags.indexOf(tagName) !== -1 ){\n throw new Error(`Unpaired tag can not be used as closing tag: </${tagName}>`);\n }\n let propIndex = 0\n if(lastTagName && this.options.unpairedTags.indexOf(lastTagName) !== -1 ){\n propIndex = jPath.lastIndexOf('.', jPath.lastIndexOf('.')-1)\n this.tagsNodeStack.pop();\n }else{\n propIndex = jPath.lastIndexOf(\".\");\n }\n jPath = jPath.substring(0, propIndex);\n\n currentNode = this.tagsNodeStack.pop();//avoid recursion, set the parent tag scope\n textData = \"\";\n i = closeIndex;\n } else if( xmlData[i+1] === '?') {\n\n let tagData = readTagExp(xmlData,i, false, \"?>\");\n if(!tagData) throw new Error(\"Pi Tag is not closed.\");\n\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n if( (this.options.ignoreDeclaration && tagData.tagName === \"?xml\") || this.options.ignorePiTags){\n\n }else{\n \n const childNode = new xmlNode(tagData.tagName);\n childNode.add(this.options.textNodeName, \"\");\n \n if(tagData.tagName !== tagData.tagExp && tagData.attrExpPresent){\n childNode[\":@\"] = this.buildAttributesMap(tagData.tagExp, jPath, tagData.tagName);\n }\n this.addChild(currentNode, childNode, jPath)\n\n }\n\n\n i = tagData.closeIndex + 1;\n } else if(xmlData.substr(i + 1, 3) === '!--') {\n const endIndex = findClosingIndex(xmlData, \"-->\", i+4, \"Comment is not closed.\")\n if(this.options.commentPropName){\n const comment = xmlData.substring(i + 4, endIndex - 2);\n\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n\n currentNode.add(this.options.commentPropName, [ { [this.options.textNodeName] : comment } ]);\n }\n i = endIndex;\n } else if( xmlData.substr(i + 1, 2) === '!D') {\n const result = readDocType(xmlData, i);\n this.docTypeEntities = result.entities;\n i = result.i;\n }else if(xmlData.substr(i + 1, 2) === '![') {\n const closeIndex = findClosingIndex(xmlData, \"]]>\", i, \"CDATA is not closed.\") - 2;\n const tagExp = xmlData.substring(i + 9,closeIndex);\n\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n\n let val = this.parseTextData(tagExp, currentNode.tagname, jPath, true, false, true, true);\n if(val == undefined) val = \"\";\n\n //cdata should be set even if it is 0 length string\n if(this.options.cdataPropName){\n currentNode.add(this.options.cdataPropName, [ { [this.options.textNodeName] : tagExp } ]);\n }else{\n currentNode.add(this.options.textNodeName, val);\n }\n \n i = closeIndex + 2;\n }else {//Opening tag\n let result = readTagExp(xmlData,i, this.options.removeNSPrefix);\n let tagName= result.tagName;\n const rawTagName = result.rawTagName;\n let tagExp = result.tagExp;\n let attrExpPresent = result.attrExpPresent;\n let closeIndex = result.closeIndex;\n\n if (this.options.transformTagName) {\n tagName = this.options.transformTagName(tagName);\n }\n \n //save text as child node\n if (currentNode && textData) {\n if(currentNode.tagname !== '!xml'){\n //when nested tag is found\n textData = this.saveTextToParentTag(textData, currentNode, jPath, false);\n }\n }\n\n //check if last tag was unpaired tag\n const lastTag = currentNode;\n if(lastTag && this.options.unpairedTags.indexOf(lastTag.tagname) !== -1 ){\n currentNode = this.tagsNodeStack.pop();\n jPath = jPath.substring(0, jPath.lastIndexOf(\".\"));\n }\n if(tagName !== xmlObj.tagname){\n jPath += jPath ? \".\" + tagName : tagName;\n }\n if (this.isItStopNode(this.options.stopNodes, jPath, tagName)) {\n let tagContent = \"\";\n //self-closing tag\n if(tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1){\n if(tagName[tagName.length - 1] === \"/\"){ //remove trailing '/'\n tagName = tagName.substr(0, tagName.length - 1);\n jPath = jPath.substr(0, jPath.length - 1);\n tagExp = tagName;\n }else{\n tagExp = tagExp.substr(0, tagExp.length - 1);\n }\n i = result.closeIndex;\n }\n //unpaired tag\n else if(this.options.unpairedTags.indexOf(tagName) !== -1){\n \n i = result.closeIndex;\n }\n //normal tag\n else{\n //read until closing tag is found\n const result = this.readStopNodeData(xmlData, rawTagName, closeIndex + 1);\n if(!result) throw new Error(`Unexpected end of ${rawTagName}`);\n i = result.i;\n tagContent = result.tagContent;\n }\n\n const childNode = new xmlNode(tagName);\n if(tagName !== tagExp && attrExpPresent){\n childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n }\n if(tagContent) {\n tagContent = this.parseTextData(tagContent, tagName, jPath, true, attrExpPresent, true, true);\n }\n \n jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n childNode.add(this.options.textNodeName, tagContent);\n \n this.addChild(currentNode, childNode, jPath)\n }else{\n //selfClosing tag\n if(tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1){\n if(tagName[tagName.length - 1] === \"/\"){ //remove trailing '/'\n tagName = tagName.substr(0, tagName.length - 1);\n jPath = jPath.substr(0, jPath.length - 1);\n tagExp = tagName;\n }else{\n tagExp = tagExp.substr(0, tagExp.length - 1);\n }\n \n if(this.options.transformTagName) {\n tagName = this.options.transformTagName(tagName);\n }\n\n const childNode = new xmlNode(tagName);\n if(tagName !== tagExp && attrExpPresent){\n childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n }\n this.addChild(currentNode, childNode, jPath)\n jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n }\n //opening tag\n else{\n const childNode = new xmlNode( tagName);\n this.tagsNodeStack.push(currentNode);\n \n if(tagName !== tagExp && attrExpPresent){\n childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n }\n this.addChild(currentNode, childNode, jPath)\n currentNode = childNode;\n }\n textData = \"\";\n i = closeIndex;\n }\n }\n }else{\n textData += xmlData[i];\n }\n }\n return xmlObj.child;\n}\n\nfunction addChild(currentNode, childNode, jPath){\n const result = this.options.updateTag(childNode.tagname, jPath, childNode[\":@\"])\n if(result === false){\n }else if(typeof result === \"string\"){\n childNode.tagname = result\n currentNode.addChild(childNode);\n }else{\n currentNode.addChild(childNode);\n }\n}\n\nconst replaceEntitiesValue = function(val){\n\n if(this.options.processEntities){\n for(let entityName in this.docTypeEntities){\n const entity = this.docTypeEntities[entityName];\n val = val.replace( entity.regx, entity.val);\n }\n for(let entityName in this.lastEntities){\n const entity = this.lastEntities[entityName];\n val = val.replace( entity.regex, entity.val);\n }\n if(this.options.htmlEntities){\n for(let entityName in this.htmlEntities){\n const entity = this.htmlEntities[entityName];\n val = val.replace( entity.regex, entity.val);\n }\n }\n val = val.replace( this.ampEntity.regex, this.ampEntity.val);\n }\n return val;\n}\nfunction saveTextToParentTag(textData, currentNode, jPath, isLeafNode) {\n if (textData) { //store previously collected data as textNode\n if(isLeafNode === undefined) isLeafNode = Object.keys(currentNode.child).length === 0\n \n textData = this.parseTextData(textData,\n currentNode.tagname,\n jPath,\n false,\n currentNode[\":@\"] ? Object.keys(currentNode[\":@\"]).length !== 0 : false,\n isLeafNode);\n\n if (textData !== undefined && textData !== \"\")\n currentNode.add(this.options.textNodeName, textData);\n textData = \"\";\n }\n return textData;\n}\n\n//TODO: use jPath to simplify the logic\n/**\n * \n * @param {string[]} stopNodes \n * @param {string} jPath\n * @param {string} currentTagName \n */\nfunction isItStopNode(stopNodes, jPath, currentTagName){\n const allNodesExp = \"*.\" + currentTagName;\n for (const stopNodePath in stopNodes) {\n const stopNodeExp = stopNodes[stopNodePath];\n if( allNodesExp === stopNodeExp || jPath === stopNodeExp ) return true;\n }\n return false;\n}\n\n/**\n * Returns the tag Expression and where it is ending handling single-double quotes situation\n * @param {string} xmlData \n * @param {number} i starting index\n * @returns \n */\nfunction tagExpWithClosingIndex(xmlData, i, closingChar = \">\"){\n let attrBoundary;\n let tagExp = \"\";\n for (let index = i; index < xmlData.length; index++) {\n let ch = xmlData[index];\n if (attrBoundary) {\n if (ch === attrBoundary) attrBoundary = \"\";//reset\n } else if (ch === '\"' || ch === \"'\") {\n attrBoundary = ch;\n } else if (ch === closingChar[0]) {\n if(closingChar[1]){\n if(xmlData[index + 1] === closingChar[1]){\n return {\n data: tagExp,\n index: index\n }\n }\n }else{\n return {\n data: tagExp,\n index: index\n }\n }\n } else if (ch === '\\t') {\n ch = \" \"\n }\n tagExp += ch;\n }\n}\n\nfunction findClosingIndex(xmlData, str, i, errMsg){\n const closingIndex = xmlData.indexOf(str, i);\n if(closingIndex === -1){\n throw new Error(errMsg)\n }else{\n return closingIndex + str.length - 1;\n }\n}\n\nfunction readTagExp(xmlData,i, removeNSPrefix, closingChar = \">\"){\n const result = tagExpWithClosingIndex(xmlData, i+1, closingChar);\n if(!result) return;\n let tagExp = result.data;\n const closeIndex = result.index;\n const separatorIndex = tagExp.search(/\\s/);\n let tagName = tagExp;\n let attrExpPresent = true;\n if(separatorIndex !== -1){//separate tag name and attributes expression\n tagName = tagExp.substring(0, separatorIndex);\n tagExp = tagExp.substring(separatorIndex + 1).trimStart();\n }\n\n const rawTagName = tagName;\n if(removeNSPrefix){\n const colonIndex = tagName.indexOf(\":\");\n if(colonIndex !== -1){\n tagName = tagName.substr(colonIndex+1);\n attrExpPresent = tagName !== result.data.substr(colonIndex + 1);\n }\n }\n\n return {\n tagName: tagName,\n tagExp: tagExp,\n closeIndex: closeIndex,\n attrExpPresent: attrExpPresent,\n rawTagName: rawTagName,\n }\n}\n/**\n * find paired tag for a stop node\n * @param {string} xmlData \n * @param {string} tagName \n * @param {number} i \n */\nfunction readStopNodeData(xmlData, tagName, i){\n const startIndex = i;\n // Starting at 1 since we already have an open tag\n let openTagCount = 1;\n\n for (; i < xmlData.length; i++) {\n if( xmlData[i] === \"<\"){ \n if (xmlData[i+1] === \"/\") {//close tag\n const closeIndex = findClosingIndex(xmlData, \">\", i, `${tagName} is not closed`);\n let closeTagName = xmlData.substring(i+2,closeIndex).trim();\n if(closeTagName === tagName){\n openTagCount--;\n if (openTagCount === 0) {\n return {\n tagContent: xmlData.substring(startIndex, i),\n i : closeIndex\n }\n }\n }\n i=closeIndex;\n } else if(xmlData[i+1] === '?') { \n const closeIndex = findClosingIndex(xmlData, \"?>\", i+1, \"StopNode is not closed.\")\n i=closeIndex;\n } else if(xmlData.substr(i + 1, 3) === '!--') { \n const closeIndex = findClosingIndex(xmlData, \"-->\", i+3, \"StopNode is not closed.\")\n i=closeIndex;\n } else if(xmlData.substr(i + 1, 2) === '![') { \n const closeIndex = findClosingIndex(xmlData, \"]]>\", i, \"StopNode is not closed.\") - 2;\n i=closeIndex;\n } else {\n const tagData = readTagExp(xmlData, i, '>')\n\n if (tagData) {\n const openTagName = tagData && tagData.tagName;\n if (openTagName === tagName && tagData.tagExp[tagData.tagExp.length-1] !== \"/\") {\n openTagCount++;\n }\n i=tagData.closeIndex;\n }\n }\n }\n }//end for loop\n}\n\nfunction parseValue(val, shouldParse, options) {\n if (shouldParse && typeof val === 'string') {\n //console.log(options)\n const newval = val.trim();\n if(newval === 'true' ) return true;\n else if(newval === 'false' ) return false;\n else return toNumber(val, options);\n } else {\n if (util.isExist(val)) {\n return val;\n } else {\n return '';\n }\n }\n}\n\n\nmodule.exports = OrderedObjParser;\n",
|
|
70
|
+
"'use strict';\n\n/**\n * \n * @param {array} node \n * @param {any} options \n * @returns \n */\nfunction prettify(node, options){\n return compress( node, options);\n}\n\n/**\n * \n * @param {array} arr \n * @param {object} options \n * @param {string} jPath \n * @returns object\n */\nfunction compress(arr, options, jPath){\n let text;\n const compressedObj = {};\n for (let i = 0; i < arr.length; i++) {\n const tagObj = arr[i];\n const property = propName(tagObj);\n let newJpath = \"\";\n if(jPath === undefined) newJpath = property;\n else newJpath = jPath + \".\" + property;\n\n if(property === options.textNodeName){\n if(text === undefined) text = tagObj[property];\n else text += \"\" + tagObj[property];\n }else if(property === undefined){\n continue;\n }else if(tagObj[property]){\n \n let val = compress(tagObj[property], options, newJpath);\n const isLeaf = isLeafTag(val, options);\n\n if(tagObj[\":@\"]){\n assignAttributes( val, tagObj[\":@\"], newJpath, options);\n }else if(Object.keys(val).length === 1 && val[options.textNodeName] !== undefined && !options.alwaysCreateTextNode){\n val = val[options.textNodeName];\n }else if(Object.keys(val).length === 0){\n if(options.alwaysCreateTextNode) val[options.textNodeName] = \"\";\n else val = \"\";\n }\n\n if(compressedObj[property] !== undefined && compressedObj.hasOwnProperty(property)) {\n if(!Array.isArray(compressedObj[property])) {\n compressedObj[property] = [ compressedObj[property] ];\n }\n compressedObj[property].push(val);\n }else{\n //TODO: if a node is not an array, then check if it should be an array\n //also determine if it is a leaf node\n if (options.isArray(property, newJpath, isLeaf )) {\n compressedObj[property] = [val];\n }else{\n compressedObj[property] = val;\n }\n }\n }\n \n }\n // if(text && text.length > 0) compressedObj[options.textNodeName] = text;\n if(typeof text === \"string\"){\n if(text.length > 0) compressedObj[options.textNodeName] = text;\n }else if(text !== undefined) compressedObj[options.textNodeName] = text;\n return compressedObj;\n}\n\nfunction propName(obj){\n const keys = Object.keys(obj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if(key !== \":@\") return key;\n }\n}\n\nfunction assignAttributes(obj, attrMap, jpath, options){\n if (attrMap) {\n const keys = Object.keys(attrMap);\n const len = keys.length; //don't make it inline\n for (let i = 0; i < len; i++) {\n const atrrName = keys[i];\n if (options.isArray(atrrName, jpath + \".\" + atrrName, true, true)) {\n obj[atrrName] = [ attrMap[atrrName] ];\n } else {\n obj[atrrName] = attrMap[atrrName];\n }\n }\n }\n}\n\nfunction isLeafTag(obj, options){\n const { textNodeName } = options;\n const propCount = Object.keys(obj).length;\n \n if (propCount === 0) {\n return true;\n }\n\n if (\n propCount === 1 &&\n (obj[textNodeName] || typeof obj[textNodeName] === \"boolean\" || obj[textNodeName] === 0)\n ) {\n return true;\n }\n\n return false;\n}\nexports.prettify = prettify;\n",
|
|
71
|
+
"const { buildOptions} = require(\"./OptionsBuilder\");\nconst OrderedObjParser = require(\"./OrderedObjParser\");\nconst { prettify} = require(\"./node2json\");\nconst validator = require('../validator');\n\nclass XMLParser{\n \n constructor(options){\n this.externalEntities = {};\n this.options = buildOptions(options);\n \n }\n /**\n * Parse XML dats to JS object \n * @param {string|Buffer} xmlData \n * @param {boolean|Object} validationOption \n */\n parse(xmlData,validationOption){\n if(typeof xmlData === \"string\"){\n }else if( xmlData.toString){\n xmlData = xmlData.toString();\n }else{\n throw new Error(\"XML data is accepted in String or Bytes[] form.\")\n }\n if( validationOption){\n if(validationOption === true) validationOption = {}; //validate with default options\n \n const result = validator.validate(xmlData, validationOption);\n if (result !== true) {\n throw Error( `${result.err.msg}:${result.err.line}:${result.err.col}` )\n }\n }\n const orderedObjParser = new OrderedObjParser(this.options);\n orderedObjParser.addExternalEntities(this.externalEntities);\n const orderedResult = orderedObjParser.parseXml(xmlData);\n if(this.options.preserveOrder || orderedResult === undefined) return orderedResult;\n else return prettify(orderedResult, this.options);\n }\n\n /**\n * Add Entity which is not by default supported by this library\n * @param {string} key \n * @param {string} value \n */\n addEntity(key, value){\n if(value.indexOf(\"&\") !== -1){\n throw new Error(\"Entity value can't have '&'\")\n }else if(key.indexOf(\"&\") !== -1 || key.indexOf(\";\") !== -1){\n throw new Error(\"An entity must be set without '&' and ';'. Eg. use '#xD' for '
'\")\n }else if(value === \"&\"){\n throw new Error(\"An entity with value '&' is not permitted\");\n }else{\n this.externalEntities[key] = value;\n }\n }\n}\n\nmodule.exports = XMLParser;",
|
|
72
|
+
"const EOL = \"\\n\";\n\n/**\n * \n * @param {array} jArray \n * @param {any} options \n * @returns \n */\nfunction toXml(jArray, options) {\n let indentation = \"\";\n if (options.format && options.indentBy.length > 0) {\n indentation = EOL;\n }\n return arrToStr(jArray, options, \"\", indentation);\n}\n\nfunction arrToStr(arr, options, jPath, indentation) {\n let xmlStr = \"\";\n let isPreviousElementTag = false;\n\n for (let i = 0; i < arr.length; i++) {\n const tagObj = arr[i];\n const tagName = propName(tagObj);\n if(tagName === undefined) continue;\n\n let newJPath = \"\";\n if (jPath.length === 0) newJPath = tagName\n else newJPath = `${jPath}.${tagName}`;\n\n if (tagName === options.textNodeName) {\n let tagText = tagObj[tagName];\n if (!isStopNode(newJPath, options)) {\n tagText = options.tagValueProcessor(tagName, tagText);\n tagText = replaceEntitiesValue(tagText, options);\n }\n if (isPreviousElementTag) {\n xmlStr += indentation;\n }\n xmlStr += tagText;\n isPreviousElementTag = false;\n continue;\n } else if (tagName === options.cdataPropName) {\n if (isPreviousElementTag) {\n xmlStr += indentation;\n }\n xmlStr += `<![CDATA[${tagObj[tagName][0][options.textNodeName]}]]>`;\n isPreviousElementTag = false;\n continue;\n } else if (tagName === options.commentPropName) {\n xmlStr += indentation + `<!--${tagObj[tagName][0][options.textNodeName]}-->`;\n isPreviousElementTag = true;\n continue;\n } else if (tagName[0] === \"?\") {\n const attStr = attr_to_str(tagObj[\":@\"], options);\n const tempInd = tagName === \"?xml\" ? \"\" : indentation;\n let piTextNodeName = tagObj[tagName][0][options.textNodeName];\n piTextNodeName = piTextNodeName.length !== 0 ? \" \" + piTextNodeName : \"\"; //remove extra spacing\n xmlStr += tempInd + `<${tagName}${piTextNodeName}${attStr}?>`;\n isPreviousElementTag = true;\n continue;\n }\n let newIdentation = indentation;\n if (newIdentation !== \"\") {\n newIdentation += options.indentBy;\n }\n const attStr = attr_to_str(tagObj[\":@\"], options);\n const tagStart = indentation + `<${tagName}${attStr}`;\n const tagValue = arrToStr(tagObj[tagName], options, newJPath, newIdentation);\n if (options.unpairedTags.indexOf(tagName) !== -1) {\n if (options.suppressUnpairedNode) xmlStr += tagStart + \">\";\n else xmlStr += tagStart + \"/>\";\n } else if ((!tagValue || tagValue.length === 0) && options.suppressEmptyNode) {\n xmlStr += tagStart + \"/>\";\n } else if (tagValue && tagValue.endsWith(\">\")) {\n xmlStr += tagStart + `>${tagValue}${indentation}</${tagName}>`;\n } else {\n xmlStr += tagStart + \">\";\n if (tagValue && indentation !== \"\" && (tagValue.includes(\"/>\") || tagValue.includes(\"</\"))) {\n xmlStr += indentation + options.indentBy + tagValue + indentation;\n } else {\n xmlStr += tagValue;\n }\n xmlStr += `</${tagName}>`;\n }\n isPreviousElementTag = true;\n }\n\n return xmlStr;\n}\n\nfunction propName(obj) {\n const keys = Object.keys(obj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if(!obj.hasOwnProperty(key)) continue;\n if (key !== \":@\") return key;\n }\n}\n\nfunction attr_to_str(attrMap, options) {\n let attrStr = \"\";\n if (attrMap && !options.ignoreAttributes) {\n for (let attr in attrMap) {\n if(!attrMap.hasOwnProperty(attr)) continue;\n let attrVal = options.attributeValueProcessor(attr, attrMap[attr]);\n attrVal = replaceEntitiesValue(attrVal, options);\n if (attrVal === true && options.suppressBooleanAttributes) {\n attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}`;\n } else {\n attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}=\"${attrVal}\"`;\n }\n }\n }\n return attrStr;\n}\n\nfunction isStopNode(jPath, options) {\n jPath = jPath.substr(0, jPath.length - options.textNodeName.length - 1);\n let tagName = jPath.substr(jPath.lastIndexOf(\".\") + 1);\n for (let index in options.stopNodes) {\n if (options.stopNodes[index] === jPath || options.stopNodes[index] === \"*.\" + tagName) return true;\n }\n return false;\n}\n\nfunction replaceEntitiesValue(textValue, options) {\n if (textValue && textValue.length > 0 && options.processEntities) {\n for (let i = 0; i < options.entities.length; i++) {\n const entity = options.entities[i];\n textValue = textValue.replace(entity.regex, entity.val);\n }\n }\n return textValue;\n}\nmodule.exports = toXml;\n",
|
|
73
|
+
"'use strict';\n//parse Empty Node as self closing node\nconst buildFromOrderedJs = require('./orderedJs2Xml');\n\nconst defaultOptions = {\n attributeNamePrefix: '@_',\n attributesGroupName: false,\n textNodeName: '#text',\n ignoreAttributes: true,\n cdataPropName: false,\n format: false,\n indentBy: ' ',\n suppressEmptyNode: false,\n suppressUnpairedNode: true,\n suppressBooleanAttributes: true,\n tagValueProcessor: function(key, a) {\n return a;\n },\n attributeValueProcessor: function(attrName, a) {\n return a;\n },\n preserveOrder: false,\n commentPropName: false,\n unpairedTags: [],\n entities: [\n { regex: new RegExp(\"&\", \"g\"), val: \"&\" },//it must be on top\n { regex: new RegExp(\">\", \"g\"), val: \">\" },\n { regex: new RegExp(\"<\", \"g\"), val: \"<\" },\n { regex: new RegExp(\"\\'\", \"g\"), val: \"'\" },\n { regex: new RegExp(\"\\\"\", \"g\"), val: \""\" }\n ],\n processEntities: true,\n stopNodes: [],\n // transformTagName: false,\n // transformAttributeName: false,\n oneListGroup: false\n};\n\nfunction Builder(options) {\n this.options = Object.assign({}, defaultOptions, options);\n if (this.options.ignoreAttributes || this.options.attributesGroupName) {\n this.isAttribute = function(/*a*/) {\n return false;\n };\n } else {\n this.attrPrefixLen = this.options.attributeNamePrefix.length;\n this.isAttribute = isAttribute;\n }\n\n this.processTextOrObjNode = processTextOrObjNode\n\n if (this.options.format) {\n this.indentate = indentate;\n this.tagEndChar = '>\\n';\n this.newLine = '\\n';\n } else {\n this.indentate = function() {\n return '';\n };\n this.tagEndChar = '>';\n this.newLine = '';\n }\n}\n\nBuilder.prototype.build = function(jObj) {\n if(this.options.preserveOrder){\n return buildFromOrderedJs(jObj, this.options);\n }else {\n if(Array.isArray(jObj) && this.options.arrayNodeName && this.options.arrayNodeName.length > 1){\n jObj = {\n [this.options.arrayNodeName] : jObj\n }\n }\n return this.j2x(jObj, 0).val;\n }\n};\n\nBuilder.prototype.j2x = function(jObj, level) {\n let attrStr = '';\n let val = '';\n for (let key in jObj) {\n if(!Object.prototype.hasOwnProperty.call(jObj, key)) continue;\n if (typeof jObj[key] === 'undefined') {\n // supress undefined node only if it is not an attribute\n if (this.isAttribute(key)) {\n val += '';\n }\n } else if (jObj[key] === null) {\n // null attribute should be ignored by the attribute list, but should not cause the tag closing\n if (this.isAttribute(key)) {\n val += '';\n } else if (key[0] === '?') {\n val += this.indentate(level) + '<' + key + '?' + this.tagEndChar;\n } else {\n val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n }\n // val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n } else if (jObj[key] instanceof Date) {\n val += this.buildTextValNode(jObj[key], key, '', level);\n } else if (typeof jObj[key] !== 'object') {\n //premitive type\n const attr = this.isAttribute(key);\n if (attr) {\n attrStr += this.buildAttrPairStr(attr, '' + jObj[key]);\n }else {\n //tag value\n if (key === this.options.textNodeName) {\n let newval = this.options.tagValueProcessor(key, '' + jObj[key]);\n val += this.replaceEntitiesValue(newval);\n } else {\n val += this.buildTextValNode(jObj[key], key, '', level);\n }\n }\n } else if (Array.isArray(jObj[key])) {\n //repeated nodes\n const arrLen = jObj[key].length;\n let listTagVal = \"\";\n let listTagAttr = \"\";\n for (let j = 0; j < arrLen; j++) {\n const item = jObj[key][j];\n if (typeof item === 'undefined') {\n // supress undefined node\n } else if (item === null) {\n if(key[0] === \"?\") val += this.indentate(level) + '<' + key + '?' + this.tagEndChar;\n else val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n // val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n } else if (typeof item === 'object') {\n if(this.options.oneListGroup){\n const result = this.j2x(item, level + 1);\n listTagVal += result.val;\n if (this.options.attributesGroupName && item.hasOwnProperty(this.options.attributesGroupName)) {\n listTagAttr += result.attrStr\n }\n }else{\n listTagVal += this.processTextOrObjNode(item, key, level)\n }\n } else {\n if (this.options.oneListGroup) {\n let textValue = this.options.tagValueProcessor(key, item);\n textValue = this.replaceEntitiesValue(textValue);\n listTagVal += textValue;\n } else {\n listTagVal += this.buildTextValNode(item, key, '', level);\n }\n }\n }\n if(this.options.oneListGroup){\n listTagVal = this.buildObjectNode(listTagVal, key, listTagAttr, level);\n }\n val += listTagVal;\n } else {\n //nested node\n if (this.options.attributesGroupName && key === this.options.attributesGroupName) {\n const Ks = Object.keys(jObj[key]);\n const L = Ks.length;\n for (let j = 0; j < L; j++) {\n attrStr += this.buildAttrPairStr(Ks[j], '' + jObj[key][Ks[j]]);\n }\n } else {\n val += this.processTextOrObjNode(jObj[key], key, level)\n }\n }\n }\n return {attrStr: attrStr, val: val};\n};\n\nBuilder.prototype.buildAttrPairStr = function(attrName, val){\n val = this.options.attributeValueProcessor(attrName, '' + val);\n val = this.replaceEntitiesValue(val);\n if (this.options.suppressBooleanAttributes && val === \"true\") {\n return ' ' + attrName;\n } else return ' ' + attrName + '=\"' + val + '\"';\n}\n\nfunction processTextOrObjNode (object, key, level) {\n const result = this.j2x(object, level + 1);\n if (object[this.options.textNodeName] !== undefined && Object.keys(object).length === 1) {\n return this.buildTextValNode(object[this.options.textNodeName], key, result.attrStr, level);\n } else {\n return this.buildObjectNode(result.val, key, result.attrStr, level);\n }\n}\n\nBuilder.prototype.buildObjectNode = function(val, key, attrStr, level) {\n if(val === \"\"){\n if(key[0] === \"?\") return this.indentate(level) + '<' + key + attrStr+ '?' + this.tagEndChar;\n else {\n return this.indentate(level) + '<' + key + attrStr + this.closeTag(key) + this.tagEndChar;\n }\n }else{\n\n let tagEndExp = '</' + key + this.tagEndChar;\n let piClosingChar = \"\";\n \n if(key[0] === \"?\") {\n piClosingChar = \"?\";\n tagEndExp = \"\";\n }\n \n // attrStr is an empty string in case the attribute came as undefined or null\n if ((attrStr || attrStr === '') && val.indexOf('<') === -1) {\n return ( this.indentate(level) + '<' + key + attrStr + piClosingChar + '>' + val + tagEndExp );\n } else if (this.options.commentPropName !== false && key === this.options.commentPropName && piClosingChar.length === 0) {\n return this.indentate(level) + `<!--${val}-->` + this.newLine;\n }else {\n return (\n this.indentate(level) + '<' + key + attrStr + piClosingChar + this.tagEndChar +\n val +\n this.indentate(level) + tagEndExp );\n }\n }\n}\n\nBuilder.prototype.closeTag = function(key){\n let closeTag = \"\";\n if(this.options.unpairedTags.indexOf(key) !== -1){ //unpaired\n if(!this.options.suppressUnpairedNode) closeTag = \"/\"\n }else if(this.options.suppressEmptyNode){ //empty\n closeTag = \"/\";\n }else{\n closeTag = `></${key}`\n }\n return closeTag;\n}\n\nfunction buildEmptyObjNode(val, key, attrStr, level) {\n if (val !== '') {\n return this.buildObjectNode(val, key, attrStr, level);\n } else {\n if(key[0] === \"?\") return this.indentate(level) + '<' + key + attrStr+ '?' + this.tagEndChar;\n else {\n return this.indentate(level) + '<' + key + attrStr + '/' + this.tagEndChar;\n // return this.buildTagStr(level,key, attrStr);\n }\n }\n}\n\nBuilder.prototype.buildTextValNode = function(val, key, attrStr, level) {\n if (this.options.cdataPropName !== false && key === this.options.cdataPropName) {\n return this.indentate(level) + `<![CDATA[${val}]]>` + this.newLine;\n }else if (this.options.commentPropName !== false && key === this.options.commentPropName) {\n return this.indentate(level) + `<!--${val}-->` + this.newLine;\n }else if(key[0] === \"?\") {//PI tag\n return this.indentate(level) + '<' + key + attrStr+ '?' + this.tagEndChar; \n }else{\n let textValue = this.options.tagValueProcessor(key, val);\n textValue = this.replaceEntitiesValue(textValue);\n \n if( textValue === ''){\n return this.indentate(level) + '<' + key + attrStr + this.closeTag(key) + this.tagEndChar;\n }else{\n return this.indentate(level) + '<' + key + attrStr + '>' +\n textValue +\n '</' + key + this.tagEndChar;\n }\n }\n}\n\nBuilder.prototype.replaceEntitiesValue = function(textValue){\n if(textValue && textValue.length > 0 && this.options.processEntities){\n for (let i=0; i<this.options.entities.length; i++) {\n const entity = this.options.entities[i];\n textValue = textValue.replace(entity.regex, entity.val);\n }\n }\n return textValue;\n}\n\nfunction indentate(level) {\n return this.options.indentBy.repeat(level);\n}\n\nfunction isAttribute(name /*, options*/) {\n if (name.startsWith(this.options.attributeNamePrefix) && name !== this.options.textNodeName) {\n return name.substr(this.attrPrefixLen);\n } else {\n return false;\n }\n}\n\nmodule.exports = Builder;\n",
|
|
74
|
+
"'use strict';\n\nconst validator = require('./validator');\nconst XMLParser = require('./xmlparser/XMLParser');\nconst XMLBuilder = require('./xmlbuilder/json2xml');\n\nmodule.exports = {\n XMLParser: XMLParser,\n XMLValidator: validator,\n XMLBuilder: XMLBuilder\n}",
|
|
75
|
+
"\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/protocols/index.ts\nvar protocols_exports = {};\n__export(protocols_exports, {\n _toBool: () => _toBool,\n _toNum: () => _toNum,\n _toStr: () => _toStr,\n awsExpectUnion: () => awsExpectUnion,\n loadRestJsonErrorCode: () => loadRestJsonErrorCode,\n loadRestXmlErrorCode: () => loadRestXmlErrorCode,\n parseJsonBody: () => parseJsonBody,\n parseJsonErrorBody: () => parseJsonErrorBody,\n parseXmlBody: () => parseXmlBody,\n parseXmlErrorBody: () => parseXmlErrorBody\n});\nmodule.exports = __toCommonJS(protocols_exports);\n\n// src/submodules/protocols/coercing-serializers.ts\nvar _toStr = /* @__PURE__ */ __name((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}, \"_toStr\");\nvar _toBool = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\") {\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}, \"_toBool\");\nvar _toNum = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"boolean\") {\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}, \"_toNum\");\n\n// src/submodules/protocols/json/awsExpectUnion.ts\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar awsExpectUnion = /* @__PURE__ */ __name((value) => {\n if (value == null) {\n return void 0;\n }\n if (typeof value === \"object\" && \"__type\" in value) {\n delete value.__type;\n }\n return (0, import_smithy_client.expectUnion)(value);\n}, \"awsExpectUnion\");\n\n// src/submodules/protocols/common.ts\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\nvar collectBodyString = /* @__PURE__ */ __name((streamBody, context) => (0, import_smithy_client2.collectBody)(streamBody, context).then((body) => context.utf8Encoder(body)), \"collectBodyString\");\n\n// src/submodules/protocols/json/parseJsonBody.ts\nvar parseJsonBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n try {\n return JSON.parse(encoded);\n } catch (e) {\n if ((e == null ? void 0 : e.name) === \"SyntaxError\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded\n });\n }\n throw e;\n }\n }\n return {};\n}), \"parseJsonBody\");\nvar parseJsonErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => {\n const value = await parseJsonBody(errorBody, context);\n value.message = value.message ?? value.Message;\n return value;\n}, \"parseJsonErrorBody\");\nvar loadRestJsonErrorCode = /* @__PURE__ */ __name((output, data) => {\n const findKey = /* @__PURE__ */ __name((object, key) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase()), \"findKey\");\n const sanitizeErrorCode = /* @__PURE__ */ __name((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 }, \"sanitizeErrorCode\");\n const headerKey = findKey(output.headers, \"x-amzn-errortype\");\n if (headerKey !== void 0) {\n return sanitizeErrorCode(output.headers[headerKey]);\n }\n if (data.code !== void 0) {\n return sanitizeErrorCode(data.code);\n }\n if (data[\"__type\"] !== void 0) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n}, \"loadRestJsonErrorCode\");\n\n// src/submodules/protocols/xml/parseXmlBody.ts\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar import_fast_xml_parser = require(\"fast-xml-parser\");\nvar parseXmlBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n const parser = new import_fast_xml_parser.XMLParser({\n attributeNamePrefix: \"\",\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: (_, val) => val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : void 0\n });\n parser.addEntity(\"#xD\", \"\\r\");\n parser.addEntity(\"#10\", \"\\n\");\n let parsedObj;\n try {\n parsedObj = parser.parse(encoded, true);\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 (0, import_smithy_client3.getValueFromTextNode)(parsedObjToReturn);\n }\n return {};\n}), \"parseXmlBody\");\nvar parseXmlErrorBody = /* @__PURE__ */ __name(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}, \"parseXmlErrorBody\");\nvar loadRestXmlErrorCode = /* @__PURE__ */ __name((output, data) => {\n var _a;\n if (((_a = data == null ? void 0 : data.Error) == null ? void 0 : _a.Code) !== void 0) {\n return data.Error.Code;\n }\n if ((data == null ? void 0 : data.Code) !== void 0) {\n return data.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n}, \"loadRestXmlErrorCode\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n _toBool,\n _toNum,\n _toStr,\n awsExpectUnion,\n loadRestJsonErrorCode,\n loadRestXmlErrorCode,\n parseJsonBody,\n parseJsonErrorBody,\n parseXmlBody,\n parseXmlErrorBody\n});\n",
|
|
76
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./submodules/client/index\"), exports);\ntslib_1.__exportStar(require(\"./submodules/httpAuthSchemes/index\"), exports);\ntslib_1.__exportStar(require(\"./submodules/protocols/index\"), exports);\n",
|
|
77
|
+
"import uuid from './dist/index.js';\nexport const v1 = uuid.v1;\nexport const v3 = uuid.v3;\nexport const v4 = uuid.v4;\nexport const v5 = uuid.v5;\nexport const NIL = uuid.NIL;\nexport const version = uuid.version;\nexport const validate = uuid.validate;\nexport const stringify = uuid.stringify;\nexport const parse = uuid.parse;\n",
|
|
78
|
+
"import { HttpRequest } from \"@smithy/protocol-http\";\nexport function resolveHostHeaderConfig(input) {\n return input;\n}\nexport const hostHeaderMiddleware = (options) => (next) => async (args) => {\n if (!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};\nexport const hostHeaderMiddlewareOptions = {\n name: \"hostHeaderMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"HOST\"],\n override: true,\n};\nexport const getHostHeaderPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions);\n },\n});\n",
|
|
79
|
+
"export const 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};\nexport const loggerMiddlewareOptions = {\n name: \"loggerMiddleware\",\n tags: [\"LOGGER\"],\n step: \"initialize\",\n override: true,\n};\nexport const getLoggerPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(loggerMiddleware(), loggerMiddlewareOptions);\n },\n});\n",
|
|
80
|
+
"import { HttpRequest } from \"@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\";\nexport const recursionDetectionMiddleware = (options) => (next) => async (args) => {\n const { request } = args;\n if (!HttpRequest.isInstance(request) ||\n options.runtime !== \"node\" ||\n request.headers.hasOwnProperty(TRACE_ID_HEADER_NAME)) {\n return next(args);\n }\n const functionName = process.env[ENV_LAMBDA_FUNCTION_NAME];\n const traceId = process.env[ENV_TRACE_ID];\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};\nexport const addRecursionDetectionMiddlewareOptions = {\n step: \"build\",\n tags: [\"RECURSION_DETECTION\"],\n name: \"recursionDetectionMiddleware\",\n override: true,\n priority: \"low\",\n};\nexport const getRecursionDetectionPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(recursionDetectionMiddleware(options), addRecursionDetectionMiddlewareOptions);\n },\n});\n",
|
|
81
|
+
"export function resolveUserAgentConfig(input) {\n return {\n ...input,\n customUserAgent: typeof input.customUserAgent === \"string\" ? [[input.customUserAgent]] : input.customUserAgent,\n };\n}\n",
|
|
82
|
+
"export class EndpointCache {\n constructor({ size, params }) {\n this.data = new Map();\n this.parameters = [];\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",
|
|
83
|
+
"const 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}$`);\nexport const isIpAddress = (value) => IP_V4_REGEX.test(value) || (value.startsWith(\"[\") && value.endsWith(\"]\"));\n",
|
|
84
|
+
"const VALID_HOST_LABEL_REGEX = new RegExp(`^(?!.*-$)(?!-)[a-zA-Z0-9-]{1,63}$`);\nexport const 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",
|
|
85
|
+
"export const customEndpointFunctions = {};\n",
|
|
86
|
+
"export const debugId = \"endpoints\";\n",
|
|
87
|
+
"export function 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",
|
|
88
|
+
"export class EndpointError extends Error {\n constructor(message) {\n super(message);\n this.name = \"EndpointError\";\n }\n}\n",
|
|
89
|
+
"export const booleanEquals = (value1, value2) => value1 === value2;\n",
|
|
90
|
+
"import { EndpointError } from \"../types\";\nexport const 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",
|
|
91
|
+
"import { EndpointError } from \"../types\";\nimport { getAttrPathList } from \"./getAttrPathList\";\nexport const 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",
|
|
92
|
+
"export const isSet = (value) => value != null;\n",
|
|
93
|
+
"export const not = (value) => !value;\n",
|
|
94
|
+
"import { EndpointURLScheme } from \"@smithy/types\";\nimport { isIpAddress } from \"./isIpAddress\";\nconst DEFAULT_PORTS = {\n [EndpointURLScheme.HTTP]: 80,\n [EndpointURLScheme.HTTPS]: 443,\n};\nexport const 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(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",
|
|
95
|
+
"export const stringEquals = (value1, value2) => value1 === value2;\n",
|
|
96
|
+
"export const substring = (input, start, stop, reverse) => {\n if (start >= stop || input.length < stop) {\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",
|
|
97
|
+
"export const uriEncode = (value) => encodeURIComponent(value).replace(/[!*'()]/g, (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`);\n",
|
|
98
|
+
"import { booleanEquals, getAttr, isSet, isValidHostLabel, not, parseURL, stringEquals, substring, uriEncode, } from \"../lib\";\nexport const endpointFunctions = {\n booleanEquals,\n getAttr,\n isSet,\n isValidHostLabel,\n not,\n parseURL,\n stringEquals,\n substring,\n uriEncode,\n};\n",
|
|
99
|
+
"import { getAttr } from \"../lib\";\nexport const 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",
|
|
100
|
+
"export const getReferenceValue = ({ ref }, options) => {\n const referenceRecord = {\n ...options.endpointParams,\n ...options.referenceRecord,\n };\n return referenceRecord[ref];\n};\n",
|
|
101
|
+
"import { EndpointError } from \"../types\";\nimport { callFunction } from \"./callFunction\";\nimport { evaluateTemplate } from \"./evaluateTemplate\";\nimport { getReferenceValue } from \"./getReferenceValue\";\nexport const evaluateExpression = (obj, keyName, options) => {\n if (typeof obj === \"string\") {\n return evaluateTemplate(obj, options);\n }\n else if (obj[\"fn\"]) {\n return 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};\n",
|
|
102
|
+
"import { customEndpointFunctions } from \"./customEndpointFunctions\";\nimport { endpointFunctions } from \"./endpointFunctions\";\nimport { evaluateExpression } from \"./evaluateExpression\";\nexport const callFunction = ({ fn, argv }, options) => {\n const evaluatedArgs = argv.map((arg) => [\"boolean\", \"number\"].includes(typeof arg) ? arg : 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};\n",
|
|
103
|
+
"import { debugId, toDebugString } from \"../debug\";\nimport { EndpointError } from \"../types\";\nimport { callFunction } from \"./callFunction\";\nexport const 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",
|
|
104
|
+
"import { debugId, toDebugString } from \"../debug\";\nimport { evaluateCondition } from \"./evaluateCondition\";\nexport const 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",
|
|
105
|
+
"import { EndpointError } from \"../types\";\nimport { evaluateExpression } from \"./evaluateExpression\";\nexport const 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",
|
|
106
|
+
"import { EndpointError } from \"../types\";\nimport { evaluateTemplate } from \"./evaluateTemplate\";\nimport { getEndpointProperties } from \"./getEndpointProperties\";\nexport const 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 getEndpointProperties(property, options);\n case \"boolean\":\n return property;\n default:\n throw new EndpointError(`Unexpected endpoint property type: ${typeof property}`);\n }\n};\n",
|
|
107
|
+
"import { getEndpointProperty } from \"./getEndpointProperty\";\nexport const getEndpointProperties = (properties, options) => Object.entries(properties).reduce((acc, [propertyKey, propertyVal]) => ({\n ...acc,\n [propertyKey]: getEndpointProperty(propertyVal, options),\n}), {});\n",
|
|
108
|
+
"import { EndpointError } from \"../types\";\nimport { evaluateExpression } from \"./evaluateExpression\";\nexport const 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",
|
|
109
|
+
"import { debugId, toDebugString } from \"../debug\";\nimport { evaluateConditions } from \"./evaluateConditions\";\nimport { getEndpointHeaders } from \"./getEndpointHeaders\";\nimport { getEndpointProperties } from \"./getEndpointProperties\";\nimport { getEndpointUrl } from \"./getEndpointUrl\";\nexport const 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",
|
|
110
|
+
"import { EndpointError } from \"../types\";\nimport { evaluateConditions } from \"./evaluateConditions\";\nimport { evaluateExpression } from \"./evaluateExpression\";\nexport const 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",
|
|
111
|
+
"import { evaluateConditions } from \"./evaluateConditions\";\nimport { evaluateRules } from \"./evaluateRules\";\nexport const evaluateTreeRule = (treeRule, options) => {\n const { conditions, rules } = treeRule;\n const { result, referenceRecord } = evaluateConditions(conditions, options);\n if (!result) {\n return;\n }\n return evaluateRules(rules, {\n ...options,\n referenceRecord: { ...options.referenceRecord, ...referenceRecord },\n });\n};\n",
|
|
112
|
+
"import { EndpointError } from \"../types\";\nimport { evaluateEndpointRule } from \"./evaluateEndpointRule\";\nimport { evaluateErrorRule } from \"./evaluateErrorRule\";\nimport { evaluateTreeRule } from \"./evaluateTreeRule\";\nexport const 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 = 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};\n",
|
|
113
|
+
"import { debugId, toDebugString } from \"./debug\";\nimport { EndpointError } from \"./types\";\nimport { evaluateRules } from \"./utils\";\nexport const 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",
|
|
114
|
+
"import { isValidHostLabel } from \"@smithy/util-endpoints\";\nimport { isIpAddress } from \"../isIpAddress\";\nexport const 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 (!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 (isIpAddress(value)) {\n return false;\n }\n return true;\n};\n",
|
|
115
|
+
"const ARN_DELIMITER = \":\";\nconst RESOURCE_DELIMITER = \"/\";\nexport const 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",
|
|
116
|
+
"import partitionsInfo from \"./partitions.json\";\nlet selectedPartitionsInfo = partitionsInfo;\nlet selectedUserAgentPrefix = \"\";\nexport const 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};\nexport const setPartitionInfo = (partitionsInfo, userAgentPrefix = \"\") => {\n selectedPartitionsInfo = partitionsInfo;\n selectedUserAgentPrefix = userAgentPrefix;\n};\nexport const useDefaultPartitionInfo = () => {\n setPartitionInfo(partitionsInfo, \"\");\n};\nexport const getUserAgentPrefix = () => selectedUserAgentPrefix;\n",
|
|
117
|
+
"import { customEndpointFunctions } from \"@smithy/util-endpoints\";\nimport { isVirtualHostableS3Bucket } from \"./lib/aws/isVirtualHostableS3Bucket\";\nimport { parseArn } from \"./lib/aws/parseArn\";\nimport { partition } from \"./lib/aws/partition\";\nexport const awsEndpointFunctions = {\n isVirtualHostableS3Bucket: isVirtualHostableS3Bucket,\n parseArn: parseArn,\n partition: partition,\n};\ncustomEndpointFunctions.aws = awsEndpointFunctions;\n",
|
|
118
|
+
"export const USER_AGENT = \"user-agent\";\nexport const X_AMZ_USER_AGENT = \"x-amz-user-agent\";\nexport const SPACE = \" \";\nexport const UA_NAME_SEPARATOR = \"/\";\nexport const UA_NAME_ESCAPE_REGEX = /[^\\!\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w]/g;\nexport const UA_VALUE_ESCAPE_REGEX = /[^\\!\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w\\#]/g;\nexport const UA_ESCAPE_CHAR = \"-\";\n",
|
|
119
|
+
"import { getUserAgentPrefix } from \"@aws-sdk/util-endpoints\";\nimport { HttpRequest } from \"@smithy/protocol-http\";\nimport { SPACE, UA_ESCAPE_CHAR, UA_NAME_ESCAPE_REGEX, UA_NAME_SEPARATOR, UA_VALUE_ESCAPE_REGEX, USER_AGENT, X_AMZ_USER_AGENT, } from \"./constants\";\nexport const userAgentMiddleware = (options) => (next, context) => async (args) => {\n const { request } = args;\n if (!HttpRequest.isInstance(request))\n return next(args);\n const { headers } = request;\n const userAgent = context?.userAgent?.map(escapeUserAgent) || [];\n const defaultUserAgent = (await options.defaultUserAgentProvider()).map(escapeUserAgent);\n const customUserAgent = options?.customUserAgent?.map(escapeUserAgent) || [];\n const prefix = 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};\nexport const getUserAgentMiddlewareOptions = {\n name: \"getUserAgentMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"SET_USER_AGENT\", \"USER_AGENT\"],\n override: true,\n};\nexport const getUserAgentPlugin = (config) => ({\n applyToStack: (clientStack) => {\n clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions);\n },\n});\n",
|
|
120
|
+
"export const isFipsRegion = (region) => typeof region === \"string\" && (region.startsWith(\"fips-\") || region.endsWith(\"-fips\"));\n",
|
|
121
|
+
"import { isFipsRegion } from \"./isFipsRegion\";\nexport const 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",
|
|
122
|
+
"import { getRealRegion } from \"./getRealRegion\";\nimport { isFipsRegion } from \"./isFipsRegion\";\nexport const resolveRegionConfig = (input) => {\n const { region, useFipsEndpoint } = input;\n if (!region) {\n throw new Error(\"Region is missing\");\n }\n return {\n ...input,\n region: async () => {\n if (typeof region === \"string\") {\n return getRealRegion(region);\n }\n const providedRegion = await region();\n return getRealRegion(providedRegion);\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",
|
|
123
|
+
"export const 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",
|
|
124
|
+
"export var SelectorType;\n(function (SelectorType) {\n SelectorType[\"ENV\"] = \"env\";\n SelectorType[\"CONFIG\"] = \"shared config entry\";\n})(SelectorType || (SelectorType = {}));\n",
|
|
125
|
+
"import { booleanSelector, SelectorType } from \"@smithy/util-config-provider\";\nexport const ENV_USE_DUALSTACK_ENDPOINT = \"AWS_USE_DUALSTACK_ENDPOINT\";\nexport const CONFIG_USE_DUALSTACK_ENDPOINT = \"use_dualstack_endpoint\";\nexport const DEFAULT_USE_DUALSTACK_ENDPOINT = false;\nexport const NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => booleanSelector(env, ENV_USE_DUALSTACK_ENDPOINT, SelectorType.ENV),\n configFileSelector: (profile) => booleanSelector(profile, CONFIG_USE_DUALSTACK_ENDPOINT, SelectorType.CONFIG),\n default: false,\n};\n",
|
|
126
|
+
"import { booleanSelector, SelectorType } from \"@smithy/util-config-provider\";\nexport const ENV_USE_FIPS_ENDPOINT = \"AWS_USE_FIPS_ENDPOINT\";\nexport const CONFIG_USE_FIPS_ENDPOINT = \"use_fips_endpoint\";\nexport const DEFAULT_USE_FIPS_ENDPOINT = false;\nexport const NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => booleanSelector(env, ENV_USE_FIPS_ENDPOINT, SelectorType.ENV),\n configFileSelector: (profile) => booleanSelector(profile, CONFIG_USE_FIPS_ENDPOINT, SelectorType.CONFIG),\n default: false,\n};\n",
|
|
127
|
+
"import { SMITHY_CONTEXT_KEY } from \"@smithy/types\";\nexport const getSmithyContext = (context) => context[SMITHY_CONTEXT_KEY] || (context[SMITHY_CONTEXT_KEY] = {});\n",
|
|
128
|
+
"export const normalizeProvider = (input) => {\n if (typeof input === \"function\")\n return input;\n const promisified = Promise.resolve(input);\n return () => promisified;\n};\n",
|
|
129
|
+
"export const REGION_ENV_NAME = \"AWS_REGION\";\nexport const REGION_INI_NAME = \"region\";\nexport const 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};\nexport const NODE_REGION_CONFIG_FILE_OPTIONS = {\n preferredFile: \"credentials\",\n};\n",
|
|
130
|
+
"import { HttpRequest } from \"@smithy/protocol-http\";\nconst CONTENT_LENGTH_HEADER = \"content-length\";\nexport function contentLengthMiddleware(bodyLengthChecker) {\n return (next) => async (args) => {\n const request = args.request;\n if (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}\nexport const contentLengthMiddlewareOptions = {\n step: \"build\",\n tags: [\"SET_CONTENT_LENGTH\", \"CONTENT_LENGTH\"],\n name: \"contentLengthMiddleware\",\n override: true,\n};\nexport const getContentLengthPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(contentLengthMiddleware(options.bodyLengthChecker), contentLengthMiddlewareOptions);\n },\n});\n",
|
|
131
|
+
"export const deserializerMiddleware = (options, deserializer) => (next) => 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 });\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 error.message += \"\\n \" + hint;\n if (typeof error.$responseBodyText !== \"undefined\") {\n if (error.$response) {\n error.$response.body = error.$responseBodyText;\n }\n }\n }\n throw error;\n }\n};\n",
|
|
132
|
+
"export const serializerMiddleware = (options, serializer) => (next, context) => async (args) => {\n const endpoint = context.endpointV2?.url && options.urlParser\n ? async () => options.urlParser(context.endpointV2.url)\n : options.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",
|
|
133
|
+
"import { deserializerMiddleware } from \"./deserializerMiddleware\";\nimport { serializerMiddleware } from \"./serializerMiddleware\";\nexport const deserializerMiddlewareOption = {\n name: \"deserializerMiddleware\",\n step: \"deserialize\",\n tags: [\"DESERIALIZER\"],\n override: true,\n};\nexport const serializerMiddlewareOption = {\n name: \"serializerMiddleware\",\n step: \"serialize\",\n tags: [\"SERIALIZER\"],\n override: true,\n};\nexport function 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",
|
|
134
|
+
"export const 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 = /\\.\\./;\nexport const DOT_PATTERN = /\\./;\nexport const S3_HOSTNAME_PATTERN = /^(.+\\.)?s3(-fips)?(\\.dualstack)?[.-]([a-z0-9-]+)\\./;\nexport const isDnsCompatibleBucketName = (bucketName) => DOMAIN_PATTERN.test(bucketName) && !IP_ADDRESS_PATTERN.test(bucketName) && !DOTS_PATTERN.test(bucketName);\nexport const 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",
|
|
135
|
+
"export const createConfigValueProvider = (configKey, canonicalEndpointParamKey, config) => {\n const configProvider = async () => {\n const configValue = config[configKey] ?? config[canonicalEndpointParamKey];\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 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",
|
|
136
|
+
"import { CONFIG_PREFIX_SEPARATOR } from \"@smithy/shared-ini-file-loader\";\nconst ENV_ENDPOINT_URL = \"AWS_ENDPOINT_URL\";\nconst CONFIG_ENDPOINT_URL = \"endpoint_url\";\nexport const 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(CONFIG_PREFIX_SEPARATOR)];\n if (servicesSection) {\n const servicePrefixParts = serviceId.split(\" \").map((w) => w.toLowerCase());\n const endpointUrl = servicesSection[[servicePrefixParts.join(\"_\"), CONFIG_ENDPOINT_URL].join(CONFIG_PREFIX_SEPARATOR)];\n if (endpointUrl)\n return endpointUrl;\n }\n }\n const endpointUrl = profile[CONFIG_ENDPOINT_URL];\n if (endpointUrl)\n return endpointUrl;\n return undefined;\n },\n default: undefined,\n});\n",
|
|
137
|
+
"import { loadConfig } from \"@smithy/node-config-provider\";\nimport { getEndpointUrlConfig } from \"./getEndpointUrlConfig\";\nexport const getEndpointFromConfig = async (serviceId) => loadConfig(getEndpointUrlConfig(serviceId ?? \"\"))();\n",
|
|
138
|
+
"import { parseUrl } from \"@smithy/url-parser\";\nexport const toEndpointV1 = (endpoint) => {\n if (typeof endpoint === \"object\") {\n if (\"url\" in endpoint) {\n return parseUrl(endpoint.url);\n }\n return endpoint;\n }\n return parseUrl(endpoint);\n};\n",
|
|
139
|
+
"import { resolveParamsForS3 } from \"../service-customizations\";\nimport { createConfigValueProvider } from \"./createConfigValueProvider\";\nimport { getEndpointFromConfig } from \"./getEndpointFromConfig\";\nimport { toEndpointV1 } from \"./toEndpointV1\";\nexport const getEndpointFromInstructions = async (commandInput, instructionsSupplier, clientConfig, context) => {\n if (!clientConfig.endpoint) {\n let endpointFromConfig;\n if (clientConfig.serviceConfiguredEndpoint) {\n endpointFromConfig = await clientConfig.serviceConfiguredEndpoint();\n }\n else {\n endpointFromConfig = await getEndpointFromConfig(clientConfig.serviceId);\n }\n if (endpointFromConfig) {\n clientConfig.endpoint = () => Promise.resolve(toEndpointV1(endpointFromConfig));\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 return endpoint;\n};\nexport const 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)();\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",
|
|
140
|
+
"import { getSmithyContext } from \"@smithy/util-middleware\";\nimport { getEndpointFromInstructions } from \"./adaptors/getEndpointFromInstructions\";\nexport const endpointMiddleware = ({ config, instructions, }) => {\n return (next, context) => async (args) => {\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 = 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",
|
|
141
|
+
"import { serializerMiddlewareOption } from \"@smithy/middleware-serde\";\nimport { endpointMiddleware } from \"./endpointMiddleware\";\nexport const endpointMiddlewareOptions = {\n step: \"serialize\",\n tags: [\"ENDPOINT_PARAMETERS\", \"ENDPOINT_V2\", \"ENDPOINT\"],\n name: \"endpointV2Middleware\",\n override: true,\n relation: \"before\",\n toMiddleware: serializerMiddlewareOption.name,\n};\nexport const getEndpointPlugin = (config, instructions) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo(endpointMiddleware({\n config,\n instructions,\n }), endpointMiddlewareOptions);\n },\n});\n",
|
|
142
|
+
"import { normalizeProvider } from \"@smithy/util-middleware\";\nimport { getEndpointFromConfig } from \"./adaptors/getEndpointFromConfig\";\nimport { toEndpointV1 } from \"./adaptors/toEndpointV1\";\nexport const resolveEndpointConfig = (input) => {\n const tls = input.tls ?? true;\n const { endpoint } = input;\n const customEndpointProvider = endpoint != null ? async () => toEndpointV1(await normalizeProvider(endpoint)()) : undefined;\n const isCustomEndpoint = !!endpoint;\n const resolvedConfig = {\n ...input,\n endpoint: customEndpointProvider,\n tls,\n isCustomEndpoint,\n useDualstackEndpoint: normalizeProvider(input.useDualstackEndpoint ?? false),\n useFipsEndpoint: normalizeProvider(input.useFipsEndpoint ?? false),\n };\n let configuredEndpointPromise = undefined;\n resolvedConfig.serviceConfiguredEndpoint = async () => {\n if (input.serviceId && !configuredEndpointPromise) {\n configuredEndpointPromise = getEndpointFromConfig(input.serviceId);\n }\n return configuredEndpointPromise;\n };\n return resolvedConfig;\n};\n",
|
|
143
|
+
"export var RETRY_MODES;\n(function (RETRY_MODES) {\n RETRY_MODES[\"STANDARD\"] = \"standard\";\n RETRY_MODES[\"ADAPTIVE\"] = \"adaptive\";\n})(RETRY_MODES || (RETRY_MODES = {}));\nexport const DEFAULT_MAX_ATTEMPTS = 3;\nexport const DEFAULT_RETRY_MODE = RETRY_MODES.STANDARD;\n",
|
|
144
|
+
"export const CLOCK_SKEW_ERROR_CODES = [\n \"AuthFailure\",\n \"InvalidSignatureException\",\n \"RequestExpired\",\n \"RequestInTheFuture\",\n \"RequestTimeTooSkewed\",\n \"SignatureDoesNotMatch\",\n];\nexport const 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];\nexport const TRANSIENT_ERROR_CODES = [\"TimeoutError\", \"RequestTimeout\", \"RequestTimeoutException\"];\nexport const TRANSIENT_ERROR_STATUS_CODES = [500, 502, 503, 504];\nexport const NODEJS_TIMEOUT_ERROR_CODES = [\"ECONNRESET\", \"ECONNREFUSED\", \"EPIPE\", \"ETIMEDOUT\"];\n",
|
|
145
|
+
"import { CLOCK_SKEW_ERROR_CODES, NODEJS_TIMEOUT_ERROR_CODES, THROTTLING_ERROR_CODES, TRANSIENT_ERROR_CODES, TRANSIENT_ERROR_STATUS_CODES, } from \"./constants\";\nexport const isRetryableByTrait = (error) => error.$retryable !== undefined;\nexport const isClockSkewError = (error) => CLOCK_SKEW_ERROR_CODES.includes(error.name);\nexport const isClockSkewCorrectedError = (error) => error.$metadata?.clockSkewCorrected;\nexport const isThrottlingError = (error) => error.$metadata?.httpStatusCode === 429 ||\n THROTTLING_ERROR_CODES.includes(error.name) ||\n error.$retryable?.throttling == true;\nexport const isTransientError = (error) => isClockSkewCorrectedError(error) ||\n TRANSIENT_ERROR_CODES.includes(error.name) ||\n NODEJS_TIMEOUT_ERROR_CODES.includes(error?.code || \"\") ||\n TRANSIENT_ERROR_STATUS_CODES.includes(error.$metadata?.httpStatusCode || 0);\nexport const 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",
|
|
146
|
+
"import { isThrottlingError } from \"@smithy/service-error-classification\";\nexport class DefaultRateLimiter {\n constructor(options) {\n this.currentCapacity = 0;\n this.enabled = false;\n this.lastMaxRate = 0;\n this.measuredTxRate = 0;\n this.requestCount = 0;\n this.lastTimestamp = 0;\n this.timeWindow = 0;\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) => setTimeout(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 (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",
|
|
147
|
+
"export const DEFAULT_RETRY_DELAY_BASE = 100;\nexport const MAXIMUM_RETRY_DELAY = 20 * 1000;\nexport const THROTTLING_RETRY_DELAY_BASE = 500;\nexport const INITIAL_RETRY_TOKENS = 500;\nexport const RETRY_COST = 5;\nexport const TIMEOUT_RETRY_COST = 10;\nexport const NO_RETRY_INCREMENT = 1;\nexport const INVOCATION_ID_HEADER = \"amz-sdk-invocation-id\";\nexport const REQUEST_HEADER = \"amz-sdk-request\";\n",
|
|
148
|
+
"import { DEFAULT_RETRY_DELAY_BASE, MAXIMUM_RETRY_DELAY } from \"./constants\";\nexport const 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",
|
|
149
|
+
"import { MAXIMUM_RETRY_DELAY } from \"./constants\";\nexport const 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",
|
|
150
|
+
"import { DEFAULT_MAX_ATTEMPTS, RETRY_MODES } from \"./config\";\nimport { DEFAULT_RETRY_DELAY_BASE, INITIAL_RETRY_TOKENS, NO_RETRY_INCREMENT, RETRY_COST, THROTTLING_RETRY_DELAY_BASE, TIMEOUT_RETRY_COST, } from \"./constants\";\nimport { getDefaultRetryBackoffStrategy } from \"./defaultRetryBackoffStrategy\";\nimport { createDefaultRetryToken } from \"./defaultRetryToken\";\nexport class StandardRetryStrategy {\n constructor(maxAttempts) {\n this.maxAttempts = maxAttempts;\n this.mode = RETRY_MODES.STANDARD;\n this.capacity = INITIAL_RETRY_TOKENS;\n this.retryBackoffStrategy = getDefaultRetryBackoffStrategy();\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",
|
|
151
|
+
"import { RETRY_MODES } from \"./config\";\nimport { DefaultRateLimiter } from \"./DefaultRateLimiter\";\nimport { StandardRetryStrategy } from \"./StandardRetryStrategy\";\nexport class AdaptiveRetryStrategy {\n constructor(maxAttemptsProvider, options) {\n this.maxAttemptsProvider = maxAttemptsProvider;\n this.mode = RETRY_MODES.ADAPTIVE;\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",
|
|
152
|
+
"import { normalizeProvider } from \"@smithy/util-middleware\";\nimport { AdaptiveRetryStrategy, DEFAULT_MAX_ATTEMPTS, DEFAULT_RETRY_MODE, RETRY_MODES, StandardRetryStrategy, } from \"@smithy/util-retry\";\nexport const ENV_MAX_ATTEMPTS = \"AWS_MAX_ATTEMPTS\";\nexport const CONFIG_MAX_ATTEMPTS = \"max_attempts\";\nexport const 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: DEFAULT_MAX_ATTEMPTS,\n};\nexport const resolveRetryConfig = (input) => {\n const { retryStrategy } = input;\n const maxAttempts = normalizeProvider(input.maxAttempts ?? DEFAULT_MAX_ATTEMPTS);\n return {\n ...input,\n maxAttempts,\n retryStrategy: async () => {\n if (retryStrategy) {\n return retryStrategy;\n }\n const retryMode = await normalizeProvider(input.retryMode)();\n if (retryMode === RETRY_MODES.ADAPTIVE) {\n return new AdaptiveRetryStrategy(maxAttempts);\n }\n return new StandardRetryStrategy(maxAttempts);\n },\n };\n};\nexport const ENV_RETRY_MODE = \"AWS_RETRY_MODE\";\nexport const CONFIG_RETRY_MODE = \"retry_mode\";\nexport const NODE_RETRY_MODE_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => env[ENV_RETRY_MODE],\n configFileSelector: (profile) => profile[CONFIG_RETRY_MODE],\n default: DEFAULT_RETRY_MODE,\n};\n",
|
|
153
|
+
"import { Readable } from \"stream\";\nexport const isStreamingPayload = (request) => request?.body instanceof Readable ||\n (typeof ReadableStream !== \"undefined\" && request?.body instanceof ReadableStream);\n",
|
|
154
|
+
"export const 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",
|
|
155
|
+
"import { HttpRequest, HttpResponse } from \"@smithy/protocol-http\";\nimport { isServerError, isThrottlingError, isTransientError } from \"@smithy/service-error-classification\";\nimport { NoOpLogger } from \"@smithy/smithy-client\";\nimport { INVOCATION_ID_HEADER, REQUEST_HEADER } from \"@smithy/util-retry\";\nimport { v4 } from \"uuid\";\nimport { isStreamingPayload } from \"./isStreamingPayload/isStreamingPayload\";\nimport { asSdkError } from \"./util\";\nexport const 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 = HttpRequest.isInstance(request);\n if (isRequest) {\n request.headers[INVOCATION_ID_HEADER] = v4();\n }\n while (true) {\n try {\n if (isRequest) {\n request.headers[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(request)) {\n (context.logger instanceof 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 (isThrottlingError(error))\n return \"THROTTLING\";\n if (isTransientError(error))\n return \"TRANSIENT\";\n if (isServerError(error))\n return \"SERVER_ERROR\";\n return \"CLIENT_ERROR\";\n};\nexport const retryMiddlewareOptions = {\n name: \"retryMiddleware\",\n tags: [\"RETRY\"],\n step: \"finalizeRequest\",\n priority: \"high\",\n override: true,\n};\nexport const getRetryPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(retryMiddleware(options), retryMiddlewareOptions);\n },\n});\nexport const getRetryAfterHint = (response) => {\n if (!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",
|
|
156
|
+
"import { loadConfig } from \"@smithy/node-config-provider\";\nimport { platform, release } from \"os\";\nimport { env, versions } from \"process\";\nimport { isCrtAvailable } from \"./is-crt-available\";\nexport { crtAvailability } from \"./crt-availability\";\nexport const UA_APP_ID_ENV_NAME = \"AWS_SDK_UA_APP_ID\";\nexport const UA_APP_ID_INI_NAME = \"sdk-ua-app-id\";\nexport const defaultUserAgent = ({ serviceId, clientVersion }) => {\n const sections = [\n [\"aws-sdk-js\", clientVersion],\n [\"ua\", \"2.0\"],\n [`os/${platform()}`, release()],\n [\"lang/js\"],\n [\"md/nodejs\", `${versions.node}`],\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 (env.AWS_EXECUTION_ENV) {\n sections.push([`exec-env/${env.AWS_EXECUTION_ENV}`]);\n }\n const appIdPromise = loadConfig({\n environmentVariableSelector: (env) => env[UA_APP_ID_ENV_NAME],\n configFileSelector: (profile) => profile[UA_APP_ID_INI_NAME],\n default: undefined,\n })();\n let resolvedUserAgent = undefined;\n return async () => {\n if (!resolvedUserAgent) {\n const appId = await appIdPromise;\n resolvedUserAgent = appId ? [...sections, [`app/${appId}`]] : [...sections];\n }\n return resolvedUserAgent;\n };\n};\n",
|
|
157
|
+
"export const crtAvailability = {\n isCrtAvailable: false,\n};\n",
|
|
158
|
+
"import { crtAvailability } from \"./crt-availability\";\nexport const isCrtAvailable = () => {\n if (crtAvailability.isCrtAvailable) {\n return [\"md/crt-avail\"];\n }\n return null;\n};\n",
|
|
159
|
+
"import { fromArrayBuffer, fromString } from \"@smithy/util-buffer-from\";\nimport { toUint8Array } from \"@smithy/util-utf8\";\nimport { Buffer } from \"buffer\";\nimport { createHash, createHmac } from \"crypto\";\nexport class Hash {\n constructor(algorithmIdentifier, secret) {\n this.algorithmIdentifier = algorithmIdentifier;\n this.secret = secret;\n this.reset();\n }\n update(toHash, encoding) {\n this.hash.update(toUint8Array(castSourceData(toHash, encoding)));\n }\n digest() {\n return Promise.resolve(this.hash.digest());\n }\n reset() {\n this.hash = this.secret\n ? createHmac(this.algorithmIdentifier, castSourceData(this.secret))\n : createHash(this.algorithmIdentifier);\n }\n}\nfunction castSourceData(toCast, encoding) {\n if (Buffer.isBuffer(toCast)) {\n return toCast;\n }\n if (typeof toCast === \"string\") {\n return fromString(toCast, encoding);\n }\n if (ArrayBuffer.isView(toCast)) {\n return fromArrayBuffer(toCast.buffer, toCast.byteOffset, toCast.byteLength);\n }\n return fromArrayBuffer(toCast);\n}\n",
|
|
160
|
+
"import { fstatSync, lstatSync } from \"fs\";\nexport const 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 (typeof body.path === \"string\" || Buffer.isBuffer(body.path)) {\n return lstatSync(body.path).size;\n }\n else if (typeof body.fd === \"number\") {\n return fstatSync(body.fd).size;\n }\n throw new Error(`Body Length computation failed for ${body}`);\n};\n",
|
|
161
|
+
"import { NODE_REGION_CONFIG_OPTIONS } from \"@smithy/config-resolver\";\nimport { loadConfig } from \"@smithy/node-config-provider\";\nimport { memoize } from \"@smithy/property-provider\";\nimport { AWS_DEFAULT_REGION_ENV, AWS_EXECUTION_ENV, AWS_REGION_ENV, DEFAULTS_MODE_OPTIONS, ENV_IMDS_DISABLED, IMDS_REGION_PATH, } from \"./constants\";\nimport { NODE_DEFAULTS_MODE_CONFIG_OPTIONS } from \"./defaultsModeConfig\";\nexport const resolveDefaultsModeConfig = ({ region = loadConfig(NODE_REGION_CONFIG_OPTIONS), defaultsMode = loadConfig(NODE_DEFAULTS_MODE_CONFIG_OPTIONS), } = {}) => memoize(async () => {\n const mode = typeof defaultsMode === \"function\" ? await defaultsMode() : defaultsMode;\n switch (mode?.toLowerCase()) {\n case \"auto\":\n return resolveNodeDefaultsModeAuto(region);\n case \"in-region\":\n case \"cross-region\":\n case \"mobile\":\n case \"standard\":\n case \"legacy\":\n return Promise.resolve(mode?.toLocaleLowerCase());\n case undefined:\n return Promise.resolve(\"legacy\");\n default:\n throw new Error(`Invalid parameter for \"defaultsMode\", expect ${DEFAULTS_MODE_OPTIONS.join(\", \")}, got ${mode}`);\n }\n});\nconst resolveNodeDefaultsModeAuto = async (clientRegion) => {\n if (clientRegion) {\n const resolvedRegion = typeof clientRegion === \"function\" ? await clientRegion() : clientRegion;\n const inferredRegion = await inferPhysicalRegion();\n if (!inferredRegion) {\n return \"standard\";\n }\n if (resolvedRegion === inferredRegion) {\n return \"in-region\";\n }\n else {\n return \"cross-region\";\n }\n }\n return \"standard\";\n};\nconst inferPhysicalRegion = async () => {\n if (process.env[AWS_EXECUTION_ENV] && (process.env[AWS_REGION_ENV] || process.env[AWS_DEFAULT_REGION_ENV])) {\n return process.env[AWS_REGION_ENV] ?? process.env[AWS_DEFAULT_REGION_ENV];\n }\n if (!process.env[ENV_IMDS_DISABLED]) {\n try {\n const { 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",
|
|
162
|
+
"export const AWS_EXECUTION_ENV = \"AWS_EXECUTION_ENV\";\nexport const AWS_REGION_ENV = \"AWS_REGION\";\nexport const AWS_DEFAULT_REGION_ENV = \"AWS_DEFAULT_REGION\";\nexport const ENV_IMDS_DISABLED = \"AWS_EC2_METADATA_DISABLED\";\nexport const DEFAULTS_MODE_OPTIONS = [\"in-region\", \"cross-region\", \"mobile\", \"standard\", \"legacy\"];\nexport const IMDS_REGION_PATH = \"/latest/meta-data/placement/region\";\n",
|
|
163
|
+
"const AWS_DEFAULTS_MODE_ENV = \"AWS_DEFAULTS_MODE\";\nconst AWS_DEFAULTS_MODE_CONFIG = \"defaults_mode\";\nexport const 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",
|
|
164
|
+
"export const getAwsRegionExtensionConfiguration = (runtimeConfig) => {\n let runtimeConfigRegion = async () => {\n if (runtimeConfig.region === undefined) {\n throw new Error(\"Region is missing from runtimeConfig\");\n }\n const region = runtimeConfig.region;\n if (typeof region === \"string\") {\n return region;\n }\n return region();\n };\n return {\n setRegion(region) {\n runtimeConfigRegion = region;\n },\n region() {\n return runtimeConfigRegion;\n },\n };\n};\nexport const resolveAwsRegionExtensionConfiguration = (awsRegionExtensionConfiguration) => {\n return {\n region: awsRegionExtensionConfiguration.region(),\n };\n};\n"
|
|
165
|
+
],
|
|
166
|
+
"mappings": "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",
|
|
167
|
+
"debugId": "C8C4A1285A266C5164756e2164756e21",
|
|
168
|
+
"names": []
|
|
169
|
+
}
|