From fe7f160994c6bde14c5aa9e1a31cb68a81c41c28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20G=C3=BCnther?= Date: Tue, 20 Jan 2026 14:48:11 +0100 Subject: [PATCH] fix: Add template size validation and fix template parameter handling (v2.0.1) - Add validation to check template size before deployment (51,200 byte limit) - Provide clear error message when template exceeds CloudFormation limit - Fix template parameter handling to only send TemplateBody OR TemplateURL - Add test coverage for template size validation - Update CHANGELOG.md for v2.0.1 release Fixes issue where large templates caused cryptic validation errors from CloudFormation API --- CHANGELOG.md | 11 + __tests__/main.test.ts | 77 +- dist/index.js | 209749 +++++++++++++++++++++----------------- src/deploy.ts | 12 +- src/main.ts | 20 +- 5 files changed, 117184 insertions(+), 92685 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c21f676..0ce0072 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,17 @@ All notable changes to this project will be documented in this file. See [standa ## Features +### 2.0.1 + +- **Template Size Validation**: Added validation to check template size before deployment + - Templates exceeding CloudFormation's 51,200 byte limit now fail with a clear error message + - Error message provides guidance on uploading templates to S3 for large templates + - Prevents cryptic validation errors from CloudFormation API +- **Template Parameter Handling**: Fixed issue where both TemplateBody and TemplateURL were being sent to CloudFormation API + - Now only sends the relevant template parameter (TemplateBody OR TemplateURL, never both) + - Improves compatibility with AWS SDK v3 and prevents validation errors with large templates +- **Test Coverage**: Added test coverage for template size validation + ### 2.0.0 - **Real-time Event Streaming**: Added comprehensive CloudFormation stack event monitoring during deployments diff --git a/__tests__/main.test.ts b/__tests__/main.test.ts index 828e18b..a2e808b 100644 --- a/__tests__/main.test.ts +++ b/__tests__/main.test.ts @@ -236,7 +236,6 @@ describe('Deploy CloudFormation Stack', () => { StackName: 'MockStack', Tags: undefined, TemplateBody: mockTemplate, - TemplateURL: undefined, TimeoutInMinutes: undefined }) expect(mockCfnClient).toHaveReceivedNthCommandWith( @@ -298,7 +297,6 @@ describe('Deploy CloudFormation Stack', () => { StackName: 'MockStack', Tags: undefined, TemplateBody: mockTemplate, - TemplateURL: undefined, TimeoutInMinutes: undefined }) expect(mockCfnClient).toHaveReceivedNthCommandWith( @@ -380,8 +378,7 @@ describe('Deploy CloudFormation Stack', () => { RollbackConfiguration: undefined, StackName: 'MockStack', Tags: undefined, - TemplateBody: mockTemplate, - TemplateURL: undefined + TemplateBody: mockTemplate } ) expect(mockCfnClient).toHaveReceivedNthCommandWith( @@ -460,7 +457,6 @@ describe('Deploy CloudFormation Stack', () => { StackName: 'MockStack', Tags: undefined, TemplateBody: mockTemplate, - TemplateURL: undefined, TimeoutInMinutes: undefined }) expect(mockCfnClient).toHaveReceivedNthCommandWith( @@ -550,7 +546,6 @@ describe('Deploy CloudFormation Stack', () => { StackName: 'MockStack', Tags: undefined, TemplateBody: mockTemplate, - TemplateURL: undefined, TimeoutInMinutes: undefined }) expect(mockCfnClient).toHaveReceivedNthCommandWith( @@ -596,7 +591,6 @@ describe('Deploy CloudFormation Stack', () => { StackName: 'MockStack', TemplateURL: 'https://s3.amazonaws.com/templates/myTemplate.template?versionId=123ab1cdeKdOW5IH4GAcYbEngcpTJTDW', - TemplateBody: undefined, Capabilities: ['CAPABILITY_IAM'], Parameters: [ { ParameterKey: 'AdminEmail', ParameterValue: 'no-reply@amazon.com' } @@ -658,7 +652,6 @@ describe('Deploy CloudFormation Stack', () => { RollbackConfiguration: undefined, StackName: 'MockStack', Tags: undefined, - TemplateBody: undefined, TemplateURL: 'https://s3.amazonaws.com/templates/myTemplate.template?versionId=123ab1cdeKdOW5IH4GAcYbEngcpTJTDW', TimeoutInMinutes: undefined @@ -717,7 +710,6 @@ describe('Deploy CloudFormation Stack', () => { RollbackConfiguration: undefined, StackName: 'MockStack', Tags: undefined, - TemplateBody: undefined, TemplateURL: 'https://s3.amazonaws.com/templates/myTemplate.template?versionId=123ab1cdeKdOW5IH4GAcYbEngcpTJTDW', TimeoutInMinutes: undefined @@ -780,7 +772,6 @@ describe('Deploy CloudFormation Stack', () => { RollbackConfiguration: undefined, StackName: 'MockStack', Tags: undefined, - TemplateBody: undefined, TemplateURL: 'https://s3.amazonaws.com/templates/myTemplate.template?versionId=123ab1cdeKdOW5IH4GAcYbEngcpTJTDW', TimeoutInMinutes: undefined @@ -839,7 +830,6 @@ describe('Deploy CloudFormation Stack', () => { RollbackConfiguration: undefined, StackName: 'MockStack', Tags: undefined, - TemplateBody: undefined, TemplateURL: 'https://s3.amazonaws.com/templates/myTemplate.template?versionId=123ab1cdeKdOW5IH4GAcYbEngcpTJTDW', TimeoutInMinutes: undefined @@ -898,7 +888,6 @@ describe('Deploy CloudFormation Stack', () => { RollbackConfiguration: undefined, StackName: 'MockStack', Tags: [{ Key: 'Test', Value: 'Value' }], - TemplateBody: undefined, TemplateURL: 'https://s3.amazonaws.com/templates/myTemplate.template?versionId=123ab1cdeKdOW5IH4GAcYbEngcpTJTDW', TimeoutInMinutes: undefined @@ -957,7 +946,6 @@ describe('Deploy CloudFormation Stack', () => { RollbackConfiguration: undefined, StackName: 'MockStack', Tags: undefined, - TemplateBody: undefined, TemplateURL: 'https://s3.amazonaws.com/templates/myTemplate.template?versionId=123ab1cdeKdOW5IH4GAcYbEngcpTJTDW', TimeoutInMinutes: 10 @@ -1122,8 +1110,7 @@ describe('Deploy CloudFormation Stack', () => { RollbackConfiguration: undefined, StackName: 'MockStack', Tags: undefined, - TemplateBody: mockTemplate, - TemplateURL: undefined + TemplateBody: mockTemplate } ) expect(mockCfnClient).toHaveReceivedNthCommandWith( @@ -1226,8 +1213,7 @@ describe('Deploy CloudFormation Stack', () => { RollbackConfiguration: undefined, StackName: 'MockStack', Tags: undefined, - TemplateBody: mockTemplate, - TemplateURL: undefined + TemplateBody: mockTemplate } ) expect(mockCfnClient).toHaveReceivedNthCommandWith( @@ -1351,8 +1337,7 @@ describe('Deploy CloudFormation Stack', () => { RollbackConfiguration: undefined, StackName: 'MockStack', Tags: undefined, - TemplateBody: mockTemplate, - TemplateURL: undefined + TemplateBody: mockTemplate } ) expect(mockCfnClient).toHaveReceivedNthCommandWith( @@ -1471,8 +1456,7 @@ describe('Deploy CloudFormation Stack', () => { RollbackConfiguration: undefined, StackName: 'MockStack', Tags: undefined, - TemplateBody: mockTemplate, - TemplateURL: undefined + TemplateBody: mockTemplate } ) expect(mockCfnClient).toHaveReceivedNthCommandWith( @@ -1591,8 +1575,7 @@ describe('Deploy CloudFormation Stack', () => { RollbackConfiguration: undefined, StackName: 'MockStack', Tags: undefined, - TemplateBody: mockTemplate, - TemplateURL: undefined + TemplateBody: mockTemplate } ) expect(mockCfnClient).toHaveReceivedNthCommandWith( @@ -1694,8 +1677,7 @@ describe('Deploy CloudFormation Stack', () => { RollbackConfiguration: undefined, StackName: 'MockStack', Tags: undefined, - TemplateBody: mockTemplate, - TemplateURL: undefined + TemplateBody: mockTemplate } ) expect(mockCfnClient).toHaveReceivedNthCommandWith( @@ -1784,8 +1766,7 @@ describe('Deploy CloudFormation Stack', () => { RollbackConfiguration: undefined, StackName: 'MockStack', Tags: undefined, - TemplateBody: mockTemplate, - TemplateURL: undefined + TemplateBody: mockTemplate } ) expect(mockCfnClient).toHaveReceivedNthCommandWith( @@ -1880,8 +1861,7 @@ describe('Deploy CloudFormation Stack', () => { RollbackConfiguration: undefined, StackName: 'MockStack', Tags: undefined, - TemplateBody: mockTemplate, - TemplateURL: undefined + TemplateBody: mockTemplate } ) expect(mockCfnClient).toHaveReceivedNthCommandWith( @@ -1976,8 +1956,7 @@ describe('Deploy CloudFormation Stack', () => { ResourceTypes: undefined, RollbackConfiguration: undefined, RoleARN: undefined, - Tags: undefined, - TemplateURL: undefined + Tags: undefined } ) expect(mockCfnClient).toHaveReceivedNthCommandWith( @@ -2115,9 +2094,41 @@ describe('Deploy CloudFormation Stack', () => { ResourceTypes: undefined, RollbackConfiguration: undefined, RoleARN: undefined, - Tags: undefined, - TemplateURL: undefined + Tags: undefined } ) }) }) + +it('fails when template size exceeds CloudFormation limit', async () => { + // Create a template that exceeds 51,200 bytes + const largeTemplate = 'x'.repeat(51201) + + jest.spyOn(fs, 'readFileSync').mockReturnValue(largeTemplate) + + jest.spyOn(core, 'getInput').mockImplementation((name: string) => { + switch (name) { + case 'name': + return 'MockStack' + case 'template': + return 'template.yaml' + case 'capabilities': + return 'CAPABILITY_IAM' + case 'parameter-overrides': + return 'AdminEmail=no-reply@amazon.com' + default: + return '' + } + }) + + await run() + + expect(core.setFailed).toHaveBeenCalledWith( + expect.stringContaining( + 'Template size (51201 bytes) exceeds CloudFormation limit (51200 bytes)' + ) + ) + expect(core.setFailed).toHaveBeenCalledWith( + expect.stringContaining('Please upload your template to S3') + ) +}) diff --git a/dist/index.js b/dist/index.js index 013e78a..70f358b 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1,634 +1,925 @@ -/******/ (() => { // webpackBootstrap -/******/ var __webpack_modules__ = ({ - -/***/ 77538: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getStackOutputs = exports.deployStack = exports.updateStack = exports.cleanupChangeSet = void 0; -const core = __importStar(__nccwpck_require__(42186)); -const client_cloudformation_1 = __nccwpck_require__(15650); -const utils_1 = __nccwpck_require__(50918); -const event_streaming_1 = __nccwpck_require__(65195); -function cleanupChangeSet(cfn, stack, params, noEmptyChangeSet, noDeleteFailedChangeSet) { - return __awaiter(this, void 0, void 0, function* () { - const knownErrorMessages = [ +/******/ ;(() => { + // webpackBootstrap + /******/ var __webpack_modules__ = { + /***/ 77538: /***/ function ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) { + 'use strict' + + var __createBinding = + (this && this.__createBinding) || + (Object.create + ? function (o, m, k, k2) { + if (k2 === undefined) k2 = k + var desc = Object.getOwnPropertyDescriptor(m, k) + if ( + !desc || + ('get' in desc + ? !m.__esModule + : desc.writable || desc.configurable) + ) { + desc = { + enumerable: true, + get: function () { + return m[k] + } + } + } + Object.defineProperty(o, k2, desc) + } + : function (o, m, k, k2) { + if (k2 === undefined) k2 = k + o[k2] = m[k] + }) + var __setModuleDefault = + (this && this.__setModuleDefault) || + (Object.create + ? function (o, v) { + Object.defineProperty(o, 'default', { + enumerable: true, + value: v + }) + } + : function (o, v) { + o['default'] = v + }) + var __importStar = + (this && this.__importStar) || + function (mod) { + if (mod && mod.__esModule) return mod + var result = {} + if (mod != null) + for (var k in mod) + if ( + k !== 'default' && + Object.prototype.hasOwnProperty.call(mod, k) + ) + __createBinding(result, mod, k) + __setModuleDefault(result, mod) + return result + } + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step( + (generator = generator.apply(thisArg, _arguments || [])).next() + ) + }) + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getStackOutputs = + exports.deployStack = + exports.updateStack = + exports.cleanupChangeSet = + void 0 + const core = __importStar(__nccwpck_require__(42186)) + const client_cloudformation_1 = __nccwpck_require__(15650) + const utils_1 = __nccwpck_require__(50918) + const event_streaming_1 = __nccwpck_require__(65195) + function cleanupChangeSet( + cfn, + stack, + params, + noEmptyChangeSet, + noDeleteFailedChangeSet + ) { + return __awaiter(this, void 0, void 0, function* () { + const knownErrorMessages = [ `No updates are to be performed`, `The submitted information didn't contain changes` - ]; - const changeSetStatus = yield (0, utils_1.withRetry)(() => cfn.send(new client_cloudformation_1.DescribeChangeSetCommand({ - ChangeSetName: params.ChangeSetName, - StackName: params.StackName - }))); - if (changeSetStatus.Status === 'FAILED') { - core.debug('Deleting failed Change Set'); + ] + const changeSetStatus = yield (0, utils_1.withRetry)(() => + cfn.send( + new client_cloudformation_1.DescribeChangeSetCommand({ + ChangeSetName: params.ChangeSetName, + StackName: params.StackName + }) + ) + ) + if (changeSetStatus.Status === 'FAILED') { + core.debug('Deleting failed Change Set') if (!noDeleteFailedChangeSet) { - yield (0, utils_1.withRetry)(() => cfn.send(new client_cloudformation_1.DeleteChangeSetCommand({ + yield (0, utils_1.withRetry)(() => + cfn.send( + new client_cloudformation_1.DeleteChangeSetCommand({ ChangeSetName: params.ChangeSetName, StackName: params.StackName - }))); - } - if (noEmptyChangeSet && - knownErrorMessages.some(err => { var _a; return (_a = changeSetStatus.StatusReason) === null || _a === void 0 ? void 0 : _a.includes(err); })) { - // Provide clear notification that no updates are needed - core.info('✅ No updates to deploy - CloudFormation stack is already up to date'); - core.info(`Stack "${stack.StackName || 'Unknown'}" has no changes to apply`); - core.info('The template and parameters match the current stack configuration'); - return stack.StackId; - } - throw new Error(`Failed to create Change Set: ${changeSetStatus.StatusReason}`); - } - }); -} -exports.cleanupChangeSet = cleanupChangeSet; -function updateStack(cfn, stack, params, noEmptyChangeSet, noExecuteChangeSet, noDeleteFailedChangeSet) { - return __awaiter(this, void 0, void 0, function* () { - core.debug('Creating CloudFormation Change Set'); - yield (0, utils_1.withRetry)(() => cfn.send(new client_cloudformation_1.CreateChangeSetCommand(params))); - try { - core.debug('Waiting for CloudFormation Change Set creation'); - yield (0, client_cloudformation_1.waitUntilChangeSetCreateComplete)({ client: cfn, maxWaitTime: 1800, minDelay: 10 }, { + }) + ) + ) + } + if ( + noEmptyChangeSet && + knownErrorMessages.some(err => { + var _a + return (_a = changeSetStatus.StatusReason) === null || + _a === void 0 + ? void 0 + : _a.includes(err) + }) + ) { + // Provide clear notification that no updates are needed + core.info( + '✅ No updates to deploy - CloudFormation stack is already up to date' + ) + core.info( + `Stack "${stack.StackName || 'Unknown'}" has no changes to apply` + ) + core.info( + 'The template and parameters match the current stack configuration' + ) + return stack.StackId + } + throw new Error( + `Failed to create Change Set: ${changeSetStatus.StatusReason}` + ) + } + }) + } + exports.cleanupChangeSet = cleanupChangeSet + function updateStack( + cfn, + stack, + params, + noEmptyChangeSet, + noExecuteChangeSet, + noDeleteFailedChangeSet + ) { + return __awaiter(this, void 0, void 0, function* () { + core.debug('Creating CloudFormation Change Set') + yield (0, utils_1.withRetry)(() => + cfn.send(new client_cloudformation_1.CreateChangeSetCommand(params)) + ) + try { + core.debug('Waiting for CloudFormation Change Set creation') + yield (0, client_cloudformation_1.waitUntilChangeSetCreateComplete)( + { client: cfn, maxWaitTime: 1800, minDelay: 10 }, + { ChangeSetName: params.ChangeSetName, StackName: params.StackName - }); - } - catch (err) { - return cleanupChangeSet(cfn, stack, params, noEmptyChangeSet, noDeleteFailedChangeSet); - } - if (noExecuteChangeSet) { - core.debug('Not executing the change set'); - return stack.StackId; - } - core.debug('Executing CloudFormation change set'); - yield (0, utils_1.withRetry)(() => cfn.send(new client_cloudformation_1.ExecuteChangeSetCommand({ - ChangeSetName: params.ChangeSetName, - StackName: params.StackName - }))); - core.debug('Updating CloudFormation stack'); - yield (0, client_cloudformation_1.waitUntilStackUpdateComplete)({ client: cfn, maxWaitTime: 43200, minDelay: 10 }, { - StackName: params.StackName - }); - return stack.StackId; - }); -} -exports.updateStack = updateStack; -function getStack(cfn, stackNameOrId) { - var _a; - return __awaiter(this, void 0, void 0, function* () { - try { - const stacks = yield (0, utils_1.withRetry)(() => cfn.send(new client_cloudformation_1.DescribeStacksCommand({ - StackName: stackNameOrId - }))); - if ((_a = stacks.Stacks) === null || _a === void 0 ? void 0 : _a[0]) { - return stacks.Stacks[0]; - } - throw new Error(`Stack ${stackNameOrId} not found, but CloudFormation did not throw an exception. This is an unexpected situation, has the SDK changed unexpectedly?`); - } - catch (e) { - if (e instanceof client_cloudformation_1.CloudFormationServiceException && - e.$metadata.httpStatusCode === 400 && - e.name === 'ValidationError') { - return undefined; - } - throw e; - } - }); -} -function deployStack(cfn, params, changeSetName, noEmptyChangeSet, noExecuteChangeSet, noDeleteFailedChangeSet, changeSetDescription, enableEventStreaming = true) { - return __awaiter(this, void 0, void 0, function* () { - let eventMonitor; - // Initialize event monitoring if enabled with comprehensive error handling - if (enableEventStreaming) { + } + ) + } catch (err) { + return cleanupChangeSet( + cfn, + stack, + params, + noEmptyChangeSet, + noDeleteFailedChangeSet + ) + } + if (noExecuteChangeSet) { + core.debug('Not executing the change set') + return stack.StackId + } + core.debug('Executing CloudFormation change set') + yield (0, utils_1.withRetry)(() => + cfn.send( + new client_cloudformation_1.ExecuteChangeSetCommand({ + ChangeSetName: params.ChangeSetName, + StackName: params.StackName + }) + ) + ) + core.debug('Updating CloudFormation stack') + yield (0, client_cloudformation_1.waitUntilStackUpdateComplete)( + { client: cfn, maxWaitTime: 43200, minDelay: 10 }, + { + StackName: params.StackName + } + ) + return stack.StackId + }) + } + exports.updateStack = updateStack + function getStack(cfn, stackNameOrId) { + var _a + return __awaiter(this, void 0, void 0, function* () { + try { + const stacks = yield (0, utils_1.withRetry)(() => + cfn.send( + new client_cloudformation_1.DescribeStacksCommand({ + StackName: stackNameOrId + }) + ) + ) + if ( + (_a = stacks.Stacks) === null || _a === void 0 ? void 0 : _a[0] + ) { + return stacks.Stacks[0] + } + throw new Error( + `Stack ${stackNameOrId} not found, but CloudFormation did not throw an exception. This is an unexpected situation, has the SDK changed unexpectedly?` + ) + } catch (e) { + if ( + e instanceof + client_cloudformation_1.CloudFormationServiceException && + e.$metadata.httpStatusCode === 400 && + e.name === 'ValidationError' + ) { + return undefined + } + throw e + } + }) + } + function deployStack( + cfn, + params, + changeSetName, + noEmptyChangeSet, + noExecuteChangeSet, + noDeleteFailedChangeSet, + changeSetDescription, + enableEventStreaming = true + ) { + return __awaiter(this, void 0, void 0, function* () { + let eventMonitor + // Initialize event monitoring if enabled with comprehensive error handling + if (enableEventStreaming) { try { - const eventConfig = { + const eventConfig = { + stackName: params.StackName, + client: cfn, + enableColors: true, + pollIntervalMs: 2000, + maxPollIntervalMs: 30000 + } + eventMonitor = new event_streaming_1.EventMonitorImpl(eventConfig) + // Start monitoring before stack operations + // Run concurrently - don't await to avoid blocking deployment + eventMonitor.startMonitoring().catch(err => { + // Log streaming errors as warnings, not errors - requirement 6.2 + const errorMessage = + err instanceof Error ? err.message : String(err) + core.warning( + `Event streaming failed but deployment continues: ${errorMessage}` + ) + // Log additional context for troubleshooting + core.debug( + `Event streaming error context: ${JSON.stringify({ stackName: params.StackName, - client: cfn, - enableColors: true, - pollIntervalMs: 2000, - maxPollIntervalMs: 30000 - }; - eventMonitor = new event_streaming_1.EventMonitorImpl(eventConfig); - // Start monitoring before stack operations - // Run concurrently - don't await to avoid blocking deployment - eventMonitor.startMonitoring().catch(err => { - // Log streaming errors as warnings, not errors - requirement 6.2 - const errorMessage = err instanceof Error ? err.message : String(err); - core.warning(`Event streaming failed but deployment continues: ${errorMessage}`); - // Log additional context for troubleshooting - core.debug(`Event streaming error context: ${JSON.stringify({ - stackName: params.StackName, - error: errorMessage, - timestamp: new Date().toISOString() - })}`); - }); - core.debug('Event streaming started for stack deployment'); - } - catch (err) { - // If event monitor initialization fails, log warning and continue - requirement 6.2 - const errorMessage = err instanceof Error ? err.message : String(err); - core.warning(`Failed to initialize event streaming, deployment continues without streaming: ${errorMessage}`); - // Ensure eventMonitor is undefined so cleanup doesn't fail - eventMonitor = undefined; + error: errorMessage, + timestamp: new Date().toISOString() + })}` + ) + }) + core.debug('Event streaming started for stack deployment') + } catch (err) { + // If event monitor initialization fails, log warning and continue - requirement 6.2 + const errorMessage = + err instanceof Error ? err.message : String(err) + core.warning( + `Failed to initialize event streaming, deployment continues without streaming: ${errorMessage}` + ) + // Ensure eventMonitor is undefined so cleanup doesn't fail + eventMonitor = undefined } - } - try { - const stack = yield getStack(cfn, params.StackName); - let stackId; + } + try { + const stack = yield getStack(cfn, params.StackName) + let stackId if (!stack) { - core.debug(`Creating CloudFormation Stack`); - const stack = yield (0, utils_1.withRetry)(() => cfn.send(new client_cloudformation_1.CreateStackCommand({ - StackName: params.StackName, - TemplateBody: params.TemplateBody, - TemplateURL: params.TemplateURL, - Parameters: params.Parameters, - Capabilities: params.Capabilities, - ResourceTypes: params.ResourceTypes, - RoleARN: params.RoleARN, - RollbackConfiguration: params.RollbackConfiguration, - NotificationARNs: params.NotificationARNs, - DisableRollback: params.DisableRollback, - Tags: params.Tags, - TimeoutInMinutes: params.TimeoutInMinutes, - EnableTerminationProtection: params.EnableTerminationProtection - }))); - yield (0, client_cloudformation_1.waitUntilStackCreateComplete)({ client: cfn, maxWaitTime: 43200, minDelay: 10 }, { - StackName: params.StackName - }); - stackId = stack.StackId; + core.debug(`Creating CloudFormation Stack`) + const stack = yield (0, utils_1.withRetry)(() => + cfn.send( + new client_cloudformation_1.CreateStackCommand( + Object.assign( + Object.assign( + Object.assign( + { StackName: params.StackName }, + params.TemplateBody + ? { TemplateBody: params.TemplateBody } + : {} + ), + params.TemplateURL + ? { TemplateURL: params.TemplateURL } + : {} + ), + { + Parameters: params.Parameters, + Capabilities: params.Capabilities, + ResourceTypes: params.ResourceTypes, + RoleARN: params.RoleARN, + RollbackConfiguration: params.RollbackConfiguration, + NotificationARNs: params.NotificationARNs, + DisableRollback: params.DisableRollback, + Tags: params.Tags, + TimeoutInMinutes: params.TimeoutInMinutes, + EnableTerminationProtection: + params.EnableTerminationProtection + } + ) + ) + ) + ) + yield (0, client_cloudformation_1.waitUntilStackCreateComplete)( + { client: cfn, maxWaitTime: 43200, minDelay: 10 }, + { + StackName: params.StackName + } + ) + stackId = stack.StackId + } else { + stackId = yield updateStack( + cfn, + stack, + Object.assign( + { + ChangeSetName: changeSetName, + Description: changeSetDescription + }, + Object.assign( + Object.assign( + Object.assign( + { StackName: params.StackName }, + params.TemplateBody + ? { TemplateBody: params.TemplateBody } + : {} + ), + params.TemplateURL + ? { TemplateURL: params.TemplateURL } + : {} + ), + { + Parameters: params.Parameters, + Capabilities: params.Capabilities, + ResourceTypes: params.ResourceTypes, + RoleARN: params.RoleARN, + RollbackConfiguration: params.RollbackConfiguration, + NotificationARNs: params.NotificationARNs, + IncludeNestedStacks: params.IncludeNestedStacksChangeSet, + Tags: params.Tags + } + ) + ), + noEmptyChangeSet, + noExecuteChangeSet, + noDeleteFailedChangeSet + ) } - else { - stackId = yield updateStack(cfn, stack, Object.assign({ ChangeSetName: changeSetName, Description: changeSetDescription }, { - StackName: params.StackName, - TemplateBody: params.TemplateBody, - TemplateURL: params.TemplateURL, - Parameters: params.Parameters, - Capabilities: params.Capabilities, - ResourceTypes: params.ResourceTypes, - RoleARN: params.RoleARN, - RollbackConfiguration: params.RollbackConfiguration, - NotificationARNs: params.NotificationARNs, - IncludeNestedStacks: params.IncludeNestedStacksChangeSet, - Tags: params.Tags - }), noEmptyChangeSet, noExecuteChangeSet, noDeleteFailedChangeSet); - } - return stackId; - } - catch (deploymentError) { + return stackId + } catch (deploymentError) { // Preserve original deployment error - this is critical for requirement 6.3 - const originalError = deploymentError instanceof Error + const originalError = + deploymentError instanceof Error ? deploymentError - : new Error(String(deploymentError)); - core.error(`Deployment failed: ${originalError.message}`); + : new Error(String(deploymentError)) + core.error(`Deployment failed: ${originalError.message}`) // Log deployment error context for debugging - core.debug(`Deployment error context: ${JSON.stringify({ + core.debug( + `Deployment error context: ${JSON.stringify({ stackName: params.StackName, error: originalError.message, errorName: originalError.name, timestamp: new Date().toISOString(), eventStreamingEnabled: enableEventStreaming, - eventMonitorActive: (eventMonitor === null || eventMonitor === void 0 ? void 0 : eventMonitor.isMonitoring()) || false - })}`); + eventMonitorActive: + (eventMonitor === null || eventMonitor === void 0 + ? void 0 + : eventMonitor.isMonitoring()) || false + })}` + ) // Re-throw the original deployment error to maintain existing behavior - requirement 6.3 - throw originalError; - } - finally { + throw originalError + } finally { // Always stop event monitoring when deployment completes or fails // This cleanup must not interfere with deployment results - requirement 6.2 if (eventMonitor) { - try { - eventMonitor.stopMonitoring(); - core.debug('Event streaming stopped successfully'); - } - catch (err) { - // Log cleanup errors as warnings, don't affect deployment result - requirement 6.2 - const errorMessage = err instanceof Error ? err.message : String(err); - core.warning(`Error stopping event streaming (deployment result unaffected): ${errorMessage}`); - } + try { + eventMonitor.stopMonitoring() + core.debug('Event streaming stopped successfully') + } catch (err) { + // Log cleanup errors as warnings, don't affect deployment result - requirement 6.2 + const errorMessage = + err instanceof Error ? err.message : String(err) + core.warning( + `Error stopping event streaming (deployment result unaffected): ${errorMessage}` + ) + } } - } - }); -} -exports.deployStack = deployStack; -function getStackOutputs(cfn, stackId) { - return __awaiter(this, void 0, void 0, function* () { - const outputs = new Map(); - const stack = yield getStack(cfn, stackId); - if (stack && stack.Outputs) { + } + }) + } + exports.deployStack = deployStack + function getStackOutputs(cfn, stackId) { + return __awaiter(this, void 0, void 0, function* () { + const outputs = new Map() + const stack = yield getStack(cfn, stackId) + if (stack && stack.Outputs) { for (const output of stack.Outputs) { - if (output.OutputKey && output.OutputValue) { - outputs.set(output.OutputKey, output.OutputValue); - } + if (output.OutputKey && output.OutputValue) { + outputs.set(output.OutputKey, output.OutputValue) + } } - } - return outputs; - }); -} -exports.getStackOutputs = getStackOutputs; - - -/***/ }), - -/***/ 65195: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + } + return outputs + }) + } + exports.getStackOutputs = getStackOutputs -"use strict"; + /***/ + }, -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.EventFormatterImpl = exports.EventMonitorImpl = exports.EventPollerImpl = exports.ErrorExtractorImpl = exports.ColorFormatterImpl = exports.SUCCESS_STATUS_PATTERNS = exports.ERROR_STATUS_PATTERNS = exports.TERMINAL_STACK_STATES = exports.STATUS_COLORS = exports.EventColor = void 0; -const client_cloudformation_1 = __nccwpck_require__(15650); -const client_marketplace_catalog_1 = __nccwpck_require__(87560); -const core = __importStar(__nccwpck_require__(42186)); -/** - * ANSI color codes for event formatting - */ -var EventColor; -(function (EventColor) { - EventColor["SUCCESS"] = "\u001B[32m"; - EventColor["WARNING"] = "\u001B[33m"; - EventColor["ERROR"] = "\u001B[31m"; - EventColor["INFO"] = "\u001B[34m"; - EventColor["RESET"] = "\u001B[0m"; // Reset -})(EventColor = exports.EventColor || (exports.EventColor = {})); -/** - * Mapping of CloudFormation resource statuses to colors - */ -exports.STATUS_COLORS = { - // Success states (Green) - CREATE_COMPLETE: EventColor.SUCCESS, - UPDATE_COMPLETE: EventColor.SUCCESS, - DELETE_COMPLETE: EventColor.SUCCESS, - CREATE_IN_PROGRESS: EventColor.SUCCESS, - UPDATE_IN_PROGRESS: EventColor.SUCCESS, - // Warning states (Yellow) - UPDATE_ROLLBACK_IN_PROGRESS: EventColor.WARNING, - UPDATE_ROLLBACK_COMPLETE: EventColor.WARNING, - CREATE_ROLLBACK_IN_PROGRESS: EventColor.WARNING, - // Error states (Red) - CREATE_FAILED: EventColor.ERROR, - UPDATE_FAILED: EventColor.ERROR, - DELETE_FAILED: EventColor.ERROR, - UPDATE_ROLLBACK_FAILED: EventColor.ERROR, - CREATE_ROLLBACK_FAILED: EventColor.ERROR -}; -/** - * Terminal stack states that indicate deployment completion - */ -exports.TERMINAL_STACK_STATES = [ - 'CREATE_COMPLETE', - 'UPDATE_COMPLETE', - 'DELETE_COMPLETE', - 'CREATE_FAILED', - 'UPDATE_FAILED', - 'DELETE_FAILED', - 'UPDATE_ROLLBACK_COMPLETE', - 'UPDATE_ROLLBACK_FAILED', - 'CREATE_ROLLBACK_COMPLETE', - 'CREATE_ROLLBACK_FAILED' -]; -/** - * Error status patterns for identifying error events - */ -exports.ERROR_STATUS_PATTERNS = ['FAILED', 'ROLLBACK']; -/** - * Success status patterns for identifying successful events - */ -exports.SUCCESS_STATUS_PATTERNS = ['COMPLETE', 'IN_PROGRESS']; -/** - * ColorFormatter implementation with ANSI color code support - */ -class ColorFormatterImpl { - constructor(enableColors = true) { - this.enableColors = enableColors; - } - /** - * Apply color based on resource status - * Maps CloudFormation resource statuses to appropriate colors - */ - colorizeStatus(status, text) { - if (!this.enableColors) { - return text; - } - // Get color for the status, default to INFO if not found - const color = exports.STATUS_COLORS[status] || EventColor.INFO; - return `${color}${text}${EventColor.RESET}`; - } - /** - * Apply blue color for timestamps - */ - colorizeTimestamp(timestamp) { - if (!this.enableColors) { - return timestamp; - } - return `${EventColor.INFO}${timestamp}${EventColor.RESET}`; - } - /** - * Apply blue color for resource information (type and ID) - */ - colorizeResource(resourceType, resourceId) { - if (!this.enableColors) { - return `${resourceType}/${resourceId}`; - } - return `${EventColor.INFO}${resourceType}/${resourceId}${EventColor.RESET}`; - } - /** - * Apply bold red formatting for errors - * Uses ANSI bold (1m) combined with red color - */ - colorizeError(message) { - if (!this.enableColors) { - return message; - } - // Bold red: \x1b[1m for bold, \x1b[31m for red - return `\x1b[1m${EventColor.ERROR}${message}${EventColor.RESET}`; - } - /** - * Check if colors are enabled - */ - isColorsEnabled() { - return this.enableColors; - } - /** - * Enable or disable colors - */ - setColorsEnabled(enabled) { - this.enableColors = enabled; - } -} -exports.ColorFormatterImpl = ColorFormatterImpl; -/** - * ErrorExtractor implementation for extracting error information from stack events - */ -class ErrorExtractorImpl { - constructor(colorFormatter) { - this.colorFormatter = colorFormatter; - } - /** - * Extract error information from a stack event - * Returns null if the event is not an error event - */ - extractError(event) { - if (!this.isErrorEvent(event)) { - return null; - } - // Extract required fields, providing defaults for missing data - const message = event.ResourceStatusReason || 'Unknown error occurred'; - const resourceId = event.LogicalResourceId || 'Unknown resource'; - const resourceType = event.ResourceType || 'Unknown type'; - const timestamp = event.Timestamp || new Date(); - return { + /***/ 65195: /***/ function ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) { + 'use strict' + + var __createBinding = + (this && this.__createBinding) || + (Object.create + ? function (o, m, k, k2) { + if (k2 === undefined) k2 = k + var desc = Object.getOwnPropertyDescriptor(m, k) + if ( + !desc || + ('get' in desc + ? !m.__esModule + : desc.writable || desc.configurable) + ) { + desc = { + enumerable: true, + get: function () { + return m[k] + } + } + } + Object.defineProperty(o, k2, desc) + } + : function (o, m, k, k2) { + if (k2 === undefined) k2 = k + o[k2] = m[k] + }) + var __setModuleDefault = + (this && this.__setModuleDefault) || + (Object.create + ? function (o, v) { + Object.defineProperty(o, 'default', { + enumerable: true, + value: v + }) + } + : function (o, v) { + o['default'] = v + }) + var __importStar = + (this && this.__importStar) || + function (mod) { + if (mod && mod.__esModule) return mod + var result = {} + if (mod != null) + for (var k in mod) + if ( + k !== 'default' && + Object.prototype.hasOwnProperty.call(mod, k) + ) + __createBinding(result, mod, k) + __setModuleDefault(result, mod) + return result + } + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step( + (generator = generator.apply(thisArg, _arguments || [])).next() + ) + }) + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.EventFormatterImpl = + exports.EventMonitorImpl = + exports.EventPollerImpl = + exports.ErrorExtractorImpl = + exports.ColorFormatterImpl = + exports.SUCCESS_STATUS_PATTERNS = + exports.ERROR_STATUS_PATTERNS = + exports.TERMINAL_STACK_STATES = + exports.STATUS_COLORS = + exports.EventColor = + void 0 + const client_cloudformation_1 = __nccwpck_require__(15650) + const client_marketplace_catalog_1 = __nccwpck_require__(87560) + const core = __importStar(__nccwpck_require__(42186)) + /** + * ANSI color codes for event formatting + */ + var EventColor + ;(function (EventColor) { + EventColor['SUCCESS'] = '\u001B[32m' + EventColor['WARNING'] = '\u001B[33m' + EventColor['ERROR'] = '\u001B[31m' + EventColor['INFO'] = '\u001B[34m' + EventColor['RESET'] = '\u001B[0m' // Reset + })((EventColor = exports.EventColor || (exports.EventColor = {}))) + /** + * Mapping of CloudFormation resource statuses to colors + */ + exports.STATUS_COLORS = { + // Success states (Green) + CREATE_COMPLETE: EventColor.SUCCESS, + UPDATE_COMPLETE: EventColor.SUCCESS, + DELETE_COMPLETE: EventColor.SUCCESS, + CREATE_IN_PROGRESS: EventColor.SUCCESS, + UPDATE_IN_PROGRESS: EventColor.SUCCESS, + // Warning states (Yellow) + UPDATE_ROLLBACK_IN_PROGRESS: EventColor.WARNING, + UPDATE_ROLLBACK_COMPLETE: EventColor.WARNING, + CREATE_ROLLBACK_IN_PROGRESS: EventColor.WARNING, + // Error states (Red) + CREATE_FAILED: EventColor.ERROR, + UPDATE_FAILED: EventColor.ERROR, + DELETE_FAILED: EventColor.ERROR, + UPDATE_ROLLBACK_FAILED: EventColor.ERROR, + CREATE_ROLLBACK_FAILED: EventColor.ERROR + } + /** + * Terminal stack states that indicate deployment completion + */ + exports.TERMINAL_STACK_STATES = [ + 'CREATE_COMPLETE', + 'UPDATE_COMPLETE', + 'DELETE_COMPLETE', + 'CREATE_FAILED', + 'UPDATE_FAILED', + 'DELETE_FAILED', + 'UPDATE_ROLLBACK_COMPLETE', + 'UPDATE_ROLLBACK_FAILED', + 'CREATE_ROLLBACK_COMPLETE', + 'CREATE_ROLLBACK_FAILED' + ] + /** + * Error status patterns for identifying error events + */ + exports.ERROR_STATUS_PATTERNS = ['FAILED', 'ROLLBACK'] + /** + * Success status patterns for identifying successful events + */ + exports.SUCCESS_STATUS_PATTERNS = ['COMPLETE', 'IN_PROGRESS'] + /** + * ColorFormatter implementation with ANSI color code support + */ + class ColorFormatterImpl { + constructor(enableColors = true) { + this.enableColors = enableColors + } + /** + * Apply color based on resource status + * Maps CloudFormation resource statuses to appropriate colors + */ + colorizeStatus(status, text) { + if (!this.enableColors) { + return text + } + // Get color for the status, default to INFO if not found + const color = exports.STATUS_COLORS[status] || EventColor.INFO + return `${color}${text}${EventColor.RESET}` + } + /** + * Apply blue color for timestamps + */ + colorizeTimestamp(timestamp) { + if (!this.enableColors) { + return timestamp + } + return `${EventColor.INFO}${timestamp}${EventColor.RESET}` + } + /** + * Apply blue color for resource information (type and ID) + */ + colorizeResource(resourceType, resourceId) { + if (!this.enableColors) { + return `${resourceType}/${resourceId}` + } + return `${EventColor.INFO}${resourceType}/${resourceId}${EventColor.RESET}` + } + /** + * Apply bold red formatting for errors + * Uses ANSI bold (1m) combined with red color + */ + colorizeError(message) { + if (!this.enableColors) { + return message + } + // Bold red: \x1b[1m for bold, \x1b[31m for red + return `\x1b[1m${EventColor.ERROR}${message}${EventColor.RESET}` + } + /** + * Check if colors are enabled + */ + isColorsEnabled() { + return this.enableColors + } + /** + * Enable or disable colors + */ + setColorsEnabled(enabled) { + this.enableColors = enabled + } + } + exports.ColorFormatterImpl = ColorFormatterImpl + /** + * ErrorExtractor implementation for extracting error information from stack events + */ + class ErrorExtractorImpl { + constructor(colorFormatter) { + this.colorFormatter = colorFormatter + } + /** + * Extract error information from a stack event + * Returns null if the event is not an error event + */ + extractError(event) { + if (!this.isErrorEvent(event)) { + return null + } + // Extract required fields, providing defaults for missing data + const message = event.ResourceStatusReason || 'Unknown error occurred' + const resourceId = event.LogicalResourceId || 'Unknown resource' + const resourceType = event.ResourceType || 'Unknown type' + const timestamp = event.Timestamp || new Date() + return { message, resourceId, resourceType, timestamp - }; - } - /** - * Check if an event represents an error condition - * Identifies events with FAILED or ROLLBACK status patterns - */ - isErrorEvent(event) { - if (!event.ResourceStatus) { - return false; - } - const status = event.ResourceStatus.toUpperCase(); - // Check for error patterns in the status - return exports.ERROR_STATUS_PATTERNS.some(pattern => status.includes(pattern)); - } - /** - * Format error message for display with bold red formatting - * Handles message truncation and provides complete error details - */ - formatErrorMessage(error) { - // Format timestamp in ISO 8601 format, handle invalid dates - let timestamp; - try { - timestamp = error.timestamp.toISOString(); + } + } + /** + * Check if an event represents an error condition + * Identifies events with FAILED or ROLLBACK status patterns + */ + isErrorEvent(event) { + if (!event.ResourceStatus) { + return false + } + const status = event.ResourceStatus.toUpperCase() + // Check for error patterns in the status + return exports.ERROR_STATUS_PATTERNS.some(pattern => + status.includes(pattern) + ) } - catch (e) { + /** + * Format error message for display with bold red formatting + * Handles message truncation and provides complete error details + */ + formatErrorMessage(error) { + // Format timestamp in ISO 8601 format, handle invalid dates + let timestamp + try { + timestamp = error.timestamp.toISOString() + } catch (e) { // Handle invalid dates by using current time - timestamp = new Date().toISOString(); - core.debug(`Invalid timestamp in error, using current time: ${e}`); - } - // Get the complete error message - const fullMessage = this.getCompleteErrorMessage(error.message); - // Apply bold red formatting to the error message - const formattedMessage = this.colorFormatter.colorizeError(fullMessage); - // Combine all parts with proper spacing and structure - const colorizedTimestamp = this.colorFormatter.colorizeTimestamp(timestamp); - const colorizedResource = this.colorFormatter.colorizeResource(error.resourceType, error.resourceId); - return `${colorizedTimestamp} ${colorizedResource} ERROR: ${formattedMessage}`; - } - /** - * Get complete error message, handling truncation - * If message appears truncated, attempts to provide full details - */ - getCompleteErrorMessage(message) { - // Check if message appears truncated (common indicators) - const truncationIndicators = ['...', '(truncated)', '[truncated]']; - const isTruncated = truncationIndicators.some(indicator => message.includes(indicator)); - if (isTruncated) { + timestamp = new Date().toISOString() + core.debug(`Invalid timestamp in error, using current time: ${e}`) + } + // Get the complete error message + const fullMessage = this.getCompleteErrorMessage(error.message) + // Apply bold red formatting to the error message + const formattedMessage = + this.colorFormatter.colorizeError(fullMessage) + // Combine all parts with proper spacing and structure + const colorizedTimestamp = + this.colorFormatter.colorizeTimestamp(timestamp) + const colorizedResource = this.colorFormatter.colorizeResource( + error.resourceType, + error.resourceId + ) + return `${colorizedTimestamp} ${colorizedResource} ERROR: ${formattedMessage}` + } + /** + * Get complete error message, handling truncation + * If message appears truncated, attempts to provide full details + */ + getCompleteErrorMessage(message) { + // Check if message appears truncated (common indicators) + const truncationIndicators = ['...', '(truncated)', '[truncated]'] + const isTruncated = truncationIndicators.some(indicator => + message.includes(indicator) + ) + if (isTruncated) { // For now, return the message as-is since we don't have access to // additional event details in this context. In a real implementation, // this could fetch additional details from CloudFormation API - core.debug(`Detected truncated error message: ${message}`); + core.debug(`Detected truncated error message: ${message}`) + } + return message } - return message; - } - /** - * Format multiple error messages with clear separation - * Ensures each error is displayed distinctly - */ - formatMultipleErrors(errors) { - if (errors.length === 0) { - return ''; - } - if (errors.length === 1) { - return this.formatErrorMessage(errors[0]); - } - // Format multiple errors with clear separation - const formattedErrors = errors.map((error, index) => { - const errorMessage = this.formatErrorMessage(error); - return `[${index + 1}] ${errorMessage}`; - }); - return formattedErrors.join('\n'); - } - /** - * Extract all errors from a batch of events - * Returns array of ExtractedError objects for all error events - */ - extractAllErrors(events) { - const errors = []; - for (const event of events) { - const error = this.extractError(event); + /** + * Format multiple error messages with clear separation + * Ensures each error is displayed distinctly + */ + formatMultipleErrors(errors) { + if (errors.length === 0) { + return '' + } + if (errors.length === 1) { + return this.formatErrorMessage(errors[0]) + } + // Format multiple errors with clear separation + const formattedErrors = errors.map((error, index) => { + const errorMessage = this.formatErrorMessage(error) + return `[${index + 1}] ${errorMessage}` + }) + return formattedErrors.join('\n') + } + /** + * Extract all errors from a batch of events + * Returns array of ExtractedError objects for all error events + */ + extractAllErrors(events) { + const errors = [] + for (const event of events) { + const error = this.extractError(event) if (error) { - errors.push(error); + errors.push(error) } + } + return errors } - return errors; - } -} -exports.ErrorExtractorImpl = ErrorExtractorImpl; -/** - * EventPoller implementation with exponential backoff and rate limiting - */ -class EventPollerImpl { - constructor(client, stackName, initialIntervalMs = 2000, maxIntervalMs = 30000) { - this.seenEventIds = new Set(); - this.client = client; - this.stackName = stackName; - this.initialIntervalMs = initialIntervalMs; - this.maxIntervalMs = maxIntervalMs; - this.currentIntervalMs = initialIntervalMs; - // Track when this deployment session started to filter out old events - this.deploymentStartTime = new Date(); - } - /** - * Poll for new events since last check - * Implements exponential backoff and handles API throttling - * Includes comprehensive error handling for network issues and API failures - */ - pollEvents() { - return __awaiter(this, void 0, void 0, function* () { + } + exports.ErrorExtractorImpl = ErrorExtractorImpl + /** + * EventPoller implementation with exponential backoff and rate limiting + */ + class EventPollerImpl { + constructor( + client, + stackName, + initialIntervalMs = 2000, + maxIntervalMs = 30000 + ) { + this.seenEventIds = new Set() + this.client = client + this.stackName = stackName + this.initialIntervalMs = initialIntervalMs + this.maxIntervalMs = maxIntervalMs + this.currentIntervalMs = initialIntervalMs + // Track when this deployment session started to filter out old events + this.deploymentStartTime = new Date() + } + /** + * Poll for new events since last check + * Implements exponential backoff and handles API throttling + * Includes comprehensive error handling for network issues and API failures + */ + pollEvents() { + return __awaiter(this, void 0, void 0, function* () { try { - const command = new client_cloudformation_1.DescribeStackEventsCommand({ - StackName: this.stackName - }); - const response = yield this.client.send(command); - const allEvents = response.StackEvents || []; - // Filter for new events only - const newEvents = this.filterNewEvents(allEvents); - if (newEvents.length > 0) { - // Reset interval when new events are found - this.resetInterval(); - // Update tracking - this.updateEventTracking(newEvents); - core.debug(`Found ${newEvents.length} new stack events`); - } - else { - // Increase interval when no new events (exponential backoff) - this.increaseInterval(); - core.debug(`No new events found, current interval: ${this.currentIntervalMs}ms`); - } - return newEvents; - } - catch (error) { - // Handle specific AWS API errors - if (error instanceof client_marketplace_catalog_1.ThrottlingException) { - core.warning(`CloudFormation API throttling detected, backing off...`); - // Double the interval on throttling - this.currentIntervalMs = Math.min(this.currentIntervalMs * 2, this.maxIntervalMs); - throw error; - } - // Handle credential/permission errors first (most specific) - if (this.isCredentialError(error)) { - core.warning(`Credential or permission error during event polling: ${error instanceof Error ? error.message : String(error)}`); - throw error; - } - // Handle timeout errors (before network errors since ETIMEDOUT can be both) - if (this.isTimeoutError(error)) { - core.warning(`Timeout error during event polling: ${error instanceof Error ? error.message : String(error)}`); - // Increase interval on timeout to reduce load - this.increaseInterval(); - throw error; - } - // Handle network connectivity issues - if (this.isNetworkError(error)) { - core.warning(`Network connectivity issue during event polling: ${error instanceof Error ? error.message : String(error)}`); - // Increase interval for network issues to avoid overwhelming failing connections - this.increaseInterval(); - throw error; - } - // Handle AWS service errors (non-throttling) - if (this.isAWSServiceError(error)) { - // Special handling for "Stack does not exist" during initial polling - if (error instanceof Error && - error.message.includes('does not exist')) { - core.debug(`Stack not yet created during event polling: ${error.message}`); - // Don't throw for stack not existing - this is expected during initial deployment - return []; - } - core.warning(`AWS service error during event polling: ${error instanceof Error ? error.message : String(error)}`); - throw error; + const command = + new client_cloudformation_1.DescribeStackEventsCommand({ + StackName: this.stackName + }) + const response = yield this.client.send(command) + const allEvents = response.StackEvents || [] + // Filter for new events only + const newEvents = this.filterNewEvents(allEvents) + if (newEvents.length > 0) { + // Reset interval when new events are found + this.resetInterval() + // Update tracking + this.updateEventTracking(newEvents) + core.debug(`Found ${newEvents.length} new stack events`) + } else { + // Increase interval when no new events (exponential backoff) + this.increaseInterval() + core.debug( + `No new events found, current interval: ${this.currentIntervalMs}ms` + ) + } + return newEvents + } catch (error) { + // Handle specific AWS API errors + if ( + error instanceof + client_marketplace_catalog_1.ThrottlingException + ) { + core.warning( + `CloudFormation API throttling detected, backing off...` + ) + // Double the interval on throttling + this.currentIntervalMs = Math.min( + this.currentIntervalMs * 2, + this.maxIntervalMs + ) + throw error + } + // Handle credential/permission errors first (most specific) + if (this.isCredentialError(error)) { + core.warning( + `Credential or permission error during event polling: ${error instanceof Error ? error.message : String(error)}` + ) + throw error + } + // Handle timeout errors (before network errors since ETIMEDOUT can be both) + if (this.isTimeoutError(error)) { + core.warning( + `Timeout error during event polling: ${error instanceof Error ? error.message : String(error)}` + ) + // Increase interval on timeout to reduce load + this.increaseInterval() + throw error + } + // Handle network connectivity issues + if (this.isNetworkError(error)) { + core.warning( + `Network connectivity issue during event polling: ${error instanceof Error ? error.message : String(error)}` + ) + // Increase interval for network issues to avoid overwhelming failing connections + this.increaseInterval() + throw error + } + // Handle AWS service errors (non-throttling) + if (this.isAWSServiceError(error)) { + // Special handling for "Stack does not exist" during initial polling + if ( + error instanceof Error && + error.message.includes('does not exist') + ) { + core.debug( + `Stack not yet created during event polling: ${error.message}` + ) + // Don't throw for stack not existing - this is expected during initial deployment + return [] } - // Log unknown errors as warnings and re-throw - core.warning(`Unknown error during event polling: ${error instanceof Error ? error.message : String(error)}`); - throw error; + core.warning( + `AWS service error during event polling: ${error instanceof Error ? error.message : String(error)}` + ) + throw error + } + // Log unknown errors as warnings and re-throw + core.warning( + `Unknown error during event polling: ${error instanceof Error ? error.message : String(error)}` + ) + throw error } - }); - } - /** - * Check if error is a network connectivity issue - */ - isNetworkError(error) { - if (!(error instanceof Error)) - return false; - const networkErrorPatterns = [ + }) + } + /** + * Check if error is a network connectivity issue + */ + isNetworkError(error) { + if (!(error instanceof Error)) return false + const networkErrorPatterns = [ 'ECONNREFUSED', 'ENOTFOUND', 'ECONNRESET', @@ -638,68985 +929,89624 @@ class EventPollerImpl { 'socket hang up', 'network timeout', 'connection timeout' - ]; - const errorMessage = error.message.toLowerCase(); - return networkErrorPatterns.some(pattern => errorMessage.includes(pattern.toLowerCase())); - } - /** - * Check if error is an AWS service error (non-throttling) - */ - isAWSServiceError(error) { - if (!(error instanceof Error)) - return false; - // Check for AWS SDK error properties - const awsError = error; - if (awsError.$metadata && awsError.$fault) { - return true; - } - // Check for common AWS error patterns - const awsErrorPatterns = [ + ] + const errorMessage = error.message.toLowerCase() + return networkErrorPatterns.some(pattern => + errorMessage.includes(pattern.toLowerCase()) + ) + } + /** + * Check if error is an AWS service error (non-throttling) + */ + isAWSServiceError(error) { + if (!(error instanceof Error)) return false + // Check for AWS SDK error properties + const awsError = error + if (awsError.$metadata && awsError.$fault) { + return true + } + // Check for common AWS error patterns + const awsErrorPatterns = [ 'ValidationError', 'AccessDenied', 'InvalidParameterValue', 'ResourceNotFound', 'ServiceUnavailable', 'InternalFailure' - ]; - return awsErrorPatterns.some(pattern => error.message.includes(pattern) || error.name === pattern); - } - /** - * Check if error is a timeout error - */ - isTimeoutError(error) { - if (!(error instanceof Error)) - return false; - const timeoutPatterns = [ + ] + return awsErrorPatterns.some( + pattern => error.message.includes(pattern) || error.name === pattern + ) + } + /** + * Check if error is a timeout error + */ + isTimeoutError(error) { + if (!(error instanceof Error)) return false + const timeoutPatterns = [ 'timeout', 'ETIMEDOUT', 'TimeoutError', 'RequestTimeout' - ]; - const errorMessage = error.message.toLowerCase(); - const errorName = error.name.toLowerCase(); - return timeoutPatterns.some(pattern => errorMessage.includes(pattern.toLowerCase()) || - errorName.includes(pattern.toLowerCase())); - } - /** - * Check if error is a credential or permission error - */ - isCredentialError(error) { - if (!(error instanceof Error)) - return false; - const credentialPatterns = [ - 'AccessDenied', - 'Forbidden', - 'UnauthorizedOperation', + ] + const errorMessage = error.message.toLowerCase() + const errorName = error.name.toLowerCase() + return timeoutPatterns.some( + pattern => + errorMessage.includes(pattern.toLowerCase()) || + errorName.includes(pattern.toLowerCase()) + ) + } + /** + * Check if error is a credential or permission error + */ + isCredentialError(error) { + if (!(error instanceof Error)) return false + const credentialPatterns = [ + 'AccessDenied', + 'Forbidden', + 'UnauthorizedOperation', 'InvalidUserID.NotFound', 'TokenRefreshRequired', 'CredentialsError', 'SignatureDoesNotMatch' - ]; - return credentialPatterns.some(pattern => error.message.includes(pattern) || error.name.includes(pattern)); - } - /** - * Get current polling interval in milliseconds - */ - getCurrentInterval() { - return this.currentIntervalMs; - } - /** - * Reset polling interval to initial value (called when new events found) - */ - resetInterval() { - this.currentIntervalMs = this.initialIntervalMs; - } - /** - * Filter events to only return new ones since last poll - * Only includes events from the current deployment session - */ - filterNewEvents(allEvents) { - const newEvents = []; - for (const event of allEvents) { + ] + return credentialPatterns.some( + pattern => + error.message.includes(pattern) || error.name.includes(pattern) + ) + } + /** + * Get current polling interval in milliseconds + */ + getCurrentInterval() { + return this.currentIntervalMs + } + /** + * Reset polling interval to initial value (called when new events found) + */ + resetInterval() { + this.currentIntervalMs = this.initialIntervalMs + } + /** + * Filter events to only return new ones since last poll + * Only includes events from the current deployment session + */ + filterNewEvents(allEvents) { + const newEvents = [] + for (const event of allEvents) { // Skip events that occurred before this deployment started // Add a small buffer (30 seconds) to account for clock skew - const deploymentStartWithBuffer = new Date(this.deploymentStartTime.getTime() - 30000); - if (event.Timestamp && event.Timestamp < deploymentStartWithBuffer) { - continue; + const deploymentStartWithBuffer = new Date( + this.deploymentStartTime.getTime() - 30000 + ) + if ( + event.Timestamp && + event.Timestamp < deploymentStartWithBuffer + ) { + continue } // Create unique event ID from timestamp + resource + status - const eventId = this.createEventId(event); + const eventId = this.createEventId(event) if (!this.seenEventIds.has(eventId)) { - // Check if event is newer than our last seen timestamp - if (!this.lastEventTimestamp || - (event.Timestamp && event.Timestamp > this.lastEventTimestamp)) { - newEvents.push(event); - } + // Check if event is newer than our last seen timestamp + if ( + !this.lastEventTimestamp || + (event.Timestamp && event.Timestamp > this.lastEventTimestamp) + ) { + newEvents.push(event) + } } + } + // Sort by timestamp (oldest first) for proper display order + return newEvents.sort((a, b) => { + if (!a.Timestamp || !b.Timestamp) return 0 + return a.Timestamp.getTime() - b.Timestamp.getTime() + }) } - // Sort by timestamp (oldest first) for proper display order - return newEvents.sort((a, b) => { - if (!a.Timestamp || !b.Timestamp) - return 0; - return a.Timestamp.getTime() - b.Timestamp.getTime(); - }); - } - /** - * Update internal tracking after processing new events - */ - updateEventTracking(newEvents) { - for (const event of newEvents) { - const eventId = this.createEventId(event); - this.seenEventIds.add(eventId); + /** + * Update internal tracking after processing new events + */ + updateEventTracking(newEvents) { + for (const event of newEvents) { + const eventId = this.createEventId(event) + this.seenEventIds.add(eventId) // Update last seen timestamp - if (event.Timestamp && - (!this.lastEventTimestamp || event.Timestamp > this.lastEventTimestamp)) { - this.lastEventTimestamp = event.Timestamp; + if ( + event.Timestamp && + (!this.lastEventTimestamp || + event.Timestamp > this.lastEventTimestamp) + ) { + this.lastEventTimestamp = event.Timestamp } + } } - } - /** - * Create unique identifier for an event - */ - createEventId(event) { - var _a; - return `${(_a = event.Timestamp) === null || _a === void 0 ? void 0 : _a.getTime()}-${event.LogicalResourceId}-${event.ResourceStatus}`; - } - /** - * Increase polling interval using exponential backoff - */ - increaseInterval() { - this.currentIntervalMs = Math.min(this.currentIntervalMs * 1.5, this.maxIntervalMs); - } - /** - * Set deployment start time (for testing purposes) - */ - setDeploymentStartTime(startTime) { - this.deploymentStartTime = startTime; - } - /** - * Get deployment start time (for testing purposes) - */ - getDeploymentStartTime() { - return this.deploymentStartTime; - } -} -exports.EventPollerImpl = EventPollerImpl; -/** - * EventMonitor implementation - main orchestrator for event streaming functionality - * Manages the lifecycle of event monitoring with concurrent polling and display - */ -class EventMonitorImpl { - constructor(config) { - this.isActive = false; - this.stopRequested = false; - this.eventCount = 0; - this.errorCount = 0; - this.summaryDisplayed = false; - this.config = config; - // Initialize components - const colorFormatter = new ColorFormatterImpl(config.enableColors); - const errorExtractor = new ErrorExtractorImpl(colorFormatter); - this.poller = new EventPollerImpl(config.client, config.stackName, config.pollIntervalMs, config.maxPollIntervalMs); - this.formatter = new EventFormatterImpl(colorFormatter, errorExtractor); - } - /** - * Start monitoring stack events - * Begins concurrent polling and event display with comprehensive error handling - */ - startMonitoring() { - return __awaiter(this, void 0, void 0, function* () { + /** + * Create unique identifier for an event + */ + createEventId(event) { + var _a + return `${(_a = event.Timestamp) === null || _a === void 0 ? void 0 : _a.getTime()}-${event.LogicalResourceId}-${event.ResourceStatus}` + } + /** + * Increase polling interval using exponential backoff + */ + increaseInterval() { + this.currentIntervalMs = Math.min( + this.currentIntervalMs * 1.5, + this.maxIntervalMs + ) + } + /** + * Set deployment start time (for testing purposes) + */ + setDeploymentStartTime(startTime) { + this.deploymentStartTime = startTime + } + /** + * Get deployment start time (for testing purposes) + */ + getDeploymentStartTime() { + return this.deploymentStartTime + } + } + exports.EventPollerImpl = EventPollerImpl + /** + * EventMonitor implementation - main orchestrator for event streaming functionality + * Manages the lifecycle of event monitoring with concurrent polling and display + */ + class EventMonitorImpl { + constructor(config) { + this.isActive = false + this.stopRequested = false + this.eventCount = 0 + this.errorCount = 0 + this.summaryDisplayed = false + this.config = config + // Initialize components + const colorFormatter = new ColorFormatterImpl(config.enableColors) + const errorExtractor = new ErrorExtractorImpl(colorFormatter) + this.poller = new EventPollerImpl( + config.client, + config.stackName, + config.pollIntervalMs, + config.maxPollIntervalMs + ) + this.formatter = new EventFormatterImpl( + colorFormatter, + errorExtractor + ) + } + /** + * Start monitoring stack events + * Begins concurrent polling and event display with comprehensive error handling + */ + startMonitoring() { + return __awaiter(this, void 0, void 0, function* () { if (this.isActive) { - core.debug('Event monitoring already active'); - return; - } - this.isActive = true; - this.stopRequested = false; - this.startTime = new Date(); - this.eventCount = 0; - this.errorCount = 0; - this.summaryDisplayed = false; - core.info(`Starting event monitoring for stack: ${this.config.stackName}`); + core.debug('Event monitoring already active') + return + } + this.isActive = true + this.stopRequested = false + this.startTime = new Date() + this.eventCount = 0 + this.errorCount = 0 + this.summaryDisplayed = false + core.info( + `Starting event monitoring for stack: ${this.config.stackName}` + ) // Start the polling loop with comprehensive error handling - this.pollingPromise = this.pollLoop(); + this.pollingPromise = this.pollLoop() try { - yield this.pollingPromise; - } - catch (error) { - // Log polling errors but don't throw - event streaming should not break deployment - const errorMessage = error instanceof Error ? error.message : String(error); - core.warning(`Event monitoring encountered an error but deployment will continue: ${errorMessage}`); - // Log additional context for debugging - core.debug(`Event monitoring error details: ${JSON.stringify({ - error: errorMessage, - stackName: this.config.stackName, - eventCount: this.eventCount, - errorCount: this.errorCount, - duration: this.startTime - ? Date.now() - this.startTime.getTime() - : undefined - })}`); - } - finally { - this.isActive = false; - core.debug('Event monitoring has been stopped'); - } - }); - } - /** - * Stop monitoring (called when stack reaches terminal state) - */ - stopMonitoring() { - if (!this.isActive) { - return; - } - core.debug('Stopping event monitoring'); - this.stopRequested = true; - this.isActive = false; - // Only display final summary if we haven't already displayed it - // This prevents duplicate summaries when called multiple times - if (!this.summaryDisplayed) { - this.displayFinalSummary(); - this.summaryDisplayed = true; + yield this.pollingPromise + } catch (error) { + // Log polling errors but don't throw - event streaming should not break deployment + const errorMessage = + error instanceof Error ? error.message : String(error) + core.warning( + `Event monitoring encountered an error but deployment will continue: ${errorMessage}` + ) + // Log additional context for debugging + core.debug( + `Event monitoring error details: ${JSON.stringify({ + error: errorMessage, + stackName: this.config.stackName, + eventCount: this.eventCount, + errorCount: this.errorCount, + duration: this.startTime + ? Date.now() - this.startTime.getTime() + : undefined + })}` + ) + } finally { + this.isActive = false + core.debug('Event monitoring has been stopped') + } + }) } - } - /** - * Check if monitoring is active - */ - isMonitoring() { - return this.isActive; - } - /** - * Main polling loop that runs concurrently with deployment - * Implements the 5-second timeliness requirement with comprehensive error handling - */ - pollLoop() { - return __awaiter(this, void 0, void 0, function* () { - let consecutiveErrors = 0; - const maxConsecutiveErrors = 5; - const errorBackoffMs = 5000; - let noEventsCount = 0; - const maxNoEventsBeforeStop = 10; // Stop after 10 polls with no events (20 seconds) + /** + * Stop monitoring (called when stack reaches terminal state) + */ + stopMonitoring() { + if (!this.isActive) { + return + } + core.debug('Stopping event monitoring') + this.stopRequested = true + this.isActive = false + // Only display final summary if we haven't already displayed it + // This prevents duplicate summaries when called multiple times + if (!this.summaryDisplayed) { + this.displayFinalSummary() + this.summaryDisplayed = true + } + } + /** + * Check if monitoring is active + */ + isMonitoring() { + return this.isActive + } + /** + * Main polling loop that runs concurrently with deployment + * Implements the 5-second timeliness requirement with comprehensive error handling + */ + pollLoop() { + return __awaiter(this, void 0, void 0, function* () { + let consecutiveErrors = 0 + const maxConsecutiveErrors = 5 + const errorBackoffMs = 5000 + let noEventsCount = 0 + const maxNoEventsBeforeStop = 10 // Stop after 10 polls with no events (20 seconds) while (this.isActive && !this.stopRequested) { - try { - // Poll for new events - const newEvents = yield this.poller.pollEvents(); - if (newEvents.length > 0) { - // Display events immediately to meet 5-second requirement - yield this.displayEvents(newEvents); - // Update counters - this.eventCount += newEvents.length; - this.errorCount += this.countErrors(newEvents); - noEventsCount = 0; // Reset no-events counter - // Check if stack has reached terminal state - if (this.hasTerminalEvent(newEvents)) { - core.debug('Terminal stack state detected, stopping monitoring'); - this.stopRequested = true; - // Display final summary when terminal state is reached - if (!this.summaryDisplayed) { - this.displayFinalSummary(); - this.summaryDisplayed = true; - } - break; - } - } - else { - noEventsCount++; - // If we haven't seen any events for a while, check if this might be an empty changeset - if (noEventsCount >= maxNoEventsBeforeStop && this.eventCount === 0) { - core.debug('No events detected after extended polling - likely empty changeset'); - this.stopRequested = true; - break; - } - } - // Reset consecutive error count on successful poll - consecutiveErrors = 0; - // Wait for next polling interval if still active - if (this.isActive && !this.stopRequested) { - const interval = this.poller.getCurrentInterval(); - yield this.sleep(interval); + try { + // Poll for new events + const newEvents = yield this.poller.pollEvents() + if (newEvents.length > 0) { + // Display events immediately to meet 5-second requirement + yield this.displayEvents(newEvents) + // Update counters + this.eventCount += newEvents.length + this.errorCount += this.countErrors(newEvents) + noEventsCount = 0 // Reset no-events counter + // Check if stack has reached terminal state + if (this.hasTerminalEvent(newEvents)) { + core.debug( + 'Terminal stack state detected, stopping monitoring' + ) + this.stopRequested = true + // Display final summary when terminal state is reached + if (!this.summaryDisplayed) { + this.displayFinalSummary() + this.summaryDisplayed = true } + break + } + } else { + noEventsCount++ + // If we haven't seen any events for a while, check if this might be an empty changeset + if ( + noEventsCount >= maxNoEventsBeforeStop && + this.eventCount === 0 + ) { + core.debug( + 'No events detected after extended polling - likely empty changeset' + ) + this.stopRequested = true + break + } } - catch (error) { - consecutiveErrors++; - // Handle polling errors gracefully with progressive backoff - if (error instanceof client_marketplace_catalog_1.ThrottlingException) { - core.warning(`CloudFormation API throttling (attempt ${consecutiveErrors}/${maxConsecutiveErrors}), backing off...`); - // Wait longer on throttling with exponential backoff - const backoffTime = Math.min(this.poller.getCurrentInterval() * Math.pow(2, consecutiveErrors), 30000); - yield this.sleep(backoffTime); - } - else { - // Log other errors as warnings with context - const errorMessage = error instanceof Error ? error.message : String(error); - core.warning(`Event polling error (attempt ${consecutiveErrors}/${maxConsecutiveErrors}): ${errorMessage}`); - // Implement graceful degradation - if (consecutiveErrors >= maxConsecutiveErrors) { - core.warning(`Maximum consecutive polling errors (${maxConsecutiveErrors}) reached. ` + - 'Event streaming will be disabled to prevent deployment interference. ' + - 'Deployment will continue normally.'); - this.stopRequested = true; - break; - } - // Progressive backoff for consecutive errors - const backoffTime = Math.min(errorBackoffMs * consecutiveErrors, 30000); - yield this.sleep(backoffTime); - } - // Check if we should continue after error handling - if (this.isActive && - !this.stopRequested && - consecutiveErrors < maxConsecutiveErrors) { - continue; - } - else { - break; - } + // Reset consecutive error count on successful poll + consecutiveErrors = 0 + // Wait for next polling interval if still active + if (this.isActive && !this.stopRequested) { + const interval = this.poller.getCurrentInterval() + yield this.sleep(interval) + } + } catch (error) { + consecutiveErrors++ + // Handle polling errors gracefully with progressive backoff + if ( + error instanceof + client_marketplace_catalog_1.ThrottlingException + ) { + core.warning( + `CloudFormation API throttling (attempt ${consecutiveErrors}/${maxConsecutiveErrors}), backing off...` + ) + // Wait longer on throttling with exponential backoff + const backoffTime = Math.min( + this.poller.getCurrentInterval() * + Math.pow(2, consecutiveErrors), + 30000 + ) + yield this.sleep(backoffTime) + } else { + // Log other errors as warnings with context + const errorMessage = + error instanceof Error ? error.message : String(error) + core.warning( + `Event polling error (attempt ${consecutiveErrors}/${maxConsecutiveErrors}): ${errorMessage}` + ) + // Implement graceful degradation + if (consecutiveErrors >= maxConsecutiveErrors) { + core.warning( + `Maximum consecutive polling errors (${maxConsecutiveErrors}) reached. ` + + 'Event streaming will be disabled to prevent deployment interference. ' + + 'Deployment will continue normally.' + ) + this.stopRequested = true + break + } + // Progressive backoff for consecutive errors + const backoffTime = Math.min( + errorBackoffMs * consecutiveErrors, + 30000 + ) + yield this.sleep(backoffTime) + } + // Check if we should continue after error handling + if ( + this.isActive && + !this.stopRequested && + consecutiveErrors < maxConsecutiveErrors + ) { + continue + } else { + break } + } } // Log final status if (consecutiveErrors >= maxConsecutiveErrors) { - core.warning('Event streaming stopped due to consecutive errors. Deployment continues normally.'); - } - else if (this.eventCount === 0) { - core.info('✅ No deployment events - stack is already up to date'); - core.info('No changes were applied to the CloudFormation stack'); - } - else { - core.debug('Event monitoring polling loop completed normally'); - // Display final summary when polling completes normally - if (!this.summaryDisplayed) { - this.displayFinalSummary(); - this.summaryDisplayed = true; - } + core.warning( + 'Event streaming stopped due to consecutive errors. Deployment continues normally.' + ) + } else if (this.eventCount === 0) { + core.info('✅ No deployment events - stack is already up to date') + core.info('No changes were applied to the CloudFormation stack') + } else { + core.debug('Event monitoring polling loop completed normally') + // Display final summary when polling completes normally + if (!this.summaryDisplayed) { + this.displayFinalSummary() + this.summaryDisplayed = true + } } - }); - } - /** - * Display events immediately to meet timeliness requirement - * Ensures events are shown within 5 seconds of availability - */ - displayEvents(events) { - return __awaiter(this, void 0, void 0, function* () { + }) + } + /** + * Display events immediately to meet timeliness requirement + * Ensures events are shown within 5 seconds of availability + */ + displayEvents(events) { + return __awaiter(this, void 0, void 0, function* () { try { - const formattedOutput = this.formatter.formatEvents(events); - if (formattedOutput) { - // Use core.info to ensure output appears in GitHub Actions logs - core.info(formattedOutput); - } - } - catch (error) { - core.warning(`Event formatting error: ${error instanceof Error ? error.message : String(error)}`); + const formattedOutput = this.formatter.formatEvents(events) + if (formattedOutput) { + // Use core.info to ensure output appears in GitHub Actions logs + core.info(formattedOutput) + } + } catch (error) { + core.warning( + `Event formatting error: ${error instanceof Error ? error.message : String(error)}` + ) } - }); - } - /** - * Count error events in a batch - */ - countErrors(events) { - return events.filter(event => { - const status = event.ResourceStatus || ''; - return exports.ERROR_STATUS_PATTERNS.some(pattern => status.includes(pattern)); - }).length; - } - /** - * Check if any event indicates a terminal stack state - * Only considers the main stack events, not individual resources - */ - hasTerminalEvent(events) { - return events.some(event => { - const status = event.ResourceStatus || ''; - const resourceType = event.ResourceType || ''; + }) + } + /** + * Count error events in a batch + */ + countErrors(events) { + return events.filter(event => { + const status = event.ResourceStatus || '' + return exports.ERROR_STATUS_PATTERNS.some(pattern => + status.includes(pattern) + ) + }).length + } + /** + * Check if any event indicates a terminal stack state + * Only considers the main stack events, not individual resources + */ + hasTerminalEvent(events) { + return events.some(event => { + const status = event.ResourceStatus || '' + const resourceType = event.ResourceType || '' // Only check terminal states for the main CloudFormation stack if (resourceType === 'AWS::CloudFormation::Stack') { - return exports.TERMINAL_STACK_STATES.includes(status); + return exports.TERMINAL_STACK_STATES.includes(status) } - return false; - }); - } - /** - * Display final deployment summary - */ - displayFinalSummary() { - try { + return false + }) + } + /** + * Display final deployment summary + */ + displayFinalSummary() { + try { const duration = this.startTime - ? Date.now() - this.startTime.getTime() - : undefined; + ? Date.now() - this.startTime.getTime() + : undefined // Determine final status based on error count and event count - let finalStatus = 'DEPLOYMENT_COMPLETE'; + let finalStatus = 'DEPLOYMENT_COMPLETE' if (this.errorCount > 0) { - finalStatus = 'DEPLOYMENT_FAILED'; - } - else if (this.eventCount === 0) { - finalStatus = 'NO_CHANGES'; + finalStatus = 'DEPLOYMENT_FAILED' + } else if (this.eventCount === 0) { + finalStatus = 'NO_CHANGES' } - const summary = this.formatter.formatDeploymentSummary(this.config.stackName, finalStatus, this.eventCount, this.errorCount, duration); - core.info(summary); + const summary = this.formatter.formatDeploymentSummary( + this.config.stackName, + finalStatus, + this.eventCount, + this.errorCount, + duration + ) + core.info(summary) + } catch (error) { + core.warning( + `Error displaying final summary: ${error instanceof Error ? error.message : String(error)}` + ) + } } - catch (error) { - core.warning(`Error displaying final summary: ${error instanceof Error ? error.message : String(error)}`); + /** + * Sleep utility for polling intervals + */ + sleep(ms) { + return new Promise(resolve => setTimeout(resolve, ms)) } - } - /** - * Sleep utility for polling intervals - */ - sleep(ms) { - return new Promise(resolve => setTimeout(resolve, ms)); - } - /** - * Get monitoring statistics - */ - getStats() { - const duration = this.startTime + /** + * Get monitoring statistics + */ + getStats() { + const duration = this.startTime ? Date.now() - this.startTime.getTime() - : undefined; - return { + : undefined + return { eventCount: this.eventCount, errorCount: this.errorCount, isActive: this.isActive, duration - }; - } -} -exports.EventMonitorImpl = EventMonitorImpl; -/** - * EventFormatter implementation for structured event display - * Handles ISO 8601 timestamp formatting, resource name truncation, and nested indentation - */ -class EventFormatterImpl { - constructor(colorFormatter, errorExtractor, config = {}) { - this.colorFormatter = colorFormatter; - this.errorExtractor = errorExtractor; - // Set default configuration with overrides - this.config = Object.assign({ showTimestamp: true, showResourceType: true, showPhysicalId: false, maxResourceNameLength: 50, indentLevel: 0 }, config); - } - /** - * Format a single event for display - * Returns structured FormattedEvent object - */ - formatEvent(event) { - // Format timestamp in ISO 8601 format with timezone - const timestamp = this.formatTimestamp(event.Timestamp); - // Format resource information with truncation - const resourceInfo = this.formatResourceInfo(event); - // Format status with appropriate coloring - const status = this.formatStatus(event.ResourceStatus || 'UNKNOWN'); - // Check if this is an error event and extract error message - const isError = this.errorExtractor.isErrorEvent(event); - let message; - if (isError) { - const extractedError = this.errorExtractor.extractError(event); + } + } + } + exports.EventMonitorImpl = EventMonitorImpl + /** + * EventFormatter implementation for structured event display + * Handles ISO 8601 timestamp formatting, resource name truncation, and nested indentation + */ + class EventFormatterImpl { + constructor(colorFormatter, errorExtractor, config = {}) { + this.colorFormatter = colorFormatter + this.errorExtractor = errorExtractor + // Set default configuration with overrides + this.config = Object.assign( + { + showTimestamp: true, + showResourceType: true, + showPhysicalId: false, + maxResourceNameLength: 50, + indentLevel: 0 + }, + config + ) + } + /** + * Format a single event for display + * Returns structured FormattedEvent object + */ + formatEvent(event) { + // Format timestamp in ISO 8601 format with timezone + const timestamp = this.formatTimestamp(event.Timestamp) + // Format resource information with truncation + const resourceInfo = this.formatResourceInfo(event) + // Format status with appropriate coloring + const status = this.formatStatus(event.ResourceStatus || 'UNKNOWN') + // Check if this is an error event and extract error message + const isError = this.errorExtractor.isErrorEvent(event) + let message + if (isError) { + const extractedError = this.errorExtractor.extractError(event) if (extractedError) { - message = extractedError.message; + message = extractedError.message } - } - else if (event.ResourceStatusReason) { + } else if (event.ResourceStatusReason) { // Include status reason for non-error events if available - message = event.ResourceStatusReason; - } - return { + message = event.ResourceStatusReason + } + return { timestamp, resourceInfo, status, message, isError - }; - } - /** - * Format multiple events as a batch - * Returns formatted string ready for display - */ - formatEvents(events) { - if (events.length === 0) { - return ''; - } - const formattedLines = []; - for (const event of events) { - const formattedEvent = this.formatEvent(event); - const line = this.formatEventLine(formattedEvent); - formattedLines.push(line); - } - return formattedLines.join('\n'); - } - /** - * Format timestamp in ISO 8601 format with timezone - * Handles invalid dates gracefully - */ - formatTimestamp(timestamp) { - if (!timestamp) { - return this.colorFormatter.colorizeTimestamp('Unknown time'); + } } - try { - // Format as ISO 8601 with timezone (e.g., "2023-12-07T10:30:45.123Z") - const isoString = timestamp.toISOString(); - return this.colorFormatter.colorizeTimestamp(isoString); + /** + * Format multiple events as a batch + * Returns formatted string ready for display + */ + formatEvents(events) { + if (events.length === 0) { + return '' + } + const formattedLines = [] + for (const event of events) { + const formattedEvent = this.formatEvent(event) + const line = this.formatEventLine(formattedEvent) + formattedLines.push(line) + } + return formattedLines.join('\n') } - catch (error) { - core.debug(`Invalid timestamp format: ${error}`); - return this.colorFormatter.colorizeTimestamp('Invalid time'); + /** + * Format timestamp in ISO 8601 format with timezone + * Handles invalid dates gracefully + */ + formatTimestamp(timestamp) { + if (!timestamp) { + return this.colorFormatter.colorizeTimestamp('Unknown time') + } + try { + // Format as ISO 8601 with timezone (e.g., "2023-12-07T10:30:45.123Z") + const isoString = timestamp.toISOString() + return this.colorFormatter.colorizeTimestamp(isoString) + } catch (error) { + core.debug(`Invalid timestamp format: ${error}`) + return this.colorFormatter.colorizeTimestamp('Invalid time') + } } - } - /** - * Format resource information with truncation and type display - * Handles long resource names by truncating them appropriately - */ - formatResourceInfo(event) { - const resourceType = event.ResourceType || 'Unknown'; - const logicalId = event.LogicalResourceId || 'Unknown'; - const physicalId = event.PhysicalResourceId; - // Truncate logical resource ID if it exceeds max length - const truncatedLogicalId = this.truncateResourceName(logicalId, this.config.maxResourceNameLength); - // Optionally include physical ID in the display - if (this.config.showPhysicalId && physicalId) { - const truncatedPhysicalId = this.truncateResourceName(physicalId, this.config.maxResourceNameLength); + /** + * Format resource information with truncation and type display + * Handles long resource names by truncating them appropriately + */ + formatResourceInfo(event) { + const resourceType = event.ResourceType || 'Unknown' + const logicalId = event.LogicalResourceId || 'Unknown' + const physicalId = event.PhysicalResourceId + // Truncate logical resource ID if it exceeds max length + const truncatedLogicalId = this.truncateResourceName( + logicalId, + this.config.maxResourceNameLength + ) + // Optionally include physical ID in the display + if (this.config.showPhysicalId && physicalId) { + const truncatedPhysicalId = this.truncateResourceName( + physicalId, + this.config.maxResourceNameLength + ) // Return with physical ID included - return this.colorFormatter.colorizeResource(resourceType, `${truncatedLogicalId} (${truncatedPhysicalId})`); + return this.colorFormatter.colorizeResource( + resourceType, + `${truncatedLogicalId} (${truncatedPhysicalId})` + ) + } + return this.colorFormatter.colorizeResource( + resourceType, + truncatedLogicalId + ) } - return this.colorFormatter.colorizeResource(resourceType, truncatedLogicalId); - } - /** - * Truncate resource name while maintaining readability - * Uses ellipsis to indicate truncation - */ - truncateResourceName(name, maxLength) { - if (name.length <= maxLength) { - return name; - } - // Truncate and add ellipsis, ensuring we don't exceed maxLength - const ellipsis = '...'; - const truncateLength = maxLength - ellipsis.length; - if (truncateLength <= 0) { - return ellipsis; - } - return name.substring(0, truncateLength) + ellipsis; - } - /** - * Format status with appropriate coloring - */ - formatStatus(status) { - return this.colorFormatter.colorizeStatus(status, status); - } - /** - * Format a complete event line for display - * Handles indentation for nested resources and error formatting - */ - formatEventLine(formattedEvent) { - const parts = []; - // Add indentation for nested resources - const indent = this.getResourceIndentation(); - if (indent) { - parts.push(indent); - } - // Add timestamp if configured - if (this.config.showTimestamp) { - parts.push(formattedEvent.timestamp); - } - // Add resource information - parts.push(formattedEvent.resourceInfo); - // Add status - parts.push(formattedEvent.status); - // Add message if available - if (formattedEvent.message) { + /** + * Truncate resource name while maintaining readability + * Uses ellipsis to indicate truncation + */ + truncateResourceName(name, maxLength) { + if (name.length <= maxLength) { + return name + } + // Truncate and add ellipsis, ensuring we don't exceed maxLength + const ellipsis = '...' + const truncateLength = maxLength - ellipsis.length + if (truncateLength <= 0) { + return ellipsis + } + return name.substring(0, truncateLength) + ellipsis + } + /** + * Format status with appropriate coloring + */ + formatStatus(status) { + return this.colorFormatter.colorizeStatus(status, status) + } + /** + * Format a complete event line for display + * Handles indentation for nested resources and error formatting + */ + formatEventLine(formattedEvent) { + const parts = [] + // Add indentation for nested resources + const indent = this.getResourceIndentation() + if (indent) { + parts.push(indent) + } + // Add timestamp if configured + if (this.config.showTimestamp) { + parts.push(formattedEvent.timestamp) + } + // Add resource information + parts.push(formattedEvent.resourceInfo) + // Add status + parts.push(formattedEvent.status) + // Add message if available + if (formattedEvent.message) { if (formattedEvent.isError) { - // Format error messages with bold red - const errorMessage = this.colorFormatter.colorizeError(formattedEvent.message); - parts.push(`ERROR: ${errorMessage}`); - } - else { - // Regular message - parts.push(`- ${formattedEvent.message}`); + // Format error messages with bold red + const errorMessage = this.colorFormatter.colorizeError( + formattedEvent.message + ) + parts.push(`ERROR: ${errorMessage}`) + } else { + // Regular message + parts.push(`- ${formattedEvent.message}`) } + } + return parts.join(' ') } - return parts.join(' '); - } - /** - * Get indentation string for nested resources - * Uses consistent indentation based on resource type hierarchy - */ - getResourceIndentation() { - // Use consistent indentation - no complex heuristics that cause inconsistency - // All events get the same base indentation level from config - const indentLevel = this.config.indentLevel; - if (indentLevel === 0) { - return ''; - } - // Use 2 spaces per indent level for consistent formatting - return ' '.repeat(indentLevel); - } - /** - * Calculate indentation level for nested resources - * Simplified to avoid inconsistent formatting - */ - calculateIndentLevel() { - // Return the configured base indent level for all events - // This ensures consistent formatting across all event types - return Math.max(0, this.config.indentLevel); - } - /** - * Update display configuration - */ - updateConfig(newConfig) { - this.config = Object.assign(Object.assign({}, this.config), newConfig); - } - /** - * Get current display configuration - */ - getConfig() { - return Object.assign({}, this.config); - } - /** - * Format deployment summary when stack reaches terminal state - * Provides overview of deployment result - */ - formatDeploymentSummary(stackName, finalStatus, totalEvents, errorCount, duration) { - const lines = []; - lines.push(''); // Empty line for separation - lines.push('='.repeat(60)); - lines.push(`Deployment Summary for ${stackName}`); - lines.push('='.repeat(60)); - // Format final status with appropriate color - const colorizedStatus = this.colorFormatter.colorizeStatus(finalStatus, finalStatus); - lines.push(`Final Status: ${colorizedStatus}`); - lines.push(`Total Events: ${totalEvents}`); - if (errorCount > 0) { - const errorText = this.colorFormatter.colorizeError(`${errorCount} error(s)`); - lines.push(`Errors: ${errorText}`); - } - else { - const successText = this.colorFormatter.colorizeStatus('CREATE_COMPLETE', 'No errors'); - lines.push(`Errors: ${successText}`); - } - if (duration !== undefined) { - const durationText = `${Math.round(duration / 1000)}s`; - lines.push(`Duration: ${durationText}`); - } - lines.push('='.repeat(60)); - lines.push(''); // Empty line for separation - return lines.join('\n'); - } -} -exports.EventFormatterImpl = EventFormatterImpl; - - -/***/ }), - -/***/ 3109: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + /** + * Get indentation string for nested resources + * Uses consistent indentation based on resource type hierarchy + */ + getResourceIndentation() { + // Use consistent indentation - no complex heuristics that cause inconsistency + // All events get the same base indentation level from config + const indentLevel = this.config.indentLevel + if (indentLevel === 0) { + return '' + } + // Use 2 spaces per indent level for consistent formatting + return ' '.repeat(indentLevel) + } + /** + * Calculate indentation level for nested resources + * Simplified to avoid inconsistent formatting + */ + calculateIndentLevel() { + // Return the configured base indent level for all events + // This ensures consistent formatting across all event types + return Math.max(0, this.config.indentLevel) + } + /** + * Update display configuration + */ + updateConfig(newConfig) { + this.config = Object.assign(Object.assign({}, this.config), newConfig) + } + /** + * Get current display configuration + */ + getConfig() { + return Object.assign({}, this.config) + } + /** + * Format deployment summary when stack reaches terminal state + * Provides overview of deployment result + */ + formatDeploymentSummary( + stackName, + finalStatus, + totalEvents, + errorCount, + duration + ) { + const lines = [] + lines.push('') // Empty line for separation + lines.push('='.repeat(60)) + lines.push(`Deployment Summary for ${stackName}`) + lines.push('='.repeat(60)) + // Format final status with appropriate color + const colorizedStatus = this.colorFormatter.colorizeStatus( + finalStatus, + finalStatus + ) + lines.push(`Final Status: ${colorizedStatus}`) + lines.push(`Total Events: ${totalEvents}`) + if (errorCount > 0) { + const errorText = this.colorFormatter.colorizeError( + `${errorCount} error(s)` + ) + lines.push(`Errors: ${errorText}`) + } else { + const successText = this.colorFormatter.colorizeStatus( + 'CREATE_COMPLETE', + 'No errors' + ) + lines.push(`Errors: ${successText}`) + } + if (duration !== undefined) { + const durationText = `${Math.round(duration / 1000)}s` + lines.push(`Duration: ${durationText}`) + } + lines.push('='.repeat(60)) + lines.push('') // Empty line for separation + return lines.join('\n') + } + } + exports.EventFormatterImpl = EventFormatterImpl -"use strict"; + /***/ + }, -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.run = void 0; -const path = __importStar(__nccwpck_require__(71017)); -const core = __importStar(__nccwpck_require__(42186)); -const client_cloudformation_1 = __nccwpck_require__(15650); -const fs = __importStar(__nccwpck_require__(57147)); -const deploy_1 = __nccwpck_require__(77538); -const utils_1 = __nccwpck_require__(50918); -const node_http_handler_1 = __nccwpck_require__(20258); -// The custom client configuration for the CloudFormation clients. -let clientConfiguration = { - customUserAgent: 'aws-cloudformation-github-deploy-for-github-actions' -}; -function run() { - return __awaiter(this, void 0, void 0, function* () { - const outputFormat = core.getInput('output-format', { required: false }) || - 'json'; - try { + /***/ 3109: /***/ function ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) { + 'use strict' + + var __createBinding = + (this && this.__createBinding) || + (Object.create + ? function (o, m, k, k2) { + if (k2 === undefined) k2 = k + var desc = Object.getOwnPropertyDescriptor(m, k) + if ( + !desc || + ('get' in desc + ? !m.__esModule + : desc.writable || desc.configurable) + ) { + desc = { + enumerable: true, + get: function () { + return m[k] + } + } + } + Object.defineProperty(o, k2, desc) + } + : function (o, m, k, k2) { + if (k2 === undefined) k2 = k + o[k2] = m[k] + }) + var __setModuleDefault = + (this && this.__setModuleDefault) || + (Object.create + ? function (o, v) { + Object.defineProperty(o, 'default', { + enumerable: true, + value: v + }) + } + : function (o, v) { + o['default'] = v + }) + var __importStar = + (this && this.__importStar) || + function (mod) { + if (mod && mod.__esModule) return mod + var result = {} + if (mod != null) + for (var k in mod) + if ( + k !== 'default' && + Object.prototype.hasOwnProperty.call(mod, k) + ) + __createBinding(result, mod, k) + __setModuleDefault(result, mod) + return result + } + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step( + (generator = generator.apply(thisArg, _arguments || [])).next() + ) + }) + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.run = void 0 + const path = __importStar(__nccwpck_require__(71017)) + const core = __importStar(__nccwpck_require__(42186)) + const client_cloudformation_1 = __nccwpck_require__(15650) + const fs = __importStar(__nccwpck_require__(57147)) + const deploy_1 = __nccwpck_require__(77538) + const utils_1 = __nccwpck_require__(50918) + const node_http_handler_1 = __nccwpck_require__(20258) + // The custom client configuration for the CloudFormation clients. + let clientConfiguration = { + customUserAgent: 'aws-cloudformation-github-deploy-for-github-actions' + } + function run() { + return __awaiter(this, void 0, void 0, function* () { + const outputFormat = + core.getInput('output-format', { required: false }) || 'json' + try { /* istanbul ignore next */ - const { GITHUB_WORKSPACE = __dirname } = process.env; + const { GITHUB_WORKSPACE = __dirname } = process.env // Get inputs - const template = core.getInput('template', { required: true }); - const stackName = core.getInput('name', { required: true }); + const template = core.getInput('template', { required: true }) + const stackName = core.getInput('name', { required: true }) const capabilities = core - .getInput('capabilities', { + .getInput('capabilities', { required: false - }) - .split(',') - .map(capability => capability.trim()); + }) + .split(',') + .map(capability => capability.trim()) // Get parameter overrides - could be a string or a parsed YAML object const parameterOverrides = core.getInput('parameter-overrides', { + required: false + }) + const noEmptyChangeSet = !!+core.getInput( + 'no-fail-on-empty-changeset', + { required: false - }); - const noEmptyChangeSet = !!+core.getInput('no-fail-on-empty-changeset', { - required: false - }); - const noExecuteChangeSet = !!+core.getInput('no-execute-changeset', { + } + ) + const noExecuteChangeSet = !!+core.getInput( + 'no-execute-changeset', + { required: false - }); - const noDeleteFailedChangeSet = !!+core.getInput('no-delete-failed-changeset', { + } + ) + const noDeleteFailedChangeSet = !!+core.getInput( + 'no-delete-failed-changeset', + { required: false - }); + } + ) const disableRollback = !!+core.getInput('disable-rollback', { + required: false + }) + const timeoutInMinutes = (0, utils_1.parseNumber)( + core.getInput('timeout-in-minutes', { required: false - }); - const timeoutInMinutes = (0, utils_1.parseNumber)(core.getInput('timeout-in-minutes', { - required: false - })); - const notificationARNs = (0, utils_1.parseARNs)(core.getInput('notification-arns', { + }) + ) + const notificationARNs = (0, utils_1.parseARNs)( + core.getInput('notification-arns', { required: false - })); - const roleARN = (0, utils_1.parseString)(core.getInput('role-arn', { + }) + ) + const roleARN = (0, utils_1.parseString)( + core.getInput('role-arn', { required: false - })); - const tags = (0, utils_1.parseTags)(core.getInput('tags', { + }) + ) + const tags = (0, utils_1.parseTags)( + core.getInput('tags', { required: false - })); - const terminationProtections = !!+core.getInput('termination-protection', { + }) + ) + const terminationProtections = !!+core.getInput( + 'termination-protection', + { required: false - }); - const httpProxy = (0, utils_1.parseString)(core.getInput('http-proxy', { + } + ) + const httpProxy = (0, utils_1.parseString)( + core.getInput('http-proxy', { required: false - })); - const changeSetName = (0, utils_1.parseString)(core.getInput('change-set-name', { + }) + ) + const changeSetName = (0, utils_1.parseString)( + core.getInput('change-set-name', { required: false - })); - const changeSetDescription = (0, utils_1.parseString)(core.getInput('change-set-description', { + }) + ) + const changeSetDescription = (0, utils_1.parseString)( + core.getInput('change-set-description', { required: false - })); - const enableEventStreaming = core.getInput('enable-event-streaming', { + }) + ) + const enableEventStreaming = + core.getInput('enable-event-streaming', { required: false - }) !== '0'; // Default to enabled unless explicitly set to '0' - const includeNestedStacksChangeSet = !!+core.getInput('include-nested-stacks-change-set', { + }) !== '0' // Default to enabled unless explicitly set to '0' + const includeNestedStacksChangeSet = !!+core.getInput( + 'include-nested-stacks-change-set', + { required: false - }); + } + ) // Configures proxy - const agent = (0, utils_1.configureProxy)(httpProxy); + const agent = (0, utils_1.configureProxy)(httpProxy) if (agent) { - clientConfiguration = Object.assign(Object.assign({}, clientConfiguration), { - requestHandler: new node_http_handler_1.NodeHttpHandler({ - httpAgent: agent, - httpsAgent: agent - }) - }); + clientConfiguration = Object.assign( + Object.assign({}, clientConfiguration), + { + requestHandler: new node_http_handler_1.NodeHttpHandler({ + httpAgent: agent, + httpsAgent: agent + }) + } + ) } - const cfn = new client_cloudformation_1.CloudFormationClient(Object.assign({}, clientConfiguration)); + const cfn = new client_cloudformation_1.CloudFormationClient( + Object.assign({}, clientConfiguration) + ) // Setup CloudFormation Stack - let templateBody; - let templateUrl; + let templateBody + let templateUrl if ((0, utils_1.isUrl)(template)) { - core.debug('Using CloudFormation Stack from Amazon S3 Bucket'); - templateUrl = template; - } - else { - core.debug('Loading CloudFormation Stack template'); - const templateFilePath = path.isAbsolute(template) - ? template - : path.join(GITHUB_WORKSPACE, template); - templateBody = fs.readFileSync(templateFilePath, 'utf8'); + core.debug('Using CloudFormation Stack from Amazon S3 Bucket') + templateUrl = template + } else { + core.debug('Loading CloudFormation Stack template') + const templateFilePath = path.isAbsolute(template) + ? template + : path.join(GITHUB_WORKSPACE, template) + templateBody = fs.readFileSync(templateFilePath, 'utf8') + // CloudFormation has a 51,200 byte limit for template body + const templateSizeBytes = Buffer.byteLength(templateBody, 'utf8') + const maxTemplateSizeBytes = 51200 + if (templateSizeBytes > maxTemplateSizeBytes) { + throw new Error( + `Template size (${templateSizeBytes} bytes) exceeds CloudFormation limit (${maxTemplateSizeBytes} bytes). ` + + `Please upload your template to S3 and use the S3 URL instead. ` + + `You can use the 'template' input with an S3 URL like: https://s3.amazonaws.com/bucket/template.yml` + ) + } + core.debug( + `Template size: ${templateSizeBytes} bytes (limit: ${maxTemplateSizeBytes} bytes)` + ) } // CloudFormation Stack Parameter for the creation or update - const params = { - StackName: stackName, - Capabilities: capabilities, - RoleARN: roleARN, - NotificationARNs: notificationARNs, - DisableRollback: disableRollback, - TimeoutInMinutes: timeoutInMinutes, - TemplateBody: templateBody, - TemplateURL: templateUrl, + const params = Object.assign( + Object.assign( + Object.assign( + { + StackName: stackName, + Capabilities: capabilities, + RoleARN: roleARN, + NotificationARNs: notificationARNs, + DisableRollback: disableRollback, + TimeoutInMinutes: timeoutInMinutes + }, + templateBody ? { TemplateBody: templateBody } : {} + ), + templateUrl ? { TemplateURL: templateUrl } : {} + ), + { Tags: tags, EnableTerminationProtection: terminationProtections, IncludeNestedStacksChangeSet: includeNestedStacksChangeSet - }; + } + ) if (parameterOverrides) { - params.Parameters = (0, utils_1.parseParameters)(parameterOverrides); + params.Parameters = (0, utils_1.parseParameters)( + parameterOverrides + ) } - const stackId = yield (0, deploy_1.deployStack)(cfn, params, changeSetName ? changeSetName : `${params.StackName}-CS`, noEmptyChangeSet, noExecuteChangeSet, noDeleteFailedChangeSet, changeSetDescription, enableEventStreaming); - core.setOutput('stack-id', stackId || 'UNKNOWN'); + const stackId = yield (0, deploy_1.deployStack)( + cfn, + params, + changeSetName ? changeSetName : `${params.StackName}-CS`, + noEmptyChangeSet, + noExecuteChangeSet, + noDeleteFailedChangeSet, + changeSetDescription, + enableEventStreaming + ) + core.setOutput('stack-id', stackId || 'UNKNOWN') if (stackId) { - const outputs = yield (0, deploy_1.getStackOutputs)(cfn, stackId); - for (const [key, value] of outputs) { - core.setOutput(key, value); - } + const outputs = yield (0, deploy_1.getStackOutputs)(cfn, stackId) + for (const [key, value] of outputs) { + core.setOutput(key, value) + } } - } - catch (err) { - core.setFailed((0, utils_1.formatError)(err, outputFormat)); - core.debug((0, utils_1.formatError)(err, outputFormat)); - } - }); -} -exports.run = run; -/* istanbul ignore next */ -if (require.main === require.cache[eval('__filename')]) { - run(); -} - - -/***/ }), - -/***/ 50918: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + } catch (err) { + core.setFailed((0, utils_1.formatError)(err, outputFormat)) + core.debug((0, utils_1.formatError)(err, outputFormat)) + } + }) + } + exports.run = run + /* istanbul ignore next */ + if (require.main === require.cache[eval('__filename')]) { + run() + } -"use strict"; + /***/ + }, -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.configureProxy = exports.withRetry = exports.parseParameters = exports.parseNumber = exports.parseString = exports.parseARNs = exports.parseTags = exports.isUrl = exports.formatError = void 0; -const fs = __importStar(__nccwpck_require__(57147)); -const client_marketplace_catalog_1 = __nccwpck_require__(87560); -const https_proxy_agent_1 = __nccwpck_require__(77219); -const yaml = __importStar(__nccwpck_require__(21917)); -const core = __importStar(__nccwpck_require__(42186)); -function formatError(error, format) { - // Handle waiter result objects that contain state and reason - if (error && - typeof error === 'object' && - 'state' in error && - 'reason' in error) { - const waiterError = error; - if (format === 'yaml') { - return yaml.dump({ - deploymentResult: { - state: waiterError.state, - reason: waiterError.reason + /***/ 50918: /***/ function ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) { + 'use strict' + + var __createBinding = + (this && this.__createBinding) || + (Object.create + ? function (o, m, k, k2) { + if (k2 === undefined) k2 = k + var desc = Object.getOwnPropertyDescriptor(m, k) + if ( + !desc || + ('get' in desc + ? !m.__esModule + : desc.writable || desc.configurable) + ) { + desc = { + enumerable: true, + get: function () { + return m[k] + } } - }); + } + Object.defineProperty(o, k2, desc) + } + : function (o, m, k, k2) { + if (k2 === undefined) k2 = k + o[k2] = m[k] + }) + var __setModuleDefault = + (this && this.__setModuleDefault) || + (Object.create + ? function (o, v) { + Object.defineProperty(o, 'default', { + enumerable: true, + value: v + }) + } + : function (o, v) { + o['default'] = v + }) + var __importStar = + (this && this.__importStar) || + function (mod) { + if (mod && mod.__esModule) return mod + var result = {} + if (mod != null) + for (var k in mod) + if ( + k !== 'default' && + Object.prototype.hasOwnProperty.call(mod, k) + ) + __createBinding(result, mod, k) + __setModuleDefault(result, mod) + return result + } + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step( + (generator = generator.apply(thisArg, _arguments || [])).next() + ) + }) } - return JSON.stringify({ - deploymentResult: { + Object.defineProperty(exports, '__esModule', { value: true }) + exports.configureProxy = + exports.withRetry = + exports.parseParameters = + exports.parseNumber = + exports.parseString = + exports.parseARNs = + exports.parseTags = + exports.isUrl = + exports.formatError = + void 0 + const fs = __importStar(__nccwpck_require__(57147)) + const client_marketplace_catalog_1 = __nccwpck_require__(87560) + const https_proxy_agent_1 = __nccwpck_require__(77219) + const yaml = __importStar(__nccwpck_require__(21917)) + const core = __importStar(__nccwpck_require__(42186)) + function formatError(error, format) { + // Handle waiter result objects that contain state and reason + if ( + error && + typeof error === 'object' && + 'state' in error && + 'reason' in error + ) { + const waiterError = error + if (format === 'yaml') { + return yaml.dump({ + deploymentResult: { state: waiterError.state, reason: waiterError.reason - } - }, null, 2); - } - // Handle standard Error objects - if (error instanceof Error) { - // Check if the error message is a JSON string and parse it - let errorData; - try { - errorData = JSON.parse(error.message); + } + }) + } + return JSON.stringify( + { + deploymentResult: { + state: waiterError.state, + reason: waiterError.reason + } + }, + null, + 2 + ) } - catch (_a) { + // Handle standard Error objects + if (error instanceof Error) { + // Check if the error message is a JSON string and parse it + let errorData + try { + errorData = JSON.parse(error.message) + } catch (_a) { // Not JSON, use as-is errorData = { - message: error.message, - stack: error.stack - }; + message: error.message, + stack: error.stack + } + } + if (format === 'yaml') { + return yaml.dump({ + error: errorData + }) + } + return JSON.stringify( + { + error: errorData + }, + null, + 2 + ) } - if (format === 'yaml') { + // Handle string errors that might be JSON + if (typeof error === 'string') { + let errorData + try { + errorData = JSON.parse(error) + } catch (_b) { + // Not JSON, use as-is + errorData = { message: error } + } + if (format === 'yaml') { return yaml.dump({ - error: errorData - }); + error: errorData + }) + } + return JSON.stringify( + { + error: errorData + }, + null, + 2 + ) } - return JSON.stringify({ - error: errorData - }, null, 2); - } - // Handle string errors that might be JSON - if (typeof error === 'string') { - let errorData; + // Handle other types of errors + const errorMessage = String(error) + let errorData try { - errorData = JSON.parse(error); - } - catch (_b) { - // Not JSON, use as-is - errorData = { message: error }; + errorData = JSON.parse(errorMessage) + } catch (_c) { + // Not JSON, use as-is + errorData = { message: errorMessage } } if (format === 'yaml') { - return yaml.dump({ - error: errorData - }); - } - return JSON.stringify({ + return yaml.dump({ error: errorData - }, null, 2); - } - // Handle other types of errors - const errorMessage = String(error); - let errorData; - try { - errorData = JSON.parse(errorMessage); - } - catch (_c) { - // Not JSON, use as-is - errorData = { message: errorMessage }; - } - if (format === 'yaml') { - return yaml.dump({ + }) + } + return JSON.stringify( + { error: errorData - }); - } - return JSON.stringify({ - error: errorData - }, null, 2); -} -exports.formatError = formatError; -function isUrl(s) { - let url; - try { - url = new URL(s); - } - catch (_) { - return false; - } - return url.protocol === 'https:'; -} -exports.isUrl = isUrl; -function parseTags(s) { - if (!s) { - return undefined; - } - try { - const parsed = yaml.load(s); - if (!parsed) { - return undefined; + }, + null, + 2 + ) + } + exports.formatError = formatError + function isUrl(s) { + let url + try { + url = new URL(s) + } catch (_) { + return false + } + return url.protocol === 'https:' + } + exports.isUrl = isUrl + function parseTags(s) { + if (!s) { + return undefined } - if (Array.isArray(parsed)) { + try { + const parsed = yaml.load(s) + if (!parsed) { + return undefined + } + if (Array.isArray(parsed)) { // Handle array format [{Key: 'key', Value: 'value'}, ...] return parsed - .filter(item => item.Key && item.Value !== undefined) - .map(item => ({ + .filter(item => item.Key && item.Value !== undefined) + .map(item => ({ Key: String(item.Key), Value: String(item.Value) - })); - } - else if (typeof parsed === 'object') { + })) + } else if (typeof parsed === 'object') { // Handle object format {key1: 'value1', key2: 'value2'} return Object.entries(parsed).map(([Key, Value]) => ({ - Key, - Value: String(Value !== null && Value !== void 0 ? Value : '') - })); - } - } - catch (_) { - return undefined; - } -} -exports.parseTags = parseTags; -function parseARNs(s) { - return (s === null || s === void 0 ? void 0 : s.length) > 0 ? s.split(',') : undefined; -} -exports.parseARNs = parseARNs; -function parseString(s) { - return (s === null || s === void 0 ? void 0 : s.length) > 0 ? s : undefined; -} -exports.parseString = parseString; -function parseNumber(s) { - return parseInt(s) || undefined; -} -exports.parseNumber = parseNumber; -function parseParameters(parameterOverrides) { - // Case 1: Handle native YAML/JSON objects - if (parameterOverrides && typeof parameterOverrides !== 'string') { - return Object.keys(parameterOverrides).map(key => { - const value = parameterOverrides[key]; + Key, + Value: String(Value !== null && Value !== void 0 ? Value : '') + })) + } + } catch (_) { + return undefined + } + } + exports.parseTags = parseTags + function parseARNs(s) { + return (s === null || s === void 0 ? void 0 : s.length) > 0 + ? s.split(',') + : undefined + } + exports.parseARNs = parseARNs + function parseString(s) { + return (s === null || s === void 0 ? void 0 : s.length) > 0 + ? s + : undefined + } + exports.parseString = parseString + function parseNumber(s) { + return parseInt(s) || undefined + } + exports.parseNumber = parseNumber + function parseParameters(parameterOverrides) { + // Case 1: Handle native YAML/JSON objects + if (parameterOverrides && typeof parameterOverrides !== 'string') { + return Object.keys(parameterOverrides).map(key => { + const value = parameterOverrides[key] return { - ParameterKey: key, - ParameterValue: typeof value === 'string' ? value : formatParameterValue(value) - }; - }); - } - // Case 2: Empty string - if (!parameterOverrides) { - return []; - } - // Case 3: Try parsing as YAML - try { - const parsed = yaml.load(parameterOverrides); - if (!parsed) { - return []; + ParameterKey: key, + ParameterValue: + typeof value === 'string' ? value : formatParameterValue(value) + } + }) } - if (Array.isArray(parsed)) { + // Case 2: Empty string + if (!parameterOverrides) { + return [] + } + // Case 3: Try parsing as YAML + try { + const parsed = yaml.load(parameterOverrides) + if (!parsed) { + return [] + } + if (Array.isArray(parsed)) { // Handle array format return parsed.map(param => ({ - ParameterKey: param.ParameterKey, - ParameterValue: formatParameterValue(param.ParameterValue) - })); - } - else if (typeof parsed === 'object') { + ParameterKey: param.ParameterKey, + ParameterValue: formatParameterValue(param.ParameterValue) + })) + } else if (typeof parsed === 'object') { // Handle object format return Object.entries(parsed).map(([key, value]) => ({ - ParameterKey: key, - ParameterValue: formatParameterValue(value) - })); - } - } - catch (_) { - // YAML parsing failed, continue to other cases - } - // Case 4: Try URL to JSON file - try { - const path = new URL(parameterOverrides); - const rawParameters = fs.readFileSync(path, 'utf-8'); - return JSON.parse(rawParameters); - } - catch (err) { - // @ts-expect-error: Object is of type 'unknown' - if (err.code !== 'ERR_INVALID_URL') { - throw err; - } - } - // Case 5: String format "key=value,key2=value2" - const parameters = new Map(); - parameterOverrides - .trim() - .split(/,(?=(?:(?:[^"']*["|']){2})*[^"']*$)/g) - .forEach(parameter => { - const values = parameter.trim().split('='); - const key = values[0]; - const value = values.slice(1).join('='); - let param = parameters.get(key); - param = !param ? value : [param, value].join(','); - if ((param.startsWith("'") && param.endsWith("'")) || - (param.startsWith('"') && param.endsWith('"'))) { - param = param.substring(1, param.length - 1); - } - parameters.set(key, param); - }); - return [...parameters.keys()].map(key => ({ - ParameterKey: key, - ParameterValue: parameters.get(key) - })); -} -exports.parseParameters = parseParameters; -function formatParameterValue(value) { - if (value === null || value === undefined) { - return ''; - } - if (Array.isArray(value)) { - return value.join(','); - } - if (typeof value === 'object') { - return JSON.stringify(value); - } - return String(value); -} -function withRetry(operation, maxRetries = 5, initialDelayMs = 1000) { - return __awaiter(this, void 0, void 0, function* () { - let retryCount = 0; - let delay = initialDelayMs; - while (true) { - try { - return yield operation(); - } - catch (error) { - if (error instanceof client_marketplace_catalog_1.ThrottlingException) { - if (retryCount >= maxRetries) { - throw new Error(`Maximum retry attempts (${maxRetries}) reached. Last error: ${error.message}`); - } - retryCount++; - core.info(`Rate limit exceeded. Attempt ${retryCount}/${maxRetries}. Waiting ${delay / 1000} seconds before retry...`); - yield new Promise(resolve => setTimeout(resolve, delay)); - delay *= 2; // Exponential backoff - continue; - } - throw error; - } - } - }); -} -exports.withRetry = withRetry; -function configureProxy(proxyServer) { - const proxyFromEnv = process.env.HTTP_PROXY || process.env.http_proxy; - if (proxyFromEnv || proxyServer) { - let proxyToSet = null; - if (proxyServer) { - console.log(`Setting proxy from actions input: ${proxyServer}`); - proxyToSet = proxyServer; - } - else { - console.log(`Setting proxy from environment: ${proxyFromEnv}`); - proxyToSet = proxyFromEnv; + ParameterKey: key, + ParameterValue: formatParameterValue(value) + })) + } + } catch (_) { + // YAML parsing failed, continue to other cases } - if (proxyToSet) { - return new https_proxy_agent_1.HttpsProxyAgent(proxyToSet); + // Case 4: Try URL to JSON file + try { + const path = new URL(parameterOverrides) + const rawParameters = fs.readFileSync(path, 'utf-8') + return JSON.parse(rawParameters) + } catch (err) { + // @ts-expect-error: Object is of type 'unknown' + if (err.code !== 'ERR_INVALID_URL') { + throw err + } } - } -} -exports.configureProxy = configureProxy; - - -/***/ }), - -/***/ 87351: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.issue = exports.issueCommand = void 0; -const os = __importStar(__nccwpck_require__(22037)); -const utils_1 = __nccwpck_require__(5278); -/** - * Commands - * - * Command Format: - * ::name key=value,key=value::message - * - * Examples: - * ::warning::This is the message - * ::set-env name=MY_VAR::some value - */ -function issueCommand(command, properties, message) { - const cmd = new Command(command, properties, message); - process.stdout.write(cmd.toString() + os.EOL); -} -exports.issueCommand = issueCommand; -function issue(name, message = '') { - issueCommand(name, {}, message); -} -exports.issue = issue; -const CMD_STRING = '::'; -class Command { - constructor(command, properties, message) { - if (!command) { - command = 'missing.command'; - } - this.command = command; - this.properties = properties; - this.message = message; - } - toString() { - let cmdStr = CMD_STRING + this.command; - if (this.properties && Object.keys(this.properties).length > 0) { - cmdStr += ' '; - let first = true; - for (const key in this.properties) { - if (this.properties.hasOwnProperty(key)) { - const val = this.properties[key]; - if (val) { - if (first) { - first = false; - } - else { - cmdStr += ','; - } - cmdStr += `${key}=${escapeProperty(val)}`; - } - } + // Case 5: String format "key=value,key2=value2" + const parameters = new Map() + parameterOverrides + .trim() + .split(/,(?=(?:(?:[^"']*["|']){2})*[^"']*$)/g) + .forEach(parameter => { + const values = parameter.trim().split('=') + const key = values[0] + const value = values.slice(1).join('=') + let param = parameters.get(key) + param = !param ? value : [param, value].join(',') + if ( + (param.startsWith("'") && param.endsWith("'")) || + (param.startsWith('"') && param.endsWith('"')) + ) { + param = param.substring(1, param.length - 1) } + parameters.set(key, param) + }) + return [...parameters.keys()].map(key => ({ + ParameterKey: key, + ParameterValue: parameters.get(key) + })) + } + exports.parseParameters = parseParameters + function formatParameterValue(value) { + if (value === null || value === undefined) { + return '' } - cmdStr += `${CMD_STRING}${escapeData(this.message)}`; - return cmdStr; - } -} -function escapeData(s) { - return utils_1.toCommandValue(s) - .replace(/%/g, '%25') - .replace(/\r/g, '%0D') - .replace(/\n/g, '%0A'); -} -function escapeProperty(s) { - return utils_1.toCommandValue(s) - .replace(/%/g, '%25') - .replace(/\r/g, '%0D') - .replace(/\n/g, '%0A') - .replace(/:/g, '%3A') - .replace(/,/g, '%2C'); -} -//# sourceMappingURL=command.js.map - -/***/ }), - -/***/ 42186: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getIDToken = exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.notice = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0; -const command_1 = __nccwpck_require__(87351); -const file_command_1 = __nccwpck_require__(717); -const utils_1 = __nccwpck_require__(5278); -const os = __importStar(__nccwpck_require__(22037)); -const path = __importStar(__nccwpck_require__(71017)); -const oidc_utils_1 = __nccwpck_require__(98041); -/** - * The code to exit an action - */ -var ExitCode; -(function (ExitCode) { - /** - * A code indicating that the action was successful - */ - ExitCode[ExitCode["Success"] = 0] = "Success"; - /** - * A code indicating that the action was a failure - */ - ExitCode[ExitCode["Failure"] = 1] = "Failure"; -})(ExitCode = exports.ExitCode || (exports.ExitCode = {})); -//----------------------------------------------------------------------- -// Variables -//----------------------------------------------------------------------- -/** - * Sets env variable for this action and future actions in the job - * @param name the name of the variable to set - * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify - */ -// eslint-disable-next-line @typescript-eslint/no-explicit-any -function exportVariable(name, val) { - const convertedVal = utils_1.toCommandValue(val); - process.env[name] = convertedVal; - const filePath = process.env['GITHUB_ENV'] || ''; - if (filePath) { - return file_command_1.issueFileCommand('ENV', file_command_1.prepareKeyValueMessage(name, val)); - } - command_1.issueCommand('set-env', { name }, convertedVal); -} -exports.exportVariable = exportVariable; -/** - * Registers a secret which will get masked from logs - * @param secret value of the secret - */ -function setSecret(secret) { - command_1.issueCommand('add-mask', {}, secret); -} -exports.setSecret = setSecret; -/** - * Prepends inputPath to the PATH (for this action and future actions) - * @param inputPath - */ -function addPath(inputPath) { - const filePath = process.env['GITHUB_PATH'] || ''; - if (filePath) { - file_command_1.issueFileCommand('PATH', inputPath); - } - else { - command_1.issueCommand('add-path', {}, inputPath); - } - process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`; -} -exports.addPath = addPath; -/** - * Gets the value of an input. - * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed. - * Returns an empty string if the value is not defined. - * - * @param name name of the input to get - * @param options optional. See InputOptions. - * @returns string - */ -function getInput(name, options) { - const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || ''; - if (options && options.required && !val) { - throw new Error(`Input required and not supplied: ${name}`); - } - if (options && options.trimWhitespace === false) { - return val; - } - return val.trim(); -} -exports.getInput = getInput; -/** - * Gets the values of an multiline input. Each value is also trimmed. - * - * @param name name of the input to get - * @param options optional. See InputOptions. - * @returns string[] - * - */ -function getMultilineInput(name, options) { - const inputs = getInput(name, options) - .split('\n') - .filter(x => x !== ''); - if (options && options.trimWhitespace === false) { - return inputs; - } - return inputs.map(input => input.trim()); -} -exports.getMultilineInput = getMultilineInput; -/** - * Gets the input value of the boolean type in the YAML 1.2 "core schema" specification. - * Support boolean input list: `true | True | TRUE | false | False | FALSE` . - * The return value is also in boolean type. - * ref: https://yaml.org/spec/1.2/spec.html#id2804923 - * - * @param name name of the input to get - * @param options optional. See InputOptions. - * @returns boolean - */ -function getBooleanInput(name, options) { - const trueValue = ['true', 'True', 'TRUE']; - const falseValue = ['false', 'False', 'FALSE']; - const val = getInput(name, options); - if (trueValue.includes(val)) - return true; - if (falseValue.includes(val)) - return false; - throw new TypeError(`Input does not meet YAML 1.2 "Core Schema" specification: ${name}\n` + - `Support boolean input list: \`true | True | TRUE | false | False | FALSE\``); -} -exports.getBooleanInput = getBooleanInput; -/** - * Sets the value of an output. - * - * @param name name of the output to set - * @param value value to store. Non-string values will be converted to a string via JSON.stringify - */ -// eslint-disable-next-line @typescript-eslint/no-explicit-any -function setOutput(name, value) { - const filePath = process.env['GITHUB_OUTPUT'] || ''; - if (filePath) { - return file_command_1.issueFileCommand('OUTPUT', file_command_1.prepareKeyValueMessage(name, value)); - } - process.stdout.write(os.EOL); - command_1.issueCommand('set-output', { name }, utils_1.toCommandValue(value)); -} -exports.setOutput = setOutput; -/** - * Enables or disables the echoing of commands into stdout for the rest of the step. - * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set. - * - */ -function setCommandEcho(enabled) { - command_1.issue('echo', enabled ? 'on' : 'off'); -} -exports.setCommandEcho = setCommandEcho; -//----------------------------------------------------------------------- -// Results -//----------------------------------------------------------------------- -/** - * Sets the action status to failed. - * When the action exits it will be with an exit code of 1 - * @param message add error issue message - */ -function setFailed(message) { - process.exitCode = ExitCode.Failure; - error(message); -} -exports.setFailed = setFailed; -//----------------------------------------------------------------------- -// Logging Commands -//----------------------------------------------------------------------- -/** - * Gets whether Actions Step Debug is on or not - */ -function isDebug() { - return process.env['RUNNER_DEBUG'] === '1'; -} -exports.isDebug = isDebug; -/** - * Writes debug message to user log - * @param message debug message - */ -function debug(message) { - command_1.issueCommand('debug', {}, message); -} -exports.debug = debug; -/** - * Adds an error issue - * @param message error issue message. Errors will be converted to string via toString() - * @param properties optional properties to add to the annotation. - */ -function error(message, properties = {}) { - command_1.issueCommand('error', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message); -} -exports.error = error; -/** - * Adds a warning issue - * @param message warning issue message. Errors will be converted to string via toString() - * @param properties optional properties to add to the annotation. - */ -function warning(message, properties = {}) { - command_1.issueCommand('warning', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message); -} -exports.warning = warning; -/** - * Adds a notice issue - * @param message notice issue message. Errors will be converted to string via toString() - * @param properties optional properties to add to the annotation. - */ -function notice(message, properties = {}) { - command_1.issueCommand('notice', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message); -} -exports.notice = notice; -/** - * Writes info to log with console.log. - * @param message info message - */ -function info(message) { - process.stdout.write(message + os.EOL); -} -exports.info = info; -/** - * Begin an output group. - * - * Output until the next `groupEnd` will be foldable in this group - * - * @param name The name of the output group - */ -function startGroup(name) { - command_1.issue('group', name); -} -exports.startGroup = startGroup; -/** - * End an output group. - */ -function endGroup() { - command_1.issue('endgroup'); -} -exports.endGroup = endGroup; -/** - * Wrap an asynchronous function call in a group. - * - * Returns the same type as the function itself. - * - * @param name The name of the group - * @param fn The function to wrap in the group - */ -function group(name, fn) { - return __awaiter(this, void 0, void 0, function* () { - startGroup(name); - let result; - try { - result = yield fn(); - } - finally { - endGroup(); - } - return result; - }); -} -exports.group = group; -//----------------------------------------------------------------------- -// Wrapper action state -//----------------------------------------------------------------------- -/** - * Saves state for current action, the state can only be retrieved by this action's post job execution. - * - * @param name name of the state to store - * @param value value to store. Non-string values will be converted to a string via JSON.stringify - */ -// eslint-disable-next-line @typescript-eslint/no-explicit-any -function saveState(name, value) { - const filePath = process.env['GITHUB_STATE'] || ''; - if (filePath) { - return file_command_1.issueFileCommand('STATE', file_command_1.prepareKeyValueMessage(name, value)); - } - command_1.issueCommand('save-state', { name }, utils_1.toCommandValue(value)); -} -exports.saveState = saveState; -/** - * Gets the value of an state set by this action's main execution. - * - * @param name name of the state to get - * @returns string - */ -function getState(name) { - return process.env[`STATE_${name}`] || ''; -} -exports.getState = getState; -function getIDToken(aud) { - return __awaiter(this, void 0, void 0, function* () { - return yield oidc_utils_1.OidcClient.getIDToken(aud); - }); -} -exports.getIDToken = getIDToken; -/** - * Summary exports - */ -var summary_1 = __nccwpck_require__(81327); -Object.defineProperty(exports, "summary", ({ enumerable: true, get: function () { return summary_1.summary; } })); -/** - * @deprecated use core.summary - */ -var summary_2 = __nccwpck_require__(81327); -Object.defineProperty(exports, "markdownSummary", ({ enumerable: true, get: function () { return summary_2.markdownSummary; } })); -/** - * Path exports - */ -var path_utils_1 = __nccwpck_require__(2981); -Object.defineProperty(exports, "toPosixPath", ({ enumerable: true, get: function () { return path_utils_1.toPosixPath; } })); -Object.defineProperty(exports, "toWin32Path", ({ enumerable: true, get: function () { return path_utils_1.toWin32Path; } })); -Object.defineProperty(exports, "toPlatformPath", ({ enumerable: true, get: function () { return path_utils_1.toPlatformPath; } })); -//# sourceMappingURL=core.js.map - -/***/ }), - -/***/ 717: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -// For internal use, subject to change. -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.prepareKeyValueMessage = exports.issueFileCommand = void 0; -// We use any as a valid input type -/* eslint-disable @typescript-eslint/no-explicit-any */ -const fs = __importStar(__nccwpck_require__(57147)); -const os = __importStar(__nccwpck_require__(22037)); -const uuid_1 = __nccwpck_require__(75840); -const utils_1 = __nccwpck_require__(5278); -function issueFileCommand(command, message) { - const filePath = process.env[`GITHUB_${command}`]; - if (!filePath) { - throw new Error(`Unable to find environment variable for file command ${command}`); - } - if (!fs.existsSync(filePath)) { - throw new Error(`Missing file at path: ${filePath}`); - } - fs.appendFileSync(filePath, `${utils_1.toCommandValue(message)}${os.EOL}`, { - encoding: 'utf8' - }); -} -exports.issueFileCommand = issueFileCommand; -function prepareKeyValueMessage(key, value) { - const delimiter = `ghadelimiter_${uuid_1.v4()}`; - const convertedValue = utils_1.toCommandValue(value); - // These should realistically never happen, but just in case someone finds a - // way to exploit uuid generation let's not allow keys or values that contain - // the delimiter. - if (key.includes(delimiter)) { - throw new Error(`Unexpected input: name should not contain the delimiter "${delimiter}"`); - } - if (convertedValue.includes(delimiter)) { - throw new Error(`Unexpected input: value should not contain the delimiter "${delimiter}"`); - } - return `${key}<<${delimiter}${os.EOL}${convertedValue}${os.EOL}${delimiter}`; -} -exports.prepareKeyValueMessage = prepareKeyValueMessage; -//# sourceMappingURL=file-command.js.map - -/***/ }), - -/***/ 98041: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.OidcClient = void 0; -const http_client_1 = __nccwpck_require__(96255); -const auth_1 = __nccwpck_require__(35526); -const core_1 = __nccwpck_require__(42186); -class OidcClient { - static createHttpClient(allowRetry = true, maxRetry = 10) { - const requestOptions = { - allowRetries: allowRetry, - maxRetries: maxRetry - }; - return new http_client_1.HttpClient('actions/oidc-client', [new auth_1.BearerCredentialHandler(OidcClient.getRequestToken())], requestOptions); - } - static getRequestToken() { - const token = process.env['ACTIONS_ID_TOKEN_REQUEST_TOKEN']; - if (!token) { - throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable'); + if (Array.isArray(value)) { + return value.join(',') } - return token; - } - static getIDTokenUrl() { - const runtimeUrl = process.env['ACTIONS_ID_TOKEN_REQUEST_URL']; - if (!runtimeUrl) { - throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable'); + if (typeof value === 'object') { + return JSON.stringify(value) } - return runtimeUrl; - } - static getCall(id_token_url) { - var _a; - return __awaiter(this, void 0, void 0, function* () { - const httpclient = OidcClient.createHttpClient(); - const res = yield httpclient - .getJson(id_token_url) - .catch(error => { - throw new Error(`Failed to get ID Token. \n - Error Code : ${error.statusCode}\n - Error Message: ${error.message}`); - }); - const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value; - if (!id_token) { - throw new Error('Response json body do not have ID Token field'); - } - return id_token; - }); - } - static getIDToken(audience) { + return String(value) + } + function withRetry(operation, maxRetries = 5, initialDelayMs = 1000) { return __awaiter(this, void 0, void 0, function* () { + let retryCount = 0 + let delay = initialDelayMs + while (true) { try { - // New ID Token is requested from action service - let id_token_url = OidcClient.getIDTokenUrl(); - if (audience) { - const encodedAudience = encodeURIComponent(audience); - id_token_url = `${id_token_url}&audience=${encodedAudience}`; + return yield operation() + } catch (error) { + if ( + error instanceof + client_marketplace_catalog_1.ThrottlingException + ) { + if (retryCount >= maxRetries) { + throw new Error( + `Maximum retry attempts (${maxRetries}) reached. Last error: ${error.message}` + ) } - core_1.debug(`ID token url is ${id_token_url}`); - const id_token = yield OidcClient.getCall(id_token_url); - core_1.setSecret(id_token); - return id_token; + retryCount++ + core.info( + `Rate limit exceeded. Attempt ${retryCount}/${maxRetries}. Waiting ${delay / 1000} seconds before retry...` + ) + yield new Promise(resolve => setTimeout(resolve, delay)) + delay *= 2 // Exponential backoff + continue + } + throw error } - catch (error) { - throw new Error(`Error message: ${error.message}`); + } + }) + } + exports.withRetry = withRetry + function configureProxy(proxyServer) { + const proxyFromEnv = process.env.HTTP_PROXY || process.env.http_proxy + if (proxyFromEnv || proxyServer) { + let proxyToSet = null + if (proxyServer) { + console.log(`Setting proxy from actions input: ${proxyServer}`) + proxyToSet = proxyServer + } else { + console.log(`Setting proxy from environment: ${proxyFromEnv}`) + proxyToSet = proxyFromEnv + } + if (proxyToSet) { + return new https_proxy_agent_1.HttpsProxyAgent(proxyToSet) + } + } + } + exports.configureProxy = configureProxy + + /***/ + }, + + /***/ 87351: /***/ function ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) { + 'use strict' + + var __createBinding = + (this && this.__createBinding) || + (Object.create + ? function (o, m, k, k2) { + if (k2 === undefined) k2 = k + Object.defineProperty(o, k2, { + enumerable: true, + get: function () { + return m[k] + } + }) } - }); - } -} -exports.OidcClient = OidcClient; -//# sourceMappingURL=oidc-utils.js.map - -/***/ }), - -/***/ 2981: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.toPlatformPath = exports.toWin32Path = exports.toPosixPath = void 0; -const path = __importStar(__nccwpck_require__(71017)); -/** - * toPosixPath converts the given path to the posix form. On Windows, \\ will be - * replaced with /. - * - * @param pth. Path to transform. - * @return string Posix path. - */ -function toPosixPath(pth) { - return pth.replace(/[\\]/g, '/'); -} -exports.toPosixPath = toPosixPath; -/** - * toWin32Path converts the given path to the win32 form. On Linux, / will be - * replaced with \\. - * - * @param pth. Path to transform. - * @return string Win32 path. - */ -function toWin32Path(pth) { - return pth.replace(/[/]/g, '\\'); -} -exports.toWin32Path = toWin32Path; -/** - * toPlatformPath converts the given path to a platform-specific path. It does - * this by replacing instances of / and \ with the platform-specific path - * separator. - * - * @param pth The path to platformize. - * @return string The platform-specific path. - */ -function toPlatformPath(pth) { - return pth.replace(/[/\\]/g, path.sep); -} -exports.toPlatformPath = toPlatformPath; -//# sourceMappingURL=path-utils.js.map - -/***/ }), - -/***/ 81327: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.summary = exports.markdownSummary = exports.SUMMARY_DOCS_URL = exports.SUMMARY_ENV_VAR = void 0; -const os_1 = __nccwpck_require__(22037); -const fs_1 = __nccwpck_require__(57147); -const { access, appendFile, writeFile } = fs_1.promises; -exports.SUMMARY_ENV_VAR = 'GITHUB_STEP_SUMMARY'; -exports.SUMMARY_DOCS_URL = 'https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary'; -class Summary { - constructor() { - this._buffer = ''; - } - /** - * Finds the summary file path from the environment, rejects if env var is not found or file does not exist - * Also checks r/w permissions. - * - * @returns step summary file path - */ - filePath() { - return __awaiter(this, void 0, void 0, function* () { - if (this._filePath) { - return this._filePath; + : function (o, m, k, k2) { + if (k2 === undefined) k2 = k + o[k2] = m[k] + }) + var __setModuleDefault = + (this && this.__setModuleDefault) || + (Object.create + ? function (o, v) { + Object.defineProperty(o, 'default', { + enumerable: true, + value: v + }) } - const pathFromEnv = process.env[exports.SUMMARY_ENV_VAR]; - if (!pathFromEnv) { - throw new Error(`Unable to find environment variable for $${exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`); + : function (o, v) { + o['default'] = v + }) + var __importStar = + (this && this.__importStar) || + function (mod) { + if (mod && mod.__esModule) return mod + var result = {} + if (mod != null) + for (var k in mod) + if (k !== 'default' && Object.hasOwnProperty.call(mod, k)) + __createBinding(result, mod, k) + __setModuleDefault(result, mod) + return result + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.issue = exports.issueCommand = void 0 + const os = __importStar(__nccwpck_require__(22037)) + const utils_1 = __nccwpck_require__(5278) + /** + * Commands + * + * Command Format: + * ::name key=value,key=value::message + * + * Examples: + * ::warning::This is the message + * ::set-env name=MY_VAR::some value + */ + function issueCommand(command, properties, message) { + const cmd = new Command(command, properties, message) + process.stdout.write(cmd.toString() + os.EOL) + } + exports.issueCommand = issueCommand + function issue(name, message = '') { + issueCommand(name, {}, message) + } + exports.issue = issue + const CMD_STRING = '::' + class Command { + constructor(command, properties, message) { + if (!command) { + command = 'missing.command' + } + this.command = command + this.properties = properties + this.message = message + } + toString() { + let cmdStr = CMD_STRING + this.command + if (this.properties && Object.keys(this.properties).length > 0) { + cmdStr += ' ' + let first = true + for (const key in this.properties) { + if (this.properties.hasOwnProperty(key)) { + const val = this.properties[key] + if (val) { + if (first) { + first = false + } else { + cmdStr += ',' + } + cmdStr += `${key}=${escapeProperty(val)}` + } + } } - try { - yield access(pathFromEnv, fs_1.constants.R_OK | fs_1.constants.W_OK); + } + cmdStr += `${CMD_STRING}${escapeData(this.message)}` + return cmdStr + } + } + function escapeData(s) { + return utils_1 + .toCommandValue(s) + .replace(/%/g, '%25') + .replace(/\r/g, '%0D') + .replace(/\n/g, '%0A') + } + function escapeProperty(s) { + return utils_1 + .toCommandValue(s) + .replace(/%/g, '%25') + .replace(/\r/g, '%0D') + .replace(/\n/g, '%0A') + .replace(/:/g, '%3A') + .replace(/,/g, '%2C') + } + //# sourceMappingURL=command.js.map + + /***/ + }, + + /***/ 42186: /***/ function ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) { + 'use strict' + + var __createBinding = + (this && this.__createBinding) || + (Object.create + ? function (o, m, k, k2) { + if (k2 === undefined) k2 = k + Object.defineProperty(o, k2, { + enumerable: true, + get: function () { + return m[k] + } + }) } - catch (_a) { - throw new Error(`Unable to access summary file: '${pathFromEnv}'. Check if the file has correct read/write permissions.`); + : function (o, m, k, k2) { + if (k2 === undefined) k2 = k + o[k2] = m[k] + }) + var __setModuleDefault = + (this && this.__setModuleDefault) || + (Object.create + ? function (o, v) { + Object.defineProperty(o, 'default', { + enumerable: true, + value: v + }) } - this._filePath = pathFromEnv; - return this._filePath; - }); - } - /** - * Wraps content in an HTML tag, adding any HTML attributes - * - * @param {string} tag HTML tag to wrap - * @param {string | null} content content within the tag - * @param {[attribute: string]: string} attrs key-value list of HTML attributes to add - * - * @returns {string} content wrapped in HTML element - */ - wrap(tag, content, attrs = {}) { - const htmlAttrs = Object.entries(attrs) - .map(([key, value]) => ` ${key}="${value}"`) - .join(''); - if (!content) { - return `<${tag}${htmlAttrs}>`; + : function (o, v) { + o['default'] = v + }) + var __importStar = + (this && this.__importStar) || + function (mod) { + if (mod && mod.__esModule) return mod + var result = {} + if (mod != null) + for (var k in mod) + if (k !== 'default' && Object.hasOwnProperty.call(mod, k)) + __createBinding(result, mod, k) + __setModuleDefault(result, mod) + return result + } + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step( + (generator = generator.apply(thisArg, _arguments || [])).next() + ) + }) } - return `<${tag}${htmlAttrs}>${content}`; - } - /** - * Writes text in the buffer to the summary buffer file and empties buffer. Will append by default. - * - * @param {SummaryWriteOptions} [options] (optional) options for write operation - * - * @returns {Promise} summary instance - */ - write(options) { - return __awaiter(this, void 0, void 0, function* () { - const overwrite = !!(options === null || options === void 0 ? void 0 : options.overwrite); - const filePath = yield this.filePath(); - const writeFunc = overwrite ? writeFile : appendFile; - yield writeFunc(filePath, this._buffer, { encoding: 'utf8' }); - return this.emptyBuffer(); - }); - } - /** - * Clears the summary buffer and wipes the summary file - * - * @returns {Summary} summary instance - */ - clear() { + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getIDToken = + exports.getState = + exports.saveState = + exports.group = + exports.endGroup = + exports.startGroup = + exports.info = + exports.notice = + exports.warning = + exports.error = + exports.debug = + exports.isDebug = + exports.setFailed = + exports.setCommandEcho = + exports.setOutput = + exports.getBooleanInput = + exports.getMultilineInput = + exports.getInput = + exports.addPath = + exports.setSecret = + exports.exportVariable = + exports.ExitCode = + void 0 + const command_1 = __nccwpck_require__(87351) + const file_command_1 = __nccwpck_require__(717) + const utils_1 = __nccwpck_require__(5278) + const os = __importStar(__nccwpck_require__(22037)) + const path = __importStar(__nccwpck_require__(71017)) + const oidc_utils_1 = __nccwpck_require__(98041) + /** + * The code to exit an action + */ + var ExitCode + ;(function (ExitCode) { + /** + * A code indicating that the action was successful + */ + ExitCode[(ExitCode['Success'] = 0)] = 'Success' + /** + * A code indicating that the action was a failure + */ + ExitCode[(ExitCode['Failure'] = 1)] = 'Failure' + })((ExitCode = exports.ExitCode || (exports.ExitCode = {}))) + //----------------------------------------------------------------------- + // Variables + //----------------------------------------------------------------------- + /** + * Sets env variable for this action and future actions in the job + * @param name the name of the variable to set + * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify + */ + // eslint-disable-next-line @typescript-eslint/no-explicit-any + function exportVariable(name, val) { + const convertedVal = utils_1.toCommandValue(val) + process.env[name] = convertedVal + const filePath = process.env['GITHUB_ENV'] || '' + if (filePath) { + return file_command_1.issueFileCommand( + 'ENV', + file_command_1.prepareKeyValueMessage(name, val) + ) + } + command_1.issueCommand('set-env', { name }, convertedVal) + } + exports.exportVariable = exportVariable + /** + * Registers a secret which will get masked from logs + * @param secret value of the secret + */ + function setSecret(secret) { + command_1.issueCommand('add-mask', {}, secret) + } + exports.setSecret = setSecret + /** + * Prepends inputPath to the PATH (for this action and future actions) + * @param inputPath + */ + function addPath(inputPath) { + const filePath = process.env['GITHUB_PATH'] || '' + if (filePath) { + file_command_1.issueFileCommand('PATH', inputPath) + } else { + command_1.issueCommand('add-path', {}, inputPath) + } + process.env['PATH'] = + `${inputPath}${path.delimiter}${process.env['PATH']}` + } + exports.addPath = addPath + /** + * Gets the value of an input. + * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed. + * Returns an empty string if the value is not defined. + * + * @param name name of the input to get + * @param options optional. See InputOptions. + * @returns string + */ + function getInput(name, options) { + const val = + process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || '' + if (options && options.required && !val) { + throw new Error(`Input required and not supplied: ${name}`) + } + if (options && options.trimWhitespace === false) { + return val + } + return val.trim() + } + exports.getInput = getInput + /** + * Gets the values of an multiline input. Each value is also trimmed. + * + * @param name name of the input to get + * @param options optional. See InputOptions. + * @returns string[] + * + */ + function getMultilineInput(name, options) { + const inputs = getInput(name, options) + .split('\n') + .filter(x => x !== '') + if (options && options.trimWhitespace === false) { + return inputs + } + return inputs.map(input => input.trim()) + } + exports.getMultilineInput = getMultilineInput + /** + * Gets the input value of the boolean type in the YAML 1.2 "core schema" specification. + * Support boolean input list: `true | True | TRUE | false | False | FALSE` . + * The return value is also in boolean type. + * ref: https://yaml.org/spec/1.2/spec.html#id2804923 + * + * @param name name of the input to get + * @param options optional. See InputOptions. + * @returns boolean + */ + function getBooleanInput(name, options) { + const trueValue = ['true', 'True', 'TRUE'] + const falseValue = ['false', 'False', 'FALSE'] + const val = getInput(name, options) + if (trueValue.includes(val)) return true + if (falseValue.includes(val)) return false + throw new TypeError( + `Input does not meet YAML 1.2 "Core Schema" specification: ${name}\n` + + `Support boolean input list: \`true | True | TRUE | false | False | FALSE\`` + ) + } + exports.getBooleanInput = getBooleanInput + /** + * Sets the value of an output. + * + * @param name name of the output to set + * @param value value to store. Non-string values will be converted to a string via JSON.stringify + */ + // eslint-disable-next-line @typescript-eslint/no-explicit-any + function setOutput(name, value) { + const filePath = process.env['GITHUB_OUTPUT'] || '' + if (filePath) { + return file_command_1.issueFileCommand( + 'OUTPUT', + file_command_1.prepareKeyValueMessage(name, value) + ) + } + process.stdout.write(os.EOL) + command_1.issueCommand( + 'set-output', + { name }, + utils_1.toCommandValue(value) + ) + } + exports.setOutput = setOutput + /** + * Enables or disables the echoing of commands into stdout for the rest of the step. + * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set. + * + */ + function setCommandEcho(enabled) { + command_1.issue('echo', enabled ? 'on' : 'off') + } + exports.setCommandEcho = setCommandEcho + //----------------------------------------------------------------------- + // Results + //----------------------------------------------------------------------- + /** + * Sets the action status to failed. + * When the action exits it will be with an exit code of 1 + * @param message add error issue message + */ + function setFailed(message) { + process.exitCode = ExitCode.Failure + error(message) + } + exports.setFailed = setFailed + //----------------------------------------------------------------------- + // Logging Commands + //----------------------------------------------------------------------- + /** + * Gets whether Actions Step Debug is on or not + */ + function isDebug() { + return process.env['RUNNER_DEBUG'] === '1' + } + exports.isDebug = isDebug + /** + * Writes debug message to user log + * @param message debug message + */ + function debug(message) { + command_1.issueCommand('debug', {}, message) + } + exports.debug = debug + /** + * Adds an error issue + * @param message error issue message. Errors will be converted to string via toString() + * @param properties optional properties to add to the annotation. + */ + function error(message, properties = {}) { + command_1.issueCommand( + 'error', + utils_1.toCommandProperties(properties), + message instanceof Error ? message.toString() : message + ) + } + exports.error = error + /** + * Adds a warning issue + * @param message warning issue message. Errors will be converted to string via toString() + * @param properties optional properties to add to the annotation. + */ + function warning(message, properties = {}) { + command_1.issueCommand( + 'warning', + utils_1.toCommandProperties(properties), + message instanceof Error ? message.toString() : message + ) + } + exports.warning = warning + /** + * Adds a notice issue + * @param message notice issue message. Errors will be converted to string via toString() + * @param properties optional properties to add to the annotation. + */ + function notice(message, properties = {}) { + command_1.issueCommand( + 'notice', + utils_1.toCommandProperties(properties), + message instanceof Error ? message.toString() : message + ) + } + exports.notice = notice + /** + * Writes info to log with console.log. + * @param message info message + */ + function info(message) { + process.stdout.write(message + os.EOL) + } + exports.info = info + /** + * Begin an output group. + * + * Output until the next `groupEnd` will be foldable in this group + * + * @param name The name of the output group + */ + function startGroup(name) { + command_1.issue('group', name) + } + exports.startGroup = startGroup + /** + * End an output group. + */ + function endGroup() { + command_1.issue('endgroup') + } + exports.endGroup = endGroup + /** + * Wrap an asynchronous function call in a group. + * + * Returns the same type as the function itself. + * + * @param name The name of the group + * @param fn The function to wrap in the group + */ + function group(name, fn) { return __awaiter(this, void 0, void 0, function* () { - return this.emptyBuffer().write({ overwrite: true }); - }); - } - /** - * Returns the current summary buffer as a string - * - * @returns {string} string of summary buffer - */ - stringify() { - return this._buffer; - } - /** - * If the summary buffer is empty - * - * @returns {boolen} true if the buffer is empty - */ - isEmptyBuffer() { - return this._buffer.length === 0; - } - /** - * Resets the summary buffer without writing to summary file - * - * @returns {Summary} summary instance - */ - emptyBuffer() { - this._buffer = ''; - return this; - } - /** - * Adds raw text to the summary buffer - * - * @param {string} text content to add - * @param {boolean} [addEOL=false] (optional) append an EOL to the raw text (default: false) - * - * @returns {Summary} summary instance - */ - addRaw(text, addEOL = false) { - this._buffer += text; - return addEOL ? this.addEOL() : this; - } - /** - * Adds the operating system-specific end-of-line marker to the buffer - * - * @returns {Summary} summary instance - */ - addEOL() { - return this.addRaw(os_1.EOL); - } - /** - * Adds an HTML codeblock to the summary buffer - * - * @param {string} code content to render within fenced code block - * @param {string} lang (optional) language to syntax highlight code - * - * @returns {Summary} summary instance - */ - addCodeBlock(code, lang) { - const attrs = Object.assign({}, (lang && { lang })); - const element = this.wrap('pre', this.wrap('code', code), attrs); - return this.addRaw(element).addEOL(); - } - /** - * Adds an HTML list to the summary buffer - * - * @param {string[]} items list of items to render - * @param {boolean} [ordered=false] (optional) if the rendered list should be ordered or not (default: false) - * - * @returns {Summary} summary instance - */ - addList(items, ordered = false) { - const tag = ordered ? 'ol' : 'ul'; - const listItems = items.map(item => this.wrap('li', item)).join(''); - const element = this.wrap(tag, listItems); - return this.addRaw(element).addEOL(); - } - /** - * Adds an HTML table to the summary buffer - * - * @param {SummaryTableCell[]} rows table rows - * - * @returns {Summary} summary instance - */ - addTable(rows) { - const tableBody = rows - .map(row => { - const cells = row - .map(cell => { - if (typeof cell === 'string') { - return this.wrap('td', cell); - } - const { header, data, colspan, rowspan } = cell; - const tag = header ? 'th' : 'td'; - const attrs = Object.assign(Object.assign({}, (colspan && { colspan })), (rowspan && { rowspan })); - return this.wrap(tag, data, attrs); - }) - .join(''); - return this.wrap('tr', cells); + startGroup(name) + let result + try { + result = yield fn() + } finally { + endGroup() + } + return result }) - .join(''); - const element = this.wrap('table', tableBody); - return this.addRaw(element).addEOL(); - } - /** - * Adds a collapsable HTML details element to the summary buffer - * - * @param {string} label text for the closed state - * @param {string} content collapsable content - * - * @returns {Summary} summary instance - */ - addDetails(label, content) { - const element = this.wrap('details', this.wrap('summary', label) + content); - return this.addRaw(element).addEOL(); - } - /** - * Adds an HTML image tag to the summary buffer - * - * @param {string} src path to the image you to embed - * @param {string} alt text description of the image - * @param {SummaryImageOptions} options (optional) addition image attributes - * - * @returns {Summary} summary instance - */ - addImage(src, alt, options) { - const { width, height } = options || {}; - const attrs = Object.assign(Object.assign({}, (width && { width })), (height && { height })); - const element = this.wrap('img', null, Object.assign({ src, alt }, attrs)); - return this.addRaw(element).addEOL(); - } - /** - * Adds an HTML section heading element - * - * @param {string} text heading text - * @param {number | string} [level=1] (optional) the heading level, default: 1 - * - * @returns {Summary} summary instance - */ - addHeading(text, level) { - const tag = `h${level}`; - const allowedTag = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'].includes(tag) - ? tag - : 'h1'; - const element = this.wrap(allowedTag, text); - return this.addRaw(element).addEOL(); - } - /** - * Adds an HTML thematic break (
) to the summary buffer - * - * @returns {Summary} summary instance - */ - addSeparator() { - const element = this.wrap('hr', null); - return this.addRaw(element).addEOL(); - } - /** - * Adds an HTML line break (
) to the summary buffer - * - * @returns {Summary} summary instance - */ - addBreak() { - const element = this.wrap('br', null); - return this.addRaw(element).addEOL(); - } - /** - * Adds an HTML blockquote to the summary buffer - * - * @param {string} text quote text - * @param {string} cite (optional) citation url - * - * @returns {Summary} summary instance - */ - addQuote(text, cite) { - const attrs = Object.assign({}, (cite && { cite })); - const element = this.wrap('blockquote', text, attrs); - return this.addRaw(element).addEOL(); - } - /** - * Adds an HTML anchor tag to the summary buffer - * - * @param {string} text link text/content - * @param {string} href hyperlink - * - * @returns {Summary} summary instance - */ - addLink(text, href) { - const element = this.wrap('a', text, { href }); - return this.addRaw(element).addEOL(); - } -} -const _summary = new Summary(); -/** - * @deprecated use `core.summary` - */ -exports.markdownSummary = _summary; -exports.summary = _summary; -//# sourceMappingURL=summary.js.map - -/***/ }), - -/***/ 5278: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - -// We use any as a valid input type -/* eslint-disable @typescript-eslint/no-explicit-any */ -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.toCommandProperties = exports.toCommandValue = void 0; -/** - * Sanitizes an input into a string so it can be passed into issueCommand safely - * @param input input to sanitize into a string - */ -function toCommandValue(input) { - if (input === null || input === undefined) { - return ''; - } - else if (typeof input === 'string' || input instanceof String) { - return input; - } - return JSON.stringify(input); -} -exports.toCommandValue = toCommandValue; -/** - * - * @param annotationProperties - * @returns The command properties to send with the actual annotation command - * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646 - */ -function toCommandProperties(annotationProperties) { - if (!Object.keys(annotationProperties).length) { - return {}; - } - return { - title: annotationProperties.title, - file: annotationProperties.file, - line: annotationProperties.startLine, - endLine: annotationProperties.endLine, - col: annotationProperties.startColumn, - endColumn: annotationProperties.endColumn - }; -} -exports.toCommandProperties = toCommandProperties; -//# sourceMappingURL=utils.js.map - -/***/ }), - -/***/ 35526: -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.PersonalAccessTokenCredentialHandler = exports.BearerCredentialHandler = exports.BasicCredentialHandler = void 0; -class BasicCredentialHandler { - constructor(username, password) { - this.username = username; - this.password = password; - } - prepareRequest(options) { - if (!options.headers) { - throw Error('The request has no headers'); + } + exports.group = group + //----------------------------------------------------------------------- + // Wrapper action state + //----------------------------------------------------------------------- + /** + * Saves state for current action, the state can only be retrieved by this action's post job execution. + * + * @param name name of the state to store + * @param value value to store. Non-string values will be converted to a string via JSON.stringify + */ + // eslint-disable-next-line @typescript-eslint/no-explicit-any + function saveState(name, value) { + const filePath = process.env['GITHUB_STATE'] || '' + if (filePath) { + return file_command_1.issueFileCommand( + 'STATE', + file_command_1.prepareKeyValueMessage(name, value) + ) } - options.headers['Authorization'] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString('base64')}`; - } - // This handler cannot handle 401 - canHandleAuthentication() { - return false; - } - handleAuthentication() { + command_1.issueCommand( + 'save-state', + { name }, + utils_1.toCommandValue(value) + ) + } + exports.saveState = saveState + /** + * Gets the value of an state set by this action's main execution. + * + * @param name name of the state to get + * @returns string + */ + function getState(name) { + return process.env[`STATE_${name}`] || '' + } + exports.getState = getState + function getIDToken(aud) { return __awaiter(this, void 0, void 0, function* () { - throw new Error('not implemented'); - }); - } -} -exports.BasicCredentialHandler = BasicCredentialHandler; -class BearerCredentialHandler { - constructor(token) { - this.token = token; - } - // currently implements pre-authorization - // TODO: support preAuth = false where it hooks on 401 - prepareRequest(options) { - if (!options.headers) { - throw Error('The request has no headers'); + return yield oidc_utils_1.OidcClient.getIDToken(aud) + }) + } + exports.getIDToken = getIDToken + /** + * Summary exports + */ + var summary_1 = __nccwpck_require__(81327) + Object.defineProperty(exports, 'summary', { + enumerable: true, + get: function () { + return summary_1.summary } - options.headers['Authorization'] = `Bearer ${this.token}`; - } - // This handler cannot handle 401 - canHandleAuthentication() { - return false; - } - handleAuthentication() { - return __awaiter(this, void 0, void 0, function* () { - throw new Error('not implemented'); - }); - } -} -exports.BearerCredentialHandler = BearerCredentialHandler; -class PersonalAccessTokenCredentialHandler { - constructor(token) { - this.token = token; - } - // currently implements pre-authorization - // TODO: support preAuth = false where it hooks on 401 - prepareRequest(options) { - if (!options.headers) { - throw Error('The request has no headers'); + }) + /** + * @deprecated use core.summary + */ + var summary_2 = __nccwpck_require__(81327) + Object.defineProperty(exports, 'markdownSummary', { + enumerable: true, + get: function () { + return summary_2.markdownSummary } - options.headers['Authorization'] = `Basic ${Buffer.from(`PAT:${this.token}`).toString('base64')}`; - } - // This handler cannot handle 401 - canHandleAuthentication() { - return false; - } - handleAuthentication() { - return __awaiter(this, void 0, void 0, function* () { - throw new Error('not implemented'); - }); - } -} -exports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler; -//# sourceMappingURL=auth.js.map + }) + /** + * Path exports + */ + var path_utils_1 = __nccwpck_require__(2981) + Object.defineProperty(exports, 'toPosixPath', { + enumerable: true, + get: function () { + return path_utils_1.toPosixPath + } + }) + Object.defineProperty(exports, 'toWin32Path', { + enumerable: true, + get: function () { + return path_utils_1.toWin32Path + } + }) + Object.defineProperty(exports, 'toPlatformPath', { + enumerable: true, + get: function () { + return path_utils_1.toPlatformPath + } + }) + //# sourceMappingURL=core.js.map -/***/ }), + /***/ + }, -/***/ 96255: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + /***/ 717: /***/ function ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) { + 'use strict' + + // For internal use, subject to change. + var __createBinding = + (this && this.__createBinding) || + (Object.create + ? function (o, m, k, k2) { + if (k2 === undefined) k2 = k + Object.defineProperty(o, k2, { + enumerable: true, + get: function () { + return m[k] + } + }) + } + : function (o, m, k, k2) { + if (k2 === undefined) k2 = k + o[k2] = m[k] + }) + var __setModuleDefault = + (this && this.__setModuleDefault) || + (Object.create + ? function (o, v) { + Object.defineProperty(o, 'default', { + enumerable: true, + value: v + }) + } + : function (o, v) { + o['default'] = v + }) + var __importStar = + (this && this.__importStar) || + function (mod) { + if (mod && mod.__esModule) return mod + var result = {} + if (mod != null) + for (var k in mod) + if (k !== 'default' && Object.hasOwnProperty.call(mod, k)) + __createBinding(result, mod, k) + __setModuleDefault(result, mod) + return result + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.prepareKeyValueMessage = exports.issueFileCommand = void 0 + // We use any as a valid input type + /* eslint-disable @typescript-eslint/no-explicit-any */ + const fs = __importStar(__nccwpck_require__(57147)) + const os = __importStar(__nccwpck_require__(22037)) + const uuid_1 = __nccwpck_require__(75840) + const utils_1 = __nccwpck_require__(5278) + function issueFileCommand(command, message) { + const filePath = process.env[`GITHUB_${command}`] + if (!filePath) { + throw new Error( + `Unable to find environment variable for file command ${command}` + ) + } + if (!fs.existsSync(filePath)) { + throw new Error(`Missing file at path: ${filePath}`) + } + fs.appendFileSync( + filePath, + `${utils_1.toCommandValue(message)}${os.EOL}`, + { + encoding: 'utf8' + } + ) + } + exports.issueFileCommand = issueFileCommand + function prepareKeyValueMessage(key, value) { + const delimiter = `ghadelimiter_${uuid_1.v4()}` + const convertedValue = utils_1.toCommandValue(value) + // These should realistically never happen, but just in case someone finds a + // way to exploit uuid generation let's not allow keys or values that contain + // the delimiter. + if (key.includes(delimiter)) { + throw new Error( + `Unexpected input: name should not contain the delimiter "${delimiter}"` + ) + } + if (convertedValue.includes(delimiter)) { + throw new Error( + `Unexpected input: value should not contain the delimiter "${delimiter}"` + ) + } + return `${key}<<${delimiter}${os.EOL}${convertedValue}${os.EOL}${delimiter}` + } + exports.prepareKeyValueMessage = prepareKeyValueMessage + //# sourceMappingURL=file-command.js.map -"use strict"; + /***/ + }, -/* eslint-disable @typescript-eslint/no-explicit-any */ -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.HttpClient = exports.isHttps = exports.HttpClientResponse = exports.HttpClientError = exports.getProxyUrl = exports.MediaTypes = exports.Headers = exports.HttpCodes = void 0; -const http = __importStar(__nccwpck_require__(13685)); -const https = __importStar(__nccwpck_require__(95687)); -const pm = __importStar(__nccwpck_require__(19835)); -const tunnel = __importStar(__nccwpck_require__(74294)); -const undici_1 = __nccwpck_require__(41773); -var HttpCodes; -(function (HttpCodes) { - HttpCodes[HttpCodes["OK"] = 200] = "OK"; - HttpCodes[HttpCodes["MultipleChoices"] = 300] = "MultipleChoices"; - HttpCodes[HttpCodes["MovedPermanently"] = 301] = "MovedPermanently"; - HttpCodes[HttpCodes["ResourceMoved"] = 302] = "ResourceMoved"; - HttpCodes[HttpCodes["SeeOther"] = 303] = "SeeOther"; - HttpCodes[HttpCodes["NotModified"] = 304] = "NotModified"; - HttpCodes[HttpCodes["UseProxy"] = 305] = "UseProxy"; - HttpCodes[HttpCodes["SwitchProxy"] = 306] = "SwitchProxy"; - HttpCodes[HttpCodes["TemporaryRedirect"] = 307] = "TemporaryRedirect"; - HttpCodes[HttpCodes["PermanentRedirect"] = 308] = "PermanentRedirect"; - HttpCodes[HttpCodes["BadRequest"] = 400] = "BadRequest"; - HttpCodes[HttpCodes["Unauthorized"] = 401] = "Unauthorized"; - HttpCodes[HttpCodes["PaymentRequired"] = 402] = "PaymentRequired"; - HttpCodes[HttpCodes["Forbidden"] = 403] = "Forbidden"; - HttpCodes[HttpCodes["NotFound"] = 404] = "NotFound"; - HttpCodes[HttpCodes["MethodNotAllowed"] = 405] = "MethodNotAllowed"; - HttpCodes[HttpCodes["NotAcceptable"] = 406] = "NotAcceptable"; - HttpCodes[HttpCodes["ProxyAuthenticationRequired"] = 407] = "ProxyAuthenticationRequired"; - HttpCodes[HttpCodes["RequestTimeout"] = 408] = "RequestTimeout"; - HttpCodes[HttpCodes["Conflict"] = 409] = "Conflict"; - HttpCodes[HttpCodes["Gone"] = 410] = "Gone"; - HttpCodes[HttpCodes["TooManyRequests"] = 429] = "TooManyRequests"; - HttpCodes[HttpCodes["InternalServerError"] = 500] = "InternalServerError"; - HttpCodes[HttpCodes["NotImplemented"] = 501] = "NotImplemented"; - HttpCodes[HttpCodes["BadGateway"] = 502] = "BadGateway"; - HttpCodes[HttpCodes["ServiceUnavailable"] = 503] = "ServiceUnavailable"; - HttpCodes[HttpCodes["GatewayTimeout"] = 504] = "GatewayTimeout"; -})(HttpCodes || (exports.HttpCodes = HttpCodes = {})); -var Headers; -(function (Headers) { - Headers["Accept"] = "accept"; - Headers["ContentType"] = "content-type"; -})(Headers || (exports.Headers = Headers = {})); -var MediaTypes; -(function (MediaTypes) { - MediaTypes["ApplicationJson"] = "application/json"; -})(MediaTypes || (exports.MediaTypes = MediaTypes = {})); -/** - * Returns the proxy URL, depending upon the supplied url and proxy environment variables. - * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com - */ -function getProxyUrl(serverUrl) { - const proxyUrl = pm.getProxyUrl(new URL(serverUrl)); - return proxyUrl ? proxyUrl.href : ''; -} -exports.getProxyUrl = getProxyUrl; -const HttpRedirectCodes = [ - HttpCodes.MovedPermanently, - HttpCodes.ResourceMoved, - HttpCodes.SeeOther, - HttpCodes.TemporaryRedirect, - HttpCodes.PermanentRedirect -]; -const HttpResponseRetryCodes = [ - HttpCodes.BadGateway, - HttpCodes.ServiceUnavailable, - HttpCodes.GatewayTimeout -]; -const RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD']; -const ExponentialBackoffCeiling = 10; -const ExponentialBackoffTimeSlice = 5; -class HttpClientError extends Error { - constructor(message, statusCode) { - super(message); - this.name = 'HttpClientError'; - this.statusCode = statusCode; - Object.setPrototypeOf(this, HttpClientError.prototype); - } -} -exports.HttpClientError = HttpClientError; -class HttpClientResponse { - constructor(message) { - this.message = message; - } - readBody() { - return __awaiter(this, void 0, void 0, function* () { - return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () { - let output = Buffer.alloc(0); - this.message.on('data', (chunk) => { - output = Buffer.concat([output, chunk]); - }); - this.message.on('end', () => { - resolve(output.toString()); - }); - })); - }); - } - readBodyBuffer() { - return __awaiter(this, void 0, void 0, function* () { - return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () { - const chunks = []; - this.message.on('data', (chunk) => { - chunks.push(chunk); - }); - this.message.on('end', () => { - resolve(Buffer.concat(chunks)); - }); - })); - }); - } -} -exports.HttpClientResponse = HttpClientResponse; -function isHttps(requestUrl) { - const parsedUrl = new URL(requestUrl); - return parsedUrl.protocol === 'https:'; -} -exports.isHttps = isHttps; -class HttpClient { - constructor(userAgent, handlers, requestOptions) { - this._ignoreSslError = false; - this._allowRedirects = true; - this._allowRedirectDowngrade = false; - this._maxRedirects = 50; - this._allowRetries = false; - this._maxRetries = 1; - this._keepAlive = false; - this._disposed = false; - this.userAgent = userAgent; - this.handlers = handlers || []; - this.requestOptions = requestOptions; - if (requestOptions) { - if (requestOptions.ignoreSslError != null) { - this._ignoreSslError = requestOptions.ignoreSslError; + /***/ 98041: /***/ function ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) { + 'use strict' + + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } } - this._socketTimeout = requestOptions.socketTimeout; - if (requestOptions.allowRedirects != null) { - this._allowRedirects = requestOptions.allowRedirects; + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } } - if (requestOptions.allowRedirectDowngrade != null) { - this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade; + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) } - if (requestOptions.maxRedirects != null) { - this._maxRedirects = Math.max(requestOptions.maxRedirects, 0); + step( + (generator = generator.apply(thisArg, _arguments || [])).next() + ) + }) + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.OidcClient = void 0 + const http_client_1 = __nccwpck_require__(96255) + const auth_1 = __nccwpck_require__(35526) + const core_1 = __nccwpck_require__(42186) + class OidcClient { + static createHttpClient(allowRetry = true, maxRetry = 10) { + const requestOptions = { + allowRetries: allowRetry, + maxRetries: maxRetry + } + return new http_client_1.HttpClient( + 'actions/oidc-client', + [new auth_1.BearerCredentialHandler(OidcClient.getRequestToken())], + requestOptions + ) + } + static getRequestToken() { + const token = process.env['ACTIONS_ID_TOKEN_REQUEST_TOKEN'] + if (!token) { + throw new Error( + 'Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable' + ) + } + return token + } + static getIDTokenUrl() { + const runtimeUrl = process.env['ACTIONS_ID_TOKEN_REQUEST_URL'] + if (!runtimeUrl) { + throw new Error( + 'Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable' + ) + } + return runtimeUrl + } + static getCall(id_token_url) { + var _a + return __awaiter(this, void 0, void 0, function* () { + const httpclient = OidcClient.createHttpClient() + const res = yield httpclient.getJson(id_token_url).catch(error => { + throw new Error(`Failed to get ID Token. \n + Error Code : ${error.statusCode}\n + Error Message: ${error.message}`) + }) + const id_token = + (_a = res.result) === null || _a === void 0 ? void 0 : _a.value + if (!id_token) { + throw new Error('Response json body do not have ID Token field') } - if (requestOptions.keepAlive != null) { - this._keepAlive = requestOptions.keepAlive; + return id_token + }) + } + static getIDToken(audience) { + return __awaiter(this, void 0, void 0, function* () { + try { + // New ID Token is requested from action service + let id_token_url = OidcClient.getIDTokenUrl() + if (audience) { + const encodedAudience = encodeURIComponent(audience) + id_token_url = `${id_token_url}&audience=${encodedAudience}` + } + core_1.debug(`ID token url is ${id_token_url}`) + const id_token = yield OidcClient.getCall(id_token_url) + core_1.setSecret(id_token) + return id_token + } catch (error) { + throw new Error(`Error message: ${error.message}`) } - if (requestOptions.allowRetries != null) { - this._allowRetries = requestOptions.allowRetries; + }) + } + } + exports.OidcClient = OidcClient + //# sourceMappingURL=oidc-utils.js.map + + /***/ + }, + + /***/ 2981: /***/ function ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) { + 'use strict' + + var __createBinding = + (this && this.__createBinding) || + (Object.create + ? function (o, m, k, k2) { + if (k2 === undefined) k2 = k + Object.defineProperty(o, k2, { + enumerable: true, + get: function () { + return m[k] + } + }) } - if (requestOptions.maxRetries != null) { - this._maxRetries = requestOptions.maxRetries; + : function (o, m, k, k2) { + if (k2 === undefined) k2 = k + o[k2] = m[k] + }) + var __setModuleDefault = + (this && this.__setModuleDefault) || + (Object.create + ? function (o, v) { + Object.defineProperty(o, 'default', { + enumerable: true, + value: v + }) } - } - } - options(requestUrl, additionalHeaders) { - return __awaiter(this, void 0, void 0, function* () { - return this.request('OPTIONS', requestUrl, null, additionalHeaders || {}); - }); - } - get(requestUrl, additionalHeaders) { - return __awaiter(this, void 0, void 0, function* () { - return this.request('GET', requestUrl, null, additionalHeaders || {}); - }); - } - del(requestUrl, additionalHeaders) { - return __awaiter(this, void 0, void 0, function* () { - return this.request('DELETE', requestUrl, null, additionalHeaders || {}); - }); - } - post(requestUrl, data, additionalHeaders) { - return __awaiter(this, void 0, void 0, function* () { - return this.request('POST', requestUrl, data, additionalHeaders || {}); - }); - } - patch(requestUrl, data, additionalHeaders) { - return __awaiter(this, void 0, void 0, function* () { - return this.request('PATCH', requestUrl, data, additionalHeaders || {}); - }); - } - put(requestUrl, data, additionalHeaders) { - return __awaiter(this, void 0, void 0, function* () { - return this.request('PUT', requestUrl, data, additionalHeaders || {}); - }); - } - head(requestUrl, additionalHeaders) { - return __awaiter(this, void 0, void 0, function* () { - return this.request('HEAD', requestUrl, null, additionalHeaders || {}); - }); - } - sendStream(verb, requestUrl, stream, additionalHeaders) { - return __awaiter(this, void 0, void 0, function* () { - return this.request(verb, requestUrl, stream, additionalHeaders); - }); - } - /** - * Gets a typed object from an endpoint - * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise - */ - getJson(requestUrl, additionalHeaders = {}) { - return __awaiter(this, void 0, void 0, function* () { - additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); - const res = yield this.get(requestUrl, additionalHeaders); - return this._processResponse(res, this.requestOptions); - }); - } - postJson(requestUrl, obj, additionalHeaders = {}) { - return __awaiter(this, void 0, void 0, function* () { - const data = JSON.stringify(obj, null, 2); - additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); - additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); - const res = yield this.post(requestUrl, data, additionalHeaders); - return this._processResponse(res, this.requestOptions); - }); - } - putJson(requestUrl, obj, additionalHeaders = {}) { - return __awaiter(this, void 0, void 0, function* () { - const data = JSON.stringify(obj, null, 2); - additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); - additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); - const res = yield this.put(requestUrl, data, additionalHeaders); - return this._processResponse(res, this.requestOptions); - }); - } - patchJson(requestUrl, obj, additionalHeaders = {}) { - return __awaiter(this, void 0, void 0, function* () { - const data = JSON.stringify(obj, null, 2); - additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); - additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); - const res = yield this.patch(requestUrl, data, additionalHeaders); - return this._processResponse(res, this.requestOptions); - }); - } - /** - * Makes a raw http request. - * All other methods such as get, post, patch, and request ultimately call this. - * Prefer get, del, post and patch - */ - request(verb, requestUrl, data, headers) { - return __awaiter(this, void 0, void 0, function* () { - if (this._disposed) { - throw new Error('Client has already been disposed.'); + : function (o, v) { + o['default'] = v + }) + var __importStar = + (this && this.__importStar) || + function (mod) { + if (mod && mod.__esModule) return mod + var result = {} + if (mod != null) + for (var k in mod) + if (k !== 'default' && Object.hasOwnProperty.call(mod, k)) + __createBinding(result, mod, k) + __setModuleDefault(result, mod) + return result + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.toPlatformPath = + exports.toWin32Path = + exports.toPosixPath = + void 0 + const path = __importStar(__nccwpck_require__(71017)) + /** + * toPosixPath converts the given path to the posix form. On Windows, \\ will be + * replaced with /. + * + * @param pth. Path to transform. + * @return string Posix path. + */ + function toPosixPath(pth) { + return pth.replace(/[\\]/g, '/') + } + exports.toPosixPath = toPosixPath + /** + * toWin32Path converts the given path to the win32 form. On Linux, / will be + * replaced with \\. + * + * @param pth. Path to transform. + * @return string Win32 path. + */ + function toWin32Path(pth) { + return pth.replace(/[/]/g, '\\') + } + exports.toWin32Path = toWin32Path + /** + * toPlatformPath converts the given path to a platform-specific path. It does + * this by replacing instances of / and \ with the platform-specific path + * separator. + * + * @param pth The path to platformize. + * @return string The platform-specific path. + */ + function toPlatformPath(pth) { + return pth.replace(/[/\\]/g, path.sep) + } + exports.toPlatformPath = toPlatformPath + //# sourceMappingURL=path-utils.js.map + + /***/ + }, + + /***/ 81327: /***/ function ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) { + 'use strict' + + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } } - const parsedUrl = new URL(requestUrl); - let info = this._prepareRequest(verb, parsedUrl, headers); - // Only perform retries on reads since writes may not be idempotent. - const maxTries = this._allowRetries && RetryableHttpVerbs.includes(verb) - ? this._maxRetries + 1 - : 1; - let numTries = 0; - let response; - do { - response = yield this.requestRaw(info, data); - // Check if it's an authentication challenge - if (response && - response.message && - response.message.statusCode === HttpCodes.Unauthorized) { - let authenticationHandler; - for (const handler of this.handlers) { - if (handler.canHandleAuthentication(response)) { - authenticationHandler = handler; - break; - } - } - if (authenticationHandler) { - return authenticationHandler.handleAuthentication(this, info, data); - } - else { - // We have received an unauthorized response but have no handlers to handle it. - // Let the response return to the caller. - return response; - } - } - let redirectsRemaining = this._maxRedirects; - while (response.message.statusCode && - HttpRedirectCodes.includes(response.message.statusCode) && - this._allowRedirects && - redirectsRemaining > 0) { - const redirectUrl = response.message.headers['location']; - if (!redirectUrl) { - // if there's no location to redirect to, we won't - break; - } - const parsedRedirectUrl = new URL(redirectUrl); - if (parsedUrl.protocol === 'https:' && - parsedUrl.protocol !== parsedRedirectUrl.protocol && - !this._allowRedirectDowngrade) { - throw new Error('Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.'); - } - // we need to finish reading the response before reassigning response - // which will leak the open socket. - yield response.readBody(); - // strip authorization header if redirected to a different hostname - if (parsedRedirectUrl.hostname !== parsedUrl.hostname) { - for (const header in headers) { - // header names are case insensitive - if (header.toLowerCase() === 'authorization') { - delete headers[header]; - } - } - } - // let's make the request with the new redirectUrl - info = this._prepareRequest(verb, parsedRedirectUrl, headers); - response = yield this.requestRaw(info, data); - redirectsRemaining--; - } - if (!response.message.statusCode || - !HttpResponseRetryCodes.includes(response.message.statusCode)) { - // If not a retry code, return immediately instead of retrying - return response; - } - numTries += 1; - if (numTries < maxTries) { - yield response.readBody(); - yield this._performExponentialBackoff(numTries); - } - } while (numTries < maxTries); - return response; - }); - } - /** - * Needs to be called if keepAlive is set to true in request options. - */ - dispose() { - if (this._agent) { - this._agent.destroy(); - } - this._disposed = true; - } - /** - * Raw request. - * @param info - * @param data - */ - requestRaw(info, data) { - return __awaiter(this, void 0, void 0, function* () { - return new Promise((resolve, reject) => { - function callbackForResult(err, res) { - if (err) { - reject(err); - } - else if (!res) { - // If `err` is not passed, then `res` must be passed. - reject(new Error('Unknown error')); - } - else { - resolve(res); - } - } - this.requestRawWithCallback(info, data, callbackForResult); - }); - }); - } - /** - * Raw request with callback. - * @param info - * @param data - * @param onResult - */ - requestRawWithCallback(info, data, onResult) { - if (typeof data === 'string') { - if (!info.options.headers) { - info.options.headers = {}; + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) } - info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8'); + step( + (generator = generator.apply(thisArg, _arguments || [])).next() + ) + }) } - let callbackCalled = false; - function handleResult(err, res) { - if (!callbackCalled) { - callbackCalled = true; - onResult(err, res); - } - } - const req = info.httpModule.request(info.options, (msg) => { - const res = new HttpClientResponse(msg); - handleResult(undefined, res); - }); - let socket; - req.on('socket', sock => { - socket = sock; - }); - // If we ever get disconnected, we want the socket to timeout eventually - req.setTimeout(this._socketTimeout || 3 * 60000, () => { - if (socket) { - socket.end(); + Object.defineProperty(exports, '__esModule', { value: true }) + exports.summary = + exports.markdownSummary = + exports.SUMMARY_DOCS_URL = + exports.SUMMARY_ENV_VAR = + void 0 + const os_1 = __nccwpck_require__(22037) + const fs_1 = __nccwpck_require__(57147) + const { access, appendFile, writeFile } = fs_1.promises + exports.SUMMARY_ENV_VAR = 'GITHUB_STEP_SUMMARY' + exports.SUMMARY_DOCS_URL = + 'https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary' + class Summary { + constructor() { + this._buffer = '' + } + /** + * Finds the summary file path from the environment, rejects if env var is not found or file does not exist + * Also checks r/w permissions. + * + * @returns step summary file path + */ + filePath() { + return __awaiter(this, void 0, void 0, function* () { + if (this._filePath) { + return this._filePath } - handleResult(new Error(`Request timeout: ${info.options.path}`)); - }); - req.on('error', function (err) { - // err has statusCode property - // res should have headers - handleResult(err); - }); - if (data && typeof data === 'string') { - req.write(data, 'utf8'); + const pathFromEnv = process.env[exports.SUMMARY_ENV_VAR] + if (!pathFromEnv) { + throw new Error( + `Unable to find environment variable for $${exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.` + ) + } + try { + yield access( + pathFromEnv, + fs_1.constants.R_OK | fs_1.constants.W_OK + ) + } catch (_a) { + throw new Error( + `Unable to access summary file: '${pathFromEnv}'. Check if the file has correct read/write permissions.` + ) + } + this._filePath = pathFromEnv + return this._filePath + }) } - if (data && typeof data !== 'string') { - data.on('close', function () { - req.end(); - }); - data.pipe(req); + /** + * Wraps content in an HTML tag, adding any HTML attributes + * + * @param {string} tag HTML tag to wrap + * @param {string | null} content content within the tag + * @param {[attribute: string]: string} attrs key-value list of HTML attributes to add + * + * @returns {string} content wrapped in HTML element + */ + wrap(tag, content, attrs = {}) { + const htmlAttrs = Object.entries(attrs) + .map(([key, value]) => ` ${key}="${value}"`) + .join('') + if (!content) { + return `<${tag}${htmlAttrs}>` + } + return `<${tag}${htmlAttrs}>${content}` } - else { - req.end(); + /** + * Writes text in the buffer to the summary buffer file and empties buffer. Will append by default. + * + * @param {SummaryWriteOptions} [options] (optional) options for write operation + * + * @returns {Promise} summary instance + */ + write(options) { + return __awaiter(this, void 0, void 0, function* () { + const overwrite = !!(options === null || options === void 0 + ? void 0 + : options.overwrite) + const filePath = yield this.filePath() + const writeFunc = overwrite ? writeFile : appendFile + yield writeFunc(filePath, this._buffer, { encoding: 'utf8' }) + return this.emptyBuffer() + }) } - } - /** - * Gets an http agent. This function is useful when you need an http agent that handles - * routing through a proxy server - depending upon the url and proxy environment variables. - * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com - */ - getAgent(serverUrl) { - const parsedUrl = new URL(serverUrl); - return this._getAgent(parsedUrl); - } - getAgentDispatcher(serverUrl) { - const parsedUrl = new URL(serverUrl); - const proxyUrl = pm.getProxyUrl(parsedUrl); - const useProxy = proxyUrl && proxyUrl.hostname; - if (!useProxy) { - return; - } - return this._getProxyAgentDispatcher(parsedUrl, proxyUrl); - } - _prepareRequest(method, requestUrl, headers) { - const info = {}; - info.parsedUrl = requestUrl; - const usingSsl = info.parsedUrl.protocol === 'https:'; - info.httpModule = usingSsl ? https : http; - const defaultPort = usingSsl ? 443 : 80; - info.options = {}; - info.options.host = info.parsedUrl.hostname; - info.options.port = info.parsedUrl.port - ? parseInt(info.parsedUrl.port) - : defaultPort; - info.options.path = - (info.parsedUrl.pathname || '') + (info.parsedUrl.search || ''); - info.options.method = method; - info.options.headers = this._mergeHeaders(headers); - if (this.userAgent != null) { - info.options.headers['user-agent'] = this.userAgent; - } - info.options.agent = this._getAgent(info.parsedUrl); - // gives handlers an opportunity to participate - if (this.handlers) { - for (const handler of this.handlers) { - handler.prepareRequest(info.options); - } + /** + * Clears the summary buffer and wipes the summary file + * + * @returns {Summary} summary instance + */ + clear() { + return __awaiter(this, void 0, void 0, function* () { + return this.emptyBuffer().write({ overwrite: true }) + }) } - return info; - } - _mergeHeaders(headers) { - if (this.requestOptions && this.requestOptions.headers) { - return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers || {})); + /** + * Returns the current summary buffer as a string + * + * @returns {string} string of summary buffer + */ + stringify() { + return this._buffer } - return lowercaseKeys(headers || {}); - } - _getExistingOrDefaultHeader(additionalHeaders, header, _default) { - let clientHeader; - if (this.requestOptions && this.requestOptions.headers) { - clientHeader = lowercaseKeys(this.requestOptions.headers)[header]; + /** + * If the summary buffer is empty + * + * @returns {boolen} true if the buffer is empty + */ + isEmptyBuffer() { + return this._buffer.length === 0 } - return additionalHeaders[header] || clientHeader || _default; - } - _getAgent(parsedUrl) { - let agent; - const proxyUrl = pm.getProxyUrl(parsedUrl); - const useProxy = proxyUrl && proxyUrl.hostname; - if (this._keepAlive && useProxy) { - agent = this._proxyAgent; - } - if (!useProxy) { - agent = this._agent; - } - // if agent is already assigned use that agent. - if (agent) { - return agent; - } - const usingSsl = parsedUrl.protocol === 'https:'; - let maxSockets = 100; - if (this.requestOptions) { - maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets; - } - // This is `useProxy` again, but we need to check `proxyURl` directly for TypeScripts's flow analysis. - if (proxyUrl && proxyUrl.hostname) { - const agentOptions = { - maxSockets, - keepAlive: this._keepAlive, - proxy: Object.assign(Object.assign({}, ((proxyUrl.username || proxyUrl.password) && { - proxyAuth: `${proxyUrl.username}:${proxyUrl.password}` - })), { host: proxyUrl.hostname, port: proxyUrl.port }) - }; - let tunnelAgent; - const overHttps = proxyUrl.protocol === 'https:'; - if (usingSsl) { - tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp; - } - else { - tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp; - } - agent = tunnelAgent(agentOptions); - this._proxyAgent = agent; + /** + * Resets the summary buffer without writing to summary file + * + * @returns {Summary} summary instance + */ + emptyBuffer() { + this._buffer = '' + return this } - // if tunneling agent isn't assigned create a new agent - if (!agent) { - const options = { keepAlive: this._keepAlive, maxSockets }; - agent = usingSsl ? new https.Agent(options) : new http.Agent(options); - this._agent = agent; + /** + * Adds raw text to the summary buffer + * + * @param {string} text content to add + * @param {boolean} [addEOL=false] (optional) append an EOL to the raw text (default: false) + * + * @returns {Summary} summary instance + */ + addRaw(text, addEOL = false) { + this._buffer += text + return addEOL ? this.addEOL() : this } - if (usingSsl && this._ignoreSslError) { - // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process - // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options - // we have to cast it to any and change it directly - agent.options = Object.assign(agent.options || {}, { - rejectUnauthorized: false - }); + /** + * Adds the operating system-specific end-of-line marker to the buffer + * + * @returns {Summary} summary instance + */ + addEOL() { + return this.addRaw(os_1.EOL) } - return agent; - } - _getProxyAgentDispatcher(parsedUrl, proxyUrl) { - let proxyAgent; - if (this._keepAlive) { - proxyAgent = this._proxyAgentDispatcher; - } - // if agent is already assigned use that agent. - if (proxyAgent) { - return proxyAgent; - } - const usingSsl = parsedUrl.protocol === 'https:'; - proxyAgent = new undici_1.ProxyAgent(Object.assign({ uri: proxyUrl.href, pipelining: !this._keepAlive ? 0 : 1 }, ((proxyUrl.username || proxyUrl.password) && { - token: `Basic ${Buffer.from(`${proxyUrl.username}:${proxyUrl.password}`).toString('base64')}` - }))); - this._proxyAgentDispatcher = proxyAgent; - if (usingSsl && this._ignoreSslError) { - // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process - // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options - // we have to cast it to any and change it directly - proxyAgent.options = Object.assign(proxyAgent.options.requestTls || {}, { - rejectUnauthorized: false - }); + /** + * Adds an HTML codeblock to the summary buffer + * + * @param {string} code content to render within fenced code block + * @param {string} lang (optional) language to syntax highlight code + * + * @returns {Summary} summary instance + */ + addCodeBlock(code, lang) { + const attrs = Object.assign({}, lang && { lang }) + const element = this.wrap('pre', this.wrap('code', code), attrs) + return this.addRaw(element).addEOL() } - return proxyAgent; - } - _performExponentialBackoff(retryNumber) { - return __awaiter(this, void 0, void 0, function* () { - retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber); - const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber); - return new Promise(resolve => setTimeout(() => resolve(), ms)); - }); - } - _processResponse(res, options) { - return __awaiter(this, void 0, void 0, function* () { - return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { - const statusCode = res.message.statusCode || 0; - const response = { - statusCode, - result: null, - headers: {} - }; - // not found leads to null obj returned - if (statusCode === HttpCodes.NotFound) { - resolve(response); - } - // get the result from the body - function dateTimeDeserializer(key, value) { - if (typeof value === 'string') { - const a = new Date(value); - if (!isNaN(a.valueOf())) { - return a; - } - } - return value; - } - let obj; - let contents; - try { - contents = yield res.readBody(); - if (contents && contents.length > 0) { - if (options && options.deserializeDates) { - obj = JSON.parse(contents, dateTimeDeserializer); - } - else { - obj = JSON.parse(contents); - } - response.result = obj; - } - response.headers = res.message.headers; - } - catch (err) { - // Invalid resource (contents not json); leaving result obj null - } - // note that 3xx redirects are handled by the http layer. - if (statusCode > 299) { - let msg; - // if exception/error in body, attempt to get better error - if (obj && obj.message) { - msg = obj.message; - } - else if (contents && contents.length > 0) { - // it may be the case that the exception is in the body message as string - msg = contents; - } - else { - msg = `Failed request: (${statusCode})`; - } - const err = new HttpClientError(msg, statusCode); - err.result = response.result; - reject(err); - } - else { - resolve(response); - } - })); - }); - } -} -exports.HttpClient = HttpClient; -const lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {}); -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ 19835: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.checkBypass = exports.getProxyUrl = void 0; -function getProxyUrl(reqUrl) { - const usingSsl = reqUrl.protocol === 'https:'; - if (checkBypass(reqUrl)) { - return undefined; - } - const proxyVar = (() => { - if (usingSsl) { - return process.env['https_proxy'] || process.env['HTTPS_PROXY']; + /** + * Adds an HTML list to the summary buffer + * + * @param {string[]} items list of items to render + * @param {boolean} [ordered=false] (optional) if the rendered list should be ordered or not (default: false) + * + * @returns {Summary} summary instance + */ + addList(items, ordered = false) { + const tag = ordered ? 'ol' : 'ul' + const listItems = items.map(item => this.wrap('li', item)).join('') + const element = this.wrap(tag, listItems) + return this.addRaw(element).addEOL() + } + /** + * Adds an HTML table to the summary buffer + * + * @param {SummaryTableCell[]} rows table rows + * + * @returns {Summary} summary instance + */ + addTable(rows) { + const tableBody = rows + .map(row => { + const cells = row + .map(cell => { + if (typeof cell === 'string') { + return this.wrap('td', cell) + } + const { header, data, colspan, rowspan } = cell + const tag = header ? 'th' : 'td' + const attrs = Object.assign( + Object.assign({}, colspan && { colspan }), + rowspan && { rowspan } + ) + return this.wrap(tag, data, attrs) + }) + .join('') + return this.wrap('tr', cells) + }) + .join('') + const element = this.wrap('table', tableBody) + return this.addRaw(element).addEOL() } - else { - return process.env['http_proxy'] || process.env['HTTP_PROXY']; + /** + * Adds a collapsable HTML details element to the summary buffer + * + * @param {string} label text for the closed state + * @param {string} content collapsable content + * + * @returns {Summary} summary instance + */ + addDetails(label, content) { + const element = this.wrap( + 'details', + this.wrap('summary', label) + content + ) + return this.addRaw(element).addEOL() } - })(); - if (proxyVar) { - try { - return new DecodedURL(proxyVar); + /** + * Adds an HTML image tag to the summary buffer + * + * @param {string} src path to the image you to embed + * @param {string} alt text description of the image + * @param {SummaryImageOptions} options (optional) addition image attributes + * + * @returns {Summary} summary instance + */ + addImage(src, alt, options) { + const { width, height } = options || {} + const attrs = Object.assign( + Object.assign({}, width && { width }), + height && { height } + ) + const element = this.wrap( + 'img', + null, + Object.assign({ src, alt }, attrs) + ) + return this.addRaw(element).addEOL() } - catch (_a) { - if (!proxyVar.startsWith('http://') && !proxyVar.startsWith('https://')) - return new DecodedURL(`http://${proxyVar}`); + /** + * Adds an HTML section heading element + * + * @param {string} text heading text + * @param {number | string} [level=1] (optional) the heading level, default: 1 + * + * @returns {Summary} summary instance + */ + addHeading(text, level) { + const tag = `h${level}` + const allowedTag = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'].includes(tag) + ? tag + : 'h1' + const element = this.wrap(allowedTag, text) + return this.addRaw(element).addEOL() } - } - else { - return undefined; - } -} -exports.getProxyUrl = getProxyUrl; -function checkBypass(reqUrl) { - if (!reqUrl.hostname) { - return false; - } - const reqHost = reqUrl.hostname; - if (isLoopbackAddress(reqHost)) { - return true; - } - const noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || ''; - if (!noProxy) { - return false; - } - // Determine the request port - let reqPort; - if (reqUrl.port) { - reqPort = Number(reqUrl.port); - } - else if (reqUrl.protocol === 'http:') { - reqPort = 80; - } - else if (reqUrl.protocol === 'https:') { - reqPort = 443; - } - // Format the request hostname and hostname with port - const upperReqHosts = [reqUrl.hostname.toUpperCase()]; - if (typeof reqPort === 'number') { - upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`); - } - // Compare request host against noproxy - for (const upperNoProxyItem of noProxy - .split(',') - .map(x => x.trim().toUpperCase()) - .filter(x => x)) { - if (upperNoProxyItem === '*' || - upperReqHosts.some(x => x === upperNoProxyItem || - x.endsWith(`.${upperNoProxyItem}`) || - (upperNoProxyItem.startsWith('.') && - x.endsWith(`${upperNoProxyItem}`)))) { - return true; + /** + * Adds an HTML thematic break (
) to the summary buffer + * + * @returns {Summary} summary instance + */ + addSeparator() { + const element = this.wrap('hr', null) + return this.addRaw(element).addEOL() } - } - return false; -} -exports.checkBypass = checkBypass; -function isLoopbackAddress(host) { - const hostLower = host.toLowerCase(); - return (hostLower === 'localhost' || - hostLower.startsWith('127.') || - hostLower.startsWith('[::1]') || - hostLower.startsWith('[0:0:0:0:0:0:0:1]')); -} -class DecodedURL extends URL { - constructor(url, base) { - super(url, base); - this._decodedUsername = decodeURIComponent(super.username); - this._decodedPassword = decodeURIComponent(super.password); - } - get username() { - return this._decodedUsername; - } - get password() { - return this._decodedPassword; - } -} -//# sourceMappingURL=proxy.js.map - -/***/ }), + /** + * Adds an HTML line break (
) to the summary buffer + * + * @returns {Summary} summary instance + */ + addBreak() { + const element = this.wrap('br', null) + return this.addRaw(element).addEOL() + } + /** + * Adds an HTML blockquote to the summary buffer + * + * @param {string} text quote text + * @param {string} cite (optional) citation url + * + * @returns {Summary} summary instance + */ + addQuote(text, cite) { + const attrs = Object.assign({}, cite && { cite }) + const element = this.wrap('blockquote', text, attrs) + return this.addRaw(element).addEOL() + } + /** + * Adds an HTML anchor tag to the summary buffer + * + * @param {string} text link text/content + * @param {string} href hyperlink + * + * @returns {Summary} summary instance + */ + addLink(text, href) { + const element = this.wrap('a', text, { href }) + return this.addRaw(element).addEOL() + } + } + const _summary = new Summary() + /** + * @deprecated use `core.summary` + */ + exports.markdownSummary = _summary + exports.summary = _summary + //# sourceMappingURL=summary.js.map -/***/ 74292: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + /***/ + }, -"use strict"; + /***/ 5278: /***/ (__unused_webpack_module, exports) => { + 'use strict' -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.resolveHttpAuthSchemeConfig = exports.defaultCloudFormationHttpAuthSchemeProvider = exports.defaultCloudFormationHttpAuthSchemeParametersProvider = void 0; -const core_1 = __nccwpck_require__(59963); -const util_middleware_1 = __nccwpck_require__(2390); -const defaultCloudFormationHttpAuthSchemeParametersProvider = async (config, context, input) => { - return { - operation: (0, util_middleware_1.getSmithyContext)(context).operation, - region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) || - (() => { - throw new Error("expected `region` to be configured for `aws.auth#sigv4`"); - })(), - }; -}; -exports.defaultCloudFormationHttpAuthSchemeParametersProvider = defaultCloudFormationHttpAuthSchemeParametersProvider; -function createAwsAuthSigv4HttpAuthOption(authParameters) { - return { - schemeId: "aws.auth#sigv4", - signingProperties: { - name: "cloudformation", - region: authParameters.region, - }, - propertiesExtractor: (config, context) => ({ - signingProperties: { - config, - context, - }, - }), - }; -} -const defaultCloudFormationHttpAuthSchemeProvider = (authParameters) => { - const options = []; - switch (authParameters.operation) { - default: { - options.push(createAwsAuthSigv4HttpAuthOption(authParameters)); + // We use any as a valid input type + /* eslint-disable @typescript-eslint/no-explicit-any */ + Object.defineProperty(exports, '__esModule', { value: true }) + exports.toCommandProperties = exports.toCommandValue = void 0 + /** + * Sanitizes an input into a string so it can be passed into issueCommand safely + * @param input input to sanitize into a string + */ + function toCommandValue(input) { + if (input === null || input === undefined) { + return '' + } else if (typeof input === 'string' || input instanceof String) { + return input } - } - return options; -}; -exports.defaultCloudFormationHttpAuthSchemeProvider = defaultCloudFormationHttpAuthSchemeProvider; -const resolveHttpAuthSchemeConfig = (config) => { - const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config); - return { - ...config_0, - }; -}; -exports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig; - - -/***/ }), - -/***/ 5640: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.defaultEndpointResolver = void 0; -const util_endpoints_1 = __nccwpck_require__(13350); -const util_endpoints_2 = __nccwpck_require__(45473); -const ruleset_1 = __nccwpck_require__(58349); -const defaultEndpointResolver = (endpointParams, context = {}) => { - return (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, { - endpointParams: endpointParams, - logger: context.logger, - }); -}; -exports.defaultEndpointResolver = defaultEndpointResolver; -util_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions; - - -/***/ }), - -/***/ 58349: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.ruleSet = void 0; -const u = "required", v = "fn", w = "argv", x = "ref"; -const a = true, b = "isSet", c = "booleanEquals", d = "error", e = "endpoint", f = "tree", g = "PartitionResult", h = "getAttr", i = { [u]: false, "type": "String" }, j = { [u]: true, "default": false, "type": "Boolean" }, k = { [x]: "Endpoint" }, l = { [v]: c, [w]: [{ [x]: "UseFIPS" }, true] }, m = { [v]: c, [w]: [{ [x]: "UseDualStack" }, true] }, n = {}, o = { [v]: h, [w]: [{ [x]: g }, "supportsFIPS"] }, p = { [x]: g }, q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, "supportsDualStack"] }] }, r = [l], s = [m], t = [{ [x]: "Region" }]; -const _data = { version: "1.0", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [v]: b, [w]: [k] }], rules: [{ conditions: r, error: "Invalid Configuration: FIPS and custom endpoint are not supported", type: d }, { conditions: s, error: "Invalid Configuration: Dualstack and custom endpoint are not supported", type: d }, { endpoint: { url: k, properties: n, headers: n }, type: e }], type: f }, { conditions: [{ [v]: b, [w]: t }], rules: [{ conditions: [{ [v]: "aws.partition", [w]: t, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [v]: c, [w]: [a, o] }, q], rules: [{ endpoint: { url: "https://cloudformation-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", properties: n, headers: n }, type: e }], type: f }, { error: "FIPS and DualStack are enabled, but this partition does not support one or both", type: d }], type: f }, { conditions: r, rules: [{ conditions: [{ [v]: c, [w]: [o, a] }], rules: [{ conditions: [{ [v]: "stringEquals", [w]: [{ [v]: h, [w]: [p, "name"] }, "aws-us-gov"] }], endpoint: { url: "https://cloudformation.{Region}.amazonaws.com", properties: n, headers: n }, type: e }, { endpoint: { url: "https://cloudformation-fips.{Region}.{PartitionResult#dnsSuffix}", properties: n, headers: n }, type: e }], type: f }, { error: "FIPS is enabled but this partition does not support FIPS", type: d }], type: f }, { conditions: s, rules: [{ conditions: [q], rules: [{ endpoint: { url: "https://cloudformation.{Region}.{PartitionResult#dualStackDnsSuffix}", properties: n, headers: n }, type: e }], type: f }, { error: "DualStack is enabled but this partition does not support DualStack", type: d }], type: f }, { endpoint: { url: "https://cloudformation.{Region}.{PartitionResult#dnsSuffix}", properties: n, headers: n }, type: e }], type: f }], type: f }, { error: "Invalid Configuration: Missing Region", type: d }] }; -exports.ruleSet = _data; - - -/***/ }), - -/***/ 15650: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - AccountFilterType: () => AccountFilterType, - AccountGateStatus: () => AccountGateStatus, - ActivateOrganizationsAccessCommand: () => ActivateOrganizationsAccessCommand, - ActivateTypeCommand: () => ActivateTypeCommand, - AlreadyExistsException: () => AlreadyExistsException, - AttributeChangeType: () => AttributeChangeType, - BatchDescribeTypeConfigurationsCommand: () => BatchDescribeTypeConfigurationsCommand, - CFNRegistryException: () => CFNRegistryException, - CallAs: () => CallAs, - CancelUpdateStackCommand: () => CancelUpdateStackCommand, - Capability: () => Capability, - Category: () => Category, - ChangeAction: () => ChangeAction, - ChangeSetHooksStatus: () => ChangeSetHooksStatus, - ChangeSetNotFoundException: () => ChangeSetNotFoundException, - ChangeSetStatus: () => ChangeSetStatus, - ChangeSetType: () => ChangeSetType, - ChangeSource: () => ChangeSource, - ChangeType: () => ChangeType, - CloudFormation: () => CloudFormation, - CloudFormationClient: () => CloudFormationClient, - CloudFormationServiceException: () => CloudFormationServiceException, - ConcurrencyMode: () => ConcurrencyMode, - ConcurrentResourcesLimitExceededException: () => ConcurrentResourcesLimitExceededException, - ContinueUpdateRollbackCommand: () => ContinueUpdateRollbackCommand, - CreateChangeSetCommand: () => CreateChangeSetCommand, - CreateGeneratedTemplateCommand: () => CreateGeneratedTemplateCommand, - CreateStackCommand: () => CreateStackCommand, - CreateStackInstancesCommand: () => CreateStackInstancesCommand, - CreateStackSetCommand: () => CreateStackSetCommand, - CreatedButModifiedException: () => CreatedButModifiedException, - DeactivateOrganizationsAccessCommand: () => DeactivateOrganizationsAccessCommand, - DeactivateTypeCommand: () => DeactivateTypeCommand, - DeleteChangeSetCommand: () => DeleteChangeSetCommand, - DeleteGeneratedTemplateCommand: () => DeleteGeneratedTemplateCommand, - DeleteStackCommand: () => DeleteStackCommand, - DeleteStackInstancesCommand: () => DeleteStackInstancesCommand, - DeleteStackSetCommand: () => DeleteStackSetCommand, - DeletionMode: () => DeletionMode, - DeprecatedStatus: () => DeprecatedStatus, - DeregisterTypeCommand: () => DeregisterTypeCommand, - DescribeAccountLimitsCommand: () => DescribeAccountLimitsCommand, - DescribeChangeSetCommand: () => DescribeChangeSetCommand, - DescribeChangeSetHooksCommand: () => DescribeChangeSetHooksCommand, - DescribeGeneratedTemplateCommand: () => DescribeGeneratedTemplateCommand, - DescribeOrganizationsAccessCommand: () => DescribeOrganizationsAccessCommand, - DescribePublisherCommand: () => DescribePublisherCommand, - DescribeResourceScanCommand: () => DescribeResourceScanCommand, - DescribeStackDriftDetectionStatusCommand: () => DescribeStackDriftDetectionStatusCommand, - DescribeStackEventsCommand: () => DescribeStackEventsCommand, - DescribeStackInstanceCommand: () => DescribeStackInstanceCommand, - DescribeStackResourceCommand: () => DescribeStackResourceCommand, - DescribeStackResourceDriftsCommand: () => DescribeStackResourceDriftsCommand, - DescribeStackResourcesCommand: () => DescribeStackResourcesCommand, - DescribeStackSetCommand: () => DescribeStackSetCommand, - DescribeStackSetOperationCommand: () => DescribeStackSetOperationCommand, - DescribeStacksCommand: () => DescribeStacksCommand, - DescribeTypeCommand: () => DescribeTypeCommand, - DescribeTypeRegistrationCommand: () => DescribeTypeRegistrationCommand, - DetailedStatus: () => DetailedStatus, - DetectStackDriftCommand: () => DetectStackDriftCommand, - DetectStackResourceDriftCommand: () => DetectStackResourceDriftCommand, - DetectStackSetDriftCommand: () => DetectStackSetDriftCommand, - DifferenceType: () => DifferenceType, - EstimateTemplateCostCommand: () => EstimateTemplateCostCommand, - EvaluationType: () => EvaluationType, - ExecuteChangeSetCommand: () => ExecuteChangeSetCommand, - ExecutionStatus: () => ExecutionStatus, - GeneratedTemplateDeletionPolicy: () => GeneratedTemplateDeletionPolicy, - GeneratedTemplateNotFoundException: () => GeneratedTemplateNotFoundException, - GeneratedTemplateResourceStatus: () => GeneratedTemplateResourceStatus, - GeneratedTemplateStatus: () => GeneratedTemplateStatus, - GeneratedTemplateUpdateReplacePolicy: () => GeneratedTemplateUpdateReplacePolicy, - GetGeneratedTemplateCommand: () => GetGeneratedTemplateCommand, - GetStackPolicyCommand: () => GetStackPolicyCommand, - GetTemplateCommand: () => GetTemplateCommand, - GetTemplateSummaryCommand: () => GetTemplateSummaryCommand, - HandlerErrorCode: () => HandlerErrorCode, - HookFailureMode: () => HookFailureMode, - HookInvocationPoint: () => HookInvocationPoint, - HookStatus: () => HookStatus, - HookTargetType: () => HookTargetType, - IdentityProvider: () => IdentityProvider, - ImportStacksToStackSetCommand: () => ImportStacksToStackSetCommand, - InsufficientCapabilitiesException: () => InsufficientCapabilitiesException, - InvalidChangeSetStatusException: () => InvalidChangeSetStatusException, - InvalidOperationException: () => InvalidOperationException, - InvalidStateTransitionException: () => InvalidStateTransitionException, - LimitExceededException: () => LimitExceededException, - ListChangeSetsCommand: () => ListChangeSetsCommand, - ListExportsCommand: () => ListExportsCommand, - ListGeneratedTemplatesCommand: () => ListGeneratedTemplatesCommand, - ListImportsCommand: () => ListImportsCommand, - ListResourceScanRelatedResourcesCommand: () => ListResourceScanRelatedResourcesCommand, - ListResourceScanResourcesCommand: () => ListResourceScanResourcesCommand, - ListResourceScansCommand: () => ListResourceScansCommand, - ListStackInstanceResourceDriftsCommand: () => ListStackInstanceResourceDriftsCommand, - ListStackInstancesCommand: () => ListStackInstancesCommand, - ListStackResourcesCommand: () => ListStackResourcesCommand, - ListStackSetAutoDeploymentTargetsCommand: () => ListStackSetAutoDeploymentTargetsCommand, - ListStackSetOperationResultsCommand: () => ListStackSetOperationResultsCommand, - ListStackSetOperationsCommand: () => ListStackSetOperationsCommand, - ListStackSetsCommand: () => ListStackSetsCommand, - ListStacksCommand: () => ListStacksCommand, - ListTypeRegistrationsCommand: () => ListTypeRegistrationsCommand, - ListTypeVersionsCommand: () => ListTypeVersionsCommand, - ListTypesCommand: () => ListTypesCommand, - NameAlreadyExistsException: () => NameAlreadyExistsException, - OnFailure: () => OnFailure, - OnStackFailure: () => OnStackFailure, - OperationIdAlreadyExistsException: () => OperationIdAlreadyExistsException, - OperationInProgressException: () => OperationInProgressException, - OperationNotFoundException: () => OperationNotFoundException, - OperationResultFilterName: () => OperationResultFilterName, - OperationStatus: () => OperationStatus, - OperationStatusCheckFailedException: () => OperationStatusCheckFailedException, - OrganizationStatus: () => OrganizationStatus, - PermissionModels: () => PermissionModels, - PolicyAction: () => PolicyAction, - ProvisioningType: () => ProvisioningType, - PublishTypeCommand: () => PublishTypeCommand, - PublisherStatus: () => PublisherStatus, - RecordHandlerProgressCommand: () => RecordHandlerProgressCommand, - RegionConcurrencyType: () => RegionConcurrencyType, - RegisterPublisherCommand: () => RegisterPublisherCommand, - RegisterTypeCommand: () => RegisterTypeCommand, - RegistrationStatus: () => RegistrationStatus, - RegistryType: () => RegistryType, - Replacement: () => Replacement, - RequiresRecreation: () => RequiresRecreation, - ResourceAttribute: () => ResourceAttribute, - ResourceScanInProgressException: () => ResourceScanInProgressException, - ResourceScanLimitExceededException: () => ResourceScanLimitExceededException, - ResourceScanNotFoundException: () => ResourceScanNotFoundException, - ResourceScanStatus: () => ResourceScanStatus, - ResourceSignalStatus: () => ResourceSignalStatus, - ResourceStatus: () => ResourceStatus, - RollbackStackCommand: () => RollbackStackCommand, - SetStackPolicyCommand: () => SetStackPolicyCommand, - SetTypeConfigurationCommand: () => SetTypeConfigurationCommand, - SetTypeDefaultVersionCommand: () => SetTypeDefaultVersionCommand, - SignalResourceCommand: () => SignalResourceCommand, - StackDriftDetectionStatus: () => StackDriftDetectionStatus, - StackDriftStatus: () => StackDriftStatus, - StackInstanceDetailedStatus: () => StackInstanceDetailedStatus, - StackInstanceFilterName: () => StackInstanceFilterName, - StackInstanceNotFoundException: () => StackInstanceNotFoundException, - StackInstanceStatus: () => StackInstanceStatus, - StackNotFoundException: () => StackNotFoundException, - StackResourceDriftStatus: () => StackResourceDriftStatus, - StackSetDriftDetectionStatus: () => StackSetDriftDetectionStatus, - StackSetDriftStatus: () => StackSetDriftStatus, - StackSetNotEmptyException: () => StackSetNotEmptyException, - StackSetNotFoundException: () => StackSetNotFoundException, - StackSetOperationAction: () => StackSetOperationAction, - StackSetOperationResultStatus: () => StackSetOperationResultStatus, - StackSetOperationStatus: () => StackSetOperationStatus, - StackSetStatus: () => StackSetStatus, - StackStatus: () => StackStatus, - StaleRequestException: () => StaleRequestException, - StartResourceScanCommand: () => StartResourceScanCommand, - StopStackSetOperationCommand: () => StopStackSetOperationCommand, - TemplateFormat: () => TemplateFormat, - TemplateStage: () => TemplateStage, - TestTypeCommand: () => TestTypeCommand, - ThirdPartyType: () => ThirdPartyType, - TokenAlreadyExistsException: () => TokenAlreadyExistsException, - TypeConfigurationNotFoundException: () => TypeConfigurationNotFoundException, - TypeNotFoundException: () => TypeNotFoundException, - TypeTestsStatus: () => TypeTestsStatus, - UpdateGeneratedTemplateCommand: () => UpdateGeneratedTemplateCommand, - UpdateStackCommand: () => UpdateStackCommand, - UpdateStackInstancesCommand: () => UpdateStackInstancesCommand, - UpdateStackSetCommand: () => UpdateStackSetCommand, - UpdateTerminationProtectionCommand: () => UpdateTerminationProtectionCommand, - ValidateTemplateCommand: () => ValidateTemplateCommand, - VersionBump: () => VersionBump, - Visibility: () => Visibility, - WarningType: () => WarningType, - __Client: () => import_smithy_client.Client, - paginateDescribeAccountLimits: () => paginateDescribeAccountLimits, - paginateDescribeStackEvents: () => paginateDescribeStackEvents, - paginateDescribeStackResourceDrifts: () => paginateDescribeStackResourceDrifts, - paginateDescribeStacks: () => paginateDescribeStacks, - paginateListChangeSets: () => paginateListChangeSets, - paginateListExports: () => paginateListExports, - paginateListGeneratedTemplates: () => paginateListGeneratedTemplates, - paginateListImports: () => paginateListImports, - paginateListResourceScanRelatedResources: () => paginateListResourceScanRelatedResources, - paginateListResourceScanResources: () => paginateListResourceScanResources, - paginateListResourceScans: () => paginateListResourceScans, - paginateListStackInstances: () => paginateListStackInstances, - paginateListStackResources: () => paginateListStackResources, - paginateListStackSetOperationResults: () => paginateListStackSetOperationResults, - paginateListStackSetOperations: () => paginateListStackSetOperations, - paginateListStackSets: () => paginateListStackSets, - paginateListStacks: () => paginateListStacks, - paginateListTypeRegistrations: () => paginateListTypeRegistrations, - paginateListTypeVersions: () => paginateListTypeVersions, - paginateListTypes: () => paginateListTypes, - waitForChangeSetCreateComplete: () => waitForChangeSetCreateComplete, - waitForStackCreateComplete: () => waitForStackCreateComplete, - waitForStackDeleteComplete: () => waitForStackDeleteComplete, - waitForStackExists: () => waitForStackExists, - waitForStackImportComplete: () => waitForStackImportComplete, - waitForStackRollbackComplete: () => waitForStackRollbackComplete, - waitForStackUpdateComplete: () => waitForStackUpdateComplete, - waitForTypeRegistrationComplete: () => waitForTypeRegistrationComplete, - waitUntilChangeSetCreateComplete: () => waitUntilChangeSetCreateComplete, - waitUntilStackCreateComplete: () => waitUntilStackCreateComplete, - waitUntilStackDeleteComplete: () => waitUntilStackDeleteComplete, - waitUntilStackExists: () => waitUntilStackExists, - waitUntilStackImportComplete: () => waitUntilStackImportComplete, - waitUntilStackRollbackComplete: () => waitUntilStackRollbackComplete, - waitUntilStackUpdateComplete: () => waitUntilStackUpdateComplete, - waitUntilTypeRegistrationComplete: () => waitUntilTypeRegistrationComplete -}); -module.exports = __toCommonJS(src_exports); - -// src/CloudFormationClient.ts -var import_middleware_host_header = __nccwpck_require__(22545); -var import_middleware_logger = __nccwpck_require__(20014); -var import_middleware_recursion_detection = __nccwpck_require__(85525); -var import_middleware_user_agent = __nccwpck_require__(64688); -var import_config_resolver = __nccwpck_require__(53098); -var import_core = __nccwpck_require__(55829); -var import_middleware_content_length = __nccwpck_require__(82800); -var import_middleware_endpoint = __nccwpck_require__(82918); -var import_middleware_retry = __nccwpck_require__(96039); - -var import_httpAuthSchemeProvider = __nccwpck_require__(74292); - -// src/endpoint/EndpointParameters.ts -var resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => { - return { - ...options, - useDualstackEndpoint: options.useDualstackEndpoint ?? false, - useFipsEndpoint: options.useFipsEndpoint ?? false, - defaultSigningName: "cloudformation" - }; -}, "resolveClientEndpointParameters"); -var commonParams = { - UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" }, - Endpoint: { type: "builtInParams", name: "endpoint" }, - Region: { type: "builtInParams", name: "region" }, - UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" } -}; - -// src/CloudFormationClient.ts -var import_runtimeConfig = __nccwpck_require__(82643); - -// src/runtimeExtensions.ts -var import_region_config_resolver = __nccwpck_require__(18156); -var import_protocol_http = __nccwpck_require__(64418); -var import_smithy_client = __nccwpck_require__(63570); - -// src/auth/httpAuthExtensionConfiguration.ts -var getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => { - const _httpAuthSchemes = runtimeConfig.httpAuthSchemes; - let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider; - let _credentials = runtimeConfig.credentials; - return { - setHttpAuthScheme(httpAuthScheme) { - const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId); - if (index === -1) { - _httpAuthSchemes.push(httpAuthScheme); - } else { - _httpAuthSchemes.splice(index, 1, httpAuthScheme); + return JSON.stringify(input) } + exports.toCommandValue = toCommandValue + /** + * + * @param annotationProperties + * @returns The command properties to send with the actual annotation command + * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646 + */ + function toCommandProperties(annotationProperties) { + if (!Object.keys(annotationProperties).length) { + return {} + } + return { + title: annotationProperties.title, + file: annotationProperties.file, + line: annotationProperties.startLine, + endLine: annotationProperties.endLine, + col: annotationProperties.startColumn, + endColumn: annotationProperties.endColumn + } + } + exports.toCommandProperties = toCommandProperties + //# sourceMappingURL=utils.js.map + + /***/ }, - httpAuthSchemes() { - return _httpAuthSchemes; - }, - setHttpAuthSchemeProvider(httpAuthSchemeProvider) { - _httpAuthSchemeProvider = httpAuthSchemeProvider; - }, - httpAuthSchemeProvider() { - return _httpAuthSchemeProvider; - }, - setCredentials(credentials) { - _credentials = credentials; - }, - credentials() { - return _credentials; - } - }; -}, "getHttpAuthExtensionConfiguration"); -var resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => { - return { - httpAuthSchemes: config.httpAuthSchemes(), - httpAuthSchemeProvider: config.httpAuthSchemeProvider(), - credentials: config.credentials() - }; -}, "resolveHttpAuthRuntimeConfig"); - -// src/runtimeExtensions.ts -var asPartial = /* @__PURE__ */ __name((t) => t, "asPartial"); -var resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => { - const extensionConfiguration = { - ...asPartial((0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig)), - ...asPartial((0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig)), - ...asPartial((0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig)), - ...asPartial(getHttpAuthExtensionConfiguration(runtimeConfig)) - }; - extensions.forEach((extension) => extension.configure(extensionConfiguration)); - return { - ...runtimeConfig, - ...(0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration), - ...(0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration), - ...(0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration), - ...resolveHttpAuthRuntimeConfig(extensionConfiguration) - }; -}, "resolveRuntimeExtensions"); - -// src/CloudFormationClient.ts -var _CloudFormationClient = class _CloudFormationClient extends import_smithy_client.Client { - constructor(...[configuration]) { - const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {}); - const _config_1 = resolveClientEndpointParameters(_config_0); - const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1); - const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2); - const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3); - const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4); - const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5); - const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6); - const _config_8 = resolveRuntimeExtensions(_config_7, (configuration == null ? void 0 : configuration.extensions) || []); - super(_config_8); - this.config = _config_8; - this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config)); - this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config)); - this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config)); - this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config)); - this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config)); - this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config)); - this.middlewareStack.use( - (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, { - httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultCloudFormationHttpAuthSchemeParametersProvider, - identityProviderConfigProvider: async (config) => new import_core.DefaultIdentityProviderConfig({ - "aws.auth#sigv4": config.credentials - }) - }) - ); - this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config)); - } - /** - * Destroy underlying resources, like sockets. It's usually not necessary to do this. - * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed. - * Otherwise, sockets might stay open for quite a long time before the server terminates them. - */ - destroy() { - super.destroy(); - } -}; -__name(_CloudFormationClient, "CloudFormationClient"); -var CloudFormationClient = _CloudFormationClient; -// src/CloudFormation.ts + /***/ 35526: /***/ function (__unused_webpack_module, exports) { + 'use strict' + + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step( + (generator = generator.apply(thisArg, _arguments || [])).next() + ) + }) + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.PersonalAccessTokenCredentialHandler = + exports.BearerCredentialHandler = + exports.BasicCredentialHandler = + void 0 + class BasicCredentialHandler { + constructor(username, password) { + this.username = username + this.password = password + } + prepareRequest(options) { + if (!options.headers) { + throw Error('The request has no headers') + } + options.headers['Authorization'] = + `Basic ${Buffer.from(`${this.username}:${this.password}`).toString('base64')}` + } + // This handler cannot handle 401 + canHandleAuthentication() { + return false + } + handleAuthentication() { + return __awaiter(this, void 0, void 0, function* () { + throw new Error('not implemented') + }) + } + } + exports.BasicCredentialHandler = BasicCredentialHandler + class BearerCredentialHandler { + constructor(token) { + this.token = token + } + // currently implements pre-authorization + // TODO: support preAuth = false where it hooks on 401 + prepareRequest(options) { + if (!options.headers) { + throw Error('The request has no headers') + } + options.headers['Authorization'] = `Bearer ${this.token}` + } + // This handler cannot handle 401 + canHandleAuthentication() { + return false + } + handleAuthentication() { + return __awaiter(this, void 0, void 0, function* () { + throw new Error('not implemented') + }) + } + } + exports.BearerCredentialHandler = BearerCredentialHandler + class PersonalAccessTokenCredentialHandler { + constructor(token) { + this.token = token + } + // currently implements pre-authorization + // TODO: support preAuth = false where it hooks on 401 + prepareRequest(options) { + if (!options.headers) { + throw Error('The request has no headers') + } + options.headers['Authorization'] = + `Basic ${Buffer.from(`PAT:${this.token}`).toString('base64')}` + } + // This handler cannot handle 401 + canHandleAuthentication() { + return false + } + handleAuthentication() { + return __awaiter(this, void 0, void 0, function* () { + throw new Error('not implemented') + }) + } + } + exports.PersonalAccessTokenCredentialHandler = + PersonalAccessTokenCredentialHandler + //# sourceMappingURL=auth.js.map + /***/ + }, -// src/commands/ActivateOrganizationsAccessCommand.ts + /***/ 96255: /***/ function ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) { + 'use strict' + + /* eslint-disable @typescript-eslint/no-explicit-any */ + var __createBinding = + (this && this.__createBinding) || + (Object.create + ? function (o, m, k, k2) { + if (k2 === undefined) k2 = k + var desc = Object.getOwnPropertyDescriptor(m, k) + if ( + !desc || + ('get' in desc + ? !m.__esModule + : desc.writable || desc.configurable) + ) { + desc = { + enumerable: true, + get: function () { + return m[k] + } + } + } + Object.defineProperty(o, k2, desc) + } + : function (o, m, k, k2) { + if (k2 === undefined) k2 = k + o[k2] = m[k] + }) + var __setModuleDefault = + (this && this.__setModuleDefault) || + (Object.create + ? function (o, v) { + Object.defineProperty(o, 'default', { + enumerable: true, + value: v + }) + } + : function (o, v) { + o['default'] = v + }) + var __importStar = + (this && this.__importStar) || + function (mod) { + if (mod && mod.__esModule) return mod + var result = {} + if (mod != null) + for (var k in mod) + if ( + k !== 'default' && + Object.prototype.hasOwnProperty.call(mod, k) + ) + __createBinding(result, mod, k) + __setModuleDefault(result, mod) + return result + } + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step( + (generator = generator.apply(thisArg, _arguments || [])).next() + ) + }) + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.HttpClient = + exports.isHttps = + exports.HttpClientResponse = + exports.HttpClientError = + exports.getProxyUrl = + exports.MediaTypes = + exports.Headers = + exports.HttpCodes = + void 0 + const http = __importStar(__nccwpck_require__(13685)) + const https = __importStar(__nccwpck_require__(95687)) + const pm = __importStar(__nccwpck_require__(19835)) + const tunnel = __importStar(__nccwpck_require__(74294)) + const undici_1 = __nccwpck_require__(41773) + var HttpCodes + ;(function (HttpCodes) { + HttpCodes[(HttpCodes['OK'] = 200)] = 'OK' + HttpCodes[(HttpCodes['MultipleChoices'] = 300)] = 'MultipleChoices' + HttpCodes[(HttpCodes['MovedPermanently'] = 301)] = 'MovedPermanently' + HttpCodes[(HttpCodes['ResourceMoved'] = 302)] = 'ResourceMoved' + HttpCodes[(HttpCodes['SeeOther'] = 303)] = 'SeeOther' + HttpCodes[(HttpCodes['NotModified'] = 304)] = 'NotModified' + HttpCodes[(HttpCodes['UseProxy'] = 305)] = 'UseProxy' + HttpCodes[(HttpCodes['SwitchProxy'] = 306)] = 'SwitchProxy' + HttpCodes[(HttpCodes['TemporaryRedirect'] = 307)] = 'TemporaryRedirect' + HttpCodes[(HttpCodes['PermanentRedirect'] = 308)] = 'PermanentRedirect' + HttpCodes[(HttpCodes['BadRequest'] = 400)] = 'BadRequest' + HttpCodes[(HttpCodes['Unauthorized'] = 401)] = 'Unauthorized' + HttpCodes[(HttpCodes['PaymentRequired'] = 402)] = 'PaymentRequired' + HttpCodes[(HttpCodes['Forbidden'] = 403)] = 'Forbidden' + HttpCodes[(HttpCodes['NotFound'] = 404)] = 'NotFound' + HttpCodes[(HttpCodes['MethodNotAllowed'] = 405)] = 'MethodNotAllowed' + HttpCodes[(HttpCodes['NotAcceptable'] = 406)] = 'NotAcceptable' + HttpCodes[(HttpCodes['ProxyAuthenticationRequired'] = 407)] = + 'ProxyAuthenticationRequired' + HttpCodes[(HttpCodes['RequestTimeout'] = 408)] = 'RequestTimeout' + HttpCodes[(HttpCodes['Conflict'] = 409)] = 'Conflict' + HttpCodes[(HttpCodes['Gone'] = 410)] = 'Gone' + HttpCodes[(HttpCodes['TooManyRequests'] = 429)] = 'TooManyRequests' + HttpCodes[(HttpCodes['InternalServerError'] = 500)] = + 'InternalServerError' + HttpCodes[(HttpCodes['NotImplemented'] = 501)] = 'NotImplemented' + HttpCodes[(HttpCodes['BadGateway'] = 502)] = 'BadGateway' + HttpCodes[(HttpCodes['ServiceUnavailable'] = 503)] = + 'ServiceUnavailable' + HttpCodes[(HttpCodes['GatewayTimeout'] = 504)] = 'GatewayTimeout' + })(HttpCodes || (exports.HttpCodes = HttpCodes = {})) + var Headers + ;(function (Headers) { + Headers['Accept'] = 'accept' + Headers['ContentType'] = 'content-type' + })(Headers || (exports.Headers = Headers = {})) + var MediaTypes + ;(function (MediaTypes) { + MediaTypes['ApplicationJson'] = 'application/json' + })(MediaTypes || (exports.MediaTypes = MediaTypes = {})) + /** + * Returns the proxy URL, depending upon the supplied url and proxy environment variables. + * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com + */ + function getProxyUrl(serverUrl) { + const proxyUrl = pm.getProxyUrl(new URL(serverUrl)) + return proxyUrl ? proxyUrl.href : '' + } + exports.getProxyUrl = getProxyUrl + const HttpRedirectCodes = [ + HttpCodes.MovedPermanently, + HttpCodes.ResourceMoved, + HttpCodes.SeeOther, + HttpCodes.TemporaryRedirect, + HttpCodes.PermanentRedirect + ] + const HttpResponseRetryCodes = [ + HttpCodes.BadGateway, + HttpCodes.ServiceUnavailable, + HttpCodes.GatewayTimeout + ] + const RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'] + const ExponentialBackoffCeiling = 10 + const ExponentialBackoffTimeSlice = 5 + class HttpClientError extends Error { + constructor(message, statusCode) { + super(message) + this.name = 'HttpClientError' + this.statusCode = statusCode + Object.setPrototypeOf(this, HttpClientError.prototype) + } + } + exports.HttpClientError = HttpClientError + class HttpClientResponse { + constructor(message) { + this.message = message + } + readBody() { + return __awaiter(this, void 0, void 0, function* () { + return new Promise(resolve => + __awaiter(this, void 0, void 0, function* () { + let output = Buffer.alloc(0) + this.message.on('data', chunk => { + output = Buffer.concat([output, chunk]) + }) + this.message.on('end', () => { + resolve(output.toString()) + }) + }) + ) + }) + } + readBodyBuffer() { + return __awaiter(this, void 0, void 0, function* () { + return new Promise(resolve => + __awaiter(this, void 0, void 0, function* () { + const chunks = [] + this.message.on('data', chunk => { + chunks.push(chunk) + }) + this.message.on('end', () => { + resolve(Buffer.concat(chunks)) + }) + }) + ) + }) + } + } + exports.HttpClientResponse = HttpClientResponse + function isHttps(requestUrl) { + const parsedUrl = new URL(requestUrl) + return parsedUrl.protocol === 'https:' + } + exports.isHttps = isHttps + class HttpClient { + constructor(userAgent, handlers, requestOptions) { + this._ignoreSslError = false + this._allowRedirects = true + this._allowRedirectDowngrade = false + this._maxRedirects = 50 + this._allowRetries = false + this._maxRetries = 1 + this._keepAlive = false + this._disposed = false + this.userAgent = userAgent + this.handlers = handlers || [] + this.requestOptions = requestOptions + if (requestOptions) { + if (requestOptions.ignoreSslError != null) { + this._ignoreSslError = requestOptions.ignoreSslError + } + this._socketTimeout = requestOptions.socketTimeout + if (requestOptions.allowRedirects != null) { + this._allowRedirects = requestOptions.allowRedirects + } + if (requestOptions.allowRedirectDowngrade != null) { + this._allowRedirectDowngrade = + requestOptions.allowRedirectDowngrade + } + if (requestOptions.maxRedirects != null) { + this._maxRedirects = Math.max(requestOptions.maxRedirects, 0) + } + if (requestOptions.keepAlive != null) { + this._keepAlive = requestOptions.keepAlive + } + if (requestOptions.allowRetries != null) { + this._allowRetries = requestOptions.allowRetries + } + if (requestOptions.maxRetries != null) { + this._maxRetries = requestOptions.maxRetries + } + } + } + options(requestUrl, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request( + 'OPTIONS', + requestUrl, + null, + additionalHeaders || {} + ) + }) + } + get(requestUrl, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request( + 'GET', + requestUrl, + null, + additionalHeaders || {} + ) + }) + } + del(requestUrl, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request( + 'DELETE', + requestUrl, + null, + additionalHeaders || {} + ) + }) + } + post(requestUrl, data, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request( + 'POST', + requestUrl, + data, + additionalHeaders || {} + ) + }) + } + patch(requestUrl, data, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request( + 'PATCH', + requestUrl, + data, + additionalHeaders || {} + ) + }) + } + put(requestUrl, data, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request( + 'PUT', + requestUrl, + data, + additionalHeaders || {} + ) + }) + } + head(requestUrl, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request( + 'HEAD', + requestUrl, + null, + additionalHeaders || {} + ) + }) + } + sendStream(verb, requestUrl, stream, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request(verb, requestUrl, stream, additionalHeaders) + }) + } + /** + * Gets a typed object from an endpoint + * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise + */ + getJson(requestUrl, additionalHeaders = {}) { + return __awaiter(this, void 0, void 0, function* () { + additionalHeaders[Headers.Accept] = + this._getExistingOrDefaultHeader( + additionalHeaders, + Headers.Accept, + MediaTypes.ApplicationJson + ) + const res = yield this.get(requestUrl, additionalHeaders) + return this._processResponse(res, this.requestOptions) + }) + } + postJson(requestUrl, obj, additionalHeaders = {}) { + return __awaiter(this, void 0, void 0, function* () { + const data = JSON.stringify(obj, null, 2) + additionalHeaders[Headers.Accept] = + this._getExistingOrDefaultHeader( + additionalHeaders, + Headers.Accept, + MediaTypes.ApplicationJson + ) + additionalHeaders[Headers.ContentType] = + this._getExistingOrDefaultHeader( + additionalHeaders, + Headers.ContentType, + MediaTypes.ApplicationJson + ) + const res = yield this.post(requestUrl, data, additionalHeaders) + return this._processResponse(res, this.requestOptions) + }) + } + putJson(requestUrl, obj, additionalHeaders = {}) { + return __awaiter(this, void 0, void 0, function* () { + const data = JSON.stringify(obj, null, 2) + additionalHeaders[Headers.Accept] = + this._getExistingOrDefaultHeader( + additionalHeaders, + Headers.Accept, + MediaTypes.ApplicationJson + ) + additionalHeaders[Headers.ContentType] = + this._getExistingOrDefaultHeader( + additionalHeaders, + Headers.ContentType, + MediaTypes.ApplicationJson + ) + const res = yield this.put(requestUrl, data, additionalHeaders) + return this._processResponse(res, this.requestOptions) + }) + } + patchJson(requestUrl, obj, additionalHeaders = {}) { + return __awaiter(this, void 0, void 0, function* () { + const data = JSON.stringify(obj, null, 2) + additionalHeaders[Headers.Accept] = + this._getExistingOrDefaultHeader( + additionalHeaders, + Headers.Accept, + MediaTypes.ApplicationJson + ) + additionalHeaders[Headers.ContentType] = + this._getExistingOrDefaultHeader( + additionalHeaders, + Headers.ContentType, + MediaTypes.ApplicationJson + ) + const res = yield this.patch(requestUrl, data, additionalHeaders) + return this._processResponse(res, this.requestOptions) + }) + } + /** + * Makes a raw http request. + * All other methods such as get, post, patch, and request ultimately call this. + * Prefer get, del, post and patch + */ + request(verb, requestUrl, data, headers) { + return __awaiter(this, void 0, void 0, function* () { + if (this._disposed) { + throw new Error('Client has already been disposed.') + } + const parsedUrl = new URL(requestUrl) + let info = this._prepareRequest(verb, parsedUrl, headers) + // Only perform retries on reads since writes may not be idempotent. + const maxTries = + this._allowRetries && RetryableHttpVerbs.includes(verb) + ? this._maxRetries + 1 + : 1 + let numTries = 0 + let response + do { + response = yield this.requestRaw(info, data) + // Check if it's an authentication challenge + if ( + response && + response.message && + response.message.statusCode === HttpCodes.Unauthorized + ) { + let authenticationHandler + for (const handler of this.handlers) { + if (handler.canHandleAuthentication(response)) { + authenticationHandler = handler + break + } + } + if (authenticationHandler) { + return authenticationHandler.handleAuthentication( + this, + info, + data + ) + } else { + // We have received an unauthorized response but have no handlers to handle it. + // Let the response return to the caller. + return response + } + } + let redirectsRemaining = this._maxRedirects + while ( + response.message.statusCode && + HttpRedirectCodes.includes(response.message.statusCode) && + this._allowRedirects && + redirectsRemaining > 0 + ) { + const redirectUrl = response.message.headers['location'] + if (!redirectUrl) { + // if there's no location to redirect to, we won't + break + } + const parsedRedirectUrl = new URL(redirectUrl) + if ( + parsedUrl.protocol === 'https:' && + parsedUrl.protocol !== parsedRedirectUrl.protocol && + !this._allowRedirectDowngrade + ) { + throw new Error( + 'Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.' + ) + } + // we need to finish reading the response before reassigning response + // which will leak the open socket. + yield response.readBody() + // strip authorization header if redirected to a different hostname + if (parsedRedirectUrl.hostname !== parsedUrl.hostname) { + for (const header in headers) { + // header names are case insensitive + if (header.toLowerCase() === 'authorization') { + delete headers[header] + } + } + } + // let's make the request with the new redirectUrl + info = this._prepareRequest(verb, parsedRedirectUrl, headers) + response = yield this.requestRaw(info, data) + redirectsRemaining-- + } + if ( + !response.message.statusCode || + !HttpResponseRetryCodes.includes(response.message.statusCode) + ) { + // If not a retry code, return immediately instead of retrying + return response + } + numTries += 1 + if (numTries < maxTries) { + yield response.readBody() + yield this._performExponentialBackoff(numTries) + } + } while (numTries < maxTries) + return response + }) + } + /** + * Needs to be called if keepAlive is set to true in request options. + */ + dispose() { + if (this._agent) { + this._agent.destroy() + } + this._disposed = true + } + /** + * Raw request. + * @param info + * @param data + */ + requestRaw(info, data) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => { + function callbackForResult(err, res) { + if (err) { + reject(err) + } else if (!res) { + // If `err` is not passed, then `res` must be passed. + reject(new Error('Unknown error')) + } else { + resolve(res) + } + } + this.requestRawWithCallback(info, data, callbackForResult) + }) + }) + } + /** + * Raw request with callback. + * @param info + * @param data + * @param onResult + */ + requestRawWithCallback(info, data, onResult) { + if (typeof data === 'string') { + if (!info.options.headers) { + info.options.headers = {} + } + info.options.headers['Content-Length'] = Buffer.byteLength( + data, + 'utf8' + ) + } + let callbackCalled = false + function handleResult(err, res) { + if (!callbackCalled) { + callbackCalled = true + onResult(err, res) + } + } + const req = info.httpModule.request(info.options, msg => { + const res = new HttpClientResponse(msg) + handleResult(undefined, res) + }) + let socket + req.on('socket', sock => { + socket = sock + }) + // If we ever get disconnected, we want the socket to timeout eventually + req.setTimeout(this._socketTimeout || 3 * 60000, () => { + if (socket) { + socket.end() + } + handleResult(new Error(`Request timeout: ${info.options.path}`)) + }) + req.on('error', function (err) { + // err has statusCode property + // res should have headers + handleResult(err) + }) + if (data && typeof data === 'string') { + req.write(data, 'utf8') + } + if (data && typeof data !== 'string') { + data.on('close', function () { + req.end() + }) + data.pipe(req) + } else { + req.end() + } + } + /** + * Gets an http agent. This function is useful when you need an http agent that handles + * routing through a proxy server - depending upon the url and proxy environment variables. + * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com + */ + getAgent(serverUrl) { + const parsedUrl = new URL(serverUrl) + return this._getAgent(parsedUrl) + } + getAgentDispatcher(serverUrl) { + const parsedUrl = new URL(serverUrl) + const proxyUrl = pm.getProxyUrl(parsedUrl) + const useProxy = proxyUrl && proxyUrl.hostname + if (!useProxy) { + return + } + return this._getProxyAgentDispatcher(parsedUrl, proxyUrl) + } + _prepareRequest(method, requestUrl, headers) { + const info = {} + info.parsedUrl = requestUrl + const usingSsl = info.parsedUrl.protocol === 'https:' + info.httpModule = usingSsl ? https : http + const defaultPort = usingSsl ? 443 : 80 + info.options = {} + info.options.host = info.parsedUrl.hostname + info.options.port = info.parsedUrl.port + ? parseInt(info.parsedUrl.port) + : defaultPort + info.options.path = + (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '') + info.options.method = method + info.options.headers = this._mergeHeaders(headers) + if (this.userAgent != null) { + info.options.headers['user-agent'] = this.userAgent + } + info.options.agent = this._getAgent(info.parsedUrl) + // gives handlers an opportunity to participate + if (this.handlers) { + for (const handler of this.handlers) { + handler.prepareRequest(info.options) + } + } + return info + } + _mergeHeaders(headers) { + if (this.requestOptions && this.requestOptions.headers) { + return Object.assign( + {}, + lowercaseKeys(this.requestOptions.headers), + lowercaseKeys(headers || {}) + ) + } + return lowercaseKeys(headers || {}) + } + _getExistingOrDefaultHeader(additionalHeaders, header, _default) { + let clientHeader + if (this.requestOptions && this.requestOptions.headers) { + clientHeader = lowercaseKeys(this.requestOptions.headers)[header] + } + return additionalHeaders[header] || clientHeader || _default + } + _getAgent(parsedUrl) { + let agent + const proxyUrl = pm.getProxyUrl(parsedUrl) + const useProxy = proxyUrl && proxyUrl.hostname + if (this._keepAlive && useProxy) { + agent = this._proxyAgent + } + if (!useProxy) { + agent = this._agent + } + // if agent is already assigned use that agent. + if (agent) { + return agent + } + const usingSsl = parsedUrl.protocol === 'https:' + let maxSockets = 100 + if (this.requestOptions) { + maxSockets = + this.requestOptions.maxSockets || http.globalAgent.maxSockets + } + // This is `useProxy` again, but we need to check `proxyURl` directly for TypeScripts's flow analysis. + if (proxyUrl && proxyUrl.hostname) { + const agentOptions = { + maxSockets, + keepAlive: this._keepAlive, + proxy: Object.assign( + Object.assign( + {}, + (proxyUrl.username || proxyUrl.password) && { + proxyAuth: `${proxyUrl.username}:${proxyUrl.password}` + } + ), + { host: proxyUrl.hostname, port: proxyUrl.port } + ) + } + let tunnelAgent + const overHttps = proxyUrl.protocol === 'https:' + if (usingSsl) { + tunnelAgent = overHttps + ? tunnel.httpsOverHttps + : tunnel.httpsOverHttp + } else { + tunnelAgent = overHttps + ? tunnel.httpOverHttps + : tunnel.httpOverHttp + } + agent = tunnelAgent(agentOptions) + this._proxyAgent = agent + } + // if tunneling agent isn't assigned create a new agent + if (!agent) { + const options = { keepAlive: this._keepAlive, maxSockets } + agent = usingSsl + ? new https.Agent(options) + : new http.Agent(options) + this._agent = agent + } + if (usingSsl && this._ignoreSslError) { + // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process + // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options + // we have to cast it to any and change it directly + agent.options = Object.assign(agent.options || {}, { + rejectUnauthorized: false + }) + } + return agent + } + _getProxyAgentDispatcher(parsedUrl, proxyUrl) { + let proxyAgent + if (this._keepAlive) { + proxyAgent = this._proxyAgentDispatcher + } + // if agent is already assigned use that agent. + if (proxyAgent) { + return proxyAgent + } + const usingSsl = parsedUrl.protocol === 'https:' + proxyAgent = new undici_1.ProxyAgent( + Object.assign( + { uri: proxyUrl.href, pipelining: !this._keepAlive ? 0 : 1 }, + (proxyUrl.username || proxyUrl.password) && { + token: `Basic ${Buffer.from(`${proxyUrl.username}:${proxyUrl.password}`).toString('base64')}` + } + ) + ) + this._proxyAgentDispatcher = proxyAgent + if (usingSsl && this._ignoreSslError) { + // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process + // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options + // we have to cast it to any and change it directly + proxyAgent.options = Object.assign( + proxyAgent.options.requestTls || {}, + { + rejectUnauthorized: false + } + ) + } + return proxyAgent + } + _performExponentialBackoff(retryNumber) { + return __awaiter(this, void 0, void 0, function* () { + retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber) + const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber) + return new Promise(resolve => setTimeout(() => resolve(), ms)) + }) + } + _processResponse(res, options) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => + __awaiter(this, void 0, void 0, function* () { + const statusCode = res.message.statusCode || 0 + const response = { + statusCode, + result: null, + headers: {} + } + // not found leads to null obj returned + if (statusCode === HttpCodes.NotFound) { + resolve(response) + } + // get the result from the body + function dateTimeDeserializer(key, value) { + if (typeof value === 'string') { + const a = new Date(value) + if (!isNaN(a.valueOf())) { + return a + } + } + return value + } + let obj + let contents + try { + contents = yield res.readBody() + if (contents && contents.length > 0) { + if (options && options.deserializeDates) { + obj = JSON.parse(contents, dateTimeDeserializer) + } else { + obj = JSON.parse(contents) + } + response.result = obj + } + response.headers = res.message.headers + } catch (err) { + // Invalid resource (contents not json); leaving result obj null + } + // note that 3xx redirects are handled by the http layer. + if (statusCode > 299) { + let msg + // if exception/error in body, attempt to get better error + if (obj && obj.message) { + msg = obj.message + } else if (contents && contents.length > 0) { + // it may be the case that the exception is in the body message as string + msg = contents + } else { + msg = `Failed request: (${statusCode})` + } + const err = new HttpClientError(msg, statusCode) + err.result = response.result + reject(err) + } else { + resolve(response) + } + }) + ) + }) + } + } + exports.HttpClient = HttpClient + const lowercaseKeys = obj => + Object.keys(obj).reduce( + (c, k) => ((c[k.toLowerCase()] = obj[k]), c), + {} + ) + //# sourceMappingURL=index.js.map -var import_middleware_serde = __nccwpck_require__(81238); + /***/ + }, + /***/ 19835: /***/ (__unused_webpack_module, exports) => { + 'use strict' -// src/protocols/Aws_query.ts -var import_core2 = __nccwpck_require__(59963); + Object.defineProperty(exports, '__esModule', { value: true }) + exports.checkBypass = exports.getProxyUrl = void 0 + function getProxyUrl(reqUrl) { + const usingSsl = reqUrl.protocol === 'https:' + if (checkBypass(reqUrl)) { + return undefined + } + const proxyVar = (() => { + if (usingSsl) { + return process.env['https_proxy'] || process.env['HTTPS_PROXY'] + } else { + return process.env['http_proxy'] || process.env['HTTP_PROXY'] + } + })() + if (proxyVar) { + try { + return new DecodedURL(proxyVar) + } catch (_a) { + if ( + !proxyVar.startsWith('http://') && + !proxyVar.startsWith('https://') + ) + return new DecodedURL(`http://${proxyVar}`) + } + } else { + return undefined + } + } + exports.getProxyUrl = getProxyUrl + function checkBypass(reqUrl) { + if (!reqUrl.hostname) { + return false + } + const reqHost = reqUrl.hostname + if (isLoopbackAddress(reqHost)) { + return true + } + const noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '' + if (!noProxy) { + return false + } + // Determine the request port + let reqPort + if (reqUrl.port) { + reqPort = Number(reqUrl.port) + } else if (reqUrl.protocol === 'http:') { + reqPort = 80 + } else if (reqUrl.protocol === 'https:') { + reqPort = 443 + } + // Format the request hostname and hostname with port + const upperReqHosts = [reqUrl.hostname.toUpperCase()] + if (typeof reqPort === 'number') { + upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`) + } + // Compare request host against noproxy + for (const upperNoProxyItem of noProxy + .split(',') + .map(x => x.trim().toUpperCase()) + .filter(x => x)) { + if ( + upperNoProxyItem === '*' || + upperReqHosts.some( + x => + x === upperNoProxyItem || + x.endsWith(`.${upperNoProxyItem}`) || + (upperNoProxyItem.startsWith('.') && + x.endsWith(`${upperNoProxyItem}`)) + ) + ) { + return true + } + } + return false + } + exports.checkBypass = checkBypass + function isLoopbackAddress(host) { + const hostLower = host.toLowerCase() + return ( + hostLower === 'localhost' || + hostLower.startsWith('127.') || + hostLower.startsWith('[::1]') || + hostLower.startsWith('[0:0:0:0:0:0:0:1]') + ) + } + class DecodedURL extends URL { + constructor(url, base) { + super(url, base) + this._decodedUsername = decodeURIComponent(super.username) + this._decodedPassword = decodeURIComponent(super.password) + } + get username() { + return this._decodedUsername + } + get password() { + return this._decodedPassword + } + } + //# sourceMappingURL=proxy.js.map + /***/ + }, -var import_uuid = __nccwpck_require__(5976); + /***/ 74292: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.resolveHttpAuthSchemeConfig = + exports.defaultCloudFormationHttpAuthSchemeProvider = + exports.defaultCloudFormationHttpAuthSchemeParametersProvider = + void 0 + const core_1 = __nccwpck_require__(59963) + const util_middleware_1 = __nccwpck_require__(2390) + const defaultCloudFormationHttpAuthSchemeParametersProvider = async ( + config, + context, + input + ) => { + return { + operation: (0, util_middleware_1.getSmithyContext)(context).operation, + region: + (await (0, util_middleware_1.normalizeProvider)(config.region)()) || + (() => { + throw new Error( + 'expected `region` to be configured for `aws.auth#sigv4`' + ) + })() + } + } + exports.defaultCloudFormationHttpAuthSchemeParametersProvider = + defaultCloudFormationHttpAuthSchemeParametersProvider + function createAwsAuthSigv4HttpAuthOption(authParameters) { + return { + schemeId: 'aws.auth#sigv4', + signingProperties: { + name: 'cloudformation', + region: authParameters.region + }, + propertiesExtractor: (config, context) => ({ + signingProperties: { + config, + context + } + }) + } + } + const defaultCloudFormationHttpAuthSchemeProvider = authParameters => { + const options = [] + switch (authParameters.operation) { + default: { + options.push(createAwsAuthSigv4HttpAuthOption(authParameters)) + } + } + return options + } + exports.defaultCloudFormationHttpAuthSchemeProvider = + defaultCloudFormationHttpAuthSchemeProvider + const resolveHttpAuthSchemeConfig = config => { + const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config) + return { + ...config_0 + } + } + exports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig -// src/models/CloudFormationServiceException.ts + /***/ + }, -var _CloudFormationServiceException = class _CloudFormationServiceException extends import_smithy_client.ServiceException { - /** - * @internal - */ - constructor(options) { - super(options); - Object.setPrototypeOf(this, _CloudFormationServiceException.prototype); - } -}; -__name(_CloudFormationServiceException, "CloudFormationServiceException"); -var CloudFormationServiceException = _CloudFormationServiceException; - -// src/models/models_0.ts -var AccountFilterType = { - DIFFERENCE: "DIFFERENCE", - INTERSECTION: "INTERSECTION", - NONE: "NONE", - UNION: "UNION" -}; -var AccountGateStatus = { - FAILED: "FAILED", - SKIPPED: "SKIPPED", - SUCCEEDED: "SUCCEEDED" -}; -var _InvalidOperationException = class _InvalidOperationException extends CloudFormationServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "InvalidOperationException", - $fault: "client", - ...opts - }); - this.name = "InvalidOperationException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _InvalidOperationException.prototype); - this.Message = opts.Message; - } -}; -__name(_InvalidOperationException, "InvalidOperationException"); -var InvalidOperationException = _InvalidOperationException; -var _OperationNotFoundException = class _OperationNotFoundException extends CloudFormationServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "OperationNotFoundException", - $fault: "client", - ...opts - }); - this.name = "OperationNotFoundException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _OperationNotFoundException.prototype); - this.Message = opts.Message; - } -}; -__name(_OperationNotFoundException, "OperationNotFoundException"); -var OperationNotFoundException = _OperationNotFoundException; -var ThirdPartyType = { - HOOK: "HOOK", - MODULE: "MODULE", - RESOURCE: "RESOURCE" -}; -var VersionBump = { - MAJOR: "MAJOR", - MINOR: "MINOR" -}; -var _CFNRegistryException = class _CFNRegistryException extends CloudFormationServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "CFNRegistryException", - $fault: "client", - ...opts - }); - this.name = "CFNRegistryException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _CFNRegistryException.prototype); - this.Message = opts.Message; - } -}; -__name(_CFNRegistryException, "CFNRegistryException"); -var CFNRegistryException = _CFNRegistryException; -var _TypeNotFoundException = class _TypeNotFoundException extends CloudFormationServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "TypeNotFoundException", - $fault: "client", - ...opts - }); - this.name = "TypeNotFoundException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _TypeNotFoundException.prototype); - this.Message = opts.Message; - } -}; -__name(_TypeNotFoundException, "TypeNotFoundException"); -var TypeNotFoundException = _TypeNotFoundException; -var _AlreadyExistsException = class _AlreadyExistsException extends CloudFormationServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "AlreadyExistsException", - $fault: "client", - ...opts - }); - this.name = "AlreadyExistsException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _AlreadyExistsException.prototype); - this.Message = opts.Message; - } -}; -__name(_AlreadyExistsException, "AlreadyExistsException"); -var AlreadyExistsException = _AlreadyExistsException; -var AttributeChangeType = { - Add: "Add", - Modify: "Modify", - Remove: "Remove" -}; -var _TypeConfigurationNotFoundException = class _TypeConfigurationNotFoundException extends CloudFormationServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "TypeConfigurationNotFoundException", - $fault: "client", - ...opts - }); - this.name = "TypeConfigurationNotFoundException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _TypeConfigurationNotFoundException.prototype); - this.Message = opts.Message; - } -}; -__name(_TypeConfigurationNotFoundException, "TypeConfigurationNotFoundException"); -var TypeConfigurationNotFoundException = _TypeConfigurationNotFoundException; -var CallAs = { - DELEGATED_ADMIN: "DELEGATED_ADMIN", - SELF: "SELF" -}; -var _TokenAlreadyExistsException = class _TokenAlreadyExistsException extends CloudFormationServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "TokenAlreadyExistsException", - $fault: "client", - ...opts - }); - this.name = "TokenAlreadyExistsException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _TokenAlreadyExistsException.prototype); - this.Message = opts.Message; - } -}; -__name(_TokenAlreadyExistsException, "TokenAlreadyExistsException"); -var TokenAlreadyExistsException = _TokenAlreadyExistsException; -var Capability = { - CAPABILITY_AUTO_EXPAND: "CAPABILITY_AUTO_EXPAND", - CAPABILITY_IAM: "CAPABILITY_IAM", - CAPABILITY_NAMED_IAM: "CAPABILITY_NAMED_IAM" -}; -var Category = { - ACTIVATED: "ACTIVATED", - AWS_TYPES: "AWS_TYPES", - REGISTERED: "REGISTERED", - THIRD_PARTY: "THIRD_PARTY" -}; -var ChangeAction = { - Add: "Add", - Dynamic: "Dynamic", - Import: "Import", - Modify: "Modify", - Remove: "Remove" -}; -var ChangeSource = { - Automatic: "Automatic", - DirectModification: "DirectModification", - ParameterReference: "ParameterReference", - ResourceAttribute: "ResourceAttribute", - ResourceReference: "ResourceReference" -}; -var EvaluationType = { - Dynamic: "Dynamic", - Static: "Static" -}; -var ResourceAttribute = { - CreationPolicy: "CreationPolicy", - DeletionPolicy: "DeletionPolicy", - Metadata: "Metadata", - Properties: "Properties", - Tags: "Tags", - UpdatePolicy: "UpdatePolicy", - UpdateReplacePolicy: "UpdateReplacePolicy" -}; -var RequiresRecreation = { - Always: "Always", - Conditionally: "Conditionally", - Never: "Never" -}; -var PolicyAction = { - Delete: "Delete", - ReplaceAndDelete: "ReplaceAndDelete", - ReplaceAndRetain: "ReplaceAndRetain", - ReplaceAndSnapshot: "ReplaceAndSnapshot", - Retain: "Retain", - Snapshot: "Snapshot" -}; -var Replacement = { - Conditional: "Conditional", - False: "False", - True: "True" -}; -var ChangeType = { - Resource: "Resource" -}; -var HookFailureMode = { - FAIL: "FAIL", - WARN: "WARN" -}; -var HookInvocationPoint = { - PRE_PROVISION: "PRE_PROVISION" -}; -var HookTargetType = { - RESOURCE: "RESOURCE" -}; -var ChangeSetHooksStatus = { - PLANNED: "PLANNED", - PLANNING: "PLANNING", - UNAVAILABLE: "UNAVAILABLE" -}; -var _ChangeSetNotFoundException = class _ChangeSetNotFoundException extends CloudFormationServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "ChangeSetNotFoundException", - $fault: "client", - ...opts - }); - this.name = "ChangeSetNotFoundException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _ChangeSetNotFoundException.prototype); - this.Message = opts.Message; - } -}; -__name(_ChangeSetNotFoundException, "ChangeSetNotFoundException"); -var ChangeSetNotFoundException = _ChangeSetNotFoundException; -var ChangeSetStatus = { - CREATE_COMPLETE: "CREATE_COMPLETE", - CREATE_IN_PROGRESS: "CREATE_IN_PROGRESS", - CREATE_PENDING: "CREATE_PENDING", - DELETE_COMPLETE: "DELETE_COMPLETE", - DELETE_FAILED: "DELETE_FAILED", - DELETE_IN_PROGRESS: "DELETE_IN_PROGRESS", - DELETE_PENDING: "DELETE_PENDING", - FAILED: "FAILED" -}; -var ExecutionStatus = { - AVAILABLE: "AVAILABLE", - EXECUTE_COMPLETE: "EXECUTE_COMPLETE", - EXECUTE_FAILED: "EXECUTE_FAILED", - EXECUTE_IN_PROGRESS: "EXECUTE_IN_PROGRESS", - OBSOLETE: "OBSOLETE", - UNAVAILABLE: "UNAVAILABLE" -}; -var ChangeSetType = { - CREATE: "CREATE", - IMPORT: "IMPORT", - UPDATE: "UPDATE" -}; -var OnStackFailure = { - DELETE: "DELETE", - DO_NOTHING: "DO_NOTHING", - ROLLBACK: "ROLLBACK" -}; -var _InsufficientCapabilitiesException = class _InsufficientCapabilitiesException extends CloudFormationServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "InsufficientCapabilitiesException", - $fault: "client", - ...opts - }); - this.name = "InsufficientCapabilitiesException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _InsufficientCapabilitiesException.prototype); - this.Message = opts.Message; - } -}; -__name(_InsufficientCapabilitiesException, "InsufficientCapabilitiesException"); -var InsufficientCapabilitiesException = _InsufficientCapabilitiesException; -var _LimitExceededException = class _LimitExceededException extends CloudFormationServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "LimitExceededException", - $fault: "client", - ...opts - }); - this.name = "LimitExceededException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _LimitExceededException.prototype); - this.Message = opts.Message; - } -}; -__name(_LimitExceededException, "LimitExceededException"); -var LimitExceededException = _LimitExceededException; -var _ConcurrentResourcesLimitExceededException = class _ConcurrentResourcesLimitExceededException extends CloudFormationServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "ConcurrentResourcesLimitExceededException", - $fault: "client", - ...opts - }); - this.name = "ConcurrentResourcesLimitExceededException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _ConcurrentResourcesLimitExceededException.prototype); - this.Message = opts.Message; - } -}; -__name(_ConcurrentResourcesLimitExceededException, "ConcurrentResourcesLimitExceededException"); -var ConcurrentResourcesLimitExceededException = _ConcurrentResourcesLimitExceededException; -var GeneratedTemplateDeletionPolicy = { - DELETE: "DELETE", - RETAIN: "RETAIN" -}; -var GeneratedTemplateUpdateReplacePolicy = { - DELETE: "DELETE", - RETAIN: "RETAIN" -}; -var OnFailure = { - DELETE: "DELETE", - DO_NOTHING: "DO_NOTHING", - ROLLBACK: "ROLLBACK" -}; -var ConcurrencyMode = { - SOFT_FAILURE_TOLERANCE: "SOFT_FAILURE_TOLERANCE", - STRICT_FAILURE_TOLERANCE: "STRICT_FAILURE_TOLERANCE" -}; -var RegionConcurrencyType = { - PARALLEL: "PARALLEL", - SEQUENTIAL: "SEQUENTIAL" -}; -var _OperationIdAlreadyExistsException = class _OperationIdAlreadyExistsException extends CloudFormationServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "OperationIdAlreadyExistsException", - $fault: "client", - ...opts - }); - this.name = "OperationIdAlreadyExistsException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _OperationIdAlreadyExistsException.prototype); - this.Message = opts.Message; - } -}; -__name(_OperationIdAlreadyExistsException, "OperationIdAlreadyExistsException"); -var OperationIdAlreadyExistsException = _OperationIdAlreadyExistsException; -var _OperationInProgressException = class _OperationInProgressException extends CloudFormationServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "OperationInProgressException", - $fault: "client", - ...opts - }); - this.name = "OperationInProgressException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _OperationInProgressException.prototype); - this.Message = opts.Message; - } -}; -__name(_OperationInProgressException, "OperationInProgressException"); -var OperationInProgressException = _OperationInProgressException; -var _StackSetNotFoundException = class _StackSetNotFoundException extends CloudFormationServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "StackSetNotFoundException", - $fault: "client", - ...opts - }); - this.name = "StackSetNotFoundException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _StackSetNotFoundException.prototype); - this.Message = opts.Message; - } -}; -__name(_StackSetNotFoundException, "StackSetNotFoundException"); -var StackSetNotFoundException = _StackSetNotFoundException; -var _StaleRequestException = class _StaleRequestException extends CloudFormationServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "StaleRequestException", - $fault: "client", - ...opts - }); - this.name = "StaleRequestException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _StaleRequestException.prototype); - this.Message = opts.Message; - } -}; -__name(_StaleRequestException, "StaleRequestException"); -var StaleRequestException = _StaleRequestException; -var _CreatedButModifiedException = class _CreatedButModifiedException extends CloudFormationServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "CreatedButModifiedException", - $fault: "client", - ...opts - }); - this.name = "CreatedButModifiedException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _CreatedButModifiedException.prototype); - this.Message = opts.Message; - } -}; -__name(_CreatedButModifiedException, "CreatedButModifiedException"); -var CreatedButModifiedException = _CreatedButModifiedException; -var PermissionModels = { - SELF_MANAGED: "SELF_MANAGED", - SERVICE_MANAGED: "SERVICE_MANAGED" -}; -var _NameAlreadyExistsException = class _NameAlreadyExistsException extends CloudFormationServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "NameAlreadyExistsException", - $fault: "client", - ...opts - }); - this.name = "NameAlreadyExistsException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _NameAlreadyExistsException.prototype); - this.Message = opts.Message; - } -}; -__name(_NameAlreadyExistsException, "NameAlreadyExistsException"); -var NameAlreadyExistsException = _NameAlreadyExistsException; -var _InvalidChangeSetStatusException = class _InvalidChangeSetStatusException extends CloudFormationServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "InvalidChangeSetStatusException", - $fault: "client", - ...opts - }); - this.name = "InvalidChangeSetStatusException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _InvalidChangeSetStatusException.prototype); - this.Message = opts.Message; - } -}; -__name(_InvalidChangeSetStatusException, "InvalidChangeSetStatusException"); -var InvalidChangeSetStatusException = _InvalidChangeSetStatusException; -var _GeneratedTemplateNotFoundException = class _GeneratedTemplateNotFoundException extends CloudFormationServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "GeneratedTemplateNotFoundException", - $fault: "client", - ...opts - }); - this.name = "GeneratedTemplateNotFoundException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _GeneratedTemplateNotFoundException.prototype); - this.Message = opts.Message; - } -}; -__name(_GeneratedTemplateNotFoundException, "GeneratedTemplateNotFoundException"); -var GeneratedTemplateNotFoundException = _GeneratedTemplateNotFoundException; -var DeletionMode = { - FORCE_DELETE_STACK: "FORCE_DELETE_STACK", - STANDARD: "STANDARD" -}; -var _StackSetNotEmptyException = class _StackSetNotEmptyException extends CloudFormationServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "StackSetNotEmptyException", - $fault: "client", - ...opts - }); - this.name = "StackSetNotEmptyException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _StackSetNotEmptyException.prototype); - this.Message = opts.Message; - } -}; -__name(_StackSetNotEmptyException, "StackSetNotEmptyException"); -var StackSetNotEmptyException = _StackSetNotEmptyException; -var RegistryType = { - HOOK: "HOOK", - MODULE: "MODULE", - RESOURCE: "RESOURCE" -}; -var GeneratedTemplateResourceStatus = { - COMPLETE: "COMPLETE", - FAILED: "FAILED", - IN_PROGRESS: "IN_PROGRESS", - PENDING: "PENDING" -}; -var WarningType = { - MUTUALLY_EXCLUSIVE_PROPERTIES: "MUTUALLY_EXCLUSIVE_PROPERTIES", - MUTUALLY_EXCLUSIVE_TYPES: "MUTUALLY_EXCLUSIVE_TYPES", - UNSUPPORTED_PROPERTIES: "UNSUPPORTED_PROPERTIES" -}; -var GeneratedTemplateStatus = { - COMPLETE: "COMPLETE", - CREATE_IN_PROGRESS: "CREATE_IN_PROGRESS", - CREATE_PENDING: "CREATE_PENDING", - DELETE_IN_PROGRESS: "DELETE_IN_PROGRESS", - DELETE_PENDING: "DELETE_PENDING", - FAILED: "FAILED", - UPDATE_IN_PROGRESS: "UPDATE_IN_PROGRESS", - UPDATE_PENDING: "UPDATE_PENDING" -}; -var OrganizationStatus = { - DISABLED: "DISABLED", - DISABLED_PERMANENTLY: "DISABLED_PERMANENTLY", - ENABLED: "ENABLED" -}; -var IdentityProvider = { - AWS_Marketplace: "AWS_Marketplace", - Bitbucket: "Bitbucket", - GitHub: "GitHub" -}; -var PublisherStatus = { - UNVERIFIED: "UNVERIFIED", - VERIFIED: "VERIFIED" -}; -var ResourceScanStatus = { - COMPLETE: "COMPLETE", - EXPIRED: "EXPIRED", - FAILED: "FAILED", - IN_PROGRESS: "IN_PROGRESS" -}; -var _ResourceScanNotFoundException = class _ResourceScanNotFoundException extends CloudFormationServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "ResourceScanNotFoundException", - $fault: "client", - ...opts - }); - this.name = "ResourceScanNotFoundException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _ResourceScanNotFoundException.prototype); - this.Message = opts.Message; - } -}; -__name(_ResourceScanNotFoundException, "ResourceScanNotFoundException"); -var ResourceScanNotFoundException = _ResourceScanNotFoundException; -var StackDriftDetectionStatus = { - DETECTION_COMPLETE: "DETECTION_COMPLETE", - DETECTION_FAILED: "DETECTION_FAILED", - DETECTION_IN_PROGRESS: "DETECTION_IN_PROGRESS" -}; -var StackDriftStatus = { - DRIFTED: "DRIFTED", - IN_SYNC: "IN_SYNC", - NOT_CHECKED: "NOT_CHECKED", - UNKNOWN: "UNKNOWN" -}; -var DetailedStatus = { - CONFIGURATION_COMPLETE: "CONFIGURATION_COMPLETE", - VALIDATION_FAILED: "VALIDATION_FAILED" -}; -var HookStatus = { - HOOK_COMPLETE_FAILED: "HOOK_COMPLETE_FAILED", - HOOK_COMPLETE_SUCCEEDED: "HOOK_COMPLETE_SUCCEEDED", - HOOK_FAILED: "HOOK_FAILED", - HOOK_IN_PROGRESS: "HOOK_IN_PROGRESS" -}; -var ResourceStatus = { - CREATE_COMPLETE: "CREATE_COMPLETE", - CREATE_FAILED: "CREATE_FAILED", - CREATE_IN_PROGRESS: "CREATE_IN_PROGRESS", - DELETE_COMPLETE: "DELETE_COMPLETE", - DELETE_FAILED: "DELETE_FAILED", - DELETE_IN_PROGRESS: "DELETE_IN_PROGRESS", - DELETE_SKIPPED: "DELETE_SKIPPED", - IMPORT_COMPLETE: "IMPORT_COMPLETE", - IMPORT_FAILED: "IMPORT_FAILED", - IMPORT_IN_PROGRESS: "IMPORT_IN_PROGRESS", - IMPORT_ROLLBACK_COMPLETE: "IMPORT_ROLLBACK_COMPLETE", - IMPORT_ROLLBACK_FAILED: "IMPORT_ROLLBACK_FAILED", - IMPORT_ROLLBACK_IN_PROGRESS: "IMPORT_ROLLBACK_IN_PROGRESS", - ROLLBACK_COMPLETE: "ROLLBACK_COMPLETE", - ROLLBACK_FAILED: "ROLLBACK_FAILED", - ROLLBACK_IN_PROGRESS: "ROLLBACK_IN_PROGRESS", - UPDATE_COMPLETE: "UPDATE_COMPLETE", - UPDATE_FAILED: "UPDATE_FAILED", - UPDATE_IN_PROGRESS: "UPDATE_IN_PROGRESS", - UPDATE_ROLLBACK_COMPLETE: "UPDATE_ROLLBACK_COMPLETE", - UPDATE_ROLLBACK_FAILED: "UPDATE_ROLLBACK_FAILED", - UPDATE_ROLLBACK_IN_PROGRESS: "UPDATE_ROLLBACK_IN_PROGRESS" -}; -var StackInstanceDetailedStatus = { - CANCELLED: "CANCELLED", - FAILED: "FAILED", - FAILED_IMPORT: "FAILED_IMPORT", - INOPERABLE: "INOPERABLE", - PENDING: "PENDING", - RUNNING: "RUNNING", - SKIPPED_SUSPENDED_ACCOUNT: "SKIPPED_SUSPENDED_ACCOUNT", - SUCCEEDED: "SUCCEEDED" -}; -var StackInstanceStatus = { - CURRENT: "CURRENT", - INOPERABLE: "INOPERABLE", - OUTDATED: "OUTDATED" -}; -var _StackInstanceNotFoundException = class _StackInstanceNotFoundException extends CloudFormationServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "StackInstanceNotFoundException", - $fault: "client", - ...opts - }); - this.name = "StackInstanceNotFoundException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _StackInstanceNotFoundException.prototype); - this.Message = opts.Message; - } -}; -__name(_StackInstanceNotFoundException, "StackInstanceNotFoundException"); -var StackInstanceNotFoundException = _StackInstanceNotFoundException; -var StackResourceDriftStatus = { - DELETED: "DELETED", - IN_SYNC: "IN_SYNC", - MODIFIED: "MODIFIED", - NOT_CHECKED: "NOT_CHECKED" -}; -var DifferenceType = { - ADD: "ADD", - NOT_EQUAL: "NOT_EQUAL", - REMOVE: "REMOVE" -}; -var StackStatus = { - CREATE_COMPLETE: "CREATE_COMPLETE", - CREATE_FAILED: "CREATE_FAILED", - CREATE_IN_PROGRESS: "CREATE_IN_PROGRESS", - DELETE_COMPLETE: "DELETE_COMPLETE", - DELETE_FAILED: "DELETE_FAILED", - DELETE_IN_PROGRESS: "DELETE_IN_PROGRESS", - IMPORT_COMPLETE: "IMPORT_COMPLETE", - IMPORT_IN_PROGRESS: "IMPORT_IN_PROGRESS", - IMPORT_ROLLBACK_COMPLETE: "IMPORT_ROLLBACK_COMPLETE", - IMPORT_ROLLBACK_FAILED: "IMPORT_ROLLBACK_FAILED", - IMPORT_ROLLBACK_IN_PROGRESS: "IMPORT_ROLLBACK_IN_PROGRESS", - REVIEW_IN_PROGRESS: "REVIEW_IN_PROGRESS", - ROLLBACK_COMPLETE: "ROLLBACK_COMPLETE", - ROLLBACK_FAILED: "ROLLBACK_FAILED", - ROLLBACK_IN_PROGRESS: "ROLLBACK_IN_PROGRESS", - UPDATE_COMPLETE: "UPDATE_COMPLETE", - UPDATE_COMPLETE_CLEANUP_IN_PROGRESS: "UPDATE_COMPLETE_CLEANUP_IN_PROGRESS", - UPDATE_FAILED: "UPDATE_FAILED", - UPDATE_IN_PROGRESS: "UPDATE_IN_PROGRESS", - UPDATE_ROLLBACK_COMPLETE: "UPDATE_ROLLBACK_COMPLETE", - UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS: "UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS", - UPDATE_ROLLBACK_FAILED: "UPDATE_ROLLBACK_FAILED", - UPDATE_ROLLBACK_IN_PROGRESS: "UPDATE_ROLLBACK_IN_PROGRESS" -}; -var StackSetDriftDetectionStatus = { - COMPLETED: "COMPLETED", - FAILED: "FAILED", - IN_PROGRESS: "IN_PROGRESS", - PARTIAL_SUCCESS: "PARTIAL_SUCCESS", - STOPPED: "STOPPED" -}; -var StackSetDriftStatus = { - DRIFTED: "DRIFTED", - IN_SYNC: "IN_SYNC", - NOT_CHECKED: "NOT_CHECKED" -}; -var StackSetStatus = { - ACTIVE: "ACTIVE", - DELETED: "DELETED" -}; -var StackSetOperationAction = { - CREATE: "CREATE", - DELETE: "DELETE", - DETECT_DRIFT: "DETECT_DRIFT", - UPDATE: "UPDATE" -}; -var StackSetOperationStatus = { - FAILED: "FAILED", - QUEUED: "QUEUED", - RUNNING: "RUNNING", - STOPPED: "STOPPED", - STOPPING: "STOPPING", - SUCCEEDED: "SUCCEEDED" -}; -var DeprecatedStatus = { - DEPRECATED: "DEPRECATED", - LIVE: "LIVE" -}; -var ProvisioningType = { - FULLY_MUTABLE: "FULLY_MUTABLE", - IMMUTABLE: "IMMUTABLE", - NON_PROVISIONABLE: "NON_PROVISIONABLE" -}; -var TypeTestsStatus = { - FAILED: "FAILED", - IN_PROGRESS: "IN_PROGRESS", - NOT_TESTED: "NOT_TESTED", - PASSED: "PASSED" -}; -var Visibility = { - PRIVATE: "PRIVATE", - PUBLIC: "PUBLIC" -}; -var RegistrationStatus = { - COMPLETE: "COMPLETE", - FAILED: "FAILED", - IN_PROGRESS: "IN_PROGRESS" -}; -var TemplateFormat = { - JSON: "JSON", - YAML: "YAML" -}; -var TemplateStage = { - Original: "Original", - Processed: "Processed" -}; -var _StackNotFoundException = class _StackNotFoundException extends CloudFormationServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "StackNotFoundException", - $fault: "client", - ...opts - }); - this.name = "StackNotFoundException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _StackNotFoundException.prototype); - this.Message = opts.Message; - } -}; -__name(_StackNotFoundException, "StackNotFoundException"); -var StackNotFoundException = _StackNotFoundException; -var _ResourceScanInProgressException = class _ResourceScanInProgressException extends CloudFormationServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "ResourceScanInProgressException", - $fault: "client", - ...opts - }); - this.name = "ResourceScanInProgressException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _ResourceScanInProgressException.prototype); - this.Message = opts.Message; - } -}; -__name(_ResourceScanInProgressException, "ResourceScanInProgressException"); -var ResourceScanInProgressException = _ResourceScanInProgressException; -var StackInstanceFilterName = { - DETAILED_STATUS: "DETAILED_STATUS", - DRIFT_STATUS: "DRIFT_STATUS", - LAST_OPERATION_ID: "LAST_OPERATION_ID" -}; -var OperationResultFilterName = { - OPERATION_RESULT_STATUS: "OPERATION_RESULT_STATUS" -}; -var StackSetOperationResultStatus = { - CANCELLED: "CANCELLED", - FAILED: "FAILED", - PENDING: "PENDING", - RUNNING: "RUNNING", - SUCCEEDED: "SUCCEEDED" -}; -var _InvalidStateTransitionException = class _InvalidStateTransitionException extends CloudFormationServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "InvalidStateTransitionException", - $fault: "client", - ...opts - }); - this.name = "InvalidStateTransitionException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _InvalidStateTransitionException.prototype); - this.Message = opts.Message; - } -}; -__name(_InvalidStateTransitionException, "InvalidStateTransitionException"); -var InvalidStateTransitionException = _InvalidStateTransitionException; -var _OperationStatusCheckFailedException = class _OperationStatusCheckFailedException extends CloudFormationServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "OperationStatusCheckFailedException", - $fault: "client", - ...opts - }); - this.name = "OperationStatusCheckFailedException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _OperationStatusCheckFailedException.prototype); - this.Message = opts.Message; - } -}; -__name(_OperationStatusCheckFailedException, "OperationStatusCheckFailedException"); -var OperationStatusCheckFailedException = _OperationStatusCheckFailedException; -var OperationStatus = { - FAILED: "FAILED", - IN_PROGRESS: "IN_PROGRESS", - PENDING: "PENDING", - SUCCESS: "SUCCESS" -}; -var HandlerErrorCode = { - AccessDenied: "AccessDenied", - AlreadyExists: "AlreadyExists", - GeneralServiceException: "GeneralServiceException", - HandlerInternalFailure: "HandlerInternalFailure", - InternalFailure: "InternalFailure", - InvalidCredentials: "InvalidCredentials", - InvalidRequest: "InvalidRequest", - InvalidTypeConfiguration: "InvalidTypeConfiguration", - NetworkFailure: "NetworkFailure", - NonCompliant: "NonCompliant", - NotFound: "NotFound", - NotUpdatable: "NotUpdatable", - ResourceConflict: "ResourceConflict", - ServiceInternalError: "ServiceInternalError", - ServiceLimitExceeded: "ServiceLimitExceeded", - ServiceTimeout: "NotStabilized", - Throttling: "Throttling", - Unknown: "Unknown", - UnsupportedTarget: "UnsupportedTarget" -}; - -// src/models/models_1.ts -var ResourceSignalStatus = { - FAILURE: "FAILURE", - SUCCESS: "SUCCESS" -}; -var _ResourceScanLimitExceededException = class _ResourceScanLimitExceededException extends CloudFormationServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "ResourceScanLimitExceededException", - $fault: "client", - ...opts - }); - this.name = "ResourceScanLimitExceededException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _ResourceScanLimitExceededException.prototype); - this.Message = opts.Message; - } -}; -__name(_ResourceScanLimitExceededException, "ResourceScanLimitExceededException"); -var ResourceScanLimitExceededException = _ResourceScanLimitExceededException; - -// src/protocols/Aws_query.ts -var se_ActivateOrganizationsAccessCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_ActivateOrganizationsAccessInput(input, context), - [_A]: _AOA, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_ActivateOrganizationsAccessCommand"); -var se_ActivateTypeCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_ActivateTypeInput(input, context), - [_A]: _AT, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_ActivateTypeCommand"); -var se_BatchDescribeTypeConfigurationsCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_BatchDescribeTypeConfigurationsInput(input, context), - [_A]: _BDTC, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_BatchDescribeTypeConfigurationsCommand"); -var se_CancelUpdateStackCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_CancelUpdateStackInput(input, context), - [_A]: _CUS, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_CancelUpdateStackCommand"); -var se_ContinueUpdateRollbackCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_ContinueUpdateRollbackInput(input, context), - [_A]: _CUR, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_ContinueUpdateRollbackCommand"); -var se_CreateChangeSetCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_CreateChangeSetInput(input, context), - [_A]: _CCS, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_CreateChangeSetCommand"); -var se_CreateGeneratedTemplateCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_CreateGeneratedTemplateInput(input, context), - [_A]: _CGT, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_CreateGeneratedTemplateCommand"); -var se_CreateStackCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_CreateStackInput(input, context), - [_A]: _CS, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_CreateStackCommand"); -var se_CreateStackInstancesCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_CreateStackInstancesInput(input, context), - [_A]: _CSI, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_CreateStackInstancesCommand"); -var se_CreateStackSetCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_CreateStackSetInput(input, context), - [_A]: _CSS, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_CreateStackSetCommand"); -var se_DeactivateOrganizationsAccessCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_DeactivateOrganizationsAccessInput(input, context), - [_A]: _DOA, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_DeactivateOrganizationsAccessCommand"); -var se_DeactivateTypeCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_DeactivateTypeInput(input, context), - [_A]: _DT, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_DeactivateTypeCommand"); -var se_DeleteChangeSetCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_DeleteChangeSetInput(input, context), - [_A]: _DCS, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_DeleteChangeSetCommand"); -var se_DeleteGeneratedTemplateCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_DeleteGeneratedTemplateInput(input, context), - [_A]: _DGT, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_DeleteGeneratedTemplateCommand"); -var se_DeleteStackCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_DeleteStackInput(input, context), - [_A]: _DS, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_DeleteStackCommand"); -var se_DeleteStackInstancesCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_DeleteStackInstancesInput(input, context), - [_A]: _DSI, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_DeleteStackInstancesCommand"); -var se_DeleteStackSetCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_DeleteStackSetInput(input, context), - [_A]: _DSS, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_DeleteStackSetCommand"); -var se_DeregisterTypeCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_DeregisterTypeInput(input, context), - [_A]: _DTe, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_DeregisterTypeCommand"); -var se_DescribeAccountLimitsCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_DescribeAccountLimitsInput(input, context), - [_A]: _DAL, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_DescribeAccountLimitsCommand"); -var se_DescribeChangeSetCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_DescribeChangeSetInput(input, context), - [_A]: _DCSe, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_DescribeChangeSetCommand"); -var se_DescribeChangeSetHooksCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_DescribeChangeSetHooksInput(input, context), - [_A]: _DCSH, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_DescribeChangeSetHooksCommand"); -var se_DescribeGeneratedTemplateCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_DescribeGeneratedTemplateInput(input, context), - [_A]: _DGTe, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_DescribeGeneratedTemplateCommand"); -var se_DescribeOrganizationsAccessCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_DescribeOrganizationsAccessInput(input, context), - [_A]: _DOAe, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_DescribeOrganizationsAccessCommand"); -var se_DescribePublisherCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_DescribePublisherInput(input, context), - [_A]: _DP, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_DescribePublisherCommand"); -var se_DescribeResourceScanCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_DescribeResourceScanInput(input, context), - [_A]: _DRS, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_DescribeResourceScanCommand"); -var se_DescribeStackDriftDetectionStatusCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_DescribeStackDriftDetectionStatusInput(input, context), - [_A]: _DSDDS, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_DescribeStackDriftDetectionStatusCommand"); -var se_DescribeStackEventsCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_DescribeStackEventsInput(input, context), - [_A]: _DSE, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_DescribeStackEventsCommand"); -var se_DescribeStackInstanceCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_DescribeStackInstanceInput(input, context), - [_A]: _DSIe, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_DescribeStackInstanceCommand"); -var se_DescribeStackResourceCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_DescribeStackResourceInput(input, context), - [_A]: _DSR, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_DescribeStackResourceCommand"); -var se_DescribeStackResourceDriftsCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_DescribeStackResourceDriftsInput(input, context), - [_A]: _DSRD, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_DescribeStackResourceDriftsCommand"); -var se_DescribeStackResourcesCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_DescribeStackResourcesInput(input, context), - [_A]: _DSRe, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_DescribeStackResourcesCommand"); -var se_DescribeStacksCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_DescribeStacksInput(input, context), - [_A]: _DSe, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_DescribeStacksCommand"); -var se_DescribeStackSetCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_DescribeStackSetInput(input, context), - [_A]: _DSSe, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_DescribeStackSetCommand"); -var se_DescribeStackSetOperationCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_DescribeStackSetOperationInput(input, context), - [_A]: _DSSO, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_DescribeStackSetOperationCommand"); -var se_DescribeTypeCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_DescribeTypeInput(input, context), - [_A]: _DTes, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_DescribeTypeCommand"); -var se_DescribeTypeRegistrationCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_DescribeTypeRegistrationInput(input, context), - [_A]: _DTR, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_DescribeTypeRegistrationCommand"); -var se_DetectStackDriftCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_DetectStackDriftInput(input, context), - [_A]: _DSD, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_DetectStackDriftCommand"); -var se_DetectStackResourceDriftCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_DetectStackResourceDriftInput(input, context), - [_A]: _DSRDe, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_DetectStackResourceDriftCommand"); -var se_DetectStackSetDriftCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_DetectStackSetDriftInput(input, context), - [_A]: _DSSD, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_DetectStackSetDriftCommand"); -var se_EstimateTemplateCostCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_EstimateTemplateCostInput(input, context), - [_A]: _ETC, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_EstimateTemplateCostCommand"); -var se_ExecuteChangeSetCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_ExecuteChangeSetInput(input, context), - [_A]: _ECS, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_ExecuteChangeSetCommand"); -var se_GetGeneratedTemplateCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_GetGeneratedTemplateInput(input, context), - [_A]: _GGT, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_GetGeneratedTemplateCommand"); -var se_GetStackPolicyCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_GetStackPolicyInput(input, context), - [_A]: _GSP, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_GetStackPolicyCommand"); -var se_GetTemplateCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_GetTemplateInput(input, context), - [_A]: _GT, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_GetTemplateCommand"); -var se_GetTemplateSummaryCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_GetTemplateSummaryInput(input, context), - [_A]: _GTS, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_GetTemplateSummaryCommand"); -var se_ImportStacksToStackSetCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_ImportStacksToStackSetInput(input, context), - [_A]: _ISTSS, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_ImportStacksToStackSetCommand"); -var se_ListChangeSetsCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_ListChangeSetsInput(input, context), - [_A]: _LCS, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_ListChangeSetsCommand"); -var se_ListExportsCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_ListExportsInput(input, context), - [_A]: _LE, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_ListExportsCommand"); -var se_ListGeneratedTemplatesCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_ListGeneratedTemplatesInput(input, context), - [_A]: _LGT, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_ListGeneratedTemplatesCommand"); -var se_ListImportsCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_ListImportsInput(input, context), - [_A]: _LI, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_ListImportsCommand"); -var se_ListResourceScanRelatedResourcesCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_ListResourceScanRelatedResourcesInput(input, context), - [_A]: _LRSRR, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_ListResourceScanRelatedResourcesCommand"); -var se_ListResourceScanResourcesCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_ListResourceScanResourcesInput(input, context), - [_A]: _LRSR, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_ListResourceScanResourcesCommand"); -var se_ListResourceScansCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_ListResourceScansInput(input, context), - [_A]: _LRS, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_ListResourceScansCommand"); -var se_ListStackInstanceResourceDriftsCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_ListStackInstanceResourceDriftsInput(input, context), - [_A]: _LSIRD, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_ListStackInstanceResourceDriftsCommand"); -var se_ListStackInstancesCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_ListStackInstancesInput(input, context), - [_A]: _LSI, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_ListStackInstancesCommand"); -var se_ListStackResourcesCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_ListStackResourcesInput(input, context), - [_A]: _LSR, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_ListStackResourcesCommand"); -var se_ListStacksCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_ListStacksInput(input, context), - [_A]: _LS, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_ListStacksCommand"); -var se_ListStackSetAutoDeploymentTargetsCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_ListStackSetAutoDeploymentTargetsInput(input, context), - [_A]: _LSSADT, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_ListStackSetAutoDeploymentTargetsCommand"); -var se_ListStackSetOperationResultsCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_ListStackSetOperationResultsInput(input, context), - [_A]: _LSSOR, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_ListStackSetOperationResultsCommand"); -var se_ListStackSetOperationsCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_ListStackSetOperationsInput(input, context), - [_A]: _LSSO, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_ListStackSetOperationsCommand"); -var se_ListStackSetsCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_ListStackSetsInput(input, context), - [_A]: _LSS, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_ListStackSetsCommand"); -var se_ListTypeRegistrationsCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_ListTypeRegistrationsInput(input, context), - [_A]: _LTR, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_ListTypeRegistrationsCommand"); -var se_ListTypesCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_ListTypesInput(input, context), - [_A]: _LT, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_ListTypesCommand"); -var se_ListTypeVersionsCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_ListTypeVersionsInput(input, context), - [_A]: _LTV, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_ListTypeVersionsCommand"); -var se_PublishTypeCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_PublishTypeInput(input, context), - [_A]: _PT, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_PublishTypeCommand"); -var se_RecordHandlerProgressCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_RecordHandlerProgressInput(input, context), - [_A]: _RHP, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_RecordHandlerProgressCommand"); -var se_RegisterPublisherCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_RegisterPublisherInput(input, context), - [_A]: _RP, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_RegisterPublisherCommand"); -var se_RegisterTypeCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_RegisterTypeInput(input, context), - [_A]: _RT, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_RegisterTypeCommand"); -var se_RollbackStackCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_RollbackStackInput(input, context), - [_A]: _RS, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_RollbackStackCommand"); -var se_SetStackPolicyCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_SetStackPolicyInput(input, context), - [_A]: _SSP, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_SetStackPolicyCommand"); -var se_SetTypeConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_SetTypeConfigurationInput(input, context), - [_A]: _STC, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_SetTypeConfigurationCommand"); -var se_SetTypeDefaultVersionCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_SetTypeDefaultVersionInput(input, context), - [_A]: _STDV, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_SetTypeDefaultVersionCommand"); -var se_SignalResourceCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_SignalResourceInput(input, context), - [_A]: _SR, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_SignalResourceCommand"); -var se_StartResourceScanCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_StartResourceScanInput(input, context), - [_A]: _SRS, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_StartResourceScanCommand"); -var se_StopStackSetOperationCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_StopStackSetOperationInput(input, context), - [_A]: _SSSO, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_StopStackSetOperationCommand"); -var se_TestTypeCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_TestTypeInput(input, context), - [_A]: _TT, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_TestTypeCommand"); -var se_UpdateGeneratedTemplateCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_UpdateGeneratedTemplateInput(input, context), - [_A]: _UGT, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_UpdateGeneratedTemplateCommand"); -var se_UpdateStackCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_UpdateStackInput(input, context), - [_A]: _US, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_UpdateStackCommand"); -var se_UpdateStackInstancesCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_UpdateStackInstancesInput(input, context), - [_A]: _USI, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_UpdateStackInstancesCommand"); -var se_UpdateStackSetCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_UpdateStackSetInput(input, context), - [_A]: _USS, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_UpdateStackSetCommand"); -var se_UpdateTerminationProtectionCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_UpdateTerminationProtectionInput(input, context), - [_A]: _UTP, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_UpdateTerminationProtectionCommand"); -var se_ValidateTemplateCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_ValidateTemplateInput(input, context), - [_A]: _VT, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_ValidateTemplateCommand"); -var de_ActivateOrganizationsAccessCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_ActivateOrganizationsAccessOutput(data.ActivateOrganizationsAccessResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_ActivateOrganizationsAccessCommand"); -var de_ActivateTypeCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_ActivateTypeOutput(data.ActivateTypeResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_ActivateTypeCommand"); -var de_BatchDescribeTypeConfigurationsCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_BatchDescribeTypeConfigurationsOutput(data.BatchDescribeTypeConfigurationsResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_BatchDescribeTypeConfigurationsCommand"); -var de_CancelUpdateStackCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - await (0, import_smithy_client.collectBody)(output.body, context); - const response = { - $metadata: deserializeMetadata(output) - }; - return response; -}, "de_CancelUpdateStackCommand"); -var de_ContinueUpdateRollbackCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_ContinueUpdateRollbackOutput(data.ContinueUpdateRollbackResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_ContinueUpdateRollbackCommand"); -var de_CreateChangeSetCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_CreateChangeSetOutput(data.CreateChangeSetResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_CreateChangeSetCommand"); -var de_CreateGeneratedTemplateCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_CreateGeneratedTemplateOutput(data.CreateGeneratedTemplateResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_CreateGeneratedTemplateCommand"); -var de_CreateStackCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_CreateStackOutput(data.CreateStackResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_CreateStackCommand"); -var de_CreateStackInstancesCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_CreateStackInstancesOutput(data.CreateStackInstancesResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_CreateStackInstancesCommand"); -var de_CreateStackSetCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_CreateStackSetOutput(data.CreateStackSetResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_CreateStackSetCommand"); -var de_DeactivateOrganizationsAccessCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_DeactivateOrganizationsAccessOutput(data.DeactivateOrganizationsAccessResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_DeactivateOrganizationsAccessCommand"); -var de_DeactivateTypeCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_DeactivateTypeOutput(data.DeactivateTypeResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_DeactivateTypeCommand"); -var de_DeleteChangeSetCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_DeleteChangeSetOutput(data.DeleteChangeSetResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_DeleteChangeSetCommand"); -var de_DeleteGeneratedTemplateCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - await (0, import_smithy_client.collectBody)(output.body, context); - const response = { - $metadata: deserializeMetadata(output) - }; - return response; -}, "de_DeleteGeneratedTemplateCommand"); -var de_DeleteStackCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - await (0, import_smithy_client.collectBody)(output.body, context); - const response = { - $metadata: deserializeMetadata(output) - }; - return response; -}, "de_DeleteStackCommand"); -var de_DeleteStackInstancesCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_DeleteStackInstancesOutput(data.DeleteStackInstancesResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_DeleteStackInstancesCommand"); -var de_DeleteStackSetCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_DeleteStackSetOutput(data.DeleteStackSetResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_DeleteStackSetCommand"); -var de_DeregisterTypeCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_DeregisterTypeOutput(data.DeregisterTypeResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_DeregisterTypeCommand"); -var de_DescribeAccountLimitsCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_DescribeAccountLimitsOutput(data.DescribeAccountLimitsResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_DescribeAccountLimitsCommand"); -var de_DescribeChangeSetCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_DescribeChangeSetOutput(data.DescribeChangeSetResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_DescribeChangeSetCommand"); -var de_DescribeChangeSetHooksCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_DescribeChangeSetHooksOutput(data.DescribeChangeSetHooksResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_DescribeChangeSetHooksCommand"); -var de_DescribeGeneratedTemplateCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_DescribeGeneratedTemplateOutput(data.DescribeGeneratedTemplateResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_DescribeGeneratedTemplateCommand"); -var de_DescribeOrganizationsAccessCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_DescribeOrganizationsAccessOutput(data.DescribeOrganizationsAccessResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_DescribeOrganizationsAccessCommand"); -var de_DescribePublisherCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_DescribePublisherOutput(data.DescribePublisherResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_DescribePublisherCommand"); -var de_DescribeResourceScanCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_DescribeResourceScanOutput(data.DescribeResourceScanResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_DescribeResourceScanCommand"); -var de_DescribeStackDriftDetectionStatusCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_DescribeStackDriftDetectionStatusOutput(data.DescribeStackDriftDetectionStatusResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_DescribeStackDriftDetectionStatusCommand"); -var de_DescribeStackEventsCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_DescribeStackEventsOutput(data.DescribeStackEventsResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_DescribeStackEventsCommand"); -var de_DescribeStackInstanceCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_DescribeStackInstanceOutput(data.DescribeStackInstanceResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_DescribeStackInstanceCommand"); -var de_DescribeStackResourceCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_DescribeStackResourceOutput(data.DescribeStackResourceResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_DescribeStackResourceCommand"); -var de_DescribeStackResourceDriftsCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_DescribeStackResourceDriftsOutput(data.DescribeStackResourceDriftsResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_DescribeStackResourceDriftsCommand"); -var de_DescribeStackResourcesCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_DescribeStackResourcesOutput(data.DescribeStackResourcesResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_DescribeStackResourcesCommand"); -var de_DescribeStacksCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_DescribeStacksOutput(data.DescribeStacksResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_DescribeStacksCommand"); -var de_DescribeStackSetCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_DescribeStackSetOutput(data.DescribeStackSetResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_DescribeStackSetCommand"); -var de_DescribeStackSetOperationCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_DescribeStackSetOperationOutput(data.DescribeStackSetOperationResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_DescribeStackSetOperationCommand"); -var de_DescribeTypeCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_DescribeTypeOutput(data.DescribeTypeResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_DescribeTypeCommand"); -var de_DescribeTypeRegistrationCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_DescribeTypeRegistrationOutput(data.DescribeTypeRegistrationResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_DescribeTypeRegistrationCommand"); -var de_DetectStackDriftCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_DetectStackDriftOutput(data.DetectStackDriftResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_DetectStackDriftCommand"); -var de_DetectStackResourceDriftCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_DetectStackResourceDriftOutput(data.DetectStackResourceDriftResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_DetectStackResourceDriftCommand"); -var de_DetectStackSetDriftCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_DetectStackSetDriftOutput(data.DetectStackSetDriftResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_DetectStackSetDriftCommand"); -var de_EstimateTemplateCostCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_EstimateTemplateCostOutput(data.EstimateTemplateCostResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_EstimateTemplateCostCommand"); -var de_ExecuteChangeSetCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_ExecuteChangeSetOutput(data.ExecuteChangeSetResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_ExecuteChangeSetCommand"); -var de_GetGeneratedTemplateCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_GetGeneratedTemplateOutput(data.GetGeneratedTemplateResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_GetGeneratedTemplateCommand"); -var de_GetStackPolicyCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_GetStackPolicyOutput(data.GetStackPolicyResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_GetStackPolicyCommand"); -var de_GetTemplateCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_GetTemplateOutput(data.GetTemplateResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_GetTemplateCommand"); -var de_GetTemplateSummaryCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_GetTemplateSummaryOutput(data.GetTemplateSummaryResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_GetTemplateSummaryCommand"); -var de_ImportStacksToStackSetCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_ImportStacksToStackSetOutput(data.ImportStacksToStackSetResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_ImportStacksToStackSetCommand"); -var de_ListChangeSetsCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_ListChangeSetsOutput(data.ListChangeSetsResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_ListChangeSetsCommand"); -var de_ListExportsCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_ListExportsOutput(data.ListExportsResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_ListExportsCommand"); -var de_ListGeneratedTemplatesCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_ListGeneratedTemplatesOutput(data.ListGeneratedTemplatesResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_ListGeneratedTemplatesCommand"); -var de_ListImportsCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_ListImportsOutput(data.ListImportsResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_ListImportsCommand"); -var de_ListResourceScanRelatedResourcesCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_ListResourceScanRelatedResourcesOutput(data.ListResourceScanRelatedResourcesResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_ListResourceScanRelatedResourcesCommand"); -var de_ListResourceScanResourcesCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_ListResourceScanResourcesOutput(data.ListResourceScanResourcesResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_ListResourceScanResourcesCommand"); -var de_ListResourceScansCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_ListResourceScansOutput(data.ListResourceScansResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_ListResourceScansCommand"); -var de_ListStackInstanceResourceDriftsCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_ListStackInstanceResourceDriftsOutput(data.ListStackInstanceResourceDriftsResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_ListStackInstanceResourceDriftsCommand"); -var de_ListStackInstancesCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_ListStackInstancesOutput(data.ListStackInstancesResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_ListStackInstancesCommand"); -var de_ListStackResourcesCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_ListStackResourcesOutput(data.ListStackResourcesResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_ListStackResourcesCommand"); -var de_ListStacksCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_ListStacksOutput(data.ListStacksResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_ListStacksCommand"); -var de_ListStackSetAutoDeploymentTargetsCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_ListStackSetAutoDeploymentTargetsOutput(data.ListStackSetAutoDeploymentTargetsResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_ListStackSetAutoDeploymentTargetsCommand"); -var de_ListStackSetOperationResultsCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_ListStackSetOperationResultsOutput(data.ListStackSetOperationResultsResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_ListStackSetOperationResultsCommand"); -var de_ListStackSetOperationsCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_ListStackSetOperationsOutput(data.ListStackSetOperationsResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_ListStackSetOperationsCommand"); -var de_ListStackSetsCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_ListStackSetsOutput(data.ListStackSetsResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_ListStackSetsCommand"); -var de_ListTypeRegistrationsCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_ListTypeRegistrationsOutput(data.ListTypeRegistrationsResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_ListTypeRegistrationsCommand"); -var de_ListTypesCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_ListTypesOutput(data.ListTypesResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_ListTypesCommand"); -var de_ListTypeVersionsCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_ListTypeVersionsOutput(data.ListTypeVersionsResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_ListTypeVersionsCommand"); -var de_PublishTypeCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_PublishTypeOutput(data.PublishTypeResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_PublishTypeCommand"); -var de_RecordHandlerProgressCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_RecordHandlerProgressOutput(data.RecordHandlerProgressResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_RecordHandlerProgressCommand"); -var de_RegisterPublisherCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_RegisterPublisherOutput(data.RegisterPublisherResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_RegisterPublisherCommand"); -var de_RegisterTypeCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_RegisterTypeOutput(data.RegisterTypeResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_RegisterTypeCommand"); -var de_RollbackStackCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_RollbackStackOutput(data.RollbackStackResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_RollbackStackCommand"); -var de_SetStackPolicyCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - await (0, import_smithy_client.collectBody)(output.body, context); - const response = { - $metadata: deserializeMetadata(output) - }; - return response; -}, "de_SetStackPolicyCommand"); -var de_SetTypeConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_SetTypeConfigurationOutput(data.SetTypeConfigurationResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_SetTypeConfigurationCommand"); -var de_SetTypeDefaultVersionCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_SetTypeDefaultVersionOutput(data.SetTypeDefaultVersionResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_SetTypeDefaultVersionCommand"); -var de_SignalResourceCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - await (0, import_smithy_client.collectBody)(output.body, context); - const response = { - $metadata: deserializeMetadata(output) - }; - return response; -}, "de_SignalResourceCommand"); -var de_StartResourceScanCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_StartResourceScanOutput(data.StartResourceScanResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_StartResourceScanCommand"); -var de_StopStackSetOperationCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_StopStackSetOperationOutput(data.StopStackSetOperationResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_StopStackSetOperationCommand"); -var de_TestTypeCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_TestTypeOutput(data.TestTypeResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_TestTypeCommand"); -var de_UpdateGeneratedTemplateCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_UpdateGeneratedTemplateOutput(data.UpdateGeneratedTemplateResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_UpdateGeneratedTemplateCommand"); -var de_UpdateStackCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_UpdateStackOutput(data.UpdateStackResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_UpdateStackCommand"); -var de_UpdateStackInstancesCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_UpdateStackInstancesOutput(data.UpdateStackInstancesResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_UpdateStackInstancesCommand"); -var de_UpdateStackSetCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_UpdateStackSetOutput(data.UpdateStackSetResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_UpdateStackSetCommand"); -var de_UpdateTerminationProtectionCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_UpdateTerminationProtectionOutput(data.UpdateTerminationProtectionResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_UpdateTerminationProtectionCommand"); -var de_ValidateTemplateCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core2.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_ValidateTemplateOutput(data.ValidateTemplateResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_ValidateTemplateCommand"); -var de_CommandError = /* @__PURE__ */ __name(async (output, context) => { - const parsedOutput = { - ...output, - body: await (0, import_core2.parseXmlErrorBody)(output.body, context) - }; - const errorCode = loadQueryErrorCode(output, parsedOutput.body); - switch (errorCode) { - case "InvalidOperationException": - case "com.amazonaws.cloudformation#InvalidOperationException": - throw await de_InvalidOperationExceptionRes(parsedOutput, context); - case "OperationNotFoundException": - case "com.amazonaws.cloudformation#OperationNotFoundException": - throw await de_OperationNotFoundExceptionRes(parsedOutput, context); - case "CFNRegistryException": - case "com.amazonaws.cloudformation#CFNRegistryException": - throw await de_CFNRegistryExceptionRes(parsedOutput, context); - case "TypeNotFoundException": - case "com.amazonaws.cloudformation#TypeNotFoundException": - throw await de_TypeNotFoundExceptionRes(parsedOutput, context); - case "TypeConfigurationNotFoundException": - case "com.amazonaws.cloudformation#TypeConfigurationNotFoundException": - throw await de_TypeConfigurationNotFoundExceptionRes(parsedOutput, context); - case "TokenAlreadyExistsException": - case "com.amazonaws.cloudformation#TokenAlreadyExistsException": - throw await de_TokenAlreadyExistsExceptionRes(parsedOutput, context); - case "AlreadyExistsException": - case "com.amazonaws.cloudformation#AlreadyExistsException": - throw await de_AlreadyExistsExceptionRes(parsedOutput, context); - case "InsufficientCapabilitiesException": - case "com.amazonaws.cloudformation#InsufficientCapabilitiesException": - throw await de_InsufficientCapabilitiesExceptionRes(parsedOutput, context); - case "LimitExceededException": - case "com.amazonaws.cloudformation#LimitExceededException": - throw await de_LimitExceededExceptionRes(parsedOutput, context); - case "ConcurrentResourcesLimitExceeded": - case "com.amazonaws.cloudformation#ConcurrentResourcesLimitExceededException": - throw await de_ConcurrentResourcesLimitExceededExceptionRes(parsedOutput, context); - case "OperationIdAlreadyExistsException": - case "com.amazonaws.cloudformation#OperationIdAlreadyExistsException": - throw await de_OperationIdAlreadyExistsExceptionRes(parsedOutput, context); - case "OperationInProgressException": - case "com.amazonaws.cloudformation#OperationInProgressException": - throw await de_OperationInProgressExceptionRes(parsedOutput, context); - case "StackSetNotFoundException": - case "com.amazonaws.cloudformation#StackSetNotFoundException": - throw await de_StackSetNotFoundExceptionRes(parsedOutput, context); - case "StaleRequestException": - case "com.amazonaws.cloudformation#StaleRequestException": - throw await de_StaleRequestExceptionRes(parsedOutput, context); - case "CreatedButModifiedException": - case "com.amazonaws.cloudformation#CreatedButModifiedException": - throw await de_CreatedButModifiedExceptionRes(parsedOutput, context); - case "NameAlreadyExistsException": - case "com.amazonaws.cloudformation#NameAlreadyExistsException": - throw await de_NameAlreadyExistsExceptionRes(parsedOutput, context); - case "InvalidChangeSetStatus": - case "com.amazonaws.cloudformation#InvalidChangeSetStatusException": - throw await de_InvalidChangeSetStatusExceptionRes(parsedOutput, context); - case "GeneratedTemplateNotFound": - case "com.amazonaws.cloudformation#GeneratedTemplateNotFoundException": - throw await de_GeneratedTemplateNotFoundExceptionRes(parsedOutput, context); - case "StackSetNotEmptyException": - case "com.amazonaws.cloudformation#StackSetNotEmptyException": - throw await de_StackSetNotEmptyExceptionRes(parsedOutput, context); - case "ChangeSetNotFound": - case "com.amazonaws.cloudformation#ChangeSetNotFoundException": - throw await de_ChangeSetNotFoundExceptionRes(parsedOutput, context); - case "ResourceScanNotFound": - case "com.amazonaws.cloudformation#ResourceScanNotFoundException": - throw await de_ResourceScanNotFoundExceptionRes(parsedOutput, context); - case "StackInstanceNotFoundException": - case "com.amazonaws.cloudformation#StackInstanceNotFoundException": - throw await de_StackInstanceNotFoundExceptionRes(parsedOutput, context); - case "StackNotFoundException": - case "com.amazonaws.cloudformation#StackNotFoundException": - throw await de_StackNotFoundExceptionRes(parsedOutput, context); - case "ResourceScanInProgress": - case "com.amazonaws.cloudformation#ResourceScanInProgressException": - throw await de_ResourceScanInProgressExceptionRes(parsedOutput, context); - case "ConditionalCheckFailed": - case "com.amazonaws.cloudformation#OperationStatusCheckFailedException": - throw await de_OperationStatusCheckFailedExceptionRes(parsedOutput, context); - case "InvalidStateTransition": - case "com.amazonaws.cloudformation#InvalidStateTransitionException": - throw await de_InvalidStateTransitionExceptionRes(parsedOutput, context); - case "ResourceScanLimitExceeded": - case "com.amazonaws.cloudformation#ResourceScanLimitExceededException": - throw await de_ResourceScanLimitExceededExceptionRes(parsedOutput, context); - default: - const parsedBody = parsedOutput.body; - return throwDefaultError({ - output, - parsedBody: parsedBody.Error, - errorCode - }); - } -}, "de_CommandError"); -var de_AlreadyExistsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const body = parsedOutput.body; - const deserialized = de_AlreadyExistsException(body.Error, context); - const exception = new AlreadyExistsException({ - $metadata: deserializeMetadata(parsedOutput), - ...deserialized - }); - return (0, import_smithy_client.decorateServiceException)(exception, body); -}, "de_AlreadyExistsExceptionRes"); -var de_CFNRegistryExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const body = parsedOutput.body; - const deserialized = de_CFNRegistryException(body.Error, context); - const exception = new CFNRegistryException({ - $metadata: deserializeMetadata(parsedOutput), - ...deserialized - }); - return (0, import_smithy_client.decorateServiceException)(exception, body); -}, "de_CFNRegistryExceptionRes"); -var de_ChangeSetNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const body = parsedOutput.body; - const deserialized = de_ChangeSetNotFoundException(body.Error, context); - const exception = new ChangeSetNotFoundException({ - $metadata: deserializeMetadata(parsedOutput), - ...deserialized - }); - return (0, import_smithy_client.decorateServiceException)(exception, body); -}, "de_ChangeSetNotFoundExceptionRes"); -var de_ConcurrentResourcesLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const body = parsedOutput.body; - const deserialized = de_ConcurrentResourcesLimitExceededException(body.Error, context); - const exception = new ConcurrentResourcesLimitExceededException({ - $metadata: deserializeMetadata(parsedOutput), - ...deserialized - }); - return (0, import_smithy_client.decorateServiceException)(exception, body); -}, "de_ConcurrentResourcesLimitExceededExceptionRes"); -var de_CreatedButModifiedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const body = parsedOutput.body; - const deserialized = de_CreatedButModifiedException(body.Error, context); - const exception = new CreatedButModifiedException({ - $metadata: deserializeMetadata(parsedOutput), - ...deserialized - }); - return (0, import_smithy_client.decorateServiceException)(exception, body); -}, "de_CreatedButModifiedExceptionRes"); -var de_GeneratedTemplateNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const body = parsedOutput.body; - const deserialized = de_GeneratedTemplateNotFoundException(body.Error, context); - const exception = new GeneratedTemplateNotFoundException({ - $metadata: deserializeMetadata(parsedOutput), - ...deserialized - }); - return (0, import_smithy_client.decorateServiceException)(exception, body); -}, "de_GeneratedTemplateNotFoundExceptionRes"); -var de_InsufficientCapabilitiesExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const body = parsedOutput.body; - const deserialized = de_InsufficientCapabilitiesException(body.Error, context); - const exception = new InsufficientCapabilitiesException({ - $metadata: deserializeMetadata(parsedOutput), - ...deserialized - }); - return (0, import_smithy_client.decorateServiceException)(exception, body); -}, "de_InsufficientCapabilitiesExceptionRes"); -var de_InvalidChangeSetStatusExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const body = parsedOutput.body; - const deserialized = de_InvalidChangeSetStatusException(body.Error, context); - const exception = new InvalidChangeSetStatusException({ - $metadata: deserializeMetadata(parsedOutput), - ...deserialized - }); - return (0, import_smithy_client.decorateServiceException)(exception, body); -}, "de_InvalidChangeSetStatusExceptionRes"); -var de_InvalidOperationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const body = parsedOutput.body; - const deserialized = de_InvalidOperationException(body.Error, context); - const exception = new InvalidOperationException({ - $metadata: deserializeMetadata(parsedOutput), - ...deserialized - }); - return (0, import_smithy_client.decorateServiceException)(exception, body); -}, "de_InvalidOperationExceptionRes"); -var de_InvalidStateTransitionExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const body = parsedOutput.body; - const deserialized = de_InvalidStateTransitionException(body.Error, context); - const exception = new InvalidStateTransitionException({ - $metadata: deserializeMetadata(parsedOutput), - ...deserialized - }); - return (0, import_smithy_client.decorateServiceException)(exception, body); -}, "de_InvalidStateTransitionExceptionRes"); -var de_LimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const body = parsedOutput.body; - const deserialized = de_LimitExceededException(body.Error, context); - const exception = new LimitExceededException({ - $metadata: deserializeMetadata(parsedOutput), - ...deserialized - }); - return (0, import_smithy_client.decorateServiceException)(exception, body); -}, "de_LimitExceededExceptionRes"); -var de_NameAlreadyExistsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const body = parsedOutput.body; - const deserialized = de_NameAlreadyExistsException(body.Error, context); - const exception = new NameAlreadyExistsException({ - $metadata: deserializeMetadata(parsedOutput), - ...deserialized - }); - return (0, import_smithy_client.decorateServiceException)(exception, body); -}, "de_NameAlreadyExistsExceptionRes"); -var de_OperationIdAlreadyExistsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const body = parsedOutput.body; - const deserialized = de_OperationIdAlreadyExistsException(body.Error, context); - const exception = new OperationIdAlreadyExistsException({ - $metadata: deserializeMetadata(parsedOutput), - ...deserialized - }); - return (0, import_smithy_client.decorateServiceException)(exception, body); -}, "de_OperationIdAlreadyExistsExceptionRes"); -var de_OperationInProgressExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const body = parsedOutput.body; - const deserialized = de_OperationInProgressException(body.Error, context); - const exception = new OperationInProgressException({ - $metadata: deserializeMetadata(parsedOutput), - ...deserialized - }); - return (0, import_smithy_client.decorateServiceException)(exception, body); -}, "de_OperationInProgressExceptionRes"); -var de_OperationNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const body = parsedOutput.body; - const deserialized = de_OperationNotFoundException(body.Error, context); - const exception = new OperationNotFoundException({ - $metadata: deserializeMetadata(parsedOutput), - ...deserialized - }); - return (0, import_smithy_client.decorateServiceException)(exception, body); -}, "de_OperationNotFoundExceptionRes"); -var de_OperationStatusCheckFailedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const body = parsedOutput.body; - const deserialized = de_OperationStatusCheckFailedException(body.Error, context); - const exception = new OperationStatusCheckFailedException({ - $metadata: deserializeMetadata(parsedOutput), - ...deserialized - }); - return (0, import_smithy_client.decorateServiceException)(exception, body); -}, "de_OperationStatusCheckFailedExceptionRes"); -var de_ResourceScanInProgressExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const body = parsedOutput.body; - const deserialized = de_ResourceScanInProgressException(body.Error, context); - const exception = new ResourceScanInProgressException({ - $metadata: deserializeMetadata(parsedOutput), - ...deserialized - }); - return (0, import_smithy_client.decorateServiceException)(exception, body); -}, "de_ResourceScanInProgressExceptionRes"); -var de_ResourceScanLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const body = parsedOutput.body; - const deserialized = de_ResourceScanLimitExceededException(body.Error, context); - const exception = new ResourceScanLimitExceededException({ - $metadata: deserializeMetadata(parsedOutput), - ...deserialized - }); - return (0, import_smithy_client.decorateServiceException)(exception, body); -}, "de_ResourceScanLimitExceededExceptionRes"); -var de_ResourceScanNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const body = parsedOutput.body; - const deserialized = de_ResourceScanNotFoundException(body.Error, context); - const exception = new ResourceScanNotFoundException({ - $metadata: deserializeMetadata(parsedOutput), - ...deserialized - }); - return (0, import_smithy_client.decorateServiceException)(exception, body); -}, "de_ResourceScanNotFoundExceptionRes"); -var de_StackInstanceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const body = parsedOutput.body; - const deserialized = de_StackInstanceNotFoundException(body.Error, context); - const exception = new StackInstanceNotFoundException({ - $metadata: deserializeMetadata(parsedOutput), - ...deserialized - }); - return (0, import_smithy_client.decorateServiceException)(exception, body); -}, "de_StackInstanceNotFoundExceptionRes"); -var de_StackNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const body = parsedOutput.body; - const deserialized = de_StackNotFoundException(body.Error, context); - const exception = new StackNotFoundException({ - $metadata: deserializeMetadata(parsedOutput), - ...deserialized - }); - return (0, import_smithy_client.decorateServiceException)(exception, body); -}, "de_StackNotFoundExceptionRes"); -var de_StackSetNotEmptyExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const body = parsedOutput.body; - const deserialized = de_StackSetNotEmptyException(body.Error, context); - const exception = new StackSetNotEmptyException({ - $metadata: deserializeMetadata(parsedOutput), - ...deserialized - }); - return (0, import_smithy_client.decorateServiceException)(exception, body); -}, "de_StackSetNotEmptyExceptionRes"); -var de_StackSetNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const body = parsedOutput.body; - const deserialized = de_StackSetNotFoundException(body.Error, context); - const exception = new StackSetNotFoundException({ - $metadata: deserializeMetadata(parsedOutput), - ...deserialized - }); - return (0, import_smithy_client.decorateServiceException)(exception, body); -}, "de_StackSetNotFoundExceptionRes"); -var de_StaleRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const body = parsedOutput.body; - const deserialized = de_StaleRequestException(body.Error, context); - const exception = new StaleRequestException({ - $metadata: deserializeMetadata(parsedOutput), - ...deserialized - }); - return (0, import_smithy_client.decorateServiceException)(exception, body); -}, "de_StaleRequestExceptionRes"); -var de_TokenAlreadyExistsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const body = parsedOutput.body; - const deserialized = de_TokenAlreadyExistsException(body.Error, context); - const exception = new TokenAlreadyExistsException({ - $metadata: deserializeMetadata(parsedOutput), - ...deserialized - }); - return (0, import_smithy_client.decorateServiceException)(exception, body); -}, "de_TokenAlreadyExistsExceptionRes"); -var de_TypeConfigurationNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const body = parsedOutput.body; - const deserialized = de_TypeConfigurationNotFoundException(body.Error, context); - const exception = new TypeConfigurationNotFoundException({ - $metadata: deserializeMetadata(parsedOutput), - ...deserialized - }); - return (0, import_smithy_client.decorateServiceException)(exception, body); -}, "de_TypeConfigurationNotFoundExceptionRes"); -var de_TypeNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const body = parsedOutput.body; - const deserialized = de_TypeNotFoundException(body.Error, context); - const exception = new TypeNotFoundException({ - $metadata: deserializeMetadata(parsedOutput), - ...deserialized - }); - return (0, import_smithy_client.decorateServiceException)(exception, body); -}, "de_TypeNotFoundExceptionRes"); -var se_AccountList = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - let counter = 1; - for (const entry of input) { - if (entry === null) { - continue; - } - entries[`member.${counter}`] = entry; - counter++; - } - return entries; -}, "se_AccountList"); -var se_ActivateOrganizationsAccessInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - return entries; -}, "se_ActivateOrganizationsAccessInput"); -var se_ActivateTypeInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_T] != null) { - entries[_T] = input[_T]; - } - if (input[_PTA] != null) { - entries[_PTA] = input[_PTA]; - } - if (input[_PI] != null) { - entries[_PI] = input[_PI]; - } - if (input[_TN] != null) { - entries[_TN] = input[_TN]; - } - if (input[_TNA] != null) { - entries[_TNA] = input[_TNA]; - } - if (input[_AU] != null) { - entries[_AU] = input[_AU]; - } - if (input[_LC] != null) { - const memberEntries = se_LoggingConfig(input[_LC], context); - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `LoggingConfig.${key}`; - entries[loc] = value; - }); - } - if (input[_ERA] != null) { - entries[_ERA] = input[_ERA]; - } - if (input[_VB] != null) { - entries[_VB] = input[_VB]; - } - if (input[_MV] != null) { - entries[_MV] = input[_MV]; - } - return entries; -}, "se_ActivateTypeInput"); -var se_AutoDeployment = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_E] != null) { - entries[_E] = input[_E]; - } - if (input[_RSOAR] != null) { - entries[_RSOAR] = input[_RSOAR]; - } - return entries; -}, "se_AutoDeployment"); -var se_BatchDescribeTypeConfigurationsInput = /* @__PURE__ */ __name((input, context) => { - var _a; - const entries = {}; - if (input[_TCI] != null) { - const memberEntries = se_TypeConfigurationIdentifiers(input[_TCI], context); - if (((_a = input[_TCI]) == null ? void 0 : _a.length) === 0) { - entries.TypeConfigurationIdentifiers = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `TypeConfigurationIdentifiers.${key}`; - entries[loc] = value; - }); - } - return entries; -}, "se_BatchDescribeTypeConfigurationsInput"); -var se_CancelUpdateStackInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_SN] != null) { - entries[_SN] = input[_SN]; - } - if (input[_CRT] != null) { - entries[_CRT] = input[_CRT]; - } - return entries; -}, "se_CancelUpdateStackInput"); -var se_Capabilities = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - let counter = 1; - for (const entry of input) { - if (entry === null) { - continue; - } - entries[`member.${counter}`] = entry; - counter++; - } - return entries; -}, "se_Capabilities"); -var se_ContinueUpdateRollbackInput = /* @__PURE__ */ __name((input, context) => { - var _a; - const entries = {}; - if (input[_SN] != null) { - entries[_SN] = input[_SN]; - } - if (input[_RARN] != null) { - entries[_RARN] = input[_RARN]; - } - if (input[_RTS] != null) { - const memberEntries = se_ResourcesToSkip(input[_RTS], context); - if (((_a = input[_RTS]) == null ? void 0 : _a.length) === 0) { - entries.ResourcesToSkip = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `ResourcesToSkip.${key}`; - entries[loc] = value; - }); - } - if (input[_CRT] != null) { - entries[_CRT] = input[_CRT]; - } - return entries; -}, "se_ContinueUpdateRollbackInput"); -var se_CreateChangeSetInput = /* @__PURE__ */ __name((input, context) => { - var _a, _b, _c, _d, _e2, _f; - const entries = {}; - if (input[_SN] != null) { - entries[_SN] = input[_SN]; - } - if (input[_TB] != null) { - entries[_TB] = input[_TB]; - } - if (input[_TURL] != null) { - entries[_TURL] = input[_TURL]; - } - if (input[_UPT] != null) { - entries[_UPT] = input[_UPT]; - } - if (input[_P] != null) { - const memberEntries = se_Parameters(input[_P], context); - if (((_a = input[_P]) == null ? void 0 : _a.length) === 0) { - entries.Parameters = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `Parameters.${key}`; - entries[loc] = value; - }); - } - if (input[_C] != null) { - const memberEntries = se_Capabilities(input[_C], context); - if (((_b = input[_C]) == null ? void 0 : _b.length) === 0) { - entries.Capabilities = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `Capabilities.${key}`; - entries[loc] = value; - }); - } - if (input[_RTe] != null) { - const memberEntries = se_ResourceTypes(input[_RTe], context); - if (((_c = input[_RTe]) == null ? void 0 : _c.length) === 0) { - entries.ResourceTypes = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `ResourceTypes.${key}`; - entries[loc] = value; - }); - } - if (input[_RARN] != null) { - entries[_RARN] = input[_RARN]; - } - if (input[_RC] != null) { - const memberEntries = se_RollbackConfiguration(input[_RC], context); - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `RollbackConfiguration.${key}`; - entries[loc] = value; - }); - } - if (input[_NARN] != null) { - const memberEntries = se_NotificationARNs(input[_NARN], context); - if (((_d = input[_NARN]) == null ? void 0 : _d.length) === 0) { - entries.NotificationARNs = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `NotificationARNs.${key}`; - entries[loc] = value; - }); - } - if (input[_Ta] != null) { - const memberEntries = se_Tags(input[_Ta], context); - if (((_e2 = input[_Ta]) == null ? void 0 : _e2.length) === 0) { - entries.Tags = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `Tags.${key}`; - entries[loc] = value; - }); - } - if (input[_CSN] != null) { - entries[_CSN] = input[_CSN]; - } - if (input[_CT] != null) { - entries[_CT] = input[_CT]; - } - if (input[_D] != null) { - entries[_D] = input[_D]; - } - if (input[_CST] != null) { - entries[_CST] = input[_CST]; - } - if (input[_RTI] != null) { - const memberEntries = se_ResourcesToImport(input[_RTI], context); - if (((_f = input[_RTI]) == null ? void 0 : _f.length) === 0) { - entries.ResourcesToImport = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `ResourcesToImport.${key}`; - entries[loc] = value; - }); - } - if (input[_INS] != null) { - entries[_INS] = input[_INS]; - } - if (input[_OSF] != null) { - entries[_OSF] = input[_OSF]; - } - if (input[_IER] != null) { - entries[_IER] = input[_IER]; - } - return entries; -}, "se_CreateChangeSetInput"); -var se_CreateGeneratedTemplateInput = /* @__PURE__ */ __name((input, context) => { - var _a; - const entries = {}; - if (input[_R] != null) { - const memberEntries = se_ResourceDefinitions(input[_R], context); - if (((_a = input[_R]) == null ? void 0 : _a.length) === 0) { - entries.Resources = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `Resources.${key}`; - entries[loc] = value; - }); - } - if (input[_GTN] != null) { - entries[_GTN] = input[_GTN]; - } - if (input[_SN] != null) { - entries[_SN] = input[_SN]; - } - if (input[_TC] != null) { - const memberEntries = se_TemplateConfiguration(input[_TC], context); - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `TemplateConfiguration.${key}`; - entries[loc] = value; - }); - } - return entries; -}, "se_CreateGeneratedTemplateInput"); -var se_CreateStackInput = /* @__PURE__ */ __name((input, context) => { - var _a, _b, _c, _d, _e2; - const entries = {}; - if (input[_SN] != null) { - entries[_SN] = input[_SN]; - } - if (input[_TB] != null) { - entries[_TB] = input[_TB]; - } - if (input[_TURL] != null) { - entries[_TURL] = input[_TURL]; - } - if (input[_P] != null) { - const memberEntries = se_Parameters(input[_P], context); - if (((_a = input[_P]) == null ? void 0 : _a.length) === 0) { - entries.Parameters = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `Parameters.${key}`; - entries[loc] = value; - }); - } - if (input[_DR] != null) { - entries[_DR] = input[_DR]; - } - if (input[_RC] != null) { - const memberEntries = se_RollbackConfiguration(input[_RC], context); - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `RollbackConfiguration.${key}`; - entries[loc] = value; - }); - } - if (input[_TIM] != null) { - entries[_TIM] = input[_TIM]; - } - if (input[_NARN] != null) { - const memberEntries = se_NotificationARNs(input[_NARN], context); - if (((_b = input[_NARN]) == null ? void 0 : _b.length) === 0) { - entries.NotificationARNs = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `NotificationARNs.${key}`; - entries[loc] = value; - }); - } - if (input[_C] != null) { - const memberEntries = se_Capabilities(input[_C], context); - if (((_c = input[_C]) == null ? void 0 : _c.length) === 0) { - entries.Capabilities = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `Capabilities.${key}`; - entries[loc] = value; - }); - } - if (input[_RTe] != null) { - const memberEntries = se_ResourceTypes(input[_RTe], context); - if (((_d = input[_RTe]) == null ? void 0 : _d.length) === 0) { - entries.ResourceTypes = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `ResourceTypes.${key}`; - entries[loc] = value; - }); - } - if (input[_RARN] != null) { - entries[_RARN] = input[_RARN]; - } - if (input[_OF] != null) { - entries[_OF] = input[_OF]; - } - if (input[_SPB] != null) { - entries[_SPB] = input[_SPB]; - } - if (input[_SPURL] != null) { - entries[_SPURL] = input[_SPURL]; - } - if (input[_Ta] != null) { - const memberEntries = se_Tags(input[_Ta], context); - if (((_e2 = input[_Ta]) == null ? void 0 : _e2.length) === 0) { - entries.Tags = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `Tags.${key}`; - entries[loc] = value; - }); - } - if (input[_CRT] != null) { - entries[_CRT] = input[_CRT]; - } - if (input[_ETP] != null) { - entries[_ETP] = input[_ETP]; - } - if (input[_REOC] != null) { - entries[_REOC] = input[_REOC]; - } - return entries; -}, "se_CreateStackInput"); -var se_CreateStackInstancesInput = /* @__PURE__ */ __name((input, context) => { - var _a, _b, _c; - const entries = {}; - if (input[_SSN] != null) { - entries[_SSN] = input[_SSN]; - } - if (input[_Ac] != null) { - const memberEntries = se_AccountList(input[_Ac], context); - if (((_a = input[_Ac]) == null ? void 0 : _a.length) === 0) { - entries.Accounts = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `Accounts.${key}`; - entries[loc] = value; - }); - } - if (input[_DTep] != null) { - const memberEntries = se_DeploymentTargets(input[_DTep], context); - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `DeploymentTargets.${key}`; - entries[loc] = value; - }); - } - if (input[_Re] != null) { - const memberEntries = se_RegionList(input[_Re], context); - if (((_b = input[_Re]) == null ? void 0 : _b.length) === 0) { - entries.Regions = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `Regions.${key}`; - entries[loc] = value; - }); - } - if (input[_PO] != null) { - const memberEntries = se_Parameters(input[_PO], context); - if (((_c = input[_PO]) == null ? void 0 : _c.length) === 0) { - entries.ParameterOverrides = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `ParameterOverrides.${key}`; - entries[loc] = value; - }); - } - if (input[_OP] != null) { - const memberEntries = se_StackSetOperationPreferences(input[_OP], context); - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `OperationPreferences.${key}`; - entries[loc] = value; - }); - } - if (input[_OI] === void 0) { - input[_OI] = (0, import_uuid.v4)(); - } - if (input[_OI] != null) { - entries[_OI] = input[_OI]; - } - if (input[_CA] != null) { - entries[_CA] = input[_CA]; - } - return entries; -}, "se_CreateStackInstancesInput"); -var se_CreateStackSetInput = /* @__PURE__ */ __name((input, context) => { - var _a, _b, _c; - const entries = {}; - if (input[_SSN] != null) { - entries[_SSN] = input[_SSN]; - } - if (input[_D] != null) { - entries[_D] = input[_D]; - } - if (input[_TB] != null) { - entries[_TB] = input[_TB]; - } - if (input[_TURL] != null) { - entries[_TURL] = input[_TURL]; - } - if (input[_SI] != null) { - entries[_SI] = input[_SI]; - } - if (input[_P] != null) { - const memberEntries = se_Parameters(input[_P], context); - if (((_a = input[_P]) == null ? void 0 : _a.length) === 0) { - entries.Parameters = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `Parameters.${key}`; - entries[loc] = value; - }); - } - if (input[_C] != null) { - const memberEntries = se_Capabilities(input[_C], context); - if (((_b = input[_C]) == null ? void 0 : _b.length) === 0) { - entries.Capabilities = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `Capabilities.${key}`; - entries[loc] = value; - }); - } - if (input[_Ta] != null) { - const memberEntries = se_Tags(input[_Ta], context); - if (((_c = input[_Ta]) == null ? void 0 : _c.length) === 0) { - entries.Tags = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `Tags.${key}`; - entries[loc] = value; - }); - } - if (input[_ARARN] != null) { - entries[_ARARN] = input[_ARARN]; - } - if (input[_ERN] != null) { - entries[_ERN] = input[_ERN]; - } - if (input[_PM] != null) { - entries[_PM] = input[_PM]; - } - if (input[_AD] != null) { - const memberEntries = se_AutoDeployment(input[_AD], context); - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `AutoDeployment.${key}`; - entries[loc] = value; - }); - } - if (input[_CA] != null) { - entries[_CA] = input[_CA]; - } - if (input[_CRT] === void 0) { - input[_CRT] = (0, import_uuid.v4)(); - } - if (input[_CRT] != null) { - entries[_CRT] = input[_CRT]; - } - if (input[_ME] != null) { - const memberEntries = se_ManagedExecution(input[_ME], context); - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `ManagedExecution.${key}`; - entries[loc] = value; - }); - } - return entries; -}, "se_CreateStackSetInput"); -var se_DeactivateOrganizationsAccessInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - return entries; -}, "se_DeactivateOrganizationsAccessInput"); -var se_DeactivateTypeInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_TN] != null) { - entries[_TN] = input[_TN]; - } - if (input[_T] != null) { - entries[_T] = input[_T]; - } - if (input[_Ar] != null) { - entries[_Ar] = input[_Ar]; - } - return entries; -}, "se_DeactivateTypeInput"); -var se_DeleteChangeSetInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_CSN] != null) { - entries[_CSN] = input[_CSN]; - } - if (input[_SN] != null) { - entries[_SN] = input[_SN]; - } - return entries; -}, "se_DeleteChangeSetInput"); -var se_DeleteGeneratedTemplateInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_GTN] != null) { - entries[_GTN] = input[_GTN]; - } - return entries; -}, "se_DeleteGeneratedTemplateInput"); -var se_DeleteStackInput = /* @__PURE__ */ __name((input, context) => { - var _a; - const entries = {}; - if (input[_SN] != null) { - entries[_SN] = input[_SN]; - } - if (input[_RR] != null) { - const memberEntries = se_RetainResources(input[_RR], context); - if (((_a = input[_RR]) == null ? void 0 : _a.length) === 0) { - entries.RetainResources = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `RetainResources.${key}`; - entries[loc] = value; - }); - } - if (input[_RARN] != null) { - entries[_RARN] = input[_RARN]; - } - if (input[_CRT] != null) { - entries[_CRT] = input[_CRT]; - } - if (input[_DM] != null) { - entries[_DM] = input[_DM]; - } - return entries; -}, "se_DeleteStackInput"); -var se_DeleteStackInstancesInput = /* @__PURE__ */ __name((input, context) => { - var _a, _b; - const entries = {}; - if (input[_SSN] != null) { - entries[_SSN] = input[_SSN]; - } - if (input[_Ac] != null) { - const memberEntries = se_AccountList(input[_Ac], context); - if (((_a = input[_Ac]) == null ? void 0 : _a.length) === 0) { - entries.Accounts = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `Accounts.${key}`; - entries[loc] = value; - }); - } - if (input[_DTep] != null) { - const memberEntries = se_DeploymentTargets(input[_DTep], context); - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `DeploymentTargets.${key}`; - entries[loc] = value; - }); - } - if (input[_Re] != null) { - const memberEntries = se_RegionList(input[_Re], context); - if (((_b = input[_Re]) == null ? void 0 : _b.length) === 0) { - entries.Regions = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `Regions.${key}`; - entries[loc] = value; - }); - } - if (input[_OP] != null) { - const memberEntries = se_StackSetOperationPreferences(input[_OP], context); - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `OperationPreferences.${key}`; - entries[loc] = value; - }); - } - if (input[_RSe] != null) { - entries[_RSe] = input[_RSe]; - } - if (input[_OI] === void 0) { - input[_OI] = (0, import_uuid.v4)(); - } - if (input[_OI] != null) { - entries[_OI] = input[_OI]; - } - if (input[_CA] != null) { - entries[_CA] = input[_CA]; - } - return entries; -}, "se_DeleteStackInstancesInput"); -var se_DeleteStackSetInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_SSN] != null) { - entries[_SSN] = input[_SSN]; - } - if (input[_CA] != null) { - entries[_CA] = input[_CA]; - } - return entries; -}, "se_DeleteStackSetInput"); -var se_DeploymentTargets = /* @__PURE__ */ __name((input, context) => { - var _a, _b; - const entries = {}; - if (input[_Ac] != null) { - const memberEntries = se_AccountList(input[_Ac], context); - if (((_a = input[_Ac]) == null ? void 0 : _a.length) === 0) { - entries.Accounts = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `Accounts.${key}`; - entries[loc] = value; - }); - } - if (input[_AUc] != null) { - entries[_AUc] = input[_AUc]; - } - if (input[_OUI] != null) { - const memberEntries = se_OrganizationalUnitIdList(input[_OUI], context); - if (((_b = input[_OUI]) == null ? void 0 : _b.length) === 0) { - entries.OrganizationalUnitIds = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `OrganizationalUnitIds.${key}`; - entries[loc] = value; - }); - } - if (input[_AFT] != null) { - entries[_AFT] = input[_AFT]; - } - return entries; -}, "se_DeploymentTargets"); -var se_DeregisterTypeInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_Ar] != null) { - entries[_Ar] = input[_Ar]; - } - if (input[_T] != null) { - entries[_T] = input[_T]; - } - if (input[_TN] != null) { - entries[_TN] = input[_TN]; - } - if (input[_VI] != null) { - entries[_VI] = input[_VI]; - } - return entries; -}, "se_DeregisterTypeInput"); -var se_DescribeAccountLimitsInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_NT] != null) { - entries[_NT] = input[_NT]; - } - return entries; -}, "se_DescribeAccountLimitsInput"); -var se_DescribeChangeSetHooksInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_CSN] != null) { - entries[_CSN] = input[_CSN]; - } - if (input[_SN] != null) { - entries[_SN] = input[_SN]; - } - if (input[_NT] != null) { - entries[_NT] = input[_NT]; - } - if (input[_LRI] != null) { - entries[_LRI] = input[_LRI]; - } - return entries; -}, "se_DescribeChangeSetHooksInput"); -var se_DescribeChangeSetInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_CSN] != null) { - entries[_CSN] = input[_CSN]; - } - if (input[_SN] != null) { - entries[_SN] = input[_SN]; - } - if (input[_NT] != null) { - entries[_NT] = input[_NT]; - } - if (input[_IPV] != null) { - entries[_IPV] = input[_IPV]; - } - return entries; -}, "se_DescribeChangeSetInput"); -var se_DescribeGeneratedTemplateInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_GTN] != null) { - entries[_GTN] = input[_GTN]; - } - return entries; -}, "se_DescribeGeneratedTemplateInput"); -var se_DescribeOrganizationsAccessInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_CA] != null) { - entries[_CA] = input[_CA]; - } - return entries; -}, "se_DescribeOrganizationsAccessInput"); -var se_DescribePublisherInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_PI] != null) { - entries[_PI] = input[_PI]; - } - return entries; -}, "se_DescribePublisherInput"); -var se_DescribeResourceScanInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_RSI] != null) { - entries[_RSI] = input[_RSI]; - } - return entries; -}, "se_DescribeResourceScanInput"); -var se_DescribeStackDriftDetectionStatusInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_SDDI] != null) { - entries[_SDDI] = input[_SDDI]; - } - return entries; -}, "se_DescribeStackDriftDetectionStatusInput"); -var se_DescribeStackEventsInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_SN] != null) { - entries[_SN] = input[_SN]; - } - if (input[_NT] != null) { - entries[_NT] = input[_NT]; - } - return entries; -}, "se_DescribeStackEventsInput"); -var se_DescribeStackInstanceInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_SSN] != null) { - entries[_SSN] = input[_SSN]; - } - if (input[_SIA] != null) { - entries[_SIA] = input[_SIA]; - } - if (input[_SIR] != null) { - entries[_SIR] = input[_SIR]; - } - if (input[_CA] != null) { - entries[_CA] = input[_CA]; - } - return entries; -}, "se_DescribeStackInstanceInput"); -var se_DescribeStackResourceDriftsInput = /* @__PURE__ */ __name((input, context) => { - var _a; - const entries = {}; - if (input[_SN] != null) { - entries[_SN] = input[_SN]; - } - if (input[_SRDSF] != null) { - const memberEntries = se_StackResourceDriftStatusFilters(input[_SRDSF], context); - if (((_a = input[_SRDSF]) == null ? void 0 : _a.length) === 0) { - entries.StackResourceDriftStatusFilters = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `StackResourceDriftStatusFilters.${key}`; - entries[loc] = value; - }); - } - if (input[_NT] != null) { - entries[_NT] = input[_NT]; - } - if (input[_MR] != null) { - entries[_MR] = input[_MR]; - } - return entries; -}, "se_DescribeStackResourceDriftsInput"); -var se_DescribeStackResourceInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_SN] != null) { - entries[_SN] = input[_SN]; - } - if (input[_LRI] != null) { - entries[_LRI] = input[_LRI]; - } - return entries; -}, "se_DescribeStackResourceInput"); -var se_DescribeStackResourcesInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_SN] != null) { - entries[_SN] = input[_SN]; - } - if (input[_LRI] != null) { - entries[_LRI] = input[_LRI]; - } - if (input[_PRI] != null) { - entries[_PRI] = input[_PRI]; - } - return entries; -}, "se_DescribeStackResourcesInput"); -var se_DescribeStackSetInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_SSN] != null) { - entries[_SSN] = input[_SSN]; - } - if (input[_CA] != null) { - entries[_CA] = input[_CA]; - } - return entries; -}, "se_DescribeStackSetInput"); -var se_DescribeStackSetOperationInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_SSN] != null) { - entries[_SSN] = input[_SSN]; - } - if (input[_OI] != null) { - entries[_OI] = input[_OI]; - } - if (input[_CA] != null) { - entries[_CA] = input[_CA]; - } - return entries; -}, "se_DescribeStackSetOperationInput"); -var se_DescribeStacksInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_SN] != null) { - entries[_SN] = input[_SN]; - } - if (input[_NT] != null) { - entries[_NT] = input[_NT]; - } - return entries; -}, "se_DescribeStacksInput"); -var se_DescribeTypeInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_T] != null) { - entries[_T] = input[_T]; - } - if (input[_TN] != null) { - entries[_TN] = input[_TN]; - } - if (input[_Ar] != null) { - entries[_Ar] = input[_Ar]; - } - if (input[_VI] != null) { - entries[_VI] = input[_VI]; - } - if (input[_PI] != null) { - entries[_PI] = input[_PI]; - } - if (input[_PVN] != null) { - entries[_PVN] = input[_PVN]; - } - return entries; -}, "se_DescribeTypeInput"); -var se_DescribeTypeRegistrationInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_RTeg] != null) { - entries[_RTeg] = input[_RTeg]; - } - return entries; -}, "se_DescribeTypeRegistrationInput"); -var se_DetectStackDriftInput = /* @__PURE__ */ __name((input, context) => { - var _a; - const entries = {}; - if (input[_SN] != null) { - entries[_SN] = input[_SN]; - } - if (input[_LRIo] != null) { - const memberEntries = se_LogicalResourceIds(input[_LRIo], context); - if (((_a = input[_LRIo]) == null ? void 0 : _a.length) === 0) { - entries.LogicalResourceIds = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `LogicalResourceIds.${key}`; - entries[loc] = value; - }); - } - return entries; -}, "se_DetectStackDriftInput"); -var se_DetectStackResourceDriftInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_SN] != null) { - entries[_SN] = input[_SN]; - } - if (input[_LRI] != null) { - entries[_LRI] = input[_LRI]; - } - return entries; -}, "se_DetectStackResourceDriftInput"); -var se_DetectStackSetDriftInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_SSN] != null) { - entries[_SSN] = input[_SSN]; - } - if (input[_OP] != null) { - const memberEntries = se_StackSetOperationPreferences(input[_OP], context); - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `OperationPreferences.${key}`; - entries[loc] = value; - }); - } - if (input[_OI] === void 0) { - input[_OI] = (0, import_uuid.v4)(); - } - if (input[_OI] != null) { - entries[_OI] = input[_OI]; - } - if (input[_CA] != null) { - entries[_CA] = input[_CA]; - } - return entries; -}, "se_DetectStackSetDriftInput"); -var se_EstimateTemplateCostInput = /* @__PURE__ */ __name((input, context) => { - var _a; - const entries = {}; - if (input[_TB] != null) { - entries[_TB] = input[_TB]; - } - if (input[_TURL] != null) { - entries[_TURL] = input[_TURL]; - } - if (input[_P] != null) { - const memberEntries = se_Parameters(input[_P], context); - if (((_a = input[_P]) == null ? void 0 : _a.length) === 0) { - entries.Parameters = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `Parameters.${key}`; - entries[loc] = value; - }); - } - return entries; -}, "se_EstimateTemplateCostInput"); -var se_ExecuteChangeSetInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_CSN] != null) { - entries[_CSN] = input[_CSN]; - } - if (input[_SN] != null) { - entries[_SN] = input[_SN]; - } - if (input[_CRT] != null) { - entries[_CRT] = input[_CRT]; - } - if (input[_DR] != null) { - entries[_DR] = input[_DR]; - } - if (input[_REOC] != null) { - entries[_REOC] = input[_REOC]; - } - return entries; -}, "se_ExecuteChangeSetInput"); -var se_GetGeneratedTemplateInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_F] != null) { - entries[_F] = input[_F]; - } - if (input[_GTN] != null) { - entries[_GTN] = input[_GTN]; - } - return entries; -}, "se_GetGeneratedTemplateInput"); -var se_GetStackPolicyInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_SN] != null) { - entries[_SN] = input[_SN]; - } - return entries; -}, "se_GetStackPolicyInput"); -var se_GetTemplateInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_SN] != null) { - entries[_SN] = input[_SN]; - } - if (input[_CSN] != null) { - entries[_CSN] = input[_CSN]; - } - if (input[_TS] != null) { - entries[_TS] = input[_TS]; - } - return entries; -}, "se_GetTemplateInput"); -var se_GetTemplateSummaryInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_TB] != null) { - entries[_TB] = input[_TB]; - } - if (input[_TURL] != null) { - entries[_TURL] = input[_TURL]; - } - if (input[_SN] != null) { - entries[_SN] = input[_SN]; - } - if (input[_SSN] != null) { - entries[_SSN] = input[_SSN]; - } - if (input[_CA] != null) { - entries[_CA] = input[_CA]; - } - if (input[_TSC] != null) { - const memberEntries = se_TemplateSummaryConfig(input[_TSC], context); - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `TemplateSummaryConfig.${key}`; - entries[loc] = value; - }); - } - return entries; -}, "se_GetTemplateSummaryInput"); -var se_ImportStacksToStackSetInput = /* @__PURE__ */ __name((input, context) => { - var _a, _b; - const entries = {}; - if (input[_SSN] != null) { - entries[_SSN] = input[_SSN]; - } - if (input[_SIt] != null) { - const memberEntries = se_StackIdList(input[_SIt], context); - if (((_a = input[_SIt]) == null ? void 0 : _a.length) === 0) { - entries.StackIds = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `StackIds.${key}`; - entries[loc] = value; - }); - } - if (input[_SIU] != null) { - entries[_SIU] = input[_SIU]; - } - if (input[_OUI] != null) { - const memberEntries = se_OrganizationalUnitIdList(input[_OUI], context); - if (((_b = input[_OUI]) == null ? void 0 : _b.length) === 0) { - entries.OrganizationalUnitIds = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `OrganizationalUnitIds.${key}`; - entries[loc] = value; - }); - } - if (input[_OP] != null) { - const memberEntries = se_StackSetOperationPreferences(input[_OP], context); - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `OperationPreferences.${key}`; - entries[loc] = value; - }); - } - if (input[_OI] === void 0) { - input[_OI] = (0, import_uuid.v4)(); - } - if (input[_OI] != null) { - entries[_OI] = input[_OI]; - } - if (input[_CA] != null) { - entries[_CA] = input[_CA]; - } - return entries; -}, "se_ImportStacksToStackSetInput"); -var se_JazzLogicalResourceIds = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - let counter = 1; - for (const entry of input) { - if (entry === null) { - continue; - } - entries[`member.${counter}`] = entry; - counter++; - } - return entries; -}, "se_JazzLogicalResourceIds"); -var se_JazzResourceIdentifierProperties = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - let counter = 1; - Object.keys(input).filter((key) => input[key] != null).forEach((key) => { - entries[`entry.${counter}.key`] = key; - entries[`entry.${counter}.value`] = input[key]; - counter++; - }); - return entries; -}, "se_JazzResourceIdentifierProperties"); -var se_ListChangeSetsInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_SN] != null) { - entries[_SN] = input[_SN]; - } - if (input[_NT] != null) { - entries[_NT] = input[_NT]; - } - return entries; -}, "se_ListChangeSetsInput"); -var se_ListExportsInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_NT] != null) { - entries[_NT] = input[_NT]; - } - return entries; -}, "se_ListExportsInput"); -var se_ListGeneratedTemplatesInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_NT] != null) { - entries[_NT] = input[_NT]; - } - if (input[_MR] != null) { - entries[_MR] = input[_MR]; - } - return entries; -}, "se_ListGeneratedTemplatesInput"); -var se_ListImportsInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_EN] != null) { - entries[_EN] = input[_EN]; - } - if (input[_NT] != null) { - entries[_NT] = input[_NT]; - } - return entries; -}, "se_ListImportsInput"); -var se_ListResourceScanRelatedResourcesInput = /* @__PURE__ */ __name((input, context) => { - var _a; - const entries = {}; - if (input[_RSI] != null) { - entries[_RSI] = input[_RSI]; - } - if (input[_R] != null) { - const memberEntries = se_ScannedResourceIdentifiers(input[_R], context); - if (((_a = input[_R]) == null ? void 0 : _a.length) === 0) { - entries.Resources = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `Resources.${key}`; - entries[loc] = value; - }); - } - if (input[_NT] != null) { - entries[_NT] = input[_NT]; - } - if (input[_MR] != null) { - entries[_MR] = input[_MR]; - } - return entries; -}, "se_ListResourceScanRelatedResourcesInput"); -var se_ListResourceScanResourcesInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_RSI] != null) { - entries[_RSI] = input[_RSI]; - } - if (input[_RI] != null) { - entries[_RI] = input[_RI]; - } - if (input[_RTP] != null) { - entries[_RTP] = input[_RTP]; - } - if (input[_TK] != null) { - entries[_TK] = input[_TK]; - } - if (input[_TV] != null) { - entries[_TV] = input[_TV]; - } - if (input[_NT] != null) { - entries[_NT] = input[_NT]; - } - if (input[_MR] != null) { - entries[_MR] = input[_MR]; - } - return entries; -}, "se_ListResourceScanResourcesInput"); -var se_ListResourceScansInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_NT] != null) { - entries[_NT] = input[_NT]; - } - if (input[_MR] != null) { - entries[_MR] = input[_MR]; - } - return entries; -}, "se_ListResourceScansInput"); -var se_ListStackInstanceResourceDriftsInput = /* @__PURE__ */ __name((input, context) => { - var _a; - const entries = {}; - if (input[_SSN] != null) { - entries[_SSN] = input[_SSN]; - } - if (input[_NT] != null) { - entries[_NT] = input[_NT]; - } - if (input[_MR] != null) { - entries[_MR] = input[_MR]; - } - if (input[_SIRDS] != null) { - const memberEntries = se_StackResourceDriftStatusFilters(input[_SIRDS], context); - if (((_a = input[_SIRDS]) == null ? void 0 : _a.length) === 0) { - entries.StackInstanceResourceDriftStatuses = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `StackInstanceResourceDriftStatuses.${key}`; - entries[loc] = value; - }); - } - if (input[_SIA] != null) { - entries[_SIA] = input[_SIA]; - } - if (input[_SIR] != null) { - entries[_SIR] = input[_SIR]; - } - if (input[_OI] != null) { - entries[_OI] = input[_OI]; - } - if (input[_CA] != null) { - entries[_CA] = input[_CA]; - } - return entries; -}, "se_ListStackInstanceResourceDriftsInput"); -var se_ListStackInstancesInput = /* @__PURE__ */ __name((input, context) => { - var _a; - const entries = {}; - if (input[_SSN] != null) { - entries[_SSN] = input[_SSN]; - } - if (input[_NT] != null) { - entries[_NT] = input[_NT]; - } - if (input[_MR] != null) { - entries[_MR] = input[_MR]; - } - if (input[_Fi] != null) { - const memberEntries = se_StackInstanceFilters(input[_Fi], context); - if (((_a = input[_Fi]) == null ? void 0 : _a.length) === 0) { - entries.Filters = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `Filters.${key}`; - entries[loc] = value; - }); - } - if (input[_SIA] != null) { - entries[_SIA] = input[_SIA]; - } - if (input[_SIR] != null) { - entries[_SIR] = input[_SIR]; - } - if (input[_CA] != null) { - entries[_CA] = input[_CA]; - } - return entries; -}, "se_ListStackInstancesInput"); -var se_ListStackResourcesInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_SN] != null) { - entries[_SN] = input[_SN]; - } - if (input[_NT] != null) { - entries[_NT] = input[_NT]; - } - return entries; -}, "se_ListStackResourcesInput"); -var se_ListStackSetAutoDeploymentTargetsInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_SSN] != null) { - entries[_SSN] = input[_SSN]; - } - if (input[_NT] != null) { - entries[_NT] = input[_NT]; - } - if (input[_MR] != null) { - entries[_MR] = input[_MR]; - } - if (input[_CA] != null) { - entries[_CA] = input[_CA]; - } - return entries; -}, "se_ListStackSetAutoDeploymentTargetsInput"); -var se_ListStackSetOperationResultsInput = /* @__PURE__ */ __name((input, context) => { - var _a; - const entries = {}; - if (input[_SSN] != null) { - entries[_SSN] = input[_SSN]; - } - if (input[_OI] != null) { - entries[_OI] = input[_OI]; - } - if (input[_NT] != null) { - entries[_NT] = input[_NT]; - } - if (input[_MR] != null) { - entries[_MR] = input[_MR]; - } - if (input[_CA] != null) { - entries[_CA] = input[_CA]; - } - if (input[_Fi] != null) { - const memberEntries = se_OperationResultFilters(input[_Fi], context); - if (((_a = input[_Fi]) == null ? void 0 : _a.length) === 0) { - entries.Filters = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `Filters.${key}`; - entries[loc] = value; - }); - } - return entries; -}, "se_ListStackSetOperationResultsInput"); -var se_ListStackSetOperationsInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_SSN] != null) { - entries[_SSN] = input[_SSN]; - } - if (input[_NT] != null) { - entries[_NT] = input[_NT]; - } - if (input[_MR] != null) { - entries[_MR] = input[_MR]; - } - if (input[_CA] != null) { - entries[_CA] = input[_CA]; - } - return entries; -}, "se_ListStackSetOperationsInput"); -var se_ListStackSetsInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_NT] != null) { - entries[_NT] = input[_NT]; - } - if (input[_MR] != null) { - entries[_MR] = input[_MR]; - } - if (input[_S] != null) { - entries[_S] = input[_S]; - } - if (input[_CA] != null) { - entries[_CA] = input[_CA]; - } - return entries; -}, "se_ListStackSetsInput"); -var se_ListStacksInput = /* @__PURE__ */ __name((input, context) => { - var _a; - const entries = {}; - if (input[_NT] != null) { - entries[_NT] = input[_NT]; - } - if (input[_SSF] != null) { - const memberEntries = se_StackStatusFilter(input[_SSF], context); - if (((_a = input[_SSF]) == null ? void 0 : _a.length) === 0) { - entries.StackStatusFilter = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `StackStatusFilter.${key}`; - entries[loc] = value; - }); - } - return entries; -}, "se_ListStacksInput"); -var se_ListTypeRegistrationsInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_T] != null) { - entries[_T] = input[_T]; - } - if (input[_TN] != null) { - entries[_TN] = input[_TN]; - } - if (input[_TA] != null) { - entries[_TA] = input[_TA]; - } - if (input[_RSF] != null) { - entries[_RSF] = input[_RSF]; - } - if (input[_MR] != null) { - entries[_MR] = input[_MR]; - } - if (input[_NT] != null) { - entries[_NT] = input[_NT]; - } - return entries; -}, "se_ListTypeRegistrationsInput"); -var se_ListTypesInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_Vi] != null) { - entries[_Vi] = input[_Vi]; - } - if (input[_PTr] != null) { - entries[_PTr] = input[_PTr]; - } - if (input[_DSep] != null) { - entries[_DSep] = input[_DSep]; - } - if (input[_T] != null) { - entries[_T] = input[_T]; - } - if (input[_Fi] != null) { - const memberEntries = se_TypeFilters(input[_Fi], context); - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `Filters.${key}`; - entries[loc] = value; - }); - } - if (input[_MR] != null) { - entries[_MR] = input[_MR]; - } - if (input[_NT] != null) { - entries[_NT] = input[_NT]; - } - return entries; -}, "se_ListTypesInput"); -var se_ListTypeVersionsInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_T] != null) { - entries[_T] = input[_T]; - } - if (input[_TN] != null) { - entries[_TN] = input[_TN]; - } - if (input[_Ar] != null) { - entries[_Ar] = input[_Ar]; - } - if (input[_MR] != null) { - entries[_MR] = input[_MR]; - } - if (input[_NT] != null) { - entries[_NT] = input[_NT]; - } - if (input[_DSep] != null) { - entries[_DSep] = input[_DSep]; - } - if (input[_PI] != null) { - entries[_PI] = input[_PI]; - } - return entries; -}, "se_ListTypeVersionsInput"); -var se_LoggingConfig = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_LRA] != null) { - entries[_LRA] = input[_LRA]; - } - if (input[_LGN] != null) { - entries[_LGN] = input[_LGN]; - } - return entries; -}, "se_LoggingConfig"); -var se_LogicalResourceIds = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - let counter = 1; - for (const entry of input) { - if (entry === null) { - continue; - } - entries[`member.${counter}`] = entry; - counter++; - } - return entries; -}, "se_LogicalResourceIds"); -var se_ManagedExecution = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_Act] != null) { - entries[_Act] = input[_Act]; - } - return entries; -}, "se_ManagedExecution"); -var se_NotificationARNs = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - let counter = 1; - for (const entry of input) { - if (entry === null) { - continue; - } - entries[`member.${counter}`] = entry; - counter++; - } - return entries; -}, "se_NotificationARNs"); -var se_OperationResultFilter = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_N] != null) { - entries[_N] = input[_N]; - } - if (input[_Va] != null) { - entries[_Va] = input[_Va]; - } - return entries; -}, "se_OperationResultFilter"); -var se_OperationResultFilters = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - let counter = 1; - for (const entry of input) { - if (entry === null) { - continue; - } - const memberEntries = se_OperationResultFilter(entry, context); - Object.entries(memberEntries).forEach(([key, value]) => { - entries[`member.${counter}.${key}`] = value; - }); - counter++; - } - return entries; -}, "se_OperationResultFilters"); -var se_OrganizationalUnitIdList = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - let counter = 1; - for (const entry of input) { - if (entry === null) { - continue; - } - entries[`member.${counter}`] = entry; - counter++; - } - return entries; -}, "se_OrganizationalUnitIdList"); -var se_Parameter = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_PK] != null) { - entries[_PK] = input[_PK]; - } - if (input[_PV] != null) { - entries[_PV] = input[_PV]; - } - if (input[_UPV] != null) { - entries[_UPV] = input[_UPV]; - } - if (input[_RV] != null) { - entries[_RV] = input[_RV]; - } - return entries; -}, "se_Parameter"); -var se_Parameters = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - let counter = 1; - for (const entry of input) { - if (entry === null) { - continue; - } - const memberEntries = se_Parameter(entry, context); - Object.entries(memberEntries).forEach(([key, value]) => { - entries[`member.${counter}.${key}`] = value; - }); - counter++; - } - return entries; -}, "se_Parameters"); -var se_PublishTypeInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_T] != null) { - entries[_T] = input[_T]; - } - if (input[_Ar] != null) { - entries[_Ar] = input[_Ar]; - } - if (input[_TN] != null) { - entries[_TN] = input[_TN]; - } - if (input[_PVN] != null) { - entries[_PVN] = input[_PVN]; - } - return entries; -}, "se_PublishTypeInput"); -var se_RecordHandlerProgressInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_BT] != null) { - entries[_BT] = input[_BT]; - } - if (input[_OS] != null) { - entries[_OS] = input[_OS]; - } - if (input[_COS] != null) { - entries[_COS] = input[_COS]; - } - if (input[_SM] != null) { - entries[_SM] = input[_SM]; - } - if (input[_EC] != null) { - entries[_EC] = input[_EC]; - } - if (input[_RM] != null) { - entries[_RM] = input[_RM]; - } - if (input[_CRT] != null) { - entries[_CRT] = input[_CRT]; - } - return entries; -}, "se_RecordHandlerProgressInput"); -var se_RegionList = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - let counter = 1; - for (const entry of input) { - if (entry === null) { - continue; - } - entries[`member.${counter}`] = entry; - counter++; - } - return entries; -}, "se_RegionList"); -var se_RegisterPublisherInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_ATAC] != null) { - entries[_ATAC] = input[_ATAC]; - } - if (input[_CAo] != null) { - entries[_CAo] = input[_CAo]; - } - return entries; -}, "se_RegisterPublisherInput"); -var se_RegisterTypeInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_T] != null) { - entries[_T] = input[_T]; - } - if (input[_TN] != null) { - entries[_TN] = input[_TN]; - } - if (input[_SHP] != null) { - entries[_SHP] = input[_SHP]; - } - if (input[_LC] != null) { - const memberEntries = se_LoggingConfig(input[_LC], context); - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `LoggingConfig.${key}`; - entries[loc] = value; - }); - } - if (input[_ERA] != null) { - entries[_ERA] = input[_ERA]; - } - if (input[_CRT] != null) { - entries[_CRT] = input[_CRT]; - } - return entries; -}, "se_RegisterTypeInput"); -var se_ResourceDefinition = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_RTes] != null) { - entries[_RTes] = input[_RTes]; - } - if (input[_LRI] != null) { - entries[_LRI] = input[_LRI]; - } - if (input[_RI] != null) { - const memberEntries = se_ResourceIdentifierProperties(input[_RI], context); - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `ResourceIdentifier.${key}`; - entries[loc] = value; - }); - } - return entries; -}, "se_ResourceDefinition"); -var se_ResourceDefinitions = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - let counter = 1; - for (const entry of input) { - if (entry === null) { - continue; - } - const memberEntries = se_ResourceDefinition(entry, context); - Object.entries(memberEntries).forEach(([key, value]) => { - entries[`member.${counter}.${key}`] = value; - }); - counter++; - } - return entries; -}, "se_ResourceDefinitions"); -var se_ResourceIdentifierProperties = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - let counter = 1; - Object.keys(input).filter((key) => input[key] != null).forEach((key) => { - entries[`entry.${counter}.key`] = key; - entries[`entry.${counter}.value`] = input[key]; - counter++; - }); - return entries; -}, "se_ResourceIdentifierProperties"); -var se_ResourcesToImport = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - let counter = 1; - for (const entry of input) { - if (entry === null) { - continue; - } - const memberEntries = se_ResourceToImport(entry, context); - Object.entries(memberEntries).forEach(([key, value]) => { - entries[`member.${counter}.${key}`] = value; - }); - counter++; - } - return entries; -}, "se_ResourcesToImport"); -var se_ResourcesToSkip = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - let counter = 1; - for (const entry of input) { - if (entry === null) { - continue; - } - entries[`member.${counter}`] = entry; - counter++; - } - return entries; -}, "se_ResourcesToSkip"); -var se_ResourceToImport = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_RTes] != null) { - entries[_RTes] = input[_RTes]; - } - if (input[_LRI] != null) { - entries[_LRI] = input[_LRI]; - } - if (input[_RI] != null) { - const memberEntries = se_ResourceIdentifierProperties(input[_RI], context); - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `ResourceIdentifier.${key}`; - entries[loc] = value; - }); - } - return entries; -}, "se_ResourceToImport"); -var se_ResourceTypes = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - let counter = 1; - for (const entry of input) { - if (entry === null) { - continue; - } - entries[`member.${counter}`] = entry; - counter++; - } - return entries; -}, "se_ResourceTypes"); -var se_RetainResources = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - let counter = 1; - for (const entry of input) { - if (entry === null) { - continue; - } - entries[`member.${counter}`] = entry; - counter++; - } - return entries; -}, "se_RetainResources"); -var se_RollbackConfiguration = /* @__PURE__ */ __name((input, context) => { - var _a; - const entries = {}; - if (input[_RTo] != null) { - const memberEntries = se_RollbackTriggers(input[_RTo], context); - if (((_a = input[_RTo]) == null ? void 0 : _a.length) === 0) { - entries.RollbackTriggers = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `RollbackTriggers.${key}`; - entries[loc] = value; - }); - } - if (input[_MTIM] != null) { - entries[_MTIM] = input[_MTIM]; - } - return entries; -}, "se_RollbackConfiguration"); -var se_RollbackStackInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_SN] != null) { - entries[_SN] = input[_SN]; - } - if (input[_RARN] != null) { - entries[_RARN] = input[_RARN]; - } - if (input[_CRT] != null) { - entries[_CRT] = input[_CRT]; - } - if (input[_REOC] != null) { - entries[_REOC] = input[_REOC]; - } - return entries; -}, "se_RollbackStackInput"); -var se_RollbackTrigger = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_Ar] != null) { - entries[_Ar] = input[_Ar]; - } - if (input[_T] != null) { - entries[_T] = input[_T]; - } - return entries; -}, "se_RollbackTrigger"); -var se_RollbackTriggers = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - let counter = 1; - for (const entry of input) { - if (entry === null) { - continue; - } - const memberEntries = se_RollbackTrigger(entry, context); - Object.entries(memberEntries).forEach(([key, value]) => { - entries[`member.${counter}.${key}`] = value; - }); - counter++; - } - return entries; -}, "se_RollbackTriggers"); -var se_ScannedResourceIdentifier = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_RTes] != null) { - entries[_RTes] = input[_RTes]; - } - if (input[_RI] != null) { - const memberEntries = se_JazzResourceIdentifierProperties(input[_RI], context); - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `ResourceIdentifier.${key}`; - entries[loc] = value; - }); - } - return entries; -}, "se_ScannedResourceIdentifier"); -var se_ScannedResourceIdentifiers = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - let counter = 1; - for (const entry of input) { - if (entry === null) { - continue; - } - const memberEntries = se_ScannedResourceIdentifier(entry, context); - Object.entries(memberEntries).forEach(([key, value]) => { - entries[`member.${counter}.${key}`] = value; - }); - counter++; - } - return entries; -}, "se_ScannedResourceIdentifiers"); -var se_SetStackPolicyInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_SN] != null) { - entries[_SN] = input[_SN]; - } - if (input[_SPB] != null) { - entries[_SPB] = input[_SPB]; - } - if (input[_SPURL] != null) { - entries[_SPURL] = input[_SPURL]; - } - return entries; -}, "se_SetStackPolicyInput"); -var se_SetTypeConfigurationInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_TA] != null) { - entries[_TA] = input[_TA]; - } - if (input[_Co] != null) { - entries[_Co] = input[_Co]; - } - if (input[_CAon] != null) { - entries[_CAon] = input[_CAon]; - } - if (input[_TN] != null) { - entries[_TN] = input[_TN]; - } - if (input[_T] != null) { - entries[_T] = input[_T]; - } - return entries; -}, "se_SetTypeConfigurationInput"); -var se_SetTypeDefaultVersionInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_Ar] != null) { - entries[_Ar] = input[_Ar]; - } - if (input[_T] != null) { - entries[_T] = input[_T]; - } - if (input[_TN] != null) { - entries[_TN] = input[_TN]; - } - if (input[_VI] != null) { - entries[_VI] = input[_VI]; - } - return entries; -}, "se_SetTypeDefaultVersionInput"); -var se_SignalResourceInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_SN] != null) { - entries[_SN] = input[_SN]; - } - if (input[_LRI] != null) { - entries[_LRI] = input[_LRI]; - } - if (input[_UI] != null) { - entries[_UI] = input[_UI]; - } - if (input[_S] != null) { - entries[_S] = input[_S]; - } - return entries; -}, "se_SignalResourceInput"); -var se_StackIdList = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - let counter = 1; - for (const entry of input) { - if (entry === null) { - continue; - } - entries[`member.${counter}`] = entry; - counter++; - } - return entries; -}, "se_StackIdList"); -var se_StackInstanceFilter = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_N] != null) { - entries[_N] = input[_N]; - } - if (input[_Va] != null) { - entries[_Va] = input[_Va]; - } - return entries; -}, "se_StackInstanceFilter"); -var se_StackInstanceFilters = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - let counter = 1; - for (const entry of input) { - if (entry === null) { - continue; - } - const memberEntries = se_StackInstanceFilter(entry, context); - Object.entries(memberEntries).forEach(([key, value]) => { - entries[`member.${counter}.${key}`] = value; - }); - counter++; - } - return entries; -}, "se_StackInstanceFilters"); -var se_StackResourceDriftStatusFilters = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - let counter = 1; - for (const entry of input) { - if (entry === null) { - continue; - } - entries[`member.${counter}`] = entry; - counter++; - } - return entries; -}, "se_StackResourceDriftStatusFilters"); -var se_StackSetOperationPreferences = /* @__PURE__ */ __name((input, context) => { - var _a; - const entries = {}; - if (input[_RCT] != null) { - entries[_RCT] = input[_RCT]; - } - if (input[_RO] != null) { - const memberEntries = se_RegionList(input[_RO], context); - if (((_a = input[_RO]) == null ? void 0 : _a.length) === 0) { - entries.RegionOrder = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `RegionOrder.${key}`; - entries[loc] = value; - }); - } - if (input[_FTC] != null) { - entries[_FTC] = input[_FTC]; - } - if (input[_FTP] != null) { - entries[_FTP] = input[_FTP]; - } - if (input[_MCC] != null) { - entries[_MCC] = input[_MCC]; - } - if (input[_MCP] != null) { - entries[_MCP] = input[_MCP]; - } - if (input[_CM] != null) { - entries[_CM] = input[_CM]; - } - return entries; -}, "se_StackSetOperationPreferences"); -var se_StackStatusFilter = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - let counter = 1; - for (const entry of input) { - if (entry === null) { - continue; - } - entries[`member.${counter}`] = entry; - counter++; - } - return entries; -}, "se_StackStatusFilter"); -var se_StartResourceScanInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_CRT] != null) { - entries[_CRT] = input[_CRT]; - } - return entries; -}, "se_StartResourceScanInput"); -var se_StopStackSetOperationInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_SSN] != null) { - entries[_SSN] = input[_SSN]; - } - if (input[_OI] != null) { - entries[_OI] = input[_OI]; - } - if (input[_CA] != null) { - entries[_CA] = input[_CA]; - } - return entries; -}, "se_StopStackSetOperationInput"); -var se_Tag = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_K] != null) { - entries[_K] = input[_K]; - } - if (input[_Val] != null) { - entries[_Val] = input[_Val]; - } - return entries; -}, "se_Tag"); -var se_Tags = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - let counter = 1; - for (const entry of input) { - if (entry === null) { - continue; - } - const memberEntries = se_Tag(entry, context); - Object.entries(memberEntries).forEach(([key, value]) => { - entries[`member.${counter}.${key}`] = value; - }); - counter++; - } - return entries; -}, "se_Tags"); -var se_TemplateConfiguration = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_DPe] != null) { - entries[_DPe] = input[_DPe]; - } - if (input[_URP] != null) { - entries[_URP] = input[_URP]; - } - return entries; -}, "se_TemplateConfiguration"); -var se_TemplateSummaryConfig = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_TURTAW] != null) { - entries[_TURTAW] = input[_TURTAW]; - } - return entries; -}, "se_TemplateSummaryConfig"); -var se_TestTypeInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_Ar] != null) { - entries[_Ar] = input[_Ar]; - } - if (input[_T] != null) { - entries[_T] = input[_T]; - } - if (input[_TN] != null) { - entries[_TN] = input[_TN]; - } - if (input[_VI] != null) { - entries[_VI] = input[_VI]; - } - if (input[_LDB] != null) { - entries[_LDB] = input[_LDB]; - } - return entries; -}, "se_TestTypeInput"); -var se_TypeConfigurationIdentifier = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_TA] != null) { - entries[_TA] = input[_TA]; - } - if (input[_TCA] != null) { - entries[_TCA] = input[_TCA]; - } - if (input[_TCAy] != null) { - entries[_TCAy] = input[_TCAy]; - } - if (input[_T] != null) { - entries[_T] = input[_T]; - } - if (input[_TN] != null) { - entries[_TN] = input[_TN]; - } - return entries; -}, "se_TypeConfigurationIdentifier"); -var se_TypeConfigurationIdentifiers = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - let counter = 1; - for (const entry of input) { - if (entry === null) { - continue; - } - const memberEntries = se_TypeConfigurationIdentifier(entry, context); - Object.entries(memberEntries).forEach(([key, value]) => { - entries[`member.${counter}.${key}`] = value; - }); - counter++; - } - return entries; -}, "se_TypeConfigurationIdentifiers"); -var se_TypeFilters = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_Ca] != null) { - entries[_Ca] = input[_Ca]; - } - if (input[_PI] != null) { - entries[_PI] = input[_PI]; - } - if (input[_TNP] != null) { - entries[_TNP] = input[_TNP]; - } - return entries; -}, "se_TypeFilters"); -var se_UpdateGeneratedTemplateInput = /* @__PURE__ */ __name((input, context) => { - var _a, _b; - const entries = {}; - if (input[_GTN] != null) { - entries[_GTN] = input[_GTN]; - } - if (input[_NGTN] != null) { - entries[_NGTN] = input[_NGTN]; - } - if (input[_AR] != null) { - const memberEntries = se_ResourceDefinitions(input[_AR], context); - if (((_a = input[_AR]) == null ? void 0 : _a.length) === 0) { - entries.AddResources = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `AddResources.${key}`; - entries[loc] = value; - }); - } - if (input[_RRe] != null) { - const memberEntries = se_JazzLogicalResourceIds(input[_RRe], context); - if (((_b = input[_RRe]) == null ? void 0 : _b.length) === 0) { - entries.RemoveResources = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `RemoveResources.${key}`; - entries[loc] = value; - }); - } - if (input[_RAR] != null) { - entries[_RAR] = input[_RAR]; - } - if (input[_TC] != null) { - const memberEntries = se_TemplateConfiguration(input[_TC], context); - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `TemplateConfiguration.${key}`; - entries[loc] = value; - }); - } - return entries; -}, "se_UpdateGeneratedTemplateInput"); -var se_UpdateStackInput = /* @__PURE__ */ __name((input, context) => { - var _a, _b, _c, _d, _e2; - const entries = {}; - if (input[_SN] != null) { - entries[_SN] = input[_SN]; - } - if (input[_TB] != null) { - entries[_TB] = input[_TB]; - } - if (input[_TURL] != null) { - entries[_TURL] = input[_TURL]; - } - if (input[_UPT] != null) { - entries[_UPT] = input[_UPT]; - } - if (input[_SPDUB] != null) { - entries[_SPDUB] = input[_SPDUB]; - } - if (input[_SPDUURL] != null) { - entries[_SPDUURL] = input[_SPDUURL]; - } - if (input[_P] != null) { - const memberEntries = se_Parameters(input[_P], context); - if (((_a = input[_P]) == null ? void 0 : _a.length) === 0) { - entries.Parameters = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `Parameters.${key}`; - entries[loc] = value; - }); - } - if (input[_C] != null) { - const memberEntries = se_Capabilities(input[_C], context); - if (((_b = input[_C]) == null ? void 0 : _b.length) === 0) { - entries.Capabilities = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `Capabilities.${key}`; - entries[loc] = value; - }); - } - if (input[_RTe] != null) { - const memberEntries = se_ResourceTypes(input[_RTe], context); - if (((_c = input[_RTe]) == null ? void 0 : _c.length) === 0) { - entries.ResourceTypes = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `ResourceTypes.${key}`; - entries[loc] = value; - }); - } - if (input[_RARN] != null) { - entries[_RARN] = input[_RARN]; - } - if (input[_RC] != null) { - const memberEntries = se_RollbackConfiguration(input[_RC], context); - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `RollbackConfiguration.${key}`; - entries[loc] = value; - }); - } - if (input[_SPB] != null) { - entries[_SPB] = input[_SPB]; - } - if (input[_SPURL] != null) { - entries[_SPURL] = input[_SPURL]; - } - if (input[_NARN] != null) { - const memberEntries = se_NotificationARNs(input[_NARN], context); - if (((_d = input[_NARN]) == null ? void 0 : _d.length) === 0) { - entries.NotificationARNs = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `NotificationARNs.${key}`; - entries[loc] = value; - }); - } - if (input[_Ta] != null) { - const memberEntries = se_Tags(input[_Ta], context); - if (((_e2 = input[_Ta]) == null ? void 0 : _e2.length) === 0) { - entries.Tags = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `Tags.${key}`; - entries[loc] = value; - }); - } - if (input[_DR] != null) { - entries[_DR] = input[_DR]; - } - if (input[_CRT] != null) { - entries[_CRT] = input[_CRT]; - } - if (input[_REOC] != null) { - entries[_REOC] = input[_REOC]; - } - return entries; -}, "se_UpdateStackInput"); -var se_UpdateStackInstancesInput = /* @__PURE__ */ __name((input, context) => { - var _a, _b, _c; - const entries = {}; - if (input[_SSN] != null) { - entries[_SSN] = input[_SSN]; - } - if (input[_Ac] != null) { - const memberEntries = se_AccountList(input[_Ac], context); - if (((_a = input[_Ac]) == null ? void 0 : _a.length) === 0) { - entries.Accounts = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `Accounts.${key}`; - entries[loc] = value; - }); - } - if (input[_DTep] != null) { - const memberEntries = se_DeploymentTargets(input[_DTep], context); - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `DeploymentTargets.${key}`; - entries[loc] = value; - }); - } - if (input[_Re] != null) { - const memberEntries = se_RegionList(input[_Re], context); - if (((_b = input[_Re]) == null ? void 0 : _b.length) === 0) { - entries.Regions = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `Regions.${key}`; - entries[loc] = value; - }); - } - if (input[_PO] != null) { - const memberEntries = se_Parameters(input[_PO], context); - if (((_c = input[_PO]) == null ? void 0 : _c.length) === 0) { - entries.ParameterOverrides = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `ParameterOverrides.${key}`; - entries[loc] = value; - }); - } - if (input[_OP] != null) { - const memberEntries = se_StackSetOperationPreferences(input[_OP], context); - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `OperationPreferences.${key}`; - entries[loc] = value; - }); - } - if (input[_OI] === void 0) { - input[_OI] = (0, import_uuid.v4)(); - } - if (input[_OI] != null) { - entries[_OI] = input[_OI]; - } - if (input[_CA] != null) { - entries[_CA] = input[_CA]; - } - return entries; -}, "se_UpdateStackInstancesInput"); -var se_UpdateStackSetInput = /* @__PURE__ */ __name((input, context) => { - var _a, _b, _c, _d, _e2; - const entries = {}; - if (input[_SSN] != null) { - entries[_SSN] = input[_SSN]; - } - if (input[_D] != null) { - entries[_D] = input[_D]; - } - if (input[_TB] != null) { - entries[_TB] = input[_TB]; - } - if (input[_TURL] != null) { - entries[_TURL] = input[_TURL]; - } - if (input[_UPT] != null) { - entries[_UPT] = input[_UPT]; - } - if (input[_P] != null) { - const memberEntries = se_Parameters(input[_P], context); - if (((_a = input[_P]) == null ? void 0 : _a.length) === 0) { - entries.Parameters = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `Parameters.${key}`; - entries[loc] = value; - }); - } - if (input[_C] != null) { - const memberEntries = se_Capabilities(input[_C], context); - if (((_b = input[_C]) == null ? void 0 : _b.length) === 0) { - entries.Capabilities = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `Capabilities.${key}`; - entries[loc] = value; - }); - } - if (input[_Ta] != null) { - const memberEntries = se_Tags(input[_Ta], context); - if (((_c = input[_Ta]) == null ? void 0 : _c.length) === 0) { - entries.Tags = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `Tags.${key}`; - entries[loc] = value; - }); - } - if (input[_OP] != null) { - const memberEntries = se_StackSetOperationPreferences(input[_OP], context); - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `OperationPreferences.${key}`; - entries[loc] = value; - }); - } - if (input[_ARARN] != null) { - entries[_ARARN] = input[_ARARN]; - } - if (input[_ERN] != null) { - entries[_ERN] = input[_ERN]; - } - if (input[_DTep] != null) { - const memberEntries = se_DeploymentTargets(input[_DTep], context); - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `DeploymentTargets.${key}`; - entries[loc] = value; - }); - } - if (input[_PM] != null) { - entries[_PM] = input[_PM]; - } - if (input[_AD] != null) { - const memberEntries = se_AutoDeployment(input[_AD], context); - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `AutoDeployment.${key}`; - entries[loc] = value; - }); - } - if (input[_OI] === void 0) { - input[_OI] = (0, import_uuid.v4)(); - } - if (input[_OI] != null) { - entries[_OI] = input[_OI]; - } - if (input[_Ac] != null) { - const memberEntries = se_AccountList(input[_Ac], context); - if (((_d = input[_Ac]) == null ? void 0 : _d.length) === 0) { - entries.Accounts = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `Accounts.${key}`; - entries[loc] = value; - }); - } - if (input[_Re] != null) { - const memberEntries = se_RegionList(input[_Re], context); - if (((_e2 = input[_Re]) == null ? void 0 : _e2.length) === 0) { - entries.Regions = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `Regions.${key}`; - entries[loc] = value; - }); - } - if (input[_CA] != null) { - entries[_CA] = input[_CA]; - } - if (input[_ME] != null) { - const memberEntries = se_ManagedExecution(input[_ME], context); - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `ManagedExecution.${key}`; - entries[loc] = value; - }); - } - return entries; -}, "se_UpdateStackSetInput"); -var se_UpdateTerminationProtectionInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_ETP] != null) { - entries[_ETP] = input[_ETP]; - } - if (input[_SN] != null) { - entries[_SN] = input[_SN]; - } - return entries; -}, "se_UpdateTerminationProtectionInput"); -var se_ValidateTemplateInput = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_TB] != null) { - entries[_TB] = input[_TB]; - } - if (input[_TURL] != null) { - entries[_TURL] = input[_TURL]; - } - return entries; -}, "se_ValidateTemplateInput"); -var de_AccountGateResult = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_S] != null) { - contents[_S] = (0, import_smithy_client.expectString)(output[_S]); - } - if (output[_SRt] != null) { - contents[_SRt] = (0, import_smithy_client.expectString)(output[_SRt]); - } - return contents; -}, "de_AccountGateResult"); -var de_AccountLimit = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_N] != null) { - contents[_N] = (0, import_smithy_client.expectString)(output[_N]); - } - if (output[_Val] != null) { - contents[_Val] = (0, import_smithy_client.strictParseInt32)(output[_Val]); - } - return contents; -}, "de_AccountLimit"); -var de_AccountLimitList = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return de_AccountLimit(entry, context); - }); -}, "de_AccountLimitList"); -var de_AccountList = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return (0, import_smithy_client.expectString)(entry); - }); -}, "de_AccountList"); -var de_ActivateOrganizationsAccessOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - return contents; -}, "de_ActivateOrganizationsAccessOutput"); -var de_ActivateTypeOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_Ar] != null) { - contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]); - } - return contents; -}, "de_ActivateTypeOutput"); -var de_AllowedValues = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return (0, import_smithy_client.expectString)(entry); - }); -}, "de_AllowedValues"); -var de_AlreadyExistsException = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_M] != null) { - contents[_M] = (0, import_smithy_client.expectString)(output[_M]); - } - return contents; -}, "de_AlreadyExistsException"); -var de_AutoDeployment = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_E] != null) { - contents[_E] = (0, import_smithy_client.parseBoolean)(output[_E]); - } - if (output[_RSOAR] != null) { - contents[_RSOAR] = (0, import_smithy_client.parseBoolean)(output[_RSOAR]); - } - return contents; -}, "de_AutoDeployment"); -var de_BatchDescribeTypeConfigurationsError = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_EC] != null) { - contents[_EC] = (0, import_smithy_client.expectString)(output[_EC]); - } - if (output[_EM] != null) { - contents[_EM] = (0, import_smithy_client.expectString)(output[_EM]); - } - if (output[_TCIy] != null) { - contents[_TCIy] = de_TypeConfigurationIdentifier(output[_TCIy], context); - } - return contents; -}, "de_BatchDescribeTypeConfigurationsError"); -var de_BatchDescribeTypeConfigurationsErrors = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return de_BatchDescribeTypeConfigurationsError(entry, context); - }); -}, "de_BatchDescribeTypeConfigurationsErrors"); -var de_BatchDescribeTypeConfigurationsOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output.Errors === "") { - contents[_Er] = []; - } else if (output[_Er] != null && output[_Er][_m] != null) { - contents[_Er] = de_BatchDescribeTypeConfigurationsErrors((0, import_smithy_client.getArrayIfSingleItem)(output[_Er][_m]), context); - } - if (output.UnprocessedTypeConfigurations === "") { - contents[_UTC] = []; - } else if (output[_UTC] != null && output[_UTC][_m] != null) { - contents[_UTC] = de_UnprocessedTypeConfigurations((0, import_smithy_client.getArrayIfSingleItem)(output[_UTC][_m]), context); - } - if (output.TypeConfigurations === "") { - contents[_TCy] = []; - } else if (output[_TCy] != null && output[_TCy][_m] != null) { - contents[_TCy] = de_TypeConfigurationDetailsList((0, import_smithy_client.getArrayIfSingleItem)(output[_TCy][_m]), context); - } - return contents; -}, "de_BatchDescribeTypeConfigurationsOutput"); -var de_Capabilities = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return (0, import_smithy_client.expectString)(entry); - }); -}, "de_Capabilities"); -var de_CFNRegistryException = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_M] != null) { - contents[_M] = (0, import_smithy_client.expectString)(output[_M]); - } - return contents; -}, "de_CFNRegistryException"); -var de_Change = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_T] != null) { - contents[_T] = (0, import_smithy_client.expectString)(output[_T]); - } - if (output[_HIC] != null) { - contents[_HIC] = (0, import_smithy_client.strictParseInt32)(output[_HIC]); - } - if (output[_RCe] != null) { - contents[_RCe] = de_ResourceChange(output[_RCe], context); - } - return contents; -}, "de_Change"); -var de_Changes = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return de_Change(entry, context); - }); -}, "de_Changes"); -var de_ChangeSetHook = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_IP] != null) { - contents[_IP] = (0, import_smithy_client.expectString)(output[_IP]); - } - if (output[_FM] != null) { - contents[_FM] = (0, import_smithy_client.expectString)(output[_FM]); - } - if (output[_TN] != null) { - contents[_TN] = (0, import_smithy_client.expectString)(output[_TN]); - } - if (output[_TVI] != null) { - contents[_TVI] = (0, import_smithy_client.expectString)(output[_TVI]); - } - if (output[_TCVI] != null) { - contents[_TCVI] = (0, import_smithy_client.expectString)(output[_TCVI]); - } - if (output[_TD] != null) { - contents[_TD] = de_ChangeSetHookTargetDetails(output[_TD], context); - } - return contents; -}, "de_ChangeSetHook"); -var de_ChangeSetHookResourceTargetDetails = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_LRI] != null) { - contents[_LRI] = (0, import_smithy_client.expectString)(output[_LRI]); - } - if (output[_RTes] != null) { - contents[_RTes] = (0, import_smithy_client.expectString)(output[_RTes]); - } - if (output[_RA] != null) { - contents[_RA] = (0, import_smithy_client.expectString)(output[_RA]); - } - return contents; -}, "de_ChangeSetHookResourceTargetDetails"); -var de_ChangeSetHooks = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return de_ChangeSetHook(entry, context); - }); -}, "de_ChangeSetHooks"); -var de_ChangeSetHookTargetDetails = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_TTa] != null) { - contents[_TTa] = (0, import_smithy_client.expectString)(output[_TTa]); - } - if (output[_RTD] != null) { - contents[_RTD] = de_ChangeSetHookResourceTargetDetails(output[_RTD], context); - } - return contents; -}, "de_ChangeSetHookTargetDetails"); -var de_ChangeSetNotFoundException = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_M] != null) { - contents[_M] = (0, import_smithy_client.expectString)(output[_M]); - } - return contents; -}, "de_ChangeSetNotFoundException"); -var de_ChangeSetSummaries = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return de_ChangeSetSummary(entry, context); - }); -}, "de_ChangeSetSummaries"); -var de_ChangeSetSummary = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_SI] != null) { - contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]); - } - if (output[_SN] != null) { - contents[_SN] = (0, import_smithy_client.expectString)(output[_SN]); - } - if (output[_CSIh] != null) { - contents[_CSIh] = (0, import_smithy_client.expectString)(output[_CSIh]); - } - if (output[_CSN] != null) { - contents[_CSN] = (0, import_smithy_client.expectString)(output[_CSN]); - } - if (output[_ES] != null) { - contents[_ES] = (0, import_smithy_client.expectString)(output[_ES]); - } - if (output[_S] != null) { - contents[_S] = (0, import_smithy_client.expectString)(output[_S]); - } - if (output[_SRt] != null) { - contents[_SRt] = (0, import_smithy_client.expectString)(output[_SRt]); - } - if (output[_CTr] != null) { - contents[_CTr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CTr])); - } - if (output[_D] != null) { - contents[_D] = (0, import_smithy_client.expectString)(output[_D]); - } - if (output[_INS] != null) { - contents[_INS] = (0, import_smithy_client.parseBoolean)(output[_INS]); - } - if (output[_PCSI] != null) { - contents[_PCSI] = (0, import_smithy_client.expectString)(output[_PCSI]); - } - if (output[_RCSI] != null) { - contents[_RCSI] = (0, import_smithy_client.expectString)(output[_RCSI]); - } - if (output[_IER] != null) { - contents[_IER] = (0, import_smithy_client.parseBoolean)(output[_IER]); - } - return contents; -}, "de_ChangeSetSummary"); -var de_ConcurrentResourcesLimitExceededException = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_M] != null) { - contents[_M] = (0, import_smithy_client.expectString)(output[_M]); - } - return contents; -}, "de_ConcurrentResourcesLimitExceededException"); -var de_ContinueUpdateRollbackOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - return contents; -}, "de_ContinueUpdateRollbackOutput"); -var de_CreateChangeSetOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_I] != null) { - contents[_I] = (0, import_smithy_client.expectString)(output[_I]); - } - if (output[_SI] != null) { - contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]); - } - return contents; -}, "de_CreateChangeSetOutput"); -var de_CreatedButModifiedException = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_M] != null) { - contents[_M] = (0, import_smithy_client.expectString)(output[_M]); - } - return contents; -}, "de_CreatedButModifiedException"); -var de_CreateGeneratedTemplateOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_GTI] != null) { - contents[_GTI] = (0, import_smithy_client.expectString)(output[_GTI]); - } - return contents; -}, "de_CreateGeneratedTemplateOutput"); -var de_CreateStackInstancesOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_OI] != null) { - contents[_OI] = (0, import_smithy_client.expectString)(output[_OI]); - } - return contents; -}, "de_CreateStackInstancesOutput"); -var de_CreateStackOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_SI] != null) { - contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]); - } - return contents; -}, "de_CreateStackOutput"); -var de_CreateStackSetOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_SSI] != null) { - contents[_SSI] = (0, import_smithy_client.expectString)(output[_SSI]); - } - return contents; -}, "de_CreateStackSetOutput"); -var de_DeactivateOrganizationsAccessOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - return contents; -}, "de_DeactivateOrganizationsAccessOutput"); -var de_DeactivateTypeOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - return contents; -}, "de_DeactivateTypeOutput"); -var de_DeleteChangeSetOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - return contents; -}, "de_DeleteChangeSetOutput"); -var de_DeleteStackInstancesOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_OI] != null) { - contents[_OI] = (0, import_smithy_client.expectString)(output[_OI]); - } - return contents; -}, "de_DeleteStackInstancesOutput"); -var de_DeleteStackSetOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - return contents; -}, "de_DeleteStackSetOutput"); -var de_DeploymentTargets = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output.Accounts === "") { - contents[_Ac] = []; - } else if (output[_Ac] != null && output[_Ac][_m] != null) { - contents[_Ac] = de_AccountList((0, import_smithy_client.getArrayIfSingleItem)(output[_Ac][_m]), context); - } - if (output[_AUc] != null) { - contents[_AUc] = (0, import_smithy_client.expectString)(output[_AUc]); - } - if (output.OrganizationalUnitIds === "") { - contents[_OUI] = []; - } else if (output[_OUI] != null && output[_OUI][_m] != null) { - contents[_OUI] = de_OrganizationalUnitIdList((0, import_smithy_client.getArrayIfSingleItem)(output[_OUI][_m]), context); - } - if (output[_AFT] != null) { - contents[_AFT] = (0, import_smithy_client.expectString)(output[_AFT]); - } - return contents; -}, "de_DeploymentTargets"); -var de_DeregisterTypeOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - return contents; -}, "de_DeregisterTypeOutput"); -var de_DescribeAccountLimitsOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output.AccountLimits === "") { - contents[_AL] = []; - } else if (output[_AL] != null && output[_AL][_m] != null) { - contents[_AL] = de_AccountLimitList((0, import_smithy_client.getArrayIfSingleItem)(output[_AL][_m]), context); - } - if (output[_NT] != null) { - contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]); - } - return contents; -}, "de_DescribeAccountLimitsOutput"); -var de_DescribeChangeSetHooksOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_CSIh] != null) { - contents[_CSIh] = (0, import_smithy_client.expectString)(output[_CSIh]); - } - if (output[_CSN] != null) { - contents[_CSN] = (0, import_smithy_client.expectString)(output[_CSN]); - } - if (output.Hooks === "") { - contents[_H] = []; - } else if (output[_H] != null && output[_H][_m] != null) { - contents[_H] = de_ChangeSetHooks((0, import_smithy_client.getArrayIfSingleItem)(output[_H][_m]), context); - } - if (output[_S] != null) { - contents[_S] = (0, import_smithy_client.expectString)(output[_S]); - } - if (output[_NT] != null) { - contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]); - } - if (output[_SI] != null) { - contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]); - } - if (output[_SN] != null) { - contents[_SN] = (0, import_smithy_client.expectString)(output[_SN]); - } - return contents; -}, "de_DescribeChangeSetHooksOutput"); -var de_DescribeChangeSetOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_CSN] != null) { - contents[_CSN] = (0, import_smithy_client.expectString)(output[_CSN]); - } - if (output[_CSIh] != null) { - contents[_CSIh] = (0, import_smithy_client.expectString)(output[_CSIh]); - } - if (output[_SI] != null) { - contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]); - } - if (output[_SN] != null) { - contents[_SN] = (0, import_smithy_client.expectString)(output[_SN]); - } - if (output[_D] != null) { - contents[_D] = (0, import_smithy_client.expectString)(output[_D]); - } - if (output.Parameters === "") { - contents[_P] = []; - } else if (output[_P] != null && output[_P][_m] != null) { - contents[_P] = de_Parameters((0, import_smithy_client.getArrayIfSingleItem)(output[_P][_m]), context); - } - if (output[_CTr] != null) { - contents[_CTr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CTr])); - } - if (output[_ES] != null) { - contents[_ES] = (0, import_smithy_client.expectString)(output[_ES]); - } - if (output[_S] != null) { - contents[_S] = (0, import_smithy_client.expectString)(output[_S]); - } - if (output[_SRt] != null) { - contents[_SRt] = (0, import_smithy_client.expectString)(output[_SRt]); - } - if (output.NotificationARNs === "") { - contents[_NARN] = []; - } else if (output[_NARN] != null && output[_NARN][_m] != null) { - contents[_NARN] = de_NotificationARNs((0, import_smithy_client.getArrayIfSingleItem)(output[_NARN][_m]), context); - } - if (output[_RC] != null) { - contents[_RC] = de_RollbackConfiguration(output[_RC], context); - } - if (output.Capabilities === "") { - contents[_C] = []; - } else if (output[_C] != null && output[_C][_m] != null) { - contents[_C] = de_Capabilities((0, import_smithy_client.getArrayIfSingleItem)(output[_C][_m]), context); - } - if (output.Tags === "") { - contents[_Ta] = []; - } else if (output[_Ta] != null && output[_Ta][_m] != null) { - contents[_Ta] = de_Tags((0, import_smithy_client.getArrayIfSingleItem)(output[_Ta][_m]), context); - } - if (output.Changes === "") { - contents[_Ch] = []; - } else if (output[_Ch] != null && output[_Ch][_m] != null) { - contents[_Ch] = de_Changes((0, import_smithy_client.getArrayIfSingleItem)(output[_Ch][_m]), context); - } - if (output[_NT] != null) { - contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]); - } - if (output[_INS] != null) { - contents[_INS] = (0, import_smithy_client.parseBoolean)(output[_INS]); - } - if (output[_PCSI] != null) { - contents[_PCSI] = (0, import_smithy_client.expectString)(output[_PCSI]); - } - if (output[_RCSI] != null) { - contents[_RCSI] = (0, import_smithy_client.expectString)(output[_RCSI]); - } - if (output[_OSF] != null) { - contents[_OSF] = (0, import_smithy_client.expectString)(output[_OSF]); - } - if (output[_IER] != null) { - contents[_IER] = (0, import_smithy_client.parseBoolean)(output[_IER]); - } - return contents; -}, "de_DescribeChangeSetOutput"); -var de_DescribeGeneratedTemplateOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_GTI] != null) { - contents[_GTI] = (0, import_smithy_client.expectString)(output[_GTI]); - } - if (output[_GTN] != null) { - contents[_GTN] = (0, import_smithy_client.expectString)(output[_GTN]); - } - if (output.Resources === "") { - contents[_R] = []; - } else if (output[_R] != null && output[_R][_m] != null) { - contents[_R] = de_ResourceDetails((0, import_smithy_client.getArrayIfSingleItem)(output[_R][_m]), context); - } - if (output[_S] != null) { - contents[_S] = (0, import_smithy_client.expectString)(output[_S]); - } - if (output[_SRt] != null) { - contents[_SRt] = (0, import_smithy_client.expectString)(output[_SRt]); - } - if (output[_CTr] != null) { - contents[_CTr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CTr])); - } - if (output[_LUT] != null) { - contents[_LUT] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LUT])); - } - if (output[_Pr] != null) { - contents[_Pr] = de_TemplateProgress(output[_Pr], context); - } - if (output[_SI] != null) { - contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]); - } - if (output[_TC] != null) { - contents[_TC] = de_TemplateConfiguration(output[_TC], context); - } - if (output[_TW] != null) { - contents[_TW] = (0, import_smithy_client.strictParseInt32)(output[_TW]); - } - return contents; -}, "de_DescribeGeneratedTemplateOutput"); -var de_DescribeOrganizationsAccessOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_S] != null) { - contents[_S] = (0, import_smithy_client.expectString)(output[_S]); - } - return contents; -}, "de_DescribeOrganizationsAccessOutput"); -var de_DescribePublisherOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_PI] != null) { - contents[_PI] = (0, import_smithy_client.expectString)(output[_PI]); - } - if (output[_PS] != null) { - contents[_PS] = (0, import_smithy_client.expectString)(output[_PS]); - } - if (output[_IPd] != null) { - contents[_IPd] = (0, import_smithy_client.expectString)(output[_IPd]); - } - if (output[_PP] != null) { - contents[_PP] = (0, import_smithy_client.expectString)(output[_PP]); - } - return contents; -}, "de_DescribePublisherOutput"); -var de_DescribeResourceScanOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_RSI] != null) { - contents[_RSI] = (0, import_smithy_client.expectString)(output[_RSI]); - } - if (output[_S] != null) { - contents[_S] = (0, import_smithy_client.expectString)(output[_S]); - } - if (output[_SRt] != null) { - contents[_SRt] = (0, import_smithy_client.expectString)(output[_SRt]); - } - if (output[_ST] != null) { - contents[_ST] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_ST])); - } - if (output[_ET] != null) { - contents[_ET] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_ET])); - } - if (output[_PC] != null) { - contents[_PC] = (0, import_smithy_client.strictParseFloat)(output[_PC]); - } - if (output.ResourceTypes === "") { - contents[_RTe] = []; - } else if (output[_RTe] != null && output[_RTe][_m] != null) { - contents[_RTe] = de_ResourceTypes((0, import_smithy_client.getArrayIfSingleItem)(output[_RTe][_m]), context); - } - if (output[_RSes] != null) { - contents[_RSes] = (0, import_smithy_client.strictParseInt32)(output[_RSes]); - } - if (output[_RRes] != null) { - contents[_RRes] = (0, import_smithy_client.strictParseInt32)(output[_RRes]); - } - return contents; -}, "de_DescribeResourceScanOutput"); -var de_DescribeStackDriftDetectionStatusOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_SI] != null) { - contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]); - } - if (output[_SDDI] != null) { - contents[_SDDI] = (0, import_smithy_client.expectString)(output[_SDDI]); - } - if (output[_SDS] != null) { - contents[_SDS] = (0, import_smithy_client.expectString)(output[_SDS]); - } - if (output[_DSet] != null) { - contents[_DSet] = (0, import_smithy_client.expectString)(output[_DSet]); - } - if (output[_DSRet] != null) { - contents[_DSRet] = (0, import_smithy_client.expectString)(output[_DSRet]); - } - if (output[_DSRC] != null) { - contents[_DSRC] = (0, import_smithy_client.strictParseInt32)(output[_DSRC]); - } - if (output[_Ti] != null) { - contents[_Ti] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_Ti])); - } - return contents; -}, "de_DescribeStackDriftDetectionStatusOutput"); -var de_DescribeStackEventsOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output.StackEvents === "") { - contents[_SE] = []; - } else if (output[_SE] != null && output[_SE][_m] != null) { - contents[_SE] = de_StackEvents((0, import_smithy_client.getArrayIfSingleItem)(output[_SE][_m]), context); - } - if (output[_NT] != null) { - contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]); - } - return contents; -}, "de_DescribeStackEventsOutput"); -var de_DescribeStackInstanceOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_SIta] != null) { - contents[_SIta] = de_StackInstance(output[_SIta], context); - } - return contents; -}, "de_DescribeStackInstanceOutput"); -var de_DescribeStackResourceDriftsOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output.StackResourceDrifts === "") { - contents[_SRD] = []; - } else if (output[_SRD] != null && output[_SRD][_m] != null) { - contents[_SRD] = de_StackResourceDrifts((0, import_smithy_client.getArrayIfSingleItem)(output[_SRD][_m]), context); - } - if (output[_NT] != null) { - contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]); - } - return contents; -}, "de_DescribeStackResourceDriftsOutput"); -var de_DescribeStackResourceOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_SRDt] != null) { - contents[_SRDt] = de_StackResourceDetail(output[_SRDt], context); - } - return contents; -}, "de_DescribeStackResourceOutput"); -var de_DescribeStackResourcesOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output.StackResources === "") { - contents[_SRta] = []; - } else if (output[_SRta] != null && output[_SRta][_m] != null) { - contents[_SRta] = de_StackResources((0, import_smithy_client.getArrayIfSingleItem)(output[_SRta][_m]), context); - } - return contents; -}, "de_DescribeStackResourcesOutput"); -var de_DescribeStackSetOperationOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_SSO] != null) { - contents[_SSO] = de_StackSetOperation(output[_SSO], context); - } - return contents; -}, "de_DescribeStackSetOperationOutput"); -var de_DescribeStackSetOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_SS] != null) { - contents[_SS] = de_StackSet(output[_SS], context); - } - return contents; -}, "de_DescribeStackSetOutput"); -var de_DescribeStacksOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output.Stacks === "") { - contents[_St] = []; - } else if (output[_St] != null && output[_St][_m] != null) { - contents[_St] = de_Stacks((0, import_smithy_client.getArrayIfSingleItem)(output[_St][_m]), context); - } - if (output[_NT] != null) { - contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]); - } - return contents; -}, "de_DescribeStacksOutput"); -var de_DescribeTypeOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_Ar] != null) { - contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]); - } - if (output[_T] != null) { - contents[_T] = (0, import_smithy_client.expectString)(output[_T]); - } - if (output[_TN] != null) { - contents[_TN] = (0, import_smithy_client.expectString)(output[_TN]); - } - if (output[_DVI] != null) { - contents[_DVI] = (0, import_smithy_client.expectString)(output[_DVI]); - } - if (output[_IDV] != null) { - contents[_IDV] = (0, import_smithy_client.parseBoolean)(output[_IDV]); - } - if (output[_TTS] != null) { - contents[_TTS] = (0, import_smithy_client.expectString)(output[_TTS]); - } - if (output[_TTSD] != null) { - contents[_TTSD] = (0, import_smithy_client.expectString)(output[_TTSD]); - } - if (output[_D] != null) { - contents[_D] = (0, import_smithy_client.expectString)(output[_D]); - } - if (output[_Sc] != null) { - contents[_Sc] = (0, import_smithy_client.expectString)(output[_Sc]); - } - if (output[_PTr] != null) { - contents[_PTr] = (0, import_smithy_client.expectString)(output[_PTr]); - } - if (output[_DSep] != null) { - contents[_DSep] = (0, import_smithy_client.expectString)(output[_DSep]); - } - if (output[_LC] != null) { - contents[_LC] = de_LoggingConfig(output[_LC], context); - } - if (output.RequiredActivatedTypes === "") { - contents[_RAT] = []; - } else if (output[_RAT] != null && output[_RAT][_m] != null) { - contents[_RAT] = de_RequiredActivatedTypes((0, import_smithy_client.getArrayIfSingleItem)(output[_RAT][_m]), context); - } - if (output[_ERA] != null) { - contents[_ERA] = (0, import_smithy_client.expectString)(output[_ERA]); - } - if (output[_Vi] != null) { - contents[_Vi] = (0, import_smithy_client.expectString)(output[_Vi]); - } - if (output[_SU] != null) { - contents[_SU] = (0, import_smithy_client.expectString)(output[_SU]); - } - if (output[_DU] != null) { - contents[_DU] = (0, import_smithy_client.expectString)(output[_DU]); - } - if (output[_LU] != null) { - contents[_LU] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LU])); - } - if (output[_TCi] != null) { - contents[_TCi] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_TCi])); - } - if (output[_CSo] != null) { - contents[_CSo] = (0, import_smithy_client.expectString)(output[_CSo]); - } - if (output[_PI] != null) { - contents[_PI] = (0, import_smithy_client.expectString)(output[_PI]); - } - if (output[_OTN] != null) { - contents[_OTN] = (0, import_smithy_client.expectString)(output[_OTN]); - } - if (output[_OTA] != null) { - contents[_OTA] = (0, import_smithy_client.expectString)(output[_OTA]); - } - if (output[_PVN] != null) { - contents[_PVN] = (0, import_smithy_client.expectString)(output[_PVN]); - } - if (output[_LPV] != null) { - contents[_LPV] = (0, import_smithy_client.expectString)(output[_LPV]); - } - if (output[_IA] != null) { - contents[_IA] = (0, import_smithy_client.parseBoolean)(output[_IA]); - } - if (output[_AU] != null) { - contents[_AU] = (0, import_smithy_client.parseBoolean)(output[_AU]); - } - return contents; -}, "de_DescribeTypeOutput"); -var de_DescribeTypeRegistrationOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_PSr] != null) { - contents[_PSr] = (0, import_smithy_client.expectString)(output[_PSr]); - } - if (output[_D] != null) { - contents[_D] = (0, import_smithy_client.expectString)(output[_D]); - } - if (output[_TA] != null) { - contents[_TA] = (0, import_smithy_client.expectString)(output[_TA]); - } - if (output[_TVA] != null) { - contents[_TVA] = (0, import_smithy_client.expectString)(output[_TVA]); - } - return contents; -}, "de_DescribeTypeRegistrationOutput"); -var de_DetectStackDriftOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_SDDI] != null) { - contents[_SDDI] = (0, import_smithy_client.expectString)(output[_SDDI]); - } - return contents; -}, "de_DetectStackDriftOutput"); -var de_DetectStackResourceDriftOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_SRDta] != null) { - contents[_SRDta] = de_StackResourceDrift(output[_SRDta], context); - } - return contents; -}, "de_DetectStackResourceDriftOutput"); -var de_DetectStackSetDriftOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_OI] != null) { - contents[_OI] = (0, import_smithy_client.expectString)(output[_OI]); - } - return contents; -}, "de_DetectStackSetDriftOutput"); -var de_EstimateTemplateCostOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_U] != null) { - contents[_U] = (0, import_smithy_client.expectString)(output[_U]); - } - return contents; -}, "de_EstimateTemplateCostOutput"); -var de_ExecuteChangeSetOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - return contents; -}, "de_ExecuteChangeSetOutput"); -var de_Export = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_ESI] != null) { - contents[_ESI] = (0, import_smithy_client.expectString)(output[_ESI]); - } - if (output[_N] != null) { - contents[_N] = (0, import_smithy_client.expectString)(output[_N]); - } - if (output[_Val] != null) { - contents[_Val] = (0, import_smithy_client.expectString)(output[_Val]); - } - return contents; -}, "de_Export"); -var de_Exports = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return de_Export(entry, context); - }); -}, "de_Exports"); -var de_GeneratedTemplateNotFoundException = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_M] != null) { - contents[_M] = (0, import_smithy_client.expectString)(output[_M]); - } - return contents; -}, "de_GeneratedTemplateNotFoundException"); -var de_GetGeneratedTemplateOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_S] != null) { - contents[_S] = (0, import_smithy_client.expectString)(output[_S]); - } - if (output[_TB] != null) { - contents[_TB] = (0, import_smithy_client.expectString)(output[_TB]); - } - return contents; -}, "de_GetGeneratedTemplateOutput"); -var de_GetStackPolicyOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_SPB] != null) { - contents[_SPB] = (0, import_smithy_client.expectString)(output[_SPB]); - } - return contents; -}, "de_GetStackPolicyOutput"); -var de_GetTemplateOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_TB] != null) { - contents[_TB] = (0, import_smithy_client.expectString)(output[_TB]); - } - if (output.StagesAvailable === "") { - contents[_SA] = []; - } else if (output[_SA] != null && output[_SA][_m] != null) { - contents[_SA] = de_StageList((0, import_smithy_client.getArrayIfSingleItem)(output[_SA][_m]), context); - } - return contents; -}, "de_GetTemplateOutput"); -var de_GetTemplateSummaryOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output.Parameters === "") { - contents[_P] = []; - } else if (output[_P] != null && output[_P][_m] != null) { - contents[_P] = de_ParameterDeclarations((0, import_smithy_client.getArrayIfSingleItem)(output[_P][_m]), context); - } - if (output[_D] != null) { - contents[_D] = (0, import_smithy_client.expectString)(output[_D]); - } - if (output.Capabilities === "") { - contents[_C] = []; - } else if (output[_C] != null && output[_C][_m] != null) { - contents[_C] = de_Capabilities((0, import_smithy_client.getArrayIfSingleItem)(output[_C][_m]), context); - } - if (output[_CR] != null) { - contents[_CR] = (0, import_smithy_client.expectString)(output[_CR]); - } - if (output.ResourceTypes === "") { - contents[_RTe] = []; - } else if (output[_RTe] != null && output[_RTe][_m] != null) { - contents[_RTe] = de_ResourceTypes((0, import_smithy_client.getArrayIfSingleItem)(output[_RTe][_m]), context); - } - if (output[_V] != null) { - contents[_V] = (0, import_smithy_client.expectString)(output[_V]); - } - if (output[_Me] != null) { - contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]); - } - if (output.DeclaredTransforms === "") { - contents[_DTec] = []; - } else if (output[_DTec] != null && output[_DTec][_m] != null) { - contents[_DTec] = de_TransformsList((0, import_smithy_client.getArrayIfSingleItem)(output[_DTec][_m]), context); - } - if (output.ResourceIdentifierSummaries === "") { - contents[_RIS] = []; - } else if (output[_RIS] != null && output[_RIS][_m] != null) { - contents[_RIS] = de_ResourceIdentifierSummaries((0, import_smithy_client.getArrayIfSingleItem)(output[_RIS][_m]), context); - } - if (output[_W] != null) { - contents[_W] = de_Warnings(output[_W], context); - } - return contents; -}, "de_GetTemplateSummaryOutput"); -var de_Imports = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return (0, import_smithy_client.expectString)(entry); - }); -}, "de_Imports"); -var de_ImportStacksToStackSetOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_OI] != null) { - contents[_OI] = (0, import_smithy_client.expectString)(output[_OI]); - } - return contents; -}, "de_ImportStacksToStackSetOutput"); -var de_InsufficientCapabilitiesException = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_M] != null) { - contents[_M] = (0, import_smithy_client.expectString)(output[_M]); - } - return contents; -}, "de_InsufficientCapabilitiesException"); -var de_InvalidChangeSetStatusException = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_M] != null) { - contents[_M] = (0, import_smithy_client.expectString)(output[_M]); - } - return contents; -}, "de_InvalidChangeSetStatusException"); -var de_InvalidOperationException = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_M] != null) { - contents[_M] = (0, import_smithy_client.expectString)(output[_M]); - } - return contents; -}, "de_InvalidOperationException"); -var de_InvalidStateTransitionException = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_M] != null) { - contents[_M] = (0, import_smithy_client.expectString)(output[_M]); - } - return contents; -}, "de_InvalidStateTransitionException"); -var de_JazzResourceIdentifierProperties = /* @__PURE__ */ __name((output, context) => { - return output.reduce((acc, pair) => { - if (pair["value"] === null) { - return acc; - } - acc[pair["key"]] = (0, import_smithy_client.expectString)(pair["value"]); - return acc; - }, {}); -}, "de_JazzResourceIdentifierProperties"); -var de_LimitExceededException = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_M] != null) { - contents[_M] = (0, import_smithy_client.expectString)(output[_M]); - } - return contents; -}, "de_LimitExceededException"); -var de_ListChangeSetsOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output.Summaries === "") { - contents[_Su] = []; - } else if (output[_Su] != null && output[_Su][_m] != null) { - contents[_Su] = de_ChangeSetSummaries((0, import_smithy_client.getArrayIfSingleItem)(output[_Su][_m]), context); - } - if (output[_NT] != null) { - contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]); - } - return contents; -}, "de_ListChangeSetsOutput"); -var de_ListExportsOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output.Exports === "") { - contents[_Ex] = []; - } else if (output[_Ex] != null && output[_Ex][_m] != null) { - contents[_Ex] = de_Exports((0, import_smithy_client.getArrayIfSingleItem)(output[_Ex][_m]), context); - } - if (output[_NT] != null) { - contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]); - } - return contents; -}, "de_ListExportsOutput"); -var de_ListGeneratedTemplatesOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output.Summaries === "") { - contents[_Su] = []; - } else if (output[_Su] != null && output[_Su][_m] != null) { - contents[_Su] = de_TemplateSummaries((0, import_smithy_client.getArrayIfSingleItem)(output[_Su][_m]), context); - } - if (output[_NT] != null) { - contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]); - } - return contents; -}, "de_ListGeneratedTemplatesOutput"); -var de_ListImportsOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output.Imports === "") { - contents[_Im] = []; - } else if (output[_Im] != null && output[_Im][_m] != null) { - contents[_Im] = de_Imports((0, import_smithy_client.getArrayIfSingleItem)(output[_Im][_m]), context); - } - if (output[_NT] != null) { - contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]); - } - return contents; -}, "de_ListImportsOutput"); -var de_ListResourceScanRelatedResourcesOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output.RelatedResources === "") { - contents[_RRel] = []; - } else if (output[_RRel] != null && output[_RRel][_m] != null) { - contents[_RRel] = de_RelatedResources((0, import_smithy_client.getArrayIfSingleItem)(output[_RRel][_m]), context); - } - if (output[_NT] != null) { - contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]); - } - return contents; -}, "de_ListResourceScanRelatedResourcesOutput"); -var de_ListResourceScanResourcesOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output.Resources === "") { - contents[_R] = []; - } else if (output[_R] != null && output[_R][_m] != null) { - contents[_R] = de_ScannedResources((0, import_smithy_client.getArrayIfSingleItem)(output[_R][_m]), context); - } - if (output[_NT] != null) { - contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]); - } - return contents; -}, "de_ListResourceScanResourcesOutput"); -var de_ListResourceScansOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output.ResourceScanSummaries === "") { - contents[_RSS] = []; - } else if (output[_RSS] != null && output[_RSS][_m] != null) { - contents[_RSS] = de_ResourceScanSummaries((0, import_smithy_client.getArrayIfSingleItem)(output[_RSS][_m]), context); - } - if (output[_NT] != null) { - contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]); - } - return contents; -}, "de_ListResourceScansOutput"); -var de_ListStackInstanceResourceDriftsOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output.Summaries === "") { - contents[_Su] = []; - } else if (output[_Su] != null && output[_Su][_m] != null) { - contents[_Su] = de_StackInstanceResourceDriftsSummaries((0, import_smithy_client.getArrayIfSingleItem)(output[_Su][_m]), context); - } - if (output[_NT] != null) { - contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]); - } - return contents; -}, "de_ListStackInstanceResourceDriftsOutput"); -var de_ListStackInstancesOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output.Summaries === "") { - contents[_Su] = []; - } else if (output[_Su] != null && output[_Su][_m] != null) { - contents[_Su] = de_StackInstanceSummaries((0, import_smithy_client.getArrayIfSingleItem)(output[_Su][_m]), context); - } - if (output[_NT] != null) { - contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]); - } - return contents; -}, "de_ListStackInstancesOutput"); -var de_ListStackResourcesOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output.StackResourceSummaries === "") { - contents[_SRSt] = []; - } else if (output[_SRSt] != null && output[_SRSt][_m] != null) { - contents[_SRSt] = de_StackResourceSummaries((0, import_smithy_client.getArrayIfSingleItem)(output[_SRSt][_m]), context); - } - if (output[_NT] != null) { - contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]); - } - return contents; -}, "de_ListStackResourcesOutput"); -var de_ListStackSetAutoDeploymentTargetsOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output.Summaries === "") { - contents[_Su] = []; - } else if (output[_Su] != null && output[_Su][_m] != null) { - contents[_Su] = de_StackSetAutoDeploymentTargetSummaries((0, import_smithy_client.getArrayIfSingleItem)(output[_Su][_m]), context); - } - if (output[_NT] != null) { - contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]); - } - return contents; -}, "de_ListStackSetAutoDeploymentTargetsOutput"); -var de_ListStackSetOperationResultsOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output.Summaries === "") { - contents[_Su] = []; - } else if (output[_Su] != null && output[_Su][_m] != null) { - contents[_Su] = de_StackSetOperationResultSummaries((0, import_smithy_client.getArrayIfSingleItem)(output[_Su][_m]), context); - } - if (output[_NT] != null) { - contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]); - } - return contents; -}, "de_ListStackSetOperationResultsOutput"); -var de_ListStackSetOperationsOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output.Summaries === "") { - contents[_Su] = []; - } else if (output[_Su] != null && output[_Su][_m] != null) { - contents[_Su] = de_StackSetOperationSummaries((0, import_smithy_client.getArrayIfSingleItem)(output[_Su][_m]), context); - } - if (output[_NT] != null) { - contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]); - } - return contents; -}, "de_ListStackSetOperationsOutput"); -var de_ListStackSetsOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output.Summaries === "") { - contents[_Su] = []; - } else if (output[_Su] != null && output[_Su][_m] != null) { - contents[_Su] = de_StackSetSummaries((0, import_smithy_client.getArrayIfSingleItem)(output[_Su][_m]), context); - } - if (output[_NT] != null) { - contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]); - } - return contents; -}, "de_ListStackSetsOutput"); -var de_ListStacksOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output.StackSummaries === "") { - contents[_SSt] = []; - } else if (output[_SSt] != null && output[_SSt][_m] != null) { - contents[_SSt] = de_StackSummaries((0, import_smithy_client.getArrayIfSingleItem)(output[_SSt][_m]), context); - } - if (output[_NT] != null) { - contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]); - } - return contents; -}, "de_ListStacksOutput"); -var de_ListTypeRegistrationsOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output.RegistrationTokenList === "") { - contents[_RTL] = []; - } else if (output[_RTL] != null && output[_RTL][_m] != null) { - contents[_RTL] = de_RegistrationTokenList((0, import_smithy_client.getArrayIfSingleItem)(output[_RTL][_m]), context); - } - if (output[_NT] != null) { - contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]); - } - return contents; -}, "de_ListTypeRegistrationsOutput"); -var de_ListTypesOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output.TypeSummaries === "") { - contents[_TSy] = []; - } else if (output[_TSy] != null && output[_TSy][_m] != null) { - contents[_TSy] = de_TypeSummaries((0, import_smithy_client.getArrayIfSingleItem)(output[_TSy][_m]), context); - } - if (output[_NT] != null) { - contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]); - } - return contents; -}, "de_ListTypesOutput"); -var de_ListTypeVersionsOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output.TypeVersionSummaries === "") { - contents[_TVS] = []; - } else if (output[_TVS] != null && output[_TVS][_m] != null) { - contents[_TVS] = de_TypeVersionSummaries((0, import_smithy_client.getArrayIfSingleItem)(output[_TVS][_m]), context); - } - if (output[_NT] != null) { - contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]); - } - return contents; -}, "de_ListTypeVersionsOutput"); -var de_LoggingConfig = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_LRA] != null) { - contents[_LRA] = (0, import_smithy_client.expectString)(output[_LRA]); - } - if (output[_LGN] != null) { - contents[_LGN] = (0, import_smithy_client.expectString)(output[_LGN]); - } - return contents; -}, "de_LoggingConfig"); -var de_LogicalResourceIds = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return (0, import_smithy_client.expectString)(entry); - }); -}, "de_LogicalResourceIds"); -var de_ManagedExecution = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_Act] != null) { - contents[_Act] = (0, import_smithy_client.parseBoolean)(output[_Act]); - } - return contents; -}, "de_ManagedExecution"); -var de_ModuleInfo = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_TH] != null) { - contents[_TH] = (0, import_smithy_client.expectString)(output[_TH]); - } - if (output[_LIH] != null) { - contents[_LIH] = (0, import_smithy_client.expectString)(output[_LIH]); - } - return contents; -}, "de_ModuleInfo"); -var de_NameAlreadyExistsException = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_M] != null) { - contents[_M] = (0, import_smithy_client.expectString)(output[_M]); - } - return contents; -}, "de_NameAlreadyExistsException"); -var de_NotificationARNs = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return (0, import_smithy_client.expectString)(entry); - }); -}, "de_NotificationARNs"); -var de_OperationIdAlreadyExistsException = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_M] != null) { - contents[_M] = (0, import_smithy_client.expectString)(output[_M]); - } - return contents; -}, "de_OperationIdAlreadyExistsException"); -var de_OperationInProgressException = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_M] != null) { - contents[_M] = (0, import_smithy_client.expectString)(output[_M]); - } - return contents; -}, "de_OperationInProgressException"); -var de_OperationNotFoundException = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_M] != null) { - contents[_M] = (0, import_smithy_client.expectString)(output[_M]); - } - return contents; -}, "de_OperationNotFoundException"); -var de_OperationStatusCheckFailedException = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_M] != null) { - contents[_M] = (0, import_smithy_client.expectString)(output[_M]); - } - return contents; -}, "de_OperationStatusCheckFailedException"); -var de_OrganizationalUnitIdList = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return (0, import_smithy_client.expectString)(entry); - }); -}, "de_OrganizationalUnitIdList"); -var de_Output = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_OK] != null) { - contents[_OK] = (0, import_smithy_client.expectString)(output[_OK]); - } - if (output[_OV] != null) { - contents[_OV] = (0, import_smithy_client.expectString)(output[_OV]); - } - if (output[_D] != null) { - contents[_D] = (0, import_smithy_client.expectString)(output[_D]); - } - if (output[_EN] != null) { - contents[_EN] = (0, import_smithy_client.expectString)(output[_EN]); - } - return contents; -}, "de_Output"); -var de_Outputs = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return de_Output(entry, context); - }); -}, "de_Outputs"); -var de_Parameter = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_PK] != null) { - contents[_PK] = (0, import_smithy_client.expectString)(output[_PK]); - } - if (output[_PV] != null) { - contents[_PV] = (0, import_smithy_client.expectString)(output[_PV]); - } - if (output[_UPV] != null) { - contents[_UPV] = (0, import_smithy_client.parseBoolean)(output[_UPV]); - } - if (output[_RV] != null) { - contents[_RV] = (0, import_smithy_client.expectString)(output[_RV]); - } - return contents; -}, "de_Parameter"); -var de_ParameterConstraints = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output.AllowedValues === "") { - contents[_AV] = []; - } else if (output[_AV] != null && output[_AV][_m] != null) { - contents[_AV] = de_AllowedValues((0, import_smithy_client.getArrayIfSingleItem)(output[_AV][_m]), context); - } - return contents; -}, "de_ParameterConstraints"); -var de_ParameterDeclaration = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_PK] != null) { - contents[_PK] = (0, import_smithy_client.expectString)(output[_PK]); - } - if (output[_DV] != null) { - contents[_DV] = (0, import_smithy_client.expectString)(output[_DV]); - } - if (output[_PTa] != null) { - contents[_PTa] = (0, import_smithy_client.expectString)(output[_PTa]); - } - if (output[_NE] != null) { - contents[_NE] = (0, import_smithy_client.parseBoolean)(output[_NE]); - } - if (output[_D] != null) { - contents[_D] = (0, import_smithy_client.expectString)(output[_D]); - } - if (output[_PCa] != null) { - contents[_PCa] = de_ParameterConstraints(output[_PCa], context); - } - return contents; -}, "de_ParameterDeclaration"); -var de_ParameterDeclarations = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return de_ParameterDeclaration(entry, context); - }); -}, "de_ParameterDeclarations"); -var de_Parameters = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return de_Parameter(entry, context); - }); -}, "de_Parameters"); -var de_PhysicalResourceIdContext = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return de_PhysicalResourceIdContextKeyValuePair(entry, context); - }); -}, "de_PhysicalResourceIdContext"); -var de_PhysicalResourceIdContextKeyValuePair = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_K] != null) { - contents[_K] = (0, import_smithy_client.expectString)(output[_K]); - } - if (output[_Val] != null) { - contents[_Val] = (0, import_smithy_client.expectString)(output[_Val]); - } - return contents; -}, "de_PhysicalResourceIdContextKeyValuePair"); -var de_PropertyDifference = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_PPr] != null) { - contents[_PPr] = (0, import_smithy_client.expectString)(output[_PPr]); - } - if (output[_EV] != null) { - contents[_EV] = (0, import_smithy_client.expectString)(output[_EV]); - } - if (output[_AVc] != null) { - contents[_AVc] = (0, import_smithy_client.expectString)(output[_AVc]); - } - if (output[_DTi] != null) { - contents[_DTi] = (0, import_smithy_client.expectString)(output[_DTi]); - } - return contents; -}, "de_PropertyDifference"); -var de_PropertyDifferences = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return de_PropertyDifference(entry, context); - }); -}, "de_PropertyDifferences"); -var de_PublishTypeOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_PTA] != null) { - contents[_PTA] = (0, import_smithy_client.expectString)(output[_PTA]); - } - return contents; -}, "de_PublishTypeOutput"); -var de_RecordHandlerProgressOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - return contents; -}, "de_RecordHandlerProgressOutput"); -var de_RegionList = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return (0, import_smithy_client.expectString)(entry); - }); -}, "de_RegionList"); -var de_RegisterPublisherOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_PI] != null) { - contents[_PI] = (0, import_smithy_client.expectString)(output[_PI]); - } - return contents; -}, "de_RegisterPublisherOutput"); -var de_RegisterTypeOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_RTeg] != null) { - contents[_RTeg] = (0, import_smithy_client.expectString)(output[_RTeg]); - } - return contents; -}, "de_RegisterTypeOutput"); -var de_RegistrationTokenList = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return (0, import_smithy_client.expectString)(entry); - }); -}, "de_RegistrationTokenList"); -var de_RelatedResources = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return de_ScannedResource(entry, context); - }); -}, "de_RelatedResources"); -var de_RequiredActivatedType = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_TNA] != null) { - contents[_TNA] = (0, import_smithy_client.expectString)(output[_TNA]); - } - if (output[_OTN] != null) { - contents[_OTN] = (0, import_smithy_client.expectString)(output[_OTN]); - } - if (output[_PI] != null) { - contents[_PI] = (0, import_smithy_client.expectString)(output[_PI]); - } - if (output.SupportedMajorVersions === "") { - contents[_SMV] = []; - } else if (output[_SMV] != null && output[_SMV][_m] != null) { - contents[_SMV] = de_SupportedMajorVersions((0, import_smithy_client.getArrayIfSingleItem)(output[_SMV][_m]), context); - } - return contents; -}, "de_RequiredActivatedType"); -var de_RequiredActivatedTypes = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return de_RequiredActivatedType(entry, context); - }); -}, "de_RequiredActivatedTypes"); -var de_ResourceChange = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_PA] != null) { - contents[_PA] = (0, import_smithy_client.expectString)(output[_PA]); - } - if (output[_A] != null) { - contents[_A] = (0, import_smithy_client.expectString)(output[_A]); - } - if (output[_LRI] != null) { - contents[_LRI] = (0, import_smithy_client.expectString)(output[_LRI]); - } - if (output[_PRI] != null) { - contents[_PRI] = (0, import_smithy_client.expectString)(output[_PRI]); - } - if (output[_RTes] != null) { - contents[_RTes] = (0, import_smithy_client.expectString)(output[_RTes]); - } - if (output[_Rep] != null) { - contents[_Rep] = (0, import_smithy_client.expectString)(output[_Rep]); - } - if (output.Scope === "") { - contents[_Sco] = []; - } else if (output[_Sco] != null && output[_Sco][_m] != null) { - contents[_Sco] = de_Scope((0, import_smithy_client.getArrayIfSingleItem)(output[_Sco][_m]), context); - } - if (output.Details === "") { - contents[_De] = []; - } else if (output[_De] != null && output[_De][_m] != null) { - contents[_De] = de_ResourceChangeDetails((0, import_smithy_client.getArrayIfSingleItem)(output[_De][_m]), context); - } - if (output[_CSIh] != null) { - contents[_CSIh] = (0, import_smithy_client.expectString)(output[_CSIh]); - } - if (output[_MI] != null) { - contents[_MI] = de_ModuleInfo(output[_MI], context); - } - if (output[_BC] != null) { - contents[_BC] = (0, import_smithy_client.expectString)(output[_BC]); - } - if (output[_AC] != null) { - contents[_AC] = (0, import_smithy_client.expectString)(output[_AC]); - } - return contents; -}, "de_ResourceChange"); -var de_ResourceChangeDetail = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_Tar] != null) { - contents[_Tar] = de_ResourceTargetDefinition(output[_Tar], context); - } - if (output[_Ev] != null) { - contents[_Ev] = (0, import_smithy_client.expectString)(output[_Ev]); - } - if (output[_CSh] != null) { - contents[_CSh] = (0, import_smithy_client.expectString)(output[_CSh]); - } - if (output[_CE] != null) { - contents[_CE] = (0, import_smithy_client.expectString)(output[_CE]); - } - return contents; -}, "de_ResourceChangeDetail"); -var de_ResourceChangeDetails = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return de_ResourceChangeDetail(entry, context); - }); -}, "de_ResourceChangeDetails"); -var de_ResourceDetail = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_RTes] != null) { - contents[_RTes] = (0, import_smithy_client.expectString)(output[_RTes]); - } - if (output[_LRI] != null) { - contents[_LRI] = (0, import_smithy_client.expectString)(output[_LRI]); - } - if (output.ResourceIdentifier === "") { - contents[_RI] = {}; - } else if (output[_RI] != null && output[_RI][_e] != null) { - contents[_RI] = de_ResourceIdentifierProperties((0, import_smithy_client.getArrayIfSingleItem)(output[_RI][_e]), context); - } - if (output[_RSeso] != null) { - contents[_RSeso] = (0, import_smithy_client.expectString)(output[_RSeso]); - } - if (output[_RSR] != null) { - contents[_RSR] = (0, import_smithy_client.expectString)(output[_RSR]); - } - if (output.Warnings === "") { - contents[_W] = []; - } else if (output[_W] != null && output[_W][_m] != null) { - contents[_W] = de_WarningDetails((0, import_smithy_client.getArrayIfSingleItem)(output[_W][_m]), context); - } - return contents; -}, "de_ResourceDetail"); -var de_ResourceDetails = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return de_ResourceDetail(entry, context); - }); -}, "de_ResourceDetails"); -var de_ResourceIdentifierProperties = /* @__PURE__ */ __name((output, context) => { - return output.reduce((acc, pair) => { - if (pair["value"] === null) { - return acc; - } - acc[pair["key"]] = (0, import_smithy_client.expectString)(pair["value"]); - return acc; - }, {}); -}, "de_ResourceIdentifierProperties"); -var de_ResourceIdentifiers = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return (0, import_smithy_client.expectString)(entry); - }); -}, "de_ResourceIdentifiers"); -var de_ResourceIdentifierSummaries = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return de_ResourceIdentifierSummary(entry, context); - }); -}, "de_ResourceIdentifierSummaries"); -var de_ResourceIdentifierSummary = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_RTes] != null) { - contents[_RTes] = (0, import_smithy_client.expectString)(output[_RTes]); - } - if (output.LogicalResourceIds === "") { - contents[_LRIo] = []; - } else if (output[_LRIo] != null && output[_LRIo][_m] != null) { - contents[_LRIo] = de_LogicalResourceIds((0, import_smithy_client.getArrayIfSingleItem)(output[_LRIo][_m]), context); - } - if (output.ResourceIdentifiers === "") { - contents[_RIe] = []; - } else if (output[_RIe] != null && output[_RIe][_m] != null) { - contents[_RIe] = de_ResourceIdentifiers((0, import_smithy_client.getArrayIfSingleItem)(output[_RIe][_m]), context); - } - return contents; -}, "de_ResourceIdentifierSummary"); -var de_ResourceScanInProgressException = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_M] != null) { - contents[_M] = (0, import_smithy_client.expectString)(output[_M]); - } - return contents; -}, "de_ResourceScanInProgressException"); -var de_ResourceScanLimitExceededException = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_M] != null) { - contents[_M] = (0, import_smithy_client.expectString)(output[_M]); - } - return contents; -}, "de_ResourceScanLimitExceededException"); -var de_ResourceScanNotFoundException = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_M] != null) { - contents[_M] = (0, import_smithy_client.expectString)(output[_M]); - } - return contents; -}, "de_ResourceScanNotFoundException"); -var de_ResourceScanSummaries = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return de_ResourceScanSummary(entry, context); - }); -}, "de_ResourceScanSummaries"); -var de_ResourceScanSummary = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_RSI] != null) { - contents[_RSI] = (0, import_smithy_client.expectString)(output[_RSI]); - } - if (output[_S] != null) { - contents[_S] = (0, import_smithy_client.expectString)(output[_S]); - } - if (output[_SRt] != null) { - contents[_SRt] = (0, import_smithy_client.expectString)(output[_SRt]); - } - if (output[_ST] != null) { - contents[_ST] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_ST])); - } - if (output[_ET] != null) { - contents[_ET] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_ET])); - } - if (output[_PC] != null) { - contents[_PC] = (0, import_smithy_client.strictParseFloat)(output[_PC]); - } - return contents; -}, "de_ResourceScanSummary"); -var de_ResourceTargetDefinition = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_At] != null) { - contents[_At] = (0, import_smithy_client.expectString)(output[_At]); - } - if (output[_N] != null) { - contents[_N] = (0, import_smithy_client.expectString)(output[_N]); - } - if (output[_RReq] != null) { - contents[_RReq] = (0, import_smithy_client.expectString)(output[_RReq]); - } - if (output[_Pa] != null) { - contents[_Pa] = (0, import_smithy_client.expectString)(output[_Pa]); - } - if (output[_BV] != null) { - contents[_BV] = (0, import_smithy_client.expectString)(output[_BV]); - } - if (output[_AVf] != null) { - contents[_AVf] = (0, import_smithy_client.expectString)(output[_AVf]); - } - if (output[_ACT] != null) { - contents[_ACT] = (0, import_smithy_client.expectString)(output[_ACT]); - } - return contents; -}, "de_ResourceTargetDefinition"); -var de_ResourceTypes = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return (0, import_smithy_client.expectString)(entry); - }); -}, "de_ResourceTypes"); -var de_RollbackConfiguration = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output.RollbackTriggers === "") { - contents[_RTo] = []; - } else if (output[_RTo] != null && output[_RTo][_m] != null) { - contents[_RTo] = de_RollbackTriggers((0, import_smithy_client.getArrayIfSingleItem)(output[_RTo][_m]), context); - } - if (output[_MTIM] != null) { - contents[_MTIM] = (0, import_smithy_client.strictParseInt32)(output[_MTIM]); - } - return contents; -}, "de_RollbackConfiguration"); -var de_RollbackStackOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_SI] != null) { - contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]); - } - return contents; -}, "de_RollbackStackOutput"); -var de_RollbackTrigger = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_Ar] != null) { - contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]); - } - if (output[_T] != null) { - contents[_T] = (0, import_smithy_client.expectString)(output[_T]); - } - return contents; -}, "de_RollbackTrigger"); -var de_RollbackTriggers = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return de_RollbackTrigger(entry, context); - }); -}, "de_RollbackTriggers"); -var de_ScannedResource = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_RTes] != null) { - contents[_RTes] = (0, import_smithy_client.expectString)(output[_RTes]); - } - if (output.ResourceIdentifier === "") { - contents[_RI] = {}; - } else if (output[_RI] != null && output[_RI][_e] != null) { - contents[_RI] = de_JazzResourceIdentifierProperties((0, import_smithy_client.getArrayIfSingleItem)(output[_RI][_e]), context); - } - if (output[_MBS] != null) { - contents[_MBS] = (0, import_smithy_client.parseBoolean)(output[_MBS]); - } - return contents; -}, "de_ScannedResource"); -var de_ScannedResources = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return de_ScannedResource(entry, context); - }); -}, "de_ScannedResources"); -var de_Scope = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return (0, import_smithy_client.expectString)(entry); - }); -}, "de_Scope"); -var de_SetTypeConfigurationOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_CAonf] != null) { - contents[_CAonf] = (0, import_smithy_client.expectString)(output[_CAonf]); - } - return contents; -}, "de_SetTypeConfigurationOutput"); -var de_SetTypeDefaultVersionOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - return contents; -}, "de_SetTypeDefaultVersionOutput"); -var de_Stack = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_SI] != null) { - contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]); - } - if (output[_SN] != null) { - contents[_SN] = (0, import_smithy_client.expectString)(output[_SN]); - } - if (output[_CSIh] != null) { - contents[_CSIh] = (0, import_smithy_client.expectString)(output[_CSIh]); - } - if (output[_D] != null) { - contents[_D] = (0, import_smithy_client.expectString)(output[_D]); - } - if (output.Parameters === "") { - contents[_P] = []; - } else if (output[_P] != null && output[_P][_m] != null) { - contents[_P] = de_Parameters((0, import_smithy_client.getArrayIfSingleItem)(output[_P][_m]), context); - } - if (output[_CTr] != null) { - contents[_CTr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CTr])); - } - if (output[_DTel] != null) { - contents[_DTel] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_DTel])); - } - if (output[_LUT] != null) { - contents[_LUT] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LUT])); - } - if (output[_RC] != null) { - contents[_RC] = de_RollbackConfiguration(output[_RC], context); - } - if (output[_SSta] != null) { - contents[_SSta] = (0, import_smithy_client.expectString)(output[_SSta]); - } - if (output[_SSR] != null) { - contents[_SSR] = (0, import_smithy_client.expectString)(output[_SSR]); - } - if (output[_DR] != null) { - contents[_DR] = (0, import_smithy_client.parseBoolean)(output[_DR]); - } - if (output.NotificationARNs === "") { - contents[_NARN] = []; - } else if (output[_NARN] != null && output[_NARN][_m] != null) { - contents[_NARN] = de_NotificationARNs((0, import_smithy_client.getArrayIfSingleItem)(output[_NARN][_m]), context); - } - if (output[_TIM] != null) { - contents[_TIM] = (0, import_smithy_client.strictParseInt32)(output[_TIM]); - } - if (output.Capabilities === "") { - contents[_C] = []; - } else if (output[_C] != null && output[_C][_m] != null) { - contents[_C] = de_Capabilities((0, import_smithy_client.getArrayIfSingleItem)(output[_C][_m]), context); - } - if (output.Outputs === "") { - contents[_O] = []; - } else if (output[_O] != null && output[_O][_m] != null) { - contents[_O] = de_Outputs((0, import_smithy_client.getArrayIfSingleItem)(output[_O][_m]), context); - } - if (output[_RARN] != null) { - contents[_RARN] = (0, import_smithy_client.expectString)(output[_RARN]); - } - if (output.Tags === "") { - contents[_Ta] = []; - } else if (output[_Ta] != null && output[_Ta][_m] != null) { - contents[_Ta] = de_Tags((0, import_smithy_client.getArrayIfSingleItem)(output[_Ta][_m]), context); - } - if (output[_ETP] != null) { - contents[_ETP] = (0, import_smithy_client.parseBoolean)(output[_ETP]); - } - if (output[_PIa] != null) { - contents[_PIa] = (0, import_smithy_client.expectString)(output[_PIa]); - } - if (output[_RIo] != null) { - contents[_RIo] = (0, import_smithy_client.expectString)(output[_RIo]); - } - if (output[_DI] != null) { - contents[_DI] = de_StackDriftInformation(output[_DI], context); - } - if (output[_REOC] != null) { - contents[_REOC] = (0, import_smithy_client.parseBoolean)(output[_REOC]); - } - if (output[_DM] != null) { - contents[_DM] = (0, import_smithy_client.expectString)(output[_DM]); - } - if (output[_DSeta] != null) { - contents[_DSeta] = (0, import_smithy_client.expectString)(output[_DSeta]); - } - return contents; -}, "de_Stack"); -var de_StackDriftInformation = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_SDS] != null) { - contents[_SDS] = (0, import_smithy_client.expectString)(output[_SDS]); - } - if (output[_LCT] != null) { - contents[_LCT] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LCT])); - } - return contents; -}, "de_StackDriftInformation"); -var de_StackDriftInformationSummary = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_SDS] != null) { - contents[_SDS] = (0, import_smithy_client.expectString)(output[_SDS]); - } - if (output[_LCT] != null) { - contents[_LCT] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LCT])); - } - return contents; -}, "de_StackDriftInformationSummary"); -var de_StackEvent = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_SI] != null) { - contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]); - } - if (output[_EI] != null) { - contents[_EI] = (0, import_smithy_client.expectString)(output[_EI]); - } - if (output[_SN] != null) { - contents[_SN] = (0, import_smithy_client.expectString)(output[_SN]); - } - if (output[_LRI] != null) { - contents[_LRI] = (0, import_smithy_client.expectString)(output[_LRI]); - } - if (output[_PRI] != null) { - contents[_PRI] = (0, import_smithy_client.expectString)(output[_PRI]); - } - if (output[_RTes] != null) { - contents[_RTes] = (0, import_smithy_client.expectString)(output[_RTes]); - } - if (output[_Ti] != null) { - contents[_Ti] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_Ti])); - } - if (output[_RSeso] != null) { - contents[_RSeso] = (0, import_smithy_client.expectString)(output[_RSeso]); - } - if (output[_RSR] != null) { - contents[_RSR] = (0, import_smithy_client.expectString)(output[_RSR]); - } - if (output[_RPe] != null) { - contents[_RPe] = (0, import_smithy_client.expectString)(output[_RPe]); - } - if (output[_CRT] != null) { - contents[_CRT] = (0, import_smithy_client.expectString)(output[_CRT]); - } - if (output[_HT] != null) { - contents[_HT] = (0, import_smithy_client.expectString)(output[_HT]); - } - if (output[_HS] != null) { - contents[_HS] = (0, import_smithy_client.expectString)(output[_HS]); - } - if (output[_HSR] != null) { - contents[_HSR] = (0, import_smithy_client.expectString)(output[_HSR]); - } - if (output[_HIP] != null) { - contents[_HIP] = (0, import_smithy_client.expectString)(output[_HIP]); - } - if (output[_HFM] != null) { - contents[_HFM] = (0, import_smithy_client.expectString)(output[_HFM]); - } - if (output[_DSeta] != null) { - contents[_DSeta] = (0, import_smithy_client.expectString)(output[_DSeta]); - } - return contents; -}, "de_StackEvent"); -var de_StackEvents = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return de_StackEvent(entry, context); - }); -}, "de_StackEvents"); -var de_StackInstance = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_SSI] != null) { - contents[_SSI] = (0, import_smithy_client.expectString)(output[_SSI]); - } - if (output[_Reg] != null) { - contents[_Reg] = (0, import_smithy_client.expectString)(output[_Reg]); - } - if (output[_Acc] != null) { - contents[_Acc] = (0, import_smithy_client.expectString)(output[_Acc]); - } - if (output[_SI] != null) { - contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]); - } - if (output.ParameterOverrides === "") { - contents[_PO] = []; - } else if (output[_PO] != null && output[_PO][_m] != null) { - contents[_PO] = de_Parameters((0, import_smithy_client.getArrayIfSingleItem)(output[_PO][_m]), context); - } - if (output[_S] != null) { - contents[_S] = (0, import_smithy_client.expectString)(output[_S]); - } - if (output[_SIS] != null) { - contents[_SIS] = de_StackInstanceComprehensiveStatus(output[_SIS], context); - } - if (output[_SRt] != null) { - contents[_SRt] = (0, import_smithy_client.expectString)(output[_SRt]); - } - if (output[_OUIr] != null) { - contents[_OUIr] = (0, import_smithy_client.expectString)(output[_OUIr]); - } - if (output[_DSr] != null) { - contents[_DSr] = (0, import_smithy_client.expectString)(output[_DSr]); - } - if (output[_LDCT] != null) { - contents[_LDCT] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LDCT])); - } - if (output[_LOI] != null) { - contents[_LOI] = (0, import_smithy_client.expectString)(output[_LOI]); - } - return contents; -}, "de_StackInstance"); -var de_StackInstanceComprehensiveStatus = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_DSeta] != null) { - contents[_DSeta] = (0, import_smithy_client.expectString)(output[_DSeta]); - } - return contents; -}, "de_StackInstanceComprehensiveStatus"); -var de_StackInstanceNotFoundException = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_M] != null) { - contents[_M] = (0, import_smithy_client.expectString)(output[_M]); - } - return contents; -}, "de_StackInstanceNotFoundException"); -var de_StackInstanceResourceDriftsSummaries = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return de_StackInstanceResourceDriftsSummary(entry, context); - }); -}, "de_StackInstanceResourceDriftsSummaries"); -var de_StackInstanceResourceDriftsSummary = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_SI] != null) { - contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]); - } - if (output[_LRI] != null) { - contents[_LRI] = (0, import_smithy_client.expectString)(output[_LRI]); - } - if (output[_PRI] != null) { - contents[_PRI] = (0, import_smithy_client.expectString)(output[_PRI]); - } - if (output.PhysicalResourceIdContext === "") { - contents[_PRIC] = []; - } else if (output[_PRIC] != null && output[_PRIC][_m] != null) { - contents[_PRIC] = de_PhysicalResourceIdContext((0, import_smithy_client.getArrayIfSingleItem)(output[_PRIC][_m]), context); - } - if (output[_RTes] != null) { - contents[_RTes] = (0, import_smithy_client.expectString)(output[_RTes]); - } - if (output.PropertyDifferences === "") { - contents[_PD] = []; - } else if (output[_PD] != null && output[_PD][_m] != null) { - contents[_PD] = de_PropertyDifferences((0, import_smithy_client.getArrayIfSingleItem)(output[_PD][_m]), context); - } - if (output[_SRDS] != null) { - contents[_SRDS] = (0, import_smithy_client.expectString)(output[_SRDS]); - } - if (output[_Ti] != null) { - contents[_Ti] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_Ti])); - } - return contents; -}, "de_StackInstanceResourceDriftsSummary"); -var de_StackInstanceSummaries = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return de_StackInstanceSummary(entry, context); - }); -}, "de_StackInstanceSummaries"); -var de_StackInstanceSummary = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_SSI] != null) { - contents[_SSI] = (0, import_smithy_client.expectString)(output[_SSI]); - } - if (output[_Reg] != null) { - contents[_Reg] = (0, import_smithy_client.expectString)(output[_Reg]); - } - if (output[_Acc] != null) { - contents[_Acc] = (0, import_smithy_client.expectString)(output[_Acc]); - } - if (output[_SI] != null) { - contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]); - } - if (output[_S] != null) { - contents[_S] = (0, import_smithy_client.expectString)(output[_S]); - } - if (output[_SRt] != null) { - contents[_SRt] = (0, import_smithy_client.expectString)(output[_SRt]); - } - if (output[_SIS] != null) { - contents[_SIS] = de_StackInstanceComprehensiveStatus(output[_SIS], context); - } - if (output[_OUIr] != null) { - contents[_OUIr] = (0, import_smithy_client.expectString)(output[_OUIr]); - } - if (output[_DSr] != null) { - contents[_DSr] = (0, import_smithy_client.expectString)(output[_DSr]); - } - if (output[_LDCT] != null) { - contents[_LDCT] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LDCT])); - } - if (output[_LOI] != null) { - contents[_LOI] = (0, import_smithy_client.expectString)(output[_LOI]); - } - return contents; -}, "de_StackInstanceSummary"); -var de_StackNotFoundException = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_M] != null) { - contents[_M] = (0, import_smithy_client.expectString)(output[_M]); - } - return contents; -}, "de_StackNotFoundException"); -var de_StackResource = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_SN] != null) { - contents[_SN] = (0, import_smithy_client.expectString)(output[_SN]); - } - if (output[_SI] != null) { - contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]); - } - if (output[_LRI] != null) { - contents[_LRI] = (0, import_smithy_client.expectString)(output[_LRI]); - } - if (output[_PRI] != null) { - contents[_PRI] = (0, import_smithy_client.expectString)(output[_PRI]); - } - if (output[_RTes] != null) { - contents[_RTes] = (0, import_smithy_client.expectString)(output[_RTes]); - } - if (output[_Ti] != null) { - contents[_Ti] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_Ti])); - } - if (output[_RSeso] != null) { - contents[_RSeso] = (0, import_smithy_client.expectString)(output[_RSeso]); - } - if (output[_RSR] != null) { - contents[_RSR] = (0, import_smithy_client.expectString)(output[_RSR]); - } - if (output[_D] != null) { - contents[_D] = (0, import_smithy_client.expectString)(output[_D]); - } - if (output[_DI] != null) { - contents[_DI] = de_StackResourceDriftInformation(output[_DI], context); - } - if (output[_MI] != null) { - contents[_MI] = de_ModuleInfo(output[_MI], context); - } - return contents; -}, "de_StackResource"); -var de_StackResourceDetail = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_SN] != null) { - contents[_SN] = (0, import_smithy_client.expectString)(output[_SN]); - } - if (output[_SI] != null) { - contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]); - } - if (output[_LRI] != null) { - contents[_LRI] = (0, import_smithy_client.expectString)(output[_LRI]); - } - if (output[_PRI] != null) { - contents[_PRI] = (0, import_smithy_client.expectString)(output[_PRI]); - } - if (output[_RTes] != null) { - contents[_RTes] = (0, import_smithy_client.expectString)(output[_RTes]); - } - if (output[_LUTa] != null) { - contents[_LUTa] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LUTa])); - } - if (output[_RSeso] != null) { - contents[_RSeso] = (0, import_smithy_client.expectString)(output[_RSeso]); - } - if (output[_RSR] != null) { - contents[_RSR] = (0, import_smithy_client.expectString)(output[_RSR]); - } - if (output[_D] != null) { - contents[_D] = (0, import_smithy_client.expectString)(output[_D]); - } - if (output[_Me] != null) { - contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]); - } - if (output[_DI] != null) { - contents[_DI] = de_StackResourceDriftInformation(output[_DI], context); - } - if (output[_MI] != null) { - contents[_MI] = de_ModuleInfo(output[_MI], context); - } - return contents; -}, "de_StackResourceDetail"); -var de_StackResourceDrift = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_SI] != null) { - contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]); - } - if (output[_LRI] != null) { - contents[_LRI] = (0, import_smithy_client.expectString)(output[_LRI]); - } - if (output[_PRI] != null) { - contents[_PRI] = (0, import_smithy_client.expectString)(output[_PRI]); - } - if (output.PhysicalResourceIdContext === "") { - contents[_PRIC] = []; - } else if (output[_PRIC] != null && output[_PRIC][_m] != null) { - contents[_PRIC] = de_PhysicalResourceIdContext((0, import_smithy_client.getArrayIfSingleItem)(output[_PRIC][_m]), context); - } - if (output[_RTes] != null) { - contents[_RTes] = (0, import_smithy_client.expectString)(output[_RTes]); - } - if (output[_EP] != null) { - contents[_EP] = (0, import_smithy_client.expectString)(output[_EP]); - } - if (output[_AP] != null) { - contents[_AP] = (0, import_smithy_client.expectString)(output[_AP]); - } - if (output.PropertyDifferences === "") { - contents[_PD] = []; - } else if (output[_PD] != null && output[_PD][_m] != null) { - contents[_PD] = de_PropertyDifferences((0, import_smithy_client.getArrayIfSingleItem)(output[_PD][_m]), context); - } - if (output[_SRDS] != null) { - contents[_SRDS] = (0, import_smithy_client.expectString)(output[_SRDS]); - } - if (output[_Ti] != null) { - contents[_Ti] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_Ti])); - } - if (output[_MI] != null) { - contents[_MI] = de_ModuleInfo(output[_MI], context); - } - return contents; -}, "de_StackResourceDrift"); -var de_StackResourceDriftInformation = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_SRDS] != null) { - contents[_SRDS] = (0, import_smithy_client.expectString)(output[_SRDS]); - } - if (output[_LCT] != null) { - contents[_LCT] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LCT])); - } - return contents; -}, "de_StackResourceDriftInformation"); -var de_StackResourceDriftInformationSummary = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_SRDS] != null) { - contents[_SRDS] = (0, import_smithy_client.expectString)(output[_SRDS]); - } - if (output[_LCT] != null) { - contents[_LCT] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LCT])); - } - return contents; -}, "de_StackResourceDriftInformationSummary"); -var de_StackResourceDrifts = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return de_StackResourceDrift(entry, context); - }); -}, "de_StackResourceDrifts"); -var de_StackResources = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return de_StackResource(entry, context); - }); -}, "de_StackResources"); -var de_StackResourceSummaries = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return de_StackResourceSummary(entry, context); - }); -}, "de_StackResourceSummaries"); -var de_StackResourceSummary = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_LRI] != null) { - contents[_LRI] = (0, import_smithy_client.expectString)(output[_LRI]); - } - if (output[_PRI] != null) { - contents[_PRI] = (0, import_smithy_client.expectString)(output[_PRI]); - } - if (output[_RTes] != null) { - contents[_RTes] = (0, import_smithy_client.expectString)(output[_RTes]); - } - if (output[_LUTa] != null) { - contents[_LUTa] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LUTa])); - } - if (output[_RSeso] != null) { - contents[_RSeso] = (0, import_smithy_client.expectString)(output[_RSeso]); - } - if (output[_RSR] != null) { - contents[_RSR] = (0, import_smithy_client.expectString)(output[_RSR]); - } - if (output[_DI] != null) { - contents[_DI] = de_StackResourceDriftInformationSummary(output[_DI], context); - } - if (output[_MI] != null) { - contents[_MI] = de_ModuleInfo(output[_MI], context); - } - return contents; -}, "de_StackResourceSummary"); -var de_Stacks = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return de_Stack(entry, context); - }); -}, "de_Stacks"); -var de_StackSet = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_SSN] != null) { - contents[_SSN] = (0, import_smithy_client.expectString)(output[_SSN]); - } - if (output[_SSI] != null) { - contents[_SSI] = (0, import_smithy_client.expectString)(output[_SSI]); - } - if (output[_D] != null) { - contents[_D] = (0, import_smithy_client.expectString)(output[_D]); - } - if (output[_S] != null) { - contents[_S] = (0, import_smithy_client.expectString)(output[_S]); - } - if (output[_TB] != null) { - contents[_TB] = (0, import_smithy_client.expectString)(output[_TB]); - } - if (output.Parameters === "") { - contents[_P] = []; - } else if (output[_P] != null && output[_P][_m] != null) { - contents[_P] = de_Parameters((0, import_smithy_client.getArrayIfSingleItem)(output[_P][_m]), context); - } - if (output.Capabilities === "") { - contents[_C] = []; - } else if (output[_C] != null && output[_C][_m] != null) { - contents[_C] = de_Capabilities((0, import_smithy_client.getArrayIfSingleItem)(output[_C][_m]), context); - } - if (output.Tags === "") { - contents[_Ta] = []; - } else if (output[_Ta] != null && output[_Ta][_m] != null) { - contents[_Ta] = de_Tags((0, import_smithy_client.getArrayIfSingleItem)(output[_Ta][_m]), context); - } - if (output[_SSARN] != null) { - contents[_SSARN] = (0, import_smithy_client.expectString)(output[_SSARN]); - } - if (output[_ARARN] != null) { - contents[_ARARN] = (0, import_smithy_client.expectString)(output[_ARARN]); - } - if (output[_ERN] != null) { - contents[_ERN] = (0, import_smithy_client.expectString)(output[_ERN]); - } - if (output[_SSDDD] != null) { - contents[_SSDDD] = de_StackSetDriftDetectionDetails(output[_SSDDD], context); - } - if (output[_AD] != null) { - contents[_AD] = de_AutoDeployment(output[_AD], context); - } - if (output[_PM] != null) { - contents[_PM] = (0, import_smithy_client.expectString)(output[_PM]); - } - if (output.OrganizationalUnitIds === "") { - contents[_OUI] = []; - } else if (output[_OUI] != null && output[_OUI][_m] != null) { - contents[_OUI] = de_OrganizationalUnitIdList((0, import_smithy_client.getArrayIfSingleItem)(output[_OUI][_m]), context); - } - if (output[_ME] != null) { - contents[_ME] = de_ManagedExecution(output[_ME], context); - } - if (output.Regions === "") { - contents[_Re] = []; - } else if (output[_Re] != null && output[_Re][_m] != null) { - contents[_Re] = de_RegionList((0, import_smithy_client.getArrayIfSingleItem)(output[_Re][_m]), context); - } - return contents; -}, "de_StackSet"); -var de_StackSetAutoDeploymentTargetSummaries = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return de_StackSetAutoDeploymentTargetSummary(entry, context); - }); -}, "de_StackSetAutoDeploymentTargetSummaries"); -var de_StackSetAutoDeploymentTargetSummary = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_OUIr] != null) { - contents[_OUIr] = (0, import_smithy_client.expectString)(output[_OUIr]); - } - if (output.Regions === "") { - contents[_Re] = []; - } else if (output[_Re] != null && output[_Re][_m] != null) { - contents[_Re] = de_RegionList((0, import_smithy_client.getArrayIfSingleItem)(output[_Re][_m]), context); - } - return contents; -}, "de_StackSetAutoDeploymentTargetSummary"); -var de_StackSetDriftDetectionDetails = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_DSr] != null) { - contents[_DSr] = (0, import_smithy_client.expectString)(output[_DSr]); - } - if (output[_DDS] != null) { - contents[_DDS] = (0, import_smithy_client.expectString)(output[_DDS]); - } - if (output[_LDCT] != null) { - contents[_LDCT] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LDCT])); - } - if (output[_TSIC] != null) { - contents[_TSIC] = (0, import_smithy_client.strictParseInt32)(output[_TSIC]); - } - if (output[_DSIC] != null) { - contents[_DSIC] = (0, import_smithy_client.strictParseInt32)(output[_DSIC]); - } - if (output[_ISSIC] != null) { - contents[_ISSIC] = (0, import_smithy_client.strictParseInt32)(output[_ISSIC]); - } - if (output[_IPSIC] != null) { - contents[_IPSIC] = (0, import_smithy_client.strictParseInt32)(output[_IPSIC]); - } - if (output[_FSIC] != null) { - contents[_FSIC] = (0, import_smithy_client.strictParseInt32)(output[_FSIC]); - } - return contents; -}, "de_StackSetDriftDetectionDetails"); -var de_StackSetNotEmptyException = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_M] != null) { - contents[_M] = (0, import_smithy_client.expectString)(output[_M]); - } - return contents; -}, "de_StackSetNotEmptyException"); -var de_StackSetNotFoundException = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_M] != null) { - contents[_M] = (0, import_smithy_client.expectString)(output[_M]); - } - return contents; -}, "de_StackSetNotFoundException"); -var de_StackSetOperation = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_OI] != null) { - contents[_OI] = (0, import_smithy_client.expectString)(output[_OI]); - } - if (output[_SSI] != null) { - contents[_SSI] = (0, import_smithy_client.expectString)(output[_SSI]); - } - if (output[_A] != null) { - contents[_A] = (0, import_smithy_client.expectString)(output[_A]); - } - if (output[_S] != null) { - contents[_S] = (0, import_smithy_client.expectString)(output[_S]); - } - if (output[_OP] != null) { - contents[_OP] = de_StackSetOperationPreferences(output[_OP], context); - } - if (output[_RSe] != null) { - contents[_RSe] = (0, import_smithy_client.parseBoolean)(output[_RSe]); - } - if (output[_ARARN] != null) { - contents[_ARARN] = (0, import_smithy_client.expectString)(output[_ARARN]); - } - if (output[_ERN] != null) { - contents[_ERN] = (0, import_smithy_client.expectString)(output[_ERN]); - } - if (output[_CTre] != null) { - contents[_CTre] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CTre])); - } - if (output[_ETn] != null) { - contents[_ETn] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_ETn])); - } - if (output[_DTep] != null) { - contents[_DTep] = de_DeploymentTargets(output[_DTep], context); - } - if (output[_SSDDD] != null) { - contents[_SSDDD] = de_StackSetDriftDetectionDetails(output[_SSDDD], context); - } - if (output[_SRt] != null) { - contents[_SRt] = (0, import_smithy_client.expectString)(output[_SRt]); - } - if (output[_SD] != null) { - contents[_SD] = de_StackSetOperationStatusDetails(output[_SD], context); - } - return contents; -}, "de_StackSetOperation"); -var de_StackSetOperationPreferences = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_RCT] != null) { - contents[_RCT] = (0, import_smithy_client.expectString)(output[_RCT]); - } - if (output.RegionOrder === "") { - contents[_RO] = []; - } else if (output[_RO] != null && output[_RO][_m] != null) { - contents[_RO] = de_RegionList((0, import_smithy_client.getArrayIfSingleItem)(output[_RO][_m]), context); - } - if (output[_FTC] != null) { - contents[_FTC] = (0, import_smithy_client.strictParseInt32)(output[_FTC]); - } - if (output[_FTP] != null) { - contents[_FTP] = (0, import_smithy_client.strictParseInt32)(output[_FTP]); - } - if (output[_MCC] != null) { - contents[_MCC] = (0, import_smithy_client.strictParseInt32)(output[_MCC]); - } - if (output[_MCP] != null) { - contents[_MCP] = (0, import_smithy_client.strictParseInt32)(output[_MCP]); - } - if (output[_CM] != null) { - contents[_CM] = (0, import_smithy_client.expectString)(output[_CM]); - } - return contents; -}, "de_StackSetOperationPreferences"); -var de_StackSetOperationResultSummaries = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return de_StackSetOperationResultSummary(entry, context); - }); -}, "de_StackSetOperationResultSummaries"); -var de_StackSetOperationResultSummary = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_Acc] != null) { - contents[_Acc] = (0, import_smithy_client.expectString)(output[_Acc]); - } - if (output[_Reg] != null) { - contents[_Reg] = (0, import_smithy_client.expectString)(output[_Reg]); - } - if (output[_S] != null) { - contents[_S] = (0, import_smithy_client.expectString)(output[_S]); - } - if (output[_SRt] != null) { - contents[_SRt] = (0, import_smithy_client.expectString)(output[_SRt]); - } - if (output[_AGR] != null) { - contents[_AGR] = de_AccountGateResult(output[_AGR], context); - } - if (output[_OUIr] != null) { - contents[_OUIr] = (0, import_smithy_client.expectString)(output[_OUIr]); - } - return contents; -}, "de_StackSetOperationResultSummary"); -var de_StackSetOperationStatusDetails = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_FSIC] != null) { - contents[_FSIC] = (0, import_smithy_client.strictParseInt32)(output[_FSIC]); - } - return contents; -}, "de_StackSetOperationStatusDetails"); -var de_StackSetOperationSummaries = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return de_StackSetOperationSummary(entry, context); - }); -}, "de_StackSetOperationSummaries"); -var de_StackSetOperationSummary = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_OI] != null) { - contents[_OI] = (0, import_smithy_client.expectString)(output[_OI]); - } - if (output[_A] != null) { - contents[_A] = (0, import_smithy_client.expectString)(output[_A]); - } - if (output[_S] != null) { - contents[_S] = (0, import_smithy_client.expectString)(output[_S]); - } - if (output[_CTre] != null) { - contents[_CTre] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CTre])); - } - if (output[_ETn] != null) { - contents[_ETn] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_ETn])); - } - if (output[_SRt] != null) { - contents[_SRt] = (0, import_smithy_client.expectString)(output[_SRt]); - } - if (output[_SD] != null) { - contents[_SD] = de_StackSetOperationStatusDetails(output[_SD], context); - } - if (output[_OP] != null) { - contents[_OP] = de_StackSetOperationPreferences(output[_OP], context); - } - return contents; -}, "de_StackSetOperationSummary"); -var de_StackSetSummaries = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return de_StackSetSummary(entry, context); - }); -}, "de_StackSetSummaries"); -var de_StackSetSummary = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_SSN] != null) { - contents[_SSN] = (0, import_smithy_client.expectString)(output[_SSN]); - } - if (output[_SSI] != null) { - contents[_SSI] = (0, import_smithy_client.expectString)(output[_SSI]); - } - if (output[_D] != null) { - contents[_D] = (0, import_smithy_client.expectString)(output[_D]); - } - if (output[_S] != null) { - contents[_S] = (0, import_smithy_client.expectString)(output[_S]); - } - if (output[_AD] != null) { - contents[_AD] = de_AutoDeployment(output[_AD], context); - } - if (output[_PM] != null) { - contents[_PM] = (0, import_smithy_client.expectString)(output[_PM]); - } - if (output[_DSr] != null) { - contents[_DSr] = (0, import_smithy_client.expectString)(output[_DSr]); - } - if (output[_LDCT] != null) { - contents[_LDCT] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LDCT])); - } - if (output[_ME] != null) { - contents[_ME] = de_ManagedExecution(output[_ME], context); - } - return contents; -}, "de_StackSetSummary"); -var de_StackSummaries = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return de_StackSummary(entry, context); - }); -}, "de_StackSummaries"); -var de_StackSummary = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_SI] != null) { - contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]); - } - if (output[_SN] != null) { - contents[_SN] = (0, import_smithy_client.expectString)(output[_SN]); - } - if (output[_TDe] != null) { - contents[_TDe] = (0, import_smithy_client.expectString)(output[_TDe]); - } - if (output[_CTr] != null) { - contents[_CTr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CTr])); - } - if (output[_LUT] != null) { - contents[_LUT] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LUT])); - } - if (output[_DTel] != null) { - contents[_DTel] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_DTel])); - } - if (output[_SSta] != null) { - contents[_SSta] = (0, import_smithy_client.expectString)(output[_SSta]); - } - if (output[_SSR] != null) { - contents[_SSR] = (0, import_smithy_client.expectString)(output[_SSR]); - } - if (output[_PIa] != null) { - contents[_PIa] = (0, import_smithy_client.expectString)(output[_PIa]); - } - if (output[_RIo] != null) { - contents[_RIo] = (0, import_smithy_client.expectString)(output[_RIo]); - } - if (output[_DI] != null) { - contents[_DI] = de_StackDriftInformationSummary(output[_DI], context); - } - return contents; -}, "de_StackSummary"); -var de_StageList = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return (0, import_smithy_client.expectString)(entry); - }); -}, "de_StageList"); -var de_StaleRequestException = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_M] != null) { - contents[_M] = (0, import_smithy_client.expectString)(output[_M]); - } - return contents; -}, "de_StaleRequestException"); -var de_StartResourceScanOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_RSI] != null) { - contents[_RSI] = (0, import_smithy_client.expectString)(output[_RSI]); - } - return contents; -}, "de_StartResourceScanOutput"); -var de_StopStackSetOperationOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - return contents; -}, "de_StopStackSetOperationOutput"); -var de_SupportedMajorVersions = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return (0, import_smithy_client.strictParseInt32)(entry); - }); -}, "de_SupportedMajorVersions"); -var de_Tag = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_K] != null) { - contents[_K] = (0, import_smithy_client.expectString)(output[_K]); - } - if (output[_Val] != null) { - contents[_Val] = (0, import_smithy_client.expectString)(output[_Val]); - } - return contents; -}, "de_Tag"); -var de_Tags = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return de_Tag(entry, context); - }); -}, "de_Tags"); -var de_TemplateConfiguration = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_DPe] != null) { - contents[_DPe] = (0, import_smithy_client.expectString)(output[_DPe]); - } - if (output[_URP] != null) { - contents[_URP] = (0, import_smithy_client.expectString)(output[_URP]); - } - return contents; -}, "de_TemplateConfiguration"); -var de_TemplateParameter = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_PK] != null) { - contents[_PK] = (0, import_smithy_client.expectString)(output[_PK]); - } - if (output[_DV] != null) { - contents[_DV] = (0, import_smithy_client.expectString)(output[_DV]); - } - if (output[_NE] != null) { - contents[_NE] = (0, import_smithy_client.parseBoolean)(output[_NE]); - } - if (output[_D] != null) { - contents[_D] = (0, import_smithy_client.expectString)(output[_D]); - } - return contents; -}, "de_TemplateParameter"); -var de_TemplateParameters = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return de_TemplateParameter(entry, context); - }); -}, "de_TemplateParameters"); -var de_TemplateProgress = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_RSesou] != null) { - contents[_RSesou] = (0, import_smithy_client.strictParseInt32)(output[_RSesou]); - } - if (output[_RF] != null) { - contents[_RF] = (0, import_smithy_client.strictParseInt32)(output[_RF]); - } - if (output[_RPes] != null) { - contents[_RPes] = (0, import_smithy_client.strictParseInt32)(output[_RPes]); - } - if (output[_RPeso] != null) { - contents[_RPeso] = (0, import_smithy_client.strictParseInt32)(output[_RPeso]); - } - return contents; -}, "de_TemplateProgress"); -var de_TemplateSummaries = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return de_TemplateSummary(entry, context); - }); -}, "de_TemplateSummaries"); -var de_TemplateSummary = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_GTI] != null) { - contents[_GTI] = (0, import_smithy_client.expectString)(output[_GTI]); - } - if (output[_GTN] != null) { - contents[_GTN] = (0, import_smithy_client.expectString)(output[_GTN]); - } - if (output[_S] != null) { - contents[_S] = (0, import_smithy_client.expectString)(output[_S]); - } - if (output[_SRt] != null) { - contents[_SRt] = (0, import_smithy_client.expectString)(output[_SRt]); - } - if (output[_CTr] != null) { - contents[_CTr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CTr])); - } - if (output[_LUT] != null) { - contents[_LUT] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LUT])); - } - if (output[_NOR] != null) { - contents[_NOR] = (0, import_smithy_client.strictParseInt32)(output[_NOR]); - } - return contents; -}, "de_TemplateSummary"); -var de_TestTypeOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_TVA] != null) { - contents[_TVA] = (0, import_smithy_client.expectString)(output[_TVA]); - } - return contents; -}, "de_TestTypeOutput"); -var de_TokenAlreadyExistsException = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_M] != null) { - contents[_M] = (0, import_smithy_client.expectString)(output[_M]); - } - return contents; -}, "de_TokenAlreadyExistsException"); -var de_TransformsList = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return (0, import_smithy_client.expectString)(entry); - }); -}, "de_TransformsList"); -var de_TypeConfigurationDetails = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_Ar] != null) { - contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]); - } - if (output[_Al] != null) { - contents[_Al] = (0, import_smithy_client.expectString)(output[_Al]); - } - if (output[_Co] != null) { - contents[_Co] = (0, import_smithy_client.expectString)(output[_Co]); - } - if (output[_LU] != null) { - contents[_LU] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LU])); - } - if (output[_TA] != null) { - contents[_TA] = (0, import_smithy_client.expectString)(output[_TA]); - } - if (output[_TN] != null) { - contents[_TN] = (0, import_smithy_client.expectString)(output[_TN]); - } - if (output[_IDC] != null) { - contents[_IDC] = (0, import_smithy_client.parseBoolean)(output[_IDC]); - } - return contents; -}, "de_TypeConfigurationDetails"); -var de_TypeConfigurationDetailsList = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return de_TypeConfigurationDetails(entry, context); - }); -}, "de_TypeConfigurationDetailsList"); -var de_TypeConfigurationIdentifier = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_TA] != null) { - contents[_TA] = (0, import_smithy_client.expectString)(output[_TA]); - } - if (output[_TCA] != null) { - contents[_TCA] = (0, import_smithy_client.expectString)(output[_TCA]); - } - if (output[_TCAy] != null) { - contents[_TCAy] = (0, import_smithy_client.expectString)(output[_TCAy]); - } - if (output[_T] != null) { - contents[_T] = (0, import_smithy_client.expectString)(output[_T]); - } - if (output[_TN] != null) { - contents[_TN] = (0, import_smithy_client.expectString)(output[_TN]); - } - return contents; -}, "de_TypeConfigurationIdentifier"); -var de_TypeConfigurationNotFoundException = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_M] != null) { - contents[_M] = (0, import_smithy_client.expectString)(output[_M]); - } - return contents; -}, "de_TypeConfigurationNotFoundException"); -var de_TypeNotFoundException = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_M] != null) { - contents[_M] = (0, import_smithy_client.expectString)(output[_M]); - } - return contents; -}, "de_TypeNotFoundException"); -var de_TypeSummaries = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return de_TypeSummary(entry, context); - }); -}, "de_TypeSummaries"); -var de_TypeSummary = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_T] != null) { - contents[_T] = (0, import_smithy_client.expectString)(output[_T]); - } - if (output[_TN] != null) { - contents[_TN] = (0, import_smithy_client.expectString)(output[_TN]); - } - if (output[_DVI] != null) { - contents[_DVI] = (0, import_smithy_client.expectString)(output[_DVI]); - } - if (output[_TA] != null) { - contents[_TA] = (0, import_smithy_client.expectString)(output[_TA]); - } - if (output[_LU] != null) { - contents[_LU] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LU])); - } - if (output[_D] != null) { - contents[_D] = (0, import_smithy_client.expectString)(output[_D]); - } - if (output[_PI] != null) { - contents[_PI] = (0, import_smithy_client.expectString)(output[_PI]); - } - if (output[_OTN] != null) { - contents[_OTN] = (0, import_smithy_client.expectString)(output[_OTN]); - } - if (output[_PVN] != null) { - contents[_PVN] = (0, import_smithy_client.expectString)(output[_PVN]); - } - if (output[_LPV] != null) { - contents[_LPV] = (0, import_smithy_client.expectString)(output[_LPV]); - } - if (output[_PIu] != null) { - contents[_PIu] = (0, import_smithy_client.expectString)(output[_PIu]); - } - if (output[_PN] != null) { - contents[_PN] = (0, import_smithy_client.expectString)(output[_PN]); - } - if (output[_IA] != null) { - contents[_IA] = (0, import_smithy_client.parseBoolean)(output[_IA]); - } - return contents; -}, "de_TypeSummary"); -var de_TypeVersionSummaries = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return de_TypeVersionSummary(entry, context); - }); -}, "de_TypeVersionSummaries"); -var de_TypeVersionSummary = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_T] != null) { - contents[_T] = (0, import_smithy_client.expectString)(output[_T]); - } - if (output[_TN] != null) { - contents[_TN] = (0, import_smithy_client.expectString)(output[_TN]); - } - if (output[_VI] != null) { - contents[_VI] = (0, import_smithy_client.expectString)(output[_VI]); - } - if (output[_IDV] != null) { - contents[_IDV] = (0, import_smithy_client.parseBoolean)(output[_IDV]); - } - if (output[_Ar] != null) { - contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]); - } - if (output[_TCi] != null) { - contents[_TCi] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_TCi])); - } - if (output[_D] != null) { - contents[_D] = (0, import_smithy_client.expectString)(output[_D]); - } - if (output[_PVN] != null) { - contents[_PVN] = (0, import_smithy_client.expectString)(output[_PVN]); - } - return contents; -}, "de_TypeVersionSummary"); -var de_UnprocessedTypeConfigurations = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return de_TypeConfigurationIdentifier(entry, context); - }); -}, "de_UnprocessedTypeConfigurations"); -var de_UpdateGeneratedTemplateOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_GTI] != null) { - contents[_GTI] = (0, import_smithy_client.expectString)(output[_GTI]); - } - return contents; -}, "de_UpdateGeneratedTemplateOutput"); -var de_UpdateStackInstancesOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_OI] != null) { - contents[_OI] = (0, import_smithy_client.expectString)(output[_OI]); - } - return contents; -}, "de_UpdateStackInstancesOutput"); -var de_UpdateStackOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_SI] != null) { - contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]); - } - return contents; -}, "de_UpdateStackOutput"); -var de_UpdateStackSetOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_OI] != null) { - contents[_OI] = (0, import_smithy_client.expectString)(output[_OI]); - } - return contents; -}, "de_UpdateStackSetOutput"); -var de_UpdateTerminationProtectionOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_SI] != null) { - contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]); - } - return contents; -}, "de_UpdateTerminationProtectionOutput"); -var de_ValidateTemplateOutput = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output.Parameters === "") { - contents[_P] = []; - } else if (output[_P] != null && output[_P][_m] != null) { - contents[_P] = de_TemplateParameters((0, import_smithy_client.getArrayIfSingleItem)(output[_P][_m]), context); - } - if (output[_D] != null) { - contents[_D] = (0, import_smithy_client.expectString)(output[_D]); - } - if (output.Capabilities === "") { - contents[_C] = []; - } else if (output[_C] != null && output[_C][_m] != null) { - contents[_C] = de_Capabilities((0, import_smithy_client.getArrayIfSingleItem)(output[_C][_m]), context); - } - if (output[_CR] != null) { - contents[_CR] = (0, import_smithy_client.expectString)(output[_CR]); - } - if (output.DeclaredTransforms === "") { - contents[_DTec] = []; - } else if (output[_DTec] != null && output[_DTec][_m] != null) { - contents[_DTec] = de_TransformsList((0, import_smithy_client.getArrayIfSingleItem)(output[_DTec][_m]), context); - } - return contents; -}, "de_ValidateTemplateOutput"); -var de_WarningDetail = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_T] != null) { - contents[_T] = (0, import_smithy_client.expectString)(output[_T]); - } - if (output.Properties === "") { - contents[_Pro] = []; - } else if (output[_Pro] != null && output[_Pro][_m] != null) { - contents[_Pro] = de_WarningProperties((0, import_smithy_client.getArrayIfSingleItem)(output[_Pro][_m]), context); - } - return contents; -}, "de_WarningDetail"); -var de_WarningDetails = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return de_WarningDetail(entry, context); - }); -}, "de_WarningDetails"); -var de_WarningProperties = /* @__PURE__ */ __name((output, context) => { - return (output || []).filter((e) => e != null).map((entry) => { - return de_WarningProperty(entry, context); - }); -}, "de_WarningProperties"); -var de_WarningProperty = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_PPr] != null) { - contents[_PPr] = (0, import_smithy_client.expectString)(output[_PPr]); - } - if (output[_Req] != null) { - contents[_Req] = (0, import_smithy_client.parseBoolean)(output[_Req]); - } - if (output[_D] != null) { - contents[_D] = (0, import_smithy_client.expectString)(output[_D]); - } - return contents; -}, "de_WarningProperty"); -var de_Warnings = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output.UnrecognizedResourceTypes === "") { - contents[_URT] = []; - } else if (output[_URT] != null && output[_URT][_m] != null) { - contents[_URT] = de_ResourceTypes((0, import_smithy_client.getArrayIfSingleItem)(output[_URT][_m]), context); - } - return contents; -}, "de_Warnings"); -var deserializeMetadata = /* @__PURE__ */ __name((output) => ({ - httpStatusCode: output.statusCode, - requestId: output.headers["x-amzn-requestid"] ?? output.headers["x-amzn-request-id"] ?? output.headers["x-amz-request-id"], - extendedRequestId: output.headers["x-amz-id-2"], - cfId: output.headers["x-amz-cf-id"] -}), "deserializeMetadata"); -var throwDefaultError = (0, import_smithy_client.withBaseException)(CloudFormationServiceException); -var buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => { - const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); - const contents = { - protocol, - hostname, - port, - method: "POST", - path: basePath.endsWith("/") ? basePath.slice(0, -1) + path : basePath + path, - headers - }; - if (resolvedHostname !== void 0) { - contents.hostname = resolvedHostname; - } - if (body !== void 0) { - contents.body = body; - } - return new import_protocol_http.HttpRequest(contents); -}, "buildHttpRpcRequest"); -var SHARED_HEADERS = { - "content-type": "application/x-www-form-urlencoded" -}; -var _ = "2010-05-15"; -var _A = "Action"; -var _AC = "AfterContext"; -var _ACT = "AttributeChangeType"; -var _AD = "AutoDeployment"; -var _AFT = "AccountFilterType"; -var _AGR = "AccountGateResult"; -var _AL = "AccountLimits"; -var _AOA = "ActivateOrganizationsAccess"; -var _AP = "ActualProperties"; -var _AR = "AddResources"; -var _ARARN = "AdministrationRoleARN"; -var _AT = "ActivateType"; -var _ATAC = "AcceptTermsAndConditions"; -var _AU = "AutoUpdate"; -var _AUc = "AccountsUrl"; -var _AV = "AllowedValues"; -var _AVc = "ActualValue"; -var _AVf = "AfterValue"; -var _Ac = "Accounts"; -var _Acc = "Account"; -var _Act = "Active"; -var _Al = "Alias"; -var _Ar = "Arn"; -var _At = "Attribute"; -var _BC = "BeforeContext"; -var _BDTC = "BatchDescribeTypeConfigurations"; -var _BT = "BearerToken"; -var _BV = "BeforeValue"; -var _C = "Capabilities"; -var _CA = "CallAs"; -var _CAo = "ConnectionArn"; -var _CAon = "ConfigurationAlias"; -var _CAonf = "ConfigurationArn"; -var _CCS = "CreateChangeSet"; -var _CE = "CausingEntity"; -var _CGT = "CreateGeneratedTemplate"; -var _CM = "ConcurrencyMode"; -var _COS = "CurrentOperationStatus"; -var _CR = "CapabilitiesReason"; -var _CRT = "ClientRequestToken"; -var _CS = "CreateStack"; -var _CSI = "CreateStackInstances"; -var _CSIh = "ChangeSetId"; -var _CSN = "ChangeSetName"; -var _CSS = "CreateStackSet"; -var _CST = "ChangeSetType"; -var _CSh = "ChangeSource"; -var _CSo = "ConfigurationSchema"; -var _CT = "ClientToken"; -var _CTr = "CreationTime"; -var _CTre = "CreationTimestamp"; -var _CUR = "ContinueUpdateRollback"; -var _CUS = "CancelUpdateStack"; -var _Ca = "Category"; -var _Ch = "Changes"; -var _Co = "Configuration"; -var _D = "Description"; -var _DAL = "DescribeAccountLimits"; -var _DCS = "DeleteChangeSet"; -var _DCSH = "DescribeChangeSetHooks"; -var _DCSe = "DescribeChangeSet"; -var _DDS = "DriftDetectionStatus"; -var _DGT = "DeleteGeneratedTemplate"; -var _DGTe = "DescribeGeneratedTemplate"; -var _DI = "DriftInformation"; -var _DM = "DeletionMode"; -var _DOA = "DeactivateOrganizationsAccess"; -var _DOAe = "DescribeOrganizationsAccess"; -var _DP = "DescribePublisher"; -var _DPe = "DeletionPolicy"; -var _DR = "DisableRollback"; -var _DRS = "DescribeResourceScan"; -var _DS = "DeleteStack"; -var _DSD = "DetectStackDrift"; -var _DSDDS = "DescribeStackDriftDetectionStatus"; -var _DSE = "DescribeStackEvents"; -var _DSI = "DeleteStackInstances"; -var _DSIC = "DriftedStackInstancesCount"; -var _DSIe = "DescribeStackInstance"; -var _DSR = "DescribeStackResource"; -var _DSRC = "DriftedStackResourceCount"; -var _DSRD = "DescribeStackResourceDrifts"; -var _DSRDe = "DetectStackResourceDrift"; -var _DSRe = "DescribeStackResources"; -var _DSRet = "DetectionStatusReason"; -var _DSS = "DeleteStackSet"; -var _DSSD = "DetectStackSetDrift"; -var _DSSO = "DescribeStackSetOperation"; -var _DSSe = "DescribeStackSet"; -var _DSe = "DescribeStacks"; -var _DSep = "DeprecatedStatus"; -var _DSet = "DetectionStatus"; -var _DSeta = "DetailedStatus"; -var _DSr = "DriftStatus"; -var _DT = "DeactivateType"; -var _DTR = "DescribeTypeRegistration"; -var _DTe = "DeregisterType"; -var _DTec = "DeclaredTransforms"; -var _DTel = "DeletionTime"; -var _DTep = "DeploymentTargets"; -var _DTes = "DescribeType"; -var _DTi = "DifferenceType"; -var _DU = "DocumentationUrl"; -var _DV = "DefaultValue"; -var _DVI = "DefaultVersionId"; -var _De = "Details"; -var _E = "Enabled"; -var _EC = "ErrorCode"; -var _ECS = "ExecuteChangeSet"; -var _EI = "EventId"; -var _EM = "ErrorMessage"; -var _EN = "ExportName"; -var _EP = "ExpectedProperties"; -var _ERA = "ExecutionRoleArn"; -var _ERN = "ExecutionRoleName"; -var _ES = "ExecutionStatus"; -var _ESI = "ExportingStackId"; -var _ET = "EndTime"; -var _ETC = "EstimateTemplateCost"; -var _ETP = "EnableTerminationProtection"; -var _ETn = "EndTimestamp"; -var _EV = "ExpectedValue"; -var _Er = "Errors"; -var _Ev = "Evaluation"; -var _Ex = "Exports"; -var _F = "Format"; -var _FM = "FailureMode"; -var _FSIC = "FailedStackInstancesCount"; -var _FTC = "FailureToleranceCount"; -var _FTP = "FailureTolerancePercentage"; -var _Fi = "Filters"; -var _GGT = "GetGeneratedTemplate"; -var _GSP = "GetStackPolicy"; -var _GT = "GetTemplate"; -var _GTI = "GeneratedTemplateId"; -var _GTN = "GeneratedTemplateName"; -var _GTS = "GetTemplateSummary"; -var _H = "Hooks"; -var _HFM = "HookFailureMode"; -var _HIC = "HookInvocationCount"; -var _HIP = "HookInvocationPoint"; -var _HS = "HookStatus"; -var _HSR = "HookStatusReason"; -var _HT = "HookType"; -var _I = "Id"; -var _IA = "IsActivated"; -var _IDC = "IsDefaultConfiguration"; -var _IDV = "IsDefaultVersion"; -var _IER = "ImportExistingResources"; -var _INS = "IncludeNestedStacks"; -var _IP = "InvocationPoint"; -var _IPSIC = "InProgressStackInstancesCount"; -var _IPV = "IncludePropertyValues"; -var _IPd = "IdentityProvider"; -var _ISSIC = "InSyncStackInstancesCount"; -var _ISTSS = "ImportStacksToStackSet"; -var _Im = "Imports"; -var _K = "Key"; -var _LC = "LoggingConfig"; -var _LCS = "ListChangeSets"; -var _LCT = "LastCheckTimestamp"; -var _LDB = "LogDeliveryBucket"; -var _LDCT = "LastDriftCheckTimestamp"; -var _LE = "ListExports"; -var _LGN = "LogGroupName"; -var _LGT = "ListGeneratedTemplates"; -var _LI = "ListImports"; -var _LIH = "LogicalIdHierarchy"; -var _LOI = "LastOperationId"; -var _LPV = "LatestPublicVersion"; -var _LRA = "LogRoleArn"; -var _LRI = "LogicalResourceId"; -var _LRIo = "LogicalResourceIds"; -var _LRS = "ListResourceScans"; -var _LRSR = "ListResourceScanResources"; -var _LRSRR = "ListResourceScanRelatedResources"; -var _LS = "ListStacks"; -var _LSI = "ListStackInstances"; -var _LSIRD = "ListStackInstanceResourceDrifts"; -var _LSR = "ListStackResources"; -var _LSS = "ListStackSets"; -var _LSSADT = "ListStackSetAutoDeploymentTargets"; -var _LSSO = "ListStackSetOperations"; -var _LSSOR = "ListStackSetOperationResults"; -var _LT = "ListTypes"; -var _LTR = "ListTypeRegistrations"; -var _LTV = "ListTypeVersions"; -var _LU = "LastUpdated"; -var _LUT = "LastUpdatedTime"; -var _LUTa = "LastUpdatedTimestamp"; -var _M = "Message"; -var _MBS = "ManagedByStack"; -var _MCC = "MaxConcurrentCount"; -var _MCP = "MaxConcurrentPercentage"; -var _ME = "ManagedExecution"; -var _MI = "ModuleInfo"; -var _MR = "MaxResults"; -var _MTIM = "MonitoringTimeInMinutes"; -var _MV = "MajorVersion"; -var _Me = "Metadata"; -var _N = "Name"; -var _NARN = "NotificationARNs"; -var _NE = "NoEcho"; -var _NGTN = "NewGeneratedTemplateName"; -var _NOR = "NumberOfResources"; -var _NT = "NextToken"; -var _O = "Outputs"; -var _OF = "OnFailure"; -var _OI = "OperationId"; -var _OK = "OutputKey"; -var _OP = "OperationPreferences"; -var _OS = "OperationStatus"; -var _OSF = "OnStackFailure"; -var _OTA = "OriginalTypeArn"; -var _OTN = "OriginalTypeName"; -var _OUI = "OrganizationalUnitIds"; -var _OUIr = "OrganizationalUnitId"; -var _OV = "OutputValue"; -var _P = "Parameters"; -var _PA = "PolicyAction"; -var _PC = "PercentageCompleted"; -var _PCSI = "ParentChangeSetId"; -var _PCa = "ParameterConstraints"; -var _PD = "PropertyDifferences"; -var _PI = "PublisherId"; -var _PIa = "ParentId"; -var _PIu = "PublisherIdentity"; -var _PK = "ParameterKey"; -var _PM = "PermissionModel"; -var _PN = "PublisherName"; -var _PO = "ParameterOverrides"; -var _PP = "PublisherProfile"; -var _PPr = "PropertyPath"; -var _PRI = "PhysicalResourceId"; -var _PRIC = "PhysicalResourceIdContext"; -var _PS = "PublisherStatus"; -var _PSr = "ProgressStatus"; -var _PT = "PublishType"; -var _PTA = "PublicTypeArn"; -var _PTa = "ParameterType"; -var _PTr = "ProvisioningType"; -var _PV = "ParameterValue"; -var _PVN = "PublicVersionNumber"; -var _Pa = "Path"; -var _Pr = "Progress"; -var _Pro = "Properties"; -var _R = "Resources"; -var _RA = "ResourceAction"; -var _RAR = "RefreshAllResources"; -var _RARN = "RoleARN"; -var _RAT = "RequiredActivatedTypes"; -var _RC = "RollbackConfiguration"; -var _RCSI = "RootChangeSetId"; -var _RCT = "RegionConcurrencyType"; -var _RCe = "ResourceChange"; -var _REOC = "RetainExceptOnCreate"; -var _RF = "ResourcesFailed"; -var _RHP = "RecordHandlerProgress"; -var _RI = "ResourceIdentifier"; -var _RIS = "ResourceIdentifierSummaries"; -var _RIe = "ResourceIdentifiers"; -var _RIo = "RootId"; -var _RM = "ResourceModel"; -var _RO = "RegionOrder"; -var _RP = "RegisterPublisher"; -var _RPe = "ResourceProperties"; -var _RPes = "ResourcesProcessing"; -var _RPeso = "ResourcesPending"; -var _RR = "RetainResources"; -var _RRe = "RemoveResources"; -var _RRel = "RelatedResources"; -var _RReq = "RequiresRecreation"; -var _RRes = "ResourcesRead"; -var _RS = "RollbackStack"; -var _RSF = "RegistrationStatusFilter"; -var _RSI = "ResourceScanId"; -var _RSOAR = "RetainStacksOnAccountRemoval"; -var _RSR = "ResourceStatusReason"; -var _RSS = "ResourceScanSummaries"; -var _RSe = "RetainStacks"; -var _RSes = "ResourcesScanned"; -var _RSeso = "ResourceStatus"; -var _RSesou = "ResourcesSucceeded"; -var _RT = "RegisterType"; -var _RTD = "ResourceTargetDetails"; -var _RTI = "ResourcesToImport"; -var _RTL = "RegistrationTokenList"; -var _RTP = "ResourceTypePrefix"; -var _RTS = "ResourcesToSkip"; -var _RTe = "ResourceTypes"; -var _RTeg = "RegistrationToken"; -var _RTes = "ResourceType"; -var _RTo = "RollbackTriggers"; -var _RV = "ResolvedValue"; -var _Re = "Regions"; -var _Reg = "Region"; -var _Rep = "Replacement"; -var _Req = "Required"; -var _S = "Status"; -var _SA = "StagesAvailable"; -var _SD = "StatusDetails"; -var _SDDI = "StackDriftDetectionId"; -var _SDS = "StackDriftStatus"; -var _SE = "StackEvents"; -var _SHP = "SchemaHandlerPackage"; -var _SI = "StackId"; -var _SIA = "StackInstanceAccount"; -var _SIR = "StackInstanceRegion"; -var _SIRDS = "StackInstanceResourceDriftStatuses"; -var _SIS = "StackInstanceStatus"; -var _SIU = "StackIdsUrl"; -var _SIt = "StackIds"; -var _SIta = "StackInstance"; -var _SM = "StatusMessage"; -var _SMV = "SupportedMajorVersions"; -var _SN = "StackName"; -var _SPB = "StackPolicyBody"; -var _SPDUB = "StackPolicyDuringUpdateBody"; -var _SPDUURL = "StackPolicyDuringUpdateURL"; -var _SPURL = "StackPolicyURL"; -var _SR = "SignalResource"; -var _SRD = "StackResourceDrifts"; -var _SRDS = "StackResourceDriftStatus"; -var _SRDSF = "StackResourceDriftStatusFilters"; -var _SRDt = "StackResourceDetail"; -var _SRDta = "StackResourceDrift"; -var _SRS = "StartResourceScan"; -var _SRSt = "StackResourceSummaries"; -var _SRt = "StatusReason"; -var _SRta = "StackResources"; -var _SS = "StackSet"; -var _SSARN = "StackSetARN"; -var _SSDDD = "StackSetDriftDetectionDetails"; -var _SSF = "StackStatusFilter"; -var _SSI = "StackSetId"; -var _SSN = "StackSetName"; -var _SSO = "StackSetOperation"; -var _SSP = "SetStackPolicy"; -var _SSR = "StackStatusReason"; -var _SSSO = "StopStackSetOperation"; -var _SSt = "StackSummaries"; -var _SSta = "StackStatus"; -var _ST = "StartTime"; -var _STC = "SetTypeConfiguration"; -var _STDV = "SetTypeDefaultVersion"; -var _SU = "SourceUrl"; -var _Sc = "Schema"; -var _Sco = "Scope"; -var _St = "Stacks"; -var _Su = "Summaries"; -var _T = "Type"; -var _TA = "TypeArn"; -var _TB = "TemplateBody"; -var _TC = "TemplateConfiguration"; -var _TCA = "TypeConfigurationAlias"; -var _TCAy = "TypeConfigurationArn"; -var _TCI = "TypeConfigurationIdentifiers"; -var _TCIy = "TypeConfigurationIdentifier"; -var _TCVI = "TypeConfigurationVersionId"; -var _TCi = "TimeCreated"; -var _TCy = "TypeConfigurations"; -var _TD = "TargetDetails"; -var _TDe = "TemplateDescription"; -var _TH = "TypeHierarchy"; -var _TIM = "TimeoutInMinutes"; -var _TK = "TagKey"; -var _TN = "TypeName"; -var _TNA = "TypeNameAlias"; -var _TNP = "TypeNamePrefix"; -var _TS = "TemplateStage"; -var _TSC = "TemplateSummaryConfig"; -var _TSIC = "TotalStackInstancesCount"; -var _TSy = "TypeSummaries"; -var _TT = "TestType"; -var _TTS = "TypeTestsStatus"; -var _TTSD = "TypeTestsStatusDescription"; -var _TTa = "TargetType"; -var _TURL = "TemplateURL"; -var _TURTAW = "TreatUnrecognizedResourceTypesAsWarnings"; -var _TV = "TagValue"; -var _TVA = "TypeVersionArn"; -var _TVI = "TypeVersionId"; -var _TVS = "TypeVersionSummaries"; -var _TW = "TotalWarnings"; -var _Ta = "Tags"; -var _Tar = "Target"; -var _Ti = "Timestamp"; -var _U = "Url"; -var _UGT = "UpdateGeneratedTemplate"; -var _UI = "UniqueId"; -var _UPT = "UsePreviousTemplate"; -var _UPV = "UsePreviousValue"; -var _URP = "UpdateReplacePolicy"; -var _URT = "UnrecognizedResourceTypes"; -var _US = "UpdateStack"; -var _USI = "UpdateStackInstances"; -var _USS = "UpdateStackSet"; -var _UTC = "UnprocessedTypeConfigurations"; -var _UTP = "UpdateTerminationProtection"; -var _V = "Version"; -var _VB = "VersionBump"; -var _VI = "VersionId"; -var _VT = "ValidateTemplate"; -var _Va = "Values"; -var _Val = "Value"; -var _Vi = "Visibility"; -var _W = "Warnings"; -var _e = "entry"; -var _m = "member"; -var buildFormUrlencodedString = /* @__PURE__ */ __name((formEntries) => Object.entries(formEntries).map(([key, value]) => (0, import_smithy_client.extendedEncodeURIComponent)(key) + "=" + (0, import_smithy_client.extendedEncodeURIComponent)(value)).join("&"), "buildFormUrlencodedString"); -var loadQueryErrorCode = /* @__PURE__ */ __name((output, data) => { - var _a; - if (((_a = data.Error) == null ? void 0 : _a.Code) !== void 0) { - return data.Error.Code; - } - if (output.statusCode == 404) { - return "NotFound"; - } -}, "loadQueryErrorCode"); + /***/ 5640: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.defaultEndpointResolver = void 0 + const util_endpoints_1 = __nccwpck_require__(13350) + const util_endpoints_2 = __nccwpck_require__(45473) + const ruleset_1 = __nccwpck_require__(58349) + const defaultEndpointResolver = (endpointParams, context = {}) => { + return (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, { + endpointParams: endpointParams, + logger: context.logger + }) + } + exports.defaultEndpointResolver = defaultEndpointResolver + util_endpoints_2.customEndpointFunctions.aws = + util_endpoints_1.awsEndpointFunctions + + /***/ + }, + + /***/ 58349: /***/ (__unused_webpack_module, exports) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.ruleSet = void 0 + const u = 'required', + v = 'fn', + w = 'argv', + x = 'ref' + const a = true, + b = 'isSet', + c = 'booleanEquals', + d = 'error', + e = 'endpoint', + f = 'tree', + g = 'PartitionResult', + h = 'getAttr', + i = { [u]: false, type: 'String' }, + j = { [u]: true, default: false, type: 'Boolean' }, + k = { [x]: 'Endpoint' }, + l = { [v]: c, [w]: [{ [x]: 'UseFIPS' }, true] }, + m = { [v]: c, [w]: [{ [x]: 'UseDualStack' }, true] }, + n = {}, + o = { [v]: h, [w]: [{ [x]: g }, 'supportsFIPS'] }, + p = { [x]: g }, + q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, 'supportsDualStack'] }] }, + r = [l], + s = [m], + t = [{ [x]: 'Region' }] + const _data = { + version: '1.0', + parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, + rules: [ + { + conditions: [{ [v]: b, [w]: [k] }], + rules: [ + { + conditions: r, + error: + 'Invalid Configuration: FIPS and custom endpoint are not supported', + type: d + }, + { + conditions: s, + error: + 'Invalid Configuration: Dualstack and custom endpoint are not supported', + type: d + }, + { endpoint: { url: k, properties: n, headers: n }, type: e } + ], + type: f + }, + { + conditions: [{ [v]: b, [w]: t }], + rules: [ + { + conditions: [{ [v]: 'aws.partition', [w]: t, assign: g }], + rules: [ + { + conditions: [l, m], + rules: [ + { + conditions: [{ [v]: c, [w]: [a, o] }, q], + rules: [ + { + endpoint: { + url: 'https://cloudformation-fips.{Region}.{PartitionResult#dualStackDnsSuffix}', + properties: n, + headers: n + }, + type: e + } + ], + type: f + }, + { + error: + 'FIPS and DualStack are enabled, but this partition does not support one or both', + type: d + } + ], + type: f + }, + { + conditions: r, + rules: [ + { + conditions: [{ [v]: c, [w]: [o, a] }], + rules: [ + { + conditions: [ + { + [v]: 'stringEquals', + [w]: [ + { [v]: h, [w]: [p, 'name'] }, + 'aws-us-gov' + ] + } + ], + endpoint: { + url: 'https://cloudformation.{Region}.amazonaws.com', + properties: n, + headers: n + }, + type: e + }, + { + endpoint: { + url: 'https://cloudformation-fips.{Region}.{PartitionResult#dnsSuffix}', + properties: n, + headers: n + }, + type: e + } + ], + type: f + }, + { + error: + 'FIPS is enabled but this partition does not support FIPS', + type: d + } + ], + type: f + }, + { + conditions: s, + rules: [ + { + conditions: [q], + rules: [ + { + endpoint: { + url: 'https://cloudformation.{Region}.{PartitionResult#dualStackDnsSuffix}', + properties: n, + headers: n + }, + type: e + } + ], + type: f + }, + { + error: + 'DualStack is enabled but this partition does not support DualStack', + type: d + } + ], + type: f + }, + { + endpoint: { + url: 'https://cloudformation.{Region}.{PartitionResult#dnsSuffix}', + properties: n, + headers: n + }, + type: e + } + ], + type: f + } + ], + type: f + }, + { error: 'Invalid Configuration: Missing Region', type: d } + ] + } + exports.ruleSet = _data + + /***/ + }, + + /***/ 15650: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + AccountFilterType: () => AccountFilterType, + AccountGateStatus: () => AccountGateStatus, + ActivateOrganizationsAccessCommand: () => + ActivateOrganizationsAccessCommand, + ActivateTypeCommand: () => ActivateTypeCommand, + AlreadyExistsException: () => AlreadyExistsException, + AttributeChangeType: () => AttributeChangeType, + BatchDescribeTypeConfigurationsCommand: () => + BatchDescribeTypeConfigurationsCommand, + CFNRegistryException: () => CFNRegistryException, + CallAs: () => CallAs, + CancelUpdateStackCommand: () => CancelUpdateStackCommand, + Capability: () => Capability, + Category: () => Category, + ChangeAction: () => ChangeAction, + ChangeSetHooksStatus: () => ChangeSetHooksStatus, + ChangeSetNotFoundException: () => ChangeSetNotFoundException, + ChangeSetStatus: () => ChangeSetStatus, + ChangeSetType: () => ChangeSetType, + ChangeSource: () => ChangeSource, + ChangeType: () => ChangeType, + CloudFormation: () => CloudFormation, + CloudFormationClient: () => CloudFormationClient, + CloudFormationServiceException: () => CloudFormationServiceException, + ConcurrencyMode: () => ConcurrencyMode, + ConcurrentResourcesLimitExceededException: () => + ConcurrentResourcesLimitExceededException, + ContinueUpdateRollbackCommand: () => ContinueUpdateRollbackCommand, + CreateChangeSetCommand: () => CreateChangeSetCommand, + CreateGeneratedTemplateCommand: () => CreateGeneratedTemplateCommand, + CreateStackCommand: () => CreateStackCommand, + CreateStackInstancesCommand: () => CreateStackInstancesCommand, + CreateStackSetCommand: () => CreateStackSetCommand, + CreatedButModifiedException: () => CreatedButModifiedException, + DeactivateOrganizationsAccessCommand: () => + DeactivateOrganizationsAccessCommand, + DeactivateTypeCommand: () => DeactivateTypeCommand, + DeleteChangeSetCommand: () => DeleteChangeSetCommand, + DeleteGeneratedTemplateCommand: () => DeleteGeneratedTemplateCommand, + DeleteStackCommand: () => DeleteStackCommand, + DeleteStackInstancesCommand: () => DeleteStackInstancesCommand, + DeleteStackSetCommand: () => DeleteStackSetCommand, + DeletionMode: () => DeletionMode, + DeprecatedStatus: () => DeprecatedStatus, + DeregisterTypeCommand: () => DeregisterTypeCommand, + DescribeAccountLimitsCommand: () => DescribeAccountLimitsCommand, + DescribeChangeSetCommand: () => DescribeChangeSetCommand, + DescribeChangeSetHooksCommand: () => DescribeChangeSetHooksCommand, + DescribeGeneratedTemplateCommand: () => + DescribeGeneratedTemplateCommand, + DescribeOrganizationsAccessCommand: () => + DescribeOrganizationsAccessCommand, + DescribePublisherCommand: () => DescribePublisherCommand, + DescribeResourceScanCommand: () => DescribeResourceScanCommand, + DescribeStackDriftDetectionStatusCommand: () => + DescribeStackDriftDetectionStatusCommand, + DescribeStackEventsCommand: () => DescribeStackEventsCommand, + DescribeStackInstanceCommand: () => DescribeStackInstanceCommand, + DescribeStackResourceCommand: () => DescribeStackResourceCommand, + DescribeStackResourceDriftsCommand: () => + DescribeStackResourceDriftsCommand, + DescribeStackResourcesCommand: () => DescribeStackResourcesCommand, + DescribeStackSetCommand: () => DescribeStackSetCommand, + DescribeStackSetOperationCommand: () => + DescribeStackSetOperationCommand, + DescribeStacksCommand: () => DescribeStacksCommand, + DescribeTypeCommand: () => DescribeTypeCommand, + DescribeTypeRegistrationCommand: () => DescribeTypeRegistrationCommand, + DetailedStatus: () => DetailedStatus, + DetectStackDriftCommand: () => DetectStackDriftCommand, + DetectStackResourceDriftCommand: () => DetectStackResourceDriftCommand, + DetectStackSetDriftCommand: () => DetectStackSetDriftCommand, + DifferenceType: () => DifferenceType, + EstimateTemplateCostCommand: () => EstimateTemplateCostCommand, + EvaluationType: () => EvaluationType, + ExecuteChangeSetCommand: () => ExecuteChangeSetCommand, + ExecutionStatus: () => ExecutionStatus, + GeneratedTemplateDeletionPolicy: () => GeneratedTemplateDeletionPolicy, + GeneratedTemplateNotFoundException: () => + GeneratedTemplateNotFoundException, + GeneratedTemplateResourceStatus: () => GeneratedTemplateResourceStatus, + GeneratedTemplateStatus: () => GeneratedTemplateStatus, + GeneratedTemplateUpdateReplacePolicy: () => + GeneratedTemplateUpdateReplacePolicy, + GetGeneratedTemplateCommand: () => GetGeneratedTemplateCommand, + GetStackPolicyCommand: () => GetStackPolicyCommand, + GetTemplateCommand: () => GetTemplateCommand, + GetTemplateSummaryCommand: () => GetTemplateSummaryCommand, + HandlerErrorCode: () => HandlerErrorCode, + HookFailureMode: () => HookFailureMode, + HookInvocationPoint: () => HookInvocationPoint, + HookStatus: () => HookStatus, + HookTargetType: () => HookTargetType, + IdentityProvider: () => IdentityProvider, + ImportStacksToStackSetCommand: () => ImportStacksToStackSetCommand, + InsufficientCapabilitiesException: () => + InsufficientCapabilitiesException, + InvalidChangeSetStatusException: () => InvalidChangeSetStatusException, + InvalidOperationException: () => InvalidOperationException, + InvalidStateTransitionException: () => InvalidStateTransitionException, + LimitExceededException: () => LimitExceededException, + ListChangeSetsCommand: () => ListChangeSetsCommand, + ListExportsCommand: () => ListExportsCommand, + ListGeneratedTemplatesCommand: () => ListGeneratedTemplatesCommand, + ListImportsCommand: () => ListImportsCommand, + ListResourceScanRelatedResourcesCommand: () => + ListResourceScanRelatedResourcesCommand, + ListResourceScanResourcesCommand: () => + ListResourceScanResourcesCommand, + ListResourceScansCommand: () => ListResourceScansCommand, + ListStackInstanceResourceDriftsCommand: () => + ListStackInstanceResourceDriftsCommand, + ListStackInstancesCommand: () => ListStackInstancesCommand, + ListStackResourcesCommand: () => ListStackResourcesCommand, + ListStackSetAutoDeploymentTargetsCommand: () => + ListStackSetAutoDeploymentTargetsCommand, + ListStackSetOperationResultsCommand: () => + ListStackSetOperationResultsCommand, + ListStackSetOperationsCommand: () => ListStackSetOperationsCommand, + ListStackSetsCommand: () => ListStackSetsCommand, + ListStacksCommand: () => ListStacksCommand, + ListTypeRegistrationsCommand: () => ListTypeRegistrationsCommand, + ListTypeVersionsCommand: () => ListTypeVersionsCommand, + ListTypesCommand: () => ListTypesCommand, + NameAlreadyExistsException: () => NameAlreadyExistsException, + OnFailure: () => OnFailure, + OnStackFailure: () => OnStackFailure, + OperationIdAlreadyExistsException: () => + OperationIdAlreadyExistsException, + OperationInProgressException: () => OperationInProgressException, + OperationNotFoundException: () => OperationNotFoundException, + OperationResultFilterName: () => OperationResultFilterName, + OperationStatus: () => OperationStatus, + OperationStatusCheckFailedException: () => + OperationStatusCheckFailedException, + OrganizationStatus: () => OrganizationStatus, + PermissionModels: () => PermissionModels, + PolicyAction: () => PolicyAction, + ProvisioningType: () => ProvisioningType, + PublishTypeCommand: () => PublishTypeCommand, + PublisherStatus: () => PublisherStatus, + RecordHandlerProgressCommand: () => RecordHandlerProgressCommand, + RegionConcurrencyType: () => RegionConcurrencyType, + RegisterPublisherCommand: () => RegisterPublisherCommand, + RegisterTypeCommand: () => RegisterTypeCommand, + RegistrationStatus: () => RegistrationStatus, + RegistryType: () => RegistryType, + Replacement: () => Replacement, + RequiresRecreation: () => RequiresRecreation, + ResourceAttribute: () => ResourceAttribute, + ResourceScanInProgressException: () => ResourceScanInProgressException, + ResourceScanLimitExceededException: () => + ResourceScanLimitExceededException, + ResourceScanNotFoundException: () => ResourceScanNotFoundException, + ResourceScanStatus: () => ResourceScanStatus, + ResourceSignalStatus: () => ResourceSignalStatus, + ResourceStatus: () => ResourceStatus, + RollbackStackCommand: () => RollbackStackCommand, + SetStackPolicyCommand: () => SetStackPolicyCommand, + SetTypeConfigurationCommand: () => SetTypeConfigurationCommand, + SetTypeDefaultVersionCommand: () => SetTypeDefaultVersionCommand, + SignalResourceCommand: () => SignalResourceCommand, + StackDriftDetectionStatus: () => StackDriftDetectionStatus, + StackDriftStatus: () => StackDriftStatus, + StackInstanceDetailedStatus: () => StackInstanceDetailedStatus, + StackInstanceFilterName: () => StackInstanceFilterName, + StackInstanceNotFoundException: () => StackInstanceNotFoundException, + StackInstanceStatus: () => StackInstanceStatus, + StackNotFoundException: () => StackNotFoundException, + StackResourceDriftStatus: () => StackResourceDriftStatus, + StackSetDriftDetectionStatus: () => StackSetDriftDetectionStatus, + StackSetDriftStatus: () => StackSetDriftStatus, + StackSetNotEmptyException: () => StackSetNotEmptyException, + StackSetNotFoundException: () => StackSetNotFoundException, + StackSetOperationAction: () => StackSetOperationAction, + StackSetOperationResultStatus: () => StackSetOperationResultStatus, + StackSetOperationStatus: () => StackSetOperationStatus, + StackSetStatus: () => StackSetStatus, + StackStatus: () => StackStatus, + StaleRequestException: () => StaleRequestException, + StartResourceScanCommand: () => StartResourceScanCommand, + StopStackSetOperationCommand: () => StopStackSetOperationCommand, + TemplateFormat: () => TemplateFormat, + TemplateStage: () => TemplateStage, + TestTypeCommand: () => TestTypeCommand, + ThirdPartyType: () => ThirdPartyType, + TokenAlreadyExistsException: () => TokenAlreadyExistsException, + TypeConfigurationNotFoundException: () => + TypeConfigurationNotFoundException, + TypeNotFoundException: () => TypeNotFoundException, + TypeTestsStatus: () => TypeTestsStatus, + UpdateGeneratedTemplateCommand: () => UpdateGeneratedTemplateCommand, + UpdateStackCommand: () => UpdateStackCommand, + UpdateStackInstancesCommand: () => UpdateStackInstancesCommand, + UpdateStackSetCommand: () => UpdateStackSetCommand, + UpdateTerminationProtectionCommand: () => + UpdateTerminationProtectionCommand, + ValidateTemplateCommand: () => ValidateTemplateCommand, + VersionBump: () => VersionBump, + Visibility: () => Visibility, + WarningType: () => WarningType, + __Client: () => import_smithy_client.Client, + paginateDescribeAccountLimits: () => paginateDescribeAccountLimits, + paginateDescribeStackEvents: () => paginateDescribeStackEvents, + paginateDescribeStackResourceDrifts: () => + paginateDescribeStackResourceDrifts, + paginateDescribeStacks: () => paginateDescribeStacks, + paginateListChangeSets: () => paginateListChangeSets, + paginateListExports: () => paginateListExports, + paginateListGeneratedTemplates: () => paginateListGeneratedTemplates, + paginateListImports: () => paginateListImports, + paginateListResourceScanRelatedResources: () => + paginateListResourceScanRelatedResources, + paginateListResourceScanResources: () => + paginateListResourceScanResources, + paginateListResourceScans: () => paginateListResourceScans, + paginateListStackInstances: () => paginateListStackInstances, + paginateListStackResources: () => paginateListStackResources, + paginateListStackSetOperationResults: () => + paginateListStackSetOperationResults, + paginateListStackSetOperations: () => paginateListStackSetOperations, + paginateListStackSets: () => paginateListStackSets, + paginateListStacks: () => paginateListStacks, + paginateListTypeRegistrations: () => paginateListTypeRegistrations, + paginateListTypeVersions: () => paginateListTypeVersions, + paginateListTypes: () => paginateListTypes, + waitForChangeSetCreateComplete: () => waitForChangeSetCreateComplete, + waitForStackCreateComplete: () => waitForStackCreateComplete, + waitForStackDeleteComplete: () => waitForStackDeleteComplete, + waitForStackExists: () => waitForStackExists, + waitForStackImportComplete: () => waitForStackImportComplete, + waitForStackRollbackComplete: () => waitForStackRollbackComplete, + waitForStackUpdateComplete: () => waitForStackUpdateComplete, + waitForTypeRegistrationComplete: () => waitForTypeRegistrationComplete, + waitUntilChangeSetCreateComplete: () => + waitUntilChangeSetCreateComplete, + waitUntilStackCreateComplete: () => waitUntilStackCreateComplete, + waitUntilStackDeleteComplete: () => waitUntilStackDeleteComplete, + waitUntilStackExists: () => waitUntilStackExists, + waitUntilStackImportComplete: () => waitUntilStackImportComplete, + waitUntilStackRollbackComplete: () => waitUntilStackRollbackComplete, + waitUntilStackUpdateComplete: () => waitUntilStackUpdateComplete, + waitUntilTypeRegistrationComplete: () => + waitUntilTypeRegistrationComplete + }) + module.exports = __toCommonJS(src_exports) + + // src/CloudFormationClient.ts + var import_middleware_host_header = __nccwpck_require__(22545) + var import_middleware_logger = __nccwpck_require__(20014) + var import_middleware_recursion_detection = __nccwpck_require__(85525) + var import_middleware_user_agent = __nccwpck_require__(64688) + var import_config_resolver = __nccwpck_require__(53098) + var import_core = __nccwpck_require__(55829) + var import_middleware_content_length = __nccwpck_require__(82800) + var import_middleware_endpoint = __nccwpck_require__(82918) + var import_middleware_retry = __nccwpck_require__(96039) + + var import_httpAuthSchemeProvider = __nccwpck_require__(74292) + + // src/endpoint/EndpointParameters.ts + var resolveClientEndpointParameters = /* @__PURE__ */ __name(options => { + return { + ...options, + useDualstackEndpoint: options.useDualstackEndpoint ?? false, + useFipsEndpoint: options.useFipsEndpoint ?? false, + defaultSigningName: 'cloudformation' + } + }, 'resolveClientEndpointParameters') + var commonParams = { + UseFIPS: { type: 'builtInParams', name: 'useFipsEndpoint' }, + Endpoint: { type: 'builtInParams', name: 'endpoint' }, + Region: { type: 'builtInParams', name: 'region' }, + UseDualStack: { type: 'builtInParams', name: 'useDualstackEndpoint' } + } + + // src/CloudFormationClient.ts + var import_runtimeConfig = __nccwpck_require__(82643) + + // src/runtimeExtensions.ts + var import_region_config_resolver = __nccwpck_require__(18156) + var import_protocol_http = __nccwpck_require__(64418) + var import_smithy_client = __nccwpck_require__(63570) + + // src/auth/httpAuthExtensionConfiguration.ts + var getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name( + runtimeConfig => { + const _httpAuthSchemes = runtimeConfig.httpAuthSchemes + let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider + let _credentials = runtimeConfig.credentials + return { + setHttpAuthScheme(httpAuthScheme) { + const index = _httpAuthSchemes.findIndex( + scheme => scheme.schemeId === httpAuthScheme.schemeId + ) + if (index === -1) { + _httpAuthSchemes.push(httpAuthScheme) + } else { + _httpAuthSchemes.splice(index, 1, httpAuthScheme) + } + }, + httpAuthSchemes() { + return _httpAuthSchemes + }, + setHttpAuthSchemeProvider(httpAuthSchemeProvider) { + _httpAuthSchemeProvider = httpAuthSchemeProvider + }, + httpAuthSchemeProvider() { + return _httpAuthSchemeProvider + }, + setCredentials(credentials) { + _credentials = credentials + }, + credentials() { + return _credentials + } + } + }, + 'getHttpAuthExtensionConfiguration' + ) + var resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name(config => { + return { + httpAuthSchemes: config.httpAuthSchemes(), + httpAuthSchemeProvider: config.httpAuthSchemeProvider(), + credentials: config.credentials() + } + }, 'resolveHttpAuthRuntimeConfig') + + // src/runtimeExtensions.ts + var asPartial = /* @__PURE__ */ __name(t => t, 'asPartial') + var resolveRuntimeExtensions = /* @__PURE__ */ __name( + (runtimeConfig, extensions) => { + const extensionConfiguration = { + ...asPartial( + (0, + import_region_config_resolver.getAwsRegionExtensionConfiguration)( + runtimeConfig + ) + ), + ...asPartial( + (0, import_smithy_client.getDefaultExtensionConfiguration)( + runtimeConfig + ) + ), + ...asPartial( + (0, import_protocol_http.getHttpHandlerExtensionConfiguration)( + runtimeConfig + ) + ), + ...asPartial(getHttpAuthExtensionConfiguration(runtimeConfig)) + } + extensions.forEach(extension => + extension.configure(extensionConfiguration) + ) + return { + ...runtimeConfig, + ...(0, + import_region_config_resolver.resolveAwsRegionExtensionConfiguration)( + extensionConfiguration + ), + ...(0, import_smithy_client.resolveDefaultRuntimeConfig)( + extensionConfiguration + ), + ...(0, import_protocol_http.resolveHttpHandlerRuntimeConfig)( + extensionConfiguration + ), + ...resolveHttpAuthRuntimeConfig(extensionConfiguration) + } + }, + 'resolveRuntimeExtensions' + ) + + // src/CloudFormationClient.ts + var _CloudFormationClient = class _CloudFormationClient + extends import_smithy_client.Client + { + constructor(...[configuration]) { + const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)( + configuration || {} + ) + const _config_1 = resolveClientEndpointParameters(_config_0) + const _config_2 = (0, + import_middleware_user_agent.resolveUserAgentConfig)(_config_1) + const _config_3 = (0, import_middleware_retry.resolveRetryConfig)( + _config_2 + ) + const _config_4 = (0, import_config_resolver.resolveRegionConfig)( + _config_3 + ) + const _config_5 = (0, + import_middleware_host_header.resolveHostHeaderConfig)(_config_4) + const _config_6 = (0, + import_middleware_endpoint.resolveEndpointConfig)(_config_5) + const _config_7 = (0, + import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6) + const _config_8 = resolveRuntimeExtensions( + _config_7, + (configuration == null ? void 0 : configuration.extensions) || [] + ) + super(_config_8) + this.config = _config_8 + this.middlewareStack.use( + (0, import_middleware_user_agent.getUserAgentPlugin)(this.config) + ) + this.middlewareStack.use( + (0, import_middleware_retry.getRetryPlugin)(this.config) + ) + this.middlewareStack.use( + (0, import_middleware_content_length.getContentLengthPlugin)( + this.config + ) + ) + this.middlewareStack.use( + (0, import_middleware_host_header.getHostHeaderPlugin)(this.config) + ) + this.middlewareStack.use( + (0, import_middleware_logger.getLoggerPlugin)(this.config) + ) + this.middlewareStack.use( + (0, + import_middleware_recursion_detection.getRecursionDetectionPlugin)( + this.config + ) + ) + this.middlewareStack.use( + (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)( + this.config, + { + httpAuthSchemeParametersProvider: + import_httpAuthSchemeProvider.defaultCloudFormationHttpAuthSchemeParametersProvider, + identityProviderConfigProvider: async config => + new import_core.DefaultIdentityProviderConfig({ + 'aws.auth#sigv4': config.credentials + }) + } + ) + ) + this.middlewareStack.use( + (0, import_core.getHttpSigningPlugin)(this.config) + ) + } + /** + * Destroy underlying resources, like sockets. It's usually not necessary to do this. + * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed. + * Otherwise, sockets might stay open for quite a long time before the server terminates them. + */ + destroy() { + super.destroy() + } + } + __name(_CloudFormationClient, 'CloudFormationClient') + var CloudFormationClient = _CloudFormationClient + + // src/CloudFormation.ts + + // src/commands/ActivateOrganizationsAccessCommand.ts + + var import_middleware_serde = __nccwpck_require__(81238) + + // src/protocols/Aws_query.ts + var import_core2 = __nccwpck_require__(59963) + + var import_uuid = __nccwpck_require__(5976) + + // src/models/CloudFormationServiceException.ts + + var _CloudFormationServiceException = class _CloudFormationServiceException + extends import_smithy_client.ServiceException + { + /** + * @internal + */ + constructor(options) { + super(options) + Object.setPrototypeOf(this, _CloudFormationServiceException.prototype) + } + } + __name(_CloudFormationServiceException, 'CloudFormationServiceException') + var CloudFormationServiceException = _CloudFormationServiceException + + // src/models/models_0.ts + var AccountFilterType = { + DIFFERENCE: 'DIFFERENCE', + INTERSECTION: 'INTERSECTION', + NONE: 'NONE', + UNION: 'UNION' + } + var AccountGateStatus = { + FAILED: 'FAILED', + SKIPPED: 'SKIPPED', + SUCCEEDED: 'SUCCEEDED' + } + var _InvalidOperationException = class _InvalidOperationException extends CloudFormationServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'InvalidOperationException', + $fault: 'client', + ...opts + }) + this.name = 'InvalidOperationException' + this.$fault = 'client' + Object.setPrototypeOf(this, _InvalidOperationException.prototype) + this.Message = opts.Message + } + } + __name(_InvalidOperationException, 'InvalidOperationException') + var InvalidOperationException = _InvalidOperationException + var _OperationNotFoundException = class _OperationNotFoundException extends CloudFormationServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'OperationNotFoundException', + $fault: 'client', + ...opts + }) + this.name = 'OperationNotFoundException' + this.$fault = 'client' + Object.setPrototypeOf(this, _OperationNotFoundException.prototype) + this.Message = opts.Message + } + } + __name(_OperationNotFoundException, 'OperationNotFoundException') + var OperationNotFoundException = _OperationNotFoundException + var ThirdPartyType = { + HOOK: 'HOOK', + MODULE: 'MODULE', + RESOURCE: 'RESOURCE' + } + var VersionBump = { + MAJOR: 'MAJOR', + MINOR: 'MINOR' + } + var _CFNRegistryException = class _CFNRegistryException extends CloudFormationServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'CFNRegistryException', + $fault: 'client', + ...opts + }) + this.name = 'CFNRegistryException' + this.$fault = 'client' + Object.setPrototypeOf(this, _CFNRegistryException.prototype) + this.Message = opts.Message + } + } + __name(_CFNRegistryException, 'CFNRegistryException') + var CFNRegistryException = _CFNRegistryException + var _TypeNotFoundException = class _TypeNotFoundException extends CloudFormationServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'TypeNotFoundException', + $fault: 'client', + ...opts + }) + this.name = 'TypeNotFoundException' + this.$fault = 'client' + Object.setPrototypeOf(this, _TypeNotFoundException.prototype) + this.Message = opts.Message + } + } + __name(_TypeNotFoundException, 'TypeNotFoundException') + var TypeNotFoundException = _TypeNotFoundException + var _AlreadyExistsException = class _AlreadyExistsException extends CloudFormationServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'AlreadyExistsException', + $fault: 'client', + ...opts + }) + this.name = 'AlreadyExistsException' + this.$fault = 'client' + Object.setPrototypeOf(this, _AlreadyExistsException.prototype) + this.Message = opts.Message + } + } + __name(_AlreadyExistsException, 'AlreadyExistsException') + var AlreadyExistsException = _AlreadyExistsException + var AttributeChangeType = { + Add: 'Add', + Modify: 'Modify', + Remove: 'Remove' + } + var _TypeConfigurationNotFoundException = class _TypeConfigurationNotFoundException extends CloudFormationServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'TypeConfigurationNotFoundException', + $fault: 'client', + ...opts + }) + this.name = 'TypeConfigurationNotFoundException' + this.$fault = 'client' + Object.setPrototypeOf( + this, + _TypeConfigurationNotFoundException.prototype + ) + this.Message = opts.Message + } + } + __name( + _TypeConfigurationNotFoundException, + 'TypeConfigurationNotFoundException' + ) + var TypeConfigurationNotFoundException = + _TypeConfigurationNotFoundException + var CallAs = { + DELEGATED_ADMIN: 'DELEGATED_ADMIN', + SELF: 'SELF' + } + var _TokenAlreadyExistsException = class _TokenAlreadyExistsException extends CloudFormationServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'TokenAlreadyExistsException', + $fault: 'client', + ...opts + }) + this.name = 'TokenAlreadyExistsException' + this.$fault = 'client' + Object.setPrototypeOf(this, _TokenAlreadyExistsException.prototype) + this.Message = opts.Message + } + } + __name(_TokenAlreadyExistsException, 'TokenAlreadyExistsException') + var TokenAlreadyExistsException = _TokenAlreadyExistsException + var Capability = { + CAPABILITY_AUTO_EXPAND: 'CAPABILITY_AUTO_EXPAND', + CAPABILITY_IAM: 'CAPABILITY_IAM', + CAPABILITY_NAMED_IAM: 'CAPABILITY_NAMED_IAM' + } + var Category = { + ACTIVATED: 'ACTIVATED', + AWS_TYPES: 'AWS_TYPES', + REGISTERED: 'REGISTERED', + THIRD_PARTY: 'THIRD_PARTY' + } + var ChangeAction = { + Add: 'Add', + Dynamic: 'Dynamic', + Import: 'Import', + Modify: 'Modify', + Remove: 'Remove' + } + var ChangeSource = { + Automatic: 'Automatic', + DirectModification: 'DirectModification', + ParameterReference: 'ParameterReference', + ResourceAttribute: 'ResourceAttribute', + ResourceReference: 'ResourceReference' + } + var EvaluationType = { + Dynamic: 'Dynamic', + Static: 'Static' + } + var ResourceAttribute = { + CreationPolicy: 'CreationPolicy', + DeletionPolicy: 'DeletionPolicy', + Metadata: 'Metadata', + Properties: 'Properties', + Tags: 'Tags', + UpdatePolicy: 'UpdatePolicy', + UpdateReplacePolicy: 'UpdateReplacePolicy' + } + var RequiresRecreation = { + Always: 'Always', + Conditionally: 'Conditionally', + Never: 'Never' + } + var PolicyAction = { + Delete: 'Delete', + ReplaceAndDelete: 'ReplaceAndDelete', + ReplaceAndRetain: 'ReplaceAndRetain', + ReplaceAndSnapshot: 'ReplaceAndSnapshot', + Retain: 'Retain', + Snapshot: 'Snapshot' + } + var Replacement = { + Conditional: 'Conditional', + False: 'False', + True: 'True' + } + var ChangeType = { + Resource: 'Resource' + } + var HookFailureMode = { + FAIL: 'FAIL', + WARN: 'WARN' + } + var HookInvocationPoint = { + PRE_PROVISION: 'PRE_PROVISION' + } + var HookTargetType = { + RESOURCE: 'RESOURCE' + } + var ChangeSetHooksStatus = { + PLANNED: 'PLANNED', + PLANNING: 'PLANNING', + UNAVAILABLE: 'UNAVAILABLE' + } + var _ChangeSetNotFoundException = class _ChangeSetNotFoundException extends CloudFormationServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'ChangeSetNotFoundException', + $fault: 'client', + ...opts + }) + this.name = 'ChangeSetNotFoundException' + this.$fault = 'client' + Object.setPrototypeOf(this, _ChangeSetNotFoundException.prototype) + this.Message = opts.Message + } + } + __name(_ChangeSetNotFoundException, 'ChangeSetNotFoundException') + var ChangeSetNotFoundException = _ChangeSetNotFoundException + var ChangeSetStatus = { + CREATE_COMPLETE: 'CREATE_COMPLETE', + CREATE_IN_PROGRESS: 'CREATE_IN_PROGRESS', + CREATE_PENDING: 'CREATE_PENDING', + DELETE_COMPLETE: 'DELETE_COMPLETE', + DELETE_FAILED: 'DELETE_FAILED', + DELETE_IN_PROGRESS: 'DELETE_IN_PROGRESS', + DELETE_PENDING: 'DELETE_PENDING', + FAILED: 'FAILED' + } + var ExecutionStatus = { + AVAILABLE: 'AVAILABLE', + EXECUTE_COMPLETE: 'EXECUTE_COMPLETE', + EXECUTE_FAILED: 'EXECUTE_FAILED', + EXECUTE_IN_PROGRESS: 'EXECUTE_IN_PROGRESS', + OBSOLETE: 'OBSOLETE', + UNAVAILABLE: 'UNAVAILABLE' + } + var ChangeSetType = { + CREATE: 'CREATE', + IMPORT: 'IMPORT', + UPDATE: 'UPDATE' + } + var OnStackFailure = { + DELETE: 'DELETE', + DO_NOTHING: 'DO_NOTHING', + ROLLBACK: 'ROLLBACK' + } + var _InsufficientCapabilitiesException = class _InsufficientCapabilitiesException extends CloudFormationServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'InsufficientCapabilitiesException', + $fault: 'client', + ...opts + }) + this.name = 'InsufficientCapabilitiesException' + this.$fault = 'client' + Object.setPrototypeOf( + this, + _InsufficientCapabilitiesException.prototype + ) + this.Message = opts.Message + } + } + __name( + _InsufficientCapabilitiesException, + 'InsufficientCapabilitiesException' + ) + var InsufficientCapabilitiesException = _InsufficientCapabilitiesException + var _LimitExceededException = class _LimitExceededException extends CloudFormationServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'LimitExceededException', + $fault: 'client', + ...opts + }) + this.name = 'LimitExceededException' + this.$fault = 'client' + Object.setPrototypeOf(this, _LimitExceededException.prototype) + this.Message = opts.Message + } + } + __name(_LimitExceededException, 'LimitExceededException') + var LimitExceededException = _LimitExceededException + var _ConcurrentResourcesLimitExceededException = class _ConcurrentResourcesLimitExceededException extends CloudFormationServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'ConcurrentResourcesLimitExceededException', + $fault: 'client', + ...opts + }) + this.name = 'ConcurrentResourcesLimitExceededException' + this.$fault = 'client' + Object.setPrototypeOf( + this, + _ConcurrentResourcesLimitExceededException.prototype + ) + this.Message = opts.Message + } + } + __name( + _ConcurrentResourcesLimitExceededException, + 'ConcurrentResourcesLimitExceededException' + ) + var ConcurrentResourcesLimitExceededException = + _ConcurrentResourcesLimitExceededException + var GeneratedTemplateDeletionPolicy = { + DELETE: 'DELETE', + RETAIN: 'RETAIN' + } + var GeneratedTemplateUpdateReplacePolicy = { + DELETE: 'DELETE', + RETAIN: 'RETAIN' + } + var OnFailure = { + DELETE: 'DELETE', + DO_NOTHING: 'DO_NOTHING', + ROLLBACK: 'ROLLBACK' + } + var ConcurrencyMode = { + SOFT_FAILURE_TOLERANCE: 'SOFT_FAILURE_TOLERANCE', + STRICT_FAILURE_TOLERANCE: 'STRICT_FAILURE_TOLERANCE' + } + var RegionConcurrencyType = { + PARALLEL: 'PARALLEL', + SEQUENTIAL: 'SEQUENTIAL' + } + var _OperationIdAlreadyExistsException = class _OperationIdAlreadyExistsException extends CloudFormationServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'OperationIdAlreadyExistsException', + $fault: 'client', + ...opts + }) + this.name = 'OperationIdAlreadyExistsException' + this.$fault = 'client' + Object.setPrototypeOf( + this, + _OperationIdAlreadyExistsException.prototype + ) + this.Message = opts.Message + } + } + __name( + _OperationIdAlreadyExistsException, + 'OperationIdAlreadyExistsException' + ) + var OperationIdAlreadyExistsException = _OperationIdAlreadyExistsException + var _OperationInProgressException = class _OperationInProgressException extends CloudFormationServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'OperationInProgressException', + $fault: 'client', + ...opts + }) + this.name = 'OperationInProgressException' + this.$fault = 'client' + Object.setPrototypeOf(this, _OperationInProgressException.prototype) + this.Message = opts.Message + } + } + __name(_OperationInProgressException, 'OperationInProgressException') + var OperationInProgressException = _OperationInProgressException + var _StackSetNotFoundException = class _StackSetNotFoundException extends CloudFormationServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'StackSetNotFoundException', + $fault: 'client', + ...opts + }) + this.name = 'StackSetNotFoundException' + this.$fault = 'client' + Object.setPrototypeOf(this, _StackSetNotFoundException.prototype) + this.Message = opts.Message + } + } + __name(_StackSetNotFoundException, 'StackSetNotFoundException') + var StackSetNotFoundException = _StackSetNotFoundException + var _StaleRequestException = class _StaleRequestException extends CloudFormationServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'StaleRequestException', + $fault: 'client', + ...opts + }) + this.name = 'StaleRequestException' + this.$fault = 'client' + Object.setPrototypeOf(this, _StaleRequestException.prototype) + this.Message = opts.Message + } + } + __name(_StaleRequestException, 'StaleRequestException') + var StaleRequestException = _StaleRequestException + var _CreatedButModifiedException = class _CreatedButModifiedException extends CloudFormationServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'CreatedButModifiedException', + $fault: 'client', + ...opts + }) + this.name = 'CreatedButModifiedException' + this.$fault = 'client' + Object.setPrototypeOf(this, _CreatedButModifiedException.prototype) + this.Message = opts.Message + } + } + __name(_CreatedButModifiedException, 'CreatedButModifiedException') + var CreatedButModifiedException = _CreatedButModifiedException + var PermissionModels = { + SELF_MANAGED: 'SELF_MANAGED', + SERVICE_MANAGED: 'SERVICE_MANAGED' + } + var _NameAlreadyExistsException = class _NameAlreadyExistsException extends CloudFormationServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'NameAlreadyExistsException', + $fault: 'client', + ...opts + }) + this.name = 'NameAlreadyExistsException' + this.$fault = 'client' + Object.setPrototypeOf(this, _NameAlreadyExistsException.prototype) + this.Message = opts.Message + } + } + __name(_NameAlreadyExistsException, 'NameAlreadyExistsException') + var NameAlreadyExistsException = _NameAlreadyExistsException + var _InvalidChangeSetStatusException = class _InvalidChangeSetStatusException extends CloudFormationServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'InvalidChangeSetStatusException', + $fault: 'client', + ...opts + }) + this.name = 'InvalidChangeSetStatusException' + this.$fault = 'client' + Object.setPrototypeOf( + this, + _InvalidChangeSetStatusException.prototype + ) + this.Message = opts.Message + } + } + __name( + _InvalidChangeSetStatusException, + 'InvalidChangeSetStatusException' + ) + var InvalidChangeSetStatusException = _InvalidChangeSetStatusException + var _GeneratedTemplateNotFoundException = class _GeneratedTemplateNotFoundException extends CloudFormationServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'GeneratedTemplateNotFoundException', + $fault: 'client', + ...opts + }) + this.name = 'GeneratedTemplateNotFoundException' + this.$fault = 'client' + Object.setPrototypeOf( + this, + _GeneratedTemplateNotFoundException.prototype + ) + this.Message = opts.Message + } + } + __name( + _GeneratedTemplateNotFoundException, + 'GeneratedTemplateNotFoundException' + ) + var GeneratedTemplateNotFoundException = + _GeneratedTemplateNotFoundException + var DeletionMode = { + FORCE_DELETE_STACK: 'FORCE_DELETE_STACK', + STANDARD: 'STANDARD' + } + var _StackSetNotEmptyException = class _StackSetNotEmptyException extends CloudFormationServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'StackSetNotEmptyException', + $fault: 'client', + ...opts + }) + this.name = 'StackSetNotEmptyException' + this.$fault = 'client' + Object.setPrototypeOf(this, _StackSetNotEmptyException.prototype) + this.Message = opts.Message + } + } + __name(_StackSetNotEmptyException, 'StackSetNotEmptyException') + var StackSetNotEmptyException = _StackSetNotEmptyException + var RegistryType = { + HOOK: 'HOOK', + MODULE: 'MODULE', + RESOURCE: 'RESOURCE' + } + var GeneratedTemplateResourceStatus = { + COMPLETE: 'COMPLETE', + FAILED: 'FAILED', + IN_PROGRESS: 'IN_PROGRESS', + PENDING: 'PENDING' + } + var WarningType = { + MUTUALLY_EXCLUSIVE_PROPERTIES: 'MUTUALLY_EXCLUSIVE_PROPERTIES', + MUTUALLY_EXCLUSIVE_TYPES: 'MUTUALLY_EXCLUSIVE_TYPES', + UNSUPPORTED_PROPERTIES: 'UNSUPPORTED_PROPERTIES' + } + var GeneratedTemplateStatus = { + COMPLETE: 'COMPLETE', + CREATE_IN_PROGRESS: 'CREATE_IN_PROGRESS', + CREATE_PENDING: 'CREATE_PENDING', + DELETE_IN_PROGRESS: 'DELETE_IN_PROGRESS', + DELETE_PENDING: 'DELETE_PENDING', + FAILED: 'FAILED', + UPDATE_IN_PROGRESS: 'UPDATE_IN_PROGRESS', + UPDATE_PENDING: 'UPDATE_PENDING' + } + var OrganizationStatus = { + DISABLED: 'DISABLED', + DISABLED_PERMANENTLY: 'DISABLED_PERMANENTLY', + ENABLED: 'ENABLED' + } + var IdentityProvider = { + AWS_Marketplace: 'AWS_Marketplace', + Bitbucket: 'Bitbucket', + GitHub: 'GitHub' + } + var PublisherStatus = { + UNVERIFIED: 'UNVERIFIED', + VERIFIED: 'VERIFIED' + } + var ResourceScanStatus = { + COMPLETE: 'COMPLETE', + EXPIRED: 'EXPIRED', + FAILED: 'FAILED', + IN_PROGRESS: 'IN_PROGRESS' + } + var _ResourceScanNotFoundException = class _ResourceScanNotFoundException extends CloudFormationServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'ResourceScanNotFoundException', + $fault: 'client', + ...opts + }) + this.name = 'ResourceScanNotFoundException' + this.$fault = 'client' + Object.setPrototypeOf(this, _ResourceScanNotFoundException.prototype) + this.Message = opts.Message + } + } + __name(_ResourceScanNotFoundException, 'ResourceScanNotFoundException') + var ResourceScanNotFoundException = _ResourceScanNotFoundException + var StackDriftDetectionStatus = { + DETECTION_COMPLETE: 'DETECTION_COMPLETE', + DETECTION_FAILED: 'DETECTION_FAILED', + DETECTION_IN_PROGRESS: 'DETECTION_IN_PROGRESS' + } + var StackDriftStatus = { + DRIFTED: 'DRIFTED', + IN_SYNC: 'IN_SYNC', + NOT_CHECKED: 'NOT_CHECKED', + UNKNOWN: 'UNKNOWN' + } + var DetailedStatus = { + CONFIGURATION_COMPLETE: 'CONFIGURATION_COMPLETE', + VALIDATION_FAILED: 'VALIDATION_FAILED' + } + var HookStatus = { + HOOK_COMPLETE_FAILED: 'HOOK_COMPLETE_FAILED', + HOOK_COMPLETE_SUCCEEDED: 'HOOK_COMPLETE_SUCCEEDED', + HOOK_FAILED: 'HOOK_FAILED', + HOOK_IN_PROGRESS: 'HOOK_IN_PROGRESS' + } + var ResourceStatus = { + CREATE_COMPLETE: 'CREATE_COMPLETE', + CREATE_FAILED: 'CREATE_FAILED', + CREATE_IN_PROGRESS: 'CREATE_IN_PROGRESS', + DELETE_COMPLETE: 'DELETE_COMPLETE', + DELETE_FAILED: 'DELETE_FAILED', + DELETE_IN_PROGRESS: 'DELETE_IN_PROGRESS', + DELETE_SKIPPED: 'DELETE_SKIPPED', + IMPORT_COMPLETE: 'IMPORT_COMPLETE', + IMPORT_FAILED: 'IMPORT_FAILED', + IMPORT_IN_PROGRESS: 'IMPORT_IN_PROGRESS', + IMPORT_ROLLBACK_COMPLETE: 'IMPORT_ROLLBACK_COMPLETE', + IMPORT_ROLLBACK_FAILED: 'IMPORT_ROLLBACK_FAILED', + IMPORT_ROLLBACK_IN_PROGRESS: 'IMPORT_ROLLBACK_IN_PROGRESS', + ROLLBACK_COMPLETE: 'ROLLBACK_COMPLETE', + ROLLBACK_FAILED: 'ROLLBACK_FAILED', + ROLLBACK_IN_PROGRESS: 'ROLLBACK_IN_PROGRESS', + UPDATE_COMPLETE: 'UPDATE_COMPLETE', + UPDATE_FAILED: 'UPDATE_FAILED', + UPDATE_IN_PROGRESS: 'UPDATE_IN_PROGRESS', + UPDATE_ROLLBACK_COMPLETE: 'UPDATE_ROLLBACK_COMPLETE', + UPDATE_ROLLBACK_FAILED: 'UPDATE_ROLLBACK_FAILED', + UPDATE_ROLLBACK_IN_PROGRESS: 'UPDATE_ROLLBACK_IN_PROGRESS' + } + var StackInstanceDetailedStatus = { + CANCELLED: 'CANCELLED', + FAILED: 'FAILED', + FAILED_IMPORT: 'FAILED_IMPORT', + INOPERABLE: 'INOPERABLE', + PENDING: 'PENDING', + RUNNING: 'RUNNING', + SKIPPED_SUSPENDED_ACCOUNT: 'SKIPPED_SUSPENDED_ACCOUNT', + SUCCEEDED: 'SUCCEEDED' + } + var StackInstanceStatus = { + CURRENT: 'CURRENT', + INOPERABLE: 'INOPERABLE', + OUTDATED: 'OUTDATED' + } + var _StackInstanceNotFoundException = class _StackInstanceNotFoundException extends CloudFormationServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'StackInstanceNotFoundException', + $fault: 'client', + ...opts + }) + this.name = 'StackInstanceNotFoundException' + this.$fault = 'client' + Object.setPrototypeOf(this, _StackInstanceNotFoundException.prototype) + this.Message = opts.Message + } + } + __name(_StackInstanceNotFoundException, 'StackInstanceNotFoundException') + var StackInstanceNotFoundException = _StackInstanceNotFoundException + var StackResourceDriftStatus = { + DELETED: 'DELETED', + IN_SYNC: 'IN_SYNC', + MODIFIED: 'MODIFIED', + NOT_CHECKED: 'NOT_CHECKED' + } + var DifferenceType = { + ADD: 'ADD', + NOT_EQUAL: 'NOT_EQUAL', + REMOVE: 'REMOVE' + } + var StackStatus = { + CREATE_COMPLETE: 'CREATE_COMPLETE', + CREATE_FAILED: 'CREATE_FAILED', + CREATE_IN_PROGRESS: 'CREATE_IN_PROGRESS', + DELETE_COMPLETE: 'DELETE_COMPLETE', + DELETE_FAILED: 'DELETE_FAILED', + DELETE_IN_PROGRESS: 'DELETE_IN_PROGRESS', + IMPORT_COMPLETE: 'IMPORT_COMPLETE', + IMPORT_IN_PROGRESS: 'IMPORT_IN_PROGRESS', + IMPORT_ROLLBACK_COMPLETE: 'IMPORT_ROLLBACK_COMPLETE', + IMPORT_ROLLBACK_FAILED: 'IMPORT_ROLLBACK_FAILED', + IMPORT_ROLLBACK_IN_PROGRESS: 'IMPORT_ROLLBACK_IN_PROGRESS', + REVIEW_IN_PROGRESS: 'REVIEW_IN_PROGRESS', + ROLLBACK_COMPLETE: 'ROLLBACK_COMPLETE', + ROLLBACK_FAILED: 'ROLLBACK_FAILED', + ROLLBACK_IN_PROGRESS: 'ROLLBACK_IN_PROGRESS', + UPDATE_COMPLETE: 'UPDATE_COMPLETE', + UPDATE_COMPLETE_CLEANUP_IN_PROGRESS: + 'UPDATE_COMPLETE_CLEANUP_IN_PROGRESS', + UPDATE_FAILED: 'UPDATE_FAILED', + UPDATE_IN_PROGRESS: 'UPDATE_IN_PROGRESS', + UPDATE_ROLLBACK_COMPLETE: 'UPDATE_ROLLBACK_COMPLETE', + UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS: + 'UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS', + UPDATE_ROLLBACK_FAILED: 'UPDATE_ROLLBACK_FAILED', + UPDATE_ROLLBACK_IN_PROGRESS: 'UPDATE_ROLLBACK_IN_PROGRESS' + } + var StackSetDriftDetectionStatus = { + COMPLETED: 'COMPLETED', + FAILED: 'FAILED', + IN_PROGRESS: 'IN_PROGRESS', + PARTIAL_SUCCESS: 'PARTIAL_SUCCESS', + STOPPED: 'STOPPED' + } + var StackSetDriftStatus = { + DRIFTED: 'DRIFTED', + IN_SYNC: 'IN_SYNC', + NOT_CHECKED: 'NOT_CHECKED' + } + var StackSetStatus = { + ACTIVE: 'ACTIVE', + DELETED: 'DELETED' + } + var StackSetOperationAction = { + CREATE: 'CREATE', + DELETE: 'DELETE', + DETECT_DRIFT: 'DETECT_DRIFT', + UPDATE: 'UPDATE' + } + var StackSetOperationStatus = { + FAILED: 'FAILED', + QUEUED: 'QUEUED', + RUNNING: 'RUNNING', + STOPPED: 'STOPPED', + STOPPING: 'STOPPING', + SUCCEEDED: 'SUCCEEDED' + } + var DeprecatedStatus = { + DEPRECATED: 'DEPRECATED', + LIVE: 'LIVE' + } + var ProvisioningType = { + FULLY_MUTABLE: 'FULLY_MUTABLE', + IMMUTABLE: 'IMMUTABLE', + NON_PROVISIONABLE: 'NON_PROVISIONABLE' + } + var TypeTestsStatus = { + FAILED: 'FAILED', + IN_PROGRESS: 'IN_PROGRESS', + NOT_TESTED: 'NOT_TESTED', + PASSED: 'PASSED' + } + var Visibility = { + PRIVATE: 'PRIVATE', + PUBLIC: 'PUBLIC' + } + var RegistrationStatus = { + COMPLETE: 'COMPLETE', + FAILED: 'FAILED', + IN_PROGRESS: 'IN_PROGRESS' + } + var TemplateFormat = { + JSON: 'JSON', + YAML: 'YAML' + } + var TemplateStage = { + Original: 'Original', + Processed: 'Processed' + } + var _StackNotFoundException = class _StackNotFoundException extends CloudFormationServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'StackNotFoundException', + $fault: 'client', + ...opts + }) + this.name = 'StackNotFoundException' + this.$fault = 'client' + Object.setPrototypeOf(this, _StackNotFoundException.prototype) + this.Message = opts.Message + } + } + __name(_StackNotFoundException, 'StackNotFoundException') + var StackNotFoundException = _StackNotFoundException + var _ResourceScanInProgressException = class _ResourceScanInProgressException extends CloudFormationServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'ResourceScanInProgressException', + $fault: 'client', + ...opts + }) + this.name = 'ResourceScanInProgressException' + this.$fault = 'client' + Object.setPrototypeOf( + this, + _ResourceScanInProgressException.prototype + ) + this.Message = opts.Message + } + } + __name( + _ResourceScanInProgressException, + 'ResourceScanInProgressException' + ) + var ResourceScanInProgressException = _ResourceScanInProgressException + var StackInstanceFilterName = { + DETAILED_STATUS: 'DETAILED_STATUS', + DRIFT_STATUS: 'DRIFT_STATUS', + LAST_OPERATION_ID: 'LAST_OPERATION_ID' + } + var OperationResultFilterName = { + OPERATION_RESULT_STATUS: 'OPERATION_RESULT_STATUS' + } + var StackSetOperationResultStatus = { + CANCELLED: 'CANCELLED', + FAILED: 'FAILED', + PENDING: 'PENDING', + RUNNING: 'RUNNING', + SUCCEEDED: 'SUCCEEDED' + } + var _InvalidStateTransitionException = class _InvalidStateTransitionException extends CloudFormationServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'InvalidStateTransitionException', + $fault: 'client', + ...opts + }) + this.name = 'InvalidStateTransitionException' + this.$fault = 'client' + Object.setPrototypeOf( + this, + _InvalidStateTransitionException.prototype + ) + this.Message = opts.Message + } + } + __name( + _InvalidStateTransitionException, + 'InvalidStateTransitionException' + ) + var InvalidStateTransitionException = _InvalidStateTransitionException + var _OperationStatusCheckFailedException = class _OperationStatusCheckFailedException extends CloudFormationServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'OperationStatusCheckFailedException', + $fault: 'client', + ...opts + }) + this.name = 'OperationStatusCheckFailedException' + this.$fault = 'client' + Object.setPrototypeOf( + this, + _OperationStatusCheckFailedException.prototype + ) + this.Message = opts.Message + } + } + __name( + _OperationStatusCheckFailedException, + 'OperationStatusCheckFailedException' + ) + var OperationStatusCheckFailedException = + _OperationStatusCheckFailedException + var OperationStatus = { + FAILED: 'FAILED', + IN_PROGRESS: 'IN_PROGRESS', + PENDING: 'PENDING', + SUCCESS: 'SUCCESS' + } + var HandlerErrorCode = { + AccessDenied: 'AccessDenied', + AlreadyExists: 'AlreadyExists', + GeneralServiceException: 'GeneralServiceException', + HandlerInternalFailure: 'HandlerInternalFailure', + InternalFailure: 'InternalFailure', + InvalidCredentials: 'InvalidCredentials', + InvalidRequest: 'InvalidRequest', + InvalidTypeConfiguration: 'InvalidTypeConfiguration', + NetworkFailure: 'NetworkFailure', + NonCompliant: 'NonCompliant', + NotFound: 'NotFound', + NotUpdatable: 'NotUpdatable', + ResourceConflict: 'ResourceConflict', + ServiceInternalError: 'ServiceInternalError', + ServiceLimitExceeded: 'ServiceLimitExceeded', + ServiceTimeout: 'NotStabilized', + Throttling: 'Throttling', + Unknown: 'Unknown', + UnsupportedTarget: 'UnsupportedTarget' + } + + // src/models/models_1.ts + var ResourceSignalStatus = { + FAILURE: 'FAILURE', + SUCCESS: 'SUCCESS' + } + var _ResourceScanLimitExceededException = class _ResourceScanLimitExceededException extends CloudFormationServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'ResourceScanLimitExceededException', + $fault: 'client', + ...opts + }) + this.name = 'ResourceScanLimitExceededException' + this.$fault = 'client' + Object.setPrototypeOf( + this, + _ResourceScanLimitExceededException.prototype + ) + this.Message = opts.Message + } + } + __name( + _ResourceScanLimitExceededException, + 'ResourceScanLimitExceededException' + ) + var ResourceScanLimitExceededException = + _ResourceScanLimitExceededException + + // src/protocols/Aws_query.ts + var se_ActivateOrganizationsAccessCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_ActivateOrganizationsAccessInput(input, context), + [_A]: _AOA, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_ActivateOrganizationsAccessCommand' + ) + var se_ActivateTypeCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_ActivateTypeInput(input, context), + [_A]: _AT, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_ActivateTypeCommand' + ) + var se_BatchDescribeTypeConfigurationsCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_BatchDescribeTypeConfigurationsInput(input, context), + [_A]: _BDTC, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_BatchDescribeTypeConfigurationsCommand' + ) + var se_CancelUpdateStackCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_CancelUpdateStackInput(input, context), + [_A]: _CUS, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_CancelUpdateStackCommand' + ) + var se_ContinueUpdateRollbackCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_ContinueUpdateRollbackInput(input, context), + [_A]: _CUR, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_ContinueUpdateRollbackCommand' + ) + var se_CreateChangeSetCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_CreateChangeSetInput(input, context), + [_A]: _CCS, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_CreateChangeSetCommand' + ) + var se_CreateGeneratedTemplateCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_CreateGeneratedTemplateInput(input, context), + [_A]: _CGT, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_CreateGeneratedTemplateCommand' + ) + var se_CreateStackCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_CreateStackInput(input, context), + [_A]: _CS, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_CreateStackCommand' + ) + var se_CreateStackInstancesCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_CreateStackInstancesInput(input, context), + [_A]: _CSI, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_CreateStackInstancesCommand' + ) + var se_CreateStackSetCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_CreateStackSetInput(input, context), + [_A]: _CSS, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_CreateStackSetCommand' + ) + var se_DeactivateOrganizationsAccessCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_DeactivateOrganizationsAccessInput(input, context), + [_A]: _DOA, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_DeactivateOrganizationsAccessCommand' + ) + var se_DeactivateTypeCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_DeactivateTypeInput(input, context), + [_A]: _DT, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_DeactivateTypeCommand' + ) + var se_DeleteChangeSetCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_DeleteChangeSetInput(input, context), + [_A]: _DCS, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_DeleteChangeSetCommand' + ) + var se_DeleteGeneratedTemplateCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_DeleteGeneratedTemplateInput(input, context), + [_A]: _DGT, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_DeleteGeneratedTemplateCommand' + ) + var se_DeleteStackCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_DeleteStackInput(input, context), + [_A]: _DS, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_DeleteStackCommand' + ) + var se_DeleteStackInstancesCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_DeleteStackInstancesInput(input, context), + [_A]: _DSI, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_DeleteStackInstancesCommand' + ) + var se_DeleteStackSetCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_DeleteStackSetInput(input, context), + [_A]: _DSS, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_DeleteStackSetCommand' + ) + var se_DeregisterTypeCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_DeregisterTypeInput(input, context), + [_A]: _DTe, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_DeregisterTypeCommand' + ) + var se_DescribeAccountLimitsCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_DescribeAccountLimitsInput(input, context), + [_A]: _DAL, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_DescribeAccountLimitsCommand' + ) + var se_DescribeChangeSetCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_DescribeChangeSetInput(input, context), + [_A]: _DCSe, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_DescribeChangeSetCommand' + ) + var se_DescribeChangeSetHooksCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_DescribeChangeSetHooksInput(input, context), + [_A]: _DCSH, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_DescribeChangeSetHooksCommand' + ) + var se_DescribeGeneratedTemplateCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_DescribeGeneratedTemplateInput(input, context), + [_A]: _DGTe, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_DescribeGeneratedTemplateCommand' + ) + var se_DescribeOrganizationsAccessCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_DescribeOrganizationsAccessInput(input, context), + [_A]: _DOAe, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_DescribeOrganizationsAccessCommand' + ) + var se_DescribePublisherCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_DescribePublisherInput(input, context), + [_A]: _DP, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_DescribePublisherCommand' + ) + var se_DescribeResourceScanCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_DescribeResourceScanInput(input, context), + [_A]: _DRS, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_DescribeResourceScanCommand' + ) + var se_DescribeStackDriftDetectionStatusCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_DescribeStackDriftDetectionStatusInput(input, context), + [_A]: _DSDDS, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_DescribeStackDriftDetectionStatusCommand' + ) + var se_DescribeStackEventsCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_DescribeStackEventsInput(input, context), + [_A]: _DSE, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_DescribeStackEventsCommand' + ) + var se_DescribeStackInstanceCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_DescribeStackInstanceInput(input, context), + [_A]: _DSIe, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_DescribeStackInstanceCommand' + ) + var se_DescribeStackResourceCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_DescribeStackResourceInput(input, context), + [_A]: _DSR, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_DescribeStackResourceCommand' + ) + var se_DescribeStackResourceDriftsCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_DescribeStackResourceDriftsInput(input, context), + [_A]: _DSRD, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_DescribeStackResourceDriftsCommand' + ) + var se_DescribeStackResourcesCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_DescribeStackResourcesInput(input, context), + [_A]: _DSRe, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_DescribeStackResourcesCommand' + ) + var se_DescribeStacksCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_DescribeStacksInput(input, context), + [_A]: _DSe, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_DescribeStacksCommand' + ) + var se_DescribeStackSetCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_DescribeStackSetInput(input, context), + [_A]: _DSSe, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_DescribeStackSetCommand' + ) + var se_DescribeStackSetOperationCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_DescribeStackSetOperationInput(input, context), + [_A]: _DSSO, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_DescribeStackSetOperationCommand' + ) + var se_DescribeTypeCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_DescribeTypeInput(input, context), + [_A]: _DTes, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_DescribeTypeCommand' + ) + var se_DescribeTypeRegistrationCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_DescribeTypeRegistrationInput(input, context), + [_A]: _DTR, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_DescribeTypeRegistrationCommand' + ) + var se_DetectStackDriftCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_DetectStackDriftInput(input, context), + [_A]: _DSD, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_DetectStackDriftCommand' + ) + var se_DetectStackResourceDriftCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_DetectStackResourceDriftInput(input, context), + [_A]: _DSRDe, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_DetectStackResourceDriftCommand' + ) + var se_DetectStackSetDriftCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_DetectStackSetDriftInput(input, context), + [_A]: _DSSD, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_DetectStackSetDriftCommand' + ) + var se_EstimateTemplateCostCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_EstimateTemplateCostInput(input, context), + [_A]: _ETC, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_EstimateTemplateCostCommand' + ) + var se_ExecuteChangeSetCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_ExecuteChangeSetInput(input, context), + [_A]: _ECS, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_ExecuteChangeSetCommand' + ) + var se_GetGeneratedTemplateCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_GetGeneratedTemplateInput(input, context), + [_A]: _GGT, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_GetGeneratedTemplateCommand' + ) + var se_GetStackPolicyCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_GetStackPolicyInput(input, context), + [_A]: _GSP, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_GetStackPolicyCommand' + ) + var se_GetTemplateCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_GetTemplateInput(input, context), + [_A]: _GT, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_GetTemplateCommand' + ) + var se_GetTemplateSummaryCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_GetTemplateSummaryInput(input, context), + [_A]: _GTS, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_GetTemplateSummaryCommand' + ) + var se_ImportStacksToStackSetCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_ImportStacksToStackSetInput(input, context), + [_A]: _ISTSS, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_ImportStacksToStackSetCommand' + ) + var se_ListChangeSetsCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_ListChangeSetsInput(input, context), + [_A]: _LCS, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_ListChangeSetsCommand' + ) + var se_ListExportsCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_ListExportsInput(input, context), + [_A]: _LE, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_ListExportsCommand' + ) + var se_ListGeneratedTemplatesCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_ListGeneratedTemplatesInput(input, context), + [_A]: _LGT, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_ListGeneratedTemplatesCommand' + ) + var se_ListImportsCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_ListImportsInput(input, context), + [_A]: _LI, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_ListImportsCommand' + ) + var se_ListResourceScanRelatedResourcesCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_ListResourceScanRelatedResourcesInput(input, context), + [_A]: _LRSRR, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_ListResourceScanRelatedResourcesCommand' + ) + var se_ListResourceScanResourcesCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_ListResourceScanResourcesInput(input, context), + [_A]: _LRSR, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_ListResourceScanResourcesCommand' + ) + var se_ListResourceScansCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_ListResourceScansInput(input, context), + [_A]: _LRS, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_ListResourceScansCommand' + ) + var se_ListStackInstanceResourceDriftsCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_ListStackInstanceResourceDriftsInput(input, context), + [_A]: _LSIRD, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_ListStackInstanceResourceDriftsCommand' + ) + var se_ListStackInstancesCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_ListStackInstancesInput(input, context), + [_A]: _LSI, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_ListStackInstancesCommand' + ) + var se_ListStackResourcesCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_ListStackResourcesInput(input, context), + [_A]: _LSR, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_ListStackResourcesCommand' + ) + var se_ListStacksCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_ListStacksInput(input, context), + [_A]: _LS, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_ListStacksCommand' + ) + var se_ListStackSetAutoDeploymentTargetsCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_ListStackSetAutoDeploymentTargetsInput(input, context), + [_A]: _LSSADT, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_ListStackSetAutoDeploymentTargetsCommand' + ) + var se_ListStackSetOperationResultsCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_ListStackSetOperationResultsInput(input, context), + [_A]: _LSSOR, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_ListStackSetOperationResultsCommand' + ) + var se_ListStackSetOperationsCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_ListStackSetOperationsInput(input, context), + [_A]: _LSSO, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_ListStackSetOperationsCommand' + ) + var se_ListStackSetsCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_ListStackSetsInput(input, context), + [_A]: _LSS, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_ListStackSetsCommand' + ) + var se_ListTypeRegistrationsCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_ListTypeRegistrationsInput(input, context), + [_A]: _LTR, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_ListTypeRegistrationsCommand' + ) + var se_ListTypesCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_ListTypesInput(input, context), + [_A]: _LT, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_ListTypesCommand' + ) + var se_ListTypeVersionsCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_ListTypeVersionsInput(input, context), + [_A]: _LTV, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_ListTypeVersionsCommand' + ) + var se_PublishTypeCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_PublishTypeInput(input, context), + [_A]: _PT, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_PublishTypeCommand' + ) + var se_RecordHandlerProgressCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_RecordHandlerProgressInput(input, context), + [_A]: _RHP, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_RecordHandlerProgressCommand' + ) + var se_RegisterPublisherCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_RegisterPublisherInput(input, context), + [_A]: _RP, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_RegisterPublisherCommand' + ) + var se_RegisterTypeCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_RegisterTypeInput(input, context), + [_A]: _RT, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_RegisterTypeCommand' + ) + var se_RollbackStackCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_RollbackStackInput(input, context), + [_A]: _RS, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_RollbackStackCommand' + ) + var se_SetStackPolicyCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_SetStackPolicyInput(input, context), + [_A]: _SSP, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_SetStackPolicyCommand' + ) + var se_SetTypeConfigurationCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_SetTypeConfigurationInput(input, context), + [_A]: _STC, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_SetTypeConfigurationCommand' + ) + var se_SetTypeDefaultVersionCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_SetTypeDefaultVersionInput(input, context), + [_A]: _STDV, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_SetTypeDefaultVersionCommand' + ) + var se_SignalResourceCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_SignalResourceInput(input, context), + [_A]: _SR, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_SignalResourceCommand' + ) + var se_StartResourceScanCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_StartResourceScanInput(input, context), + [_A]: _SRS, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_StartResourceScanCommand' + ) + var se_StopStackSetOperationCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_StopStackSetOperationInput(input, context), + [_A]: _SSSO, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_StopStackSetOperationCommand' + ) + var se_TestTypeCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_TestTypeInput(input, context), + [_A]: _TT, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_TestTypeCommand' + ) + var se_UpdateGeneratedTemplateCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_UpdateGeneratedTemplateInput(input, context), + [_A]: _UGT, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_UpdateGeneratedTemplateCommand' + ) + var se_UpdateStackCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_UpdateStackInput(input, context), + [_A]: _US, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_UpdateStackCommand' + ) + var se_UpdateStackInstancesCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_UpdateStackInstancesInput(input, context), + [_A]: _USI, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_UpdateStackInstancesCommand' + ) + var se_UpdateStackSetCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_UpdateStackSetInput(input, context), + [_A]: _USS, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_UpdateStackSetCommand' + ) + var se_UpdateTerminationProtectionCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_UpdateTerminationProtectionInput(input, context), + [_A]: _UTP, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_UpdateTerminationProtectionCommand' + ) + var se_ValidateTemplateCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_ValidateTemplateInput(input, context), + [_A]: _VT, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_ValidateTemplateCommand' + ) + var de_ActivateOrganizationsAccessCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_ActivateOrganizationsAccessOutput( + data.ActivateOrganizationsAccessResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_ActivateOrganizationsAccessCommand' + ) + var de_ActivateTypeCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_ActivateTypeOutput(data.ActivateTypeResult, context) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_ActivateTypeCommand' + ) + var de_BatchDescribeTypeConfigurationsCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_BatchDescribeTypeConfigurationsOutput( + data.BatchDescribeTypeConfigurationsResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_BatchDescribeTypeConfigurationsCommand' + ) + var de_CancelUpdateStackCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + await (0, import_smithy_client.collectBody)(output.body, context) + const response = { + $metadata: deserializeMetadata(output) + } + return response + }, + 'de_CancelUpdateStackCommand' + ) + var de_ContinueUpdateRollbackCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_ContinueUpdateRollbackOutput( + data.ContinueUpdateRollbackResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_ContinueUpdateRollbackCommand' + ) + var de_CreateChangeSetCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_CreateChangeSetOutput( + data.CreateChangeSetResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_CreateChangeSetCommand' + ) + var de_CreateGeneratedTemplateCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_CreateGeneratedTemplateOutput( + data.CreateGeneratedTemplateResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_CreateGeneratedTemplateCommand' + ) + var de_CreateStackCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_CreateStackOutput(data.CreateStackResult, context) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_CreateStackCommand' + ) + var de_CreateStackInstancesCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_CreateStackInstancesOutput( + data.CreateStackInstancesResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_CreateStackInstancesCommand' + ) + var de_CreateStackSetCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_CreateStackSetOutput(data.CreateStackSetResult, context) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_CreateStackSetCommand' + ) + var de_DeactivateOrganizationsAccessCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_DeactivateOrganizationsAccessOutput( + data.DeactivateOrganizationsAccessResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_DeactivateOrganizationsAccessCommand' + ) + var de_DeactivateTypeCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_DeactivateTypeOutput(data.DeactivateTypeResult, context) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_DeactivateTypeCommand' + ) + var de_DeleteChangeSetCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_DeleteChangeSetOutput( + data.DeleteChangeSetResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_DeleteChangeSetCommand' + ) + var de_DeleteGeneratedTemplateCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + await (0, import_smithy_client.collectBody)(output.body, context) + const response = { + $metadata: deserializeMetadata(output) + } + return response + }, + 'de_DeleteGeneratedTemplateCommand' + ) + var de_DeleteStackCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + await (0, import_smithy_client.collectBody)(output.body, context) + const response = { + $metadata: deserializeMetadata(output) + } + return response + }, + 'de_DeleteStackCommand' + ) + var de_DeleteStackInstancesCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_DeleteStackInstancesOutput( + data.DeleteStackInstancesResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_DeleteStackInstancesCommand' + ) + var de_DeleteStackSetCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_DeleteStackSetOutput(data.DeleteStackSetResult, context) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_DeleteStackSetCommand' + ) + var de_DeregisterTypeCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_DeregisterTypeOutput(data.DeregisterTypeResult, context) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_DeregisterTypeCommand' + ) + var de_DescribeAccountLimitsCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_DescribeAccountLimitsOutput( + data.DescribeAccountLimitsResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_DescribeAccountLimitsCommand' + ) + var de_DescribeChangeSetCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_DescribeChangeSetOutput( + data.DescribeChangeSetResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_DescribeChangeSetCommand' + ) + var de_DescribeChangeSetHooksCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_DescribeChangeSetHooksOutput( + data.DescribeChangeSetHooksResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_DescribeChangeSetHooksCommand' + ) + var de_DescribeGeneratedTemplateCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_DescribeGeneratedTemplateOutput( + data.DescribeGeneratedTemplateResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_DescribeGeneratedTemplateCommand' + ) + var de_DescribeOrganizationsAccessCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_DescribeOrganizationsAccessOutput( + data.DescribeOrganizationsAccessResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_DescribeOrganizationsAccessCommand' + ) + var de_DescribePublisherCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_DescribePublisherOutput( + data.DescribePublisherResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_DescribePublisherCommand' + ) + var de_DescribeResourceScanCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_DescribeResourceScanOutput( + data.DescribeResourceScanResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_DescribeResourceScanCommand' + ) + var de_DescribeStackDriftDetectionStatusCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_DescribeStackDriftDetectionStatusOutput( + data.DescribeStackDriftDetectionStatusResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_DescribeStackDriftDetectionStatusCommand' + ) + var de_DescribeStackEventsCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_DescribeStackEventsOutput( + data.DescribeStackEventsResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_DescribeStackEventsCommand' + ) + var de_DescribeStackInstanceCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_DescribeStackInstanceOutput( + data.DescribeStackInstanceResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_DescribeStackInstanceCommand' + ) + var de_DescribeStackResourceCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_DescribeStackResourceOutput( + data.DescribeStackResourceResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_DescribeStackResourceCommand' + ) + var de_DescribeStackResourceDriftsCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_DescribeStackResourceDriftsOutput( + data.DescribeStackResourceDriftsResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_DescribeStackResourceDriftsCommand' + ) + var de_DescribeStackResourcesCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_DescribeStackResourcesOutput( + data.DescribeStackResourcesResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_DescribeStackResourcesCommand' + ) + var de_DescribeStacksCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_DescribeStacksOutput(data.DescribeStacksResult, context) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_DescribeStacksCommand' + ) + var de_DescribeStackSetCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_DescribeStackSetOutput( + data.DescribeStackSetResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_DescribeStackSetCommand' + ) + var de_DescribeStackSetOperationCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_DescribeStackSetOperationOutput( + data.DescribeStackSetOperationResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_DescribeStackSetOperationCommand' + ) + var de_DescribeTypeCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_DescribeTypeOutput(data.DescribeTypeResult, context) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_DescribeTypeCommand' + ) + var de_DescribeTypeRegistrationCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_DescribeTypeRegistrationOutput( + data.DescribeTypeRegistrationResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_DescribeTypeRegistrationCommand' + ) + var de_DetectStackDriftCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_DetectStackDriftOutput( + data.DetectStackDriftResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_DetectStackDriftCommand' + ) + var de_DetectStackResourceDriftCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_DetectStackResourceDriftOutput( + data.DetectStackResourceDriftResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_DetectStackResourceDriftCommand' + ) + var de_DetectStackSetDriftCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_DetectStackSetDriftOutput( + data.DetectStackSetDriftResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_DetectStackSetDriftCommand' + ) + var de_EstimateTemplateCostCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_EstimateTemplateCostOutput( + data.EstimateTemplateCostResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_EstimateTemplateCostCommand' + ) + var de_ExecuteChangeSetCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_ExecuteChangeSetOutput( + data.ExecuteChangeSetResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_ExecuteChangeSetCommand' + ) + var de_GetGeneratedTemplateCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_GetGeneratedTemplateOutput( + data.GetGeneratedTemplateResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_GetGeneratedTemplateCommand' + ) + var de_GetStackPolicyCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_GetStackPolicyOutput(data.GetStackPolicyResult, context) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_GetStackPolicyCommand' + ) + var de_GetTemplateCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_GetTemplateOutput(data.GetTemplateResult, context) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_GetTemplateCommand' + ) + var de_GetTemplateSummaryCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_GetTemplateSummaryOutput( + data.GetTemplateSummaryResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_GetTemplateSummaryCommand' + ) + var de_ImportStacksToStackSetCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_ImportStacksToStackSetOutput( + data.ImportStacksToStackSetResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_ImportStacksToStackSetCommand' + ) + var de_ListChangeSetsCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_ListChangeSetsOutput(data.ListChangeSetsResult, context) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_ListChangeSetsCommand' + ) + var de_ListExportsCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_ListExportsOutput(data.ListExportsResult, context) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_ListExportsCommand' + ) + var de_ListGeneratedTemplatesCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_ListGeneratedTemplatesOutput( + data.ListGeneratedTemplatesResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_ListGeneratedTemplatesCommand' + ) + var de_ListImportsCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_ListImportsOutput(data.ListImportsResult, context) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_ListImportsCommand' + ) + var de_ListResourceScanRelatedResourcesCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_ListResourceScanRelatedResourcesOutput( + data.ListResourceScanRelatedResourcesResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_ListResourceScanRelatedResourcesCommand' + ) + var de_ListResourceScanResourcesCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_ListResourceScanResourcesOutput( + data.ListResourceScanResourcesResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_ListResourceScanResourcesCommand' + ) + var de_ListResourceScansCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_ListResourceScansOutput( + data.ListResourceScansResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_ListResourceScansCommand' + ) + var de_ListStackInstanceResourceDriftsCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_ListStackInstanceResourceDriftsOutput( + data.ListStackInstanceResourceDriftsResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_ListStackInstanceResourceDriftsCommand' + ) + var de_ListStackInstancesCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_ListStackInstancesOutput( + data.ListStackInstancesResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_ListStackInstancesCommand' + ) + var de_ListStackResourcesCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_ListStackResourcesOutput( + data.ListStackResourcesResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_ListStackResourcesCommand' + ) + var de_ListStacksCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_ListStacksOutput(data.ListStacksResult, context) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_ListStacksCommand' + ) + var de_ListStackSetAutoDeploymentTargetsCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_ListStackSetAutoDeploymentTargetsOutput( + data.ListStackSetAutoDeploymentTargetsResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_ListStackSetAutoDeploymentTargetsCommand' + ) + var de_ListStackSetOperationResultsCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_ListStackSetOperationResultsOutput( + data.ListStackSetOperationResultsResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_ListStackSetOperationResultsCommand' + ) + var de_ListStackSetOperationsCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_ListStackSetOperationsOutput( + data.ListStackSetOperationsResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_ListStackSetOperationsCommand' + ) + var de_ListStackSetsCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_ListStackSetsOutput(data.ListStackSetsResult, context) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_ListStackSetsCommand' + ) + var de_ListTypeRegistrationsCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_ListTypeRegistrationsOutput( + data.ListTypeRegistrationsResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_ListTypeRegistrationsCommand' + ) + var de_ListTypesCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_ListTypesOutput(data.ListTypesResult, context) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_ListTypesCommand' + ) + var de_ListTypeVersionsCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_ListTypeVersionsOutput( + data.ListTypeVersionsResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_ListTypeVersionsCommand' + ) + var de_PublishTypeCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_PublishTypeOutput(data.PublishTypeResult, context) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_PublishTypeCommand' + ) + var de_RecordHandlerProgressCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_RecordHandlerProgressOutput( + data.RecordHandlerProgressResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_RecordHandlerProgressCommand' + ) + var de_RegisterPublisherCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_RegisterPublisherOutput( + data.RegisterPublisherResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_RegisterPublisherCommand' + ) + var de_RegisterTypeCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_RegisterTypeOutput(data.RegisterTypeResult, context) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_RegisterTypeCommand' + ) + var de_RollbackStackCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_RollbackStackOutput(data.RollbackStackResult, context) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_RollbackStackCommand' + ) + var de_SetStackPolicyCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + await (0, import_smithy_client.collectBody)(output.body, context) + const response = { + $metadata: deserializeMetadata(output) + } + return response + }, + 'de_SetStackPolicyCommand' + ) + var de_SetTypeConfigurationCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_SetTypeConfigurationOutput( + data.SetTypeConfigurationResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_SetTypeConfigurationCommand' + ) + var de_SetTypeDefaultVersionCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_SetTypeDefaultVersionOutput( + data.SetTypeDefaultVersionResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_SetTypeDefaultVersionCommand' + ) + var de_SignalResourceCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + await (0, import_smithy_client.collectBody)(output.body, context) + const response = { + $metadata: deserializeMetadata(output) + } + return response + }, + 'de_SignalResourceCommand' + ) + var de_StartResourceScanCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_StartResourceScanOutput( + data.StartResourceScanResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_StartResourceScanCommand' + ) + var de_StopStackSetOperationCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_StopStackSetOperationOutput( + data.StopStackSetOperationResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_StopStackSetOperationCommand' + ) + var de_TestTypeCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_TestTypeOutput(data.TestTypeResult, context) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_TestTypeCommand' + ) + var de_UpdateGeneratedTemplateCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_UpdateGeneratedTemplateOutput( + data.UpdateGeneratedTemplateResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_UpdateGeneratedTemplateCommand' + ) + var de_UpdateStackCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_UpdateStackOutput(data.UpdateStackResult, context) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_UpdateStackCommand' + ) + var de_UpdateStackInstancesCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_UpdateStackInstancesOutput( + data.UpdateStackInstancesResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_UpdateStackInstancesCommand' + ) + var de_UpdateStackSetCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_UpdateStackSetOutput(data.UpdateStackSetResult, context) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_UpdateStackSetCommand' + ) + var de_UpdateTerminationProtectionCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_UpdateTerminationProtectionOutput( + data.UpdateTerminationProtectionResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_UpdateTerminationProtectionCommand' + ) + var de_ValidateTemplateCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core2.parseXmlBody)( + output.body, + context + ) + let contents = {} + contents = de_ValidateTemplateOutput( + data.ValidateTemplateResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_ValidateTemplateCommand' + ) + var de_CommandError = /* @__PURE__ */ __name(async (output, context) => { + const parsedOutput = { + ...output, + body: await (0, import_core2.parseXmlErrorBody)(output.body, context) + } + const errorCode = loadQueryErrorCode(output, parsedOutput.body) + switch (errorCode) { + case 'InvalidOperationException': + case 'com.amazonaws.cloudformation#InvalidOperationException': + throw await de_InvalidOperationExceptionRes(parsedOutput, context) + case 'OperationNotFoundException': + case 'com.amazonaws.cloudformation#OperationNotFoundException': + throw await de_OperationNotFoundExceptionRes(parsedOutput, context) + case 'CFNRegistryException': + case 'com.amazonaws.cloudformation#CFNRegistryException': + throw await de_CFNRegistryExceptionRes(parsedOutput, context) + case 'TypeNotFoundException': + case 'com.amazonaws.cloudformation#TypeNotFoundException': + throw await de_TypeNotFoundExceptionRes(parsedOutput, context) + case 'TypeConfigurationNotFoundException': + case 'com.amazonaws.cloudformation#TypeConfigurationNotFoundException': + throw await de_TypeConfigurationNotFoundExceptionRes( + parsedOutput, + context + ) + case 'TokenAlreadyExistsException': + case 'com.amazonaws.cloudformation#TokenAlreadyExistsException': + throw await de_TokenAlreadyExistsExceptionRes(parsedOutput, context) + case 'AlreadyExistsException': + case 'com.amazonaws.cloudformation#AlreadyExistsException': + throw await de_AlreadyExistsExceptionRes(parsedOutput, context) + case 'InsufficientCapabilitiesException': + case 'com.amazonaws.cloudformation#InsufficientCapabilitiesException': + throw await de_InsufficientCapabilitiesExceptionRes( + parsedOutput, + context + ) + case 'LimitExceededException': + case 'com.amazonaws.cloudformation#LimitExceededException': + throw await de_LimitExceededExceptionRes(parsedOutput, context) + case 'ConcurrentResourcesLimitExceeded': + case 'com.amazonaws.cloudformation#ConcurrentResourcesLimitExceededException': + throw await de_ConcurrentResourcesLimitExceededExceptionRes( + parsedOutput, + context + ) + case 'OperationIdAlreadyExistsException': + case 'com.amazonaws.cloudformation#OperationIdAlreadyExistsException': + throw await de_OperationIdAlreadyExistsExceptionRes( + parsedOutput, + context + ) + case 'OperationInProgressException': + case 'com.amazonaws.cloudformation#OperationInProgressException': + throw await de_OperationInProgressExceptionRes( + parsedOutput, + context + ) + case 'StackSetNotFoundException': + case 'com.amazonaws.cloudformation#StackSetNotFoundException': + throw await de_StackSetNotFoundExceptionRes(parsedOutput, context) + case 'StaleRequestException': + case 'com.amazonaws.cloudformation#StaleRequestException': + throw await de_StaleRequestExceptionRes(parsedOutput, context) + case 'CreatedButModifiedException': + case 'com.amazonaws.cloudformation#CreatedButModifiedException': + throw await de_CreatedButModifiedExceptionRes(parsedOutput, context) + case 'NameAlreadyExistsException': + case 'com.amazonaws.cloudformation#NameAlreadyExistsException': + throw await de_NameAlreadyExistsExceptionRes(parsedOutput, context) + case 'InvalidChangeSetStatus': + case 'com.amazonaws.cloudformation#InvalidChangeSetStatusException': + throw await de_InvalidChangeSetStatusExceptionRes( + parsedOutput, + context + ) + case 'GeneratedTemplateNotFound': + case 'com.amazonaws.cloudformation#GeneratedTemplateNotFoundException': + throw await de_GeneratedTemplateNotFoundExceptionRes( + parsedOutput, + context + ) + case 'StackSetNotEmptyException': + case 'com.amazonaws.cloudformation#StackSetNotEmptyException': + throw await de_StackSetNotEmptyExceptionRes(parsedOutput, context) + case 'ChangeSetNotFound': + case 'com.amazonaws.cloudformation#ChangeSetNotFoundException': + throw await de_ChangeSetNotFoundExceptionRes(parsedOutput, context) + case 'ResourceScanNotFound': + case 'com.amazonaws.cloudformation#ResourceScanNotFoundException': + throw await de_ResourceScanNotFoundExceptionRes( + parsedOutput, + context + ) + case 'StackInstanceNotFoundException': + case 'com.amazonaws.cloudformation#StackInstanceNotFoundException': + throw await de_StackInstanceNotFoundExceptionRes( + parsedOutput, + context + ) + case 'StackNotFoundException': + case 'com.amazonaws.cloudformation#StackNotFoundException': + throw await de_StackNotFoundExceptionRes(parsedOutput, context) + case 'ResourceScanInProgress': + case 'com.amazonaws.cloudformation#ResourceScanInProgressException': + throw await de_ResourceScanInProgressExceptionRes( + parsedOutput, + context + ) + case 'ConditionalCheckFailed': + case 'com.amazonaws.cloudformation#OperationStatusCheckFailedException': + throw await de_OperationStatusCheckFailedExceptionRes( + parsedOutput, + context + ) + case 'InvalidStateTransition': + case 'com.amazonaws.cloudformation#InvalidStateTransitionException': + throw await de_InvalidStateTransitionExceptionRes( + parsedOutput, + context + ) + case 'ResourceScanLimitExceeded': + case 'com.amazonaws.cloudformation#ResourceScanLimitExceededException': + throw await de_ResourceScanLimitExceededExceptionRes( + parsedOutput, + context + ) + default: + const parsedBody = parsedOutput.body + return throwDefaultError({ + output, + parsedBody: parsedBody.Error, + errorCode + }) + } + }, 'de_CommandError') + var de_AlreadyExistsExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const body = parsedOutput.body + const deserialized = de_AlreadyExistsException(body.Error, context) + const exception = new AlreadyExistsException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + body + ) + }, + 'de_AlreadyExistsExceptionRes' + ) + var de_CFNRegistryExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const body = parsedOutput.body + const deserialized = de_CFNRegistryException(body.Error, context) + const exception = new CFNRegistryException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + body + ) + }, + 'de_CFNRegistryExceptionRes' + ) + var de_ChangeSetNotFoundExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const body = parsedOutput.body + const deserialized = de_ChangeSetNotFoundException( + body.Error, + context + ) + const exception = new ChangeSetNotFoundException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + body + ) + }, + 'de_ChangeSetNotFoundExceptionRes' + ) + var de_ConcurrentResourcesLimitExceededExceptionRes = + /* @__PURE__ */ __name(async (parsedOutput, context) => { + const body = parsedOutput.body + const deserialized = de_ConcurrentResourcesLimitExceededException( + body.Error, + context + ) + const exception = new ConcurrentResourcesLimitExceededException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + body + ) + }, 'de_ConcurrentResourcesLimitExceededExceptionRes') + var de_CreatedButModifiedExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const body = parsedOutput.body + const deserialized = de_CreatedButModifiedException( + body.Error, + context + ) + const exception = new CreatedButModifiedException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + body + ) + }, + 'de_CreatedButModifiedExceptionRes' + ) + var de_GeneratedTemplateNotFoundExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const body = parsedOutput.body + const deserialized = de_GeneratedTemplateNotFoundException( + body.Error, + context + ) + const exception = new GeneratedTemplateNotFoundException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + body + ) + }, + 'de_GeneratedTemplateNotFoundExceptionRes' + ) + var de_InsufficientCapabilitiesExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const body = parsedOutput.body + const deserialized = de_InsufficientCapabilitiesException( + body.Error, + context + ) + const exception = new InsufficientCapabilitiesException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + body + ) + }, + 'de_InsufficientCapabilitiesExceptionRes' + ) + var de_InvalidChangeSetStatusExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const body = parsedOutput.body + const deserialized = de_InvalidChangeSetStatusException( + body.Error, + context + ) + const exception = new InvalidChangeSetStatusException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + body + ) + }, + 'de_InvalidChangeSetStatusExceptionRes' + ) + var de_InvalidOperationExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const body = parsedOutput.body + const deserialized = de_InvalidOperationException(body.Error, context) + const exception = new InvalidOperationException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + body + ) + }, + 'de_InvalidOperationExceptionRes' + ) + var de_InvalidStateTransitionExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const body = parsedOutput.body + const deserialized = de_InvalidStateTransitionException( + body.Error, + context + ) + const exception = new InvalidStateTransitionException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + body + ) + }, + 'de_InvalidStateTransitionExceptionRes' + ) + var de_LimitExceededExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const body = parsedOutput.body + const deserialized = de_LimitExceededException(body.Error, context) + const exception = new LimitExceededException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + body + ) + }, + 'de_LimitExceededExceptionRes' + ) + var de_NameAlreadyExistsExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const body = parsedOutput.body + const deserialized = de_NameAlreadyExistsException( + body.Error, + context + ) + const exception = new NameAlreadyExistsException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + body + ) + }, + 'de_NameAlreadyExistsExceptionRes' + ) + var de_OperationIdAlreadyExistsExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const body = parsedOutput.body + const deserialized = de_OperationIdAlreadyExistsException( + body.Error, + context + ) + const exception = new OperationIdAlreadyExistsException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + body + ) + }, + 'de_OperationIdAlreadyExistsExceptionRes' + ) + var de_OperationInProgressExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const body = parsedOutput.body + const deserialized = de_OperationInProgressException( + body.Error, + context + ) + const exception = new OperationInProgressException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + body + ) + }, + 'de_OperationInProgressExceptionRes' + ) + var de_OperationNotFoundExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const body = parsedOutput.body + const deserialized = de_OperationNotFoundException( + body.Error, + context + ) + const exception = new OperationNotFoundException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + body + ) + }, + 'de_OperationNotFoundExceptionRes' + ) + var de_OperationStatusCheckFailedExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const body = parsedOutput.body + const deserialized = de_OperationStatusCheckFailedException( + body.Error, + context + ) + const exception = new OperationStatusCheckFailedException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + body + ) + }, + 'de_OperationStatusCheckFailedExceptionRes' + ) + var de_ResourceScanInProgressExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const body = parsedOutput.body + const deserialized = de_ResourceScanInProgressException( + body.Error, + context + ) + const exception = new ResourceScanInProgressException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + body + ) + }, + 'de_ResourceScanInProgressExceptionRes' + ) + var de_ResourceScanLimitExceededExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const body = parsedOutput.body + const deserialized = de_ResourceScanLimitExceededException( + body.Error, + context + ) + const exception = new ResourceScanLimitExceededException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + body + ) + }, + 'de_ResourceScanLimitExceededExceptionRes' + ) + var de_ResourceScanNotFoundExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const body = parsedOutput.body + const deserialized = de_ResourceScanNotFoundException( + body.Error, + context + ) + const exception = new ResourceScanNotFoundException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + body + ) + }, + 'de_ResourceScanNotFoundExceptionRes' + ) + var de_StackInstanceNotFoundExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const body = parsedOutput.body + const deserialized = de_StackInstanceNotFoundException( + body.Error, + context + ) + const exception = new StackInstanceNotFoundException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + body + ) + }, + 'de_StackInstanceNotFoundExceptionRes' + ) + var de_StackNotFoundExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const body = parsedOutput.body + const deserialized = de_StackNotFoundException(body.Error, context) + const exception = new StackNotFoundException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + body + ) + }, + 'de_StackNotFoundExceptionRes' + ) + var de_StackSetNotEmptyExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const body = parsedOutput.body + const deserialized = de_StackSetNotEmptyException(body.Error, context) + const exception = new StackSetNotEmptyException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + body + ) + }, + 'de_StackSetNotEmptyExceptionRes' + ) + var de_StackSetNotFoundExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const body = parsedOutput.body + const deserialized = de_StackSetNotFoundException(body.Error, context) + const exception = new StackSetNotFoundException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + body + ) + }, + 'de_StackSetNotFoundExceptionRes' + ) + var de_StaleRequestExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const body = parsedOutput.body + const deserialized = de_StaleRequestException(body.Error, context) + const exception = new StaleRequestException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + body + ) + }, + 'de_StaleRequestExceptionRes' + ) + var de_TokenAlreadyExistsExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const body = parsedOutput.body + const deserialized = de_TokenAlreadyExistsException( + body.Error, + context + ) + const exception = new TokenAlreadyExistsException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + body + ) + }, + 'de_TokenAlreadyExistsExceptionRes' + ) + var de_TypeConfigurationNotFoundExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const body = parsedOutput.body + const deserialized = de_TypeConfigurationNotFoundException( + body.Error, + context + ) + const exception = new TypeConfigurationNotFoundException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + body + ) + }, + 'de_TypeConfigurationNotFoundExceptionRes' + ) + var de_TypeNotFoundExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const body = parsedOutput.body + const deserialized = de_TypeNotFoundException(body.Error, context) + const exception = new TypeNotFoundException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + body + ) + }, + 'de_TypeNotFoundExceptionRes' + ) + var se_AccountList = /* @__PURE__ */ __name((input, context) => { + const entries = {} + let counter = 1 + for (const entry of input) { + if (entry === null) { + continue + } + entries[`member.${counter}`] = entry + counter++ + } + return entries + }, 'se_AccountList') + var se_ActivateOrganizationsAccessInput = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + return entries + }, + 'se_ActivateOrganizationsAccessInput' + ) + var se_ActivateTypeInput = /* @__PURE__ */ __name((input, context) => { + const entries = {} + if (input[_T] != null) { + entries[_T] = input[_T] + } + if (input[_PTA] != null) { + entries[_PTA] = input[_PTA] + } + if (input[_PI] != null) { + entries[_PI] = input[_PI] + } + if (input[_TN] != null) { + entries[_TN] = input[_TN] + } + if (input[_TNA] != null) { + entries[_TNA] = input[_TNA] + } + if (input[_AU] != null) { + entries[_AU] = input[_AU] + } + if (input[_LC] != null) { + const memberEntries = se_LoggingConfig(input[_LC], context) + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `LoggingConfig.${key}` + entries[loc] = value + }) + } + if (input[_ERA] != null) { + entries[_ERA] = input[_ERA] + } + if (input[_VB] != null) { + entries[_VB] = input[_VB] + } + if (input[_MV] != null) { + entries[_MV] = input[_MV] + } + return entries + }, 'se_ActivateTypeInput') + var se_AutoDeployment = /* @__PURE__ */ __name((input, context) => { + const entries = {} + if (input[_E] != null) { + entries[_E] = input[_E] + } + if (input[_RSOAR] != null) { + entries[_RSOAR] = input[_RSOAR] + } + return entries + }, 'se_AutoDeployment') + var se_BatchDescribeTypeConfigurationsInput = /* @__PURE__ */ __name( + (input, context) => { + var _a + const entries = {} + if (input[_TCI] != null) { + const memberEntries = se_TypeConfigurationIdentifiers( + input[_TCI], + context + ) + if (((_a = input[_TCI]) == null ? void 0 : _a.length) === 0) { + entries.TypeConfigurationIdentifiers = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `TypeConfigurationIdentifiers.${key}` + entries[loc] = value + }) + } + return entries + }, + 'se_BatchDescribeTypeConfigurationsInput' + ) + var se_CancelUpdateStackInput = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_SN] != null) { + entries[_SN] = input[_SN] + } + if (input[_CRT] != null) { + entries[_CRT] = input[_CRT] + } + return entries + }, + 'se_CancelUpdateStackInput' + ) + var se_Capabilities = /* @__PURE__ */ __name((input, context) => { + const entries = {} + let counter = 1 + for (const entry of input) { + if (entry === null) { + continue + } + entries[`member.${counter}`] = entry + counter++ + } + return entries + }, 'se_Capabilities') + var se_ContinueUpdateRollbackInput = /* @__PURE__ */ __name( + (input, context) => { + var _a + const entries = {} + if (input[_SN] != null) { + entries[_SN] = input[_SN] + } + if (input[_RARN] != null) { + entries[_RARN] = input[_RARN] + } + if (input[_RTS] != null) { + const memberEntries = se_ResourcesToSkip(input[_RTS], context) + if (((_a = input[_RTS]) == null ? void 0 : _a.length) === 0) { + entries.ResourcesToSkip = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `ResourcesToSkip.${key}` + entries[loc] = value + }) + } + if (input[_CRT] != null) { + entries[_CRT] = input[_CRT] + } + return entries + }, + 'se_ContinueUpdateRollbackInput' + ) + var se_CreateChangeSetInput = /* @__PURE__ */ __name((input, context) => { + var _a, _b, _c, _d, _e2, _f + const entries = {} + if (input[_SN] != null) { + entries[_SN] = input[_SN] + } + if (input[_TB] != null) { + entries[_TB] = input[_TB] + } + if (input[_TURL] != null) { + entries[_TURL] = input[_TURL] + } + if (input[_UPT] != null) { + entries[_UPT] = input[_UPT] + } + if (input[_P] != null) { + const memberEntries = se_Parameters(input[_P], context) + if (((_a = input[_P]) == null ? void 0 : _a.length) === 0) { + entries.Parameters = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `Parameters.${key}` + entries[loc] = value + }) + } + if (input[_C] != null) { + const memberEntries = se_Capabilities(input[_C], context) + if (((_b = input[_C]) == null ? void 0 : _b.length) === 0) { + entries.Capabilities = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `Capabilities.${key}` + entries[loc] = value + }) + } + if (input[_RTe] != null) { + const memberEntries = se_ResourceTypes(input[_RTe], context) + if (((_c = input[_RTe]) == null ? void 0 : _c.length) === 0) { + entries.ResourceTypes = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `ResourceTypes.${key}` + entries[loc] = value + }) + } + if (input[_RARN] != null) { + entries[_RARN] = input[_RARN] + } + if (input[_RC] != null) { + const memberEntries = se_RollbackConfiguration(input[_RC], context) + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `RollbackConfiguration.${key}` + entries[loc] = value + }) + } + if (input[_NARN] != null) { + const memberEntries = se_NotificationARNs(input[_NARN], context) + if (((_d = input[_NARN]) == null ? void 0 : _d.length) === 0) { + entries.NotificationARNs = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `NotificationARNs.${key}` + entries[loc] = value + }) + } + if (input[_Ta] != null) { + const memberEntries = se_Tags(input[_Ta], context) + if (((_e2 = input[_Ta]) == null ? void 0 : _e2.length) === 0) { + entries.Tags = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `Tags.${key}` + entries[loc] = value + }) + } + if (input[_CSN] != null) { + entries[_CSN] = input[_CSN] + } + if (input[_CT] != null) { + entries[_CT] = input[_CT] + } + if (input[_D] != null) { + entries[_D] = input[_D] + } + if (input[_CST] != null) { + entries[_CST] = input[_CST] + } + if (input[_RTI] != null) { + const memberEntries = se_ResourcesToImport(input[_RTI], context) + if (((_f = input[_RTI]) == null ? void 0 : _f.length) === 0) { + entries.ResourcesToImport = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `ResourcesToImport.${key}` + entries[loc] = value + }) + } + if (input[_INS] != null) { + entries[_INS] = input[_INS] + } + if (input[_OSF] != null) { + entries[_OSF] = input[_OSF] + } + if (input[_IER] != null) { + entries[_IER] = input[_IER] + } + return entries + }, 'se_CreateChangeSetInput') + var se_CreateGeneratedTemplateInput = /* @__PURE__ */ __name( + (input, context) => { + var _a + const entries = {} + if (input[_R] != null) { + const memberEntries = se_ResourceDefinitions(input[_R], context) + if (((_a = input[_R]) == null ? void 0 : _a.length) === 0) { + entries.Resources = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `Resources.${key}` + entries[loc] = value + }) + } + if (input[_GTN] != null) { + entries[_GTN] = input[_GTN] + } + if (input[_SN] != null) { + entries[_SN] = input[_SN] + } + if (input[_TC] != null) { + const memberEntries = se_TemplateConfiguration(input[_TC], context) + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `TemplateConfiguration.${key}` + entries[loc] = value + }) + } + return entries + }, + 'se_CreateGeneratedTemplateInput' + ) + var se_CreateStackInput = /* @__PURE__ */ __name((input, context) => { + var _a, _b, _c, _d, _e2 + const entries = {} + if (input[_SN] != null) { + entries[_SN] = input[_SN] + } + if (input[_TB] != null) { + entries[_TB] = input[_TB] + } + if (input[_TURL] != null) { + entries[_TURL] = input[_TURL] + } + if (input[_P] != null) { + const memberEntries = se_Parameters(input[_P], context) + if (((_a = input[_P]) == null ? void 0 : _a.length) === 0) { + entries.Parameters = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `Parameters.${key}` + entries[loc] = value + }) + } + if (input[_DR] != null) { + entries[_DR] = input[_DR] + } + if (input[_RC] != null) { + const memberEntries = se_RollbackConfiguration(input[_RC], context) + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `RollbackConfiguration.${key}` + entries[loc] = value + }) + } + if (input[_TIM] != null) { + entries[_TIM] = input[_TIM] + } + if (input[_NARN] != null) { + const memberEntries = se_NotificationARNs(input[_NARN], context) + if (((_b = input[_NARN]) == null ? void 0 : _b.length) === 0) { + entries.NotificationARNs = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `NotificationARNs.${key}` + entries[loc] = value + }) + } + if (input[_C] != null) { + const memberEntries = se_Capabilities(input[_C], context) + if (((_c = input[_C]) == null ? void 0 : _c.length) === 0) { + entries.Capabilities = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `Capabilities.${key}` + entries[loc] = value + }) + } + if (input[_RTe] != null) { + const memberEntries = se_ResourceTypes(input[_RTe], context) + if (((_d = input[_RTe]) == null ? void 0 : _d.length) === 0) { + entries.ResourceTypes = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `ResourceTypes.${key}` + entries[loc] = value + }) + } + if (input[_RARN] != null) { + entries[_RARN] = input[_RARN] + } + if (input[_OF] != null) { + entries[_OF] = input[_OF] + } + if (input[_SPB] != null) { + entries[_SPB] = input[_SPB] + } + if (input[_SPURL] != null) { + entries[_SPURL] = input[_SPURL] + } + if (input[_Ta] != null) { + const memberEntries = se_Tags(input[_Ta], context) + if (((_e2 = input[_Ta]) == null ? void 0 : _e2.length) === 0) { + entries.Tags = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `Tags.${key}` + entries[loc] = value + }) + } + if (input[_CRT] != null) { + entries[_CRT] = input[_CRT] + } + if (input[_ETP] != null) { + entries[_ETP] = input[_ETP] + } + if (input[_REOC] != null) { + entries[_REOC] = input[_REOC] + } + return entries + }, 'se_CreateStackInput') + var se_CreateStackInstancesInput = /* @__PURE__ */ __name( + (input, context) => { + var _a, _b, _c + const entries = {} + if (input[_SSN] != null) { + entries[_SSN] = input[_SSN] + } + if (input[_Ac] != null) { + const memberEntries = se_AccountList(input[_Ac], context) + if (((_a = input[_Ac]) == null ? void 0 : _a.length) === 0) { + entries.Accounts = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `Accounts.${key}` + entries[loc] = value + }) + } + if (input[_DTep] != null) { + const memberEntries = se_DeploymentTargets(input[_DTep], context) + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `DeploymentTargets.${key}` + entries[loc] = value + }) + } + if (input[_Re] != null) { + const memberEntries = se_RegionList(input[_Re], context) + if (((_b = input[_Re]) == null ? void 0 : _b.length) === 0) { + entries.Regions = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `Regions.${key}` + entries[loc] = value + }) + } + if (input[_PO] != null) { + const memberEntries = se_Parameters(input[_PO], context) + if (((_c = input[_PO]) == null ? void 0 : _c.length) === 0) { + entries.ParameterOverrides = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `ParameterOverrides.${key}` + entries[loc] = value + }) + } + if (input[_OP] != null) { + const memberEntries = se_StackSetOperationPreferences( + input[_OP], + context + ) + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `OperationPreferences.${key}` + entries[loc] = value + }) + } + if (input[_OI] === void 0) { + input[_OI] = (0, import_uuid.v4)() + } + if (input[_OI] != null) { + entries[_OI] = input[_OI] + } + if (input[_CA] != null) { + entries[_CA] = input[_CA] + } + return entries + }, + 'se_CreateStackInstancesInput' + ) + var se_CreateStackSetInput = /* @__PURE__ */ __name((input, context) => { + var _a, _b, _c + const entries = {} + if (input[_SSN] != null) { + entries[_SSN] = input[_SSN] + } + if (input[_D] != null) { + entries[_D] = input[_D] + } + if (input[_TB] != null) { + entries[_TB] = input[_TB] + } + if (input[_TURL] != null) { + entries[_TURL] = input[_TURL] + } + if (input[_SI] != null) { + entries[_SI] = input[_SI] + } + if (input[_P] != null) { + const memberEntries = se_Parameters(input[_P], context) + if (((_a = input[_P]) == null ? void 0 : _a.length) === 0) { + entries.Parameters = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `Parameters.${key}` + entries[loc] = value + }) + } + if (input[_C] != null) { + const memberEntries = se_Capabilities(input[_C], context) + if (((_b = input[_C]) == null ? void 0 : _b.length) === 0) { + entries.Capabilities = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `Capabilities.${key}` + entries[loc] = value + }) + } + if (input[_Ta] != null) { + const memberEntries = se_Tags(input[_Ta], context) + if (((_c = input[_Ta]) == null ? void 0 : _c.length) === 0) { + entries.Tags = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `Tags.${key}` + entries[loc] = value + }) + } + if (input[_ARARN] != null) { + entries[_ARARN] = input[_ARARN] + } + if (input[_ERN] != null) { + entries[_ERN] = input[_ERN] + } + if (input[_PM] != null) { + entries[_PM] = input[_PM] + } + if (input[_AD] != null) { + const memberEntries = se_AutoDeployment(input[_AD], context) + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `AutoDeployment.${key}` + entries[loc] = value + }) + } + if (input[_CA] != null) { + entries[_CA] = input[_CA] + } + if (input[_CRT] === void 0) { + input[_CRT] = (0, import_uuid.v4)() + } + if (input[_CRT] != null) { + entries[_CRT] = input[_CRT] + } + if (input[_ME] != null) { + const memberEntries = se_ManagedExecution(input[_ME], context) + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `ManagedExecution.${key}` + entries[loc] = value + }) + } + return entries + }, 'se_CreateStackSetInput') + var se_DeactivateOrganizationsAccessInput = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + return entries + }, + 'se_DeactivateOrganizationsAccessInput' + ) + var se_DeactivateTypeInput = /* @__PURE__ */ __name((input, context) => { + const entries = {} + if (input[_TN] != null) { + entries[_TN] = input[_TN] + } + if (input[_T] != null) { + entries[_T] = input[_T] + } + if (input[_Ar] != null) { + entries[_Ar] = input[_Ar] + } + return entries + }, 'se_DeactivateTypeInput') + var se_DeleteChangeSetInput = /* @__PURE__ */ __name((input, context) => { + const entries = {} + if (input[_CSN] != null) { + entries[_CSN] = input[_CSN] + } + if (input[_SN] != null) { + entries[_SN] = input[_SN] + } + return entries + }, 'se_DeleteChangeSetInput') + var se_DeleteGeneratedTemplateInput = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_GTN] != null) { + entries[_GTN] = input[_GTN] + } + return entries + }, + 'se_DeleteGeneratedTemplateInput' + ) + var se_DeleteStackInput = /* @__PURE__ */ __name((input, context) => { + var _a + const entries = {} + if (input[_SN] != null) { + entries[_SN] = input[_SN] + } + if (input[_RR] != null) { + const memberEntries = se_RetainResources(input[_RR], context) + if (((_a = input[_RR]) == null ? void 0 : _a.length) === 0) { + entries.RetainResources = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `RetainResources.${key}` + entries[loc] = value + }) + } + if (input[_RARN] != null) { + entries[_RARN] = input[_RARN] + } + if (input[_CRT] != null) { + entries[_CRT] = input[_CRT] + } + if (input[_DM] != null) { + entries[_DM] = input[_DM] + } + return entries + }, 'se_DeleteStackInput') + var se_DeleteStackInstancesInput = /* @__PURE__ */ __name( + (input, context) => { + var _a, _b + const entries = {} + if (input[_SSN] != null) { + entries[_SSN] = input[_SSN] + } + if (input[_Ac] != null) { + const memberEntries = se_AccountList(input[_Ac], context) + if (((_a = input[_Ac]) == null ? void 0 : _a.length) === 0) { + entries.Accounts = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `Accounts.${key}` + entries[loc] = value + }) + } + if (input[_DTep] != null) { + const memberEntries = se_DeploymentTargets(input[_DTep], context) + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `DeploymentTargets.${key}` + entries[loc] = value + }) + } + if (input[_Re] != null) { + const memberEntries = se_RegionList(input[_Re], context) + if (((_b = input[_Re]) == null ? void 0 : _b.length) === 0) { + entries.Regions = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `Regions.${key}` + entries[loc] = value + }) + } + if (input[_OP] != null) { + const memberEntries = se_StackSetOperationPreferences( + input[_OP], + context + ) + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `OperationPreferences.${key}` + entries[loc] = value + }) + } + if (input[_RSe] != null) { + entries[_RSe] = input[_RSe] + } + if (input[_OI] === void 0) { + input[_OI] = (0, import_uuid.v4)() + } + if (input[_OI] != null) { + entries[_OI] = input[_OI] + } + if (input[_CA] != null) { + entries[_CA] = input[_CA] + } + return entries + }, + 'se_DeleteStackInstancesInput' + ) + var se_DeleteStackSetInput = /* @__PURE__ */ __name((input, context) => { + const entries = {} + if (input[_SSN] != null) { + entries[_SSN] = input[_SSN] + } + if (input[_CA] != null) { + entries[_CA] = input[_CA] + } + return entries + }, 'se_DeleteStackSetInput') + var se_DeploymentTargets = /* @__PURE__ */ __name((input, context) => { + var _a, _b + const entries = {} + if (input[_Ac] != null) { + const memberEntries = se_AccountList(input[_Ac], context) + if (((_a = input[_Ac]) == null ? void 0 : _a.length) === 0) { + entries.Accounts = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `Accounts.${key}` + entries[loc] = value + }) + } + if (input[_AUc] != null) { + entries[_AUc] = input[_AUc] + } + if (input[_OUI] != null) { + const memberEntries = se_OrganizationalUnitIdList( + input[_OUI], + context + ) + if (((_b = input[_OUI]) == null ? void 0 : _b.length) === 0) { + entries.OrganizationalUnitIds = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `OrganizationalUnitIds.${key}` + entries[loc] = value + }) + } + if (input[_AFT] != null) { + entries[_AFT] = input[_AFT] + } + return entries + }, 'se_DeploymentTargets') + var se_DeregisterTypeInput = /* @__PURE__ */ __name((input, context) => { + const entries = {} + if (input[_Ar] != null) { + entries[_Ar] = input[_Ar] + } + if (input[_T] != null) { + entries[_T] = input[_T] + } + if (input[_TN] != null) { + entries[_TN] = input[_TN] + } + if (input[_VI] != null) { + entries[_VI] = input[_VI] + } + return entries + }, 'se_DeregisterTypeInput') + var se_DescribeAccountLimitsInput = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_NT] != null) { + entries[_NT] = input[_NT] + } + return entries + }, + 'se_DescribeAccountLimitsInput' + ) + var se_DescribeChangeSetHooksInput = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_CSN] != null) { + entries[_CSN] = input[_CSN] + } + if (input[_SN] != null) { + entries[_SN] = input[_SN] + } + if (input[_NT] != null) { + entries[_NT] = input[_NT] + } + if (input[_LRI] != null) { + entries[_LRI] = input[_LRI] + } + return entries + }, + 'se_DescribeChangeSetHooksInput' + ) + var se_DescribeChangeSetInput = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_CSN] != null) { + entries[_CSN] = input[_CSN] + } + if (input[_SN] != null) { + entries[_SN] = input[_SN] + } + if (input[_NT] != null) { + entries[_NT] = input[_NT] + } + if (input[_IPV] != null) { + entries[_IPV] = input[_IPV] + } + return entries + }, + 'se_DescribeChangeSetInput' + ) + var se_DescribeGeneratedTemplateInput = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_GTN] != null) { + entries[_GTN] = input[_GTN] + } + return entries + }, + 'se_DescribeGeneratedTemplateInput' + ) + var se_DescribeOrganizationsAccessInput = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_CA] != null) { + entries[_CA] = input[_CA] + } + return entries + }, + 'se_DescribeOrganizationsAccessInput' + ) + var se_DescribePublisherInput = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_PI] != null) { + entries[_PI] = input[_PI] + } + return entries + }, + 'se_DescribePublisherInput' + ) + var se_DescribeResourceScanInput = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_RSI] != null) { + entries[_RSI] = input[_RSI] + } + return entries + }, + 'se_DescribeResourceScanInput' + ) + var se_DescribeStackDriftDetectionStatusInput = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_SDDI] != null) { + entries[_SDDI] = input[_SDDI] + } + return entries + }, + 'se_DescribeStackDriftDetectionStatusInput' + ) + var se_DescribeStackEventsInput = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_SN] != null) { + entries[_SN] = input[_SN] + } + if (input[_NT] != null) { + entries[_NT] = input[_NT] + } + return entries + }, + 'se_DescribeStackEventsInput' + ) + var se_DescribeStackInstanceInput = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_SSN] != null) { + entries[_SSN] = input[_SSN] + } + if (input[_SIA] != null) { + entries[_SIA] = input[_SIA] + } + if (input[_SIR] != null) { + entries[_SIR] = input[_SIR] + } + if (input[_CA] != null) { + entries[_CA] = input[_CA] + } + return entries + }, + 'se_DescribeStackInstanceInput' + ) + var se_DescribeStackResourceDriftsInput = /* @__PURE__ */ __name( + (input, context) => { + var _a + const entries = {} + if (input[_SN] != null) { + entries[_SN] = input[_SN] + } + if (input[_SRDSF] != null) { + const memberEntries = se_StackResourceDriftStatusFilters( + input[_SRDSF], + context + ) + if (((_a = input[_SRDSF]) == null ? void 0 : _a.length) === 0) { + entries.StackResourceDriftStatusFilters = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `StackResourceDriftStatusFilters.${key}` + entries[loc] = value + }) + } + if (input[_NT] != null) { + entries[_NT] = input[_NT] + } + if (input[_MR] != null) { + entries[_MR] = input[_MR] + } + return entries + }, + 'se_DescribeStackResourceDriftsInput' + ) + var se_DescribeStackResourceInput = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_SN] != null) { + entries[_SN] = input[_SN] + } + if (input[_LRI] != null) { + entries[_LRI] = input[_LRI] + } + return entries + }, + 'se_DescribeStackResourceInput' + ) + var se_DescribeStackResourcesInput = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_SN] != null) { + entries[_SN] = input[_SN] + } + if (input[_LRI] != null) { + entries[_LRI] = input[_LRI] + } + if (input[_PRI] != null) { + entries[_PRI] = input[_PRI] + } + return entries + }, + 'se_DescribeStackResourcesInput' + ) + var se_DescribeStackSetInput = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_SSN] != null) { + entries[_SSN] = input[_SSN] + } + if (input[_CA] != null) { + entries[_CA] = input[_CA] + } + return entries + }, + 'se_DescribeStackSetInput' + ) + var se_DescribeStackSetOperationInput = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_SSN] != null) { + entries[_SSN] = input[_SSN] + } + if (input[_OI] != null) { + entries[_OI] = input[_OI] + } + if (input[_CA] != null) { + entries[_CA] = input[_CA] + } + return entries + }, + 'se_DescribeStackSetOperationInput' + ) + var se_DescribeStacksInput = /* @__PURE__ */ __name((input, context) => { + const entries = {} + if (input[_SN] != null) { + entries[_SN] = input[_SN] + } + if (input[_NT] != null) { + entries[_NT] = input[_NT] + } + return entries + }, 'se_DescribeStacksInput') + var se_DescribeTypeInput = /* @__PURE__ */ __name((input, context) => { + const entries = {} + if (input[_T] != null) { + entries[_T] = input[_T] + } + if (input[_TN] != null) { + entries[_TN] = input[_TN] + } + if (input[_Ar] != null) { + entries[_Ar] = input[_Ar] + } + if (input[_VI] != null) { + entries[_VI] = input[_VI] + } + if (input[_PI] != null) { + entries[_PI] = input[_PI] + } + if (input[_PVN] != null) { + entries[_PVN] = input[_PVN] + } + return entries + }, 'se_DescribeTypeInput') + var se_DescribeTypeRegistrationInput = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_RTeg] != null) { + entries[_RTeg] = input[_RTeg] + } + return entries + }, + 'se_DescribeTypeRegistrationInput' + ) + var se_DetectStackDriftInput = /* @__PURE__ */ __name( + (input, context) => { + var _a + const entries = {} + if (input[_SN] != null) { + entries[_SN] = input[_SN] + } + if (input[_LRIo] != null) { + const memberEntries = se_LogicalResourceIds(input[_LRIo], context) + if (((_a = input[_LRIo]) == null ? void 0 : _a.length) === 0) { + entries.LogicalResourceIds = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `LogicalResourceIds.${key}` + entries[loc] = value + }) + } + return entries + }, + 'se_DetectStackDriftInput' + ) + var se_DetectStackResourceDriftInput = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_SN] != null) { + entries[_SN] = input[_SN] + } + if (input[_LRI] != null) { + entries[_LRI] = input[_LRI] + } + return entries + }, + 'se_DetectStackResourceDriftInput' + ) + var se_DetectStackSetDriftInput = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_SSN] != null) { + entries[_SSN] = input[_SSN] + } + if (input[_OP] != null) { + const memberEntries = se_StackSetOperationPreferences( + input[_OP], + context + ) + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `OperationPreferences.${key}` + entries[loc] = value + }) + } + if (input[_OI] === void 0) { + input[_OI] = (0, import_uuid.v4)() + } + if (input[_OI] != null) { + entries[_OI] = input[_OI] + } + if (input[_CA] != null) { + entries[_CA] = input[_CA] + } + return entries + }, + 'se_DetectStackSetDriftInput' + ) + var se_EstimateTemplateCostInput = /* @__PURE__ */ __name( + (input, context) => { + var _a + const entries = {} + if (input[_TB] != null) { + entries[_TB] = input[_TB] + } + if (input[_TURL] != null) { + entries[_TURL] = input[_TURL] + } + if (input[_P] != null) { + const memberEntries = se_Parameters(input[_P], context) + if (((_a = input[_P]) == null ? void 0 : _a.length) === 0) { + entries.Parameters = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `Parameters.${key}` + entries[loc] = value + }) + } + return entries + }, + 'se_EstimateTemplateCostInput' + ) + var se_ExecuteChangeSetInput = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_CSN] != null) { + entries[_CSN] = input[_CSN] + } + if (input[_SN] != null) { + entries[_SN] = input[_SN] + } + if (input[_CRT] != null) { + entries[_CRT] = input[_CRT] + } + if (input[_DR] != null) { + entries[_DR] = input[_DR] + } + if (input[_REOC] != null) { + entries[_REOC] = input[_REOC] + } + return entries + }, + 'se_ExecuteChangeSetInput' + ) + var se_GetGeneratedTemplateInput = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_F] != null) { + entries[_F] = input[_F] + } + if (input[_GTN] != null) { + entries[_GTN] = input[_GTN] + } + return entries + }, + 'se_GetGeneratedTemplateInput' + ) + var se_GetStackPolicyInput = /* @__PURE__ */ __name((input, context) => { + const entries = {} + if (input[_SN] != null) { + entries[_SN] = input[_SN] + } + return entries + }, 'se_GetStackPolicyInput') + var se_GetTemplateInput = /* @__PURE__ */ __name((input, context) => { + const entries = {} + if (input[_SN] != null) { + entries[_SN] = input[_SN] + } + if (input[_CSN] != null) { + entries[_CSN] = input[_CSN] + } + if (input[_TS] != null) { + entries[_TS] = input[_TS] + } + return entries + }, 'se_GetTemplateInput') + var se_GetTemplateSummaryInput = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_TB] != null) { + entries[_TB] = input[_TB] + } + if (input[_TURL] != null) { + entries[_TURL] = input[_TURL] + } + if (input[_SN] != null) { + entries[_SN] = input[_SN] + } + if (input[_SSN] != null) { + entries[_SSN] = input[_SSN] + } + if (input[_CA] != null) { + entries[_CA] = input[_CA] + } + if (input[_TSC] != null) { + const memberEntries = se_TemplateSummaryConfig(input[_TSC], context) + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `TemplateSummaryConfig.${key}` + entries[loc] = value + }) + } + return entries + }, + 'se_GetTemplateSummaryInput' + ) + var se_ImportStacksToStackSetInput = /* @__PURE__ */ __name( + (input, context) => { + var _a, _b + const entries = {} + if (input[_SSN] != null) { + entries[_SSN] = input[_SSN] + } + if (input[_SIt] != null) { + const memberEntries = se_StackIdList(input[_SIt], context) + if (((_a = input[_SIt]) == null ? void 0 : _a.length) === 0) { + entries.StackIds = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `StackIds.${key}` + entries[loc] = value + }) + } + if (input[_SIU] != null) { + entries[_SIU] = input[_SIU] + } + if (input[_OUI] != null) { + const memberEntries = se_OrganizationalUnitIdList( + input[_OUI], + context + ) + if (((_b = input[_OUI]) == null ? void 0 : _b.length) === 0) { + entries.OrganizationalUnitIds = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `OrganizationalUnitIds.${key}` + entries[loc] = value + }) + } + if (input[_OP] != null) { + const memberEntries = se_StackSetOperationPreferences( + input[_OP], + context + ) + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `OperationPreferences.${key}` + entries[loc] = value + }) + } + if (input[_OI] === void 0) { + input[_OI] = (0, import_uuid.v4)() + } + if (input[_OI] != null) { + entries[_OI] = input[_OI] + } + if (input[_CA] != null) { + entries[_CA] = input[_CA] + } + return entries + }, + 'se_ImportStacksToStackSetInput' + ) + var se_JazzLogicalResourceIds = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + let counter = 1 + for (const entry of input) { + if (entry === null) { + continue + } + entries[`member.${counter}`] = entry + counter++ + } + return entries + }, + 'se_JazzLogicalResourceIds' + ) + var se_JazzResourceIdentifierProperties = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + let counter = 1 + Object.keys(input) + .filter(key => input[key] != null) + .forEach(key => { + entries[`entry.${counter}.key`] = key + entries[`entry.${counter}.value`] = input[key] + counter++ + }) + return entries + }, + 'se_JazzResourceIdentifierProperties' + ) + var se_ListChangeSetsInput = /* @__PURE__ */ __name((input, context) => { + const entries = {} + if (input[_SN] != null) { + entries[_SN] = input[_SN] + } + if (input[_NT] != null) { + entries[_NT] = input[_NT] + } + return entries + }, 'se_ListChangeSetsInput') + var se_ListExportsInput = /* @__PURE__ */ __name((input, context) => { + const entries = {} + if (input[_NT] != null) { + entries[_NT] = input[_NT] + } + return entries + }, 'se_ListExportsInput') + var se_ListGeneratedTemplatesInput = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_NT] != null) { + entries[_NT] = input[_NT] + } + if (input[_MR] != null) { + entries[_MR] = input[_MR] + } + return entries + }, + 'se_ListGeneratedTemplatesInput' + ) + var se_ListImportsInput = /* @__PURE__ */ __name((input, context) => { + const entries = {} + if (input[_EN] != null) { + entries[_EN] = input[_EN] + } + if (input[_NT] != null) { + entries[_NT] = input[_NT] + } + return entries + }, 'se_ListImportsInput') + var se_ListResourceScanRelatedResourcesInput = /* @__PURE__ */ __name( + (input, context) => { + var _a + const entries = {} + if (input[_RSI] != null) { + entries[_RSI] = input[_RSI] + } + if (input[_R] != null) { + const memberEntries = se_ScannedResourceIdentifiers( + input[_R], + context + ) + if (((_a = input[_R]) == null ? void 0 : _a.length) === 0) { + entries.Resources = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `Resources.${key}` + entries[loc] = value + }) + } + if (input[_NT] != null) { + entries[_NT] = input[_NT] + } + if (input[_MR] != null) { + entries[_MR] = input[_MR] + } + return entries + }, + 'se_ListResourceScanRelatedResourcesInput' + ) + var se_ListResourceScanResourcesInput = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_RSI] != null) { + entries[_RSI] = input[_RSI] + } + if (input[_RI] != null) { + entries[_RI] = input[_RI] + } + if (input[_RTP] != null) { + entries[_RTP] = input[_RTP] + } + if (input[_TK] != null) { + entries[_TK] = input[_TK] + } + if (input[_TV] != null) { + entries[_TV] = input[_TV] + } + if (input[_NT] != null) { + entries[_NT] = input[_NT] + } + if (input[_MR] != null) { + entries[_MR] = input[_MR] + } + return entries + }, + 'se_ListResourceScanResourcesInput' + ) + var se_ListResourceScansInput = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_NT] != null) { + entries[_NT] = input[_NT] + } + if (input[_MR] != null) { + entries[_MR] = input[_MR] + } + return entries + }, + 'se_ListResourceScansInput' + ) + var se_ListStackInstanceResourceDriftsInput = /* @__PURE__ */ __name( + (input, context) => { + var _a + const entries = {} + if (input[_SSN] != null) { + entries[_SSN] = input[_SSN] + } + if (input[_NT] != null) { + entries[_NT] = input[_NT] + } + if (input[_MR] != null) { + entries[_MR] = input[_MR] + } + if (input[_SIRDS] != null) { + const memberEntries = se_StackResourceDriftStatusFilters( + input[_SIRDS], + context + ) + if (((_a = input[_SIRDS]) == null ? void 0 : _a.length) === 0) { + entries.StackInstanceResourceDriftStatuses = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `StackInstanceResourceDriftStatuses.${key}` + entries[loc] = value + }) + } + if (input[_SIA] != null) { + entries[_SIA] = input[_SIA] + } + if (input[_SIR] != null) { + entries[_SIR] = input[_SIR] + } + if (input[_OI] != null) { + entries[_OI] = input[_OI] + } + if (input[_CA] != null) { + entries[_CA] = input[_CA] + } + return entries + }, + 'se_ListStackInstanceResourceDriftsInput' + ) + var se_ListStackInstancesInput = /* @__PURE__ */ __name( + (input, context) => { + var _a + const entries = {} + if (input[_SSN] != null) { + entries[_SSN] = input[_SSN] + } + if (input[_NT] != null) { + entries[_NT] = input[_NT] + } + if (input[_MR] != null) { + entries[_MR] = input[_MR] + } + if (input[_Fi] != null) { + const memberEntries = se_StackInstanceFilters(input[_Fi], context) + if (((_a = input[_Fi]) == null ? void 0 : _a.length) === 0) { + entries.Filters = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `Filters.${key}` + entries[loc] = value + }) + } + if (input[_SIA] != null) { + entries[_SIA] = input[_SIA] + } + if (input[_SIR] != null) { + entries[_SIR] = input[_SIR] + } + if (input[_CA] != null) { + entries[_CA] = input[_CA] + } + return entries + }, + 'se_ListStackInstancesInput' + ) + var se_ListStackResourcesInput = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_SN] != null) { + entries[_SN] = input[_SN] + } + if (input[_NT] != null) { + entries[_NT] = input[_NT] + } + return entries + }, + 'se_ListStackResourcesInput' + ) + var se_ListStackSetAutoDeploymentTargetsInput = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_SSN] != null) { + entries[_SSN] = input[_SSN] + } + if (input[_NT] != null) { + entries[_NT] = input[_NT] + } + if (input[_MR] != null) { + entries[_MR] = input[_MR] + } + if (input[_CA] != null) { + entries[_CA] = input[_CA] + } + return entries + }, + 'se_ListStackSetAutoDeploymentTargetsInput' + ) + var se_ListStackSetOperationResultsInput = /* @__PURE__ */ __name( + (input, context) => { + var _a + const entries = {} + if (input[_SSN] != null) { + entries[_SSN] = input[_SSN] + } + if (input[_OI] != null) { + entries[_OI] = input[_OI] + } + if (input[_NT] != null) { + entries[_NT] = input[_NT] + } + if (input[_MR] != null) { + entries[_MR] = input[_MR] + } + if (input[_CA] != null) { + entries[_CA] = input[_CA] + } + if (input[_Fi] != null) { + const memberEntries = se_OperationResultFilters(input[_Fi], context) + if (((_a = input[_Fi]) == null ? void 0 : _a.length) === 0) { + entries.Filters = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `Filters.${key}` + entries[loc] = value + }) + } + return entries + }, + 'se_ListStackSetOperationResultsInput' + ) + var se_ListStackSetOperationsInput = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_SSN] != null) { + entries[_SSN] = input[_SSN] + } + if (input[_NT] != null) { + entries[_NT] = input[_NT] + } + if (input[_MR] != null) { + entries[_MR] = input[_MR] + } + if (input[_CA] != null) { + entries[_CA] = input[_CA] + } + return entries + }, + 'se_ListStackSetOperationsInput' + ) + var se_ListStackSetsInput = /* @__PURE__ */ __name((input, context) => { + const entries = {} + if (input[_NT] != null) { + entries[_NT] = input[_NT] + } + if (input[_MR] != null) { + entries[_MR] = input[_MR] + } + if (input[_S] != null) { + entries[_S] = input[_S] + } + if (input[_CA] != null) { + entries[_CA] = input[_CA] + } + return entries + }, 'se_ListStackSetsInput') + var se_ListStacksInput = /* @__PURE__ */ __name((input, context) => { + var _a + const entries = {} + if (input[_NT] != null) { + entries[_NT] = input[_NT] + } + if (input[_SSF] != null) { + const memberEntries = se_StackStatusFilter(input[_SSF], context) + if (((_a = input[_SSF]) == null ? void 0 : _a.length) === 0) { + entries.StackStatusFilter = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `StackStatusFilter.${key}` + entries[loc] = value + }) + } + return entries + }, 'se_ListStacksInput') + var se_ListTypeRegistrationsInput = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_T] != null) { + entries[_T] = input[_T] + } + if (input[_TN] != null) { + entries[_TN] = input[_TN] + } + if (input[_TA] != null) { + entries[_TA] = input[_TA] + } + if (input[_RSF] != null) { + entries[_RSF] = input[_RSF] + } + if (input[_MR] != null) { + entries[_MR] = input[_MR] + } + if (input[_NT] != null) { + entries[_NT] = input[_NT] + } + return entries + }, + 'se_ListTypeRegistrationsInput' + ) + var se_ListTypesInput = /* @__PURE__ */ __name((input, context) => { + const entries = {} + if (input[_Vi] != null) { + entries[_Vi] = input[_Vi] + } + if (input[_PTr] != null) { + entries[_PTr] = input[_PTr] + } + if (input[_DSep] != null) { + entries[_DSep] = input[_DSep] + } + if (input[_T] != null) { + entries[_T] = input[_T] + } + if (input[_Fi] != null) { + const memberEntries = se_TypeFilters(input[_Fi], context) + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `Filters.${key}` + entries[loc] = value + }) + } + if (input[_MR] != null) { + entries[_MR] = input[_MR] + } + if (input[_NT] != null) { + entries[_NT] = input[_NT] + } + return entries + }, 'se_ListTypesInput') + var se_ListTypeVersionsInput = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_T] != null) { + entries[_T] = input[_T] + } + if (input[_TN] != null) { + entries[_TN] = input[_TN] + } + if (input[_Ar] != null) { + entries[_Ar] = input[_Ar] + } + if (input[_MR] != null) { + entries[_MR] = input[_MR] + } + if (input[_NT] != null) { + entries[_NT] = input[_NT] + } + if (input[_DSep] != null) { + entries[_DSep] = input[_DSep] + } + if (input[_PI] != null) { + entries[_PI] = input[_PI] + } + return entries + }, + 'se_ListTypeVersionsInput' + ) + var se_LoggingConfig = /* @__PURE__ */ __name((input, context) => { + const entries = {} + if (input[_LRA] != null) { + entries[_LRA] = input[_LRA] + } + if (input[_LGN] != null) { + entries[_LGN] = input[_LGN] + } + return entries + }, 'se_LoggingConfig') + var se_LogicalResourceIds = /* @__PURE__ */ __name((input, context) => { + const entries = {} + let counter = 1 + for (const entry of input) { + if (entry === null) { + continue + } + entries[`member.${counter}`] = entry + counter++ + } + return entries + }, 'se_LogicalResourceIds') + var se_ManagedExecution = /* @__PURE__ */ __name((input, context) => { + const entries = {} + if (input[_Act] != null) { + entries[_Act] = input[_Act] + } + return entries + }, 'se_ManagedExecution') + var se_NotificationARNs = /* @__PURE__ */ __name((input, context) => { + const entries = {} + let counter = 1 + for (const entry of input) { + if (entry === null) { + continue + } + entries[`member.${counter}`] = entry + counter++ + } + return entries + }, 'se_NotificationARNs') + var se_OperationResultFilter = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_N] != null) { + entries[_N] = input[_N] + } + if (input[_Va] != null) { + entries[_Va] = input[_Va] + } + return entries + }, + 'se_OperationResultFilter' + ) + var se_OperationResultFilters = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + let counter = 1 + for (const entry of input) { + if (entry === null) { + continue + } + const memberEntries = se_OperationResultFilter(entry, context) + Object.entries(memberEntries).forEach(([key, value]) => { + entries[`member.${counter}.${key}`] = value + }) + counter++ + } + return entries + }, + 'se_OperationResultFilters' + ) + var se_OrganizationalUnitIdList = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + let counter = 1 + for (const entry of input) { + if (entry === null) { + continue + } + entries[`member.${counter}`] = entry + counter++ + } + return entries + }, + 'se_OrganizationalUnitIdList' + ) + var se_Parameter = /* @__PURE__ */ __name((input, context) => { + const entries = {} + if (input[_PK] != null) { + entries[_PK] = input[_PK] + } + if (input[_PV] != null) { + entries[_PV] = input[_PV] + } + if (input[_UPV] != null) { + entries[_UPV] = input[_UPV] + } + if (input[_RV] != null) { + entries[_RV] = input[_RV] + } + return entries + }, 'se_Parameter') + var se_Parameters = /* @__PURE__ */ __name((input, context) => { + const entries = {} + let counter = 1 + for (const entry of input) { + if (entry === null) { + continue + } + const memberEntries = se_Parameter(entry, context) + Object.entries(memberEntries).forEach(([key, value]) => { + entries[`member.${counter}.${key}`] = value + }) + counter++ + } + return entries + }, 'se_Parameters') + var se_PublishTypeInput = /* @__PURE__ */ __name((input, context) => { + const entries = {} + if (input[_T] != null) { + entries[_T] = input[_T] + } + if (input[_Ar] != null) { + entries[_Ar] = input[_Ar] + } + if (input[_TN] != null) { + entries[_TN] = input[_TN] + } + if (input[_PVN] != null) { + entries[_PVN] = input[_PVN] + } + return entries + }, 'se_PublishTypeInput') + var se_RecordHandlerProgressInput = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_BT] != null) { + entries[_BT] = input[_BT] + } + if (input[_OS] != null) { + entries[_OS] = input[_OS] + } + if (input[_COS] != null) { + entries[_COS] = input[_COS] + } + if (input[_SM] != null) { + entries[_SM] = input[_SM] + } + if (input[_EC] != null) { + entries[_EC] = input[_EC] + } + if (input[_RM] != null) { + entries[_RM] = input[_RM] + } + if (input[_CRT] != null) { + entries[_CRT] = input[_CRT] + } + return entries + }, + 'se_RecordHandlerProgressInput' + ) + var se_RegionList = /* @__PURE__ */ __name((input, context) => { + const entries = {} + let counter = 1 + for (const entry of input) { + if (entry === null) { + continue + } + entries[`member.${counter}`] = entry + counter++ + } + return entries + }, 'se_RegionList') + var se_RegisterPublisherInput = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_ATAC] != null) { + entries[_ATAC] = input[_ATAC] + } + if (input[_CAo] != null) { + entries[_CAo] = input[_CAo] + } + return entries + }, + 'se_RegisterPublisherInput' + ) + var se_RegisterTypeInput = /* @__PURE__ */ __name((input, context) => { + const entries = {} + if (input[_T] != null) { + entries[_T] = input[_T] + } + if (input[_TN] != null) { + entries[_TN] = input[_TN] + } + if (input[_SHP] != null) { + entries[_SHP] = input[_SHP] + } + if (input[_LC] != null) { + const memberEntries = se_LoggingConfig(input[_LC], context) + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `LoggingConfig.${key}` + entries[loc] = value + }) + } + if (input[_ERA] != null) { + entries[_ERA] = input[_ERA] + } + if (input[_CRT] != null) { + entries[_CRT] = input[_CRT] + } + return entries + }, 'se_RegisterTypeInput') + var se_ResourceDefinition = /* @__PURE__ */ __name((input, context) => { + const entries = {} + if (input[_RTes] != null) { + entries[_RTes] = input[_RTes] + } + if (input[_LRI] != null) { + entries[_LRI] = input[_LRI] + } + if (input[_RI] != null) { + const memberEntries = se_ResourceIdentifierProperties( + input[_RI], + context + ) + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `ResourceIdentifier.${key}` + entries[loc] = value + }) + } + return entries + }, 'se_ResourceDefinition') + var se_ResourceDefinitions = /* @__PURE__ */ __name((input, context) => { + const entries = {} + let counter = 1 + for (const entry of input) { + if (entry === null) { + continue + } + const memberEntries = se_ResourceDefinition(entry, context) + Object.entries(memberEntries).forEach(([key, value]) => { + entries[`member.${counter}.${key}`] = value + }) + counter++ + } + return entries + }, 'se_ResourceDefinitions') + var se_ResourceIdentifierProperties = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + let counter = 1 + Object.keys(input) + .filter(key => input[key] != null) + .forEach(key => { + entries[`entry.${counter}.key`] = key + entries[`entry.${counter}.value`] = input[key] + counter++ + }) + return entries + }, + 'se_ResourceIdentifierProperties' + ) + var se_ResourcesToImport = /* @__PURE__ */ __name((input, context) => { + const entries = {} + let counter = 1 + for (const entry of input) { + if (entry === null) { + continue + } + const memberEntries = se_ResourceToImport(entry, context) + Object.entries(memberEntries).forEach(([key, value]) => { + entries[`member.${counter}.${key}`] = value + }) + counter++ + } + return entries + }, 'se_ResourcesToImport') + var se_ResourcesToSkip = /* @__PURE__ */ __name((input, context) => { + const entries = {} + let counter = 1 + for (const entry of input) { + if (entry === null) { + continue + } + entries[`member.${counter}`] = entry + counter++ + } + return entries + }, 'se_ResourcesToSkip') + var se_ResourceToImport = /* @__PURE__ */ __name((input, context) => { + const entries = {} + if (input[_RTes] != null) { + entries[_RTes] = input[_RTes] + } + if (input[_LRI] != null) { + entries[_LRI] = input[_LRI] + } + if (input[_RI] != null) { + const memberEntries = se_ResourceIdentifierProperties( + input[_RI], + context + ) + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `ResourceIdentifier.${key}` + entries[loc] = value + }) + } + return entries + }, 'se_ResourceToImport') + var se_ResourceTypes = /* @__PURE__ */ __name((input, context) => { + const entries = {} + let counter = 1 + for (const entry of input) { + if (entry === null) { + continue + } + entries[`member.${counter}`] = entry + counter++ + } + return entries + }, 'se_ResourceTypes') + var se_RetainResources = /* @__PURE__ */ __name((input, context) => { + const entries = {} + let counter = 1 + for (const entry of input) { + if (entry === null) { + continue + } + entries[`member.${counter}`] = entry + counter++ + } + return entries + }, 'se_RetainResources') + var se_RollbackConfiguration = /* @__PURE__ */ __name( + (input, context) => { + var _a + const entries = {} + if (input[_RTo] != null) { + const memberEntries = se_RollbackTriggers(input[_RTo], context) + if (((_a = input[_RTo]) == null ? void 0 : _a.length) === 0) { + entries.RollbackTriggers = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `RollbackTriggers.${key}` + entries[loc] = value + }) + } + if (input[_MTIM] != null) { + entries[_MTIM] = input[_MTIM] + } + return entries + }, + 'se_RollbackConfiguration' + ) + var se_RollbackStackInput = /* @__PURE__ */ __name((input, context) => { + const entries = {} + if (input[_SN] != null) { + entries[_SN] = input[_SN] + } + if (input[_RARN] != null) { + entries[_RARN] = input[_RARN] + } + if (input[_CRT] != null) { + entries[_CRT] = input[_CRT] + } + if (input[_REOC] != null) { + entries[_REOC] = input[_REOC] + } + return entries + }, 'se_RollbackStackInput') + var se_RollbackTrigger = /* @__PURE__ */ __name((input, context) => { + const entries = {} + if (input[_Ar] != null) { + entries[_Ar] = input[_Ar] + } + if (input[_T] != null) { + entries[_T] = input[_T] + } + return entries + }, 'se_RollbackTrigger') + var se_RollbackTriggers = /* @__PURE__ */ __name((input, context) => { + const entries = {} + let counter = 1 + for (const entry of input) { + if (entry === null) { + continue + } + const memberEntries = se_RollbackTrigger(entry, context) + Object.entries(memberEntries).forEach(([key, value]) => { + entries[`member.${counter}.${key}`] = value + }) + counter++ + } + return entries + }, 'se_RollbackTriggers') + var se_ScannedResourceIdentifier = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_RTes] != null) { + entries[_RTes] = input[_RTes] + } + if (input[_RI] != null) { + const memberEntries = se_JazzResourceIdentifierProperties( + input[_RI], + context + ) + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `ResourceIdentifier.${key}` + entries[loc] = value + }) + } + return entries + }, + 'se_ScannedResourceIdentifier' + ) + var se_ScannedResourceIdentifiers = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + let counter = 1 + for (const entry of input) { + if (entry === null) { + continue + } + const memberEntries = se_ScannedResourceIdentifier(entry, context) + Object.entries(memberEntries).forEach(([key, value]) => { + entries[`member.${counter}.${key}`] = value + }) + counter++ + } + return entries + }, + 'se_ScannedResourceIdentifiers' + ) + var se_SetStackPolicyInput = /* @__PURE__ */ __name((input, context) => { + const entries = {} + if (input[_SN] != null) { + entries[_SN] = input[_SN] + } + if (input[_SPB] != null) { + entries[_SPB] = input[_SPB] + } + if (input[_SPURL] != null) { + entries[_SPURL] = input[_SPURL] + } + return entries + }, 'se_SetStackPolicyInput') + var se_SetTypeConfigurationInput = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_TA] != null) { + entries[_TA] = input[_TA] + } + if (input[_Co] != null) { + entries[_Co] = input[_Co] + } + if (input[_CAon] != null) { + entries[_CAon] = input[_CAon] + } + if (input[_TN] != null) { + entries[_TN] = input[_TN] + } + if (input[_T] != null) { + entries[_T] = input[_T] + } + return entries + }, + 'se_SetTypeConfigurationInput' + ) + var se_SetTypeDefaultVersionInput = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_Ar] != null) { + entries[_Ar] = input[_Ar] + } + if (input[_T] != null) { + entries[_T] = input[_T] + } + if (input[_TN] != null) { + entries[_TN] = input[_TN] + } + if (input[_VI] != null) { + entries[_VI] = input[_VI] + } + return entries + }, + 'se_SetTypeDefaultVersionInput' + ) + var se_SignalResourceInput = /* @__PURE__ */ __name((input, context) => { + const entries = {} + if (input[_SN] != null) { + entries[_SN] = input[_SN] + } + if (input[_LRI] != null) { + entries[_LRI] = input[_LRI] + } + if (input[_UI] != null) { + entries[_UI] = input[_UI] + } + if (input[_S] != null) { + entries[_S] = input[_S] + } + return entries + }, 'se_SignalResourceInput') + var se_StackIdList = /* @__PURE__ */ __name((input, context) => { + const entries = {} + let counter = 1 + for (const entry of input) { + if (entry === null) { + continue + } + entries[`member.${counter}`] = entry + counter++ + } + return entries + }, 'se_StackIdList') + var se_StackInstanceFilter = /* @__PURE__ */ __name((input, context) => { + const entries = {} + if (input[_N] != null) { + entries[_N] = input[_N] + } + if (input[_Va] != null) { + entries[_Va] = input[_Va] + } + return entries + }, 'se_StackInstanceFilter') + var se_StackInstanceFilters = /* @__PURE__ */ __name((input, context) => { + const entries = {} + let counter = 1 + for (const entry of input) { + if (entry === null) { + continue + } + const memberEntries = se_StackInstanceFilter(entry, context) + Object.entries(memberEntries).forEach(([key, value]) => { + entries[`member.${counter}.${key}`] = value + }) + counter++ + } + return entries + }, 'se_StackInstanceFilters') + var se_StackResourceDriftStatusFilters = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + let counter = 1 + for (const entry of input) { + if (entry === null) { + continue + } + entries[`member.${counter}`] = entry + counter++ + } + return entries + }, + 'se_StackResourceDriftStatusFilters' + ) + var se_StackSetOperationPreferences = /* @__PURE__ */ __name( + (input, context) => { + var _a + const entries = {} + if (input[_RCT] != null) { + entries[_RCT] = input[_RCT] + } + if (input[_RO] != null) { + const memberEntries = se_RegionList(input[_RO], context) + if (((_a = input[_RO]) == null ? void 0 : _a.length) === 0) { + entries.RegionOrder = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `RegionOrder.${key}` + entries[loc] = value + }) + } + if (input[_FTC] != null) { + entries[_FTC] = input[_FTC] + } + if (input[_FTP] != null) { + entries[_FTP] = input[_FTP] + } + if (input[_MCC] != null) { + entries[_MCC] = input[_MCC] + } + if (input[_MCP] != null) { + entries[_MCP] = input[_MCP] + } + if (input[_CM] != null) { + entries[_CM] = input[_CM] + } + return entries + }, + 'se_StackSetOperationPreferences' + ) + var se_StackStatusFilter = /* @__PURE__ */ __name((input, context) => { + const entries = {} + let counter = 1 + for (const entry of input) { + if (entry === null) { + continue + } + entries[`member.${counter}`] = entry + counter++ + } + return entries + }, 'se_StackStatusFilter') + var se_StartResourceScanInput = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_CRT] != null) { + entries[_CRT] = input[_CRT] + } + return entries + }, + 'se_StartResourceScanInput' + ) + var se_StopStackSetOperationInput = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_SSN] != null) { + entries[_SSN] = input[_SSN] + } + if (input[_OI] != null) { + entries[_OI] = input[_OI] + } + if (input[_CA] != null) { + entries[_CA] = input[_CA] + } + return entries + }, + 'se_StopStackSetOperationInput' + ) + var se_Tag = /* @__PURE__ */ __name((input, context) => { + const entries = {} + if (input[_K] != null) { + entries[_K] = input[_K] + } + if (input[_Val] != null) { + entries[_Val] = input[_Val] + } + return entries + }, 'se_Tag') + var se_Tags = /* @__PURE__ */ __name((input, context) => { + const entries = {} + let counter = 1 + for (const entry of input) { + if (entry === null) { + continue + } + const memberEntries = se_Tag(entry, context) + Object.entries(memberEntries).forEach(([key, value]) => { + entries[`member.${counter}.${key}`] = value + }) + counter++ + } + return entries + }, 'se_Tags') + var se_TemplateConfiguration = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_DPe] != null) { + entries[_DPe] = input[_DPe] + } + if (input[_URP] != null) { + entries[_URP] = input[_URP] + } + return entries + }, + 'se_TemplateConfiguration' + ) + var se_TemplateSummaryConfig = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_TURTAW] != null) { + entries[_TURTAW] = input[_TURTAW] + } + return entries + }, + 'se_TemplateSummaryConfig' + ) + var se_TestTypeInput = /* @__PURE__ */ __name((input, context) => { + const entries = {} + if (input[_Ar] != null) { + entries[_Ar] = input[_Ar] + } + if (input[_T] != null) { + entries[_T] = input[_T] + } + if (input[_TN] != null) { + entries[_TN] = input[_TN] + } + if (input[_VI] != null) { + entries[_VI] = input[_VI] + } + if (input[_LDB] != null) { + entries[_LDB] = input[_LDB] + } + return entries + }, 'se_TestTypeInput') + var se_TypeConfigurationIdentifier = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_TA] != null) { + entries[_TA] = input[_TA] + } + if (input[_TCA] != null) { + entries[_TCA] = input[_TCA] + } + if (input[_TCAy] != null) { + entries[_TCAy] = input[_TCAy] + } + if (input[_T] != null) { + entries[_T] = input[_T] + } + if (input[_TN] != null) { + entries[_TN] = input[_TN] + } + return entries + }, + 'se_TypeConfigurationIdentifier' + ) + var se_TypeConfigurationIdentifiers = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + let counter = 1 + for (const entry of input) { + if (entry === null) { + continue + } + const memberEntries = se_TypeConfigurationIdentifier(entry, context) + Object.entries(memberEntries).forEach(([key, value]) => { + entries[`member.${counter}.${key}`] = value + }) + counter++ + } + return entries + }, + 'se_TypeConfigurationIdentifiers' + ) + var se_TypeFilters = /* @__PURE__ */ __name((input, context) => { + const entries = {} + if (input[_Ca] != null) { + entries[_Ca] = input[_Ca] + } + if (input[_PI] != null) { + entries[_PI] = input[_PI] + } + if (input[_TNP] != null) { + entries[_TNP] = input[_TNP] + } + return entries + }, 'se_TypeFilters') + var se_UpdateGeneratedTemplateInput = /* @__PURE__ */ __name( + (input, context) => { + var _a, _b + const entries = {} + if (input[_GTN] != null) { + entries[_GTN] = input[_GTN] + } + if (input[_NGTN] != null) { + entries[_NGTN] = input[_NGTN] + } + if (input[_AR] != null) { + const memberEntries = se_ResourceDefinitions(input[_AR], context) + if (((_a = input[_AR]) == null ? void 0 : _a.length) === 0) { + entries.AddResources = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `AddResources.${key}` + entries[loc] = value + }) + } + if (input[_RRe] != null) { + const memberEntries = se_JazzLogicalResourceIds( + input[_RRe], + context + ) + if (((_b = input[_RRe]) == null ? void 0 : _b.length) === 0) { + entries.RemoveResources = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `RemoveResources.${key}` + entries[loc] = value + }) + } + if (input[_RAR] != null) { + entries[_RAR] = input[_RAR] + } + if (input[_TC] != null) { + const memberEntries = se_TemplateConfiguration(input[_TC], context) + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `TemplateConfiguration.${key}` + entries[loc] = value + }) + } + return entries + }, + 'se_UpdateGeneratedTemplateInput' + ) + var se_UpdateStackInput = /* @__PURE__ */ __name((input, context) => { + var _a, _b, _c, _d, _e2 + const entries = {} + if (input[_SN] != null) { + entries[_SN] = input[_SN] + } + if (input[_TB] != null) { + entries[_TB] = input[_TB] + } + if (input[_TURL] != null) { + entries[_TURL] = input[_TURL] + } + if (input[_UPT] != null) { + entries[_UPT] = input[_UPT] + } + if (input[_SPDUB] != null) { + entries[_SPDUB] = input[_SPDUB] + } + if (input[_SPDUURL] != null) { + entries[_SPDUURL] = input[_SPDUURL] + } + if (input[_P] != null) { + const memberEntries = se_Parameters(input[_P], context) + if (((_a = input[_P]) == null ? void 0 : _a.length) === 0) { + entries.Parameters = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `Parameters.${key}` + entries[loc] = value + }) + } + if (input[_C] != null) { + const memberEntries = se_Capabilities(input[_C], context) + if (((_b = input[_C]) == null ? void 0 : _b.length) === 0) { + entries.Capabilities = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `Capabilities.${key}` + entries[loc] = value + }) + } + if (input[_RTe] != null) { + const memberEntries = se_ResourceTypes(input[_RTe], context) + if (((_c = input[_RTe]) == null ? void 0 : _c.length) === 0) { + entries.ResourceTypes = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `ResourceTypes.${key}` + entries[loc] = value + }) + } + if (input[_RARN] != null) { + entries[_RARN] = input[_RARN] + } + if (input[_RC] != null) { + const memberEntries = se_RollbackConfiguration(input[_RC], context) + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `RollbackConfiguration.${key}` + entries[loc] = value + }) + } + if (input[_SPB] != null) { + entries[_SPB] = input[_SPB] + } + if (input[_SPURL] != null) { + entries[_SPURL] = input[_SPURL] + } + if (input[_NARN] != null) { + const memberEntries = se_NotificationARNs(input[_NARN], context) + if (((_d = input[_NARN]) == null ? void 0 : _d.length) === 0) { + entries.NotificationARNs = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `NotificationARNs.${key}` + entries[loc] = value + }) + } + if (input[_Ta] != null) { + const memberEntries = se_Tags(input[_Ta], context) + if (((_e2 = input[_Ta]) == null ? void 0 : _e2.length) === 0) { + entries.Tags = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `Tags.${key}` + entries[loc] = value + }) + } + if (input[_DR] != null) { + entries[_DR] = input[_DR] + } + if (input[_CRT] != null) { + entries[_CRT] = input[_CRT] + } + if (input[_REOC] != null) { + entries[_REOC] = input[_REOC] + } + return entries + }, 'se_UpdateStackInput') + var se_UpdateStackInstancesInput = /* @__PURE__ */ __name( + (input, context) => { + var _a, _b, _c + const entries = {} + if (input[_SSN] != null) { + entries[_SSN] = input[_SSN] + } + if (input[_Ac] != null) { + const memberEntries = se_AccountList(input[_Ac], context) + if (((_a = input[_Ac]) == null ? void 0 : _a.length) === 0) { + entries.Accounts = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `Accounts.${key}` + entries[loc] = value + }) + } + if (input[_DTep] != null) { + const memberEntries = se_DeploymentTargets(input[_DTep], context) + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `DeploymentTargets.${key}` + entries[loc] = value + }) + } + if (input[_Re] != null) { + const memberEntries = se_RegionList(input[_Re], context) + if (((_b = input[_Re]) == null ? void 0 : _b.length) === 0) { + entries.Regions = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `Regions.${key}` + entries[loc] = value + }) + } + if (input[_PO] != null) { + const memberEntries = se_Parameters(input[_PO], context) + if (((_c = input[_PO]) == null ? void 0 : _c.length) === 0) { + entries.ParameterOverrides = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `ParameterOverrides.${key}` + entries[loc] = value + }) + } + if (input[_OP] != null) { + const memberEntries = se_StackSetOperationPreferences( + input[_OP], + context + ) + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `OperationPreferences.${key}` + entries[loc] = value + }) + } + if (input[_OI] === void 0) { + input[_OI] = (0, import_uuid.v4)() + } + if (input[_OI] != null) { + entries[_OI] = input[_OI] + } + if (input[_CA] != null) { + entries[_CA] = input[_CA] + } + return entries + }, + 'se_UpdateStackInstancesInput' + ) + var se_UpdateStackSetInput = /* @__PURE__ */ __name((input, context) => { + var _a, _b, _c, _d, _e2 + const entries = {} + if (input[_SSN] != null) { + entries[_SSN] = input[_SSN] + } + if (input[_D] != null) { + entries[_D] = input[_D] + } + if (input[_TB] != null) { + entries[_TB] = input[_TB] + } + if (input[_TURL] != null) { + entries[_TURL] = input[_TURL] + } + if (input[_UPT] != null) { + entries[_UPT] = input[_UPT] + } + if (input[_P] != null) { + const memberEntries = se_Parameters(input[_P], context) + if (((_a = input[_P]) == null ? void 0 : _a.length) === 0) { + entries.Parameters = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `Parameters.${key}` + entries[loc] = value + }) + } + if (input[_C] != null) { + const memberEntries = se_Capabilities(input[_C], context) + if (((_b = input[_C]) == null ? void 0 : _b.length) === 0) { + entries.Capabilities = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `Capabilities.${key}` + entries[loc] = value + }) + } + if (input[_Ta] != null) { + const memberEntries = se_Tags(input[_Ta], context) + if (((_c = input[_Ta]) == null ? void 0 : _c.length) === 0) { + entries.Tags = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `Tags.${key}` + entries[loc] = value + }) + } + if (input[_OP] != null) { + const memberEntries = se_StackSetOperationPreferences( + input[_OP], + context + ) + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `OperationPreferences.${key}` + entries[loc] = value + }) + } + if (input[_ARARN] != null) { + entries[_ARARN] = input[_ARARN] + } + if (input[_ERN] != null) { + entries[_ERN] = input[_ERN] + } + if (input[_DTep] != null) { + const memberEntries = se_DeploymentTargets(input[_DTep], context) + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `DeploymentTargets.${key}` + entries[loc] = value + }) + } + if (input[_PM] != null) { + entries[_PM] = input[_PM] + } + if (input[_AD] != null) { + const memberEntries = se_AutoDeployment(input[_AD], context) + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `AutoDeployment.${key}` + entries[loc] = value + }) + } + if (input[_OI] === void 0) { + input[_OI] = (0, import_uuid.v4)() + } + if (input[_OI] != null) { + entries[_OI] = input[_OI] + } + if (input[_Ac] != null) { + const memberEntries = se_AccountList(input[_Ac], context) + if (((_d = input[_Ac]) == null ? void 0 : _d.length) === 0) { + entries.Accounts = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `Accounts.${key}` + entries[loc] = value + }) + } + if (input[_Re] != null) { + const memberEntries = se_RegionList(input[_Re], context) + if (((_e2 = input[_Re]) == null ? void 0 : _e2.length) === 0) { + entries.Regions = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `Regions.${key}` + entries[loc] = value + }) + } + if (input[_CA] != null) { + entries[_CA] = input[_CA] + } + if (input[_ME] != null) { + const memberEntries = se_ManagedExecution(input[_ME], context) + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `ManagedExecution.${key}` + entries[loc] = value + }) + } + return entries + }, 'se_UpdateStackSetInput') + var se_UpdateTerminationProtectionInput = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_ETP] != null) { + entries[_ETP] = input[_ETP] + } + if (input[_SN] != null) { + entries[_SN] = input[_SN] + } + return entries + }, + 'se_UpdateTerminationProtectionInput' + ) + var se_ValidateTemplateInput = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_TB] != null) { + entries[_TB] = input[_TB] + } + if (input[_TURL] != null) { + entries[_TURL] = input[_TURL] + } + return entries + }, + 'se_ValidateTemplateInput' + ) + var de_AccountGateResult = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_S] != null) { + contents[_S] = (0, import_smithy_client.expectString)(output[_S]) + } + if (output[_SRt] != null) { + contents[_SRt] = (0, import_smithy_client.expectString)(output[_SRt]) + } + return contents + }, 'de_AccountGateResult') + var de_AccountLimit = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_N] != null) { + contents[_N] = (0, import_smithy_client.expectString)(output[_N]) + } + if (output[_Val] != null) { + contents[_Val] = (0, import_smithy_client.strictParseInt32)( + output[_Val] + ) + } + return contents + }, 'de_AccountLimit') + var de_AccountLimitList = /* @__PURE__ */ __name((output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return de_AccountLimit(entry, context) + }) + }, 'de_AccountLimitList') + var de_AccountList = /* @__PURE__ */ __name((output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return (0, import_smithy_client.expectString)(entry) + }) + }, 'de_AccountList') + var de_ActivateOrganizationsAccessOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + return contents + }, + 'de_ActivateOrganizationsAccessOutput' + ) + var de_ActivateTypeOutput = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_Ar] != null) { + contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]) + } + return contents + }, 'de_ActivateTypeOutput') + var de_AllowedValues = /* @__PURE__ */ __name((output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return (0, import_smithy_client.expectString)(entry) + }) + }, 'de_AllowedValues') + var de_AlreadyExistsException = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_M] != null) { + contents[_M] = (0, import_smithy_client.expectString)(output[_M]) + } + return contents + }, + 'de_AlreadyExistsException' + ) + var de_AutoDeployment = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_E] != null) { + contents[_E] = (0, import_smithy_client.parseBoolean)(output[_E]) + } + if (output[_RSOAR] != null) { + contents[_RSOAR] = (0, import_smithy_client.parseBoolean)( + output[_RSOAR] + ) + } + return contents + }, 'de_AutoDeployment') + var de_BatchDescribeTypeConfigurationsError = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_EC] != null) { + contents[_EC] = (0, import_smithy_client.expectString)(output[_EC]) + } + if (output[_EM] != null) { + contents[_EM] = (0, import_smithy_client.expectString)(output[_EM]) + } + if (output[_TCIy] != null) { + contents[_TCIy] = de_TypeConfigurationIdentifier( + output[_TCIy], + context + ) + } + return contents + }, + 'de_BatchDescribeTypeConfigurationsError' + ) + var de_BatchDescribeTypeConfigurationsErrors = /* @__PURE__ */ __name( + (output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return de_BatchDescribeTypeConfigurationsError(entry, context) + }) + }, + 'de_BatchDescribeTypeConfigurationsErrors' + ) + var de_BatchDescribeTypeConfigurationsOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output.Errors === '') { + contents[_Er] = [] + } else if (output[_Er] != null && output[_Er][_m] != null) { + contents[_Er] = de_BatchDescribeTypeConfigurationsErrors( + (0, import_smithy_client.getArrayIfSingleItem)(output[_Er][_m]), + context + ) + } + if (output.UnprocessedTypeConfigurations === '') { + contents[_UTC] = [] + } else if (output[_UTC] != null && output[_UTC][_m] != null) { + contents[_UTC] = de_UnprocessedTypeConfigurations( + (0, import_smithy_client.getArrayIfSingleItem)(output[_UTC][_m]), + context + ) + } + if (output.TypeConfigurations === '') { + contents[_TCy] = [] + } else if (output[_TCy] != null && output[_TCy][_m] != null) { + contents[_TCy] = de_TypeConfigurationDetailsList( + (0, import_smithy_client.getArrayIfSingleItem)(output[_TCy][_m]), + context + ) + } + return contents + }, + 'de_BatchDescribeTypeConfigurationsOutput' + ) + var de_Capabilities = /* @__PURE__ */ __name((output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return (0, import_smithy_client.expectString)(entry) + }) + }, 'de_Capabilities') + var de_CFNRegistryException = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_M] != null) { + contents[_M] = (0, import_smithy_client.expectString)(output[_M]) + } + return contents + }, + 'de_CFNRegistryException' + ) + var de_Change = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_T] != null) { + contents[_T] = (0, import_smithy_client.expectString)(output[_T]) + } + if (output[_HIC] != null) { + contents[_HIC] = (0, import_smithy_client.strictParseInt32)( + output[_HIC] + ) + } + if (output[_RCe] != null) { + contents[_RCe] = de_ResourceChange(output[_RCe], context) + } + return contents + }, 'de_Change') + var de_Changes = /* @__PURE__ */ __name((output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return de_Change(entry, context) + }) + }, 'de_Changes') + var de_ChangeSetHook = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_IP] != null) { + contents[_IP] = (0, import_smithy_client.expectString)(output[_IP]) + } + if (output[_FM] != null) { + contents[_FM] = (0, import_smithy_client.expectString)(output[_FM]) + } + if (output[_TN] != null) { + contents[_TN] = (0, import_smithy_client.expectString)(output[_TN]) + } + if (output[_TVI] != null) { + contents[_TVI] = (0, import_smithy_client.expectString)(output[_TVI]) + } + if (output[_TCVI] != null) { + contents[_TCVI] = (0, import_smithy_client.expectString)( + output[_TCVI] + ) + } + if (output[_TD] != null) { + contents[_TD] = de_ChangeSetHookTargetDetails(output[_TD], context) + } + return contents + }, 'de_ChangeSetHook') + var de_ChangeSetHookResourceTargetDetails = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_LRI] != null) { + contents[_LRI] = (0, import_smithy_client.expectString)( + output[_LRI] + ) + } + if (output[_RTes] != null) { + contents[_RTes] = (0, import_smithy_client.expectString)( + output[_RTes] + ) + } + if (output[_RA] != null) { + contents[_RA] = (0, import_smithy_client.expectString)(output[_RA]) + } + return contents + }, + 'de_ChangeSetHookResourceTargetDetails' + ) + var de_ChangeSetHooks = /* @__PURE__ */ __name((output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return de_ChangeSetHook(entry, context) + }) + }, 'de_ChangeSetHooks') + var de_ChangeSetHookTargetDetails = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_TTa] != null) { + contents[_TTa] = (0, import_smithy_client.expectString)( + output[_TTa] + ) + } + if (output[_RTD] != null) { + contents[_RTD] = de_ChangeSetHookResourceTargetDetails( + output[_RTD], + context + ) + } + return contents + }, + 'de_ChangeSetHookTargetDetails' + ) + var de_ChangeSetNotFoundException = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_M] != null) { + contents[_M] = (0, import_smithy_client.expectString)(output[_M]) + } + return contents + }, + 'de_ChangeSetNotFoundException' + ) + var de_ChangeSetSummaries = /* @__PURE__ */ __name((output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return de_ChangeSetSummary(entry, context) + }) + }, 'de_ChangeSetSummaries') + var de_ChangeSetSummary = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_SI] != null) { + contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]) + } + if (output[_SN] != null) { + contents[_SN] = (0, import_smithy_client.expectString)(output[_SN]) + } + if (output[_CSIh] != null) { + contents[_CSIh] = (0, import_smithy_client.expectString)( + output[_CSIh] + ) + } + if (output[_CSN] != null) { + contents[_CSN] = (0, import_smithy_client.expectString)(output[_CSN]) + } + if (output[_ES] != null) { + contents[_ES] = (0, import_smithy_client.expectString)(output[_ES]) + } + if (output[_S] != null) { + contents[_S] = (0, import_smithy_client.expectString)(output[_S]) + } + if (output[_SRt] != null) { + contents[_SRt] = (0, import_smithy_client.expectString)(output[_SRt]) + } + if (output[_CTr] != null) { + contents[_CTr] = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.parseRfc3339DateTimeWithOffset)( + output[_CTr] + ) + ) + } + if (output[_D] != null) { + contents[_D] = (0, import_smithy_client.expectString)(output[_D]) + } + if (output[_INS] != null) { + contents[_INS] = (0, import_smithy_client.parseBoolean)(output[_INS]) + } + if (output[_PCSI] != null) { + contents[_PCSI] = (0, import_smithy_client.expectString)( + output[_PCSI] + ) + } + if (output[_RCSI] != null) { + contents[_RCSI] = (0, import_smithy_client.expectString)( + output[_RCSI] + ) + } + if (output[_IER] != null) { + contents[_IER] = (0, import_smithy_client.parseBoolean)(output[_IER]) + } + return contents + }, 'de_ChangeSetSummary') + var de_ConcurrentResourcesLimitExceededException = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_M] != null) { + contents[_M] = (0, import_smithy_client.expectString)(output[_M]) + } + return contents + }, + 'de_ConcurrentResourcesLimitExceededException' + ) + var de_ContinueUpdateRollbackOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + return contents + }, + 'de_ContinueUpdateRollbackOutput' + ) + var de_CreateChangeSetOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_I] != null) { + contents[_I] = (0, import_smithy_client.expectString)(output[_I]) + } + if (output[_SI] != null) { + contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]) + } + return contents + }, + 'de_CreateChangeSetOutput' + ) + var de_CreatedButModifiedException = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_M] != null) { + contents[_M] = (0, import_smithy_client.expectString)(output[_M]) + } + return contents + }, + 'de_CreatedButModifiedException' + ) + var de_CreateGeneratedTemplateOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_GTI] != null) { + contents[_GTI] = (0, import_smithy_client.expectString)( + output[_GTI] + ) + } + return contents + }, + 'de_CreateGeneratedTemplateOutput' + ) + var de_CreateStackInstancesOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_OI] != null) { + contents[_OI] = (0, import_smithy_client.expectString)(output[_OI]) + } + return contents + }, + 'de_CreateStackInstancesOutput' + ) + var de_CreateStackOutput = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_SI] != null) { + contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]) + } + return contents + }, 'de_CreateStackOutput') + var de_CreateStackSetOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_SSI] != null) { + contents[_SSI] = (0, import_smithy_client.expectString)( + output[_SSI] + ) + } + return contents + }, + 'de_CreateStackSetOutput' + ) + var de_DeactivateOrganizationsAccessOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + return contents + }, + 'de_DeactivateOrganizationsAccessOutput' + ) + var de_DeactivateTypeOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + return contents + }, + 'de_DeactivateTypeOutput' + ) + var de_DeleteChangeSetOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + return contents + }, + 'de_DeleteChangeSetOutput' + ) + var de_DeleteStackInstancesOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_OI] != null) { + contents[_OI] = (0, import_smithy_client.expectString)(output[_OI]) + } + return contents + }, + 'de_DeleteStackInstancesOutput' + ) + var de_DeleteStackSetOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + return contents + }, + 'de_DeleteStackSetOutput' + ) + var de_DeploymentTargets = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output.Accounts === '') { + contents[_Ac] = [] + } else if (output[_Ac] != null && output[_Ac][_m] != null) { + contents[_Ac] = de_AccountList( + (0, import_smithy_client.getArrayIfSingleItem)(output[_Ac][_m]), + context + ) + } + if (output[_AUc] != null) { + contents[_AUc] = (0, import_smithy_client.expectString)(output[_AUc]) + } + if (output.OrganizationalUnitIds === '') { + contents[_OUI] = [] + } else if (output[_OUI] != null && output[_OUI][_m] != null) { + contents[_OUI] = de_OrganizationalUnitIdList( + (0, import_smithy_client.getArrayIfSingleItem)(output[_OUI][_m]), + context + ) + } + if (output[_AFT] != null) { + contents[_AFT] = (0, import_smithy_client.expectString)(output[_AFT]) + } + return contents + }, 'de_DeploymentTargets') + var de_DeregisterTypeOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + return contents + }, + 'de_DeregisterTypeOutput' + ) + var de_DescribeAccountLimitsOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output.AccountLimits === '') { + contents[_AL] = [] + } else if (output[_AL] != null && output[_AL][_m] != null) { + contents[_AL] = de_AccountLimitList( + (0, import_smithy_client.getArrayIfSingleItem)(output[_AL][_m]), + context + ) + } + if (output[_NT] != null) { + contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]) + } + return contents + }, + 'de_DescribeAccountLimitsOutput' + ) + var de_DescribeChangeSetHooksOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_CSIh] != null) { + contents[_CSIh] = (0, import_smithy_client.expectString)( + output[_CSIh] + ) + } + if (output[_CSN] != null) { + contents[_CSN] = (0, import_smithy_client.expectString)( + output[_CSN] + ) + } + if (output.Hooks === '') { + contents[_H] = [] + } else if (output[_H] != null && output[_H][_m] != null) { + contents[_H] = de_ChangeSetHooks( + (0, import_smithy_client.getArrayIfSingleItem)(output[_H][_m]), + context + ) + } + if (output[_S] != null) { + contents[_S] = (0, import_smithy_client.expectString)(output[_S]) + } + if (output[_NT] != null) { + contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]) + } + if (output[_SI] != null) { + contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]) + } + if (output[_SN] != null) { + contents[_SN] = (0, import_smithy_client.expectString)(output[_SN]) + } + return contents + }, + 'de_DescribeChangeSetHooksOutput' + ) + var de_DescribeChangeSetOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_CSN] != null) { + contents[_CSN] = (0, import_smithy_client.expectString)( + output[_CSN] + ) + } + if (output[_CSIh] != null) { + contents[_CSIh] = (0, import_smithy_client.expectString)( + output[_CSIh] + ) + } + if (output[_SI] != null) { + contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]) + } + if (output[_SN] != null) { + contents[_SN] = (0, import_smithy_client.expectString)(output[_SN]) + } + if (output[_D] != null) { + contents[_D] = (0, import_smithy_client.expectString)(output[_D]) + } + if (output.Parameters === '') { + contents[_P] = [] + } else if (output[_P] != null && output[_P][_m] != null) { + contents[_P] = de_Parameters( + (0, import_smithy_client.getArrayIfSingleItem)(output[_P][_m]), + context + ) + } + if (output[_CTr] != null) { + contents[_CTr] = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.parseRfc3339DateTimeWithOffset)( + output[_CTr] + ) + ) + } + if (output[_ES] != null) { + contents[_ES] = (0, import_smithy_client.expectString)(output[_ES]) + } + if (output[_S] != null) { + contents[_S] = (0, import_smithy_client.expectString)(output[_S]) + } + if (output[_SRt] != null) { + contents[_SRt] = (0, import_smithy_client.expectString)( + output[_SRt] + ) + } + if (output.NotificationARNs === '') { + contents[_NARN] = [] + } else if (output[_NARN] != null && output[_NARN][_m] != null) { + contents[_NARN] = de_NotificationARNs( + (0, import_smithy_client.getArrayIfSingleItem)(output[_NARN][_m]), + context + ) + } + if (output[_RC] != null) { + contents[_RC] = de_RollbackConfiguration(output[_RC], context) + } + if (output.Capabilities === '') { + contents[_C] = [] + } else if (output[_C] != null && output[_C][_m] != null) { + contents[_C] = de_Capabilities( + (0, import_smithy_client.getArrayIfSingleItem)(output[_C][_m]), + context + ) + } + if (output.Tags === '') { + contents[_Ta] = [] + } else if (output[_Ta] != null && output[_Ta][_m] != null) { + contents[_Ta] = de_Tags( + (0, import_smithy_client.getArrayIfSingleItem)(output[_Ta][_m]), + context + ) + } + if (output.Changes === '') { + contents[_Ch] = [] + } else if (output[_Ch] != null && output[_Ch][_m] != null) { + contents[_Ch] = de_Changes( + (0, import_smithy_client.getArrayIfSingleItem)(output[_Ch][_m]), + context + ) + } + if (output[_NT] != null) { + contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]) + } + if (output[_INS] != null) { + contents[_INS] = (0, import_smithy_client.parseBoolean)( + output[_INS] + ) + } + if (output[_PCSI] != null) { + contents[_PCSI] = (0, import_smithy_client.expectString)( + output[_PCSI] + ) + } + if (output[_RCSI] != null) { + contents[_RCSI] = (0, import_smithy_client.expectString)( + output[_RCSI] + ) + } + if (output[_OSF] != null) { + contents[_OSF] = (0, import_smithy_client.expectString)( + output[_OSF] + ) + } + if (output[_IER] != null) { + contents[_IER] = (0, import_smithy_client.parseBoolean)( + output[_IER] + ) + } + return contents + }, + 'de_DescribeChangeSetOutput' + ) + var de_DescribeGeneratedTemplateOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_GTI] != null) { + contents[_GTI] = (0, import_smithy_client.expectString)( + output[_GTI] + ) + } + if (output[_GTN] != null) { + contents[_GTN] = (0, import_smithy_client.expectString)( + output[_GTN] + ) + } + if (output.Resources === '') { + contents[_R] = [] + } else if (output[_R] != null && output[_R][_m] != null) { + contents[_R] = de_ResourceDetails( + (0, import_smithy_client.getArrayIfSingleItem)(output[_R][_m]), + context + ) + } + if (output[_S] != null) { + contents[_S] = (0, import_smithy_client.expectString)(output[_S]) + } + if (output[_SRt] != null) { + contents[_SRt] = (0, import_smithy_client.expectString)( + output[_SRt] + ) + } + if (output[_CTr] != null) { + contents[_CTr] = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.parseRfc3339DateTimeWithOffset)( + output[_CTr] + ) + ) + } + if (output[_LUT] != null) { + contents[_LUT] = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.parseRfc3339DateTimeWithOffset)( + output[_LUT] + ) + ) + } + if (output[_Pr] != null) { + contents[_Pr] = de_TemplateProgress(output[_Pr], context) + } + if (output[_SI] != null) { + contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]) + } + if (output[_TC] != null) { + contents[_TC] = de_TemplateConfiguration(output[_TC], context) + } + if (output[_TW] != null) { + contents[_TW] = (0, import_smithy_client.strictParseInt32)( + output[_TW] + ) + } + return contents + }, + 'de_DescribeGeneratedTemplateOutput' + ) + var de_DescribeOrganizationsAccessOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_S] != null) { + contents[_S] = (0, import_smithy_client.expectString)(output[_S]) + } + return contents + }, + 'de_DescribeOrganizationsAccessOutput' + ) + var de_DescribePublisherOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_PI] != null) { + contents[_PI] = (0, import_smithy_client.expectString)(output[_PI]) + } + if (output[_PS] != null) { + contents[_PS] = (0, import_smithy_client.expectString)(output[_PS]) + } + if (output[_IPd] != null) { + contents[_IPd] = (0, import_smithy_client.expectString)( + output[_IPd] + ) + } + if (output[_PP] != null) { + contents[_PP] = (0, import_smithy_client.expectString)(output[_PP]) + } + return contents + }, + 'de_DescribePublisherOutput' + ) + var de_DescribeResourceScanOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_RSI] != null) { + contents[_RSI] = (0, import_smithy_client.expectString)( + output[_RSI] + ) + } + if (output[_S] != null) { + contents[_S] = (0, import_smithy_client.expectString)(output[_S]) + } + if (output[_SRt] != null) { + contents[_SRt] = (0, import_smithy_client.expectString)( + output[_SRt] + ) + } + if (output[_ST] != null) { + contents[_ST] = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.parseRfc3339DateTimeWithOffset)( + output[_ST] + ) + ) + } + if (output[_ET] != null) { + contents[_ET] = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.parseRfc3339DateTimeWithOffset)( + output[_ET] + ) + ) + } + if (output[_PC] != null) { + contents[_PC] = (0, import_smithy_client.strictParseFloat)( + output[_PC] + ) + } + if (output.ResourceTypes === '') { + contents[_RTe] = [] + } else if (output[_RTe] != null && output[_RTe][_m] != null) { + contents[_RTe] = de_ResourceTypes( + (0, import_smithy_client.getArrayIfSingleItem)(output[_RTe][_m]), + context + ) + } + if (output[_RSes] != null) { + contents[_RSes] = (0, import_smithy_client.strictParseInt32)( + output[_RSes] + ) + } + if (output[_RRes] != null) { + contents[_RRes] = (0, import_smithy_client.strictParseInt32)( + output[_RRes] + ) + } + return contents + }, + 'de_DescribeResourceScanOutput' + ) + var de_DescribeStackDriftDetectionStatusOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_SI] != null) { + contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]) + } + if (output[_SDDI] != null) { + contents[_SDDI] = (0, import_smithy_client.expectString)( + output[_SDDI] + ) + } + if (output[_SDS] != null) { + contents[_SDS] = (0, import_smithy_client.expectString)( + output[_SDS] + ) + } + if (output[_DSet] != null) { + contents[_DSet] = (0, import_smithy_client.expectString)( + output[_DSet] + ) + } + if (output[_DSRet] != null) { + contents[_DSRet] = (0, import_smithy_client.expectString)( + output[_DSRet] + ) + } + if (output[_DSRC] != null) { + contents[_DSRC] = (0, import_smithy_client.strictParseInt32)( + output[_DSRC] + ) + } + if (output[_Ti] != null) { + contents[_Ti] = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.parseRfc3339DateTimeWithOffset)( + output[_Ti] + ) + ) + } + return contents + }, + 'de_DescribeStackDriftDetectionStatusOutput' + ) + var de_DescribeStackEventsOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output.StackEvents === '') { + contents[_SE] = [] + } else if (output[_SE] != null && output[_SE][_m] != null) { + contents[_SE] = de_StackEvents( + (0, import_smithy_client.getArrayIfSingleItem)(output[_SE][_m]), + context + ) + } + if (output[_NT] != null) { + contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]) + } + return contents + }, + 'de_DescribeStackEventsOutput' + ) + var de_DescribeStackInstanceOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_SIta] != null) { + contents[_SIta] = de_StackInstance(output[_SIta], context) + } + return contents + }, + 'de_DescribeStackInstanceOutput' + ) + var de_DescribeStackResourceDriftsOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output.StackResourceDrifts === '') { + contents[_SRD] = [] + } else if (output[_SRD] != null && output[_SRD][_m] != null) { + contents[_SRD] = de_StackResourceDrifts( + (0, import_smithy_client.getArrayIfSingleItem)(output[_SRD][_m]), + context + ) + } + if (output[_NT] != null) { + contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]) + } + return contents + }, + 'de_DescribeStackResourceDriftsOutput' + ) + var de_DescribeStackResourceOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_SRDt] != null) { + contents[_SRDt] = de_StackResourceDetail(output[_SRDt], context) + } + return contents + }, + 'de_DescribeStackResourceOutput' + ) + var de_DescribeStackResourcesOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output.StackResources === '') { + contents[_SRta] = [] + } else if (output[_SRta] != null && output[_SRta][_m] != null) { + contents[_SRta] = de_StackResources( + (0, import_smithy_client.getArrayIfSingleItem)(output[_SRta][_m]), + context + ) + } + return contents + }, + 'de_DescribeStackResourcesOutput' + ) + var de_DescribeStackSetOperationOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_SSO] != null) { + contents[_SSO] = de_StackSetOperation(output[_SSO], context) + } + return contents + }, + 'de_DescribeStackSetOperationOutput' + ) + var de_DescribeStackSetOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_SS] != null) { + contents[_SS] = de_StackSet(output[_SS], context) + } + return contents + }, + 'de_DescribeStackSetOutput' + ) + var de_DescribeStacksOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output.Stacks === '') { + contents[_St] = [] + } else if (output[_St] != null && output[_St][_m] != null) { + contents[_St] = de_Stacks( + (0, import_smithy_client.getArrayIfSingleItem)(output[_St][_m]), + context + ) + } + if (output[_NT] != null) { + contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]) + } + return contents + }, + 'de_DescribeStacksOutput' + ) + var de_DescribeTypeOutput = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_Ar] != null) { + contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]) + } + if (output[_T] != null) { + contents[_T] = (0, import_smithy_client.expectString)(output[_T]) + } + if (output[_TN] != null) { + contents[_TN] = (0, import_smithy_client.expectString)(output[_TN]) + } + if (output[_DVI] != null) { + contents[_DVI] = (0, import_smithy_client.expectString)(output[_DVI]) + } + if (output[_IDV] != null) { + contents[_IDV] = (0, import_smithy_client.parseBoolean)(output[_IDV]) + } + if (output[_TTS] != null) { + contents[_TTS] = (0, import_smithy_client.expectString)(output[_TTS]) + } + if (output[_TTSD] != null) { + contents[_TTSD] = (0, import_smithy_client.expectString)( + output[_TTSD] + ) + } + if (output[_D] != null) { + contents[_D] = (0, import_smithy_client.expectString)(output[_D]) + } + if (output[_Sc] != null) { + contents[_Sc] = (0, import_smithy_client.expectString)(output[_Sc]) + } + if (output[_PTr] != null) { + contents[_PTr] = (0, import_smithy_client.expectString)(output[_PTr]) + } + if (output[_DSep] != null) { + contents[_DSep] = (0, import_smithy_client.expectString)( + output[_DSep] + ) + } + if (output[_LC] != null) { + contents[_LC] = de_LoggingConfig(output[_LC], context) + } + if (output.RequiredActivatedTypes === '') { + contents[_RAT] = [] + } else if (output[_RAT] != null && output[_RAT][_m] != null) { + contents[_RAT] = de_RequiredActivatedTypes( + (0, import_smithy_client.getArrayIfSingleItem)(output[_RAT][_m]), + context + ) + } + if (output[_ERA] != null) { + contents[_ERA] = (0, import_smithy_client.expectString)(output[_ERA]) + } + if (output[_Vi] != null) { + contents[_Vi] = (0, import_smithy_client.expectString)(output[_Vi]) + } + if (output[_SU] != null) { + contents[_SU] = (0, import_smithy_client.expectString)(output[_SU]) + } + if (output[_DU] != null) { + contents[_DU] = (0, import_smithy_client.expectString)(output[_DU]) + } + if (output[_LU] != null) { + contents[_LU] = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.parseRfc3339DateTimeWithOffset)( + output[_LU] + ) + ) + } + if (output[_TCi] != null) { + contents[_TCi] = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.parseRfc3339DateTimeWithOffset)( + output[_TCi] + ) + ) + } + if (output[_CSo] != null) { + contents[_CSo] = (0, import_smithy_client.expectString)(output[_CSo]) + } + if (output[_PI] != null) { + contents[_PI] = (0, import_smithy_client.expectString)(output[_PI]) + } + if (output[_OTN] != null) { + contents[_OTN] = (0, import_smithy_client.expectString)(output[_OTN]) + } + if (output[_OTA] != null) { + contents[_OTA] = (0, import_smithy_client.expectString)(output[_OTA]) + } + if (output[_PVN] != null) { + contents[_PVN] = (0, import_smithy_client.expectString)(output[_PVN]) + } + if (output[_LPV] != null) { + contents[_LPV] = (0, import_smithy_client.expectString)(output[_LPV]) + } + if (output[_IA] != null) { + contents[_IA] = (0, import_smithy_client.parseBoolean)(output[_IA]) + } + if (output[_AU] != null) { + contents[_AU] = (0, import_smithy_client.parseBoolean)(output[_AU]) + } + return contents + }, 'de_DescribeTypeOutput') + var de_DescribeTypeRegistrationOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_PSr] != null) { + contents[_PSr] = (0, import_smithy_client.expectString)( + output[_PSr] + ) + } + if (output[_D] != null) { + contents[_D] = (0, import_smithy_client.expectString)(output[_D]) + } + if (output[_TA] != null) { + contents[_TA] = (0, import_smithy_client.expectString)(output[_TA]) + } + if (output[_TVA] != null) { + contents[_TVA] = (0, import_smithy_client.expectString)( + output[_TVA] + ) + } + return contents + }, + 'de_DescribeTypeRegistrationOutput' + ) + var de_DetectStackDriftOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_SDDI] != null) { + contents[_SDDI] = (0, import_smithy_client.expectString)( + output[_SDDI] + ) + } + return contents + }, + 'de_DetectStackDriftOutput' + ) + var de_DetectStackResourceDriftOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_SRDta] != null) { + contents[_SRDta] = de_StackResourceDrift(output[_SRDta], context) + } + return contents + }, + 'de_DetectStackResourceDriftOutput' + ) + var de_DetectStackSetDriftOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_OI] != null) { + contents[_OI] = (0, import_smithy_client.expectString)(output[_OI]) + } + return contents + }, + 'de_DetectStackSetDriftOutput' + ) + var de_EstimateTemplateCostOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_U] != null) { + contents[_U] = (0, import_smithy_client.expectString)(output[_U]) + } + return contents + }, + 'de_EstimateTemplateCostOutput' + ) + var de_ExecuteChangeSetOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + return contents + }, + 'de_ExecuteChangeSetOutput' + ) + var de_Export = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_ESI] != null) { + contents[_ESI] = (0, import_smithy_client.expectString)(output[_ESI]) + } + if (output[_N] != null) { + contents[_N] = (0, import_smithy_client.expectString)(output[_N]) + } + if (output[_Val] != null) { + contents[_Val] = (0, import_smithy_client.expectString)(output[_Val]) + } + return contents + }, 'de_Export') + var de_Exports = /* @__PURE__ */ __name((output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return de_Export(entry, context) + }) + }, 'de_Exports') + var de_GeneratedTemplateNotFoundException = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_M] != null) { + contents[_M] = (0, import_smithy_client.expectString)(output[_M]) + } + return contents + }, + 'de_GeneratedTemplateNotFoundException' + ) + var de_GetGeneratedTemplateOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_S] != null) { + contents[_S] = (0, import_smithy_client.expectString)(output[_S]) + } + if (output[_TB] != null) { + contents[_TB] = (0, import_smithy_client.expectString)(output[_TB]) + } + return contents + }, + 'de_GetGeneratedTemplateOutput' + ) + var de_GetStackPolicyOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_SPB] != null) { + contents[_SPB] = (0, import_smithy_client.expectString)( + output[_SPB] + ) + } + return contents + }, + 'de_GetStackPolicyOutput' + ) + var de_GetTemplateOutput = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_TB] != null) { + contents[_TB] = (0, import_smithy_client.expectString)(output[_TB]) + } + if (output.StagesAvailable === '') { + contents[_SA] = [] + } else if (output[_SA] != null && output[_SA][_m] != null) { + contents[_SA] = de_StageList( + (0, import_smithy_client.getArrayIfSingleItem)(output[_SA][_m]), + context + ) + } + return contents + }, 'de_GetTemplateOutput') + var de_GetTemplateSummaryOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output.Parameters === '') { + contents[_P] = [] + } else if (output[_P] != null && output[_P][_m] != null) { + contents[_P] = de_ParameterDeclarations( + (0, import_smithy_client.getArrayIfSingleItem)(output[_P][_m]), + context + ) + } + if (output[_D] != null) { + contents[_D] = (0, import_smithy_client.expectString)(output[_D]) + } + if (output.Capabilities === '') { + contents[_C] = [] + } else if (output[_C] != null && output[_C][_m] != null) { + contents[_C] = de_Capabilities( + (0, import_smithy_client.getArrayIfSingleItem)(output[_C][_m]), + context + ) + } + if (output[_CR] != null) { + contents[_CR] = (0, import_smithy_client.expectString)(output[_CR]) + } + if (output.ResourceTypes === '') { + contents[_RTe] = [] + } else if (output[_RTe] != null && output[_RTe][_m] != null) { + contents[_RTe] = de_ResourceTypes( + (0, import_smithy_client.getArrayIfSingleItem)(output[_RTe][_m]), + context + ) + } + if (output[_V] != null) { + contents[_V] = (0, import_smithy_client.expectString)(output[_V]) + } + if (output[_Me] != null) { + contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]) + } + if (output.DeclaredTransforms === '') { + contents[_DTec] = [] + } else if (output[_DTec] != null && output[_DTec][_m] != null) { + contents[_DTec] = de_TransformsList( + (0, import_smithy_client.getArrayIfSingleItem)(output[_DTec][_m]), + context + ) + } + if (output.ResourceIdentifierSummaries === '') { + contents[_RIS] = [] + } else if (output[_RIS] != null && output[_RIS][_m] != null) { + contents[_RIS] = de_ResourceIdentifierSummaries( + (0, import_smithy_client.getArrayIfSingleItem)(output[_RIS][_m]), + context + ) + } + if (output[_W] != null) { + contents[_W] = de_Warnings(output[_W], context) + } + return contents + }, + 'de_GetTemplateSummaryOutput' + ) + var de_Imports = /* @__PURE__ */ __name((output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return (0, import_smithy_client.expectString)(entry) + }) + }, 'de_Imports') + var de_ImportStacksToStackSetOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_OI] != null) { + contents[_OI] = (0, import_smithy_client.expectString)(output[_OI]) + } + return contents + }, + 'de_ImportStacksToStackSetOutput' + ) + var de_InsufficientCapabilitiesException = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_M] != null) { + contents[_M] = (0, import_smithy_client.expectString)(output[_M]) + } + return contents + }, + 'de_InsufficientCapabilitiesException' + ) + var de_InvalidChangeSetStatusException = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_M] != null) { + contents[_M] = (0, import_smithy_client.expectString)(output[_M]) + } + return contents + }, + 'de_InvalidChangeSetStatusException' + ) + var de_InvalidOperationException = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_M] != null) { + contents[_M] = (0, import_smithy_client.expectString)(output[_M]) + } + return contents + }, + 'de_InvalidOperationException' + ) + var de_InvalidStateTransitionException = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_M] != null) { + contents[_M] = (0, import_smithy_client.expectString)(output[_M]) + } + return contents + }, + 'de_InvalidStateTransitionException' + ) + var de_JazzResourceIdentifierProperties = /* @__PURE__ */ __name( + (output, context) => { + return output.reduce((acc, pair) => { + if (pair['value'] === null) { + return acc + } + acc[pair['key']] = (0, import_smithy_client.expectString)( + pair['value'] + ) + return acc + }, {}) + }, + 'de_JazzResourceIdentifierProperties' + ) + var de_LimitExceededException = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_M] != null) { + contents[_M] = (0, import_smithy_client.expectString)(output[_M]) + } + return contents + }, + 'de_LimitExceededException' + ) + var de_ListChangeSetsOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output.Summaries === '') { + contents[_Su] = [] + } else if (output[_Su] != null && output[_Su][_m] != null) { + contents[_Su] = de_ChangeSetSummaries( + (0, import_smithy_client.getArrayIfSingleItem)(output[_Su][_m]), + context + ) + } + if (output[_NT] != null) { + contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]) + } + return contents + }, + 'de_ListChangeSetsOutput' + ) + var de_ListExportsOutput = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output.Exports === '') { + contents[_Ex] = [] + } else if (output[_Ex] != null && output[_Ex][_m] != null) { + contents[_Ex] = de_Exports( + (0, import_smithy_client.getArrayIfSingleItem)(output[_Ex][_m]), + context + ) + } + if (output[_NT] != null) { + contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]) + } + return contents + }, 'de_ListExportsOutput') + var de_ListGeneratedTemplatesOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output.Summaries === '') { + contents[_Su] = [] + } else if (output[_Su] != null && output[_Su][_m] != null) { + contents[_Su] = de_TemplateSummaries( + (0, import_smithy_client.getArrayIfSingleItem)(output[_Su][_m]), + context + ) + } + if (output[_NT] != null) { + contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]) + } + return contents + }, + 'de_ListGeneratedTemplatesOutput' + ) + var de_ListImportsOutput = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output.Imports === '') { + contents[_Im] = [] + } else if (output[_Im] != null && output[_Im][_m] != null) { + contents[_Im] = de_Imports( + (0, import_smithy_client.getArrayIfSingleItem)(output[_Im][_m]), + context + ) + } + if (output[_NT] != null) { + contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]) + } + return contents + }, 'de_ListImportsOutput') + var de_ListResourceScanRelatedResourcesOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output.RelatedResources === '') { + contents[_RRel] = [] + } else if (output[_RRel] != null && output[_RRel][_m] != null) { + contents[_RRel] = de_RelatedResources( + (0, import_smithy_client.getArrayIfSingleItem)(output[_RRel][_m]), + context + ) + } + if (output[_NT] != null) { + contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]) + } + return contents + }, + 'de_ListResourceScanRelatedResourcesOutput' + ) + var de_ListResourceScanResourcesOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output.Resources === '') { + contents[_R] = [] + } else if (output[_R] != null && output[_R][_m] != null) { + contents[_R] = de_ScannedResources( + (0, import_smithy_client.getArrayIfSingleItem)(output[_R][_m]), + context + ) + } + if (output[_NT] != null) { + contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]) + } + return contents + }, + 'de_ListResourceScanResourcesOutput' + ) + var de_ListResourceScansOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output.ResourceScanSummaries === '') { + contents[_RSS] = [] + } else if (output[_RSS] != null && output[_RSS][_m] != null) { + contents[_RSS] = de_ResourceScanSummaries( + (0, import_smithy_client.getArrayIfSingleItem)(output[_RSS][_m]), + context + ) + } + if (output[_NT] != null) { + contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]) + } + return contents + }, + 'de_ListResourceScansOutput' + ) + var de_ListStackInstanceResourceDriftsOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output.Summaries === '') { + contents[_Su] = [] + } else if (output[_Su] != null && output[_Su][_m] != null) { + contents[_Su] = de_StackInstanceResourceDriftsSummaries( + (0, import_smithy_client.getArrayIfSingleItem)(output[_Su][_m]), + context + ) + } + if (output[_NT] != null) { + contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]) + } + return contents + }, + 'de_ListStackInstanceResourceDriftsOutput' + ) + var de_ListStackInstancesOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output.Summaries === '') { + contents[_Su] = [] + } else if (output[_Su] != null && output[_Su][_m] != null) { + contents[_Su] = de_StackInstanceSummaries( + (0, import_smithy_client.getArrayIfSingleItem)(output[_Su][_m]), + context + ) + } + if (output[_NT] != null) { + contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]) + } + return contents + }, + 'de_ListStackInstancesOutput' + ) + var de_ListStackResourcesOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output.StackResourceSummaries === '') { + contents[_SRSt] = [] + } else if (output[_SRSt] != null && output[_SRSt][_m] != null) { + contents[_SRSt] = de_StackResourceSummaries( + (0, import_smithy_client.getArrayIfSingleItem)(output[_SRSt][_m]), + context + ) + } + if (output[_NT] != null) { + contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]) + } + return contents + }, + 'de_ListStackResourcesOutput' + ) + var de_ListStackSetAutoDeploymentTargetsOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output.Summaries === '') { + contents[_Su] = [] + } else if (output[_Su] != null && output[_Su][_m] != null) { + contents[_Su] = de_StackSetAutoDeploymentTargetSummaries( + (0, import_smithy_client.getArrayIfSingleItem)(output[_Su][_m]), + context + ) + } + if (output[_NT] != null) { + contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]) + } + return contents + }, + 'de_ListStackSetAutoDeploymentTargetsOutput' + ) + var de_ListStackSetOperationResultsOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output.Summaries === '') { + contents[_Su] = [] + } else if (output[_Su] != null && output[_Su][_m] != null) { + contents[_Su] = de_StackSetOperationResultSummaries( + (0, import_smithy_client.getArrayIfSingleItem)(output[_Su][_m]), + context + ) + } + if (output[_NT] != null) { + contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]) + } + return contents + }, + 'de_ListStackSetOperationResultsOutput' + ) + var de_ListStackSetOperationsOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output.Summaries === '') { + contents[_Su] = [] + } else if (output[_Su] != null && output[_Su][_m] != null) { + contents[_Su] = de_StackSetOperationSummaries( + (0, import_smithy_client.getArrayIfSingleItem)(output[_Su][_m]), + context + ) + } + if (output[_NT] != null) { + contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]) + } + return contents + }, + 'de_ListStackSetOperationsOutput' + ) + var de_ListStackSetsOutput = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output.Summaries === '') { + contents[_Su] = [] + } else if (output[_Su] != null && output[_Su][_m] != null) { + contents[_Su] = de_StackSetSummaries( + (0, import_smithy_client.getArrayIfSingleItem)(output[_Su][_m]), + context + ) + } + if (output[_NT] != null) { + contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]) + } + return contents + }, 'de_ListStackSetsOutput') + var de_ListStacksOutput = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output.StackSummaries === '') { + contents[_SSt] = [] + } else if (output[_SSt] != null && output[_SSt][_m] != null) { + contents[_SSt] = de_StackSummaries( + (0, import_smithy_client.getArrayIfSingleItem)(output[_SSt][_m]), + context + ) + } + if (output[_NT] != null) { + contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]) + } + return contents + }, 'de_ListStacksOutput') + var de_ListTypeRegistrationsOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output.RegistrationTokenList === '') { + contents[_RTL] = [] + } else if (output[_RTL] != null && output[_RTL][_m] != null) { + contents[_RTL] = de_RegistrationTokenList( + (0, import_smithy_client.getArrayIfSingleItem)(output[_RTL][_m]), + context + ) + } + if (output[_NT] != null) { + contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]) + } + return contents + }, + 'de_ListTypeRegistrationsOutput' + ) + var de_ListTypesOutput = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output.TypeSummaries === '') { + contents[_TSy] = [] + } else if (output[_TSy] != null && output[_TSy][_m] != null) { + contents[_TSy] = de_TypeSummaries( + (0, import_smithy_client.getArrayIfSingleItem)(output[_TSy][_m]), + context + ) + } + if (output[_NT] != null) { + contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]) + } + return contents + }, 'de_ListTypesOutput') + var de_ListTypeVersionsOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output.TypeVersionSummaries === '') { + contents[_TVS] = [] + } else if (output[_TVS] != null && output[_TVS][_m] != null) { + contents[_TVS] = de_TypeVersionSummaries( + (0, import_smithy_client.getArrayIfSingleItem)(output[_TVS][_m]), + context + ) + } + if (output[_NT] != null) { + contents[_NT] = (0, import_smithy_client.expectString)(output[_NT]) + } + return contents + }, + 'de_ListTypeVersionsOutput' + ) + var de_LoggingConfig = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_LRA] != null) { + contents[_LRA] = (0, import_smithy_client.expectString)(output[_LRA]) + } + if (output[_LGN] != null) { + contents[_LGN] = (0, import_smithy_client.expectString)(output[_LGN]) + } + return contents + }, 'de_LoggingConfig') + var de_LogicalResourceIds = /* @__PURE__ */ __name((output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return (0, import_smithy_client.expectString)(entry) + }) + }, 'de_LogicalResourceIds') + var de_ManagedExecution = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_Act] != null) { + contents[_Act] = (0, import_smithy_client.parseBoolean)(output[_Act]) + } + return contents + }, 'de_ManagedExecution') + var de_ModuleInfo = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_TH] != null) { + contents[_TH] = (0, import_smithy_client.expectString)(output[_TH]) + } + if (output[_LIH] != null) { + contents[_LIH] = (0, import_smithy_client.expectString)(output[_LIH]) + } + return contents + }, 'de_ModuleInfo') + var de_NameAlreadyExistsException = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_M] != null) { + contents[_M] = (0, import_smithy_client.expectString)(output[_M]) + } + return contents + }, + 'de_NameAlreadyExistsException' + ) + var de_NotificationARNs = /* @__PURE__ */ __name((output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return (0, import_smithy_client.expectString)(entry) + }) + }, 'de_NotificationARNs') + var de_OperationIdAlreadyExistsException = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_M] != null) { + contents[_M] = (0, import_smithy_client.expectString)(output[_M]) + } + return contents + }, + 'de_OperationIdAlreadyExistsException' + ) + var de_OperationInProgressException = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_M] != null) { + contents[_M] = (0, import_smithy_client.expectString)(output[_M]) + } + return contents + }, + 'de_OperationInProgressException' + ) + var de_OperationNotFoundException = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_M] != null) { + contents[_M] = (0, import_smithy_client.expectString)(output[_M]) + } + return contents + }, + 'de_OperationNotFoundException' + ) + var de_OperationStatusCheckFailedException = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_M] != null) { + contents[_M] = (0, import_smithy_client.expectString)(output[_M]) + } + return contents + }, + 'de_OperationStatusCheckFailedException' + ) + var de_OrganizationalUnitIdList = /* @__PURE__ */ __name( + (output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return (0, import_smithy_client.expectString)(entry) + }) + }, + 'de_OrganizationalUnitIdList' + ) + var de_Output = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_OK] != null) { + contents[_OK] = (0, import_smithy_client.expectString)(output[_OK]) + } + if (output[_OV] != null) { + contents[_OV] = (0, import_smithy_client.expectString)(output[_OV]) + } + if (output[_D] != null) { + contents[_D] = (0, import_smithy_client.expectString)(output[_D]) + } + if (output[_EN] != null) { + contents[_EN] = (0, import_smithy_client.expectString)(output[_EN]) + } + return contents + }, 'de_Output') + var de_Outputs = /* @__PURE__ */ __name((output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return de_Output(entry, context) + }) + }, 'de_Outputs') + var de_Parameter = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_PK] != null) { + contents[_PK] = (0, import_smithy_client.expectString)(output[_PK]) + } + if (output[_PV] != null) { + contents[_PV] = (0, import_smithy_client.expectString)(output[_PV]) + } + if (output[_UPV] != null) { + contents[_UPV] = (0, import_smithy_client.parseBoolean)(output[_UPV]) + } + if (output[_RV] != null) { + contents[_RV] = (0, import_smithy_client.expectString)(output[_RV]) + } + return contents + }, 'de_Parameter') + var de_ParameterConstraints = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output.AllowedValues === '') { + contents[_AV] = [] + } else if (output[_AV] != null && output[_AV][_m] != null) { + contents[_AV] = de_AllowedValues( + (0, import_smithy_client.getArrayIfSingleItem)(output[_AV][_m]), + context + ) + } + return contents + }, + 'de_ParameterConstraints' + ) + var de_ParameterDeclaration = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_PK] != null) { + contents[_PK] = (0, import_smithy_client.expectString)(output[_PK]) + } + if (output[_DV] != null) { + contents[_DV] = (0, import_smithy_client.expectString)(output[_DV]) + } + if (output[_PTa] != null) { + contents[_PTa] = (0, import_smithy_client.expectString)( + output[_PTa] + ) + } + if (output[_NE] != null) { + contents[_NE] = (0, import_smithy_client.parseBoolean)(output[_NE]) + } + if (output[_D] != null) { + contents[_D] = (0, import_smithy_client.expectString)(output[_D]) + } + if (output[_PCa] != null) { + contents[_PCa] = de_ParameterConstraints(output[_PCa], context) + } + return contents + }, + 'de_ParameterDeclaration' + ) + var de_ParameterDeclarations = /* @__PURE__ */ __name( + (output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return de_ParameterDeclaration(entry, context) + }) + }, + 'de_ParameterDeclarations' + ) + var de_Parameters = /* @__PURE__ */ __name((output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return de_Parameter(entry, context) + }) + }, 'de_Parameters') + var de_PhysicalResourceIdContext = /* @__PURE__ */ __name( + (output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return de_PhysicalResourceIdContextKeyValuePair(entry, context) + }) + }, + 'de_PhysicalResourceIdContext' + ) + var de_PhysicalResourceIdContextKeyValuePair = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_K] != null) { + contents[_K] = (0, import_smithy_client.expectString)(output[_K]) + } + if (output[_Val] != null) { + contents[_Val] = (0, import_smithy_client.expectString)( + output[_Val] + ) + } + return contents + }, + 'de_PhysicalResourceIdContextKeyValuePair' + ) + var de_PropertyDifference = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_PPr] != null) { + contents[_PPr] = (0, import_smithy_client.expectString)(output[_PPr]) + } + if (output[_EV] != null) { + contents[_EV] = (0, import_smithy_client.expectString)(output[_EV]) + } + if (output[_AVc] != null) { + contents[_AVc] = (0, import_smithy_client.expectString)(output[_AVc]) + } + if (output[_DTi] != null) { + contents[_DTi] = (0, import_smithy_client.expectString)(output[_DTi]) + } + return contents + }, 'de_PropertyDifference') + var de_PropertyDifferences = /* @__PURE__ */ __name((output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return de_PropertyDifference(entry, context) + }) + }, 'de_PropertyDifferences') + var de_PublishTypeOutput = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_PTA] != null) { + contents[_PTA] = (0, import_smithy_client.expectString)(output[_PTA]) + } + return contents + }, 'de_PublishTypeOutput') + var de_RecordHandlerProgressOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + return contents + }, + 'de_RecordHandlerProgressOutput' + ) + var de_RegionList = /* @__PURE__ */ __name((output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return (0, import_smithy_client.expectString)(entry) + }) + }, 'de_RegionList') + var de_RegisterPublisherOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_PI] != null) { + contents[_PI] = (0, import_smithy_client.expectString)(output[_PI]) + } + return contents + }, + 'de_RegisterPublisherOutput' + ) + var de_RegisterTypeOutput = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_RTeg] != null) { + contents[_RTeg] = (0, import_smithy_client.expectString)( + output[_RTeg] + ) + } + return contents + }, 'de_RegisterTypeOutput') + var de_RegistrationTokenList = /* @__PURE__ */ __name( + (output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return (0, import_smithy_client.expectString)(entry) + }) + }, + 'de_RegistrationTokenList' + ) + var de_RelatedResources = /* @__PURE__ */ __name((output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return de_ScannedResource(entry, context) + }) + }, 'de_RelatedResources') + var de_RequiredActivatedType = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_TNA] != null) { + contents[_TNA] = (0, import_smithy_client.expectString)( + output[_TNA] + ) + } + if (output[_OTN] != null) { + contents[_OTN] = (0, import_smithy_client.expectString)( + output[_OTN] + ) + } + if (output[_PI] != null) { + contents[_PI] = (0, import_smithy_client.expectString)(output[_PI]) + } + if (output.SupportedMajorVersions === '') { + contents[_SMV] = [] + } else if (output[_SMV] != null && output[_SMV][_m] != null) { + contents[_SMV] = de_SupportedMajorVersions( + (0, import_smithy_client.getArrayIfSingleItem)(output[_SMV][_m]), + context + ) + } + return contents + }, + 'de_RequiredActivatedType' + ) + var de_RequiredActivatedTypes = /* @__PURE__ */ __name( + (output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return de_RequiredActivatedType(entry, context) + }) + }, + 'de_RequiredActivatedTypes' + ) + var de_ResourceChange = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_PA] != null) { + contents[_PA] = (0, import_smithy_client.expectString)(output[_PA]) + } + if (output[_A] != null) { + contents[_A] = (0, import_smithy_client.expectString)(output[_A]) + } + if (output[_LRI] != null) { + contents[_LRI] = (0, import_smithy_client.expectString)(output[_LRI]) + } + if (output[_PRI] != null) { + contents[_PRI] = (0, import_smithy_client.expectString)(output[_PRI]) + } + if (output[_RTes] != null) { + contents[_RTes] = (0, import_smithy_client.expectString)( + output[_RTes] + ) + } + if (output[_Rep] != null) { + contents[_Rep] = (0, import_smithy_client.expectString)(output[_Rep]) + } + if (output.Scope === '') { + contents[_Sco] = [] + } else if (output[_Sco] != null && output[_Sco][_m] != null) { + contents[_Sco] = de_Scope( + (0, import_smithy_client.getArrayIfSingleItem)(output[_Sco][_m]), + context + ) + } + if (output.Details === '') { + contents[_De] = [] + } else if (output[_De] != null && output[_De][_m] != null) { + contents[_De] = de_ResourceChangeDetails( + (0, import_smithy_client.getArrayIfSingleItem)(output[_De][_m]), + context + ) + } + if (output[_CSIh] != null) { + contents[_CSIh] = (0, import_smithy_client.expectString)( + output[_CSIh] + ) + } + if (output[_MI] != null) { + contents[_MI] = de_ModuleInfo(output[_MI], context) + } + if (output[_BC] != null) { + contents[_BC] = (0, import_smithy_client.expectString)(output[_BC]) + } + if (output[_AC] != null) { + contents[_AC] = (0, import_smithy_client.expectString)(output[_AC]) + } + return contents + }, 'de_ResourceChange') + var de_ResourceChangeDetail = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_Tar] != null) { + contents[_Tar] = de_ResourceTargetDefinition(output[_Tar], context) + } + if (output[_Ev] != null) { + contents[_Ev] = (0, import_smithy_client.expectString)(output[_Ev]) + } + if (output[_CSh] != null) { + contents[_CSh] = (0, import_smithy_client.expectString)( + output[_CSh] + ) + } + if (output[_CE] != null) { + contents[_CE] = (0, import_smithy_client.expectString)(output[_CE]) + } + return contents + }, + 'de_ResourceChangeDetail' + ) + var de_ResourceChangeDetails = /* @__PURE__ */ __name( + (output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return de_ResourceChangeDetail(entry, context) + }) + }, + 'de_ResourceChangeDetails' + ) + var de_ResourceDetail = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_RTes] != null) { + contents[_RTes] = (0, import_smithy_client.expectString)( + output[_RTes] + ) + } + if (output[_LRI] != null) { + contents[_LRI] = (0, import_smithy_client.expectString)(output[_LRI]) + } + if (output.ResourceIdentifier === '') { + contents[_RI] = {} + } else if (output[_RI] != null && output[_RI][_e] != null) { + contents[_RI] = de_ResourceIdentifierProperties( + (0, import_smithy_client.getArrayIfSingleItem)(output[_RI][_e]), + context + ) + } + if (output[_RSeso] != null) { + contents[_RSeso] = (0, import_smithy_client.expectString)( + output[_RSeso] + ) + } + if (output[_RSR] != null) { + contents[_RSR] = (0, import_smithy_client.expectString)(output[_RSR]) + } + if (output.Warnings === '') { + contents[_W] = [] + } else if (output[_W] != null && output[_W][_m] != null) { + contents[_W] = de_WarningDetails( + (0, import_smithy_client.getArrayIfSingleItem)(output[_W][_m]), + context + ) + } + return contents + }, 'de_ResourceDetail') + var de_ResourceDetails = /* @__PURE__ */ __name((output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return de_ResourceDetail(entry, context) + }) + }, 'de_ResourceDetails') + var de_ResourceIdentifierProperties = /* @__PURE__ */ __name( + (output, context) => { + return output.reduce((acc, pair) => { + if (pair['value'] === null) { + return acc + } + acc[pair['key']] = (0, import_smithy_client.expectString)( + pair['value'] + ) + return acc + }, {}) + }, + 'de_ResourceIdentifierProperties' + ) + var de_ResourceIdentifiers = /* @__PURE__ */ __name((output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return (0, import_smithy_client.expectString)(entry) + }) + }, 'de_ResourceIdentifiers') + var de_ResourceIdentifierSummaries = /* @__PURE__ */ __name( + (output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return de_ResourceIdentifierSummary(entry, context) + }) + }, + 'de_ResourceIdentifierSummaries' + ) + var de_ResourceIdentifierSummary = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_RTes] != null) { + contents[_RTes] = (0, import_smithy_client.expectString)( + output[_RTes] + ) + } + if (output.LogicalResourceIds === '') { + contents[_LRIo] = [] + } else if (output[_LRIo] != null && output[_LRIo][_m] != null) { + contents[_LRIo] = de_LogicalResourceIds( + (0, import_smithy_client.getArrayIfSingleItem)(output[_LRIo][_m]), + context + ) + } + if (output.ResourceIdentifiers === '') { + contents[_RIe] = [] + } else if (output[_RIe] != null && output[_RIe][_m] != null) { + contents[_RIe] = de_ResourceIdentifiers( + (0, import_smithy_client.getArrayIfSingleItem)(output[_RIe][_m]), + context + ) + } + return contents + }, + 'de_ResourceIdentifierSummary' + ) + var de_ResourceScanInProgressException = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_M] != null) { + contents[_M] = (0, import_smithy_client.expectString)(output[_M]) + } + return contents + }, + 'de_ResourceScanInProgressException' + ) + var de_ResourceScanLimitExceededException = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_M] != null) { + contents[_M] = (0, import_smithy_client.expectString)(output[_M]) + } + return contents + }, + 'de_ResourceScanLimitExceededException' + ) + var de_ResourceScanNotFoundException = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_M] != null) { + contents[_M] = (0, import_smithy_client.expectString)(output[_M]) + } + return contents + }, + 'de_ResourceScanNotFoundException' + ) + var de_ResourceScanSummaries = /* @__PURE__ */ __name( + (output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return de_ResourceScanSummary(entry, context) + }) + }, + 'de_ResourceScanSummaries' + ) + var de_ResourceScanSummary = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_RSI] != null) { + contents[_RSI] = (0, import_smithy_client.expectString)(output[_RSI]) + } + if (output[_S] != null) { + contents[_S] = (0, import_smithy_client.expectString)(output[_S]) + } + if (output[_SRt] != null) { + contents[_SRt] = (0, import_smithy_client.expectString)(output[_SRt]) + } + if (output[_ST] != null) { + contents[_ST] = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.parseRfc3339DateTimeWithOffset)( + output[_ST] + ) + ) + } + if (output[_ET] != null) { + contents[_ET] = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.parseRfc3339DateTimeWithOffset)( + output[_ET] + ) + ) + } + if (output[_PC] != null) { + contents[_PC] = (0, import_smithy_client.strictParseFloat)( + output[_PC] + ) + } + return contents + }, 'de_ResourceScanSummary') + var de_ResourceTargetDefinition = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_At] != null) { + contents[_At] = (0, import_smithy_client.expectString)(output[_At]) + } + if (output[_N] != null) { + contents[_N] = (0, import_smithy_client.expectString)(output[_N]) + } + if (output[_RReq] != null) { + contents[_RReq] = (0, import_smithy_client.expectString)( + output[_RReq] + ) + } + if (output[_Pa] != null) { + contents[_Pa] = (0, import_smithy_client.expectString)(output[_Pa]) + } + if (output[_BV] != null) { + contents[_BV] = (0, import_smithy_client.expectString)(output[_BV]) + } + if (output[_AVf] != null) { + contents[_AVf] = (0, import_smithy_client.expectString)( + output[_AVf] + ) + } + if (output[_ACT] != null) { + contents[_ACT] = (0, import_smithy_client.expectString)( + output[_ACT] + ) + } + return contents + }, + 'de_ResourceTargetDefinition' + ) + var de_ResourceTypes = /* @__PURE__ */ __name((output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return (0, import_smithy_client.expectString)(entry) + }) + }, 'de_ResourceTypes') + var de_RollbackConfiguration = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output.RollbackTriggers === '') { + contents[_RTo] = [] + } else if (output[_RTo] != null && output[_RTo][_m] != null) { + contents[_RTo] = de_RollbackTriggers( + (0, import_smithy_client.getArrayIfSingleItem)(output[_RTo][_m]), + context + ) + } + if (output[_MTIM] != null) { + contents[_MTIM] = (0, import_smithy_client.strictParseInt32)( + output[_MTIM] + ) + } + return contents + }, + 'de_RollbackConfiguration' + ) + var de_RollbackStackOutput = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_SI] != null) { + contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]) + } + return contents + }, 'de_RollbackStackOutput') + var de_RollbackTrigger = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_Ar] != null) { + contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]) + } + if (output[_T] != null) { + contents[_T] = (0, import_smithy_client.expectString)(output[_T]) + } + return contents + }, 'de_RollbackTrigger') + var de_RollbackTriggers = /* @__PURE__ */ __name((output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return de_RollbackTrigger(entry, context) + }) + }, 'de_RollbackTriggers') + var de_ScannedResource = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_RTes] != null) { + contents[_RTes] = (0, import_smithy_client.expectString)( + output[_RTes] + ) + } + if (output.ResourceIdentifier === '') { + contents[_RI] = {} + } else if (output[_RI] != null && output[_RI][_e] != null) { + contents[_RI] = de_JazzResourceIdentifierProperties( + (0, import_smithy_client.getArrayIfSingleItem)(output[_RI][_e]), + context + ) + } + if (output[_MBS] != null) { + contents[_MBS] = (0, import_smithy_client.parseBoolean)(output[_MBS]) + } + return contents + }, 'de_ScannedResource') + var de_ScannedResources = /* @__PURE__ */ __name((output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return de_ScannedResource(entry, context) + }) + }, 'de_ScannedResources') + var de_Scope = /* @__PURE__ */ __name((output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return (0, import_smithy_client.expectString)(entry) + }) + }, 'de_Scope') + var de_SetTypeConfigurationOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_CAonf] != null) { + contents[_CAonf] = (0, import_smithy_client.expectString)( + output[_CAonf] + ) + } + return contents + }, + 'de_SetTypeConfigurationOutput' + ) + var de_SetTypeDefaultVersionOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + return contents + }, + 'de_SetTypeDefaultVersionOutput' + ) + var de_Stack = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_SI] != null) { + contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]) + } + if (output[_SN] != null) { + contents[_SN] = (0, import_smithy_client.expectString)(output[_SN]) + } + if (output[_CSIh] != null) { + contents[_CSIh] = (0, import_smithy_client.expectString)( + output[_CSIh] + ) + } + if (output[_D] != null) { + contents[_D] = (0, import_smithy_client.expectString)(output[_D]) + } + if (output.Parameters === '') { + contents[_P] = [] + } else if (output[_P] != null && output[_P][_m] != null) { + contents[_P] = de_Parameters( + (0, import_smithy_client.getArrayIfSingleItem)(output[_P][_m]), + context + ) + } + if (output[_CTr] != null) { + contents[_CTr] = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.parseRfc3339DateTimeWithOffset)( + output[_CTr] + ) + ) + } + if (output[_DTel] != null) { + contents[_DTel] = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.parseRfc3339DateTimeWithOffset)( + output[_DTel] + ) + ) + } + if (output[_LUT] != null) { + contents[_LUT] = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.parseRfc3339DateTimeWithOffset)( + output[_LUT] + ) + ) + } + if (output[_RC] != null) { + contents[_RC] = de_RollbackConfiguration(output[_RC], context) + } + if (output[_SSta] != null) { + contents[_SSta] = (0, import_smithy_client.expectString)( + output[_SSta] + ) + } + if (output[_SSR] != null) { + contents[_SSR] = (0, import_smithy_client.expectString)(output[_SSR]) + } + if (output[_DR] != null) { + contents[_DR] = (0, import_smithy_client.parseBoolean)(output[_DR]) + } + if (output.NotificationARNs === '') { + contents[_NARN] = [] + } else if (output[_NARN] != null && output[_NARN][_m] != null) { + contents[_NARN] = de_NotificationARNs( + (0, import_smithy_client.getArrayIfSingleItem)(output[_NARN][_m]), + context + ) + } + if (output[_TIM] != null) { + contents[_TIM] = (0, import_smithy_client.strictParseInt32)( + output[_TIM] + ) + } + if (output.Capabilities === '') { + contents[_C] = [] + } else if (output[_C] != null && output[_C][_m] != null) { + contents[_C] = de_Capabilities( + (0, import_smithy_client.getArrayIfSingleItem)(output[_C][_m]), + context + ) + } + if (output.Outputs === '') { + contents[_O] = [] + } else if (output[_O] != null && output[_O][_m] != null) { + contents[_O] = de_Outputs( + (0, import_smithy_client.getArrayIfSingleItem)(output[_O][_m]), + context + ) + } + if (output[_RARN] != null) { + contents[_RARN] = (0, import_smithy_client.expectString)( + output[_RARN] + ) + } + if (output.Tags === '') { + contents[_Ta] = [] + } else if (output[_Ta] != null && output[_Ta][_m] != null) { + contents[_Ta] = de_Tags( + (0, import_smithy_client.getArrayIfSingleItem)(output[_Ta][_m]), + context + ) + } + if (output[_ETP] != null) { + contents[_ETP] = (0, import_smithy_client.parseBoolean)(output[_ETP]) + } + if (output[_PIa] != null) { + contents[_PIa] = (0, import_smithy_client.expectString)(output[_PIa]) + } + if (output[_RIo] != null) { + contents[_RIo] = (0, import_smithy_client.expectString)(output[_RIo]) + } + if (output[_DI] != null) { + contents[_DI] = de_StackDriftInformation(output[_DI], context) + } + if (output[_REOC] != null) { + contents[_REOC] = (0, import_smithy_client.parseBoolean)( + output[_REOC] + ) + } + if (output[_DM] != null) { + contents[_DM] = (0, import_smithy_client.expectString)(output[_DM]) + } + if (output[_DSeta] != null) { + contents[_DSeta] = (0, import_smithy_client.expectString)( + output[_DSeta] + ) + } + return contents + }, 'de_Stack') + var de_StackDriftInformation = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_SDS] != null) { + contents[_SDS] = (0, import_smithy_client.expectString)( + output[_SDS] + ) + } + if (output[_LCT] != null) { + contents[_LCT] = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.parseRfc3339DateTimeWithOffset)( + output[_LCT] + ) + ) + } + return contents + }, + 'de_StackDriftInformation' + ) + var de_StackDriftInformationSummary = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_SDS] != null) { + contents[_SDS] = (0, import_smithy_client.expectString)( + output[_SDS] + ) + } + if (output[_LCT] != null) { + contents[_LCT] = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.parseRfc3339DateTimeWithOffset)( + output[_LCT] + ) + ) + } + return contents + }, + 'de_StackDriftInformationSummary' + ) + var de_StackEvent = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_SI] != null) { + contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]) + } + if (output[_EI] != null) { + contents[_EI] = (0, import_smithy_client.expectString)(output[_EI]) + } + if (output[_SN] != null) { + contents[_SN] = (0, import_smithy_client.expectString)(output[_SN]) + } + if (output[_LRI] != null) { + contents[_LRI] = (0, import_smithy_client.expectString)(output[_LRI]) + } + if (output[_PRI] != null) { + contents[_PRI] = (0, import_smithy_client.expectString)(output[_PRI]) + } + if (output[_RTes] != null) { + contents[_RTes] = (0, import_smithy_client.expectString)( + output[_RTes] + ) + } + if (output[_Ti] != null) { + contents[_Ti] = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.parseRfc3339DateTimeWithOffset)( + output[_Ti] + ) + ) + } + if (output[_RSeso] != null) { + contents[_RSeso] = (0, import_smithy_client.expectString)( + output[_RSeso] + ) + } + if (output[_RSR] != null) { + contents[_RSR] = (0, import_smithy_client.expectString)(output[_RSR]) + } + if (output[_RPe] != null) { + contents[_RPe] = (0, import_smithy_client.expectString)(output[_RPe]) + } + if (output[_CRT] != null) { + contents[_CRT] = (0, import_smithy_client.expectString)(output[_CRT]) + } + if (output[_HT] != null) { + contents[_HT] = (0, import_smithy_client.expectString)(output[_HT]) + } + if (output[_HS] != null) { + contents[_HS] = (0, import_smithy_client.expectString)(output[_HS]) + } + if (output[_HSR] != null) { + contents[_HSR] = (0, import_smithy_client.expectString)(output[_HSR]) + } + if (output[_HIP] != null) { + contents[_HIP] = (0, import_smithy_client.expectString)(output[_HIP]) + } + if (output[_HFM] != null) { + contents[_HFM] = (0, import_smithy_client.expectString)(output[_HFM]) + } + if (output[_DSeta] != null) { + contents[_DSeta] = (0, import_smithy_client.expectString)( + output[_DSeta] + ) + } + return contents + }, 'de_StackEvent') + var de_StackEvents = /* @__PURE__ */ __name((output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return de_StackEvent(entry, context) + }) + }, 'de_StackEvents') + var de_StackInstance = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_SSI] != null) { + contents[_SSI] = (0, import_smithy_client.expectString)(output[_SSI]) + } + if (output[_Reg] != null) { + contents[_Reg] = (0, import_smithy_client.expectString)(output[_Reg]) + } + if (output[_Acc] != null) { + contents[_Acc] = (0, import_smithy_client.expectString)(output[_Acc]) + } + if (output[_SI] != null) { + contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]) + } + if (output.ParameterOverrides === '') { + contents[_PO] = [] + } else if (output[_PO] != null && output[_PO][_m] != null) { + contents[_PO] = de_Parameters( + (0, import_smithy_client.getArrayIfSingleItem)(output[_PO][_m]), + context + ) + } + if (output[_S] != null) { + contents[_S] = (0, import_smithy_client.expectString)(output[_S]) + } + if (output[_SIS] != null) { + contents[_SIS] = de_StackInstanceComprehensiveStatus( + output[_SIS], + context + ) + } + if (output[_SRt] != null) { + contents[_SRt] = (0, import_smithy_client.expectString)(output[_SRt]) + } + if (output[_OUIr] != null) { + contents[_OUIr] = (0, import_smithy_client.expectString)( + output[_OUIr] + ) + } + if (output[_DSr] != null) { + contents[_DSr] = (0, import_smithy_client.expectString)(output[_DSr]) + } + if (output[_LDCT] != null) { + contents[_LDCT] = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.parseRfc3339DateTimeWithOffset)( + output[_LDCT] + ) + ) + } + if (output[_LOI] != null) { + contents[_LOI] = (0, import_smithy_client.expectString)(output[_LOI]) + } + return contents + }, 'de_StackInstance') + var de_StackInstanceComprehensiveStatus = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_DSeta] != null) { + contents[_DSeta] = (0, import_smithy_client.expectString)( + output[_DSeta] + ) + } + return contents + }, + 'de_StackInstanceComprehensiveStatus' + ) + var de_StackInstanceNotFoundException = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_M] != null) { + contents[_M] = (0, import_smithy_client.expectString)(output[_M]) + } + return contents + }, + 'de_StackInstanceNotFoundException' + ) + var de_StackInstanceResourceDriftsSummaries = /* @__PURE__ */ __name( + (output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return de_StackInstanceResourceDriftsSummary(entry, context) + }) + }, + 'de_StackInstanceResourceDriftsSummaries' + ) + var de_StackInstanceResourceDriftsSummary = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_SI] != null) { + contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]) + } + if (output[_LRI] != null) { + contents[_LRI] = (0, import_smithy_client.expectString)( + output[_LRI] + ) + } + if (output[_PRI] != null) { + contents[_PRI] = (0, import_smithy_client.expectString)( + output[_PRI] + ) + } + if (output.PhysicalResourceIdContext === '') { + contents[_PRIC] = [] + } else if (output[_PRIC] != null && output[_PRIC][_m] != null) { + contents[_PRIC] = de_PhysicalResourceIdContext( + (0, import_smithy_client.getArrayIfSingleItem)(output[_PRIC][_m]), + context + ) + } + if (output[_RTes] != null) { + contents[_RTes] = (0, import_smithy_client.expectString)( + output[_RTes] + ) + } + if (output.PropertyDifferences === '') { + contents[_PD] = [] + } else if (output[_PD] != null && output[_PD][_m] != null) { + contents[_PD] = de_PropertyDifferences( + (0, import_smithy_client.getArrayIfSingleItem)(output[_PD][_m]), + context + ) + } + if (output[_SRDS] != null) { + contents[_SRDS] = (0, import_smithy_client.expectString)( + output[_SRDS] + ) + } + if (output[_Ti] != null) { + contents[_Ti] = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.parseRfc3339DateTimeWithOffset)( + output[_Ti] + ) + ) + } + return contents + }, + 'de_StackInstanceResourceDriftsSummary' + ) + var de_StackInstanceSummaries = /* @__PURE__ */ __name( + (output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return de_StackInstanceSummary(entry, context) + }) + }, + 'de_StackInstanceSummaries' + ) + var de_StackInstanceSummary = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_SSI] != null) { + contents[_SSI] = (0, import_smithy_client.expectString)( + output[_SSI] + ) + } + if (output[_Reg] != null) { + contents[_Reg] = (0, import_smithy_client.expectString)( + output[_Reg] + ) + } + if (output[_Acc] != null) { + contents[_Acc] = (0, import_smithy_client.expectString)( + output[_Acc] + ) + } + if (output[_SI] != null) { + contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]) + } + if (output[_S] != null) { + contents[_S] = (0, import_smithy_client.expectString)(output[_S]) + } + if (output[_SRt] != null) { + contents[_SRt] = (0, import_smithy_client.expectString)( + output[_SRt] + ) + } + if (output[_SIS] != null) { + contents[_SIS] = de_StackInstanceComprehensiveStatus( + output[_SIS], + context + ) + } + if (output[_OUIr] != null) { + contents[_OUIr] = (0, import_smithy_client.expectString)( + output[_OUIr] + ) + } + if (output[_DSr] != null) { + contents[_DSr] = (0, import_smithy_client.expectString)( + output[_DSr] + ) + } + if (output[_LDCT] != null) { + contents[_LDCT] = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.parseRfc3339DateTimeWithOffset)( + output[_LDCT] + ) + ) + } + if (output[_LOI] != null) { + contents[_LOI] = (0, import_smithy_client.expectString)( + output[_LOI] + ) + } + return contents + }, + 'de_StackInstanceSummary' + ) + var de_StackNotFoundException = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_M] != null) { + contents[_M] = (0, import_smithy_client.expectString)(output[_M]) + } + return contents + }, + 'de_StackNotFoundException' + ) + var de_StackResource = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_SN] != null) { + contents[_SN] = (0, import_smithy_client.expectString)(output[_SN]) + } + if (output[_SI] != null) { + contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]) + } + if (output[_LRI] != null) { + contents[_LRI] = (0, import_smithy_client.expectString)(output[_LRI]) + } + if (output[_PRI] != null) { + contents[_PRI] = (0, import_smithy_client.expectString)(output[_PRI]) + } + if (output[_RTes] != null) { + contents[_RTes] = (0, import_smithy_client.expectString)( + output[_RTes] + ) + } + if (output[_Ti] != null) { + contents[_Ti] = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.parseRfc3339DateTimeWithOffset)( + output[_Ti] + ) + ) + } + if (output[_RSeso] != null) { + contents[_RSeso] = (0, import_smithy_client.expectString)( + output[_RSeso] + ) + } + if (output[_RSR] != null) { + contents[_RSR] = (0, import_smithy_client.expectString)(output[_RSR]) + } + if (output[_D] != null) { + contents[_D] = (0, import_smithy_client.expectString)(output[_D]) + } + if (output[_DI] != null) { + contents[_DI] = de_StackResourceDriftInformation(output[_DI], context) + } + if (output[_MI] != null) { + contents[_MI] = de_ModuleInfo(output[_MI], context) + } + return contents + }, 'de_StackResource') + var de_StackResourceDetail = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_SN] != null) { + contents[_SN] = (0, import_smithy_client.expectString)(output[_SN]) + } + if (output[_SI] != null) { + contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]) + } + if (output[_LRI] != null) { + contents[_LRI] = (0, import_smithy_client.expectString)(output[_LRI]) + } + if (output[_PRI] != null) { + contents[_PRI] = (0, import_smithy_client.expectString)(output[_PRI]) + } + if (output[_RTes] != null) { + contents[_RTes] = (0, import_smithy_client.expectString)( + output[_RTes] + ) + } + if (output[_LUTa] != null) { + contents[_LUTa] = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.parseRfc3339DateTimeWithOffset)( + output[_LUTa] + ) + ) + } + if (output[_RSeso] != null) { + contents[_RSeso] = (0, import_smithy_client.expectString)( + output[_RSeso] + ) + } + if (output[_RSR] != null) { + contents[_RSR] = (0, import_smithy_client.expectString)(output[_RSR]) + } + if (output[_D] != null) { + contents[_D] = (0, import_smithy_client.expectString)(output[_D]) + } + if (output[_Me] != null) { + contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]) + } + if (output[_DI] != null) { + contents[_DI] = de_StackResourceDriftInformation(output[_DI], context) + } + if (output[_MI] != null) { + contents[_MI] = de_ModuleInfo(output[_MI], context) + } + return contents + }, 'de_StackResourceDetail') + var de_StackResourceDrift = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_SI] != null) { + contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]) + } + if (output[_LRI] != null) { + contents[_LRI] = (0, import_smithy_client.expectString)(output[_LRI]) + } + if (output[_PRI] != null) { + contents[_PRI] = (0, import_smithy_client.expectString)(output[_PRI]) + } + if (output.PhysicalResourceIdContext === '') { + contents[_PRIC] = [] + } else if (output[_PRIC] != null && output[_PRIC][_m] != null) { + contents[_PRIC] = de_PhysicalResourceIdContext( + (0, import_smithy_client.getArrayIfSingleItem)(output[_PRIC][_m]), + context + ) + } + if (output[_RTes] != null) { + contents[_RTes] = (0, import_smithy_client.expectString)( + output[_RTes] + ) + } + if (output[_EP] != null) { + contents[_EP] = (0, import_smithy_client.expectString)(output[_EP]) + } + if (output[_AP] != null) { + contents[_AP] = (0, import_smithy_client.expectString)(output[_AP]) + } + if (output.PropertyDifferences === '') { + contents[_PD] = [] + } else if (output[_PD] != null && output[_PD][_m] != null) { + contents[_PD] = de_PropertyDifferences( + (0, import_smithy_client.getArrayIfSingleItem)(output[_PD][_m]), + context + ) + } + if (output[_SRDS] != null) { + contents[_SRDS] = (0, import_smithy_client.expectString)( + output[_SRDS] + ) + } + if (output[_Ti] != null) { + contents[_Ti] = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.parseRfc3339DateTimeWithOffset)( + output[_Ti] + ) + ) + } + if (output[_MI] != null) { + contents[_MI] = de_ModuleInfo(output[_MI], context) + } + return contents + }, 'de_StackResourceDrift') + var de_StackResourceDriftInformation = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_SRDS] != null) { + contents[_SRDS] = (0, import_smithy_client.expectString)( + output[_SRDS] + ) + } + if (output[_LCT] != null) { + contents[_LCT] = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.parseRfc3339DateTimeWithOffset)( + output[_LCT] + ) + ) + } + return contents + }, + 'de_StackResourceDriftInformation' + ) + var de_StackResourceDriftInformationSummary = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_SRDS] != null) { + contents[_SRDS] = (0, import_smithy_client.expectString)( + output[_SRDS] + ) + } + if (output[_LCT] != null) { + contents[_LCT] = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.parseRfc3339DateTimeWithOffset)( + output[_LCT] + ) + ) + } + return contents + }, + 'de_StackResourceDriftInformationSummary' + ) + var de_StackResourceDrifts = /* @__PURE__ */ __name((output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return de_StackResourceDrift(entry, context) + }) + }, 'de_StackResourceDrifts') + var de_StackResources = /* @__PURE__ */ __name((output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return de_StackResource(entry, context) + }) + }, 'de_StackResources') + var de_StackResourceSummaries = /* @__PURE__ */ __name( + (output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return de_StackResourceSummary(entry, context) + }) + }, + 'de_StackResourceSummaries' + ) + var de_StackResourceSummary = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_LRI] != null) { + contents[_LRI] = (0, import_smithy_client.expectString)( + output[_LRI] + ) + } + if (output[_PRI] != null) { + contents[_PRI] = (0, import_smithy_client.expectString)( + output[_PRI] + ) + } + if (output[_RTes] != null) { + contents[_RTes] = (0, import_smithy_client.expectString)( + output[_RTes] + ) + } + if (output[_LUTa] != null) { + contents[_LUTa] = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.parseRfc3339DateTimeWithOffset)( + output[_LUTa] + ) + ) + } + if (output[_RSeso] != null) { + contents[_RSeso] = (0, import_smithy_client.expectString)( + output[_RSeso] + ) + } + if (output[_RSR] != null) { + contents[_RSR] = (0, import_smithy_client.expectString)( + output[_RSR] + ) + } + if (output[_DI] != null) { + contents[_DI] = de_StackResourceDriftInformationSummary( + output[_DI], + context + ) + } + if (output[_MI] != null) { + contents[_MI] = de_ModuleInfo(output[_MI], context) + } + return contents + }, + 'de_StackResourceSummary' + ) + var de_Stacks = /* @__PURE__ */ __name((output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return de_Stack(entry, context) + }) + }, 'de_Stacks') + var de_StackSet = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_SSN] != null) { + contents[_SSN] = (0, import_smithy_client.expectString)(output[_SSN]) + } + if (output[_SSI] != null) { + contents[_SSI] = (0, import_smithy_client.expectString)(output[_SSI]) + } + if (output[_D] != null) { + contents[_D] = (0, import_smithy_client.expectString)(output[_D]) + } + if (output[_S] != null) { + contents[_S] = (0, import_smithy_client.expectString)(output[_S]) + } + if (output[_TB] != null) { + contents[_TB] = (0, import_smithy_client.expectString)(output[_TB]) + } + if (output.Parameters === '') { + contents[_P] = [] + } else if (output[_P] != null && output[_P][_m] != null) { + contents[_P] = de_Parameters( + (0, import_smithy_client.getArrayIfSingleItem)(output[_P][_m]), + context + ) + } + if (output.Capabilities === '') { + contents[_C] = [] + } else if (output[_C] != null && output[_C][_m] != null) { + contents[_C] = de_Capabilities( + (0, import_smithy_client.getArrayIfSingleItem)(output[_C][_m]), + context + ) + } + if (output.Tags === '') { + contents[_Ta] = [] + } else if (output[_Ta] != null && output[_Ta][_m] != null) { + contents[_Ta] = de_Tags( + (0, import_smithy_client.getArrayIfSingleItem)(output[_Ta][_m]), + context + ) + } + if (output[_SSARN] != null) { + contents[_SSARN] = (0, import_smithy_client.expectString)( + output[_SSARN] + ) + } + if (output[_ARARN] != null) { + contents[_ARARN] = (0, import_smithy_client.expectString)( + output[_ARARN] + ) + } + if (output[_ERN] != null) { + contents[_ERN] = (0, import_smithy_client.expectString)(output[_ERN]) + } + if (output[_SSDDD] != null) { + contents[_SSDDD] = de_StackSetDriftDetectionDetails( + output[_SSDDD], + context + ) + } + if (output[_AD] != null) { + contents[_AD] = de_AutoDeployment(output[_AD], context) + } + if (output[_PM] != null) { + contents[_PM] = (0, import_smithy_client.expectString)(output[_PM]) + } + if (output.OrganizationalUnitIds === '') { + contents[_OUI] = [] + } else if (output[_OUI] != null && output[_OUI][_m] != null) { + contents[_OUI] = de_OrganizationalUnitIdList( + (0, import_smithy_client.getArrayIfSingleItem)(output[_OUI][_m]), + context + ) + } + if (output[_ME] != null) { + contents[_ME] = de_ManagedExecution(output[_ME], context) + } + if (output.Regions === '') { + contents[_Re] = [] + } else if (output[_Re] != null && output[_Re][_m] != null) { + contents[_Re] = de_RegionList( + (0, import_smithy_client.getArrayIfSingleItem)(output[_Re][_m]), + context + ) + } + return contents + }, 'de_StackSet') + var de_StackSetAutoDeploymentTargetSummaries = /* @__PURE__ */ __name( + (output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return de_StackSetAutoDeploymentTargetSummary(entry, context) + }) + }, + 'de_StackSetAutoDeploymentTargetSummaries' + ) + var de_StackSetAutoDeploymentTargetSummary = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_OUIr] != null) { + contents[_OUIr] = (0, import_smithy_client.expectString)( + output[_OUIr] + ) + } + if (output.Regions === '') { + contents[_Re] = [] + } else if (output[_Re] != null && output[_Re][_m] != null) { + contents[_Re] = de_RegionList( + (0, import_smithy_client.getArrayIfSingleItem)(output[_Re][_m]), + context + ) + } + return contents + }, + 'de_StackSetAutoDeploymentTargetSummary' + ) + var de_StackSetDriftDetectionDetails = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_DSr] != null) { + contents[_DSr] = (0, import_smithy_client.expectString)( + output[_DSr] + ) + } + if (output[_DDS] != null) { + contents[_DDS] = (0, import_smithy_client.expectString)( + output[_DDS] + ) + } + if (output[_LDCT] != null) { + contents[_LDCT] = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.parseRfc3339DateTimeWithOffset)( + output[_LDCT] + ) + ) + } + if (output[_TSIC] != null) { + contents[_TSIC] = (0, import_smithy_client.strictParseInt32)( + output[_TSIC] + ) + } + if (output[_DSIC] != null) { + contents[_DSIC] = (0, import_smithy_client.strictParseInt32)( + output[_DSIC] + ) + } + if (output[_ISSIC] != null) { + contents[_ISSIC] = (0, import_smithy_client.strictParseInt32)( + output[_ISSIC] + ) + } + if (output[_IPSIC] != null) { + contents[_IPSIC] = (0, import_smithy_client.strictParseInt32)( + output[_IPSIC] + ) + } + if (output[_FSIC] != null) { + contents[_FSIC] = (0, import_smithy_client.strictParseInt32)( + output[_FSIC] + ) + } + return contents + }, + 'de_StackSetDriftDetectionDetails' + ) + var de_StackSetNotEmptyException = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_M] != null) { + contents[_M] = (0, import_smithy_client.expectString)(output[_M]) + } + return contents + }, + 'de_StackSetNotEmptyException' + ) + var de_StackSetNotFoundException = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_M] != null) { + contents[_M] = (0, import_smithy_client.expectString)(output[_M]) + } + return contents + }, + 'de_StackSetNotFoundException' + ) + var de_StackSetOperation = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_OI] != null) { + contents[_OI] = (0, import_smithy_client.expectString)(output[_OI]) + } + if (output[_SSI] != null) { + contents[_SSI] = (0, import_smithy_client.expectString)(output[_SSI]) + } + if (output[_A] != null) { + contents[_A] = (0, import_smithy_client.expectString)(output[_A]) + } + if (output[_S] != null) { + contents[_S] = (0, import_smithy_client.expectString)(output[_S]) + } + if (output[_OP] != null) { + contents[_OP] = de_StackSetOperationPreferences(output[_OP], context) + } + if (output[_RSe] != null) { + contents[_RSe] = (0, import_smithy_client.parseBoolean)(output[_RSe]) + } + if (output[_ARARN] != null) { + contents[_ARARN] = (0, import_smithy_client.expectString)( + output[_ARARN] + ) + } + if (output[_ERN] != null) { + contents[_ERN] = (0, import_smithy_client.expectString)(output[_ERN]) + } + if (output[_CTre] != null) { + contents[_CTre] = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.parseRfc3339DateTimeWithOffset)( + output[_CTre] + ) + ) + } + if (output[_ETn] != null) { + contents[_ETn] = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.parseRfc3339DateTimeWithOffset)( + output[_ETn] + ) + ) + } + if (output[_DTep] != null) { + contents[_DTep] = de_DeploymentTargets(output[_DTep], context) + } + if (output[_SSDDD] != null) { + contents[_SSDDD] = de_StackSetDriftDetectionDetails( + output[_SSDDD], + context + ) + } + if (output[_SRt] != null) { + contents[_SRt] = (0, import_smithy_client.expectString)(output[_SRt]) + } + if (output[_SD] != null) { + contents[_SD] = de_StackSetOperationStatusDetails( + output[_SD], + context + ) + } + return contents + }, 'de_StackSetOperation') + var de_StackSetOperationPreferences = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_RCT] != null) { + contents[_RCT] = (0, import_smithy_client.expectString)( + output[_RCT] + ) + } + if (output.RegionOrder === '') { + contents[_RO] = [] + } else if (output[_RO] != null && output[_RO][_m] != null) { + contents[_RO] = de_RegionList( + (0, import_smithy_client.getArrayIfSingleItem)(output[_RO][_m]), + context + ) + } + if (output[_FTC] != null) { + contents[_FTC] = (0, import_smithy_client.strictParseInt32)( + output[_FTC] + ) + } + if (output[_FTP] != null) { + contents[_FTP] = (0, import_smithy_client.strictParseInt32)( + output[_FTP] + ) + } + if (output[_MCC] != null) { + contents[_MCC] = (0, import_smithy_client.strictParseInt32)( + output[_MCC] + ) + } + if (output[_MCP] != null) { + contents[_MCP] = (0, import_smithy_client.strictParseInt32)( + output[_MCP] + ) + } + if (output[_CM] != null) { + contents[_CM] = (0, import_smithy_client.expectString)(output[_CM]) + } + return contents + }, + 'de_StackSetOperationPreferences' + ) + var de_StackSetOperationResultSummaries = /* @__PURE__ */ __name( + (output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return de_StackSetOperationResultSummary(entry, context) + }) + }, + 'de_StackSetOperationResultSummaries' + ) + var de_StackSetOperationResultSummary = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_Acc] != null) { + contents[_Acc] = (0, import_smithy_client.expectString)( + output[_Acc] + ) + } + if (output[_Reg] != null) { + contents[_Reg] = (0, import_smithy_client.expectString)( + output[_Reg] + ) + } + if (output[_S] != null) { + contents[_S] = (0, import_smithy_client.expectString)(output[_S]) + } + if (output[_SRt] != null) { + contents[_SRt] = (0, import_smithy_client.expectString)( + output[_SRt] + ) + } + if (output[_AGR] != null) { + contents[_AGR] = de_AccountGateResult(output[_AGR], context) + } + if (output[_OUIr] != null) { + contents[_OUIr] = (0, import_smithy_client.expectString)( + output[_OUIr] + ) + } + return contents + }, + 'de_StackSetOperationResultSummary' + ) + var de_StackSetOperationStatusDetails = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_FSIC] != null) { + contents[_FSIC] = (0, import_smithy_client.strictParseInt32)( + output[_FSIC] + ) + } + return contents + }, + 'de_StackSetOperationStatusDetails' + ) + var de_StackSetOperationSummaries = /* @__PURE__ */ __name( + (output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return de_StackSetOperationSummary(entry, context) + }) + }, + 'de_StackSetOperationSummaries' + ) + var de_StackSetOperationSummary = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_OI] != null) { + contents[_OI] = (0, import_smithy_client.expectString)(output[_OI]) + } + if (output[_A] != null) { + contents[_A] = (0, import_smithy_client.expectString)(output[_A]) + } + if (output[_S] != null) { + contents[_S] = (0, import_smithy_client.expectString)(output[_S]) + } + if (output[_CTre] != null) { + contents[_CTre] = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.parseRfc3339DateTimeWithOffset)( + output[_CTre] + ) + ) + } + if (output[_ETn] != null) { + contents[_ETn] = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.parseRfc3339DateTimeWithOffset)( + output[_ETn] + ) + ) + } + if (output[_SRt] != null) { + contents[_SRt] = (0, import_smithy_client.expectString)( + output[_SRt] + ) + } + if (output[_SD] != null) { + contents[_SD] = de_StackSetOperationStatusDetails( + output[_SD], + context + ) + } + if (output[_OP] != null) { + contents[_OP] = de_StackSetOperationPreferences( + output[_OP], + context + ) + } + return contents + }, + 'de_StackSetOperationSummary' + ) + var de_StackSetSummaries = /* @__PURE__ */ __name((output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return de_StackSetSummary(entry, context) + }) + }, 'de_StackSetSummaries') + var de_StackSetSummary = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_SSN] != null) { + contents[_SSN] = (0, import_smithy_client.expectString)(output[_SSN]) + } + if (output[_SSI] != null) { + contents[_SSI] = (0, import_smithy_client.expectString)(output[_SSI]) + } + if (output[_D] != null) { + contents[_D] = (0, import_smithy_client.expectString)(output[_D]) + } + if (output[_S] != null) { + contents[_S] = (0, import_smithy_client.expectString)(output[_S]) + } + if (output[_AD] != null) { + contents[_AD] = de_AutoDeployment(output[_AD], context) + } + if (output[_PM] != null) { + contents[_PM] = (0, import_smithy_client.expectString)(output[_PM]) + } + if (output[_DSr] != null) { + contents[_DSr] = (0, import_smithy_client.expectString)(output[_DSr]) + } + if (output[_LDCT] != null) { + contents[_LDCT] = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.parseRfc3339DateTimeWithOffset)( + output[_LDCT] + ) + ) + } + if (output[_ME] != null) { + contents[_ME] = de_ManagedExecution(output[_ME], context) + } + return contents + }, 'de_StackSetSummary') + var de_StackSummaries = /* @__PURE__ */ __name((output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return de_StackSummary(entry, context) + }) + }, 'de_StackSummaries') + var de_StackSummary = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_SI] != null) { + contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]) + } + if (output[_SN] != null) { + contents[_SN] = (0, import_smithy_client.expectString)(output[_SN]) + } + if (output[_TDe] != null) { + contents[_TDe] = (0, import_smithy_client.expectString)(output[_TDe]) + } + if (output[_CTr] != null) { + contents[_CTr] = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.parseRfc3339DateTimeWithOffset)( + output[_CTr] + ) + ) + } + if (output[_LUT] != null) { + contents[_LUT] = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.parseRfc3339DateTimeWithOffset)( + output[_LUT] + ) + ) + } + if (output[_DTel] != null) { + contents[_DTel] = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.parseRfc3339DateTimeWithOffset)( + output[_DTel] + ) + ) + } + if (output[_SSta] != null) { + contents[_SSta] = (0, import_smithy_client.expectString)( + output[_SSta] + ) + } + if (output[_SSR] != null) { + contents[_SSR] = (0, import_smithy_client.expectString)(output[_SSR]) + } + if (output[_PIa] != null) { + contents[_PIa] = (0, import_smithy_client.expectString)(output[_PIa]) + } + if (output[_RIo] != null) { + contents[_RIo] = (0, import_smithy_client.expectString)(output[_RIo]) + } + if (output[_DI] != null) { + contents[_DI] = de_StackDriftInformationSummary(output[_DI], context) + } + return contents + }, 'de_StackSummary') + var de_StageList = /* @__PURE__ */ __name((output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return (0, import_smithy_client.expectString)(entry) + }) + }, 'de_StageList') + var de_StaleRequestException = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_M] != null) { + contents[_M] = (0, import_smithy_client.expectString)(output[_M]) + } + return contents + }, + 'de_StaleRequestException' + ) + var de_StartResourceScanOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_RSI] != null) { + contents[_RSI] = (0, import_smithy_client.expectString)( + output[_RSI] + ) + } + return contents + }, + 'de_StartResourceScanOutput' + ) + var de_StopStackSetOperationOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + return contents + }, + 'de_StopStackSetOperationOutput' + ) + var de_SupportedMajorVersions = /* @__PURE__ */ __name( + (output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return (0, import_smithy_client.strictParseInt32)(entry) + }) + }, + 'de_SupportedMajorVersions' + ) + var de_Tag = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_K] != null) { + contents[_K] = (0, import_smithy_client.expectString)(output[_K]) + } + if (output[_Val] != null) { + contents[_Val] = (0, import_smithy_client.expectString)(output[_Val]) + } + return contents + }, 'de_Tag') + var de_Tags = /* @__PURE__ */ __name((output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return de_Tag(entry, context) + }) + }, 'de_Tags') + var de_TemplateConfiguration = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_DPe] != null) { + contents[_DPe] = (0, import_smithy_client.expectString)( + output[_DPe] + ) + } + if (output[_URP] != null) { + contents[_URP] = (0, import_smithy_client.expectString)( + output[_URP] + ) + } + return contents + }, + 'de_TemplateConfiguration' + ) + var de_TemplateParameter = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_PK] != null) { + contents[_PK] = (0, import_smithy_client.expectString)(output[_PK]) + } + if (output[_DV] != null) { + contents[_DV] = (0, import_smithy_client.expectString)(output[_DV]) + } + if (output[_NE] != null) { + contents[_NE] = (0, import_smithy_client.parseBoolean)(output[_NE]) + } + if (output[_D] != null) { + contents[_D] = (0, import_smithy_client.expectString)(output[_D]) + } + return contents + }, 'de_TemplateParameter') + var de_TemplateParameters = /* @__PURE__ */ __name((output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return de_TemplateParameter(entry, context) + }) + }, 'de_TemplateParameters') + var de_TemplateProgress = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_RSesou] != null) { + contents[_RSesou] = (0, import_smithy_client.strictParseInt32)( + output[_RSesou] + ) + } + if (output[_RF] != null) { + contents[_RF] = (0, import_smithy_client.strictParseInt32)( + output[_RF] + ) + } + if (output[_RPes] != null) { + contents[_RPes] = (0, import_smithy_client.strictParseInt32)( + output[_RPes] + ) + } + if (output[_RPeso] != null) { + contents[_RPeso] = (0, import_smithy_client.strictParseInt32)( + output[_RPeso] + ) + } + return contents + }, 'de_TemplateProgress') + var de_TemplateSummaries = /* @__PURE__ */ __name((output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return de_TemplateSummary(entry, context) + }) + }, 'de_TemplateSummaries') + var de_TemplateSummary = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_GTI] != null) { + contents[_GTI] = (0, import_smithy_client.expectString)(output[_GTI]) + } + if (output[_GTN] != null) { + contents[_GTN] = (0, import_smithy_client.expectString)(output[_GTN]) + } + if (output[_S] != null) { + contents[_S] = (0, import_smithy_client.expectString)(output[_S]) + } + if (output[_SRt] != null) { + contents[_SRt] = (0, import_smithy_client.expectString)(output[_SRt]) + } + if (output[_CTr] != null) { + contents[_CTr] = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.parseRfc3339DateTimeWithOffset)( + output[_CTr] + ) + ) + } + if (output[_LUT] != null) { + contents[_LUT] = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.parseRfc3339DateTimeWithOffset)( + output[_LUT] + ) + ) + } + if (output[_NOR] != null) { + contents[_NOR] = (0, import_smithy_client.strictParseInt32)( + output[_NOR] + ) + } + return contents + }, 'de_TemplateSummary') + var de_TestTypeOutput = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_TVA] != null) { + contents[_TVA] = (0, import_smithy_client.expectString)(output[_TVA]) + } + return contents + }, 'de_TestTypeOutput') + var de_TokenAlreadyExistsException = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_M] != null) { + contents[_M] = (0, import_smithy_client.expectString)(output[_M]) + } + return contents + }, + 'de_TokenAlreadyExistsException' + ) + var de_TransformsList = /* @__PURE__ */ __name((output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return (0, import_smithy_client.expectString)(entry) + }) + }, 'de_TransformsList') + var de_TypeConfigurationDetails = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_Ar] != null) { + contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]) + } + if (output[_Al] != null) { + contents[_Al] = (0, import_smithy_client.expectString)(output[_Al]) + } + if (output[_Co] != null) { + contents[_Co] = (0, import_smithy_client.expectString)(output[_Co]) + } + if (output[_LU] != null) { + contents[_LU] = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.parseRfc3339DateTimeWithOffset)( + output[_LU] + ) + ) + } + if (output[_TA] != null) { + contents[_TA] = (0, import_smithy_client.expectString)(output[_TA]) + } + if (output[_TN] != null) { + contents[_TN] = (0, import_smithy_client.expectString)(output[_TN]) + } + if (output[_IDC] != null) { + contents[_IDC] = (0, import_smithy_client.parseBoolean)( + output[_IDC] + ) + } + return contents + }, + 'de_TypeConfigurationDetails' + ) + var de_TypeConfigurationDetailsList = /* @__PURE__ */ __name( + (output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return de_TypeConfigurationDetails(entry, context) + }) + }, + 'de_TypeConfigurationDetailsList' + ) + var de_TypeConfigurationIdentifier = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_TA] != null) { + contents[_TA] = (0, import_smithy_client.expectString)(output[_TA]) + } + if (output[_TCA] != null) { + contents[_TCA] = (0, import_smithy_client.expectString)( + output[_TCA] + ) + } + if (output[_TCAy] != null) { + contents[_TCAy] = (0, import_smithy_client.expectString)( + output[_TCAy] + ) + } + if (output[_T] != null) { + contents[_T] = (0, import_smithy_client.expectString)(output[_T]) + } + if (output[_TN] != null) { + contents[_TN] = (0, import_smithy_client.expectString)(output[_TN]) + } + return contents + }, + 'de_TypeConfigurationIdentifier' + ) + var de_TypeConfigurationNotFoundException = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_M] != null) { + contents[_M] = (0, import_smithy_client.expectString)(output[_M]) + } + return contents + }, + 'de_TypeConfigurationNotFoundException' + ) + var de_TypeNotFoundException = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_M] != null) { + contents[_M] = (0, import_smithy_client.expectString)(output[_M]) + } + return contents + }, + 'de_TypeNotFoundException' + ) + var de_TypeSummaries = /* @__PURE__ */ __name((output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return de_TypeSummary(entry, context) + }) + }, 'de_TypeSummaries') + var de_TypeSummary = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_T] != null) { + contents[_T] = (0, import_smithy_client.expectString)(output[_T]) + } + if (output[_TN] != null) { + contents[_TN] = (0, import_smithy_client.expectString)(output[_TN]) + } + if (output[_DVI] != null) { + contents[_DVI] = (0, import_smithy_client.expectString)(output[_DVI]) + } + if (output[_TA] != null) { + contents[_TA] = (0, import_smithy_client.expectString)(output[_TA]) + } + if (output[_LU] != null) { + contents[_LU] = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.parseRfc3339DateTimeWithOffset)( + output[_LU] + ) + ) + } + if (output[_D] != null) { + contents[_D] = (0, import_smithy_client.expectString)(output[_D]) + } + if (output[_PI] != null) { + contents[_PI] = (0, import_smithy_client.expectString)(output[_PI]) + } + if (output[_OTN] != null) { + contents[_OTN] = (0, import_smithy_client.expectString)(output[_OTN]) + } + if (output[_PVN] != null) { + contents[_PVN] = (0, import_smithy_client.expectString)(output[_PVN]) + } + if (output[_LPV] != null) { + contents[_LPV] = (0, import_smithy_client.expectString)(output[_LPV]) + } + if (output[_PIu] != null) { + contents[_PIu] = (0, import_smithy_client.expectString)(output[_PIu]) + } + if (output[_PN] != null) { + contents[_PN] = (0, import_smithy_client.expectString)(output[_PN]) + } + if (output[_IA] != null) { + contents[_IA] = (0, import_smithy_client.parseBoolean)(output[_IA]) + } + return contents + }, 'de_TypeSummary') + var de_TypeVersionSummaries = /* @__PURE__ */ __name( + (output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return de_TypeVersionSummary(entry, context) + }) + }, + 'de_TypeVersionSummaries' + ) + var de_TypeVersionSummary = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_T] != null) { + contents[_T] = (0, import_smithy_client.expectString)(output[_T]) + } + if (output[_TN] != null) { + contents[_TN] = (0, import_smithy_client.expectString)(output[_TN]) + } + if (output[_VI] != null) { + contents[_VI] = (0, import_smithy_client.expectString)(output[_VI]) + } + if (output[_IDV] != null) { + contents[_IDV] = (0, import_smithy_client.parseBoolean)(output[_IDV]) + } + if (output[_Ar] != null) { + contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]) + } + if (output[_TCi] != null) { + contents[_TCi] = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.parseRfc3339DateTimeWithOffset)( + output[_TCi] + ) + ) + } + if (output[_D] != null) { + contents[_D] = (0, import_smithy_client.expectString)(output[_D]) + } + if (output[_PVN] != null) { + contents[_PVN] = (0, import_smithy_client.expectString)(output[_PVN]) + } + return contents + }, 'de_TypeVersionSummary') + var de_UnprocessedTypeConfigurations = /* @__PURE__ */ __name( + (output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return de_TypeConfigurationIdentifier(entry, context) + }) + }, + 'de_UnprocessedTypeConfigurations' + ) + var de_UpdateGeneratedTemplateOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_GTI] != null) { + contents[_GTI] = (0, import_smithy_client.expectString)( + output[_GTI] + ) + } + return contents + }, + 'de_UpdateGeneratedTemplateOutput' + ) + var de_UpdateStackInstancesOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_OI] != null) { + contents[_OI] = (0, import_smithy_client.expectString)(output[_OI]) + } + return contents + }, + 'de_UpdateStackInstancesOutput' + ) + var de_UpdateStackOutput = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_SI] != null) { + contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]) + } + return contents + }, 'de_UpdateStackOutput') + var de_UpdateStackSetOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_OI] != null) { + contents[_OI] = (0, import_smithy_client.expectString)(output[_OI]) + } + return contents + }, + 'de_UpdateStackSetOutput' + ) + var de_UpdateTerminationProtectionOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_SI] != null) { + contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]) + } + return contents + }, + 'de_UpdateTerminationProtectionOutput' + ) + var de_ValidateTemplateOutput = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output.Parameters === '') { + contents[_P] = [] + } else if (output[_P] != null && output[_P][_m] != null) { + contents[_P] = de_TemplateParameters( + (0, import_smithy_client.getArrayIfSingleItem)(output[_P][_m]), + context + ) + } + if (output[_D] != null) { + contents[_D] = (0, import_smithy_client.expectString)(output[_D]) + } + if (output.Capabilities === '') { + contents[_C] = [] + } else if (output[_C] != null && output[_C][_m] != null) { + contents[_C] = de_Capabilities( + (0, import_smithy_client.getArrayIfSingleItem)(output[_C][_m]), + context + ) + } + if (output[_CR] != null) { + contents[_CR] = (0, import_smithy_client.expectString)(output[_CR]) + } + if (output.DeclaredTransforms === '') { + contents[_DTec] = [] + } else if (output[_DTec] != null && output[_DTec][_m] != null) { + contents[_DTec] = de_TransformsList( + (0, import_smithy_client.getArrayIfSingleItem)(output[_DTec][_m]), + context + ) + } + return contents + }, + 'de_ValidateTemplateOutput' + ) + var de_WarningDetail = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_T] != null) { + contents[_T] = (0, import_smithy_client.expectString)(output[_T]) + } + if (output.Properties === '') { + contents[_Pro] = [] + } else if (output[_Pro] != null && output[_Pro][_m] != null) { + contents[_Pro] = de_WarningProperties( + (0, import_smithy_client.getArrayIfSingleItem)(output[_Pro][_m]), + context + ) + } + return contents + }, 'de_WarningDetail') + var de_WarningDetails = /* @__PURE__ */ __name((output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return de_WarningDetail(entry, context) + }) + }, 'de_WarningDetails') + var de_WarningProperties = /* @__PURE__ */ __name((output, context) => { + return (output || []) + .filter(e => e != null) + .map(entry => { + return de_WarningProperty(entry, context) + }) + }, 'de_WarningProperties') + var de_WarningProperty = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_PPr] != null) { + contents[_PPr] = (0, import_smithy_client.expectString)(output[_PPr]) + } + if (output[_Req] != null) { + contents[_Req] = (0, import_smithy_client.parseBoolean)(output[_Req]) + } + if (output[_D] != null) { + contents[_D] = (0, import_smithy_client.expectString)(output[_D]) + } + return contents + }, 'de_WarningProperty') + var de_Warnings = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output.UnrecognizedResourceTypes === '') { + contents[_URT] = [] + } else if (output[_URT] != null && output[_URT][_m] != null) { + contents[_URT] = de_ResourceTypes( + (0, import_smithy_client.getArrayIfSingleItem)(output[_URT][_m]), + context + ) + } + return contents + }, 'de_Warnings') + var deserializeMetadata = /* @__PURE__ */ __name( + output => ({ + httpStatusCode: output.statusCode, + requestId: + output.headers['x-amzn-requestid'] ?? + output.headers['x-amzn-request-id'] ?? + output.headers['x-amz-request-id'], + extendedRequestId: output.headers['x-amz-id-2'], + cfId: output.headers['x-amz-cf-id'] + }), + 'deserializeMetadata' + ) + var throwDefaultError = (0, import_smithy_client.withBaseException)( + CloudFormationServiceException + ) + var buildHttpRpcRequest = /* @__PURE__ */ __name( + async (context, headers, path, resolvedHostname, body) => { + const { + hostname, + protocol = 'https', + port, + path: basePath + } = await context.endpoint() + const contents = { + protocol, + hostname, + port, + method: 'POST', + path: basePath.endsWith('/') + ? basePath.slice(0, -1) + path + : basePath + path, + headers + } + if (resolvedHostname !== void 0) { + contents.hostname = resolvedHostname + } + if (body !== void 0) { + contents.body = body + } + return new import_protocol_http.HttpRequest(contents) + }, + 'buildHttpRpcRequest' + ) + var SHARED_HEADERS = { + 'content-type': 'application/x-www-form-urlencoded' + } + var _ = '2010-05-15' + var _A = 'Action' + var _AC = 'AfterContext' + var _ACT = 'AttributeChangeType' + var _AD = 'AutoDeployment' + var _AFT = 'AccountFilterType' + var _AGR = 'AccountGateResult' + var _AL = 'AccountLimits' + var _AOA = 'ActivateOrganizationsAccess' + var _AP = 'ActualProperties' + var _AR = 'AddResources' + var _ARARN = 'AdministrationRoleARN' + var _AT = 'ActivateType' + var _ATAC = 'AcceptTermsAndConditions' + var _AU = 'AutoUpdate' + var _AUc = 'AccountsUrl' + var _AV = 'AllowedValues' + var _AVc = 'ActualValue' + var _AVf = 'AfterValue' + var _Ac = 'Accounts' + var _Acc = 'Account' + var _Act = 'Active' + var _Al = 'Alias' + var _Ar = 'Arn' + var _At = 'Attribute' + var _BC = 'BeforeContext' + var _BDTC = 'BatchDescribeTypeConfigurations' + var _BT = 'BearerToken' + var _BV = 'BeforeValue' + var _C = 'Capabilities' + var _CA = 'CallAs' + var _CAo = 'ConnectionArn' + var _CAon = 'ConfigurationAlias' + var _CAonf = 'ConfigurationArn' + var _CCS = 'CreateChangeSet' + var _CE = 'CausingEntity' + var _CGT = 'CreateGeneratedTemplate' + var _CM = 'ConcurrencyMode' + var _COS = 'CurrentOperationStatus' + var _CR = 'CapabilitiesReason' + var _CRT = 'ClientRequestToken' + var _CS = 'CreateStack' + var _CSI = 'CreateStackInstances' + var _CSIh = 'ChangeSetId' + var _CSN = 'ChangeSetName' + var _CSS = 'CreateStackSet' + var _CST = 'ChangeSetType' + var _CSh = 'ChangeSource' + var _CSo = 'ConfigurationSchema' + var _CT = 'ClientToken' + var _CTr = 'CreationTime' + var _CTre = 'CreationTimestamp' + var _CUR = 'ContinueUpdateRollback' + var _CUS = 'CancelUpdateStack' + var _Ca = 'Category' + var _Ch = 'Changes' + var _Co = 'Configuration' + var _D = 'Description' + var _DAL = 'DescribeAccountLimits' + var _DCS = 'DeleteChangeSet' + var _DCSH = 'DescribeChangeSetHooks' + var _DCSe = 'DescribeChangeSet' + var _DDS = 'DriftDetectionStatus' + var _DGT = 'DeleteGeneratedTemplate' + var _DGTe = 'DescribeGeneratedTemplate' + var _DI = 'DriftInformation' + var _DM = 'DeletionMode' + var _DOA = 'DeactivateOrganizationsAccess' + var _DOAe = 'DescribeOrganizationsAccess' + var _DP = 'DescribePublisher' + var _DPe = 'DeletionPolicy' + var _DR = 'DisableRollback' + var _DRS = 'DescribeResourceScan' + var _DS = 'DeleteStack' + var _DSD = 'DetectStackDrift' + var _DSDDS = 'DescribeStackDriftDetectionStatus' + var _DSE = 'DescribeStackEvents' + var _DSI = 'DeleteStackInstances' + var _DSIC = 'DriftedStackInstancesCount' + var _DSIe = 'DescribeStackInstance' + var _DSR = 'DescribeStackResource' + var _DSRC = 'DriftedStackResourceCount' + var _DSRD = 'DescribeStackResourceDrifts' + var _DSRDe = 'DetectStackResourceDrift' + var _DSRe = 'DescribeStackResources' + var _DSRet = 'DetectionStatusReason' + var _DSS = 'DeleteStackSet' + var _DSSD = 'DetectStackSetDrift' + var _DSSO = 'DescribeStackSetOperation' + var _DSSe = 'DescribeStackSet' + var _DSe = 'DescribeStacks' + var _DSep = 'DeprecatedStatus' + var _DSet = 'DetectionStatus' + var _DSeta = 'DetailedStatus' + var _DSr = 'DriftStatus' + var _DT = 'DeactivateType' + var _DTR = 'DescribeTypeRegistration' + var _DTe = 'DeregisterType' + var _DTec = 'DeclaredTransforms' + var _DTel = 'DeletionTime' + var _DTep = 'DeploymentTargets' + var _DTes = 'DescribeType' + var _DTi = 'DifferenceType' + var _DU = 'DocumentationUrl' + var _DV = 'DefaultValue' + var _DVI = 'DefaultVersionId' + var _De = 'Details' + var _E = 'Enabled' + var _EC = 'ErrorCode' + var _ECS = 'ExecuteChangeSet' + var _EI = 'EventId' + var _EM = 'ErrorMessage' + var _EN = 'ExportName' + var _EP = 'ExpectedProperties' + var _ERA = 'ExecutionRoleArn' + var _ERN = 'ExecutionRoleName' + var _ES = 'ExecutionStatus' + var _ESI = 'ExportingStackId' + var _ET = 'EndTime' + var _ETC = 'EstimateTemplateCost' + var _ETP = 'EnableTerminationProtection' + var _ETn = 'EndTimestamp' + var _EV = 'ExpectedValue' + var _Er = 'Errors' + var _Ev = 'Evaluation' + var _Ex = 'Exports' + var _F = 'Format' + var _FM = 'FailureMode' + var _FSIC = 'FailedStackInstancesCount' + var _FTC = 'FailureToleranceCount' + var _FTP = 'FailureTolerancePercentage' + var _Fi = 'Filters' + var _GGT = 'GetGeneratedTemplate' + var _GSP = 'GetStackPolicy' + var _GT = 'GetTemplate' + var _GTI = 'GeneratedTemplateId' + var _GTN = 'GeneratedTemplateName' + var _GTS = 'GetTemplateSummary' + var _H = 'Hooks' + var _HFM = 'HookFailureMode' + var _HIC = 'HookInvocationCount' + var _HIP = 'HookInvocationPoint' + var _HS = 'HookStatus' + var _HSR = 'HookStatusReason' + var _HT = 'HookType' + var _I = 'Id' + var _IA = 'IsActivated' + var _IDC = 'IsDefaultConfiguration' + var _IDV = 'IsDefaultVersion' + var _IER = 'ImportExistingResources' + var _INS = 'IncludeNestedStacks' + var _IP = 'InvocationPoint' + var _IPSIC = 'InProgressStackInstancesCount' + var _IPV = 'IncludePropertyValues' + var _IPd = 'IdentityProvider' + var _ISSIC = 'InSyncStackInstancesCount' + var _ISTSS = 'ImportStacksToStackSet' + var _Im = 'Imports' + var _K = 'Key' + var _LC = 'LoggingConfig' + var _LCS = 'ListChangeSets' + var _LCT = 'LastCheckTimestamp' + var _LDB = 'LogDeliveryBucket' + var _LDCT = 'LastDriftCheckTimestamp' + var _LE = 'ListExports' + var _LGN = 'LogGroupName' + var _LGT = 'ListGeneratedTemplates' + var _LI = 'ListImports' + var _LIH = 'LogicalIdHierarchy' + var _LOI = 'LastOperationId' + var _LPV = 'LatestPublicVersion' + var _LRA = 'LogRoleArn' + var _LRI = 'LogicalResourceId' + var _LRIo = 'LogicalResourceIds' + var _LRS = 'ListResourceScans' + var _LRSR = 'ListResourceScanResources' + var _LRSRR = 'ListResourceScanRelatedResources' + var _LS = 'ListStacks' + var _LSI = 'ListStackInstances' + var _LSIRD = 'ListStackInstanceResourceDrifts' + var _LSR = 'ListStackResources' + var _LSS = 'ListStackSets' + var _LSSADT = 'ListStackSetAutoDeploymentTargets' + var _LSSO = 'ListStackSetOperations' + var _LSSOR = 'ListStackSetOperationResults' + var _LT = 'ListTypes' + var _LTR = 'ListTypeRegistrations' + var _LTV = 'ListTypeVersions' + var _LU = 'LastUpdated' + var _LUT = 'LastUpdatedTime' + var _LUTa = 'LastUpdatedTimestamp' + var _M = 'Message' + var _MBS = 'ManagedByStack' + var _MCC = 'MaxConcurrentCount' + var _MCP = 'MaxConcurrentPercentage' + var _ME = 'ManagedExecution' + var _MI = 'ModuleInfo' + var _MR = 'MaxResults' + var _MTIM = 'MonitoringTimeInMinutes' + var _MV = 'MajorVersion' + var _Me = 'Metadata' + var _N = 'Name' + var _NARN = 'NotificationARNs' + var _NE = 'NoEcho' + var _NGTN = 'NewGeneratedTemplateName' + var _NOR = 'NumberOfResources' + var _NT = 'NextToken' + var _O = 'Outputs' + var _OF = 'OnFailure' + var _OI = 'OperationId' + var _OK = 'OutputKey' + var _OP = 'OperationPreferences' + var _OS = 'OperationStatus' + var _OSF = 'OnStackFailure' + var _OTA = 'OriginalTypeArn' + var _OTN = 'OriginalTypeName' + var _OUI = 'OrganizationalUnitIds' + var _OUIr = 'OrganizationalUnitId' + var _OV = 'OutputValue' + var _P = 'Parameters' + var _PA = 'PolicyAction' + var _PC = 'PercentageCompleted' + var _PCSI = 'ParentChangeSetId' + var _PCa = 'ParameterConstraints' + var _PD = 'PropertyDifferences' + var _PI = 'PublisherId' + var _PIa = 'ParentId' + var _PIu = 'PublisherIdentity' + var _PK = 'ParameterKey' + var _PM = 'PermissionModel' + var _PN = 'PublisherName' + var _PO = 'ParameterOverrides' + var _PP = 'PublisherProfile' + var _PPr = 'PropertyPath' + var _PRI = 'PhysicalResourceId' + var _PRIC = 'PhysicalResourceIdContext' + var _PS = 'PublisherStatus' + var _PSr = 'ProgressStatus' + var _PT = 'PublishType' + var _PTA = 'PublicTypeArn' + var _PTa = 'ParameterType' + var _PTr = 'ProvisioningType' + var _PV = 'ParameterValue' + var _PVN = 'PublicVersionNumber' + var _Pa = 'Path' + var _Pr = 'Progress' + var _Pro = 'Properties' + var _R = 'Resources' + var _RA = 'ResourceAction' + var _RAR = 'RefreshAllResources' + var _RARN = 'RoleARN' + var _RAT = 'RequiredActivatedTypes' + var _RC = 'RollbackConfiguration' + var _RCSI = 'RootChangeSetId' + var _RCT = 'RegionConcurrencyType' + var _RCe = 'ResourceChange' + var _REOC = 'RetainExceptOnCreate' + var _RF = 'ResourcesFailed' + var _RHP = 'RecordHandlerProgress' + var _RI = 'ResourceIdentifier' + var _RIS = 'ResourceIdentifierSummaries' + var _RIe = 'ResourceIdentifiers' + var _RIo = 'RootId' + var _RM = 'ResourceModel' + var _RO = 'RegionOrder' + var _RP = 'RegisterPublisher' + var _RPe = 'ResourceProperties' + var _RPes = 'ResourcesProcessing' + var _RPeso = 'ResourcesPending' + var _RR = 'RetainResources' + var _RRe = 'RemoveResources' + var _RRel = 'RelatedResources' + var _RReq = 'RequiresRecreation' + var _RRes = 'ResourcesRead' + var _RS = 'RollbackStack' + var _RSF = 'RegistrationStatusFilter' + var _RSI = 'ResourceScanId' + var _RSOAR = 'RetainStacksOnAccountRemoval' + var _RSR = 'ResourceStatusReason' + var _RSS = 'ResourceScanSummaries' + var _RSe = 'RetainStacks' + var _RSes = 'ResourcesScanned' + var _RSeso = 'ResourceStatus' + var _RSesou = 'ResourcesSucceeded' + var _RT = 'RegisterType' + var _RTD = 'ResourceTargetDetails' + var _RTI = 'ResourcesToImport' + var _RTL = 'RegistrationTokenList' + var _RTP = 'ResourceTypePrefix' + var _RTS = 'ResourcesToSkip' + var _RTe = 'ResourceTypes' + var _RTeg = 'RegistrationToken' + var _RTes = 'ResourceType' + var _RTo = 'RollbackTriggers' + var _RV = 'ResolvedValue' + var _Re = 'Regions' + var _Reg = 'Region' + var _Rep = 'Replacement' + var _Req = 'Required' + var _S = 'Status' + var _SA = 'StagesAvailable' + var _SD = 'StatusDetails' + var _SDDI = 'StackDriftDetectionId' + var _SDS = 'StackDriftStatus' + var _SE = 'StackEvents' + var _SHP = 'SchemaHandlerPackage' + var _SI = 'StackId' + var _SIA = 'StackInstanceAccount' + var _SIR = 'StackInstanceRegion' + var _SIRDS = 'StackInstanceResourceDriftStatuses' + var _SIS = 'StackInstanceStatus' + var _SIU = 'StackIdsUrl' + var _SIt = 'StackIds' + var _SIta = 'StackInstance' + var _SM = 'StatusMessage' + var _SMV = 'SupportedMajorVersions' + var _SN = 'StackName' + var _SPB = 'StackPolicyBody' + var _SPDUB = 'StackPolicyDuringUpdateBody' + var _SPDUURL = 'StackPolicyDuringUpdateURL' + var _SPURL = 'StackPolicyURL' + var _SR = 'SignalResource' + var _SRD = 'StackResourceDrifts' + var _SRDS = 'StackResourceDriftStatus' + var _SRDSF = 'StackResourceDriftStatusFilters' + var _SRDt = 'StackResourceDetail' + var _SRDta = 'StackResourceDrift' + var _SRS = 'StartResourceScan' + var _SRSt = 'StackResourceSummaries' + var _SRt = 'StatusReason' + var _SRta = 'StackResources' + var _SS = 'StackSet' + var _SSARN = 'StackSetARN' + var _SSDDD = 'StackSetDriftDetectionDetails' + var _SSF = 'StackStatusFilter' + var _SSI = 'StackSetId' + var _SSN = 'StackSetName' + var _SSO = 'StackSetOperation' + var _SSP = 'SetStackPolicy' + var _SSR = 'StackStatusReason' + var _SSSO = 'StopStackSetOperation' + var _SSt = 'StackSummaries' + var _SSta = 'StackStatus' + var _ST = 'StartTime' + var _STC = 'SetTypeConfiguration' + var _STDV = 'SetTypeDefaultVersion' + var _SU = 'SourceUrl' + var _Sc = 'Schema' + var _Sco = 'Scope' + var _St = 'Stacks' + var _Su = 'Summaries' + var _T = 'Type' + var _TA = 'TypeArn' + var _TB = 'TemplateBody' + var _TC = 'TemplateConfiguration' + var _TCA = 'TypeConfigurationAlias' + var _TCAy = 'TypeConfigurationArn' + var _TCI = 'TypeConfigurationIdentifiers' + var _TCIy = 'TypeConfigurationIdentifier' + var _TCVI = 'TypeConfigurationVersionId' + var _TCi = 'TimeCreated' + var _TCy = 'TypeConfigurations' + var _TD = 'TargetDetails' + var _TDe = 'TemplateDescription' + var _TH = 'TypeHierarchy' + var _TIM = 'TimeoutInMinutes' + var _TK = 'TagKey' + var _TN = 'TypeName' + var _TNA = 'TypeNameAlias' + var _TNP = 'TypeNamePrefix' + var _TS = 'TemplateStage' + var _TSC = 'TemplateSummaryConfig' + var _TSIC = 'TotalStackInstancesCount' + var _TSy = 'TypeSummaries' + var _TT = 'TestType' + var _TTS = 'TypeTestsStatus' + var _TTSD = 'TypeTestsStatusDescription' + var _TTa = 'TargetType' + var _TURL = 'TemplateURL' + var _TURTAW = 'TreatUnrecognizedResourceTypesAsWarnings' + var _TV = 'TagValue' + var _TVA = 'TypeVersionArn' + var _TVI = 'TypeVersionId' + var _TVS = 'TypeVersionSummaries' + var _TW = 'TotalWarnings' + var _Ta = 'Tags' + var _Tar = 'Target' + var _Ti = 'Timestamp' + var _U = 'Url' + var _UGT = 'UpdateGeneratedTemplate' + var _UI = 'UniqueId' + var _UPT = 'UsePreviousTemplate' + var _UPV = 'UsePreviousValue' + var _URP = 'UpdateReplacePolicy' + var _URT = 'UnrecognizedResourceTypes' + var _US = 'UpdateStack' + var _USI = 'UpdateStackInstances' + var _USS = 'UpdateStackSet' + var _UTC = 'UnprocessedTypeConfigurations' + var _UTP = 'UpdateTerminationProtection' + var _V = 'Version' + var _VB = 'VersionBump' + var _VI = 'VersionId' + var _VT = 'ValidateTemplate' + var _Va = 'Values' + var _Val = 'Value' + var _Vi = 'Visibility' + var _W = 'Warnings' + var _e = 'entry' + var _m = 'member' + var buildFormUrlencodedString = /* @__PURE__ */ __name( + formEntries => + Object.entries(formEntries) + .map( + ([key, value]) => + (0, import_smithy_client.extendedEncodeURIComponent)(key) + + '=' + + (0, import_smithy_client.extendedEncodeURIComponent)(value) + ) + .join('&'), + 'buildFormUrlencodedString' + ) + var loadQueryErrorCode = /* @__PURE__ */ __name((output, data) => { + var _a + if (((_a = data.Error) == null ? void 0 : _a.Code) !== void 0) { + return data.Error.Code + } + if (output.statusCode == 404) { + return 'NotFound' + } + }, 'loadQueryErrorCode') + + // src/commands/ActivateOrganizationsAccessCommand.ts + var _ActivateOrganizationsAccessCommand = class _ActivateOrganizationsAccessCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'ActivateOrganizationsAccess', {}) + .n('CloudFormationClient', 'ActivateOrganizationsAccessCommand') + .f(void 0, void 0) + .ser(se_ActivateOrganizationsAccessCommand) + .de(de_ActivateOrganizationsAccessCommand) + .build() {} + __name( + _ActivateOrganizationsAccessCommand, + 'ActivateOrganizationsAccessCommand' + ) + var ActivateOrganizationsAccessCommand = + _ActivateOrganizationsAccessCommand + + // src/commands/ActivateTypeCommand.ts + + var _ActivateTypeCommand = class _ActivateTypeCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'ActivateType', {}) + .n('CloudFormationClient', 'ActivateTypeCommand') + .f(void 0, void 0) + .ser(se_ActivateTypeCommand) + .de(de_ActivateTypeCommand) + .build() {} + __name(_ActivateTypeCommand, 'ActivateTypeCommand') + var ActivateTypeCommand = _ActivateTypeCommand + + // src/commands/BatchDescribeTypeConfigurationsCommand.ts + + var _BatchDescribeTypeConfigurationsCommand = class _BatchDescribeTypeConfigurationsCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'BatchDescribeTypeConfigurations', {}) + .n('CloudFormationClient', 'BatchDescribeTypeConfigurationsCommand') + .f(void 0, void 0) + .ser(se_BatchDescribeTypeConfigurationsCommand) + .de(de_BatchDescribeTypeConfigurationsCommand) + .build() {} + __name( + _BatchDescribeTypeConfigurationsCommand, + 'BatchDescribeTypeConfigurationsCommand' + ) + var BatchDescribeTypeConfigurationsCommand = + _BatchDescribeTypeConfigurationsCommand + + // src/commands/CancelUpdateStackCommand.ts + + var _CancelUpdateStackCommand = class _CancelUpdateStackCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'CancelUpdateStack', {}) + .n('CloudFormationClient', 'CancelUpdateStackCommand') + .f(void 0, void 0) + .ser(se_CancelUpdateStackCommand) + .de(de_CancelUpdateStackCommand) + .build() {} + __name(_CancelUpdateStackCommand, 'CancelUpdateStackCommand') + var CancelUpdateStackCommand = _CancelUpdateStackCommand + + // src/commands/ContinueUpdateRollbackCommand.ts + + var _ContinueUpdateRollbackCommand = class _ContinueUpdateRollbackCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'ContinueUpdateRollback', {}) + .n('CloudFormationClient', 'ContinueUpdateRollbackCommand') + .f(void 0, void 0) + .ser(se_ContinueUpdateRollbackCommand) + .de(de_ContinueUpdateRollbackCommand) + .build() {} + __name(_ContinueUpdateRollbackCommand, 'ContinueUpdateRollbackCommand') + var ContinueUpdateRollbackCommand = _ContinueUpdateRollbackCommand + + // src/commands/CreateChangeSetCommand.ts + + var _CreateChangeSetCommand = class _CreateChangeSetCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'CreateChangeSet', {}) + .n('CloudFormationClient', 'CreateChangeSetCommand') + .f(void 0, void 0) + .ser(se_CreateChangeSetCommand) + .de(de_CreateChangeSetCommand) + .build() {} + __name(_CreateChangeSetCommand, 'CreateChangeSetCommand') + var CreateChangeSetCommand = _CreateChangeSetCommand + + // src/commands/CreateGeneratedTemplateCommand.ts + + var _CreateGeneratedTemplateCommand = class _CreateGeneratedTemplateCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'CreateGeneratedTemplate', {}) + .n('CloudFormationClient', 'CreateGeneratedTemplateCommand') + .f(void 0, void 0) + .ser(se_CreateGeneratedTemplateCommand) + .de(de_CreateGeneratedTemplateCommand) + .build() {} + __name(_CreateGeneratedTemplateCommand, 'CreateGeneratedTemplateCommand') + var CreateGeneratedTemplateCommand = _CreateGeneratedTemplateCommand + + // src/commands/CreateStackCommand.ts + + var _CreateStackCommand = class _CreateStackCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'CreateStack', {}) + .n('CloudFormationClient', 'CreateStackCommand') + .f(void 0, void 0) + .ser(se_CreateStackCommand) + .de(de_CreateStackCommand) + .build() {} + __name(_CreateStackCommand, 'CreateStackCommand') + var CreateStackCommand = _CreateStackCommand + + // src/commands/CreateStackInstancesCommand.ts + + var _CreateStackInstancesCommand = class _CreateStackInstancesCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'CreateStackInstances', {}) + .n('CloudFormationClient', 'CreateStackInstancesCommand') + .f(void 0, void 0) + .ser(se_CreateStackInstancesCommand) + .de(de_CreateStackInstancesCommand) + .build() {} + __name(_CreateStackInstancesCommand, 'CreateStackInstancesCommand') + var CreateStackInstancesCommand = _CreateStackInstancesCommand + + // src/commands/CreateStackSetCommand.ts + + var _CreateStackSetCommand = class _CreateStackSetCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'CreateStackSet', {}) + .n('CloudFormationClient', 'CreateStackSetCommand') + .f(void 0, void 0) + .ser(se_CreateStackSetCommand) + .de(de_CreateStackSetCommand) + .build() {} + __name(_CreateStackSetCommand, 'CreateStackSetCommand') + var CreateStackSetCommand = _CreateStackSetCommand + + // src/commands/DeactivateOrganizationsAccessCommand.ts + + var _DeactivateOrganizationsAccessCommand = class _DeactivateOrganizationsAccessCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'DeactivateOrganizationsAccess', {}) + .n('CloudFormationClient', 'DeactivateOrganizationsAccessCommand') + .f(void 0, void 0) + .ser(se_DeactivateOrganizationsAccessCommand) + .de(de_DeactivateOrganizationsAccessCommand) + .build() {} + __name( + _DeactivateOrganizationsAccessCommand, + 'DeactivateOrganizationsAccessCommand' + ) + var DeactivateOrganizationsAccessCommand = + _DeactivateOrganizationsAccessCommand + + // src/commands/DeactivateTypeCommand.ts + + var _DeactivateTypeCommand = class _DeactivateTypeCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'DeactivateType', {}) + .n('CloudFormationClient', 'DeactivateTypeCommand') + .f(void 0, void 0) + .ser(se_DeactivateTypeCommand) + .de(de_DeactivateTypeCommand) + .build() {} + __name(_DeactivateTypeCommand, 'DeactivateTypeCommand') + var DeactivateTypeCommand = _DeactivateTypeCommand + + // src/commands/DeleteChangeSetCommand.ts + + var _DeleteChangeSetCommand = class _DeleteChangeSetCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'DeleteChangeSet', {}) + .n('CloudFormationClient', 'DeleteChangeSetCommand') + .f(void 0, void 0) + .ser(se_DeleteChangeSetCommand) + .de(de_DeleteChangeSetCommand) + .build() {} + __name(_DeleteChangeSetCommand, 'DeleteChangeSetCommand') + var DeleteChangeSetCommand = _DeleteChangeSetCommand + + // src/commands/DeleteGeneratedTemplateCommand.ts + + var _DeleteGeneratedTemplateCommand = class _DeleteGeneratedTemplateCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'DeleteGeneratedTemplate', {}) + .n('CloudFormationClient', 'DeleteGeneratedTemplateCommand') + .f(void 0, void 0) + .ser(se_DeleteGeneratedTemplateCommand) + .de(de_DeleteGeneratedTemplateCommand) + .build() {} + __name(_DeleteGeneratedTemplateCommand, 'DeleteGeneratedTemplateCommand') + var DeleteGeneratedTemplateCommand = _DeleteGeneratedTemplateCommand + + // src/commands/DeleteStackCommand.ts + + var _DeleteStackCommand = class _DeleteStackCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'DeleteStack', {}) + .n('CloudFormationClient', 'DeleteStackCommand') + .f(void 0, void 0) + .ser(se_DeleteStackCommand) + .de(de_DeleteStackCommand) + .build() {} + __name(_DeleteStackCommand, 'DeleteStackCommand') + var DeleteStackCommand = _DeleteStackCommand + + // src/commands/DeleteStackInstancesCommand.ts + + var _DeleteStackInstancesCommand = class _DeleteStackInstancesCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'DeleteStackInstances', {}) + .n('CloudFormationClient', 'DeleteStackInstancesCommand') + .f(void 0, void 0) + .ser(se_DeleteStackInstancesCommand) + .de(de_DeleteStackInstancesCommand) + .build() {} + __name(_DeleteStackInstancesCommand, 'DeleteStackInstancesCommand') + var DeleteStackInstancesCommand = _DeleteStackInstancesCommand + + // src/commands/DeleteStackSetCommand.ts + + var _DeleteStackSetCommand = class _DeleteStackSetCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'DeleteStackSet', {}) + .n('CloudFormationClient', 'DeleteStackSetCommand') + .f(void 0, void 0) + .ser(se_DeleteStackSetCommand) + .de(de_DeleteStackSetCommand) + .build() {} + __name(_DeleteStackSetCommand, 'DeleteStackSetCommand') + var DeleteStackSetCommand = _DeleteStackSetCommand + + // src/commands/DeregisterTypeCommand.ts + + var _DeregisterTypeCommand = class _DeregisterTypeCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'DeregisterType', {}) + .n('CloudFormationClient', 'DeregisterTypeCommand') + .f(void 0, void 0) + .ser(se_DeregisterTypeCommand) + .de(de_DeregisterTypeCommand) + .build() {} + __name(_DeregisterTypeCommand, 'DeregisterTypeCommand') + var DeregisterTypeCommand = _DeregisterTypeCommand + + // src/commands/DescribeAccountLimitsCommand.ts + + var _DescribeAccountLimitsCommand = class _DescribeAccountLimitsCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'DescribeAccountLimits', {}) + .n('CloudFormationClient', 'DescribeAccountLimitsCommand') + .f(void 0, void 0) + .ser(se_DescribeAccountLimitsCommand) + .de(de_DescribeAccountLimitsCommand) + .build() {} + __name(_DescribeAccountLimitsCommand, 'DescribeAccountLimitsCommand') + var DescribeAccountLimitsCommand = _DescribeAccountLimitsCommand + + // src/commands/DescribeChangeSetCommand.ts + + var _DescribeChangeSetCommand = class _DescribeChangeSetCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'DescribeChangeSet', {}) + .n('CloudFormationClient', 'DescribeChangeSetCommand') + .f(void 0, void 0) + .ser(se_DescribeChangeSetCommand) + .de(de_DescribeChangeSetCommand) + .build() {} + __name(_DescribeChangeSetCommand, 'DescribeChangeSetCommand') + var DescribeChangeSetCommand = _DescribeChangeSetCommand + + // src/commands/DescribeChangeSetHooksCommand.ts + + var _DescribeChangeSetHooksCommand = class _DescribeChangeSetHooksCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'DescribeChangeSetHooks', {}) + .n('CloudFormationClient', 'DescribeChangeSetHooksCommand') + .f(void 0, void 0) + .ser(se_DescribeChangeSetHooksCommand) + .de(de_DescribeChangeSetHooksCommand) + .build() {} + __name(_DescribeChangeSetHooksCommand, 'DescribeChangeSetHooksCommand') + var DescribeChangeSetHooksCommand = _DescribeChangeSetHooksCommand + + // src/commands/DescribeGeneratedTemplateCommand.ts + + var _DescribeGeneratedTemplateCommand = class _DescribeGeneratedTemplateCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'DescribeGeneratedTemplate', {}) + .n('CloudFormationClient', 'DescribeGeneratedTemplateCommand') + .f(void 0, void 0) + .ser(se_DescribeGeneratedTemplateCommand) + .de(de_DescribeGeneratedTemplateCommand) + .build() {} + __name( + _DescribeGeneratedTemplateCommand, + 'DescribeGeneratedTemplateCommand' + ) + var DescribeGeneratedTemplateCommand = _DescribeGeneratedTemplateCommand + + // src/commands/DescribeOrganizationsAccessCommand.ts + + var _DescribeOrganizationsAccessCommand = class _DescribeOrganizationsAccessCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'DescribeOrganizationsAccess', {}) + .n('CloudFormationClient', 'DescribeOrganizationsAccessCommand') + .f(void 0, void 0) + .ser(se_DescribeOrganizationsAccessCommand) + .de(de_DescribeOrganizationsAccessCommand) + .build() {} + __name( + _DescribeOrganizationsAccessCommand, + 'DescribeOrganizationsAccessCommand' + ) + var DescribeOrganizationsAccessCommand = + _DescribeOrganizationsAccessCommand + + // src/commands/DescribePublisherCommand.ts + + var _DescribePublisherCommand = class _DescribePublisherCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'DescribePublisher', {}) + .n('CloudFormationClient', 'DescribePublisherCommand') + .f(void 0, void 0) + .ser(se_DescribePublisherCommand) + .de(de_DescribePublisherCommand) + .build() {} + __name(_DescribePublisherCommand, 'DescribePublisherCommand') + var DescribePublisherCommand = _DescribePublisherCommand + + // src/commands/DescribeResourceScanCommand.ts + + var _DescribeResourceScanCommand = class _DescribeResourceScanCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'DescribeResourceScan', {}) + .n('CloudFormationClient', 'DescribeResourceScanCommand') + .f(void 0, void 0) + .ser(se_DescribeResourceScanCommand) + .de(de_DescribeResourceScanCommand) + .build() {} + __name(_DescribeResourceScanCommand, 'DescribeResourceScanCommand') + var DescribeResourceScanCommand = _DescribeResourceScanCommand + + // src/commands/DescribeStackDriftDetectionStatusCommand.ts + + var _DescribeStackDriftDetectionStatusCommand = class _DescribeStackDriftDetectionStatusCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'DescribeStackDriftDetectionStatus', {}) + .n('CloudFormationClient', 'DescribeStackDriftDetectionStatusCommand') + .f(void 0, void 0) + .ser(se_DescribeStackDriftDetectionStatusCommand) + .de(de_DescribeStackDriftDetectionStatusCommand) + .build() {} + __name( + _DescribeStackDriftDetectionStatusCommand, + 'DescribeStackDriftDetectionStatusCommand' + ) + var DescribeStackDriftDetectionStatusCommand = + _DescribeStackDriftDetectionStatusCommand + + // src/commands/DescribeStackEventsCommand.ts + + var _DescribeStackEventsCommand = class _DescribeStackEventsCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'DescribeStackEvents', {}) + .n('CloudFormationClient', 'DescribeStackEventsCommand') + .f(void 0, void 0) + .ser(se_DescribeStackEventsCommand) + .de(de_DescribeStackEventsCommand) + .build() {} + __name(_DescribeStackEventsCommand, 'DescribeStackEventsCommand') + var DescribeStackEventsCommand = _DescribeStackEventsCommand + + // src/commands/DescribeStackInstanceCommand.ts + + var _DescribeStackInstanceCommand = class _DescribeStackInstanceCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'DescribeStackInstance', {}) + .n('CloudFormationClient', 'DescribeStackInstanceCommand') + .f(void 0, void 0) + .ser(se_DescribeStackInstanceCommand) + .de(de_DescribeStackInstanceCommand) + .build() {} + __name(_DescribeStackInstanceCommand, 'DescribeStackInstanceCommand') + var DescribeStackInstanceCommand = _DescribeStackInstanceCommand + + // src/commands/DescribeStackResourceCommand.ts + + var _DescribeStackResourceCommand = class _DescribeStackResourceCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'DescribeStackResource', {}) + .n('CloudFormationClient', 'DescribeStackResourceCommand') + .f(void 0, void 0) + .ser(se_DescribeStackResourceCommand) + .de(de_DescribeStackResourceCommand) + .build() {} + __name(_DescribeStackResourceCommand, 'DescribeStackResourceCommand') + var DescribeStackResourceCommand = _DescribeStackResourceCommand + + // src/commands/DescribeStackResourceDriftsCommand.ts + + var _DescribeStackResourceDriftsCommand = class _DescribeStackResourceDriftsCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'DescribeStackResourceDrifts', {}) + .n('CloudFormationClient', 'DescribeStackResourceDriftsCommand') + .f(void 0, void 0) + .ser(se_DescribeStackResourceDriftsCommand) + .de(de_DescribeStackResourceDriftsCommand) + .build() {} + __name( + _DescribeStackResourceDriftsCommand, + 'DescribeStackResourceDriftsCommand' + ) + var DescribeStackResourceDriftsCommand = + _DescribeStackResourceDriftsCommand + + // src/commands/DescribeStackResourcesCommand.ts + + var _DescribeStackResourcesCommand = class _DescribeStackResourcesCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'DescribeStackResources', {}) + .n('CloudFormationClient', 'DescribeStackResourcesCommand') + .f(void 0, void 0) + .ser(se_DescribeStackResourcesCommand) + .de(de_DescribeStackResourcesCommand) + .build() {} + __name(_DescribeStackResourcesCommand, 'DescribeStackResourcesCommand') + var DescribeStackResourcesCommand = _DescribeStackResourcesCommand + + // src/commands/DescribeStacksCommand.ts + + var _DescribeStacksCommand = class _DescribeStacksCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'DescribeStacks', {}) + .n('CloudFormationClient', 'DescribeStacksCommand') + .f(void 0, void 0) + .ser(se_DescribeStacksCommand) + .de(de_DescribeStacksCommand) + .build() {} + __name(_DescribeStacksCommand, 'DescribeStacksCommand') + var DescribeStacksCommand = _DescribeStacksCommand + + // src/commands/DescribeStackSetCommand.ts + + var _DescribeStackSetCommand = class _DescribeStackSetCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'DescribeStackSet', {}) + .n('CloudFormationClient', 'DescribeStackSetCommand') + .f(void 0, void 0) + .ser(se_DescribeStackSetCommand) + .de(de_DescribeStackSetCommand) + .build() {} + __name(_DescribeStackSetCommand, 'DescribeStackSetCommand') + var DescribeStackSetCommand = _DescribeStackSetCommand + + // src/commands/DescribeStackSetOperationCommand.ts + + var _DescribeStackSetOperationCommand = class _DescribeStackSetOperationCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'DescribeStackSetOperation', {}) + .n('CloudFormationClient', 'DescribeStackSetOperationCommand') + .f(void 0, void 0) + .ser(se_DescribeStackSetOperationCommand) + .de(de_DescribeStackSetOperationCommand) + .build() {} + __name( + _DescribeStackSetOperationCommand, + 'DescribeStackSetOperationCommand' + ) + var DescribeStackSetOperationCommand = _DescribeStackSetOperationCommand + + // src/commands/DescribeTypeCommand.ts + + var _DescribeTypeCommand = class _DescribeTypeCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'DescribeType', {}) + .n('CloudFormationClient', 'DescribeTypeCommand') + .f(void 0, void 0) + .ser(se_DescribeTypeCommand) + .de(de_DescribeTypeCommand) + .build() {} + __name(_DescribeTypeCommand, 'DescribeTypeCommand') + var DescribeTypeCommand = _DescribeTypeCommand + + // src/commands/DescribeTypeRegistrationCommand.ts + + var _DescribeTypeRegistrationCommand = class _DescribeTypeRegistrationCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'DescribeTypeRegistration', {}) + .n('CloudFormationClient', 'DescribeTypeRegistrationCommand') + .f(void 0, void 0) + .ser(se_DescribeTypeRegistrationCommand) + .de(de_DescribeTypeRegistrationCommand) + .build() {} + __name( + _DescribeTypeRegistrationCommand, + 'DescribeTypeRegistrationCommand' + ) + var DescribeTypeRegistrationCommand = _DescribeTypeRegistrationCommand + + // src/commands/DetectStackDriftCommand.ts + + var _DetectStackDriftCommand = class _DetectStackDriftCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'DetectStackDrift', {}) + .n('CloudFormationClient', 'DetectStackDriftCommand') + .f(void 0, void 0) + .ser(se_DetectStackDriftCommand) + .de(de_DetectStackDriftCommand) + .build() {} + __name(_DetectStackDriftCommand, 'DetectStackDriftCommand') + var DetectStackDriftCommand = _DetectStackDriftCommand + + // src/commands/DetectStackResourceDriftCommand.ts + + var _DetectStackResourceDriftCommand = class _DetectStackResourceDriftCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'DetectStackResourceDrift', {}) + .n('CloudFormationClient', 'DetectStackResourceDriftCommand') + .f(void 0, void 0) + .ser(se_DetectStackResourceDriftCommand) + .de(de_DetectStackResourceDriftCommand) + .build() {} + __name( + _DetectStackResourceDriftCommand, + 'DetectStackResourceDriftCommand' + ) + var DetectStackResourceDriftCommand = _DetectStackResourceDriftCommand + + // src/commands/DetectStackSetDriftCommand.ts + + var _DetectStackSetDriftCommand = class _DetectStackSetDriftCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'DetectStackSetDrift', {}) + .n('CloudFormationClient', 'DetectStackSetDriftCommand') + .f(void 0, void 0) + .ser(se_DetectStackSetDriftCommand) + .de(de_DetectStackSetDriftCommand) + .build() {} + __name(_DetectStackSetDriftCommand, 'DetectStackSetDriftCommand') + var DetectStackSetDriftCommand = _DetectStackSetDriftCommand + + // src/commands/EstimateTemplateCostCommand.ts + + var _EstimateTemplateCostCommand = class _EstimateTemplateCostCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'EstimateTemplateCost', {}) + .n('CloudFormationClient', 'EstimateTemplateCostCommand') + .f(void 0, void 0) + .ser(se_EstimateTemplateCostCommand) + .de(de_EstimateTemplateCostCommand) + .build() {} + __name(_EstimateTemplateCostCommand, 'EstimateTemplateCostCommand') + var EstimateTemplateCostCommand = _EstimateTemplateCostCommand + + // src/commands/ExecuteChangeSetCommand.ts + + var _ExecuteChangeSetCommand = class _ExecuteChangeSetCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'ExecuteChangeSet', {}) + .n('CloudFormationClient', 'ExecuteChangeSetCommand') + .f(void 0, void 0) + .ser(se_ExecuteChangeSetCommand) + .de(de_ExecuteChangeSetCommand) + .build() {} + __name(_ExecuteChangeSetCommand, 'ExecuteChangeSetCommand') + var ExecuteChangeSetCommand = _ExecuteChangeSetCommand + + // src/commands/GetGeneratedTemplateCommand.ts + + var _GetGeneratedTemplateCommand = class _GetGeneratedTemplateCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'GetGeneratedTemplate', {}) + .n('CloudFormationClient', 'GetGeneratedTemplateCommand') + .f(void 0, void 0) + .ser(se_GetGeneratedTemplateCommand) + .de(de_GetGeneratedTemplateCommand) + .build() {} + __name(_GetGeneratedTemplateCommand, 'GetGeneratedTemplateCommand') + var GetGeneratedTemplateCommand = _GetGeneratedTemplateCommand + + // src/commands/GetStackPolicyCommand.ts + + var _GetStackPolicyCommand = class _GetStackPolicyCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'GetStackPolicy', {}) + .n('CloudFormationClient', 'GetStackPolicyCommand') + .f(void 0, void 0) + .ser(se_GetStackPolicyCommand) + .de(de_GetStackPolicyCommand) + .build() {} + __name(_GetStackPolicyCommand, 'GetStackPolicyCommand') + var GetStackPolicyCommand = _GetStackPolicyCommand + + // src/commands/GetTemplateCommand.ts + + var _GetTemplateCommand = class _GetTemplateCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'GetTemplate', {}) + .n('CloudFormationClient', 'GetTemplateCommand') + .f(void 0, void 0) + .ser(se_GetTemplateCommand) + .de(de_GetTemplateCommand) + .build() {} + __name(_GetTemplateCommand, 'GetTemplateCommand') + var GetTemplateCommand = _GetTemplateCommand + + // src/commands/GetTemplateSummaryCommand.ts + + var _GetTemplateSummaryCommand = class _GetTemplateSummaryCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'GetTemplateSummary', {}) + .n('CloudFormationClient', 'GetTemplateSummaryCommand') + .f(void 0, void 0) + .ser(se_GetTemplateSummaryCommand) + .de(de_GetTemplateSummaryCommand) + .build() {} + __name(_GetTemplateSummaryCommand, 'GetTemplateSummaryCommand') + var GetTemplateSummaryCommand = _GetTemplateSummaryCommand + + // src/commands/ImportStacksToStackSetCommand.ts + + var _ImportStacksToStackSetCommand = class _ImportStacksToStackSetCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'ImportStacksToStackSet', {}) + .n('CloudFormationClient', 'ImportStacksToStackSetCommand') + .f(void 0, void 0) + .ser(se_ImportStacksToStackSetCommand) + .de(de_ImportStacksToStackSetCommand) + .build() {} + __name(_ImportStacksToStackSetCommand, 'ImportStacksToStackSetCommand') + var ImportStacksToStackSetCommand = _ImportStacksToStackSetCommand + + // src/commands/ListChangeSetsCommand.ts + + var _ListChangeSetsCommand = class _ListChangeSetsCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'ListChangeSets', {}) + .n('CloudFormationClient', 'ListChangeSetsCommand') + .f(void 0, void 0) + .ser(se_ListChangeSetsCommand) + .de(de_ListChangeSetsCommand) + .build() {} + __name(_ListChangeSetsCommand, 'ListChangeSetsCommand') + var ListChangeSetsCommand = _ListChangeSetsCommand + + // src/commands/ListExportsCommand.ts + + var _ListExportsCommand = class _ListExportsCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'ListExports', {}) + .n('CloudFormationClient', 'ListExportsCommand') + .f(void 0, void 0) + .ser(se_ListExportsCommand) + .de(de_ListExportsCommand) + .build() {} + __name(_ListExportsCommand, 'ListExportsCommand') + var ListExportsCommand = _ListExportsCommand + + // src/commands/ListGeneratedTemplatesCommand.ts + + var _ListGeneratedTemplatesCommand = class _ListGeneratedTemplatesCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'ListGeneratedTemplates', {}) + .n('CloudFormationClient', 'ListGeneratedTemplatesCommand') + .f(void 0, void 0) + .ser(se_ListGeneratedTemplatesCommand) + .de(de_ListGeneratedTemplatesCommand) + .build() {} + __name(_ListGeneratedTemplatesCommand, 'ListGeneratedTemplatesCommand') + var ListGeneratedTemplatesCommand = _ListGeneratedTemplatesCommand + + // src/commands/ListImportsCommand.ts + + var _ListImportsCommand = class _ListImportsCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'ListImports', {}) + .n('CloudFormationClient', 'ListImportsCommand') + .f(void 0, void 0) + .ser(se_ListImportsCommand) + .de(de_ListImportsCommand) + .build() {} + __name(_ListImportsCommand, 'ListImportsCommand') + var ListImportsCommand = _ListImportsCommand + + // src/commands/ListResourceScanRelatedResourcesCommand.ts + + var _ListResourceScanRelatedResourcesCommand = class _ListResourceScanRelatedResourcesCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'ListResourceScanRelatedResources', {}) + .n('CloudFormationClient', 'ListResourceScanRelatedResourcesCommand') + .f(void 0, void 0) + .ser(se_ListResourceScanRelatedResourcesCommand) + .de(de_ListResourceScanRelatedResourcesCommand) + .build() {} + __name( + _ListResourceScanRelatedResourcesCommand, + 'ListResourceScanRelatedResourcesCommand' + ) + var ListResourceScanRelatedResourcesCommand = + _ListResourceScanRelatedResourcesCommand + + // src/commands/ListResourceScanResourcesCommand.ts + + var _ListResourceScanResourcesCommand = class _ListResourceScanResourcesCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'ListResourceScanResources', {}) + .n('CloudFormationClient', 'ListResourceScanResourcesCommand') + .f(void 0, void 0) + .ser(se_ListResourceScanResourcesCommand) + .de(de_ListResourceScanResourcesCommand) + .build() {} + __name( + _ListResourceScanResourcesCommand, + 'ListResourceScanResourcesCommand' + ) + var ListResourceScanResourcesCommand = _ListResourceScanResourcesCommand + + // src/commands/ListResourceScansCommand.ts + + var _ListResourceScansCommand = class _ListResourceScansCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'ListResourceScans', {}) + .n('CloudFormationClient', 'ListResourceScansCommand') + .f(void 0, void 0) + .ser(se_ListResourceScansCommand) + .de(de_ListResourceScansCommand) + .build() {} + __name(_ListResourceScansCommand, 'ListResourceScansCommand') + var ListResourceScansCommand = _ListResourceScansCommand + + // src/commands/ListStackInstanceResourceDriftsCommand.ts + + var _ListStackInstanceResourceDriftsCommand = class _ListStackInstanceResourceDriftsCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'ListStackInstanceResourceDrifts', {}) + .n('CloudFormationClient', 'ListStackInstanceResourceDriftsCommand') + .f(void 0, void 0) + .ser(se_ListStackInstanceResourceDriftsCommand) + .de(de_ListStackInstanceResourceDriftsCommand) + .build() {} + __name( + _ListStackInstanceResourceDriftsCommand, + 'ListStackInstanceResourceDriftsCommand' + ) + var ListStackInstanceResourceDriftsCommand = + _ListStackInstanceResourceDriftsCommand + + // src/commands/ListStackInstancesCommand.ts + + var _ListStackInstancesCommand = class _ListStackInstancesCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'ListStackInstances', {}) + .n('CloudFormationClient', 'ListStackInstancesCommand') + .f(void 0, void 0) + .ser(se_ListStackInstancesCommand) + .de(de_ListStackInstancesCommand) + .build() {} + __name(_ListStackInstancesCommand, 'ListStackInstancesCommand') + var ListStackInstancesCommand = _ListStackInstancesCommand + + // src/commands/ListStackResourcesCommand.ts + + var _ListStackResourcesCommand = class _ListStackResourcesCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'ListStackResources', {}) + .n('CloudFormationClient', 'ListStackResourcesCommand') + .f(void 0, void 0) + .ser(se_ListStackResourcesCommand) + .de(de_ListStackResourcesCommand) + .build() {} + __name(_ListStackResourcesCommand, 'ListStackResourcesCommand') + var ListStackResourcesCommand = _ListStackResourcesCommand + + // src/commands/ListStacksCommand.ts + + var _ListStacksCommand = class _ListStacksCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'ListStacks', {}) + .n('CloudFormationClient', 'ListStacksCommand') + .f(void 0, void 0) + .ser(se_ListStacksCommand) + .de(de_ListStacksCommand) + .build() {} + __name(_ListStacksCommand, 'ListStacksCommand') + var ListStacksCommand = _ListStacksCommand + + // src/commands/ListStackSetAutoDeploymentTargetsCommand.ts + + var _ListStackSetAutoDeploymentTargetsCommand = class _ListStackSetAutoDeploymentTargetsCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'ListStackSetAutoDeploymentTargets', {}) + .n('CloudFormationClient', 'ListStackSetAutoDeploymentTargetsCommand') + .f(void 0, void 0) + .ser(se_ListStackSetAutoDeploymentTargetsCommand) + .de(de_ListStackSetAutoDeploymentTargetsCommand) + .build() {} + __name( + _ListStackSetAutoDeploymentTargetsCommand, + 'ListStackSetAutoDeploymentTargetsCommand' + ) + var ListStackSetAutoDeploymentTargetsCommand = + _ListStackSetAutoDeploymentTargetsCommand + + // src/commands/ListStackSetOperationResultsCommand.ts + + var _ListStackSetOperationResultsCommand = class _ListStackSetOperationResultsCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'ListStackSetOperationResults', {}) + .n('CloudFormationClient', 'ListStackSetOperationResultsCommand') + .f(void 0, void 0) + .ser(se_ListStackSetOperationResultsCommand) + .de(de_ListStackSetOperationResultsCommand) + .build() {} + __name( + _ListStackSetOperationResultsCommand, + 'ListStackSetOperationResultsCommand' + ) + var ListStackSetOperationResultsCommand = + _ListStackSetOperationResultsCommand + + // src/commands/ListStackSetOperationsCommand.ts + + var _ListStackSetOperationsCommand = class _ListStackSetOperationsCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'ListStackSetOperations', {}) + .n('CloudFormationClient', 'ListStackSetOperationsCommand') + .f(void 0, void 0) + .ser(se_ListStackSetOperationsCommand) + .de(de_ListStackSetOperationsCommand) + .build() {} + __name(_ListStackSetOperationsCommand, 'ListStackSetOperationsCommand') + var ListStackSetOperationsCommand = _ListStackSetOperationsCommand + + // src/commands/ListStackSetsCommand.ts + + var _ListStackSetsCommand = class _ListStackSetsCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'ListStackSets', {}) + .n('CloudFormationClient', 'ListStackSetsCommand') + .f(void 0, void 0) + .ser(se_ListStackSetsCommand) + .de(de_ListStackSetsCommand) + .build() {} + __name(_ListStackSetsCommand, 'ListStackSetsCommand') + var ListStackSetsCommand = _ListStackSetsCommand + + // src/commands/ListTypeRegistrationsCommand.ts + + var _ListTypeRegistrationsCommand = class _ListTypeRegistrationsCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'ListTypeRegistrations', {}) + .n('CloudFormationClient', 'ListTypeRegistrationsCommand') + .f(void 0, void 0) + .ser(se_ListTypeRegistrationsCommand) + .de(de_ListTypeRegistrationsCommand) + .build() {} + __name(_ListTypeRegistrationsCommand, 'ListTypeRegistrationsCommand') + var ListTypeRegistrationsCommand = _ListTypeRegistrationsCommand + + // src/commands/ListTypesCommand.ts + + var _ListTypesCommand = class _ListTypesCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'ListTypes', {}) + .n('CloudFormationClient', 'ListTypesCommand') + .f(void 0, void 0) + .ser(se_ListTypesCommand) + .de(de_ListTypesCommand) + .build() {} + __name(_ListTypesCommand, 'ListTypesCommand') + var ListTypesCommand = _ListTypesCommand + + // src/commands/ListTypeVersionsCommand.ts + + var _ListTypeVersionsCommand = class _ListTypeVersionsCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'ListTypeVersions', {}) + .n('CloudFormationClient', 'ListTypeVersionsCommand') + .f(void 0, void 0) + .ser(se_ListTypeVersionsCommand) + .de(de_ListTypeVersionsCommand) + .build() {} + __name(_ListTypeVersionsCommand, 'ListTypeVersionsCommand') + var ListTypeVersionsCommand = _ListTypeVersionsCommand + + // src/commands/PublishTypeCommand.ts + + var _PublishTypeCommand = class _PublishTypeCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'PublishType', {}) + .n('CloudFormationClient', 'PublishTypeCommand') + .f(void 0, void 0) + .ser(se_PublishTypeCommand) + .de(de_PublishTypeCommand) + .build() {} + __name(_PublishTypeCommand, 'PublishTypeCommand') + var PublishTypeCommand = _PublishTypeCommand + + // src/commands/RecordHandlerProgressCommand.ts + + var _RecordHandlerProgressCommand = class _RecordHandlerProgressCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'RecordHandlerProgress', {}) + .n('CloudFormationClient', 'RecordHandlerProgressCommand') + .f(void 0, void 0) + .ser(se_RecordHandlerProgressCommand) + .de(de_RecordHandlerProgressCommand) + .build() {} + __name(_RecordHandlerProgressCommand, 'RecordHandlerProgressCommand') + var RecordHandlerProgressCommand = _RecordHandlerProgressCommand + + // src/commands/RegisterPublisherCommand.ts + + var _RegisterPublisherCommand = class _RegisterPublisherCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'RegisterPublisher', {}) + .n('CloudFormationClient', 'RegisterPublisherCommand') + .f(void 0, void 0) + .ser(se_RegisterPublisherCommand) + .de(de_RegisterPublisherCommand) + .build() {} + __name(_RegisterPublisherCommand, 'RegisterPublisherCommand') + var RegisterPublisherCommand = _RegisterPublisherCommand + + // src/commands/RegisterTypeCommand.ts + + var _RegisterTypeCommand = class _RegisterTypeCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'RegisterType', {}) + .n('CloudFormationClient', 'RegisterTypeCommand') + .f(void 0, void 0) + .ser(se_RegisterTypeCommand) + .de(de_RegisterTypeCommand) + .build() {} + __name(_RegisterTypeCommand, 'RegisterTypeCommand') + var RegisterTypeCommand = _RegisterTypeCommand + + // src/commands/RollbackStackCommand.ts + + var _RollbackStackCommand = class _RollbackStackCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'RollbackStack', {}) + .n('CloudFormationClient', 'RollbackStackCommand') + .f(void 0, void 0) + .ser(se_RollbackStackCommand) + .de(de_RollbackStackCommand) + .build() {} + __name(_RollbackStackCommand, 'RollbackStackCommand') + var RollbackStackCommand = _RollbackStackCommand + + // src/commands/SetStackPolicyCommand.ts + + var _SetStackPolicyCommand = class _SetStackPolicyCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'SetStackPolicy', {}) + .n('CloudFormationClient', 'SetStackPolicyCommand') + .f(void 0, void 0) + .ser(se_SetStackPolicyCommand) + .de(de_SetStackPolicyCommand) + .build() {} + __name(_SetStackPolicyCommand, 'SetStackPolicyCommand') + var SetStackPolicyCommand = _SetStackPolicyCommand + + // src/commands/SetTypeConfigurationCommand.ts + + var _SetTypeConfigurationCommand = class _SetTypeConfigurationCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'SetTypeConfiguration', {}) + .n('CloudFormationClient', 'SetTypeConfigurationCommand') + .f(void 0, void 0) + .ser(se_SetTypeConfigurationCommand) + .de(de_SetTypeConfigurationCommand) + .build() {} + __name(_SetTypeConfigurationCommand, 'SetTypeConfigurationCommand') + var SetTypeConfigurationCommand = _SetTypeConfigurationCommand + + // src/commands/SetTypeDefaultVersionCommand.ts + + var _SetTypeDefaultVersionCommand = class _SetTypeDefaultVersionCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'SetTypeDefaultVersion', {}) + .n('CloudFormationClient', 'SetTypeDefaultVersionCommand') + .f(void 0, void 0) + .ser(se_SetTypeDefaultVersionCommand) + .de(de_SetTypeDefaultVersionCommand) + .build() {} + __name(_SetTypeDefaultVersionCommand, 'SetTypeDefaultVersionCommand') + var SetTypeDefaultVersionCommand = _SetTypeDefaultVersionCommand + + // src/commands/SignalResourceCommand.ts + + var _SignalResourceCommand = class _SignalResourceCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'SignalResource', {}) + .n('CloudFormationClient', 'SignalResourceCommand') + .f(void 0, void 0) + .ser(se_SignalResourceCommand) + .de(de_SignalResourceCommand) + .build() {} + __name(_SignalResourceCommand, 'SignalResourceCommand') + var SignalResourceCommand = _SignalResourceCommand + + // src/commands/StartResourceScanCommand.ts + + var _StartResourceScanCommand = class _StartResourceScanCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'StartResourceScan', {}) + .n('CloudFormationClient', 'StartResourceScanCommand') + .f(void 0, void 0) + .ser(se_StartResourceScanCommand) + .de(de_StartResourceScanCommand) + .build() {} + __name(_StartResourceScanCommand, 'StartResourceScanCommand') + var StartResourceScanCommand = _StartResourceScanCommand + + // src/commands/StopStackSetOperationCommand.ts + + var _StopStackSetOperationCommand = class _StopStackSetOperationCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'StopStackSetOperation', {}) + .n('CloudFormationClient', 'StopStackSetOperationCommand') + .f(void 0, void 0) + .ser(se_StopStackSetOperationCommand) + .de(de_StopStackSetOperationCommand) + .build() {} + __name(_StopStackSetOperationCommand, 'StopStackSetOperationCommand') + var StopStackSetOperationCommand = _StopStackSetOperationCommand + + // src/commands/TestTypeCommand.ts + + var _TestTypeCommand = class _TestTypeCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'TestType', {}) + .n('CloudFormationClient', 'TestTypeCommand') + .f(void 0, void 0) + .ser(se_TestTypeCommand) + .de(de_TestTypeCommand) + .build() {} + __name(_TestTypeCommand, 'TestTypeCommand') + var TestTypeCommand = _TestTypeCommand + + // src/commands/UpdateGeneratedTemplateCommand.ts + + var _UpdateGeneratedTemplateCommand = class _UpdateGeneratedTemplateCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'UpdateGeneratedTemplate', {}) + .n('CloudFormationClient', 'UpdateGeneratedTemplateCommand') + .f(void 0, void 0) + .ser(se_UpdateGeneratedTemplateCommand) + .de(de_UpdateGeneratedTemplateCommand) + .build() {} + __name(_UpdateGeneratedTemplateCommand, 'UpdateGeneratedTemplateCommand') + var UpdateGeneratedTemplateCommand = _UpdateGeneratedTemplateCommand + + // src/commands/UpdateStackCommand.ts + + var _UpdateStackCommand = class _UpdateStackCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'UpdateStack', {}) + .n('CloudFormationClient', 'UpdateStackCommand') + .f(void 0, void 0) + .ser(se_UpdateStackCommand) + .de(de_UpdateStackCommand) + .build() {} + __name(_UpdateStackCommand, 'UpdateStackCommand') + var UpdateStackCommand = _UpdateStackCommand + + // src/commands/UpdateStackInstancesCommand.ts + + var _UpdateStackInstancesCommand = class _UpdateStackInstancesCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'UpdateStackInstances', {}) + .n('CloudFormationClient', 'UpdateStackInstancesCommand') + .f(void 0, void 0) + .ser(se_UpdateStackInstancesCommand) + .de(de_UpdateStackInstancesCommand) + .build() {} + __name(_UpdateStackInstancesCommand, 'UpdateStackInstancesCommand') + var UpdateStackInstancesCommand = _UpdateStackInstancesCommand + + // src/commands/UpdateStackSetCommand.ts + + var _UpdateStackSetCommand = class _UpdateStackSetCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'UpdateStackSet', {}) + .n('CloudFormationClient', 'UpdateStackSetCommand') + .f(void 0, void 0) + .ser(se_UpdateStackSetCommand) + .de(de_UpdateStackSetCommand) + .build() {} + __name(_UpdateStackSetCommand, 'UpdateStackSetCommand') + var UpdateStackSetCommand = _UpdateStackSetCommand + + // src/commands/UpdateTerminationProtectionCommand.ts + + var _UpdateTerminationProtectionCommand = class _UpdateTerminationProtectionCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'UpdateTerminationProtection', {}) + .n('CloudFormationClient', 'UpdateTerminationProtectionCommand') + .f(void 0, void 0) + .ser(se_UpdateTerminationProtectionCommand) + .de(de_UpdateTerminationProtectionCommand) + .build() {} + __name( + _UpdateTerminationProtectionCommand, + 'UpdateTerminationProtectionCommand' + ) + var UpdateTerminationProtectionCommand = + _UpdateTerminationProtectionCommand + + // src/commands/ValidateTemplateCommand.ts + + var _ValidateTemplateCommand = class _ValidateTemplateCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('CloudFormation', 'ValidateTemplate', {}) + .n('CloudFormationClient', 'ValidateTemplateCommand') + .f(void 0, void 0) + .ser(se_ValidateTemplateCommand) + .de(de_ValidateTemplateCommand) + .build() {} + __name(_ValidateTemplateCommand, 'ValidateTemplateCommand') + var ValidateTemplateCommand = _ValidateTemplateCommand + + // src/CloudFormation.ts + var commands = { + ActivateOrganizationsAccessCommand, + ActivateTypeCommand, + BatchDescribeTypeConfigurationsCommand, + CancelUpdateStackCommand, + ContinueUpdateRollbackCommand, + CreateChangeSetCommand, + CreateGeneratedTemplateCommand, + CreateStackCommand, + CreateStackInstancesCommand, + CreateStackSetCommand, + DeactivateOrganizationsAccessCommand, + DeactivateTypeCommand, + DeleteChangeSetCommand, + DeleteGeneratedTemplateCommand, + DeleteStackCommand, + DeleteStackInstancesCommand, + DeleteStackSetCommand, + DeregisterTypeCommand, + DescribeAccountLimitsCommand, + DescribeChangeSetCommand, + DescribeChangeSetHooksCommand, + DescribeGeneratedTemplateCommand, + DescribeOrganizationsAccessCommand, + DescribePublisherCommand, + DescribeResourceScanCommand, + DescribeStackDriftDetectionStatusCommand, + DescribeStackEventsCommand, + DescribeStackInstanceCommand, + DescribeStackResourceCommand, + DescribeStackResourceDriftsCommand, + DescribeStackResourcesCommand, + DescribeStacksCommand, + DescribeStackSetCommand, + DescribeStackSetOperationCommand, + DescribeTypeCommand, + DescribeTypeRegistrationCommand, + DetectStackDriftCommand, + DetectStackResourceDriftCommand, + DetectStackSetDriftCommand, + EstimateTemplateCostCommand, + ExecuteChangeSetCommand, + GetGeneratedTemplateCommand, + GetStackPolicyCommand, + GetTemplateCommand, + GetTemplateSummaryCommand, + ImportStacksToStackSetCommand, + ListChangeSetsCommand, + ListExportsCommand, + ListGeneratedTemplatesCommand, + ListImportsCommand, + ListResourceScanRelatedResourcesCommand, + ListResourceScanResourcesCommand, + ListResourceScansCommand, + ListStackInstanceResourceDriftsCommand, + ListStackInstancesCommand, + ListStackResourcesCommand, + ListStacksCommand, + ListStackSetAutoDeploymentTargetsCommand, + ListStackSetOperationResultsCommand, + ListStackSetOperationsCommand, + ListStackSetsCommand, + ListTypeRegistrationsCommand, + ListTypesCommand, + ListTypeVersionsCommand, + PublishTypeCommand, + RecordHandlerProgressCommand, + RegisterPublisherCommand, + RegisterTypeCommand, + RollbackStackCommand, + SetStackPolicyCommand, + SetTypeConfigurationCommand, + SetTypeDefaultVersionCommand, + SignalResourceCommand, + StartResourceScanCommand, + StopStackSetOperationCommand, + TestTypeCommand, + UpdateGeneratedTemplateCommand, + UpdateStackCommand, + UpdateStackInstancesCommand, + UpdateStackSetCommand, + UpdateTerminationProtectionCommand, + ValidateTemplateCommand + } + var _CloudFormation = class _CloudFormation extends CloudFormationClient {} + __name(_CloudFormation, 'CloudFormation') + var CloudFormation = _CloudFormation + ;(0, import_smithy_client.createAggregatedClient)( + commands, + CloudFormation + ) + + // src/pagination/DescribeAccountLimitsPaginator.ts + + var paginateDescribeAccountLimits = (0, import_core.createPaginator)( + CloudFormationClient, + DescribeAccountLimitsCommand, + 'NextToken', + 'NextToken', + '' + ) + + // src/pagination/DescribeStackEventsPaginator.ts + + var paginateDescribeStackEvents = (0, import_core.createPaginator)( + CloudFormationClient, + DescribeStackEventsCommand, + 'NextToken', + 'NextToken', + '' + ) + + // src/pagination/DescribeStackResourceDriftsPaginator.ts + + var paginateDescribeStackResourceDrifts = (0, + import_core.createPaginator)( + CloudFormationClient, + DescribeStackResourceDriftsCommand, + 'NextToken', + 'NextToken', + 'MaxResults' + ) + + // src/pagination/DescribeStacksPaginator.ts + + var paginateDescribeStacks = (0, import_core.createPaginator)( + CloudFormationClient, + DescribeStacksCommand, + 'NextToken', + 'NextToken', + '' + ) + + // src/pagination/ListChangeSetsPaginator.ts + + var paginateListChangeSets = (0, import_core.createPaginator)( + CloudFormationClient, + ListChangeSetsCommand, + 'NextToken', + 'NextToken', + '' + ) + + // src/pagination/ListExportsPaginator.ts + + var paginateListExports = (0, import_core.createPaginator)( + CloudFormationClient, + ListExportsCommand, + 'NextToken', + 'NextToken', + '' + ) + + // src/pagination/ListGeneratedTemplatesPaginator.ts + + var paginateListGeneratedTemplates = (0, import_core.createPaginator)( + CloudFormationClient, + ListGeneratedTemplatesCommand, + 'NextToken', + 'NextToken', + 'MaxResults' + ) + + // src/pagination/ListImportsPaginator.ts + + var paginateListImports = (0, import_core.createPaginator)( + CloudFormationClient, + ListImportsCommand, + 'NextToken', + 'NextToken', + '' + ) + + // src/pagination/ListResourceScanRelatedResourcesPaginator.ts + + var paginateListResourceScanRelatedResources = (0, + import_core.createPaginator)( + CloudFormationClient, + ListResourceScanRelatedResourcesCommand, + 'NextToken', + 'NextToken', + 'MaxResults' + ) + + // src/pagination/ListResourceScanResourcesPaginator.ts + + var paginateListResourceScanResources = (0, import_core.createPaginator)( + CloudFormationClient, + ListResourceScanResourcesCommand, + 'NextToken', + 'NextToken', + 'MaxResults' + ) + + // src/pagination/ListResourceScansPaginator.ts + + var paginateListResourceScans = (0, import_core.createPaginator)( + CloudFormationClient, + ListResourceScansCommand, + 'NextToken', + 'NextToken', + 'MaxResults' + ) + + // src/pagination/ListStackInstancesPaginator.ts + + var paginateListStackInstances = (0, import_core.createPaginator)( + CloudFormationClient, + ListStackInstancesCommand, + 'NextToken', + 'NextToken', + 'MaxResults' + ) + + // src/pagination/ListStackResourcesPaginator.ts + + var paginateListStackResources = (0, import_core.createPaginator)( + CloudFormationClient, + ListStackResourcesCommand, + 'NextToken', + 'NextToken', + '' + ) + + // src/pagination/ListStackSetOperationResultsPaginator.ts + + var paginateListStackSetOperationResults = (0, + import_core.createPaginator)( + CloudFormationClient, + ListStackSetOperationResultsCommand, + 'NextToken', + 'NextToken', + 'MaxResults' + ) + + // src/pagination/ListStackSetOperationsPaginator.ts + + var paginateListStackSetOperations = (0, import_core.createPaginator)( + CloudFormationClient, + ListStackSetOperationsCommand, + 'NextToken', + 'NextToken', + 'MaxResults' + ) + + // src/pagination/ListStackSetsPaginator.ts + + var paginateListStackSets = (0, import_core.createPaginator)( + CloudFormationClient, + ListStackSetsCommand, + 'NextToken', + 'NextToken', + 'MaxResults' + ) + + // src/pagination/ListStacksPaginator.ts + + var paginateListStacks = (0, import_core.createPaginator)( + CloudFormationClient, + ListStacksCommand, + 'NextToken', + 'NextToken', + '' + ) + + // src/pagination/ListTypeRegistrationsPaginator.ts + + var paginateListTypeRegistrations = (0, import_core.createPaginator)( + CloudFormationClient, + ListTypeRegistrationsCommand, + 'NextToken', + 'NextToken', + 'MaxResults' + ) + + // src/pagination/ListTypeVersionsPaginator.ts + + var paginateListTypeVersions = (0, import_core.createPaginator)( + CloudFormationClient, + ListTypeVersionsCommand, + 'NextToken', + 'NextToken', + 'MaxResults' + ) + + // src/pagination/ListTypesPaginator.ts + + var paginateListTypes = (0, import_core.createPaginator)( + CloudFormationClient, + ListTypesCommand, + 'NextToken', + 'NextToken', + 'MaxResults' + ) + + // src/waiters/waitForChangeSetCreateComplete.ts + var import_util_waiter = __nccwpck_require__(78011) + var checkState = /* @__PURE__ */ __name(async (client, input) => { + let reason + try { + const result = await client.send(new DescribeChangeSetCommand(input)) + reason = result + try { + const returnComparator = /* @__PURE__ */ __name(() => { + return result.Status + }, 'returnComparator') + if (returnComparator() === 'CREATE_COMPLETE') { + return { state: import_util_waiter.WaiterState.SUCCESS, reason } + } + } catch (e) {} + try { + const returnComparator = /* @__PURE__ */ __name(() => { + return result.Status + }, 'returnComparator') + if (returnComparator() === 'FAILED') { + return { state: import_util_waiter.WaiterState.FAILURE, reason } + } + } catch (e) {} + } catch (exception) { + reason = exception + if (exception.name && exception.name == 'ValidationError') { + return { state: import_util_waiter.WaiterState.FAILURE, reason } + } + } + return { state: import_util_waiter.WaiterState.RETRY, reason } + }, 'checkState') + var waitForChangeSetCreateComplete = /* @__PURE__ */ __name( + async (params, input) => { + const serviceDefaults = { minDelay: 30, maxDelay: 120 } + return (0, import_util_waiter.createWaiter)( + { ...serviceDefaults, ...params }, + input, + checkState + ) + }, + 'waitForChangeSetCreateComplete' + ) + var waitUntilChangeSetCreateComplete = /* @__PURE__ */ __name( + async (params, input) => { + const serviceDefaults = { minDelay: 30, maxDelay: 120 } + const result = await (0, import_util_waiter.createWaiter)( + { ...serviceDefaults, ...params }, + input, + checkState + ) + return (0, import_util_waiter.checkExceptions)(result) + }, + 'waitUntilChangeSetCreateComplete' + ) + + // src/waiters/waitForStackCreateComplete.ts + + var checkState2 = /* @__PURE__ */ __name(async (client, input) => { + let reason + try { + const result = await client.send(new DescribeStacksCommand(input)) + reason = result + try { + const returnComparator = /* @__PURE__ */ __name(() => { + const flat_1 = [].concat(...result.Stacks) + const projection_3 = flat_1.map(element_2 => { + return element_2.StackStatus + }) + return projection_3 + }, 'returnComparator') + let allStringEq_5 = returnComparator().length > 0 + for (const element_4 of returnComparator()) { + allStringEq_5 = allStringEq_5 && element_4 == 'CREATE_COMPLETE' + } + if (allStringEq_5) { + return { state: import_util_waiter.WaiterState.SUCCESS, reason } + } + } catch (e) {} + try { + const returnComparator = /* @__PURE__ */ __name(() => { + const flat_1 = [].concat(...result.Stacks) + const projection_3 = flat_1.map(element_2 => { + return element_2.StackStatus + }) + return projection_3 + }, 'returnComparator') + let allStringEq_5 = returnComparator().length > 0 + for (const element_4 of returnComparator()) { + allStringEq_5 = allStringEq_5 && element_4 == 'UPDATE_COMPLETE' + } + if (allStringEq_5) { + return { state: import_util_waiter.WaiterState.SUCCESS, reason } + } + } catch (e) {} + try { + const returnComparator = /* @__PURE__ */ __name(() => { + const flat_1 = [].concat(...result.Stacks) + const projection_3 = flat_1.map(element_2 => { + return element_2.StackStatus + }) + return projection_3 + }, 'returnComparator') + let allStringEq_5 = returnComparator().length > 0 + for (const element_4 of returnComparator()) { + allStringEq_5 = allStringEq_5 && element_4 == 'UPDATE_IN_PROGRESS' + } + if (allStringEq_5) { + return { state: import_util_waiter.WaiterState.SUCCESS, reason } + } + } catch (e) {} + try { + const returnComparator = /* @__PURE__ */ __name(() => { + const flat_1 = [].concat(...result.Stacks) + const projection_3 = flat_1.map(element_2 => { + return element_2.StackStatus + }) + return projection_3 + }, 'returnComparator') + let allStringEq_5 = returnComparator().length > 0 + for (const element_4 of returnComparator()) { + allStringEq_5 = + allStringEq_5 && + element_4 == 'UPDATE_COMPLETE_CLEANUP_IN_PROGRESS' + } + if (allStringEq_5) { + return { state: import_util_waiter.WaiterState.SUCCESS, reason } + } + } catch (e) {} + try { + const returnComparator = /* @__PURE__ */ __name(() => { + const flat_1 = [].concat(...result.Stacks) + const projection_3 = flat_1.map(element_2 => { + return element_2.StackStatus + }) + return projection_3 + }, 'returnComparator') + let allStringEq_5 = returnComparator().length > 0 + for (const element_4 of returnComparator()) { + allStringEq_5 = allStringEq_5 && element_4 == 'UPDATE_FAILED' + } + if (allStringEq_5) { + return { state: import_util_waiter.WaiterState.SUCCESS, reason } + } + } catch (e) {} + try { + const returnComparator = /* @__PURE__ */ __name(() => { + const flat_1 = [].concat(...result.Stacks) + const projection_3 = flat_1.map(element_2 => { + return element_2.StackStatus + }) + return projection_3 + }, 'returnComparator') + let allStringEq_5 = returnComparator().length > 0 + for (const element_4 of returnComparator()) { + allStringEq_5 = + allStringEq_5 && element_4 == 'UPDATE_ROLLBACK_IN_PROGRESS' + } + if (allStringEq_5) { + return { state: import_util_waiter.WaiterState.SUCCESS, reason } + } + } catch (e) {} + try { + const returnComparator = /* @__PURE__ */ __name(() => { + const flat_1 = [].concat(...result.Stacks) + const projection_3 = flat_1.map(element_2 => { + return element_2.StackStatus + }) + return projection_3 + }, 'returnComparator') + let allStringEq_5 = returnComparator().length > 0 + for (const element_4 of returnComparator()) { + allStringEq_5 = + allStringEq_5 && element_4 == 'UPDATE_ROLLBACK_FAILED' + } + if (allStringEq_5) { + return { state: import_util_waiter.WaiterState.SUCCESS, reason } + } + } catch (e) {} + try { + const returnComparator = /* @__PURE__ */ __name(() => { + const flat_1 = [].concat(...result.Stacks) + const projection_3 = flat_1.map(element_2 => { + return element_2.StackStatus + }) + return projection_3 + }, 'returnComparator') + let allStringEq_5 = returnComparator().length > 0 + for (const element_4 of returnComparator()) { + allStringEq_5 = + allStringEq_5 && + element_4 == 'UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS' + } + if (allStringEq_5) { + return { state: import_util_waiter.WaiterState.SUCCESS, reason } + } + } catch (e) {} + try { + const returnComparator = /* @__PURE__ */ __name(() => { + const flat_1 = [].concat(...result.Stacks) + const projection_3 = flat_1.map(element_2 => { + return element_2.StackStatus + }) + return projection_3 + }, 'returnComparator') + let allStringEq_5 = returnComparator().length > 0 + for (const element_4 of returnComparator()) { + allStringEq_5 = + allStringEq_5 && element_4 == 'UPDATE_ROLLBACK_COMPLETE' + } + if (allStringEq_5) { + return { state: import_util_waiter.WaiterState.SUCCESS, reason } + } + } catch (e) {} + try { + const returnComparator = /* @__PURE__ */ __name(() => { + const flat_1 = [].concat(...result.Stacks) + const projection_3 = flat_1.map(element_2 => { + return element_2.StackStatus + }) + return projection_3 + }, 'returnComparator') + for (const anyStringEq_4 of returnComparator()) { + if (anyStringEq_4 == 'CREATE_FAILED') { + return { state: import_util_waiter.WaiterState.FAILURE, reason } + } + } + } catch (e) {} + try { + const returnComparator = /* @__PURE__ */ __name(() => { + const flat_1 = [].concat(...result.Stacks) + const projection_3 = flat_1.map(element_2 => { + return element_2.StackStatus + }) + return projection_3 + }, 'returnComparator') + for (const anyStringEq_4 of returnComparator()) { + if (anyStringEq_4 == 'DELETE_COMPLETE') { + return { state: import_util_waiter.WaiterState.FAILURE, reason } + } + } + } catch (e) {} + try { + const returnComparator = /* @__PURE__ */ __name(() => { + const flat_1 = [].concat(...result.Stacks) + const projection_3 = flat_1.map(element_2 => { + return element_2.StackStatus + }) + return projection_3 + }, 'returnComparator') + for (const anyStringEq_4 of returnComparator()) { + if (anyStringEq_4 == 'DELETE_FAILED') { + return { state: import_util_waiter.WaiterState.FAILURE, reason } + } + } + } catch (e) {} + try { + const returnComparator = /* @__PURE__ */ __name(() => { + const flat_1 = [].concat(...result.Stacks) + const projection_3 = flat_1.map(element_2 => { + return element_2.StackStatus + }) + return projection_3 + }, 'returnComparator') + for (const anyStringEq_4 of returnComparator()) { + if (anyStringEq_4 == 'ROLLBACK_FAILED') { + return { state: import_util_waiter.WaiterState.FAILURE, reason } + } + } + } catch (e) {} + try { + const returnComparator = /* @__PURE__ */ __name(() => { + const flat_1 = [].concat(...result.Stacks) + const projection_3 = flat_1.map(element_2 => { + return element_2.StackStatus + }) + return projection_3 + }, 'returnComparator') + for (const anyStringEq_4 of returnComparator()) { + if (anyStringEq_4 == 'ROLLBACK_COMPLETE') { + return { state: import_util_waiter.WaiterState.FAILURE, reason } + } + } + } catch (e) {} + } catch (exception) { + reason = exception + if (exception.name && exception.name == 'ValidationError') { + return { state: import_util_waiter.WaiterState.FAILURE, reason } + } + } + return { state: import_util_waiter.WaiterState.RETRY, reason } + }, 'checkState') + var waitForStackCreateComplete = /* @__PURE__ */ __name( + async (params, input) => { + const serviceDefaults = { minDelay: 30, maxDelay: 120 } + return (0, import_util_waiter.createWaiter)( + { ...serviceDefaults, ...params }, + input, + checkState2 + ) + }, + 'waitForStackCreateComplete' + ) + var waitUntilStackCreateComplete = /* @__PURE__ */ __name( + async (params, input) => { + const serviceDefaults = { minDelay: 30, maxDelay: 120 } + const result = await (0, import_util_waiter.createWaiter)( + { ...serviceDefaults, ...params }, + input, + checkState2 + ) + return (0, import_util_waiter.checkExceptions)(result) + }, + 'waitUntilStackCreateComplete' + ) + + // src/waiters/waitForStackDeleteComplete.ts + + var checkState3 = /* @__PURE__ */ __name(async (client, input) => { + let reason + try { + const result = await client.send(new DescribeStacksCommand(input)) + reason = result + try { + const returnComparator = /* @__PURE__ */ __name(() => { + const flat_1 = [].concat(...result.Stacks) + const projection_3 = flat_1.map(element_2 => { + return element_2.StackStatus + }) + return projection_3 + }, 'returnComparator') + let allStringEq_5 = returnComparator().length > 0 + for (const element_4 of returnComparator()) { + allStringEq_5 = allStringEq_5 && element_4 == 'DELETE_COMPLETE' + } + if (allStringEq_5) { + return { state: import_util_waiter.WaiterState.SUCCESS, reason } + } + } catch (e) {} + try { + const returnComparator = /* @__PURE__ */ __name(() => { + const flat_1 = [].concat(...result.Stacks) + const projection_3 = flat_1.map(element_2 => { + return element_2.StackStatus + }) + return projection_3 + }, 'returnComparator') + for (const anyStringEq_4 of returnComparator()) { + if (anyStringEq_4 == 'DELETE_FAILED') { + return { state: import_util_waiter.WaiterState.FAILURE, reason } + } + } + } catch (e) {} + try { + const returnComparator = /* @__PURE__ */ __name(() => { + const flat_1 = [].concat(...result.Stacks) + const projection_3 = flat_1.map(element_2 => { + return element_2.StackStatus + }) + return projection_3 + }, 'returnComparator') + for (const anyStringEq_4 of returnComparator()) { + if (anyStringEq_4 == 'CREATE_FAILED') { + return { state: import_util_waiter.WaiterState.FAILURE, reason } + } + } + } catch (e) {} + try { + const returnComparator = /* @__PURE__ */ __name(() => { + const flat_1 = [].concat(...result.Stacks) + const projection_3 = flat_1.map(element_2 => { + return element_2.StackStatus + }) + return projection_3 + }, 'returnComparator') + for (const anyStringEq_4 of returnComparator()) { + if (anyStringEq_4 == 'ROLLBACK_FAILED') { + return { state: import_util_waiter.WaiterState.FAILURE, reason } + } + } + } catch (e) {} + try { + const returnComparator = /* @__PURE__ */ __name(() => { + const flat_1 = [].concat(...result.Stacks) + const projection_3 = flat_1.map(element_2 => { + return element_2.StackStatus + }) + return projection_3 + }, 'returnComparator') + for (const anyStringEq_4 of returnComparator()) { + if (anyStringEq_4 == 'UPDATE_ROLLBACK_IN_PROGRESS') { + return { state: import_util_waiter.WaiterState.FAILURE, reason } + } + } + } catch (e) {} + try { + const returnComparator = /* @__PURE__ */ __name(() => { + const flat_1 = [].concat(...result.Stacks) + const projection_3 = flat_1.map(element_2 => { + return element_2.StackStatus + }) + return projection_3 + }, 'returnComparator') + for (const anyStringEq_4 of returnComparator()) { + if (anyStringEq_4 == 'UPDATE_ROLLBACK_FAILED') { + return { state: import_util_waiter.WaiterState.FAILURE, reason } + } + } + } catch (e) {} + try { + const returnComparator = /* @__PURE__ */ __name(() => { + const flat_1 = [].concat(...result.Stacks) + const projection_3 = flat_1.map(element_2 => { + return element_2.StackStatus + }) + return projection_3 + }, 'returnComparator') + for (const anyStringEq_4 of returnComparator()) { + if (anyStringEq_4 == 'UPDATE_ROLLBACK_COMPLETE') { + return { state: import_util_waiter.WaiterState.FAILURE, reason } + } + } + } catch (e) {} + try { + const returnComparator = /* @__PURE__ */ __name(() => { + const flat_1 = [].concat(...result.Stacks) + const projection_3 = flat_1.map(element_2 => { + return element_2.StackStatus + }) + return projection_3 + }, 'returnComparator') + for (const anyStringEq_4 of returnComparator()) { + if (anyStringEq_4 == 'UPDATE_COMPLETE') { + return { state: import_util_waiter.WaiterState.FAILURE, reason } + } + } + } catch (e) {} + } catch (exception) { + reason = exception + if (exception.name && exception.name == 'ValidationError') { + return { state: import_util_waiter.WaiterState.SUCCESS, reason } + } + } + return { state: import_util_waiter.WaiterState.RETRY, reason } + }, 'checkState') + var waitForStackDeleteComplete = /* @__PURE__ */ __name( + async (params, input) => { + const serviceDefaults = { minDelay: 30, maxDelay: 120 } + return (0, import_util_waiter.createWaiter)( + { ...serviceDefaults, ...params }, + input, + checkState3 + ) + }, + 'waitForStackDeleteComplete' + ) + var waitUntilStackDeleteComplete = /* @__PURE__ */ __name( + async (params, input) => { + const serviceDefaults = { minDelay: 30, maxDelay: 120 } + const result = await (0, import_util_waiter.createWaiter)( + { ...serviceDefaults, ...params }, + input, + checkState3 + ) + return (0, import_util_waiter.checkExceptions)(result) + }, + 'waitUntilStackDeleteComplete' + ) + + // src/waiters/waitForStackExists.ts + + var checkState4 = /* @__PURE__ */ __name(async (client, input) => { + let reason + try { + const result = await client.send(new DescribeStacksCommand(input)) + reason = result + return { state: import_util_waiter.WaiterState.SUCCESS, reason } + } catch (exception) { + reason = exception + if (exception.name && exception.name == 'ValidationError') { + return { state: import_util_waiter.WaiterState.RETRY, reason } + } + } + return { state: import_util_waiter.WaiterState.RETRY, reason } + }, 'checkState') + var waitForStackExists = /* @__PURE__ */ __name(async (params, input) => { + const serviceDefaults = { minDelay: 5, maxDelay: 120 } + return (0, import_util_waiter.createWaiter)( + { ...serviceDefaults, ...params }, + input, + checkState4 + ) + }, 'waitForStackExists') + var waitUntilStackExists = /* @__PURE__ */ __name( + async (params, input) => { + const serviceDefaults = { minDelay: 5, maxDelay: 120 } + const result = await (0, import_util_waiter.createWaiter)( + { ...serviceDefaults, ...params }, + input, + checkState4 + ) + return (0, import_util_waiter.checkExceptions)(result) + }, + 'waitUntilStackExists' + ) + + // src/waiters/waitForStackImportComplete.ts + + var checkState5 = /* @__PURE__ */ __name(async (client, input) => { + let reason + try { + const result = await client.send(new DescribeStacksCommand(input)) + reason = result + try { + const returnComparator = /* @__PURE__ */ __name(() => { + const flat_1 = [].concat(...result.Stacks) + const projection_3 = flat_1.map(element_2 => { + return element_2.StackStatus + }) + return projection_3 + }, 'returnComparator') + let allStringEq_5 = returnComparator().length > 0 + for (const element_4 of returnComparator()) { + allStringEq_5 = allStringEq_5 && element_4 == 'IMPORT_COMPLETE' + } + if (allStringEq_5) { + return { state: import_util_waiter.WaiterState.SUCCESS, reason } + } + } catch (e) {} + try { + const returnComparator = /* @__PURE__ */ __name(() => { + const flat_1 = [].concat(...result.Stacks) + const projection_3 = flat_1.map(element_2 => { + return element_2.StackStatus + }) + return projection_3 + }, 'returnComparator') + for (const anyStringEq_4 of returnComparator()) { + if (anyStringEq_4 == 'ROLLBACK_COMPLETE') { + return { state: import_util_waiter.WaiterState.FAILURE, reason } + } + } + } catch (e) {} + try { + const returnComparator = /* @__PURE__ */ __name(() => { + const flat_1 = [].concat(...result.Stacks) + const projection_3 = flat_1.map(element_2 => { + return element_2.StackStatus + }) + return projection_3 + }, 'returnComparator') + for (const anyStringEq_4 of returnComparator()) { + if (anyStringEq_4 == 'ROLLBACK_FAILED') { + return { state: import_util_waiter.WaiterState.FAILURE, reason } + } + } + } catch (e) {} + try { + const returnComparator = /* @__PURE__ */ __name(() => { + const flat_1 = [].concat(...result.Stacks) + const projection_3 = flat_1.map(element_2 => { + return element_2.StackStatus + }) + return projection_3 + }, 'returnComparator') + for (const anyStringEq_4 of returnComparator()) { + if (anyStringEq_4 == 'IMPORT_ROLLBACK_IN_PROGRESS') { + return { state: import_util_waiter.WaiterState.FAILURE, reason } + } + } + } catch (e) {} + try { + const returnComparator = /* @__PURE__ */ __name(() => { + const flat_1 = [].concat(...result.Stacks) + const projection_3 = flat_1.map(element_2 => { + return element_2.StackStatus + }) + return projection_3 + }, 'returnComparator') + for (const anyStringEq_4 of returnComparator()) { + if (anyStringEq_4 == 'IMPORT_ROLLBACK_FAILED') { + return { state: import_util_waiter.WaiterState.FAILURE, reason } + } + } + } catch (e) {} + try { + const returnComparator = /* @__PURE__ */ __name(() => { + const flat_1 = [].concat(...result.Stacks) + const projection_3 = flat_1.map(element_2 => { + return element_2.StackStatus + }) + return projection_3 + }, 'returnComparator') + for (const anyStringEq_4 of returnComparator()) { + if (anyStringEq_4 == 'IMPORT_ROLLBACK_COMPLETE') { + return { state: import_util_waiter.WaiterState.FAILURE, reason } + } + } + } catch (e) {} + } catch (exception) { + reason = exception + if (exception.name && exception.name == 'ValidationError') { + return { state: import_util_waiter.WaiterState.FAILURE, reason } + } + } + return { state: import_util_waiter.WaiterState.RETRY, reason } + }, 'checkState') + var waitForStackImportComplete = /* @__PURE__ */ __name( + async (params, input) => { + const serviceDefaults = { minDelay: 30, maxDelay: 120 } + return (0, import_util_waiter.createWaiter)( + { ...serviceDefaults, ...params }, + input, + checkState5 + ) + }, + 'waitForStackImportComplete' + ) + var waitUntilStackImportComplete = /* @__PURE__ */ __name( + async (params, input) => { + const serviceDefaults = { minDelay: 30, maxDelay: 120 } + const result = await (0, import_util_waiter.createWaiter)( + { ...serviceDefaults, ...params }, + input, + checkState5 + ) + return (0, import_util_waiter.checkExceptions)(result) + }, + 'waitUntilStackImportComplete' + ) + + // src/waiters/waitForStackRollbackComplete.ts + + var checkState6 = /* @__PURE__ */ __name(async (client, input) => { + let reason + try { + const result = await client.send(new DescribeStacksCommand(input)) + reason = result + try { + const returnComparator = /* @__PURE__ */ __name(() => { + const flat_1 = [].concat(...result.Stacks) + const projection_3 = flat_1.map(element_2 => { + return element_2.StackStatus + }) + return projection_3 + }, 'returnComparator') + let allStringEq_5 = returnComparator().length > 0 + for (const element_4 of returnComparator()) { + allStringEq_5 = + allStringEq_5 && element_4 == 'UPDATE_ROLLBACK_COMPLETE' + } + if (allStringEq_5) { + return { state: import_util_waiter.WaiterState.SUCCESS, reason } + } + } catch (e) {} + try { + const returnComparator = /* @__PURE__ */ __name(() => { + const flat_1 = [].concat(...result.Stacks) + const projection_3 = flat_1.map(element_2 => { + return element_2.StackStatus + }) + return projection_3 + }, 'returnComparator') + for (const anyStringEq_4 of returnComparator()) { + if (anyStringEq_4 == 'UPDATE_FAILED') { + return { state: import_util_waiter.WaiterState.FAILURE, reason } + } + } + } catch (e) {} + try { + const returnComparator = /* @__PURE__ */ __name(() => { + const flat_1 = [].concat(...result.Stacks) + const projection_3 = flat_1.map(element_2 => { + return element_2.StackStatus + }) + return projection_3 + }, 'returnComparator') + for (const anyStringEq_4 of returnComparator()) { + if (anyStringEq_4 == 'UPDATE_ROLLBACK_FAILED') { + return { state: import_util_waiter.WaiterState.FAILURE, reason } + } + } + } catch (e) {} + try { + const returnComparator = /* @__PURE__ */ __name(() => { + const flat_1 = [].concat(...result.Stacks) + const projection_3 = flat_1.map(element_2 => { + return element_2.StackStatus + }) + return projection_3 + }, 'returnComparator') + for (const anyStringEq_4 of returnComparator()) { + if (anyStringEq_4 == 'DELETE_FAILED') { + return { state: import_util_waiter.WaiterState.FAILURE, reason } + } + } + } catch (e) {} + } catch (exception) { + reason = exception + if (exception.name && exception.name == 'ValidationError') { + return { state: import_util_waiter.WaiterState.FAILURE, reason } + } + } + return { state: import_util_waiter.WaiterState.RETRY, reason } + }, 'checkState') + var waitForStackRollbackComplete = /* @__PURE__ */ __name( + async (params, input) => { + const serviceDefaults = { minDelay: 30, maxDelay: 120 } + return (0, import_util_waiter.createWaiter)( + { ...serviceDefaults, ...params }, + input, + checkState6 + ) + }, + 'waitForStackRollbackComplete' + ) + var waitUntilStackRollbackComplete = /* @__PURE__ */ __name( + async (params, input) => { + const serviceDefaults = { minDelay: 30, maxDelay: 120 } + const result = await (0, import_util_waiter.createWaiter)( + { ...serviceDefaults, ...params }, + input, + checkState6 + ) + return (0, import_util_waiter.checkExceptions)(result) + }, + 'waitUntilStackRollbackComplete' + ) + + // src/waiters/waitForStackUpdateComplete.ts + + var checkState7 = /* @__PURE__ */ __name(async (client, input) => { + let reason + try { + const result = await client.send(new DescribeStacksCommand(input)) + reason = result + try { + const returnComparator = /* @__PURE__ */ __name(() => { + const flat_1 = [].concat(...result.Stacks) + const projection_3 = flat_1.map(element_2 => { + return element_2.StackStatus + }) + return projection_3 + }, 'returnComparator') + let allStringEq_5 = returnComparator().length > 0 + for (const element_4 of returnComparator()) { + allStringEq_5 = allStringEq_5 && element_4 == 'UPDATE_COMPLETE' + } + if (allStringEq_5) { + return { state: import_util_waiter.WaiterState.SUCCESS, reason } + } + } catch (e) {} + try { + const returnComparator = /* @__PURE__ */ __name(() => { + const flat_1 = [].concat(...result.Stacks) + const projection_3 = flat_1.map(element_2 => { + return element_2.StackStatus + }) + return projection_3 + }, 'returnComparator') + for (const anyStringEq_4 of returnComparator()) { + if (anyStringEq_4 == 'UPDATE_FAILED') { + return { state: import_util_waiter.WaiterState.FAILURE, reason } + } + } + } catch (e) {} + try { + const returnComparator = /* @__PURE__ */ __name(() => { + const flat_1 = [].concat(...result.Stacks) + const projection_3 = flat_1.map(element_2 => { + return element_2.StackStatus + }) + return projection_3 + }, 'returnComparator') + for (const anyStringEq_4 of returnComparator()) { + if (anyStringEq_4 == 'UPDATE_ROLLBACK_FAILED') { + return { state: import_util_waiter.WaiterState.FAILURE, reason } + } + } + } catch (e) {} + try { + const returnComparator = /* @__PURE__ */ __name(() => { + const flat_1 = [].concat(...result.Stacks) + const projection_3 = flat_1.map(element_2 => { + return element_2.StackStatus + }) + return projection_3 + }, 'returnComparator') + for (const anyStringEq_4 of returnComparator()) { + if (anyStringEq_4 == 'UPDATE_ROLLBACK_COMPLETE') { + return { state: import_util_waiter.WaiterState.FAILURE, reason } + } + } + } catch (e) {} + } catch (exception) { + reason = exception + if (exception.name && exception.name == 'ValidationError') { + return { state: import_util_waiter.WaiterState.FAILURE, reason } + } + } + return { state: import_util_waiter.WaiterState.RETRY, reason } + }, 'checkState') + var waitForStackUpdateComplete = /* @__PURE__ */ __name( + async (params, input) => { + const serviceDefaults = { minDelay: 30, maxDelay: 120 } + return (0, import_util_waiter.createWaiter)( + { ...serviceDefaults, ...params }, + input, + checkState7 + ) + }, + 'waitForStackUpdateComplete' + ) + var waitUntilStackUpdateComplete = /* @__PURE__ */ __name( + async (params, input) => { + const serviceDefaults = { minDelay: 30, maxDelay: 120 } + const result = await (0, import_util_waiter.createWaiter)( + { ...serviceDefaults, ...params }, + input, + checkState7 + ) + return (0, import_util_waiter.checkExceptions)(result) + }, + 'waitUntilStackUpdateComplete' + ) + + // src/waiters/waitForTypeRegistrationComplete.ts + + var checkState8 = /* @__PURE__ */ __name(async (client, input) => { + let reason + try { + const result = await client.send( + new DescribeTypeRegistrationCommand(input) + ) + reason = result + try { + const returnComparator = /* @__PURE__ */ __name(() => { + return result.ProgressStatus + }, 'returnComparator') + if (returnComparator() === 'COMPLETE') { + return { state: import_util_waiter.WaiterState.SUCCESS, reason } + } + } catch (e) {} + try { + const returnComparator = /* @__PURE__ */ __name(() => { + return result.ProgressStatus + }, 'returnComparator') + if (returnComparator() === 'FAILED') { + return { state: import_util_waiter.WaiterState.FAILURE, reason } + } + } catch (e) {} + } catch (exception) { + reason = exception + } + return { state: import_util_waiter.WaiterState.RETRY, reason } + }, 'checkState') + var waitForTypeRegistrationComplete = /* @__PURE__ */ __name( + async (params, input) => { + const serviceDefaults = { minDelay: 30, maxDelay: 120 } + return (0, import_util_waiter.createWaiter)( + { ...serviceDefaults, ...params }, + input, + checkState8 + ) + }, + 'waitForTypeRegistrationComplete' + ) + var waitUntilTypeRegistrationComplete = /* @__PURE__ */ __name( + async (params, input) => { + const serviceDefaults = { minDelay: 30, maxDelay: 120 } + const result = await (0, import_util_waiter.createWaiter)( + { ...serviceDefaults, ...params }, + input, + checkState8 + ) + return (0, import_util_waiter.checkExceptions)(result) + }, + 'waitUntilTypeRegistrationComplete' + ) + // Annotate the CommonJS export names for ESM import in node: + + 0 && 0 + + /***/ + }, + + /***/ 82643: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getRuntimeConfig = void 0 + const tslib_1 = __nccwpck_require__(4351) + const package_json_1 = tslib_1.__importDefault(__nccwpck_require__(43713)) + const core_1 = __nccwpck_require__(59963) + const credential_provider_node_1 = __nccwpck_require__(75531) + const util_user_agent_node_1 = __nccwpck_require__(98095) + const config_resolver_1 = __nccwpck_require__(53098) + const hash_node_1 = __nccwpck_require__(3081) + const middleware_retry_1 = __nccwpck_require__(96039) + const node_config_provider_1 = __nccwpck_require__(33461) + const node_http_handler_1 = __nccwpck_require__(78017) + const util_body_length_node_1 = __nccwpck_require__(68075) + const util_retry_1 = __nccwpck_require__(84902) + const runtimeConfig_shared_1 = __nccwpck_require__(37328) + const smithy_client_1 = __nccwpck_require__(63570) + const util_defaults_mode_node_1 = __nccwpck_require__(72429) + const smithy_client_2 = __nccwpck_require__(63570) + const getRuntimeConfig = config => { + ;(0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version) + const defaultsMode = (0, + util_defaults_mode_node_1.resolveDefaultsModeConfig)(config) + const defaultConfigProvider = () => + defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode) + const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)( + config + ) + ;(0, core_1.emitWarningIfUnsupportedVersion)(process.version) + return { + ...clientSharedValues, + ...config, + runtime: 'node', + defaultsMode, + bodyLengthChecker: + config?.bodyLengthChecker ?? + util_body_length_node_1.calculateBodyLength, + credentialDefaultProvider: + config?.credentialDefaultProvider ?? + credential_provider_node_1.defaultProvider, + defaultUserAgentProvider: + config?.defaultUserAgentProvider ?? + (0, util_user_agent_node_1.defaultUserAgent)({ + serviceId: clientSharedValues.serviceId, + clientVersion: package_json_1.default.version + }), + maxAttempts: + config?.maxAttempts ?? + (0, node_config_provider_1.loadConfig)( + middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS + ), + region: + config?.region ?? + (0, node_config_provider_1.loadConfig)( + config_resolver_1.NODE_REGION_CONFIG_OPTIONS, + config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS + ), + requestHandler: node_http_handler_1.NodeHttpHandler.create( + config?.requestHandler ?? defaultConfigProvider + ), + retryMode: + config?.retryMode ?? + (0, node_config_provider_1.loadConfig)({ + ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS, + default: async () => + (await defaultConfigProvider()).retryMode || + util_retry_1.DEFAULT_RETRY_MODE + }), + sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, 'sha256'), + streamCollector: + config?.streamCollector ?? node_http_handler_1.streamCollector, + useDualstackEndpoint: + config?.useDualstackEndpoint ?? + (0, node_config_provider_1.loadConfig)( + config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS + ), + useFipsEndpoint: + config?.useFipsEndpoint ?? + (0, node_config_provider_1.loadConfig)( + config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS + ) + } + } + exports.getRuntimeConfig = getRuntimeConfig + + /***/ + }, + + /***/ 37328: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getRuntimeConfig = void 0 + const core_1 = __nccwpck_require__(59963) + const smithy_client_1 = __nccwpck_require__(63570) + const url_parser_1 = __nccwpck_require__(14681) + const util_base64_1 = __nccwpck_require__(75600) + const util_utf8_1 = __nccwpck_require__(41895) + const httpAuthSchemeProvider_1 = __nccwpck_require__(74292) + const endpointResolver_1 = __nccwpck_require__(5640) + const getRuntimeConfig = config => { + return { + apiVersion: '2010-05-15', + base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64, + base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64, + disableHostPrefix: config?.disableHostPrefix ?? false, + endpointProvider: + config?.endpointProvider ?? + endpointResolver_1.defaultEndpointResolver, + extensions: config?.extensions ?? [], + httpAuthSchemeProvider: + config?.httpAuthSchemeProvider ?? + httpAuthSchemeProvider_1.defaultCloudFormationHttpAuthSchemeProvider, + httpAuthSchemes: config?.httpAuthSchemes ?? [ + { + schemeId: 'aws.auth#sigv4', + identityProvider: ipc => + ipc.getIdentityProvider('aws.auth#sigv4'), + signer: new core_1.AwsSdkSigV4Signer() + } + ], + logger: config?.logger ?? new smithy_client_1.NoOpLogger(), + serviceId: config?.serviceId ?? 'CloudFormation', + urlParser: config?.urlParser ?? url_parser_1.parseUrl, + utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8, + utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8 + } + } + exports.getRuntimeConfig = getRuntimeConfig + + /***/ + }, + + /***/ 78017: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __create = Object.create + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __getProtoOf = Object.getPrototypeOf + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toESM = (mod, isNodeMode, target) => ( + (target = mod != null ? __create(__getProtoOf(mod)) : {}), + __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule + ? __defProp(target, 'default', { value: mod, enumerable: true }) + : target, + mod + ) + ) + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + DEFAULT_REQUEST_TIMEOUT: () => DEFAULT_REQUEST_TIMEOUT, + NodeHttp2Handler: () => NodeHttp2Handler, + NodeHttpHandler: () => NodeHttpHandler, + streamCollector: () => streamCollector + }) + module.exports = __toCommonJS(src_exports) + + // src/node-http-handler.ts + var import_protocol_http = __nccwpck_require__(64418) + var import_querystring_builder = __nccwpck_require__(68031) + var import_http = __nccwpck_require__(13685) + var import_https = __nccwpck_require__(95687) + + // src/constants.ts + var NODEJS_TIMEOUT_ERROR_CODES = ['ECONNRESET', 'EPIPE', 'ETIMEDOUT'] + + // src/get-transformed-headers.ts + var getTransformedHeaders = /* @__PURE__ */ __name(headers => { + const transformedHeaders = {} + for (const name of Object.keys(headers)) { + const headerValues = headers[name] + transformedHeaders[name] = Array.isArray(headerValues) + ? headerValues.join(',') + : headerValues + } + return transformedHeaders + }, 'getTransformedHeaders') + + // src/set-connection-timeout.ts + var DEFER_EVENT_LISTENER_TIME = 1e3 + var setConnectionTimeout = /* @__PURE__ */ __name( + (request, reject, timeoutInMs = 0) => { + if (!timeoutInMs) { + return -1 + } + const registerTimeout = /* @__PURE__ */ __name(offset => { + const timeoutId = setTimeout(() => { + request.destroy() + reject( + Object.assign( + new Error( + `Socket timed out without establishing a connection within ${timeoutInMs} ms` + ), + { + name: 'TimeoutError' + } + ) + ) + }, timeoutInMs - offset) + const doWithSocket = /* @__PURE__ */ __name(socket => { + if (socket == null ? void 0 : socket.connecting) { + socket.on('connect', () => { + clearTimeout(timeoutId) + }) + } else { + clearTimeout(timeoutId) + } + }, 'doWithSocket') + if (request.socket) { + doWithSocket(request.socket) + } else { + request.on('socket', doWithSocket) + } + }, 'registerTimeout') + if (timeoutInMs < 2e3) { + registerTimeout(0) + return 0 + } + return setTimeout( + registerTimeout.bind(null, DEFER_EVENT_LISTENER_TIME), + DEFER_EVENT_LISTENER_TIME + ) + }, + 'setConnectionTimeout' + ) + + // src/set-socket-keep-alive.ts + var DEFER_EVENT_LISTENER_TIME2 = 3e3 + var setSocketKeepAlive = /* @__PURE__ */ __name( + ( + request, + { keepAlive, keepAliveMsecs }, + deferTimeMs = DEFER_EVENT_LISTENER_TIME2 + ) => { + if (keepAlive !== true) { + return -1 + } + const registerListener = /* @__PURE__ */ __name(() => { + if (request.socket) { + request.socket.setKeepAlive(keepAlive, keepAliveMsecs || 0) + } else { + request.on('socket', socket => { + socket.setKeepAlive(keepAlive, keepAliveMsecs || 0) + }) + } + }, 'registerListener') + if (deferTimeMs === 0) { + registerListener() + return 0 + } + return setTimeout(registerListener, deferTimeMs) + }, + 'setSocketKeepAlive' + ) + + // src/set-socket-timeout.ts + var DEFER_EVENT_LISTENER_TIME3 = 3e3 + var setSocketTimeout = /* @__PURE__ */ __name( + (request, reject, timeoutInMs = 0) => { + const registerTimeout = /* @__PURE__ */ __name(offset => { + request.setTimeout(timeoutInMs - offset, () => { + request.destroy() + reject( + Object.assign( + new Error(`Connection timed out after ${timeoutInMs} ms`), + { name: 'TimeoutError' } + ) + ) + }) + }, 'registerTimeout') + if (0 < timeoutInMs && timeoutInMs < 6e3) { + registerTimeout(0) + return 0 + } + return setTimeout( + registerTimeout.bind( + null, + timeoutInMs === 0 ? 0 : DEFER_EVENT_LISTENER_TIME3 + ), + DEFER_EVENT_LISTENER_TIME3 + ) + }, + 'setSocketTimeout' + ) + + // src/write-request-body.ts + var import_stream = __nccwpck_require__(12781) + var MIN_WAIT_TIME = 1e3 + async function writeRequestBody( + httpRequest, + request, + maxContinueTimeoutMs = MIN_WAIT_TIME + ) { + const headers = request.headers ?? {} + const expect = headers['Expect'] || headers['expect'] + let timeoutId = -1 + let hasError = false + if (expect === '100-continue') { + await Promise.race([ + new Promise(resolve => { + timeoutId = Number( + setTimeout( + resolve, + Math.max(MIN_WAIT_TIME, maxContinueTimeoutMs) + ) + ) + }), + new Promise(resolve => { + httpRequest.on('continue', () => { + clearTimeout(timeoutId) + resolve() + }) + httpRequest.on('error', () => { + hasError = true + clearTimeout(timeoutId) + resolve() + }) + }) + ]) + } + if (!hasError) { + writeBody(httpRequest, request.body) + } + } + __name(writeRequestBody, 'writeRequestBody') + function writeBody(httpRequest, body) { + if (body instanceof import_stream.Readable) { + body.pipe(httpRequest) + return + } + if (body) { + if (Buffer.isBuffer(body) || typeof body === 'string') { + httpRequest.end(body) + return + } + const uint8 = body + if ( + typeof uint8 === 'object' && + uint8.buffer && + typeof uint8.byteOffset === 'number' && + typeof uint8.byteLength === 'number' + ) { + httpRequest.end( + Buffer.from(uint8.buffer, uint8.byteOffset, uint8.byteLength) + ) + return + } + httpRequest.end(Buffer.from(body)) + return + } + httpRequest.end() + } + __name(writeBody, 'writeBody') + + // src/node-http-handler.ts + var DEFAULT_REQUEST_TIMEOUT = 0 + var _NodeHttpHandler = class _NodeHttpHandler { + constructor(options) { + this.socketWarningTimestamp = 0 + // Node http handler is hard-coded to http/1.1: https://github.com/nodejs/node/blob/ff5664b83b89c55e4ab5d5f60068fb457f1f5872/lib/_http_server.js#L286 + this.metadata = { handlerProtocol: 'http/1.1' } + this.configProvider = new Promise((resolve, reject) => { + if (typeof options === 'function') { + options() + .then(_options => { + resolve(this.resolveDefaultConfig(_options)) + }) + .catch(reject) + } else { + resolve(this.resolveDefaultConfig(options)) + } + }) + } + /** + * @returns the input if it is an HttpHandler of any class, + * or instantiates a new instance of this handler. + */ + static create(instanceOrOptions) { + if ( + typeof (instanceOrOptions == null + ? void 0 + : instanceOrOptions.handle) === 'function' + ) { + return instanceOrOptions + } + return new _NodeHttpHandler(instanceOrOptions) + } + /** + * @internal + * + * @param agent - http(s) agent in use by the NodeHttpHandler instance. + * @param socketWarningTimestamp - last socket usage check timestamp. + * @param logger - channel for the warning. + * @returns timestamp of last emitted warning. + */ + static checkSocketUsage( + agent, + socketWarningTimestamp, + logger = console + ) { + var _a, _b, _c + const { sockets, requests, maxSockets } = agent + if (typeof maxSockets !== 'number' || maxSockets === Infinity) { + return socketWarningTimestamp + } + const interval = 15e3 + if (Date.now() - interval < socketWarningTimestamp) { + return socketWarningTimestamp + } + if (sockets && requests) { + for (const origin in sockets) { + const socketsInUse = + ((_a = sockets[origin]) == null ? void 0 : _a.length) ?? 0 + const requestsEnqueued = + ((_b = requests[origin]) == null ? void 0 : _b.length) ?? 0 + if ( + socketsInUse >= maxSockets && + requestsEnqueued >= 2 * maxSockets + ) { + ;(_c = logger == null ? void 0 : logger.warn) == null + ? void 0 + : _c.call( + logger, + `@smithy/node-http-handler:WARN - socket usage at capacity=${socketsInUse} and ${requestsEnqueued} additional requests are enqueued. +See https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html +or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.` + ) + return Date.now() + } + } + } + return socketWarningTimestamp + } + resolveDefaultConfig(options) { + const { + requestTimeout, + connectionTimeout, + socketTimeout, + httpAgent, + httpsAgent + } = options || {} + const keepAlive = true + const maxSockets = 50 + return { + connectionTimeout, + requestTimeout: requestTimeout ?? socketTimeout, + httpAgent: (() => { + if ( + httpAgent instanceof import_http.Agent || + typeof (httpAgent == null ? void 0 : httpAgent.destroy) === + 'function' + ) { + return httpAgent + } + return new import_http.Agent({ + keepAlive, + maxSockets, + ...httpAgent + }) + })(), + httpsAgent: (() => { + if ( + httpsAgent instanceof import_https.Agent || + typeof (httpsAgent == null ? void 0 : httpsAgent.destroy) === + 'function' + ) { + return httpsAgent + } + return new import_https.Agent({ + keepAlive, + maxSockets, + ...httpsAgent + }) + })(), + logger: console + } + } + destroy() { + var _a, _b, _c, _d + ;(_b = (_a = this.config) == null ? void 0 : _a.httpAgent) == null + ? void 0 + : _b.destroy() + ;(_d = (_c = this.config) == null ? void 0 : _c.httpsAgent) == null + ? void 0 + : _d.destroy() + } + async handle(request, { abortSignal } = {}) { + if (!this.config) { + this.config = await this.configProvider + } + return new Promise((_resolve, _reject) => { + let writeRequestBodyPromise = void 0 + const timeouts = [] + const resolve = /* @__PURE__ */ __name(async arg => { + await writeRequestBodyPromise + timeouts.forEach(clearTimeout) + _resolve(arg) + }, 'resolve') + const reject = /* @__PURE__ */ __name(async arg => { + await writeRequestBodyPromise + timeouts.forEach(clearTimeout) + _reject(arg) + }, 'reject') + if (!this.config) { + throw new Error( + 'Node HTTP request handler config is not resolved' + ) + } + if (abortSignal == null ? void 0 : abortSignal.aborted) { + const abortError = new Error('Request aborted') + abortError.name = 'AbortError' + reject(abortError) + return + } + const isSSL = request.protocol === 'https:' + const agent = isSSL ? this.config.httpsAgent : this.config.httpAgent + timeouts.push( + setTimeout( + () => { + this.socketWarningTimestamp = + _NodeHttpHandler.checkSocketUsage( + agent, + this.socketWarningTimestamp, + this.config.logger + ) + }, + this.config.socketAcquisitionWarningTimeout ?? + (this.config.requestTimeout ?? 2e3) + + (this.config.connectionTimeout ?? 1e3) + ) + ) + const queryString = (0, + import_querystring_builder.buildQueryString)(request.query || {}) + let auth = void 0 + if (request.username != null || request.password != null) { + const username = request.username ?? '' + const password = request.password ?? '' + auth = `${username}:${password}` + } + let path = request.path + if (queryString) { + path += `?${queryString}` + } + if (request.fragment) { + path += `#${request.fragment}` + } + const nodeHttpsOptions = { + headers: request.headers, + host: request.hostname, + method: request.method, + path, + port: request.port, + agent, + auth + } + const requestFunc = isSSL + ? import_https.request + : import_http.request + const req = requestFunc(nodeHttpsOptions, res => { + const httpResponse = new import_protocol_http.HttpResponse({ + statusCode: res.statusCode || -1, + reason: res.statusMessage, + headers: getTransformedHeaders(res.headers), + body: res + }) + resolve({ response: httpResponse }) + }) + req.on('error', err => { + if (NODEJS_TIMEOUT_ERROR_CODES.includes(err.code)) { + reject(Object.assign(err, { name: 'TimeoutError' })) + } else { + reject(err) + } + }) + if (abortSignal) { + const onAbort = /* @__PURE__ */ __name(() => { + req.destroy() + const abortError = new Error('Request aborted') + abortError.name = 'AbortError' + reject(abortError) + }, 'onAbort') + if (typeof abortSignal.addEventListener === 'function') { + const signal = abortSignal + signal.addEventListener('abort', onAbort, { once: true }) + req.once('close', () => + signal.removeEventListener('abort', onAbort) + ) + } else { + abortSignal.onabort = onAbort + } + } + timeouts.push( + setConnectionTimeout(req, reject, this.config.connectionTimeout) + ) + timeouts.push( + setSocketTimeout(req, reject, this.config.requestTimeout) + ) + const httpAgent = nodeHttpsOptions.agent + if (typeof httpAgent === 'object' && 'keepAlive' in httpAgent) { + timeouts.push( + setSocketKeepAlive(req, { + // @ts-expect-error keepAlive is not public on httpAgent. + keepAlive: httpAgent.keepAlive, + // @ts-expect-error keepAliveMsecs is not public on httpAgent. + keepAliveMsecs: httpAgent.keepAliveMsecs + }) + ) + } + writeRequestBodyPromise = writeRequestBody( + req, + request, + this.config.requestTimeout + ).catch(e => { + timeouts.forEach(clearTimeout) + return _reject(e) + }) + }) + } + updateHttpClientConfig(key, value) { + this.config = void 0 + this.configProvider = this.configProvider.then(config => { + return { + ...config, + [key]: value + } + }) + } + httpHandlerConfigs() { + return this.config ?? {} + } + } + __name(_NodeHttpHandler, 'NodeHttpHandler') + var NodeHttpHandler = _NodeHttpHandler + + // src/node-http2-handler.ts + + var import_http22 = __nccwpck_require__(85158) + + // src/node-http2-connection-manager.ts + var import_http2 = __toESM(__nccwpck_require__(85158)) + + // src/node-http2-connection-pool.ts + var _NodeHttp2ConnectionPool = class _NodeHttp2ConnectionPool { + constructor(sessions) { + this.sessions = [] + this.sessions = sessions ?? [] + } + poll() { + if (this.sessions.length > 0) { + return this.sessions.shift() + } + } + offerLast(session) { + this.sessions.push(session) + } + contains(session) { + return this.sessions.includes(session) + } + remove(session) { + this.sessions = this.sessions.filter(s => s !== session) + } + [Symbol.iterator]() { + return this.sessions[Symbol.iterator]() + } + destroy(connection) { + for (const session of this.sessions) { + if (session === connection) { + if (!session.destroyed) { + session.destroy() + } + } + } + } + } + __name(_NodeHttp2ConnectionPool, 'NodeHttp2ConnectionPool') + var NodeHttp2ConnectionPool = _NodeHttp2ConnectionPool + + // src/node-http2-connection-manager.ts + var _NodeHttp2ConnectionManager = class _NodeHttp2ConnectionManager { + constructor(config) { + this.sessionCache = /* @__PURE__ */ new Map() + this.config = config + if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) { + throw new RangeError('maxConcurrency must be greater than zero.') + } + } + lease(requestContext, connectionConfiguration) { + const url = this.getUrlString(requestContext) + const existingPool = this.sessionCache.get(url) + if (existingPool) { + const existingSession = existingPool.poll() + if (existingSession && !this.config.disableConcurrency) { + return existingSession + } + } + const session = import_http2.default.connect(url) + if (this.config.maxConcurrency) { + session.settings( + { maxConcurrentStreams: this.config.maxConcurrency }, + err => { + if (err) { + throw new Error( + 'Fail to set maxConcurrentStreams to ' + + this.config.maxConcurrency + + 'when creating new session for ' + + requestContext.destination.toString() + ) + } + } + ) + } + session.unref() + const destroySessionCb = /* @__PURE__ */ __name(() => { + session.destroy() + this.deleteSession(url, session) + }, 'destroySessionCb') + session.on('goaway', destroySessionCb) + session.on('error', destroySessionCb) + session.on('frameError', destroySessionCb) + session.on('close', () => this.deleteSession(url, session)) + if (connectionConfiguration.requestTimeout) { + session.setTimeout( + connectionConfiguration.requestTimeout, + destroySessionCb + ) + } + const connectionPool = + this.sessionCache.get(url) || new NodeHttp2ConnectionPool() + connectionPool.offerLast(session) + this.sessionCache.set(url, connectionPool) + return session + } + /** + * Delete a session from the connection pool. + * @param authority The authority of the session to delete. + * @param session The session to delete. + */ + deleteSession(authority, session) { + const existingConnectionPool = this.sessionCache.get(authority) + if (!existingConnectionPool) { + return + } + if (!existingConnectionPool.contains(session)) { + return + } + existingConnectionPool.remove(session) + this.sessionCache.set(authority, existingConnectionPool) + } + release(requestContext, session) { + var _a + const cacheKey = this.getUrlString(requestContext) + ;(_a = this.sessionCache.get(cacheKey)) == null + ? void 0 + : _a.offerLast(session) + } + destroy() { + for (const [key, connectionPool] of this.sessionCache) { + for (const session of connectionPool) { + if (!session.destroyed) { + session.destroy() + } + connectionPool.remove(session) + } + this.sessionCache.delete(key) + } + } + setMaxConcurrentStreams(maxConcurrentStreams) { + if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) { + throw new RangeError( + 'maxConcurrentStreams must be greater than zero.' + ) + } + this.config.maxConcurrency = maxConcurrentStreams + } + setDisableConcurrentStreams(disableConcurrentStreams) { + this.config.disableConcurrency = disableConcurrentStreams + } + getUrlString(request) { + return request.destination.toString() + } + } + __name(_NodeHttp2ConnectionManager, 'NodeHttp2ConnectionManager') + var NodeHttp2ConnectionManager = _NodeHttp2ConnectionManager + + // src/node-http2-handler.ts + var _NodeHttp2Handler = class _NodeHttp2Handler { + constructor(options) { + this.metadata = { handlerProtocol: 'h2' } + this.connectionManager = new NodeHttp2ConnectionManager({}) + this.configProvider = new Promise((resolve, reject) => { + if (typeof options === 'function') { + options() + .then(opts => { + resolve(opts || {}) + }) + .catch(reject) + } else { + resolve(options || {}) + } + }) + } + /** + * @returns the input if it is an HttpHandler of any class, + * or instantiates a new instance of this handler. + */ + static create(instanceOrOptions) { + if ( + typeof (instanceOrOptions == null + ? void 0 + : instanceOrOptions.handle) === 'function' + ) { + return instanceOrOptions + } + return new _NodeHttp2Handler(instanceOrOptions) + } + destroy() { + this.connectionManager.destroy() + } + async handle(request, { abortSignal } = {}) { + if (!this.config) { + this.config = await this.configProvider + this.connectionManager.setDisableConcurrentStreams( + this.config.disableConcurrentStreams || false + ) + if (this.config.maxConcurrentStreams) { + this.connectionManager.setMaxConcurrentStreams( + this.config.maxConcurrentStreams + ) + } + } + const { requestTimeout, disableConcurrentStreams } = this.config + return new Promise((_resolve, _reject) => { + var _a + let fulfilled = false + let writeRequestBodyPromise = void 0 + const resolve = /* @__PURE__ */ __name(async arg => { + await writeRequestBodyPromise + _resolve(arg) + }, 'resolve') + const reject = /* @__PURE__ */ __name(async arg => { + await writeRequestBodyPromise + _reject(arg) + }, 'reject') + if (abortSignal == null ? void 0 : abortSignal.aborted) { + fulfilled = true + const abortError = new Error('Request aborted') + abortError.name = 'AbortError' + reject(abortError) + return + } + const { hostname, method, port, protocol, query } = request + let auth = '' + if (request.username != null || request.password != null) { + const username = request.username ?? '' + const password = request.password ?? '' + auth = `${username}:${password}@` + } + const authority = `${protocol}//${auth}${hostname}${port ? `:${port}` : ''}` + const requestContext = { destination: new URL(authority) } + const session = this.connectionManager.lease(requestContext, { + requestTimeout: + (_a = this.config) == null ? void 0 : _a.sessionTimeout, + disableConcurrentStreams: disableConcurrentStreams || false + }) + const rejectWithDestroy = /* @__PURE__ */ __name(err => { + if (disableConcurrentStreams) { + this.destroySession(session) + } + fulfilled = true + reject(err) + }, 'rejectWithDestroy') + const queryString = (0, + import_querystring_builder.buildQueryString)(query || {}) + let path = request.path + if (queryString) { + path += `?${queryString}` + } + if (request.fragment) { + path += `#${request.fragment}` + } + const req = session.request({ + ...request.headers, + [import_http22.constants.HTTP2_HEADER_PATH]: path, + [import_http22.constants.HTTP2_HEADER_METHOD]: method + }) + session.ref() + req.on('response', headers => { + const httpResponse = new import_protocol_http.HttpResponse({ + statusCode: headers[':status'] || -1, + headers: getTransformedHeaders(headers), + body: req + }) + fulfilled = true + resolve({ response: httpResponse }) + if (disableConcurrentStreams) { + session.close() + this.connectionManager.deleteSession(authority, session) + } + }) + if (requestTimeout) { + req.setTimeout(requestTimeout, () => { + req.close() + const timeoutError = new Error( + `Stream timed out because of no activity for ${requestTimeout} ms` + ) + timeoutError.name = 'TimeoutError' + rejectWithDestroy(timeoutError) + }) + } + if (abortSignal) { + const onAbort = /* @__PURE__ */ __name(() => { + req.close() + const abortError = new Error('Request aborted') + abortError.name = 'AbortError' + rejectWithDestroy(abortError) + }, 'onAbort') + if (typeof abortSignal.addEventListener === 'function') { + const signal = abortSignal + signal.addEventListener('abort', onAbort, { once: true }) + req.once('close', () => + signal.removeEventListener('abort', onAbort) + ) + } else { + abortSignal.onabort = onAbort + } + } + req.on('frameError', (type, code, id) => { + rejectWithDestroy( + new Error( + `Frame type id ${type} in stream id ${id} has failed with code ${code}.` + ) + ) + }) + req.on('error', rejectWithDestroy) + req.on('aborted', () => { + rejectWithDestroy( + new Error( + `HTTP/2 stream is abnormally aborted in mid-communication with result code ${req.rstCode}.` + ) + ) + }) + req.on('close', () => { + session.unref() + if (disableConcurrentStreams) { + session.destroy() + } + if (!fulfilled) { + rejectWithDestroy( + new Error( + 'Unexpected error: http2 request did not get a response' + ) + ) + } + }) + writeRequestBodyPromise = writeRequestBody( + req, + request, + requestTimeout + ) + }) + } + updateHttpClientConfig(key, value) { + this.config = void 0 + this.configProvider = this.configProvider.then(config => { + return { + ...config, + [key]: value + } + }) + } + httpHandlerConfigs() { + return this.config ?? {} + } + /** + * Destroys a session. + * @param session The session to destroy. + */ + destroySession(session) { + if (!session.destroyed) { + session.destroy() + } + } + } + __name(_NodeHttp2Handler, 'NodeHttp2Handler') + var NodeHttp2Handler = _NodeHttp2Handler + + // src/stream-collector/collector.ts + + var _Collector = class _Collector extends import_stream.Writable { + constructor() { + super(...arguments) + this.bufferedBytes = [] + } + _write(chunk, encoding, callback) { + this.bufferedBytes.push(chunk) + callback() + } + } + __name(_Collector, 'Collector') + var Collector = _Collector + + // src/stream-collector/index.ts + var streamCollector = /* @__PURE__ */ __name(stream => { + if (isReadableStreamInstance(stream)) { + return collectReadableStream(stream) + } + return new Promise((resolve, reject) => { + const collector = new Collector() + stream.pipe(collector) + stream.on('error', err => { + collector.end() + reject(err) + }) + collector.on('error', reject) + collector.on('finish', function () { + const bytes = new Uint8Array(Buffer.concat(this.bufferedBytes)) + resolve(bytes) + }) + }) + }, 'streamCollector') + var isReadableStreamInstance = /* @__PURE__ */ __name( + stream => + typeof ReadableStream === 'function' && + stream instanceof ReadableStream, + 'isReadableStreamInstance' + ) + async function collectReadableStream(stream) { + const chunks = [] + const reader = stream.getReader() + let isDone = false + let length = 0 + while (!isDone) { + const { done, value } = await reader.read() + if (value) { + chunks.push(value) + length += value.length + } + isDone = done + } + const collected = new Uint8Array(length) + let offset = 0 + for (const chunk of chunks) { + collected.set(chunk, offset) + offset += chunk.length + } + return collected + } + __name(collectReadableStream, 'collectReadableStream') + // Annotate the CommonJS export names for ESM import in node: + + 0 && 0 + + /***/ + }, + + /***/ 5976: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { + value: true + }) + Object.defineProperty(exports, 'NIL', { + enumerable: true, + get: function () { + return _nil.default + } + }) + Object.defineProperty(exports, 'parse', { + enumerable: true, + get: function () { + return _parse.default + } + }) + Object.defineProperty(exports, 'stringify', { + enumerable: true, + get: function () { + return _stringify.default + } + }) + Object.defineProperty(exports, 'v1', { + enumerable: true, + get: function () { + return _v.default + } + }) + Object.defineProperty(exports, 'v3', { + enumerable: true, + get: function () { + return _v2.default + } + }) + Object.defineProperty(exports, 'v4', { + enumerable: true, + get: function () { + return _v3.default + } + }) + Object.defineProperty(exports, 'v5', { + enumerable: true, + get: function () { + return _v4.default + } + }) + Object.defineProperty(exports, 'validate', { + enumerable: true, + get: function () { + return _validate.default + } + }) + Object.defineProperty(exports, 'version', { + enumerable: true, + get: function () { + return _version.default + } + }) + + var _v = _interopRequireDefault(__nccwpck_require__(97851)) + + var _v2 = _interopRequireDefault(__nccwpck_require__(88771)) + + var _v3 = _interopRequireDefault(__nccwpck_require__(42286)) + + var _v4 = _interopRequireDefault(__nccwpck_require__(81780)) + + var _nil = _interopRequireDefault(__nccwpck_require__(21736)) + + var _version = _interopRequireDefault(__nccwpck_require__(83472)) + + var _validate = _interopRequireDefault(__nccwpck_require__(60648)) + + var _stringify = _interopRequireDefault(__nccwpck_require__(83731)) + + var _parse = _interopRequireDefault(__nccwpck_require__(73865)) + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } + + /***/ + }, + + /***/ 78684: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 + + var _crypto = _interopRequireDefault(__nccwpck_require__(6113)) + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } + + function md5(bytes) { + if (Array.isArray(bytes)) { + bytes = Buffer.from(bytes) + } else if (typeof bytes === 'string') { + bytes = Buffer.from(bytes, 'utf8') + } + + return _crypto.default.createHash('md5').update(bytes).digest() + } + + var _default = md5 + exports['default'] = _default + + /***/ + }, + + /***/ 32158: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 + + var _crypto = _interopRequireDefault(__nccwpck_require__(6113)) + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } + + var _default = { + randomUUID: _crypto.default.randomUUID + } + exports['default'] = _default + + /***/ + }, + + /***/ 21736: /***/ (__unused_webpack_module, exports) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 + var _default = '00000000-0000-0000-0000-000000000000' + exports['default'] = _default + + /***/ + }, + + /***/ 73865: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 + + var _validate = _interopRequireDefault(__nccwpck_require__(60648)) + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } + + function parse(uuid) { + if (!(0, _validate.default)(uuid)) { + throw TypeError('Invalid UUID') + } + + let v + const arr = new Uint8Array(16) // Parse ########-....-....-....-............ + + arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24 + arr[1] = (v >>> 16) & 0xff + arr[2] = (v >>> 8) & 0xff + arr[3] = v & 0xff // Parse ........-####-....-....-............ + + arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8 + arr[5] = v & 0xff // Parse ........-....-####-....-............ + + arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8 + arr[7] = v & 0xff // Parse ........-....-....-####-............ + + arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8 + arr[9] = v & 0xff // Parse ........-....-....-....-############ + // (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes) + + arr[10] = + ((v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000) & 0xff + arr[11] = (v / 0x100000000) & 0xff + arr[12] = (v >>> 24) & 0xff + arr[13] = (v >>> 16) & 0xff + arr[14] = (v >>> 8) & 0xff + arr[15] = v & 0xff + return arr + } + + var _default = parse + exports['default'] = _default + + /***/ + }, + + /***/ 55071: /***/ (__unused_webpack_module, exports) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 + var _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 + exports['default'] = _default + + /***/ + }, + + /***/ 60437: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = rng + + var _crypto = _interopRequireDefault(__nccwpck_require__(6113)) + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } + + const rnds8Pool = new Uint8Array(256) // # of random values to pre-allocate + + let poolPtr = rnds8Pool.length + + function rng() { + if (poolPtr > rnds8Pool.length - 16) { + _crypto.default.randomFillSync(rnds8Pool) + + poolPtr = 0 + } + + return rnds8Pool.slice(poolPtr, (poolPtr += 16)) + } + + /***/ + }, + + /***/ 74227: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 + + var _crypto = _interopRequireDefault(__nccwpck_require__(6113)) + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } + + function sha1(bytes) { + if (Array.isArray(bytes)) { + bytes = Buffer.from(bytes) + } else if (typeof bytes === 'string') { + bytes = Buffer.from(bytes, 'utf8') + } + + return _crypto.default.createHash('sha1').update(bytes).digest() + } + + var _default = sha1 + exports['default'] = _default + + /***/ + }, + + /***/ 83731: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 + exports.unsafeStringify = unsafeStringify + + var _validate = _interopRequireDefault(__nccwpck_require__(60648)) + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } + + /** + * Convert array of 16 byte values to UUID string format of the form: + * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX + */ + const byteToHex = [] + + for (let i = 0; i < 256; ++i) { + byteToHex.push((i + 0x100).toString(16).slice(1)) + } + + function unsafeStringify(arr, offset = 0) { + // Note: Be careful editing this code! It's been tuned for performance + // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434 + 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]] + ) + } + + function stringify(arr, offset = 0) { + const uuid = unsafeStringify(arr, offset) // Consistency check for valid UUID. If this throws, it's likely due to one + // of the following: + // - One or more input array values don't map to a hex octet (leading to + // "undefined" in the uuid) + // - Invalid input values for the RFC `version` or `variant` fields + + if (!(0, _validate.default)(uuid)) { + throw TypeError('Stringified UUID is invalid') + } + + return uuid + } + + var _default = stringify + exports['default'] = _default + + /***/ + }, + + /***/ 97851: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 + + var _rng = _interopRequireDefault(__nccwpck_require__(60437)) + + var _stringify = __nccwpck_require__(83731) + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } + + // **`v1()` - Generate time-based UUID** + // + // Inspired by https://github.com/LiosK/UUID.js + // and http://docs.python.org/library/uuid.html + let _nodeId + + let _clockseq // Previous uuid creation time + + let _lastMSecs = 0 + let _lastNSecs = 0 // See https://github.com/uuidjs/uuid for API details + + function v1(options, buf, offset) { + let i = (buf && offset) || 0 + const b = buf || new Array(16) + options = options || {} + let node = options.node || _nodeId + let clockseq = + options.clockseq !== undefined ? options.clockseq : _clockseq // node and clockseq need to be initialized to random values if they're not + // specified. We do this lazily to minimize issues related to insufficient + // system entropy. See #189 + + if (node == null || clockseq == null) { + const seedBytes = options.random || (options.rng || _rng.default)() + + if (node == null) { + // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) + node = _nodeId = [ + seedBytes[0] | 0x01, + seedBytes[1], + seedBytes[2], + seedBytes[3], + seedBytes[4], + seedBytes[5] + ] + } + + if (clockseq == null) { + // Per 4.2.2, randomize (14 bit) clockseq + clockseq = _clockseq = ((seedBytes[6] << 8) | seedBytes[7]) & 0x3fff + } + } // UUID timestamps are 100 nano-second units since the Gregorian epoch, + // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so + // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' + // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. + + let msecs = options.msecs !== undefined ? options.msecs : Date.now() // Per 4.2.1.2, use count of uuid's generated during the current clock + // cycle to simulate higher resolution clock + + let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1 // Time since last uuid creation (in msecs) + + const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000 // Per 4.2.1.2, Bump clockseq on clock regression + + if (dt < 0 && options.clockseq === undefined) { + clockseq = (clockseq + 1) & 0x3fff + } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new + // time interval + + if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { + nsecs = 0 + } // Per 4.2.1.2 Throw error if too many uuids are requested + + if (nsecs >= 10000) { + throw new Error("uuid.v1(): Can't create more than 10M uuids/sec") + } + + _lastMSecs = msecs + _lastNSecs = nsecs + _clockseq = clockseq // Per 4.1.4 - Convert from unix epoch to Gregorian epoch + + msecs += 12219292800000 // `time_low` + + const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000 + b[i++] = (tl >>> 24) & 0xff + b[i++] = (tl >>> 16) & 0xff + b[i++] = (tl >>> 8) & 0xff + b[i++] = tl & 0xff // `time_mid` + + const tmh = ((msecs / 0x100000000) * 10000) & 0xfffffff + b[i++] = (tmh >>> 8) & 0xff + b[i++] = tmh & 0xff // `time_high_and_version` + + b[i++] = ((tmh >>> 24) & 0xf) | 0x10 // include version + + b[i++] = (tmh >>> 16) & 0xff // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) + + b[i++] = (clockseq >>> 8) | 0x80 // `clock_seq_low` + + b[i++] = clockseq & 0xff // `node` + + for (let n = 0; n < 6; ++n) { + b[i + n] = node[n] + } + + return buf || (0, _stringify.unsafeStringify)(b) + } + + var _default = v1 + exports['default'] = _default + + /***/ + }, + + /***/ 88771: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 + + var _v = _interopRequireDefault(__nccwpck_require__(68154)) + + var _md = _interopRequireDefault(__nccwpck_require__(78684)) + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } + + const v3 = (0, _v.default)('v3', 0x30, _md.default) + var _default = v3 + exports['default'] = _default + + /***/ + }, + + /***/ 68154: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports.URL = exports.DNS = void 0 + exports['default'] = v35 + + var _stringify = __nccwpck_require__(83731) + + var _parse = _interopRequireDefault(__nccwpck_require__(73865)) + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } + + function stringToBytes(str) { + str = unescape(encodeURIComponent(str)) // UTF8 escape + + const bytes = [] + + for (let i = 0; i < str.length; ++i) { + bytes.push(str.charCodeAt(i)) + } + + return bytes + } + + const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8' + exports.DNS = DNS + const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8' + exports.URL = URL + + function v35(name, version, hashfunc) { + function generateUUID(value, namespace, buf, offset) { + var _namespace + + if (typeof value === 'string') { + value = stringToBytes(value) + } + + if (typeof namespace === 'string') { + namespace = (0, _parse.default)(namespace) + } + + if ( + ((_namespace = namespace) === null || _namespace === void 0 + ? void 0 + : _namespace.length) !== 16 + ) { + throw TypeError( + 'Namespace must be array-like (16 iterable integer values, 0-255)' + ) + } // Compute hash of namespace and value, Per 4.3 + // Future: Use spread syntax when supported on all platforms, e.g. `bytes = + // hashfunc([...namespace, ... value])` + + let bytes = new Uint8Array(16 + value.length) + bytes.set(namespace) + bytes.set(value, namespace.length) + bytes = hashfunc(bytes) + bytes[6] = (bytes[6] & 0x0f) | version + bytes[8] = (bytes[8] & 0x3f) | 0x80 + + if (buf) { + offset = offset || 0 + + for (let i = 0; i < 16; ++i) { + buf[offset + i] = bytes[i] + } + + return buf + } + + return (0, _stringify.unsafeStringify)(bytes) + } // Function#name is not settable on some platforms (#270) + + try { + generateUUID.name = name // eslint-disable-next-line no-empty + } catch (err) {} // For CommonJS default export support + + generateUUID.DNS = DNS + generateUUID.URL = URL + return generateUUID + } + + /***/ + }, + + /***/ 42286: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 + + var _native = _interopRequireDefault(__nccwpck_require__(32158)) + + var _rng = _interopRequireDefault(__nccwpck_require__(60437)) + + var _stringify = __nccwpck_require__(83731) + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } + + function v4(options, buf, offset) { + if (_native.default.randomUUID && !buf && !options) { + return _native.default.randomUUID() + } + + options = options || {} + + const rnds = options.random || (options.rng || _rng.default)() // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` + + rnds[6] = (rnds[6] & 0x0f) | 0x40 + rnds[8] = (rnds[8] & 0x3f) | 0x80 // Copy bytes to buffer, if provided + + if (buf) { + offset = offset || 0 + + for (let i = 0; i < 16; ++i) { + buf[offset + i] = rnds[i] + } + + return buf + } + + return (0, _stringify.unsafeStringify)(rnds) + } + + var _default = v4 + exports['default'] = _default + + /***/ + }, + + /***/ 81780: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 + + var _v = _interopRequireDefault(__nccwpck_require__(68154)) + + var _sha = _interopRequireDefault(__nccwpck_require__(74227)) + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } + + const v5 = (0, _v.default)('v5', 0x50, _sha.default) + var _default = v5 + exports['default'] = _default + + /***/ + }, + + /***/ 60648: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 + + var _regex = _interopRequireDefault(__nccwpck_require__(55071)) + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } + + function validate(uuid) { + return typeof uuid === 'string' && _regex.default.test(uuid) + } + + var _default = validate + exports['default'] = _default + + /***/ + }, + + /***/ 83472: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 + + var _validate = _interopRequireDefault(__nccwpck_require__(60648)) + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } + + function version(uuid) { + if (!(0, _validate.default)(uuid)) { + throw TypeError('Invalid UUID') + } + + return parseInt(uuid.slice(14, 15), 16) + } + + var _default = version + exports['default'] = _default + + /***/ + }, + + /***/ 59221: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.resolveHttpAuthSchemeConfig = + exports.defaultMarketplaceCatalogHttpAuthSchemeProvider = + exports.defaultMarketplaceCatalogHttpAuthSchemeParametersProvider = + void 0 + const core_1 = __nccwpck_require__(69736) + const util_middleware_1 = __nccwpck_require__(69474) + const defaultMarketplaceCatalogHttpAuthSchemeParametersProvider = async ( + config, + context, + input + ) => { + return { + operation: (0, util_middleware_1.getSmithyContext)(context).operation, + region: + (await (0, util_middleware_1.normalizeProvider)(config.region)()) || + (() => { + throw new Error( + 'expected `region` to be configured for `aws.auth#sigv4`' + ) + })() + } + } + exports.defaultMarketplaceCatalogHttpAuthSchemeParametersProvider = + defaultMarketplaceCatalogHttpAuthSchemeParametersProvider + function createAwsAuthSigv4HttpAuthOption(authParameters) { + return { + schemeId: 'aws.auth#sigv4', + signingProperties: { + name: 'aws-marketplace', + region: authParameters.region + }, + propertiesExtractor: (config, context) => ({ + signingProperties: { + config, + context + } + }) + } + } + const defaultMarketplaceCatalogHttpAuthSchemeProvider = + authParameters => { + const options = [] + switch (authParameters.operation) { + default: { + options.push(createAwsAuthSigv4HttpAuthOption(authParameters)) + } + } + return options + } + exports.defaultMarketplaceCatalogHttpAuthSchemeProvider = + defaultMarketplaceCatalogHttpAuthSchemeProvider + const resolveHttpAuthSchemeConfig = config => { + const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config) + return Object.assign(config_0, {}) + } + exports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig + + /***/ + }, + + /***/ 53211: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.defaultEndpointResolver = void 0 + const util_endpoints_1 = __nccwpck_require__(24253) + const util_endpoints_2 = __nccwpck_require__(76779) + const ruleset_1 = __nccwpck_require__(92510) + const cache = new util_endpoints_2.EndpointCache({ + size: 50, + params: ['Endpoint', 'Region', 'UseDualStack', 'UseFIPS'] + }) + const defaultEndpointResolver = (endpointParams, context = {}) => { + return cache.get(endpointParams, () => + (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, { + endpointParams: endpointParams, + logger: context.logger + }) + ) + } + exports.defaultEndpointResolver = defaultEndpointResolver + util_endpoints_2.customEndpointFunctions.aws = + util_endpoints_1.awsEndpointFunctions + + /***/ + }, + + /***/ 92510: /***/ (__unused_webpack_module, exports) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.ruleSet = void 0 + const s = 'required', + t = 'fn', + u = 'argv', + v = 'ref' + const a = true, + b = 'isSet', + c = 'booleanEquals', + d = 'error', + e = 'endpoint', + f = 'tree', + g = 'PartitionResult', + h = { [s]: false, type: 'String' }, + i = { [s]: true, default: false, type: 'Boolean' }, + j = { [v]: 'Endpoint' }, + k = { [t]: c, [u]: [{ [v]: 'UseFIPS' }, true] }, + l = { [t]: c, [u]: [{ [v]: 'UseDualStack' }, true] }, + m = {}, + n = { [t]: 'getAttr', [u]: [{ [v]: g }, 'supportsFIPS'] }, + o = { + [t]: c, + [u]: [ + true, + { [t]: 'getAttr', [u]: [{ [v]: g }, 'supportsDualStack'] } + ] + }, + p = [k], + q = [l], + r = [{ [v]: 'Region' }] + const _data = { + version: '1.0', + parameters: { Region: h, UseDualStack: i, UseFIPS: i, Endpoint: h }, + rules: [ + { + conditions: [{ [t]: b, [u]: [j] }], + rules: [ + { + conditions: p, + error: + 'Invalid Configuration: FIPS and custom endpoint are not supported', + type: d + }, + { + conditions: q, + error: + 'Invalid Configuration: Dualstack and custom endpoint are not supported', + type: d + }, + { endpoint: { url: j, properties: m, headers: m }, type: e } + ], + type: f + }, + { + conditions: [{ [t]: b, [u]: r }], + rules: [ + { + conditions: [{ [t]: 'aws.partition', [u]: r, assign: g }], + rules: [ + { + conditions: [k, l], + rules: [ + { + conditions: [{ [t]: c, [u]: [a, n] }, o], + rules: [ + { + endpoint: { + url: 'https://catalog.marketplace-fips.{Region}.{PartitionResult#dualStackDnsSuffix}', + properties: m, + headers: m + }, + type: e + } + ], + type: f + }, + { + error: + 'FIPS and DualStack are enabled, but this partition does not support one or both', + type: d + } + ], + type: f + }, + { + conditions: p, + rules: [ + { + conditions: [{ [t]: c, [u]: [n, a] }], + rules: [ + { + endpoint: { + url: 'https://catalog.marketplace-fips.{Region}.{PartitionResult#dnsSuffix}', + properties: m, + headers: m + }, + type: e + } + ], + type: f + }, + { + error: + 'FIPS is enabled but this partition does not support FIPS', + type: d + } + ], + type: f + }, + { + conditions: q, + rules: [ + { + conditions: [o], + rules: [ + { + endpoint: { + url: 'https://catalog.marketplace.{Region}.{PartitionResult#dualStackDnsSuffix}', + properties: m, + headers: m + }, + type: e + } + ], + type: f + }, + { + error: + 'DualStack is enabled but this partition does not support DualStack', + type: d + } + ], + type: f + }, + { + endpoint: { + url: 'https://catalog.marketplace.{Region}.{PartitionResult#dnsSuffix}', + properties: m, + headers: m + }, + type: e + } + ], + type: f + } + ], + type: f + }, + { error: 'Invalid Configuration: Missing Region', type: d } + ] + } + exports.ruleSet = _data + + /***/ + }, + + /***/ 87560: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var index_exports = {} + __export(index_exports, { + AccessDeniedException: () => AccessDeniedException, + AmiProductSortBy: () => AmiProductSortBy, + AmiProductVisibilityString: () => AmiProductVisibilityString, + BatchDescribeEntitiesCommand: () => BatchDescribeEntitiesCommand, + CancelChangeSetCommand: () => CancelChangeSetCommand, + ChangeStatus: () => ChangeStatus, + ContainerProductSortBy: () => ContainerProductSortBy, + ContainerProductVisibilityString: () => + ContainerProductVisibilityString, + DataProductSortBy: () => DataProductSortBy, + DataProductVisibilityString: () => DataProductVisibilityString, + DeleteResourcePolicyCommand: () => DeleteResourcePolicyCommand, + DescribeChangeSetCommand: () => DescribeChangeSetCommand, + DescribeEntityCommand: () => DescribeEntityCommand, + EntityTypeFilters: () => EntityTypeFilters, + EntityTypeSort: () => EntityTypeSort, + FailureCode: () => FailureCode, + GetResourcePolicyCommand: () => GetResourcePolicyCommand, + Intent: () => Intent, + InternalServiceException: () => InternalServiceException, + ListChangeSetsCommand: () => ListChangeSetsCommand, + ListEntitiesCommand: () => ListEntitiesCommand, + ListTagsForResourceCommand: () => ListTagsForResourceCommand, + MarketplaceCatalog: () => MarketplaceCatalog, + MarketplaceCatalogClient: () => MarketplaceCatalogClient, + MarketplaceCatalogServiceException: () => + MarketplaceCatalogServiceException, + OfferSortBy: () => OfferSortBy, + OfferStateString: () => OfferStateString, + OfferTargetingString: () => OfferTargetingString, + OwnershipType: () => OwnershipType, + PutResourcePolicyCommand: () => PutResourcePolicyCommand, + ResaleAuthorizationSortBy: () => ResaleAuthorizationSortBy, + ResaleAuthorizationStatusString: () => ResaleAuthorizationStatusString, + ResourceInUseException: () => ResourceInUseException, + ResourceNotFoundException: () => ResourceNotFoundException, + ResourceNotSupportedException: () => ResourceNotSupportedException, + SaaSProductSortBy: () => SaaSProductSortBy, + SaaSProductVisibilityString: () => SaaSProductVisibilityString, + ServiceQuotaExceededException: () => ServiceQuotaExceededException, + SortOrder: () => SortOrder, + StartChangeSetCommand: () => StartChangeSetCommand, + TagResourceCommand: () => TagResourceCommand, + ThrottlingException: () => ThrottlingException, + UntagResourceCommand: () => UntagResourceCommand, + ValidationException: () => ValidationException, + __Client: () => import_smithy_client.Client, + paginateListChangeSets: () => paginateListChangeSets, + paginateListEntities: () => paginateListEntities + }) + module.exports = __toCommonJS(index_exports) + + // src/MarketplaceCatalogClient.ts + var import_middleware_host_header = __nccwpck_require__(11046) + var import_middleware_logger = __nccwpck_require__(26622) + var import_middleware_recursion_detection = __nccwpck_require__(33544) + var import_middleware_user_agent = __nccwpck_require__(9711) + var import_config_resolver = __nccwpck_require__(47517) + var import_core = __nccwpck_require__(27588) + var import_middleware_content_length = __nccwpck_require__(34305) + var import_middleware_endpoint = __nccwpck_require__(13636) + var import_middleware_retry = __nccwpck_require__(74268) + + var import_httpAuthSchemeProvider = __nccwpck_require__(59221) + + // src/endpoint/EndpointParameters.ts + var resolveClientEndpointParameters = /* @__PURE__ */ __name(options => { + return Object.assign(options, { + useDualstackEndpoint: options.useDualstackEndpoint ?? false, + useFipsEndpoint: options.useFipsEndpoint ?? false, + defaultSigningName: 'aws-marketplace' + }) + }, 'resolveClientEndpointParameters') + var commonParams = { + UseFIPS: { type: 'builtInParams', name: 'useFipsEndpoint' }, + Endpoint: { type: 'builtInParams', name: 'endpoint' }, + Region: { type: 'builtInParams', name: 'region' }, + UseDualStack: { type: 'builtInParams', name: 'useDualstackEndpoint' } + } + + // src/MarketplaceCatalogClient.ts + var import_runtimeConfig = __nccwpck_require__(44506) + + // src/runtimeExtensions.ts + var import_region_config_resolver = __nccwpck_require__(56088) + var import_protocol_http = __nccwpck_require__(31788) + var import_smithy_client = __nccwpck_require__(76583) + + // src/auth/httpAuthExtensionConfiguration.ts + var getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name( + runtimeConfig => { + const _httpAuthSchemes = runtimeConfig.httpAuthSchemes + let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider + let _credentials = runtimeConfig.credentials + return { + setHttpAuthScheme(httpAuthScheme) { + const index = _httpAuthSchemes.findIndex( + scheme => scheme.schemeId === httpAuthScheme.schemeId + ) + if (index === -1) { + _httpAuthSchemes.push(httpAuthScheme) + } else { + _httpAuthSchemes.splice(index, 1, httpAuthScheme) + } + }, + httpAuthSchemes() { + return _httpAuthSchemes + }, + setHttpAuthSchemeProvider(httpAuthSchemeProvider) { + _httpAuthSchemeProvider = httpAuthSchemeProvider + }, + httpAuthSchemeProvider() { + return _httpAuthSchemeProvider + }, + setCredentials(credentials) { + _credentials = credentials + }, + credentials() { + return _credentials + } + } + }, + 'getHttpAuthExtensionConfiguration' + ) + var resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name(config => { + return { + httpAuthSchemes: config.httpAuthSchemes(), + httpAuthSchemeProvider: config.httpAuthSchemeProvider(), + credentials: config.credentials() + } + }, 'resolveHttpAuthRuntimeConfig') + + // src/runtimeExtensions.ts + var resolveRuntimeExtensions = /* @__PURE__ */ __name( + (runtimeConfig, extensions) => { + const extensionConfiguration = Object.assign( + (0, + import_region_config_resolver.getAwsRegionExtensionConfiguration)( + runtimeConfig + ), + (0, import_smithy_client.getDefaultExtensionConfiguration)( + runtimeConfig + ), + (0, import_protocol_http.getHttpHandlerExtensionConfiguration)( + runtimeConfig + ), + getHttpAuthExtensionConfiguration(runtimeConfig) + ) + extensions.forEach(extension => + extension.configure(extensionConfiguration) + ) + return Object.assign( + runtimeConfig, + (0, + import_region_config_resolver.resolveAwsRegionExtensionConfiguration)( + extensionConfiguration + ), + (0, import_smithy_client.resolveDefaultRuntimeConfig)( + extensionConfiguration + ), + (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)( + extensionConfiguration + ), + resolveHttpAuthRuntimeConfig(extensionConfiguration) + ) + }, + 'resolveRuntimeExtensions' + ) + + // src/MarketplaceCatalogClient.ts + var MarketplaceCatalogClient = class extends import_smithy_client.Client { + static { + __name(this, 'MarketplaceCatalogClient') + } + /** + * The resolved configuration of MarketplaceCatalogClient class. This is resolved and normalized from the {@link MarketplaceCatalogClientConfig | constructor configuration interface}. + */ + config + constructor(...[configuration]) { + const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)( + configuration || {} + ) + super(_config_0) + this.initConfig = _config_0 + const _config_1 = resolveClientEndpointParameters(_config_0) + const _config_2 = (0, + import_middleware_user_agent.resolveUserAgentConfig)(_config_1) + const _config_3 = (0, import_middleware_retry.resolveRetryConfig)( + _config_2 + ) + const _config_4 = (0, import_config_resolver.resolveRegionConfig)( + _config_3 + ) + const _config_5 = (0, + import_middleware_host_header.resolveHostHeaderConfig)(_config_4) + const _config_6 = (0, + import_middleware_endpoint.resolveEndpointConfig)(_config_5) + const _config_7 = (0, + import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6) + const _config_8 = resolveRuntimeExtensions( + _config_7, + configuration?.extensions || [] + ) + this.config = _config_8 + this.middlewareStack.use( + (0, import_middleware_user_agent.getUserAgentPlugin)(this.config) + ) + this.middlewareStack.use( + (0, import_middleware_retry.getRetryPlugin)(this.config) + ) + this.middlewareStack.use( + (0, import_middleware_content_length.getContentLengthPlugin)( + this.config + ) + ) + this.middlewareStack.use( + (0, import_middleware_host_header.getHostHeaderPlugin)(this.config) + ) + this.middlewareStack.use( + (0, import_middleware_logger.getLoggerPlugin)(this.config) + ) + this.middlewareStack.use( + (0, + import_middleware_recursion_detection.getRecursionDetectionPlugin)( + this.config + ) + ) + this.middlewareStack.use( + (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)( + this.config, + { + httpAuthSchemeParametersProvider: + import_httpAuthSchemeProvider.defaultMarketplaceCatalogHttpAuthSchemeParametersProvider, + identityProviderConfigProvider: /* @__PURE__ */ __name( + async config => + new import_core.DefaultIdentityProviderConfig({ + 'aws.auth#sigv4': config.credentials + }), + 'identityProviderConfigProvider' + ) + } + ) + ) + this.middlewareStack.use( + (0, import_core.getHttpSigningPlugin)(this.config) + ) + } + /** + * Destroy underlying resources, like sockets. It's usually not necessary to do this. + * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed. + * Otherwise, sockets might stay open for quite a long time before the server terminates them. + */ + destroy() { + super.destroy() + } + } + + // src/MarketplaceCatalog.ts + + // src/commands/BatchDescribeEntitiesCommand.ts + + var import_middleware_serde = __nccwpck_require__(88037) + + // src/protocols/Aws_restJson1.ts + var import_core2 = __nccwpck_require__(69736) + + var import_uuid = __nccwpck_require__(21286) + + // src/models/MarketplaceCatalogServiceException.ts + + var MarketplaceCatalogServiceException = class _MarketplaceCatalogServiceException + extends import_smithy_client.ServiceException + { + static { + __name(this, 'MarketplaceCatalogServiceException') + } + /** + * @internal + */ + constructor(options) { + super(options) + Object.setPrototypeOf( + this, + _MarketplaceCatalogServiceException.prototype + ) + } + } + + // src/models/models_0.ts + var AccessDeniedException = class _AccessDeniedException extends MarketplaceCatalogServiceException { + static { + __name(this, 'AccessDeniedException') + } + name = 'AccessDeniedException' + $fault = 'client' + Message + /** + * @internal + */ + constructor(opts) { + super({ + name: 'AccessDeniedException', + $fault: 'client', + ...opts + }) + Object.setPrototypeOf(this, _AccessDeniedException.prototype) + this.Message = opts.Message + } + } + var AmiProductVisibilityString = { + Draft: 'Draft', + Limited: 'Limited', + Public: 'Public', + Restricted: 'Restricted' + } + var AmiProductSortBy = { + EntityId: 'EntityId', + LastModifiedDate: 'LastModifiedDate', + ProductTitle: 'ProductTitle', + Visibility: 'Visibility' + } + var SortOrder = { + ASCENDING: 'ASCENDING', + DESCENDING: 'DESCENDING' + } + var InternalServiceException = class _InternalServiceException extends MarketplaceCatalogServiceException { + static { + __name(this, 'InternalServiceException') + } + name = 'InternalServiceException' + $fault = 'server' + Message + /** + * @internal + */ + constructor(opts) { + super({ + name: 'InternalServiceException', + $fault: 'server', + ...opts + }) + Object.setPrototypeOf(this, _InternalServiceException.prototype) + this.Message = opts.Message + } + } + var ThrottlingException = class _ThrottlingException extends MarketplaceCatalogServiceException { + static { + __name(this, 'ThrottlingException') + } + name = 'ThrottlingException' + $fault = 'client' + Message + /** + * @internal + */ + constructor(opts) { + super({ + name: 'ThrottlingException', + $fault: 'client', + ...opts + }) + Object.setPrototypeOf(this, _ThrottlingException.prototype) + this.Message = opts.Message + } + } + var ValidationException = class _ValidationException extends MarketplaceCatalogServiceException { + static { + __name(this, 'ValidationException') + } + name = 'ValidationException' + $fault = 'client' + Message + /** + * @internal + */ + constructor(opts) { + super({ + name: 'ValidationException', + $fault: 'client', + ...opts + }) + Object.setPrototypeOf(this, _ValidationException.prototype) + this.Message = opts.Message + } + } + var ResourceInUseException = class _ResourceInUseException extends MarketplaceCatalogServiceException { + static { + __name(this, 'ResourceInUseException') + } + name = 'ResourceInUseException' + $fault = 'client' + Message + /** + * @internal + */ + constructor(opts) { + super({ + name: 'ResourceInUseException', + $fault: 'client', + ...opts + }) + Object.setPrototypeOf(this, _ResourceInUseException.prototype) + this.Message = opts.Message + } + } + var ResourceNotFoundException = class _ResourceNotFoundException extends MarketplaceCatalogServiceException { + static { + __name(this, 'ResourceNotFoundException') + } + name = 'ResourceNotFoundException' + $fault = 'client' + Message + /** + * @internal + */ + constructor(opts) { + super({ + name: 'ResourceNotFoundException', + $fault: 'client', + ...opts + }) + Object.setPrototypeOf(this, _ResourceNotFoundException.prototype) + this.Message = opts.Message + } + } + var FailureCode = { + ClientError: 'CLIENT_ERROR', + ServerFault: 'SERVER_FAULT' + } + var Intent = { + APPLY: 'APPLY', + VALIDATE: 'VALIDATE' + } + var ChangeStatus = { + APPLYING: 'APPLYING', + CANCELLED: 'CANCELLED', + FAILED: 'FAILED', + PREPARING: 'PREPARING', + SUCCEEDED: 'SUCCEEDED' + } + var ResourceNotSupportedException = class _ResourceNotSupportedException extends MarketplaceCatalogServiceException { + static { + __name(this, 'ResourceNotSupportedException') + } + name = 'ResourceNotSupportedException' + $fault = 'client' + Message + /** + * @internal + */ + constructor(opts) { + super({ + name: 'ResourceNotSupportedException', + $fault: 'client', + ...opts + }) + Object.setPrototypeOf(this, _ResourceNotSupportedException.prototype) + this.Message = opts.Message + } + } + var ContainerProductVisibilityString = { + Draft: 'Draft', + Limited: 'Limited', + Public: 'Public', + Restricted: 'Restricted' + } + var DataProductVisibilityString = { + Draft: 'Draft', + Limited: 'Limited', + Public: 'Public', + Restricted: 'Restricted', + Unavailable: 'Unavailable' + } + var OfferStateString = { + Draft: 'Draft', + Released: 'Released' + } + var OfferTargetingString = { + BuyerAccounts: 'BuyerAccounts', + CountryCodes: 'CountryCodes', + None: 'None', + ParticipatingPrograms: 'ParticipatingPrograms' + } + var ResaleAuthorizationStatusString = { + Active: 'Active', + Draft: 'Draft', + Restricted: 'Restricted' + } + var SaaSProductVisibilityString = { + Draft: 'Draft', + Limited: 'Limited', + Public: 'Public', + Restricted: 'Restricted' + } + var EntityTypeFilters + ;(EntityTypeFilters3 => { + EntityTypeFilters3.visit = /* @__PURE__ */ __name((value, visitor) => { + if (value.DataProductFilters !== void 0) + return visitor.DataProductFilters(value.DataProductFilters) + if (value.SaaSProductFilters !== void 0) + return visitor.SaaSProductFilters(value.SaaSProductFilters) + if (value.AmiProductFilters !== void 0) + return visitor.AmiProductFilters(value.AmiProductFilters) + if (value.OfferFilters !== void 0) + return visitor.OfferFilters(value.OfferFilters) + if (value.ContainerProductFilters !== void 0) + return visitor.ContainerProductFilters( + value.ContainerProductFilters + ) + if (value.ResaleAuthorizationFilters !== void 0) + return visitor.ResaleAuthorizationFilters( + value.ResaleAuthorizationFilters + ) + return visitor._(value.$unknown[0], value.$unknown[1]) + }, 'visit') + })(EntityTypeFilters || (EntityTypeFilters = {})) + var ContainerProductSortBy = { + EntityId: 'EntityId', + LastModifiedDate: 'LastModifiedDate', + ProductTitle: 'ProductTitle', + Visibility: 'Visibility' + } + var DataProductSortBy = { + EntityId: 'EntityId', + LastModifiedDate: 'LastModifiedDate', + ProductTitle: 'ProductTitle', + Visibility: 'Visibility' + } + var OfferSortBy = { + AvailabilityEndDate: 'AvailabilityEndDate', + BuyerAccounts: 'BuyerAccounts', + EntityId: 'EntityId', + LastModifiedDate: 'LastModifiedDate', + Name: 'Name', + ProductId: 'ProductId', + ReleaseDate: 'ReleaseDate', + ResaleAuthorizationId: 'ResaleAuthorizationId', + State: 'State', + Targeting: 'Targeting' + } + var ResaleAuthorizationSortBy = { + AvailabilityEndDate: 'AvailabilityEndDate', + CreatedDate: 'CreatedDate', + EntityId: 'EntityId', + LastModifiedDate: 'LastModifiedDate', + ManufacturerAccountId: 'ManufacturerAccountId', + ManufacturerLegalName: 'ManufacturerLegalName', + Name: 'Name', + OfferExtendedStatus: 'OfferExtendedStatus', + ProductId: 'ProductId', + ProductName: 'ProductName', + ResellerAccountID: 'ResellerAccountID', + ResellerLegalName: 'ResellerLegalName', + Status: 'Status' + } + var SaaSProductSortBy = { + EntityId: 'EntityId', + LastModifiedDate: 'LastModifiedDate', + ProductTitle: 'ProductTitle', + Visibility: 'Visibility' + } + var EntityTypeSort + ;(EntityTypeSort3 => { + EntityTypeSort3.visit = /* @__PURE__ */ __name((value, visitor) => { + if (value.DataProductSort !== void 0) + return visitor.DataProductSort(value.DataProductSort) + if (value.SaaSProductSort !== void 0) + return visitor.SaaSProductSort(value.SaaSProductSort) + if (value.AmiProductSort !== void 0) + return visitor.AmiProductSort(value.AmiProductSort) + if (value.OfferSort !== void 0) + return visitor.OfferSort(value.OfferSort) + if (value.ContainerProductSort !== void 0) + return visitor.ContainerProductSort(value.ContainerProductSort) + if (value.ResaleAuthorizationSort !== void 0) + return visitor.ResaleAuthorizationSort( + value.ResaleAuthorizationSort + ) + return visitor._(value.$unknown[0], value.$unknown[1]) + }, 'visit') + })(EntityTypeSort || (EntityTypeSort = {})) + var OwnershipType = { + SELF: 'SELF', + SHARED: 'SHARED' + } + var ServiceQuotaExceededException = class _ServiceQuotaExceededException extends MarketplaceCatalogServiceException { + static { + __name(this, 'ServiceQuotaExceededException') + } + name = 'ServiceQuotaExceededException' + $fault = 'client' + Message + /** + * @internal + */ + constructor(opts) { + super({ + name: 'ServiceQuotaExceededException', + $fault: 'client', + ...opts + }) + Object.setPrototypeOf(this, _ServiceQuotaExceededException.prototype) + this.Message = opts.Message + } + } + + // src/protocols/Aws_restJson1.ts + var se_BatchDescribeEntitiesCommand = /* @__PURE__ */ __name( + async (input, context) => { + const b = (0, import_core.requestBuilder)(input, context) + const headers = { + 'content-type': 'application/json' + } + b.bp('/BatchDescribeEntities') + let body + body = JSON.stringify( + (0, import_smithy_client.take)(input, { + EntityRequestList: /* @__PURE__ */ __name( + _ => (0, import_smithy_client._json)(_), + 'EntityRequestList' + ) + }) + ) + b.m('POST').h(headers).b(body) + return b.build() + }, + 'se_BatchDescribeEntitiesCommand' + ) + var se_CancelChangeSetCommand = /* @__PURE__ */ __name( + async (input, context) => { + const b = (0, import_core.requestBuilder)(input, context) + const headers = {} + b.bp('/CancelChangeSet') + const query = (0, import_smithy_client.map)({ + [_c]: [ + , + (0, import_smithy_client.expectNonNull)(input[_C], `Catalog`) + ], + [_cSI]: [ + , + (0, import_smithy_client.expectNonNull)( + input[_CSI], + `ChangeSetId` + ) + ] + }) + let body + b.m('PATCH').h(headers).q(query).b(body) + return b.build() + }, + 'se_CancelChangeSetCommand' + ) + var se_DeleteResourcePolicyCommand = /* @__PURE__ */ __name( + async (input, context) => { + const b = (0, import_core.requestBuilder)(input, context) + const headers = {} + b.bp('/DeleteResourcePolicy') + const query = (0, import_smithy_client.map)({ + [_rA]: [ + , + (0, import_smithy_client.expectNonNull)(input[_RA], `ResourceArn`) + ] + }) + let body + b.m('DELETE').h(headers).q(query).b(body) + return b.build() + }, + 'se_DeleteResourcePolicyCommand' + ) + var se_DescribeChangeSetCommand = /* @__PURE__ */ __name( + async (input, context) => { + const b = (0, import_core.requestBuilder)(input, context) + const headers = {} + b.bp('/DescribeChangeSet') + const query = (0, import_smithy_client.map)({ + [_c]: [ + , + (0, import_smithy_client.expectNonNull)(input[_C], `Catalog`) + ], + [_cSI]: [ + , + (0, import_smithy_client.expectNonNull)( + input[_CSI], + `ChangeSetId` + ) + ] + }) + let body + b.m('GET').h(headers).q(query).b(body) + return b.build() + }, + 'se_DescribeChangeSetCommand' + ) + var se_DescribeEntityCommand = /* @__PURE__ */ __name( + async (input, context) => { + const b = (0, import_core.requestBuilder)(input, context) + const headers = {} + b.bp('/DescribeEntity') + const query = (0, import_smithy_client.map)({ + [_c]: [ + , + (0, import_smithy_client.expectNonNull)(input[_C], `Catalog`) + ], + [_eI]: [ + , + (0, import_smithy_client.expectNonNull)(input[_EI], `EntityId`) + ] + }) + let body + b.m('GET').h(headers).q(query).b(body) + return b.build() + }, + 'se_DescribeEntityCommand' + ) + var se_GetResourcePolicyCommand = /* @__PURE__ */ __name( + async (input, context) => { + const b = (0, import_core.requestBuilder)(input, context) + const headers = {} + b.bp('/GetResourcePolicy') + const query = (0, import_smithy_client.map)({ + [_rA]: [ + , + (0, import_smithy_client.expectNonNull)(input[_RA], `ResourceArn`) + ] + }) + let body + b.m('GET').h(headers).q(query).b(body) + return b.build() + }, + 'se_GetResourcePolicyCommand' + ) + var se_ListChangeSetsCommand = /* @__PURE__ */ __name( + async (input, context) => { + const b = (0, import_core.requestBuilder)(input, context) + const headers = { + 'content-type': 'application/json' + } + b.bp('/ListChangeSets') + let body + body = JSON.stringify( + (0, import_smithy_client.take)(input, { + Catalog: [], + FilterList: /* @__PURE__ */ __name( + _ => (0, import_smithy_client._json)(_), + 'FilterList' + ), + MaxResults: [], + NextToken: [], + Sort: /* @__PURE__ */ __name( + _ => (0, import_smithy_client._json)(_), + 'Sort' + ) + }) + ) + b.m('POST').h(headers).b(body) + return b.build() + }, + 'se_ListChangeSetsCommand' + ) + var se_ListEntitiesCommand = /* @__PURE__ */ __name( + async (input, context) => { + const b = (0, import_core.requestBuilder)(input, context) + const headers = { + 'content-type': 'application/json' + } + b.bp('/ListEntities') + let body + body = JSON.stringify( + (0, import_smithy_client.take)(input, { + Catalog: [], + EntityType: [], + EntityTypeFilters: /* @__PURE__ */ __name( + _ => (0, import_smithy_client._json)(_), + 'EntityTypeFilters' + ), + EntityTypeSort: /* @__PURE__ */ __name( + _ => (0, import_smithy_client._json)(_), + 'EntityTypeSort' + ), + FilterList: /* @__PURE__ */ __name( + _ => (0, import_smithy_client._json)(_), + 'FilterList' + ), + MaxResults: [], + NextToken: [], + OwnershipType: [], + Sort: /* @__PURE__ */ __name( + _ => (0, import_smithy_client._json)(_), + 'Sort' + ) + }) + ) + b.m('POST').h(headers).b(body) + return b.build() + }, + 'se_ListEntitiesCommand' + ) + var se_ListTagsForResourceCommand = /* @__PURE__ */ __name( + async (input, context) => { + const b = (0, import_core.requestBuilder)(input, context) + const headers = { + 'content-type': 'application/json' + } + b.bp('/ListTagsForResource') + let body + body = JSON.stringify( + (0, import_smithy_client.take)(input, { + ResourceArn: [] + }) + ) + b.m('POST').h(headers).b(body) + return b.build() + }, + 'se_ListTagsForResourceCommand' + ) + var se_PutResourcePolicyCommand = /* @__PURE__ */ __name( + async (input, context) => { + const b = (0, import_core.requestBuilder)(input, context) + const headers = { + 'content-type': 'application/json' + } + b.bp('/PutResourcePolicy') + let body + body = JSON.stringify( + (0, import_smithy_client.take)(input, { + Policy: [], + ResourceArn: [] + }) + ) + b.m('POST').h(headers).b(body) + return b.build() + }, + 'se_PutResourcePolicyCommand' + ) + var se_StartChangeSetCommand = /* @__PURE__ */ __name( + async (input, context) => { + const b = (0, import_core.requestBuilder)(input, context) + const headers = { + 'content-type': 'application/json' + } + b.bp('/StartChangeSet') + let body + body = JSON.stringify( + (0, import_smithy_client.take)(input, { + Catalog: [], + ChangeSet: /* @__PURE__ */ __name( + _ => se_RequestedChangeList(_, context), + 'ChangeSet' + ), + ChangeSetName: [], + ChangeSetTags: /* @__PURE__ */ __name( + _ => (0, import_smithy_client._json)(_), + 'ChangeSetTags' + ), + ClientRequestToken: [true, _ => _ ?? (0, import_uuid.v4)()], + Intent: [] + }) + ) + b.m('POST').h(headers).b(body) + return b.build() + }, + 'se_StartChangeSetCommand' + ) + var se_TagResourceCommand = /* @__PURE__ */ __name( + async (input, context) => { + const b = (0, import_core.requestBuilder)(input, context) + const headers = { + 'content-type': 'application/json' + } + b.bp('/TagResource') + let body + body = JSON.stringify( + (0, import_smithy_client.take)(input, { + ResourceArn: [], + Tags: /* @__PURE__ */ __name( + _ => (0, import_smithy_client._json)(_), + 'Tags' + ) + }) + ) + b.m('POST').h(headers).b(body) + return b.build() + }, + 'se_TagResourceCommand' + ) + var se_UntagResourceCommand = /* @__PURE__ */ __name( + async (input, context) => { + const b = (0, import_core.requestBuilder)(input, context) + const headers = { + 'content-type': 'application/json' + } + b.bp('/UntagResource') + let body + body = JSON.stringify( + (0, import_smithy_client.take)(input, { + ResourceArn: [], + TagKeys: /* @__PURE__ */ __name( + _ => (0, import_smithy_client._json)(_), + 'TagKeys' + ) + }) + ) + b.m('POST').h(headers).b(body) + return b.build() + }, + 'se_UntagResourceCommand' + ) + var de_BatchDescribeEntitiesCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context) + } + const contents = (0, import_smithy_client.map)({ + $metadata: deserializeMetadata(output) + }) + const data = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.expectObject)( + await (0, import_core2.parseJsonBody)(output.body, context) + ), + 'body' + ) + const doc = (0, import_smithy_client.take)(data, { + EntityDetails: /* @__PURE__ */ __name( + _ => de_EntityDetails(_, context), + 'EntityDetails' + ), + Errors: import_smithy_client._json + }) + Object.assign(contents, doc) + return contents + }, + 'de_BatchDescribeEntitiesCommand' + ) + var de_CancelChangeSetCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context) + } + const contents = (0, import_smithy_client.map)({ + $metadata: deserializeMetadata(output) + }) + const data = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.expectObject)( + await (0, import_core2.parseJsonBody)(output.body, context) + ), + 'body' + ) + const doc = (0, import_smithy_client.take)(data, { + ChangeSetArn: import_smithy_client.expectString, + ChangeSetId: import_smithy_client.expectString + }) + Object.assign(contents, doc) + return contents + }, + 'de_CancelChangeSetCommand' + ) + var de_DeleteResourcePolicyCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context) + } + const contents = (0, import_smithy_client.map)({ + $metadata: deserializeMetadata(output) + }) + await (0, import_smithy_client.collectBody)(output.body, context) + return contents + }, + 'de_DeleteResourcePolicyCommand' + ) + var de_DescribeChangeSetCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context) + } + const contents = (0, import_smithy_client.map)({ + $metadata: deserializeMetadata(output) + }) + const data = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.expectObject)( + await (0, import_core2.parseJsonBody)(output.body, context) + ), + 'body' + ) + const doc = (0, import_smithy_client.take)(data, { + ChangeSet: /* @__PURE__ */ __name( + _ => de_ChangeSetDescription(_, context), + 'ChangeSet' + ), + ChangeSetArn: import_smithy_client.expectString, + ChangeSetId: import_smithy_client.expectString, + ChangeSetName: import_smithy_client.expectString, + EndTime: import_smithy_client.expectString, + FailureCode: import_smithy_client.expectString, + FailureDescription: import_smithy_client.expectString, + Intent: import_smithy_client.expectString, + StartTime: import_smithy_client.expectString, + Status: import_smithy_client.expectString + }) + Object.assign(contents, doc) + return contents + }, + 'de_DescribeChangeSetCommand' + ) + var de_DescribeEntityCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context) + } + const contents = (0, import_smithy_client.map)({ + $metadata: deserializeMetadata(output) + }) + const data = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.expectObject)( + await (0, import_core2.parseJsonBody)(output.body, context) + ), + 'body' + ) + const doc = (0, import_smithy_client.take)(data, { + Details: import_smithy_client.expectString, + DetailsDocument: /* @__PURE__ */ __name( + _ => de_JsonDocumentType(_, context), + 'DetailsDocument' + ), + EntityArn: import_smithy_client.expectString, + EntityIdentifier: import_smithy_client.expectString, + EntityType: import_smithy_client.expectString, + LastModifiedDate: import_smithy_client.expectString + }) + Object.assign(contents, doc) + return contents + }, + 'de_DescribeEntityCommand' + ) + var de_GetResourcePolicyCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context) + } + const contents = (0, import_smithy_client.map)({ + $metadata: deserializeMetadata(output) + }) + const data = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.expectObject)( + await (0, import_core2.parseJsonBody)(output.body, context) + ), + 'body' + ) + const doc = (0, import_smithy_client.take)(data, { + Policy: import_smithy_client.expectString + }) + Object.assign(contents, doc) + return contents + }, + 'de_GetResourcePolicyCommand' + ) + var de_ListChangeSetsCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context) + } + const contents = (0, import_smithy_client.map)({ + $metadata: deserializeMetadata(output) + }) + const data = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.expectObject)( + await (0, import_core2.parseJsonBody)(output.body, context) + ), + 'body' + ) + const doc = (0, import_smithy_client.take)(data, { + ChangeSetSummaryList: import_smithy_client._json, + NextToken: import_smithy_client.expectString + }) + Object.assign(contents, doc) + return contents + }, + 'de_ListChangeSetsCommand' + ) + var de_ListEntitiesCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context) + } + const contents = (0, import_smithy_client.map)({ + $metadata: deserializeMetadata(output) + }) + const data = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.expectObject)( + await (0, import_core2.parseJsonBody)(output.body, context) + ), + 'body' + ) + const doc = (0, import_smithy_client.take)(data, { + EntitySummaryList: import_smithy_client._json, + NextToken: import_smithy_client.expectString + }) + Object.assign(contents, doc) + return contents + }, + 'de_ListEntitiesCommand' + ) + var de_ListTagsForResourceCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context) + } + const contents = (0, import_smithy_client.map)({ + $metadata: deserializeMetadata(output) + }) + const data = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.expectObject)( + await (0, import_core2.parseJsonBody)(output.body, context) + ), + 'body' + ) + const doc = (0, import_smithy_client.take)(data, { + ResourceArn: import_smithy_client.expectString, + Tags: import_smithy_client._json + }) + Object.assign(contents, doc) + return contents + }, + 'de_ListTagsForResourceCommand' + ) + var de_PutResourcePolicyCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context) + } + const contents = (0, import_smithy_client.map)({ + $metadata: deserializeMetadata(output) + }) + await (0, import_smithy_client.collectBody)(output.body, context) + return contents + }, + 'de_PutResourcePolicyCommand' + ) + var de_StartChangeSetCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context) + } + const contents = (0, import_smithy_client.map)({ + $metadata: deserializeMetadata(output) + }) + const data = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.expectObject)( + await (0, import_core2.parseJsonBody)(output.body, context) + ), + 'body' + ) + const doc = (0, import_smithy_client.take)(data, { + ChangeSetArn: import_smithy_client.expectString, + ChangeSetId: import_smithy_client.expectString + }) + Object.assign(contents, doc) + return contents + }, + 'de_StartChangeSetCommand' + ) + var de_TagResourceCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context) + } + const contents = (0, import_smithy_client.map)({ + $metadata: deserializeMetadata(output) + }) + await (0, import_smithy_client.collectBody)(output.body, context) + return contents + }, + 'de_TagResourceCommand' + ) + var de_UntagResourceCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context) + } + const contents = (0, import_smithy_client.map)({ + $metadata: deserializeMetadata(output) + }) + await (0, import_smithy_client.collectBody)(output.body, context) + return contents + }, + 'de_UntagResourceCommand' + ) + var de_CommandError = /* @__PURE__ */ __name(async (output, context) => { + const parsedOutput = { + ...output, + body: await (0, import_core2.parseJsonErrorBody)(output.body, context) + } + const errorCode = (0, import_core2.loadRestJsonErrorCode)( + output, + parsedOutput.body + ) + switch (errorCode) { + case 'AccessDeniedException': + case 'com.amazonaws.marketplacecatalog#AccessDeniedException': + throw await de_AccessDeniedExceptionRes(parsedOutput, context) + case 'InternalServiceException': + case 'com.amazonaws.marketplacecatalog#InternalServiceException': + throw await de_InternalServiceExceptionRes(parsedOutput, context) + case 'ThrottlingException': + case 'com.amazonaws.marketplacecatalog#ThrottlingException': + throw await de_ThrottlingExceptionRes(parsedOutput, context) + case 'ValidationException': + case 'com.amazonaws.marketplacecatalog#ValidationException': + throw await de_ValidationExceptionRes(parsedOutput, context) + case 'ResourceInUseException': + case 'com.amazonaws.marketplacecatalog#ResourceInUseException': + throw await de_ResourceInUseExceptionRes(parsedOutput, context) + case 'ResourceNotFoundException': + case 'com.amazonaws.marketplacecatalog#ResourceNotFoundException': + throw await de_ResourceNotFoundExceptionRes(parsedOutput, context) + case 'ResourceNotSupportedException': + case 'com.amazonaws.marketplacecatalog#ResourceNotSupportedException': + throw await de_ResourceNotSupportedExceptionRes( + parsedOutput, + context + ) + case 'ServiceQuotaExceededException': + case 'com.amazonaws.marketplacecatalog#ServiceQuotaExceededException': + throw await de_ServiceQuotaExceededExceptionRes( + parsedOutput, + context + ) + default: + const parsedBody = parsedOutput.body + return throwDefaultError({ + output, + parsedBody, + errorCode + }) + } + }, 'de_CommandError') + var throwDefaultError = (0, import_smithy_client.withBaseException)( + MarketplaceCatalogServiceException + ) + var de_AccessDeniedExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const contents = (0, import_smithy_client.map)({}) + const data = parsedOutput.body + const doc = (0, import_smithy_client.take)(data, { + Message: import_smithy_client.expectString + }) + Object.assign(contents, doc) + const exception = new AccessDeniedException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + parsedOutput.body + ) + }, + 'de_AccessDeniedExceptionRes' + ) + var de_InternalServiceExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const contents = (0, import_smithy_client.map)({}) + const data = parsedOutput.body + const doc = (0, import_smithy_client.take)(data, { + Message: import_smithy_client.expectString + }) + Object.assign(contents, doc) + const exception = new InternalServiceException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + parsedOutput.body + ) + }, + 'de_InternalServiceExceptionRes' + ) + var de_ResourceInUseExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const contents = (0, import_smithy_client.map)({}) + const data = parsedOutput.body + const doc = (0, import_smithy_client.take)(data, { + Message: import_smithy_client.expectString + }) + Object.assign(contents, doc) + const exception = new ResourceInUseException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + parsedOutput.body + ) + }, + 'de_ResourceInUseExceptionRes' + ) + var de_ResourceNotFoundExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const contents = (0, import_smithy_client.map)({}) + const data = parsedOutput.body + const doc = (0, import_smithy_client.take)(data, { + Message: import_smithy_client.expectString + }) + Object.assign(contents, doc) + const exception = new ResourceNotFoundException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + parsedOutput.body + ) + }, + 'de_ResourceNotFoundExceptionRes' + ) + var de_ResourceNotSupportedExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const contents = (0, import_smithy_client.map)({}) + const data = parsedOutput.body + const doc = (0, import_smithy_client.take)(data, { + Message: import_smithy_client.expectString + }) + Object.assign(contents, doc) + const exception = new ResourceNotSupportedException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + parsedOutput.body + ) + }, + 'de_ResourceNotSupportedExceptionRes' + ) + var de_ServiceQuotaExceededExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const contents = (0, import_smithy_client.map)({}) + const data = parsedOutput.body + const doc = (0, import_smithy_client.take)(data, { + Message: import_smithy_client.expectString + }) + Object.assign(contents, doc) + const exception = new ServiceQuotaExceededException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + parsedOutput.body + ) + }, + 'de_ServiceQuotaExceededExceptionRes' + ) + var de_ThrottlingExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const contents = (0, import_smithy_client.map)({}) + const data = parsedOutput.body + const doc = (0, import_smithy_client.take)(data, { + Message: import_smithy_client.expectString + }) + Object.assign(contents, doc) + const exception = new ThrottlingException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + parsedOutput.body + ) + }, + 'de_ThrottlingExceptionRes' + ) + var de_ValidationExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const contents = (0, import_smithy_client.map)({}) + const data = parsedOutput.body + const doc = (0, import_smithy_client.take)(data, { + Message: import_smithy_client.expectString + }) + Object.assign(contents, doc) + const exception = new ValidationException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + parsedOutput.body + ) + }, + 'de_ValidationExceptionRes' + ) + var se_Change = /* @__PURE__ */ __name((input, context) => { + return (0, import_smithy_client.take)(input, { + ChangeName: [], + ChangeType: [], + Details: [], + DetailsDocument: /* @__PURE__ */ __name( + _ => se_JsonDocumentType(_, context), + 'DetailsDocument' + ), + Entity: import_smithy_client._json, + EntityTags: import_smithy_client._json + }) + }, 'se_Change') + var se_JsonDocumentType = /* @__PURE__ */ __name((input, context) => { + return input + }, 'se_JsonDocumentType') + var se_RequestedChangeList = /* @__PURE__ */ __name((input, context) => { + return input + .filter(e => e != null) + .map(entry => { + return se_Change(entry, context) + }) + }, 'se_RequestedChangeList') + var de_ChangeSetDescription = /* @__PURE__ */ __name( + (output, context) => { + const retVal = (output || []) + .filter(e => e != null) + .map(entry => { + return de_ChangeSummary(entry, context) + }) + return retVal + }, + 'de_ChangeSetDescription' + ) + var de_ChangeSummary = /* @__PURE__ */ __name((output, context) => { + return (0, import_smithy_client.take)(output, { + ChangeName: import_smithy_client.expectString, + ChangeType: import_smithy_client.expectString, + Details: import_smithy_client.expectString, + DetailsDocument: /* @__PURE__ */ __name( + _ => de_JsonDocumentType(_, context), + 'DetailsDocument' + ), + Entity: import_smithy_client._json, + ErrorDetailList: import_smithy_client._json + }) + }, 'de_ChangeSummary') + var de_EntityDetail = /* @__PURE__ */ __name((output, context) => { + return (0, import_smithy_client.take)(output, { + DetailsDocument: /* @__PURE__ */ __name( + _ => de_JsonDocumentType(_, context), + 'DetailsDocument' + ), + EntityArn: import_smithy_client.expectString, + EntityIdentifier: import_smithy_client.expectString, + EntityType: import_smithy_client.expectString, + LastModifiedDate: import_smithy_client.expectString + }) + }, 'de_EntityDetail') + var de_EntityDetails = /* @__PURE__ */ __name((output, context) => { + return Object.entries(output).reduce((acc, [key, value]) => { + if (value === null) { + return acc + } + acc[key] = de_EntityDetail(value, context) + return acc + }, {}) + }, 'de_EntityDetails') + var de_JsonDocumentType = /* @__PURE__ */ __name((output, context) => { + return output + }, 'de_JsonDocumentType') + var deserializeMetadata = /* @__PURE__ */ __name( + output => ({ + httpStatusCode: output.statusCode, + requestId: + output.headers['x-amzn-requestid'] ?? + output.headers['x-amzn-request-id'] ?? + output.headers['x-amz-request-id'], + extendedRequestId: output.headers['x-amz-id-2'], + cfId: output.headers['x-amz-cf-id'] + }), + 'deserializeMetadata' + ) + var _C = 'Catalog' + var _CSI = 'ChangeSetId' + var _EI = 'EntityId' + var _RA = 'ResourceArn' + var _c = 'catalog' + var _cSI = 'changeSetId' + var _eI = 'entityId' + var _rA = 'resourceArn' + + // src/commands/BatchDescribeEntitiesCommand.ts + var BatchDescribeEntitiesCommand = class extends import_smithy_client.Command.classBuilder() + .ep(commonParams) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('AWSMPSeymour', 'BatchDescribeEntities', {}) + .n('MarketplaceCatalogClient', 'BatchDescribeEntitiesCommand') + .f(void 0, void 0) + .ser(se_BatchDescribeEntitiesCommand) + .de(de_BatchDescribeEntitiesCommand) + .build() { + static { + __name(this, 'BatchDescribeEntitiesCommand') + } + } + + // src/commands/CancelChangeSetCommand.ts + + var CancelChangeSetCommand = class extends import_smithy_client.Command.classBuilder() + .ep(commonParams) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('AWSMPSeymour', 'CancelChangeSet', {}) + .n('MarketplaceCatalogClient', 'CancelChangeSetCommand') + .f(void 0, void 0) + .ser(se_CancelChangeSetCommand) + .de(de_CancelChangeSetCommand) + .build() { + static { + __name(this, 'CancelChangeSetCommand') + } + } + + // src/commands/DeleteResourcePolicyCommand.ts + + var DeleteResourcePolicyCommand = class extends import_smithy_client.Command.classBuilder() + .ep(commonParams) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('AWSMPSeymour', 'DeleteResourcePolicy', {}) + .n('MarketplaceCatalogClient', 'DeleteResourcePolicyCommand') + .f(void 0, void 0) + .ser(se_DeleteResourcePolicyCommand) + .de(de_DeleteResourcePolicyCommand) + .build() { + static { + __name(this, 'DeleteResourcePolicyCommand') + } + } + + // src/commands/DescribeChangeSetCommand.ts + + var DescribeChangeSetCommand = class extends import_smithy_client.Command.classBuilder() + .ep(commonParams) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('AWSMPSeymour', 'DescribeChangeSet', {}) + .n('MarketplaceCatalogClient', 'DescribeChangeSetCommand') + .f(void 0, void 0) + .ser(se_DescribeChangeSetCommand) + .de(de_DescribeChangeSetCommand) + .build() { + static { + __name(this, 'DescribeChangeSetCommand') + } + } + + // src/commands/DescribeEntityCommand.ts + + var DescribeEntityCommand = class extends import_smithy_client.Command.classBuilder() + .ep(commonParams) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('AWSMPSeymour', 'DescribeEntity', {}) + .n('MarketplaceCatalogClient', 'DescribeEntityCommand') + .f(void 0, void 0) + .ser(se_DescribeEntityCommand) + .de(de_DescribeEntityCommand) + .build() { + static { + __name(this, 'DescribeEntityCommand') + } + } + + // src/commands/GetResourcePolicyCommand.ts + + var GetResourcePolicyCommand = class extends import_smithy_client.Command.classBuilder() + .ep(commonParams) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('AWSMPSeymour', 'GetResourcePolicy', {}) + .n('MarketplaceCatalogClient', 'GetResourcePolicyCommand') + .f(void 0, void 0) + .ser(se_GetResourcePolicyCommand) + .de(de_GetResourcePolicyCommand) + .build() { + static { + __name(this, 'GetResourcePolicyCommand') + } + } + + // src/commands/ListChangeSetsCommand.ts + + var ListChangeSetsCommand = class extends import_smithy_client.Command.classBuilder() + .ep(commonParams) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('AWSMPSeymour', 'ListChangeSets', {}) + .n('MarketplaceCatalogClient', 'ListChangeSetsCommand') + .f(void 0, void 0) + .ser(se_ListChangeSetsCommand) + .de(de_ListChangeSetsCommand) + .build() { + static { + __name(this, 'ListChangeSetsCommand') + } + } + + // src/commands/ListEntitiesCommand.ts + + var ListEntitiesCommand = class extends import_smithy_client.Command.classBuilder() + .ep(commonParams) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('AWSMPSeymour', 'ListEntities', {}) + .n('MarketplaceCatalogClient', 'ListEntitiesCommand') + .f(void 0, void 0) + .ser(se_ListEntitiesCommand) + .de(de_ListEntitiesCommand) + .build() { + static { + __name(this, 'ListEntitiesCommand') + } + } + + // src/commands/ListTagsForResourceCommand.ts + + var ListTagsForResourceCommand = class extends import_smithy_client.Command.classBuilder() + .ep(commonParams) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('AWSMPSeymour', 'ListTagsForResource', {}) + .n('MarketplaceCatalogClient', 'ListTagsForResourceCommand') + .f(void 0, void 0) + .ser(se_ListTagsForResourceCommand) + .de(de_ListTagsForResourceCommand) + .build() { + static { + __name(this, 'ListTagsForResourceCommand') + } + } + + // src/commands/PutResourcePolicyCommand.ts + + var PutResourcePolicyCommand = class extends import_smithy_client.Command.classBuilder() + .ep(commonParams) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('AWSMPSeymour', 'PutResourcePolicy', {}) + .n('MarketplaceCatalogClient', 'PutResourcePolicyCommand') + .f(void 0, void 0) + .ser(se_PutResourcePolicyCommand) + .de(de_PutResourcePolicyCommand) + .build() { + static { + __name(this, 'PutResourcePolicyCommand') + } + } + + // src/commands/StartChangeSetCommand.ts + + var StartChangeSetCommand = class extends import_smithy_client.Command.classBuilder() + .ep(commonParams) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('AWSMPSeymour', 'StartChangeSet', {}) + .n('MarketplaceCatalogClient', 'StartChangeSetCommand') + .f(void 0, void 0) + .ser(se_StartChangeSetCommand) + .de(de_StartChangeSetCommand) + .build() { + static { + __name(this, 'StartChangeSetCommand') + } + } + + // src/commands/TagResourceCommand.ts + + var TagResourceCommand = class extends import_smithy_client.Command.classBuilder() + .ep(commonParams) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('AWSMPSeymour', 'TagResource', {}) + .n('MarketplaceCatalogClient', 'TagResourceCommand') + .f(void 0, void 0) + .ser(se_TagResourceCommand) + .de(de_TagResourceCommand) + .build() { + static { + __name(this, 'TagResourceCommand') + } + } + + // src/commands/UntagResourceCommand.ts + + var UntagResourceCommand = class extends import_smithy_client.Command.classBuilder() + .ep(commonParams) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('AWSMPSeymour', 'UntagResource', {}) + .n('MarketplaceCatalogClient', 'UntagResourceCommand') + .f(void 0, void 0) + .ser(se_UntagResourceCommand) + .de(de_UntagResourceCommand) + .build() { + static { + __name(this, 'UntagResourceCommand') + } + } + + // src/MarketplaceCatalog.ts + var commands = { + BatchDescribeEntitiesCommand, + CancelChangeSetCommand, + DeleteResourcePolicyCommand, + DescribeChangeSetCommand, + DescribeEntityCommand, + GetResourcePolicyCommand, + ListChangeSetsCommand, + ListEntitiesCommand, + ListTagsForResourceCommand, + PutResourcePolicyCommand, + StartChangeSetCommand, + TagResourceCommand, + UntagResourceCommand + } + var MarketplaceCatalog = class extends MarketplaceCatalogClient { + static { + __name(this, 'MarketplaceCatalog') + } + } + ;(0, import_smithy_client.createAggregatedClient)( + commands, + MarketplaceCatalog + ) + + // src/pagination/ListChangeSetsPaginator.ts + + var paginateListChangeSets = (0, import_core.createPaginator)( + MarketplaceCatalogClient, + ListChangeSetsCommand, + 'NextToken', + 'NextToken', + 'MaxResults' + ) + + // src/pagination/ListEntitiesPaginator.ts + + var paginateListEntities = (0, import_core.createPaginator)( + MarketplaceCatalogClient, + ListEntitiesCommand, + 'NextToken', + 'NextToken', + 'MaxResults' + ) + // Annotate the CommonJS export names for ESM import in node: + + 0 && 0 + + /***/ + }, + + /***/ 44506: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getRuntimeConfig = void 0 + const tslib_1 = __nccwpck_require__(4351) + const package_json_1 = tslib_1.__importDefault(__nccwpck_require__(80280)) + const core_1 = __nccwpck_require__(69736) + const credential_provider_node_1 = __nccwpck_require__(75663) + const util_user_agent_node_1 = __nccwpck_require__(37896) + const config_resolver_1 = __nccwpck_require__(47517) + const hash_node_1 = __nccwpck_require__(52998) + const middleware_retry_1 = __nccwpck_require__(74268) + const node_config_provider_1 = __nccwpck_require__(6706) + const node_http_handler_1 = __nccwpck_require__(55239) + const util_body_length_node_1 = __nccwpck_require__(10327) + const util_retry_1 = __nccwpck_require__(31955) + const runtimeConfig_shared_1 = __nccwpck_require__(68488) + const smithy_client_1 = __nccwpck_require__(76583) + const util_defaults_mode_node_1 = __nccwpck_require__(32855) + const smithy_client_2 = __nccwpck_require__(76583) + const getRuntimeConfig = config => { + ;(0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version) + const defaultsMode = (0, + util_defaults_mode_node_1.resolveDefaultsModeConfig)(config) + const defaultConfigProvider = () => + defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode) + const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)( + config + ) + ;(0, core_1.emitWarningIfUnsupportedVersion)(process.version) + const profileConfig = { profile: config?.profile } + return { + ...clientSharedValues, + ...config, + runtime: 'node', + defaultsMode, + bodyLengthChecker: + config?.bodyLengthChecker ?? + util_body_length_node_1.calculateBodyLength, + credentialDefaultProvider: + config?.credentialDefaultProvider ?? + credential_provider_node_1.defaultProvider, + defaultUserAgentProvider: + config?.defaultUserAgentProvider ?? + (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ + serviceId: clientSharedValues.serviceId, + clientVersion: package_json_1.default.version + }), + maxAttempts: + config?.maxAttempts ?? + (0, node_config_provider_1.loadConfig)( + middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, + config + ), + region: + config?.region ?? + (0, node_config_provider_1.loadConfig)( + config_resolver_1.NODE_REGION_CONFIG_OPTIONS, + { + ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, + ...profileConfig + } + ), + requestHandler: node_http_handler_1.NodeHttpHandler.create( + config?.requestHandler ?? defaultConfigProvider + ), + retryMode: + config?.retryMode ?? + (0, node_config_provider_1.loadConfig)( + { + ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS, + default: async () => + (await defaultConfigProvider()).retryMode || + util_retry_1.DEFAULT_RETRY_MODE + }, + config + ), + sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, 'sha256'), + streamCollector: + config?.streamCollector ?? node_http_handler_1.streamCollector, + useDualstackEndpoint: + config?.useDualstackEndpoint ?? + (0, node_config_provider_1.loadConfig)( + config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, + profileConfig + ), + useFipsEndpoint: + config?.useFipsEndpoint ?? + (0, node_config_provider_1.loadConfig)( + config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, + profileConfig + ), + userAgentAppId: + config?.userAgentAppId ?? + (0, node_config_provider_1.loadConfig)( + util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, + profileConfig + ) + } + } + exports.getRuntimeConfig = getRuntimeConfig + + /***/ + }, + + /***/ 68488: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getRuntimeConfig = void 0 + const core_1 = __nccwpck_require__(69736) + const smithy_client_1 = __nccwpck_require__(76583) + const url_parser_1 = __nccwpck_require__(57247) + const util_base64_1 = __nccwpck_require__(87656) + const util_utf8_1 = __nccwpck_require__(94377) + const httpAuthSchemeProvider_1 = __nccwpck_require__(59221) + const endpointResolver_1 = __nccwpck_require__(53211) + const getRuntimeConfig = config => { + return { + apiVersion: '2018-09-17', + base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64, + base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64, + disableHostPrefix: config?.disableHostPrefix ?? false, + endpointProvider: + config?.endpointProvider ?? + endpointResolver_1.defaultEndpointResolver, + extensions: config?.extensions ?? [], + httpAuthSchemeProvider: + config?.httpAuthSchemeProvider ?? + httpAuthSchemeProvider_1.defaultMarketplaceCatalogHttpAuthSchemeProvider, + httpAuthSchemes: config?.httpAuthSchemes ?? [ + { + schemeId: 'aws.auth#sigv4', + identityProvider: ipc => + ipc.getIdentityProvider('aws.auth#sigv4'), + signer: new core_1.AwsSdkSigV4Signer() + } + ], + logger: config?.logger ?? new smithy_client_1.NoOpLogger(), + serviceId: config?.serviceId ?? 'Marketplace Catalog', + urlParser: config?.urlParser ?? url_parser_1.parseUrl, + utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8, + utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8 + } + } + exports.getRuntimeConfig = getRuntimeConfig + + /***/ + }, + + /***/ 60801: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.resolveHttpAuthSchemeConfig = + exports.defaultSSOHttpAuthSchemeProvider = + exports.defaultSSOHttpAuthSchemeParametersProvider = + void 0 + const core_1 = __nccwpck_require__(69736) + const util_middleware_1 = __nccwpck_require__(69474) + const defaultSSOHttpAuthSchemeParametersProvider = async ( + config, + context, + input + ) => { + return { + operation: (0, util_middleware_1.getSmithyContext)(context).operation, + region: + (await (0, util_middleware_1.normalizeProvider)(config.region)()) || + (() => { + throw new Error( + 'expected `region` to be configured for `aws.auth#sigv4`' + ) + })() + } + } + exports.defaultSSOHttpAuthSchemeParametersProvider = + defaultSSOHttpAuthSchemeParametersProvider + function createAwsAuthSigv4HttpAuthOption(authParameters) { + return { + schemeId: 'aws.auth#sigv4', + signingProperties: { + name: 'awsssoportal', + region: authParameters.region + }, + propertiesExtractor: (config, context) => ({ + signingProperties: { + config, + context + } + }) + } + } + function createSmithyApiNoAuthHttpAuthOption(authParameters) { + return { + schemeId: 'smithy.api#noAuth' + } + } + const defaultSSOHttpAuthSchemeProvider = authParameters => { + const options = [] + switch (authParameters.operation) { + case 'GetRoleCredentials': { + options.push(createSmithyApiNoAuthHttpAuthOption(authParameters)) + break + } + case 'ListAccountRoles': { + options.push(createSmithyApiNoAuthHttpAuthOption(authParameters)) + break + } + case 'ListAccounts': { + options.push(createSmithyApiNoAuthHttpAuthOption(authParameters)) + break + } + case 'Logout': { + options.push(createSmithyApiNoAuthHttpAuthOption(authParameters)) + break + } + default: { + options.push(createAwsAuthSigv4HttpAuthOption(authParameters)) + } + } + return options + } + exports.defaultSSOHttpAuthSchemeProvider = + defaultSSOHttpAuthSchemeProvider + const resolveHttpAuthSchemeConfig = config => { + const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config) + return Object.assign(config_0, {}) + } + exports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig + + /***/ + }, + + /***/ 16008: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.defaultEndpointResolver = void 0 + const util_endpoints_1 = __nccwpck_require__(24253) + const util_endpoints_2 = __nccwpck_require__(76779) + const ruleset_1 = __nccwpck_require__(49020) + const cache = new util_endpoints_2.EndpointCache({ + size: 50, + params: ['Endpoint', 'Region', 'UseDualStack', 'UseFIPS'] + }) + const defaultEndpointResolver = (endpointParams, context = {}) => { + return cache.get(endpointParams, () => + (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, { + endpointParams: endpointParams, + logger: context.logger + }) + ) + } + exports.defaultEndpointResolver = defaultEndpointResolver + util_endpoints_2.customEndpointFunctions.aws = + util_endpoints_1.awsEndpointFunctions + + /***/ + }, + + /***/ 49020: /***/ (__unused_webpack_module, exports) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.ruleSet = void 0 + const u = 'required', + v = 'fn', + w = 'argv', + x = 'ref' + const a = true, + b = 'isSet', + c = 'booleanEquals', + d = 'error', + e = 'endpoint', + f = 'tree', + g = 'PartitionResult', + h = 'getAttr', + i = { [u]: false, type: 'String' }, + j = { [u]: true, default: false, type: 'Boolean' }, + k = { [x]: 'Endpoint' }, + l = { [v]: c, [w]: [{ [x]: 'UseFIPS' }, true] }, + m = { [v]: c, [w]: [{ [x]: 'UseDualStack' }, true] }, + n = {}, + o = { [v]: h, [w]: [{ [x]: g }, 'supportsFIPS'] }, + p = { [x]: g }, + q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, 'supportsDualStack'] }] }, + r = [l], + s = [m], + t = [{ [x]: 'Region' }] + const _data = { + version: '1.0', + parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, + rules: [ + { + conditions: [{ [v]: b, [w]: [k] }], + rules: [ + { + conditions: r, + error: + 'Invalid Configuration: FIPS and custom endpoint are not supported', + type: d + }, + { + conditions: s, + error: + 'Invalid Configuration: Dualstack and custom endpoint are not supported', + type: d + }, + { endpoint: { url: k, properties: n, headers: n }, type: e } + ], + type: f + }, + { + conditions: [{ [v]: b, [w]: t }], + rules: [ + { + conditions: [{ [v]: 'aws.partition', [w]: t, assign: g }], + rules: [ + { + conditions: [l, m], + rules: [ + { + conditions: [{ [v]: c, [w]: [a, o] }, q], + rules: [ + { + endpoint: { + url: 'https://portal.sso-fips.{Region}.{PartitionResult#dualStackDnsSuffix}', + properties: n, + headers: n + }, + type: e + } + ], + type: f + }, + { + error: + 'FIPS and DualStack are enabled, but this partition does not support one or both', + type: d + } + ], + type: f + }, + { + conditions: r, + rules: [ + { + conditions: [{ [v]: c, [w]: [o, a] }], + rules: [ + { + conditions: [ + { + [v]: 'stringEquals', + [w]: [ + { [v]: h, [w]: [p, 'name'] }, + 'aws-us-gov' + ] + } + ], + endpoint: { + url: 'https://portal.sso.{Region}.amazonaws.com', + properties: n, + headers: n + }, + type: e + }, + { + endpoint: { + url: 'https://portal.sso-fips.{Region}.{PartitionResult#dnsSuffix}', + properties: n, + headers: n + }, + type: e + } + ], + type: f + }, + { + error: + 'FIPS is enabled but this partition does not support FIPS', + type: d + } + ], + type: f + }, + { + conditions: s, + rules: [ + { + conditions: [q], + rules: [ + { + endpoint: { + url: 'https://portal.sso.{Region}.{PartitionResult#dualStackDnsSuffix}', + properties: n, + headers: n + }, + type: e + } + ], + type: f + }, + { + error: + 'DualStack is enabled but this partition does not support DualStack', + type: d + } + ], + type: f + }, + { + endpoint: { + url: 'https://portal.sso.{Region}.{PartitionResult#dnsSuffix}', + properties: n, + headers: n + }, + type: e + } + ], + type: f + } + ], + type: f + }, + { error: 'Invalid Configuration: Missing Region', type: d } + ] + } + exports.ruleSet = _data + + /***/ + }, + + /***/ 11475: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var index_exports = {} + __export(index_exports, { + GetRoleCredentialsCommand: () => GetRoleCredentialsCommand, + GetRoleCredentialsRequestFilterSensitiveLog: () => + GetRoleCredentialsRequestFilterSensitiveLog, + GetRoleCredentialsResponseFilterSensitiveLog: () => + GetRoleCredentialsResponseFilterSensitiveLog, + InvalidRequestException: () => InvalidRequestException, + ListAccountRolesCommand: () => ListAccountRolesCommand, + ListAccountRolesRequestFilterSensitiveLog: () => + ListAccountRolesRequestFilterSensitiveLog, + ListAccountsCommand: () => ListAccountsCommand, + ListAccountsRequestFilterSensitiveLog: () => + ListAccountsRequestFilterSensitiveLog, + LogoutCommand: () => LogoutCommand, + LogoutRequestFilterSensitiveLog: () => LogoutRequestFilterSensitiveLog, + ResourceNotFoundException: () => ResourceNotFoundException, + RoleCredentialsFilterSensitiveLog: () => + RoleCredentialsFilterSensitiveLog, + SSO: () => SSO, + SSOClient: () => SSOClient, + SSOServiceException: () => SSOServiceException, + TooManyRequestsException: () => TooManyRequestsException, + UnauthorizedException: () => UnauthorizedException, + __Client: () => import_smithy_client.Client, + paginateListAccountRoles: () => paginateListAccountRoles, + paginateListAccounts: () => paginateListAccounts + }) + module.exports = __toCommonJS(index_exports) + + // src/SSOClient.ts + var import_middleware_host_header = __nccwpck_require__(11046) + var import_middleware_logger = __nccwpck_require__(26622) + var import_middleware_recursion_detection = __nccwpck_require__(33544) + var import_middleware_user_agent = __nccwpck_require__(9711) + var import_config_resolver = __nccwpck_require__(47517) + var import_core = __nccwpck_require__(27588) + var import_middleware_content_length = __nccwpck_require__(34305) + var import_middleware_endpoint = __nccwpck_require__(13636) + var import_middleware_retry = __nccwpck_require__(74268) + + var import_httpAuthSchemeProvider = __nccwpck_require__(60801) + + // src/endpoint/EndpointParameters.ts + var resolveClientEndpointParameters = /* @__PURE__ */ __name(options => { + return Object.assign(options, { + useDualstackEndpoint: options.useDualstackEndpoint ?? false, + useFipsEndpoint: options.useFipsEndpoint ?? false, + defaultSigningName: 'awsssoportal' + }) + }, 'resolveClientEndpointParameters') + var commonParams = { + UseFIPS: { type: 'builtInParams', name: 'useFipsEndpoint' }, + Endpoint: { type: 'builtInParams', name: 'endpoint' }, + Region: { type: 'builtInParams', name: 'region' }, + UseDualStack: { type: 'builtInParams', name: 'useDualstackEndpoint' } + } + + // src/SSOClient.ts + var import_runtimeConfig = __nccwpck_require__(79833) + + // src/runtimeExtensions.ts + var import_region_config_resolver = __nccwpck_require__(56088) + var import_protocol_http = __nccwpck_require__(31788) + var import_smithy_client = __nccwpck_require__(76583) + + // src/auth/httpAuthExtensionConfiguration.ts + var getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name( + runtimeConfig => { + const _httpAuthSchemes = runtimeConfig.httpAuthSchemes + let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider + let _credentials = runtimeConfig.credentials + return { + setHttpAuthScheme(httpAuthScheme) { + const index = _httpAuthSchemes.findIndex( + scheme => scheme.schemeId === httpAuthScheme.schemeId + ) + if (index === -1) { + _httpAuthSchemes.push(httpAuthScheme) + } else { + _httpAuthSchemes.splice(index, 1, httpAuthScheme) + } + }, + httpAuthSchemes() { + return _httpAuthSchemes + }, + setHttpAuthSchemeProvider(httpAuthSchemeProvider) { + _httpAuthSchemeProvider = httpAuthSchemeProvider + }, + httpAuthSchemeProvider() { + return _httpAuthSchemeProvider + }, + setCredentials(credentials) { + _credentials = credentials + }, + credentials() { + return _credentials + } + } + }, + 'getHttpAuthExtensionConfiguration' + ) + var resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name(config => { + return { + httpAuthSchemes: config.httpAuthSchemes(), + httpAuthSchemeProvider: config.httpAuthSchemeProvider(), + credentials: config.credentials() + } + }, 'resolveHttpAuthRuntimeConfig') + + // src/runtimeExtensions.ts + var resolveRuntimeExtensions = /* @__PURE__ */ __name( + (runtimeConfig, extensions) => { + const extensionConfiguration = Object.assign( + (0, + import_region_config_resolver.getAwsRegionExtensionConfiguration)( + runtimeConfig + ), + (0, import_smithy_client.getDefaultExtensionConfiguration)( + runtimeConfig + ), + (0, import_protocol_http.getHttpHandlerExtensionConfiguration)( + runtimeConfig + ), + getHttpAuthExtensionConfiguration(runtimeConfig) + ) + extensions.forEach(extension => + extension.configure(extensionConfiguration) + ) + return Object.assign( + runtimeConfig, + (0, + import_region_config_resolver.resolveAwsRegionExtensionConfiguration)( + extensionConfiguration + ), + (0, import_smithy_client.resolveDefaultRuntimeConfig)( + extensionConfiguration + ), + (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)( + extensionConfiguration + ), + resolveHttpAuthRuntimeConfig(extensionConfiguration) + ) + }, + 'resolveRuntimeExtensions' + ) + + // src/SSOClient.ts + var SSOClient = class extends import_smithy_client.Client { + static { + __name(this, 'SSOClient') + } + /** + * The resolved configuration of SSOClient class. This is resolved and normalized from the {@link SSOClientConfig | constructor configuration interface}. + */ + config + constructor(...[configuration]) { + const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)( + configuration || {} + ) + super(_config_0) + this.initConfig = _config_0 + const _config_1 = resolveClientEndpointParameters(_config_0) + const _config_2 = (0, + import_middleware_user_agent.resolveUserAgentConfig)(_config_1) + const _config_3 = (0, import_middleware_retry.resolveRetryConfig)( + _config_2 + ) + const _config_4 = (0, import_config_resolver.resolveRegionConfig)( + _config_3 + ) + const _config_5 = (0, + import_middleware_host_header.resolveHostHeaderConfig)(_config_4) + const _config_6 = (0, + import_middleware_endpoint.resolveEndpointConfig)(_config_5) + const _config_7 = (0, + import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6) + const _config_8 = resolveRuntimeExtensions( + _config_7, + configuration?.extensions || [] + ) + this.config = _config_8 + this.middlewareStack.use( + (0, import_middleware_user_agent.getUserAgentPlugin)(this.config) + ) + this.middlewareStack.use( + (0, import_middleware_retry.getRetryPlugin)(this.config) + ) + this.middlewareStack.use( + (0, import_middleware_content_length.getContentLengthPlugin)( + this.config + ) + ) + this.middlewareStack.use( + (0, import_middleware_host_header.getHostHeaderPlugin)(this.config) + ) + this.middlewareStack.use( + (0, import_middleware_logger.getLoggerPlugin)(this.config) + ) + this.middlewareStack.use( + (0, + import_middleware_recursion_detection.getRecursionDetectionPlugin)( + this.config + ) + ) + this.middlewareStack.use( + (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)( + this.config, + { + httpAuthSchemeParametersProvider: + import_httpAuthSchemeProvider.defaultSSOHttpAuthSchemeParametersProvider, + identityProviderConfigProvider: /* @__PURE__ */ __name( + async config => + new import_core.DefaultIdentityProviderConfig({ + 'aws.auth#sigv4': config.credentials + }), + 'identityProviderConfigProvider' + ) + } + ) + ) + this.middlewareStack.use( + (0, import_core.getHttpSigningPlugin)(this.config) + ) + } + /** + * Destroy underlying resources, like sockets. It's usually not necessary to do this. + * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed. + * Otherwise, sockets might stay open for quite a long time before the server terminates them. + */ + destroy() { + super.destroy() + } + } + + // src/SSO.ts + + // src/commands/GetRoleCredentialsCommand.ts + + var import_middleware_serde = __nccwpck_require__(88037) + + // src/models/models_0.ts + + // src/models/SSOServiceException.ts + + var SSOServiceException = class _SSOServiceException + extends import_smithy_client.ServiceException + { + static { + __name(this, 'SSOServiceException') + } + /** + * @internal + */ + constructor(options) { + super(options) + Object.setPrototypeOf(this, _SSOServiceException.prototype) + } + } + + // src/models/models_0.ts + var InvalidRequestException = class _InvalidRequestException extends SSOServiceException { + static { + __name(this, 'InvalidRequestException') + } + name = 'InvalidRequestException' + $fault = 'client' + /** + * @internal + */ + constructor(opts) { + super({ + name: 'InvalidRequestException', + $fault: 'client', + ...opts + }) + Object.setPrototypeOf(this, _InvalidRequestException.prototype) + } + } + var ResourceNotFoundException = class _ResourceNotFoundException extends SSOServiceException { + static { + __name(this, 'ResourceNotFoundException') + } + name = 'ResourceNotFoundException' + $fault = 'client' + /** + * @internal + */ + constructor(opts) { + super({ + name: 'ResourceNotFoundException', + $fault: 'client', + ...opts + }) + Object.setPrototypeOf(this, _ResourceNotFoundException.prototype) + } + } + var TooManyRequestsException = class _TooManyRequestsException extends SSOServiceException { + static { + __name(this, 'TooManyRequestsException') + } + name = 'TooManyRequestsException' + $fault = 'client' + /** + * @internal + */ + constructor(opts) { + super({ + name: 'TooManyRequestsException', + $fault: 'client', + ...opts + }) + Object.setPrototypeOf(this, _TooManyRequestsException.prototype) + } + } + var UnauthorizedException = class _UnauthorizedException extends SSOServiceException { + static { + __name(this, 'UnauthorizedException') + } + name = 'UnauthorizedException' + $fault = 'client' + /** + * @internal + */ + constructor(opts) { + super({ + name: 'UnauthorizedException', + $fault: 'client', + ...opts + }) + Object.setPrototypeOf(this, _UnauthorizedException.prototype) + } + } + var GetRoleCredentialsRequestFilterSensitiveLog = /* @__PURE__ */ __name( + obj => ({ + ...obj, + ...(obj.accessToken && { + accessToken: import_smithy_client.SENSITIVE_STRING + }) + }), + 'GetRoleCredentialsRequestFilterSensitiveLog' + ) + var RoleCredentialsFilterSensitiveLog = /* @__PURE__ */ __name( + obj => ({ + ...obj, + ...(obj.secretAccessKey && { + secretAccessKey: import_smithy_client.SENSITIVE_STRING + }), + ...(obj.sessionToken && { + sessionToken: import_smithy_client.SENSITIVE_STRING + }) + }), + 'RoleCredentialsFilterSensitiveLog' + ) + var GetRoleCredentialsResponseFilterSensitiveLog = /* @__PURE__ */ __name( + obj => ({ + ...obj, + ...(obj.roleCredentials && { + roleCredentials: RoleCredentialsFilterSensitiveLog( + obj.roleCredentials + ) + }) + }), + 'GetRoleCredentialsResponseFilterSensitiveLog' + ) + var ListAccountRolesRequestFilterSensitiveLog = /* @__PURE__ */ __name( + obj => ({ + ...obj, + ...(obj.accessToken && { + accessToken: import_smithy_client.SENSITIVE_STRING + }) + }), + 'ListAccountRolesRequestFilterSensitiveLog' + ) + var ListAccountsRequestFilterSensitiveLog = /* @__PURE__ */ __name( + obj => ({ + ...obj, + ...(obj.accessToken && { + accessToken: import_smithy_client.SENSITIVE_STRING + }) + }), + 'ListAccountsRequestFilterSensitiveLog' + ) + var LogoutRequestFilterSensitiveLog = /* @__PURE__ */ __name( + obj => ({ + ...obj, + ...(obj.accessToken && { + accessToken: import_smithy_client.SENSITIVE_STRING + }) + }), + 'LogoutRequestFilterSensitiveLog' + ) + + // src/protocols/Aws_restJson1.ts + var import_core2 = __nccwpck_require__(69736) + + var se_GetRoleCredentialsCommand = /* @__PURE__ */ __name( + async (input, context) => { + const b = (0, import_core.requestBuilder)(input, context) + const headers = (0, import_smithy_client.map)( + {}, + import_smithy_client.isSerializableHeaderValue, + { + [_xasbt]: input[_aT] + } + ) + b.bp('/federation/credentials') + const query = (0, import_smithy_client.map)({ + [_rn]: [ + , + (0, import_smithy_client.expectNonNull)(input[_rN], `roleName`) + ], + [_ai]: [ + , + (0, import_smithy_client.expectNonNull)(input[_aI], `accountId`) + ] + }) + let body + b.m('GET').h(headers).q(query).b(body) + return b.build() + }, + 'se_GetRoleCredentialsCommand' + ) + var se_ListAccountRolesCommand = /* @__PURE__ */ __name( + async (input, context) => { + const b = (0, import_core.requestBuilder)(input, context) + const headers = (0, import_smithy_client.map)( + {}, + import_smithy_client.isSerializableHeaderValue, + { + [_xasbt]: input[_aT] + } + ) + b.bp('/assignment/roles') + const query = (0, import_smithy_client.map)({ + [_nt]: [, input[_nT]], + [_mr]: [ + () => input.maxResults !== void 0, + () => input[_mR].toString() + ], + [_ai]: [ + , + (0, import_smithy_client.expectNonNull)(input[_aI], `accountId`) + ] + }) + let body + b.m('GET').h(headers).q(query).b(body) + return b.build() + }, + 'se_ListAccountRolesCommand' + ) + var se_ListAccountsCommand = /* @__PURE__ */ __name( + async (input, context) => { + const b = (0, import_core.requestBuilder)(input, context) + const headers = (0, import_smithy_client.map)( + {}, + import_smithy_client.isSerializableHeaderValue, + { + [_xasbt]: input[_aT] + } + ) + b.bp('/assignment/accounts') + const query = (0, import_smithy_client.map)({ + [_nt]: [, input[_nT]], + [_mr]: [ + () => input.maxResults !== void 0, + () => input[_mR].toString() + ] + }) + let body + b.m('GET').h(headers).q(query).b(body) + return b.build() + }, + 'se_ListAccountsCommand' + ) + var se_LogoutCommand = /* @__PURE__ */ __name(async (input, context) => { + const b = (0, import_core.requestBuilder)(input, context) + const headers = (0, import_smithy_client.map)( + {}, + import_smithy_client.isSerializableHeaderValue, + { + [_xasbt]: input[_aT] + } + ) + b.bp('/logout') + let body + b.m('POST').h(headers).b(body) + return b.build() + }, 'se_LogoutCommand') + var de_GetRoleCredentialsCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context) + } + const contents = (0, import_smithy_client.map)({ + $metadata: deserializeMetadata(output) + }) + const data = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.expectObject)( + await (0, import_core2.parseJsonBody)(output.body, context) + ), + 'body' + ) + const doc = (0, import_smithy_client.take)(data, { + roleCredentials: import_smithy_client._json + }) + Object.assign(contents, doc) + return contents + }, + 'de_GetRoleCredentialsCommand' + ) + var de_ListAccountRolesCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context) + } + const contents = (0, import_smithy_client.map)({ + $metadata: deserializeMetadata(output) + }) + const data = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.expectObject)( + await (0, import_core2.parseJsonBody)(output.body, context) + ), + 'body' + ) + const doc = (0, import_smithy_client.take)(data, { + nextToken: import_smithy_client.expectString, + roleList: import_smithy_client._json + }) + Object.assign(contents, doc) + return contents + }, + 'de_ListAccountRolesCommand' + ) + var de_ListAccountsCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context) + } + const contents = (0, import_smithy_client.map)({ + $metadata: deserializeMetadata(output) + }) + const data = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.expectObject)( + await (0, import_core2.parseJsonBody)(output.body, context) + ), + 'body' + ) + const doc = (0, import_smithy_client.take)(data, { + accountList: import_smithy_client._json, + nextToken: import_smithy_client.expectString + }) + Object.assign(contents, doc) + return contents + }, + 'de_ListAccountsCommand' + ) + var de_LogoutCommand = /* @__PURE__ */ __name(async (output, context) => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context) + } + const contents = (0, import_smithy_client.map)({ + $metadata: deserializeMetadata(output) + }) + await (0, import_smithy_client.collectBody)(output.body, context) + return contents + }, 'de_LogoutCommand') + var de_CommandError = /* @__PURE__ */ __name(async (output, context) => { + const parsedOutput = { + ...output, + body: await (0, import_core2.parseJsonErrorBody)(output.body, context) + } + const errorCode = (0, import_core2.loadRestJsonErrorCode)( + output, + parsedOutput.body + ) + switch (errorCode) { + case 'InvalidRequestException': + case 'com.amazonaws.sso#InvalidRequestException': + throw await de_InvalidRequestExceptionRes(parsedOutput, context) + case 'ResourceNotFoundException': + case 'com.amazonaws.sso#ResourceNotFoundException': + throw await de_ResourceNotFoundExceptionRes(parsedOutput, context) + case 'TooManyRequestsException': + case 'com.amazonaws.sso#TooManyRequestsException': + throw await de_TooManyRequestsExceptionRes(parsedOutput, context) + case 'UnauthorizedException': + case 'com.amazonaws.sso#UnauthorizedException': + throw await de_UnauthorizedExceptionRes(parsedOutput, context) + default: + const parsedBody = parsedOutput.body + return throwDefaultError({ + output, + parsedBody, + errorCode + }) + } + }, 'de_CommandError') + var throwDefaultError = (0, import_smithy_client.withBaseException)( + SSOServiceException + ) + var de_InvalidRequestExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const contents = (0, import_smithy_client.map)({}) + const data = parsedOutput.body + const doc = (0, import_smithy_client.take)(data, { + message: import_smithy_client.expectString + }) + Object.assign(contents, doc) + const exception = new InvalidRequestException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + parsedOutput.body + ) + }, + 'de_InvalidRequestExceptionRes' + ) + var de_ResourceNotFoundExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const contents = (0, import_smithy_client.map)({}) + const data = parsedOutput.body + const doc = (0, import_smithy_client.take)(data, { + message: import_smithy_client.expectString + }) + Object.assign(contents, doc) + const exception = new ResourceNotFoundException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + parsedOutput.body + ) + }, + 'de_ResourceNotFoundExceptionRes' + ) + var de_TooManyRequestsExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const contents = (0, import_smithy_client.map)({}) + const data = parsedOutput.body + const doc = (0, import_smithy_client.take)(data, { + message: import_smithy_client.expectString + }) + Object.assign(contents, doc) + const exception = new TooManyRequestsException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + parsedOutput.body + ) + }, + 'de_TooManyRequestsExceptionRes' + ) + var de_UnauthorizedExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const contents = (0, import_smithy_client.map)({}) + const data = parsedOutput.body + const doc = (0, import_smithy_client.take)(data, { + message: import_smithy_client.expectString + }) + Object.assign(contents, doc) + const exception = new UnauthorizedException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + parsedOutput.body + ) + }, + 'de_UnauthorizedExceptionRes' + ) + var deserializeMetadata = /* @__PURE__ */ __name( + output => ({ + httpStatusCode: output.statusCode, + requestId: + output.headers['x-amzn-requestid'] ?? + output.headers['x-amzn-request-id'] ?? + output.headers['x-amz-request-id'], + extendedRequestId: output.headers['x-amz-id-2'], + cfId: output.headers['x-amz-cf-id'] + }), + 'deserializeMetadata' + ) + var _aI = 'accountId' + var _aT = 'accessToken' + var _ai = 'account_id' + var _mR = 'maxResults' + var _mr = 'max_result' + var _nT = 'nextToken' + var _nt = 'next_token' + var _rN = 'roleName' + var _rn = 'role_name' + var _xasbt = 'x-amz-sso_bearer_token' + + // src/commands/GetRoleCredentialsCommand.ts + var GetRoleCredentialsCommand = class extends import_smithy_client.Command.classBuilder() + .ep(commonParams) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('SWBPortalService', 'GetRoleCredentials', {}) + .n('SSOClient', 'GetRoleCredentialsCommand') + .f( + GetRoleCredentialsRequestFilterSensitiveLog, + GetRoleCredentialsResponseFilterSensitiveLog + ) + .ser(se_GetRoleCredentialsCommand) + .de(de_GetRoleCredentialsCommand) + .build() { + static { + __name(this, 'GetRoleCredentialsCommand') + } + } + + // src/commands/ListAccountRolesCommand.ts + + var ListAccountRolesCommand = class extends import_smithy_client.Command.classBuilder() + .ep(commonParams) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('SWBPortalService', 'ListAccountRoles', {}) + .n('SSOClient', 'ListAccountRolesCommand') + .f(ListAccountRolesRequestFilterSensitiveLog, void 0) + .ser(se_ListAccountRolesCommand) + .de(de_ListAccountRolesCommand) + .build() { + static { + __name(this, 'ListAccountRolesCommand') + } + } + + // src/commands/ListAccountsCommand.ts + + var ListAccountsCommand = class extends import_smithy_client.Command.classBuilder() + .ep(commonParams) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('SWBPortalService', 'ListAccounts', {}) + .n('SSOClient', 'ListAccountsCommand') + .f(ListAccountsRequestFilterSensitiveLog, void 0) + .ser(se_ListAccountsCommand) + .de(de_ListAccountsCommand) + .build() { + static { + __name(this, 'ListAccountsCommand') + } + } + + // src/commands/LogoutCommand.ts + + var LogoutCommand = class extends import_smithy_client.Command.classBuilder() + .ep(commonParams) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('SWBPortalService', 'Logout', {}) + .n('SSOClient', 'LogoutCommand') + .f(LogoutRequestFilterSensitiveLog, void 0) + .ser(se_LogoutCommand) + .de(de_LogoutCommand) + .build() { + static { + __name(this, 'LogoutCommand') + } + } + + // src/SSO.ts + var commands = { + GetRoleCredentialsCommand, + ListAccountRolesCommand, + ListAccountsCommand, + LogoutCommand + } + var SSO = class extends SSOClient { + static { + __name(this, 'SSO') + } + } + ;(0, import_smithy_client.createAggregatedClient)(commands, SSO) + + // src/pagination/ListAccountRolesPaginator.ts + + var paginateListAccountRoles = (0, import_core.createPaginator)( + SSOClient, + ListAccountRolesCommand, + 'nextToken', + 'nextToken', + 'maxResults' + ) + + // src/pagination/ListAccountsPaginator.ts + + var paginateListAccounts = (0, import_core.createPaginator)( + SSOClient, + ListAccountsCommand, + 'nextToken', + 'nextToken', + 'maxResults' + ) + // Annotate the CommonJS export names for ESM import in node: + + 0 && 0 + + /***/ + }, + + /***/ 79833: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getRuntimeConfig = void 0 + const tslib_1 = __nccwpck_require__(4351) + const package_json_1 = tslib_1.__importDefault(__nccwpck_require__(97480)) + const core_1 = __nccwpck_require__(69736) + const util_user_agent_node_1 = __nccwpck_require__(37896) + const config_resolver_1 = __nccwpck_require__(47517) + const hash_node_1 = __nccwpck_require__(52998) + const middleware_retry_1 = __nccwpck_require__(74268) + const node_config_provider_1 = __nccwpck_require__(6706) + const node_http_handler_1 = __nccwpck_require__(55239) + const util_body_length_node_1 = __nccwpck_require__(10327) + const util_retry_1 = __nccwpck_require__(31955) + const runtimeConfig_shared_1 = __nccwpck_require__(88214) + const smithy_client_1 = __nccwpck_require__(76583) + const util_defaults_mode_node_1 = __nccwpck_require__(32855) + const smithy_client_2 = __nccwpck_require__(76583) + const getRuntimeConfig = config => { + ;(0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version) + const defaultsMode = (0, + util_defaults_mode_node_1.resolveDefaultsModeConfig)(config) + const defaultConfigProvider = () => + defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode) + const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)( + config + ) + ;(0, core_1.emitWarningIfUnsupportedVersion)(process.version) + const profileConfig = { profile: config?.profile } + return { + ...clientSharedValues, + ...config, + runtime: 'node', + defaultsMode, + bodyLengthChecker: + config?.bodyLengthChecker ?? + util_body_length_node_1.calculateBodyLength, + defaultUserAgentProvider: + config?.defaultUserAgentProvider ?? + (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ + serviceId: clientSharedValues.serviceId, + clientVersion: package_json_1.default.version + }), + maxAttempts: + config?.maxAttempts ?? + (0, node_config_provider_1.loadConfig)( + middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, + config + ), + region: + config?.region ?? + (0, node_config_provider_1.loadConfig)( + config_resolver_1.NODE_REGION_CONFIG_OPTIONS, + { + ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, + ...profileConfig + } + ), + requestHandler: node_http_handler_1.NodeHttpHandler.create( + config?.requestHandler ?? defaultConfigProvider + ), + retryMode: + config?.retryMode ?? + (0, node_config_provider_1.loadConfig)( + { + ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS, + default: async () => + (await defaultConfigProvider()).retryMode || + util_retry_1.DEFAULT_RETRY_MODE + }, + config + ), + sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, 'sha256'), + streamCollector: + config?.streamCollector ?? node_http_handler_1.streamCollector, + useDualstackEndpoint: + config?.useDualstackEndpoint ?? + (0, node_config_provider_1.loadConfig)( + config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, + profileConfig + ), + useFipsEndpoint: + config?.useFipsEndpoint ?? + (0, node_config_provider_1.loadConfig)( + config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, + profileConfig + ), + userAgentAppId: + config?.userAgentAppId ?? + (0, node_config_provider_1.loadConfig)( + util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, + profileConfig + ) + } + } + exports.getRuntimeConfig = getRuntimeConfig + + /***/ + }, + + /***/ 88214: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getRuntimeConfig = void 0 + const core_1 = __nccwpck_require__(69736) + const core_2 = __nccwpck_require__(27588) + const smithy_client_1 = __nccwpck_require__(76583) + const url_parser_1 = __nccwpck_require__(57247) + const util_base64_1 = __nccwpck_require__(87656) + const util_utf8_1 = __nccwpck_require__(94377) + const httpAuthSchemeProvider_1 = __nccwpck_require__(60801) + const endpointResolver_1 = __nccwpck_require__(16008) + const getRuntimeConfig = config => { + return { + apiVersion: '2019-06-10', + base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64, + base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64, + disableHostPrefix: config?.disableHostPrefix ?? false, + endpointProvider: + config?.endpointProvider ?? + endpointResolver_1.defaultEndpointResolver, + extensions: config?.extensions ?? [], + httpAuthSchemeProvider: + config?.httpAuthSchemeProvider ?? + httpAuthSchemeProvider_1.defaultSSOHttpAuthSchemeProvider, + httpAuthSchemes: config?.httpAuthSchemes ?? [ + { + schemeId: 'aws.auth#sigv4', + identityProvider: ipc => + ipc.getIdentityProvider('aws.auth#sigv4'), + signer: new core_1.AwsSdkSigV4Signer() + }, + { + schemeId: 'smithy.api#noAuth', + identityProvider: ipc => + ipc.getIdentityProvider('smithy.api#noAuth') || + (async () => ({})), + signer: new core_2.NoAuthSigner() + } + ], + logger: config?.logger ?? new smithy_client_1.NoOpLogger(), + serviceId: config?.serviceId ?? 'SSO', + urlParser: config?.urlParser ?? url_parser_1.parseUrl, + utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8, + utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8 + } + } + exports.getRuntimeConfig = getRuntimeConfig + + /***/ + }, + + /***/ 69736: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + const tslib_1 = __nccwpck_require__(4351) + tslib_1.__exportStar(__nccwpck_require__(60034), exports) + tslib_1.__exportStar(__nccwpck_require__(39759), exports) + tslib_1.__exportStar(__nccwpck_require__(29359), exports) + + /***/ + }, + + /***/ 60034: /***/ module => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/submodules/client/index.ts + var index_exports = {} + __export(index_exports, { + emitWarningIfUnsupportedVersion: () => emitWarningIfUnsupportedVersion, + setCredentialFeature: () => setCredentialFeature, + setFeature: () => setFeature, + state: () => state + }) + module.exports = __toCommonJS(index_exports) + + // src/submodules/client/emitWarningIfUnsupportedVersion.ts + var state = { + warningEmitted: false + } + var emitWarningIfUnsupportedVersion = /* @__PURE__ */ __name(version => { + if ( + version && + !state.warningEmitted && + parseInt(version.substring(1, version.indexOf('.'))) < 18 + ) { + state.warningEmitted = true + process.emitWarning( + `NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will +no longer support Node.js 16.x on January 6, 2025. + +To continue receiving updates to AWS services, bug fixes, and security +updates please upgrade to a supported Node.js LTS version. + +More information can be found at: https://a.co/74kJMmI` + ) + } + }, 'emitWarningIfUnsupportedVersion') + + // src/submodules/client/setCredentialFeature.ts + function setCredentialFeature(credentials, feature, value) { + if (!credentials.$source) { + credentials.$source = {} + } + credentials.$source[feature] = value + return credentials + } + __name(setCredentialFeature, 'setCredentialFeature') + + // src/submodules/client/setFeature.ts + function setFeature(context, feature, value) { + if (!context.__aws_sdk_context) { + context.__aws_sdk_context = { + features: {} + } + } else if (!context.__aws_sdk_context.features) { + context.__aws_sdk_context.features = {} + } + context.__aws_sdk_context.features[feature] = value + } + __name(setFeature, 'setFeature') + // Annotate the CommonJS export names for ESM import in node: + 0 && 0 + + /***/ + }, + + /***/ 39759: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/submodules/httpAuthSchemes/index.ts + var index_exports = {} + __export(index_exports, { + AWSSDKSigV4Signer: () => AWSSDKSigV4Signer, + AwsSdkSigV4ASigner: () => AwsSdkSigV4ASigner, + AwsSdkSigV4Signer: () => AwsSdkSigV4Signer, + NODE_SIGV4A_CONFIG_OPTIONS: () => NODE_SIGV4A_CONFIG_OPTIONS, + resolveAWSSDKSigV4Config: () => resolveAWSSDKSigV4Config, + resolveAwsSdkSigV4AConfig: () => resolveAwsSdkSigV4AConfig, + resolveAwsSdkSigV4Config: () => resolveAwsSdkSigV4Config, + validateSigningProperties: () => validateSigningProperties + }) + module.exports = __toCommonJS(index_exports) + + // src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts + var import_protocol_http2 = __nccwpck_require__(31788) + + // src/submodules/httpAuthSchemes/utils/getDateHeader.ts + var import_protocol_http = __nccwpck_require__(31788) + var getDateHeader = /* @__PURE__ */ __name( + response => + import_protocol_http.HttpResponse.isInstance(response) + ? (response.headers?.date ?? response.headers?.Date) + : void 0, + 'getDateHeader' + ) + + // src/submodules/httpAuthSchemes/utils/getSkewCorrectedDate.ts + var getSkewCorrectedDate = /* @__PURE__ */ __name( + systemClockOffset => new Date(Date.now() + systemClockOffset), + 'getSkewCorrectedDate' + ) + + // src/submodules/httpAuthSchemes/utils/isClockSkewed.ts + var isClockSkewed = /* @__PURE__ */ __name( + (clockTime, systemClockOffset) => + Math.abs( + getSkewCorrectedDate(systemClockOffset).getTime() - clockTime + ) >= 3e5, + 'isClockSkewed' + ) + + // src/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.ts + var getUpdatedSystemClockOffset = /* @__PURE__ */ __name( + (clockTime, currentSystemClockOffset) => { + const clockTimeInMs = Date.parse(clockTime) + if (isClockSkewed(clockTimeInMs, currentSystemClockOffset)) { + return clockTimeInMs - Date.now() + } + return currentSystemClockOffset + }, + 'getUpdatedSystemClockOffset' + ) + + // src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts + var throwSigningPropertyError = /* @__PURE__ */ __name( + (name, property) => { + if (!property) { + throw new Error( + `Property \`${name}\` is not resolved for AWS SDK SigV4Auth` + ) + } + return property + }, + 'throwSigningPropertyError' + ) + var validateSigningProperties = /* @__PURE__ */ __name( + async signingProperties => { + const context = throwSigningPropertyError( + 'context', + signingProperties.context + ) + const config = throwSigningPropertyError( + 'config', + signingProperties.config + ) + const authScheme = context.endpointV2?.properties?.authSchemes?.[0] + const signerFunction = throwSigningPropertyError( + 'signer', + config.signer + ) + const signer = await signerFunction(authScheme) + const signingRegion = signingProperties?.signingRegion + const signingRegionSet = signingProperties?.signingRegionSet + const signingName = signingProperties?.signingName + return { + config, + signer, + signingRegion, + signingRegionSet, + signingName + } + }, + 'validateSigningProperties' + ) + var AwsSdkSigV4Signer = class { + static { + __name(this, 'AwsSdkSigV4Signer') + } + async sign(httpRequest, identity, signingProperties) { + if (!import_protocol_http2.HttpRequest.isInstance(httpRequest)) { + throw new Error( + 'The request is not an instance of `HttpRequest` and cannot be signed' + ) + } + const validatedProps = + await validateSigningProperties(signingProperties) + const { config, signer } = validatedProps + let { signingRegion, signingName } = validatedProps + const handlerExecutionContext = signingProperties.context + if (handlerExecutionContext?.authSchemes?.length ?? 0 > 1) { + const [first, second] = handlerExecutionContext.authSchemes + if (first?.name === 'sigv4a' && second?.name === 'sigv4') { + signingRegion = second?.signingRegion ?? signingRegion + signingName = second?.signingName ?? signingName + } + } + const signedRequest = await signer.sign(httpRequest, { + signingDate: getSkewCorrectedDate(config.systemClockOffset), + signingRegion, + signingService: signingName + }) + return signedRequest + } + errorHandler(signingProperties) { + return error => { + const serverTime = + error.ServerTime ?? getDateHeader(error.$response) + if (serverTime) { + const config = throwSigningPropertyError( + 'config', + signingProperties.config + ) + const initialSystemClockOffset = config.systemClockOffset + config.systemClockOffset = getUpdatedSystemClockOffset( + serverTime, + config.systemClockOffset + ) + const clockSkewCorrected = + config.systemClockOffset !== initialSystemClockOffset + if (clockSkewCorrected && error.$metadata) { + error.$metadata.clockSkewCorrected = true + } + } + throw error + } + } + successHandler(httpResponse, signingProperties) { + const dateHeader = getDateHeader(httpResponse) + if (dateHeader) { + const config = throwSigningPropertyError( + 'config', + signingProperties.config + ) + config.systemClockOffset = getUpdatedSystemClockOffset( + dateHeader, + config.systemClockOffset + ) + } + } + } + var AWSSDKSigV4Signer = AwsSdkSigV4Signer + + // src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.ts + var import_protocol_http3 = __nccwpck_require__(31788) + var AwsSdkSigV4ASigner = class extends AwsSdkSigV4Signer { + static { + __name(this, 'AwsSdkSigV4ASigner') + } + async sign(httpRequest, identity, signingProperties) { + if (!import_protocol_http3.HttpRequest.isInstance(httpRequest)) { + throw new Error( + 'The request is not an instance of `HttpRequest` and cannot be signed' + ) + } + const { + config, + signer, + signingRegion, + signingRegionSet, + signingName + } = await validateSigningProperties(signingProperties) + const configResolvedSigningRegionSet = + await config.sigv4aSigningRegionSet?.() + const multiRegionOverride = ( + configResolvedSigningRegionSet ?? + signingRegionSet ?? [signingRegion] + ).join(',') + const signedRequest = await signer.sign(httpRequest, { + signingDate: getSkewCorrectedDate(config.systemClockOffset), + signingRegion: multiRegionOverride, + signingService: signingName + }) + return signedRequest + } + } + + // src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4AConfig.ts + var import_core = __nccwpck_require__(27588) + var import_property_provider = __nccwpck_require__(19248) + var resolveAwsSdkSigV4AConfig = /* @__PURE__ */ __name(config => { + config.sigv4aSigningRegionSet = (0, import_core.normalizeProvider)( + config.sigv4aSigningRegionSet + ) + return config + }, 'resolveAwsSdkSigV4AConfig') + var NODE_SIGV4A_CONFIG_OPTIONS = { + environmentVariableSelector(env) { + if (env.AWS_SIGV4A_SIGNING_REGION_SET) { + return env.AWS_SIGV4A_SIGNING_REGION_SET.split(',').map(_ => + _.trim() + ) + } + throw new import_property_provider.ProviderError( + 'AWS_SIGV4A_SIGNING_REGION_SET not set in env.', + { + tryNextLink: true + } + ) + }, + configFileSelector(profile) { + if (profile.sigv4a_signing_region_set) { + return (profile.sigv4a_signing_region_set ?? '') + .split(',') + .map(_ => _.trim()) + } + throw new import_property_provider.ProviderError( + 'sigv4a_signing_region_set not set in profile.', + { + tryNextLink: true + } + ) + }, + default: void 0 + } + + // src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.ts + var import_client = __nccwpck_require__(60034) + var import_core2 = __nccwpck_require__(27588) + var import_signature_v4 = __nccwpck_require__(78313) + var resolveAwsSdkSigV4Config = /* @__PURE__ */ __name(config => { + let inputCredentials = config.credentials + let isUserSupplied = !!config.credentials + let resolvedCredentials = void 0 + Object.defineProperty(config, 'credentials', { + set(credentials) { + if ( + credentials && + credentials !== inputCredentials && + credentials !== resolvedCredentials + ) { + isUserSupplied = true + } + inputCredentials = credentials + const memoizedProvider = normalizeCredentialProvider(config, { + credentials: inputCredentials, + credentialDefaultProvider: config.credentialDefaultProvider + }) + const boundProvider = bindCallerConfig(config, memoizedProvider) + if (isUserSupplied && !boundProvider.attributed) { + resolvedCredentials = /* @__PURE__ */ __name( + async options => + boundProvider(options).then(creds => + (0, import_client.setCredentialFeature)( + creds, + 'CREDENTIALS_CODE', + 'e' + ) + ), + 'resolvedCredentials' + ) + resolvedCredentials.memoized = boundProvider.memoized + resolvedCredentials.configBound = boundProvider.configBound + resolvedCredentials.attributed = true + } else { + resolvedCredentials = boundProvider + } + }, + get() { + return resolvedCredentials + }, + enumerable: true, + configurable: true + }) + config.credentials = inputCredentials + const { + // Default for signingEscapePath + signingEscapePath = true, + // Default for systemClockOffset + systemClockOffset = config.systemClockOffset || 0, + // No default for sha256 since it is platform dependent + sha256 + } = config + let signer + if (config.signer) { + signer = (0, import_core2.normalizeProvider)(config.signer) + } else if (config.regionInfoProvider) { + signer = /* @__PURE__ */ __name( + () => + (0, import_core2.normalizeProvider)(config.region)() + .then(async region => [ + (await config.regionInfoProvider(region, { + useFipsEndpoint: await config.useFipsEndpoint(), + useDualstackEndpoint: await config.useDualstackEndpoint() + })) || {}, + region + ]) + .then(([regionInfo, region]) => { + const { signingRegion, signingService } = regionInfo + config.signingRegion = + config.signingRegion || signingRegion || region + config.signingName = + config.signingName || signingService || config.serviceId + const params = { + ...config, + credentials: config.credentials, + region: config.signingRegion, + service: config.signingName, + sha256, + uriEscapePath: signingEscapePath + } + const SignerCtor = + config.signerConstructor || import_signature_v4.SignatureV4 + return new SignerCtor(params) + }), + 'signer' + ) + } else { + signer = /* @__PURE__ */ __name(async authScheme => { + authScheme = Object.assign( + {}, + { + name: 'sigv4', + signingName: config.signingName || config.defaultSigningName, + signingRegion: await (0, import_core2.normalizeProvider)( + config.region + )(), + properties: {} + }, + authScheme + ) + const signingRegion = authScheme.signingRegion + const signingService = authScheme.signingName + config.signingRegion = config.signingRegion || signingRegion + config.signingName = + config.signingName || signingService || config.serviceId + const params = { + ...config, + credentials: config.credentials, + region: config.signingRegion, + service: config.signingName, + sha256, + uriEscapePath: signingEscapePath + } + const SignerCtor = + config.signerConstructor || import_signature_v4.SignatureV4 + return new SignerCtor(params) + }, 'signer') + } + const resolvedConfig = Object.assign(config, { + systemClockOffset, + signingEscapePath, + signer + }) + return resolvedConfig + }, 'resolveAwsSdkSigV4Config') + var resolveAWSSDKSigV4Config = resolveAwsSdkSigV4Config + function normalizeCredentialProvider( + config, + { credentials, credentialDefaultProvider } + ) { + let credentialsProvider + if (credentials) { + if (!credentials?.memoized) { + credentialsProvider = (0, import_core2.memoizeIdentityProvider)( + credentials, + import_core2.isIdentityExpired, + import_core2.doesIdentityRequireRefresh + ) + } else { + credentialsProvider = credentials + } + } else { + if (credentialDefaultProvider) { + credentialsProvider = (0, import_core2.normalizeProvider)( + credentialDefaultProvider( + Object.assign({}, config, { + parentClientConfig: config + }) + ) + ) + } else { + credentialsProvider = /* @__PURE__ */ __name(async () => { + throw new Error( + '@aws-sdk/core::resolveAwsSdkSigV4Config - `credentials` not provided and no credentialDefaultProvider was configured.' + ) + }, 'credentialsProvider') + } + } + credentialsProvider.memoized = true + return credentialsProvider + } + __name(normalizeCredentialProvider, 'normalizeCredentialProvider') + function bindCallerConfig(config, credentialsProvider) { + if (credentialsProvider.configBound) { + return credentialsProvider + } + const fn = /* @__PURE__ */ __name( + async options => + credentialsProvider({ ...options, callerClientConfig: config }), + 'fn' + ) + fn.memoized = credentialsProvider.memoized + fn.configBound = true + return fn + } + __name(bindCallerConfig, 'bindCallerConfig') + // Annotate the CommonJS export names for ESM import in node: + 0 && 0 + + /***/ + }, + + /***/ 29359: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/submodules/protocols/index.ts + var index_exports = {} + __export(index_exports, { + _toBool: () => _toBool, + _toNum: () => _toNum, + _toStr: () => _toStr, + awsExpectUnion: () => awsExpectUnion, + loadRestJsonErrorCode: () => loadRestJsonErrorCode, + loadRestXmlErrorCode: () => loadRestXmlErrorCode, + parseJsonBody: () => parseJsonBody, + parseJsonErrorBody: () => parseJsonErrorBody, + parseXmlBody: () => parseXmlBody, + parseXmlErrorBody: () => parseXmlErrorBody + }) + module.exports = __toCommonJS(index_exports) + + // src/submodules/protocols/coercing-serializers.ts + var _toStr = /* @__PURE__ */ __name(val => { + if (val == null) { + return val + } + if (typeof val === 'number' || typeof val === 'bigint') { + const warning = new Error( + `Received number ${val} where a string was expected.` + ) + warning.name = 'Warning' + console.warn(warning) + return String(val) + } + if (typeof val === 'boolean') { + const warning = new Error( + `Received boolean ${val} where a string was expected.` + ) + warning.name = 'Warning' + console.warn(warning) + return String(val) + } + return val + }, '_toStr') + var _toBool = /* @__PURE__ */ __name(val => { + if (val == null) { + return val + } + if (typeof val === 'number') { + } + if (typeof val === 'string') { + const lowercase = val.toLowerCase() + if (val !== '' && lowercase !== 'false' && lowercase !== 'true') { + const warning = new Error( + `Received string "${val}" where a boolean was expected.` + ) + warning.name = 'Warning' + console.warn(warning) + } + return val !== '' && lowercase !== 'false' + } + return val + }, '_toBool') + var _toNum = /* @__PURE__ */ __name(val => { + if (val == null) { + return val + } + if (typeof val === 'boolean') { + } + if (typeof val === 'string') { + const num = Number(val) + if (num.toString() !== val) { + const warning = new Error( + `Received string "${val}" where a number was expected.` + ) + warning.name = 'Warning' + console.warn(warning) + return val + } + return num + } + return val + }, '_toNum') + + // src/submodules/protocols/json/awsExpectUnion.ts + var import_smithy_client = __nccwpck_require__(76583) + var awsExpectUnion = /* @__PURE__ */ __name(value => { + if (value == null) { + return void 0 + } + if (typeof value === 'object' && '__type' in value) { + delete value.__type + } + return (0, import_smithy_client.expectUnion)(value) + }, 'awsExpectUnion') + + // src/submodules/protocols/common.ts + var import_smithy_client2 = __nccwpck_require__(76583) + var collectBodyString = /* @__PURE__ */ __name( + (streamBody, context) => + (0, import_smithy_client2.collectBody)(streamBody, context).then( + body => context.utf8Encoder(body) + ), + 'collectBodyString' + ) + + // src/submodules/protocols/json/parseJsonBody.ts + var parseJsonBody = /* @__PURE__ */ __name( + (streamBody, context) => + collectBodyString(streamBody, context).then(encoded => { + if (encoded.length) { + try { + return JSON.parse(encoded) + } catch (e) { + if (e?.name === 'SyntaxError') { + Object.defineProperty(e, '$responseBodyText', { + value: encoded + }) + } + throw e + } + } + return {} + }), + 'parseJsonBody' + ) + var parseJsonErrorBody = /* @__PURE__ */ __name( + async (errorBody, context) => { + const value = await parseJsonBody(errorBody, context) + value.message = value.message ?? value.Message + return value + }, + 'parseJsonErrorBody' + ) + var loadRestJsonErrorCode = /* @__PURE__ */ __name((output, data) => { + const findKey = /* @__PURE__ */ __name( + (object, key) => + Object.keys(object).find( + k => k.toLowerCase() === key.toLowerCase() + ), + 'findKey' + ) + const sanitizeErrorCode = /* @__PURE__ */ __name(rawValue => { + let cleanValue = rawValue + if (typeof cleanValue === 'number') { + cleanValue = cleanValue.toString() + } + if (cleanValue.indexOf(',') >= 0) { + cleanValue = cleanValue.split(',')[0] + } + if (cleanValue.indexOf(':') >= 0) { + cleanValue = cleanValue.split(':')[0] + } + if (cleanValue.indexOf('#') >= 0) { + cleanValue = cleanValue.split('#')[1] + } + return cleanValue + }, 'sanitizeErrorCode') + const headerKey = findKey(output.headers, 'x-amzn-errortype') + if (headerKey !== void 0) { + return sanitizeErrorCode(output.headers[headerKey]) + } + if (data.code !== void 0) { + return sanitizeErrorCode(data.code) + } + if (data['__type'] !== void 0) { + return sanitizeErrorCode(data['__type']) + } + }, 'loadRestJsonErrorCode') + + // src/submodules/protocols/xml/parseXmlBody.ts + var import_smithy_client3 = __nccwpck_require__(76583) + var import_fast_xml_parser = __nccwpck_require__(12603) + var parseXmlBody = /* @__PURE__ */ __name( + (streamBody, context) => + collectBodyString(streamBody, context).then(encoded => { + if (encoded.length) { + const parser = new import_fast_xml_parser.XMLParser({ + attributeNamePrefix: '', + htmlEntities: true, + ignoreAttributes: false, + ignoreDeclaration: true, + parseTagValue: false, + trimValues: false, + tagValueProcessor: /* @__PURE__ */ __name( + (_, val) => + val.trim() === '' && val.includes('\n') ? '' : void 0, + 'tagValueProcessor' + ) + }) + parser.addEntity('#xD', '\r') + parser.addEntity('#10', '\n') + let parsedObj + try { + parsedObj = parser.parse(encoded, true) + } catch (e) { + if (e && typeof e === 'object') { + Object.defineProperty(e, '$responseBodyText', { + value: encoded + }) + } + throw e + } + const textNodeName = '#text' + const key = Object.keys(parsedObj)[0] + const parsedObjToReturn = parsedObj[key] + if (parsedObjToReturn[textNodeName]) { + parsedObjToReturn[key] = parsedObjToReturn[textNodeName] + delete parsedObjToReturn[textNodeName] + } + return (0, import_smithy_client3.getValueFromTextNode)( + parsedObjToReturn + ) + } + return {} + }), + 'parseXmlBody' + ) + var parseXmlErrorBody = /* @__PURE__ */ __name( + async (errorBody, context) => { + const value = await parseXmlBody(errorBody, context) + if (value.Error) { + value.Error.message = value.Error.message ?? value.Error.Message + } + return value + }, + 'parseXmlErrorBody' + ) + var loadRestXmlErrorCode = /* @__PURE__ */ __name((output, data) => { + if (data?.Error?.Code !== void 0) { + return data.Error.Code + } + if (data?.Code !== void 0) { + return data.Code + } + if (output.statusCode == 404) { + return 'NotFound' + } + }, 'loadRestXmlErrorCode') + // Annotate the CommonJS export names for ESM import in node: + 0 && 0 + + /***/ + }, + + /***/ 19995: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var index_exports = {} + __export(index_exports, { + ENV_ACCOUNT_ID: () => ENV_ACCOUNT_ID, + ENV_CREDENTIAL_SCOPE: () => ENV_CREDENTIAL_SCOPE, + ENV_EXPIRATION: () => ENV_EXPIRATION, + ENV_KEY: () => ENV_KEY, + ENV_SECRET: () => ENV_SECRET, + ENV_SESSION: () => ENV_SESSION, + fromEnv: () => fromEnv + }) + module.exports = __toCommonJS(index_exports) + + // src/fromEnv.ts + var import_client = __nccwpck_require__(60034) + var import_property_provider = __nccwpck_require__(19248) + var ENV_KEY = 'AWS_ACCESS_KEY_ID' + var ENV_SECRET = 'AWS_SECRET_ACCESS_KEY' + var ENV_SESSION = 'AWS_SESSION_TOKEN' + var ENV_EXPIRATION = 'AWS_CREDENTIAL_EXPIRATION' + var ENV_CREDENTIAL_SCOPE = 'AWS_CREDENTIAL_SCOPE' + var ENV_ACCOUNT_ID = 'AWS_ACCOUNT_ID' + var fromEnv = /* @__PURE__ */ __name( + init => async () => { + init?.logger?.debug('@aws-sdk/credential-provider-env - fromEnv') + const accessKeyId = process.env[ENV_KEY] + const secretAccessKey = process.env[ENV_SECRET] + const sessionToken = process.env[ENV_SESSION] + const expiry = process.env[ENV_EXPIRATION] + const credentialScope = process.env[ENV_CREDENTIAL_SCOPE] + const accountId = process.env[ENV_ACCOUNT_ID] + if (accessKeyId && secretAccessKey) { + const credentials = { + accessKeyId, + secretAccessKey, + ...(sessionToken && { sessionToken }), + ...(expiry && { expiration: new Date(expiry) }), + ...(credentialScope && { credentialScope }), + ...(accountId && { accountId }) + } + ;(0, import_client.setCredentialFeature)( + credentials, + 'CREDENTIALS_ENV_VARS', + 'g' + ) + return credentials + } + throw new import_property_provider.CredentialsProviderError( + 'Unable to find environment variable credentials.', + { logger: init?.logger } + ) + }, + 'fromEnv' + ) + // Annotate the CommonJS export names for ESM import in node: + + 0 && 0 + + /***/ + }, + + /***/ 5701: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.checkUrl = void 0 + const property_provider_1 = __nccwpck_require__(19248) + const LOOPBACK_CIDR_IPv4 = '127.0.0.0/8' + const LOOPBACK_CIDR_IPv6 = '::1/128' + const ECS_CONTAINER_HOST = '169.254.170.2' + const EKS_CONTAINER_HOST_IPv4 = '169.254.170.23' + const EKS_CONTAINER_HOST_IPv6 = '[fd00:ec2::23]' + const checkUrl = (url, logger) => { + if (url.protocol === 'https:') { + return + } + if ( + url.hostname === ECS_CONTAINER_HOST || + url.hostname === EKS_CONTAINER_HOST_IPv4 || + url.hostname === EKS_CONTAINER_HOST_IPv6 + ) { + return + } + if (url.hostname.includes('[')) { + if ( + url.hostname === '[::1]' || + url.hostname === '[0000:0000:0000:0000:0000:0000:0000:0001]' + ) { + return + } + } else { + if (url.hostname === 'localhost') { + return + } + const ipComponents = url.hostname.split('.') + const inRange = component => { + const num = parseInt(component, 10) + return 0 <= num && num <= 255 + } + if ( + ipComponents[0] === '127' && + inRange(ipComponents[1]) && + inRange(ipComponents[2]) && + inRange(ipComponents[3]) && + ipComponents.length === 4 + ) { + return + } + } + throw new property_provider_1.CredentialsProviderError( + `URL not accepted. It must either be HTTPS or match one of the following: + - loopback CIDR 127.0.0.0/8 or [::1/128] + - ECS container host 169.254.170.2 + - EKS container host 169.254.170.23 or [fd00:ec2::23]`, + { logger } + ) + } + exports.checkUrl = checkUrl + + /***/ + }, + + /***/ 66615: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.fromHttp = void 0 + const tslib_1 = __nccwpck_require__(4351) + const client_1 = __nccwpck_require__(60034) + const node_http_handler_1 = __nccwpck_require__(55239) + const property_provider_1 = __nccwpck_require__(19248) + const promises_1 = tslib_1.__importDefault(__nccwpck_require__(73292)) + const checkUrl_1 = __nccwpck_require__(5701) + const requestHelpers_1 = __nccwpck_require__(92398) + const retry_wrapper_1 = __nccwpck_require__(55383) + const AWS_CONTAINER_CREDENTIALS_RELATIVE_URI = + 'AWS_CONTAINER_CREDENTIALS_RELATIVE_URI' + const DEFAULT_LINK_LOCAL_HOST = 'http://169.254.170.2' + const AWS_CONTAINER_CREDENTIALS_FULL_URI = + 'AWS_CONTAINER_CREDENTIALS_FULL_URI' + const AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE = + 'AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE' + const AWS_CONTAINER_AUTHORIZATION_TOKEN = + 'AWS_CONTAINER_AUTHORIZATION_TOKEN' + const fromHttp = (options = {}) => { + options.logger?.debug('@aws-sdk/credential-provider-http - fromHttp') + let host + const relative = + options.awsContainerCredentialsRelativeUri ?? + process.env[AWS_CONTAINER_CREDENTIALS_RELATIVE_URI] + const full = + options.awsContainerCredentialsFullUri ?? + process.env[AWS_CONTAINER_CREDENTIALS_FULL_URI] + const token = + options.awsContainerAuthorizationToken ?? + process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN] + const tokenFile = + options.awsContainerAuthorizationTokenFile ?? + process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE] + const warn = + options.logger?.constructor?.name === 'NoOpLogger' || !options.logger + ? console.warn + : options.logger.warn + if (relative && full) { + warn( + '@aws-sdk/credential-provider-http: ' + + 'you have set both awsContainerCredentialsRelativeUri and awsContainerCredentialsFullUri.' + ) + warn('awsContainerCredentialsFullUri will take precedence.') + } + if (token && tokenFile) { + warn( + '@aws-sdk/credential-provider-http: ' + + 'you have set both awsContainerAuthorizationToken and awsContainerAuthorizationTokenFile.' + ) + warn('awsContainerAuthorizationToken will take precedence.') + } + if (full) { + host = full + } else if (relative) { + host = `${DEFAULT_LINK_LOCAL_HOST}${relative}` + } else { + throw new property_provider_1.CredentialsProviderError( + `No HTTP credential provider host provided. +Set AWS_CONTAINER_CREDENTIALS_FULL_URI or AWS_CONTAINER_CREDENTIALS_RELATIVE_URI.`, + { logger: options.logger } + ) + } + const url = new URL(host) + ;(0, checkUrl_1.checkUrl)(url, options.logger) + const requestHandler = new node_http_handler_1.NodeHttpHandler({ + requestTimeout: options.timeout ?? 1000, + connectionTimeout: options.timeout ?? 1000 + }) + return (0, retry_wrapper_1.retryWrapper)( + async () => { + const request = (0, requestHelpers_1.createGetRequest)(url) + if (token) { + request.headers.Authorization = token + } else if (tokenFile) { + request.headers.Authorization = ( + await promises_1.default.readFile(tokenFile) + ).toString() + } + try { + const result = await requestHandler.handle(request) + return (0, requestHelpers_1.getCredentials)(result.response).then( + creds => + (0, client_1.setCredentialFeature)( + creds, + 'CREDENTIALS_HTTP', + 'z' + ) + ) + } catch (e) { + throw new property_provider_1.CredentialsProviderError( + String(e), + { logger: options.logger } + ) + } + }, + options.maxRetries ?? 3, + options.timeout ?? 1000 + ) + } + exports.fromHttp = fromHttp + + /***/ + }, + + /***/ 92398: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getCredentials = exports.createGetRequest = void 0 + const property_provider_1 = __nccwpck_require__(19248) + const protocol_http_1 = __nccwpck_require__(31788) + const smithy_client_1 = __nccwpck_require__(76583) + const util_stream_1 = __nccwpck_require__(77846) + function createGetRequest(url) { + return new protocol_http_1.HttpRequest({ + protocol: url.protocol, + hostname: url.hostname, + port: Number(url.port), + path: url.pathname, + query: Array.from(url.searchParams.entries()).reduce( + (acc, [k, v]) => { + acc[k] = v + return acc + }, + {} + ), + fragment: url.hash + }) + } + exports.createGetRequest = createGetRequest + async function getCredentials(response, logger) { + const stream = (0, util_stream_1.sdkStreamMixin)(response.body) + const str = await stream.transformToString() + if (response.statusCode === 200) { + const parsed = JSON.parse(str) + if ( + typeof parsed.AccessKeyId !== 'string' || + typeof parsed.SecretAccessKey !== 'string' || + typeof parsed.Token !== 'string' || + typeof parsed.Expiration !== 'string' + ) { + throw new property_provider_1.CredentialsProviderError( + 'HTTP credential provider response not of the required format, an object matching: ' + + '{ AccessKeyId: string, SecretAccessKey: string, Token: string, Expiration: string(rfc3339) }', + { logger } + ) + } + return { + accessKeyId: parsed.AccessKeyId, + secretAccessKey: parsed.SecretAccessKey, + sessionToken: parsed.Token, + expiration: (0, smithy_client_1.parseRfc3339DateTime)( + parsed.Expiration + ) + } + } + if (response.statusCode >= 400 && response.statusCode < 500) { + let parsedBody = {} + try { + parsedBody = JSON.parse(str) + } catch (e) {} + throw Object.assign( + new property_provider_1.CredentialsProviderError( + `Server responded with status: ${response.statusCode}`, + { logger } + ), + { + Code: parsedBody.Code, + Message: parsedBody.Message + } + ) + } + throw new property_provider_1.CredentialsProviderError( + `Server responded with status: ${response.statusCode}`, + { logger } + ) + } + exports.getCredentials = getCredentials + + /***/ + }, + + /***/ 55383: /***/ (__unused_webpack_module, exports) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.retryWrapper = void 0 + const retryWrapper = (toRetry, maxRetries, delayMs) => { + return async () => { + for (let i = 0; i < maxRetries; ++i) { + try { + return await toRetry() + } catch (e) { + await new Promise(resolve => setTimeout(resolve, delayMs)) + } + } + return await toRetry() + } + } + exports.retryWrapper = retryWrapper + + /***/ + }, + + /***/ 96893: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.fromHttp = void 0 + var fromHttp_1 = __nccwpck_require__(66615) + Object.defineProperty(exports, 'fromHttp', { + enumerable: true, + get: function () { + return fromHttp_1.fromHttp + } + }) + + /***/ + }, + + /***/ 9972: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __create = Object.create + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __getProtoOf = Object.getPrototypeOf + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toESM = (mod, isNodeMode, target) => ( + (target = mod != null ? __create(__getProtoOf(mod)) : {}), + __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule + ? __defProp(target, 'default', { value: mod, enumerable: true }) + : target, + mod + ) + ) + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var index_exports = {} + __export(index_exports, { + fromIni: () => fromIni + }) + module.exports = __toCommonJS(index_exports) + + // src/fromIni.ts + + // src/resolveProfileData.ts + + // src/resolveAssumeRoleCredentials.ts + + var import_shared_ini_file_loader = __nccwpck_require__(69001) + + // src/resolveCredentialSource.ts + var import_client = __nccwpck_require__(60034) + var import_property_provider = __nccwpck_require__(19248) + var resolveCredentialSource = /* @__PURE__ */ __name( + (credentialSource, profileName, logger) => { + const sourceProvidersMap = { + EcsContainer: /* @__PURE__ */ __name(async options => { + const { fromHttp } = await Promise.resolve().then(() => + __toESM(__nccwpck_require__(96893)) + ) + const { fromContainerMetadata } = await Promise.resolve().then( + () => __toESM(__nccwpck_require__(91502)) + ) + logger?.debug( + '@aws-sdk/credential-provider-ini - credential_source is EcsContainer' + ) + return async () => + (0, import_property_provider.chain)( + fromHttp(options ?? {}), + fromContainerMetadata(options) + )().then(setNamedProvider) + }, 'EcsContainer'), + Ec2InstanceMetadata: /* @__PURE__ */ __name(async options => { + logger?.debug( + '@aws-sdk/credential-provider-ini - credential_source is Ec2InstanceMetadata' + ) + const { fromInstanceMetadata } = await Promise.resolve().then( + () => __toESM(__nccwpck_require__(91502)) + ) + return async () => + fromInstanceMetadata(options)().then(setNamedProvider) + }, 'Ec2InstanceMetadata'), + Environment: /* @__PURE__ */ __name(async options => { + logger?.debug( + '@aws-sdk/credential-provider-ini - credential_source is Environment' + ) + const { fromEnv } = await Promise.resolve().then(() => + __toESM(__nccwpck_require__(19995)) + ) + return async () => fromEnv(options)().then(setNamedProvider) + }, 'Environment') + } + if (credentialSource in sourceProvidersMap) { + return sourceProvidersMap[credentialSource] + } else { + throw new import_property_provider.CredentialsProviderError( + `Unsupported credential source in profile ${profileName}. Got ${credentialSource}, expected EcsContainer or Ec2InstanceMetadata or Environment.`, + { logger } + ) + } + }, + 'resolveCredentialSource' + ) + var setNamedProvider = /* @__PURE__ */ __name( + creds => + (0, import_client.setCredentialFeature)( + creds, + 'CREDENTIALS_PROFILE_NAMED_PROVIDER', + 'p' + ), + 'setNamedProvider' + ) + + // src/resolveAssumeRoleCredentials.ts + var isAssumeRoleProfile = /* @__PURE__ */ __name( + (arg, { profile = 'default', logger } = {}) => { + return ( + Boolean(arg) && + typeof arg === 'object' && + typeof arg.role_arn === 'string' && + ['undefined', 'string'].indexOf(typeof arg.role_session_name) > + -1 && + ['undefined', 'string'].indexOf(typeof arg.external_id) > -1 && + ['undefined', 'string'].indexOf(typeof arg.mfa_serial) > -1 && + (isAssumeRoleWithSourceProfile(arg, { profile, logger }) || + isCredentialSourceProfile(arg, { profile, logger })) + ) + }, + 'isAssumeRoleProfile' + ) + var isAssumeRoleWithSourceProfile = /* @__PURE__ */ __name( + (arg, { profile, logger }) => { + const withSourceProfile = + typeof arg.source_profile === 'string' && + typeof arg.credential_source === 'undefined' + if (withSourceProfile) { + logger?.debug?.( + ` ${profile} isAssumeRoleWithSourceProfile source_profile=${arg.source_profile}` + ) + } + return withSourceProfile + }, + 'isAssumeRoleWithSourceProfile' + ) + var isCredentialSourceProfile = /* @__PURE__ */ __name( + (arg, { profile, logger }) => { + const withProviderProfile = + typeof arg.credential_source === 'string' && + typeof arg.source_profile === 'undefined' + if (withProviderProfile) { + logger?.debug?.( + ` ${profile} isCredentialSourceProfile credential_source=${arg.credential_source}` + ) + } + return withProviderProfile + }, + 'isCredentialSourceProfile' + ) + var resolveAssumeRoleCredentials = /* @__PURE__ */ __name( + async (profileName, profiles, options, visitedProfiles = {}) => { + options.logger?.debug( + '@aws-sdk/credential-provider-ini - resolveAssumeRoleCredentials (STS)' + ) + const profileData = profiles[profileName] + const { source_profile, region } = profileData + if (!options.roleAssumer) { + const { getDefaultRoleAssumer } = await Promise.resolve().then(() => + __toESM(__nccwpck_require__(2273)) + ) + options.roleAssumer = getDefaultRoleAssumer( + { + ...options.clientConfig, + credentialProviderLogger: options.logger, + parentClientConfig: { + ...options?.parentClientConfig, + region: region ?? options?.parentClientConfig?.region + } + }, + options.clientPlugins + ) + } + if (source_profile && source_profile in visitedProfiles) { + throw new import_property_provider.CredentialsProviderError( + `Detected a cycle attempting to resolve credentials for profile ${(0, import_shared_ini_file_loader.getProfileName)(options)}. Profiles visited: ` + + Object.keys(visitedProfiles).join(', '), + { logger: options.logger } + ) + } + options.logger?.debug( + `@aws-sdk/credential-provider-ini - finding credential resolver using ${source_profile ? `source_profile=[${source_profile}]` : `profile=[${profileName}]`}` + ) + const sourceCredsProvider = source_profile + ? resolveProfileData( + source_profile, + profiles, + options, + { + ...visitedProfiles, + [source_profile]: true + }, + isCredentialSourceWithoutRoleArn(profiles[source_profile] ?? {}) + ) + : ( + await resolveCredentialSource( + profileData.credential_source, + profileName, + options.logger + )(options) + )() + if (isCredentialSourceWithoutRoleArn(profileData)) { + return sourceCredsProvider.then(creds => + (0, import_client.setCredentialFeature)( + creds, + 'CREDENTIALS_PROFILE_SOURCE_PROFILE', + 'o' + ) + ) + } else { + const params = { + RoleArn: profileData.role_arn, + RoleSessionName: + profileData.role_session_name || `aws-sdk-js-${Date.now()}`, + ExternalId: profileData.external_id, + DurationSeconds: parseInt( + profileData.duration_seconds || '3600', + 10 + ) + } + const { mfa_serial } = profileData + if (mfa_serial) { + if (!options.mfaCodeProvider) { + throw new import_property_provider.CredentialsProviderError( + `Profile ${profileName} requires multi-factor authentication, but no MFA code callback was provided.`, + { logger: options.logger, tryNextLink: false } + ) + } + params.SerialNumber = mfa_serial + params.TokenCode = await options.mfaCodeProvider(mfa_serial) + } + const sourceCreds = await sourceCredsProvider + return options + .roleAssumer(sourceCreds, params) + .then(creds => + (0, import_client.setCredentialFeature)( + creds, + 'CREDENTIALS_PROFILE_SOURCE_PROFILE', + 'o' + ) + ) + } + }, + 'resolveAssumeRoleCredentials' + ) + var isCredentialSourceWithoutRoleArn = /* @__PURE__ */ __name(section => { + return !section.role_arn && !!section.credential_source + }, 'isCredentialSourceWithoutRoleArn') + + // src/resolveProcessCredentials.ts + + var isProcessProfile = /* @__PURE__ */ __name( + arg => + Boolean(arg) && + typeof arg === 'object' && + typeof arg.credential_process === 'string', + 'isProcessProfile' + ) + var resolveProcessCredentials = /* @__PURE__ */ __name( + async (options, profile) => + Promise.resolve() + .then(() => __toESM(__nccwpck_require__(79732))) + .then(({ fromProcess }) => + fromProcess({ + ...options, + profile + })().then(creds => + (0, import_client.setCredentialFeature)( + creds, + 'CREDENTIALS_PROFILE_PROCESS', + 'v' + ) + ) + ), + 'resolveProcessCredentials' + ) + + // src/resolveSsoCredentials.ts + + var resolveSsoCredentials = /* @__PURE__ */ __name( + async (profile, profileData, options = {}) => { + const { fromSSO } = await Promise.resolve().then(() => + __toESM(__nccwpck_require__(84297)) + ) + return fromSSO({ + profile, + logger: options.logger, + parentClientConfig: options.parentClientConfig, + clientConfig: options.clientConfig + })().then(creds => { + if (profileData.sso_session) { + return (0, import_client.setCredentialFeature)( + creds, + 'CREDENTIALS_PROFILE_SSO', + 'r' + ) + } else { + return (0, import_client.setCredentialFeature)( + creds, + 'CREDENTIALS_PROFILE_SSO_LEGACY', + 't' + ) + } + }) + }, + 'resolveSsoCredentials' + ) + var isSsoProfile = /* @__PURE__ */ __name( + arg => + arg && + (typeof arg.sso_start_url === 'string' || + typeof arg.sso_account_id === 'string' || + typeof arg.sso_session === 'string' || + typeof arg.sso_region === 'string' || + typeof arg.sso_role_name === 'string'), + 'isSsoProfile' + ) + + // src/resolveStaticCredentials.ts + + var isStaticCredsProfile = /* @__PURE__ */ __name( + arg => + Boolean(arg) && + typeof arg === 'object' && + typeof arg.aws_access_key_id === 'string' && + typeof arg.aws_secret_access_key === 'string' && + ['undefined', 'string'].indexOf(typeof arg.aws_session_token) > -1 && + ['undefined', 'string'].indexOf(typeof arg.aws_account_id) > -1, + 'isStaticCredsProfile' + ) + var resolveStaticCredentials = /* @__PURE__ */ __name( + async (profile, options) => { + options?.logger?.debug( + '@aws-sdk/credential-provider-ini - resolveStaticCredentials' + ) + const credentials = { + accessKeyId: profile.aws_access_key_id, + secretAccessKey: profile.aws_secret_access_key, + sessionToken: profile.aws_session_token, + ...(profile.aws_credential_scope && { + credentialScope: profile.aws_credential_scope + }), + ...(profile.aws_account_id && { accountId: profile.aws_account_id }) + } + return (0, import_client.setCredentialFeature)( + credentials, + 'CREDENTIALS_PROFILE', + 'n' + ) + }, + 'resolveStaticCredentials' + ) + + // src/resolveWebIdentityCredentials.ts + + var isWebIdentityProfile = /* @__PURE__ */ __name( + arg => + Boolean(arg) && + typeof arg === 'object' && + typeof arg.web_identity_token_file === 'string' && + typeof arg.role_arn === 'string' && + ['undefined', 'string'].indexOf(typeof arg.role_session_name) > -1, + 'isWebIdentityProfile' + ) + var resolveWebIdentityCredentials = /* @__PURE__ */ __name( + async (profile, options) => + Promise.resolve() + .then(() => __toESM(__nccwpck_require__(79761))) + .then(({ fromTokenFile }) => + fromTokenFile({ + webIdentityTokenFile: profile.web_identity_token_file, + roleArn: profile.role_arn, + roleSessionName: profile.role_session_name, + roleAssumerWithWebIdentity: options.roleAssumerWithWebIdentity, + logger: options.logger, + parentClientConfig: options.parentClientConfig + })().then(creds => + (0, import_client.setCredentialFeature)( + creds, + 'CREDENTIALS_PROFILE_STS_WEB_ID_TOKEN', + 'q' + ) + ) + ), + 'resolveWebIdentityCredentials' + ) + + // src/resolveProfileData.ts + var resolveProfileData = /* @__PURE__ */ __name( + async ( + profileName, + profiles, + options, + visitedProfiles = {}, + isAssumeRoleRecursiveCall = false + ) => { + const data = profiles[profileName] + if ( + Object.keys(visitedProfiles).length > 0 && + isStaticCredsProfile(data) + ) { + return resolveStaticCredentials(data, options) + } + if ( + isAssumeRoleRecursiveCall || + isAssumeRoleProfile(data, { + profile: profileName, + logger: options.logger + }) + ) { + return resolveAssumeRoleCredentials( + profileName, + profiles, + options, + visitedProfiles + ) + } + if (isStaticCredsProfile(data)) { + return resolveStaticCredentials(data, options) + } + if (isWebIdentityProfile(data)) { + return resolveWebIdentityCredentials(data, options) + } + if (isProcessProfile(data)) { + return resolveProcessCredentials(options, profileName) + } + if (isSsoProfile(data)) { + return await resolveSsoCredentials(profileName, data, options) + } + throw new import_property_provider.CredentialsProviderError( + `Could not resolve credentials using profile: [${profileName}] in configuration/credentials file(s).`, + { logger: options.logger } + ) + }, + 'resolveProfileData' + ) + + // src/fromIni.ts + var fromIni = /* @__PURE__ */ __name( + (_init = {}) => + async ({ callerClientConfig } = {}) => { + const init = { + ..._init, + parentClientConfig: { + ...callerClientConfig, + ..._init.parentClientConfig + } + } + init.logger?.debug('@aws-sdk/credential-provider-ini - fromIni') + const profiles = await (0, + import_shared_ini_file_loader.parseKnownFiles)(init) + return resolveProfileData( + (0, import_shared_ini_file_loader.getProfileName)({ + profile: _init.profile ?? callerClientConfig?.profile + }), + profiles, + init + ) + }, + 'fromIni' + ) + // Annotate the CommonJS export names for ESM import in node: + + 0 && 0 + + /***/ + }, + + /***/ 75663: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __create = Object.create + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __getProtoOf = Object.getPrototypeOf + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toESM = (mod, isNodeMode, target) => ( + (target = mod != null ? __create(__getProtoOf(mod)) : {}), + __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule + ? __defProp(target, 'default', { value: mod, enumerable: true }) + : target, + mod + ) + ) + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var index_exports = {} + __export(index_exports, { + credentialsTreatedAsExpired: () => credentialsTreatedAsExpired, + credentialsWillNeedRefresh: () => credentialsWillNeedRefresh, + defaultProvider: () => defaultProvider + }) + module.exports = __toCommonJS(index_exports) + + // src/defaultProvider.ts + var import_credential_provider_env = __nccwpck_require__(19995) + + var import_shared_ini_file_loader = __nccwpck_require__(69001) + + // src/remoteProvider.ts + var import_property_provider = __nccwpck_require__(19248) + var ENV_IMDS_DISABLED = 'AWS_EC2_METADATA_DISABLED' + var remoteProvider = /* @__PURE__ */ __name(async init => { + const { + ENV_CMDS_FULL_URI, + ENV_CMDS_RELATIVE_URI, + fromContainerMetadata, + fromInstanceMetadata + } = await Promise.resolve().then(() => + __toESM(__nccwpck_require__(91502)) + ) + if ( + process.env[ENV_CMDS_RELATIVE_URI] || + process.env[ENV_CMDS_FULL_URI] + ) { + init.logger?.debug( + '@aws-sdk/credential-provider-node - remoteProvider::fromHttp/fromContainerMetadata' + ) + const { fromHttp } = await Promise.resolve().then(() => + __toESM(__nccwpck_require__(96893)) + ) + return (0, import_property_provider.chain)( + fromHttp(init), + fromContainerMetadata(init) + ) + } + if ( + process.env[ENV_IMDS_DISABLED] && + process.env[ENV_IMDS_DISABLED] !== 'false' + ) { + return async () => { + throw new import_property_provider.CredentialsProviderError( + 'EC2 Instance Metadata Service access disabled', + { logger: init.logger } + ) + } + } + init.logger?.debug( + '@aws-sdk/credential-provider-node - remoteProvider::fromInstanceMetadata' + ) + return fromInstanceMetadata(init) + }, 'remoteProvider') + + // src/defaultProvider.ts + var multipleCredentialSourceWarningEmitted = false + var defaultProvider = /* @__PURE__ */ __name( + (init = {}) => + (0, import_property_provider.memoize)( + (0, import_property_provider.chain)( + async () => { + const profile = + init.profile ?? + process.env[import_shared_ini_file_loader.ENV_PROFILE] + if (profile) { + const envStaticCredentialsAreSet = + process.env[import_credential_provider_env.ENV_KEY] && + process.env[import_credential_provider_env.ENV_SECRET] + if (envStaticCredentialsAreSet) { + if (!multipleCredentialSourceWarningEmitted) { + const warnFn = + init.logger?.warn && + init.logger?.constructor?.name !== 'NoOpLogger' + ? init.logger.warn + : console.warn + warnFn( + `@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING: + Multiple credential sources detected: + Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set. + This SDK will proceed with the AWS_PROFILE value. + + However, a future version may change this behavior to prefer the ENV static credentials. + Please ensure that your environment only sets either the AWS_PROFILE or the + AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair. +` + ) + multipleCredentialSourceWarningEmitted = true + } + } + throw new import_property_provider.CredentialsProviderError( + 'AWS_PROFILE is set, skipping fromEnv provider.', + { + logger: init.logger, + tryNextLink: true + } + ) + } + init.logger?.debug( + '@aws-sdk/credential-provider-node - defaultProvider::fromEnv' + ) + return (0, import_credential_provider_env.fromEnv)(init)() + }, + async () => { + init.logger?.debug( + '@aws-sdk/credential-provider-node - defaultProvider::fromSSO' + ) + const { + ssoStartUrl, + ssoAccountId, + ssoRegion, + ssoRoleName, + ssoSession + } = init + if ( + !ssoStartUrl && + !ssoAccountId && + !ssoRegion && + !ssoRoleName && + !ssoSession + ) { + throw new import_property_provider.CredentialsProviderError( + 'Skipping SSO provider in default chain (inputs do not include SSO fields).', + { logger: init.logger } + ) + } + const { fromSSO } = await Promise.resolve().then(() => + __toESM(__nccwpck_require__(84297)) + ) + return fromSSO(init)() + }, + async () => { + init.logger?.debug( + '@aws-sdk/credential-provider-node - defaultProvider::fromIni' + ) + const { fromIni } = await Promise.resolve().then(() => + __toESM(__nccwpck_require__(9972)) + ) + return fromIni(init)() + }, + async () => { + init.logger?.debug( + '@aws-sdk/credential-provider-node - defaultProvider::fromProcess' + ) + const { fromProcess } = await Promise.resolve().then(() => + __toESM(__nccwpck_require__(79732)) + ) + return fromProcess(init)() + }, + async () => { + init.logger?.debug( + '@aws-sdk/credential-provider-node - defaultProvider::fromTokenFile' + ) + const { fromTokenFile } = await Promise.resolve().then(() => + __toESM(__nccwpck_require__(79761)) + ) + return fromTokenFile(init)() + }, + async () => { + init.logger?.debug( + '@aws-sdk/credential-provider-node - defaultProvider::remoteProvider' + ) + return (await remoteProvider(init))() + }, + async () => { + throw new import_property_provider.CredentialsProviderError( + 'Could not load credentials from any providers', + { + tryNextLink: false, + logger: init.logger + } + ) + } + ), + credentialsTreatedAsExpired, + credentialsWillNeedRefresh + ), + 'defaultProvider' + ) + var credentialsWillNeedRefresh = /* @__PURE__ */ __name( + credentials => credentials?.expiration !== void 0, + 'credentialsWillNeedRefresh' + ) + var credentialsTreatedAsExpired = /* @__PURE__ */ __name( + credentials => + credentials?.expiration !== void 0 && + credentials.expiration.getTime() - Date.now() < 3e5, + 'credentialsTreatedAsExpired' + ) + // Annotate the CommonJS export names for ESM import in node: + + 0 && 0 + + /***/ + }, + + /***/ 79732: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var index_exports = {} + __export(index_exports, { + fromProcess: () => fromProcess + }) + module.exports = __toCommonJS(index_exports) + + // src/fromProcess.ts + var import_shared_ini_file_loader = __nccwpck_require__(69001) + + // src/resolveProcessCredentials.ts + var import_property_provider = __nccwpck_require__(19248) + var import_child_process = __nccwpck_require__(32081) + var import_util = __nccwpck_require__(73837) + + // src/getValidatedProcessCredentials.ts + var import_client = __nccwpck_require__(60034) + var getValidatedProcessCredentials = /* @__PURE__ */ __name( + (profileName, data, profiles) => { + if (data.Version !== 1) { + throw Error( + `Profile ${profileName} credential_process did not return Version 1.` + ) + } + if (data.AccessKeyId === void 0 || data.SecretAccessKey === void 0) { + throw Error( + `Profile ${profileName} credential_process returned invalid credentials.` + ) + } + if (data.Expiration) { + const currentTime = /* @__PURE__ */ new Date() + const expireTime = new Date(data.Expiration) + if (expireTime < currentTime) { + throw Error( + `Profile ${profileName} credential_process returned expired credentials.` + ) + } + } + let accountId = data.AccountId + if (!accountId && profiles?.[profileName]?.aws_account_id) { + accountId = profiles[profileName].aws_account_id + } + const credentials = { + accessKeyId: data.AccessKeyId, + secretAccessKey: data.SecretAccessKey, + ...(data.SessionToken && { sessionToken: data.SessionToken }), + ...(data.Expiration && { expiration: new Date(data.Expiration) }), + ...(data.CredentialScope && { + credentialScope: data.CredentialScope + }), + ...(accountId && { accountId }) + } + ;(0, import_client.setCredentialFeature)( + credentials, + 'CREDENTIALS_PROCESS', + 'w' + ) + return credentials + }, + 'getValidatedProcessCredentials' + ) + + // src/resolveProcessCredentials.ts + var resolveProcessCredentials = /* @__PURE__ */ __name( + async (profileName, profiles, logger) => { + const profile = profiles[profileName] + if (profiles[profileName]) { + const credentialProcess = profile['credential_process'] + if (credentialProcess !== void 0) { + const execPromise = (0, import_util.promisify)( + import_child_process.exec + ) + try { + const { stdout } = await execPromise(credentialProcess) + let data + try { + data = JSON.parse(stdout.trim()) + } catch { + throw Error( + `Profile ${profileName} credential_process returned invalid JSON.` + ) + } + return getValidatedProcessCredentials( + profileName, + data, + profiles + ) + } catch (error) { + throw new import_property_provider.CredentialsProviderError( + error.message, + { logger } + ) + } + } else { + throw new import_property_provider.CredentialsProviderError( + `Profile ${profileName} did not contain credential_process.`, + { logger } + ) + } + } else { + throw new import_property_provider.CredentialsProviderError( + `Profile ${profileName} could not be found in shared credentials file.`, + { + logger + } + ) + } + }, + 'resolveProcessCredentials' + ) + + // src/fromProcess.ts + var fromProcess = /* @__PURE__ */ __name( + (init = {}) => + async ({ callerClientConfig } = {}) => { + init.logger?.debug( + '@aws-sdk/credential-provider-process - fromProcess' + ) + const profiles = await (0, + import_shared_ini_file_loader.parseKnownFiles)(init) + return resolveProcessCredentials( + (0, import_shared_ini_file_loader.getProfileName)({ + profile: init.profile ?? callerClientConfig?.profile + }), + profiles, + init.logger + ) + }, + 'fromProcess' + ) + // Annotate the CommonJS export names for ESM import in node: + + 0 && 0 + + /***/ + }, + + /***/ 84297: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __esm = (fn, res) => + function __init() { + return ( + fn && (res = (0, fn[__getOwnPropNames(fn)[0]])((fn = 0))), + res + ) + } + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/loadSso.ts + var loadSso_exports = {} + __export(loadSso_exports, { + GetRoleCredentialsCommand: () => + import_client_sso.GetRoleCredentialsCommand, + SSOClient: () => import_client_sso.SSOClient + }) + var import_client_sso + var init_loadSso = __esm({ + 'src/loadSso.ts'() { + 'use strict' + import_client_sso = __nccwpck_require__(11475) + } + }) + + // src/index.ts + var index_exports = {} + __export(index_exports, { + fromSSO: () => fromSSO, + isSsoProfile: () => isSsoProfile, + validateSsoProfile: () => validateSsoProfile + }) + module.exports = __toCommonJS(index_exports) + + // src/fromSSO.ts + + // src/isSsoProfile.ts + var isSsoProfile = /* @__PURE__ */ __name( + arg => + arg && + (typeof arg.sso_start_url === 'string' || + typeof arg.sso_account_id === 'string' || + typeof arg.sso_session === 'string' || + typeof arg.sso_region === 'string' || + typeof arg.sso_role_name === 'string'), + 'isSsoProfile' + ) + + // src/resolveSSOCredentials.ts + var import_client = __nccwpck_require__(60034) + var import_token_providers = __nccwpck_require__(6701) + var import_property_provider = __nccwpck_require__(19248) + var import_shared_ini_file_loader = __nccwpck_require__(69001) + var SHOULD_FAIL_CREDENTIAL_CHAIN = false + var resolveSSOCredentials = /* @__PURE__ */ __name( + async ({ + ssoStartUrl, + ssoSession, + ssoAccountId, + ssoRegion, + ssoRoleName, + ssoClient, + clientConfig, + parentClientConfig, + profile, + logger + }) => { + let token + const refreshMessage = `To refresh this SSO session run aws sso login with the corresponding profile.` + if (ssoSession) { + try { + const _token = await (0, import_token_providers.fromSso)({ + profile + })() + token = { + accessToken: _token.token, + expiresAt: new Date(_token.expiration).toISOString() + } + } catch (e) { + throw new import_property_provider.CredentialsProviderError( + e.message, + { + tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN, + logger + } + ) + } + } else { + try { + token = await (0, + import_shared_ini_file_loader.getSSOTokenFromFile)(ssoStartUrl) + } catch (e) { + throw new import_property_provider.CredentialsProviderError( + `The SSO session associated with this profile is invalid. ${refreshMessage}`, + { + tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN, + logger + } + ) + } + } + if (new Date(token.expiresAt).getTime() - Date.now() <= 0) { + throw new import_property_provider.CredentialsProviderError( + `The SSO session associated with this profile has expired. ${refreshMessage}`, + { + tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN, + logger + } + ) + } + const { accessToken } = token + const { + SSOClient: SSOClient2, + GetRoleCredentialsCommand: GetRoleCredentialsCommand2 + } = await Promise.resolve().then( + () => (init_loadSso(), loadSso_exports) + ) + const sso = + ssoClient || + new SSOClient2( + Object.assign({}, clientConfig ?? {}, { + logger: clientConfig?.logger ?? parentClientConfig?.logger, + region: clientConfig?.region ?? ssoRegion + }) + ) + let ssoResp + try { + ssoResp = await sso.send( + new GetRoleCredentialsCommand2({ + accountId: ssoAccountId, + roleName: ssoRoleName, + accessToken + }) + ) + } catch (e) { + throw new import_property_provider.CredentialsProviderError(e, { + tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN, + logger + }) + } + const { + roleCredentials: { + accessKeyId, + secretAccessKey, + sessionToken, + expiration, + credentialScope, + accountId + } = {} + } = ssoResp + if ( + !accessKeyId || + !secretAccessKey || + !sessionToken || + !expiration + ) { + throw new import_property_provider.CredentialsProviderError( + 'SSO returns an invalid temporary credential.', + { + tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN, + logger + } + ) + } + const credentials = { + accessKeyId, + secretAccessKey, + sessionToken, + expiration: new Date(expiration), + ...(credentialScope && { credentialScope }), + ...(accountId && { accountId }) + } + if (ssoSession) { + ;(0, import_client.setCredentialFeature)( + credentials, + 'CREDENTIALS_SSO', + 's' + ) + } else { + ;(0, import_client.setCredentialFeature)( + credentials, + 'CREDENTIALS_SSO_LEGACY', + 'u' + ) + } + return credentials + }, + 'resolveSSOCredentials' + ) + + // src/validateSsoProfile.ts + + var validateSsoProfile = /* @__PURE__ */ __name((profile, logger) => { + const { sso_start_url, sso_account_id, sso_region, sso_role_name } = + profile + if ( + !sso_start_url || + !sso_account_id || + !sso_region || + !sso_role_name + ) { + throw new import_property_provider.CredentialsProviderError( + `Profile is configured with invalid SSO credentials. Required parameters "sso_account_id", "sso_region", "sso_role_name", "sso_start_url". Got ${Object.keys( + profile + ).join(', ')} +Reference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`, + { tryNextLink: false, logger } + ) + } + return profile + }, 'validateSsoProfile') + + // src/fromSSO.ts + var fromSSO = /* @__PURE__ */ __name( + (init = {}) => + async ({ callerClientConfig } = {}) => { + init.logger?.debug('@aws-sdk/credential-provider-sso - fromSSO') + const { + ssoStartUrl, + ssoAccountId, + ssoRegion, + ssoRoleName, + ssoSession + } = init + const { ssoClient } = init + const profileName = (0, + import_shared_ini_file_loader.getProfileName)({ + profile: init.profile ?? callerClientConfig?.profile + }) + if ( + !ssoStartUrl && + !ssoAccountId && + !ssoRegion && + !ssoRoleName && + !ssoSession + ) { + const profiles = await (0, + import_shared_ini_file_loader.parseKnownFiles)(init) + const profile = profiles[profileName] + if (!profile) { + throw new import_property_provider.CredentialsProviderError( + `Profile ${profileName} was not found.`, + { logger: init.logger } + ) + } + if (!isSsoProfile(profile)) { + throw new import_property_provider.CredentialsProviderError( + `Profile ${profileName} is not configured with SSO credentials.`, + { + logger: init.logger + } + ) + } + if (profile?.sso_session) { + const ssoSessions = await (0, + import_shared_ini_file_loader.loadSsoSessionData)(init) + const session = ssoSessions[profile.sso_session] + const conflictMsg = ` configurations in profile ${profileName} and sso-session ${profile.sso_session}` + if (ssoRegion && ssoRegion !== session.sso_region) { + throw new import_property_provider.CredentialsProviderError( + `Conflicting SSO region` + conflictMsg, + { + tryNextLink: false, + logger: init.logger + } + ) + } + if (ssoStartUrl && ssoStartUrl !== session.sso_start_url) { + throw new import_property_provider.CredentialsProviderError( + `Conflicting SSO start_url` + conflictMsg, + { + tryNextLink: false, + logger: init.logger + } + ) + } + profile.sso_region = session.sso_region + profile.sso_start_url = session.sso_start_url + } + const { + sso_start_url, + sso_account_id, + sso_region, + sso_role_name, + sso_session + } = validateSsoProfile(profile, init.logger) + return resolveSSOCredentials({ + ssoStartUrl: sso_start_url, + ssoSession: sso_session, + ssoAccountId: sso_account_id, + ssoRegion: sso_region, + ssoRoleName: sso_role_name, + ssoClient, + clientConfig: init.clientConfig, + parentClientConfig: init.parentClientConfig, + profile: profileName + }) + } else if ( + !ssoStartUrl || + !ssoAccountId || + !ssoRegion || + !ssoRoleName + ) { + throw new import_property_provider.CredentialsProviderError( + 'Incomplete configuration. The fromSSO() argument hash must include "ssoStartUrl", "ssoAccountId", "ssoRegion", "ssoRoleName"', + { tryNextLink: false, logger: init.logger } + ) + } else { + return resolveSSOCredentials({ + ssoStartUrl, + ssoSession, + ssoAccountId, + ssoRegion, + ssoRoleName, + ssoClient, + clientConfig: init.clientConfig, + parentClientConfig: init.parentClientConfig, + profile: profileName + }) + } + }, + 'fromSSO' + ) + // Annotate the CommonJS export names for ESM import in node: + + 0 && 0 + + /***/ + }, + + /***/ 50514: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.fromTokenFile = void 0 + const client_1 = __nccwpck_require__(60034) + const property_provider_1 = __nccwpck_require__(19248) + const fs_1 = __nccwpck_require__(57147) + const fromWebToken_1 = __nccwpck_require__(73171) + const ENV_TOKEN_FILE = 'AWS_WEB_IDENTITY_TOKEN_FILE' + const ENV_ROLE_ARN = 'AWS_ROLE_ARN' + const ENV_ROLE_SESSION_NAME = 'AWS_ROLE_SESSION_NAME' + const fromTokenFile = + (init = {}) => + async () => { + init.logger?.debug( + '@aws-sdk/credential-provider-web-identity - fromTokenFile' + ) + const webIdentityTokenFile = + init?.webIdentityTokenFile ?? process.env[ENV_TOKEN_FILE] + const roleArn = init?.roleArn ?? process.env[ENV_ROLE_ARN] + const roleSessionName = + init?.roleSessionName ?? process.env[ENV_ROLE_SESSION_NAME] + if (!webIdentityTokenFile || !roleArn) { + throw new property_provider_1.CredentialsProviderError( + 'Web identity configuration not specified', + { + logger: init.logger + } + ) + } + const credentials = await (0, fromWebToken_1.fromWebToken)({ + ...init, + webIdentityToken: (0, fs_1.readFileSync)(webIdentityTokenFile, { + encoding: 'ascii' + }), + roleArn, + roleSessionName + })() + if (webIdentityTokenFile === process.env[ENV_TOKEN_FILE]) { + ;(0, client_1.setCredentialFeature)( + credentials, + 'CREDENTIALS_ENV_VARS_STS_WEB_ID_TOKEN', + 'h' + ) + } + return credentials + } + exports.fromTokenFile = fromTokenFile + + /***/ + }, + + /***/ 73171: /***/ function ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) { + 'use strict' + + var __createBinding = + (this && this.__createBinding) || + (Object.create + ? function (o, m, k, k2) { + if (k2 === undefined) k2 = k + var desc = Object.getOwnPropertyDescriptor(m, k) + if ( + !desc || + ('get' in desc + ? !m.__esModule + : desc.writable || desc.configurable) + ) { + desc = { + enumerable: true, + get: function () { + return m[k] + } + } + } + Object.defineProperty(o, k2, desc) + } + : function (o, m, k, k2) { + if (k2 === undefined) k2 = k + o[k2] = m[k] + }) + var __setModuleDefault = + (this && this.__setModuleDefault) || + (Object.create + ? function (o, v) { + Object.defineProperty(o, 'default', { + enumerable: true, + value: v + }) + } + : function (o, v) { + o['default'] = v + }) + var __importStar = + (this && this.__importStar) || + function (mod) { + if (mod && mod.__esModule) return mod + var result = {} + if (mod != null) + for (var k in mod) + if ( + k !== 'default' && + Object.prototype.hasOwnProperty.call(mod, k) + ) + __createBinding(result, mod, k) + __setModuleDefault(result, mod) + return result + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.fromWebToken = void 0 + const fromWebToken = init => async awsIdentityProperties => { + init.logger?.debug( + '@aws-sdk/credential-provider-web-identity - fromWebToken' + ) + const { + roleArn, + roleSessionName, + webIdentityToken, + providerId, + policyArns, + policy, + durationSeconds + } = init + let { roleAssumerWithWebIdentity } = init + if (!roleAssumerWithWebIdentity) { + const { getDefaultRoleAssumerWithWebIdentity } = + await Promise.resolve().then(() => + __importStar(__nccwpck_require__(2273)) + ) + roleAssumerWithWebIdentity = getDefaultRoleAssumerWithWebIdentity( + { + ...init.clientConfig, + credentialProviderLogger: init.logger, + parentClientConfig: { + ...awsIdentityProperties?.callerClientConfig, + ...init.parentClientConfig + } + }, + init.clientPlugins + ) + } + return roleAssumerWithWebIdentity({ + RoleArn: roleArn, + RoleSessionName: + roleSessionName ?? `aws-sdk-js-session-${Date.now()}`, + WebIdentityToken: webIdentityToken, + ProviderId: providerId, + PolicyArns: policyArns, + Policy: policy, + DurationSeconds: durationSeconds + }) + } + exports.fromWebToken = fromWebToken + + /***/ + }, + + /***/ 79761: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __reExport = (target, mod, secondTarget) => ( + __copyProps(target, mod, 'default'), + secondTarget && __copyProps(secondTarget, mod, 'default') + ) + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var index_exports = {} + module.exports = __toCommonJS(index_exports) + __reExport(index_exports, __nccwpck_require__(50514), module.exports) + __reExport(index_exports, __nccwpck_require__(73171), module.exports) + // Annotate the CommonJS export names for ESM import in node: + + 0 && 0 + + /***/ + }, + + /***/ 11046: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var index_exports = {} + __export(index_exports, { + getHostHeaderPlugin: () => getHostHeaderPlugin, + hostHeaderMiddleware: () => hostHeaderMiddleware, + hostHeaderMiddlewareOptions: () => hostHeaderMiddlewareOptions, + resolveHostHeaderConfig: () => resolveHostHeaderConfig + }) + module.exports = __toCommonJS(index_exports) + var import_protocol_http = __nccwpck_require__(31788) + function resolveHostHeaderConfig(input) { + return input + } + __name(resolveHostHeaderConfig, 'resolveHostHeaderConfig') + var hostHeaderMiddleware = /* @__PURE__ */ __name( + options => next => async args => { + if (!import_protocol_http.HttpRequest.isInstance(args.request)) + return next(args) + const { request } = args + const { handlerProtocol = '' } = options.requestHandler.metadata || {} + if ( + handlerProtocol.indexOf('h2') >= 0 && + !request.headers[':authority'] + ) { + delete request.headers['host'] + request.headers[':authority'] = + request.hostname + (request.port ? ':' + request.port : '') + } else if (!request.headers['host']) { + let host = request.hostname + if (request.port != null) host += `:${request.port}` + request.headers['host'] = host + } + return next(args) + }, + 'hostHeaderMiddleware' + ) + var hostHeaderMiddlewareOptions = { + name: 'hostHeaderMiddleware', + step: 'build', + priority: 'low', + tags: ['HOST'], + override: true + } + var getHostHeaderPlugin = /* @__PURE__ */ __name( + options => ({ + applyToStack: /* @__PURE__ */ __name(clientStack => { + clientStack.add( + hostHeaderMiddleware(options), + hostHeaderMiddlewareOptions + ) + }, 'applyToStack') + }), + 'getHostHeaderPlugin' + ) + // Annotate the CommonJS export names for ESM import in node: + + 0 && 0 + + /***/ + }, + + /***/ 26622: /***/ module => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var index_exports = {} + __export(index_exports, { + getLoggerPlugin: () => getLoggerPlugin, + loggerMiddleware: () => loggerMiddleware, + loggerMiddlewareOptions: () => loggerMiddlewareOptions + }) + module.exports = __toCommonJS(index_exports) + + // src/loggerMiddleware.ts + var loggerMiddleware = /* @__PURE__ */ __name( + () => (next, context) => async args => { + try { + const response = await next(args) + const { + clientName, + commandName, + logger, + dynamoDbDocumentClientOptions = {} + } = context + const { + overrideInputFilterSensitiveLog, + overrideOutputFilterSensitiveLog + } = dynamoDbDocumentClientOptions + const inputFilterSensitiveLog = + overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog + const outputFilterSensitiveLog = + overrideOutputFilterSensitiveLog ?? + context.outputFilterSensitiveLog + const { $metadata, ...outputWithoutMetadata } = response.output + logger?.info?.({ + clientName, + commandName, + input: inputFilterSensitiveLog(args.input), + output: outputFilterSensitiveLog(outputWithoutMetadata), + metadata: $metadata + }) + return response + } catch (error) { + const { + clientName, + commandName, + logger, + dynamoDbDocumentClientOptions = {} + } = context + const { overrideInputFilterSensitiveLog } = + dynamoDbDocumentClientOptions + const inputFilterSensitiveLog = + overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog + logger?.error?.({ + clientName, + commandName, + input: inputFilterSensitiveLog(args.input), + error, + metadata: error.$metadata + }) + throw error + } + }, + 'loggerMiddleware' + ) + var loggerMiddlewareOptions = { + name: 'loggerMiddleware', + tags: ['LOGGER'], + step: 'initialize', + override: true + } + var getLoggerPlugin = /* @__PURE__ */ __name( + options => ({ + applyToStack: /* @__PURE__ */ __name(clientStack => { + clientStack.add(loggerMiddleware(), loggerMiddlewareOptions) + }, 'applyToStack') + }), + 'getLoggerPlugin' + ) + // Annotate the CommonJS export names for ESM import in node: + + 0 && 0 + + /***/ + }, + + /***/ 33544: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var index_exports = {} + __export(index_exports, { + addRecursionDetectionMiddlewareOptions: () => + addRecursionDetectionMiddlewareOptions, + getRecursionDetectionPlugin: () => getRecursionDetectionPlugin, + recursionDetectionMiddleware: () => recursionDetectionMiddleware + }) + module.exports = __toCommonJS(index_exports) + var import_protocol_http = __nccwpck_require__(31788) + var TRACE_ID_HEADER_NAME = 'X-Amzn-Trace-Id' + var ENV_LAMBDA_FUNCTION_NAME = 'AWS_LAMBDA_FUNCTION_NAME' + var ENV_TRACE_ID = '_X_AMZN_TRACE_ID' + var recursionDetectionMiddleware = /* @__PURE__ */ __name( + options => next => async args => { + const { request } = args + if ( + !import_protocol_http.HttpRequest.isInstance(request) || + options.runtime !== 'node' + ) { + return next(args) + } + const traceIdHeader = + Object.keys(request.headers ?? {}).find( + h => h.toLowerCase() === TRACE_ID_HEADER_NAME.toLowerCase() + ) ?? TRACE_ID_HEADER_NAME + if (request.headers.hasOwnProperty(traceIdHeader)) { + return next(args) + } + const functionName = process.env[ENV_LAMBDA_FUNCTION_NAME] + const traceId = process.env[ENV_TRACE_ID] + const nonEmptyString = /* @__PURE__ */ __name( + str => typeof str === 'string' && str.length > 0, + 'nonEmptyString' + ) + if (nonEmptyString(functionName) && nonEmptyString(traceId)) { + request.headers[TRACE_ID_HEADER_NAME] = traceId + } + return next({ + ...args, + request + }) + }, + 'recursionDetectionMiddleware' + ) + var addRecursionDetectionMiddlewareOptions = { + step: 'build', + tags: ['RECURSION_DETECTION'], + name: 'recursionDetectionMiddleware', + override: true, + priority: 'low' + } + var getRecursionDetectionPlugin = /* @__PURE__ */ __name( + options => ({ + applyToStack: /* @__PURE__ */ __name(clientStack => { + clientStack.add( + recursionDetectionMiddleware(options), + addRecursionDetectionMiddlewareOptions + ) + }, 'applyToStack') + }), + 'getRecursionDetectionPlugin' + ) + // Annotate the CommonJS export names for ESM import in node: + + 0 && 0 + + /***/ + }, + + /***/ 9711: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var index_exports = {} + __export(index_exports, { + DEFAULT_UA_APP_ID: () => DEFAULT_UA_APP_ID, + getUserAgentMiddlewareOptions: () => getUserAgentMiddlewareOptions, + getUserAgentPlugin: () => getUserAgentPlugin, + resolveUserAgentConfig: () => resolveUserAgentConfig, + userAgentMiddleware: () => userAgentMiddleware + }) + module.exports = __toCommonJS(index_exports) + + // src/configurations.ts + var import_core = __nccwpck_require__(27588) + var DEFAULT_UA_APP_ID = void 0 + function isValidUserAgentAppId(appId) { + if (appId === void 0) { + return true + } + return typeof appId === 'string' && appId.length <= 50 + } + __name(isValidUserAgentAppId, 'isValidUserAgentAppId') + function resolveUserAgentConfig(input) { + const normalizedAppIdProvider = (0, import_core.normalizeProvider)( + input.userAgentAppId ?? DEFAULT_UA_APP_ID + ) + const { customUserAgent } = input + return Object.assign(input, { + customUserAgent: + typeof customUserAgent === 'string' + ? [[customUserAgent]] + : customUserAgent, + userAgentAppId: /* @__PURE__ */ __name(async () => { + const appId = await normalizedAppIdProvider() + if (!isValidUserAgentAppId(appId)) { + const logger = + input.logger?.constructor?.name === 'NoOpLogger' || + !input.logger + ? console + : input.logger + if (typeof appId !== 'string') { + logger?.warn('userAgentAppId must be a string or undefined.') + } else if (appId.length > 50) { + logger?.warn( + 'The provided userAgentAppId exceeds the maximum length of 50 characters.' + ) + } + } + return appId + }, 'userAgentAppId') + }) + } + __name(resolveUserAgentConfig, 'resolveUserAgentConfig') + + // src/user-agent-middleware.ts + var import_util_endpoints = __nccwpck_require__(24253) + var import_protocol_http = __nccwpck_require__(31788) + + // src/check-features.ts + var import_core2 = __nccwpck_require__(69736) + var ACCOUNT_ID_ENDPOINT_REGEX = /\d{12}\.ddb/ + async function checkFeatures(context, config, args) { + const request = args.request + if (request?.headers?.['smithy-protocol'] === 'rpc-v2-cbor') { + ;(0, import_core2.setFeature)(context, 'PROTOCOL_RPC_V2_CBOR', 'M') + } + if (typeof config.retryStrategy === 'function') { + const retryStrategy = await config.retryStrategy() + if (typeof retryStrategy.acquireInitialRetryToken === 'function') { + if (retryStrategy.constructor?.name?.includes('Adaptive')) { + ;(0, import_core2.setFeature)(context, 'RETRY_MODE_ADAPTIVE', 'F') + } else { + ;(0, import_core2.setFeature)(context, 'RETRY_MODE_STANDARD', 'E') + } + } else { + ;(0, import_core2.setFeature)(context, 'RETRY_MODE_LEGACY', 'D') + } + } + if (typeof config.accountIdEndpointMode === 'function') { + const endpointV2 = context.endpointV2 + if ( + String(endpointV2?.url?.hostname).match(ACCOUNT_ID_ENDPOINT_REGEX) + ) { + ;(0, import_core2.setFeature)(context, 'ACCOUNT_ID_ENDPOINT', 'O') + } + switch (await config.accountIdEndpointMode?.()) { + case 'disabled': + ;(0, import_core2.setFeature)( + context, + 'ACCOUNT_ID_MODE_DISABLED', + 'Q' + ) + break + case 'preferred': + ;(0, import_core2.setFeature)( + context, + 'ACCOUNT_ID_MODE_PREFERRED', + 'P' + ) + break + case 'required': + ;(0, import_core2.setFeature)( + context, + 'ACCOUNT_ID_MODE_REQUIRED', + 'R' + ) + break + } + } + const identity = + context.__smithy_context?.selectedHttpAuthScheme?.identity + if (identity?.$source) { + const credentials = identity + if (credentials.accountId) { + ;(0, import_core2.setFeature)(context, 'RESOLVED_ACCOUNT_ID', 'T') + } + for (const [key, value] of Object.entries( + credentials.$source ?? {} + )) { + ;(0, import_core2.setFeature)(context, key, value) + } + } + } + __name(checkFeatures, 'checkFeatures') + + // src/constants.ts + var USER_AGENT = 'user-agent' + var X_AMZ_USER_AGENT = 'x-amz-user-agent' + var SPACE = ' ' + var UA_NAME_SEPARATOR = '/' + var UA_NAME_ESCAPE_REGEX = /[^\!\$\%\&\'\*\+\-\.\^\_\`\|\~\d\w]/g + var UA_VALUE_ESCAPE_REGEX = /[^\!\$\%\&\'\*\+\-\.\^\_\`\|\~\d\w\#]/g + var UA_ESCAPE_CHAR = '-' + + // src/encode-features.ts + var BYTE_LIMIT = 1024 + function encodeFeatures(features) { + let buffer = '' + for (const key in features) { + const val = features[key] + if (buffer.length + val.length + 1 <= BYTE_LIMIT) { + if (buffer.length) { + buffer += ',' + val + } else { + buffer += val + } + continue + } + break + } + return buffer + } + __name(encodeFeatures, 'encodeFeatures') + + // src/user-agent-middleware.ts + var userAgentMiddleware = /* @__PURE__ */ __name( + options => (next, context) => async args => { + const { request } = args + if (!import_protocol_http.HttpRequest.isInstance(request)) { + return next(args) + } + const { headers } = request + const userAgent = context?.userAgent?.map(escapeUserAgent) || [] + const defaultUserAgent = ( + await options.defaultUserAgentProvider() + ).map(escapeUserAgent) + await checkFeatures(context, options, args) + const awsContext = context + defaultUserAgent.push( + `m/${encodeFeatures( + Object.assign( + {}, + context.__smithy_context?.features, + awsContext.__aws_sdk_context?.features + ) + )}` + ) + const customUserAgent = + options?.customUserAgent?.map(escapeUserAgent) || [] + const appId = await options.userAgentAppId() + if (appId) { + defaultUserAgent.push(escapeUserAgent([`app/${appId}`])) + } + const prefix = (0, import_util_endpoints.getUserAgentPrefix)() + const sdkUserAgentValue = (prefix ? [prefix] : []) + .concat([...defaultUserAgent, ...userAgent, ...customUserAgent]) + .join(SPACE) + const normalUAValue = [ + ...defaultUserAgent.filter(section => + section.startsWith('aws-sdk-') + ), + ...customUserAgent + ].join(SPACE) + if (options.runtime !== 'browser') { + if (normalUAValue) { + headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT] + ? `${headers[USER_AGENT]} ${normalUAValue}` + : normalUAValue + } + headers[USER_AGENT] = sdkUserAgentValue + } else { + headers[X_AMZ_USER_AGENT] = sdkUserAgentValue + } + return next({ + ...args, + request + }) + }, + 'userAgentMiddleware' + ) + var escapeUserAgent = /* @__PURE__ */ __name(userAgentPair => { + const name = userAgentPair[0] + .split(UA_NAME_SEPARATOR) + .map(part => part.replace(UA_NAME_ESCAPE_REGEX, UA_ESCAPE_CHAR)) + .join(UA_NAME_SEPARATOR) + const version = userAgentPair[1]?.replace( + UA_VALUE_ESCAPE_REGEX, + UA_ESCAPE_CHAR + ) + const prefixSeparatorIndex = name.indexOf(UA_NAME_SEPARATOR) + const prefix = name.substring(0, prefixSeparatorIndex) + let uaName = name.substring(prefixSeparatorIndex + 1) + if (prefix === 'api') { + uaName = uaName.toLowerCase() + } + return [prefix, uaName, version] + .filter(item => item && item.length > 0) + .reduce((acc, item, index) => { + switch (index) { + case 0: + return item + case 1: + return `${acc}/${item}` + default: + return `${acc}#${item}` + } + }, '') + }, 'escapeUserAgent') + var getUserAgentMiddlewareOptions = { + name: 'getUserAgentMiddleware', + step: 'build', + priority: 'low', + tags: ['SET_USER_AGENT', 'USER_AGENT'], + override: true + } + var getUserAgentPlugin = /* @__PURE__ */ __name( + config => ({ + applyToStack: /* @__PURE__ */ __name(clientStack => { + clientStack.add( + userAgentMiddleware(config), + getUserAgentMiddlewareOptions + ) + }, 'applyToStack') + }), + 'getUserAgentPlugin' + ) + // Annotate the CommonJS export names for ESM import in node: + + 0 && 0 + + /***/ + }, + + /***/ 56088: /***/ module => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var index_exports = {} + __export(index_exports, { + NODE_REGION_CONFIG_FILE_OPTIONS: () => NODE_REGION_CONFIG_FILE_OPTIONS, + NODE_REGION_CONFIG_OPTIONS: () => NODE_REGION_CONFIG_OPTIONS, + REGION_ENV_NAME: () => REGION_ENV_NAME, + REGION_INI_NAME: () => REGION_INI_NAME, + getAwsRegionExtensionConfiguration: () => + getAwsRegionExtensionConfiguration, + resolveAwsRegionExtensionConfiguration: () => + resolveAwsRegionExtensionConfiguration, + resolveRegionConfig: () => resolveRegionConfig + }) + module.exports = __toCommonJS(index_exports) + + // src/extensions/index.ts + var getAwsRegionExtensionConfiguration = /* @__PURE__ */ __name( + runtimeConfig => { + return { + setRegion(region) { + runtimeConfig.region = region + }, + region() { + return runtimeConfig.region + } + } + }, + 'getAwsRegionExtensionConfiguration' + ) + var resolveAwsRegionExtensionConfiguration = /* @__PURE__ */ __name( + awsRegionExtensionConfiguration => { + return { + region: awsRegionExtensionConfiguration.region() + } + }, + 'resolveAwsRegionExtensionConfiguration' + ) + + // src/regionConfig/config.ts + var REGION_ENV_NAME = 'AWS_REGION' + var REGION_INI_NAME = 'region' + var NODE_REGION_CONFIG_OPTIONS = { + environmentVariableSelector: /* @__PURE__ */ __name( + env => env[REGION_ENV_NAME], + 'environmentVariableSelector' + ), + configFileSelector: /* @__PURE__ */ __name( + profile => profile[REGION_INI_NAME], + 'configFileSelector' + ), + default: /* @__PURE__ */ __name(() => { + throw new Error('Region is missing') + }, 'default') + } + var NODE_REGION_CONFIG_FILE_OPTIONS = { + preferredFile: 'credentials' + } + + // src/regionConfig/isFipsRegion.ts + var isFipsRegion = /* @__PURE__ */ __name( + region => + typeof region === 'string' && + (region.startsWith('fips-') || region.endsWith('-fips')), + 'isFipsRegion' + ) + + // src/regionConfig/getRealRegion.ts + var getRealRegion = /* @__PURE__ */ __name( + region => + isFipsRegion(region) + ? ['fips-aws-global', 'aws-fips'].includes(region) + ? 'us-east-1' + : region.replace(/fips-(dkr-|prod-)?|-fips/, '') + : region, + 'getRealRegion' + ) + + // src/regionConfig/resolveRegionConfig.ts + var resolveRegionConfig = /* @__PURE__ */ __name(input => { + const { region, useFipsEndpoint } = input + if (!region) { + throw new Error('Region is missing') + } + return Object.assign(input, { + region: /* @__PURE__ */ __name(async () => { + if (typeof region === 'string') { + return getRealRegion(region) + } + const providedRegion = await region() + return getRealRegion(providedRegion) + }, 'region'), + useFipsEndpoint: /* @__PURE__ */ __name(async () => { + const providedRegion = + typeof region === 'string' ? region : await region() + if (isFipsRegion(providedRegion)) { + return true + } + return typeof useFipsEndpoint !== 'function' + ? Promise.resolve(!!useFipsEndpoint) + : useFipsEndpoint() + }, 'useFipsEndpoint') + }) + }, 'resolveRegionConfig') + // Annotate the CommonJS export names for ESM import in node: + + 0 && 0 + + /***/ + }, + + /***/ 6701: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __create = Object.create + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __getProtoOf = Object.getPrototypeOf + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toESM = (mod, isNodeMode, target) => ( + (target = mod != null ? __create(__getProtoOf(mod)) : {}), + __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule + ? __defProp(target, 'default', { value: mod, enumerable: true }) + : target, + mod + ) + ) + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var index_exports = {} + __export(index_exports, { + fromSso: () => fromSso, + fromStatic: () => fromStatic, + nodeProvider: () => nodeProvider + }) + module.exports = __toCommonJS(index_exports) + + // src/fromSso.ts + + // src/constants.ts + var EXPIRE_WINDOW_MS = 5 * 60 * 1e3 + var REFRESH_MESSAGE = `To refresh this SSO session run 'aws sso login' with the corresponding profile.` + + // src/getSsoOidcClient.ts + var getSsoOidcClient = /* @__PURE__ */ __name( + async (ssoRegion, init = {}) => { + const { SSOOIDCClient } = await Promise.resolve().then(() => + __toESM(__nccwpck_require__(27334)) + ) + const ssoOidcClient = new SSOOIDCClient( + Object.assign({}, init.clientConfig ?? {}, { + region: ssoRegion ?? init.clientConfig?.region, + logger: + init.clientConfig?.logger ?? init.parentClientConfig?.logger + }) + ) + return ssoOidcClient + }, + 'getSsoOidcClient' + ) + + // src/getNewSsoOidcToken.ts + var getNewSsoOidcToken = /* @__PURE__ */ __name( + async (ssoToken, ssoRegion, init = {}) => { + const { CreateTokenCommand } = await Promise.resolve().then(() => + __toESM(__nccwpck_require__(27334)) + ) + const ssoOidcClient = await getSsoOidcClient(ssoRegion, init) + return ssoOidcClient.send( + new CreateTokenCommand({ + clientId: ssoToken.clientId, + clientSecret: ssoToken.clientSecret, + refreshToken: ssoToken.refreshToken, + grantType: 'refresh_token' + }) + ) + }, + 'getNewSsoOidcToken' + ) + + // src/validateTokenExpiry.ts + var import_property_provider = __nccwpck_require__(19248) + var validateTokenExpiry = /* @__PURE__ */ __name(token => { + if (token.expiration && token.expiration.getTime() < Date.now()) { + throw new import_property_provider.TokenProviderError( + `Token is expired. ${REFRESH_MESSAGE}`, + false + ) + } + }, 'validateTokenExpiry') + + // src/validateTokenKey.ts + + var validateTokenKey = /* @__PURE__ */ __name( + (key, value, forRefresh = false) => { + if (typeof value === 'undefined') { + throw new import_property_provider.TokenProviderError( + `Value not present for '${key}' in SSO Token${forRefresh ? '. Cannot refresh' : ''}. ${REFRESH_MESSAGE}`, + false + ) + } + }, + 'validateTokenKey' + ) + + // src/writeSSOTokenToFile.ts + var import_shared_ini_file_loader = __nccwpck_require__(69001) + var import_fs = __nccwpck_require__(57147) + var { writeFile } = import_fs.promises + var writeSSOTokenToFile = /* @__PURE__ */ __name((id, ssoToken) => { + const tokenFilepath = (0, + import_shared_ini_file_loader.getSSOTokenFilepath)(id) + const tokenString = JSON.stringify(ssoToken, null, 2) + return writeFile(tokenFilepath, tokenString) + }, 'writeSSOTokenToFile') + + // src/fromSso.ts + var lastRefreshAttemptTime = /* @__PURE__ */ new Date(0) + var fromSso = /* @__PURE__ */ __name( + (_init = {}) => + async ({ callerClientConfig } = {}) => { + const init = { + ..._init, + parentClientConfig: { + ...callerClientConfig, + ..._init.parentClientConfig + } + } + init.logger?.debug('@aws-sdk/token-providers - fromSso') + const profiles = await (0, + import_shared_ini_file_loader.parseKnownFiles)(init) + const profileName = (0, + import_shared_ini_file_loader.getProfileName)({ + profile: init.profile ?? callerClientConfig?.profile + }) + const profile = profiles[profileName] + if (!profile) { + throw new import_property_provider.TokenProviderError( + `Profile '${profileName}' could not be found in shared credentials file.`, + false + ) + } else if (!profile['sso_session']) { + throw new import_property_provider.TokenProviderError( + `Profile '${profileName}' is missing required property 'sso_session'.` + ) + } + const ssoSessionName = profile['sso_session'] + const ssoSessions = await (0, + import_shared_ini_file_loader.loadSsoSessionData)(init) + const ssoSession = ssoSessions[ssoSessionName] + if (!ssoSession) { + throw new import_property_provider.TokenProviderError( + `Sso session '${ssoSessionName}' could not be found in shared credentials file.`, + false + ) + } + for (const ssoSessionRequiredKey of [ + 'sso_start_url', + 'sso_region' + ]) { + if (!ssoSession[ssoSessionRequiredKey]) { + throw new import_property_provider.TokenProviderError( + `Sso session '${ssoSessionName}' is missing required property '${ssoSessionRequiredKey}'.`, + false + ) + } + } + const ssoStartUrl = ssoSession['sso_start_url'] + const ssoRegion = ssoSession['sso_region'] + let ssoToken + try { + ssoToken = await (0, + import_shared_ini_file_loader.getSSOTokenFromFile)(ssoSessionName) + } catch (e) { + throw new import_property_provider.TokenProviderError( + `The SSO session token associated with profile=${profileName} was not found or is invalid. ${REFRESH_MESSAGE}`, + false + ) + } + validateTokenKey('accessToken', ssoToken.accessToken) + validateTokenKey('expiresAt', ssoToken.expiresAt) + const { accessToken, expiresAt } = ssoToken + const existingToken = { + token: accessToken, + expiration: new Date(expiresAt) + } + if ( + existingToken.expiration.getTime() - Date.now() > + EXPIRE_WINDOW_MS + ) { + return existingToken + } + if (Date.now() - lastRefreshAttemptTime.getTime() < 30 * 1e3) { + validateTokenExpiry(existingToken) + return existingToken + } + validateTokenKey('clientId', ssoToken.clientId, true) + validateTokenKey('clientSecret', ssoToken.clientSecret, true) + validateTokenKey('refreshToken', ssoToken.refreshToken, true) + try { + lastRefreshAttemptTime.setTime(Date.now()) + const newSsoOidcToken = await getNewSsoOidcToken( + ssoToken, + ssoRegion, + init + ) + validateTokenKey('accessToken', newSsoOidcToken.accessToken) + validateTokenKey('expiresIn', newSsoOidcToken.expiresIn) + const newTokenExpiration = new Date( + Date.now() + newSsoOidcToken.expiresIn * 1e3 + ) + try { + await writeSSOTokenToFile(ssoSessionName, { + ...ssoToken, + accessToken: newSsoOidcToken.accessToken, + expiresAt: newTokenExpiration.toISOString(), + refreshToken: newSsoOidcToken.refreshToken + }) + } catch (error) {} + return { + token: newSsoOidcToken.accessToken, + expiration: newTokenExpiration + } + } catch (error) { + validateTokenExpiry(existingToken) + return existingToken + } + }, + 'fromSso' + ) + + // src/fromStatic.ts + + var fromStatic = /* @__PURE__ */ __name( + ({ token, logger }) => + async () => { + logger?.debug('@aws-sdk/token-providers - fromStatic') + if (!token || !token.token) { + throw new import_property_provider.TokenProviderError( + `Please pass a valid token to fromStatic`, + false + ) + } + return token + }, + 'fromStatic' + ) + + // src/nodeProvider.ts + + var nodeProvider = /* @__PURE__ */ __name( + (init = {}) => + (0, import_property_provider.memoize)( + (0, import_property_provider.chain)(fromSso(init), async () => { + throw new import_property_provider.TokenProviderError( + 'Could not load token from any providers', + false + ) + }), + token => + token.expiration !== void 0 && + token.expiration.getTime() - Date.now() < 3e5, + token => token.expiration !== void 0 + ), + 'nodeProvider' + ) + // Annotate the CommonJS export names for ESM import in node: + + 0 && 0 + + /***/ + }, + + /***/ 24253: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var index_exports = {} + __export(index_exports, { + ConditionObject: () => import_util_endpoints.ConditionObject, + DeprecatedObject: () => import_util_endpoints.DeprecatedObject, + EndpointError: () => import_util_endpoints.EndpointError, + EndpointObject: () => import_util_endpoints.EndpointObject, + EndpointObjectHeaders: () => + import_util_endpoints.EndpointObjectHeaders, + EndpointObjectProperties: () => + import_util_endpoints.EndpointObjectProperties, + EndpointParams: () => import_util_endpoints.EndpointParams, + EndpointResolverOptions: () => + import_util_endpoints.EndpointResolverOptions, + EndpointRuleObject: () => import_util_endpoints.EndpointRuleObject, + ErrorRuleObject: () => import_util_endpoints.ErrorRuleObject, + EvaluateOptions: () => import_util_endpoints.EvaluateOptions, + Expression: () => import_util_endpoints.Expression, + FunctionArgv: () => import_util_endpoints.FunctionArgv, + FunctionObject: () => import_util_endpoints.FunctionObject, + FunctionReturn: () => import_util_endpoints.FunctionReturn, + ParameterObject: () => import_util_endpoints.ParameterObject, + ReferenceObject: () => import_util_endpoints.ReferenceObject, + ReferenceRecord: () => import_util_endpoints.ReferenceRecord, + RuleSetObject: () => import_util_endpoints.RuleSetObject, + RuleSetRules: () => import_util_endpoints.RuleSetRules, + TreeRuleObject: () => import_util_endpoints.TreeRuleObject, + awsEndpointFunctions: () => awsEndpointFunctions, + getUserAgentPrefix: () => getUserAgentPrefix, + isIpAddress: () => import_util_endpoints.isIpAddress, + partition: () => partition, + resolveEndpoint: () => import_util_endpoints.resolveEndpoint, + setPartitionInfo: () => setPartitionInfo, + useDefaultPartitionInfo: () => useDefaultPartitionInfo + }) + module.exports = __toCommonJS(index_exports) + + // src/aws.ts + + // src/lib/aws/isVirtualHostableS3Bucket.ts + + // src/lib/isIpAddress.ts + var import_util_endpoints = __nccwpck_require__(76779) + + // src/lib/aws/isVirtualHostableS3Bucket.ts + var isVirtualHostableS3Bucket = /* @__PURE__ */ __name( + (value, allowSubDomains = false) => { + if (allowSubDomains) { + for (const label of value.split('.')) { + if (!isVirtualHostableS3Bucket(label)) { + return false + } + } + return true + } + if (!(0, import_util_endpoints.isValidHostLabel)(value)) { + return false + } + if (value.length < 3 || value.length > 63) { + return false + } + if (value !== value.toLowerCase()) { + return false + } + if ((0, import_util_endpoints.isIpAddress)(value)) { + return false + } + return true + }, + 'isVirtualHostableS3Bucket' + ) + + // src/lib/aws/parseArn.ts + var ARN_DELIMITER = ':' + var RESOURCE_DELIMITER = '/' + var parseArn = /* @__PURE__ */ __name(value => { + const segments = value.split(ARN_DELIMITER) + if (segments.length < 6) return null + const [arn, partition2, service, region, accountId, ...resourcePath] = + segments + if ( + arn !== 'arn' || + partition2 === '' || + service === '' || + resourcePath.join(ARN_DELIMITER) === '' + ) + return null + const resourceId = resourcePath + .map(resource => resource.split(RESOURCE_DELIMITER)) + .flat() + return { + partition: partition2, + service, + region, + accountId, + resourceId + } + }, 'parseArn') + + // src/lib/aws/partitions.json + var partitions_default = { + partitions: [ + { + id: 'aws', + outputs: { + dnsSuffix: 'amazonaws.com', + dualStackDnsSuffix: 'api.aws', + implicitGlobalRegion: 'us-east-1', + name: 'aws', + supportsDualStack: true, + supportsFIPS: true + }, + regionRegex: '^(us|eu|ap|sa|ca|me|af|il|mx)\\-\\w+\\-\\d+$', + regions: { + 'af-south-1': { + description: 'Africa (Cape Town)' + }, + 'ap-east-1': { + description: 'Asia Pacific (Hong Kong)' + }, + 'ap-northeast-1': { + description: 'Asia Pacific (Tokyo)' + }, + 'ap-northeast-2': { + description: 'Asia Pacific (Seoul)' + }, + 'ap-northeast-3': { + description: 'Asia Pacific (Osaka)' + }, + 'ap-south-1': { + description: 'Asia Pacific (Mumbai)' + }, + 'ap-south-2': { + description: 'Asia Pacific (Hyderabad)' + }, + 'ap-southeast-1': { + description: 'Asia Pacific (Singapore)' + }, + 'ap-southeast-2': { + description: 'Asia Pacific (Sydney)' + }, + 'ap-southeast-3': { + description: 'Asia Pacific (Jakarta)' + }, + 'ap-southeast-4': { + description: 'Asia Pacific (Melbourne)' + }, + 'ap-southeast-5': { + description: 'Asia Pacific (Malaysia)' + }, + 'ap-southeast-7': { + description: 'Asia Pacific (Thailand)' + }, + 'aws-global': { + description: 'AWS Standard global region' + }, + 'ca-central-1': { + description: 'Canada (Central)' + }, + 'ca-west-1': { + description: 'Canada West (Calgary)' + }, + 'eu-central-1': { + description: 'Europe (Frankfurt)' + }, + 'eu-central-2': { + description: 'Europe (Zurich)' + }, + 'eu-north-1': { + description: 'Europe (Stockholm)' + }, + 'eu-south-1': { + description: 'Europe (Milan)' + }, + 'eu-south-2': { + description: 'Europe (Spain)' + }, + 'eu-west-1': { + description: 'Europe (Ireland)' + }, + 'eu-west-2': { + description: 'Europe (London)' + }, + 'eu-west-3': { + description: 'Europe (Paris)' + }, + 'il-central-1': { + description: 'Israel (Tel Aviv)' + }, + 'me-central-1': { + description: 'Middle East (UAE)' + }, + 'me-south-1': { + description: 'Middle East (Bahrain)' + }, + 'mx-central-1': { + description: 'Mexico (Central)' + }, + 'sa-east-1': { + description: 'South America (Sao Paulo)' + }, + 'us-east-1': { + description: 'US East (N. Virginia)' + }, + 'us-east-2': { + description: 'US East (Ohio)' + }, + 'us-west-1': { + description: 'US West (N. California)' + }, + 'us-west-2': { + description: 'US West (Oregon)' + } + } + }, + { + id: 'aws-cn', + outputs: { + dnsSuffix: 'amazonaws.com.cn', + dualStackDnsSuffix: 'api.amazonwebservices.com.cn', + implicitGlobalRegion: 'cn-northwest-1', + name: 'aws-cn', + supportsDualStack: true, + supportsFIPS: true + }, + regionRegex: '^cn\\-\\w+\\-\\d+$', + regions: { + 'aws-cn-global': { + description: 'AWS China global region' + }, + 'cn-north-1': { + description: 'China (Beijing)' + }, + 'cn-northwest-1': { + description: 'China (Ningxia)' + } + } + }, + { + id: 'aws-us-gov', + outputs: { + dnsSuffix: 'amazonaws.com', + dualStackDnsSuffix: 'api.aws', + implicitGlobalRegion: 'us-gov-west-1', + name: 'aws-us-gov', + supportsDualStack: true, + supportsFIPS: true + }, + regionRegex: '^us\\-gov\\-\\w+\\-\\d+$', + regions: { + 'aws-us-gov-global': { + description: 'AWS GovCloud (US) global region' + }, + 'us-gov-east-1': { + description: 'AWS GovCloud (US-East)' + }, + 'us-gov-west-1': { + description: 'AWS GovCloud (US-West)' + } + } + }, + { + id: 'aws-iso', + outputs: { + dnsSuffix: 'c2s.ic.gov', + dualStackDnsSuffix: 'c2s.ic.gov', + implicitGlobalRegion: 'us-iso-east-1', + name: 'aws-iso', + supportsDualStack: false, + supportsFIPS: true + }, + regionRegex: '^us\\-iso\\-\\w+\\-\\d+$', + regions: { + 'aws-iso-global': { + description: 'AWS ISO (US) global region' + }, + 'us-iso-east-1': { + description: 'US ISO East' + }, + 'us-iso-west-1': { + description: 'US ISO WEST' + } + } + }, + { + id: 'aws-iso-b', + outputs: { + dnsSuffix: 'sc2s.sgov.gov', + dualStackDnsSuffix: 'sc2s.sgov.gov', + implicitGlobalRegion: 'us-isob-east-1', + name: 'aws-iso-b', + supportsDualStack: false, + supportsFIPS: true + }, + regionRegex: '^us\\-isob\\-\\w+\\-\\d+$', + regions: { + 'aws-iso-b-global': { + description: 'AWS ISOB (US) global region' + }, + 'us-isob-east-1': { + description: 'US ISOB East (Ohio)' + } + } + }, + { + id: 'aws-iso-e', + outputs: { + dnsSuffix: 'cloud.adc-e.uk', + dualStackDnsSuffix: 'cloud.adc-e.uk', + implicitGlobalRegion: 'eu-isoe-west-1', + name: 'aws-iso-e', + supportsDualStack: false, + supportsFIPS: true + }, + regionRegex: '^eu\\-isoe\\-\\w+\\-\\d+$', + regions: { + 'aws-iso-e-global': { + description: 'AWS ISOE (Europe) global region' + }, + 'eu-isoe-west-1': { + description: 'EU ISOE West' + } + } + }, + { + id: 'aws-iso-f', + outputs: { + dnsSuffix: 'csp.hci.ic.gov', + dualStackDnsSuffix: 'csp.hci.ic.gov', + implicitGlobalRegion: 'us-isof-south-1', + name: 'aws-iso-f', + supportsDualStack: false, + supportsFIPS: true + }, + regionRegex: '^us\\-isof\\-\\w+\\-\\d+$', + regions: { + 'aws-iso-f-global': { + description: 'AWS ISOF global region' + }, + 'us-isof-east-1': { + description: 'US ISOF EAST' + }, + 'us-isof-south-1': { + description: 'US ISOF SOUTH' + } + } + }, + { + id: 'aws-eusc', + outputs: { + dnsSuffix: 'amazonaws.eu', + dualStackDnsSuffix: 'amazonaws.eu', + implicitGlobalRegion: 'eusc-de-east-1', + name: 'aws-eusc', + supportsDualStack: false, + supportsFIPS: true + }, + regionRegex: '^eusc\\-(de)\\-\\w+\\-\\d+$', + regions: { + 'eusc-de-east-1': { + description: 'EU (Germany)' + } + } + } + ], + version: '1.1' + } + + // src/lib/aws/partition.ts + var selectedPartitionsInfo = partitions_default + var selectedUserAgentPrefix = '' + var partition = /* @__PURE__ */ __name(value => { + const { partitions } = selectedPartitionsInfo + for (const partition2 of partitions) { + const { regions, outputs } = partition2 + for (const [region, regionData] of Object.entries(regions)) { + if (region === value) { + return { + ...outputs, + ...regionData + } + } + } + } + for (const partition2 of partitions) { + const { regionRegex, outputs } = partition2 + if (new RegExp(regionRegex).test(value)) { + return { + ...outputs + } + } + } + const DEFAULT_PARTITION = partitions.find( + partition2 => partition2.id === 'aws' + ) + if (!DEFAULT_PARTITION) { + throw new Error( + "Provided region was not found in the partition array or regex, and default partition with id 'aws' doesn't exist." + ) + } + return { + ...DEFAULT_PARTITION.outputs + } + }, 'partition') + var setPartitionInfo = /* @__PURE__ */ __name( + (partitionsInfo, userAgentPrefix = '') => { + selectedPartitionsInfo = partitionsInfo + selectedUserAgentPrefix = userAgentPrefix + }, + 'setPartitionInfo' + ) + var useDefaultPartitionInfo = /* @__PURE__ */ __name(() => { + setPartitionInfo(partitions_default, '') + }, 'useDefaultPartitionInfo') + var getUserAgentPrefix = /* @__PURE__ */ __name( + () => selectedUserAgentPrefix, + 'getUserAgentPrefix' + ) + + // src/aws.ts + var awsEndpointFunctions = { + isVirtualHostableS3Bucket, + parseArn, + partition + } + import_util_endpoints.customEndpointFunctions.aws = awsEndpointFunctions + + // src/resolveEndpoint.ts + + // src/types/EndpointError.ts + + // src/types/EndpointRuleObject.ts + + // src/types/ErrorRuleObject.ts + + // src/types/RuleSetObject.ts + + // src/types/TreeRuleObject.ts + + // src/types/shared.ts -// src/commands/ActivateOrganizationsAccessCommand.ts -var _ActivateOrganizationsAccessCommand = class _ActivateOrganizationsAccessCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "ActivateOrganizationsAccess", {}).n("CloudFormationClient", "ActivateOrganizationsAccessCommand").f(void 0, void 0).ser(se_ActivateOrganizationsAccessCommand).de(de_ActivateOrganizationsAccessCommand).build() { -}; -__name(_ActivateOrganizationsAccessCommand, "ActivateOrganizationsAccessCommand"); -var ActivateOrganizationsAccessCommand = _ActivateOrganizationsAccessCommand; + // Annotate the CommonJS export names for ESM import in node: -// src/commands/ActivateTypeCommand.ts + 0 && 0 + + /***/ + }, + + /***/ 37896: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var index_exports = {} + __export(index_exports, { + NODE_APP_ID_CONFIG_OPTIONS: () => NODE_APP_ID_CONFIG_OPTIONS, + UA_APP_ID_ENV_NAME: () => UA_APP_ID_ENV_NAME, + UA_APP_ID_INI_NAME: () => UA_APP_ID_INI_NAME, + createDefaultUserAgentProvider: () => createDefaultUserAgentProvider, + crtAvailability: () => crtAvailability, + defaultUserAgent: () => defaultUserAgent + }) + module.exports = __toCommonJS(index_exports) + // src/defaultUserAgent.ts + var import_os = __nccwpck_require__(22037) + var import_process = __nccwpck_require__(77282) + // src/crt-availability.ts + var crtAvailability = { + isCrtAvailable: false + } -var _ActivateTypeCommand = class _ActivateTypeCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "ActivateType", {}).n("CloudFormationClient", "ActivateTypeCommand").f(void 0, void 0).ser(se_ActivateTypeCommand).de(de_ActivateTypeCommand).build() { -}; -__name(_ActivateTypeCommand, "ActivateTypeCommand"); -var ActivateTypeCommand = _ActivateTypeCommand; + // src/is-crt-available.ts + var isCrtAvailable = /* @__PURE__ */ __name(() => { + if (crtAvailability.isCrtAvailable) { + return ['md/crt-avail'] + } + return null + }, 'isCrtAvailable') + + // src/defaultUserAgent.ts + var createDefaultUserAgentProvider = /* @__PURE__ */ __name( + ({ serviceId, clientVersion }) => { + return async config => { + const sections = [ + // sdk-metadata + ['aws-sdk-js', clientVersion], + // ua-metadata + ['ua', '2.1'], + // os-metadata + [`os/${(0, import_os.platform)()}`, (0, import_os.release)()], + // language-metadata + // ECMAScript edition doesn't matter in JS, so no version needed. + ['lang/js'], + ['md/nodejs', `${import_process.versions.node}`] + ] + const crtAvailable = isCrtAvailable() + if (crtAvailable) { + sections.push(crtAvailable) + } + if (serviceId) { + sections.push([`api/${serviceId}`, clientVersion]) + } + if (import_process.env.AWS_EXECUTION_ENV) { + sections.push([ + `exec-env/${import_process.env.AWS_EXECUTION_ENV}` + ]) + } + const appId = await config?.userAgentAppId?.() + const resolvedUserAgent = appId + ? [...sections, [`app/${appId}`]] + : [...sections] + return resolvedUserAgent + } + }, + 'createDefaultUserAgentProvider' + ) + var defaultUserAgent = createDefaultUserAgentProvider + + // src/nodeAppIdConfigOptions.ts + var import_middleware_user_agent = __nccwpck_require__(9711) + var UA_APP_ID_ENV_NAME = 'AWS_SDK_UA_APP_ID' + var UA_APP_ID_INI_NAME = 'sdk_ua_app_id' + var UA_APP_ID_INI_NAME_DEPRECATED = 'sdk-ua-app-id' + var NODE_APP_ID_CONFIG_OPTIONS = { + environmentVariableSelector: /* @__PURE__ */ __name( + env2 => env2[UA_APP_ID_ENV_NAME], + 'environmentVariableSelector' + ), + configFileSelector: /* @__PURE__ */ __name( + profile => + profile[UA_APP_ID_INI_NAME] ?? + profile[UA_APP_ID_INI_NAME_DEPRECATED], + 'configFileSelector' + ), + default: import_middleware_user_agent.DEFAULT_UA_APP_ID + } + // Annotate the CommonJS export names for ESM import in node: + + 0 && 0 + + /***/ + }, -// src/commands/BatchDescribeTypeConfigurationsCommand.ts + /***/ 47517: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + CONFIG_USE_DUALSTACK_ENDPOINT: () => CONFIG_USE_DUALSTACK_ENDPOINT, + CONFIG_USE_FIPS_ENDPOINT: () => CONFIG_USE_FIPS_ENDPOINT, + DEFAULT_USE_DUALSTACK_ENDPOINT: () => DEFAULT_USE_DUALSTACK_ENDPOINT, + DEFAULT_USE_FIPS_ENDPOINT: () => DEFAULT_USE_FIPS_ENDPOINT, + ENV_USE_DUALSTACK_ENDPOINT: () => ENV_USE_DUALSTACK_ENDPOINT, + ENV_USE_FIPS_ENDPOINT: () => ENV_USE_FIPS_ENDPOINT, + NODE_REGION_CONFIG_FILE_OPTIONS: () => NODE_REGION_CONFIG_FILE_OPTIONS, + NODE_REGION_CONFIG_OPTIONS: () => NODE_REGION_CONFIG_OPTIONS, + NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS: () => + NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, + NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS: () => + NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, + REGION_ENV_NAME: () => REGION_ENV_NAME, + REGION_INI_NAME: () => REGION_INI_NAME, + getRegionInfo: () => getRegionInfo, + resolveCustomEndpointsConfig: () => resolveCustomEndpointsConfig, + resolveEndpointsConfig: () => resolveEndpointsConfig, + resolveRegionConfig: () => resolveRegionConfig + }) + module.exports = __toCommonJS(src_exports) + + // src/endpointsConfig/NodeUseDualstackEndpointConfigOptions.ts + var import_util_config_provider = __nccwpck_require__(64692) + var ENV_USE_DUALSTACK_ENDPOINT = 'AWS_USE_DUALSTACK_ENDPOINT' + var CONFIG_USE_DUALSTACK_ENDPOINT = 'use_dualstack_endpoint' + var DEFAULT_USE_DUALSTACK_ENDPOINT = false + var NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS = { + environmentVariableSelector: env => + (0, import_util_config_provider.booleanSelector)( + env, + ENV_USE_DUALSTACK_ENDPOINT, + import_util_config_provider.SelectorType.ENV + ), + configFileSelector: profile => + (0, import_util_config_provider.booleanSelector)( + profile, + CONFIG_USE_DUALSTACK_ENDPOINT, + import_util_config_provider.SelectorType.CONFIG + ), + default: false + } + + // src/endpointsConfig/NodeUseFipsEndpointConfigOptions.ts + + var ENV_USE_FIPS_ENDPOINT = 'AWS_USE_FIPS_ENDPOINT' + var CONFIG_USE_FIPS_ENDPOINT = 'use_fips_endpoint' + var DEFAULT_USE_FIPS_ENDPOINT = false + var NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS = { + environmentVariableSelector: env => + (0, import_util_config_provider.booleanSelector)( + env, + ENV_USE_FIPS_ENDPOINT, + import_util_config_provider.SelectorType.ENV + ), + configFileSelector: profile => + (0, import_util_config_provider.booleanSelector)( + profile, + CONFIG_USE_FIPS_ENDPOINT, + import_util_config_provider.SelectorType.CONFIG + ), + default: false + } + + // src/endpointsConfig/resolveCustomEndpointsConfig.ts + var import_util_middleware = __nccwpck_require__(69474) + var resolveCustomEndpointsConfig = /* @__PURE__ */ __name(input => { + const { tls, endpoint, urlParser, useDualstackEndpoint } = input + return Object.assign(input, { + tls: tls ?? true, + endpoint: (0, import_util_middleware.normalizeProvider)( + typeof endpoint === 'string' ? urlParser(endpoint) : endpoint + ), + isCustomEndpoint: true, + useDualstackEndpoint: (0, import_util_middleware.normalizeProvider)( + useDualstackEndpoint ?? false + ) + }) + }, 'resolveCustomEndpointsConfig') + // src/endpointsConfig/resolveEndpointsConfig.ts + // src/endpointsConfig/utils/getEndpointFromRegion.ts + var getEndpointFromRegion = /* @__PURE__ */ __name(async input => { + const { tls = true } = input + const region = await input.region() + const dnsHostRegex = new RegExp( + /^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/ + ) + if (!dnsHostRegex.test(region)) { + throw new Error('Invalid region in client config') + } + const useDualstackEndpoint = await input.useDualstackEndpoint() + const useFipsEndpoint = await input.useFipsEndpoint() + const { hostname } = + (await input.regionInfoProvider(region, { + useDualstackEndpoint, + useFipsEndpoint + })) ?? {} + if (!hostname) { + throw new Error('Cannot resolve hostname from client config') + } + return input.urlParser(`${tls ? 'https:' : 'http:'}//${hostname}`) + }, 'getEndpointFromRegion') + + // src/endpointsConfig/resolveEndpointsConfig.ts + var resolveEndpointsConfig = /* @__PURE__ */ __name(input => { + const useDualstackEndpoint = (0, + import_util_middleware.normalizeProvider)( + input.useDualstackEndpoint ?? false + ) + const { endpoint, useFipsEndpoint, urlParser, tls } = input + return Object.assign(input, { + tls: tls ?? true, + endpoint: endpoint + ? (0, import_util_middleware.normalizeProvider)( + typeof endpoint === 'string' ? urlParser(endpoint) : endpoint + ) + : () => + getEndpointFromRegion({ + ...input, + useDualstackEndpoint, + useFipsEndpoint + }), + isCustomEndpoint: !!endpoint, + useDualstackEndpoint + }) + }, 'resolveEndpointsConfig') -var _BatchDescribeTypeConfigurationsCommand = class _BatchDescribeTypeConfigurationsCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "BatchDescribeTypeConfigurations", {}).n("CloudFormationClient", "BatchDescribeTypeConfigurationsCommand").f(void 0, void 0).ser(se_BatchDescribeTypeConfigurationsCommand).de(de_BatchDescribeTypeConfigurationsCommand).build() { -}; -__name(_BatchDescribeTypeConfigurationsCommand, "BatchDescribeTypeConfigurationsCommand"); -var BatchDescribeTypeConfigurationsCommand = _BatchDescribeTypeConfigurationsCommand; + // src/regionConfig/config.ts + var REGION_ENV_NAME = 'AWS_REGION' + var REGION_INI_NAME = 'region' + var NODE_REGION_CONFIG_OPTIONS = { + environmentVariableSelector: env => env[REGION_ENV_NAME], + configFileSelector: profile => profile[REGION_INI_NAME], + default: () => { + throw new Error('Region is missing') + } + } + var NODE_REGION_CONFIG_FILE_OPTIONS = { + preferredFile: 'credentials' + } -// src/commands/CancelUpdateStackCommand.ts + // src/regionConfig/isFipsRegion.ts + var isFipsRegion = /* @__PURE__ */ __name( + region => + typeof region === 'string' && + (region.startsWith('fips-') || region.endsWith('-fips')), + 'isFipsRegion' + ) + // src/regionConfig/getRealRegion.ts + var getRealRegion = /* @__PURE__ */ __name( + region => + isFipsRegion(region) + ? ['fips-aws-global', 'aws-fips'].includes(region) + ? 'us-east-1' + : region.replace(/fips-(dkr-|prod-)?|-fips/, '') + : region, + 'getRealRegion' + ) + // src/regionConfig/resolveRegionConfig.ts + var resolveRegionConfig = /* @__PURE__ */ __name(input => { + const { region, useFipsEndpoint } = input + if (!region) { + throw new Error('Region is missing') + } + return Object.assign(input, { + region: async () => { + if (typeof region === 'string') { + return getRealRegion(region) + } + const providedRegion = await region() + return getRealRegion(providedRegion) + }, + useFipsEndpoint: async () => { + const providedRegion = + typeof region === 'string' ? region : await region() + if (isFipsRegion(providedRegion)) { + return true + } + return typeof useFipsEndpoint !== 'function' + ? Promise.resolve(!!useFipsEndpoint) + : useFipsEndpoint() + } + }) + }, 'resolveRegionConfig') + + // src/regionInfo/getHostnameFromVariants.ts + var getHostnameFromVariants = /* @__PURE__ */ __name( + (variants = [], { useFipsEndpoint, useDualstackEndpoint }) => + variants.find( + ({ tags }) => + useFipsEndpoint === tags.includes('fips') && + useDualstackEndpoint === tags.includes('dualstack') + )?.hostname, + 'getHostnameFromVariants' + ) -var _CancelUpdateStackCommand = class _CancelUpdateStackCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "CancelUpdateStack", {}).n("CloudFormationClient", "CancelUpdateStackCommand").f(void 0, void 0).ser(se_CancelUpdateStackCommand).de(de_CancelUpdateStackCommand).build() { -}; -__name(_CancelUpdateStackCommand, "CancelUpdateStackCommand"); -var CancelUpdateStackCommand = _CancelUpdateStackCommand; + // src/regionInfo/getResolvedHostname.ts + var getResolvedHostname = /* @__PURE__ */ __name( + (resolvedRegion, { regionHostname, partitionHostname }) => + regionHostname + ? regionHostname + : partitionHostname + ? partitionHostname.replace('{region}', resolvedRegion) + : void 0, + 'getResolvedHostname' + ) -// src/commands/ContinueUpdateRollbackCommand.ts + // src/regionInfo/getResolvedPartition.ts + var getResolvedPartition = /* @__PURE__ */ __name( + (region, { partitionHash }) => + Object.keys(partitionHash || {}).find(key => + partitionHash[key].regions.includes(region) + ) ?? 'aws', + 'getResolvedPartition' + ) + // src/regionInfo/getResolvedSigningRegion.ts + var getResolvedSigningRegion = /* @__PURE__ */ __name( + (hostname, { signingRegion, regionRegex, useFipsEndpoint }) => { + if (signingRegion) { + return signingRegion + } else if (useFipsEndpoint) { + const regionRegexJs = regionRegex + .replace('\\\\', '\\') + .replace(/^\^/g, '\\.') + .replace(/\$$/g, '\\.') + const regionRegexmatchArray = hostname.match(regionRegexJs) + if (regionRegexmatchArray) { + return regionRegexmatchArray[0].slice(1, -1) + } + } + }, + 'getResolvedSigningRegion' + ) + // src/regionInfo/getRegionInfo.ts + var getRegionInfo = /* @__PURE__ */ __name( + ( + region, + { + useFipsEndpoint = false, + useDualstackEndpoint = false, + signingService, + regionHash, + partitionHash + } + ) => { + const partition = getResolvedPartition(region, { partitionHash }) + const resolvedRegion = + region in regionHash + ? region + : (partitionHash[partition]?.endpoint ?? region) + const hostnameOptions = { useFipsEndpoint, useDualstackEndpoint } + const regionHostname = getHostnameFromVariants( + regionHash[resolvedRegion]?.variants, + hostnameOptions + ) + const partitionHostname = getHostnameFromVariants( + partitionHash[partition]?.variants, + hostnameOptions + ) + const hostname = getResolvedHostname(resolvedRegion, { + regionHostname, + partitionHostname + }) + if (hostname === void 0) { + throw new Error( + `Endpoint resolution failed for: ${{ resolvedRegion, useFipsEndpoint, useDualstackEndpoint }}` + ) + } + const signingRegion = getResolvedSigningRegion(hostname, { + signingRegion: regionHash[resolvedRegion]?.signingRegion, + regionRegex: partitionHash[partition].regionRegex, + useFipsEndpoint + }) + return { + partition, + signingService, + hostname, + ...(signingRegion && { signingRegion }), + ...(regionHash[resolvedRegion]?.signingService && { + signingService: regionHash[resolvedRegion].signingService + }) + } + }, + 'getRegionInfo' + ) + // Annotate the CommonJS export names for ESM import in node: -var _ContinueUpdateRollbackCommand = class _ContinueUpdateRollbackCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "ContinueUpdateRollback", {}).n("CloudFormationClient", "ContinueUpdateRollbackCommand").f(void 0, void 0).ser(se_ContinueUpdateRollbackCommand).de(de_ContinueUpdateRollbackCommand).build() { -}; -__name(_ContinueUpdateRollbackCommand, "ContinueUpdateRollbackCommand"); -var ContinueUpdateRollbackCommand = _ContinueUpdateRollbackCommand; + 0 && 0 -// src/commands/CreateChangeSetCommand.ts + /***/ + }, + /***/ 27588: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + DefaultIdentityProviderConfig: () => DefaultIdentityProviderConfig, + EXPIRATION_MS: () => EXPIRATION_MS, + HttpApiKeyAuthSigner: () => HttpApiKeyAuthSigner, + HttpBearerAuthSigner: () => HttpBearerAuthSigner, + NoAuthSigner: () => NoAuthSigner, + createIsIdentityExpiredFunction: () => createIsIdentityExpiredFunction, + createPaginator: () => createPaginator, + doesIdentityRequireRefresh: () => doesIdentityRequireRefresh, + getHttpAuthSchemeEndpointRuleSetPlugin: () => + getHttpAuthSchemeEndpointRuleSetPlugin, + getHttpAuthSchemePlugin: () => getHttpAuthSchemePlugin, + getHttpSigningPlugin: () => getHttpSigningPlugin, + getSmithyContext: () => getSmithyContext, + httpAuthSchemeEndpointRuleSetMiddlewareOptions: () => + httpAuthSchemeEndpointRuleSetMiddlewareOptions, + httpAuthSchemeMiddleware: () => httpAuthSchemeMiddleware, + httpAuthSchemeMiddlewareOptions: () => httpAuthSchemeMiddlewareOptions, + httpSigningMiddleware: () => httpSigningMiddleware, + httpSigningMiddlewareOptions: () => httpSigningMiddlewareOptions, + isIdentityExpired: () => isIdentityExpired, + memoizeIdentityProvider: () => memoizeIdentityProvider, + normalizeProvider: () => normalizeProvider, + requestBuilder: () => import_protocols.requestBuilder, + setFeature: () => setFeature + }) + module.exports = __toCommonJS(src_exports) + + // src/getSmithyContext.ts + var import_types = __nccwpck_require__(63443) + var getSmithyContext = /* @__PURE__ */ __name( + context => + context[import_types.SMITHY_CONTEXT_KEY] || + (context[import_types.SMITHY_CONTEXT_KEY] = {}), + 'getSmithyContext' + ) + // src/middleware-http-auth-scheme/httpAuthSchemeMiddleware.ts + var import_util_middleware = __nccwpck_require__(69474) + function convertHttpAuthSchemesToMap(httpAuthSchemes) { + const map = /* @__PURE__ */ new Map() + for (const scheme of httpAuthSchemes) { + map.set(scheme.schemeId, scheme) + } + return map + } + __name(convertHttpAuthSchemesToMap, 'convertHttpAuthSchemesToMap') + var httpAuthSchemeMiddleware = /* @__PURE__ */ __name( + (config, mwOptions) => (next, context) => async args => { + const options = config.httpAuthSchemeProvider( + await mwOptions.httpAuthSchemeParametersProvider( + config, + context, + args.input + ) + ) + const authSchemes = convertHttpAuthSchemesToMap( + config.httpAuthSchemes + ) + const smithyContext = (0, import_util_middleware.getSmithyContext)( + context + ) + const failureReasons = [] + for (const option of options) { + const scheme = authSchemes.get(option.schemeId) + if (!scheme) { + failureReasons.push( + `HttpAuthScheme \`${option.schemeId}\` was not enabled for this service.` + ) + continue + } + const identityProvider = scheme.identityProvider( + await mwOptions.identityProviderConfigProvider(config) + ) + if (!identityProvider) { + failureReasons.push( + `HttpAuthScheme \`${option.schemeId}\` did not have an IdentityProvider configured.` + ) + continue + } + const { identityProperties = {}, signingProperties = {} } = + option.propertiesExtractor?.(config, context) || {} + option.identityProperties = Object.assign( + option.identityProperties || {}, + identityProperties + ) + option.signingProperties = Object.assign( + option.signingProperties || {}, + signingProperties + ) + smithyContext.selectedHttpAuthScheme = { + httpAuthOption: option, + identity: await identityProvider(option.identityProperties), + signer: scheme.signer + } + break + } + if (!smithyContext.selectedHttpAuthScheme) { + throw new Error(failureReasons.join('\n')) + } + return next(args) + }, + 'httpAuthSchemeMiddleware' + ) -var _CreateChangeSetCommand = class _CreateChangeSetCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "CreateChangeSet", {}).n("CloudFormationClient", "CreateChangeSetCommand").f(void 0, void 0).ser(se_CreateChangeSetCommand).de(de_CreateChangeSetCommand).build() { -}; -__name(_CreateChangeSetCommand, "CreateChangeSetCommand"); -var CreateChangeSetCommand = _CreateChangeSetCommand; + // src/middleware-http-auth-scheme/getHttpAuthSchemeEndpointRuleSetPlugin.ts + var httpAuthSchemeEndpointRuleSetMiddlewareOptions = { + step: 'serialize', + tags: ['HTTP_AUTH_SCHEME'], + name: 'httpAuthSchemeMiddleware', + override: true, + relation: 'before', + toMiddleware: 'endpointV2Middleware' + } + var getHttpAuthSchemeEndpointRuleSetPlugin = /* @__PURE__ */ __name( + ( + config, + { httpAuthSchemeParametersProvider, identityProviderConfigProvider } + ) => ({ + applyToStack: clientStack => { + clientStack.addRelativeTo( + httpAuthSchemeMiddleware(config, { + httpAuthSchemeParametersProvider, + identityProviderConfigProvider + }), + httpAuthSchemeEndpointRuleSetMiddlewareOptions + ) + } + }), + 'getHttpAuthSchemeEndpointRuleSetPlugin' + ) -// src/commands/CreateGeneratedTemplateCommand.ts + // src/middleware-http-auth-scheme/getHttpAuthSchemePlugin.ts + var import_middleware_serde = __nccwpck_require__(88037) + var httpAuthSchemeMiddlewareOptions = { + step: 'serialize', + tags: ['HTTP_AUTH_SCHEME'], + name: 'httpAuthSchemeMiddleware', + override: true, + relation: 'before', + toMiddleware: import_middleware_serde.serializerMiddlewareOption.name + } + var getHttpAuthSchemePlugin = /* @__PURE__ */ __name( + ( + config, + { httpAuthSchemeParametersProvider, identityProviderConfigProvider } + ) => ({ + applyToStack: clientStack => { + clientStack.addRelativeTo( + httpAuthSchemeMiddleware(config, { + httpAuthSchemeParametersProvider, + identityProviderConfigProvider + }), + httpAuthSchemeMiddlewareOptions + ) + } + }), + 'getHttpAuthSchemePlugin' + ) + // src/middleware-http-signing/httpSigningMiddleware.ts + var import_protocol_http = __nccwpck_require__(31788) + var defaultErrorHandler = /* @__PURE__ */ __name( + signingProperties => error => { + throw error + }, + 'defaultErrorHandler' + ) + var defaultSuccessHandler = /* @__PURE__ */ __name( + (httpResponse, signingProperties) => {}, + 'defaultSuccessHandler' + ) + var httpSigningMiddleware = /* @__PURE__ */ __name( + config => (next, context) => async args => { + if (!import_protocol_http.HttpRequest.isInstance(args.request)) { + return next(args) + } + const smithyContext = (0, import_util_middleware.getSmithyContext)( + context + ) + const scheme = smithyContext.selectedHttpAuthScheme + if (!scheme) { + throw new Error( + `No HttpAuthScheme was selected: unable to sign request` + ) + } + const { + httpAuthOption: { signingProperties = {} }, + identity, + signer + } = scheme + const output = await next({ + ...args, + request: await signer.sign( + args.request, + identity, + signingProperties + ) + }).catch( + (signer.errorHandler || defaultErrorHandler)(signingProperties) + ) + ;(signer.successHandler || defaultSuccessHandler)( + output.response, + signingProperties + ) + return output + }, + 'httpSigningMiddleware' + ) -var _CreateGeneratedTemplateCommand = class _CreateGeneratedTemplateCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "CreateGeneratedTemplate", {}).n("CloudFormationClient", "CreateGeneratedTemplateCommand").f(void 0, void 0).ser(se_CreateGeneratedTemplateCommand).de(de_CreateGeneratedTemplateCommand).build() { -}; -__name(_CreateGeneratedTemplateCommand, "CreateGeneratedTemplateCommand"); -var CreateGeneratedTemplateCommand = _CreateGeneratedTemplateCommand; + // src/middleware-http-signing/getHttpSigningMiddleware.ts + var httpSigningMiddlewareOptions = { + step: 'finalizeRequest', + tags: ['HTTP_SIGNING'], + name: 'httpSigningMiddleware', + aliases: ['apiKeyMiddleware', 'tokenMiddleware', 'awsAuthMiddleware'], + override: true, + relation: 'after', + toMiddleware: 'retryMiddleware' + } + var getHttpSigningPlugin = /* @__PURE__ */ __name( + config => ({ + applyToStack: clientStack => { + clientStack.addRelativeTo( + httpSigningMiddleware(config), + httpSigningMiddlewareOptions + ) + } + }), + 'getHttpSigningPlugin' + ) -// src/commands/CreateStackCommand.ts + // src/normalizeProvider.ts + var normalizeProvider = /* @__PURE__ */ __name(input => { + if (typeof input === 'function') return input + const promisified = Promise.resolve(input) + return () => promisified + }, 'normalizeProvider') + + // src/pagination/createPaginator.ts + var makePagedClientRequest = /* @__PURE__ */ __name( + async (CommandCtor, client, input, withCommand = _ => _, ...args) => { + let command = new CommandCtor(input) + command = withCommand(command) ?? command + return await client.send(command, ...args) + }, + 'makePagedClientRequest' + ) + function createPaginator( + ClientCtor, + CommandCtor, + inputTokenName, + outputTokenName, + pageSizeTokenName + ) { + return /* @__PURE__ */ __name(async function* paginateOperation( + config, + input, + ...additionalArguments + ) { + const _input = input + let token = config.startingToken ?? _input[inputTokenName] + let hasNext = true + let page + while (hasNext) { + _input[inputTokenName] = token + if (pageSizeTokenName) { + _input[pageSizeTokenName] = + _input[pageSizeTokenName] ?? config.pageSize + } + if (config.client instanceof ClientCtor) { + page = await makePagedClientRequest( + CommandCtor, + config.client, + input, + config.withCommand, + ...additionalArguments + ) + } else { + throw new Error( + `Invalid client, expected instance of ${ClientCtor.name}` + ) + } + yield page + const prevToken = token + token = get(page, outputTokenName) + hasNext = !!( + token && + (!config.stopOnSameToken || token !== prevToken) + ) + } + return void 0 + }, 'paginateOperation') + } + __name(createPaginator, 'createPaginator') + var get = /* @__PURE__ */ __name((fromObject, path) => { + let cursor = fromObject + const pathComponents = path.split('.') + for (const step of pathComponents) { + if (!cursor || typeof cursor !== 'object') { + return void 0 + } + cursor = cursor[step] + } + return cursor + }, 'get') + // src/protocols/requestBuilder.ts + var import_protocols = __nccwpck_require__(56952) + // src/setFeature.ts + function setFeature(context, feature, value) { + if (!context.__smithy_context) { + context.__smithy_context = { + features: {} + } + } else if (!context.__smithy_context.features) { + context.__smithy_context.features = {} + } + context.__smithy_context.features[feature] = value + } + __name(setFeature, 'setFeature') -var _CreateStackCommand = class _CreateStackCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "CreateStack", {}).n("CloudFormationClient", "CreateStackCommand").f(void 0, void 0).ser(se_CreateStackCommand).de(de_CreateStackCommand).build() { -}; -__name(_CreateStackCommand, "CreateStackCommand"); -var CreateStackCommand = _CreateStackCommand; + // src/util-identity-and-auth/DefaultIdentityProviderConfig.ts + var DefaultIdentityProviderConfig = class { + /** + * Creates an IdentityProviderConfig with a record of scheme IDs to identity providers. + * + * @param config scheme IDs and identity providers to configure + */ + constructor(config) { + this.authSchemes = /* @__PURE__ */ new Map() + for (const [key, value] of Object.entries(config)) { + if (value !== void 0) { + this.authSchemes.set(key, value) + } + } + } + static { + __name(this, 'DefaultIdentityProviderConfig') + } + getIdentityProvider(schemeId) { + return this.authSchemes.get(schemeId) + } + } -// src/commands/CreateStackInstancesCommand.ts + // src/util-identity-and-auth/httpAuthSchemes/httpApiKeyAuth.ts + var HttpApiKeyAuthSigner = class { + static { + __name(this, 'HttpApiKeyAuthSigner') + } + async sign(httpRequest, identity, signingProperties) { + if (!signingProperties) { + throw new Error( + 'request could not be signed with `apiKey` since the `name` and `in` signer properties are missing' + ) + } + if (!signingProperties.name) { + throw new Error( + 'request could not be signed with `apiKey` since the `name` signer property is missing' + ) + } + if (!signingProperties.in) { + throw new Error( + 'request could not be signed with `apiKey` since the `in` signer property is missing' + ) + } + if (!identity.apiKey) { + throw new Error( + 'request could not be signed with `apiKey` since the `apiKey` is not defined' + ) + } + const clonedRequest = + import_protocol_http.HttpRequest.clone(httpRequest) + if ( + signingProperties.in === import_types.HttpApiKeyAuthLocation.QUERY + ) { + clonedRequest.query[signingProperties.name] = identity.apiKey + } else if ( + signingProperties.in === import_types.HttpApiKeyAuthLocation.HEADER + ) { + clonedRequest.headers[signingProperties.name] = + signingProperties.scheme + ? `${signingProperties.scheme} ${identity.apiKey}` + : identity.apiKey + } else { + throw new Error( + 'request can only be signed with `apiKey` locations `query` or `header`, but found: `' + + signingProperties.in + + '`' + ) + } + return clonedRequest + } + } + // src/util-identity-and-auth/httpAuthSchemes/httpBearerAuth.ts -var _CreateStackInstancesCommand = class _CreateStackInstancesCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "CreateStackInstances", {}).n("CloudFormationClient", "CreateStackInstancesCommand").f(void 0, void 0).ser(se_CreateStackInstancesCommand).de(de_CreateStackInstancesCommand).build() { -}; -__name(_CreateStackInstancesCommand, "CreateStackInstancesCommand"); -var CreateStackInstancesCommand = _CreateStackInstancesCommand; + var HttpBearerAuthSigner = class { + static { + __name(this, 'HttpBearerAuthSigner') + } + async sign(httpRequest, identity, signingProperties) { + const clonedRequest = + import_protocol_http.HttpRequest.clone(httpRequest) + if (!identity.token) { + throw new Error( + 'request could not be signed with `token` since the `token` is not defined' + ) + } + clonedRequest.headers['Authorization'] = `Bearer ${identity.token}` + return clonedRequest + } + } -// src/commands/CreateStackSetCommand.ts + // src/util-identity-and-auth/httpAuthSchemes/noAuth.ts + var NoAuthSigner = class { + static { + __name(this, 'NoAuthSigner') + } + async sign(httpRequest, identity, signingProperties) { + return httpRequest + } + } + // src/util-identity-and-auth/memoizeIdentityProvider.ts + var createIsIdentityExpiredFunction = /* @__PURE__ */ __name( + expirationMs => identity => + doesIdentityRequireRefresh(identity) && + identity.expiration.getTime() - Date.now() < expirationMs, + 'createIsIdentityExpiredFunction' + ) + var EXPIRATION_MS = 3e5 + var isIdentityExpired = createIsIdentityExpiredFunction(EXPIRATION_MS) + var doesIdentityRequireRefresh = /* @__PURE__ */ __name( + identity => identity.expiration !== void 0, + 'doesIdentityRequireRefresh' + ) + var memoizeIdentityProvider = /* @__PURE__ */ __name( + (provider, isExpired, requiresRefresh) => { + if (provider === void 0) { + return void 0 + } + const normalizedProvider = + typeof provider !== 'function' + ? async () => Promise.resolve(provider) + : provider + let resolved + let pending + let hasResult + let isConstant = false + const coalesceProvider = /* @__PURE__ */ __name(async options => { + if (!pending) { + pending = normalizedProvider(options) + } + try { + resolved = await pending + hasResult = true + isConstant = false + } finally { + pending = void 0 + } + return resolved + }, 'coalesceProvider') + if (isExpired === void 0) { + return async options => { + if (!hasResult || options?.forceRefresh) { + resolved = await coalesceProvider(options) + } + return resolved + } + } + return async options => { + if (!hasResult || options?.forceRefresh) { + resolved = await coalesceProvider(options) + } + if (isConstant) { + return resolved + } + if (!requiresRefresh(resolved)) { + isConstant = true + return resolved + } + if (isExpired(resolved)) { + await coalesceProvider(options) + return resolved + } + return resolved + } + }, + 'memoizeIdentityProvider' + ) + // Annotate the CommonJS export names for ESM import in node: + 0 && 0 -var _CreateStackSetCommand = class _CreateStackSetCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "CreateStackSet", {}).n("CloudFormationClient", "CreateStackSetCommand").f(void 0, void 0).ser(se_CreateStackSetCommand).de(de_CreateStackSetCommand).build() { -}; -__name(_CreateStackSetCommand, "CreateStackSetCommand"); -var CreateStackSetCommand = _CreateStackSetCommand; + /***/ + }, -// src/commands/DeactivateOrganizationsAccessCommand.ts + /***/ 56952: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + // src/submodules/protocols/index.ts + var protocols_exports = {} + __export(protocols_exports, { + RequestBuilder: () => RequestBuilder, + collectBody: () => collectBody, + extendedEncodeURIComponent: () => extendedEncodeURIComponent, + requestBuilder: () => requestBuilder, + resolvedPath: () => resolvedPath + }) + module.exports = __toCommonJS(protocols_exports) + // src/submodules/protocols/collect-stream-body.ts + var import_util_stream = __nccwpck_require__(77846) + var collectBody = async (streamBody = new Uint8Array(), context) => { + if (streamBody instanceof Uint8Array) { + return import_util_stream.Uint8ArrayBlobAdapter.mutate(streamBody) + } + if (!streamBody) { + return import_util_stream.Uint8ArrayBlobAdapter.mutate( + new Uint8Array() + ) + } + const fromContext = context.streamCollector(streamBody) + return import_util_stream.Uint8ArrayBlobAdapter.mutate( + await fromContext + ) + } -var _DeactivateOrganizationsAccessCommand = class _DeactivateOrganizationsAccessCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "DeactivateOrganizationsAccess", {}).n("CloudFormationClient", "DeactivateOrganizationsAccessCommand").f(void 0, void 0).ser(se_DeactivateOrganizationsAccessCommand).de(de_DeactivateOrganizationsAccessCommand).build() { -}; -__name(_DeactivateOrganizationsAccessCommand, "DeactivateOrganizationsAccessCommand"); -var DeactivateOrganizationsAccessCommand = _DeactivateOrganizationsAccessCommand; + // src/submodules/protocols/extended-encode-uri-component.ts + function extendedEncodeURIComponent(str) { + return encodeURIComponent(str).replace(/[!'()*]/g, function (c) { + return '%' + c.charCodeAt(0).toString(16).toUpperCase() + }) + } -// src/commands/DeactivateTypeCommand.ts + // src/submodules/protocols/requestBuilder.ts + var import_protocol_http = __nccwpck_require__(31788) + // src/submodules/protocols/resolve-path.ts + var resolvedPath = ( + resolvedPath2, + input, + memberName, + labelValueProvider, + uriLabel, + isGreedyLabel + ) => { + if (input != null && input[memberName] !== void 0) { + const labelValue = labelValueProvider() + if (labelValue.length <= 0) { + throw new Error( + 'Empty value provided for input HTTP label: ' + memberName + '.' + ) + } + resolvedPath2 = resolvedPath2.replace( + uriLabel, + isGreedyLabel + ? labelValue + .split('/') + .map(segment => extendedEncodeURIComponent(segment)) + .join('/') + : extendedEncodeURIComponent(labelValue) + ) + } else { + throw new Error( + 'No value provided for input HTTP label: ' + memberName + '.' + ) + } + return resolvedPath2 + } + + // src/submodules/protocols/requestBuilder.ts + function requestBuilder(input, context) { + return new RequestBuilder(input, context) + } + var RequestBuilder = class { + constructor(input, context) { + this.input = input + this.context = context + this.query = {} + this.method = '' + this.headers = {} + this.path = '' + this.body = null + this.hostname = '' + this.resolvePathStack = [] + } + async build() { + const { + hostname, + protocol = 'https', + port, + path: basePath + } = await this.context.endpoint() + this.path = basePath + for (const resolvePath of this.resolvePathStack) { + resolvePath(this.path) + } + return new import_protocol_http.HttpRequest({ + protocol, + hostname: this.hostname || hostname, + port, + method: this.method, + path: this.path, + query: this.query, + body: this.body, + headers: this.headers + }) + } + /** + * Brevity setter for "hostname". + */ + hn(hostname) { + this.hostname = hostname + return this + } + /** + * Brevity initial builder for "basepath". + */ + bp(uriLabel) { + this.resolvePathStack.push(basePath => { + this.path = + `${basePath?.endsWith('/') ? basePath.slice(0, -1) : basePath || ''}` + + uriLabel + }) + return this + } + /** + * Brevity incremental builder for "path". + */ + p(memberName, labelValueProvider, uriLabel, isGreedyLabel) { + this.resolvePathStack.push(path => { + this.path = resolvedPath( + path, + this.input, + memberName, + labelValueProvider, + uriLabel, + isGreedyLabel + ) + }) + return this + } + /** + * Brevity setter for "headers". + */ + h(headers) { + this.headers = headers + return this + } + /** + * Brevity setter for "query". + */ + q(query) { + this.query = query + return this + } + /** + * Brevity setter for "body". + */ + b(body) { + this.body = body + return this + } + /** + * Brevity setter for "method". + */ + m(method) { + this.method = method + return this + } + } + // Annotate the CommonJS export names for ESM import in node: + 0 && 0 + /***/ + }, -var _DeactivateTypeCommand = class _DeactivateTypeCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "DeactivateType", {}).n("CloudFormationClient", "DeactivateTypeCommand").f(void 0, void 0).ser(se_DeactivateTypeCommand).de(de_DeactivateTypeCommand).build() { -}; -__name(_DeactivateTypeCommand, "DeactivateTypeCommand"); -var DeactivateTypeCommand = _DeactivateTypeCommand; + /***/ 91502: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + DEFAULT_MAX_RETRIES: () => DEFAULT_MAX_RETRIES, + DEFAULT_TIMEOUT: () => DEFAULT_TIMEOUT, + ENV_CMDS_AUTH_TOKEN: () => ENV_CMDS_AUTH_TOKEN, + ENV_CMDS_FULL_URI: () => ENV_CMDS_FULL_URI, + ENV_CMDS_RELATIVE_URI: () => ENV_CMDS_RELATIVE_URI, + Endpoint: () => Endpoint, + fromContainerMetadata: () => fromContainerMetadata, + fromInstanceMetadata: () => fromInstanceMetadata, + getInstanceMetadataEndpoint: () => getInstanceMetadataEndpoint, + httpRequest: () => httpRequest, + providerConfigFromInit: () => providerConfigFromInit + }) + module.exports = __toCommonJS(src_exports) -// src/commands/DeleteChangeSetCommand.ts + // src/fromContainerMetadata.ts + var import_url = __nccwpck_require__(57310) + // src/remoteProvider/httpRequest.ts + var import_property_provider = __nccwpck_require__(19248) + var import_buffer = __nccwpck_require__(14300) + var import_http = __nccwpck_require__(13685) + function httpRequest(options) { + return new Promise((resolve, reject) => { + const req = (0, import_http.request)({ + method: 'GET', + ...options, + // Node.js http module doesn't accept hostname with square brackets + // Refs: https://github.com/nodejs/node/issues/39738 + hostname: options.hostname?.replace(/^\[(.+)\]$/, '$1') + }) + req.on('error', err => { + reject( + Object.assign( + new import_property_provider.ProviderError( + 'Unable to connect to instance metadata service' + ), + err + ) + ) + req.destroy() + }) + req.on('timeout', () => { + reject( + new import_property_provider.ProviderError( + 'TimeoutError from instance metadata service' + ) + ) + req.destroy() + }) + req.on('response', res => { + const { statusCode = 400 } = res + if (statusCode < 200 || 300 <= statusCode) { + reject( + Object.assign( + new import_property_provider.ProviderError( + 'Error response received from instance metadata service' + ), + { statusCode } + ) + ) + req.destroy() + } + const chunks = [] + res.on('data', chunk => { + chunks.push(chunk) + }) + res.on('end', () => { + resolve(import_buffer.Buffer.concat(chunks)) + req.destroy() + }) + }) + req.end() + }) + } + __name(httpRequest, 'httpRequest') + + // src/remoteProvider/ImdsCredentials.ts + var isImdsCredentials = /* @__PURE__ */ __name( + arg => + Boolean(arg) && + typeof arg === 'object' && + typeof arg.AccessKeyId === 'string' && + typeof arg.SecretAccessKey === 'string' && + typeof arg.Token === 'string' && + typeof arg.Expiration === 'string', + 'isImdsCredentials' + ) + var fromImdsCredentials = /* @__PURE__ */ __name( + creds => ({ + accessKeyId: creds.AccessKeyId, + secretAccessKey: creds.SecretAccessKey, + sessionToken: creds.Token, + expiration: new Date(creds.Expiration), + ...(creds.AccountId && { accountId: creds.AccountId }) + }), + 'fromImdsCredentials' + ) -var _DeleteChangeSetCommand = class _DeleteChangeSetCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "DeleteChangeSet", {}).n("CloudFormationClient", "DeleteChangeSetCommand").f(void 0, void 0).ser(se_DeleteChangeSetCommand).de(de_DeleteChangeSetCommand).build() { -}; -__name(_DeleteChangeSetCommand, "DeleteChangeSetCommand"); -var DeleteChangeSetCommand = _DeleteChangeSetCommand; + // src/remoteProvider/RemoteProviderInit.ts + var DEFAULT_TIMEOUT = 1e3 + var DEFAULT_MAX_RETRIES = 0 + var providerConfigFromInit = /* @__PURE__ */ __name( + ({ maxRetries = DEFAULT_MAX_RETRIES, timeout = DEFAULT_TIMEOUT }) => ({ + maxRetries, + timeout + }), + 'providerConfigFromInit' + ) -// src/commands/DeleteGeneratedTemplateCommand.ts + // src/remoteProvider/retry.ts + var retry = /* @__PURE__ */ __name((toRetry, maxRetries) => { + let promise = toRetry() + for (let i = 0; i < maxRetries; i++) { + promise = promise.catch(toRetry) + } + return promise + }, 'retry') + + // src/fromContainerMetadata.ts + var ENV_CMDS_FULL_URI = 'AWS_CONTAINER_CREDENTIALS_FULL_URI' + var ENV_CMDS_RELATIVE_URI = 'AWS_CONTAINER_CREDENTIALS_RELATIVE_URI' + var ENV_CMDS_AUTH_TOKEN = 'AWS_CONTAINER_AUTHORIZATION_TOKEN' + var fromContainerMetadata = /* @__PURE__ */ __name((init = {}) => { + const { timeout, maxRetries } = providerConfigFromInit(init) + return () => + retry(async () => { + const requestOptions = await getCmdsUri({ logger: init.logger }) + const credsResponse = JSON.parse( + await requestFromEcsImds(timeout, requestOptions) + ) + if (!isImdsCredentials(credsResponse)) { + throw new import_property_provider.CredentialsProviderError( + 'Invalid response received from instance metadata service.', + { + logger: init.logger + } + ) + } + return fromImdsCredentials(credsResponse) + }, maxRetries) + }, 'fromContainerMetadata') + var requestFromEcsImds = /* @__PURE__ */ __name( + async (timeout, options) => { + if (process.env[ENV_CMDS_AUTH_TOKEN]) { + options.headers = { + ...options.headers, + Authorization: process.env[ENV_CMDS_AUTH_TOKEN] + } + } + const buffer = await httpRequest({ + ...options, + timeout + }) + return buffer.toString() + }, + 'requestFromEcsImds' + ) + var CMDS_IP = '169.254.170.2' + var GREENGRASS_HOSTS = { + localhost: true, + '127.0.0.1': true + } + var GREENGRASS_PROTOCOLS = { + 'http:': true, + 'https:': true + } + var getCmdsUri = /* @__PURE__ */ __name(async ({ logger }) => { + if (process.env[ENV_CMDS_RELATIVE_URI]) { + return { + hostname: CMDS_IP, + path: process.env[ENV_CMDS_RELATIVE_URI] + } + } + if (process.env[ENV_CMDS_FULL_URI]) { + const parsed = (0, import_url.parse)(process.env[ENV_CMDS_FULL_URI]) + if (!parsed.hostname || !(parsed.hostname in GREENGRASS_HOSTS)) { + throw new import_property_provider.CredentialsProviderError( + `${parsed.hostname} is not a valid container metadata service hostname`, + { + tryNextLink: false, + logger + } + ) + } + if (!parsed.protocol || !(parsed.protocol in GREENGRASS_PROTOCOLS)) { + throw new import_property_provider.CredentialsProviderError( + `${parsed.protocol} is not a valid container metadata service protocol`, + { + tryNextLink: false, + logger + } + ) + } + return { + ...parsed, + port: parsed.port ? parseInt(parsed.port, 10) : void 0 + } + } + throw new import_property_provider.CredentialsProviderError( + `The container metadata credential provider cannot be used unless the ${ENV_CMDS_RELATIVE_URI} or ${ENV_CMDS_FULL_URI} environment variable is set`, + { + tryNextLink: false, + logger + } + ) + }, 'getCmdsUri') + // src/fromInstanceMetadata.ts + // src/error/InstanceMetadataV1FallbackError.ts -var _DeleteGeneratedTemplateCommand = class _DeleteGeneratedTemplateCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "DeleteGeneratedTemplate", {}).n("CloudFormationClient", "DeleteGeneratedTemplateCommand").f(void 0, void 0).ser(se_DeleteGeneratedTemplateCommand).de(de_DeleteGeneratedTemplateCommand).build() { -}; -__name(_DeleteGeneratedTemplateCommand, "DeleteGeneratedTemplateCommand"); -var DeleteGeneratedTemplateCommand = _DeleteGeneratedTemplateCommand; + var InstanceMetadataV1FallbackError = class _InstanceMetadataV1FallbackError + extends import_property_provider.CredentialsProviderError + { + constructor(message, tryNextLink = true) { + super(message, tryNextLink) + this.tryNextLink = tryNextLink + this.name = 'InstanceMetadataV1FallbackError' + Object.setPrototypeOf( + this, + _InstanceMetadataV1FallbackError.prototype + ) + } + static { + __name(this, 'InstanceMetadataV1FallbackError') + } + } + + // src/utils/getInstanceMetadataEndpoint.ts + var import_node_config_provider = __nccwpck_require__(6706) + var import_url_parser = __nccwpck_require__(57247) + + // src/config/Endpoint.ts + var Endpoint = /* @__PURE__ */ (Endpoint2 => { + Endpoint2['IPv4'] = 'http://169.254.169.254' + Endpoint2['IPv6'] = 'http://[fd00:ec2::254]' + return Endpoint2 + })(Endpoint || {}) + + // src/config/EndpointConfigOptions.ts + var ENV_ENDPOINT_NAME = 'AWS_EC2_METADATA_SERVICE_ENDPOINT' + var CONFIG_ENDPOINT_NAME = 'ec2_metadata_service_endpoint' + var ENDPOINT_CONFIG_OPTIONS = { + environmentVariableSelector: env => env[ENV_ENDPOINT_NAME], + configFileSelector: profile => profile[CONFIG_ENDPOINT_NAME], + default: void 0 + } + + // src/config/EndpointMode.ts + var EndpointMode = /* @__PURE__ */ (EndpointMode2 => { + EndpointMode2['IPv4'] = 'IPv4' + EndpointMode2['IPv6'] = 'IPv6' + return EndpointMode2 + })(EndpointMode || {}) + + // src/config/EndpointModeConfigOptions.ts + var ENV_ENDPOINT_MODE_NAME = 'AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE' + var CONFIG_ENDPOINT_MODE_NAME = 'ec2_metadata_service_endpoint_mode' + var ENDPOINT_MODE_CONFIG_OPTIONS = { + environmentVariableSelector: env => env[ENV_ENDPOINT_MODE_NAME], + configFileSelector: profile => profile[CONFIG_ENDPOINT_MODE_NAME], + default: 'IPv4' /* IPv4 */ + } + + // src/utils/getInstanceMetadataEndpoint.ts + var getInstanceMetadataEndpoint = /* @__PURE__ */ __name( + async () => + (0, import_url_parser.parseUrl)( + (await getFromEndpointConfig()) || + (await getFromEndpointModeConfig()) + ), + 'getInstanceMetadataEndpoint' + ) + var getFromEndpointConfig = /* @__PURE__ */ __name( + async () => + (0, import_node_config_provider.loadConfig)( + ENDPOINT_CONFIG_OPTIONS + )(), + 'getFromEndpointConfig' + ) + var getFromEndpointModeConfig = /* @__PURE__ */ __name(async () => { + const endpointMode = await (0, import_node_config_provider.loadConfig)( + ENDPOINT_MODE_CONFIG_OPTIONS + )() + switch (endpointMode) { + case 'IPv4' /* IPv4 */: + return 'http://169.254.169.254' /* IPv4 */ + case 'IPv6' /* IPv6 */: + return 'http://[fd00:ec2::254]' /* IPv6 */ + default: + throw new Error( + `Unsupported endpoint mode: ${endpointMode}. Select from ${Object.values(EndpointMode)}` + ) + } + }, 'getFromEndpointModeConfig') + + // src/utils/getExtendedInstanceMetadataCredentials.ts + var STATIC_STABILITY_REFRESH_INTERVAL_SECONDS = 5 * 60 + var STATIC_STABILITY_REFRESH_INTERVAL_JITTER_WINDOW_SECONDS = 5 * 60 + var STATIC_STABILITY_DOC_URL = + 'https://docs.aws.amazon.com/sdkref/latest/guide/feature-static-credentials.html' + var getExtendedInstanceMetadataCredentials = /* @__PURE__ */ __name( + (credentials, logger) => { + const refreshInterval = + STATIC_STABILITY_REFRESH_INTERVAL_SECONDS + + Math.floor( + Math.random() * + STATIC_STABILITY_REFRESH_INTERVAL_JITTER_WINDOW_SECONDS + ) + const newExpiration = new Date(Date.now() + refreshInterval * 1e3) + logger.warn( + `Attempting credential expiration extension due to a credential service availability issue. A refresh of these credentials will be attempted after ${new Date(newExpiration)}. +For more information, please visit: ` + STATIC_STABILITY_DOC_URL + ) + const originalExpiration = + credentials.originalExpiration ?? credentials.expiration + return { + ...credentials, + ...(originalExpiration ? { originalExpiration } : {}), + expiration: newExpiration + } + }, + 'getExtendedInstanceMetadataCredentials' + ) -// src/commands/DeleteStackCommand.ts + // src/utils/staticStabilityProvider.ts + var staticStabilityProvider = /* @__PURE__ */ __name( + (provider, options = {}) => { + const logger = options?.logger || console + let pastCredentials + return async () => { + let credentials + try { + credentials = await provider() + if ( + credentials.expiration && + credentials.expiration.getTime() < Date.now() + ) { + credentials = getExtendedInstanceMetadataCredentials( + credentials, + logger + ) + } + } catch (e) { + if (pastCredentials) { + logger.warn('Credential renew failed: ', e) + credentials = getExtendedInstanceMetadataCredentials( + pastCredentials, + logger + ) + } else { + throw e + } + } + pastCredentials = credentials + return credentials + } + }, + 'staticStabilityProvider' + ) + // src/fromInstanceMetadata.ts + var IMDS_PATH = '/latest/meta-data/iam/security-credentials/' + var IMDS_TOKEN_PATH = '/latest/api/token' + var AWS_EC2_METADATA_V1_DISABLED = 'AWS_EC2_METADATA_V1_DISABLED' + var PROFILE_AWS_EC2_METADATA_V1_DISABLED = 'ec2_metadata_v1_disabled' + var X_AWS_EC2_METADATA_TOKEN = 'x-aws-ec2-metadata-token' + var fromInstanceMetadata = /* @__PURE__ */ __name( + (init = {}) => + staticStabilityProvider(getInstanceMetadataProvider(init), { + logger: init.logger + }), + 'fromInstanceMetadata' + ) + var getInstanceMetadataProvider = /* @__PURE__ */ __name((init = {}) => { + let disableFetchToken = false + const { logger, profile } = init + const { timeout, maxRetries } = providerConfigFromInit(init) + const getCredentials = /* @__PURE__ */ __name( + async (maxRetries2, options) => { + const isImdsV1Fallback = + disableFetchToken || + options.headers?.[X_AWS_EC2_METADATA_TOKEN] == null + if (isImdsV1Fallback) { + let fallbackBlockedFromProfile = false + let fallbackBlockedFromProcessEnv = false + const configValue = await (0, + import_node_config_provider.loadConfig)( + { + environmentVariableSelector: env => { + const envValue = env[AWS_EC2_METADATA_V1_DISABLED] + fallbackBlockedFromProcessEnv = + !!envValue && envValue !== 'false' + if (envValue === void 0) { + throw new import_property_provider.CredentialsProviderError( + `${AWS_EC2_METADATA_V1_DISABLED} not set in env, checking config file next.`, + { logger: init.logger } + ) + } + return fallbackBlockedFromProcessEnv + }, + configFileSelector: profile2 => { + const profileValue = + profile2[PROFILE_AWS_EC2_METADATA_V1_DISABLED] + fallbackBlockedFromProfile = + !!profileValue && profileValue !== 'false' + return fallbackBlockedFromProfile + }, + default: false + }, + { + profile + } + )() + if (init.ec2MetadataV1Disabled || configValue) { + const causes = [] + if (init.ec2MetadataV1Disabled) + causes.push( + 'credential provider initialization (runtime option ec2MetadataV1Disabled)' + ) + if (fallbackBlockedFromProfile) + causes.push( + `config file profile (${PROFILE_AWS_EC2_METADATA_V1_DISABLED})` + ) + if (fallbackBlockedFromProcessEnv) + causes.push( + `process environment variable (${AWS_EC2_METADATA_V1_DISABLED})` + ) + throw new InstanceMetadataV1FallbackError( + `AWS EC2 Metadata v1 fallback has been blocked by AWS SDK configuration in the following: [${causes.join( + ', ' + )}].` + ) + } + } + const imdsProfile = ( + await retry(async () => { + let profile2 + try { + profile2 = await getProfile(options) + } catch (err) { + if (err.statusCode === 401) { + disableFetchToken = false + } + throw err + } + return profile2 + }, maxRetries2) + ).trim() + return retry(async () => { + let creds + try { + creds = await getCredentialsFromProfile( + imdsProfile, + options, + init + ) + } catch (err) { + if (err.statusCode === 401) { + disableFetchToken = false + } + throw err + } + return creds + }, maxRetries2) + }, + 'getCredentials' + ) + return async () => { + const endpoint = await getInstanceMetadataEndpoint() + if (disableFetchToken) { + logger?.debug( + 'AWS SDK Instance Metadata', + 'using v1 fallback (no token fetch)' + ) + return getCredentials(maxRetries, { ...endpoint, timeout }) + } else { + let token + try { + token = ( + await getMetadataToken({ ...endpoint, timeout }) + ).toString() + } catch (error) { + if (error?.statusCode === 400) { + throw Object.assign(error, { + message: 'EC2 Metadata token request returned error' + }) + } else if ( + error.message === 'TimeoutError' || + [403, 404, 405].includes(error.statusCode) + ) { + disableFetchToken = true + } + logger?.debug( + 'AWS SDK Instance Metadata', + 'using v1 fallback (initial)' + ) + return getCredentials(maxRetries, { ...endpoint, timeout }) + } + return getCredentials(maxRetries, { + ...endpoint, + headers: { + [X_AWS_EC2_METADATA_TOKEN]: token + }, + timeout + }) + } + } + }, 'getInstanceMetadataProvider') + var getMetadataToken = /* @__PURE__ */ __name( + async options => + httpRequest({ + ...options, + path: IMDS_TOKEN_PATH, + method: 'PUT', + headers: { + 'x-aws-ec2-metadata-token-ttl-seconds': '21600' + } + }), + 'getMetadataToken' + ) + var getProfile = /* @__PURE__ */ __name( + async options => + (await httpRequest({ ...options, path: IMDS_PATH })).toString(), + 'getProfile' + ) + var getCredentialsFromProfile = /* @__PURE__ */ __name( + async (profile, options, init) => { + const credentialsResponse = JSON.parse( + ( + await httpRequest({ + ...options, + path: IMDS_PATH + profile + }) + ).toString() + ) + if (!isImdsCredentials(credentialsResponse)) { + throw new import_property_provider.CredentialsProviderError( + 'Invalid response received from instance metadata service.', + { + logger: init.logger + } + ) + } + return fromImdsCredentials(credentialsResponse) + }, + 'getCredentialsFromProfile' + ) + // Annotate the CommonJS export names for ESM import in node: + 0 && 0 -var _DeleteStackCommand = class _DeleteStackCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "DeleteStack", {}).n("CloudFormationClient", "DeleteStackCommand").f(void 0, void 0).ser(se_DeleteStackCommand).de(de_DeleteStackCommand).build() { -}; -__name(_DeleteStackCommand, "DeleteStackCommand"); -var DeleteStackCommand = _DeleteStackCommand; + /***/ + }, -// src/commands/DeleteStackInstancesCommand.ts + /***/ 19464: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + // src/index.ts + var src_exports = {} + __export(src_exports, { + FetchHttpHandler: () => FetchHttpHandler, + keepAliveSupport: () => keepAliveSupport, + streamCollector: () => streamCollector + }) + module.exports = __toCommonJS(src_exports) + // src/fetch-http-handler.ts + var import_protocol_http = __nccwpck_require__(31788) + var import_querystring_builder = __nccwpck_require__(87169) -var _DeleteStackInstancesCommand = class _DeleteStackInstancesCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "DeleteStackInstances", {}).n("CloudFormationClient", "DeleteStackInstancesCommand").f(void 0, void 0).ser(se_DeleteStackInstancesCommand).de(de_DeleteStackInstancesCommand).build() { -}; -__name(_DeleteStackInstancesCommand, "DeleteStackInstancesCommand"); -var DeleteStackInstancesCommand = _DeleteStackInstancesCommand; + // src/create-request.ts + function createRequest(url, requestOptions) { + return new Request(url, requestOptions) + } + __name(createRequest, 'createRequest') -// src/commands/DeleteStackSetCommand.ts + // src/request-timeout.ts + function requestTimeout(timeoutInMs = 0) { + return new Promise((resolve, reject) => { + if (timeoutInMs) { + setTimeout(() => { + const timeoutError = new Error( + `Request did not complete within ${timeoutInMs} ms` + ) + timeoutError.name = 'TimeoutError' + reject(timeoutError) + }, timeoutInMs) + } + }) + } + __name(requestTimeout, 'requestTimeout') + // src/fetch-http-handler.ts + var keepAliveSupport = { + supported: void 0 + } + var FetchHttpHandler = class _FetchHttpHandler { + static { + __name(this, 'FetchHttpHandler') + } + /** + * @returns the input if it is an HttpHandler of any class, + * or instantiates a new instance of this handler. + */ + static create(instanceOrOptions) { + if (typeof instanceOrOptions?.handle === 'function') { + return instanceOrOptions + } + return new _FetchHttpHandler(instanceOrOptions) + } + constructor(options) { + if (typeof options === 'function') { + this.configProvider = options().then(opts => opts || {}) + } else { + this.config = options ?? {} + this.configProvider = Promise.resolve(this.config) + } + if (keepAliveSupport.supported === void 0) { + keepAliveSupport.supported = Boolean( + typeof Request !== 'undefined' && + 'keepalive' in createRequest('https://[::1]') + ) + } + } + destroy() {} + async handle(request, { abortSignal } = {}) { + if (!this.config) { + this.config = await this.configProvider + } + const requestTimeoutInMs = this.config.requestTimeout + const keepAlive = this.config.keepAlive === true + const credentials = this.config.credentials + if (abortSignal?.aborted) { + const abortError = new Error('Request aborted') + abortError.name = 'AbortError' + return Promise.reject(abortError) + } + let path = request.path + const queryString = (0, import_querystring_builder.buildQueryString)( + request.query || {} + ) + if (queryString) { + path += `?${queryString}` + } + if (request.fragment) { + path += `#${request.fragment}` + } + let auth = '' + if (request.username != null || request.password != null) { + const username = request.username ?? '' + const password = request.password ?? '' + auth = `${username}:${password}@` + } + const { port, method } = request + const url = `${request.protocol}//${auth}${request.hostname}${port ? `:${port}` : ''}${path}` + const body = + method === 'GET' || method === 'HEAD' ? void 0 : request.body + const requestOptions = { + body, + headers: new Headers(request.headers), + method, + credentials + } + if (this.config?.cache) { + requestOptions.cache = this.config.cache + } + if (body) { + requestOptions.duplex = 'half' + } + if (typeof AbortController !== 'undefined') { + requestOptions.signal = abortSignal + } + if (keepAliveSupport.supported) { + requestOptions.keepalive = keepAlive + } + if (typeof this.config.requestInit === 'function') { + Object.assign(requestOptions, this.config.requestInit(request)) + } + let removeSignalEventListener = /* @__PURE__ */ __name( + () => {}, + 'removeSignalEventListener' + ) + const fetchRequest = createRequest(url, requestOptions) + const raceOfPromises = [ + fetch(fetchRequest).then(response => { + const fetchHeaders = response.headers + const transformedHeaders = {} + for (const pair of fetchHeaders.entries()) { + transformedHeaders[pair[0]] = pair[1] + } + const hasReadableStream = response.body != void 0 + if (!hasReadableStream) { + return response.blob().then(body2 => ({ + response: new import_protocol_http.HttpResponse({ + headers: transformedHeaders, + reason: response.statusText, + statusCode: response.status, + body: body2 + }) + })) + } + return { + response: new import_protocol_http.HttpResponse({ + headers: transformedHeaders, + reason: response.statusText, + statusCode: response.status, + body: response.body + }) + } + }), + requestTimeout(requestTimeoutInMs) + ] + if (abortSignal) { + raceOfPromises.push( + new Promise((resolve, reject) => { + const onAbort = /* @__PURE__ */ __name(() => { + const abortError = new Error('Request aborted') + abortError.name = 'AbortError' + reject(abortError) + }, 'onAbort') + if (typeof abortSignal.addEventListener === 'function') { + const signal = abortSignal + signal.addEventListener('abort', onAbort, { once: true }) + removeSignalEventListener = /* @__PURE__ */ __name( + () => signal.removeEventListener('abort', onAbort), + 'removeSignalEventListener' + ) + } else { + abortSignal.onabort = onAbort + } + }) + ) + } + return Promise.race(raceOfPromises).finally(removeSignalEventListener) + } + updateHttpClientConfig(key, value) { + this.config = void 0 + this.configProvider = this.configProvider.then(config => { + config[key] = value + return config + }) + } + httpHandlerConfigs() { + return this.config ?? {} + } + } + // src/stream-collector.ts + var import_util_base64 = __nccwpck_require__(87656) + var streamCollector = /* @__PURE__ */ __name(async stream => { + if ( + (typeof Blob === 'function' && stream instanceof Blob) || + stream.constructor?.name === 'Blob' + ) { + if (Blob.prototype.arrayBuffer !== void 0) { + return new Uint8Array(await stream.arrayBuffer()) + } + return collectBlob(stream) + } + return collectStream(stream) + }, 'streamCollector') + async function collectBlob(blob) { + const base64 = await readToBase64(blob) + const arrayBuffer = (0, import_util_base64.fromBase64)(base64) + return new Uint8Array(arrayBuffer) + } + __name(collectBlob, 'collectBlob') + async function collectStream(stream) { + const chunks = [] + const reader = stream.getReader() + let isDone = false + let length = 0 + while (!isDone) { + const { done, value } = await reader.read() + if (value) { + chunks.push(value) + length += value.length + } + isDone = done + } + const collected = new Uint8Array(length) + let offset = 0 + for (const chunk of chunks) { + collected.set(chunk, offset) + offset += chunk.length + } + return collected + } + __name(collectStream, 'collectStream') + function readToBase64(blob) { + return new Promise((resolve, reject) => { + const reader = new FileReader() + reader.onloadend = () => { + if (reader.readyState !== 2) { + return reject(new Error('Reader aborted too early')) + } + const result = reader.result ?? '' + const commaIndex = result.indexOf(',') + const dataOffset = commaIndex > -1 ? commaIndex + 1 : result.length + resolve(result.substring(dataOffset)) + } + reader.onabort = () => reject(new Error('Read aborted')) + reader.onerror = () => reject(reader.error) + reader.readAsDataURL(blob) + }) + } + __name(readToBase64, 'readToBase64') + // Annotate the CommonJS export names for ESM import in node: -var _DeleteStackSetCommand = class _DeleteStackSetCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "DeleteStackSet", {}).n("CloudFormationClient", "DeleteStackSetCommand").f(void 0, void 0).ser(se_DeleteStackSetCommand).de(de_DeleteStackSetCommand).build() { -}; -__name(_DeleteStackSetCommand, "DeleteStackSetCommand"); -var DeleteStackSetCommand = _DeleteStackSetCommand; + 0 && 0 -// src/commands/DeregisterTypeCommand.ts + /***/ + }, + /***/ 52998: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + // src/index.ts + var src_exports = {} + __export(src_exports, { + Hash: () => Hash + }) + module.exports = __toCommonJS(src_exports) + var import_util_buffer_from = __nccwpck_require__(48928) + var import_util_utf8 = __nccwpck_require__(94377) + var import_buffer = __nccwpck_require__(14300) + var import_crypto = __nccwpck_require__(6113) + var Hash = class { + static { + __name(this, 'Hash') + } + constructor(algorithmIdentifier, secret) { + this.algorithmIdentifier = algorithmIdentifier + this.secret = secret + this.reset() + } + update(toHash, encoding) { + this.hash.update( + (0, import_util_utf8.toUint8Array)(castSourceData(toHash, encoding)) + ) + } + digest() { + return Promise.resolve(this.hash.digest()) + } + reset() { + this.hash = this.secret + ? (0, import_crypto.createHmac)( + this.algorithmIdentifier, + castSourceData(this.secret) + ) + : (0, import_crypto.createHash)(this.algorithmIdentifier) + } + } + function castSourceData(toCast, encoding) { + if (import_buffer.Buffer.isBuffer(toCast)) { + return toCast + } + if (typeof toCast === 'string') { + return (0, import_util_buffer_from.fromString)(toCast, encoding) + } + if (ArrayBuffer.isView(toCast)) { + return (0, import_util_buffer_from.fromArrayBuffer)( + toCast.buffer, + toCast.byteOffset, + toCast.byteLength + ) + } + return (0, import_util_buffer_from.fromArrayBuffer)(toCast) + } + __name(castSourceData, 'castSourceData') + // Annotate the CommonJS export names for ESM import in node: -var _DeregisterTypeCommand = class _DeregisterTypeCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "DeregisterType", {}).n("CloudFormationClient", "DeregisterTypeCommand").f(void 0, void 0).ser(se_DeregisterTypeCommand).de(de_DeregisterTypeCommand).build() { -}; -__name(_DeregisterTypeCommand, "DeregisterTypeCommand"); -var DeregisterTypeCommand = _DeregisterTypeCommand; + 0 && 0 -// src/commands/DescribeAccountLimitsCommand.ts + /***/ + }, + /***/ 22299: /***/ module => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + // src/index.ts + var src_exports = {} + __export(src_exports, { + isArrayBuffer: () => isArrayBuffer + }) + module.exports = __toCommonJS(src_exports) + var isArrayBuffer = /* @__PURE__ */ __name( + arg => + (typeof ArrayBuffer === 'function' && arg instanceof ArrayBuffer) || + Object.prototype.toString.call(arg) === '[object ArrayBuffer]', + 'isArrayBuffer' + ) + // Annotate the CommonJS export names for ESM import in node: -var _DescribeAccountLimitsCommand = class _DescribeAccountLimitsCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "DescribeAccountLimits", {}).n("CloudFormationClient", "DescribeAccountLimitsCommand").f(void 0, void 0).ser(se_DescribeAccountLimitsCommand).de(de_DescribeAccountLimitsCommand).build() { -}; -__name(_DescribeAccountLimitsCommand, "DescribeAccountLimitsCommand"); -var DescribeAccountLimitsCommand = _DescribeAccountLimitsCommand; + 0 && 0 -// src/commands/DescribeChangeSetCommand.ts + /***/ + }, + /***/ 34305: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + // src/index.ts + var src_exports = {} + __export(src_exports, { + contentLengthMiddleware: () => contentLengthMiddleware, + contentLengthMiddlewareOptions: () => contentLengthMiddlewareOptions, + getContentLengthPlugin: () => getContentLengthPlugin + }) + module.exports = __toCommonJS(src_exports) + var import_protocol_http = __nccwpck_require__(31788) + var CONTENT_LENGTH_HEADER = 'content-length' + function contentLengthMiddleware(bodyLengthChecker) { + return next => async args => { + const request = args.request + if (import_protocol_http.HttpRequest.isInstance(request)) { + const { body, headers } = request + if ( + body && + Object.keys(headers) + .map(str => str.toLowerCase()) + .indexOf(CONTENT_LENGTH_HEADER) === -1 + ) { + try { + const length = bodyLengthChecker(body) + request.headers = { + ...request.headers, + [CONTENT_LENGTH_HEADER]: String(length) + } + } catch (error) {} + } + } + return next({ + ...args, + request + }) + } + } + __name(contentLengthMiddleware, 'contentLengthMiddleware') + var contentLengthMiddlewareOptions = { + step: 'build', + tags: ['SET_CONTENT_LENGTH', 'CONTENT_LENGTH'], + name: 'contentLengthMiddleware', + override: true + } + var getContentLengthPlugin = /* @__PURE__ */ __name( + options => ({ + applyToStack: clientStack => { + clientStack.add( + contentLengthMiddleware(options.bodyLengthChecker), + contentLengthMiddlewareOptions + ) + } + }), + 'getContentLengthPlugin' + ) + // Annotate the CommonJS export names for ESM import in node: -var _DescribeChangeSetCommand = class _DescribeChangeSetCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "DescribeChangeSet", {}).n("CloudFormationClient", "DescribeChangeSetCommand").f(void 0, void 0).ser(se_DescribeChangeSetCommand).de(de_DescribeChangeSetCommand).build() { -}; -__name(_DescribeChangeSetCommand, "DescribeChangeSetCommand"); -var DescribeChangeSetCommand = _DescribeChangeSetCommand; + 0 && 0 -// src/commands/DescribeChangeSetHooksCommand.ts + /***/ + }, + /***/ 76528: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getEndpointFromConfig = void 0 + const node_config_provider_1 = __nccwpck_require__(6706) + const getEndpointUrlConfig_1 = __nccwpck_require__(32544) + const getEndpointFromConfig = async serviceId => + (0, node_config_provider_1.loadConfig)( + (0, getEndpointUrlConfig_1.getEndpointUrlConfig)( + serviceId !== null && serviceId !== void 0 ? serviceId : '' + ) + )() + exports.getEndpointFromConfig = getEndpointFromConfig + /***/ + }, -var _DescribeChangeSetHooksCommand = class _DescribeChangeSetHooksCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "DescribeChangeSetHooks", {}).n("CloudFormationClient", "DescribeChangeSetHooksCommand").f(void 0, void 0).ser(se_DescribeChangeSetHooksCommand).de(de_DescribeChangeSetHooksCommand).build() { -}; -__name(_DescribeChangeSetHooksCommand, "DescribeChangeSetHooksCommand"); -var DescribeChangeSetHooksCommand = _DescribeChangeSetHooksCommand; + /***/ 32544: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getEndpointUrlConfig = void 0 + const shared_ini_file_loader_1 = __nccwpck_require__(69001) + const ENV_ENDPOINT_URL = 'AWS_ENDPOINT_URL' + const CONFIG_ENDPOINT_URL = 'endpoint_url' + const getEndpointUrlConfig = serviceId => ({ + environmentVariableSelector: env => { + const serviceSuffixParts = serviceId + .split(' ') + .map(w => w.toUpperCase()) + const serviceEndpointUrl = + env[[ENV_ENDPOINT_URL, ...serviceSuffixParts].join('_')] + if (serviceEndpointUrl) return serviceEndpointUrl + const endpointUrl = env[ENV_ENDPOINT_URL] + if (endpointUrl) return endpointUrl + return undefined + }, + configFileSelector: (profile, config) => { + if (config && profile.services) { + const servicesSection = + config[ + ['services', profile.services].join( + shared_ini_file_loader_1.CONFIG_PREFIX_SEPARATOR + ) + ] + if (servicesSection) { + const servicePrefixParts = serviceId + .split(' ') + .map(w => w.toLowerCase()) + const endpointUrl = + servicesSection[ + [servicePrefixParts.join('_'), CONFIG_ENDPOINT_URL].join( + shared_ini_file_loader_1.CONFIG_PREFIX_SEPARATOR + ) + ] + if (endpointUrl) return endpointUrl + } + } + const endpointUrl = profile[CONFIG_ENDPOINT_URL] + if (endpointUrl) return endpointUrl + return undefined + }, + default: undefined + }) + exports.getEndpointUrlConfig = getEndpointUrlConfig -// src/commands/DescribeGeneratedTemplateCommand.ts + /***/ + }, + /***/ 13636: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + endpointMiddleware: () => endpointMiddleware, + endpointMiddlewareOptions: () => endpointMiddlewareOptions, + getEndpointFromInstructions: () => getEndpointFromInstructions, + getEndpointPlugin: () => getEndpointPlugin, + resolveEndpointConfig: () => resolveEndpointConfig, + resolveParams: () => resolveParams, + toEndpointV1: () => toEndpointV1 + }) + module.exports = __toCommonJS(src_exports) + + // src/service-customizations/s3.ts + var resolveParamsForS3 = /* @__PURE__ */ __name(async endpointParams => { + const bucket = endpointParams?.Bucket || '' + if (typeof endpointParams.Bucket === 'string') { + endpointParams.Bucket = bucket + .replace(/#/g, encodeURIComponent('#')) + .replace(/\?/g, encodeURIComponent('?')) + } + if (isArnBucketName(bucket)) { + if (endpointParams.ForcePathStyle === true) { + throw new Error( + 'Path-style addressing cannot be used with ARN buckets' + ) + } + } else if ( + !isDnsCompatibleBucketName(bucket) || + (bucket.indexOf('.') !== -1 && + !String(endpointParams.Endpoint).startsWith('http:')) || + bucket.toLowerCase() !== bucket || + bucket.length < 3 + ) { + endpointParams.ForcePathStyle = true + } + if (endpointParams.DisableMultiRegionAccessPoints) { + endpointParams.disableMultiRegionAccessPoints = true + endpointParams.DisableMRAP = true + } + return endpointParams + }, 'resolveParamsForS3') + var DOMAIN_PATTERN = /^[a-z0-9][a-z0-9\.\-]{1,61}[a-z0-9]$/ + var IP_ADDRESS_PATTERN = /(\d+\.){3}\d+/ + var DOTS_PATTERN = /\.\./ + var isDnsCompatibleBucketName = /* @__PURE__ */ __name( + bucketName => + DOMAIN_PATTERN.test(bucketName) && + !IP_ADDRESS_PATTERN.test(bucketName) && + !DOTS_PATTERN.test(bucketName), + 'isDnsCompatibleBucketName' + ) + var isArnBucketName = /* @__PURE__ */ __name(bucketName => { + const [arn, partition, service, , , bucket] = bucketName.split(':') + const isArn = arn === 'arn' && bucketName.split(':').length >= 6 + const isValidArn = Boolean(isArn && partition && service && bucket) + if (isArn && !isValidArn) { + throw new Error(`Invalid ARN: ${bucketName} was an invalid ARN.`) + } + return isValidArn + }, 'isArnBucketName') + + // src/adaptors/createConfigValueProvider.ts + var createConfigValueProvider = /* @__PURE__ */ __name( + (configKey, canonicalEndpointParamKey, config) => { + const configProvider = /* @__PURE__ */ __name(async () => { + const configValue = + config[configKey] ?? config[canonicalEndpointParamKey] + if (typeof configValue === 'function') { + return configValue() + } + return configValue + }, 'configProvider') + if ( + configKey === 'credentialScope' || + canonicalEndpointParamKey === 'CredentialScope' + ) { + return async () => { + const credentials = + typeof config.credentials === 'function' + ? await config.credentials() + : config.credentials + const configValue = + credentials?.credentialScope ?? credentials?.CredentialScope + return configValue + } + } + if ( + configKey === 'accountId' || + canonicalEndpointParamKey === 'AccountId' + ) { + return async () => { + const credentials = + typeof config.credentials === 'function' + ? await config.credentials() + : config.credentials + const configValue = + credentials?.accountId ?? credentials?.AccountId + return configValue + } + } + if ( + configKey === 'endpoint' || + canonicalEndpointParamKey === 'endpoint' + ) { + return async () => { + const endpoint = await configProvider() + if (endpoint && typeof endpoint === 'object') { + if ('url' in endpoint) { + return endpoint.url.href + } + if ('hostname' in endpoint) { + const { protocol, hostname, port, path } = endpoint + return `${protocol}//${hostname}${port ? ':' + port : ''}${path}` + } + } + return endpoint + } + } + return configProvider + }, + 'createConfigValueProvider' + ) + // src/adaptors/getEndpointFromInstructions.ts + var import_getEndpointFromConfig = __nccwpck_require__(76528) -var _DescribeGeneratedTemplateCommand = class _DescribeGeneratedTemplateCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "DescribeGeneratedTemplate", {}).n("CloudFormationClient", "DescribeGeneratedTemplateCommand").f(void 0, void 0).ser(se_DescribeGeneratedTemplateCommand).de(de_DescribeGeneratedTemplateCommand).build() { -}; -__name(_DescribeGeneratedTemplateCommand, "DescribeGeneratedTemplateCommand"); -var DescribeGeneratedTemplateCommand = _DescribeGeneratedTemplateCommand; + // src/adaptors/toEndpointV1.ts + var import_url_parser = __nccwpck_require__(57247) + var toEndpointV1 = /* @__PURE__ */ __name(endpoint => { + if (typeof endpoint === 'object') { + if ('url' in endpoint) { + return (0, import_url_parser.parseUrl)(endpoint.url) + } + return endpoint + } + return (0, import_url_parser.parseUrl)(endpoint) + }, 'toEndpointV1') + + // src/adaptors/getEndpointFromInstructions.ts + var getEndpointFromInstructions = /* @__PURE__ */ __name( + async (commandInput, instructionsSupplier, clientConfig, context) => { + if (!clientConfig.endpoint) { + let endpointFromConfig + if (clientConfig.serviceConfiguredEndpoint) { + endpointFromConfig = + await clientConfig.serviceConfiguredEndpoint() + } else { + endpointFromConfig = await (0, + import_getEndpointFromConfig.getEndpointFromConfig)( + clientConfig.serviceId + ) + } + if (endpointFromConfig) { + clientConfig.endpoint = () => + Promise.resolve(toEndpointV1(endpointFromConfig)) + } + } + const endpointParams = await resolveParams( + commandInput, + instructionsSupplier, + clientConfig + ) + if (typeof clientConfig.endpointProvider !== 'function') { + throw new Error('config.endpointProvider is not set.') + } + const endpoint = clientConfig.endpointProvider( + endpointParams, + context + ) + return endpoint + }, + 'getEndpointFromInstructions' + ) + var resolveParams = /* @__PURE__ */ __name( + async (commandInput, instructionsSupplier, clientConfig) => { + const endpointParams = {} + const instructions = + instructionsSupplier?.getEndpointParameterInstructions?.() || {} + for (const [name, instruction] of Object.entries(instructions)) { + switch (instruction.type) { + case 'staticContextParams': + endpointParams[name] = instruction.value + break + case 'contextParams': + endpointParams[name] = commandInput[instruction.name] + break + case 'clientContextParams': + case 'builtInParams': + endpointParams[name] = await createConfigValueProvider( + instruction.name, + name, + clientConfig + )() + break + case 'operationContextParams': + endpointParams[name] = instruction.get(commandInput) + break + default: + throw new Error( + 'Unrecognized endpoint parameter instruction: ' + + JSON.stringify(instruction) + ) + } + } + if (Object.keys(instructions).length === 0) { + Object.assign(endpointParams, clientConfig) + } + if (String(clientConfig.serviceId).toLowerCase() === 's3') { + await resolveParamsForS3(endpointParams) + } + return endpointParams + }, + 'resolveParams' + ) -// src/commands/DescribeOrganizationsAccessCommand.ts + // src/endpointMiddleware.ts + var import_core = __nccwpck_require__(27588) + var import_util_middleware = __nccwpck_require__(69474) + var endpointMiddleware = /* @__PURE__ */ __name( + ({ config, instructions }) => { + return (next, context) => async args => { + if (config.endpoint) { + ;(0, import_core.setFeature)(context, 'ENDPOINT_OVERRIDE', 'N') + } + const endpoint = await getEndpointFromInstructions( + args.input, + { + getEndpointParameterInstructions() { + return instructions + } + }, + { ...config }, + context + ) + context.endpointV2 = endpoint + context.authSchemes = endpoint.properties?.authSchemes + const authScheme = context.authSchemes?.[0] + if (authScheme) { + context['signing_region'] = authScheme.signingRegion + context['signing_service'] = authScheme.signingName + const smithyContext = (0, + import_util_middleware.getSmithyContext)(context) + const httpAuthOption = + smithyContext?.selectedHttpAuthScheme?.httpAuthOption + if (httpAuthOption) { + httpAuthOption.signingProperties = Object.assign( + httpAuthOption.signingProperties || {}, + { + signing_region: authScheme.signingRegion, + signingRegion: authScheme.signingRegion, + signing_service: authScheme.signingName, + signingName: authScheme.signingName, + signingRegionSet: authScheme.signingRegionSet + }, + authScheme.properties + ) + } + } + return next({ + ...args + }) + } + }, + 'endpointMiddleware' + ) + // src/getEndpointPlugin.ts + var import_middleware_serde = __nccwpck_require__(88037) + var endpointMiddlewareOptions = { + step: 'serialize', + tags: ['ENDPOINT_PARAMETERS', 'ENDPOINT_V2', 'ENDPOINT'], + name: 'endpointV2Middleware', + override: true, + relation: 'before', + toMiddleware: import_middleware_serde.serializerMiddlewareOption.name + } + var getEndpointPlugin = /* @__PURE__ */ __name( + (config, instructions) => ({ + applyToStack: clientStack => { + clientStack.addRelativeTo( + endpointMiddleware({ + config, + instructions + }), + endpointMiddlewareOptions + ) + } + }), + 'getEndpointPlugin' + ) + // src/resolveEndpointConfig.ts + + var import_getEndpointFromConfig2 = __nccwpck_require__(76528) + var resolveEndpointConfig = /* @__PURE__ */ __name(input => { + const tls = input.tls ?? true + const { endpoint, useDualstackEndpoint, useFipsEndpoint } = input + const customEndpointProvider = + endpoint != null + ? async () => + toEndpointV1( + await (0, import_util_middleware.normalizeProvider)( + endpoint + )() + ) + : void 0 + const isCustomEndpoint = !!endpoint + const resolvedConfig = Object.assign(input, { + endpoint: customEndpointProvider, + tls, + isCustomEndpoint, + useDualstackEndpoint: (0, import_util_middleware.normalizeProvider)( + useDualstackEndpoint ?? false + ), + useFipsEndpoint: (0, import_util_middleware.normalizeProvider)( + useFipsEndpoint ?? false + ) + }) + let configuredEndpointPromise = void 0 + resolvedConfig.serviceConfiguredEndpoint = async () => { + if (input.serviceId && !configuredEndpointPromise) { + configuredEndpointPromise = (0, + import_getEndpointFromConfig2.getEndpointFromConfig)( + input.serviceId + ) + } + return configuredEndpointPromise + } + return resolvedConfig + }, 'resolveEndpointConfig') + // Annotate the CommonJS export names for ESM import in node: -var _DescribeOrganizationsAccessCommand = class _DescribeOrganizationsAccessCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "DescribeOrganizationsAccess", {}).n("CloudFormationClient", "DescribeOrganizationsAccessCommand").f(void 0, void 0).ser(se_DescribeOrganizationsAccessCommand).de(de_DescribeOrganizationsAccessCommand).build() { -}; -__name(_DescribeOrganizationsAccessCommand, "DescribeOrganizationsAccessCommand"); -var DescribeOrganizationsAccessCommand = _DescribeOrganizationsAccessCommand; + 0 && 0 -// src/commands/DescribePublisherCommand.ts + /***/ + }, + /***/ 74268: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + AdaptiveRetryStrategy: () => AdaptiveRetryStrategy, + CONFIG_MAX_ATTEMPTS: () => CONFIG_MAX_ATTEMPTS, + CONFIG_RETRY_MODE: () => CONFIG_RETRY_MODE, + ENV_MAX_ATTEMPTS: () => ENV_MAX_ATTEMPTS, + ENV_RETRY_MODE: () => ENV_RETRY_MODE, + NODE_MAX_ATTEMPT_CONFIG_OPTIONS: () => NODE_MAX_ATTEMPT_CONFIG_OPTIONS, + NODE_RETRY_MODE_CONFIG_OPTIONS: () => NODE_RETRY_MODE_CONFIG_OPTIONS, + StandardRetryStrategy: () => StandardRetryStrategy, + defaultDelayDecider: () => defaultDelayDecider, + defaultRetryDecider: () => defaultRetryDecider, + getOmitRetryHeadersPlugin: () => getOmitRetryHeadersPlugin, + getRetryAfterHint: () => getRetryAfterHint, + getRetryPlugin: () => getRetryPlugin, + omitRetryHeadersMiddleware: () => omitRetryHeadersMiddleware, + omitRetryHeadersMiddlewareOptions: () => + omitRetryHeadersMiddlewareOptions, + resolveRetryConfig: () => resolveRetryConfig, + retryMiddleware: () => retryMiddleware, + retryMiddlewareOptions: () => retryMiddlewareOptions + }) + module.exports = __toCommonJS(src_exports) + + // src/AdaptiveRetryStrategy.ts + + // src/StandardRetryStrategy.ts + var import_protocol_http = __nccwpck_require__(31788) + + var import_uuid = __nccwpck_require__(21286) + + // src/defaultRetryQuota.ts + var import_util_retry = __nccwpck_require__(31955) + var getDefaultRetryQuota = /* @__PURE__ */ __name( + (initialRetryTokens, options) => { + const MAX_CAPACITY = initialRetryTokens + const noRetryIncrement = + options?.noRetryIncrement ?? import_util_retry.NO_RETRY_INCREMENT + const retryCost = options?.retryCost ?? import_util_retry.RETRY_COST + const timeoutRetryCost = + options?.timeoutRetryCost ?? import_util_retry.TIMEOUT_RETRY_COST + let availableCapacity = initialRetryTokens + const getCapacityAmount = /* @__PURE__ */ __name( + error => + error.name === 'TimeoutError' ? timeoutRetryCost : retryCost, + 'getCapacityAmount' + ) + const hasRetryTokens = /* @__PURE__ */ __name( + error => getCapacityAmount(error) <= availableCapacity, + 'hasRetryTokens' + ) + const retrieveRetryTokens = /* @__PURE__ */ __name(error => { + if (!hasRetryTokens(error)) { + throw new Error('No retry token available') + } + const capacityAmount = getCapacityAmount(error) + availableCapacity -= capacityAmount + return capacityAmount + }, 'retrieveRetryTokens') + const releaseRetryTokens = /* @__PURE__ */ __name( + capacityReleaseAmount => { + availableCapacity += capacityReleaseAmount ?? noRetryIncrement + availableCapacity = Math.min(availableCapacity, MAX_CAPACITY) + }, + 'releaseRetryTokens' + ) + return Object.freeze({ + hasRetryTokens, + retrieveRetryTokens, + releaseRetryTokens + }) + }, + 'getDefaultRetryQuota' + ) + // src/delayDecider.ts -var _DescribePublisherCommand = class _DescribePublisherCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "DescribePublisher", {}).n("CloudFormationClient", "DescribePublisherCommand").f(void 0, void 0).ser(se_DescribePublisherCommand).de(de_DescribePublisherCommand).build() { -}; -__name(_DescribePublisherCommand, "DescribePublisherCommand"); -var DescribePublisherCommand = _DescribePublisherCommand; + var defaultDelayDecider = /* @__PURE__ */ __name( + (delayBase, attempts) => + Math.floor( + Math.min( + import_util_retry.MAXIMUM_RETRY_DELAY, + Math.random() * 2 ** attempts * delayBase + ) + ), + 'defaultDelayDecider' + ) -// src/commands/DescribeResourceScanCommand.ts + // src/retryDecider.ts + var import_service_error_classification = __nccwpck_require__(44652) + var defaultRetryDecider = /* @__PURE__ */ __name(error => { + if (!error) { + return false + } + 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) + ) + }, 'defaultRetryDecider') + + // src/util.ts + var asSdkError = /* @__PURE__ */ __name(error => { + if (error instanceof Error) return error + if (error instanceof Object) return Object.assign(new Error(), error) + if (typeof error === 'string') return new Error(error) + return new Error(`AWS SDK error wrapper for ${error}`) + }, 'asSdkError') + + // src/StandardRetryStrategy.ts + var StandardRetryStrategy = class { + constructor(maxAttemptsProvider, options) { + this.maxAttemptsProvider = maxAttemptsProvider + this.mode = import_util_retry.RETRY_MODES.STANDARD + this.retryDecider = options?.retryDecider ?? defaultRetryDecider + this.delayDecider = options?.delayDecider ?? defaultDelayDecider + this.retryQuota = + options?.retryQuota ?? + getDefaultRetryQuota(import_util_retry.INITIAL_RETRY_TOKENS) + } + static { + __name(this, 'StandardRetryStrategy') + } + shouldRetry(error, attempts, maxAttempts) { + return ( + attempts < maxAttempts && + this.retryDecider(error) && + this.retryQuota.hasRetryTokens(error) + ) + } + async getMaxAttempts() { + let maxAttempts + try { + maxAttempts = await this.maxAttemptsProvider() + } catch (error) { + maxAttempts = import_util_retry.DEFAULT_MAX_ATTEMPTS + } + return maxAttempts + } + async retry(next, args, options) { + let retryTokenAmount + let attempts = 0 + let totalDelay = 0 + const maxAttempts = await this.getMaxAttempts() + const { request } = args + if (import_protocol_http.HttpRequest.isInstance(request)) { + request.headers[import_util_retry.INVOCATION_ID_HEADER] = (0, + import_uuid.v4)() + } + while (true) { + try { + if (import_protocol_http.HttpRequest.isInstance(request)) { + request.headers[import_util_retry.REQUEST_HEADER] = + `attempt=${attempts + 1}; max=${maxAttempts}` + } + if (options?.beforeRequest) { + await options.beforeRequest() + } + const { response, output } = await next(args) + if (options?.afterRequest) { + options.afterRequest(response) + } + this.retryQuota.releaseRetryTokens(retryTokenAmount) + output.$metadata.attempts = attempts + 1 + output.$metadata.totalRetryDelay = totalDelay + return { response, output } + } catch (e) { + const err = asSdkError(e) + attempts++ + if (this.shouldRetry(err, attempts, maxAttempts)) { + retryTokenAmount = this.retryQuota.retrieveRetryTokens(err) + const delayFromDecider = this.delayDecider( + (0, import_service_error_classification.isThrottlingError)( + err + ) + ? import_util_retry.THROTTLING_RETRY_DELAY_BASE + : import_util_retry.DEFAULT_RETRY_DELAY_BASE, + attempts + ) + const delayFromResponse = getDelayFromRetryAfterHeader( + err.$response + ) + const delay = Math.max(delayFromResponse || 0, delayFromDecider) + totalDelay += delay + await new Promise(resolve => setTimeout(resolve, delay)) + continue + } + if (!err.$metadata) { + err.$metadata = {} + } + err.$metadata.attempts = attempts + err.$metadata.totalRetryDelay = totalDelay + throw err + } + } + } + } + var getDelayFromRetryAfterHeader = /* @__PURE__ */ __name(response => { + if (!import_protocol_http.HttpResponse.isInstance(response)) return + const retryAfterHeaderName = Object.keys(response.headers).find( + key => key.toLowerCase() === 'retry-after' + ) + if (!retryAfterHeaderName) return + const retryAfter = response.headers[retryAfterHeaderName] + const retryAfterSeconds = Number(retryAfter) + if (!Number.isNaN(retryAfterSeconds)) return retryAfterSeconds * 1e3 + const retryAfterDate = new Date(retryAfter) + return retryAfterDate.getTime() - Date.now() + }, 'getDelayFromRetryAfterHeader') + + // src/AdaptiveRetryStrategy.ts + var AdaptiveRetryStrategy = class extends StandardRetryStrategy { + static { + __name(this, 'AdaptiveRetryStrategy') + } + constructor(maxAttemptsProvider, options) { + const { rateLimiter, ...superOptions } = options ?? {} + super(maxAttemptsProvider, superOptions) + this.rateLimiter = + rateLimiter ?? new import_util_retry.DefaultRateLimiter() + this.mode = import_util_retry.RETRY_MODES.ADAPTIVE + } + async retry(next, args) { + return super.retry(next, args, { + beforeRequest: async () => { + return this.rateLimiter.getSendToken() + }, + afterRequest: response => { + this.rateLimiter.updateClientSendingRate(response) + } + }) + } + } + // src/configurations.ts + var import_util_middleware = __nccwpck_require__(69474) + var ENV_MAX_ATTEMPTS = 'AWS_MAX_ATTEMPTS' + var CONFIG_MAX_ATTEMPTS = 'max_attempts' + var NODE_MAX_ATTEMPT_CONFIG_OPTIONS = { + environmentVariableSelector: env => { + const value = env[ENV_MAX_ATTEMPTS] + if (!value) return void 0 + const maxAttempt = parseInt(value) + if (Number.isNaN(maxAttempt)) { + throw new Error( + `Environment variable ${ENV_MAX_ATTEMPTS} mast be a number, got "${value}"` + ) + } + return maxAttempt + }, + configFileSelector: profile => { + const value = profile[CONFIG_MAX_ATTEMPTS] + if (!value) return void 0 + const maxAttempt = parseInt(value) + if (Number.isNaN(maxAttempt)) { + throw new Error( + `Shared config file entry ${CONFIG_MAX_ATTEMPTS} mast be a number, got "${value}"` + ) + } + return maxAttempt + }, + default: import_util_retry.DEFAULT_MAX_ATTEMPTS + } + var resolveRetryConfig = /* @__PURE__ */ __name(input => { + const { + retryStrategy, + retryMode: _retryMode, + maxAttempts: _maxAttempts + } = input + const maxAttempts = (0, import_util_middleware.normalizeProvider)( + _maxAttempts ?? import_util_retry.DEFAULT_MAX_ATTEMPTS + ) + return Object.assign(input, { + maxAttempts, + retryStrategy: async () => { + if (retryStrategy) { + return retryStrategy + } + const retryMode = await (0, + import_util_middleware.normalizeProvider)(_retryMode)() + if (retryMode === import_util_retry.RETRY_MODES.ADAPTIVE) { + return new import_util_retry.AdaptiveRetryStrategy(maxAttempts) + } + return new import_util_retry.StandardRetryStrategy(maxAttempts) + } + }) + }, 'resolveRetryConfig') + var ENV_RETRY_MODE = 'AWS_RETRY_MODE' + var CONFIG_RETRY_MODE = 'retry_mode' + var NODE_RETRY_MODE_CONFIG_OPTIONS = { + environmentVariableSelector: env => env[ENV_RETRY_MODE], + configFileSelector: profile => profile[CONFIG_RETRY_MODE], + default: import_util_retry.DEFAULT_RETRY_MODE + } + + // src/omitRetryHeadersMiddleware.ts + + var omitRetryHeadersMiddleware = /* @__PURE__ */ __name( + () => next => async args => { + const { request } = args + if (import_protocol_http.HttpRequest.isInstance(request)) { + delete request.headers[import_util_retry.INVOCATION_ID_HEADER] + delete request.headers[import_util_retry.REQUEST_HEADER] + } + return next(args) + }, + 'omitRetryHeadersMiddleware' + ) + var omitRetryHeadersMiddlewareOptions = { + name: 'omitRetryHeadersMiddleware', + tags: ['RETRY', 'HEADERS', 'OMIT_RETRY_HEADERS'], + relation: 'before', + toMiddleware: 'awsAuthMiddleware', + override: true + } + var getOmitRetryHeadersPlugin = /* @__PURE__ */ __name( + options => ({ + applyToStack: clientStack => { + clientStack.addRelativeTo( + omitRetryHeadersMiddleware(), + omitRetryHeadersMiddlewareOptions + ) + } + }), + 'getOmitRetryHeadersPlugin' + ) -var _DescribeResourceScanCommand = class _DescribeResourceScanCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "DescribeResourceScan", {}).n("CloudFormationClient", "DescribeResourceScanCommand").f(void 0, void 0).ser(se_DescribeResourceScanCommand).de(de_DescribeResourceScanCommand).build() { -}; -__name(_DescribeResourceScanCommand, "DescribeResourceScanCommand"); -var DescribeResourceScanCommand = _DescribeResourceScanCommand; + // src/retryMiddleware.ts -// src/commands/DescribeStackDriftDetectionStatusCommand.ts + var import_smithy_client = __nccwpck_require__(76583) + var import_isStreamingPayload = __nccwpck_require__(91981) + var retryMiddleware = /* @__PURE__ */ __name( + options => (next, context) => async args => { + let retryStrategy = await options.retryStrategy() + const maxAttempts = await options.maxAttempts() + if (isRetryStrategyV2(retryStrategy)) { + retryStrategy = retryStrategy + let retryToken = await retryStrategy.acquireInitialRetryToken( + context['partition_id'] + ) + let lastError = new Error() + let attempts = 0 + let totalRetryDelay = 0 + const { request } = args + const isRequest = + import_protocol_http.HttpRequest.isInstance(request) + if (isRequest) { + request.headers[import_util_retry.INVOCATION_ID_HEADER] = (0, + import_uuid.v4)() + } + while (true) { + try { + if (isRequest) { + request.headers[import_util_retry.REQUEST_HEADER] = + `attempt=${attempts + 1}; max=${maxAttempts}` + } + const { response, output } = await next(args) + retryStrategy.recordSuccess(retryToken) + output.$metadata.attempts = attempts + 1 + output.$metadata.totalRetryDelay = totalRetryDelay + return { response, output } + } catch (e) { + const retryErrorInfo = getRetryErrorInfo(e) + lastError = asSdkError(e) + if ( + isRequest && + (0, import_isStreamingPayload.isStreamingPayload)(request) + ) { + ;(context.logger instanceof import_smithy_client.NoOpLogger + ? console + : context.logger + )?.warn( + 'An error was encountered in a non-retryable streaming request.' + ) + throw lastError + } + try { + retryToken = await retryStrategy.refreshRetryTokenForRetry( + retryToken, + retryErrorInfo + ) + } catch (refreshError) { + if (!lastError.$metadata) { + lastError.$metadata = {} + } + lastError.$metadata.attempts = attempts + 1 + lastError.$metadata.totalRetryDelay = totalRetryDelay + throw lastError + } + attempts = retryToken.getRetryCount() + const delay = retryToken.getRetryDelay() + totalRetryDelay += delay + await new Promise(resolve => setTimeout(resolve, delay)) + } + } + } else { + retryStrategy = retryStrategy + if (retryStrategy?.mode) + context.userAgent = [ + ...(context.userAgent || []), + ['cfg/retry-mode', retryStrategy.mode] + ] + return retryStrategy.retry(next, args) + } + }, + 'retryMiddleware' + ) + var isRetryStrategyV2 = /* @__PURE__ */ __name( + retryStrategy => + typeof retryStrategy.acquireInitialRetryToken !== 'undefined' && + typeof retryStrategy.refreshRetryTokenForRetry !== 'undefined' && + typeof retryStrategy.recordSuccess !== 'undefined', + 'isRetryStrategyV2' + ) + var getRetryErrorInfo = /* @__PURE__ */ __name(error => { + const errorInfo = { + error, + errorType: getRetryErrorType(error) + } + const retryAfterHint = getRetryAfterHint(error.$response) + if (retryAfterHint) { + errorInfo.retryAfterHint = retryAfterHint + } + return errorInfo + }, 'getRetryErrorInfo') + var getRetryErrorType = /* @__PURE__ */ __name(error => { + if ((0, import_service_error_classification.isThrottlingError)(error)) + return 'THROTTLING' + if ((0, import_service_error_classification.isTransientError)(error)) + return 'TRANSIENT' + if ((0, import_service_error_classification.isServerError)(error)) + return 'SERVER_ERROR' + return 'CLIENT_ERROR' + }, 'getRetryErrorType') + var retryMiddlewareOptions = { + name: 'retryMiddleware', + tags: ['RETRY'], + step: 'finalizeRequest', + priority: 'high', + override: true + } + var getRetryPlugin = /* @__PURE__ */ __name( + options => ({ + applyToStack: clientStack => { + clientStack.add(retryMiddleware(options), retryMiddlewareOptions) + } + }), + 'getRetryPlugin' + ) + var getRetryAfterHint = /* @__PURE__ */ __name(response => { + if (!import_protocol_http.HttpResponse.isInstance(response)) return + const retryAfterHeaderName = Object.keys(response.headers).find( + key => key.toLowerCase() === 'retry-after' + ) + if (!retryAfterHeaderName) return + const retryAfter = response.headers[retryAfterHeaderName] + const retryAfterSeconds = Number(retryAfter) + if (!Number.isNaN(retryAfterSeconds)) + return new Date(retryAfterSeconds * 1e3) + const retryAfterDate = new Date(retryAfter) + return retryAfterDate + }, 'getRetryAfterHint') + // Annotate the CommonJS export names for ESM import in node: + + 0 && 0 + + /***/ + }, + /***/ 91981: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.isStreamingPayload = void 0 + const stream_1 = __nccwpck_require__(12781) + const isStreamingPayload = request => + (request === null || request === void 0 + ? void 0 + : request.body) instanceof stream_1.Readable || + (typeof ReadableStream !== 'undefined' && + (request === null || request === void 0 + ? void 0 + : request.body) instanceof ReadableStream) + exports.isStreamingPayload = isStreamingPayload + + /***/ + }, -var _DescribeStackDriftDetectionStatusCommand = class _DescribeStackDriftDetectionStatusCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "DescribeStackDriftDetectionStatus", {}).n("CloudFormationClient", "DescribeStackDriftDetectionStatusCommand").f(void 0, void 0).ser(se_DescribeStackDriftDetectionStatusCommand).de(de_DescribeStackDriftDetectionStatusCommand).build() { -}; -__name(_DescribeStackDriftDetectionStatusCommand, "DescribeStackDriftDetectionStatusCommand"); -var DescribeStackDriftDetectionStatusCommand = _DescribeStackDriftDetectionStatusCommand; + /***/ 88037: /***/ module => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -// src/commands/DescribeStackEventsCommand.ts + // src/index.ts + var src_exports = {} + __export(src_exports, { + deserializerMiddleware: () => deserializerMiddleware, + deserializerMiddlewareOption: () => deserializerMiddlewareOption, + getSerdePlugin: () => getSerdePlugin, + serializerMiddleware: () => serializerMiddleware, + serializerMiddlewareOption: () => serializerMiddlewareOption + }) + module.exports = __toCommonJS(src_exports) + + // src/deserializerMiddleware.ts + var deserializerMiddleware = /* @__PURE__ */ __name( + (options, deserializer) => (next, context) => async args => { + const { response } = await next(args) + try { + const parsed = await deserializer(response, options) + return { + response, + output: parsed + } + } catch (error) { + Object.defineProperty(error, '$response', { + value: response + }) + if (!('$metadata' in error)) { + const hint = `Deserialization error: to see the raw response, inspect the hidden field {error}.$response on this object.` + try { + error.message += '\n ' + hint + } catch (e) { + if ( + !context.logger || + context.logger?.constructor?.name === 'NoOpLogger' + ) { + console.warn(hint) + } else { + context.logger?.warn?.(hint) + } + } + if (typeof error.$responseBodyText !== 'undefined') { + if (error.$response) { + error.$response.body = error.$responseBodyText + } + } + } + throw error + } + }, + 'deserializerMiddleware' + ) + // src/serializerMiddleware.ts + var serializerMiddleware = /* @__PURE__ */ __name( + (options, serializer) => (next, context) => async args => { + const endpoint = + context.endpointV2?.url && options.urlParser + ? async () => options.urlParser(context.endpointV2.url) + : options.endpoint + if (!endpoint) { + throw new Error('No valid endpoint provider available.') + } + const request = await serializer(args.input, { ...options, endpoint }) + return next({ + ...args, + request + }) + }, + 'serializerMiddleware' + ) + // src/serdePlugin.ts + var deserializerMiddlewareOption = { + name: 'deserializerMiddleware', + step: 'deserialize', + tags: ['DESERIALIZER'], + override: true + } + var serializerMiddlewareOption = { + name: 'serializerMiddleware', + step: 'serialize', + tags: ['SERIALIZER'], + override: true + } + function getSerdePlugin(config, serializer, deserializer) { + return { + applyToStack: commandStack => { + commandStack.add( + deserializerMiddleware(config, deserializer), + deserializerMiddlewareOption + ) + commandStack.add( + serializerMiddleware(config, serializer), + serializerMiddlewareOption + ) + } + } + } + __name(getSerdePlugin, 'getSerdePlugin') + // Annotate the CommonJS export names for ESM import in node: -var _DescribeStackEventsCommand = class _DescribeStackEventsCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "DescribeStackEvents", {}).n("CloudFormationClient", "DescribeStackEventsCommand").f(void 0, void 0).ser(se_DescribeStackEventsCommand).de(de_DescribeStackEventsCommand).build() { -}; -__name(_DescribeStackEventsCommand, "DescribeStackEventsCommand"); -var DescribeStackEventsCommand = _DescribeStackEventsCommand; + 0 && 0 -// src/commands/DescribeStackInstanceCommand.ts + /***/ + }, + /***/ 22513: /***/ module => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + // src/index.ts + var src_exports = {} + __export(src_exports, { + constructStack: () => constructStack + }) + module.exports = __toCommonJS(src_exports) -var _DescribeStackInstanceCommand = class _DescribeStackInstanceCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "DescribeStackInstance", {}).n("CloudFormationClient", "DescribeStackInstanceCommand").f(void 0, void 0).ser(se_DescribeStackInstanceCommand).de(de_DescribeStackInstanceCommand).build() { -}; -__name(_DescribeStackInstanceCommand, "DescribeStackInstanceCommand"); -var DescribeStackInstanceCommand = _DescribeStackInstanceCommand; + // src/MiddlewareStack.ts + var getAllAliases = /* @__PURE__ */ __name((name, aliases) => { + const _aliases = [] + if (name) { + _aliases.push(name) + } + if (aliases) { + for (const alias of aliases) { + _aliases.push(alias) + } + } + return _aliases + }, 'getAllAliases') + var getMiddlewareNameWithAliases = /* @__PURE__ */ __name( + (name, aliases) => { + return `${name || 'anonymous'}${aliases && aliases.length > 0 ? ` (a.k.a. ${aliases.join(',')})` : ''}` + }, + 'getMiddlewareNameWithAliases' + ) + var constructStack = /* @__PURE__ */ __name(() => { + let absoluteEntries = [] + let relativeEntries = [] + let identifyOnResolve = false + const entriesNameSet = /* @__PURE__ */ new Set() + const sort = /* @__PURE__ */ __name( + entries => + entries.sort( + (a, b) => + stepWeights[b.step] - stepWeights[a.step] || + priorityWeights[b.priority || 'normal'] - + priorityWeights[a.priority || 'normal'] + ), + 'sort' + ) + const removeByName = /* @__PURE__ */ __name(toRemove => { + let isRemoved = false + const filterCb = /* @__PURE__ */ __name(entry => { + const aliases = getAllAliases(entry.name, entry.aliases) + if (aliases.includes(toRemove)) { + isRemoved = true + for (const alias of aliases) { + entriesNameSet.delete(alias) + } + return false + } + return true + }, 'filterCb') + absoluteEntries = absoluteEntries.filter(filterCb) + relativeEntries = relativeEntries.filter(filterCb) + return isRemoved + }, 'removeByName') + const removeByReference = /* @__PURE__ */ __name(toRemove => { + let isRemoved = false + const filterCb = /* @__PURE__ */ __name(entry => { + if (entry.middleware === toRemove) { + isRemoved = true + for (const alias of getAllAliases(entry.name, entry.aliases)) { + entriesNameSet.delete(alias) + } + return false + } + return true + }, 'filterCb') + absoluteEntries = absoluteEntries.filter(filterCb) + relativeEntries = relativeEntries.filter(filterCb) + return isRemoved + }, 'removeByReference') + const cloneTo = /* @__PURE__ */ __name(toStack => { + absoluteEntries.forEach(entry => { + toStack.add(entry.middleware, { ...entry }) + }) + relativeEntries.forEach(entry => { + toStack.addRelativeTo(entry.middleware, { ...entry }) + }) + toStack.identifyOnResolve?.(stack.identifyOnResolve()) + return toStack + }, 'cloneTo') + const expandRelativeMiddlewareList = /* @__PURE__ */ __name(from => { + const expandedMiddlewareList = [] + from.before.forEach(entry => { + if (entry.before.length === 0 && entry.after.length === 0) { + expandedMiddlewareList.push(entry) + } else { + expandedMiddlewareList.push( + ...expandRelativeMiddlewareList(entry) + ) + } + }) + expandedMiddlewareList.push(from) + from.after.reverse().forEach(entry => { + if (entry.before.length === 0 && entry.after.length === 0) { + expandedMiddlewareList.push(entry) + } else { + expandedMiddlewareList.push( + ...expandRelativeMiddlewareList(entry) + ) + } + }) + return expandedMiddlewareList + }, 'expandRelativeMiddlewareList') + const getMiddlewareList = /* @__PURE__ */ __name((debug = false) => { + const normalizedAbsoluteEntries = [] + const normalizedRelativeEntries = [] + const normalizedEntriesNameMap = {} + absoluteEntries.forEach(entry => { + const normalizedEntry = { + ...entry, + before: [], + after: [] + } + for (const alias of getAllAliases( + normalizedEntry.name, + normalizedEntry.aliases + )) { + normalizedEntriesNameMap[alias] = normalizedEntry + } + normalizedAbsoluteEntries.push(normalizedEntry) + }) + relativeEntries.forEach(entry => { + const normalizedEntry = { + ...entry, + before: [], + after: [] + } + for (const alias of getAllAliases( + normalizedEntry.name, + normalizedEntry.aliases + )) { + normalizedEntriesNameMap[alias] = normalizedEntry + } + normalizedRelativeEntries.push(normalizedEntry) + }) + normalizedRelativeEntries.forEach(entry => { + if (entry.toMiddleware) { + const toMiddleware = normalizedEntriesNameMap[entry.toMiddleware] + if (toMiddleware === void 0) { + if (debug) { + return + } + throw new Error( + `${entry.toMiddleware} is not found when adding ${getMiddlewareNameWithAliases(entry.name, entry.aliases)} middleware ${entry.relation} ${entry.toMiddleware}` + ) + } + if (entry.relation === 'after') { + toMiddleware.after.push(entry) + } + if (entry.relation === 'before') { + toMiddleware.before.push(entry) + } + } + }) + const mainChain = sort(normalizedAbsoluteEntries) + .map(expandRelativeMiddlewareList) + .reduce((wholeList, expandedMiddlewareList) => { + wholeList.push(...expandedMiddlewareList) + return wholeList + }, []) + return mainChain + }, 'getMiddlewareList') + const stack = { + add: (middleware, options = {}) => { + const { name, override, aliases: _aliases } = options + const entry = { + step: 'initialize', + priority: 'normal', + middleware, + ...options + } + const aliases = getAllAliases(name, _aliases) + if (aliases.length > 0) { + if (aliases.some(alias => entriesNameSet.has(alias))) { + if (!override) + throw new Error( + `Duplicate middleware name '${getMiddlewareNameWithAliases(name, _aliases)}'` + ) + for (const alias of aliases) { + const toOverrideIndex = absoluteEntries.findIndex( + entry2 => + entry2.name === alias || + entry2.aliases?.some(a => a === alias) + ) + if (toOverrideIndex === -1) { + continue + } + const toOverride = absoluteEntries[toOverrideIndex] + if ( + toOverride.step !== entry.step || + entry.priority !== toOverride.priority + ) { + throw new Error( + `"${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.` + ) + } + absoluteEntries.splice(toOverrideIndex, 1) + } + } + for (const alias of aliases) { + entriesNameSet.add(alias) + } + } + absoluteEntries.push(entry) + }, + addRelativeTo: (middleware, options) => { + const { name, override, aliases: _aliases } = options + const entry = { + middleware, + ...options + } + const aliases = getAllAliases(name, _aliases) + if (aliases.length > 0) { + if (aliases.some(alias => entriesNameSet.has(alias))) { + if (!override) + throw new Error( + `Duplicate middleware name '${getMiddlewareNameWithAliases(name, _aliases)}'` + ) + for (const alias of aliases) { + const toOverrideIndex = relativeEntries.findIndex( + entry2 => + entry2.name === alias || + entry2.aliases?.some(a => a === alias) + ) + if (toOverrideIndex === -1) { + continue + } + const toOverride = relativeEntries[toOverrideIndex] + if ( + toOverride.toMiddleware !== entry.toMiddleware || + toOverride.relation !== entry.relation + ) { + throw new Error( + `"${getMiddlewareNameWithAliases(toOverride.name, toOverride.aliases)}" middleware ${toOverride.relation} "${toOverride.toMiddleware}" middleware cannot be overridden by "${getMiddlewareNameWithAliases(name, _aliases)}" middleware ${entry.relation} "${entry.toMiddleware}" middleware.` + ) + } + relativeEntries.splice(toOverrideIndex, 1) + } + } + for (const alias of aliases) { + entriesNameSet.add(alias) + } + } + relativeEntries.push(entry) + }, + clone: () => cloneTo(constructStack()), + use: plugin => { + plugin.applyToStack(stack) + }, + remove: toRemove => { + if (typeof toRemove === 'string') return removeByName(toRemove) + else return removeByReference(toRemove) + }, + removeByTag: toRemove => { + let isRemoved = false + const filterCb = /* @__PURE__ */ __name(entry => { + const { tags, name, aliases: _aliases } = entry + if (tags && tags.includes(toRemove)) { + const aliases = getAllAliases(name, _aliases) + for (const alias of aliases) { + entriesNameSet.delete(alias) + } + isRemoved = true + return false + } + return true + }, 'filterCb') + absoluteEntries = absoluteEntries.filter(filterCb) + relativeEntries = relativeEntries.filter(filterCb) + return isRemoved + }, + concat: from => { + const cloned = cloneTo(constructStack()) + cloned.use(from) + cloned.identifyOnResolve( + identifyOnResolve || + cloned.identifyOnResolve() || + (from.identifyOnResolve?.() ?? false) + ) + return cloned + }, + applyToStack: cloneTo, + identify: () => { + return getMiddlewareList(true).map(mw => { + const step = mw.step ?? mw.relation + ' ' + mw.toMiddleware + return ( + getMiddlewareNameWithAliases(mw.name, mw.aliases) + ' - ' + step + ) + }) + }, + identifyOnResolve(toggle) { + if (typeof toggle === 'boolean') identifyOnResolve = toggle + return identifyOnResolve + }, + resolve: (handler, context) => { + for (const middleware of getMiddlewareList() + .map(entry => entry.middleware) + .reverse()) { + handler = middleware(handler, context) + } + if (identifyOnResolve) { + console.log(stack.identify()) + } + return handler + } + } + return stack + }, 'constructStack') + var stepWeights = { + initialize: 5, + serialize: 4, + build: 3, + finalizeRequest: 2, + deserialize: 1 + } + var priorityWeights = { + high: 3, + normal: 2, + low: 1 + } + // Annotate the CommonJS export names for ESM import in node: -// src/commands/DescribeStackResourceCommand.ts + 0 && 0 + /***/ + }, + /***/ 6706: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -var _DescribeStackResourceCommand = class _DescribeStackResourceCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "DescribeStackResource", {}).n("CloudFormationClient", "DescribeStackResourceCommand").f(void 0, void 0).ser(se_DescribeStackResourceCommand).de(de_DescribeStackResourceCommand).build() { -}; -__name(_DescribeStackResourceCommand, "DescribeStackResourceCommand"); -var DescribeStackResourceCommand = _DescribeStackResourceCommand; + // src/index.ts + var src_exports = {} + __export(src_exports, { + loadConfig: () => loadConfig + }) + module.exports = __toCommonJS(src_exports) -// src/commands/DescribeStackResourceDriftsCommand.ts + // src/configLoader.ts + // src/fromEnv.ts + var import_property_provider = __nccwpck_require__(19248) + // src/getSelectorName.ts + function getSelectorName(functionString) { + try { + const constants = new Set( + Array.from(functionString.match(/([A-Z_]){3,}/g) ?? []) + ) + constants.delete('CONFIG') + constants.delete('CONFIG_PREFIX_SEPARATOR') + constants.delete('ENV') + return [...constants].join(', ') + } catch (e) { + return functionString + } + } + __name(getSelectorName, 'getSelectorName') + + // src/fromEnv.ts + var fromEnv = /* @__PURE__ */ __name( + (envVarSelector, logger) => async () => { + try { + const config = envVarSelector(process.env) + if (config === void 0) { + throw new Error() + } + return config + } catch (e) { + throw new import_property_provider.CredentialsProviderError( + e.message || + `Not found in ENV: ${getSelectorName(envVarSelector.toString())}`, + { logger } + ) + } + }, + 'fromEnv' + ) -var _DescribeStackResourceDriftsCommand = class _DescribeStackResourceDriftsCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "DescribeStackResourceDrifts", {}).n("CloudFormationClient", "DescribeStackResourceDriftsCommand").f(void 0, void 0).ser(se_DescribeStackResourceDriftsCommand).de(de_DescribeStackResourceDriftsCommand).build() { -}; -__name(_DescribeStackResourceDriftsCommand, "DescribeStackResourceDriftsCommand"); -var DescribeStackResourceDriftsCommand = _DescribeStackResourceDriftsCommand; + // src/fromSharedConfigFiles.ts -// src/commands/DescribeStackResourcesCommand.ts + var import_shared_ini_file_loader = __nccwpck_require__(69001) + var fromSharedConfigFiles = /* @__PURE__ */ __name( + (configSelector, { preferredFile = 'config', ...init } = {}) => + async () => { + const profile = (0, import_shared_ini_file_loader.getProfileName)( + init + ) + const { configFile, credentialsFile } = await (0, + import_shared_ini_file_loader.loadSharedConfigFiles)(init) + const profileFromCredentials = credentialsFile[profile] || {} + const profileFromConfig = configFile[profile] || {} + const mergedProfile = + preferredFile === 'config' + ? { ...profileFromCredentials, ...profileFromConfig } + : { ...profileFromConfig, ...profileFromCredentials } + try { + const cfgFile = + preferredFile === 'config' ? configFile : credentialsFile + const configValue = configSelector(mergedProfile, cfgFile) + if (configValue === void 0) { + throw new Error() + } + return configValue + } catch (e) { + throw new import_property_provider.CredentialsProviderError( + e.message || + `Not found in config files w/ profile [${profile}]: ${getSelectorName(configSelector.toString())}`, + { logger: init.logger } + ) + } + }, + 'fromSharedConfigFiles' + ) + // src/fromStatic.ts + var isFunction = /* @__PURE__ */ __name( + func => typeof func === 'function', + 'isFunction' + ) + var fromStatic = /* @__PURE__ */ __name( + defaultValue => + isFunction(defaultValue) + ? async () => await defaultValue() + : (0, import_property_provider.fromStatic)(defaultValue), + 'fromStatic' + ) -var _DescribeStackResourcesCommand = class _DescribeStackResourcesCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "DescribeStackResources", {}).n("CloudFormationClient", "DescribeStackResourcesCommand").f(void 0, void 0).ser(se_DescribeStackResourcesCommand).de(de_DescribeStackResourcesCommand).build() { -}; -__name(_DescribeStackResourcesCommand, "DescribeStackResourcesCommand"); -var DescribeStackResourcesCommand = _DescribeStackResourcesCommand; + // src/configLoader.ts + var loadConfig = /* @__PURE__ */ __name( + ( + { + environmentVariableSelector, + configFileSelector, + default: defaultValue + }, + configuration = {} + ) => + (0, import_property_provider.memoize)( + (0, import_property_provider.chain)( + fromEnv(environmentVariableSelector), + fromSharedConfigFiles(configFileSelector, configuration), + fromStatic(defaultValue) + ) + ), + 'loadConfig' + ) + // Annotate the CommonJS export names for ESM import in node: -// src/commands/DescribeStacksCommand.ts + 0 && 0 + /***/ + }, + /***/ 55239: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __create = Object.create + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __getProtoOf = Object.getPrototypeOf + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toESM = (mod, isNodeMode, target) => ( + (target = mod != null ? __create(__getProtoOf(mod)) : {}), + __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule + ? __defProp(target, 'default', { value: mod, enumerable: true }) + : target, + mod + ) + ) + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + DEFAULT_REQUEST_TIMEOUT: () => DEFAULT_REQUEST_TIMEOUT, + NodeHttp2Handler: () => NodeHttp2Handler, + NodeHttpHandler: () => NodeHttpHandler, + streamCollector: () => streamCollector + }) + module.exports = __toCommonJS(src_exports) + + // src/node-http-handler.ts + var import_protocol_http = __nccwpck_require__(31788) + var import_querystring_builder = __nccwpck_require__(87169) + var import_http = __nccwpck_require__(13685) + var import_https = __nccwpck_require__(95687) + + // src/constants.ts + var NODEJS_TIMEOUT_ERROR_CODES = ['ECONNRESET', 'EPIPE', 'ETIMEDOUT'] + + // src/get-transformed-headers.ts + var getTransformedHeaders = /* @__PURE__ */ __name(headers => { + const transformedHeaders = {} + for (const name of Object.keys(headers)) { + const headerValues = headers[name] + transformedHeaders[name] = Array.isArray(headerValues) + ? headerValues.join(',') + : headerValues + } + return transformedHeaders + }, 'getTransformedHeaders') + + // src/timing.ts + var timing = { + setTimeout: (cb, ms) => setTimeout(cb, ms), + clearTimeout: timeoutId => clearTimeout(timeoutId) + } + + // src/set-connection-timeout.ts + var DEFER_EVENT_LISTENER_TIME = 1e3 + var setConnectionTimeout = /* @__PURE__ */ __name( + (request, reject, timeoutInMs = 0) => { + if (!timeoutInMs) { + return -1 + } + const registerTimeout = /* @__PURE__ */ __name(offset => { + const timeoutId = timing.setTimeout(() => { + request.destroy() + reject( + Object.assign( + new Error( + `Socket timed out without establishing a connection within ${timeoutInMs} ms` + ), + { + name: 'TimeoutError' + } + ) + ) + }, timeoutInMs - offset) + const doWithSocket = /* @__PURE__ */ __name(socket => { + if (socket?.connecting) { + socket.on('connect', () => { + timing.clearTimeout(timeoutId) + }) + } else { + timing.clearTimeout(timeoutId) + } + }, 'doWithSocket') + if (request.socket) { + doWithSocket(request.socket) + } else { + request.on('socket', doWithSocket) + } + }, 'registerTimeout') + if (timeoutInMs < 2e3) { + registerTimeout(0) + return 0 + } + return timing.setTimeout( + registerTimeout.bind(null, DEFER_EVENT_LISTENER_TIME), + DEFER_EVENT_LISTENER_TIME + ) + }, + 'setConnectionTimeout' + ) -var _DescribeStacksCommand = class _DescribeStacksCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "DescribeStacks", {}).n("CloudFormationClient", "DescribeStacksCommand").f(void 0, void 0).ser(se_DescribeStacksCommand).de(de_DescribeStacksCommand).build() { -}; -__name(_DescribeStacksCommand, "DescribeStacksCommand"); -var DescribeStacksCommand = _DescribeStacksCommand; + // src/set-socket-keep-alive.ts + var DEFER_EVENT_LISTENER_TIME2 = 3e3 + var setSocketKeepAlive = /* @__PURE__ */ __name( + ( + request, + { keepAlive, keepAliveMsecs }, + deferTimeMs = DEFER_EVENT_LISTENER_TIME2 + ) => { + if (keepAlive !== true) { + return -1 + } + const registerListener = /* @__PURE__ */ __name(() => { + if (request.socket) { + request.socket.setKeepAlive(keepAlive, keepAliveMsecs || 0) + } else { + request.on('socket', socket => { + socket.setKeepAlive(keepAlive, keepAliveMsecs || 0) + }) + } + }, 'registerListener') + if (deferTimeMs === 0) { + registerListener() + return 0 + } + return timing.setTimeout(registerListener, deferTimeMs) + }, + 'setSocketKeepAlive' + ) -// src/commands/DescribeStackSetCommand.ts + // src/set-socket-timeout.ts + var DEFER_EVENT_LISTENER_TIME3 = 3e3 + var setSocketTimeout = /* @__PURE__ */ __name( + (request, reject, timeoutInMs = DEFAULT_REQUEST_TIMEOUT) => { + const registerTimeout = /* @__PURE__ */ __name(offset => { + const timeout = timeoutInMs - offset + const onTimeout = /* @__PURE__ */ __name(() => { + request.destroy() + reject( + Object.assign( + new Error(`Connection timed out after ${timeoutInMs} ms`), + { name: 'TimeoutError' } + ) + ) + }, 'onTimeout') + if (request.socket) { + request.socket.setTimeout(timeout, onTimeout) + request.on('close', () => + request.socket?.removeListener('timeout', onTimeout) + ) + } else { + request.setTimeout(timeout, onTimeout) + } + }, 'registerTimeout') + if (0 < timeoutInMs && timeoutInMs < 6e3) { + registerTimeout(0) + return 0 + } + return timing.setTimeout( + registerTimeout.bind( + null, + timeoutInMs === 0 ? 0 : DEFER_EVENT_LISTENER_TIME3 + ), + DEFER_EVENT_LISTENER_TIME3 + ) + }, + 'setSocketTimeout' + ) + // src/write-request-body.ts + var import_stream = __nccwpck_require__(12781) + var MIN_WAIT_TIME = 6e3 + async function writeRequestBody( + httpRequest, + request, + maxContinueTimeoutMs = MIN_WAIT_TIME + ) { + const headers = request.headers ?? {} + const expect = headers['Expect'] || headers['expect'] + let timeoutId = -1 + let sendBody = true + if (expect === '100-continue') { + sendBody = await Promise.race([ + new Promise(resolve => { + timeoutId = Number( + timing.setTimeout( + () => resolve(true), + Math.max(MIN_WAIT_TIME, maxContinueTimeoutMs) + ) + ) + }), + new Promise(resolve => { + httpRequest.on('continue', () => { + timing.clearTimeout(timeoutId) + resolve(true) + }) + httpRequest.on('response', () => { + timing.clearTimeout(timeoutId) + resolve(false) + }) + httpRequest.on('error', () => { + timing.clearTimeout(timeoutId) + resolve(false) + }) + }) + ]) + } + if (sendBody) { + writeBody(httpRequest, request.body) + } + } + __name(writeRequestBody, 'writeRequestBody') + function writeBody(httpRequest, body) { + if (body instanceof import_stream.Readable) { + body.pipe(httpRequest) + return + } + if (body) { + if (Buffer.isBuffer(body) || typeof body === 'string') { + httpRequest.end(body) + return + } + const uint8 = body + if ( + typeof uint8 === 'object' && + uint8.buffer && + typeof uint8.byteOffset === 'number' && + typeof uint8.byteLength === 'number' + ) { + httpRequest.end( + Buffer.from(uint8.buffer, uint8.byteOffset, uint8.byteLength) + ) + return + } + httpRequest.end(Buffer.from(body)) + return + } + httpRequest.end() + } + __name(writeBody, 'writeBody') + + // src/node-http-handler.ts + var DEFAULT_REQUEST_TIMEOUT = 0 + var NodeHttpHandler = class _NodeHttpHandler { + constructor(options) { + this.socketWarningTimestamp = 0 + // Node http handler is hard-coded to http/1.1: https://github.com/nodejs/node/blob/ff5664b83b89c55e4ab5d5f60068fb457f1f5872/lib/_http_server.js#L286 + this.metadata = { handlerProtocol: 'http/1.1' } + this.configProvider = new Promise((resolve, reject) => { + if (typeof options === 'function') { + options() + .then(_options => { + resolve(this.resolveDefaultConfig(_options)) + }) + .catch(reject) + } else { + resolve(this.resolveDefaultConfig(options)) + } + }) + } + static { + __name(this, 'NodeHttpHandler') + } + /** + * @returns the input if it is an HttpHandler of any class, + * or instantiates a new instance of this handler. + */ + static create(instanceOrOptions) { + if (typeof instanceOrOptions?.handle === 'function') { + return instanceOrOptions + } + return new _NodeHttpHandler(instanceOrOptions) + } + /** + * @internal + * + * @param agent - http(s) agent in use by the NodeHttpHandler instance. + * @param socketWarningTimestamp - last socket usage check timestamp. + * @param logger - channel for the warning. + * @returns timestamp of last emitted warning. + */ + static checkSocketUsage( + agent, + socketWarningTimestamp, + logger = console + ) { + const { sockets, requests, maxSockets } = agent + if (typeof maxSockets !== 'number' || maxSockets === Infinity) { + return socketWarningTimestamp + } + const interval = 15e3 + if (Date.now() - interval < socketWarningTimestamp) { + return socketWarningTimestamp + } + if (sockets && requests) { + for (const origin in sockets) { + const socketsInUse = sockets[origin]?.length ?? 0 + const requestsEnqueued = requests[origin]?.length ?? 0 + if ( + socketsInUse >= maxSockets && + requestsEnqueued >= 2 * maxSockets + ) { + logger?.warn?.( + `@smithy/node-http-handler:WARN - socket usage at capacity=${socketsInUse} and ${requestsEnqueued} additional requests are enqueued. +See https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html +or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.` + ) + return Date.now() + } + } + } + return socketWarningTimestamp + } + resolveDefaultConfig(options) { + const { + requestTimeout, + connectionTimeout, + socketTimeout, + socketAcquisitionWarningTimeout, + httpAgent, + httpsAgent + } = options || {} + const keepAlive = true + const maxSockets = 50 + return { + connectionTimeout, + requestTimeout: requestTimeout ?? socketTimeout, + socketAcquisitionWarningTimeout, + httpAgent: (() => { + if ( + httpAgent instanceof import_http.Agent || + typeof httpAgent?.destroy === 'function' + ) { + return httpAgent + } + return new import_http.Agent({ + keepAlive, + maxSockets, + ...httpAgent + }) + })(), + httpsAgent: (() => { + if ( + httpsAgent instanceof import_https.Agent || + typeof httpsAgent?.destroy === 'function' + ) { + return httpsAgent + } + return new import_https.Agent({ + keepAlive, + maxSockets, + ...httpsAgent + }) + })(), + logger: console + } + } + destroy() { + this.config?.httpAgent?.destroy() + this.config?.httpsAgent?.destroy() + } + async handle(request, { abortSignal } = {}) { + if (!this.config) { + this.config = await this.configProvider + } + return new Promise((_resolve, _reject) => { + let writeRequestBodyPromise = void 0 + const timeouts = [] + const resolve = /* @__PURE__ */ __name(async arg => { + await writeRequestBodyPromise + timeouts.forEach(timing.clearTimeout) + _resolve(arg) + }, 'resolve') + const reject = /* @__PURE__ */ __name(async arg => { + await writeRequestBodyPromise + timeouts.forEach(timing.clearTimeout) + _reject(arg) + }, 'reject') + if (!this.config) { + throw new Error( + 'Node HTTP request handler config is not resolved' + ) + } + if (abortSignal?.aborted) { + const abortError = new Error('Request aborted') + abortError.name = 'AbortError' + reject(abortError) + return + } + const isSSL = request.protocol === 'https:' + const agent = isSSL ? this.config.httpsAgent : this.config.httpAgent + timeouts.push( + timing.setTimeout( + () => { + this.socketWarningTimestamp = + _NodeHttpHandler.checkSocketUsage( + agent, + this.socketWarningTimestamp, + this.config.logger + ) + }, + this.config.socketAcquisitionWarningTimeout ?? + (this.config.requestTimeout ?? 2e3) + + (this.config.connectionTimeout ?? 1e3) + ) + ) + const queryString = (0, + import_querystring_builder.buildQueryString)(request.query || {}) + let auth = void 0 + if (request.username != null || request.password != null) { + const username = request.username ?? '' + const password = request.password ?? '' + auth = `${username}:${password}` + } + let path = request.path + if (queryString) { + path += `?${queryString}` + } + if (request.fragment) { + path += `#${request.fragment}` + } + let hostname = request.hostname ?? '' + if (hostname[0] === '[' && hostname.endsWith(']')) { + hostname = request.hostname.slice(1, -1) + } else { + hostname = request.hostname + } + const nodeHttpsOptions = { + headers: request.headers, + host: hostname, + method: request.method, + path, + port: request.port, + agent, + auth + } + const requestFunc = isSSL + ? import_https.request + : import_http.request + const req = requestFunc(nodeHttpsOptions, res => { + const httpResponse = new import_protocol_http.HttpResponse({ + statusCode: res.statusCode || -1, + reason: res.statusMessage, + headers: getTransformedHeaders(res.headers), + body: res + }) + resolve({ response: httpResponse }) + }) + req.on('error', err => { + if (NODEJS_TIMEOUT_ERROR_CODES.includes(err.code)) { + reject(Object.assign(err, { name: 'TimeoutError' })) + } else { + reject(err) + } + }) + if (abortSignal) { + const onAbort = /* @__PURE__ */ __name(() => { + req.destroy() + const abortError = new Error('Request aborted') + abortError.name = 'AbortError' + reject(abortError) + }, 'onAbort') + if (typeof abortSignal.addEventListener === 'function') { + const signal = abortSignal + signal.addEventListener('abort', onAbort, { once: true }) + req.once('close', () => + signal.removeEventListener('abort', onAbort) + ) + } else { + abortSignal.onabort = onAbort + } + } + timeouts.push( + setConnectionTimeout(req, reject, this.config.connectionTimeout) + ) + timeouts.push( + setSocketTimeout(req, reject, this.config.requestTimeout) + ) + const httpAgent = nodeHttpsOptions.agent + if (typeof httpAgent === 'object' && 'keepAlive' in httpAgent) { + timeouts.push( + setSocketKeepAlive(req, { + // @ts-expect-error keepAlive is not public on httpAgent. + keepAlive: httpAgent.keepAlive, + // @ts-expect-error keepAliveMsecs is not public on httpAgent. + keepAliveMsecs: httpAgent.keepAliveMsecs + }) + ) + } + writeRequestBodyPromise = writeRequestBody( + req, + request, + this.config.requestTimeout + ).catch(e => { + timeouts.forEach(timing.clearTimeout) + return _reject(e) + }) + }) + } + updateHttpClientConfig(key, value) { + this.config = void 0 + this.configProvider = this.configProvider.then(config => { + return { + ...config, + [key]: value + } + }) + } + httpHandlerConfigs() { + return this.config ?? {} + } + } + // src/node-http2-handler.ts -var _DescribeStackSetCommand = class _DescribeStackSetCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "DescribeStackSet", {}).n("CloudFormationClient", "DescribeStackSetCommand").f(void 0, void 0).ser(se_DescribeStackSetCommand).de(de_DescribeStackSetCommand).build() { -}; -__name(_DescribeStackSetCommand, "DescribeStackSetCommand"); -var DescribeStackSetCommand = _DescribeStackSetCommand; + var import_http22 = __nccwpck_require__(85158) -// src/commands/DescribeStackSetOperationCommand.ts + // src/node-http2-connection-manager.ts + var import_http2 = __toESM(__nccwpck_require__(85158)) + // src/node-http2-connection-pool.ts + var NodeHttp2ConnectionPool = class { + constructor(sessions) { + this.sessions = [] + this.sessions = sessions ?? [] + } + static { + __name(this, 'NodeHttp2ConnectionPool') + } + poll() { + if (this.sessions.length > 0) { + return this.sessions.shift() + } + } + offerLast(session) { + this.sessions.push(session) + } + contains(session) { + return this.sessions.includes(session) + } + remove(session) { + this.sessions = this.sessions.filter(s => s !== session) + } + [Symbol.iterator]() { + return this.sessions[Symbol.iterator]() + } + destroy(connection) { + for (const session of this.sessions) { + if (session === connection) { + if (!session.destroyed) { + session.destroy() + } + } + } + } + } + // src/node-http2-connection-manager.ts + var NodeHttp2ConnectionManager = class { + constructor(config) { + this.sessionCache = /* @__PURE__ */ new Map() + this.config = config + if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) { + throw new RangeError('maxConcurrency must be greater than zero.') + } + } + static { + __name(this, 'NodeHttp2ConnectionManager') + } + lease(requestContext, connectionConfiguration) { + const url = this.getUrlString(requestContext) + const existingPool = this.sessionCache.get(url) + if (existingPool) { + const existingSession = existingPool.poll() + if (existingSession && !this.config.disableConcurrency) { + return existingSession + } + } + const session = import_http2.default.connect(url) + if (this.config.maxConcurrency) { + session.settings( + { maxConcurrentStreams: this.config.maxConcurrency }, + err => { + if (err) { + throw new Error( + 'Fail to set maxConcurrentStreams to ' + + this.config.maxConcurrency + + 'when creating new session for ' + + requestContext.destination.toString() + ) + } + } + ) + } + session.unref() + const destroySessionCb = /* @__PURE__ */ __name(() => { + session.destroy() + this.deleteSession(url, session) + }, 'destroySessionCb') + session.on('goaway', destroySessionCb) + session.on('error', destroySessionCb) + session.on('frameError', destroySessionCb) + session.on('close', () => this.deleteSession(url, session)) + if (connectionConfiguration.requestTimeout) { + session.setTimeout( + connectionConfiguration.requestTimeout, + destroySessionCb + ) + } + const connectionPool = + this.sessionCache.get(url) || new NodeHttp2ConnectionPool() + connectionPool.offerLast(session) + this.sessionCache.set(url, connectionPool) + return session + } + /** + * Delete a session from the connection pool. + * @param authority The authority of the session to delete. + * @param session The session to delete. + */ + deleteSession(authority, session) { + const existingConnectionPool = this.sessionCache.get(authority) + if (!existingConnectionPool) { + return + } + if (!existingConnectionPool.contains(session)) { + return + } + existingConnectionPool.remove(session) + this.sessionCache.set(authority, existingConnectionPool) + } + release(requestContext, session) { + const cacheKey = this.getUrlString(requestContext) + this.sessionCache.get(cacheKey)?.offerLast(session) + } + destroy() { + for (const [key, connectionPool] of this.sessionCache) { + for (const session of connectionPool) { + if (!session.destroyed) { + session.destroy() + } + connectionPool.remove(session) + } + this.sessionCache.delete(key) + } + } + setMaxConcurrentStreams(maxConcurrentStreams) { + if (maxConcurrentStreams && maxConcurrentStreams <= 0) { + throw new RangeError( + 'maxConcurrentStreams must be greater than zero.' + ) + } + this.config.maxConcurrency = maxConcurrentStreams + } + setDisableConcurrentStreams(disableConcurrentStreams) { + this.config.disableConcurrency = disableConcurrentStreams + } + getUrlString(request) { + return request.destination.toString() + } + } -var _DescribeStackSetOperationCommand = class _DescribeStackSetOperationCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "DescribeStackSetOperation", {}).n("CloudFormationClient", "DescribeStackSetOperationCommand").f(void 0, void 0).ser(se_DescribeStackSetOperationCommand).de(de_DescribeStackSetOperationCommand).build() { -}; -__name(_DescribeStackSetOperationCommand, "DescribeStackSetOperationCommand"); -var DescribeStackSetOperationCommand = _DescribeStackSetOperationCommand; + // src/node-http2-handler.ts + var NodeHttp2Handler = class _NodeHttp2Handler { + constructor(options) { + this.metadata = { handlerProtocol: 'h2' } + this.connectionManager = new NodeHttp2ConnectionManager({}) + this.configProvider = new Promise((resolve, reject) => { + if (typeof options === 'function') { + options() + .then(opts => { + resolve(opts || {}) + }) + .catch(reject) + } else { + resolve(options || {}) + } + }) + } + static { + __name(this, 'NodeHttp2Handler') + } + /** + * @returns the input if it is an HttpHandler of any class, + * or instantiates a new instance of this handler. + */ + static create(instanceOrOptions) { + if (typeof instanceOrOptions?.handle === 'function') { + return instanceOrOptions + } + return new _NodeHttp2Handler(instanceOrOptions) + } + destroy() { + this.connectionManager.destroy() + } + async handle(request, { abortSignal } = {}) { + if (!this.config) { + this.config = await this.configProvider + this.connectionManager.setDisableConcurrentStreams( + this.config.disableConcurrentStreams || false + ) + if (this.config.maxConcurrentStreams) { + this.connectionManager.setMaxConcurrentStreams( + this.config.maxConcurrentStreams + ) + } + } + const { requestTimeout, disableConcurrentStreams } = this.config + return new Promise((_resolve, _reject) => { + let fulfilled = false + let writeRequestBodyPromise = void 0 + const resolve = /* @__PURE__ */ __name(async arg => { + await writeRequestBodyPromise + _resolve(arg) + }, 'resolve') + const reject = /* @__PURE__ */ __name(async arg => { + await writeRequestBodyPromise + _reject(arg) + }, 'reject') + if (abortSignal?.aborted) { + fulfilled = true + const abortError = new Error('Request aborted') + abortError.name = 'AbortError' + reject(abortError) + return + } + const { hostname, method, port, protocol, query } = request + let auth = '' + if (request.username != null || request.password != null) { + const username = request.username ?? '' + const password = request.password ?? '' + auth = `${username}:${password}@` + } + const authority = `${protocol}//${auth}${hostname}${port ? `:${port}` : ''}` + const requestContext = { destination: new URL(authority) } + const session = this.connectionManager.lease(requestContext, { + requestTimeout: this.config?.sessionTimeout, + disableConcurrentStreams: disableConcurrentStreams || false + }) + const rejectWithDestroy = /* @__PURE__ */ __name(err => { + if (disableConcurrentStreams) { + this.destroySession(session) + } + fulfilled = true + reject(err) + }, 'rejectWithDestroy') + const queryString = (0, + import_querystring_builder.buildQueryString)(query || {}) + let path = request.path + if (queryString) { + path += `?${queryString}` + } + if (request.fragment) { + path += `#${request.fragment}` + } + const req = session.request({ + ...request.headers, + [import_http22.constants.HTTP2_HEADER_PATH]: path, + [import_http22.constants.HTTP2_HEADER_METHOD]: method + }) + session.ref() + req.on('response', headers => { + const httpResponse = new import_protocol_http.HttpResponse({ + statusCode: headers[':status'] || -1, + headers: getTransformedHeaders(headers), + body: req + }) + fulfilled = true + resolve({ response: httpResponse }) + if (disableConcurrentStreams) { + session.close() + this.connectionManager.deleteSession(authority, session) + } + }) + if (requestTimeout) { + req.setTimeout(requestTimeout, () => { + req.close() + const timeoutError = new Error( + `Stream timed out because of no activity for ${requestTimeout} ms` + ) + timeoutError.name = 'TimeoutError' + rejectWithDestroy(timeoutError) + }) + } + if (abortSignal) { + const onAbort = /* @__PURE__ */ __name(() => { + req.close() + const abortError = new Error('Request aborted') + abortError.name = 'AbortError' + rejectWithDestroy(abortError) + }, 'onAbort') + if (typeof abortSignal.addEventListener === 'function') { + const signal = abortSignal + signal.addEventListener('abort', onAbort, { once: true }) + req.once('close', () => + signal.removeEventListener('abort', onAbort) + ) + } else { + abortSignal.onabort = onAbort + } + } + req.on('frameError', (type, code, id) => { + rejectWithDestroy( + new Error( + `Frame type id ${type} in stream id ${id} has failed with code ${code}.` + ) + ) + }) + req.on('error', rejectWithDestroy) + req.on('aborted', () => { + rejectWithDestroy( + new Error( + `HTTP/2 stream is abnormally aborted in mid-communication with result code ${req.rstCode}.` + ) + ) + }) + req.on('close', () => { + session.unref() + if (disableConcurrentStreams) { + session.destroy() + } + if (!fulfilled) { + rejectWithDestroy( + new Error( + 'Unexpected error: http2 request did not get a response' + ) + ) + } + }) + writeRequestBodyPromise = writeRequestBody( + req, + request, + requestTimeout + ) + }) + } + updateHttpClientConfig(key, value) { + this.config = void 0 + this.configProvider = this.configProvider.then(config => { + return { + ...config, + [key]: value + } + }) + } + httpHandlerConfigs() { + return this.config ?? {} + } + /** + * Destroys a session. + * @param session - the session to destroy. + */ + destroySession(session) { + if (!session.destroyed) { + session.destroy() + } + } + } -// src/commands/DescribeTypeCommand.ts + // src/stream-collector/collector.ts + var Collector = class extends import_stream.Writable { + constructor() { + super(...arguments) + this.bufferedBytes = [] + } + static { + __name(this, 'Collector') + } + _write(chunk, encoding, callback) { + this.bufferedBytes.push(chunk) + callback() + } + } + // src/stream-collector/index.ts + var streamCollector = /* @__PURE__ */ __name(stream => { + if (isReadableStreamInstance(stream)) { + return collectReadableStream(stream) + } + return new Promise((resolve, reject) => { + const collector = new Collector() + stream.pipe(collector) + stream.on('error', err => { + collector.end() + reject(err) + }) + collector.on('error', reject) + collector.on('finish', function () { + const bytes = new Uint8Array(Buffer.concat(this.bufferedBytes)) + resolve(bytes) + }) + }) + }, 'streamCollector') + var isReadableStreamInstance = /* @__PURE__ */ __name( + stream => + typeof ReadableStream === 'function' && + stream instanceof ReadableStream, + 'isReadableStreamInstance' + ) + async function collectReadableStream(stream) { + const chunks = [] + const reader = stream.getReader() + let isDone = false + let length = 0 + while (!isDone) { + const { done, value } = await reader.read() + if (value) { + chunks.push(value) + length += value.length + } + isDone = done + } + const collected = new Uint8Array(length) + let offset = 0 + for (const chunk of chunks) { + collected.set(chunk, offset) + offset += chunk.length + } + return collected + } + __name(collectReadableStream, 'collectReadableStream') + // Annotate the CommonJS export names for ESM import in node: -var _DescribeTypeCommand = class _DescribeTypeCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "DescribeType", {}).n("CloudFormationClient", "DescribeTypeCommand").f(void 0, void 0).ser(se_DescribeTypeCommand).de(de_DescribeTypeCommand).build() { -}; -__name(_DescribeTypeCommand, "DescribeTypeCommand"); -var DescribeTypeCommand = _DescribeTypeCommand; + 0 && 0 -// src/commands/DescribeTypeRegistrationCommand.ts + /***/ + }, + /***/ 19248: /***/ module => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + // src/index.ts + var src_exports = {} + __export(src_exports, { + CredentialsProviderError: () => CredentialsProviderError, + ProviderError: () => ProviderError, + TokenProviderError: () => TokenProviderError, + chain: () => chain, + fromStatic: () => fromStatic, + memoize: () => memoize + }) + module.exports = __toCommonJS(src_exports) + + // src/ProviderError.ts + var ProviderError = class _ProviderError extends Error { + constructor(message, options = true) { + let logger + let tryNextLink = true + if (typeof options === 'boolean') { + logger = void 0 + tryNextLink = options + } else if (options != null && typeof options === 'object') { + logger = options.logger + tryNextLink = options.tryNextLink ?? true + } + super(message) + this.name = 'ProviderError' + this.tryNextLink = tryNextLink + Object.setPrototypeOf(this, _ProviderError.prototype) + logger?.debug?.( + `@smithy/property-provider ${tryNextLink ? '->' : '(!)'} ${message}` + ) + } + static { + __name(this, 'ProviderError') + } + /** + * @deprecated use new operator. + */ + static from(error, options = true) { + return Object.assign(new this(error.message, options), error) + } + } -var _DescribeTypeRegistrationCommand = class _DescribeTypeRegistrationCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "DescribeTypeRegistration", {}).n("CloudFormationClient", "DescribeTypeRegistrationCommand").f(void 0, void 0).ser(se_DescribeTypeRegistrationCommand).de(de_DescribeTypeRegistrationCommand).build() { -}; -__name(_DescribeTypeRegistrationCommand, "DescribeTypeRegistrationCommand"); -var DescribeTypeRegistrationCommand = _DescribeTypeRegistrationCommand; + // src/CredentialsProviderError.ts + var CredentialsProviderError = class _CredentialsProviderError extends ProviderError { + /** + * @override + */ + constructor(message, options = true) { + super(message, options) + this.name = 'CredentialsProviderError' + Object.setPrototypeOf(this, _CredentialsProviderError.prototype) + } + static { + __name(this, 'CredentialsProviderError') + } + } -// src/commands/DetectStackDriftCommand.ts + // src/TokenProviderError.ts + var TokenProviderError = class _TokenProviderError extends ProviderError { + /** + * @override + */ + constructor(message, options = true) { + super(message, options) + this.name = 'TokenProviderError' + Object.setPrototypeOf(this, _TokenProviderError.prototype) + } + static { + __name(this, 'TokenProviderError') + } + } + // src/chain.ts + var chain = /* @__PURE__ */ __name( + (...providers) => + async () => { + if (providers.length === 0) { + throw new ProviderError('No providers in chain') + } + let lastProviderError + for (const provider of providers) { + try { + const credentials = await provider() + return credentials + } catch (err) { + lastProviderError = err + if (err?.tryNextLink) { + continue + } + throw err + } + } + throw lastProviderError + }, + 'chain' + ) + // src/fromStatic.ts + var fromStatic = /* @__PURE__ */ __name( + staticValue => () => Promise.resolve(staticValue), + 'fromStatic' + ) -var _DetectStackDriftCommand = class _DetectStackDriftCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "DetectStackDrift", {}).n("CloudFormationClient", "DetectStackDriftCommand").f(void 0, void 0).ser(se_DetectStackDriftCommand).de(de_DetectStackDriftCommand).build() { -}; -__name(_DetectStackDriftCommand, "DetectStackDriftCommand"); -var DetectStackDriftCommand = _DetectStackDriftCommand; + // src/memoize.ts + var memoize = /* @__PURE__ */ __name( + (provider, isExpired, requiresRefresh) => { + let resolved + let pending + let hasResult + let isConstant = false + const coalesceProvider = /* @__PURE__ */ __name(async () => { + if (!pending) { + pending = provider() + } + try { + resolved = await pending + hasResult = true + isConstant = false + } finally { + pending = void 0 + } + return resolved + }, 'coalesceProvider') + if (isExpired === void 0) { + return async options => { + if (!hasResult || options?.forceRefresh) { + resolved = await coalesceProvider() + } + return resolved + } + } + return async options => { + if (!hasResult || options?.forceRefresh) { + resolved = await coalesceProvider() + } + if (isConstant) { + return resolved + } + if (requiresRefresh && !requiresRefresh(resolved)) { + isConstant = true + return resolved + } + if (isExpired(resolved)) { + await coalesceProvider() + return resolved + } + return resolved + } + }, + 'memoize' + ) + // Annotate the CommonJS export names for ESM import in node: -// src/commands/DetectStackResourceDriftCommand.ts + 0 && 0 + /***/ + }, + /***/ 31788: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + Field: () => Field, + Fields: () => Fields, + HttpRequest: () => HttpRequest, + HttpResponse: () => HttpResponse, + IHttpRequest: () => import_types.HttpRequest, + getHttpHandlerExtensionConfiguration: () => + getHttpHandlerExtensionConfiguration, + isValidHostname: () => isValidHostname, + resolveHttpHandlerRuntimeConfig: () => resolveHttpHandlerRuntimeConfig + }) + module.exports = __toCommonJS(src_exports) -var _DetectStackResourceDriftCommand = class _DetectStackResourceDriftCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "DetectStackResourceDrift", {}).n("CloudFormationClient", "DetectStackResourceDriftCommand").f(void 0, void 0).ser(se_DetectStackResourceDriftCommand).de(de_DetectStackResourceDriftCommand).build() { -}; -__name(_DetectStackResourceDriftCommand, "DetectStackResourceDriftCommand"); -var DetectStackResourceDriftCommand = _DetectStackResourceDriftCommand; + // src/extensions/httpExtensionConfiguration.ts + var getHttpHandlerExtensionConfiguration = /* @__PURE__ */ __name( + runtimeConfig => { + return { + setHttpHandler(handler) { + runtimeConfig.httpHandler = handler + }, + httpHandler() { + return runtimeConfig.httpHandler + }, + updateHttpClientConfig(key, value) { + runtimeConfig.httpHandler?.updateHttpClientConfig(key, value) + }, + httpHandlerConfigs() { + return runtimeConfig.httpHandler.httpHandlerConfigs() + } + } + }, + 'getHttpHandlerExtensionConfiguration' + ) + var resolveHttpHandlerRuntimeConfig = /* @__PURE__ */ __name( + httpHandlerExtensionConfiguration => { + return { + httpHandler: httpHandlerExtensionConfiguration.httpHandler() + } + }, + 'resolveHttpHandlerRuntimeConfig' + ) -// src/commands/DetectStackSetDriftCommand.ts + // src/Field.ts + var import_types = __nccwpck_require__(63443) + var Field = class { + static { + __name(this, 'Field') + } + constructor({ + name, + kind = import_types.FieldPosition.HEADER, + values = [] + }) { + this.name = name + this.kind = kind + this.values = values + } + /** + * Appends a value to the field. + * + * @param value The value to append. + */ + add(value) { + this.values.push(value) + } + /** + * Overwrite existing field values. + * + * @param values The new field values. + */ + set(values) { + this.values = values + } + /** + * Remove all matching entries from list. + * + * @param value Value to remove. + */ + remove(value) { + this.values = this.values.filter(v => v !== value) + } + /** + * Get comma-delimited string. + * + * @returns String representation of {@link Field}. + */ + toString() { + return this.values + .map(v => (v.includes(',') || v.includes(' ') ? `"${v}"` : v)) + .join(', ') + } + /** + * Get string values as a list + * + * @returns Values in {@link Field} as a list. + */ + get() { + return this.values + } + } + // src/Fields.ts + var Fields = class { + constructor({ fields = [], encoding = 'utf-8' }) { + this.entries = {} + fields.forEach(this.setField.bind(this)) + this.encoding = encoding + } + static { + __name(this, 'Fields') + } + /** + * Set entry for a {@link Field} name. The `name` + * attribute will be used to key the collection. + * + * @param field The {@link Field} to set. + */ + setField(field) { + this.entries[field.name.toLowerCase()] = field + } + /** + * Retrieve {@link Field} entry by name. + * + * @param name The name of the {@link Field} entry + * to retrieve + * @returns The {@link Field} if it exists. + */ + getField(name) { + return this.entries[name.toLowerCase()] + } + /** + * Delete entry from collection. + * + * @param name Name of the entry to delete. + */ + removeField(name) { + delete this.entries[name.toLowerCase()] + } + /** + * Helper function for retrieving specific types of fields. + * Used to grab all headers or all trailers. + * + * @param kind {@link FieldPosition} of entries to retrieve. + * @returns The {@link Field} entries with the specified + * {@link FieldPosition}. + */ + getByType(kind) { + return Object.values(this.entries).filter( + field => field.kind === kind + ) + } + } + // src/httpRequest.ts + + var HttpRequest = class _HttpRequest { + static { + __name(this, 'HttpRequest') + } + constructor(options) { + this.method = options.method || 'GET' + this.hostname = options.hostname || 'localhost' + this.port = options.port + this.query = options.query || {} + this.headers = options.headers || {} + this.body = options.body + this.protocol = options.protocol + ? options.protocol.slice(-1) !== ':' + ? `${options.protocol}:` + : options.protocol + : 'https:' + this.path = options.path + ? options.path.charAt(0) !== '/' + ? `/${options.path}` + : options.path + : '/' + this.username = options.username + this.password = options.password + this.fragment = options.fragment + } + /** + * Note: this does not deep-clone the body. + */ + static clone(request) { + const cloned = new _HttpRequest({ + ...request, + headers: { ...request.headers } + }) + if (cloned.query) { + cloned.query = cloneQuery(cloned.query) + } + return cloned + } + /** + * This method only actually asserts that request is the interface {@link IHttpRequest}, + * and not necessarily this concrete class. Left in place for API stability. + * + * Do not call instance methods on the input of this function, and + * do not assume it has the HttpRequest prototype. + */ + static isInstance(request) { + if (!request) { + return false + } + const req = request + return ( + 'method' in req && + 'protocol' in req && + 'hostname' in req && + 'path' in req && + typeof req['query'] === 'object' && + typeof req['headers'] === 'object' + ) + } + /** + * @deprecated use static HttpRequest.clone(request) instead. It's not safe to call + * this method because {@link HttpRequest.isInstance} incorrectly + * asserts that IHttpRequest (interface) objects are of type HttpRequest (class). + */ + clone() { + return _HttpRequest.clone(this) + } + } + function cloneQuery(query) { + return Object.keys(query).reduce((carry, paramName) => { + const param = query[paramName] + return { + ...carry, + [paramName]: Array.isArray(param) ? [...param] : param + } + }, {}) + } + __name(cloneQuery, 'cloneQuery') + + // src/httpResponse.ts + var HttpResponse = class { + static { + __name(this, 'HttpResponse') + } + constructor(options) { + this.statusCode = options.statusCode + this.reason = options.reason + this.headers = options.headers || {} + this.body = options.body + } + static isInstance(response) { + if (!response) return false + const resp = response + return ( + typeof resp.statusCode === 'number' && + typeof resp.headers === 'object' + ) + } + } -var _DetectStackSetDriftCommand = class _DetectStackSetDriftCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "DetectStackSetDrift", {}).n("CloudFormationClient", "DetectStackSetDriftCommand").f(void 0, void 0).ser(se_DetectStackSetDriftCommand).de(de_DetectStackSetDriftCommand).build() { -}; -__name(_DetectStackSetDriftCommand, "DetectStackSetDriftCommand"); -var DetectStackSetDriftCommand = _DetectStackSetDriftCommand; + // src/isValidHostname.ts + function isValidHostname(hostname) { + const hostPattern = /^[a-z0-9][a-z0-9\.\-]*[a-z0-9]$/ + return hostPattern.test(hostname) + } + __name(isValidHostname, 'isValidHostname') + // Annotate the CommonJS export names for ESM import in node: -// src/commands/EstimateTemplateCostCommand.ts + 0 && 0 + /***/ + }, + /***/ 87169: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -var _EstimateTemplateCostCommand = class _EstimateTemplateCostCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "EstimateTemplateCost", {}).n("CloudFormationClient", "EstimateTemplateCostCommand").f(void 0, void 0).ser(se_EstimateTemplateCostCommand).de(de_EstimateTemplateCostCommand).build() { -}; -__name(_EstimateTemplateCostCommand, "EstimateTemplateCostCommand"); -var EstimateTemplateCostCommand = _EstimateTemplateCostCommand; + // src/index.ts + var src_exports = {} + __export(src_exports, { + buildQueryString: () => buildQueryString + }) + module.exports = __toCommonJS(src_exports) + var import_util_uri_escape = __nccwpck_require__(59765) + function buildQueryString(query) { + const parts = [] + for (let key of Object.keys(query).sort()) { + const value = query[key] + key = (0, import_util_uri_escape.escapeUri)(key) + if (Array.isArray(value)) { + for (let i = 0, iLen = value.length; i < iLen; i++) { + parts.push( + `${key}=${(0, import_util_uri_escape.escapeUri)(value[i])}` + ) + } + } else { + let qsEntry = key + if (value || typeof value === 'string') { + qsEntry += `=${(0, import_util_uri_escape.escapeUri)(value)}` + } + parts.push(qsEntry) + } + } + return parts.join('&') + } + __name(buildQueryString, 'buildQueryString') + // Annotate the CommonJS export names for ESM import in node: -// src/commands/ExecuteChangeSetCommand.ts + 0 && 0 + /***/ + }, + /***/ 2465: /***/ module => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -var _ExecuteChangeSetCommand = class _ExecuteChangeSetCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "ExecuteChangeSet", {}).n("CloudFormationClient", "ExecuteChangeSetCommand").f(void 0, void 0).ser(se_ExecuteChangeSetCommand).de(de_ExecuteChangeSetCommand).build() { -}; -__name(_ExecuteChangeSetCommand, "ExecuteChangeSetCommand"); -var ExecuteChangeSetCommand = _ExecuteChangeSetCommand; + // src/index.ts + var src_exports = {} + __export(src_exports, { + parseQueryString: () => parseQueryString + }) + module.exports = __toCommonJS(src_exports) + function parseQueryString(querystring) { + const query = {} + querystring = querystring.replace(/^\?/, '') + if (querystring) { + for (const pair of querystring.split('&')) { + let [key, value = null] = pair.split('=') + key = decodeURIComponent(key) + if (value) { + value = decodeURIComponent(value) + } + if (!(key in query)) { + query[key] = value + } else if (Array.isArray(query[key])) { + query[key].push(value) + } else { + query[key] = [query[key], value] + } + } + } + return query + } + __name(parseQueryString, 'parseQueryString') + // Annotate the CommonJS export names for ESM import in node: -// src/commands/GetGeneratedTemplateCommand.ts + 0 && 0 + /***/ + }, + /***/ 44652: /***/ module => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -var _GetGeneratedTemplateCommand = class _GetGeneratedTemplateCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "GetGeneratedTemplate", {}).n("CloudFormationClient", "GetGeneratedTemplateCommand").f(void 0, void 0).ser(se_GetGeneratedTemplateCommand).de(de_GetGeneratedTemplateCommand).build() { -}; -__name(_GetGeneratedTemplateCommand, "GetGeneratedTemplateCommand"); -var GetGeneratedTemplateCommand = _GetGeneratedTemplateCommand; + // src/index.ts + var src_exports = {} + __export(src_exports, { + isClockSkewCorrectedError: () => isClockSkewCorrectedError, + isClockSkewError: () => isClockSkewError, + isRetryableByTrait: () => isRetryableByTrait, + isServerError: () => isServerError, + isThrottlingError: () => isThrottlingError, + isTransientError: () => isTransientError + }) + module.exports = __toCommonJS(src_exports) + + // src/constants.ts + var CLOCK_SKEW_ERROR_CODES = [ + 'AuthFailure', + 'InvalidSignatureException', + 'RequestExpired', + 'RequestInTheFuture', + 'RequestTimeTooSkewed', + 'SignatureDoesNotMatch' + ] + var THROTTLING_ERROR_CODES = [ + 'BandwidthLimitExceeded', + 'EC2ThrottledException', + 'LimitExceededException', + 'PriorRequestNotComplete', + 'ProvisionedThroughputExceededException', + 'RequestLimitExceeded', + 'RequestThrottled', + 'RequestThrottledException', + 'SlowDown', + 'ThrottledException', + 'Throttling', + 'ThrottlingException', + 'TooManyRequestsException', + 'TransactionInProgressException' + // DynamoDB + ] + var TRANSIENT_ERROR_CODES = [ + 'TimeoutError', + 'RequestTimeout', + 'RequestTimeoutException' + ] + var TRANSIENT_ERROR_STATUS_CODES = [500, 502, 503, 504] + var NODEJS_TIMEOUT_ERROR_CODES = [ + 'ECONNRESET', + 'ECONNREFUSED', + 'EPIPE', + 'ETIMEDOUT' + ] -// src/commands/GetStackPolicyCommand.ts + // src/index.ts + var isRetryableByTrait = /* @__PURE__ */ __name( + error => error.$retryable !== void 0, + 'isRetryableByTrait' + ) + var isClockSkewError = /* @__PURE__ */ __name( + error => CLOCK_SKEW_ERROR_CODES.includes(error.name), + 'isClockSkewError' + ) + var isClockSkewCorrectedError = /* @__PURE__ */ __name( + error => error.$metadata?.clockSkewCorrected, + 'isClockSkewCorrectedError' + ) + var isThrottlingError = /* @__PURE__ */ __name( + error => + error.$metadata?.httpStatusCode === 429 || + THROTTLING_ERROR_CODES.includes(error.name) || + error.$retryable?.throttling == true, + 'isThrottlingError' + ) + var isTransientError = /* @__PURE__ */ __name( + (error, depth = 0) => + isClockSkewCorrectedError(error) || + TRANSIENT_ERROR_CODES.includes(error.name) || + NODEJS_TIMEOUT_ERROR_CODES.includes(error?.code || '') || + TRANSIENT_ERROR_STATUS_CODES.includes( + error.$metadata?.httpStatusCode || 0 + ) || + (error.cause !== void 0 && + depth <= 10 && + isTransientError(error.cause, depth + 1)), + 'isTransientError' + ) + var isServerError = /* @__PURE__ */ __name(error => { + if (error.$metadata?.httpStatusCode !== void 0) { + const statusCode = error.$metadata.httpStatusCode + if ( + 500 <= statusCode && + statusCode <= 599 && + !isTransientError(error) + ) { + return true + } + return false + } + return false + }, 'isServerError') + // Annotate the CommonJS export names for ESM import in node: + 0 && 0 + /***/ + }, -var _GetStackPolicyCommand = class _GetStackPolicyCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "GetStackPolicy", {}).n("CloudFormationClient", "GetStackPolicyCommand").f(void 0, void 0).ser(se_GetStackPolicyCommand).de(de_GetStackPolicyCommand).build() { -}; -__name(_GetStackPolicyCommand, "GetStackPolicyCommand"); -var GetStackPolicyCommand = _GetStackPolicyCommand; + /***/ 47007: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getHomeDir = void 0 + const os_1 = __nccwpck_require__(22037) + const path_1 = __nccwpck_require__(71017) + const homeDirCache = {} + const getHomeDirCacheKey = () => { + if (process && process.geteuid) { + return `${process.geteuid()}` + } + return 'DEFAULT' + } + const getHomeDir = () => { + const { + HOME, + USERPROFILE, + HOMEPATH, + HOMEDRIVE = `C:${path_1.sep}` + } = process.env + if (HOME) return HOME + if (USERPROFILE) return USERPROFILE + if (HOMEPATH) return `${HOMEDRIVE}${HOMEPATH}` + const homeDirCacheKey = getHomeDirCacheKey() + if (!homeDirCache[homeDirCacheKey]) + homeDirCache[homeDirCacheKey] = (0, os_1.homedir)() + return homeDirCache[homeDirCacheKey] + } + exports.getHomeDir = getHomeDir + + /***/ + }, -// src/commands/GetTemplateCommand.ts + /***/ 34572: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getSSOTokenFilepath = void 0 + const crypto_1 = __nccwpck_require__(6113) + const path_1 = __nccwpck_require__(71017) + const getHomeDir_1 = __nccwpck_require__(47007) + const getSSOTokenFilepath = id => { + const hasher = (0, crypto_1.createHash)('sha1') + const cacheName = hasher.update(id).digest('hex') + return (0, path_1.join)( + (0, getHomeDir_1.getHomeDir)(), + '.aws', + 'sso', + 'cache', + `${cacheName}.json` + ) + } + exports.getSSOTokenFilepath = getSSOTokenFilepath + /***/ + }, + /***/ 25391: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getSSOTokenFromFile = void 0 + const fs_1 = __nccwpck_require__(57147) + const getSSOTokenFilepath_1 = __nccwpck_require__(34572) + const { readFile } = fs_1.promises + const getSSOTokenFromFile = async id => { + const ssoTokenFilepath = (0, getSSOTokenFilepath_1.getSSOTokenFilepath)( + id + ) + const ssoTokenText = await readFile(ssoTokenFilepath, 'utf8') + return JSON.parse(ssoTokenText) + } + exports.getSSOTokenFromFile = getSSOTokenFromFile -var _GetTemplateCommand = class _GetTemplateCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "GetTemplate", {}).n("CloudFormationClient", "GetTemplateCommand").f(void 0, void 0).ser(se_GetTemplateCommand).de(de_GetTemplateCommand).build() { -}; -__name(_GetTemplateCommand, "GetTemplateCommand"); -var GetTemplateCommand = _GetTemplateCommand; + /***/ + }, -// src/commands/GetTemplateSummaryCommand.ts + /***/ 69001: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __reExport = (target, mod, secondTarget) => ( + __copyProps(target, mod, 'default'), + secondTarget && __copyProps(secondTarget, mod, 'default') + ) + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + CONFIG_PREFIX_SEPARATOR: () => CONFIG_PREFIX_SEPARATOR, + DEFAULT_PROFILE: () => DEFAULT_PROFILE, + ENV_PROFILE: () => ENV_PROFILE, + getProfileName: () => getProfileName, + loadSharedConfigFiles: () => loadSharedConfigFiles, + loadSsoSessionData: () => loadSsoSessionData, + parseKnownFiles: () => parseKnownFiles + }) + module.exports = __toCommonJS(src_exports) + __reExport(src_exports, __nccwpck_require__(47007), module.exports) + + // src/getProfileName.ts + var ENV_PROFILE = 'AWS_PROFILE' + var DEFAULT_PROFILE = 'default' + var getProfileName = /* @__PURE__ */ __name( + init => init.profile || process.env[ENV_PROFILE] || DEFAULT_PROFILE, + 'getProfileName' + ) + // src/index.ts + __reExport(src_exports, __nccwpck_require__(34572), module.exports) + __reExport(src_exports, __nccwpck_require__(25391), module.exports) + + // src/loadSharedConfigFiles.ts + + // src/getConfigData.ts + var import_types = __nccwpck_require__(63443) + var getConfigData = /* @__PURE__ */ __name( + data => + Object.entries(data) + .filter(([key]) => { + const indexOfSeparator = key.indexOf(CONFIG_PREFIX_SEPARATOR) + if (indexOfSeparator === -1) { + return false + } + return Object.values(import_types.IniSectionType).includes( + key.substring(0, indexOfSeparator) + ) + }) + .reduce( + (acc, [key, value]) => { + const indexOfSeparator = key.indexOf(CONFIG_PREFIX_SEPARATOR) + const updatedKey = + key.substring(0, indexOfSeparator) === + import_types.IniSectionType.PROFILE + ? key.substring(indexOfSeparator + 1) + : key + acc[updatedKey] = value + return acc + }, + { + // Populate default profile, if present. + ...(data.default && { default: data.default }) + } + ), + 'getConfigData' + ) + // src/getConfigFilepath.ts + var import_path = __nccwpck_require__(71017) + var import_getHomeDir = __nccwpck_require__(47007) + var ENV_CONFIG_PATH = 'AWS_CONFIG_FILE' + var getConfigFilepath = /* @__PURE__ */ __name( + () => + process.env[ENV_CONFIG_PATH] || + (0, import_path.join)( + (0, import_getHomeDir.getHomeDir)(), + '.aws', + 'config' + ), + 'getConfigFilepath' + ) -var _GetTemplateSummaryCommand = class _GetTemplateSummaryCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "GetTemplateSummary", {}).n("CloudFormationClient", "GetTemplateSummaryCommand").f(void 0, void 0).ser(se_GetTemplateSummaryCommand).de(de_GetTemplateSummaryCommand).build() { -}; -__name(_GetTemplateSummaryCommand, "GetTemplateSummaryCommand"); -var GetTemplateSummaryCommand = _GetTemplateSummaryCommand; + // src/getCredentialsFilepath.ts + + var import_getHomeDir2 = __nccwpck_require__(47007) + var ENV_CREDENTIALS_PATH = 'AWS_SHARED_CREDENTIALS_FILE' + var getCredentialsFilepath = /* @__PURE__ */ __name( + () => + process.env[ENV_CREDENTIALS_PATH] || + (0, import_path.join)( + (0, import_getHomeDir2.getHomeDir)(), + '.aws', + 'credentials' + ), + 'getCredentialsFilepath' + ) -// src/commands/ImportStacksToStackSetCommand.ts + // src/loadSharedConfigFiles.ts + var import_getHomeDir3 = __nccwpck_require__(47007) + + // src/parseIni.ts + + var prefixKeyRegex = /^([\w-]+)\s(["'])?([\w-@\+\.%:/]+)\2$/ + var profileNameBlockList = ['__proto__', 'profile __proto__'] + var parseIni = /* @__PURE__ */ __name(iniData => { + const map = {} + let currentSection + let currentSubSection + for (const iniLine of iniData.split(/\r?\n/)) { + const trimmedLine = iniLine.split(/(^|\s)[;#]/)[0].trim() + const isSection = + trimmedLine[0] === '[' && + trimmedLine[trimmedLine.length - 1] === ']' + if (isSection) { + currentSection = void 0 + currentSubSection = void 0 + const sectionName = trimmedLine.substring(1, trimmedLine.length - 1) + const matches = prefixKeyRegex.exec(sectionName) + if (matches) { + const [, prefix, , name] = matches + if (Object.values(import_types.IniSectionType).includes(prefix)) { + currentSection = [prefix, name].join(CONFIG_PREFIX_SEPARATOR) + } + } else { + currentSection = sectionName + } + if (profileNameBlockList.includes(sectionName)) { + throw new Error(`Found invalid profile name "${sectionName}"`) + } + } else if (currentSection) { + const indexOfEqualsSign = trimmedLine.indexOf('=') + if (![0, -1].includes(indexOfEqualsSign)) { + const [name, value] = [ + trimmedLine.substring(0, indexOfEqualsSign).trim(), + trimmedLine.substring(indexOfEqualsSign + 1).trim() + ] + if (value === '') { + currentSubSection = name + } else { + if (currentSubSection && iniLine.trimStart() === iniLine) { + currentSubSection = void 0 + } + map[currentSection] = map[currentSection] || {} + const key = currentSubSection + ? [currentSubSection, name].join(CONFIG_PREFIX_SEPARATOR) + : name + map[currentSection][key] = value + } + } + } + } + return map + }, 'parseIni') + + // src/loadSharedConfigFiles.ts + var import_slurpFile = __nccwpck_require__(41511) + var swallowError = /* @__PURE__ */ __name(() => ({}), 'swallowError') + var CONFIG_PREFIX_SEPARATOR = '.' + var loadSharedConfigFiles = /* @__PURE__ */ __name(async (init = {}) => { + const { + filepath = getCredentialsFilepath(), + configFilepath = getConfigFilepath() + } = init + const homeDir = (0, import_getHomeDir3.getHomeDir)() + const relativeHomeDirPrefix = '~/' + let resolvedFilepath = filepath + if (filepath.startsWith(relativeHomeDirPrefix)) { + resolvedFilepath = (0, import_path.join)(homeDir, filepath.slice(2)) + } + let resolvedConfigFilepath = configFilepath + if (configFilepath.startsWith(relativeHomeDirPrefix)) { + resolvedConfigFilepath = (0, import_path.join)( + homeDir, + configFilepath.slice(2) + ) + } + const parsedFiles = await Promise.all([ + (0, import_slurpFile.slurpFile)(resolvedConfigFilepath, { + ignoreCache: init.ignoreCache + }) + .then(parseIni) + .then(getConfigData) + .catch(swallowError), + (0, import_slurpFile.slurpFile)(resolvedFilepath, { + ignoreCache: init.ignoreCache + }) + .then(parseIni) + .catch(swallowError) + ]) + return { + configFile: parsedFiles[0], + credentialsFile: parsedFiles[1] + } + }, 'loadSharedConfigFiles') + // src/getSsoSessionData.ts + var 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' + ) -var _ImportStacksToStackSetCommand = class _ImportStacksToStackSetCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "ImportStacksToStackSet", {}).n("CloudFormationClient", "ImportStacksToStackSetCommand").f(void 0, void 0).ser(se_ImportStacksToStackSetCommand).de(de_ImportStacksToStackSetCommand).build() { -}; -__name(_ImportStacksToStackSetCommand, "ImportStacksToStackSetCommand"); -var ImportStacksToStackSetCommand = _ImportStacksToStackSetCommand; + // src/loadSsoSessionData.ts + var import_slurpFile2 = __nccwpck_require__(41511) + var swallowError2 = /* @__PURE__ */ __name(() => ({}), 'swallowError') + var loadSsoSessionData = /* @__PURE__ */ __name( + async (init = {}) => + (0, import_slurpFile2.slurpFile)( + init.configFilepath ?? getConfigFilepath() + ) + .then(parseIni) + .then(getSsoSessionData) + .catch(swallowError2), + 'loadSsoSessionData' + ) -// src/commands/ListChangeSetsCommand.ts + // src/mergeConfigFiles.ts + var mergeConfigFiles = /* @__PURE__ */ __name((...files) => { + const merged = {} + for (const file of files) { + for (const [key, values] of Object.entries(file)) { + if (merged[key] !== void 0) { + Object.assign(merged[key], values) + } else { + merged[key] = values + } + } + } + return merged + }, 'mergeConfigFiles') + // src/parseKnownFiles.ts + var parseKnownFiles = /* @__PURE__ */ __name(async init => { + const parsedFiles = await loadSharedConfigFiles(init) + return mergeConfigFiles( + parsedFiles.configFile, + parsedFiles.credentialsFile + ) + }, 'parseKnownFiles') + // Annotate the CommonJS export names for ESM import in node: + 0 && 0 -var _ListChangeSetsCommand = class _ListChangeSetsCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "ListChangeSets", {}).n("CloudFormationClient", "ListChangeSetsCommand").f(void 0, void 0).ser(se_ListChangeSetsCommand).de(de_ListChangeSetsCommand).build() { -}; -__name(_ListChangeSetsCommand, "ListChangeSetsCommand"); -var ListChangeSetsCommand = _ListChangeSetsCommand; + /***/ + }, -// src/commands/ListExportsCommand.ts + /***/ 41511: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.slurpFile = void 0 + const fs_1 = __nccwpck_require__(57147) + const { readFile } = fs_1.promises + const filePromisesHash = {} + const slurpFile = (path, options) => { + if ( + !filePromisesHash[path] || + (options === null || options === void 0 + ? void 0 + : options.ignoreCache) + ) { + filePromisesHash[path] = readFile(path, 'utf8') + } + return filePromisesHash[path] + } + exports.slurpFile = slurpFile + /***/ + }, + /***/ 78313: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + SignatureV4: () => SignatureV4, + clearCredentialCache: () => clearCredentialCache, + createScope: () => createScope, + getCanonicalHeaders: () => getCanonicalHeaders, + getCanonicalQuery: () => getCanonicalQuery, + getPayloadHash: () => getPayloadHash, + getSigningKey: () => getSigningKey, + moveHeadersToQuery: () => moveHeadersToQuery, + prepareRequest: () => prepareRequest + }) + module.exports = __toCommonJS(src_exports) + + // src/SignatureV4.ts + + var import_util_middleware = __nccwpck_require__(69474) + + var import_util_utf84 = __nccwpck_require__(94377) + + // src/constants.ts + var ALGORITHM_QUERY_PARAM = 'X-Amz-Algorithm' + var CREDENTIAL_QUERY_PARAM = 'X-Amz-Credential' + var AMZ_DATE_QUERY_PARAM = 'X-Amz-Date' + var SIGNED_HEADERS_QUERY_PARAM = 'X-Amz-SignedHeaders' + var EXPIRES_QUERY_PARAM = 'X-Amz-Expires' + var SIGNATURE_QUERY_PARAM = 'X-Amz-Signature' + var TOKEN_QUERY_PARAM = 'X-Amz-Security-Token' + var AUTH_HEADER = 'authorization' + var AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase() + var DATE_HEADER = 'date' + var GENERATED_HEADERS = [AUTH_HEADER, AMZ_DATE_HEADER, DATE_HEADER] + var SIGNATURE_HEADER = SIGNATURE_QUERY_PARAM.toLowerCase() + var SHA256_HEADER = 'x-amz-content-sha256' + var TOKEN_HEADER = TOKEN_QUERY_PARAM.toLowerCase() + var ALWAYS_UNSIGNABLE_HEADERS = { + authorization: true, + 'cache-control': true, + connection: true, + expect: true, + from: true, + 'keep-alive': true, + 'max-forwards': true, + pragma: true, + referer: true, + te: true, + trailer: true, + 'transfer-encoding': true, + upgrade: true, + 'user-agent': true, + 'x-amzn-trace-id': true + } + var PROXY_HEADER_PATTERN = /^proxy-/ + var SEC_HEADER_PATTERN = /^sec-/ + var ALGORITHM_IDENTIFIER = 'AWS4-HMAC-SHA256' + var EVENT_ALGORITHM_IDENTIFIER = 'AWS4-HMAC-SHA256-PAYLOAD' + var UNSIGNED_PAYLOAD = 'UNSIGNED-PAYLOAD' + var MAX_CACHE_SIZE = 50 + var KEY_TYPE_IDENTIFIER = 'aws4_request' + var MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7 + + // src/credentialDerivation.ts + var import_util_hex_encoding = __nccwpck_require__(82143) + var import_util_utf8 = __nccwpck_require__(94377) + var signingKeyCache = {} + var cacheQueue = [] + var createScope = /* @__PURE__ */ __name( + (shortDate, region, service) => + `${shortDate}/${region}/${service}/${KEY_TYPE_IDENTIFIER}`, + 'createScope' + ) + var getSigningKey = /* @__PURE__ */ __name( + async (sha256Constructor, credentials, shortDate, region, service) => { + const credsHash = await hmac( + sha256Constructor, + credentials.secretAccessKey, + credentials.accessKeyId + ) + const cacheKey = `${shortDate}:${region}:${service}:${(0, import_util_hex_encoding.toHex)(credsHash)}:${credentials.sessionToken}` + if (cacheKey in signingKeyCache) { + return signingKeyCache[cacheKey] + } + cacheQueue.push(cacheKey) + while (cacheQueue.length > MAX_CACHE_SIZE) { + delete signingKeyCache[cacheQueue.shift()] + } + let key = `AWS4${credentials.secretAccessKey}` + for (const signable of [ + shortDate, + region, + service, + KEY_TYPE_IDENTIFIER + ]) { + key = await hmac(sha256Constructor, key, signable) + } + return (signingKeyCache[cacheKey] = key) + }, + 'getSigningKey' + ) + var clearCredentialCache = /* @__PURE__ */ __name(() => { + cacheQueue.length = 0 + Object.keys(signingKeyCache).forEach(cacheKey => { + delete signingKeyCache[cacheKey] + }) + }, 'clearCredentialCache') + var hmac = /* @__PURE__ */ __name((ctor, secret, data) => { + const hash = new ctor(secret) + hash.update((0, import_util_utf8.toUint8Array)(data)) + return hash.digest() + }, 'hmac') + + // src/getCanonicalHeaders.ts + var getCanonicalHeaders = /* @__PURE__ */ __name( + ({ headers }, unsignableHeaders, signableHeaders) => { + const canonical = {} + for (const headerName of Object.keys(headers).sort()) { + if (headers[headerName] == void 0) { + continue + } + const canonicalHeaderName = headerName.toLowerCase() + if ( + canonicalHeaderName in ALWAYS_UNSIGNABLE_HEADERS || + unsignableHeaders?.has(canonicalHeaderName) || + PROXY_HEADER_PATTERN.test(canonicalHeaderName) || + SEC_HEADER_PATTERN.test(canonicalHeaderName) + ) { + if ( + !signableHeaders || + (signableHeaders && !signableHeaders.has(canonicalHeaderName)) + ) { + continue + } + } + canonical[canonicalHeaderName] = headers[headerName] + .trim() + .replace(/\s+/g, ' ') + } + return canonical + }, + 'getCanonicalHeaders' + ) -var _ListExportsCommand = class _ListExportsCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "ListExports", {}).n("CloudFormationClient", "ListExportsCommand").f(void 0, void 0).ser(se_ListExportsCommand).de(de_ListExportsCommand).build() { -}; -__name(_ListExportsCommand, "ListExportsCommand"); -var ListExportsCommand = _ListExportsCommand; + // src/getCanonicalQuery.ts + var import_util_uri_escape = __nccwpck_require__(59765) + var getCanonicalQuery = /* @__PURE__ */ __name(({ query = {} }) => { + const keys = [] + const serialized = {} + for (const key of Object.keys(query)) { + if (key.toLowerCase() === SIGNATURE_HEADER) { + continue + } + const encodedKey = (0, import_util_uri_escape.escapeUri)(key) + keys.push(encodedKey) + const value = query[key] + if (typeof value === 'string') { + serialized[encodedKey] = + `${encodedKey}=${(0, import_util_uri_escape.escapeUri)(value)}` + } else if (Array.isArray(value)) { + serialized[encodedKey] = value + .slice(0) + .reduce( + (encoded, value2) => + encoded.concat([ + `${encodedKey}=${(0, import_util_uri_escape.escapeUri)(value2)}` + ]), + [] + ) + .sort() + .join('&') + } + } + return keys + .sort() + .map(key => serialized[key]) + .filter(serialized2 => serialized2) + .join('&') + }, 'getCanonicalQuery') + + // src/getPayloadHash.ts + var import_is_array_buffer = __nccwpck_require__(22299) + + var import_util_utf82 = __nccwpck_require__(94377) + var getPayloadHash = /* @__PURE__ */ __name( + async ({ headers, body }, hashConstructor) => { + for (const headerName of Object.keys(headers)) { + if (headerName.toLowerCase() === SHA256_HEADER) { + return headers[headerName] + } + } + if (body == void 0) { + return 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855' + } else if ( + typeof body === 'string' || + ArrayBuffer.isView(body) || + (0, import_is_array_buffer.isArrayBuffer)(body) + ) { + const hashCtor = new hashConstructor() + hashCtor.update((0, import_util_utf82.toUint8Array)(body)) + return (0, import_util_hex_encoding.toHex)(await hashCtor.digest()) + } + return UNSIGNED_PAYLOAD + }, + 'getPayloadHash' + ) -// src/commands/ListGeneratedTemplatesCommand.ts + // src/HeaderFormatter.ts + var import_util_utf83 = __nccwpck_require__(94377) + var HeaderFormatter = class { + static { + __name(this, 'HeaderFormatter') + } + format(headers) { + const chunks = [] + for (const headerName of Object.keys(headers)) { + const bytes = (0, import_util_utf83.fromUtf8)(headerName) + chunks.push( + Uint8Array.from([bytes.byteLength]), + bytes, + this.formatHeaderValue(headers[headerName]) + ) + } + const out = new Uint8Array( + chunks.reduce((carry, bytes) => carry + bytes.byteLength, 0) + ) + let position = 0 + for (const chunk of chunks) { + out.set(chunk, position) + position += chunk.byteLength + } + return out + } + formatHeaderValue(header) { + switch (header.type) { + case 'boolean': + return Uint8Array.from([ + header.value ? 0 /* boolTrue */ : 1 /* boolFalse */ + ]) + case 'byte': + return Uint8Array.from([2 /* byte */, header.value]) + case 'short': + const shortView = new DataView(new ArrayBuffer(3)) + shortView.setUint8(0, 3 /* short */) + shortView.setInt16(1, header.value, false) + return new Uint8Array(shortView.buffer) + case 'integer': + const intView = new DataView(new ArrayBuffer(5)) + intView.setUint8(0, 4 /* integer */) + intView.setInt32(1, header.value, false) + return new Uint8Array(intView.buffer) + case 'long': + const longBytes = new Uint8Array(9) + longBytes[0] = 5 /* long */ + longBytes.set(header.value.bytes, 1) + return longBytes + case 'binary': + const binView = new DataView( + new ArrayBuffer(3 + header.value.byteLength) + ) + binView.setUint8(0, 6 /* byteArray */) + binView.setUint16(1, header.value.byteLength, false) + const binBytes = new Uint8Array(binView.buffer) + binBytes.set(header.value, 3) + return binBytes + case 'string': + const utf8Bytes = (0, import_util_utf83.fromUtf8)(header.value) + const strView = new DataView( + new ArrayBuffer(3 + utf8Bytes.byteLength) + ) + strView.setUint8(0, 7 /* string */) + strView.setUint16(1, utf8Bytes.byteLength, false) + const strBytes = new Uint8Array(strView.buffer) + strBytes.set(utf8Bytes, 3) + return strBytes + case 'timestamp': + const tsBytes = new Uint8Array(9) + tsBytes[0] = 8 /* timestamp */ + tsBytes.set(Int64.fromNumber(header.value.valueOf()).bytes, 1) + return tsBytes + case 'uuid': + if (!UUID_PATTERN.test(header.value)) { + throw new Error(`Invalid UUID received: ${header.value}`) + } + const uuidBytes = new Uint8Array(17) + uuidBytes[0] = 9 /* uuid */ + uuidBytes.set( + (0, import_util_hex_encoding.fromHex)( + header.value.replace(/\-/g, '') + ), + 1 + ) + return uuidBytes + } + } + } + var UUID_PATTERN = + /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/ + var Int64 = class _Int64 { + constructor(bytes) { + this.bytes = bytes + if (bytes.byteLength !== 8) { + throw new Error('Int64 buffers must be exactly 8 bytes') + } + } + static { + __name(this, 'Int64') + } + static fromNumber(number) { + if (number > 9223372036854776e3 || number < -9223372036854776e3) { + throw new Error( + `${number} is too large (or, if negative, too small) to represent as an Int64` + ) + } + const bytes = new Uint8Array(8) + for ( + let i = 7, remaining = Math.abs(Math.round(number)); + i > -1 && remaining > 0; + i--, remaining /= 256 + ) { + bytes[i] = remaining + } + if (number < 0) { + negate(bytes) + } + return new _Int64(bytes) + } + /** + * Called implicitly by infix arithmetic operators. + */ + valueOf() { + const bytes = this.bytes.slice(0) + const negative = bytes[0] & 128 + if (negative) { + negate(bytes) + } + return ( + parseInt((0, import_util_hex_encoding.toHex)(bytes), 16) * + (negative ? -1 : 1) + ) + } + toString() { + return String(this.valueOf()) + } + } + function negate(bytes) { + for (let i = 0; i < 8; i++) { + bytes[i] ^= 255 + } + for (let i = 7; i > -1; i--) { + bytes[i]++ + if (bytes[i] !== 0) break + } + } + __name(negate, 'negate') + // src/headerUtil.ts + var hasHeader = /* @__PURE__ */ __name((soughtHeader, headers) => { + soughtHeader = soughtHeader.toLowerCase() + for (const headerName of Object.keys(headers)) { + if (soughtHeader === headerName.toLowerCase()) { + return true + } + } + return false + }, 'hasHeader') + + // src/moveHeadersToQuery.ts + var import_protocol_http = __nccwpck_require__(31788) + var moveHeadersToQuery = /* @__PURE__ */ __name( + (request, options = {}) => { + const { headers, query = {} } = + import_protocol_http.HttpRequest.clone(request) + for (const name of Object.keys(headers)) { + const lname = name.toLowerCase() + if ( + (lname.slice(0, 6) === 'x-amz-' && + !options.unhoistableHeaders?.has(lname)) || + options.hoistableHeaders?.has(lname) + ) { + query[name] = headers[name] + delete headers[name] + } + } + return { + ...request, + headers, + query + } + }, + 'moveHeadersToQuery' + ) -var _ListGeneratedTemplatesCommand = class _ListGeneratedTemplatesCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "ListGeneratedTemplates", {}).n("CloudFormationClient", "ListGeneratedTemplatesCommand").f(void 0, void 0).ser(se_ListGeneratedTemplatesCommand).de(de_ListGeneratedTemplatesCommand).build() { -}; -__name(_ListGeneratedTemplatesCommand, "ListGeneratedTemplatesCommand"); -var ListGeneratedTemplatesCommand = _ListGeneratedTemplatesCommand; + // src/prepareRequest.ts -// src/commands/ListImportsCommand.ts + var prepareRequest = /* @__PURE__ */ __name(request => { + request = import_protocol_http.HttpRequest.clone(request) + for (const headerName of Object.keys(request.headers)) { + if (GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) { + delete request.headers[headerName] + } + } + return request + }, 'prepareRequest') + // src/utilDate.ts + var iso8601 = /* @__PURE__ */ __name( + time => + toDate(time) + .toISOString() + .replace(/\.\d{3}Z$/, 'Z'), + 'iso8601' + ) + var toDate = /* @__PURE__ */ __name(time => { + if (typeof time === 'number') { + return new Date(time * 1e3) + } + if (typeof time === 'string') { + if (Number(time)) { + return new Date(Number(time) * 1e3) + } + return new Date(time) + } + return time + }, 'toDate') + + // src/SignatureV4.ts + var SignatureV4 = class { + constructor({ + applyChecksum, + credentials, + region, + service, + sha256, + uriEscapePath = true + }) { + this.headerFormatter = new HeaderFormatter() + this.service = service + this.sha256 = sha256 + this.uriEscapePath = uriEscapePath + this.applyChecksum = + typeof applyChecksum === 'boolean' ? applyChecksum : true + this.regionProvider = (0, import_util_middleware.normalizeProvider)( + region + ) + this.credentialProvider = (0, + import_util_middleware.normalizeProvider)(credentials) + } + static { + __name(this, 'SignatureV4') + } + async presign(originalRequest, options = {}) { + const { + signingDate = /* @__PURE__ */ new Date(), + expiresIn = 3600, + unsignableHeaders, + unhoistableHeaders, + signableHeaders, + hoistableHeaders, + signingRegion, + signingService + } = options + const credentials = await this.credentialProvider() + this.validateResolvedCredentials(credentials) + const region = signingRegion ?? (await this.regionProvider()) + const { longDate, shortDate } = formatDate(signingDate) + if (expiresIn > MAX_PRESIGNED_TTL) { + return Promise.reject( + 'Signature version 4 presigned URLs must have an expiration date less than one week in the future' + ) + } + const scope = createScope( + shortDate, + region, + signingService ?? this.service + ) + const request = moveHeadersToQuery(prepareRequest(originalRequest), { + unhoistableHeaders, + hoistableHeaders + }) + if (credentials.sessionToken) { + request.query[TOKEN_QUERY_PARAM] = credentials.sessionToken + } + request.query[ALGORITHM_QUERY_PARAM] = ALGORITHM_IDENTIFIER + request.query[CREDENTIAL_QUERY_PARAM] = + `${credentials.accessKeyId}/${scope}` + request.query[AMZ_DATE_QUERY_PARAM] = longDate + request.query[EXPIRES_QUERY_PARAM] = expiresIn.toString(10) + const canonicalHeaders = getCanonicalHeaders( + request, + unsignableHeaders, + signableHeaders + ) + request.query[SIGNED_HEADERS_QUERY_PARAM] = + getCanonicalHeaderList(canonicalHeaders) + request.query[SIGNATURE_QUERY_PARAM] = await this.getSignature( + longDate, + scope, + this.getSigningKey(credentials, region, shortDate, signingService), + this.createCanonicalRequest( + request, + canonicalHeaders, + await getPayloadHash(originalRequest, this.sha256) + ) + ) + return request + } + async sign(toSign, options) { + if (typeof toSign === 'string') { + return this.signString(toSign, options) + } else if (toSign.headers && toSign.payload) { + return this.signEvent(toSign, options) + } else if (toSign.message) { + return this.signMessage(toSign, options) + } else { + return this.signRequest(toSign, options) + } + } + async signEvent( + { headers, payload }, + { + signingDate = /* @__PURE__ */ new Date(), + priorSignature, + signingRegion, + signingService + } + ) { + const region = signingRegion ?? (await this.regionProvider()) + const { shortDate, longDate } = formatDate(signingDate) + const scope = createScope( + shortDate, + region, + signingService ?? this.service + ) + const hashedPayload = await getPayloadHash( + { headers: {}, body: payload }, + this.sha256 + ) + const hash = new this.sha256() + hash.update(headers) + const hashedHeaders = (0, import_util_hex_encoding.toHex)( + await hash.digest() + ) + const stringToSign = [ + EVENT_ALGORITHM_IDENTIFIER, + longDate, + scope, + priorSignature, + hashedHeaders, + hashedPayload + ].join('\n') + return this.signString(stringToSign, { + signingDate, + signingRegion: region, + signingService + }) + } + async signMessage( + signableMessage, + { + signingDate = /* @__PURE__ */ new Date(), + signingRegion, + signingService + } + ) { + const promise = this.signEvent( + { + headers: this.headerFormatter.format( + signableMessage.message.headers + ), + payload: signableMessage.message.body + }, + { + signingDate, + signingRegion, + signingService, + priorSignature: signableMessage.priorSignature + } + ) + return promise.then(signature => { + return { message: signableMessage.message, signature } + }) + } + async signString( + stringToSign, + { + signingDate = /* @__PURE__ */ new Date(), + signingRegion, + signingService + } = {} + ) { + const credentials = await this.credentialProvider() + this.validateResolvedCredentials(credentials) + const region = signingRegion ?? (await this.regionProvider()) + const { shortDate } = formatDate(signingDate) + const hash = new this.sha256( + await this.getSigningKey( + credentials, + region, + shortDate, + signingService + ) + ) + hash.update((0, import_util_utf84.toUint8Array)(stringToSign)) + return (0, import_util_hex_encoding.toHex)(await hash.digest()) + } + async signRequest( + requestToSign, + { + signingDate = /* @__PURE__ */ new Date(), + signableHeaders, + unsignableHeaders, + signingRegion, + signingService + } = {} + ) { + const credentials = await this.credentialProvider() + this.validateResolvedCredentials(credentials) + const region = signingRegion ?? (await this.regionProvider()) + const request = prepareRequest(requestToSign) + const { longDate, shortDate } = formatDate(signingDate) + const scope = createScope( + shortDate, + region, + signingService ?? this.service + ) + request.headers[AMZ_DATE_HEADER] = longDate + if (credentials.sessionToken) { + request.headers[TOKEN_HEADER] = credentials.sessionToken + } + const payloadHash = await getPayloadHash(request, this.sha256) + if ( + !hasHeader(SHA256_HEADER, request.headers) && + this.applyChecksum + ) { + request.headers[SHA256_HEADER] = payloadHash + } + const canonicalHeaders = getCanonicalHeaders( + request, + unsignableHeaders, + signableHeaders + ) + const signature = await this.getSignature( + longDate, + scope, + this.getSigningKey(credentials, region, shortDate, signingService), + this.createCanonicalRequest(request, canonicalHeaders, payloadHash) + ) + request.headers[AUTH_HEADER] = + `${ALGORITHM_IDENTIFIER} Credential=${credentials.accessKeyId}/${scope}, SignedHeaders=${getCanonicalHeaderList(canonicalHeaders)}, Signature=${signature}` + return request + } + createCanonicalRequest(request, canonicalHeaders, payloadHash) { + const sortedHeaders = Object.keys(canonicalHeaders).sort() + return `${request.method} +${this.getCanonicalPath(request)} +${getCanonicalQuery(request)} +${sortedHeaders.map(name => `${name}:${canonicalHeaders[name]}`).join('\n')} +${sortedHeaders.join(';')} +${payloadHash}` + } + async createStringToSign(longDate, credentialScope, canonicalRequest) { + const hash = new this.sha256() + hash.update((0, import_util_utf84.toUint8Array)(canonicalRequest)) + const hashedRequest = await hash.digest() + return `${ALGORITHM_IDENTIFIER} +${longDate} +${credentialScope} +${(0, import_util_hex_encoding.toHex)(hashedRequest)}` + } + getCanonicalPath({ path }) { + if (this.uriEscapePath) { + const normalizedPathSegments = [] + for (const pathSegment of path.split('/')) { + if (pathSegment?.length === 0) continue + if (pathSegment === '.') continue + if (pathSegment === '..') { + normalizedPathSegments.pop() + } else { + normalizedPathSegments.push(pathSegment) + } + } + const normalizedPath = `${path?.startsWith('/') ? '/' : ''}${normalizedPathSegments.join('/')}${normalizedPathSegments.length > 0 && path?.endsWith('/') ? '/' : ''}` + const doubleEncoded = (0, import_util_uri_escape.escapeUri)( + normalizedPath + ) + return doubleEncoded.replace(/%2F/g, '/') + } + return path + } + async getSignature( + longDate, + credentialScope, + keyPromise, + canonicalRequest + ) { + const stringToSign = await this.createStringToSign( + longDate, + credentialScope, + canonicalRequest + ) + const hash = new this.sha256(await keyPromise) + hash.update((0, import_util_utf84.toUint8Array)(stringToSign)) + return (0, import_util_hex_encoding.toHex)(await hash.digest()) + } + getSigningKey(credentials, region, shortDate, service) { + return getSigningKey( + this.sha256, + credentials, + shortDate, + region, + service || this.service + ) + } + validateResolvedCredentials(credentials) { + if ( + typeof credentials !== 'object' || // @ts-expect-error: Property 'accessKeyId' does not exist on type 'object'.ts(2339) + typeof credentials.accessKeyId !== 'string' || // @ts-expect-error: Property 'secretAccessKey' does not exist on type 'object'.ts(2339) + typeof credentials.secretAccessKey !== 'string' + ) { + throw new Error('Resolved credential object is not valid') + } + } + } + var formatDate = /* @__PURE__ */ __name(now => { + const longDate = iso8601(now).replace(/[\-:]/g, '') + return { + longDate, + shortDate: longDate.slice(0, 8) + } + }, 'formatDate') + var getCanonicalHeaderList = /* @__PURE__ */ __name( + headers => Object.keys(headers).sort().join(';'), + 'getCanonicalHeaderList' + ) + // Annotate the CommonJS export names for ESM import in node: -var _ListImportsCommand = class _ListImportsCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "ListImports", {}).n("CloudFormationClient", "ListImportsCommand").f(void 0, void 0).ser(se_ListImportsCommand).de(de_ListImportsCommand).build() { -}; -__name(_ListImportsCommand, "ListImportsCommand"); -var ListImportsCommand = _ListImportsCommand; + 0 && 0 -// src/commands/ListResourceScanRelatedResourcesCommand.ts + /***/ + }, + /***/ 76583: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + Client: () => Client, + Command: () => Command, + LazyJsonString: () => LazyJsonString, + NoOpLogger: () => NoOpLogger, + SENSITIVE_STRING: () => SENSITIVE_STRING, + ServiceException: () => ServiceException, + _json: () => _json, + collectBody: () => import_protocols.collectBody, + convertMap: () => convertMap, + createAggregatedClient: () => createAggregatedClient, + dateToUtcString: () => dateToUtcString, + decorateServiceException: () => decorateServiceException, + emitWarningIfUnsupportedVersion: () => emitWarningIfUnsupportedVersion, + expectBoolean: () => expectBoolean, + expectByte: () => expectByte, + expectFloat32: () => expectFloat32, + expectInt: () => expectInt, + expectInt32: () => expectInt32, + expectLong: () => expectLong, + expectNonNull: () => expectNonNull, + expectNumber: () => expectNumber, + expectObject: () => expectObject, + expectShort: () => expectShort, + expectString: () => expectString, + expectUnion: () => expectUnion, + extendedEncodeURIComponent: () => + import_protocols.extendedEncodeURIComponent, + getArrayIfSingleItem: () => getArrayIfSingleItem, + getDefaultClientConfiguration: () => getDefaultClientConfiguration, + getDefaultExtensionConfiguration: () => + getDefaultExtensionConfiguration, + getValueFromTextNode: () => getValueFromTextNode, + handleFloat: () => handleFloat, + isSerializableHeaderValue: () => isSerializableHeaderValue, + limitedParseDouble: () => limitedParseDouble, + limitedParseFloat: () => limitedParseFloat, + limitedParseFloat32: () => limitedParseFloat32, + loadConfigsForDefaultMode: () => loadConfigsForDefaultMode, + logger: () => logger, + map: () => map, + parseBoolean: () => parseBoolean, + parseEpochTimestamp: () => parseEpochTimestamp, + parseRfc3339DateTime: () => parseRfc3339DateTime, + parseRfc3339DateTimeWithOffset: () => parseRfc3339DateTimeWithOffset, + parseRfc7231DateTime: () => parseRfc7231DateTime, + quoteHeader: () => quoteHeader, + resolveDefaultRuntimeConfig: () => resolveDefaultRuntimeConfig, + resolvedPath: () => import_protocols.resolvedPath, + serializeDateTime: () => serializeDateTime, + serializeFloat: () => serializeFloat, + splitEvery: () => splitEvery, + splitHeader: () => splitHeader, + strictParseByte: () => strictParseByte, + strictParseDouble: () => strictParseDouble, + strictParseFloat: () => strictParseFloat, + strictParseFloat32: () => strictParseFloat32, + strictParseInt: () => strictParseInt, + strictParseInt32: () => strictParseInt32, + strictParseLong: () => strictParseLong, + strictParseShort: () => strictParseShort, + take: () => take, + throwDefaultError: () => throwDefaultError, + withBaseException: () => withBaseException + }) + module.exports = __toCommonJS(src_exports) + + // src/client.ts + var import_middleware_stack = __nccwpck_require__(22513) + var Client = class { + constructor(config) { + this.config = config + this.middlewareStack = (0, import_middleware_stack.constructStack)() + } + static { + __name(this, 'Client') + } + send(command, optionsOrCb, cb) { + const options = + typeof optionsOrCb !== 'function' ? optionsOrCb : void 0 + const callback = typeof optionsOrCb === 'function' ? optionsOrCb : cb + const useHandlerCache = + options === void 0 && this.config.cacheMiddleware === true + let handler + if (useHandlerCache) { + if (!this.handlers) { + this.handlers = /* @__PURE__ */ new WeakMap() + } + const handlers = this.handlers + if (handlers.has(command.constructor)) { + handler = handlers.get(command.constructor) + } else { + handler = command.resolveMiddleware( + this.middlewareStack, + this.config, + options + ) + handlers.set(command.constructor, handler) + } + } else { + delete this.handlers + handler = command.resolveMiddleware( + this.middlewareStack, + this.config, + options + ) + } + if (callback) { + handler(command) + .then( + result => callback(null, result.output), + err => callback(err) + ) + .catch( + // prevent any errors thrown in the callback from triggering an + // unhandled promise rejection + () => {} + ) + } else { + return handler(command).then(result => result.output) + } + } + destroy() { + this.config?.requestHandler?.destroy?.() + delete this.handlers + } + } + // src/collect-stream-body.ts + var import_protocols = __nccwpck_require__(56952) -var _ListResourceScanRelatedResourcesCommand = class _ListResourceScanRelatedResourcesCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "ListResourceScanRelatedResources", {}).n("CloudFormationClient", "ListResourceScanRelatedResourcesCommand").f(void 0, void 0).ser(se_ListResourceScanRelatedResourcesCommand).de(de_ListResourceScanRelatedResourcesCommand).build() { -}; -__name(_ListResourceScanRelatedResourcesCommand, "ListResourceScanRelatedResourcesCommand"); -var ListResourceScanRelatedResourcesCommand = _ListResourceScanRelatedResourcesCommand; + // src/command.ts -// src/commands/ListResourceScanResourcesCommand.ts + var import_types = __nccwpck_require__(63443) + var Command = class { + constructor() { + this.middlewareStack = (0, import_middleware_stack.constructStack)() + } + static { + __name(this, 'Command') + } + /** + * Factory for Command ClassBuilder. + * @internal + */ + static classBuilder() { + return new ClassBuilder() + } + /** + * @internal + */ + resolveMiddlewareWithContext( + clientStack, + configuration, + options, + { + middlewareFn, + clientName, + commandName, + inputFilterSensitiveLog, + outputFilterSensitiveLog, + smithyContext, + additionalContext, + CommandCtor + } + ) { + for (const mw of middlewareFn.bind(this)( + CommandCtor, + clientStack, + configuration, + options + )) { + this.middlewareStack.use(mw) + } + const stack = clientStack.concat(this.middlewareStack) + const { logger: logger2 } = configuration + const handlerExecutionContext = { + logger: logger2, + clientName, + commandName, + inputFilterSensitiveLog, + outputFilterSensitiveLog, + [import_types.SMITHY_CONTEXT_KEY]: { + commandInstance: this, + ...smithyContext + }, + ...additionalContext + } + const { requestHandler } = configuration + return stack.resolve( + request => requestHandler.handle(request.request, options || {}), + handlerExecutionContext + ) + } + } + var ClassBuilder = class { + constructor() { + this._init = () => {} + this._ep = {} + this._middlewareFn = () => [] + this._commandName = '' + this._clientName = '' + this._additionalContext = {} + this._smithyContext = {} + this._inputFilterSensitiveLog = _ => _ + this._outputFilterSensitiveLog = _ => _ + this._serializer = null + this._deserializer = null + } + static { + __name(this, 'ClassBuilder') + } + /** + * Optional init callback. + */ + init(cb) { + this._init = cb + } + /** + * Set the endpoint parameter instructions. + */ + ep(endpointParameterInstructions) { + this._ep = endpointParameterInstructions + return this + } + /** + * Add any number of middleware. + */ + m(middlewareSupplier) { + this._middlewareFn = middlewareSupplier + return this + } + /** + * Set the initial handler execution context Smithy field. + */ + s(service, operation, smithyContext = {}) { + this._smithyContext = { + service, + operation, + ...smithyContext + } + return this + } + /** + * Set the initial handler execution context. + */ + c(additionalContext = {}) { + this._additionalContext = additionalContext + return this + } + /** + * Set constant string identifiers for the operation. + */ + n(clientName, commandName) { + this._clientName = clientName + this._commandName = commandName + return this + } + /** + * Set the input and output sensistive log filters. + */ + f(inputFilter = _ => _, outputFilter = _ => _) { + this._inputFilterSensitiveLog = inputFilter + this._outputFilterSensitiveLog = outputFilter + return this + } + /** + * Sets the serializer. + */ + ser(serializer) { + this._serializer = serializer + return this + } + /** + * Sets the deserializer. + */ + de(deserializer) { + this._deserializer = deserializer + return this + } + /** + * @returns a Command class with the classBuilder properties. + */ + build() { + const closure = this + let CommandRef + return (CommandRef = class extends Command { + /** + * @public + */ + constructor(...[input]) { + super() + /** + * @internal + */ + // @ts-ignore used in middlewareFn closure. + this.serialize = closure._serializer + /** + * @internal + */ + // @ts-ignore used in middlewareFn closure. + this.deserialize = closure._deserializer + this.input = input ?? {} + closure._init(this) + } + static { + __name(this, 'CommandRef') + } + /** + * @public + */ + static getEndpointParameterInstructions() { + return closure._ep + } + /** + * @internal + */ + resolveMiddleware(stack, configuration, options) { + return this.resolveMiddlewareWithContext( + stack, + configuration, + options, + { + CommandCtor: CommandRef, + middlewareFn: closure._middlewareFn, + clientName: closure._clientName, + commandName: closure._commandName, + inputFilterSensitiveLog: closure._inputFilterSensitiveLog, + outputFilterSensitiveLog: closure._outputFilterSensitiveLog, + smithyContext: closure._smithyContext, + additionalContext: closure._additionalContext + } + ) + } + }) + } + } + // src/constants.ts + var SENSITIVE_STRING = '***SensitiveInformation***' + + // src/create-aggregated-client.ts + var createAggregatedClient = /* @__PURE__ */ __name( + (commands, Client2) => { + for (const command of Object.keys(commands)) { + const CommandCtor = commands[command] + const methodImpl = /* @__PURE__ */ __name(async function ( + args, + optionsOrCb, + cb + ) { + const command2 = new CommandCtor(args) + if (typeof optionsOrCb === 'function') { + this.send(command2, optionsOrCb) + } else if (typeof cb === 'function') { + if (typeof optionsOrCb !== 'object') + throw new Error( + `Expected http options but got ${typeof optionsOrCb}` + ) + this.send(command2, optionsOrCb || {}, cb) + } else { + return this.send(command2, optionsOrCb) + } + }, 'methodImpl') + const methodName = ( + command[0].toLowerCase() + command.slice(1) + ).replace(/Command$/, '') + Client2.prototype[methodName] = methodImpl + } + }, + 'createAggregatedClient' + ) + // src/parse-utils.ts + var parseBoolean = /* @__PURE__ */ __name(value => { + switch (value) { + case 'true': + return true + case 'false': + return false + default: + throw new Error(`Unable to parse boolean value "${value}"`) + } + }, 'parseBoolean') + var expectBoolean = /* @__PURE__ */ __name(value => { + if (value === null || value === void 0) { + return void 0 + } + if (typeof value === 'number') { + if (value === 0 || value === 1) { + logger.warn( + stackTraceWarning( + `Expected boolean, got ${typeof value}: ${value}` + ) + ) + } + if (value === 0) { + return false + } + if (value === 1) { + return true + } + } + if (typeof value === 'string') { + const lower = value.toLowerCase() + if (lower === 'false' || lower === 'true') { + logger.warn( + stackTraceWarning( + `Expected boolean, got ${typeof value}: ${value}` + ) + ) + } + if (lower === 'false') { + return false + } + if (lower === 'true') { + return true + } + } + if (typeof value === 'boolean') { + return value + } + throw new TypeError(`Expected boolean, got ${typeof value}: ${value}`) + }, 'expectBoolean') + var expectNumber = /* @__PURE__ */ __name(value => { + if (value === null || value === void 0) { + return void 0 + } + if (typeof value === 'string') { + const parsed = parseFloat(value) + if (!Number.isNaN(parsed)) { + if (String(parsed) !== String(value)) { + logger.warn( + stackTraceWarning( + `Expected number but observed string: ${value}` + ) + ) + } + return parsed + } + } + if (typeof value === 'number') { + return value + } + throw new TypeError(`Expected number, got ${typeof value}: ${value}`) + }, 'expectNumber') + var MAX_FLOAT = Math.ceil(2 ** 127 * (2 - 2 ** -23)) + var expectFloat32 = /* @__PURE__ */ __name(value => { + const expected = expectNumber(value) + if ( + expected !== void 0 && + !Number.isNaN(expected) && + expected !== Infinity && + expected !== -Infinity + ) { + if (Math.abs(expected) > MAX_FLOAT) { + throw new TypeError(`Expected 32-bit float, got ${value}`) + } + } + return expected + }, 'expectFloat32') + var expectLong = /* @__PURE__ */ __name(value => { + if (value === null || value === void 0) { + return void 0 + } + if (Number.isInteger(value) && !Number.isNaN(value)) { + return value + } + throw new TypeError(`Expected integer, got ${typeof value}: ${value}`) + }, 'expectLong') + var expectInt = expectLong + var expectInt32 = /* @__PURE__ */ __name( + value => expectSizedInt(value, 32), + 'expectInt32' + ) + var expectShort = /* @__PURE__ */ __name( + value => expectSizedInt(value, 16), + 'expectShort' + ) + var expectByte = /* @__PURE__ */ __name( + value => expectSizedInt(value, 8), + 'expectByte' + ) + var expectSizedInt = /* @__PURE__ */ __name((value, size) => { + const expected = expectLong(value) + if (expected !== void 0 && castInt(expected, size) !== expected) { + throw new TypeError(`Expected ${size}-bit integer, got ${value}`) + } + return expected + }, 'expectSizedInt') + var castInt = /* @__PURE__ */ __name((value, size) => { + switch (size) { + case 32: + return Int32Array.of(value)[0] + case 16: + return Int16Array.of(value)[0] + case 8: + return Int8Array.of(value)[0] + } + }, 'castInt') + var expectNonNull = /* @__PURE__ */ __name((value, location) => { + if (value === null || value === void 0) { + if (location) { + throw new TypeError(`Expected a non-null value for ${location}`) + } + throw new TypeError('Expected a non-null value') + } + return value + }, 'expectNonNull') + var expectObject = /* @__PURE__ */ __name(value => { + if (value === null || value === void 0) { + return void 0 + } + if (typeof value === 'object' && !Array.isArray(value)) { + return value + } + const receivedType = Array.isArray(value) ? 'array' : typeof value + throw new TypeError(`Expected object, got ${receivedType}: ${value}`) + }, 'expectObject') + var expectString = /* @__PURE__ */ __name(value => { + if (value === null || value === void 0) { + return void 0 + } + if (typeof value === 'string') { + return value + } + if (['boolean', 'number', 'bigint'].includes(typeof value)) { + logger.warn( + stackTraceWarning(`Expected string, got ${typeof value}: ${value}`) + ) + return String(value) + } + throw new TypeError(`Expected string, got ${typeof value}: ${value}`) + }, 'expectString') + var expectUnion = /* @__PURE__ */ __name(value => { + if (value === null || value === void 0) { + return void 0 + } + const asObject = expectObject(value) + const setKeys = Object.entries(asObject) + .filter(([, v]) => v != null) + .map(([k]) => k) + if (setKeys.length === 0) { + throw new TypeError( + `Unions must have exactly one non-null member. None were found.` + ) + } + if (setKeys.length > 1) { + throw new TypeError( + `Unions must have exactly one non-null member. Keys ${setKeys} were not null.` + ) + } + return asObject + }, 'expectUnion') + var strictParseDouble = /* @__PURE__ */ __name(value => { + if (typeof value == 'string') { + return expectNumber(parseNumber(value)) + } + return expectNumber(value) + }, 'strictParseDouble') + var strictParseFloat = strictParseDouble + var strictParseFloat32 = /* @__PURE__ */ __name(value => { + if (typeof value == 'string') { + return expectFloat32(parseNumber(value)) + } + return expectFloat32(value) + }, 'strictParseFloat32') + var NUMBER_REGEX = + /(-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?)|(-?Infinity)|(NaN)/g + var parseNumber = /* @__PURE__ */ __name(value => { + const matches = value.match(NUMBER_REGEX) + if (matches === null || matches[0].length !== value.length) { + throw new TypeError(`Expected real number, got implicit NaN`) + } + return parseFloat(value) + }, 'parseNumber') + var limitedParseDouble = /* @__PURE__ */ __name(value => { + if (typeof value == 'string') { + return parseFloatString(value) + } + return expectNumber(value) + }, 'limitedParseDouble') + var handleFloat = limitedParseDouble + var limitedParseFloat = limitedParseDouble + var limitedParseFloat32 = /* @__PURE__ */ __name(value => { + if (typeof value == 'string') { + return parseFloatString(value) + } + return expectFloat32(value) + }, 'limitedParseFloat32') + var parseFloatString = /* @__PURE__ */ __name(value => { + switch (value) { + case 'NaN': + return NaN + case 'Infinity': + return Infinity + case '-Infinity': + return -Infinity + default: + throw new Error(`Unable to parse float value: ${value}`) + } + }, 'parseFloatString') + var strictParseLong = /* @__PURE__ */ __name(value => { + if (typeof value === 'string') { + return expectLong(parseNumber(value)) + } + return expectLong(value) + }, 'strictParseLong') + var strictParseInt = strictParseLong + var strictParseInt32 = /* @__PURE__ */ __name(value => { + if (typeof value === 'string') { + return expectInt32(parseNumber(value)) + } + return expectInt32(value) + }, 'strictParseInt32') + var strictParseShort = /* @__PURE__ */ __name(value => { + if (typeof value === 'string') { + return expectShort(parseNumber(value)) + } + return expectShort(value) + }, 'strictParseShort') + var strictParseByte = /* @__PURE__ */ __name(value => { + if (typeof value === 'string') { + return expectByte(parseNumber(value)) + } + return expectByte(value) + }, 'strictParseByte') + var stackTraceWarning = /* @__PURE__ */ __name(message => { + return String(new TypeError(message).stack || message) + .split('\n') + .slice(0, 5) + .filter(s => !s.includes('stackTraceWarning')) + .join('\n') + }, 'stackTraceWarning') + var logger = { + warn: console.warn + } + + // src/date-utils.ts + var DAYS = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'] + var MONTHS = [ + 'Jan', + 'Feb', + 'Mar', + 'Apr', + 'May', + 'Jun', + 'Jul', + 'Aug', + 'Sep', + 'Oct', + 'Nov', + 'Dec' + ] + function dateToUtcString(date) { + const year = date.getUTCFullYear() + const month = date.getUTCMonth() + const dayOfWeek = date.getUTCDay() + const dayOfMonthInt = date.getUTCDate() + const hoursInt = date.getUTCHours() + const minutesInt = date.getUTCMinutes() + const secondsInt = date.getUTCSeconds() + const dayOfMonthString = + dayOfMonthInt < 10 ? `0${dayOfMonthInt}` : `${dayOfMonthInt}` + const hoursString = hoursInt < 10 ? `0${hoursInt}` : `${hoursInt}` + const minutesString = + minutesInt < 10 ? `0${minutesInt}` : `${minutesInt}` + const secondsString = + secondsInt < 10 ? `0${secondsInt}` : `${secondsInt}` + return `${DAYS[dayOfWeek]}, ${dayOfMonthString} ${MONTHS[month]} ${year} ${hoursString}:${minutesString}:${secondsString} GMT` + } + __name(dateToUtcString, 'dateToUtcString') + var RFC3339 = new RegExp( + /^(\d{4})-(\d{2})-(\d{2})[tT](\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?[zZ]$/ + ) + var parseRfc3339DateTime = /* @__PURE__ */ __name(value => { + if (value === null || value === void 0) { + return void 0 + } + if (typeof value !== 'string') { + throw new TypeError( + 'RFC-3339 date-times must be expressed as strings' + ) + } + const match = RFC3339.exec(value) + if (!match) { + throw new TypeError('Invalid RFC-3339 date-time value') + } + const [ + _, + yearStr, + monthStr, + dayStr, + hours, + minutes, + seconds, + fractionalMilliseconds + ] = match + const year = strictParseShort(stripLeadingZeroes(yearStr)) + const month = parseDateValue(monthStr, 'month', 1, 12) + const day = parseDateValue(dayStr, 'day', 1, 31) + return buildDate(year, month, day, { + hours, + minutes, + seconds, + fractionalMilliseconds + }) + }, 'parseRfc3339DateTime') + var RFC3339_WITH_OFFSET = new RegExp( + /^(\d{4})-(\d{2})-(\d{2})[tT](\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?(([-+]\d{2}\:\d{2})|[zZ])$/ + ) + var parseRfc3339DateTimeWithOffset = /* @__PURE__ */ __name(value => { + if (value === null || value === void 0) { + return void 0 + } + if (typeof value !== 'string') { + throw new TypeError( + 'RFC-3339 date-times must be expressed as strings' + ) + } + const match = RFC3339_WITH_OFFSET.exec(value) + if (!match) { + throw new TypeError('Invalid RFC-3339 date-time value') + } + const [ + _, + yearStr, + monthStr, + dayStr, + hours, + minutes, + seconds, + fractionalMilliseconds, + offsetStr + ] = match + const year = strictParseShort(stripLeadingZeroes(yearStr)) + const month = parseDateValue(monthStr, 'month', 1, 12) + const day = parseDateValue(dayStr, 'day', 1, 31) + const date = buildDate(year, month, day, { + hours, + minutes, + seconds, + fractionalMilliseconds + }) + if (offsetStr.toUpperCase() != 'Z') { + date.setTime(date.getTime() - parseOffsetToMilliseconds(offsetStr)) + } + return date + }, 'parseRfc3339DateTimeWithOffset') + var IMF_FIXDATE = new RegExp( + /^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d{2}) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d{1,2}):(\d{2}):(\d{2})(?:\.(\d+))? GMT$/ + ) + var RFC_850_DATE = new RegExp( + /^(?:Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d{2})-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d{2}) (\d{1,2}):(\d{2}):(\d{2})(?:\.(\d+))? GMT$/ + ) + var ASC_TIME = new RegExp( + /^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( [1-9]|\d{2}) (\d{1,2}):(\d{2}):(\d{2})(?:\.(\d+))? (\d{4})$/ + ) + var parseRfc7231DateTime = /* @__PURE__ */ __name(value => { + if (value === null || value === void 0) { + return void 0 + } + if (typeof value !== 'string') { + throw new TypeError( + 'RFC-7231 date-times must be expressed as strings' + ) + } + let match = IMF_FIXDATE.exec(value) + if (match) { + const [ + _, + dayStr, + monthStr, + yearStr, + hours, + minutes, + seconds, + fractionalMilliseconds + ] = match + return buildDate( + strictParseShort(stripLeadingZeroes(yearStr)), + parseMonthByShortName(monthStr), + parseDateValue(dayStr, 'day', 1, 31), + { hours, minutes, seconds, fractionalMilliseconds } + ) + } + match = RFC_850_DATE.exec(value) + if (match) { + const [ + _, + dayStr, + monthStr, + yearStr, + hours, + minutes, + seconds, + fractionalMilliseconds + ] = match + return adjustRfc850Year( + buildDate( + parseTwoDigitYear(yearStr), + parseMonthByShortName(monthStr), + parseDateValue(dayStr, 'day', 1, 31), + { + hours, + minutes, + seconds, + fractionalMilliseconds + } + ) + ) + } + match = ASC_TIME.exec(value) + if (match) { + const [ + _, + monthStr, + dayStr, + hours, + minutes, + seconds, + fractionalMilliseconds, + yearStr + ] = match + return buildDate( + strictParseShort(stripLeadingZeroes(yearStr)), + parseMonthByShortName(monthStr), + parseDateValue(dayStr.trimLeft(), 'day', 1, 31), + { hours, minutes, seconds, fractionalMilliseconds } + ) + } + throw new TypeError('Invalid RFC-7231 date-time value') + }, 'parseRfc7231DateTime') + var parseEpochTimestamp = /* @__PURE__ */ __name(value => { + if (value === null || value === void 0) { + return void 0 + } + let valueAsDouble + if (typeof value === 'number') { + valueAsDouble = value + } else if (typeof value === 'string') { + valueAsDouble = strictParseDouble(value) + } else if (typeof value === 'object' && value.tag === 1) { + valueAsDouble = value.value + } else { + throw new TypeError( + 'Epoch timestamps must be expressed as floating point numbers or their string representation' + ) + } + if ( + Number.isNaN(valueAsDouble) || + valueAsDouble === Infinity || + valueAsDouble === -Infinity + ) { + throw new TypeError( + 'Epoch timestamps must be valid, non-Infinite, non-NaN numerics' + ) + } + return new Date(Math.round(valueAsDouble * 1e3)) + }, 'parseEpochTimestamp') + var buildDate = /* @__PURE__ */ __name((year, month, day, time) => { + const adjustedMonth = month - 1 + validateDayOfMonth(year, adjustedMonth, day) + return new Date( + Date.UTC( + year, + adjustedMonth, + day, + parseDateValue(time.hours, 'hour', 0, 23), + parseDateValue(time.minutes, 'minute', 0, 59), + // seconds can go up to 60 for leap seconds + parseDateValue(time.seconds, 'seconds', 0, 60), + parseMilliseconds(time.fractionalMilliseconds) + ) + ) + }, 'buildDate') + var parseTwoDigitYear = /* @__PURE__ */ __name(value => { + const thisYear = /* @__PURE__ */ new Date().getUTCFullYear() + const valueInThisCentury = + Math.floor(thisYear / 100) * 100 + + strictParseShort(stripLeadingZeroes(value)) + if (valueInThisCentury < thisYear) { + return valueInThisCentury + 100 + } + return valueInThisCentury + }, 'parseTwoDigitYear') + var FIFTY_YEARS_IN_MILLIS = 50 * 365 * 24 * 60 * 60 * 1e3 + var adjustRfc850Year = /* @__PURE__ */ __name(input => { + if ( + input.getTime() - /* @__PURE__ */ new Date().getTime() > + FIFTY_YEARS_IN_MILLIS + ) { + return new Date( + Date.UTC( + input.getUTCFullYear() - 100, + input.getUTCMonth(), + input.getUTCDate(), + input.getUTCHours(), + input.getUTCMinutes(), + input.getUTCSeconds(), + input.getUTCMilliseconds() + ) + ) + } + return input + }, 'adjustRfc850Year') + var parseMonthByShortName = /* @__PURE__ */ __name(value => { + const monthIdx = MONTHS.indexOf(value) + if (monthIdx < 0) { + throw new TypeError(`Invalid month: ${value}`) + } + return monthIdx + 1 + }, 'parseMonthByShortName') + var DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] + var validateDayOfMonth = /* @__PURE__ */ __name((year, month, day) => { + let maxDays = DAYS_IN_MONTH[month] + if (month === 1 && isLeapYear(year)) { + maxDays = 29 + } + if (day > maxDays) { + throw new TypeError( + `Invalid day for ${MONTHS[month]} in ${year}: ${day}` + ) + } + }, 'validateDayOfMonth') + var isLeapYear = /* @__PURE__ */ __name(year => { + return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0) + }, 'isLeapYear') + var parseDateValue = /* @__PURE__ */ __name( + (value, type, lower, upper) => { + const dateVal = strictParseByte(stripLeadingZeroes(value)) + if (dateVal < lower || dateVal > upper) { + throw new TypeError( + `${type} must be between ${lower} and ${upper}, inclusive` + ) + } + return dateVal + }, + 'parseDateValue' + ) + var parseMilliseconds = /* @__PURE__ */ __name(value => { + if (value === null || value === void 0) { + return 0 + } + return strictParseFloat32('0.' + value) * 1e3 + }, 'parseMilliseconds') + var parseOffsetToMilliseconds = /* @__PURE__ */ __name(value => { + const directionStr = value[0] + let direction = 1 + if (directionStr == '+') { + direction = 1 + } else if (directionStr == '-') { + direction = -1 + } else { + throw new TypeError( + `Offset direction, ${directionStr}, must be "+" or "-"` + ) + } + const hour = Number(value.substring(1, 3)) + const minute = Number(value.substring(4, 6)) + return direction * (hour * 60 + minute) * 60 * 1e3 + }, 'parseOffsetToMilliseconds') + var stripLeadingZeroes = /* @__PURE__ */ __name(value => { + let idx = 0 + while (idx < value.length - 1 && value.charAt(idx) === '0') { + idx++ + } + if (idx === 0) { + return value + } + return value.slice(idx) + }, 'stripLeadingZeroes') + + // src/exceptions.ts + var ServiceException = class _ServiceException extends Error { + static { + __name(this, 'ServiceException') + } + constructor(options) { + super(options.message) + Object.setPrototypeOf( + this, + Object.getPrototypeOf(this).constructor.prototype + ) + this.name = options.name + this.$fault = options.$fault + this.$metadata = options.$metadata + } + /** + * Checks if a value is an instance of ServiceException (duck typed) + */ + static isInstance(value) { + if (!value) return false + const candidate = value + return ( + _ServiceException.prototype.isPrototypeOf(candidate) || + (Boolean(candidate.$fault) && + Boolean(candidate.$metadata) && + (candidate.$fault === 'client' || candidate.$fault === 'server')) + ) + } + /** + * Custom instanceof check to support the operator for ServiceException base class + */ + static [Symbol.hasInstance](instance) { + if (!instance) return false + const candidate = instance + if (this === _ServiceException) { + return _ServiceException.isInstance(instance) + } + if (_ServiceException.isInstance(instance)) { + if (candidate.name && this.name) { + return ( + this.prototype.isPrototypeOf(instance) || + candidate.name === this.name + ) + } + return this.prototype.isPrototypeOf(instance) + } + return false + } + } + var decorateServiceException = /* @__PURE__ */ __name( + (exception, additions = {}) => { + Object.entries(additions) + .filter(([, v]) => v !== void 0) + .forEach(([k, v]) => { + if (exception[k] == void 0 || exception[k] === '') { + exception[k] = v + } + }) + const message = + exception.message || exception.Message || 'UnknownError' + exception.message = message + delete exception.Message + return exception + }, + 'decorateServiceException' + ) -var _ListResourceScanResourcesCommand = class _ListResourceScanResourcesCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "ListResourceScanResources", {}).n("CloudFormationClient", "ListResourceScanResourcesCommand").f(void 0, void 0).ser(se_ListResourceScanResourcesCommand).de(de_ListResourceScanResourcesCommand).build() { -}; -__name(_ListResourceScanResourcesCommand, "ListResourceScanResourcesCommand"); -var ListResourceScanResourcesCommand = _ListResourceScanResourcesCommand; + // src/default-error-handler.ts + var throwDefaultError = /* @__PURE__ */ __name( + ({ output, parsedBody, exceptionCtor, errorCode }) => { + const $metadata = deserializeMetadata(output) + const statusCode = $metadata.httpStatusCode + ? $metadata.httpStatusCode + '' + : void 0 + const response = new exceptionCtor({ + name: + parsedBody?.code || + parsedBody?.Code || + errorCode || + statusCode || + 'UnknownError', + $fault: 'client', + $metadata + }) + throw decorateServiceException(response, parsedBody) + }, + 'throwDefaultError' + ) + var withBaseException = /* @__PURE__ */ __name(ExceptionCtor => { + return ({ output, parsedBody, errorCode }) => { + throwDefaultError({ + output, + parsedBody, + exceptionCtor: ExceptionCtor, + errorCode + }) + } + }, 'withBaseException') + var deserializeMetadata = /* @__PURE__ */ __name( + output => ({ + httpStatusCode: output.statusCode, + requestId: + output.headers['x-amzn-requestid'] ?? + output.headers['x-amzn-request-id'] ?? + output.headers['x-amz-request-id'], + extendedRequestId: output.headers['x-amz-id-2'], + cfId: output.headers['x-amz-cf-id'] + }), + 'deserializeMetadata' + ) -// src/commands/ListResourceScansCommand.ts + // src/defaults-mode.ts + var loadConfigsForDefaultMode = /* @__PURE__ */ __name(mode => { + switch (mode) { + case 'standard': + return { + retryMode: 'standard', + connectionTimeout: 3100 + } + case 'in-region': + return { + retryMode: 'standard', + connectionTimeout: 1100 + } + case 'cross-region': + return { + retryMode: 'standard', + connectionTimeout: 3100 + } + case 'mobile': + return { + retryMode: 'standard', + connectionTimeout: 3e4 + } + default: + return {} + } + }, 'loadConfigsForDefaultMode') + // src/emitWarningIfUnsupportedVersion.ts + var warningEmitted = false + var emitWarningIfUnsupportedVersion = /* @__PURE__ */ __name(version => { + if ( + version && + !warningEmitted && + parseInt(version.substring(1, version.indexOf('.'))) < 16 + ) { + warningEmitted = true + } + }, 'emitWarningIfUnsupportedVersion') + // src/extended-encode-uri-component.ts -var _ListResourceScansCommand = class _ListResourceScansCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "ListResourceScans", {}).n("CloudFormationClient", "ListResourceScansCommand").f(void 0, void 0).ser(se_ListResourceScansCommand).de(de_ListResourceScansCommand).build() { -}; -__name(_ListResourceScansCommand, "ListResourceScansCommand"); -var ListResourceScansCommand = _ListResourceScansCommand; + // src/extensions/checksum.ts -// src/commands/ListStackInstanceResourceDriftsCommand.ts + var getChecksumConfiguration = /* @__PURE__ */ __name(runtimeConfig => { + const checksumAlgorithms = [] + for (const id in import_types.AlgorithmId) { + const algorithmId = import_types.AlgorithmId[id] + if (runtimeConfig[algorithmId] === void 0) { + continue + } + checksumAlgorithms.push({ + algorithmId: () => algorithmId, + checksumConstructor: () => runtimeConfig[algorithmId] + }) + } + return { + addChecksumAlgorithm(algo) { + checksumAlgorithms.push(algo) + }, + checksumAlgorithms() { + return checksumAlgorithms + } + } + }, 'getChecksumConfiguration') + var resolveChecksumRuntimeConfig = /* @__PURE__ */ __name( + clientConfig => { + const runtimeConfig = {} + clientConfig.checksumAlgorithms().forEach(checksumAlgorithm => { + runtimeConfig[checksumAlgorithm.algorithmId()] = + checksumAlgorithm.checksumConstructor() + }) + return runtimeConfig + }, + 'resolveChecksumRuntimeConfig' + ) + // src/extensions/retry.ts + var getRetryConfiguration = /* @__PURE__ */ __name(runtimeConfig => { + return { + setRetryStrategy(retryStrategy) { + runtimeConfig.retryStrategy = retryStrategy + }, + retryStrategy() { + return runtimeConfig.retryStrategy + } + } + }, 'getRetryConfiguration') + var resolveRetryRuntimeConfig = /* @__PURE__ */ __name( + retryStrategyConfiguration => { + const runtimeConfig = {} + runtimeConfig.retryStrategy = + retryStrategyConfiguration.retryStrategy() + return runtimeConfig + }, + 'resolveRetryRuntimeConfig' + ) + // src/extensions/defaultExtensionConfiguration.ts + var getDefaultExtensionConfiguration = /* @__PURE__ */ __name( + runtimeConfig => { + return Object.assign( + getChecksumConfiguration(runtimeConfig), + getRetryConfiguration(runtimeConfig) + ) + }, + 'getDefaultExtensionConfiguration' + ) + var getDefaultClientConfiguration = getDefaultExtensionConfiguration + var resolveDefaultRuntimeConfig = /* @__PURE__ */ __name(config => { + return Object.assign( + resolveChecksumRuntimeConfig(config), + resolveRetryRuntimeConfig(config) + ) + }, 'resolveDefaultRuntimeConfig') -var _ListStackInstanceResourceDriftsCommand = class _ListStackInstanceResourceDriftsCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "ListStackInstanceResourceDrifts", {}).n("CloudFormationClient", "ListStackInstanceResourceDriftsCommand").f(void 0, void 0).ser(se_ListStackInstanceResourceDriftsCommand).de(de_ListStackInstanceResourceDriftsCommand).build() { -}; -__name(_ListStackInstanceResourceDriftsCommand, "ListStackInstanceResourceDriftsCommand"); -var ListStackInstanceResourceDriftsCommand = _ListStackInstanceResourceDriftsCommand; + // src/get-array-if-single-item.ts + var getArrayIfSingleItem = /* @__PURE__ */ __name( + mayBeArray => (Array.isArray(mayBeArray) ? mayBeArray : [mayBeArray]), + 'getArrayIfSingleItem' + ) -// src/commands/ListStackInstancesCommand.ts + // src/get-value-from-text-node.ts + var getValueFromTextNode = /* @__PURE__ */ __name(obj => { + const textNodeName = '#text' + for (const key in obj) { + if (obj.hasOwnProperty(key) && obj[key][textNodeName] !== void 0) { + obj[key] = obj[key][textNodeName] + } else if (typeof obj[key] === 'object' && obj[key] !== null) { + obj[key] = getValueFromTextNode(obj[key]) + } + } + return obj + }, 'getValueFromTextNode') + // src/is-serializable-header-value.ts + var isSerializableHeaderValue = /* @__PURE__ */ __name(value => { + return value != null + }, 'isSerializableHeaderValue') + // src/lazy-json.ts + var LazyJsonString = /* @__PURE__ */ __name(function LazyJsonString2( + val + ) { + const str = Object.assign(new String(val), { + deserializeJSON() { + return JSON.parse(String(val)) + }, + toString() { + return String(val) + }, + toJSON() { + return String(val) + } + }) + return str + }, 'LazyJsonString') + LazyJsonString.from = object => { + if ( + object && + typeof object === 'object' && + (object instanceof LazyJsonString || 'deserializeJSON' in object) + ) { + return object + } else if ( + typeof object === 'string' || + Object.getPrototypeOf(object) === String.prototype + ) { + return LazyJsonString(String(object)) + } + return LazyJsonString(JSON.stringify(object)) + } + LazyJsonString.fromObject = LazyJsonString.from -var _ListStackInstancesCommand = class _ListStackInstancesCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "ListStackInstances", {}).n("CloudFormationClient", "ListStackInstancesCommand").f(void 0, void 0).ser(se_ListStackInstancesCommand).de(de_ListStackInstancesCommand).build() { -}; -__name(_ListStackInstancesCommand, "ListStackInstancesCommand"); -var ListStackInstancesCommand = _ListStackInstancesCommand; + // src/NoOpLogger.ts + var NoOpLogger = class { + static { + __name(this, 'NoOpLogger') + } + trace() {} + debug() {} + info() {} + warn() {} + error() {} + } -// src/commands/ListStackResourcesCommand.ts + // src/object-mapping.ts + function map(arg0, arg1, arg2) { + let target + let filter + let instructions + if (typeof arg1 === 'undefined' && typeof arg2 === 'undefined') { + target = {} + instructions = arg0 + } else { + target = arg0 + if (typeof arg1 === 'function') { + filter = arg1 + instructions = arg2 + return mapWithFilter(target, filter, instructions) + } else { + instructions = arg1 + } + } + for (const key of Object.keys(instructions)) { + if (!Array.isArray(instructions[key])) { + target[key] = instructions[key] + continue + } + applyInstruction(target, null, instructions, key) + } + return target + } + __name(map, 'map') + var convertMap = /* @__PURE__ */ __name(target => { + const output = {} + for (const [k, v] of Object.entries(target || {})) { + output[k] = [, v] + } + return output + }, 'convertMap') + var take = /* @__PURE__ */ __name((source, instructions) => { + const out = {} + for (const key in instructions) { + applyInstruction(out, source, instructions, key) + } + return out + }, 'take') + var mapWithFilter = /* @__PURE__ */ __name( + (target, filter, instructions) => { + return map( + target, + Object.entries(instructions).reduce( + (_instructions, [key, value]) => { + if (Array.isArray(value)) { + _instructions[key] = value + } else { + if (typeof value === 'function') { + _instructions[key] = [filter, value()] + } else { + _instructions[key] = [filter, value] + } + } + return _instructions + }, + {} + ) + ) + }, + 'mapWithFilter' + ) + var applyInstruction = /* @__PURE__ */ __name( + (target, source, instructions, targetKey) => { + if (source !== null) { + let instruction = instructions[targetKey] + if (typeof instruction === 'function') { + instruction = [, instruction] + } + const [ + filter2 = nonNullish, + valueFn = pass, + sourceKey = targetKey + ] = instruction + if ( + (typeof filter2 === 'function' && filter2(source[sourceKey])) || + (typeof filter2 !== 'function' && !!filter2) + ) { + target[targetKey] = valueFn(source[sourceKey]) + } + return + } + let [filter, value] = instructions[targetKey] + if (typeof value === 'function') { + let _value + const defaultFilterPassed = + filter === void 0 && (_value = value()) != null + const customFilterPassed = + (typeof filter === 'function' && !!filter(void 0)) || + (typeof filter !== 'function' && !!filter) + if (defaultFilterPassed) { + target[targetKey] = _value + } else if (customFilterPassed) { + target[targetKey] = value() + } + } else { + const defaultFilterPassed = filter === void 0 && value != null + const customFilterPassed = + (typeof filter === 'function' && !!filter(value)) || + (typeof filter !== 'function' && !!filter) + if (defaultFilterPassed || customFilterPassed) { + target[targetKey] = value + } + } + }, + 'applyInstruction' + ) + var nonNullish = /* @__PURE__ */ __name(_ => _ != null, 'nonNullish') + var pass = /* @__PURE__ */ __name(_ => _, 'pass') + // src/quote-header.ts + function quoteHeader(part) { + if (part.includes(',') || part.includes('"')) { + part = `"${part.replace(/"/g, '\\"')}"` + } + return part + } + __name(quoteHeader, 'quoteHeader') + // src/resolve-path.ts -var _ListStackResourcesCommand = class _ListStackResourcesCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "ListStackResources", {}).n("CloudFormationClient", "ListStackResourcesCommand").f(void 0, void 0).ser(se_ListStackResourcesCommand).de(de_ListStackResourcesCommand).build() { -}; -__name(_ListStackResourcesCommand, "ListStackResourcesCommand"); -var ListStackResourcesCommand = _ListStackResourcesCommand; + // src/ser-utils.ts + var serializeFloat = /* @__PURE__ */ __name(value => { + if (value !== value) { + return 'NaN' + } + switch (value) { + case Infinity: + return 'Infinity' + case -Infinity: + return '-Infinity' + default: + return value + } + }, 'serializeFloat') + var serializeDateTime = /* @__PURE__ */ __name( + date => date.toISOString().replace('.000Z', 'Z'), + 'serializeDateTime' + ) -// src/commands/ListStacksCommand.ts + // src/serde-json.ts + var _json = /* @__PURE__ */ __name(obj => { + if (obj == null) { + return {} + } + if (Array.isArray(obj)) { + return obj.filter(_ => _ != null).map(_json) + } + if (typeof obj === 'object') { + const target = {} + for (const key of Object.keys(obj)) { + if (obj[key] == null) { + continue + } + target[key] = _json(obj[key]) + } + return target + } + return obj + }, '_json') + // src/split-every.ts + function splitEvery(value, delimiter, numDelimiters) { + if (numDelimiters <= 0 || !Number.isInteger(numDelimiters)) { + throw new Error( + 'Invalid number of delimiters (' + + numDelimiters + + ') for splitEvery.' + ) + } + const segments = value.split(delimiter) + if (numDelimiters === 1) { + return segments + } + const compoundSegments = [] + let currentSegment = '' + for (let i = 0; i < segments.length; i++) { + if (currentSegment === '') { + currentSegment = segments[i] + } else { + currentSegment += delimiter + segments[i] + } + if ((i + 1) % numDelimiters === 0) { + compoundSegments.push(currentSegment) + currentSegment = '' + } + } + if (currentSegment !== '') { + compoundSegments.push(currentSegment) + } + return compoundSegments + } + __name(splitEvery, 'splitEvery') + + // src/split-header.ts + var splitHeader = /* @__PURE__ */ __name(value => { + const z = value.length + const values = [] + let withinQuotes = false + let prevChar = void 0 + let anchor = 0 + for (let i = 0; i < z; ++i) { + const char = value[i] + switch (char) { + case `"`: + if (prevChar !== '\\') { + withinQuotes = !withinQuotes + } + break + case ',': + if (!withinQuotes) { + values.push(value.slice(anchor, i)) + anchor = i + 1 + } + break + default: + } + prevChar = char + } + values.push(value.slice(anchor)) + return values.map(v => { + v = v.trim() + const z2 = v.length + if (z2 < 2) { + return v + } + if (v[0] === `"` && v[z2 - 1] === `"`) { + v = v.slice(1, z2 - 1) + } + return v.replace(/\\"/g, '"') + }) + }, 'splitHeader') + // Annotate the CommonJS export names for ESM import in node: + 0 && 0 -var _ListStacksCommand = class _ListStacksCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "ListStacks", {}).n("CloudFormationClient", "ListStacksCommand").f(void 0, void 0).ser(se_ListStacksCommand).de(de_ListStacksCommand).build() { -}; -__name(_ListStacksCommand, "ListStacksCommand"); -var ListStacksCommand = _ListStacksCommand; + /***/ + }, -// src/commands/ListStackSetAutoDeploymentTargetsCommand.ts + /***/ 63443: /***/ module => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + AlgorithmId: () => AlgorithmId, + EndpointURLScheme: () => EndpointURLScheme, + FieldPosition: () => FieldPosition, + HttpApiKeyAuthLocation: () => HttpApiKeyAuthLocation, + HttpAuthLocation: () => HttpAuthLocation, + IniSectionType: () => IniSectionType, + RequestHandlerProtocol: () => RequestHandlerProtocol, + SMITHY_CONTEXT_KEY: () => SMITHY_CONTEXT_KEY, + getDefaultClientConfiguration: () => getDefaultClientConfiguration, + resolveDefaultRuntimeConfig: () => resolveDefaultRuntimeConfig + }) + module.exports = __toCommonJS(src_exports) + + // src/auth/auth.ts + var HttpAuthLocation = /* @__PURE__ */ (HttpAuthLocation2 => { + HttpAuthLocation2['HEADER'] = 'header' + HttpAuthLocation2['QUERY'] = 'query' + return HttpAuthLocation2 + })(HttpAuthLocation || {}) + + // src/auth/HttpApiKeyAuth.ts + var HttpApiKeyAuthLocation = /* @__PURE__ */ (HttpApiKeyAuthLocation2 => { + HttpApiKeyAuthLocation2['HEADER'] = 'header' + HttpApiKeyAuthLocation2['QUERY'] = 'query' + return HttpApiKeyAuthLocation2 + })(HttpApiKeyAuthLocation || {}) + + // src/endpoint.ts + var EndpointURLScheme = /* @__PURE__ */ (EndpointURLScheme2 => { + EndpointURLScheme2['HTTP'] = 'http' + EndpointURLScheme2['HTTPS'] = 'https' + return EndpointURLScheme2 + })(EndpointURLScheme || {}) + + // src/extensions/checksum.ts + var AlgorithmId = /* @__PURE__ */ (AlgorithmId2 => { + AlgorithmId2['MD5'] = 'md5' + AlgorithmId2['CRC32'] = 'crc32' + AlgorithmId2['CRC32C'] = 'crc32c' + AlgorithmId2['SHA1'] = 'sha1' + AlgorithmId2['SHA256'] = 'sha256' + return AlgorithmId2 + })(AlgorithmId || {}) + var getChecksumConfiguration = /* @__PURE__ */ __name(runtimeConfig => { + const checksumAlgorithms = [] + if (runtimeConfig.sha256 !== void 0) { + checksumAlgorithms.push({ + algorithmId: () => 'sha256' /* SHA256 */, + checksumConstructor: () => runtimeConfig.sha256 + }) + } + if (runtimeConfig.md5 != void 0) { + checksumAlgorithms.push({ + algorithmId: () => 'md5' /* MD5 */, + checksumConstructor: () => runtimeConfig.md5 + }) + } + return { + addChecksumAlgorithm(algo) { + checksumAlgorithms.push(algo) + }, + checksumAlgorithms() { + return checksumAlgorithms + } + } + }, 'getChecksumConfiguration') + var resolveChecksumRuntimeConfig = /* @__PURE__ */ __name( + clientConfig => { + const runtimeConfig = {} + clientConfig.checksumAlgorithms().forEach(checksumAlgorithm => { + runtimeConfig[checksumAlgorithm.algorithmId()] = + checksumAlgorithm.checksumConstructor() + }) + return runtimeConfig + }, + 'resolveChecksumRuntimeConfig' + ) + // src/extensions/defaultClientConfiguration.ts + var getDefaultClientConfiguration = /* @__PURE__ */ __name( + runtimeConfig => { + return getChecksumConfiguration(runtimeConfig) + }, + 'getDefaultClientConfiguration' + ) + var resolveDefaultRuntimeConfig = /* @__PURE__ */ __name(config => { + return resolveChecksumRuntimeConfig(config) + }, 'resolveDefaultRuntimeConfig') + + // src/http.ts + var FieldPosition = /* @__PURE__ */ (FieldPosition2 => { + FieldPosition2[(FieldPosition2['HEADER'] = 0)] = 'HEADER' + FieldPosition2[(FieldPosition2['TRAILER'] = 1)] = 'TRAILER' + return FieldPosition2 + })(FieldPosition || {}) + + // src/middleware.ts + var SMITHY_CONTEXT_KEY = '__smithy_context' + + // src/profile.ts + var IniSectionType = /* @__PURE__ */ (IniSectionType2 => { + IniSectionType2['PROFILE'] = 'profile' + IniSectionType2['SSO_SESSION'] = 'sso-session' + IniSectionType2['SERVICES'] = 'services' + return IniSectionType2 + })(IniSectionType || {}) + + // src/transfer.ts + var RequestHandlerProtocol = /* @__PURE__ */ (RequestHandlerProtocol2 => { + RequestHandlerProtocol2['HTTP_0_9'] = 'http/0.9' + RequestHandlerProtocol2['HTTP_1_0'] = 'http/1.0' + RequestHandlerProtocol2['TDS_8_0'] = 'tds/8.0' + return RequestHandlerProtocol2 + })(RequestHandlerProtocol || {}) + // Annotate the CommonJS export names for ESM import in node: + + 0 && 0 + + /***/ + }, + /***/ 57247: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -var _ListStackSetAutoDeploymentTargetsCommand = class _ListStackSetAutoDeploymentTargetsCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "ListStackSetAutoDeploymentTargets", {}).n("CloudFormationClient", "ListStackSetAutoDeploymentTargetsCommand").f(void 0, void 0).ser(se_ListStackSetAutoDeploymentTargetsCommand).de(de_ListStackSetAutoDeploymentTargetsCommand).build() { -}; -__name(_ListStackSetAutoDeploymentTargetsCommand, "ListStackSetAutoDeploymentTargetsCommand"); -var ListStackSetAutoDeploymentTargetsCommand = _ListStackSetAutoDeploymentTargetsCommand; + // src/index.ts + var src_exports = {} + __export(src_exports, { + parseUrl: () => parseUrl + }) + module.exports = __toCommonJS(src_exports) + var import_querystring_parser = __nccwpck_require__(2465) + var parseUrl = /* @__PURE__ */ __name(url => { + if (typeof url === 'string') { + return parseUrl(new URL(url)) + } + const { hostname, pathname, port, protocol, search } = url + let query + if (search) { + query = (0, import_querystring_parser.parseQueryString)(search) + } + return { + hostname, + port: port ? parseInt(port) : void 0, + protocol, + path: pathname, + query + } + }, 'parseUrl') + // Annotate the CommonJS export names for ESM import in node: -// src/commands/ListStackSetOperationResultsCommand.ts + 0 && 0 + /***/ + }, + /***/ 75065: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.fromBase64 = void 0 + const util_buffer_from_1 = __nccwpck_require__(48928) + const BASE64_REGEX = /^[A-Za-z0-9+/]*={0,2}$/ + const fromBase64 = input => { + if ((input.length * 3) % 4 !== 0) { + throw new TypeError(`Incorrect padding on base64 string.`) + } + if (!BASE64_REGEX.exec(input)) { + throw new TypeError(`Invalid base64 string.`) + } + const buffer = (0, util_buffer_from_1.fromString)(input, 'base64') + return new Uint8Array( + buffer.buffer, + buffer.byteOffset, + buffer.byteLength + ) + } + exports.fromBase64 = fromBase64 -var _ListStackSetOperationResultsCommand = class _ListStackSetOperationResultsCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "ListStackSetOperationResults", {}).n("CloudFormationClient", "ListStackSetOperationResultsCommand").f(void 0, void 0).ser(se_ListStackSetOperationResultsCommand).de(de_ListStackSetOperationResultsCommand).build() { -}; -__name(_ListStackSetOperationResultsCommand, "ListStackSetOperationResultsCommand"); -var ListStackSetOperationResultsCommand = _ListStackSetOperationResultsCommand; + /***/ + }, -// src/commands/ListStackSetOperationsCommand.ts + /***/ 87656: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __reExport = (target, mod, secondTarget) => ( + __copyProps(target, mod, 'default'), + secondTarget && __copyProps(secondTarget, mod, 'default') + ) + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + // src/index.ts + var src_exports = {} + module.exports = __toCommonJS(src_exports) + __reExport(src_exports, __nccwpck_require__(75065), module.exports) + __reExport(src_exports, __nccwpck_require__(23674), module.exports) + // Annotate the CommonJS export names for ESM import in node: + 0 && 0 -var _ListStackSetOperationsCommand = class _ListStackSetOperationsCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "ListStackSetOperations", {}).n("CloudFormationClient", "ListStackSetOperationsCommand").f(void 0, void 0).ser(se_ListStackSetOperationsCommand).de(de_ListStackSetOperationsCommand).build() { -}; -__name(_ListStackSetOperationsCommand, "ListStackSetOperationsCommand"); -var ListStackSetOperationsCommand = _ListStackSetOperationsCommand; + /***/ + }, -// src/commands/ListStackSetsCommand.ts + /***/ 23674: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.toBase64 = void 0 + const util_buffer_from_1 = __nccwpck_require__(48928) + const util_utf8_1 = __nccwpck_require__(94377) + const toBase64 = _input => { + let input + if (typeof _input === 'string') { + input = (0, util_utf8_1.fromUtf8)(_input) + } else { + input = _input + } + if ( + typeof input !== 'object' || + typeof input.byteOffset !== 'number' || + typeof input.byteLength !== 'number' + ) { + throw new Error( + '@smithy/util-base64: toBase64 encoder function only accepts string | Uint8Array.' + ) + } + return (0, util_buffer_from_1.fromArrayBuffer)( + input.buffer, + input.byteOffset, + input.byteLength + ).toString('base64') + } + exports.toBase64 = toBase64 + /***/ + }, + /***/ 10327: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -var _ListStackSetsCommand = class _ListStackSetsCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "ListStackSets", {}).n("CloudFormationClient", "ListStackSetsCommand").f(void 0, void 0).ser(se_ListStackSetsCommand).de(de_ListStackSetsCommand).build() { -}; -__name(_ListStackSetsCommand, "ListStackSetsCommand"); -var ListStackSetsCommand = _ListStackSetsCommand; + // src/index.ts + var src_exports = {} + __export(src_exports, { + calculateBodyLength: () => calculateBodyLength + }) + module.exports = __toCommonJS(src_exports) + + // src/calculateBodyLength.ts + var import_fs = __nccwpck_require__(57147) + var calculateBodyLength = /* @__PURE__ */ __name(body => { + if (!body) { + return 0 + } + if (typeof body === 'string') { + return Buffer.byteLength(body) + } else if (typeof body.byteLength === 'number') { + return body.byteLength + } else if (typeof body.size === 'number') { + return body.size + } else if ( + typeof body.start === 'number' && + typeof body.end === 'number' + ) { + return body.end + 1 - body.start + } else if ( + typeof body.path === 'string' || + Buffer.isBuffer(body.path) + ) { + return (0, import_fs.lstatSync)(body.path).size + } else if (typeof body.fd === 'number') { + return (0, import_fs.fstatSync)(body.fd).size + } + throw new Error(`Body Length computation failed for ${body}`) + }, 'calculateBodyLength') + // Annotate the CommonJS export names for ESM import in node: -// src/commands/ListTypeRegistrationsCommand.ts + 0 && 0 + /***/ + }, + /***/ 48928: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -var _ListTypeRegistrationsCommand = class _ListTypeRegistrationsCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "ListTypeRegistrations", {}).n("CloudFormationClient", "ListTypeRegistrationsCommand").f(void 0, void 0).ser(se_ListTypeRegistrationsCommand).de(de_ListTypeRegistrationsCommand).build() { -}; -__name(_ListTypeRegistrationsCommand, "ListTypeRegistrationsCommand"); -var ListTypeRegistrationsCommand = _ListTypeRegistrationsCommand; + // src/index.ts + var src_exports = {} + __export(src_exports, { + fromArrayBuffer: () => fromArrayBuffer, + fromString: () => fromString + }) + module.exports = __toCommonJS(src_exports) + var import_is_array_buffer = __nccwpck_require__(22299) + var import_buffer = __nccwpck_require__(14300) + var fromArrayBuffer = /* @__PURE__ */ __name( + (input, offset = 0, length = input.byteLength - offset) => { + if (!(0, import_is_array_buffer.isArrayBuffer)(input)) { + throw new TypeError( + `The "input" argument must be ArrayBuffer. Received type ${typeof input} (${input})` + ) + } + return import_buffer.Buffer.from(input, offset, length) + }, + 'fromArrayBuffer' + ) + var fromString = /* @__PURE__ */ __name((input, encoding) => { + if (typeof input !== 'string') { + throw new TypeError( + `The "input" argument must be of type string. Received type ${typeof input} (${input})` + ) + } + return encoding + ? import_buffer.Buffer.from(input, encoding) + : import_buffer.Buffer.from(input) + }, 'fromString') + // Annotate the CommonJS export names for ESM import in node: -// src/commands/ListTypesCommand.ts + 0 && 0 + /***/ + }, + /***/ 64692: /***/ module => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -var _ListTypesCommand = class _ListTypesCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "ListTypes", {}).n("CloudFormationClient", "ListTypesCommand").f(void 0, void 0).ser(se_ListTypesCommand).de(de_ListTypesCommand).build() { -}; -__name(_ListTypesCommand, "ListTypesCommand"); -var ListTypesCommand = _ListTypesCommand; + // src/index.ts + var src_exports = {} + __export(src_exports, { + SelectorType: () => SelectorType, + booleanSelector: () => booleanSelector, + numberSelector: () => numberSelector + }) + module.exports = __toCommonJS(src_exports) -// src/commands/ListTypeVersionsCommand.ts + // src/booleanSelector.ts + var booleanSelector = /* @__PURE__ */ __name((obj, key, type) => { + if (!(key in obj)) return void 0 + if (obj[key] === 'true') return true + if (obj[key] === 'false') return false + throw new Error( + `Cannot load ${type} "${key}". Expected "true" or "false", got ${obj[key]}.` + ) + }, 'booleanSelector') + + // src/numberSelector.ts + var numberSelector = /* @__PURE__ */ __name((obj, key, type) => { + if (!(key in obj)) return void 0 + const numberValue = parseInt(obj[key], 10) + if (Number.isNaN(numberValue)) { + throw new TypeError( + `Cannot load ${type} '${key}'. Expected number, got '${obj[key]}'.` + ) + } + return numberValue + }, 'numberSelector') + // src/types.ts + var SelectorType = /* @__PURE__ */ (SelectorType2 => { + SelectorType2['ENV'] = 'env' + SelectorType2['CONFIG'] = 'shared config entry' + return SelectorType2 + })(SelectorType || {}) + // Annotate the CommonJS export names for ESM import in node: + 0 && 0 -var _ListTypeVersionsCommand = class _ListTypeVersionsCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "ListTypeVersions", {}).n("CloudFormationClient", "ListTypeVersionsCommand").f(void 0, void 0).ser(se_ListTypeVersionsCommand).de(de_ListTypeVersionsCommand).build() { -}; -__name(_ListTypeVersionsCommand, "ListTypeVersionsCommand"); -var ListTypeVersionsCommand = _ListTypeVersionsCommand; + /***/ + }, -// src/commands/PublishTypeCommand.ts + /***/ 32855: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __create = Object.create + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __getProtoOf = Object.getPrototypeOf + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toESM = (mod, isNodeMode, target) => ( + (target = mod != null ? __create(__getProtoOf(mod)) : {}), + __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule + ? __defProp(target, 'default', { value: mod, enumerable: true }) + : target, + mod + ) + ) + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + // src/index.ts + var src_exports = {} + __export(src_exports, { + resolveDefaultsModeConfig: () => resolveDefaultsModeConfig + }) + module.exports = __toCommonJS(src_exports) + + // src/resolveDefaultsModeConfig.ts + var import_config_resolver = __nccwpck_require__(47517) + var import_node_config_provider = __nccwpck_require__(6706) + var import_property_provider = __nccwpck_require__(19248) + + // src/constants.ts + var AWS_EXECUTION_ENV = 'AWS_EXECUTION_ENV' + var AWS_REGION_ENV = 'AWS_REGION' + var AWS_DEFAULT_REGION_ENV = 'AWS_DEFAULT_REGION' + var ENV_IMDS_DISABLED = 'AWS_EC2_METADATA_DISABLED' + var DEFAULTS_MODE_OPTIONS = [ + 'in-region', + 'cross-region', + 'mobile', + 'standard', + 'legacy' + ] + var IMDS_REGION_PATH = '/latest/meta-data/placement/region' + + // src/defaultsModeConfig.ts + var AWS_DEFAULTS_MODE_ENV = 'AWS_DEFAULTS_MODE' + var AWS_DEFAULTS_MODE_CONFIG = 'defaults_mode' + var NODE_DEFAULTS_MODE_CONFIG_OPTIONS = { + environmentVariableSelector: env => { + return env[AWS_DEFAULTS_MODE_ENV] + }, + configFileSelector: profile => { + return profile[AWS_DEFAULTS_MODE_CONFIG] + }, + default: 'legacy' + } + // src/resolveDefaultsModeConfig.ts + var resolveDefaultsModeConfig = /* @__PURE__ */ __name( + ({ + region = (0, import_node_config_provider.loadConfig)( + import_config_resolver.NODE_REGION_CONFIG_OPTIONS + ), + defaultsMode = (0, import_node_config_provider.loadConfig)( + NODE_DEFAULTS_MODE_CONFIG_OPTIONS + ) + } = {}) => + (0, import_property_provider.memoize)(async () => { + const mode = + typeof defaultsMode === 'function' + ? await defaultsMode() + : defaultsMode + switch (mode?.toLowerCase()) { + case 'auto': + return resolveNodeDefaultsModeAuto(region) + case 'in-region': + case 'cross-region': + case 'mobile': + case 'standard': + case 'legacy': + return Promise.resolve(mode?.toLocaleLowerCase()) + case void 0: + return Promise.resolve('legacy') + default: + throw new Error( + `Invalid parameter for "defaultsMode", expect ${DEFAULTS_MODE_OPTIONS.join(', ')}, got ${mode}` + ) + } + }), + 'resolveDefaultsModeConfig' + ) + var resolveNodeDefaultsModeAuto = /* @__PURE__ */ __name( + async clientRegion => { + if (clientRegion) { + const resolvedRegion = + typeof clientRegion === 'function' + ? await clientRegion() + : clientRegion + const inferredRegion = await inferPhysicalRegion() + if (!inferredRegion) { + return 'standard' + } + if (resolvedRegion === inferredRegion) { + return 'in-region' + } else { + return 'cross-region' + } + } + return 'standard' + }, + 'resolveNodeDefaultsModeAuto' + ) + var inferPhysicalRegion = /* @__PURE__ */ __name(async () => { + if ( + process.env[AWS_EXECUTION_ENV] && + (process.env[AWS_REGION_ENV] || process.env[AWS_DEFAULT_REGION_ENV]) + ) { + return ( + process.env[AWS_REGION_ENV] ?? process.env[AWS_DEFAULT_REGION_ENV] + ) + } + if (!process.env[ENV_IMDS_DISABLED]) { + try { + const { getInstanceMetadataEndpoint, httpRequest } = + await Promise.resolve().then(() => + __toESM(__nccwpck_require__(91502)) + ) + const endpoint = await getInstanceMetadataEndpoint() + return ( + await httpRequest({ ...endpoint, path: IMDS_REGION_PATH }) + ).toString() + } catch (e) {} + } + }, 'inferPhysicalRegion') + // Annotate the CommonJS export names for ESM import in node: -var _PublishTypeCommand = class _PublishTypeCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "PublishType", {}).n("CloudFormationClient", "PublishTypeCommand").f(void 0, void 0).ser(se_PublishTypeCommand).de(de_PublishTypeCommand).build() { -}; -__name(_PublishTypeCommand, "PublishTypeCommand"); -var PublishTypeCommand = _PublishTypeCommand; + 0 && 0 -// src/commands/RecordHandlerProgressCommand.ts + /***/ + }, + /***/ 76779: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + // src/index.ts + var src_exports = {} + __export(src_exports, { + EndpointCache: () => EndpointCache, + EndpointError: () => EndpointError, + customEndpointFunctions: () => customEndpointFunctions, + isIpAddress: () => isIpAddress, + isValidHostLabel: () => isValidHostLabel, + resolveEndpoint: () => resolveEndpoint + }) + module.exports = __toCommonJS(src_exports) -var _RecordHandlerProgressCommand = class _RecordHandlerProgressCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "RecordHandlerProgress", {}).n("CloudFormationClient", "RecordHandlerProgressCommand").f(void 0, void 0).ser(se_RecordHandlerProgressCommand).de(de_RecordHandlerProgressCommand).build() { -}; -__name(_RecordHandlerProgressCommand, "RecordHandlerProgressCommand"); -var RecordHandlerProgressCommand = _RecordHandlerProgressCommand; + // src/cache/EndpointCache.ts + var EndpointCache = class { + /** + * @param [size] - desired average maximum capacity. A buffer of 10 additional keys will be allowed + * before keys are dropped. + * @param [params] - list of params to consider as part of the cache key. + * + * If the params list is not populated, no caching will happen. + * This may be out of order depending on how the object is created and arrives to this class. + */ + constructor({ size, params }) { + this.data = /* @__PURE__ */ new Map() + this.parameters = [] + this.capacity = size ?? 50 + if (params) { + this.parameters = params + } + } + static { + __name(this, 'EndpointCache') + } + /** + * @param endpointParams - query for endpoint. + * @param resolver - provider of the value if not present. + * @returns endpoint corresponding to the query. + */ + get(endpointParams, resolver) { + const key = this.hash(endpointParams) + if (key === false) { + return resolver() + } + if (!this.data.has(key)) { + if (this.data.size > this.capacity + 10) { + const keys = this.data.keys() + let i = 0 + while (true) { + const { value, done } = keys.next() + this.data.delete(value) + if (done || ++i > 10) { + break + } + } + } + this.data.set(key, resolver()) + } + return this.data.get(key) + } + size() { + return this.data.size + } + /** + * @returns cache key or false if not cachable. + */ + hash(endpointParams) { + let buffer = '' + const { parameters } = this + if (parameters.length === 0) { + return false + } + for (const param of parameters) { + const val = String(endpointParams[param] ?? '') + if (val.includes('|;')) { + return false + } + buffer += val + '|;' + } + return buffer + } + } -// src/commands/RegisterPublisherCommand.ts + // src/lib/isIpAddress.ts + var 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}$` + ) + var isIpAddress = /* @__PURE__ */ __name( + value => + IP_V4_REGEX.test(value) || + (value.startsWith('[') && value.endsWith(']')), + 'isIpAddress' + ) + // src/lib/isValidHostLabel.ts + var VALID_HOST_LABEL_REGEX = new RegExp( + `^(?!.*-$)(?!-)[a-zA-Z0-9-]{1,63}$` + ) + var isValidHostLabel = /* @__PURE__ */ __name( + (value, allowSubDomains = false) => { + if (!allowSubDomains) { + return VALID_HOST_LABEL_REGEX.test(value) + } + const labels = value.split('.') + for (const label of labels) { + if (!isValidHostLabel(label)) { + return false + } + } + return true + }, + 'isValidHostLabel' + ) + // src/utils/customEndpointFunctions.ts + var customEndpointFunctions = {} -var _RegisterPublisherCommand = class _RegisterPublisherCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "RegisterPublisher", {}).n("CloudFormationClient", "RegisterPublisherCommand").f(void 0, void 0).ser(se_RegisterPublisherCommand).de(de_RegisterPublisherCommand).build() { -}; -__name(_RegisterPublisherCommand, "RegisterPublisherCommand"); -var RegisterPublisherCommand = _RegisterPublisherCommand; + // src/debug/debugId.ts + var debugId = 'endpoints' -// src/commands/RegisterTypeCommand.ts + // src/debug/toDebugString.ts + function toDebugString(input) { + if (typeof input !== 'object' || input == null) { + return input + } + if ('ref' in input) { + return `$${toDebugString(input.ref)}` + } + if ('fn' in input) { + return `${input.fn}(${(input.argv || []).map(toDebugString).join(', ')})` + } + return JSON.stringify(input, null, 2) + } + __name(toDebugString, 'toDebugString') + // src/types/EndpointError.ts + var EndpointError = class extends Error { + static { + __name(this, 'EndpointError') + } + constructor(message) { + super(message) + this.name = 'EndpointError' + } + } + // src/lib/booleanEquals.ts + var booleanEquals = /* @__PURE__ */ __name( + (value1, value2) => value1 === value2, + 'booleanEquals' + ) -var _RegisterTypeCommand = class _RegisterTypeCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "RegisterType", {}).n("CloudFormationClient", "RegisterTypeCommand").f(void 0, void 0).ser(se_RegisterTypeCommand).de(de_RegisterTypeCommand).build() { -}; -__name(_RegisterTypeCommand, "RegisterTypeCommand"); -var RegisterTypeCommand = _RegisterTypeCommand; + // src/lib/getAttrPathList.ts + var getAttrPathList = /* @__PURE__ */ __name(path => { + const parts = path.split('.') + const pathList = [] + for (const part of parts) { + const squareBracketIndex = part.indexOf('[') + if (squareBracketIndex !== -1) { + if (part.indexOf(']') !== part.length - 1) { + throw new EndpointError(`Path: '${path}' does not end with ']'`) + } + const arrayIndex = part.slice(squareBracketIndex + 1, -1) + if (Number.isNaN(parseInt(arrayIndex))) { + throw new EndpointError( + `Invalid array index: '${arrayIndex}' in path: '${path}'` + ) + } + if (squareBracketIndex !== 0) { + pathList.push(part.slice(0, squareBracketIndex)) + } + pathList.push(arrayIndex) + } else { + pathList.push(part) + } + } + return pathList + }, 'getAttrPathList') + + // src/lib/getAttr.ts + var getAttr = /* @__PURE__ */ __name( + (value, path) => + getAttrPathList(path).reduce((acc, index) => { + if (typeof acc !== 'object') { + throw new EndpointError( + `Index '${index}' in '${path}' not found in '${JSON.stringify(value)}'` + ) + } else if (Array.isArray(acc)) { + return acc[parseInt(index)] + } + return acc[index] + }, value), + 'getAttr' + ) -// src/commands/RollbackStackCommand.ts + // src/lib/isSet.ts + var isSet = /* @__PURE__ */ __name(value => value != null, 'isSet') + // src/lib/not.ts + var not = /* @__PURE__ */ __name(value => !value, 'not') + // src/lib/parseURL.ts + var import_types3 = __nccwpck_require__(63443) + var DEFAULT_PORTS = { + [import_types3.EndpointURLScheme.HTTP]: 80, + [import_types3.EndpointURLScheme.HTTPS]: 443 + } + var parseURL = /* @__PURE__ */ __name(value => { + const whatwgURL = (() => { + try { + if (value instanceof URL) { + return value + } + if (typeof value === 'object' && 'hostname' in value) { + const { + hostname: hostname2, + port, + protocol: protocol2 = '', + path = '', + query = {} + } = value + const url = new URL( + `${protocol2}//${hostname2}${port ? `:${port}` : ''}${path}` + ) + url.search = Object.entries(query) + .map(([k, v]) => `${k}=${v}`) + .join('&') + return url + } + return new URL(value) + } catch (error) { + return null + } + })() + if (!whatwgURL) { + console.error( + `Unable to parse ${JSON.stringify(value)} as a whatwg URL.` + ) + return null + } + const urlString = whatwgURL.href + const { host, hostname, pathname, protocol, search } = whatwgURL + if (search) { + return null + } + const scheme = protocol.slice(0, -1) + if (!Object.values(import_types3.EndpointURLScheme).includes(scheme)) { + return null + } + const isIp = isIpAddress(hostname) + const inputContainsDefaultPort = + urlString.includes(`${host}:${DEFAULT_PORTS[scheme]}`) || + (typeof value === 'string' && + value.includes(`${host}:${DEFAULT_PORTS[scheme]}`)) + const authority = `${host}${inputContainsDefaultPort ? `:${DEFAULT_PORTS[scheme]}` : ``}` + return { + scheme, + authority, + path: pathname, + normalizedPath: pathname.endsWith('/') ? pathname : `${pathname}/`, + isIp + } + }, 'parseURL') + + // src/lib/stringEquals.ts + var stringEquals = /* @__PURE__ */ __name( + (value1, value2) => value1 === value2, + 'stringEquals' + ) -var _RollbackStackCommand = class _RollbackStackCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "RollbackStack", {}).n("CloudFormationClient", "RollbackStackCommand").f(void 0, void 0).ser(se_RollbackStackCommand).de(de_RollbackStackCommand).build() { -}; -__name(_RollbackStackCommand, "RollbackStackCommand"); -var RollbackStackCommand = _RollbackStackCommand; + // src/lib/substring.ts + var substring = /* @__PURE__ */ __name((input, start, stop, reverse) => { + if (start >= stop || input.length < stop) { + return null + } + if (!reverse) { + return input.substring(start, stop) + } + return input.substring(input.length - stop, input.length - start) + }, 'substring') + + // src/lib/uriEncode.ts + var uriEncode = /* @__PURE__ */ __name( + value => + encodeURIComponent(value).replace( + /[!*'()]/g, + c => `%${c.charCodeAt(0).toString(16).toUpperCase()}` + ), + 'uriEncode' + ) -// src/commands/SetStackPolicyCommand.ts + // src/utils/endpointFunctions.ts + var endpointFunctions = { + booleanEquals, + getAttr, + isSet, + isValidHostLabel, + not, + parseURL, + stringEquals, + substring, + uriEncode + } + + // src/utils/evaluateTemplate.ts + var evaluateTemplate = /* @__PURE__ */ __name((template, options) => { + const evaluatedTemplateArr = [] + const templateContext = { + ...options.endpointParams, + ...options.referenceRecord + } + let currentIndex = 0 + while (currentIndex < template.length) { + const openingBraceIndex = template.indexOf('{', currentIndex) + if (openingBraceIndex === -1) { + evaluatedTemplateArr.push(template.slice(currentIndex)) + break + } + evaluatedTemplateArr.push( + template.slice(currentIndex, openingBraceIndex) + ) + const closingBraceIndex = template.indexOf('}', openingBraceIndex) + if (closingBraceIndex === -1) { + evaluatedTemplateArr.push(template.slice(openingBraceIndex)) + break + } + if ( + template[openingBraceIndex + 1] === '{' && + template[closingBraceIndex + 1] === '}' + ) { + evaluatedTemplateArr.push( + template.slice(openingBraceIndex + 1, closingBraceIndex) + ) + currentIndex = closingBraceIndex + 2 + } + const parameterName = template.substring( + openingBraceIndex + 1, + closingBraceIndex + ) + if (parameterName.includes('#')) { + const [refName, attrName] = parameterName.split('#') + evaluatedTemplateArr.push( + getAttr(templateContext[refName], attrName) + ) + } else { + evaluatedTemplateArr.push(templateContext[parameterName]) + } + currentIndex = closingBraceIndex + 1 + } + return evaluatedTemplateArr.join('') + }, 'evaluateTemplate') + + // src/utils/getReferenceValue.ts + var getReferenceValue = /* @__PURE__ */ __name(({ ref }, options) => { + const referenceRecord = { + ...options.endpointParams, + ...options.referenceRecord + } + return referenceRecord[ref] + }, 'getReferenceValue') + + // src/utils/evaluateExpression.ts + var evaluateExpression = /* @__PURE__ */ __name( + (obj, keyName, options) => { + if (typeof obj === 'string') { + return evaluateTemplate(obj, options) + } else if (obj['fn']) { + return callFunction(obj, options) + } else if (obj['ref']) { + return getReferenceValue(obj, options) + } + throw new EndpointError( + `'${keyName}': ${String(obj)} is not a string, function or reference.` + ) + }, + 'evaluateExpression' + ) + // src/utils/callFunction.ts + var callFunction = /* @__PURE__ */ __name(({ fn, argv }, options) => { + const evaluatedArgs = argv.map(arg => + ['boolean', 'number'].includes(typeof arg) + ? arg + : evaluateExpression(arg, 'arg', options) + ) + const fnSegments = fn.split('.') + if (fnSegments[0] in customEndpointFunctions && fnSegments[1] != null) { + return customEndpointFunctions[fnSegments[0]][fnSegments[1]]( + ...evaluatedArgs + ) + } + return endpointFunctions[fn](...evaluatedArgs) + }, 'callFunction') + // src/utils/evaluateCondition.ts + var evaluateCondition = /* @__PURE__ */ __name( + ({ assign, ...fnArgs }, options) => { + if (assign && assign in options.referenceRecord) { + throw new EndpointError( + `'${assign}' is already defined in Reference Record.` + ) + } + const value = callFunction(fnArgs, options) + options.logger?.debug?.( + `${debugId} evaluateCondition: ${toDebugString(fnArgs)} = ${toDebugString(value)}` + ) + return { + result: value === '' ? true : !!value, + ...(assign != null && { toAssign: { name: assign, value } }) + } + }, + 'evaluateCondition' + ) -var _SetStackPolicyCommand = class _SetStackPolicyCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "SetStackPolicy", {}).n("CloudFormationClient", "SetStackPolicyCommand").f(void 0, void 0).ser(se_SetStackPolicyCommand).de(de_SetStackPolicyCommand).build() { -}; -__name(_SetStackPolicyCommand, "SetStackPolicyCommand"); -var SetStackPolicyCommand = _SetStackPolicyCommand; + // src/utils/evaluateConditions.ts + var evaluateConditions = /* @__PURE__ */ __name( + (conditions = [], options) => { + const conditionsReferenceRecord = {} + for (const condition of conditions) { + const { result, toAssign } = evaluateCondition(condition, { + ...options, + referenceRecord: { + ...options.referenceRecord, + ...conditionsReferenceRecord + } + }) + if (!result) { + return { result } + } + if (toAssign) { + conditionsReferenceRecord[toAssign.name] = toAssign.value + options.logger?.debug?.( + `${debugId} assign: ${toAssign.name} := ${toDebugString(toAssign.value)}` + ) + } + } + return { result: true, referenceRecord: conditionsReferenceRecord } + }, + 'evaluateConditions' + ) -// src/commands/SetTypeConfigurationCommand.ts + // src/utils/getEndpointHeaders.ts + var getEndpointHeaders = /* @__PURE__ */ __name( + (headers, options) => + Object.entries(headers).reduce( + (acc, [headerKey, headerVal]) => ({ + ...acc, + [headerKey]: headerVal.map(headerValEntry => { + const processedExpr = evaluateExpression( + headerValEntry, + 'Header value entry', + options + ) + if (typeof processedExpr !== 'string') { + throw new EndpointError( + `Header '${headerKey}' value '${processedExpr}' is not a string` + ) + } + return processedExpr + }) + }), + {} + ), + 'getEndpointHeaders' + ) + // src/utils/getEndpointProperty.ts + var getEndpointProperty = /* @__PURE__ */ __name((property, options) => { + if (Array.isArray(property)) { + return property.map(propertyEntry => + getEndpointProperty(propertyEntry, options) + ) + } + switch (typeof property) { + case 'string': + return evaluateTemplate(property, options) + case 'object': + if (property === null) { + throw new EndpointError( + `Unexpected endpoint property: ${property}` + ) + } + return getEndpointProperties(property, options) + case 'boolean': + return property + default: + throw new EndpointError( + `Unexpected endpoint property type: ${typeof property}` + ) + } + }, 'getEndpointProperty') + // src/utils/getEndpointProperties.ts + var getEndpointProperties = /* @__PURE__ */ __name( + (properties, options) => + Object.entries(properties).reduce( + (acc, [propertyKey, propertyVal]) => ({ + ...acc, + [propertyKey]: getEndpointProperty(propertyVal, options) + }), + {} + ), + 'getEndpointProperties' + ) -var _SetTypeConfigurationCommand = class _SetTypeConfigurationCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "SetTypeConfiguration", {}).n("CloudFormationClient", "SetTypeConfigurationCommand").f(void 0, void 0).ser(se_SetTypeConfigurationCommand).de(de_SetTypeConfigurationCommand).build() { -}; -__name(_SetTypeConfigurationCommand, "SetTypeConfigurationCommand"); -var SetTypeConfigurationCommand = _SetTypeConfigurationCommand; + // src/utils/getEndpointUrl.ts + var getEndpointUrl = /* @__PURE__ */ __name((endpointUrl, options) => { + const expression = evaluateExpression( + endpointUrl, + 'Endpoint URL', + options + ) + if (typeof expression === 'string') { + try { + return new URL(expression) + } catch (error) { + console.error(`Failed to construct URL with ${expression}`, error) + throw error + } + } + throw new EndpointError( + `Endpoint URL must be a string, got ${typeof expression}` + ) + }, 'getEndpointUrl') + + // src/utils/evaluateEndpointRule.ts + var evaluateEndpointRule = /* @__PURE__ */ __name( + (endpointRule, options) => { + const { conditions, endpoint } = endpointRule + const { result, referenceRecord } = evaluateConditions( + conditions, + options + ) + if (!result) { + return + } + const endpointRuleOptions = { + ...options, + referenceRecord: { ...options.referenceRecord, ...referenceRecord } + } + const { url, properties, headers } = endpoint + options.logger?.debug?.( + `${debugId} Resolving endpoint from template: ${toDebugString(endpoint)}` + ) + return { + ...(headers != void 0 && { + headers: getEndpointHeaders(headers, endpointRuleOptions) + }), + ...(properties != void 0 && { + properties: getEndpointProperties(properties, endpointRuleOptions) + }), + url: getEndpointUrl(url, endpointRuleOptions) + } + }, + 'evaluateEndpointRule' + ) -// src/commands/SetTypeDefaultVersionCommand.ts + // src/utils/evaluateErrorRule.ts + var evaluateErrorRule = /* @__PURE__ */ __name((errorRule, options) => { + const { conditions, error } = errorRule + const { result, referenceRecord } = evaluateConditions( + conditions, + options + ) + if (!result) { + return + } + throw new EndpointError( + evaluateExpression(error, 'Error', { + ...options, + referenceRecord: { ...options.referenceRecord, ...referenceRecord } + }) + ) + }, 'evaluateErrorRule') + + // src/utils/evaluateTreeRule.ts + var evaluateTreeRule = /* @__PURE__ */ __name((treeRule, options) => { + const { conditions, rules } = treeRule + const { result, referenceRecord } = evaluateConditions( + conditions, + options + ) + if (!result) { + return + } + return evaluateRules(rules, { + ...options, + referenceRecord: { ...options.referenceRecord, ...referenceRecord } + }) + }, 'evaluateTreeRule') + + // src/utils/evaluateRules.ts + var evaluateRules = /* @__PURE__ */ __name((rules, options) => { + for (const rule of rules) { + if (rule.type === 'endpoint') { + const endpointOrUndefined = evaluateEndpointRule(rule, options) + if (endpointOrUndefined) { + return endpointOrUndefined + } + } else if (rule.type === 'error') { + evaluateErrorRule(rule, options) + } else if (rule.type === 'tree') { + const endpointOrUndefined = evaluateTreeRule(rule, options) + if (endpointOrUndefined) { + return endpointOrUndefined + } + } else { + throw new EndpointError(`Unknown endpoint rule: ${rule}`) + } + } + throw new EndpointError(`Rules evaluation failed`) + }, 'evaluateRules') + // src/resolveEndpoint.ts + var resolveEndpoint = /* @__PURE__ */ __name((ruleSetObject, options) => { + const { endpointParams, logger } = options + const { parameters, rules } = ruleSetObject + options.logger?.debug?.( + `${debugId} Initial EndpointParams: ${toDebugString(endpointParams)}` + ) + const paramsWithDefault = Object.entries(parameters) + .filter(([, v]) => v.default != null) + .map(([k, v]) => [k, v.default]) + if (paramsWithDefault.length > 0) { + for (const [paramKey, paramDefaultValue] of paramsWithDefault) { + endpointParams[paramKey] = + endpointParams[paramKey] ?? paramDefaultValue + } + } + const requiredParams = Object.entries(parameters) + .filter(([, v]) => v.required) + .map(([k]) => k) + for (const requiredParam of requiredParams) { + if (endpointParams[requiredParam] == null) { + throw new EndpointError( + `Missing required parameter: '${requiredParam}'` + ) + } + } + const endpoint = evaluateRules(rules, { + endpointParams, + logger, + referenceRecord: {} + }) + options.logger?.debug?.( + `${debugId} Resolved endpoint: ${toDebugString(endpoint)}` + ) + return endpoint + }, 'resolveEndpoint') + // Annotate the CommonJS export names for ESM import in node: + 0 && 0 -var _SetTypeDefaultVersionCommand = class _SetTypeDefaultVersionCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "SetTypeDefaultVersion", {}).n("CloudFormationClient", "SetTypeDefaultVersionCommand").f(void 0, void 0).ser(se_SetTypeDefaultVersionCommand).de(de_SetTypeDefaultVersionCommand).build() { -}; -__name(_SetTypeDefaultVersionCommand, "SetTypeDefaultVersionCommand"); -var SetTypeDefaultVersionCommand = _SetTypeDefaultVersionCommand; + /***/ + }, -// src/commands/SignalResourceCommand.ts + /***/ 82143: /***/ module => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + // src/index.ts + var src_exports = {} + __export(src_exports, { + fromHex: () => fromHex, + toHex: () => toHex + }) + module.exports = __toCommonJS(src_exports) + var SHORT_TO_HEX = {} + var HEX_TO_SHORT = {} + for (let i = 0; i < 256; i++) { + let encodedByte = i.toString(16).toLowerCase() + if (encodedByte.length === 1) { + encodedByte = `0${encodedByte}` + } + SHORT_TO_HEX[i] = encodedByte + HEX_TO_SHORT[encodedByte] = i + } + function fromHex(encoded) { + if (encoded.length % 2 !== 0) { + throw new Error('Hex encoded strings must have an even number length') + } + const out = new Uint8Array(encoded.length / 2) + for (let i = 0; i < encoded.length; i += 2) { + const encodedByte = encoded.slice(i, i + 2).toLowerCase() + if (encodedByte in HEX_TO_SHORT) { + out[i / 2] = HEX_TO_SHORT[encodedByte] + } else { + throw new Error( + `Cannot decode unrecognized sequence ${encodedByte} as hexadecimal` + ) + } + } + return out + } + __name(fromHex, 'fromHex') + function toHex(bytes) { + let out = '' + for (let i = 0; i < bytes.byteLength; i++) { + out += SHORT_TO_HEX[bytes[i]] + } + return out + } + __name(toHex, 'toHex') + // Annotate the CommonJS export names for ESM import in node: + 0 && 0 -var _SignalResourceCommand = class _SignalResourceCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "SignalResource", {}).n("CloudFormationClient", "SignalResourceCommand").f(void 0, void 0).ser(se_SignalResourceCommand).de(de_SignalResourceCommand).build() { -}; -__name(_SignalResourceCommand, "SignalResourceCommand"); -var SignalResourceCommand = _SignalResourceCommand; + /***/ + }, -// src/commands/StartResourceScanCommand.ts + /***/ 69474: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + // src/index.ts + var src_exports = {} + __export(src_exports, { + getSmithyContext: () => getSmithyContext, + normalizeProvider: () => normalizeProvider + }) + module.exports = __toCommonJS(src_exports) + + // src/getSmithyContext.ts + var import_types = __nccwpck_require__(63443) + var getSmithyContext = /* @__PURE__ */ __name( + context => + context[import_types.SMITHY_CONTEXT_KEY] || + (context[import_types.SMITHY_CONTEXT_KEY] = {}), + 'getSmithyContext' + ) + // src/normalizeProvider.ts + var normalizeProvider = /* @__PURE__ */ __name(input => { + if (typeof input === 'function') return input + const promisified = Promise.resolve(input) + return () => promisified + }, 'normalizeProvider') + // Annotate the CommonJS export names for ESM import in node: -var _StartResourceScanCommand = class _StartResourceScanCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "StartResourceScan", {}).n("CloudFormationClient", "StartResourceScanCommand").f(void 0, void 0).ser(se_StartResourceScanCommand).de(de_StartResourceScanCommand).build() { -}; -__name(_StartResourceScanCommand, "StartResourceScanCommand"); -var StartResourceScanCommand = _StartResourceScanCommand; + 0 && 0 -// src/commands/StopStackSetOperationCommand.ts + /***/ + }, + /***/ 31955: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + AdaptiveRetryStrategy: () => AdaptiveRetryStrategy, + ConfiguredRetryStrategy: () => ConfiguredRetryStrategy, + DEFAULT_MAX_ATTEMPTS: () => DEFAULT_MAX_ATTEMPTS, + DEFAULT_RETRY_DELAY_BASE: () => DEFAULT_RETRY_DELAY_BASE, + DEFAULT_RETRY_MODE: () => DEFAULT_RETRY_MODE, + DefaultRateLimiter: () => DefaultRateLimiter, + INITIAL_RETRY_TOKENS: () => INITIAL_RETRY_TOKENS, + INVOCATION_ID_HEADER: () => INVOCATION_ID_HEADER, + MAXIMUM_RETRY_DELAY: () => MAXIMUM_RETRY_DELAY, + NO_RETRY_INCREMENT: () => NO_RETRY_INCREMENT, + REQUEST_HEADER: () => REQUEST_HEADER, + RETRY_COST: () => RETRY_COST, + RETRY_MODES: () => RETRY_MODES, + StandardRetryStrategy: () => StandardRetryStrategy, + THROTTLING_RETRY_DELAY_BASE: () => THROTTLING_RETRY_DELAY_BASE, + TIMEOUT_RETRY_COST: () => TIMEOUT_RETRY_COST + }) + module.exports = __toCommonJS(src_exports) + + // src/config.ts + var RETRY_MODES = /* @__PURE__ */ (RETRY_MODES2 => { + RETRY_MODES2['STANDARD'] = 'standard' + RETRY_MODES2['ADAPTIVE'] = 'adaptive' + return RETRY_MODES2 + })(RETRY_MODES || {}) + var DEFAULT_MAX_ATTEMPTS = 3 + var DEFAULT_RETRY_MODE = 'standard' /* STANDARD */ + + // src/DefaultRateLimiter.ts + var import_service_error_classification = __nccwpck_require__(44652) + var DefaultRateLimiter = class _DefaultRateLimiter { + constructor(options) { + // Pre-set state variables + this.currentCapacity = 0 + this.enabled = false + this.lastMaxRate = 0 + this.measuredTxRate = 0 + this.requestCount = 0 + this.lastTimestamp = 0 + this.timeWindow = 0 + this.beta = options?.beta ?? 0.7 + this.minCapacity = options?.minCapacity ?? 1 + this.minFillRate = options?.minFillRate ?? 0.5 + this.scaleConstant = options?.scaleConstant ?? 0.4 + this.smooth = options?.smooth ?? 0.8 + const currentTimeInSeconds = this.getCurrentTimeInSeconds() + this.lastThrottleTime = currentTimeInSeconds + this.lastTxRateBucket = Math.floor(this.getCurrentTimeInSeconds()) + this.fillRate = this.minFillRate + this.maxCapacity = this.minCapacity + } + static { + __name(this, 'DefaultRateLimiter') + } + static { + /** + * Only used in testing. + */ + this.setTimeoutFn = setTimeout + } + getCurrentTimeInSeconds() { + return Date.now() / 1e3 + } + async getSendToken() { + return this.acquireTokenBucket(1) + } + async acquireTokenBucket(amount) { + if (!this.enabled) { + return + } + this.refillTokenBucket() + if (amount > this.currentCapacity) { + const delay = + ((amount - this.currentCapacity) / this.fillRate) * 1e3 + await new Promise(resolve => + _DefaultRateLimiter.setTimeoutFn(resolve, delay) + ) + } + this.currentCapacity = this.currentCapacity - amount + } + refillTokenBucket() { + const timestamp = this.getCurrentTimeInSeconds() + if (!this.lastTimestamp) { + this.lastTimestamp = timestamp + return + } + const fillAmount = (timestamp - this.lastTimestamp) * this.fillRate + this.currentCapacity = Math.min( + this.maxCapacity, + this.currentCapacity + fillAmount + ) + this.lastTimestamp = timestamp + } + updateClientSendingRate(response) { + let calculatedRate + this.updateMeasuredRate() + if ( + (0, import_service_error_classification.isThrottlingError)(response) + ) { + const rateToUse = !this.enabled + ? this.measuredTxRate + : Math.min(this.measuredTxRate, this.fillRate) + this.lastMaxRate = rateToUse + this.calculateTimeWindow() + this.lastThrottleTime = this.getCurrentTimeInSeconds() + calculatedRate = this.cubicThrottle(rateToUse) + this.enableTokenBucket() + } else { + this.calculateTimeWindow() + calculatedRate = this.cubicSuccess(this.getCurrentTimeInSeconds()) + } + const newRate = Math.min(calculatedRate, 2 * this.measuredTxRate) + this.updateTokenBucketRate(newRate) + } + calculateTimeWindow() { + this.timeWindow = this.getPrecise( + Math.pow( + (this.lastMaxRate * (1 - this.beta)) / this.scaleConstant, + 1 / 3 + ) + ) + } + cubicThrottle(rateToUse) { + return this.getPrecise(rateToUse * this.beta) + } + cubicSuccess(timestamp) { + return this.getPrecise( + this.scaleConstant * + Math.pow(timestamp - this.lastThrottleTime - this.timeWindow, 3) + + this.lastMaxRate + ) + } + enableTokenBucket() { + this.enabled = true + } + updateTokenBucketRate(newRate) { + this.refillTokenBucket() + this.fillRate = Math.max(newRate, this.minFillRate) + this.maxCapacity = Math.max(newRate, this.minCapacity) + this.currentCapacity = Math.min( + this.currentCapacity, + this.maxCapacity + ) + } + updateMeasuredRate() { + const t = this.getCurrentTimeInSeconds() + const timeBucket = Math.floor(t * 2) / 2 + this.requestCount++ + if (timeBucket > this.lastTxRateBucket) { + const currentRate = + this.requestCount / (timeBucket - this.lastTxRateBucket) + this.measuredTxRate = this.getPrecise( + currentRate * this.smooth + + this.measuredTxRate * (1 - this.smooth) + ) + this.requestCount = 0 + this.lastTxRateBucket = timeBucket + } + } + getPrecise(num) { + return parseFloat(num.toFixed(8)) + } + } + + // src/constants.ts + var DEFAULT_RETRY_DELAY_BASE = 100 + var MAXIMUM_RETRY_DELAY = 20 * 1e3 + var THROTTLING_RETRY_DELAY_BASE = 500 + var INITIAL_RETRY_TOKENS = 500 + var RETRY_COST = 5 + var TIMEOUT_RETRY_COST = 10 + var NO_RETRY_INCREMENT = 1 + var INVOCATION_ID_HEADER = 'amz-sdk-invocation-id' + var REQUEST_HEADER = 'amz-sdk-request' + + // src/defaultRetryBackoffStrategy.ts + var getDefaultRetryBackoffStrategy = /* @__PURE__ */ __name(() => { + let delayBase = DEFAULT_RETRY_DELAY_BASE + const computeNextBackoffDelay = /* @__PURE__ */ __name(attempts => { + return Math.floor( + Math.min( + MAXIMUM_RETRY_DELAY, + Math.random() * 2 ** attempts * delayBase + ) + ) + }, 'computeNextBackoffDelay') + const setDelayBase = /* @__PURE__ */ __name(delay => { + delayBase = delay + }, 'setDelayBase') + return { + computeNextBackoffDelay, + setDelayBase + } + }, 'getDefaultRetryBackoffStrategy') + // src/defaultRetryToken.ts + var createDefaultRetryToken = /* @__PURE__ */ __name( + ({ retryDelay, retryCount, retryCost }) => { + const getRetryCount = /* @__PURE__ */ __name( + () => retryCount, + 'getRetryCount' + ) + const getRetryDelay = /* @__PURE__ */ __name( + () => Math.min(MAXIMUM_RETRY_DELAY, retryDelay), + 'getRetryDelay' + ) + const getRetryCost = /* @__PURE__ */ __name( + () => retryCost, + 'getRetryCost' + ) + return { + getRetryCount, + getRetryDelay, + getRetryCost + } + }, + 'createDefaultRetryToken' + ) -var _StopStackSetOperationCommand = class _StopStackSetOperationCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "StopStackSetOperation", {}).n("CloudFormationClient", "StopStackSetOperationCommand").f(void 0, void 0).ser(se_StopStackSetOperationCommand).de(de_StopStackSetOperationCommand).build() { -}; -__name(_StopStackSetOperationCommand, "StopStackSetOperationCommand"); -var StopStackSetOperationCommand = _StopStackSetOperationCommand; + // src/StandardRetryStrategy.ts + var StandardRetryStrategy = class { + constructor(maxAttempts) { + this.maxAttempts = maxAttempts + this.mode = 'standard' /* STANDARD */ + this.capacity = INITIAL_RETRY_TOKENS + this.retryBackoffStrategy = getDefaultRetryBackoffStrategy() + this.maxAttemptsProvider = + typeof maxAttempts === 'function' + ? maxAttempts + : async () => maxAttempts + } + static { + __name(this, 'StandardRetryStrategy') + } + // eslint-disable-next-line @typescript-eslint/no-unused-vars + async acquireInitialRetryToken(retryTokenScope) { + return createDefaultRetryToken({ + retryDelay: DEFAULT_RETRY_DELAY_BASE, + retryCount: 0 + }) + } + async refreshRetryTokenForRetry(token, errorInfo) { + const maxAttempts = await this.getMaxAttempts() + if (this.shouldRetry(token, errorInfo, maxAttempts)) { + const errorType = errorInfo.errorType + this.retryBackoffStrategy.setDelayBase( + errorType === 'THROTTLING' + ? THROTTLING_RETRY_DELAY_BASE + : DEFAULT_RETRY_DELAY_BASE + ) + const delayFromErrorType = + this.retryBackoffStrategy.computeNextBackoffDelay( + token.getRetryCount() + ) + const retryDelay = errorInfo.retryAfterHint + ? Math.max( + errorInfo.retryAfterHint.getTime() - Date.now() || 0, + delayFromErrorType + ) + : delayFromErrorType + const capacityCost = this.getCapacityCost(errorType) + this.capacity -= capacityCost + return createDefaultRetryToken({ + retryDelay, + retryCount: token.getRetryCount() + 1, + retryCost: capacityCost + }) + } + throw new Error('No retry token available') + } + recordSuccess(token) { + this.capacity = Math.max( + INITIAL_RETRY_TOKENS, + this.capacity + (token.getRetryCost() ?? NO_RETRY_INCREMENT) + ) + } + /** + * @returns the current available retry capacity. + * + * This number decreases when retries are executed and refills when requests or retries succeed. + */ + getCapacity() { + return this.capacity + } + async getMaxAttempts() { + try { + return await this.maxAttemptsProvider() + } catch (error) { + console.warn( + `Max attempts provider could not resolve. Using default of ${DEFAULT_MAX_ATTEMPTS}` + ) + return DEFAULT_MAX_ATTEMPTS + } + } + shouldRetry(tokenToRenew, errorInfo, maxAttempts) { + const attempts = tokenToRenew.getRetryCount() + 1 + return ( + attempts < maxAttempts && + this.capacity >= this.getCapacityCost(errorInfo.errorType) && + this.isRetryableError(errorInfo.errorType) + ) + } + getCapacityCost(errorType) { + return errorType === 'TRANSIENT' ? TIMEOUT_RETRY_COST : RETRY_COST + } + isRetryableError(errorType) { + return errorType === 'THROTTLING' || errorType === 'TRANSIENT' + } + } -// src/commands/TestTypeCommand.ts + // src/AdaptiveRetryStrategy.ts + var AdaptiveRetryStrategy = class { + constructor(maxAttemptsProvider, options) { + this.maxAttemptsProvider = maxAttemptsProvider + this.mode = 'adaptive' /* ADAPTIVE */ + const { rateLimiter } = options ?? {} + this.rateLimiter = rateLimiter ?? new DefaultRateLimiter() + this.standardRetryStrategy = new StandardRetryStrategy( + maxAttemptsProvider + ) + } + static { + __name(this, 'AdaptiveRetryStrategy') + } + async acquireInitialRetryToken(retryTokenScope) { + await this.rateLimiter.getSendToken() + return this.standardRetryStrategy.acquireInitialRetryToken( + retryTokenScope + ) + } + async refreshRetryTokenForRetry(tokenToRenew, errorInfo) { + this.rateLimiter.updateClientSendingRate(errorInfo) + return this.standardRetryStrategy.refreshRetryTokenForRetry( + tokenToRenew, + errorInfo + ) + } + recordSuccess(token) { + this.rateLimiter.updateClientSendingRate({}) + this.standardRetryStrategy.recordSuccess(token) + } + } + // src/ConfiguredRetryStrategy.ts + var ConfiguredRetryStrategy = class extends StandardRetryStrategy { + static { + __name(this, 'ConfiguredRetryStrategy') + } + /** + * @param maxAttempts - the maximum number of retry attempts allowed. + * e.g., if set to 3, then 4 total requests are possible. + * @param computeNextBackoffDelay - a millisecond delay for each retry or a function that takes the retry attempt + * and returns the delay. + * + * @example exponential backoff. + * ```js + * new Client({ + * retryStrategy: new ConfiguredRetryStrategy(3, (attempt) => attempt ** 2) + * }); + * ``` + * @example constant delay. + * ```js + * new Client({ + * retryStrategy: new ConfiguredRetryStrategy(3, 2000) + * }); + * ``` + */ + constructor( + maxAttempts, + computeNextBackoffDelay = DEFAULT_RETRY_DELAY_BASE + ) { + super( + typeof maxAttempts === 'function' + ? maxAttempts + : async () => maxAttempts + ) + if (typeof computeNextBackoffDelay === 'number') { + this.computeNextBackoffDelay = () => computeNextBackoffDelay + } else { + this.computeNextBackoffDelay = computeNextBackoffDelay + } + } + async refreshRetryTokenForRetry(tokenToRenew, errorInfo) { + const token = await super.refreshRetryTokenForRetry( + tokenToRenew, + errorInfo + ) + token.getRetryDelay = () => + this.computeNextBackoffDelay(token.getRetryCount()) + return token + } + } + // Annotate the CommonJS export names for ESM import in node: + 0 && 0 -var _TestTypeCommand = class _TestTypeCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "TestType", {}).n("CloudFormationClient", "TestTypeCommand").f(void 0, void 0).ser(se_TestTypeCommand).de(de_TestTypeCommand).build() { -}; -__name(_TestTypeCommand, "TestTypeCommand"); -var TestTypeCommand = _TestTypeCommand; - -// src/commands/UpdateGeneratedTemplateCommand.ts - - - -var _UpdateGeneratedTemplateCommand = class _UpdateGeneratedTemplateCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "UpdateGeneratedTemplate", {}).n("CloudFormationClient", "UpdateGeneratedTemplateCommand").f(void 0, void 0).ser(se_UpdateGeneratedTemplateCommand).de(de_UpdateGeneratedTemplateCommand).build() { -}; -__name(_UpdateGeneratedTemplateCommand, "UpdateGeneratedTemplateCommand"); -var UpdateGeneratedTemplateCommand = _UpdateGeneratedTemplateCommand; - -// src/commands/UpdateStackCommand.ts - - - -var _UpdateStackCommand = class _UpdateStackCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "UpdateStack", {}).n("CloudFormationClient", "UpdateStackCommand").f(void 0, void 0).ser(se_UpdateStackCommand).de(de_UpdateStackCommand).build() { -}; -__name(_UpdateStackCommand, "UpdateStackCommand"); -var UpdateStackCommand = _UpdateStackCommand; - -// src/commands/UpdateStackInstancesCommand.ts - - - -var _UpdateStackInstancesCommand = class _UpdateStackInstancesCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "UpdateStackInstances", {}).n("CloudFormationClient", "UpdateStackInstancesCommand").f(void 0, void 0).ser(se_UpdateStackInstancesCommand).de(de_UpdateStackInstancesCommand).build() { -}; -__name(_UpdateStackInstancesCommand, "UpdateStackInstancesCommand"); -var UpdateStackInstancesCommand = _UpdateStackInstancesCommand; - -// src/commands/UpdateStackSetCommand.ts - - - -var _UpdateStackSetCommand = class _UpdateStackSetCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "UpdateStackSet", {}).n("CloudFormationClient", "UpdateStackSetCommand").f(void 0, void 0).ser(se_UpdateStackSetCommand).de(de_UpdateStackSetCommand).build() { -}; -__name(_UpdateStackSetCommand, "UpdateStackSetCommand"); -var UpdateStackSetCommand = _UpdateStackSetCommand; - -// src/commands/UpdateTerminationProtectionCommand.ts - - - -var _UpdateTerminationProtectionCommand = class _UpdateTerminationProtectionCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "UpdateTerminationProtection", {}).n("CloudFormationClient", "UpdateTerminationProtectionCommand").f(void 0, void 0).ser(se_UpdateTerminationProtectionCommand).de(de_UpdateTerminationProtectionCommand).build() { -}; -__name(_UpdateTerminationProtectionCommand, "UpdateTerminationProtectionCommand"); -var UpdateTerminationProtectionCommand = _UpdateTerminationProtectionCommand; - -// src/commands/ValidateTemplateCommand.ts - - - -var _ValidateTemplateCommand = class _ValidateTemplateCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("CloudFormation", "ValidateTemplate", {}).n("CloudFormationClient", "ValidateTemplateCommand").f(void 0, void 0).ser(se_ValidateTemplateCommand).de(de_ValidateTemplateCommand).build() { -}; -__name(_ValidateTemplateCommand, "ValidateTemplateCommand"); -var ValidateTemplateCommand = _ValidateTemplateCommand; - -// src/CloudFormation.ts -var commands = { - ActivateOrganizationsAccessCommand, - ActivateTypeCommand, - BatchDescribeTypeConfigurationsCommand, - CancelUpdateStackCommand, - ContinueUpdateRollbackCommand, - CreateChangeSetCommand, - CreateGeneratedTemplateCommand, - CreateStackCommand, - CreateStackInstancesCommand, - CreateStackSetCommand, - DeactivateOrganizationsAccessCommand, - DeactivateTypeCommand, - DeleteChangeSetCommand, - DeleteGeneratedTemplateCommand, - DeleteStackCommand, - DeleteStackInstancesCommand, - DeleteStackSetCommand, - DeregisterTypeCommand, - DescribeAccountLimitsCommand, - DescribeChangeSetCommand, - DescribeChangeSetHooksCommand, - DescribeGeneratedTemplateCommand, - DescribeOrganizationsAccessCommand, - DescribePublisherCommand, - DescribeResourceScanCommand, - DescribeStackDriftDetectionStatusCommand, - DescribeStackEventsCommand, - DescribeStackInstanceCommand, - DescribeStackResourceCommand, - DescribeStackResourceDriftsCommand, - DescribeStackResourcesCommand, - DescribeStacksCommand, - DescribeStackSetCommand, - DescribeStackSetOperationCommand, - DescribeTypeCommand, - DescribeTypeRegistrationCommand, - DetectStackDriftCommand, - DetectStackResourceDriftCommand, - DetectStackSetDriftCommand, - EstimateTemplateCostCommand, - ExecuteChangeSetCommand, - GetGeneratedTemplateCommand, - GetStackPolicyCommand, - GetTemplateCommand, - GetTemplateSummaryCommand, - ImportStacksToStackSetCommand, - ListChangeSetsCommand, - ListExportsCommand, - ListGeneratedTemplatesCommand, - ListImportsCommand, - ListResourceScanRelatedResourcesCommand, - ListResourceScanResourcesCommand, - ListResourceScansCommand, - ListStackInstanceResourceDriftsCommand, - ListStackInstancesCommand, - ListStackResourcesCommand, - ListStacksCommand, - ListStackSetAutoDeploymentTargetsCommand, - ListStackSetOperationResultsCommand, - ListStackSetOperationsCommand, - ListStackSetsCommand, - ListTypeRegistrationsCommand, - ListTypesCommand, - ListTypeVersionsCommand, - PublishTypeCommand, - RecordHandlerProgressCommand, - RegisterPublisherCommand, - RegisterTypeCommand, - RollbackStackCommand, - SetStackPolicyCommand, - SetTypeConfigurationCommand, - SetTypeDefaultVersionCommand, - SignalResourceCommand, - StartResourceScanCommand, - StopStackSetOperationCommand, - TestTypeCommand, - UpdateGeneratedTemplateCommand, - UpdateStackCommand, - UpdateStackInstancesCommand, - UpdateStackSetCommand, - UpdateTerminationProtectionCommand, - ValidateTemplateCommand -}; -var _CloudFormation = class _CloudFormation extends CloudFormationClient { -}; -__name(_CloudFormation, "CloudFormation"); -var CloudFormation = _CloudFormation; -(0, import_smithy_client.createAggregatedClient)(commands, CloudFormation); - -// src/pagination/DescribeAccountLimitsPaginator.ts - -var paginateDescribeAccountLimits = (0, import_core.createPaginator)(CloudFormationClient, DescribeAccountLimitsCommand, "NextToken", "NextToken", ""); - -// src/pagination/DescribeStackEventsPaginator.ts - -var paginateDescribeStackEvents = (0, import_core.createPaginator)(CloudFormationClient, DescribeStackEventsCommand, "NextToken", "NextToken", ""); - -// src/pagination/DescribeStackResourceDriftsPaginator.ts - -var paginateDescribeStackResourceDrifts = (0, import_core.createPaginator)(CloudFormationClient, DescribeStackResourceDriftsCommand, "NextToken", "NextToken", "MaxResults"); - -// src/pagination/DescribeStacksPaginator.ts - -var paginateDescribeStacks = (0, import_core.createPaginator)(CloudFormationClient, DescribeStacksCommand, "NextToken", "NextToken", ""); - -// src/pagination/ListChangeSetsPaginator.ts - -var paginateListChangeSets = (0, import_core.createPaginator)(CloudFormationClient, ListChangeSetsCommand, "NextToken", "NextToken", ""); - -// src/pagination/ListExportsPaginator.ts - -var paginateListExports = (0, import_core.createPaginator)(CloudFormationClient, ListExportsCommand, "NextToken", "NextToken", ""); - -// src/pagination/ListGeneratedTemplatesPaginator.ts + /***/ + }, -var paginateListGeneratedTemplates = (0, import_core.createPaginator)(CloudFormationClient, ListGeneratedTemplatesCommand, "NextToken", "NextToken", "MaxResults"); + /***/ 67487: /***/ (__unused_webpack_module, exports) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.ByteArrayCollector = void 0 + class ByteArrayCollector { + constructor(allocByteArray) { + this.allocByteArray = allocByteArray + this.byteLength = 0 + this.byteArrays = [] + } + push(byteArray) { + this.byteArrays.push(byteArray) + this.byteLength += byteArray.byteLength + } + flush() { + if (this.byteArrays.length === 1) { + const bytes = this.byteArrays[0] + this.reset() + return bytes + } + const aggregation = this.allocByteArray(this.byteLength) + let cursor = 0 + for (let i = 0; i < this.byteArrays.length; ++i) { + const bytes = this.byteArrays[i] + aggregation.set(bytes, cursor) + cursor += bytes.byteLength + } + this.reset() + return aggregation + } + reset() { + this.byteArrays = [] + this.byteLength = 0 + } + } + exports.ByteArrayCollector = ByteArrayCollector -// src/pagination/ListImportsPaginator.ts + /***/ + }, -var paginateListImports = (0, import_core.createPaginator)(CloudFormationClient, ListImportsCommand, "NextToken", "NextToken", ""); + /***/ 83725: /***/ (__unused_webpack_module, exports) => { + 'use strict' -// src/pagination/ListResourceScanRelatedResourcesPaginator.ts + Object.defineProperty(exports, '__esModule', { value: true }) + exports.ChecksumStream = void 0 + const ReadableStreamRef = + typeof ReadableStream === 'function' ? ReadableStream : function () {} + class ChecksumStream extends ReadableStreamRef {} + exports.ChecksumStream = ChecksumStream -var paginateListResourceScanRelatedResources = (0, import_core.createPaginator)(CloudFormationClient, ListResourceScanRelatedResourcesCommand, "NextToken", "NextToken", "MaxResults"); + /***/ + }, -// src/pagination/ListResourceScanResourcesPaginator.ts + /***/ 61442: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.ChecksumStream = void 0 + const util_base64_1 = __nccwpck_require__(87656) + const stream_1 = __nccwpck_require__(12781) + class ChecksumStream extends stream_1.Duplex { + constructor({ + expectedChecksum, + checksum, + source, + checksumSourceLocation, + base64Encoder + }) { + var _a, _b + super() + if (typeof source.pipe === 'function') { + this.source = source + } else { + throw new Error( + `@smithy/util-stream: unsupported source type ${(_b = (_a = source === null || source === void 0 ? void 0 : source.constructor) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : source} in ChecksumStream.` + ) + } + this.base64Encoder = + base64Encoder !== null && base64Encoder !== void 0 + ? base64Encoder + : util_base64_1.toBase64 + this.expectedChecksum = expectedChecksum + this.checksum = checksum + this.checksumSourceLocation = checksumSourceLocation + this.source.pipe(this) + } + _read(size) {} + _write(chunk, encoding, callback) { + try { + this.checksum.update(chunk) + this.push(chunk) + } catch (e) { + return callback(e) + } + return callback() + } + async _final(callback) { + try { + const digest = await this.checksum.digest() + const received = this.base64Encoder(digest) + if (this.expectedChecksum !== received) { + return callback( + new Error( + `Checksum mismatch: expected "${this.expectedChecksum}" but received "${received}"` + + ` in response header "${this.checksumSourceLocation}".` + ) + ) + } + } catch (e) { + return callback(e) + } + this.push(null) + return callback() + } + } + exports.ChecksumStream = ChecksumStream -var paginateListResourceScanResources = (0, import_core.createPaginator)(CloudFormationClient, ListResourceScanResourcesCommand, "NextToken", "NextToken", "MaxResults"); + /***/ + }, -// src/pagination/ListResourceScansPaginator.ts + /***/ 35218: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.createChecksumStream = void 0 + const util_base64_1 = __nccwpck_require__(87656) + const stream_type_check_1 = __nccwpck_require__(8639) + const ChecksumStream_browser_1 = __nccwpck_require__(83725) + const createChecksumStream = ({ + expectedChecksum, + checksum, + source, + checksumSourceLocation, + base64Encoder + }) => { + var _a, _b + if (!(0, stream_type_check_1.isReadableStream)(source)) { + throw new Error( + `@smithy/util-stream: unsupported source type ${(_b = (_a = source === null || source === void 0 ? void 0 : source.constructor) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : source} in ChecksumStream.` + ) + } + const encoder = + base64Encoder !== null && base64Encoder !== void 0 + ? base64Encoder + : util_base64_1.toBase64 + if (typeof TransformStream !== 'function') { + throw new Error( + '@smithy/util-stream: unable to instantiate ChecksumStream because API unavailable: ReadableStream/TransformStream.' + ) + } + const transform = new TransformStream({ + start() {}, + async transform(chunk, controller) { + checksum.update(chunk) + controller.enqueue(chunk) + }, + async flush(controller) { + const digest = await checksum.digest() + const received = encoder(digest) + if (expectedChecksum !== received) { + const error = new Error( + `Checksum mismatch: expected "${expectedChecksum}" but received "${received}"` + + ` in response header "${checksumSourceLocation}".` + ) + controller.error(error) + } else { + controller.terminate() + } + } + }) + source.pipeThrough(transform) + const readable = transform.readable + Object.setPrototypeOf( + readable, + ChecksumStream_browser_1.ChecksumStream.prototype + ) + return readable + } + exports.createChecksumStream = createChecksumStream -var paginateListResourceScans = (0, import_core.createPaginator)(CloudFormationClient, ListResourceScansCommand, "NextToken", "NextToken", "MaxResults"); + /***/ + }, -// src/pagination/ListStackInstancesPaginator.ts + /***/ 19112: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.createChecksumStream = void 0 + const stream_type_check_1 = __nccwpck_require__(8639) + const ChecksumStream_1 = __nccwpck_require__(61442) + const createChecksumStream_browser_1 = __nccwpck_require__(35218) + function createChecksumStream(init) { + if ( + typeof ReadableStream === 'function' && + (0, stream_type_check_1.isReadableStream)(init.source) + ) { + return (0, createChecksumStream_browser_1.createChecksumStream)(init) + } + return new ChecksumStream_1.ChecksumStream(init) + } + exports.createChecksumStream = createChecksumStream -var paginateListStackInstances = (0, import_core.createPaginator)(CloudFormationClient, ListStackInstancesCommand, "NextToken", "NextToken", "MaxResults"); + /***/ + }, -// src/pagination/ListStackResourcesPaginator.ts + /***/ 50343: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.createBufferedReadable = void 0 + const node_stream_1 = __nccwpck_require__(84492) + const ByteArrayCollector_1 = __nccwpck_require__(67487) + const createBufferedReadableStream_1 = __nccwpck_require__(86601) + const stream_type_check_1 = __nccwpck_require__(8639) + function createBufferedReadable(upstream, size, logger) { + if ((0, stream_type_check_1.isReadableStream)(upstream)) { + return (0, + createBufferedReadableStream_1.createBufferedReadableStream)( + upstream, + size, + logger + ) + } + const downstream = new node_stream_1.Readable({ read() {} }) + let streamBufferingLoggedWarning = false + let bytesSeen = 0 + const buffers = [ + '', + new ByteArrayCollector_1.ByteArrayCollector( + size => new Uint8Array(size) + ), + new ByteArrayCollector_1.ByteArrayCollector(size => + Buffer.from(new Uint8Array(size)) + ) + ] + let mode = -1 + upstream.on('data', chunk => { + const chunkMode = (0, createBufferedReadableStream_1.modeOf)( + chunk, + true + ) + if (mode !== chunkMode) { + if (mode >= 0) { + downstream.push( + (0, createBufferedReadableStream_1.flush)(buffers, mode) + ) + } + mode = chunkMode + } + if (mode === -1) { + downstream.push(chunk) + return + } + const chunkSize = (0, createBufferedReadableStream_1.sizeOf)(chunk) + bytesSeen += chunkSize + const bufferSize = (0, createBufferedReadableStream_1.sizeOf)( + buffers[mode] + ) + if (chunkSize >= size && bufferSize === 0) { + downstream.push(chunk) + } else { + const newSize = (0, createBufferedReadableStream_1.merge)( + buffers, + mode, + chunk + ) + if (!streamBufferingLoggedWarning && bytesSeen > size * 2) { + streamBufferingLoggedWarning = true + logger === null || logger === void 0 + ? void 0 + : logger.warn( + `@smithy/util-stream - stream chunk size ${chunkSize} is below threshold of ${size}, automatically buffering.` + ) + } + if (newSize >= size) { + downstream.push( + (0, createBufferedReadableStream_1.flush)(buffers, mode) + ) + } + } + }) + upstream.on('end', () => { + if (mode !== -1) { + const remainder = (0, createBufferedReadableStream_1.flush)( + buffers, + mode + ) + if ((0, createBufferedReadableStream_1.sizeOf)(remainder) > 0) { + downstream.push(remainder) + } + } + downstream.push(null) + }) + return downstream + } + exports.createBufferedReadable = createBufferedReadable -var paginateListStackResources = (0, import_core.createPaginator)(CloudFormationClient, ListStackResourcesCommand, "NextToken", "NextToken", ""); + /***/ + }, -// src/pagination/ListStackSetOperationResultsPaginator.ts + /***/ 86601: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.modeOf = + exports.sizeOf = + exports.flush = + exports.merge = + exports.createBufferedReadable = + exports.createBufferedReadableStream = + void 0 + const ByteArrayCollector_1 = __nccwpck_require__(67487) + function createBufferedReadableStream(upstream, size, logger) { + const reader = upstream.getReader() + let streamBufferingLoggedWarning = false + let bytesSeen = 0 + const buffers = [ + '', + new ByteArrayCollector_1.ByteArrayCollector( + size => new Uint8Array(size) + ) + ] + let mode = -1 + const pull = async controller => { + const { value, done } = await reader.read() + const chunk = value + if (done) { + if (mode !== -1) { + const remainder = flush(buffers, mode) + if (sizeOf(remainder) > 0) { + controller.enqueue(remainder) + } + } + controller.close() + } else { + const chunkMode = modeOf(chunk, false) + if (mode !== chunkMode) { + if (mode >= 0) { + controller.enqueue(flush(buffers, mode)) + } + mode = chunkMode + } + if (mode === -1) { + controller.enqueue(chunk) + return + } + const chunkSize = sizeOf(chunk) + bytesSeen += chunkSize + const bufferSize = sizeOf(buffers[mode]) + if (chunkSize >= size && bufferSize === 0) { + controller.enqueue(chunk) + } else { + const newSize = merge(buffers, mode, chunk) + if (!streamBufferingLoggedWarning && bytesSeen > size * 2) { + streamBufferingLoggedWarning = true + logger === null || logger === void 0 + ? void 0 + : logger.warn( + `@smithy/util-stream - stream chunk size ${chunkSize} is below threshold of ${size}, automatically buffering.` + ) + } + if (newSize >= size) { + controller.enqueue(flush(buffers, mode)) + } else { + await pull(controller) + } + } + } + } + return new ReadableStream({ + pull + }) + } + exports.createBufferedReadableStream = createBufferedReadableStream + exports.createBufferedReadable = createBufferedReadableStream + function merge(buffers, mode, chunk) { + switch (mode) { + case 0: + buffers[0] += chunk + return sizeOf(buffers[0]) + case 1: + case 2: + buffers[mode].push(chunk) + return sizeOf(buffers[mode]) + } + } + exports.merge = merge + function flush(buffers, mode) { + switch (mode) { + case 0: + const s = buffers[0] + buffers[0] = '' + return s + case 1: + case 2: + return buffers[mode].flush() + } + throw new Error( + `@smithy/util-stream - invalid index ${mode} given to flush()` + ) + } + exports.flush = flush + function sizeOf(chunk) { + var _a, _b + return (_b = + (_a = + chunk === null || chunk === void 0 ? void 0 : chunk.byteLength) !== + null && _a !== void 0 + ? _a + : chunk === null || chunk === void 0 + ? void 0 + : chunk.length) !== null && _b !== void 0 + ? _b + : 0 + } + exports.sizeOf = sizeOf + function modeOf(chunk, allowBuffer = true) { + if ( + allowBuffer && + typeof Buffer !== 'undefined' && + chunk instanceof Buffer + ) { + return 2 + } + if (chunk instanceof Uint8Array) { + return 1 + } + if (typeof chunk === 'string') { + return 0 + } + return -1 + } + exports.modeOf = modeOf -var paginateListStackSetOperationResults = (0, import_core.createPaginator)(CloudFormationClient, ListStackSetOperationResultsCommand, "NextToken", "NextToken", "MaxResults"); + /***/ + }, -// src/pagination/ListStackSetOperationsPaginator.ts + /***/ 2411: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getAwsChunkedEncodingStream = void 0 + const stream_1 = __nccwpck_require__(12781) + const getAwsChunkedEncodingStream = (readableStream, options) => { + const { + base64Encoder, + bodyLengthChecker, + checksumAlgorithmFn, + checksumLocationName, + streamHasher + } = options + const checksumRequired = + base64Encoder !== undefined && + checksumAlgorithmFn !== undefined && + checksumLocationName !== undefined && + streamHasher !== undefined + const digest = checksumRequired + ? streamHasher(checksumAlgorithmFn, readableStream) + : undefined + const awsChunkedEncodingStream = new stream_1.Readable({ + read: () => {} + }) + readableStream.on('data', data => { + const length = bodyLengthChecker(data) || 0 + awsChunkedEncodingStream.push(`${length.toString(16)}\r\n`) + awsChunkedEncodingStream.push(data) + awsChunkedEncodingStream.push('\r\n') + }) + readableStream.on('end', async () => { + awsChunkedEncodingStream.push(`0\r\n`) + if (checksumRequired) { + const checksum = base64Encoder(await digest) + awsChunkedEncodingStream.push( + `${checksumLocationName}:${checksum}\r\n` + ) + awsChunkedEncodingStream.push(`\r\n`) + } + awsChunkedEncodingStream.push(null) + }) + return awsChunkedEncodingStream + } + exports.getAwsChunkedEncodingStream = getAwsChunkedEncodingStream -var paginateListStackSetOperations = (0, import_core.createPaginator)(CloudFormationClient, ListStackSetOperationsCommand, "NextToken", "NextToken", "MaxResults"); + /***/ + }, -// src/pagination/ListStackSetsPaginator.ts + /***/ 58505: /***/ (__unused_webpack_module, exports) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.headStream = void 0 + async function headStream(stream, bytes) { + var _a + let byteLengthCounter = 0 + const chunks = [] + const reader = stream.getReader() + let isDone = false + while (!isDone) { + const { done, value } = await reader.read() + if (value) { + chunks.push(value) + byteLengthCounter += + (_a = + value === null || value === void 0 + ? void 0 + : value.byteLength) !== null && _a !== void 0 + ? _a + : 0 + } + if (byteLengthCounter >= bytes) { + break + } + isDone = done + } + reader.releaseLock() + const collected = new Uint8Array(Math.min(bytes, byteLengthCounter)) + let offset = 0 + for (const chunk of chunks) { + if (chunk.byteLength > collected.byteLength - offset) { + collected.set( + chunk.subarray(0, collected.byteLength - offset), + offset + ) + break + } else { + collected.set(chunk, offset) + } + offset += chunk.length + } + return collected + } + exports.headStream = headStream -var paginateListStackSets = (0, import_core.createPaginator)(CloudFormationClient, ListStackSetsCommand, "NextToken", "NextToken", "MaxResults"); + /***/ + }, -// src/pagination/ListStacksPaginator.ts + /***/ 23673: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.headStream = void 0 + const stream_1 = __nccwpck_require__(12781) + const headStream_browser_1 = __nccwpck_require__(58505) + const stream_type_check_1 = __nccwpck_require__(8639) + const headStream = (stream, bytes) => { + if ((0, stream_type_check_1.isReadableStream)(stream)) { + return (0, headStream_browser_1.headStream)(stream, bytes) + } + return new Promise((resolve, reject) => { + const collector = new Collector() + collector.limit = bytes + stream.pipe(collector) + stream.on('error', err => { + collector.end() + reject(err) + }) + collector.on('error', reject) + collector.on('finish', function () { + const bytes = new Uint8Array(Buffer.concat(this.buffers)) + resolve(bytes) + }) + }) + } + exports.headStream = headStream + class Collector extends stream_1.Writable { + constructor() { + super(...arguments) + this.buffers = [] + this.limit = Infinity + this.bytesBuffered = 0 + } + _write(chunk, encoding, callback) { + var _a + this.buffers.push(chunk) + this.bytesBuffered += + (_a = chunk.byteLength) !== null && _a !== void 0 ? _a : 0 + if (this.bytesBuffered >= this.limit) { + const excess = this.bytesBuffered - this.limit + const tailBuffer = this.buffers[this.buffers.length - 1] + this.buffers[this.buffers.length - 1] = tailBuffer.subarray( + 0, + tailBuffer.byteLength - excess + ) + this.emit('finish') + } + callback() + } + } -var paginateListStacks = (0, import_core.createPaginator)(CloudFormationClient, ListStacksCommand, "NextToken", "NextToken", ""); + /***/ + }, -// src/pagination/ListTypeRegistrationsPaginator.ts + /***/ 77846: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __reExport = (target, mod, secondTarget) => ( + __copyProps(target, mod, 'default'), + secondTarget && __copyProps(secondTarget, mod, 'default') + ) + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -var paginateListTypeRegistrations = (0, import_core.createPaginator)(CloudFormationClient, ListTypeRegistrationsCommand, "NextToken", "NextToken", "MaxResults"); + // src/index.ts + var src_exports = {} + __export(src_exports, { + Uint8ArrayBlobAdapter: () => Uint8ArrayBlobAdapter + }) + module.exports = __toCommonJS(src_exports) + + // src/blob/transforms.ts + var import_util_base64 = __nccwpck_require__(87656) + var import_util_utf8 = __nccwpck_require__(94377) + function transformToString(payload, encoding = 'utf-8') { + if (encoding === 'base64') { + return (0, import_util_base64.toBase64)(payload) + } + return (0, import_util_utf8.toUtf8)(payload) + } + __name(transformToString, 'transformToString') + function transformFromString(str, encoding) { + if (encoding === 'base64') { + return Uint8ArrayBlobAdapter.mutate( + (0, import_util_base64.fromBase64)(str) + ) + } + return Uint8ArrayBlobAdapter.mutate((0, import_util_utf8.fromUtf8)(str)) + } + __name(transformFromString, 'transformFromString') -// src/pagination/ListTypeVersionsPaginator.ts + // src/blob/Uint8ArrayBlobAdapter.ts + var Uint8ArrayBlobAdapter = class _Uint8ArrayBlobAdapter extends Uint8Array { + static { + __name(this, 'Uint8ArrayBlobAdapter') + } + /** + * @param source - such as a string or Stream. + * @returns a new Uint8ArrayBlobAdapter extending Uint8Array. + */ + static fromString(source, encoding = 'utf-8') { + switch (typeof source) { + case 'string': + return transformFromString(source, encoding) + default: + throw new Error( + `Unsupported conversion from ${typeof source} to Uint8ArrayBlobAdapter.` + ) + } + } + /** + * @param source - Uint8Array to be mutated. + * @returns the same Uint8Array but with prototype switched to Uint8ArrayBlobAdapter. + */ + static mutate(source) { + Object.setPrototypeOf(source, _Uint8ArrayBlobAdapter.prototype) + return source + } + /** + * @param encoding - default 'utf-8'. + * @returns the blob as string. + */ + transformToString(encoding = 'utf-8') { + return transformToString(this, encoding) + } + } -var paginateListTypeVersions = (0, import_core.createPaginator)(CloudFormationClient, ListTypeVersionsCommand, "NextToken", "NextToken", "MaxResults"); + // src/index.ts + __reExport(src_exports, __nccwpck_require__(61442), module.exports) + __reExport(src_exports, __nccwpck_require__(19112), module.exports) + __reExport(src_exports, __nccwpck_require__(50343), module.exports) + __reExport(src_exports, __nccwpck_require__(2411), module.exports) + __reExport(src_exports, __nccwpck_require__(23673), module.exports) + __reExport(src_exports, __nccwpck_require__(29415), module.exports) + __reExport(src_exports, __nccwpck_require__(65494), module.exports) + __reExport(src_exports, __nccwpck_require__(8639), module.exports) + // Annotate the CommonJS export names for ESM import in node: -// src/pagination/ListTypesPaginator.ts + 0 && 0 -var paginateListTypes = (0, import_core.createPaginator)(CloudFormationClient, ListTypesCommand, "NextToken", "NextToken", "MaxResults"); + /***/ + }, -// src/waiters/waitForChangeSetCreateComplete.ts -var import_util_waiter = __nccwpck_require__(78011); -var checkState = /* @__PURE__ */ __name(async (client, input) => { - let reason; - try { - const result = await client.send(new DescribeChangeSetCommand(input)); - reason = result; - try { - const returnComparator = /* @__PURE__ */ __name(() => { - return result.Status; - }, "returnComparator"); - if (returnComparator() === "CREATE_COMPLETE") { - return { state: import_util_waiter.WaiterState.SUCCESS, reason }; - } - } catch (e) { - } - try { - const returnComparator = /* @__PURE__ */ __name(() => { - return result.Status; - }, "returnComparator"); - if (returnComparator() === "FAILED") { - return { state: import_util_waiter.WaiterState.FAILURE, reason }; - } - } catch (e) { - } - } catch (exception) { - reason = exception; - if (exception.name && exception.name == "ValidationError") { - return { state: import_util_waiter.WaiterState.FAILURE, reason }; - } - } - return { state: import_util_waiter.WaiterState.RETRY, reason }; -}, "checkState"); -var waitForChangeSetCreateComplete = /* @__PURE__ */ __name(async (params, input) => { - const serviceDefaults = { minDelay: 30, maxDelay: 120 }; - return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState); -}, "waitForChangeSetCreateComplete"); -var waitUntilChangeSetCreateComplete = /* @__PURE__ */ __name(async (params, input) => { - const serviceDefaults = { minDelay: 30, maxDelay: 120 }; - const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState); - return (0, import_util_waiter.checkExceptions)(result); -}, "waitUntilChangeSetCreateComplete"); - -// src/waiters/waitForStackCreateComplete.ts - -var checkState2 = /* @__PURE__ */ __name(async (client, input) => { - let reason; - try { - const result = await client.send(new DescribeStacksCommand(input)); - reason = result; - try { - const returnComparator = /* @__PURE__ */ __name(() => { - const flat_1 = [].concat(...result.Stacks); - const projection_3 = flat_1.map((element_2) => { - return element_2.StackStatus; - }); - return projection_3; - }, "returnComparator"); - let allStringEq_5 = returnComparator().length > 0; - for (const element_4 of returnComparator()) { - allStringEq_5 = allStringEq_5 && element_4 == "CREATE_COMPLETE"; - } - if (allStringEq_5) { - return { state: import_util_waiter.WaiterState.SUCCESS, reason }; - } - } catch (e) { - } - try { - const returnComparator = /* @__PURE__ */ __name(() => { - const flat_1 = [].concat(...result.Stacks); - const projection_3 = flat_1.map((element_2) => { - return element_2.StackStatus; - }); - return projection_3; - }, "returnComparator"); - let allStringEq_5 = returnComparator().length > 0; - for (const element_4 of returnComparator()) { - allStringEq_5 = allStringEq_5 && element_4 == "UPDATE_COMPLETE"; - } - if (allStringEq_5) { - return { state: import_util_waiter.WaiterState.SUCCESS, reason }; - } - } catch (e) { - } - try { - const returnComparator = /* @__PURE__ */ __name(() => { - const flat_1 = [].concat(...result.Stacks); - const projection_3 = flat_1.map((element_2) => { - return element_2.StackStatus; - }); - return projection_3; - }, "returnComparator"); - let allStringEq_5 = returnComparator().length > 0; - for (const element_4 of returnComparator()) { - allStringEq_5 = allStringEq_5 && element_4 == "UPDATE_IN_PROGRESS"; - } - if (allStringEq_5) { - return { state: import_util_waiter.WaiterState.SUCCESS, reason }; - } - } catch (e) { - } - try { - const returnComparator = /* @__PURE__ */ __name(() => { - const flat_1 = [].concat(...result.Stacks); - const projection_3 = flat_1.map((element_2) => { - return element_2.StackStatus; - }); - return projection_3; - }, "returnComparator"); - let allStringEq_5 = returnComparator().length > 0; - for (const element_4 of returnComparator()) { - allStringEq_5 = allStringEq_5 && element_4 == "UPDATE_COMPLETE_CLEANUP_IN_PROGRESS"; - } - if (allStringEq_5) { - return { state: import_util_waiter.WaiterState.SUCCESS, reason }; - } - } catch (e) { - } - try { - const returnComparator = /* @__PURE__ */ __name(() => { - const flat_1 = [].concat(...result.Stacks); - const projection_3 = flat_1.map((element_2) => { - return element_2.StackStatus; - }); - return projection_3; - }, "returnComparator"); - let allStringEq_5 = returnComparator().length > 0; - for (const element_4 of returnComparator()) { - allStringEq_5 = allStringEq_5 && element_4 == "UPDATE_FAILED"; - } - if (allStringEq_5) { - return { state: import_util_waiter.WaiterState.SUCCESS, reason }; - } - } catch (e) { - } - try { - const returnComparator = /* @__PURE__ */ __name(() => { - const flat_1 = [].concat(...result.Stacks); - const projection_3 = flat_1.map((element_2) => { - return element_2.StackStatus; - }); - return projection_3; - }, "returnComparator"); - let allStringEq_5 = returnComparator().length > 0; - for (const element_4 of returnComparator()) { - allStringEq_5 = allStringEq_5 && element_4 == "UPDATE_ROLLBACK_IN_PROGRESS"; - } - if (allStringEq_5) { - return { state: import_util_waiter.WaiterState.SUCCESS, reason }; - } - } catch (e) { - } - try { - const returnComparator = /* @__PURE__ */ __name(() => { - const flat_1 = [].concat(...result.Stacks); - const projection_3 = flat_1.map((element_2) => { - return element_2.StackStatus; - }); - return projection_3; - }, "returnComparator"); - let allStringEq_5 = returnComparator().length > 0; - for (const element_4 of returnComparator()) { - allStringEq_5 = allStringEq_5 && element_4 == "UPDATE_ROLLBACK_FAILED"; - } - if (allStringEq_5) { - return { state: import_util_waiter.WaiterState.SUCCESS, reason }; - } - } catch (e) { - } - try { - const returnComparator = /* @__PURE__ */ __name(() => { - const flat_1 = [].concat(...result.Stacks); - const projection_3 = flat_1.map((element_2) => { - return element_2.StackStatus; - }); - return projection_3; - }, "returnComparator"); - let allStringEq_5 = returnComparator().length > 0; - for (const element_4 of returnComparator()) { - allStringEq_5 = allStringEq_5 && element_4 == "UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS"; - } - if (allStringEq_5) { - return { state: import_util_waiter.WaiterState.SUCCESS, reason }; - } - } catch (e) { - } - try { - const returnComparator = /* @__PURE__ */ __name(() => { - const flat_1 = [].concat(...result.Stacks); - const projection_3 = flat_1.map((element_2) => { - return element_2.StackStatus; - }); - return projection_3; - }, "returnComparator"); - let allStringEq_5 = returnComparator().length > 0; - for (const element_4 of returnComparator()) { - allStringEq_5 = allStringEq_5 && element_4 == "UPDATE_ROLLBACK_COMPLETE"; - } - if (allStringEq_5) { - return { state: import_util_waiter.WaiterState.SUCCESS, reason }; - } - } catch (e) { - } - try { - const returnComparator = /* @__PURE__ */ __name(() => { - const flat_1 = [].concat(...result.Stacks); - const projection_3 = flat_1.map((element_2) => { - return element_2.StackStatus; - }); - return projection_3; - }, "returnComparator"); - for (const anyStringEq_4 of returnComparator()) { - if (anyStringEq_4 == "CREATE_FAILED") { - return { state: import_util_waiter.WaiterState.FAILURE, reason }; - } - } - } catch (e) { - } - try { - const returnComparator = /* @__PURE__ */ __name(() => { - const flat_1 = [].concat(...result.Stacks); - const projection_3 = flat_1.map((element_2) => { - return element_2.StackStatus; - }); - return projection_3; - }, "returnComparator"); - for (const anyStringEq_4 of returnComparator()) { - if (anyStringEq_4 == "DELETE_COMPLETE") { - return { state: import_util_waiter.WaiterState.FAILURE, reason }; - } - } - } catch (e) { - } - try { - const returnComparator = /* @__PURE__ */ __name(() => { - const flat_1 = [].concat(...result.Stacks); - const projection_3 = flat_1.map((element_2) => { - return element_2.StackStatus; - }); - return projection_3; - }, "returnComparator"); - for (const anyStringEq_4 of returnComparator()) { - if (anyStringEq_4 == "DELETE_FAILED") { - return { state: import_util_waiter.WaiterState.FAILURE, reason }; - } - } - } catch (e) { - } - try { - const returnComparator = /* @__PURE__ */ __name(() => { - const flat_1 = [].concat(...result.Stacks); - const projection_3 = flat_1.map((element_2) => { - return element_2.StackStatus; - }); - return projection_3; - }, "returnComparator"); - for (const anyStringEq_4 of returnComparator()) { - if (anyStringEq_4 == "ROLLBACK_FAILED") { - return { state: import_util_waiter.WaiterState.FAILURE, reason }; - } - } - } catch (e) { - } - try { - const returnComparator = /* @__PURE__ */ __name(() => { - const flat_1 = [].concat(...result.Stacks); - const projection_3 = flat_1.map((element_2) => { - return element_2.StackStatus; - }); - return projection_3; - }, "returnComparator"); - for (const anyStringEq_4 of returnComparator()) { - if (anyStringEq_4 == "ROLLBACK_COMPLETE") { - return { state: import_util_waiter.WaiterState.FAILURE, reason }; - } - } - } catch (e) { - } - } catch (exception) { - reason = exception; - if (exception.name && exception.name == "ValidationError") { - return { state: import_util_waiter.WaiterState.FAILURE, reason }; - } - } - return { state: import_util_waiter.WaiterState.RETRY, reason }; -}, "checkState"); -var waitForStackCreateComplete = /* @__PURE__ */ __name(async (params, input) => { - const serviceDefaults = { minDelay: 30, maxDelay: 120 }; - return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState2); -}, "waitForStackCreateComplete"); -var waitUntilStackCreateComplete = /* @__PURE__ */ __name(async (params, input) => { - const serviceDefaults = { minDelay: 30, maxDelay: 120 }; - const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState2); - return (0, import_util_waiter.checkExceptions)(result); -}, "waitUntilStackCreateComplete"); - -// src/waiters/waitForStackDeleteComplete.ts - -var checkState3 = /* @__PURE__ */ __name(async (client, input) => { - let reason; - try { - const result = await client.send(new DescribeStacksCommand(input)); - reason = result; - try { - const returnComparator = /* @__PURE__ */ __name(() => { - const flat_1 = [].concat(...result.Stacks); - const projection_3 = flat_1.map((element_2) => { - return element_2.StackStatus; - }); - return projection_3; - }, "returnComparator"); - let allStringEq_5 = returnComparator().length > 0; - for (const element_4 of returnComparator()) { - allStringEq_5 = allStringEq_5 && element_4 == "DELETE_COMPLETE"; - } - if (allStringEq_5) { - return { state: import_util_waiter.WaiterState.SUCCESS, reason }; - } - } catch (e) { - } - try { - const returnComparator = /* @__PURE__ */ __name(() => { - const flat_1 = [].concat(...result.Stacks); - const projection_3 = flat_1.map((element_2) => { - return element_2.StackStatus; - }); - return projection_3; - }, "returnComparator"); - for (const anyStringEq_4 of returnComparator()) { - if (anyStringEq_4 == "DELETE_FAILED") { - return { state: import_util_waiter.WaiterState.FAILURE, reason }; - } - } - } catch (e) { - } - try { - const returnComparator = /* @__PURE__ */ __name(() => { - const flat_1 = [].concat(...result.Stacks); - const projection_3 = flat_1.map((element_2) => { - return element_2.StackStatus; - }); - return projection_3; - }, "returnComparator"); - for (const anyStringEq_4 of returnComparator()) { - if (anyStringEq_4 == "CREATE_FAILED") { - return { state: import_util_waiter.WaiterState.FAILURE, reason }; - } - } - } catch (e) { - } - try { - const returnComparator = /* @__PURE__ */ __name(() => { - const flat_1 = [].concat(...result.Stacks); - const projection_3 = flat_1.map((element_2) => { - return element_2.StackStatus; - }); - return projection_3; - }, "returnComparator"); - for (const anyStringEq_4 of returnComparator()) { - if (anyStringEq_4 == "ROLLBACK_FAILED") { - return { state: import_util_waiter.WaiterState.FAILURE, reason }; - } - } - } catch (e) { - } - try { - const returnComparator = /* @__PURE__ */ __name(() => { - const flat_1 = [].concat(...result.Stacks); - const projection_3 = flat_1.map((element_2) => { - return element_2.StackStatus; - }); - return projection_3; - }, "returnComparator"); - for (const anyStringEq_4 of returnComparator()) { - if (anyStringEq_4 == "UPDATE_ROLLBACK_IN_PROGRESS") { - return { state: import_util_waiter.WaiterState.FAILURE, reason }; - } - } - } catch (e) { - } - try { - const returnComparator = /* @__PURE__ */ __name(() => { - const flat_1 = [].concat(...result.Stacks); - const projection_3 = flat_1.map((element_2) => { - return element_2.StackStatus; - }); - return projection_3; - }, "returnComparator"); - for (const anyStringEq_4 of returnComparator()) { - if (anyStringEq_4 == "UPDATE_ROLLBACK_FAILED") { - return { state: import_util_waiter.WaiterState.FAILURE, reason }; - } - } - } catch (e) { - } - try { - const returnComparator = /* @__PURE__ */ __name(() => { - const flat_1 = [].concat(...result.Stacks); - const projection_3 = flat_1.map((element_2) => { - return element_2.StackStatus; - }); - return projection_3; - }, "returnComparator"); - for (const anyStringEq_4 of returnComparator()) { - if (anyStringEq_4 == "UPDATE_ROLLBACK_COMPLETE") { - return { state: import_util_waiter.WaiterState.FAILURE, reason }; - } - } - } catch (e) { - } - try { - const returnComparator = /* @__PURE__ */ __name(() => { - const flat_1 = [].concat(...result.Stacks); - const projection_3 = flat_1.map((element_2) => { - return element_2.StackStatus; - }); - return projection_3; - }, "returnComparator"); - for (const anyStringEq_4 of returnComparator()) { - if (anyStringEq_4 == "UPDATE_COMPLETE") { - return { state: import_util_waiter.WaiterState.FAILURE, reason }; - } - } - } catch (e) { - } - } catch (exception) { - reason = exception; - if (exception.name && exception.name == "ValidationError") { - return { state: import_util_waiter.WaiterState.SUCCESS, reason }; - } - } - return { state: import_util_waiter.WaiterState.RETRY, reason }; -}, "checkState"); -var waitForStackDeleteComplete = /* @__PURE__ */ __name(async (params, input) => { - const serviceDefaults = { minDelay: 30, maxDelay: 120 }; - return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState3); -}, "waitForStackDeleteComplete"); -var waitUntilStackDeleteComplete = /* @__PURE__ */ __name(async (params, input) => { - const serviceDefaults = { minDelay: 30, maxDelay: 120 }; - const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState3); - return (0, import_util_waiter.checkExceptions)(result); -}, "waitUntilStackDeleteComplete"); - -// src/waiters/waitForStackExists.ts - -var checkState4 = /* @__PURE__ */ __name(async (client, input) => { - let reason; - try { - const result = await client.send(new DescribeStacksCommand(input)); - reason = result; - return { state: import_util_waiter.WaiterState.SUCCESS, reason }; - } catch (exception) { - reason = exception; - if (exception.name && exception.name == "ValidationError") { - return { state: import_util_waiter.WaiterState.RETRY, reason }; - } - } - return { state: import_util_waiter.WaiterState.RETRY, reason }; -}, "checkState"); -var waitForStackExists = /* @__PURE__ */ __name(async (params, input) => { - const serviceDefaults = { minDelay: 5, maxDelay: 120 }; - return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState4); -}, "waitForStackExists"); -var waitUntilStackExists = /* @__PURE__ */ __name(async (params, input) => { - const serviceDefaults = { minDelay: 5, maxDelay: 120 }; - const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState4); - return (0, import_util_waiter.checkExceptions)(result); -}, "waitUntilStackExists"); - -// src/waiters/waitForStackImportComplete.ts - -var checkState5 = /* @__PURE__ */ __name(async (client, input) => { - let reason; - try { - const result = await client.send(new DescribeStacksCommand(input)); - reason = result; - try { - const returnComparator = /* @__PURE__ */ __name(() => { - const flat_1 = [].concat(...result.Stacks); - const projection_3 = flat_1.map((element_2) => { - return element_2.StackStatus; - }); - return projection_3; - }, "returnComparator"); - let allStringEq_5 = returnComparator().length > 0; - for (const element_4 of returnComparator()) { - allStringEq_5 = allStringEq_5 && element_4 == "IMPORT_COMPLETE"; - } - if (allStringEq_5) { - return { state: import_util_waiter.WaiterState.SUCCESS, reason }; - } - } catch (e) { - } - try { - const returnComparator = /* @__PURE__ */ __name(() => { - const flat_1 = [].concat(...result.Stacks); - const projection_3 = flat_1.map((element_2) => { - return element_2.StackStatus; - }); - return projection_3; - }, "returnComparator"); - for (const anyStringEq_4 of returnComparator()) { - if (anyStringEq_4 == "ROLLBACK_COMPLETE") { - return { state: import_util_waiter.WaiterState.FAILURE, reason }; - } - } - } catch (e) { - } - try { - const returnComparator = /* @__PURE__ */ __name(() => { - const flat_1 = [].concat(...result.Stacks); - const projection_3 = flat_1.map((element_2) => { - return element_2.StackStatus; - }); - return projection_3; - }, "returnComparator"); - for (const anyStringEq_4 of returnComparator()) { - if (anyStringEq_4 == "ROLLBACK_FAILED") { - return { state: import_util_waiter.WaiterState.FAILURE, reason }; - } - } - } catch (e) { - } - try { - const returnComparator = /* @__PURE__ */ __name(() => { - const flat_1 = [].concat(...result.Stacks); - const projection_3 = flat_1.map((element_2) => { - return element_2.StackStatus; - }); - return projection_3; - }, "returnComparator"); - for (const anyStringEq_4 of returnComparator()) { - if (anyStringEq_4 == "IMPORT_ROLLBACK_IN_PROGRESS") { - return { state: import_util_waiter.WaiterState.FAILURE, reason }; - } - } - } catch (e) { - } - try { - const returnComparator = /* @__PURE__ */ __name(() => { - const flat_1 = [].concat(...result.Stacks); - const projection_3 = flat_1.map((element_2) => { - return element_2.StackStatus; - }); - return projection_3; - }, "returnComparator"); - for (const anyStringEq_4 of returnComparator()) { - if (anyStringEq_4 == "IMPORT_ROLLBACK_FAILED") { - return { state: import_util_waiter.WaiterState.FAILURE, reason }; - } - } - } catch (e) { - } - try { - const returnComparator = /* @__PURE__ */ __name(() => { - const flat_1 = [].concat(...result.Stacks); - const projection_3 = flat_1.map((element_2) => { - return element_2.StackStatus; - }); - return projection_3; - }, "returnComparator"); - for (const anyStringEq_4 of returnComparator()) { - if (anyStringEq_4 == "IMPORT_ROLLBACK_COMPLETE") { - return { state: import_util_waiter.WaiterState.FAILURE, reason }; - } - } - } catch (e) { - } - } catch (exception) { - reason = exception; - if (exception.name && exception.name == "ValidationError") { - return { state: import_util_waiter.WaiterState.FAILURE, reason }; - } - } - return { state: import_util_waiter.WaiterState.RETRY, reason }; -}, "checkState"); -var waitForStackImportComplete = /* @__PURE__ */ __name(async (params, input) => { - const serviceDefaults = { minDelay: 30, maxDelay: 120 }; - return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState5); -}, "waitForStackImportComplete"); -var waitUntilStackImportComplete = /* @__PURE__ */ __name(async (params, input) => { - const serviceDefaults = { minDelay: 30, maxDelay: 120 }; - const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState5); - return (0, import_util_waiter.checkExceptions)(result); -}, "waitUntilStackImportComplete"); - -// src/waiters/waitForStackRollbackComplete.ts - -var checkState6 = /* @__PURE__ */ __name(async (client, input) => { - let reason; - try { - const result = await client.send(new DescribeStacksCommand(input)); - reason = result; - try { - const returnComparator = /* @__PURE__ */ __name(() => { - const flat_1 = [].concat(...result.Stacks); - const projection_3 = flat_1.map((element_2) => { - return element_2.StackStatus; - }); - return projection_3; - }, "returnComparator"); - let allStringEq_5 = returnComparator().length > 0; - for (const element_4 of returnComparator()) { - allStringEq_5 = allStringEq_5 && element_4 == "UPDATE_ROLLBACK_COMPLETE"; - } - if (allStringEq_5) { - return { state: import_util_waiter.WaiterState.SUCCESS, reason }; - } - } catch (e) { - } - try { - const returnComparator = /* @__PURE__ */ __name(() => { - const flat_1 = [].concat(...result.Stacks); - const projection_3 = flat_1.map((element_2) => { - return element_2.StackStatus; - }); - return projection_3; - }, "returnComparator"); - for (const anyStringEq_4 of returnComparator()) { - if (anyStringEq_4 == "UPDATE_FAILED") { - return { state: import_util_waiter.WaiterState.FAILURE, reason }; - } - } - } catch (e) { - } - try { - const returnComparator = /* @__PURE__ */ __name(() => { - const flat_1 = [].concat(...result.Stacks); - const projection_3 = flat_1.map((element_2) => { - return element_2.StackStatus; - }); - return projection_3; - }, "returnComparator"); - for (const anyStringEq_4 of returnComparator()) { - if (anyStringEq_4 == "UPDATE_ROLLBACK_FAILED") { - return { state: import_util_waiter.WaiterState.FAILURE, reason }; - } - } - } catch (e) { - } - try { - const returnComparator = /* @__PURE__ */ __name(() => { - const flat_1 = [].concat(...result.Stacks); - const projection_3 = flat_1.map((element_2) => { - return element_2.StackStatus; - }); - return projection_3; - }, "returnComparator"); - for (const anyStringEq_4 of returnComparator()) { - if (anyStringEq_4 == "DELETE_FAILED") { - return { state: import_util_waiter.WaiterState.FAILURE, reason }; - } - } - } catch (e) { - } - } catch (exception) { - reason = exception; - if (exception.name && exception.name == "ValidationError") { - return { state: import_util_waiter.WaiterState.FAILURE, reason }; - } - } - return { state: import_util_waiter.WaiterState.RETRY, reason }; -}, "checkState"); -var waitForStackRollbackComplete = /* @__PURE__ */ __name(async (params, input) => { - const serviceDefaults = { minDelay: 30, maxDelay: 120 }; - return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState6); -}, "waitForStackRollbackComplete"); -var waitUntilStackRollbackComplete = /* @__PURE__ */ __name(async (params, input) => { - const serviceDefaults = { minDelay: 30, maxDelay: 120 }; - const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState6); - return (0, import_util_waiter.checkExceptions)(result); -}, "waitUntilStackRollbackComplete"); - -// src/waiters/waitForStackUpdateComplete.ts - -var checkState7 = /* @__PURE__ */ __name(async (client, input) => { - let reason; - try { - const result = await client.send(new DescribeStacksCommand(input)); - reason = result; - try { - const returnComparator = /* @__PURE__ */ __name(() => { - const flat_1 = [].concat(...result.Stacks); - const projection_3 = flat_1.map((element_2) => { - return element_2.StackStatus; - }); - return projection_3; - }, "returnComparator"); - let allStringEq_5 = returnComparator().length > 0; - for (const element_4 of returnComparator()) { - allStringEq_5 = allStringEq_5 && element_4 == "UPDATE_COMPLETE"; - } - if (allStringEq_5) { - return { state: import_util_waiter.WaiterState.SUCCESS, reason }; - } - } catch (e) { - } - try { - const returnComparator = /* @__PURE__ */ __name(() => { - const flat_1 = [].concat(...result.Stacks); - const projection_3 = flat_1.map((element_2) => { - return element_2.StackStatus; - }); - return projection_3; - }, "returnComparator"); - for (const anyStringEq_4 of returnComparator()) { - if (anyStringEq_4 == "UPDATE_FAILED") { - return { state: import_util_waiter.WaiterState.FAILURE, reason }; - } - } - } catch (e) { - } - try { - const returnComparator = /* @__PURE__ */ __name(() => { - const flat_1 = [].concat(...result.Stacks); - const projection_3 = flat_1.map((element_2) => { - return element_2.StackStatus; - }); - return projection_3; - }, "returnComparator"); - for (const anyStringEq_4 of returnComparator()) { - if (anyStringEq_4 == "UPDATE_ROLLBACK_FAILED") { - return { state: import_util_waiter.WaiterState.FAILURE, reason }; - } - } - } catch (e) { - } - try { - const returnComparator = /* @__PURE__ */ __name(() => { - const flat_1 = [].concat(...result.Stacks); - const projection_3 = flat_1.map((element_2) => { - return element_2.StackStatus; - }); - return projection_3; - }, "returnComparator"); - for (const anyStringEq_4 of returnComparator()) { - if (anyStringEq_4 == "UPDATE_ROLLBACK_COMPLETE") { - return { state: import_util_waiter.WaiterState.FAILURE, reason }; - } - } - } catch (e) { - } - } catch (exception) { - reason = exception; - if (exception.name && exception.name == "ValidationError") { - return { state: import_util_waiter.WaiterState.FAILURE, reason }; - } - } - return { state: import_util_waiter.WaiterState.RETRY, reason }; -}, "checkState"); -var waitForStackUpdateComplete = /* @__PURE__ */ __name(async (params, input) => { - const serviceDefaults = { minDelay: 30, maxDelay: 120 }; - return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState7); -}, "waitForStackUpdateComplete"); -var waitUntilStackUpdateComplete = /* @__PURE__ */ __name(async (params, input) => { - const serviceDefaults = { minDelay: 30, maxDelay: 120 }; - const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState7); - return (0, import_util_waiter.checkExceptions)(result); -}, "waitUntilStackUpdateComplete"); - -// src/waiters/waitForTypeRegistrationComplete.ts - -var checkState8 = /* @__PURE__ */ __name(async (client, input) => { - let reason; - try { - const result = await client.send(new DescribeTypeRegistrationCommand(input)); - reason = result; - try { - const returnComparator = /* @__PURE__ */ __name(() => { - return result.ProgressStatus; - }, "returnComparator"); - if (returnComparator() === "COMPLETE") { - return { state: import_util_waiter.WaiterState.SUCCESS, reason }; - } - } catch (e) { - } - try { - const returnComparator = /* @__PURE__ */ __name(() => { - return result.ProgressStatus; - }, "returnComparator"); - if (returnComparator() === "FAILED") { - return { state: import_util_waiter.WaiterState.FAILURE, reason }; - } - } catch (e) { - } - } catch (exception) { - reason = exception; - } - return { state: import_util_waiter.WaiterState.RETRY, reason }; -}, "checkState"); -var waitForTypeRegistrationComplete = /* @__PURE__ */ __name(async (params, input) => { - const serviceDefaults = { minDelay: 30, maxDelay: 120 }; - return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState8); -}, "waitForTypeRegistrationComplete"); -var waitUntilTypeRegistrationComplete = /* @__PURE__ */ __name(async (params, input) => { - const serviceDefaults = { minDelay: 30, maxDelay: 120 }; - const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState8); - return (0, import_util_waiter.checkExceptions)(result); -}, "waitUntilTypeRegistrationComplete"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 82643: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getRuntimeConfig = void 0; -const tslib_1 = __nccwpck_require__(4351); -const package_json_1 = tslib_1.__importDefault(__nccwpck_require__(43713)); -const core_1 = __nccwpck_require__(59963); -const credential_provider_node_1 = __nccwpck_require__(75531); -const util_user_agent_node_1 = __nccwpck_require__(98095); -const config_resolver_1 = __nccwpck_require__(53098); -const hash_node_1 = __nccwpck_require__(3081); -const middleware_retry_1 = __nccwpck_require__(96039); -const node_config_provider_1 = __nccwpck_require__(33461); -const node_http_handler_1 = __nccwpck_require__(78017); -const util_body_length_node_1 = __nccwpck_require__(68075); -const util_retry_1 = __nccwpck_require__(84902); -const runtimeConfig_shared_1 = __nccwpck_require__(37328); -const smithy_client_1 = __nccwpck_require__(63570); -const util_defaults_mode_node_1 = __nccwpck_require__(72429); -const smithy_client_2 = __nccwpck_require__(63570); -const getRuntimeConfig = (config) => { - (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version); - const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config); - const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode); - const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config); - (0, core_1.emitWarningIfUnsupportedVersion)(process.version); - return { - ...clientSharedValues, - ...config, - runtime: "node", - defaultsMode, - bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength, - credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider, - defaultUserAgentProvider: config?.defaultUserAgentProvider ?? - (0, util_user_agent_node_1.defaultUserAgent)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }), - maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS), - region: config?.region ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS), - requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider), - retryMode: config?.retryMode ?? - (0, node_config_provider_1.loadConfig)({ - ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS, - default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE, - }), - sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, "sha256"), - streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector, - useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS), - useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS), - }; -}; -exports.getRuntimeConfig = getRuntimeConfig; - - -/***/ }), - -/***/ 37328: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getRuntimeConfig = void 0; -const core_1 = __nccwpck_require__(59963); -const smithy_client_1 = __nccwpck_require__(63570); -const url_parser_1 = __nccwpck_require__(14681); -const util_base64_1 = __nccwpck_require__(75600); -const util_utf8_1 = __nccwpck_require__(41895); -const httpAuthSchemeProvider_1 = __nccwpck_require__(74292); -const endpointResolver_1 = __nccwpck_require__(5640); -const getRuntimeConfig = (config) => { - return { - apiVersion: "2010-05-15", - base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64, - base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64, - disableHostPrefix: config?.disableHostPrefix ?? false, - endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver, - extensions: config?.extensions ?? [], - httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultCloudFormationHttpAuthSchemeProvider, - httpAuthSchemes: config?.httpAuthSchemes ?? [ - { - schemeId: "aws.auth#sigv4", - identityProvider: (ipc) => ipc.getIdentityProvider("aws.auth#sigv4"), - signer: new core_1.AwsSdkSigV4Signer(), - }, - ], - logger: config?.logger ?? new smithy_client_1.NoOpLogger(), - serviceId: config?.serviceId ?? "CloudFormation", - urlParser: config?.urlParser ?? url_parser_1.parseUrl, - utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8, - utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8, - }; -}; -exports.getRuntimeConfig = getRuntimeConfig; - - -/***/ }), - -/***/ 78017: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __create = Object.create; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __getProtoOf = Object.getPrototypeOf; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. - isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, - mod -)); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - DEFAULT_REQUEST_TIMEOUT: () => DEFAULT_REQUEST_TIMEOUT, - NodeHttp2Handler: () => NodeHttp2Handler, - NodeHttpHandler: () => NodeHttpHandler, - streamCollector: () => streamCollector -}); -module.exports = __toCommonJS(src_exports); - -// src/node-http-handler.ts -var import_protocol_http = __nccwpck_require__(64418); -var import_querystring_builder = __nccwpck_require__(68031); -var import_http = __nccwpck_require__(13685); -var import_https = __nccwpck_require__(95687); - -// src/constants.ts -var NODEJS_TIMEOUT_ERROR_CODES = ["ECONNRESET", "EPIPE", "ETIMEDOUT"]; - -// src/get-transformed-headers.ts -var getTransformedHeaders = /* @__PURE__ */ __name((headers) => { - const transformedHeaders = {}; - for (const name of Object.keys(headers)) { - const headerValues = headers[name]; - transformedHeaders[name] = Array.isArray(headerValues) ? headerValues.join(",") : headerValues; - } - return transformedHeaders; -}, "getTransformedHeaders"); - -// src/set-connection-timeout.ts -var DEFER_EVENT_LISTENER_TIME = 1e3; -var setConnectionTimeout = /* @__PURE__ */ __name((request, reject, timeoutInMs = 0) => { - if (!timeoutInMs) { - return -1; - } - const registerTimeout = /* @__PURE__ */ __name((offset) => { - const timeoutId = setTimeout(() => { - request.destroy(); - reject( - Object.assign(new Error(`Socket timed out without establishing a connection within ${timeoutInMs} ms`), { - name: "TimeoutError" + /***/ 11775: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.sdkStreamMixin = void 0 + const fetch_http_handler_1 = __nccwpck_require__(19464) + const util_base64_1 = __nccwpck_require__(87656) + const util_hex_encoding_1 = __nccwpck_require__(82143) + const util_utf8_1 = __nccwpck_require__(94377) + const stream_type_check_1 = __nccwpck_require__(8639) + const ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED = + 'The stream has already been transformed.' + const sdkStreamMixin = stream => { + var _a, _b + if ( + !isBlobInstance(stream) && + !(0, stream_type_check_1.isReadableStream)(stream) + ) { + 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 + throw new Error( + `Unexpected stream implementation, expect Blob or ReadableStream, got ${name}` + ) + } + let transformed = false + const transformToByteArray = async () => { + if (transformed) { + throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED) + } + transformed = true + return await (0, fetch_http_handler_1.streamCollector)(stream) + } + const blobToWebStream = blob => { + if (typeof blob.stream !== 'function') { + throw new Error( + 'Cannot transform payload Blob to web stream. Please make sure the Blob.stream() is polyfilled.\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' + ) + } + return blob.stream() + } + return Object.assign(stream, { + transformToByteArray: transformToByteArray, + transformToString: async encoding => { + const buf = await transformToByteArray() + if (encoding === 'base64') { + return (0, util_base64_1.toBase64)(buf) + } else if (encoding === 'hex') { + return (0, util_hex_encoding_1.toHex)(buf) + } else if ( + encoding === undefined || + encoding === 'utf8' || + encoding === 'utf-8' + ) { + return (0, util_utf8_1.toUtf8)(buf) + } else if (typeof TextDecoder === 'function') { + return new TextDecoder(encoding).decode(buf) + } else { + throw new Error( + 'TextDecoder is not available, please make sure polyfill is provided.' + ) + } + }, + transformToWebStream: () => { + if (transformed) { + throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED) + } + transformed = true + if (isBlobInstance(stream)) { + return blobToWebStream(stream) + } else if ((0, stream_type_check_1.isReadableStream)(stream)) { + return stream + } else { + throw new Error( + `Cannot transform payload to web stream, got ${stream}` + ) + } + } }) - ); - }, timeoutInMs - offset); - const doWithSocket = /* @__PURE__ */ __name((socket) => { - if (socket == null ? void 0 : socket.connecting) { - socket.on("connect", () => { - clearTimeout(timeoutId); - }); - } else { - clearTimeout(timeoutId); } - }, "doWithSocket"); - if (request.socket) { - doWithSocket(request.socket); - } else { - request.on("socket", doWithSocket); - } - }, "registerTimeout"); - if (timeoutInMs < 2e3) { - registerTimeout(0); - return 0; - } - return setTimeout(registerTimeout.bind(null, DEFER_EVENT_LISTENER_TIME), DEFER_EVENT_LISTENER_TIME); -}, "setConnectionTimeout"); - -// src/set-socket-keep-alive.ts -var DEFER_EVENT_LISTENER_TIME2 = 3e3; -var setSocketKeepAlive = /* @__PURE__ */ __name((request, { keepAlive, keepAliveMsecs }, deferTimeMs = DEFER_EVENT_LISTENER_TIME2) => { - if (keepAlive !== true) { - return -1; - } - const registerListener = /* @__PURE__ */ __name(() => { - if (request.socket) { - request.socket.setKeepAlive(keepAlive, keepAliveMsecs || 0); - } else { - request.on("socket", (socket) => { - socket.setKeepAlive(keepAlive, keepAliveMsecs || 0); - }); - } - }, "registerListener"); - if (deferTimeMs === 0) { - registerListener(); - return 0; - } - return setTimeout(registerListener, deferTimeMs); -}, "setSocketKeepAlive"); - -// src/set-socket-timeout.ts -var DEFER_EVENT_LISTENER_TIME3 = 3e3; -var setSocketTimeout = /* @__PURE__ */ __name((request, reject, timeoutInMs = 0) => { - const registerTimeout = /* @__PURE__ */ __name((offset) => { - request.setTimeout(timeoutInMs - offset, () => { - request.destroy(); - reject(Object.assign(new Error(`Connection timed out after ${timeoutInMs} ms`), { name: "TimeoutError" })); - }); - }, "registerTimeout"); - if (0 < timeoutInMs && timeoutInMs < 6e3) { - registerTimeout(0); - return 0; - } - return setTimeout( - registerTimeout.bind(null, timeoutInMs === 0 ? 0 : DEFER_EVENT_LISTENER_TIME3), - DEFER_EVENT_LISTENER_TIME3 - ); -}, "setSocketTimeout"); - -// src/write-request-body.ts -var import_stream = __nccwpck_require__(12781); -var MIN_WAIT_TIME = 1e3; -async function writeRequestBody(httpRequest, request, maxContinueTimeoutMs = MIN_WAIT_TIME) { - const headers = request.headers ?? {}; - const expect = headers["Expect"] || headers["expect"]; - let timeoutId = -1; - let hasError = false; - if (expect === "100-continue") { - await Promise.race([ - new Promise((resolve) => { - timeoutId = Number(setTimeout(resolve, Math.max(MIN_WAIT_TIME, maxContinueTimeoutMs))); - }), - new Promise((resolve) => { - httpRequest.on("continue", () => { - clearTimeout(timeoutId); - resolve(); - }); - httpRequest.on("error", () => { - hasError = true; - clearTimeout(timeoutId); - resolve(); - }); - }) - ]); - } - if (!hasError) { - writeBody(httpRequest, request.body); - } -} -__name(writeRequestBody, "writeRequestBody"); -function writeBody(httpRequest, body) { - if (body instanceof import_stream.Readable) { - body.pipe(httpRequest); - return; - } - if (body) { - if (Buffer.isBuffer(body) || typeof body === "string") { - httpRequest.end(body); - return; - } - const uint8 = body; - if (typeof uint8 === "object" && uint8.buffer && typeof uint8.byteOffset === "number" && typeof uint8.byteLength === "number") { - httpRequest.end(Buffer.from(uint8.buffer, uint8.byteOffset, uint8.byteLength)); - return; - } - httpRequest.end(Buffer.from(body)); - return; - } - httpRequest.end(); -} -__name(writeBody, "writeBody"); - -// src/node-http-handler.ts -var DEFAULT_REQUEST_TIMEOUT = 0; -var _NodeHttpHandler = class _NodeHttpHandler { - constructor(options) { - this.socketWarningTimestamp = 0; - // Node http handler is hard-coded to http/1.1: https://github.com/nodejs/node/blob/ff5664b83b89c55e4ab5d5f60068fb457f1f5872/lib/_http_server.js#L286 - this.metadata = { handlerProtocol: "http/1.1" }; - this.configProvider = new Promise((resolve, reject) => { - if (typeof options === "function") { - options().then((_options) => { - resolve(this.resolveDefaultConfig(_options)); - }).catch(reject); - } else { - resolve(this.resolveDefaultConfig(options)); - } - }); - } - /** - * @returns the input if it is an HttpHandler of any class, - * or instantiates a new instance of this handler. - */ - static create(instanceOrOptions) { - if (typeof (instanceOrOptions == null ? void 0 : instanceOrOptions.handle) === "function") { - return instanceOrOptions; - } - return new _NodeHttpHandler(instanceOrOptions); - } - /** - * @internal - * - * @param agent - http(s) agent in use by the NodeHttpHandler instance. - * @param socketWarningTimestamp - last socket usage check timestamp. - * @param logger - channel for the warning. - * @returns timestamp of last emitted warning. - */ - static checkSocketUsage(agent, socketWarningTimestamp, logger = console) { - var _a, _b, _c; - const { sockets, requests, maxSockets } = agent; - if (typeof maxSockets !== "number" || maxSockets === Infinity) { - return socketWarningTimestamp; - } - const interval = 15e3; - if (Date.now() - interval < socketWarningTimestamp) { - return socketWarningTimestamp; - } - if (sockets && requests) { - for (const origin in sockets) { - const socketsInUse = ((_a = sockets[origin]) == null ? void 0 : _a.length) ?? 0; - const requestsEnqueued = ((_b = requests[origin]) == null ? void 0 : _b.length) ?? 0; - if (socketsInUse >= maxSockets && requestsEnqueued >= 2 * maxSockets) { - (_c = logger == null ? void 0 : logger.warn) == null ? void 0 : _c.call( - logger, - `@smithy/node-http-handler:WARN - socket usage at capacity=${socketsInUse} and ${requestsEnqueued} additional requests are enqueued. -See https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html -or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.` - ); - return Date.now(); + exports.sdkStreamMixin = sdkStreamMixin + const isBlobInstance = stream => + typeof Blob === 'function' && stream instanceof Blob + + /***/ + }, + + /***/ 29415: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.sdkStreamMixin = void 0 + const node_http_handler_1 = __nccwpck_require__(55239) + const util_buffer_from_1 = __nccwpck_require__(48928) + const stream_1 = __nccwpck_require__(12781) + const sdk_stream_mixin_browser_1 = __nccwpck_require__(11775) + const ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED = + 'The stream has already been transformed.' + const sdkStreamMixin = stream => { + var _a, _b + if (!(stream instanceof stream_1.Readable)) { + try { + return (0, sdk_stream_mixin_browser_1.sdkStreamMixin)(stream) + } catch (e) { + 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 + throw new Error( + `Unexpected stream implementation, expect Stream.Readable instance, got ${name}` + ) + } } - } - } - return socketWarningTimestamp; - } - resolveDefaultConfig(options) { - const { requestTimeout, connectionTimeout, socketTimeout, httpAgent, httpsAgent } = options || {}; - const keepAlive = true; - const maxSockets = 50; - return { - connectionTimeout, - requestTimeout: requestTimeout ?? socketTimeout, - httpAgent: (() => { - if (httpAgent instanceof import_http.Agent || typeof (httpAgent == null ? void 0 : httpAgent.destroy) === "function") { - return httpAgent; - } - return new import_http.Agent({ keepAlive, maxSockets, ...httpAgent }); - })(), - httpsAgent: (() => { - if (httpsAgent instanceof import_https.Agent || typeof (httpsAgent == null ? void 0 : httpsAgent.destroy) === "function") { - return httpsAgent; - } - return new import_https.Agent({ keepAlive, maxSockets, ...httpsAgent }); - })(), - logger: console - }; - } - destroy() { - var _a, _b, _c, _d; - (_b = (_a = this.config) == null ? void 0 : _a.httpAgent) == null ? void 0 : _b.destroy(); - (_d = (_c = this.config) == null ? void 0 : _c.httpsAgent) == null ? void 0 : _d.destroy(); - } - async handle(request, { abortSignal } = {}) { - if (!this.config) { - this.config = await this.configProvider; - } - return new Promise((_resolve, _reject) => { - let writeRequestBodyPromise = void 0; - const timeouts = []; - const resolve = /* @__PURE__ */ __name(async (arg) => { - await writeRequestBodyPromise; - timeouts.forEach(clearTimeout); - _resolve(arg); - }, "resolve"); - const reject = /* @__PURE__ */ __name(async (arg) => { - await writeRequestBodyPromise; - timeouts.forEach(clearTimeout); - _reject(arg); - }, "reject"); - if (!this.config) { - throw new Error("Node HTTP request handler config is not resolved"); - } - if (abortSignal == null ? void 0 : abortSignal.aborted) { - const abortError = new Error("Request aborted"); - abortError.name = "AbortError"; - reject(abortError); - return; - } - const isSSL = request.protocol === "https:"; - const agent = isSSL ? this.config.httpsAgent : this.config.httpAgent; - timeouts.push( - setTimeout( - () => { - this.socketWarningTimestamp = _NodeHttpHandler.checkSocketUsage( - agent, - this.socketWarningTimestamp, - this.config.logger - ); + let transformed = false + const transformToByteArray = async () => { + if (transformed) { + throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED) + } + transformed = true + return await (0, node_http_handler_1.streamCollector)(stream) + } + return Object.assign(stream, { + transformToByteArray, + transformToString: async encoding => { + const buf = await transformToByteArray() + if (encoding === undefined || Buffer.isEncoding(encoding)) { + return (0, util_buffer_from_1.fromArrayBuffer)( + buf.buffer, + buf.byteOffset, + buf.byteLength + ).toString(encoding) + } else { + const decoder = new TextDecoder(encoding) + return decoder.decode(buf) + } }, - this.config.socketAcquisitionWarningTimeout ?? (this.config.requestTimeout ?? 2e3) + (this.config.connectionTimeout ?? 1e3) - ) - ); - const queryString = (0, import_querystring_builder.buildQueryString)(request.query || {}); - let auth = void 0; - if (request.username != null || request.password != null) { - const username = request.username ?? ""; - const password = request.password ?? ""; - auth = `${username}:${password}`; - } - let path = request.path; - if (queryString) { - path += `?${queryString}`; - } - if (request.fragment) { - path += `#${request.fragment}`; - } - const nodeHttpsOptions = { - headers: request.headers, - host: request.hostname, - method: request.method, - path, - port: request.port, - agent, - auth - }; - const requestFunc = isSSL ? import_https.request : import_http.request; - const req = requestFunc(nodeHttpsOptions, (res) => { - const httpResponse = new import_protocol_http.HttpResponse({ - statusCode: res.statusCode || -1, - reason: res.statusMessage, - headers: getTransformedHeaders(res.headers), - body: res - }); - resolve({ response: httpResponse }); - }); - req.on("error", (err) => { - if (NODEJS_TIMEOUT_ERROR_CODES.includes(err.code)) { - reject(Object.assign(err, { name: "TimeoutError" })); - } else { - reject(err); - } - }); - if (abortSignal) { - const onAbort = /* @__PURE__ */ __name(() => { - req.destroy(); - const abortError = new Error("Request aborted"); - abortError.name = "AbortError"; - reject(abortError); - }, "onAbort"); - if (typeof abortSignal.addEventListener === "function") { - const signal = abortSignal; - signal.addEventListener("abort", onAbort, { once: true }); - req.once("close", () => signal.removeEventListener("abort", onAbort)); - } else { - abortSignal.onabort = onAbort; - } - } - timeouts.push(setConnectionTimeout(req, reject, this.config.connectionTimeout)); - timeouts.push(setSocketTimeout(req, reject, this.config.requestTimeout)); - const httpAgent = nodeHttpsOptions.agent; - if (typeof httpAgent === "object" && "keepAlive" in httpAgent) { - timeouts.push( - setSocketKeepAlive(req, { - // @ts-expect-error keepAlive is not public on httpAgent. - keepAlive: httpAgent.keepAlive, - // @ts-expect-error keepAliveMsecs is not public on httpAgent. - keepAliveMsecs: httpAgent.keepAliveMsecs - }) - ); - } - writeRequestBodyPromise = writeRequestBody(req, request, this.config.requestTimeout).catch((e) => { - timeouts.forEach(clearTimeout); - return _reject(e); - }); - }); - } - updateHttpClientConfig(key, value) { - this.config = void 0; - this.configProvider = this.configProvider.then((config) => { - return { - ...config, - [key]: value - }; - }); - } - httpHandlerConfigs() { - return this.config ?? {}; - } -}; -__name(_NodeHttpHandler, "NodeHttpHandler"); -var NodeHttpHandler = _NodeHttpHandler; + transformToWebStream: () => { + if (transformed) { + throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED) + } + if (stream.readableFlowing !== null) { + throw new Error( + 'The stream has been consumed by other callbacks.' + ) + } + if (typeof stream_1.Readable.toWeb !== 'function') { + throw new Error( + 'Readable.toWeb() is not supported. Please ensure a polyfill is available.' + ) + } + transformed = true + return stream_1.Readable.toWeb(stream) + } + }) + } + exports.sdkStreamMixin = sdkStreamMixin -// src/node-http2-handler.ts + /***/ + }, + /***/ 60168: /***/ (__unused_webpack_module, exports) => { + 'use strict' -var import_http22 = __nccwpck_require__(85158); + Object.defineProperty(exports, '__esModule', { value: true }) + exports.splitStream = void 0 + async function splitStream(stream) { + if (typeof stream.stream === 'function') { + stream = stream.stream() + } + const readableStream = stream + return readableStream.tee() + } + exports.splitStream = splitStream -// src/node-http2-connection-manager.ts -var import_http2 = __toESM(__nccwpck_require__(85158)); + /***/ + }, -// src/node-http2-connection-pool.ts -var _NodeHttp2ConnectionPool = class _NodeHttp2ConnectionPool { - constructor(sessions) { - this.sessions = []; - this.sessions = sessions ?? []; - } - poll() { - if (this.sessions.length > 0) { - return this.sessions.shift(); - } - } - offerLast(session) { - this.sessions.push(session); - } - contains(session) { - return this.sessions.includes(session); - } - remove(session) { - this.sessions = this.sessions.filter((s) => s !== session); - } - [Symbol.iterator]() { - return this.sessions[Symbol.iterator](); - } - destroy(connection) { - for (const session of this.sessions) { - if (session === connection) { - if (!session.destroyed) { - session.destroy(); + /***/ 65494: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.splitStream = void 0 + const stream_1 = __nccwpck_require__(12781) + const splitStream_browser_1 = __nccwpck_require__(60168) + const stream_type_check_1 = __nccwpck_require__(8639) + async function splitStream(stream) { + if ( + (0, stream_type_check_1.isReadableStream)(stream) || + (0, stream_type_check_1.isBlob)(stream) + ) { + return (0, splitStream_browser_1.splitStream)(stream) } + const stream1 = new stream_1.PassThrough() + const stream2 = new stream_1.PassThrough() + stream.pipe(stream1) + stream.pipe(stream2) + return [stream1, stream2] } - } - } -}; -__name(_NodeHttp2ConnectionPool, "NodeHttp2ConnectionPool"); -var NodeHttp2ConnectionPool = _NodeHttp2ConnectionPool; - -// src/node-http2-connection-manager.ts -var _NodeHttp2ConnectionManager = class _NodeHttp2ConnectionManager { - constructor(config) { - this.sessionCache = /* @__PURE__ */ new Map(); - this.config = config; - if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) { - throw new RangeError("maxConcurrency must be greater than zero."); - } - } - lease(requestContext, connectionConfiguration) { - const url = this.getUrlString(requestContext); - const existingPool = this.sessionCache.get(url); - if (existingPool) { - const existingSession = existingPool.poll(); - if (existingSession && !this.config.disableConcurrency) { - return existingSession; - } - } - const session = import_http2.default.connect(url); - if (this.config.maxConcurrency) { - session.settings({ maxConcurrentStreams: this.config.maxConcurrency }, (err) => { - if (err) { - throw new Error( - "Fail to set maxConcurrentStreams to " + this.config.maxConcurrency + "when creating new session for " + requestContext.destination.toString() - ); - } - }); - } - session.unref(); - const destroySessionCb = /* @__PURE__ */ __name(() => { - session.destroy(); - this.deleteSession(url, session); - }, "destroySessionCb"); - session.on("goaway", destroySessionCb); - session.on("error", destroySessionCb); - session.on("frameError", destroySessionCb); - session.on("close", () => this.deleteSession(url, session)); - if (connectionConfiguration.requestTimeout) { - session.setTimeout(connectionConfiguration.requestTimeout, destroySessionCb); - } - const connectionPool = this.sessionCache.get(url) || new NodeHttp2ConnectionPool(); - connectionPool.offerLast(session); - this.sessionCache.set(url, connectionPool); - return session; - } - /** - * Delete a session from the connection pool. - * @param authority The authority of the session to delete. - * @param session The session to delete. - */ - deleteSession(authority, session) { - const existingConnectionPool = this.sessionCache.get(authority); - if (!existingConnectionPool) { - return; - } - if (!existingConnectionPool.contains(session)) { - return; - } - existingConnectionPool.remove(session); - this.sessionCache.set(authority, existingConnectionPool); - } - release(requestContext, session) { - var _a; - const cacheKey = this.getUrlString(requestContext); - (_a = this.sessionCache.get(cacheKey)) == null ? void 0 : _a.offerLast(session); - } - destroy() { - for (const [key, connectionPool] of this.sessionCache) { - for (const session of connectionPool) { - if (!session.destroyed) { - session.destroy(); - } - connectionPool.remove(session); + exports.splitStream = splitStream + + /***/ + }, + + /***/ 8639: /***/ (__unused_webpack_module, exports) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.isBlob = exports.isReadableStream = void 0 + const isReadableStream = stream => { + var _a + return ( + typeof ReadableStream === 'function' && + (((_a = + stream === null || stream === void 0 + ? void 0 + : stream.constructor) === null || _a === void 0 + ? void 0 + : _a.name) === ReadableStream.name || + stream instanceof ReadableStream) + ) } - this.sessionCache.delete(key); - } - } - setMaxConcurrentStreams(maxConcurrentStreams) { - if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) { - throw new RangeError("maxConcurrentStreams must be greater than zero."); - } - this.config.maxConcurrency = maxConcurrentStreams; - } - setDisableConcurrentStreams(disableConcurrentStreams) { - this.config.disableConcurrency = disableConcurrentStreams; - } - getUrlString(request) { - return request.destination.toString(); - } -}; -__name(_NodeHttp2ConnectionManager, "NodeHttp2ConnectionManager"); -var NodeHttp2ConnectionManager = _NodeHttp2ConnectionManager; - -// src/node-http2-handler.ts -var _NodeHttp2Handler = class _NodeHttp2Handler { - constructor(options) { - this.metadata = { handlerProtocol: "h2" }; - this.connectionManager = new NodeHttp2ConnectionManager({}); - this.configProvider = new Promise((resolve, reject) => { - if (typeof options === "function") { - options().then((opts) => { - resolve(opts || {}); - }).catch(reject); - } else { - resolve(options || {}); + exports.isReadableStream = isReadableStream + const isBlob = blob => { + var _a + return ( + typeof Blob === 'function' && + (((_a = + blob === null || blob === void 0 ? void 0 : blob.constructor) === + null || _a === void 0 + ? void 0 + : _a.name) === Blob.name || + blob instanceof Blob) + ) } - }); - } - /** - * @returns the input if it is an HttpHandler of any class, - * or instantiates a new instance of this handler. - */ - static create(instanceOrOptions) { - if (typeof (instanceOrOptions == null ? void 0 : instanceOrOptions.handle) === "function") { - return instanceOrOptions; - } - return new _NodeHttp2Handler(instanceOrOptions); - } - destroy() { - this.connectionManager.destroy(); - } - async handle(request, { abortSignal } = {}) { - if (!this.config) { - this.config = await this.configProvider; - this.connectionManager.setDisableConcurrentStreams(this.config.disableConcurrentStreams || false); - if (this.config.maxConcurrentStreams) { - this.connectionManager.setMaxConcurrentStreams(this.config.maxConcurrentStreams); + exports.isBlob = isBlob + + /***/ + }, + + /***/ 59765: /***/ module => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to } - } - const { requestTimeout, disableConcurrentStreams } = this.config; - return new Promise((_resolve, _reject) => { - var _a; - let fulfilled = false; - let writeRequestBodyPromise = void 0; - const resolve = /* @__PURE__ */ __name(async (arg) => { - await writeRequestBodyPromise; - _resolve(arg); - }, "resolve"); - const reject = /* @__PURE__ */ __name(async (arg) => { - await writeRequestBodyPromise; - _reject(arg); - }, "reject"); - if (abortSignal == null ? void 0 : abortSignal.aborted) { - fulfilled = true; - const abortError = new Error("Request aborted"); - abortError.name = "AbortError"; - reject(abortError); - return; - } - const { hostname, method, port, protocol, query } = request; - let auth = ""; - if (request.username != null || request.password != null) { - const username = request.username ?? ""; - const password = request.password ?? ""; - auth = `${username}:${password}@`; - } - const authority = `${protocol}//${auth}${hostname}${port ? `:${port}` : ""}`; - const requestContext = { destination: new URL(authority) }; - const session = this.connectionManager.lease(requestContext, { - requestTimeout: (_a = this.config) == null ? void 0 : _a.sessionTimeout, - disableConcurrentStreams: disableConcurrentStreams || false - }); - const rejectWithDestroy = /* @__PURE__ */ __name((err) => { - if (disableConcurrentStreams) { - this.destroySession(session); - } - fulfilled = true; - reject(err); - }, "rejectWithDestroy"); - const queryString = (0, import_querystring_builder.buildQueryString)(query || {}); - let path = request.path; - if (queryString) { - path += `?${queryString}`; - } - if (request.fragment) { - path += `#${request.fragment}`; - } - const req = session.request({ - ...request.headers, - [import_http22.constants.HTTP2_HEADER_PATH]: path, - [import_http22.constants.HTTP2_HEADER_METHOD]: method - }); - session.ref(); - req.on("response", (headers) => { - const httpResponse = new import_protocol_http.HttpResponse({ - statusCode: headers[":status"] || -1, - headers: getTransformedHeaders(headers), - body: req - }); - fulfilled = true; - resolve({ response: httpResponse }); - if (disableConcurrentStreams) { - session.close(); - this.connectionManager.deleteSession(authority, session); - } - }); - if (requestTimeout) { - req.setTimeout(requestTimeout, () => { - req.close(); - const timeoutError = new Error(`Stream timed out because of no activity for ${requestTimeout} ms`); - timeoutError.name = "TimeoutError"; - rejectWithDestroy(timeoutError); - }); - } - if (abortSignal) { - const onAbort = /* @__PURE__ */ __name(() => { - req.close(); - const abortError = new Error("Request aborted"); - abortError.name = "AbortError"; - rejectWithDestroy(abortError); - }, "onAbort"); - if (typeof abortSignal.addEventListener === "function") { - const signal = abortSignal; - signal.addEventListener("abort", onAbort, { once: true }); - req.once("close", () => signal.removeEventListener("abort", onAbort)); - } else { - abortSignal.onabort = onAbort; - } - } - req.on("frameError", (type, code, id) => { - rejectWithDestroy(new Error(`Frame type id ${type} in stream id ${id} has failed with code ${code}.`)); - }); - req.on("error", rejectWithDestroy); - req.on("aborted", () => { - rejectWithDestroy( - new Error(`HTTP/2 stream is abnormally aborted in mid-communication with result code ${req.rstCode}.`) - ); - }); - req.on("close", () => { - session.unref(); - if (disableConcurrentStreams) { - session.destroy(); - } - if (!fulfilled) { - rejectWithDestroy(new Error("Unexpected error: http2 request did not get a response")); - } - }); - writeRequestBodyPromise = writeRequestBody(req, request, requestTimeout); - }); - } - updateHttpClientConfig(key, value) { - this.config = void 0; - this.configProvider = this.configProvider.then((config) => { - return { - ...config, - [key]: value - }; - }); - } - httpHandlerConfigs() { - return this.config ?? {}; - } - /** - * Destroys a session. - * @param session The session to destroy. - */ - destroySession(session) { - if (!session.destroyed) { - session.destroy(); - } - } -}; -__name(_NodeHttp2Handler, "NodeHttp2Handler"); -var NodeHttp2Handler = _NodeHttp2Handler; + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -// src/stream-collector/collector.ts + // src/index.ts + var src_exports = {} + __export(src_exports, { + escapeUri: () => escapeUri, + escapeUriPath: () => escapeUriPath + }) + module.exports = __toCommonJS(src_exports) + + // src/escape-uri.ts + var escapeUri = /* @__PURE__ */ __name( + uri => + // AWS percent-encodes some extra non-standard characters in a URI + encodeURIComponent(uri).replace(/[!'()*]/g, hexEncode), + 'escapeUri' + ) + var hexEncode = /* @__PURE__ */ __name( + c => `%${c.charCodeAt(0).toString(16).toUpperCase()}`, + 'hexEncode' + ) -var _Collector = class _Collector extends import_stream.Writable { - constructor() { - super(...arguments); - this.bufferedBytes = []; - } - _write(chunk, encoding, callback) { - this.bufferedBytes.push(chunk); - callback(); - } -}; -__name(_Collector, "Collector"); -var Collector = _Collector; - -// src/stream-collector/index.ts -var streamCollector = /* @__PURE__ */ __name((stream) => { - if (isReadableStreamInstance(stream)) { - return collectReadableStream(stream); - } - return new Promise((resolve, reject) => { - const collector = new Collector(); - stream.pipe(collector); - stream.on("error", (err) => { - collector.end(); - reject(err); - }); - collector.on("error", reject); - collector.on("finish", function() { - const bytes = new Uint8Array(Buffer.concat(this.bufferedBytes)); - resolve(bytes); - }); - }); -}, "streamCollector"); -var isReadableStreamInstance = /* @__PURE__ */ __name((stream) => typeof ReadableStream === "function" && stream instanceof ReadableStream, "isReadableStreamInstance"); -async function collectReadableStream(stream) { - const chunks = []; - const reader = stream.getReader(); - let isDone = false; - let length = 0; - while (!isDone) { - const { done, value } = await reader.read(); - if (value) { - chunks.push(value); - length += value.length; - } - isDone = done; - } - const collected = new Uint8Array(length); - let offset = 0; - for (const chunk of chunks) { - collected.set(chunk, offset); - offset += chunk.length; - } - return collected; -} -__name(collectReadableStream, "collectReadableStream"); -// Annotate the CommonJS export names for ESM import in node: + // src/escape-uri-path.ts + var escapeUriPath = /* @__PURE__ */ __name( + uri => uri.split('/').map(escapeUri).join('/'), + 'escapeUriPath' + ) + // Annotate the CommonJS export names for ESM import in node: -0 && (0); + 0 && 0 + /***/ + }, + /***/ 94377: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -/***/ }), + // src/index.ts + var src_exports = {} + __export(src_exports, { + fromUtf8: () => fromUtf8, + toUint8Array: () => toUint8Array, + toUtf8: () => toUtf8 + }) + module.exports = __toCommonJS(src_exports) + + // src/fromUtf8.ts + var import_util_buffer_from = __nccwpck_require__(48928) + var fromUtf8 = /* @__PURE__ */ __name(input => { + const buf = (0, import_util_buffer_from.fromString)(input, 'utf8') + return new Uint8Array( + buf.buffer, + buf.byteOffset, + buf.byteLength / Uint8Array.BYTES_PER_ELEMENT + ) + }, 'fromUtf8') -/***/ 5976: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + // src/toUint8Array.ts + var toUint8Array = /* @__PURE__ */ __name(data => { + if (typeof data === 'string') { + return fromUtf8(data) + } + if (ArrayBuffer.isView(data)) { + return new Uint8Array( + data.buffer, + data.byteOffset, + data.byteLength / Uint8Array.BYTES_PER_ELEMENT + ) + } + return new Uint8Array(data) + }, 'toUint8Array') -"use strict"; + // src/toUtf8.ts + var toUtf8 = /* @__PURE__ */ __name(input => { + if (typeof input === 'string') { + return input + } + if ( + typeof input !== 'object' || + typeof input.byteOffset !== 'number' || + typeof input.byteLength !== 'number' + ) { + throw new Error( + '@smithy/util-utf8: toUtf8 encoder function only accepts string | Uint8Array.' + ) + } + return (0, import_util_buffer_from.fromArrayBuffer)( + input.buffer, + input.byteOffset, + input.byteLength + ).toString('utf8') + }, 'toUtf8') + // Annotate the CommonJS export names for ESM import in node: -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -Object.defineProperty(exports, "NIL", ({ - enumerable: true, - get: function () { - return _nil.default; - } -})); -Object.defineProperty(exports, "parse", ({ - enumerable: true, - get: function () { - return _parse.default; - } -})); -Object.defineProperty(exports, "stringify", ({ - enumerable: true, - get: function () { - return _stringify.default; - } -})); -Object.defineProperty(exports, "v1", ({ - enumerable: true, - get: function () { - return _v.default; - } -})); -Object.defineProperty(exports, "v3", ({ - enumerable: true, - get: function () { - return _v2.default; - } -})); -Object.defineProperty(exports, "v4", ({ - enumerable: true, - get: function () { - return _v3.default; - } -})); -Object.defineProperty(exports, "v5", ({ - enumerable: true, - get: function () { - return _v4.default; - } -})); -Object.defineProperty(exports, "validate", ({ - enumerable: true, - get: function () { - return _validate.default; - } -})); -Object.defineProperty(exports, "version", ({ - enumerable: true, - get: function () { - return _version.default; - } -})); + 0 && 0 -var _v = _interopRequireDefault(__nccwpck_require__(97851)); + /***/ + }, -var _v2 = _interopRequireDefault(__nccwpck_require__(88771)); + /***/ 21286: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -var _v3 = _interopRequireDefault(__nccwpck_require__(42286)); + Object.defineProperty(exports, '__esModule', { + value: true + }) + Object.defineProperty(exports, 'NIL', { + enumerable: true, + get: function () { + return _nil.default + } + }) + Object.defineProperty(exports, 'parse', { + enumerable: true, + get: function () { + return _parse.default + } + }) + Object.defineProperty(exports, 'stringify', { + enumerable: true, + get: function () { + return _stringify.default + } + }) + Object.defineProperty(exports, 'v1', { + enumerable: true, + get: function () { + return _v.default + } + }) + Object.defineProperty(exports, 'v3', { + enumerable: true, + get: function () { + return _v2.default + } + }) + Object.defineProperty(exports, 'v4', { + enumerable: true, + get: function () { + return _v3.default + } + }) + Object.defineProperty(exports, 'v5', { + enumerable: true, + get: function () { + return _v4.default + } + }) + Object.defineProperty(exports, 'validate', { + enumerable: true, + get: function () { + return _validate.default + } + }) + Object.defineProperty(exports, 'version', { + enumerable: true, + get: function () { + return _version.default + } + }) -var _v4 = _interopRequireDefault(__nccwpck_require__(81780)); + var _v = _interopRequireDefault(__nccwpck_require__(23802)) -var _nil = _interopRequireDefault(__nccwpck_require__(21736)); + var _v2 = _interopRequireDefault(__nccwpck_require__(99450)) -var _version = _interopRequireDefault(__nccwpck_require__(83472)); + var _v3 = _interopRequireDefault(__nccwpck_require__(6475)) -var _validate = _interopRequireDefault(__nccwpck_require__(60648)); + var _v4 = _interopRequireDefault(__nccwpck_require__(60959)) -var _stringify = _interopRequireDefault(__nccwpck_require__(83731)); + var _nil = _interopRequireDefault(__nccwpck_require__(44021)) -var _parse = _interopRequireDefault(__nccwpck_require__(73865)); + var _version = _interopRequireDefault(__nccwpck_require__(95943)) -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + var _validate = _interopRequireDefault(__nccwpck_require__(10722)) -/***/ }), + var _stringify = _interopRequireDefault(__nccwpck_require__(33659)) -/***/ 78684: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + var _parse = _interopRequireDefault(__nccwpck_require__(10887)) -"use strict"; + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } + /***/ + }, -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + /***/ 15359: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + var _crypto = _interopRequireDefault(__nccwpck_require__(6113)) -function md5(bytes) { - if (Array.isArray(bytes)) { - bytes = Buffer.from(bytes); - } else if (typeof bytes === 'string') { - bytes = Buffer.from(bytes, 'utf8'); - } + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } - return _crypto.default.createHash('md5').update(bytes).digest(); -} + function md5(bytes) { + if (Array.isArray(bytes)) { + bytes = Buffer.from(bytes) + } else if (typeof bytes === 'string') { + bytes = Buffer.from(bytes, 'utf8') + } -var _default = md5; -exports["default"] = _default; + return _crypto.default.createHash('md5').update(bytes).digest() + } -/***/ }), + var _default = md5 + exports['default'] = _default -/***/ 32158: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + /***/ + }, -"use strict"; + /***/ 33671: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + var _crypto = _interopRequireDefault(__nccwpck_require__(6113)) -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + var _default = { + randomUUID: _crypto.default.randomUUID + } + exports['default'] = _default -var _default = { - randomUUID: _crypto.default.randomUUID -}; -exports["default"] = _default; + /***/ + }, -/***/ }), + /***/ 44021: /***/ (__unused_webpack_module, exports) => { + 'use strict' -/***/ 21736: -/***/ ((__unused_webpack_module, exports) => { + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 + var _default = '00000000-0000-0000-0000-000000000000' + exports['default'] = _default -"use strict"; + /***/ + }, + /***/ 10887: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; -var _default = '00000000-0000-0000-0000-000000000000'; -exports["default"] = _default; + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 -/***/ }), + var _validate = _interopRequireDefault(__nccwpck_require__(10722)) -/***/ 73865: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } -"use strict"; + function parse(uuid) { + if (!(0, _validate.default)(uuid)) { + throw TypeError('Invalid UUID') + } + let v + const arr = new Uint8Array(16) // Parse ########-....-....-....-............ -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24 + arr[1] = (v >>> 16) & 0xff + arr[2] = (v >>> 8) & 0xff + arr[3] = v & 0xff // Parse ........-####-....-....-............ -var _validate = _interopRequireDefault(__nccwpck_require__(60648)); + arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8 + arr[5] = v & 0xff // Parse ........-....-####-....-............ -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8 + arr[7] = v & 0xff // Parse ........-....-....-####-............ -function parse(uuid) { - if (!(0, _validate.default)(uuid)) { - throw TypeError('Invalid UUID'); - } + arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8 + arr[9] = v & 0xff // Parse ........-....-....-....-############ + // (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes) - let v; - const arr = new Uint8Array(16); // Parse ########-....-....-....-............ + arr[10] = + ((v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000) & 0xff + arr[11] = (v / 0x100000000) & 0xff + arr[12] = (v >>> 24) & 0xff + arr[13] = (v >>> 16) & 0xff + arr[14] = (v >>> 8) & 0xff + arr[15] = v & 0xff + return arr + } - arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24; - arr[1] = v >>> 16 & 0xff; - arr[2] = v >>> 8 & 0xff; - arr[3] = v & 0xff; // Parse ........-####-....-....-............ + var _default = parse + exports['default'] = _default - arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8; - arr[5] = v & 0xff; // Parse ........-....-####-....-............ + /***/ + }, - arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8; - arr[7] = v & 0xff; // Parse ........-....-....-####-............ + /***/ 99135: /***/ (__unused_webpack_module, exports) => { + 'use strict' - arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8; - arr[9] = v & 0xff; // Parse ........-....-....-....-############ - // (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes) + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 + var _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 + exports['default'] = _default - arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff; - arr[11] = v / 0x100000000 & 0xff; - arr[12] = v >>> 24 & 0xff; - arr[13] = v >>> 16 & 0xff; - arr[14] = v >>> 8 & 0xff; - arr[15] = v & 0xff; - return arr; -} + /***/ + }, -var _default = parse; -exports["default"] = _default; + /***/ 25446: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -/***/ }), + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = rng -/***/ 55071: -/***/ ((__unused_webpack_module, exports) => { + var _crypto = _interopRequireDefault(__nccwpck_require__(6113)) -"use strict"; + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } + const rnds8Pool = new Uint8Array(256) // # of random values to pre-allocate -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; -var _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; -exports["default"] = _default; + let poolPtr = rnds8Pool.length -/***/ }), + function rng() { + if (poolPtr > rnds8Pool.length - 16) { + _crypto.default.randomFillSync(rnds8Pool) -/***/ 60437: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + poolPtr = 0 + } -"use strict"; + return rnds8Pool.slice(poolPtr, (poolPtr += 16)) + } + /***/ + }, -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = rng; + /***/ 45889: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + var _crypto = _interopRequireDefault(__nccwpck_require__(6113)) -const rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } -let poolPtr = rnds8Pool.length; + function sha1(bytes) { + if (Array.isArray(bytes)) { + bytes = Buffer.from(bytes) + } else if (typeof bytes === 'string') { + bytes = Buffer.from(bytes, 'utf8') + } -function rng() { - if (poolPtr > rnds8Pool.length - 16) { - _crypto.default.randomFillSync(rnds8Pool); + return _crypto.default.createHash('sha1').update(bytes).digest() + } - poolPtr = 0; - } + var _default = sha1 + exports['default'] = _default - return rnds8Pool.slice(poolPtr, poolPtr += 16); -} + /***/ + }, -/***/ }), + /***/ 33659: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -/***/ 74227: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 + exports.unsafeStringify = unsafeStringify -"use strict"; + var _validate = _interopRequireDefault(__nccwpck_require__(10722)) + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + /** + * Convert array of 16 byte values to UUID string format of the form: + * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX + */ + const byteToHex = [] + + for (let i = 0; i < 256; ++i) { + byteToHex.push((i + 0x100).toString(16).slice(1)) + } + + function unsafeStringify(arr, offset = 0) { + // Note: Be careful editing this code! It's been tuned for performance + // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434 + 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]] + ) + } -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); + function stringify(arr, offset = 0) { + const uuid = unsafeStringify(arr, offset) // Consistency check for valid UUID. If this throws, it's likely due to one + // of the following: + // - One or more input array values don't map to a hex octet (leading to + // "undefined" in the uuid) + // - Invalid input values for the RFC `version` or `variant` fields -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + if (!(0, _validate.default)(uuid)) { + throw TypeError('Stringified UUID is invalid') + } -function sha1(bytes) { - if (Array.isArray(bytes)) { - bytes = Buffer.from(bytes); - } else if (typeof bytes === 'string') { - bytes = Buffer.from(bytes, 'utf8'); - } + return uuid + } - return _crypto.default.createHash('sha1').update(bytes).digest(); -} + var _default = stringify + exports['default'] = _default -var _default = sha1; -exports["default"] = _default; + /***/ + }, -/***/ }), + /***/ 23802: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -/***/ 83731: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 -"use strict"; + var _rng = _interopRequireDefault(__nccwpck_require__(25446)) + var _stringify = __nccwpck_require__(33659) -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; -exports.unsafeStringify = unsafeStringify; + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } -var _validate = _interopRequireDefault(__nccwpck_require__(60648)); + // **`v1()` - Generate time-based UUID** + // + // Inspired by https://github.com/LiosK/UUID.js + // and http://docs.python.org/library/uuid.html + let _nodeId + + let _clockseq // Previous uuid creation time + + let _lastMSecs = 0 + let _lastNSecs = 0 // See https://github.com/uuidjs/uuid for API details + + function v1(options, buf, offset) { + let i = (buf && offset) || 0 + const b = buf || new Array(16) + options = options || {} + let node = options.node || _nodeId + let clockseq = + options.clockseq !== undefined ? options.clockseq : _clockseq // node and clockseq need to be initialized to random values if they're not + // specified. We do this lazily to minimize issues related to insufficient + // system entropy. See #189 + + if (node == null || clockseq == null) { + const seedBytes = options.random || (options.rng || _rng.default)() + + if (node == null) { + // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) + node = _nodeId = [ + seedBytes[0] | 0x01, + seedBytes[1], + seedBytes[2], + seedBytes[3], + seedBytes[4], + seedBytes[5] + ] + } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + if (clockseq == null) { + // Per 4.2.2, randomize (14 bit) clockseq + clockseq = _clockseq = ((seedBytes[6] << 8) | seedBytes[7]) & 0x3fff + } + } // UUID timestamps are 100 nano-second units since the Gregorian epoch, + // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so + // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' + // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. -/** - * Convert array of 16 byte values to UUID string format of the form: - * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX - */ -const byteToHex = []; - -for (let i = 0; i < 256; ++i) { - byteToHex.push((i + 0x100).toString(16).slice(1)); -} - -function unsafeStringify(arr, offset = 0) { - // Note: Be careful editing this code! It's been tuned for performance - // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434 - 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]]; -} - -function stringify(arr, offset = 0) { - const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one - // of the following: - // - One or more input array values don't map to a hex octet (leading to - // "undefined" in the uuid) - // - Invalid input values for the RFC `version` or `variant` fields - - if (!(0, _validate.default)(uuid)) { - throw TypeError('Stringified UUID is invalid'); - } + let msecs = options.msecs !== undefined ? options.msecs : Date.now() // Per 4.2.1.2, use count of uuid's generated during the current clock + // cycle to simulate higher resolution clock - return uuid; -} + let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1 // Time since last uuid creation (in msecs) -var _default = stringify; -exports["default"] = _default; + const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000 // Per 4.2.1.2, Bump clockseq on clock regression -/***/ }), + if (dt < 0 && options.clockseq === undefined) { + clockseq = (clockseq + 1) & 0x3fff + } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new + // time interval -/***/ 97851: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { + nsecs = 0 + } // Per 4.2.1.2 Throw error if too many uuids are requested -"use strict"; + if (nsecs >= 10000) { + throw new Error("uuid.v1(): Can't create more than 10M uuids/sec") + } + _lastMSecs = msecs + _lastNSecs = nsecs + _clockseq = clockseq // Per 4.1.4 - Convert from unix epoch to Gregorian epoch -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + msecs += 12219292800000 // `time_low` -var _rng = _interopRequireDefault(__nccwpck_require__(60437)); + const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000 + b[i++] = (tl >>> 24) & 0xff + b[i++] = (tl >>> 16) & 0xff + b[i++] = (tl >>> 8) & 0xff + b[i++] = tl & 0xff // `time_mid` -var _stringify = __nccwpck_require__(83731); + const tmh = ((msecs / 0x100000000) * 10000) & 0xfffffff + b[i++] = (tmh >>> 8) & 0xff + b[i++] = tmh & 0xff // `time_high_and_version` -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + b[i++] = ((tmh >>> 24) & 0xf) | 0x10 // include version -// **`v1()` - Generate time-based UUID** -// -// Inspired by https://github.com/LiosK/UUID.js -// and http://docs.python.org/library/uuid.html -let _nodeId; + b[i++] = (tmh >>> 16) & 0xff // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) -let _clockseq; // Previous uuid creation time + b[i++] = (clockseq >>> 8) | 0x80 // `clock_seq_low` + b[i++] = clockseq & 0xff // `node` -let _lastMSecs = 0; -let _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details + for (let n = 0; n < 6; ++n) { + b[i + n] = node[n] + } -function v1(options, buf, offset) { - let i = buf && offset || 0; - const b = buf || new Array(16); - options = options || {}; - let node = options.node || _nodeId; - let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not - // specified. We do this lazily to minimize issues related to insufficient - // system entropy. See #189 + return buf || (0, _stringify.unsafeStringify)(b) + } - if (node == null || clockseq == null) { - const seedBytes = options.random || (options.rng || _rng.default)(); + var _default = v1 + exports['default'] = _default - if (node == null) { - // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) - node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]]; - } + /***/ + }, - if (clockseq == null) { - // Per 4.2.2, randomize (14 bit) clockseq - clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff; - } - } // UUID timestamps are 100 nano-second units since the Gregorian epoch, - // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so - // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' - // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. + /***/ 99450: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 - let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock - // cycle to simulate higher resolution clock + var _v = _interopRequireDefault(__nccwpck_require__(13383)) - let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs) + var _md = _interopRequireDefault(__nccwpck_require__(15359)) - const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } - if (dt < 0 && options.clockseq === undefined) { - clockseq = clockseq + 1 & 0x3fff; - } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new - // time interval + const v3 = (0, _v.default)('v3', 0x30, _md.default) + var _default = v3 + exports['default'] = _default + /***/ + }, - if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { - nsecs = 0; - } // Per 4.2.1.2 Throw error if too many uuids are requested + /***/ 13383: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports.URL = exports.DNS = void 0 + exports['default'] = v35 - if (nsecs >= 10000) { - throw new Error("uuid.v1(): Can't create more than 10M uuids/sec"); - } + var _stringify = __nccwpck_require__(33659) - _lastMSecs = msecs; - _lastNSecs = nsecs; - _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch + var _parse = _interopRequireDefault(__nccwpck_require__(10887)) - msecs += 12219292800000; // `time_low` + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } - const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; - b[i++] = tl >>> 24 & 0xff; - b[i++] = tl >>> 16 & 0xff; - b[i++] = tl >>> 8 & 0xff; - b[i++] = tl & 0xff; // `time_mid` + function stringToBytes(str) { + str = unescape(encodeURIComponent(str)) // UTF8 escape - const tmh = msecs / 0x100000000 * 10000 & 0xfffffff; - b[i++] = tmh >>> 8 & 0xff; - b[i++] = tmh & 0xff; // `time_high_and_version` + const bytes = [] - b[i++] = tmh >>> 24 & 0xf | 0x10; // include version + for (let i = 0; i < str.length; ++i) { + bytes.push(str.charCodeAt(i)) + } - b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) + return bytes + } - b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low` + const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8' + exports.DNS = DNS + const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8' + exports.URL = URL - b[i++] = clockseq & 0xff; // `node` + function v35(name, version, hashfunc) { + function generateUUID(value, namespace, buf, offset) { + var _namespace - for (let n = 0; n < 6; ++n) { - b[i + n] = node[n]; - } + if (typeof value === 'string') { + value = stringToBytes(value) + } - return buf || (0, _stringify.unsafeStringify)(b); -} + if (typeof namespace === 'string') { + namespace = (0, _parse.default)(namespace) + } -var _default = v1; -exports["default"] = _default; + if ( + ((_namespace = namespace) === null || _namespace === void 0 + ? void 0 + : _namespace.length) !== 16 + ) { + throw TypeError( + 'Namespace must be array-like (16 iterable integer values, 0-255)' + ) + } // Compute hash of namespace and value, Per 4.3 + // Future: Use spread syntax when supported on all platforms, e.g. `bytes = + // hashfunc([...namespace, ... value])` + + let bytes = new Uint8Array(16 + value.length) + bytes.set(namespace) + bytes.set(value, namespace.length) + bytes = hashfunc(bytes) + bytes[6] = (bytes[6] & 0x0f) | version + bytes[8] = (bytes[8] & 0x3f) | 0x80 + + if (buf) { + offset = offset || 0 + + for (let i = 0; i < 16; ++i) { + buf[offset + i] = bytes[i] + } -/***/ }), + return buf + } -/***/ 88771: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + return (0, _stringify.unsafeStringify)(bytes) + } // Function#name is not settable on some platforms (#270) -"use strict"; + try { + generateUUID.name = name // eslint-disable-next-line no-empty + } catch (err) {} // For CommonJS default export support + generateUUID.DNS = DNS + generateUUID.URL = URL + return generateUUID + } -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + /***/ + }, -var _v = _interopRequireDefault(__nccwpck_require__(68154)); + /***/ 6475: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -var _md = _interopRequireDefault(__nccwpck_require__(78684)); + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + var _native = _interopRequireDefault(__nccwpck_require__(33671)) -const v3 = (0, _v.default)('v3', 0x30, _md.default); -var _default = v3; -exports["default"] = _default; + var _rng = _interopRequireDefault(__nccwpck_require__(25446)) -/***/ }), + var _stringify = __nccwpck_require__(33659) -/***/ 68154: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } -"use strict"; + function v4(options, buf, offset) { + if (_native.default.randomUUID && !buf && !options) { + return _native.default.randomUUID() + } + options = options || {} -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.URL = exports.DNS = void 0; -exports["default"] = v35; + const rnds = options.random || (options.rng || _rng.default)() // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` -var _stringify = __nccwpck_require__(83731); + rnds[6] = (rnds[6] & 0x0f) | 0x40 + rnds[8] = (rnds[8] & 0x3f) | 0x80 // Copy bytes to buffer, if provided -var _parse = _interopRequireDefault(__nccwpck_require__(73865)); + if (buf) { + offset = offset || 0 -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + for (let i = 0; i < 16; ++i) { + buf[offset + i] = rnds[i] + } -function stringToBytes(str) { - str = unescape(encodeURIComponent(str)); // UTF8 escape + return buf + } - const bytes = []; + return (0, _stringify.unsafeStringify)(rnds) + } - for (let i = 0; i < str.length; ++i) { - bytes.push(str.charCodeAt(i)); - } + var _default = v4 + exports['default'] = _default - return bytes; -} + /***/ + }, -const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8'; -exports.DNS = DNS; -const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8'; -exports.URL = URL; + /***/ 60959: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -function v35(name, version, hashfunc) { - function generateUUID(value, namespace, buf, offset) { - var _namespace; + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 - if (typeof value === 'string') { - value = stringToBytes(value); - } + var _v = _interopRequireDefault(__nccwpck_require__(13383)) - if (typeof namespace === 'string') { - namespace = (0, _parse.default)(namespace); - } + var _sha = _interopRequireDefault(__nccwpck_require__(45889)) - if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) { - throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)'); - } // Compute hash of namespace and value, Per 4.3 - // Future: Use spread syntax when supported on all platforms, e.g. `bytes = - // hashfunc([...namespace, ... value])` + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } + const v5 = (0, _v.default)('v5', 0x50, _sha.default) + var _default = v5 + exports['default'] = _default - let bytes = new Uint8Array(16 + value.length); - bytes.set(namespace); - bytes.set(value, namespace.length); - bytes = hashfunc(bytes); - bytes[6] = bytes[6] & 0x0f | version; - bytes[8] = bytes[8] & 0x3f | 0x80; + /***/ + }, - if (buf) { - offset = offset || 0; + /***/ 10722: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' - for (let i = 0; i < 16; ++i) { - buf[offset + i] = bytes[i]; - } + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 - return buf; - } + var _regex = _interopRequireDefault(__nccwpck_require__(99135)) - return (0, _stringify.unsafeStringify)(bytes); - } // Function#name is not settable on some platforms (#270) + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } + function validate(uuid) { + return typeof uuid === 'string' && _regex.default.test(uuid) + } - try { - generateUUID.name = name; // eslint-disable-next-line no-empty - } catch (err) {} // For CommonJS default export support + var _default = validate + exports['default'] = _default + /***/ + }, - generateUUID.DNS = DNS; - generateUUID.URL = URL; - return generateUUID; -} + /***/ 95943: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -/***/ }), + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 -/***/ 42286: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + var _validate = _interopRequireDefault(__nccwpck_require__(10722)) -"use strict"; + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } + function version(uuid) { + if (!(0, _validate.default)(uuid)) { + throw TypeError('Invalid UUID') + } -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + return parseInt(uuid.slice(14, 15), 16) + } -var _native = _interopRequireDefault(__nccwpck_require__(32158)); + var _default = version + exports['default'] = _default -var _rng = _interopRequireDefault(__nccwpck_require__(60437)); + /***/ + }, -var _stringify = __nccwpck_require__(83731); + /***/ 16948: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.resolveHttpAuthSchemeConfig = + exports.defaultSSOOIDCHttpAuthSchemeProvider = + exports.defaultSSOOIDCHttpAuthSchemeParametersProvider = + void 0 + const core_1 = __nccwpck_require__(59963) + const util_middleware_1 = __nccwpck_require__(2390) + const defaultSSOOIDCHttpAuthSchemeParametersProvider = async ( + config, + context, + input + ) => { + return { + operation: (0, util_middleware_1.getSmithyContext)(context).operation, + region: + (await (0, util_middleware_1.normalizeProvider)(config.region)()) || + (() => { + throw new Error( + 'expected `region` to be configured for `aws.auth#sigv4`' + ) + })() + } + } + exports.defaultSSOOIDCHttpAuthSchemeParametersProvider = + defaultSSOOIDCHttpAuthSchemeParametersProvider + function createAwsAuthSigv4HttpAuthOption(authParameters) { + return { + schemeId: 'aws.auth#sigv4', + signingProperties: { + name: 'sso-oauth', + region: authParameters.region + }, + propertiesExtractor: (config, context) => ({ + signingProperties: { + config, + context + } + }) + } + } + function createSmithyApiNoAuthHttpAuthOption(authParameters) { + return { + schemeId: 'smithy.api#noAuth' + } + } + const defaultSSOOIDCHttpAuthSchemeProvider = authParameters => { + const options = [] + switch (authParameters.operation) { + case 'CreateToken': { + options.push(createSmithyApiNoAuthHttpAuthOption(authParameters)) + break + } + case 'RegisterClient': { + options.push(createSmithyApiNoAuthHttpAuthOption(authParameters)) + break + } + case 'StartDeviceAuthorization': { + options.push(createSmithyApiNoAuthHttpAuthOption(authParameters)) + break + } + default: { + options.push(createAwsAuthSigv4HttpAuthOption(authParameters)) + } + } + return options + } + exports.defaultSSOOIDCHttpAuthSchemeProvider = + defaultSSOOIDCHttpAuthSchemeProvider + const resolveHttpAuthSchemeConfig = config => { + const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config) + return { + ...config_0 + } + } + exports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + /***/ + }, -function v4(options, buf, offset) { - if (_native.default.randomUUID && !buf && !options) { - return _native.default.randomUUID(); - } + /***/ 97604: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.defaultEndpointResolver = void 0 + const util_endpoints_1 = __nccwpck_require__(13350) + const util_endpoints_2 = __nccwpck_require__(45473) + const ruleset_1 = __nccwpck_require__(51756) + const defaultEndpointResolver = (endpointParams, context = {}) => { + return (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, { + endpointParams: endpointParams, + logger: context.logger + }) + } + exports.defaultEndpointResolver = defaultEndpointResolver + util_endpoints_2.customEndpointFunctions.aws = + util_endpoints_1.awsEndpointFunctions - options = options || {}; + /***/ + }, - const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` + /***/ 51756: /***/ (__unused_webpack_module, exports) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.ruleSet = void 0 + const u = 'required', + v = 'fn', + w = 'argv', + x = 'ref' + const a = true, + b = 'isSet', + c = 'booleanEquals', + d = 'error', + e = 'endpoint', + f = 'tree', + g = 'PartitionResult', + h = 'getAttr', + i = { [u]: false, type: 'String' }, + j = { [u]: true, default: false, type: 'Boolean' }, + k = { [x]: 'Endpoint' }, + l = { [v]: c, [w]: [{ [x]: 'UseFIPS' }, true] }, + m = { [v]: c, [w]: [{ [x]: 'UseDualStack' }, true] }, + n = {}, + o = { [v]: h, [w]: [{ [x]: g }, 'supportsFIPS'] }, + p = { [x]: g }, + q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, 'supportsDualStack'] }] }, + r = [l], + s = [m], + t = [{ [x]: 'Region' }] + const _data = { + version: '1.0', + parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, + rules: [ + { + conditions: [{ [v]: b, [w]: [k] }], + rules: [ + { + conditions: r, + error: + 'Invalid Configuration: FIPS and custom endpoint are not supported', + type: d + }, + { + conditions: s, + error: + 'Invalid Configuration: Dualstack and custom endpoint are not supported', + type: d + }, + { endpoint: { url: k, properties: n, headers: n }, type: e } + ], + type: f + }, + { + conditions: [{ [v]: b, [w]: t }], + rules: [ + { + conditions: [{ [v]: 'aws.partition', [w]: t, assign: g }], + rules: [ + { + conditions: [l, m], + rules: [ + { + conditions: [{ [v]: c, [w]: [a, o] }, q], + rules: [ + { + endpoint: { + url: 'https://oidc-fips.{Region}.{PartitionResult#dualStackDnsSuffix}', + properties: n, + headers: n + }, + type: e + } + ], + type: f + }, + { + error: + 'FIPS and DualStack are enabled, but this partition does not support one or both', + type: d + } + ], + type: f + }, + { + conditions: r, + rules: [ + { + conditions: [{ [v]: c, [w]: [o, a] }], + rules: [ + { + conditions: [ + { + [v]: 'stringEquals', + [w]: [ + { [v]: h, [w]: [p, 'name'] }, + 'aws-us-gov' + ] + } + ], + endpoint: { + url: 'https://oidc.{Region}.amazonaws.com', + properties: n, + headers: n + }, + type: e + }, + { + endpoint: { + url: 'https://oidc-fips.{Region}.{PartitionResult#dnsSuffix}', + properties: n, + headers: n + }, + type: e + } + ], + type: f + }, + { + error: + 'FIPS is enabled but this partition does not support FIPS', + type: d + } + ], + type: f + }, + { + conditions: s, + rules: [ + { + conditions: [q], + rules: [ + { + endpoint: { + url: 'https://oidc.{Region}.{PartitionResult#dualStackDnsSuffix}', + properties: n, + headers: n + }, + type: e + } + ], + type: f + }, + { + error: + 'DualStack is enabled but this partition does not support DualStack', + type: d + } + ], + type: f + }, + { + endpoint: { + url: 'https://oidc.{Region}.{PartitionResult#dnsSuffix}', + properties: n, + headers: n + }, + type: e + } + ], + type: f + } + ], + type: f + }, + { error: 'Invalid Configuration: Missing Region', type: d } + ] + } + exports.ruleSet = _data + /***/ + }, - rnds[6] = rnds[6] & 0x0f | 0x40; - rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided + /***/ 54527: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + AccessDeniedException: () => AccessDeniedException, + AuthorizationPendingException: () => AuthorizationPendingException, + CreateTokenCommand: () => CreateTokenCommand, + CreateTokenRequestFilterSensitiveLog: () => + CreateTokenRequestFilterSensitiveLog, + CreateTokenResponseFilterSensitiveLog: () => + CreateTokenResponseFilterSensitiveLog, + CreateTokenWithIAMCommand: () => CreateTokenWithIAMCommand, + CreateTokenWithIAMRequestFilterSensitiveLog: () => + CreateTokenWithIAMRequestFilterSensitiveLog, + CreateTokenWithIAMResponseFilterSensitiveLog: () => + CreateTokenWithIAMResponseFilterSensitiveLog, + ExpiredTokenException: () => ExpiredTokenException, + InternalServerException: () => InternalServerException, + InvalidClientException: () => InvalidClientException, + InvalidClientMetadataException: () => InvalidClientMetadataException, + InvalidGrantException: () => InvalidGrantException, + InvalidRedirectUriException: () => InvalidRedirectUriException, + InvalidRequestException: () => InvalidRequestException, + InvalidRequestRegionException: () => InvalidRequestRegionException, + InvalidScopeException: () => InvalidScopeException, + RegisterClientCommand: () => RegisterClientCommand, + RegisterClientResponseFilterSensitiveLog: () => + RegisterClientResponseFilterSensitiveLog, + SSOOIDC: () => SSOOIDC, + SSOOIDCClient: () => SSOOIDCClient, + SSOOIDCServiceException: () => SSOOIDCServiceException, + SlowDownException: () => SlowDownException, + StartDeviceAuthorizationCommand: () => StartDeviceAuthorizationCommand, + StartDeviceAuthorizationRequestFilterSensitiveLog: () => + StartDeviceAuthorizationRequestFilterSensitiveLog, + UnauthorizedClientException: () => UnauthorizedClientException, + UnsupportedGrantTypeException: () => UnsupportedGrantTypeException, + __Client: () => import_smithy_client.Client + }) + module.exports = __toCommonJS(src_exports) + + // src/SSOOIDCClient.ts + var import_middleware_host_header = __nccwpck_require__(22545) + var import_middleware_logger = __nccwpck_require__(20014) + var import_middleware_recursion_detection = __nccwpck_require__(85525) + var import_middleware_user_agent = __nccwpck_require__(64688) + var import_config_resolver = __nccwpck_require__(53098) + var import_core = __nccwpck_require__(55829) + var import_middleware_content_length = __nccwpck_require__(82800) + var import_middleware_endpoint = __nccwpck_require__(82918) + var import_middleware_retry = __nccwpck_require__(96039) + + var import_httpAuthSchemeProvider = __nccwpck_require__(16948) + + // src/endpoint/EndpointParameters.ts + var resolveClientEndpointParameters = /* @__PURE__ */ __name(options => { + return { + ...options, + useDualstackEndpoint: options.useDualstackEndpoint ?? false, + useFipsEndpoint: options.useFipsEndpoint ?? false, + defaultSigningName: 'sso-oauth' + } + }, 'resolveClientEndpointParameters') + var commonParams = { + UseFIPS: { type: 'builtInParams', name: 'useFipsEndpoint' }, + Endpoint: { type: 'builtInParams', name: 'endpoint' }, + Region: { type: 'builtInParams', name: 'region' }, + UseDualStack: { type: 'builtInParams', name: 'useDualstackEndpoint' } + } + + // src/SSOOIDCClient.ts + var import_runtimeConfig = __nccwpck_require__(25524) + + // src/runtimeExtensions.ts + var import_region_config_resolver = __nccwpck_require__(18156) + var import_protocol_http = __nccwpck_require__(64418) + var import_smithy_client = __nccwpck_require__(63570) + + // src/auth/httpAuthExtensionConfiguration.ts + var getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name( + runtimeConfig => { + const _httpAuthSchemes = runtimeConfig.httpAuthSchemes + let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider + let _credentials = runtimeConfig.credentials + return { + setHttpAuthScheme(httpAuthScheme) { + const index = _httpAuthSchemes.findIndex( + scheme => scheme.schemeId === httpAuthScheme.schemeId + ) + if (index === -1) { + _httpAuthSchemes.push(httpAuthScheme) + } else { + _httpAuthSchemes.splice(index, 1, httpAuthScheme) + } + }, + httpAuthSchemes() { + return _httpAuthSchemes + }, + setHttpAuthSchemeProvider(httpAuthSchemeProvider) { + _httpAuthSchemeProvider = httpAuthSchemeProvider + }, + httpAuthSchemeProvider() { + return _httpAuthSchemeProvider + }, + setCredentials(credentials) { + _credentials = credentials + }, + credentials() { + return _credentials + } + } + }, + 'getHttpAuthExtensionConfiguration' + ) + var resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name(config => { + return { + httpAuthSchemes: config.httpAuthSchemes(), + httpAuthSchemeProvider: config.httpAuthSchemeProvider(), + credentials: config.credentials() + } + }, 'resolveHttpAuthRuntimeConfig') + + // src/runtimeExtensions.ts + var asPartial = /* @__PURE__ */ __name(t => t, 'asPartial') + var resolveRuntimeExtensions = /* @__PURE__ */ __name( + (runtimeConfig, extensions) => { + const extensionConfiguration = { + ...asPartial( + (0, + import_region_config_resolver.getAwsRegionExtensionConfiguration)( + runtimeConfig + ) + ), + ...asPartial( + (0, import_smithy_client.getDefaultExtensionConfiguration)( + runtimeConfig + ) + ), + ...asPartial( + (0, import_protocol_http.getHttpHandlerExtensionConfiguration)( + runtimeConfig + ) + ), + ...asPartial(getHttpAuthExtensionConfiguration(runtimeConfig)) + } + extensions.forEach(extension => + extension.configure(extensionConfiguration) + ) + return { + ...runtimeConfig, + ...(0, + import_region_config_resolver.resolveAwsRegionExtensionConfiguration)( + extensionConfiguration + ), + ...(0, import_smithy_client.resolveDefaultRuntimeConfig)( + extensionConfiguration + ), + ...(0, import_protocol_http.resolveHttpHandlerRuntimeConfig)( + extensionConfiguration + ), + ...resolveHttpAuthRuntimeConfig(extensionConfiguration) + } + }, + 'resolveRuntimeExtensions' + ) - if (buf) { - offset = offset || 0; + // src/SSOOIDCClient.ts + var _SSOOIDCClient = class _SSOOIDCClient + extends import_smithy_client.Client + { + constructor(...[configuration]) { + const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)( + configuration || {} + ) + const _config_1 = resolveClientEndpointParameters(_config_0) + const _config_2 = (0, + import_middleware_user_agent.resolveUserAgentConfig)(_config_1) + const _config_3 = (0, import_middleware_retry.resolveRetryConfig)( + _config_2 + ) + const _config_4 = (0, import_config_resolver.resolveRegionConfig)( + _config_3 + ) + const _config_5 = (0, + import_middleware_host_header.resolveHostHeaderConfig)(_config_4) + const _config_6 = (0, + import_middleware_endpoint.resolveEndpointConfig)(_config_5) + const _config_7 = (0, + import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6) + const _config_8 = resolveRuntimeExtensions( + _config_7, + (configuration == null ? void 0 : configuration.extensions) || [] + ) + super(_config_8) + this.config = _config_8 + this.middlewareStack.use( + (0, import_middleware_user_agent.getUserAgentPlugin)(this.config) + ) + this.middlewareStack.use( + (0, import_middleware_retry.getRetryPlugin)(this.config) + ) + this.middlewareStack.use( + (0, import_middleware_content_length.getContentLengthPlugin)( + this.config + ) + ) + this.middlewareStack.use( + (0, import_middleware_host_header.getHostHeaderPlugin)(this.config) + ) + this.middlewareStack.use( + (0, import_middleware_logger.getLoggerPlugin)(this.config) + ) + this.middlewareStack.use( + (0, + import_middleware_recursion_detection.getRecursionDetectionPlugin)( + this.config + ) + ) + this.middlewareStack.use( + (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)( + this.config, + { + httpAuthSchemeParametersProvider: + import_httpAuthSchemeProvider.defaultSSOOIDCHttpAuthSchemeParametersProvider, + identityProviderConfigProvider: async config => + new import_core.DefaultIdentityProviderConfig({ + 'aws.auth#sigv4': config.credentials + }) + } + ) + ) + this.middlewareStack.use( + (0, import_core.getHttpSigningPlugin)(this.config) + ) + } + /** + * Destroy underlying resources, like sockets. It's usually not necessary to do this. + * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed. + * Otherwise, sockets might stay open for quite a long time before the server terminates them. + */ + destroy() { + super.destroy() + } + } + __name(_SSOOIDCClient, 'SSOOIDCClient') + var SSOOIDCClient = _SSOOIDCClient - for (let i = 0; i < 16; ++i) { - buf[offset + i] = rnds[i]; - } + // src/SSOOIDC.ts - return buf; - } + // src/commands/CreateTokenCommand.ts - return (0, _stringify.unsafeStringify)(rnds); -} + var import_middleware_serde = __nccwpck_require__(81238) -var _default = v4; -exports["default"] = _default; + // src/models/models_0.ts -/***/ }), + // src/models/SSOOIDCServiceException.ts -/***/ 81780: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + var _SSOOIDCServiceException = class _SSOOIDCServiceException + extends import_smithy_client.ServiceException + { + /** + * @internal + */ + constructor(options) { + super(options) + Object.setPrototypeOf(this, _SSOOIDCServiceException.prototype) + } + } + __name(_SSOOIDCServiceException, 'SSOOIDCServiceException') + var SSOOIDCServiceException = _SSOOIDCServiceException -"use strict"; + // src/models/models_0.ts + var _AccessDeniedException = class _AccessDeniedException extends SSOOIDCServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'AccessDeniedException', + $fault: 'client', + ...opts + }) + this.name = 'AccessDeniedException' + this.$fault = 'client' + Object.setPrototypeOf(this, _AccessDeniedException.prototype) + this.error = opts.error + this.error_description = opts.error_description + } + } + __name(_AccessDeniedException, 'AccessDeniedException') + var AccessDeniedException = _AccessDeniedException + var _AuthorizationPendingException = class _AuthorizationPendingException extends SSOOIDCServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'AuthorizationPendingException', + $fault: 'client', + ...opts + }) + this.name = 'AuthorizationPendingException' + this.$fault = 'client' + Object.setPrototypeOf(this, _AuthorizationPendingException.prototype) + this.error = opts.error + this.error_description = opts.error_description + } + } + __name(_AuthorizationPendingException, 'AuthorizationPendingException') + var AuthorizationPendingException = _AuthorizationPendingException + var _ExpiredTokenException = class _ExpiredTokenException extends SSOOIDCServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'ExpiredTokenException', + $fault: 'client', + ...opts + }) + this.name = 'ExpiredTokenException' + this.$fault = 'client' + Object.setPrototypeOf(this, _ExpiredTokenException.prototype) + this.error = opts.error + this.error_description = opts.error_description + } + } + __name(_ExpiredTokenException, 'ExpiredTokenException') + var ExpiredTokenException = _ExpiredTokenException + var _InternalServerException = class _InternalServerException extends SSOOIDCServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'InternalServerException', + $fault: 'server', + ...opts + }) + this.name = 'InternalServerException' + this.$fault = 'server' + Object.setPrototypeOf(this, _InternalServerException.prototype) + this.error = opts.error + this.error_description = opts.error_description + } + } + __name(_InternalServerException, 'InternalServerException') + var InternalServerException = _InternalServerException + var _InvalidClientException = class _InvalidClientException extends SSOOIDCServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'InvalidClientException', + $fault: 'client', + ...opts + }) + this.name = 'InvalidClientException' + this.$fault = 'client' + Object.setPrototypeOf(this, _InvalidClientException.prototype) + this.error = opts.error + this.error_description = opts.error_description + } + } + __name(_InvalidClientException, 'InvalidClientException') + var InvalidClientException = _InvalidClientException + var _InvalidGrantException = class _InvalidGrantException extends SSOOIDCServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'InvalidGrantException', + $fault: 'client', + ...opts + }) + this.name = 'InvalidGrantException' + this.$fault = 'client' + Object.setPrototypeOf(this, _InvalidGrantException.prototype) + this.error = opts.error + this.error_description = opts.error_description + } + } + __name(_InvalidGrantException, 'InvalidGrantException') + var InvalidGrantException = _InvalidGrantException + var _InvalidRequestException = class _InvalidRequestException extends SSOOIDCServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'InvalidRequestException', + $fault: 'client', + ...opts + }) + this.name = 'InvalidRequestException' + this.$fault = 'client' + Object.setPrototypeOf(this, _InvalidRequestException.prototype) + this.error = opts.error + this.error_description = opts.error_description + } + } + __name(_InvalidRequestException, 'InvalidRequestException') + var InvalidRequestException = _InvalidRequestException + var _InvalidScopeException = class _InvalidScopeException extends SSOOIDCServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'InvalidScopeException', + $fault: 'client', + ...opts + }) + this.name = 'InvalidScopeException' + this.$fault = 'client' + Object.setPrototypeOf(this, _InvalidScopeException.prototype) + this.error = opts.error + this.error_description = opts.error_description + } + } + __name(_InvalidScopeException, 'InvalidScopeException') + var InvalidScopeException = _InvalidScopeException + var _SlowDownException = class _SlowDownException extends SSOOIDCServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'SlowDownException', + $fault: 'client', + ...opts + }) + this.name = 'SlowDownException' + this.$fault = 'client' + Object.setPrototypeOf(this, _SlowDownException.prototype) + this.error = opts.error + this.error_description = opts.error_description + } + } + __name(_SlowDownException, 'SlowDownException') + var SlowDownException = _SlowDownException + var _UnauthorizedClientException = class _UnauthorizedClientException extends SSOOIDCServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'UnauthorizedClientException', + $fault: 'client', + ...opts + }) + this.name = 'UnauthorizedClientException' + this.$fault = 'client' + Object.setPrototypeOf(this, _UnauthorizedClientException.prototype) + this.error = opts.error + this.error_description = opts.error_description + } + } + __name(_UnauthorizedClientException, 'UnauthorizedClientException') + var UnauthorizedClientException = _UnauthorizedClientException + var _UnsupportedGrantTypeException = class _UnsupportedGrantTypeException extends SSOOIDCServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'UnsupportedGrantTypeException', + $fault: 'client', + ...opts + }) + this.name = 'UnsupportedGrantTypeException' + this.$fault = 'client' + Object.setPrototypeOf(this, _UnsupportedGrantTypeException.prototype) + this.error = opts.error + this.error_description = opts.error_description + } + } + __name(_UnsupportedGrantTypeException, 'UnsupportedGrantTypeException') + var UnsupportedGrantTypeException = _UnsupportedGrantTypeException + var _InvalidRequestRegionException = class _InvalidRequestRegionException extends SSOOIDCServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'InvalidRequestRegionException', + $fault: 'client', + ...opts + }) + this.name = 'InvalidRequestRegionException' + this.$fault = 'client' + Object.setPrototypeOf(this, _InvalidRequestRegionException.prototype) + this.error = opts.error + this.error_description = opts.error_description + this.endpoint = opts.endpoint + this.region = opts.region + } + } + __name(_InvalidRequestRegionException, 'InvalidRequestRegionException') + var InvalidRequestRegionException = _InvalidRequestRegionException + var _InvalidClientMetadataException = class _InvalidClientMetadataException extends SSOOIDCServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'InvalidClientMetadataException', + $fault: 'client', + ...opts + }) + this.name = 'InvalidClientMetadataException' + this.$fault = 'client' + Object.setPrototypeOf(this, _InvalidClientMetadataException.prototype) + this.error = opts.error + this.error_description = opts.error_description + } + } + __name(_InvalidClientMetadataException, 'InvalidClientMetadataException') + var InvalidClientMetadataException = _InvalidClientMetadataException + var _InvalidRedirectUriException = class _InvalidRedirectUriException extends SSOOIDCServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'InvalidRedirectUriException', + $fault: 'client', + ...opts + }) + this.name = 'InvalidRedirectUriException' + this.$fault = 'client' + Object.setPrototypeOf(this, _InvalidRedirectUriException.prototype) + this.error = opts.error + this.error_description = opts.error_description + } + } + __name(_InvalidRedirectUriException, 'InvalidRedirectUriException') + var InvalidRedirectUriException = _InvalidRedirectUriException + var CreateTokenRequestFilterSensitiveLog = /* @__PURE__ */ __name( + obj => ({ + ...obj, + ...(obj.clientSecret && { + clientSecret: import_smithy_client.SENSITIVE_STRING + }), + ...(obj.refreshToken && { + refreshToken: import_smithy_client.SENSITIVE_STRING + }), + ...(obj.codeVerifier && { + codeVerifier: import_smithy_client.SENSITIVE_STRING + }) + }), + 'CreateTokenRequestFilterSensitiveLog' + ) + var CreateTokenResponseFilterSensitiveLog = /* @__PURE__ */ __name( + obj => ({ + ...obj, + ...(obj.accessToken && { + accessToken: import_smithy_client.SENSITIVE_STRING + }), + ...(obj.refreshToken && { + refreshToken: import_smithy_client.SENSITIVE_STRING + }), + ...(obj.idToken && { idToken: import_smithy_client.SENSITIVE_STRING }) + }), + 'CreateTokenResponseFilterSensitiveLog' + ) + var CreateTokenWithIAMRequestFilterSensitiveLog = /* @__PURE__ */ __name( + obj => ({ + ...obj, + ...(obj.refreshToken && { + refreshToken: import_smithy_client.SENSITIVE_STRING + }), + ...(obj.assertion && { + assertion: import_smithy_client.SENSITIVE_STRING + }), + ...(obj.subjectToken && { + subjectToken: import_smithy_client.SENSITIVE_STRING + }), + ...(obj.codeVerifier && { + codeVerifier: import_smithy_client.SENSITIVE_STRING + }) + }), + 'CreateTokenWithIAMRequestFilterSensitiveLog' + ) + var CreateTokenWithIAMResponseFilterSensitiveLog = /* @__PURE__ */ __name( + obj => ({ + ...obj, + ...(obj.accessToken && { + accessToken: import_smithy_client.SENSITIVE_STRING + }), + ...(obj.refreshToken && { + refreshToken: import_smithy_client.SENSITIVE_STRING + }), + ...(obj.idToken && { idToken: import_smithy_client.SENSITIVE_STRING }) + }), + 'CreateTokenWithIAMResponseFilterSensitiveLog' + ) + var RegisterClientResponseFilterSensitiveLog = /* @__PURE__ */ __name( + obj => ({ + ...obj, + ...(obj.clientSecret && { + clientSecret: import_smithy_client.SENSITIVE_STRING + }) + }), + 'RegisterClientResponseFilterSensitiveLog' + ) + var StartDeviceAuthorizationRequestFilterSensitiveLog = + /* @__PURE__ */ __name( + obj => ({ + ...obj, + ...(obj.clientSecret && { + clientSecret: import_smithy_client.SENSITIVE_STRING + }) + }), + 'StartDeviceAuthorizationRequestFilterSensitiveLog' + ) + // src/protocols/Aws_restJson1.ts + var import_core2 = __nccwpck_require__(59963) -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + var se_CreateTokenCommand = /* @__PURE__ */ __name( + async (input, context) => { + const b = (0, import_core.requestBuilder)(input, context) + const headers = { + 'content-type': 'application/json' + } + b.bp('/token') + let body + body = JSON.stringify( + (0, import_smithy_client.take)(input, { + clientId: [], + clientSecret: [], + code: [], + codeVerifier: [], + deviceCode: [], + grantType: [], + redirectUri: [], + refreshToken: [], + scope: _ => (0, import_smithy_client._json)(_) + }) + ) + b.m('POST').h(headers).b(body) + return b.build() + }, + 'se_CreateTokenCommand' + ) + var se_CreateTokenWithIAMCommand = /* @__PURE__ */ __name( + async (input, context) => { + const b = (0, import_core.requestBuilder)(input, context) + const headers = { + 'content-type': 'application/json' + } + b.bp('/token') + const query = (0, import_smithy_client.map)({ + [_ai]: [, 't'] + }) + let body + body = JSON.stringify( + (0, import_smithy_client.take)(input, { + assertion: [], + clientId: [], + code: [], + codeVerifier: [], + grantType: [], + redirectUri: [], + refreshToken: [], + requestedTokenType: [], + scope: _ => (0, import_smithy_client._json)(_), + subjectToken: [], + subjectTokenType: [] + }) + ) + b.m('POST').h(headers).q(query).b(body) + return b.build() + }, + 'se_CreateTokenWithIAMCommand' + ) + var se_RegisterClientCommand = /* @__PURE__ */ __name( + async (input, context) => { + const b = (0, import_core.requestBuilder)(input, context) + const headers = { + 'content-type': 'application/json' + } + b.bp('/client/register') + let body + body = JSON.stringify( + (0, import_smithy_client.take)(input, { + clientName: [], + clientType: [], + entitledApplicationArn: [], + grantTypes: _ => (0, import_smithy_client._json)(_), + issuerUrl: [], + redirectUris: _ => (0, import_smithy_client._json)(_), + scopes: _ => (0, import_smithy_client._json)(_) + }) + ) + b.m('POST').h(headers).b(body) + return b.build() + }, + 'se_RegisterClientCommand' + ) + var se_StartDeviceAuthorizationCommand = /* @__PURE__ */ __name( + async (input, context) => { + const b = (0, import_core.requestBuilder)(input, context) + const headers = { + 'content-type': 'application/json' + } + b.bp('/device_authorization') + let body + body = JSON.stringify( + (0, import_smithy_client.take)(input, { + clientId: [], + clientSecret: [], + startUrl: [] + }) + ) + b.m('POST').h(headers).b(body) + return b.build() + }, + 'se_StartDeviceAuthorizationCommand' + ) + var de_CreateTokenCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context) + } + const contents = (0, import_smithy_client.map)({ + $metadata: deserializeMetadata(output) + }) + const data = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.expectObject)( + await (0, import_core2.parseJsonBody)(output.body, context) + ), + 'body' + ) + const doc = (0, import_smithy_client.take)(data, { + accessToken: import_smithy_client.expectString, + expiresIn: import_smithy_client.expectInt32, + idToken: import_smithy_client.expectString, + refreshToken: import_smithy_client.expectString, + tokenType: import_smithy_client.expectString + }) + Object.assign(contents, doc) + return contents + }, + 'de_CreateTokenCommand' + ) + var de_CreateTokenWithIAMCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context) + } + const contents = (0, import_smithy_client.map)({ + $metadata: deserializeMetadata(output) + }) + const data = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.expectObject)( + await (0, import_core2.parseJsonBody)(output.body, context) + ), + 'body' + ) + const doc = (0, import_smithy_client.take)(data, { + accessToken: import_smithy_client.expectString, + expiresIn: import_smithy_client.expectInt32, + idToken: import_smithy_client.expectString, + issuedTokenType: import_smithy_client.expectString, + refreshToken: import_smithy_client.expectString, + scope: import_smithy_client._json, + tokenType: import_smithy_client.expectString + }) + Object.assign(contents, doc) + return contents + }, + 'de_CreateTokenWithIAMCommand' + ) + var de_RegisterClientCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context) + } + const contents = (0, import_smithy_client.map)({ + $metadata: deserializeMetadata(output) + }) + const data = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.expectObject)( + await (0, import_core2.parseJsonBody)(output.body, context) + ), + 'body' + ) + const doc = (0, import_smithy_client.take)(data, { + authorizationEndpoint: import_smithy_client.expectString, + clientId: import_smithy_client.expectString, + clientIdIssuedAt: import_smithy_client.expectLong, + clientSecret: import_smithy_client.expectString, + clientSecretExpiresAt: import_smithy_client.expectLong, + tokenEndpoint: import_smithy_client.expectString + }) + Object.assign(contents, doc) + return contents + }, + 'de_RegisterClientCommand' + ) + var de_StartDeviceAuthorizationCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context) + } + const contents = (0, import_smithy_client.map)({ + $metadata: deserializeMetadata(output) + }) + const data = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.expectObject)( + await (0, import_core2.parseJsonBody)(output.body, context) + ), + 'body' + ) + const doc = (0, import_smithy_client.take)(data, { + deviceCode: import_smithy_client.expectString, + expiresIn: import_smithy_client.expectInt32, + interval: import_smithy_client.expectInt32, + userCode: import_smithy_client.expectString, + verificationUri: import_smithy_client.expectString, + verificationUriComplete: import_smithy_client.expectString + }) + Object.assign(contents, doc) + return contents + }, + 'de_StartDeviceAuthorizationCommand' + ) + var de_CommandError = /* @__PURE__ */ __name(async (output, context) => { + const parsedOutput = { + ...output, + body: await (0, import_core2.parseJsonErrorBody)(output.body, context) + } + const errorCode = (0, import_core2.loadRestJsonErrorCode)( + output, + parsedOutput.body + ) + switch (errorCode) { + case 'AccessDeniedException': + case 'com.amazonaws.ssooidc#AccessDeniedException': + throw await de_AccessDeniedExceptionRes(parsedOutput, context) + case 'AuthorizationPendingException': + case 'com.amazonaws.ssooidc#AuthorizationPendingException': + throw await de_AuthorizationPendingExceptionRes( + parsedOutput, + context + ) + case 'ExpiredTokenException': + case 'com.amazonaws.ssooidc#ExpiredTokenException': + throw await de_ExpiredTokenExceptionRes(parsedOutput, context) + case 'InternalServerException': + case 'com.amazonaws.ssooidc#InternalServerException': + throw await de_InternalServerExceptionRes(parsedOutput, context) + case 'InvalidClientException': + case 'com.amazonaws.ssooidc#InvalidClientException': + throw await de_InvalidClientExceptionRes(parsedOutput, context) + case 'InvalidGrantException': + case 'com.amazonaws.ssooidc#InvalidGrantException': + throw await de_InvalidGrantExceptionRes(parsedOutput, context) + case 'InvalidRequestException': + case 'com.amazonaws.ssooidc#InvalidRequestException': + throw await de_InvalidRequestExceptionRes(parsedOutput, context) + case 'InvalidScopeException': + case 'com.amazonaws.ssooidc#InvalidScopeException': + throw await de_InvalidScopeExceptionRes(parsedOutput, context) + case 'SlowDownException': + case 'com.amazonaws.ssooidc#SlowDownException': + throw await de_SlowDownExceptionRes(parsedOutput, context) + case 'UnauthorizedClientException': + case 'com.amazonaws.ssooidc#UnauthorizedClientException': + throw await de_UnauthorizedClientExceptionRes(parsedOutput, context) + case 'UnsupportedGrantTypeException': + case 'com.amazonaws.ssooidc#UnsupportedGrantTypeException': + throw await de_UnsupportedGrantTypeExceptionRes( + parsedOutput, + context + ) + case 'InvalidRequestRegionException': + case 'com.amazonaws.ssooidc#InvalidRequestRegionException': + throw await de_InvalidRequestRegionExceptionRes( + parsedOutput, + context + ) + case 'InvalidClientMetadataException': + case 'com.amazonaws.ssooidc#InvalidClientMetadataException': + throw await de_InvalidClientMetadataExceptionRes( + parsedOutput, + context + ) + case 'InvalidRedirectUriException': + case 'com.amazonaws.ssooidc#InvalidRedirectUriException': + throw await de_InvalidRedirectUriExceptionRes(parsedOutput, context) + default: + const parsedBody = parsedOutput.body + return throwDefaultError({ + output, + parsedBody, + errorCode + }) + } + }, 'de_CommandError') + var throwDefaultError = (0, import_smithy_client.withBaseException)( + SSOOIDCServiceException + ) + var de_AccessDeniedExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const contents = (0, import_smithy_client.map)({}) + const data = parsedOutput.body + const doc = (0, import_smithy_client.take)(data, { + error: import_smithy_client.expectString, + error_description: import_smithy_client.expectString + }) + Object.assign(contents, doc) + const exception = new AccessDeniedException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + parsedOutput.body + ) + }, + 'de_AccessDeniedExceptionRes' + ) + var de_AuthorizationPendingExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const contents = (0, import_smithy_client.map)({}) + const data = parsedOutput.body + const doc = (0, import_smithy_client.take)(data, { + error: import_smithy_client.expectString, + error_description: import_smithy_client.expectString + }) + Object.assign(contents, doc) + const exception = new AuthorizationPendingException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + parsedOutput.body + ) + }, + 'de_AuthorizationPendingExceptionRes' + ) + var de_ExpiredTokenExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const contents = (0, import_smithy_client.map)({}) + const data = parsedOutput.body + const doc = (0, import_smithy_client.take)(data, { + error: import_smithy_client.expectString, + error_description: import_smithy_client.expectString + }) + Object.assign(contents, doc) + const exception = new ExpiredTokenException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + parsedOutput.body + ) + }, + 'de_ExpiredTokenExceptionRes' + ) + var de_InternalServerExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const contents = (0, import_smithy_client.map)({}) + const data = parsedOutput.body + const doc = (0, import_smithy_client.take)(data, { + error: import_smithy_client.expectString, + error_description: import_smithy_client.expectString + }) + Object.assign(contents, doc) + const exception = new InternalServerException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + parsedOutput.body + ) + }, + 'de_InternalServerExceptionRes' + ) + var de_InvalidClientExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const contents = (0, import_smithy_client.map)({}) + const data = parsedOutput.body + const doc = (0, import_smithy_client.take)(data, { + error: import_smithy_client.expectString, + error_description: import_smithy_client.expectString + }) + Object.assign(contents, doc) + const exception = new InvalidClientException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + parsedOutput.body + ) + }, + 'de_InvalidClientExceptionRes' + ) + var de_InvalidClientMetadataExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const contents = (0, import_smithy_client.map)({}) + const data = parsedOutput.body + const doc = (0, import_smithy_client.take)(data, { + error: import_smithy_client.expectString, + error_description: import_smithy_client.expectString + }) + Object.assign(contents, doc) + const exception = new InvalidClientMetadataException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + parsedOutput.body + ) + }, + 'de_InvalidClientMetadataExceptionRes' + ) + var de_InvalidGrantExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const contents = (0, import_smithy_client.map)({}) + const data = parsedOutput.body + const doc = (0, import_smithy_client.take)(data, { + error: import_smithy_client.expectString, + error_description: import_smithy_client.expectString + }) + Object.assign(contents, doc) + const exception = new InvalidGrantException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + parsedOutput.body + ) + }, + 'de_InvalidGrantExceptionRes' + ) + var de_InvalidRedirectUriExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const contents = (0, import_smithy_client.map)({}) + const data = parsedOutput.body + const doc = (0, import_smithy_client.take)(data, { + error: import_smithy_client.expectString, + error_description: import_smithy_client.expectString + }) + Object.assign(contents, doc) + const exception = new InvalidRedirectUriException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + parsedOutput.body + ) + }, + 'de_InvalidRedirectUriExceptionRes' + ) + var de_InvalidRequestExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const contents = (0, import_smithy_client.map)({}) + const data = parsedOutput.body + const doc = (0, import_smithy_client.take)(data, { + error: import_smithy_client.expectString, + error_description: import_smithy_client.expectString + }) + Object.assign(contents, doc) + const exception = new InvalidRequestException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + parsedOutput.body + ) + }, + 'de_InvalidRequestExceptionRes' + ) + var de_InvalidRequestRegionExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const contents = (0, import_smithy_client.map)({}) + const data = parsedOutput.body + const doc = (0, import_smithy_client.take)(data, { + endpoint: import_smithy_client.expectString, + error: import_smithy_client.expectString, + error_description: import_smithy_client.expectString, + region: import_smithy_client.expectString + }) + Object.assign(contents, doc) + const exception = new InvalidRequestRegionException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + parsedOutput.body + ) + }, + 'de_InvalidRequestRegionExceptionRes' + ) + var de_InvalidScopeExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const contents = (0, import_smithy_client.map)({}) + const data = parsedOutput.body + const doc = (0, import_smithy_client.take)(data, { + error: import_smithy_client.expectString, + error_description: import_smithy_client.expectString + }) + Object.assign(contents, doc) + const exception = new InvalidScopeException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + parsedOutput.body + ) + }, + 'de_InvalidScopeExceptionRes' + ) + var de_SlowDownExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const contents = (0, import_smithy_client.map)({}) + const data = parsedOutput.body + const doc = (0, import_smithy_client.take)(data, { + error: import_smithy_client.expectString, + error_description: import_smithy_client.expectString + }) + Object.assign(contents, doc) + const exception = new SlowDownException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + parsedOutput.body + ) + }, + 'de_SlowDownExceptionRes' + ) + var de_UnauthorizedClientExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const contents = (0, import_smithy_client.map)({}) + const data = parsedOutput.body + const doc = (0, import_smithy_client.take)(data, { + error: import_smithy_client.expectString, + error_description: import_smithy_client.expectString + }) + Object.assign(contents, doc) + const exception = new UnauthorizedClientException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + parsedOutput.body + ) + }, + 'de_UnauthorizedClientExceptionRes' + ) + var de_UnsupportedGrantTypeExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const contents = (0, import_smithy_client.map)({}) + const data = parsedOutput.body + const doc = (0, import_smithy_client.take)(data, { + error: import_smithy_client.expectString, + error_description: import_smithy_client.expectString + }) + Object.assign(contents, doc) + const exception = new UnsupportedGrantTypeException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + parsedOutput.body + ) + }, + 'de_UnsupportedGrantTypeExceptionRes' + ) + var deserializeMetadata = /* @__PURE__ */ __name( + output => ({ + httpStatusCode: output.statusCode, + requestId: + output.headers['x-amzn-requestid'] ?? + output.headers['x-amzn-request-id'] ?? + output.headers['x-amz-request-id'], + extendedRequestId: output.headers['x-amz-id-2'], + cfId: output.headers['x-amz-cf-id'] + }), + 'deserializeMetadata' + ) + var _ai = 'aws_iam' -var _v = _interopRequireDefault(__nccwpck_require__(68154)); + // src/commands/CreateTokenCommand.ts + var _CreateTokenCommand = class _CreateTokenCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('AWSSSOOIDCService', 'CreateToken', {}) + .n('SSOOIDCClient', 'CreateTokenCommand') + .f( + CreateTokenRequestFilterSensitiveLog, + CreateTokenResponseFilterSensitiveLog + ) + .ser(se_CreateTokenCommand) + .de(de_CreateTokenCommand) + .build() {} + __name(_CreateTokenCommand, 'CreateTokenCommand') + var CreateTokenCommand = _CreateTokenCommand -var _sha = _interopRequireDefault(__nccwpck_require__(74227)); + // src/commands/CreateTokenWithIAMCommand.ts -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + var _CreateTokenWithIAMCommand = class _CreateTokenWithIAMCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('AWSSSOOIDCService', 'CreateTokenWithIAM', {}) + .n('SSOOIDCClient', 'CreateTokenWithIAMCommand') + .f( + CreateTokenWithIAMRequestFilterSensitiveLog, + CreateTokenWithIAMResponseFilterSensitiveLog + ) + .ser(se_CreateTokenWithIAMCommand) + .de(de_CreateTokenWithIAMCommand) + .build() {} + __name(_CreateTokenWithIAMCommand, 'CreateTokenWithIAMCommand') + var CreateTokenWithIAMCommand = _CreateTokenWithIAMCommand -const v5 = (0, _v.default)('v5', 0x50, _sha.default); -var _default = v5; -exports["default"] = _default; + // src/commands/RegisterClientCommand.ts -/***/ }), + var _RegisterClientCommand = class _RegisterClientCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('AWSSSOOIDCService', 'RegisterClient', {}) + .n('SSOOIDCClient', 'RegisterClientCommand') + .f(void 0, RegisterClientResponseFilterSensitiveLog) + .ser(se_RegisterClientCommand) + .de(de_RegisterClientCommand) + .build() {} + __name(_RegisterClientCommand, 'RegisterClientCommand') + var RegisterClientCommand = _RegisterClientCommand + + // src/commands/StartDeviceAuthorizationCommand.ts + + var _StartDeviceAuthorizationCommand = class _StartDeviceAuthorizationCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('AWSSSOOIDCService', 'StartDeviceAuthorization', {}) + .n('SSOOIDCClient', 'StartDeviceAuthorizationCommand') + .f(StartDeviceAuthorizationRequestFilterSensitiveLog, void 0) + .ser(se_StartDeviceAuthorizationCommand) + .de(de_StartDeviceAuthorizationCommand) + .build() {} + __name( + _StartDeviceAuthorizationCommand, + 'StartDeviceAuthorizationCommand' + ) + var StartDeviceAuthorizationCommand = _StartDeviceAuthorizationCommand -/***/ 60648: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + // src/SSOOIDC.ts + var commands = { + CreateTokenCommand, + CreateTokenWithIAMCommand, + RegisterClientCommand, + StartDeviceAuthorizationCommand + } + var _SSOOIDC = class _SSOOIDC extends SSOOIDCClient {} + __name(_SSOOIDC, 'SSOOIDC') + var SSOOIDC = _SSOOIDC + ;(0, import_smithy_client.createAggregatedClient)(commands, SSOOIDC) + // Annotate the CommonJS export names for ESM import in node: -"use strict"; + 0 && 0 + /***/ + }, -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + /***/ 25524: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getRuntimeConfig = void 0 + const tslib_1 = __nccwpck_require__(4351) + const package_json_1 = tslib_1.__importDefault(__nccwpck_require__(69722)) + const core_1 = __nccwpck_require__(59963) + const credential_provider_node_1 = __nccwpck_require__(75531) + const util_user_agent_node_1 = __nccwpck_require__(98095) + const config_resolver_1 = __nccwpck_require__(53098) + const hash_node_1 = __nccwpck_require__(3081) + const middleware_retry_1 = __nccwpck_require__(96039) + const node_config_provider_1 = __nccwpck_require__(33461) + const node_http_handler_1 = __nccwpck_require__(7202) + const util_body_length_node_1 = __nccwpck_require__(68075) + const util_retry_1 = __nccwpck_require__(84902) + const runtimeConfig_shared_1 = __nccwpck_require__(68005) + const smithy_client_1 = __nccwpck_require__(63570) + const util_defaults_mode_node_1 = __nccwpck_require__(72429) + const smithy_client_2 = __nccwpck_require__(63570) + const getRuntimeConfig = config => { + ;(0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version) + const defaultsMode = (0, + util_defaults_mode_node_1.resolveDefaultsModeConfig)(config) + const defaultConfigProvider = () => + defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode) + const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)( + config + ) + ;(0, core_1.emitWarningIfUnsupportedVersion)(process.version) + return { + ...clientSharedValues, + ...config, + runtime: 'node', + defaultsMode, + bodyLengthChecker: + config?.bodyLengthChecker ?? + util_body_length_node_1.calculateBodyLength, + credentialDefaultProvider: + config?.credentialDefaultProvider ?? + credential_provider_node_1.defaultProvider, + defaultUserAgentProvider: + config?.defaultUserAgentProvider ?? + (0, util_user_agent_node_1.defaultUserAgent)({ + serviceId: clientSharedValues.serviceId, + clientVersion: package_json_1.default.version + }), + maxAttempts: + config?.maxAttempts ?? + (0, node_config_provider_1.loadConfig)( + middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS + ), + region: + config?.region ?? + (0, node_config_provider_1.loadConfig)( + config_resolver_1.NODE_REGION_CONFIG_OPTIONS, + config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS + ), + requestHandler: node_http_handler_1.NodeHttpHandler.create( + config?.requestHandler ?? defaultConfigProvider + ), + retryMode: + config?.retryMode ?? + (0, node_config_provider_1.loadConfig)({ + ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS, + default: async () => + (await defaultConfigProvider()).retryMode || + util_retry_1.DEFAULT_RETRY_MODE + }), + sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, 'sha256'), + streamCollector: + config?.streamCollector ?? node_http_handler_1.streamCollector, + useDualstackEndpoint: + config?.useDualstackEndpoint ?? + (0, node_config_provider_1.loadConfig)( + config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS + ), + useFipsEndpoint: + config?.useFipsEndpoint ?? + (0, node_config_provider_1.loadConfig)( + config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS + ) + } + } + exports.getRuntimeConfig = getRuntimeConfig -var _regex = _interopRequireDefault(__nccwpck_require__(55071)); + /***/ + }, -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + /***/ 68005: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getRuntimeConfig = void 0 + const core_1 = __nccwpck_require__(59963) + const core_2 = __nccwpck_require__(55829) + const smithy_client_1 = __nccwpck_require__(63570) + const url_parser_1 = __nccwpck_require__(14681) + const util_base64_1 = __nccwpck_require__(75600) + const util_utf8_1 = __nccwpck_require__(41895) + const httpAuthSchemeProvider_1 = __nccwpck_require__(16948) + const endpointResolver_1 = __nccwpck_require__(97604) + const getRuntimeConfig = config => { + return { + apiVersion: '2019-06-10', + base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64, + base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64, + disableHostPrefix: config?.disableHostPrefix ?? false, + endpointProvider: + config?.endpointProvider ?? + endpointResolver_1.defaultEndpointResolver, + extensions: config?.extensions ?? [], + httpAuthSchemeProvider: + config?.httpAuthSchemeProvider ?? + httpAuthSchemeProvider_1.defaultSSOOIDCHttpAuthSchemeProvider, + httpAuthSchemes: config?.httpAuthSchemes ?? [ + { + schemeId: 'aws.auth#sigv4', + identityProvider: ipc => + ipc.getIdentityProvider('aws.auth#sigv4'), + signer: new core_1.AwsSdkSigV4Signer() + }, + { + schemeId: 'smithy.api#noAuth', + identityProvider: ipc => + ipc.getIdentityProvider('smithy.api#noAuth') || + (async () => ({})), + signer: new core_2.NoAuthSigner() + } + ], + logger: config?.logger ?? new smithy_client_1.NoOpLogger(), + serviceId: config?.serviceId ?? 'SSO OIDC', + urlParser: config?.urlParser ?? url_parser_1.parseUrl, + utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8, + utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8 + } + } + exports.getRuntimeConfig = getRuntimeConfig -function validate(uuid) { - return typeof uuid === 'string' && _regex.default.test(uuid); -} + /***/ + }, -var _default = validate; -exports["default"] = _default; + /***/ 7202: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __create = Object.create + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __getProtoOf = Object.getPrototypeOf + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toESM = (mod, isNodeMode, target) => ( + (target = mod != null ? __create(__getProtoOf(mod)) : {}), + __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule + ? __defProp(target, 'default', { value: mod, enumerable: true }) + : target, + mod + ) + ) + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + DEFAULT_REQUEST_TIMEOUT: () => DEFAULT_REQUEST_TIMEOUT, + NodeHttp2Handler: () => NodeHttp2Handler, + NodeHttpHandler: () => NodeHttpHandler, + streamCollector: () => streamCollector + }) + module.exports = __toCommonJS(src_exports) + + // src/node-http-handler.ts + var import_protocol_http = __nccwpck_require__(64418) + var import_querystring_builder = __nccwpck_require__(68031) + var import_http = __nccwpck_require__(13685) + var import_https = __nccwpck_require__(95687) + + // src/constants.ts + var NODEJS_TIMEOUT_ERROR_CODES = ['ECONNRESET', 'EPIPE', 'ETIMEDOUT'] + + // src/get-transformed-headers.ts + var getTransformedHeaders = /* @__PURE__ */ __name(headers => { + const transformedHeaders = {} + for (const name of Object.keys(headers)) { + const headerValues = headers[name] + transformedHeaders[name] = Array.isArray(headerValues) + ? headerValues.join(',') + : headerValues + } + return transformedHeaders + }, 'getTransformedHeaders') + + // src/set-connection-timeout.ts + var DEFER_EVENT_LISTENER_TIME = 1e3 + var setConnectionTimeout = /* @__PURE__ */ __name( + (request, reject, timeoutInMs = 0) => { + if (!timeoutInMs) { + return -1 + } + const registerTimeout = /* @__PURE__ */ __name(offset => { + const timeoutId = setTimeout(() => { + request.destroy() + reject( + Object.assign( + new Error( + `Socket timed out without establishing a connection within ${timeoutInMs} ms` + ), + { + name: 'TimeoutError' + } + ) + ) + }, timeoutInMs - offset) + const doWithSocket = /* @__PURE__ */ __name(socket => { + if (socket == null ? void 0 : socket.connecting) { + socket.on('connect', () => { + clearTimeout(timeoutId) + }) + } else { + clearTimeout(timeoutId) + } + }, 'doWithSocket') + if (request.socket) { + doWithSocket(request.socket) + } else { + request.on('socket', doWithSocket) + } + }, 'registerTimeout') + if (timeoutInMs < 2e3) { + registerTimeout(0) + return 0 + } + return setTimeout( + registerTimeout.bind(null, DEFER_EVENT_LISTENER_TIME), + DEFER_EVENT_LISTENER_TIME + ) + }, + 'setConnectionTimeout' + ) -/***/ }), + // src/set-socket-keep-alive.ts + var DEFER_EVENT_LISTENER_TIME2 = 3e3 + var setSocketKeepAlive = /* @__PURE__ */ __name( + ( + request, + { keepAlive, keepAliveMsecs }, + deferTimeMs = DEFER_EVENT_LISTENER_TIME2 + ) => { + if (keepAlive !== true) { + return -1 + } + const registerListener = /* @__PURE__ */ __name(() => { + if (request.socket) { + request.socket.setKeepAlive(keepAlive, keepAliveMsecs || 0) + } else { + request.on('socket', socket => { + socket.setKeepAlive(keepAlive, keepAliveMsecs || 0) + }) + } + }, 'registerListener') + if (deferTimeMs === 0) { + registerListener() + return 0 + } + return setTimeout(registerListener, deferTimeMs) + }, + 'setSocketKeepAlive' + ) -/***/ 83472: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + // src/set-socket-timeout.ts + var DEFER_EVENT_LISTENER_TIME3 = 3e3 + var setSocketTimeout = /* @__PURE__ */ __name( + (request, reject, timeoutInMs = 0) => { + const registerTimeout = /* @__PURE__ */ __name(offset => { + request.setTimeout(timeoutInMs - offset, () => { + request.destroy() + reject( + Object.assign( + new Error(`Connection timed out after ${timeoutInMs} ms`), + { name: 'TimeoutError' } + ) + ) + }) + }, 'registerTimeout') + if (0 < timeoutInMs && timeoutInMs < 6e3) { + registerTimeout(0) + return 0 + } + return setTimeout( + registerTimeout.bind( + null, + timeoutInMs === 0 ? 0 : DEFER_EVENT_LISTENER_TIME3 + ), + DEFER_EVENT_LISTENER_TIME3 + ) + }, + 'setSocketTimeout' + ) -"use strict"; + // src/write-request-body.ts + var import_stream = __nccwpck_require__(12781) + var MIN_WAIT_TIME = 1e3 + async function writeRequestBody( + httpRequest, + request, + maxContinueTimeoutMs = MIN_WAIT_TIME + ) { + const headers = request.headers ?? {} + const expect = headers['Expect'] || headers['expect'] + let timeoutId = -1 + let hasError = false + if (expect === '100-continue') { + await Promise.race([ + new Promise(resolve => { + timeoutId = Number( + setTimeout( + resolve, + Math.max(MIN_WAIT_TIME, maxContinueTimeoutMs) + ) + ) + }), + new Promise(resolve => { + httpRequest.on('continue', () => { + clearTimeout(timeoutId) + resolve() + }) + httpRequest.on('error', () => { + hasError = true + clearTimeout(timeoutId) + resolve() + }) + }) + ]) + } + if (!hasError) { + writeBody(httpRequest, request.body) + } + } + __name(writeRequestBody, 'writeRequestBody') + function writeBody(httpRequest, body) { + if (body instanceof import_stream.Readable) { + body.pipe(httpRequest) + return + } + if (body) { + if (Buffer.isBuffer(body) || typeof body === 'string') { + httpRequest.end(body) + return + } + const uint8 = body + if ( + typeof uint8 === 'object' && + uint8.buffer && + typeof uint8.byteOffset === 'number' && + typeof uint8.byteLength === 'number' + ) { + httpRequest.end( + Buffer.from(uint8.buffer, uint8.byteOffset, uint8.byteLength) + ) + return + } + httpRequest.end(Buffer.from(body)) + return + } + httpRequest.end() + } + __name(writeBody, 'writeBody') + + // src/node-http-handler.ts + var DEFAULT_REQUEST_TIMEOUT = 0 + var _NodeHttpHandler = class _NodeHttpHandler { + constructor(options) { + this.socketWarningTimestamp = 0 + // Node http handler is hard-coded to http/1.1: https://github.com/nodejs/node/blob/ff5664b83b89c55e4ab5d5f60068fb457f1f5872/lib/_http_server.js#L286 + this.metadata = { handlerProtocol: 'http/1.1' } + this.configProvider = new Promise((resolve, reject) => { + if (typeof options === 'function') { + options() + .then(_options => { + resolve(this.resolveDefaultConfig(_options)) + }) + .catch(reject) + } else { + resolve(this.resolveDefaultConfig(options)) + } + }) + } + /** + * @returns the input if it is an HttpHandler of any class, + * or instantiates a new instance of this handler. + */ + static create(instanceOrOptions) { + if ( + typeof (instanceOrOptions == null + ? void 0 + : instanceOrOptions.handle) === 'function' + ) { + return instanceOrOptions + } + return new _NodeHttpHandler(instanceOrOptions) + } + /** + * @internal + * + * @param agent - http(s) agent in use by the NodeHttpHandler instance. + * @param socketWarningTimestamp - last socket usage check timestamp. + * @param logger - channel for the warning. + * @returns timestamp of last emitted warning. + */ + static checkSocketUsage( + agent, + socketWarningTimestamp, + logger = console + ) { + var _a, _b, _c + const { sockets, requests, maxSockets } = agent + if (typeof maxSockets !== 'number' || maxSockets === Infinity) { + return socketWarningTimestamp + } + const interval = 15e3 + if (Date.now() - interval < socketWarningTimestamp) { + return socketWarningTimestamp + } + if (sockets && requests) { + for (const origin in sockets) { + const socketsInUse = + ((_a = sockets[origin]) == null ? void 0 : _a.length) ?? 0 + const requestsEnqueued = + ((_b = requests[origin]) == null ? void 0 : _b.length) ?? 0 + if ( + socketsInUse >= maxSockets && + requestsEnqueued >= 2 * maxSockets + ) { + ;(_c = logger == null ? void 0 : logger.warn) == null + ? void 0 + : _c.call( + logger, + `@smithy/node-http-handler:WARN - socket usage at capacity=${socketsInUse} and ${requestsEnqueued} additional requests are enqueued. +See https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html +or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.` + ) + return Date.now() + } + } + } + return socketWarningTimestamp + } + resolveDefaultConfig(options) { + const { + requestTimeout, + connectionTimeout, + socketTimeout, + httpAgent, + httpsAgent + } = options || {} + const keepAlive = true + const maxSockets = 50 + return { + connectionTimeout, + requestTimeout: requestTimeout ?? socketTimeout, + httpAgent: (() => { + if ( + httpAgent instanceof import_http.Agent || + typeof (httpAgent == null ? void 0 : httpAgent.destroy) === + 'function' + ) { + return httpAgent + } + return new import_http.Agent({ + keepAlive, + maxSockets, + ...httpAgent + }) + })(), + httpsAgent: (() => { + if ( + httpsAgent instanceof import_https.Agent || + typeof (httpsAgent == null ? void 0 : httpsAgent.destroy) === + 'function' + ) { + return httpsAgent + } + return new import_https.Agent({ + keepAlive, + maxSockets, + ...httpsAgent + }) + })(), + logger: console + } + } + destroy() { + var _a, _b, _c, _d + ;(_b = (_a = this.config) == null ? void 0 : _a.httpAgent) == null + ? void 0 + : _b.destroy() + ;(_d = (_c = this.config) == null ? void 0 : _c.httpsAgent) == null + ? void 0 + : _d.destroy() + } + async handle(request, { abortSignal } = {}) { + if (!this.config) { + this.config = await this.configProvider + } + return new Promise((_resolve, _reject) => { + let writeRequestBodyPromise = void 0 + const timeouts = [] + const resolve = /* @__PURE__ */ __name(async arg => { + await writeRequestBodyPromise + timeouts.forEach(clearTimeout) + _resolve(arg) + }, 'resolve') + const reject = /* @__PURE__ */ __name(async arg => { + await writeRequestBodyPromise + timeouts.forEach(clearTimeout) + _reject(arg) + }, 'reject') + if (!this.config) { + throw new Error( + 'Node HTTP request handler config is not resolved' + ) + } + if (abortSignal == null ? void 0 : abortSignal.aborted) { + const abortError = new Error('Request aborted') + abortError.name = 'AbortError' + reject(abortError) + return + } + const isSSL = request.protocol === 'https:' + const agent = isSSL ? this.config.httpsAgent : this.config.httpAgent + timeouts.push( + setTimeout( + () => { + this.socketWarningTimestamp = + _NodeHttpHandler.checkSocketUsage( + agent, + this.socketWarningTimestamp, + this.config.logger + ) + }, + this.config.socketAcquisitionWarningTimeout ?? + (this.config.requestTimeout ?? 2e3) + + (this.config.connectionTimeout ?? 1e3) + ) + ) + const queryString = (0, + import_querystring_builder.buildQueryString)(request.query || {}) + let auth = void 0 + if (request.username != null || request.password != null) { + const username = request.username ?? '' + const password = request.password ?? '' + auth = `${username}:${password}` + } + let path = request.path + if (queryString) { + path += `?${queryString}` + } + if (request.fragment) { + path += `#${request.fragment}` + } + const nodeHttpsOptions = { + headers: request.headers, + host: request.hostname, + method: request.method, + path, + port: request.port, + agent, + auth + } + const requestFunc = isSSL + ? import_https.request + : import_http.request + const req = requestFunc(nodeHttpsOptions, res => { + const httpResponse = new import_protocol_http.HttpResponse({ + statusCode: res.statusCode || -1, + reason: res.statusMessage, + headers: getTransformedHeaders(res.headers), + body: res + }) + resolve({ response: httpResponse }) + }) + req.on('error', err => { + if (NODEJS_TIMEOUT_ERROR_CODES.includes(err.code)) { + reject(Object.assign(err, { name: 'TimeoutError' })) + } else { + reject(err) + } + }) + if (abortSignal) { + const onAbort = /* @__PURE__ */ __name(() => { + req.destroy() + const abortError = new Error('Request aborted') + abortError.name = 'AbortError' + reject(abortError) + }, 'onAbort') + if (typeof abortSignal.addEventListener === 'function') { + const signal = abortSignal + signal.addEventListener('abort', onAbort, { once: true }) + req.once('close', () => + signal.removeEventListener('abort', onAbort) + ) + } else { + abortSignal.onabort = onAbort + } + } + timeouts.push( + setConnectionTimeout(req, reject, this.config.connectionTimeout) + ) + timeouts.push( + setSocketTimeout(req, reject, this.config.requestTimeout) + ) + const httpAgent = nodeHttpsOptions.agent + if (typeof httpAgent === 'object' && 'keepAlive' in httpAgent) { + timeouts.push( + setSocketKeepAlive(req, { + // @ts-expect-error keepAlive is not public on httpAgent. + keepAlive: httpAgent.keepAlive, + // @ts-expect-error keepAliveMsecs is not public on httpAgent. + keepAliveMsecs: httpAgent.keepAliveMsecs + }) + ) + } + writeRequestBodyPromise = writeRequestBody( + req, + request, + this.config.requestTimeout + ).catch(e => { + timeouts.forEach(clearTimeout) + return _reject(e) + }) + }) + } + updateHttpClientConfig(key, value) { + this.config = void 0 + this.configProvider = this.configProvider.then(config => { + return { + ...config, + [key]: value + } + }) + } + httpHandlerConfigs() { + return this.config ?? {} + } + } + __name(_NodeHttpHandler, 'NodeHttpHandler') + var NodeHttpHandler = _NodeHttpHandler + // src/node-http2-handler.ts -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + var import_http22 = __nccwpck_require__(85158) -var _validate = _interopRequireDefault(__nccwpck_require__(60648)); + // src/node-http2-connection-manager.ts + var import_http2 = __toESM(__nccwpck_require__(85158)) -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + // src/node-http2-connection-pool.ts + var _NodeHttp2ConnectionPool = class _NodeHttp2ConnectionPool { + constructor(sessions) { + this.sessions = [] + this.sessions = sessions ?? [] + } + poll() { + if (this.sessions.length > 0) { + return this.sessions.shift() + } + } + offerLast(session) { + this.sessions.push(session) + } + contains(session) { + return this.sessions.includes(session) + } + remove(session) { + this.sessions = this.sessions.filter(s => s !== session) + } + [Symbol.iterator]() { + return this.sessions[Symbol.iterator]() + } + destroy(connection) { + for (const session of this.sessions) { + if (session === connection) { + if (!session.destroyed) { + session.destroy() + } + } + } + } + } + __name(_NodeHttp2ConnectionPool, 'NodeHttp2ConnectionPool') + var NodeHttp2ConnectionPool = _NodeHttp2ConnectionPool -function version(uuid) { - if (!(0, _validate.default)(uuid)) { - throw TypeError('Invalid UUID'); - } + // src/node-http2-connection-manager.ts + var _NodeHttp2ConnectionManager = class _NodeHttp2ConnectionManager { + constructor(config) { + this.sessionCache = /* @__PURE__ */ new Map() + this.config = config + if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) { + throw new RangeError('maxConcurrency must be greater than zero.') + } + } + lease(requestContext, connectionConfiguration) { + const url = this.getUrlString(requestContext) + const existingPool = this.sessionCache.get(url) + if (existingPool) { + const existingSession = existingPool.poll() + if (existingSession && !this.config.disableConcurrency) { + return existingSession + } + } + const session = import_http2.default.connect(url) + if (this.config.maxConcurrency) { + session.settings( + { maxConcurrentStreams: this.config.maxConcurrency }, + err => { + if (err) { + throw new Error( + 'Fail to set maxConcurrentStreams to ' + + this.config.maxConcurrency + + 'when creating new session for ' + + requestContext.destination.toString() + ) + } + } + ) + } + session.unref() + const destroySessionCb = /* @__PURE__ */ __name(() => { + session.destroy() + this.deleteSession(url, session) + }, 'destroySessionCb') + session.on('goaway', destroySessionCb) + session.on('error', destroySessionCb) + session.on('frameError', destroySessionCb) + session.on('close', () => this.deleteSession(url, session)) + if (connectionConfiguration.requestTimeout) { + session.setTimeout( + connectionConfiguration.requestTimeout, + destroySessionCb + ) + } + const connectionPool = + this.sessionCache.get(url) || new NodeHttp2ConnectionPool() + connectionPool.offerLast(session) + this.sessionCache.set(url, connectionPool) + return session + } + /** + * Delete a session from the connection pool. + * @param authority The authority of the session to delete. + * @param session The session to delete. + */ + deleteSession(authority, session) { + const existingConnectionPool = this.sessionCache.get(authority) + if (!existingConnectionPool) { + return + } + if (!existingConnectionPool.contains(session)) { + return + } + existingConnectionPool.remove(session) + this.sessionCache.set(authority, existingConnectionPool) + } + release(requestContext, session) { + var _a + const cacheKey = this.getUrlString(requestContext) + ;(_a = this.sessionCache.get(cacheKey)) == null + ? void 0 + : _a.offerLast(session) + } + destroy() { + for (const [key, connectionPool] of this.sessionCache) { + for (const session of connectionPool) { + if (!session.destroyed) { + session.destroy() + } + connectionPool.remove(session) + } + this.sessionCache.delete(key) + } + } + setMaxConcurrentStreams(maxConcurrentStreams) { + if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) { + throw new RangeError( + 'maxConcurrentStreams must be greater than zero.' + ) + } + this.config.maxConcurrency = maxConcurrentStreams + } + setDisableConcurrentStreams(disableConcurrentStreams) { + this.config.disableConcurrency = disableConcurrentStreams + } + getUrlString(request) { + return request.destination.toString() + } + } + __name(_NodeHttp2ConnectionManager, 'NodeHttp2ConnectionManager') + var NodeHttp2ConnectionManager = _NodeHttp2ConnectionManager + + // src/node-http2-handler.ts + var _NodeHttp2Handler = class _NodeHttp2Handler { + constructor(options) { + this.metadata = { handlerProtocol: 'h2' } + this.connectionManager = new NodeHttp2ConnectionManager({}) + this.configProvider = new Promise((resolve, reject) => { + if (typeof options === 'function') { + options() + .then(opts => { + resolve(opts || {}) + }) + .catch(reject) + } else { + resolve(options || {}) + } + }) + } + /** + * @returns the input if it is an HttpHandler of any class, + * or instantiates a new instance of this handler. + */ + static create(instanceOrOptions) { + if ( + typeof (instanceOrOptions == null + ? void 0 + : instanceOrOptions.handle) === 'function' + ) { + return instanceOrOptions + } + return new _NodeHttp2Handler(instanceOrOptions) + } + destroy() { + this.connectionManager.destroy() + } + async handle(request, { abortSignal } = {}) { + if (!this.config) { + this.config = await this.configProvider + this.connectionManager.setDisableConcurrentStreams( + this.config.disableConcurrentStreams || false + ) + if (this.config.maxConcurrentStreams) { + this.connectionManager.setMaxConcurrentStreams( + this.config.maxConcurrentStreams + ) + } + } + const { requestTimeout, disableConcurrentStreams } = this.config + return new Promise((_resolve, _reject) => { + var _a + let fulfilled = false + let writeRequestBodyPromise = void 0 + const resolve = /* @__PURE__ */ __name(async arg => { + await writeRequestBodyPromise + _resolve(arg) + }, 'resolve') + const reject = /* @__PURE__ */ __name(async arg => { + await writeRequestBodyPromise + _reject(arg) + }, 'reject') + if (abortSignal == null ? void 0 : abortSignal.aborted) { + fulfilled = true + const abortError = new Error('Request aborted') + abortError.name = 'AbortError' + reject(abortError) + return + } + const { hostname, method, port, protocol, query } = request + let auth = '' + if (request.username != null || request.password != null) { + const username = request.username ?? '' + const password = request.password ?? '' + auth = `${username}:${password}@` + } + const authority = `${protocol}//${auth}${hostname}${port ? `:${port}` : ''}` + const requestContext = { destination: new URL(authority) } + const session = this.connectionManager.lease(requestContext, { + requestTimeout: + (_a = this.config) == null ? void 0 : _a.sessionTimeout, + disableConcurrentStreams: disableConcurrentStreams || false + }) + const rejectWithDestroy = /* @__PURE__ */ __name(err => { + if (disableConcurrentStreams) { + this.destroySession(session) + } + fulfilled = true + reject(err) + }, 'rejectWithDestroy') + const queryString = (0, + import_querystring_builder.buildQueryString)(query || {}) + let path = request.path + if (queryString) { + path += `?${queryString}` + } + if (request.fragment) { + path += `#${request.fragment}` + } + const req = session.request({ + ...request.headers, + [import_http22.constants.HTTP2_HEADER_PATH]: path, + [import_http22.constants.HTTP2_HEADER_METHOD]: method + }) + session.ref() + req.on('response', headers => { + const httpResponse = new import_protocol_http.HttpResponse({ + statusCode: headers[':status'] || -1, + headers: getTransformedHeaders(headers), + body: req + }) + fulfilled = true + resolve({ response: httpResponse }) + if (disableConcurrentStreams) { + session.close() + this.connectionManager.deleteSession(authority, session) + } + }) + if (requestTimeout) { + req.setTimeout(requestTimeout, () => { + req.close() + const timeoutError = new Error( + `Stream timed out because of no activity for ${requestTimeout} ms` + ) + timeoutError.name = 'TimeoutError' + rejectWithDestroy(timeoutError) + }) + } + if (abortSignal) { + const onAbort = /* @__PURE__ */ __name(() => { + req.close() + const abortError = new Error('Request aborted') + abortError.name = 'AbortError' + rejectWithDestroy(abortError) + }, 'onAbort') + if (typeof abortSignal.addEventListener === 'function') { + const signal = abortSignal + signal.addEventListener('abort', onAbort, { once: true }) + req.once('close', () => + signal.removeEventListener('abort', onAbort) + ) + } else { + abortSignal.onabort = onAbort + } + } + req.on('frameError', (type, code, id) => { + rejectWithDestroy( + new Error( + `Frame type id ${type} in stream id ${id} has failed with code ${code}.` + ) + ) + }) + req.on('error', rejectWithDestroy) + req.on('aborted', () => { + rejectWithDestroy( + new Error( + `HTTP/2 stream is abnormally aborted in mid-communication with result code ${req.rstCode}.` + ) + ) + }) + req.on('close', () => { + session.unref() + if (disableConcurrentStreams) { + session.destroy() + } + if (!fulfilled) { + rejectWithDestroy( + new Error( + 'Unexpected error: http2 request did not get a response' + ) + ) + } + }) + writeRequestBodyPromise = writeRequestBody( + req, + request, + requestTimeout + ) + }) + } + updateHttpClientConfig(key, value) { + this.config = void 0 + this.configProvider = this.configProvider.then(config => { + return { + ...config, + [key]: value + } + }) + } + httpHandlerConfigs() { + return this.config ?? {} + } + /** + * Destroys a session. + * @param session The session to destroy. + */ + destroySession(session) { + if (!session.destroyed) { + session.destroy() + } + } + } + __name(_NodeHttp2Handler, 'NodeHttp2Handler') + var NodeHttp2Handler = _NodeHttp2Handler - return parseInt(uuid.slice(14, 15), 16); -} + // src/stream-collector/collector.ts -var _default = version; -exports["default"] = _default; + var _Collector = class _Collector extends import_stream.Writable { + constructor() { + super(...arguments) + this.bufferedBytes = [] + } + _write(chunk, encoding, callback) { + this.bufferedBytes.push(chunk) + callback() + } + } + __name(_Collector, 'Collector') + var Collector = _Collector -/***/ }), + // src/stream-collector/index.ts + var streamCollector = /* @__PURE__ */ __name(stream => { + if (isReadableStreamInstance(stream)) { + return collectReadableStream(stream) + } + return new Promise((resolve, reject) => { + const collector = new Collector() + stream.pipe(collector) + stream.on('error', err => { + collector.end() + reject(err) + }) + collector.on('error', reject) + collector.on('finish', function () { + const bytes = new Uint8Array(Buffer.concat(this.bufferedBytes)) + resolve(bytes) + }) + }) + }, 'streamCollector') + var isReadableStreamInstance = /* @__PURE__ */ __name( + stream => + typeof ReadableStream === 'function' && + stream instanceof ReadableStream, + 'isReadableStreamInstance' + ) + async function collectReadableStream(stream) { + const chunks = [] + const reader = stream.getReader() + let isDone = false + let length = 0 + while (!isDone) { + const { done, value } = await reader.read() + if (value) { + chunks.push(value) + length += value.length + } + isDone = done + } + const collected = new Uint8Array(length) + let offset = 0 + for (const chunk of chunks) { + collected.set(chunk, offset) + offset += chunk.length + } + return collected + } + __name(collectReadableStream, 'collectReadableStream') + // Annotate the CommonJS export names for ESM import in node: -/***/ 59221: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + 0 && 0 -"use strict"; + /***/ + }, -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.resolveHttpAuthSchemeConfig = exports.defaultMarketplaceCatalogHttpAuthSchemeProvider = exports.defaultMarketplaceCatalogHttpAuthSchemeParametersProvider = void 0; -const core_1 = __nccwpck_require__(69736); -const util_middleware_1 = __nccwpck_require__(69474); -const defaultMarketplaceCatalogHttpAuthSchemeParametersProvider = async (config, context, input) => { - return { - operation: (0, util_middleware_1.getSmithyContext)(context).operation, - region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) || + /***/ 49344: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.resolveHttpAuthSchemeConfig = + exports.defaultSSOHttpAuthSchemeProvider = + exports.defaultSSOHttpAuthSchemeParametersProvider = + void 0 + const core_1 = __nccwpck_require__(59963) + const util_middleware_1 = __nccwpck_require__(2390) + const defaultSSOHttpAuthSchemeParametersProvider = async ( + config, + context, + input + ) => { + return { + operation: (0, util_middleware_1.getSmithyContext)(context).operation, + region: + (await (0, util_middleware_1.normalizeProvider)(config.region)()) || (() => { - throw new Error("expected `region` to be configured for `aws.auth#sigv4`"); - })(), - }; -}; -exports.defaultMarketplaceCatalogHttpAuthSchemeParametersProvider = defaultMarketplaceCatalogHttpAuthSchemeParametersProvider; -function createAwsAuthSigv4HttpAuthOption(authParameters) { - return { - schemeId: "aws.auth#sigv4", - signingProperties: { - name: "aws-marketplace", - region: authParameters.region, - }, - propertiesExtractor: (config, context) => ({ + throw new Error( + 'expected `region` to be configured for `aws.auth#sigv4`' + ) + })() + } + } + exports.defaultSSOHttpAuthSchemeParametersProvider = + defaultSSOHttpAuthSchemeParametersProvider + function createAwsAuthSigv4HttpAuthOption(authParameters) { + return { + schemeId: 'aws.auth#sigv4', + signingProperties: { + name: 'awsssoportal', + region: authParameters.region + }, + propertiesExtractor: (config, context) => ({ signingProperties: { - config, - context, - }, - }), - }; -} -const defaultMarketplaceCatalogHttpAuthSchemeProvider = (authParameters) => { - const options = []; - switch (authParameters.operation) { - default: { - options.push(createAwsAuthSigv4HttpAuthOption(authParameters)); + config, + context + } + }) } - } - return options; -}; -exports.defaultMarketplaceCatalogHttpAuthSchemeProvider = defaultMarketplaceCatalogHttpAuthSchemeProvider; -const resolveHttpAuthSchemeConfig = (config) => { - const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config); - return Object.assign(config_0, {}); -}; -exports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig; - - -/***/ }), - -/***/ 53211: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.defaultEndpointResolver = void 0; -const util_endpoints_1 = __nccwpck_require__(24253); -const util_endpoints_2 = __nccwpck_require__(76779); -const ruleset_1 = __nccwpck_require__(92510); -const cache = new util_endpoints_2.EndpointCache({ - size: 50, - params: ["Endpoint", "Region", "UseDualStack", "UseFIPS"], -}); -const defaultEndpointResolver = (endpointParams, context = {}) => { - return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, { - endpointParams: endpointParams, - logger: context.logger, - })); -}; -exports.defaultEndpointResolver = defaultEndpointResolver; -util_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions; - - -/***/ }), - -/***/ 92510: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.ruleSet = void 0; -const s = "required", t = "fn", u = "argv", v = "ref"; -const a = true, b = "isSet", c = "booleanEquals", d = "error", e = "endpoint", f = "tree", g = "PartitionResult", h = { [s]: false, "type": "String" }, i = { [s]: true, "default": false, "type": "Boolean" }, j = { [v]: "Endpoint" }, k = { [t]: c, [u]: [{ [v]: "UseFIPS" }, true] }, l = { [t]: c, [u]: [{ [v]: "UseDualStack" }, true] }, m = {}, n = { [t]: "getAttr", [u]: [{ [v]: g }, "supportsFIPS"] }, o = { [t]: c, [u]: [true, { [t]: "getAttr", [u]: [{ [v]: g }, "supportsDualStack"] }] }, p = [k], q = [l], r = [{ [v]: "Region" }]; -const _data = { version: "1.0", parameters: { Region: h, UseDualStack: i, UseFIPS: i, Endpoint: h }, rules: [{ conditions: [{ [t]: b, [u]: [j] }], rules: [{ conditions: p, error: "Invalid Configuration: FIPS and custom endpoint are not supported", type: d }, { conditions: q, error: "Invalid Configuration: Dualstack and custom endpoint are not supported", type: d }, { endpoint: { url: j, properties: m, headers: m }, type: e }], type: f }, { conditions: [{ [t]: b, [u]: r }], rules: [{ conditions: [{ [t]: "aws.partition", [u]: r, assign: g }], rules: [{ conditions: [k, l], rules: [{ conditions: [{ [t]: c, [u]: [a, n] }, o], rules: [{ endpoint: { url: "https://catalog.marketplace-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", properties: m, headers: m }, type: e }], type: f }, { error: "FIPS and DualStack are enabled, but this partition does not support one or both", type: d }], type: f }, { conditions: p, rules: [{ conditions: [{ [t]: c, [u]: [n, a] }], rules: [{ endpoint: { url: "https://catalog.marketplace-fips.{Region}.{PartitionResult#dnsSuffix}", properties: m, headers: m }, type: e }], type: f }, { error: "FIPS is enabled but this partition does not support FIPS", type: d }], type: f }, { conditions: q, rules: [{ conditions: [o], rules: [{ endpoint: { url: "https://catalog.marketplace.{Region}.{PartitionResult#dualStackDnsSuffix}", properties: m, headers: m }, type: e }], type: f }, { error: "DualStack is enabled but this partition does not support DualStack", type: d }], type: f }, { endpoint: { url: "https://catalog.marketplace.{Region}.{PartitionResult#dnsSuffix}", properties: m, headers: m }, type: e }], type: f }], type: f }, { error: "Invalid Configuration: Missing Region", type: d }] }; -exports.ruleSet = _data; - - -/***/ }), - -/***/ 87560: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var index_exports = {}; -__export(index_exports, { - AccessDeniedException: () => AccessDeniedException, - AmiProductSortBy: () => AmiProductSortBy, - AmiProductVisibilityString: () => AmiProductVisibilityString, - BatchDescribeEntitiesCommand: () => BatchDescribeEntitiesCommand, - CancelChangeSetCommand: () => CancelChangeSetCommand, - ChangeStatus: () => ChangeStatus, - ContainerProductSortBy: () => ContainerProductSortBy, - ContainerProductVisibilityString: () => ContainerProductVisibilityString, - DataProductSortBy: () => DataProductSortBy, - DataProductVisibilityString: () => DataProductVisibilityString, - DeleteResourcePolicyCommand: () => DeleteResourcePolicyCommand, - DescribeChangeSetCommand: () => DescribeChangeSetCommand, - DescribeEntityCommand: () => DescribeEntityCommand, - EntityTypeFilters: () => EntityTypeFilters, - EntityTypeSort: () => EntityTypeSort, - FailureCode: () => FailureCode, - GetResourcePolicyCommand: () => GetResourcePolicyCommand, - Intent: () => Intent, - InternalServiceException: () => InternalServiceException, - ListChangeSetsCommand: () => ListChangeSetsCommand, - ListEntitiesCommand: () => ListEntitiesCommand, - ListTagsForResourceCommand: () => ListTagsForResourceCommand, - MarketplaceCatalog: () => MarketplaceCatalog, - MarketplaceCatalogClient: () => MarketplaceCatalogClient, - MarketplaceCatalogServiceException: () => MarketplaceCatalogServiceException, - OfferSortBy: () => OfferSortBy, - OfferStateString: () => OfferStateString, - OfferTargetingString: () => OfferTargetingString, - OwnershipType: () => OwnershipType, - PutResourcePolicyCommand: () => PutResourcePolicyCommand, - ResaleAuthorizationSortBy: () => ResaleAuthorizationSortBy, - ResaleAuthorizationStatusString: () => ResaleAuthorizationStatusString, - ResourceInUseException: () => ResourceInUseException, - ResourceNotFoundException: () => ResourceNotFoundException, - ResourceNotSupportedException: () => ResourceNotSupportedException, - SaaSProductSortBy: () => SaaSProductSortBy, - SaaSProductVisibilityString: () => SaaSProductVisibilityString, - ServiceQuotaExceededException: () => ServiceQuotaExceededException, - SortOrder: () => SortOrder, - StartChangeSetCommand: () => StartChangeSetCommand, - TagResourceCommand: () => TagResourceCommand, - ThrottlingException: () => ThrottlingException, - UntagResourceCommand: () => UntagResourceCommand, - ValidationException: () => ValidationException, - __Client: () => import_smithy_client.Client, - paginateListChangeSets: () => paginateListChangeSets, - paginateListEntities: () => paginateListEntities -}); -module.exports = __toCommonJS(index_exports); - -// src/MarketplaceCatalogClient.ts -var import_middleware_host_header = __nccwpck_require__(11046); -var import_middleware_logger = __nccwpck_require__(26622); -var import_middleware_recursion_detection = __nccwpck_require__(33544); -var import_middleware_user_agent = __nccwpck_require__(9711); -var import_config_resolver = __nccwpck_require__(47517); -var import_core = __nccwpck_require__(27588); -var import_middleware_content_length = __nccwpck_require__(34305); -var import_middleware_endpoint = __nccwpck_require__(13636); -var import_middleware_retry = __nccwpck_require__(74268); - -var import_httpAuthSchemeProvider = __nccwpck_require__(59221); - -// src/endpoint/EndpointParameters.ts -var resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => { - return Object.assign(options, { - useDualstackEndpoint: options.useDualstackEndpoint ?? false, - useFipsEndpoint: options.useFipsEndpoint ?? false, - defaultSigningName: "aws-marketplace" - }); -}, "resolveClientEndpointParameters"); -var commonParams = { - UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" }, - Endpoint: { type: "builtInParams", name: "endpoint" }, - Region: { type: "builtInParams", name: "region" }, - UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" } -}; - -// src/MarketplaceCatalogClient.ts -var import_runtimeConfig = __nccwpck_require__(44506); - -// src/runtimeExtensions.ts -var import_region_config_resolver = __nccwpck_require__(56088); -var import_protocol_http = __nccwpck_require__(31788); -var import_smithy_client = __nccwpck_require__(76583); - -// src/auth/httpAuthExtensionConfiguration.ts -var getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => { - const _httpAuthSchemes = runtimeConfig.httpAuthSchemes; - let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider; - let _credentials = runtimeConfig.credentials; - return { - setHttpAuthScheme(httpAuthScheme) { - const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId); - if (index === -1) { - _httpAuthSchemes.push(httpAuthScheme); - } else { - _httpAuthSchemes.splice(index, 1, httpAuthScheme); } - }, - httpAuthSchemes() { - return _httpAuthSchemes; - }, - setHttpAuthSchemeProvider(httpAuthSchemeProvider) { - _httpAuthSchemeProvider = httpAuthSchemeProvider; - }, - httpAuthSchemeProvider() { - return _httpAuthSchemeProvider; - }, - setCredentials(credentials) { - _credentials = credentials; - }, - credentials() { - return _credentials; - } - }; -}, "getHttpAuthExtensionConfiguration"); -var resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => { - return { - httpAuthSchemes: config.httpAuthSchemes(), - httpAuthSchemeProvider: config.httpAuthSchemeProvider(), - credentials: config.credentials() - }; -}, "resolveHttpAuthRuntimeConfig"); - -// src/runtimeExtensions.ts -var resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => { - const extensionConfiguration = Object.assign( - (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig), - (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig), - (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig), - getHttpAuthExtensionConfiguration(runtimeConfig) - ); - extensions.forEach((extension) => extension.configure(extensionConfiguration)); - return Object.assign( - runtimeConfig, - (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration), - (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration), - (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration), - resolveHttpAuthRuntimeConfig(extensionConfiguration) - ); -}, "resolveRuntimeExtensions"); - -// src/MarketplaceCatalogClient.ts -var MarketplaceCatalogClient = class extends import_smithy_client.Client { - static { - __name(this, "MarketplaceCatalogClient"); - } - /** - * The resolved configuration of MarketplaceCatalogClient class. This is resolved and normalized from the {@link MarketplaceCatalogClientConfig | constructor configuration interface}. - */ - config; - constructor(...[configuration]) { - const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {}); - super(_config_0); - this.initConfig = _config_0; - const _config_1 = resolveClientEndpointParameters(_config_0); - const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1); - const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2); - const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3); - const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4); - const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5); - const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6); - const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); - this.config = _config_8; - this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config)); - this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config)); - this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config)); - this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config)); - this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config)); - this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config)); - this.middlewareStack.use( - (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, { - httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultMarketplaceCatalogHttpAuthSchemeParametersProvider, - identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({ - "aws.auth#sigv4": config.credentials - }), "identityProviderConfigProvider") - }) - ); - this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config)); - } - /** - * Destroy underlying resources, like sockets. It's usually not necessary to do this. - * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed. - * Otherwise, sockets might stay open for quite a long time before the server terminates them. - */ - destroy() { - super.destroy(); - } -}; - -// src/MarketplaceCatalog.ts - - -// src/commands/BatchDescribeEntitiesCommand.ts - -var import_middleware_serde = __nccwpck_require__(88037); - - -// src/protocols/Aws_restJson1.ts -var import_core2 = __nccwpck_require__(69736); - - -var import_uuid = __nccwpck_require__(21286); - -// src/models/MarketplaceCatalogServiceException.ts - -var MarketplaceCatalogServiceException = class _MarketplaceCatalogServiceException extends import_smithy_client.ServiceException { - static { - __name(this, "MarketplaceCatalogServiceException"); - } - /** - * @internal - */ - constructor(options) { - super(options); - Object.setPrototypeOf(this, _MarketplaceCatalogServiceException.prototype); - } -}; - -// src/models/models_0.ts -var AccessDeniedException = class _AccessDeniedException extends MarketplaceCatalogServiceException { - static { - __name(this, "AccessDeniedException"); - } - name = "AccessDeniedException"; - $fault = "client"; - Message; - /** - * @internal - */ - constructor(opts) { - super({ - name: "AccessDeniedException", - $fault: "client", - ...opts - }); - Object.setPrototypeOf(this, _AccessDeniedException.prototype); - this.Message = opts.Message; - } -}; -var AmiProductVisibilityString = { - Draft: "Draft", - Limited: "Limited", - Public: "Public", - Restricted: "Restricted" -}; -var AmiProductSortBy = { - EntityId: "EntityId", - LastModifiedDate: "LastModifiedDate", - ProductTitle: "ProductTitle", - Visibility: "Visibility" -}; -var SortOrder = { - ASCENDING: "ASCENDING", - DESCENDING: "DESCENDING" -}; -var InternalServiceException = class _InternalServiceException extends MarketplaceCatalogServiceException { - static { - __name(this, "InternalServiceException"); - } - name = "InternalServiceException"; - $fault = "server"; - Message; - /** - * @internal - */ - constructor(opts) { - super({ - name: "InternalServiceException", - $fault: "server", - ...opts - }); - Object.setPrototypeOf(this, _InternalServiceException.prototype); - this.Message = opts.Message; - } -}; -var ThrottlingException = class _ThrottlingException extends MarketplaceCatalogServiceException { - static { - __name(this, "ThrottlingException"); - } - name = "ThrottlingException"; - $fault = "client"; - Message; - /** - * @internal - */ - constructor(opts) { - super({ - name: "ThrottlingException", - $fault: "client", - ...opts - }); - Object.setPrototypeOf(this, _ThrottlingException.prototype); - this.Message = opts.Message; - } -}; -var ValidationException = class _ValidationException extends MarketplaceCatalogServiceException { - static { - __name(this, "ValidationException"); - } - name = "ValidationException"; - $fault = "client"; - Message; - /** - * @internal - */ - constructor(opts) { - super({ - name: "ValidationException", - $fault: "client", - ...opts - }); - Object.setPrototypeOf(this, _ValidationException.prototype); - this.Message = opts.Message; - } -}; -var ResourceInUseException = class _ResourceInUseException extends MarketplaceCatalogServiceException { - static { - __name(this, "ResourceInUseException"); - } - name = "ResourceInUseException"; - $fault = "client"; - Message; - /** - * @internal - */ - constructor(opts) { - super({ - name: "ResourceInUseException", - $fault: "client", - ...opts - }); - Object.setPrototypeOf(this, _ResourceInUseException.prototype); - this.Message = opts.Message; - } -}; -var ResourceNotFoundException = class _ResourceNotFoundException extends MarketplaceCatalogServiceException { - static { - __name(this, "ResourceNotFoundException"); - } - name = "ResourceNotFoundException"; - $fault = "client"; - Message; - /** - * @internal - */ - constructor(opts) { - super({ - name: "ResourceNotFoundException", - $fault: "client", - ...opts - }); - Object.setPrototypeOf(this, _ResourceNotFoundException.prototype); - this.Message = opts.Message; - } -}; -var FailureCode = { - ClientError: "CLIENT_ERROR", - ServerFault: "SERVER_FAULT" -}; -var Intent = { - APPLY: "APPLY", - VALIDATE: "VALIDATE" -}; -var ChangeStatus = { - APPLYING: "APPLYING", - CANCELLED: "CANCELLED", - FAILED: "FAILED", - PREPARING: "PREPARING", - SUCCEEDED: "SUCCEEDED" -}; -var ResourceNotSupportedException = class _ResourceNotSupportedException extends MarketplaceCatalogServiceException { - static { - __name(this, "ResourceNotSupportedException"); - } - name = "ResourceNotSupportedException"; - $fault = "client"; - Message; - /** - * @internal - */ - constructor(opts) { - super({ - name: "ResourceNotSupportedException", - $fault: "client", - ...opts - }); - Object.setPrototypeOf(this, _ResourceNotSupportedException.prototype); - this.Message = opts.Message; - } -}; -var ContainerProductVisibilityString = { - Draft: "Draft", - Limited: "Limited", - Public: "Public", - Restricted: "Restricted" -}; -var DataProductVisibilityString = { - Draft: "Draft", - Limited: "Limited", - Public: "Public", - Restricted: "Restricted", - Unavailable: "Unavailable" -}; -var OfferStateString = { - Draft: "Draft", - Released: "Released" -}; -var OfferTargetingString = { - BuyerAccounts: "BuyerAccounts", - CountryCodes: "CountryCodes", - None: "None", - ParticipatingPrograms: "ParticipatingPrograms" -}; -var ResaleAuthorizationStatusString = { - Active: "Active", - Draft: "Draft", - Restricted: "Restricted" -}; -var SaaSProductVisibilityString = { - Draft: "Draft", - Limited: "Limited", - Public: "Public", - Restricted: "Restricted" -}; -var EntityTypeFilters; -((EntityTypeFilters3) => { - EntityTypeFilters3.visit = /* @__PURE__ */ __name((value, visitor) => { - if (value.DataProductFilters !== void 0) return visitor.DataProductFilters(value.DataProductFilters); - if (value.SaaSProductFilters !== void 0) return visitor.SaaSProductFilters(value.SaaSProductFilters); - if (value.AmiProductFilters !== void 0) return visitor.AmiProductFilters(value.AmiProductFilters); - if (value.OfferFilters !== void 0) return visitor.OfferFilters(value.OfferFilters); - if (value.ContainerProductFilters !== void 0) - return visitor.ContainerProductFilters(value.ContainerProductFilters); - if (value.ResaleAuthorizationFilters !== void 0) - return visitor.ResaleAuthorizationFilters(value.ResaleAuthorizationFilters); - return visitor._(value.$unknown[0], value.$unknown[1]); - }, "visit"); -})(EntityTypeFilters || (EntityTypeFilters = {})); -var ContainerProductSortBy = { - EntityId: "EntityId", - LastModifiedDate: "LastModifiedDate", - ProductTitle: "ProductTitle", - Visibility: "Visibility" -}; -var DataProductSortBy = { - EntityId: "EntityId", - LastModifiedDate: "LastModifiedDate", - ProductTitle: "ProductTitle", - Visibility: "Visibility" -}; -var OfferSortBy = { - AvailabilityEndDate: "AvailabilityEndDate", - BuyerAccounts: "BuyerAccounts", - EntityId: "EntityId", - LastModifiedDate: "LastModifiedDate", - Name: "Name", - ProductId: "ProductId", - ReleaseDate: "ReleaseDate", - ResaleAuthorizationId: "ResaleAuthorizationId", - State: "State", - Targeting: "Targeting" -}; -var ResaleAuthorizationSortBy = { - AvailabilityEndDate: "AvailabilityEndDate", - CreatedDate: "CreatedDate", - EntityId: "EntityId", - LastModifiedDate: "LastModifiedDate", - ManufacturerAccountId: "ManufacturerAccountId", - ManufacturerLegalName: "ManufacturerLegalName", - Name: "Name", - OfferExtendedStatus: "OfferExtendedStatus", - ProductId: "ProductId", - ProductName: "ProductName", - ResellerAccountID: "ResellerAccountID", - ResellerLegalName: "ResellerLegalName", - Status: "Status" -}; -var SaaSProductSortBy = { - EntityId: "EntityId", - LastModifiedDate: "LastModifiedDate", - ProductTitle: "ProductTitle", - Visibility: "Visibility" -}; -var EntityTypeSort; -((EntityTypeSort3) => { - EntityTypeSort3.visit = /* @__PURE__ */ __name((value, visitor) => { - if (value.DataProductSort !== void 0) return visitor.DataProductSort(value.DataProductSort); - if (value.SaaSProductSort !== void 0) return visitor.SaaSProductSort(value.SaaSProductSort); - if (value.AmiProductSort !== void 0) return visitor.AmiProductSort(value.AmiProductSort); - if (value.OfferSort !== void 0) return visitor.OfferSort(value.OfferSort); - if (value.ContainerProductSort !== void 0) return visitor.ContainerProductSort(value.ContainerProductSort); - if (value.ResaleAuthorizationSort !== void 0) - return visitor.ResaleAuthorizationSort(value.ResaleAuthorizationSort); - return visitor._(value.$unknown[0], value.$unknown[1]); - }, "visit"); -})(EntityTypeSort || (EntityTypeSort = {})); -var OwnershipType = { - SELF: "SELF", - SHARED: "SHARED" -}; -var ServiceQuotaExceededException = class _ServiceQuotaExceededException extends MarketplaceCatalogServiceException { - static { - __name(this, "ServiceQuotaExceededException"); - } - name = "ServiceQuotaExceededException"; - $fault = "client"; - Message; - /** - * @internal - */ - constructor(opts) { - super({ - name: "ServiceQuotaExceededException", - $fault: "client", - ...opts - }); - Object.setPrototypeOf(this, _ServiceQuotaExceededException.prototype); - this.Message = opts.Message; - } -}; - -// src/protocols/Aws_restJson1.ts -var se_BatchDescribeEntitiesCommand = /* @__PURE__ */ __name(async (input, context) => { - const b = (0, import_core.requestBuilder)(input, context); - const headers = { - "content-type": "application/json" - }; - b.bp("/BatchDescribeEntities"); - let body; - body = JSON.stringify( - (0, import_smithy_client.take)(input, { - EntityRequestList: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), "EntityRequestList") - }) - ); - b.m("POST").h(headers).b(body); - return b.build(); -}, "se_BatchDescribeEntitiesCommand"); -var se_CancelChangeSetCommand = /* @__PURE__ */ __name(async (input, context) => { - const b = (0, import_core.requestBuilder)(input, context); - const headers = {}; - b.bp("/CancelChangeSet"); - const query = (0, import_smithy_client.map)({ - [_c]: [, (0, import_smithy_client.expectNonNull)(input[_C], `Catalog`)], - [_cSI]: [, (0, import_smithy_client.expectNonNull)(input[_CSI], `ChangeSetId`)] - }); - let body; - b.m("PATCH").h(headers).q(query).b(body); - return b.build(); -}, "se_CancelChangeSetCommand"); -var se_DeleteResourcePolicyCommand = /* @__PURE__ */ __name(async (input, context) => { - const b = (0, import_core.requestBuilder)(input, context); - const headers = {}; - b.bp("/DeleteResourcePolicy"); - const query = (0, import_smithy_client.map)({ - [_rA]: [, (0, import_smithy_client.expectNonNull)(input[_RA], `ResourceArn`)] - }); - let body; - b.m("DELETE").h(headers).q(query).b(body); - return b.build(); -}, "se_DeleteResourcePolicyCommand"); -var se_DescribeChangeSetCommand = /* @__PURE__ */ __name(async (input, context) => { - const b = (0, import_core.requestBuilder)(input, context); - const headers = {}; - b.bp("/DescribeChangeSet"); - const query = (0, import_smithy_client.map)({ - [_c]: [, (0, import_smithy_client.expectNonNull)(input[_C], `Catalog`)], - [_cSI]: [, (0, import_smithy_client.expectNonNull)(input[_CSI], `ChangeSetId`)] - }); - let body; - b.m("GET").h(headers).q(query).b(body); - return b.build(); -}, "se_DescribeChangeSetCommand"); -var se_DescribeEntityCommand = /* @__PURE__ */ __name(async (input, context) => { - const b = (0, import_core.requestBuilder)(input, context); - const headers = {}; - b.bp("/DescribeEntity"); - const query = (0, import_smithy_client.map)({ - [_c]: [, (0, import_smithy_client.expectNonNull)(input[_C], `Catalog`)], - [_eI]: [, (0, import_smithy_client.expectNonNull)(input[_EI], `EntityId`)] - }); - let body; - b.m("GET").h(headers).q(query).b(body); - return b.build(); -}, "se_DescribeEntityCommand"); -var se_GetResourcePolicyCommand = /* @__PURE__ */ __name(async (input, context) => { - const b = (0, import_core.requestBuilder)(input, context); - const headers = {}; - b.bp("/GetResourcePolicy"); - const query = (0, import_smithy_client.map)({ - [_rA]: [, (0, import_smithy_client.expectNonNull)(input[_RA], `ResourceArn`)] - }); - let body; - b.m("GET").h(headers).q(query).b(body); - return b.build(); -}, "se_GetResourcePolicyCommand"); -var se_ListChangeSetsCommand = /* @__PURE__ */ __name(async (input, context) => { - const b = (0, import_core.requestBuilder)(input, context); - const headers = { - "content-type": "application/json" - }; - b.bp("/ListChangeSets"); - let body; - body = JSON.stringify( - (0, import_smithy_client.take)(input, { - Catalog: [], - FilterList: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), "FilterList"), - MaxResults: [], - NextToken: [], - Sort: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), "Sort") - }) - ); - b.m("POST").h(headers).b(body); - return b.build(); -}, "se_ListChangeSetsCommand"); -var se_ListEntitiesCommand = /* @__PURE__ */ __name(async (input, context) => { - const b = (0, import_core.requestBuilder)(input, context); - const headers = { - "content-type": "application/json" - }; - b.bp("/ListEntities"); - let body; - body = JSON.stringify( - (0, import_smithy_client.take)(input, { - Catalog: [], - EntityType: [], - EntityTypeFilters: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), "EntityTypeFilters"), - EntityTypeSort: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), "EntityTypeSort"), - FilterList: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), "FilterList"), - MaxResults: [], - NextToken: [], - OwnershipType: [], - Sort: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), "Sort") - }) - ); - b.m("POST").h(headers).b(body); - return b.build(); -}, "se_ListEntitiesCommand"); -var se_ListTagsForResourceCommand = /* @__PURE__ */ __name(async (input, context) => { - const b = (0, import_core.requestBuilder)(input, context); - const headers = { - "content-type": "application/json" - }; - b.bp("/ListTagsForResource"); - let body; - body = JSON.stringify( - (0, import_smithy_client.take)(input, { - ResourceArn: [] - }) - ); - b.m("POST").h(headers).b(body); - return b.build(); -}, "se_ListTagsForResourceCommand"); -var se_PutResourcePolicyCommand = /* @__PURE__ */ __name(async (input, context) => { - const b = (0, import_core.requestBuilder)(input, context); - const headers = { - "content-type": "application/json" - }; - b.bp("/PutResourcePolicy"); - let body; - body = JSON.stringify( - (0, import_smithy_client.take)(input, { - Policy: [], - ResourceArn: [] - }) - ); - b.m("POST").h(headers).b(body); - return b.build(); -}, "se_PutResourcePolicyCommand"); -var se_StartChangeSetCommand = /* @__PURE__ */ __name(async (input, context) => { - const b = (0, import_core.requestBuilder)(input, context); - const headers = { - "content-type": "application/json" - }; - b.bp("/StartChangeSet"); - let body; - body = JSON.stringify( - (0, import_smithy_client.take)(input, { - Catalog: [], - ChangeSet: /* @__PURE__ */ __name((_) => se_RequestedChangeList(_, context), "ChangeSet"), - ChangeSetName: [], - ChangeSetTags: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), "ChangeSetTags"), - ClientRequestToken: [true, (_) => _ ?? (0, import_uuid.v4)()], - Intent: [] - }) - ); - b.m("POST").h(headers).b(body); - return b.build(); -}, "se_StartChangeSetCommand"); -var se_TagResourceCommand = /* @__PURE__ */ __name(async (input, context) => { - const b = (0, import_core.requestBuilder)(input, context); - const headers = { - "content-type": "application/json" - }; - b.bp("/TagResource"); - let body; - body = JSON.stringify( - (0, import_smithy_client.take)(input, { - ResourceArn: [], - Tags: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), "Tags") - }) - ); - b.m("POST").h(headers).b(body); - return b.build(); -}, "se_TagResourceCommand"); -var se_UntagResourceCommand = /* @__PURE__ */ __name(async (input, context) => { - const b = (0, import_core.requestBuilder)(input, context); - const headers = { - "content-type": "application/json" - }; - b.bp("/UntagResource"); - let body; - body = JSON.stringify( - (0, import_smithy_client.take)(input, { - ResourceArn: [], - TagKeys: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), "TagKeys") - }) - ); - b.m("POST").h(headers).b(body); - return b.build(); -}, "se_UntagResourceCommand"); -var de_BatchDescribeEntitiesCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_CommandError(output, context); - } - const contents = (0, import_smithy_client.map)({ - $metadata: deserializeMetadata(output) - }); - const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), "body"); - const doc = (0, import_smithy_client.take)(data, { - EntityDetails: /* @__PURE__ */ __name((_) => de_EntityDetails(_, context), "EntityDetails"), - Errors: import_smithy_client._json - }); - Object.assign(contents, doc); - return contents; -}, "de_BatchDescribeEntitiesCommand"); -var de_CancelChangeSetCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_CommandError(output, context); - } - const contents = (0, import_smithy_client.map)({ - $metadata: deserializeMetadata(output) - }); - const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), "body"); - const doc = (0, import_smithy_client.take)(data, { - ChangeSetArn: import_smithy_client.expectString, - ChangeSetId: import_smithy_client.expectString - }); - Object.assign(contents, doc); - return contents; -}, "de_CancelChangeSetCommand"); -var de_DeleteResourcePolicyCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_CommandError(output, context); - } - const contents = (0, import_smithy_client.map)({ - $metadata: deserializeMetadata(output) - }); - await (0, import_smithy_client.collectBody)(output.body, context); - return contents; -}, "de_DeleteResourcePolicyCommand"); -var de_DescribeChangeSetCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_CommandError(output, context); - } - const contents = (0, import_smithy_client.map)({ - $metadata: deserializeMetadata(output) - }); - const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), "body"); - const doc = (0, import_smithy_client.take)(data, { - ChangeSet: /* @__PURE__ */ __name((_) => de_ChangeSetDescription(_, context), "ChangeSet"), - ChangeSetArn: import_smithy_client.expectString, - ChangeSetId: import_smithy_client.expectString, - ChangeSetName: import_smithy_client.expectString, - EndTime: import_smithy_client.expectString, - FailureCode: import_smithy_client.expectString, - FailureDescription: import_smithy_client.expectString, - Intent: import_smithy_client.expectString, - StartTime: import_smithy_client.expectString, - Status: import_smithy_client.expectString - }); - Object.assign(contents, doc); - return contents; -}, "de_DescribeChangeSetCommand"); -var de_DescribeEntityCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_CommandError(output, context); - } - const contents = (0, import_smithy_client.map)({ - $metadata: deserializeMetadata(output) - }); - const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), "body"); - const doc = (0, import_smithy_client.take)(data, { - Details: import_smithy_client.expectString, - DetailsDocument: /* @__PURE__ */ __name((_) => de_JsonDocumentType(_, context), "DetailsDocument"), - EntityArn: import_smithy_client.expectString, - EntityIdentifier: import_smithy_client.expectString, - EntityType: import_smithy_client.expectString, - LastModifiedDate: import_smithy_client.expectString - }); - Object.assign(contents, doc); - return contents; -}, "de_DescribeEntityCommand"); -var de_GetResourcePolicyCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_CommandError(output, context); - } - const contents = (0, import_smithy_client.map)({ - $metadata: deserializeMetadata(output) - }); - const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), "body"); - const doc = (0, import_smithy_client.take)(data, { - Policy: import_smithy_client.expectString - }); - Object.assign(contents, doc); - return contents; -}, "de_GetResourcePolicyCommand"); -var de_ListChangeSetsCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_CommandError(output, context); - } - const contents = (0, import_smithy_client.map)({ - $metadata: deserializeMetadata(output) - }); - const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), "body"); - const doc = (0, import_smithy_client.take)(data, { - ChangeSetSummaryList: import_smithy_client._json, - NextToken: import_smithy_client.expectString - }); - Object.assign(contents, doc); - return contents; -}, "de_ListChangeSetsCommand"); -var de_ListEntitiesCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_CommandError(output, context); - } - const contents = (0, import_smithy_client.map)({ - $metadata: deserializeMetadata(output) - }); - const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), "body"); - const doc = (0, import_smithy_client.take)(data, { - EntitySummaryList: import_smithy_client._json, - NextToken: import_smithy_client.expectString - }); - Object.assign(contents, doc); - return contents; -}, "de_ListEntitiesCommand"); -var de_ListTagsForResourceCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_CommandError(output, context); - } - const contents = (0, import_smithy_client.map)({ - $metadata: deserializeMetadata(output) - }); - const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), "body"); - const doc = (0, import_smithy_client.take)(data, { - ResourceArn: import_smithy_client.expectString, - Tags: import_smithy_client._json - }); - Object.assign(contents, doc); - return contents; -}, "de_ListTagsForResourceCommand"); -var de_PutResourcePolicyCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_CommandError(output, context); - } - const contents = (0, import_smithy_client.map)({ - $metadata: deserializeMetadata(output) - }); - await (0, import_smithy_client.collectBody)(output.body, context); - return contents; -}, "de_PutResourcePolicyCommand"); -var de_StartChangeSetCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_CommandError(output, context); - } - const contents = (0, import_smithy_client.map)({ - $metadata: deserializeMetadata(output) - }); - const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), "body"); - const doc = (0, import_smithy_client.take)(data, { - ChangeSetArn: import_smithy_client.expectString, - ChangeSetId: import_smithy_client.expectString - }); - Object.assign(contents, doc); - return contents; -}, "de_StartChangeSetCommand"); -var de_TagResourceCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_CommandError(output, context); - } - const contents = (0, import_smithy_client.map)({ - $metadata: deserializeMetadata(output) - }); - await (0, import_smithy_client.collectBody)(output.body, context); - return contents; -}, "de_TagResourceCommand"); -var de_UntagResourceCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_CommandError(output, context); - } - const contents = (0, import_smithy_client.map)({ - $metadata: deserializeMetadata(output) - }); - await (0, import_smithy_client.collectBody)(output.body, context); - return contents; -}, "de_UntagResourceCommand"); -var de_CommandError = /* @__PURE__ */ __name(async (output, context) => { - const parsedOutput = { - ...output, - body: await (0, import_core2.parseJsonErrorBody)(output.body, context) - }; - const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body); - switch (errorCode) { - case "AccessDeniedException": - case "com.amazonaws.marketplacecatalog#AccessDeniedException": - throw await de_AccessDeniedExceptionRes(parsedOutput, context); - case "InternalServiceException": - case "com.amazonaws.marketplacecatalog#InternalServiceException": - throw await de_InternalServiceExceptionRes(parsedOutput, context); - case "ThrottlingException": - case "com.amazonaws.marketplacecatalog#ThrottlingException": - throw await de_ThrottlingExceptionRes(parsedOutput, context); - case "ValidationException": - case "com.amazonaws.marketplacecatalog#ValidationException": - throw await de_ValidationExceptionRes(parsedOutput, context); - case "ResourceInUseException": - case "com.amazonaws.marketplacecatalog#ResourceInUseException": - throw await de_ResourceInUseExceptionRes(parsedOutput, context); - case "ResourceNotFoundException": - case "com.amazonaws.marketplacecatalog#ResourceNotFoundException": - throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); - case "ResourceNotSupportedException": - case "com.amazonaws.marketplacecatalog#ResourceNotSupportedException": - throw await de_ResourceNotSupportedExceptionRes(parsedOutput, context); - case "ServiceQuotaExceededException": - case "com.amazonaws.marketplacecatalog#ServiceQuotaExceededException": - throw await de_ServiceQuotaExceededExceptionRes(parsedOutput, context); - default: - const parsedBody = parsedOutput.body; - return throwDefaultError({ - output, - parsedBody, - errorCode - }); - } -}, "de_CommandError"); -var throwDefaultError = (0, import_smithy_client.withBaseException)(MarketplaceCatalogServiceException); -var de_AccessDeniedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const contents = (0, import_smithy_client.map)({}); - const data = parsedOutput.body; - const doc = (0, import_smithy_client.take)(data, { - Message: import_smithy_client.expectString - }); - Object.assign(contents, doc); - const exception = new AccessDeniedException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents - }); - return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body); -}, "de_AccessDeniedExceptionRes"); -var de_InternalServiceExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const contents = (0, import_smithy_client.map)({}); - const data = parsedOutput.body; - const doc = (0, import_smithy_client.take)(data, { - Message: import_smithy_client.expectString - }); - Object.assign(contents, doc); - const exception = new InternalServiceException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents - }); - return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body); -}, "de_InternalServiceExceptionRes"); -var de_ResourceInUseExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const contents = (0, import_smithy_client.map)({}); - const data = parsedOutput.body; - const doc = (0, import_smithy_client.take)(data, { - Message: import_smithy_client.expectString - }); - Object.assign(contents, doc); - const exception = new ResourceInUseException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents - }); - return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body); -}, "de_ResourceInUseExceptionRes"); -var de_ResourceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const contents = (0, import_smithy_client.map)({}); - const data = parsedOutput.body; - const doc = (0, import_smithy_client.take)(data, { - Message: import_smithy_client.expectString - }); - Object.assign(contents, doc); - const exception = new ResourceNotFoundException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents - }); - return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body); -}, "de_ResourceNotFoundExceptionRes"); -var de_ResourceNotSupportedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const contents = (0, import_smithy_client.map)({}); - const data = parsedOutput.body; - const doc = (0, import_smithy_client.take)(data, { - Message: import_smithy_client.expectString - }); - Object.assign(contents, doc); - const exception = new ResourceNotSupportedException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents - }); - return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body); -}, "de_ResourceNotSupportedExceptionRes"); -var de_ServiceQuotaExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const contents = (0, import_smithy_client.map)({}); - const data = parsedOutput.body; - const doc = (0, import_smithy_client.take)(data, { - Message: import_smithy_client.expectString - }); - Object.assign(contents, doc); - const exception = new ServiceQuotaExceededException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents - }); - return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body); -}, "de_ServiceQuotaExceededExceptionRes"); -var de_ThrottlingExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const contents = (0, import_smithy_client.map)({}); - const data = parsedOutput.body; - const doc = (0, import_smithy_client.take)(data, { - Message: import_smithy_client.expectString - }); - Object.assign(contents, doc); - const exception = new ThrottlingException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents - }); - return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body); -}, "de_ThrottlingExceptionRes"); -var de_ValidationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const contents = (0, import_smithy_client.map)({}); - const data = parsedOutput.body; - const doc = (0, import_smithy_client.take)(data, { - Message: import_smithy_client.expectString - }); - Object.assign(contents, doc); - const exception = new ValidationException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents - }); - return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body); -}, "de_ValidationExceptionRes"); -var se_Change = /* @__PURE__ */ __name((input, context) => { - return (0, import_smithy_client.take)(input, { - ChangeName: [], - ChangeType: [], - Details: [], - DetailsDocument: /* @__PURE__ */ __name((_) => se_JsonDocumentType(_, context), "DetailsDocument"), - Entity: import_smithy_client._json, - EntityTags: import_smithy_client._json - }); -}, "se_Change"); -var se_JsonDocumentType = /* @__PURE__ */ __name((input, context) => { - return input; -}, "se_JsonDocumentType"); -var se_RequestedChangeList = /* @__PURE__ */ __name((input, context) => { - return input.filter((e) => e != null).map((entry) => { - return se_Change(entry, context); - }); -}, "se_RequestedChangeList"); -var de_ChangeSetDescription = /* @__PURE__ */ __name((output, context) => { - const retVal = (output || []).filter((e) => e != null).map((entry) => { - return de_ChangeSummary(entry, context); - }); - return retVal; -}, "de_ChangeSetDescription"); -var de_ChangeSummary = /* @__PURE__ */ __name((output, context) => { - return (0, import_smithy_client.take)(output, { - ChangeName: import_smithy_client.expectString, - ChangeType: import_smithy_client.expectString, - Details: import_smithy_client.expectString, - DetailsDocument: /* @__PURE__ */ __name((_) => de_JsonDocumentType(_, context), "DetailsDocument"), - Entity: import_smithy_client._json, - ErrorDetailList: import_smithy_client._json - }); -}, "de_ChangeSummary"); -var de_EntityDetail = /* @__PURE__ */ __name((output, context) => { - return (0, import_smithy_client.take)(output, { - DetailsDocument: /* @__PURE__ */ __name((_) => de_JsonDocumentType(_, context), "DetailsDocument"), - EntityArn: import_smithy_client.expectString, - EntityIdentifier: import_smithy_client.expectString, - EntityType: import_smithy_client.expectString, - LastModifiedDate: import_smithy_client.expectString - }); -}, "de_EntityDetail"); -var de_EntityDetails = /* @__PURE__ */ __name((output, context) => { - return Object.entries(output).reduce((acc, [key, value]) => { - if (value === null) { - return acc; - } - acc[key] = de_EntityDetail(value, context); - return acc; - }, {}); -}, "de_EntityDetails"); -var de_JsonDocumentType = /* @__PURE__ */ __name((output, context) => { - return output; -}, "de_JsonDocumentType"); -var deserializeMetadata = /* @__PURE__ */ __name((output) => ({ - httpStatusCode: output.statusCode, - requestId: output.headers["x-amzn-requestid"] ?? output.headers["x-amzn-request-id"] ?? output.headers["x-amz-request-id"], - extendedRequestId: output.headers["x-amz-id-2"], - cfId: output.headers["x-amz-cf-id"] -}), "deserializeMetadata"); -var _C = "Catalog"; -var _CSI = "ChangeSetId"; -var _EI = "EntityId"; -var _RA = "ResourceArn"; -var _c = "catalog"; -var _cSI = "changeSetId"; -var _eI = "entityId"; -var _rA = "resourceArn"; - -// src/commands/BatchDescribeEntitiesCommand.ts -var BatchDescribeEntitiesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("AWSMPSeymour", "BatchDescribeEntities", {}).n("MarketplaceCatalogClient", "BatchDescribeEntitiesCommand").f(void 0, void 0).ser(se_BatchDescribeEntitiesCommand).de(de_BatchDescribeEntitiesCommand).build() { - static { - __name(this, "BatchDescribeEntitiesCommand"); - } -}; - -// src/commands/CancelChangeSetCommand.ts - + function createSmithyApiNoAuthHttpAuthOption(authParameters) { + return { + schemeId: 'smithy.api#noAuth' + } + } + const defaultSSOHttpAuthSchemeProvider = authParameters => { + const options = [] + switch (authParameters.operation) { + case 'GetRoleCredentials': { + options.push(createSmithyApiNoAuthHttpAuthOption(authParameters)) + break + } + case 'ListAccountRoles': { + options.push(createSmithyApiNoAuthHttpAuthOption(authParameters)) + break + } + case 'ListAccounts': { + options.push(createSmithyApiNoAuthHttpAuthOption(authParameters)) + break + } + case 'Logout': { + options.push(createSmithyApiNoAuthHttpAuthOption(authParameters)) + break + } + default: { + options.push(createAwsAuthSigv4HttpAuthOption(authParameters)) + } + } + return options + } + exports.defaultSSOHttpAuthSchemeProvider = + defaultSSOHttpAuthSchemeProvider + const resolveHttpAuthSchemeConfig = config => { + const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config) + return { + ...config_0 + } + } + exports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig + /***/ + }, -var CancelChangeSetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("AWSMPSeymour", "CancelChangeSet", {}).n("MarketplaceCatalogClient", "CancelChangeSetCommand").f(void 0, void 0).ser(se_CancelChangeSetCommand).de(de_CancelChangeSetCommand).build() { - static { - __name(this, "CancelChangeSetCommand"); - } -}; + /***/ 30898: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.defaultEndpointResolver = void 0 + const util_endpoints_1 = __nccwpck_require__(13350) + const util_endpoints_2 = __nccwpck_require__(45473) + const ruleset_1 = __nccwpck_require__(13341) + const defaultEndpointResolver = (endpointParams, context = {}) => { + return (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, { + endpointParams: endpointParams, + logger: context.logger + }) + } + exports.defaultEndpointResolver = defaultEndpointResolver + util_endpoints_2.customEndpointFunctions.aws = + util_endpoints_1.awsEndpointFunctions -// src/commands/DeleteResourcePolicyCommand.ts + /***/ + }, + /***/ 13341: /***/ (__unused_webpack_module, exports) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.ruleSet = void 0 + const u = 'required', + v = 'fn', + w = 'argv', + x = 'ref' + const a = true, + b = 'isSet', + c = 'booleanEquals', + d = 'error', + e = 'endpoint', + f = 'tree', + g = 'PartitionResult', + h = 'getAttr', + i = { [u]: false, type: 'String' }, + j = { [u]: true, default: false, type: 'Boolean' }, + k = { [x]: 'Endpoint' }, + l = { [v]: c, [w]: [{ [x]: 'UseFIPS' }, true] }, + m = { [v]: c, [w]: [{ [x]: 'UseDualStack' }, true] }, + n = {}, + o = { [v]: h, [w]: [{ [x]: g }, 'supportsFIPS'] }, + p = { [x]: g }, + q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, 'supportsDualStack'] }] }, + r = [l], + s = [m], + t = [{ [x]: 'Region' }] + const _data = { + version: '1.0', + parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, + rules: [ + { + conditions: [{ [v]: b, [w]: [k] }], + rules: [ + { + conditions: r, + error: + 'Invalid Configuration: FIPS and custom endpoint are not supported', + type: d + }, + { + conditions: s, + error: + 'Invalid Configuration: Dualstack and custom endpoint are not supported', + type: d + }, + { endpoint: { url: k, properties: n, headers: n }, type: e } + ], + type: f + }, + { + conditions: [{ [v]: b, [w]: t }], + rules: [ + { + conditions: [{ [v]: 'aws.partition', [w]: t, assign: g }], + rules: [ + { + conditions: [l, m], + rules: [ + { + conditions: [{ [v]: c, [w]: [a, o] }, q], + rules: [ + { + endpoint: { + url: 'https://portal.sso-fips.{Region}.{PartitionResult#dualStackDnsSuffix}', + properties: n, + headers: n + }, + type: e + } + ], + type: f + }, + { + error: + 'FIPS and DualStack are enabled, but this partition does not support one or both', + type: d + } + ], + type: f + }, + { + conditions: r, + rules: [ + { + conditions: [{ [v]: c, [w]: [o, a] }], + rules: [ + { + conditions: [ + { + [v]: 'stringEquals', + [w]: [ + { [v]: h, [w]: [p, 'name'] }, + 'aws-us-gov' + ] + } + ], + endpoint: { + url: 'https://portal.sso.{Region}.amazonaws.com', + properties: n, + headers: n + }, + type: e + }, + { + endpoint: { + url: 'https://portal.sso-fips.{Region}.{PartitionResult#dnsSuffix}', + properties: n, + headers: n + }, + type: e + } + ], + type: f + }, + { + error: + 'FIPS is enabled but this partition does not support FIPS', + type: d + } + ], + type: f + }, + { + conditions: s, + rules: [ + { + conditions: [q], + rules: [ + { + endpoint: { + url: 'https://portal.sso.{Region}.{PartitionResult#dualStackDnsSuffix}', + properties: n, + headers: n + }, + type: e + } + ], + type: f + }, + { + error: + 'DualStack is enabled but this partition does not support DualStack', + type: d + } + ], + type: f + }, + { + endpoint: { + url: 'https://portal.sso.{Region}.{PartitionResult#dnsSuffix}', + properties: n, + headers: n + }, + type: e + } + ], + type: f + } + ], + type: f + }, + { error: 'Invalid Configuration: Missing Region', type: d } + ] + } + exports.ruleSet = _data + /***/ + }, -var DeleteResourcePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("AWSMPSeymour", "DeleteResourcePolicy", {}).n("MarketplaceCatalogClient", "DeleteResourcePolicyCommand").f(void 0, void 0).ser(se_DeleteResourcePolicyCommand).de(de_DeleteResourcePolicyCommand).build() { - static { - __name(this, "DeleteResourcePolicyCommand"); - } -}; + /***/ 82666: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + GetRoleCredentialsCommand: () => GetRoleCredentialsCommand, + GetRoleCredentialsRequestFilterSensitiveLog: () => + GetRoleCredentialsRequestFilterSensitiveLog, + GetRoleCredentialsResponseFilterSensitiveLog: () => + GetRoleCredentialsResponseFilterSensitiveLog, + InvalidRequestException: () => InvalidRequestException, + ListAccountRolesCommand: () => ListAccountRolesCommand, + ListAccountRolesRequestFilterSensitiveLog: () => + ListAccountRolesRequestFilterSensitiveLog, + ListAccountsCommand: () => ListAccountsCommand, + ListAccountsRequestFilterSensitiveLog: () => + ListAccountsRequestFilterSensitiveLog, + LogoutCommand: () => LogoutCommand, + LogoutRequestFilterSensitiveLog: () => LogoutRequestFilterSensitiveLog, + ResourceNotFoundException: () => ResourceNotFoundException, + RoleCredentialsFilterSensitiveLog: () => + RoleCredentialsFilterSensitiveLog, + SSO: () => SSO, + SSOClient: () => SSOClient, + SSOServiceException: () => SSOServiceException, + TooManyRequestsException: () => TooManyRequestsException, + UnauthorizedException: () => UnauthorizedException, + __Client: () => import_smithy_client.Client, + paginateListAccountRoles: () => paginateListAccountRoles, + paginateListAccounts: () => paginateListAccounts + }) + module.exports = __toCommonJS(src_exports) + + // src/SSOClient.ts + var import_middleware_host_header = __nccwpck_require__(22545) + var import_middleware_logger = __nccwpck_require__(20014) + var import_middleware_recursion_detection = __nccwpck_require__(85525) + var import_middleware_user_agent = __nccwpck_require__(64688) + var import_config_resolver = __nccwpck_require__(53098) + var import_core = __nccwpck_require__(55829) + var import_middleware_content_length = __nccwpck_require__(82800) + var import_middleware_endpoint = __nccwpck_require__(82918) + var import_middleware_retry = __nccwpck_require__(96039) + + var import_httpAuthSchemeProvider = __nccwpck_require__(49344) + + // src/endpoint/EndpointParameters.ts + var resolveClientEndpointParameters = /* @__PURE__ */ __name(options => { + return { + ...options, + useDualstackEndpoint: options.useDualstackEndpoint ?? false, + useFipsEndpoint: options.useFipsEndpoint ?? false, + defaultSigningName: 'awsssoportal' + } + }, 'resolveClientEndpointParameters') + var commonParams = { + UseFIPS: { type: 'builtInParams', name: 'useFipsEndpoint' }, + Endpoint: { type: 'builtInParams', name: 'endpoint' }, + Region: { type: 'builtInParams', name: 'region' }, + UseDualStack: { type: 'builtInParams', name: 'useDualstackEndpoint' } + } + + // src/SSOClient.ts + var import_runtimeConfig = __nccwpck_require__(19756) + + // src/runtimeExtensions.ts + var import_region_config_resolver = __nccwpck_require__(18156) + var import_protocol_http = __nccwpck_require__(64418) + var import_smithy_client = __nccwpck_require__(63570) + + // src/auth/httpAuthExtensionConfiguration.ts + var getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name( + runtimeConfig => { + const _httpAuthSchemes = runtimeConfig.httpAuthSchemes + let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider + let _credentials = runtimeConfig.credentials + return { + setHttpAuthScheme(httpAuthScheme) { + const index = _httpAuthSchemes.findIndex( + scheme => scheme.schemeId === httpAuthScheme.schemeId + ) + if (index === -1) { + _httpAuthSchemes.push(httpAuthScheme) + } else { + _httpAuthSchemes.splice(index, 1, httpAuthScheme) + } + }, + httpAuthSchemes() { + return _httpAuthSchemes + }, + setHttpAuthSchemeProvider(httpAuthSchemeProvider) { + _httpAuthSchemeProvider = httpAuthSchemeProvider + }, + httpAuthSchemeProvider() { + return _httpAuthSchemeProvider + }, + setCredentials(credentials) { + _credentials = credentials + }, + credentials() { + return _credentials + } + } + }, + 'getHttpAuthExtensionConfiguration' + ) + var resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name(config => { + return { + httpAuthSchemes: config.httpAuthSchemes(), + httpAuthSchemeProvider: config.httpAuthSchemeProvider(), + credentials: config.credentials() + } + }, 'resolveHttpAuthRuntimeConfig') + + // src/runtimeExtensions.ts + var asPartial = /* @__PURE__ */ __name(t => t, 'asPartial') + var resolveRuntimeExtensions = /* @__PURE__ */ __name( + (runtimeConfig, extensions) => { + const extensionConfiguration = { + ...asPartial( + (0, + import_region_config_resolver.getAwsRegionExtensionConfiguration)( + runtimeConfig + ) + ), + ...asPartial( + (0, import_smithy_client.getDefaultExtensionConfiguration)( + runtimeConfig + ) + ), + ...asPartial( + (0, import_protocol_http.getHttpHandlerExtensionConfiguration)( + runtimeConfig + ) + ), + ...asPartial(getHttpAuthExtensionConfiguration(runtimeConfig)) + } + extensions.forEach(extension => + extension.configure(extensionConfiguration) + ) + return { + ...runtimeConfig, + ...(0, + import_region_config_resolver.resolveAwsRegionExtensionConfiguration)( + extensionConfiguration + ), + ...(0, import_smithy_client.resolveDefaultRuntimeConfig)( + extensionConfiguration + ), + ...(0, import_protocol_http.resolveHttpHandlerRuntimeConfig)( + extensionConfiguration + ), + ...resolveHttpAuthRuntimeConfig(extensionConfiguration) + } + }, + 'resolveRuntimeExtensions' + ) -// src/commands/DescribeChangeSetCommand.ts + // src/SSOClient.ts + var _SSOClient = class _SSOClient extends import_smithy_client.Client { + constructor(...[configuration]) { + const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)( + configuration || {} + ) + const _config_1 = resolveClientEndpointParameters(_config_0) + const _config_2 = (0, + import_middleware_user_agent.resolveUserAgentConfig)(_config_1) + const _config_3 = (0, import_middleware_retry.resolveRetryConfig)( + _config_2 + ) + const _config_4 = (0, import_config_resolver.resolveRegionConfig)( + _config_3 + ) + const _config_5 = (0, + import_middleware_host_header.resolveHostHeaderConfig)(_config_4) + const _config_6 = (0, + import_middleware_endpoint.resolveEndpointConfig)(_config_5) + const _config_7 = (0, + import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6) + const _config_8 = resolveRuntimeExtensions( + _config_7, + (configuration == null ? void 0 : configuration.extensions) || [] + ) + super(_config_8) + this.config = _config_8 + this.middlewareStack.use( + (0, import_middleware_user_agent.getUserAgentPlugin)(this.config) + ) + this.middlewareStack.use( + (0, import_middleware_retry.getRetryPlugin)(this.config) + ) + this.middlewareStack.use( + (0, import_middleware_content_length.getContentLengthPlugin)( + this.config + ) + ) + this.middlewareStack.use( + (0, import_middleware_host_header.getHostHeaderPlugin)(this.config) + ) + this.middlewareStack.use( + (0, import_middleware_logger.getLoggerPlugin)(this.config) + ) + this.middlewareStack.use( + (0, + import_middleware_recursion_detection.getRecursionDetectionPlugin)( + this.config + ) + ) + this.middlewareStack.use( + (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)( + this.config, + { + httpAuthSchemeParametersProvider: + import_httpAuthSchemeProvider.defaultSSOHttpAuthSchemeParametersProvider, + identityProviderConfigProvider: async config => + new import_core.DefaultIdentityProviderConfig({ + 'aws.auth#sigv4': config.credentials + }) + } + ) + ) + this.middlewareStack.use( + (0, import_core.getHttpSigningPlugin)(this.config) + ) + } + /** + * Destroy underlying resources, like sockets. It's usually not necessary to do this. + * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed. + * Otherwise, sockets might stay open for quite a long time before the server terminates them. + */ + destroy() { + super.destroy() + } + } + __name(_SSOClient, 'SSOClient') + var SSOClient = _SSOClient + // src/SSO.ts + // src/commands/GetRoleCredentialsCommand.ts -var DescribeChangeSetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("AWSMPSeymour", "DescribeChangeSet", {}).n("MarketplaceCatalogClient", "DescribeChangeSetCommand").f(void 0, void 0).ser(se_DescribeChangeSetCommand).de(de_DescribeChangeSetCommand).build() { - static { - __name(this, "DescribeChangeSetCommand"); - } -}; + var import_middleware_serde = __nccwpck_require__(81238) -// src/commands/DescribeEntityCommand.ts + // src/models/models_0.ts + // src/models/SSOServiceException.ts + var _SSOServiceException = class _SSOServiceException + extends import_smithy_client.ServiceException + { + /** + * @internal + */ + constructor(options) { + super(options) + Object.setPrototypeOf(this, _SSOServiceException.prototype) + } + } + __name(_SSOServiceException, 'SSOServiceException') + var SSOServiceException = _SSOServiceException -var DescribeEntityCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("AWSMPSeymour", "DescribeEntity", {}).n("MarketplaceCatalogClient", "DescribeEntityCommand").f(void 0, void 0).ser(se_DescribeEntityCommand).de(de_DescribeEntityCommand).build() { - static { - __name(this, "DescribeEntityCommand"); - } -}; + // src/models/models_0.ts + var _InvalidRequestException = class _InvalidRequestException extends SSOServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'InvalidRequestException', + $fault: 'client', + ...opts + }) + this.name = 'InvalidRequestException' + this.$fault = 'client' + Object.setPrototypeOf(this, _InvalidRequestException.prototype) + } + } + __name(_InvalidRequestException, 'InvalidRequestException') + var InvalidRequestException = _InvalidRequestException + var _ResourceNotFoundException = class _ResourceNotFoundException extends SSOServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'ResourceNotFoundException', + $fault: 'client', + ...opts + }) + this.name = 'ResourceNotFoundException' + this.$fault = 'client' + Object.setPrototypeOf(this, _ResourceNotFoundException.prototype) + } + } + __name(_ResourceNotFoundException, 'ResourceNotFoundException') + var ResourceNotFoundException = _ResourceNotFoundException + var _TooManyRequestsException = class _TooManyRequestsException extends SSOServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'TooManyRequestsException', + $fault: 'client', + ...opts + }) + this.name = 'TooManyRequestsException' + this.$fault = 'client' + Object.setPrototypeOf(this, _TooManyRequestsException.prototype) + } + } + __name(_TooManyRequestsException, 'TooManyRequestsException') + var TooManyRequestsException = _TooManyRequestsException + var _UnauthorizedException = class _UnauthorizedException extends SSOServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'UnauthorizedException', + $fault: 'client', + ...opts + }) + this.name = 'UnauthorizedException' + this.$fault = 'client' + Object.setPrototypeOf(this, _UnauthorizedException.prototype) + } + } + __name(_UnauthorizedException, 'UnauthorizedException') + var UnauthorizedException = _UnauthorizedException + var GetRoleCredentialsRequestFilterSensitiveLog = /* @__PURE__ */ __name( + obj => ({ + ...obj, + ...(obj.accessToken && { + accessToken: import_smithy_client.SENSITIVE_STRING + }) + }), + 'GetRoleCredentialsRequestFilterSensitiveLog' + ) + var RoleCredentialsFilterSensitiveLog = /* @__PURE__ */ __name( + obj => ({ + ...obj, + ...(obj.secretAccessKey && { + secretAccessKey: import_smithy_client.SENSITIVE_STRING + }), + ...(obj.sessionToken && { + sessionToken: import_smithy_client.SENSITIVE_STRING + }) + }), + 'RoleCredentialsFilterSensitiveLog' + ) + var GetRoleCredentialsResponseFilterSensitiveLog = /* @__PURE__ */ __name( + obj => ({ + ...obj, + ...(obj.roleCredentials && { + roleCredentials: RoleCredentialsFilterSensitiveLog( + obj.roleCredentials + ) + }) + }), + 'GetRoleCredentialsResponseFilterSensitiveLog' + ) + var ListAccountRolesRequestFilterSensitiveLog = /* @__PURE__ */ __name( + obj => ({ + ...obj, + ...(obj.accessToken && { + accessToken: import_smithy_client.SENSITIVE_STRING + }) + }), + 'ListAccountRolesRequestFilterSensitiveLog' + ) + var ListAccountsRequestFilterSensitiveLog = /* @__PURE__ */ __name( + obj => ({ + ...obj, + ...(obj.accessToken && { + accessToken: import_smithy_client.SENSITIVE_STRING + }) + }), + 'ListAccountsRequestFilterSensitiveLog' + ) + var LogoutRequestFilterSensitiveLog = /* @__PURE__ */ __name( + obj => ({ + ...obj, + ...(obj.accessToken && { + accessToken: import_smithy_client.SENSITIVE_STRING + }) + }), + 'LogoutRequestFilterSensitiveLog' + ) -// src/commands/GetResourcePolicyCommand.ts + // src/protocols/Aws_restJson1.ts + var import_core2 = __nccwpck_require__(59963) + var se_GetRoleCredentialsCommand = /* @__PURE__ */ __name( + async (input, context) => { + const b = (0, import_core.requestBuilder)(input, context) + const headers = (0, import_smithy_client.map)( + {}, + isSerializableHeaderValue, + { + [_xasbt]: input[_aT] + } + ) + b.bp('/federation/credentials') + const query = (0, import_smithy_client.map)({ + [_rn]: [ + , + (0, import_smithy_client.expectNonNull)(input[_rN], `roleName`) + ], + [_ai]: [ + , + (0, import_smithy_client.expectNonNull)(input[_aI], `accountId`) + ] + }) + let body + b.m('GET').h(headers).q(query).b(body) + return b.build() + }, + 'se_GetRoleCredentialsCommand' + ) + var se_ListAccountRolesCommand = /* @__PURE__ */ __name( + async (input, context) => { + const b = (0, import_core.requestBuilder)(input, context) + const headers = (0, import_smithy_client.map)( + {}, + isSerializableHeaderValue, + { + [_xasbt]: input[_aT] + } + ) + b.bp('/assignment/roles') + const query = (0, import_smithy_client.map)({ + [_nt]: [, input[_nT]], + [_mr]: [ + () => input.maxResults !== void 0, + () => input[_mR].toString() + ], + [_ai]: [ + , + (0, import_smithy_client.expectNonNull)(input[_aI], `accountId`) + ] + }) + let body + b.m('GET').h(headers).q(query).b(body) + return b.build() + }, + 'se_ListAccountRolesCommand' + ) + var se_ListAccountsCommand = /* @__PURE__ */ __name( + async (input, context) => { + const b = (0, import_core.requestBuilder)(input, context) + const headers = (0, import_smithy_client.map)( + {}, + isSerializableHeaderValue, + { + [_xasbt]: input[_aT] + } + ) + b.bp('/assignment/accounts') + const query = (0, import_smithy_client.map)({ + [_nt]: [, input[_nT]], + [_mr]: [ + () => input.maxResults !== void 0, + () => input[_mR].toString() + ] + }) + let body + b.m('GET').h(headers).q(query).b(body) + return b.build() + }, + 'se_ListAccountsCommand' + ) + var se_LogoutCommand = /* @__PURE__ */ __name(async (input, context) => { + const b = (0, import_core.requestBuilder)(input, context) + const headers = (0, import_smithy_client.map)( + {}, + isSerializableHeaderValue, + { + [_xasbt]: input[_aT] + } + ) + b.bp('/logout') + let body + b.m('POST').h(headers).b(body) + return b.build() + }, 'se_LogoutCommand') + var de_GetRoleCredentialsCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context) + } + const contents = (0, import_smithy_client.map)({ + $metadata: deserializeMetadata(output) + }) + const data = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.expectObject)( + await (0, import_core2.parseJsonBody)(output.body, context) + ), + 'body' + ) + const doc = (0, import_smithy_client.take)(data, { + roleCredentials: import_smithy_client._json + }) + Object.assign(contents, doc) + return contents + }, + 'de_GetRoleCredentialsCommand' + ) + var de_ListAccountRolesCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context) + } + const contents = (0, import_smithy_client.map)({ + $metadata: deserializeMetadata(output) + }) + const data = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.expectObject)( + await (0, import_core2.parseJsonBody)(output.body, context) + ), + 'body' + ) + const doc = (0, import_smithy_client.take)(data, { + nextToken: import_smithy_client.expectString, + roleList: import_smithy_client._json + }) + Object.assign(contents, doc) + return contents + }, + 'de_ListAccountRolesCommand' + ) + var de_ListAccountsCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context) + } + const contents = (0, import_smithy_client.map)({ + $metadata: deserializeMetadata(output) + }) + const data = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.expectObject)( + await (0, import_core2.parseJsonBody)(output.body, context) + ), + 'body' + ) + const doc = (0, import_smithy_client.take)(data, { + accountList: import_smithy_client._json, + nextToken: import_smithy_client.expectString + }) + Object.assign(contents, doc) + return contents + }, + 'de_ListAccountsCommand' + ) + var de_LogoutCommand = /* @__PURE__ */ __name(async (output, context) => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context) + } + const contents = (0, import_smithy_client.map)({ + $metadata: deserializeMetadata(output) + }) + await (0, import_smithy_client.collectBody)(output.body, context) + return contents + }, 'de_LogoutCommand') + var de_CommandError = /* @__PURE__ */ __name(async (output, context) => { + const parsedOutput = { + ...output, + body: await (0, import_core2.parseJsonErrorBody)(output.body, context) + } + const errorCode = (0, import_core2.loadRestJsonErrorCode)( + output, + parsedOutput.body + ) + switch (errorCode) { + case 'InvalidRequestException': + case 'com.amazonaws.sso#InvalidRequestException': + throw await de_InvalidRequestExceptionRes(parsedOutput, context) + case 'ResourceNotFoundException': + case 'com.amazonaws.sso#ResourceNotFoundException': + throw await de_ResourceNotFoundExceptionRes(parsedOutput, context) + case 'TooManyRequestsException': + case 'com.amazonaws.sso#TooManyRequestsException': + throw await de_TooManyRequestsExceptionRes(parsedOutput, context) + case 'UnauthorizedException': + case 'com.amazonaws.sso#UnauthorizedException': + throw await de_UnauthorizedExceptionRes(parsedOutput, context) + default: + const parsedBody = parsedOutput.body + return throwDefaultError({ + output, + parsedBody, + errorCode + }) + } + }, 'de_CommandError') + var throwDefaultError = (0, import_smithy_client.withBaseException)( + SSOServiceException + ) + var de_InvalidRequestExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const contents = (0, import_smithy_client.map)({}) + const data = parsedOutput.body + const doc = (0, import_smithy_client.take)(data, { + message: import_smithy_client.expectString + }) + Object.assign(contents, doc) + const exception = new InvalidRequestException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + parsedOutput.body + ) + }, + 'de_InvalidRequestExceptionRes' + ) + var de_ResourceNotFoundExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const contents = (0, import_smithy_client.map)({}) + const data = parsedOutput.body + const doc = (0, import_smithy_client.take)(data, { + message: import_smithy_client.expectString + }) + Object.assign(contents, doc) + const exception = new ResourceNotFoundException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + parsedOutput.body + ) + }, + 'de_ResourceNotFoundExceptionRes' + ) + var de_TooManyRequestsExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const contents = (0, import_smithy_client.map)({}) + const data = parsedOutput.body + const doc = (0, import_smithy_client.take)(data, { + message: import_smithy_client.expectString + }) + Object.assign(contents, doc) + const exception = new TooManyRequestsException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + parsedOutput.body + ) + }, + 'de_TooManyRequestsExceptionRes' + ) + var de_UnauthorizedExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const contents = (0, import_smithy_client.map)({}) + const data = parsedOutput.body + const doc = (0, import_smithy_client.take)(data, { + message: import_smithy_client.expectString + }) + Object.assign(contents, doc) + const exception = new UnauthorizedException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + parsedOutput.body + ) + }, + 'de_UnauthorizedExceptionRes' + ) + var deserializeMetadata = /* @__PURE__ */ __name( + output => ({ + httpStatusCode: output.statusCode, + requestId: + output.headers['x-amzn-requestid'] ?? + output.headers['x-amzn-request-id'] ?? + output.headers['x-amz-request-id'], + extendedRequestId: output.headers['x-amz-id-2'], + cfId: output.headers['x-amz-cf-id'] + }), + 'deserializeMetadata' + ) + var isSerializableHeaderValue = /* @__PURE__ */ __name( + value => + value !== void 0 && + value !== null && + value !== '' && + (!Object.getOwnPropertyNames(value).includes('length') || + value.length != 0) && + (!Object.getOwnPropertyNames(value).includes('size') || + value.size != 0), + 'isSerializableHeaderValue' + ) + var _aI = 'accountId' + var _aT = 'accessToken' + var _ai = 'account_id' + var _mR = 'maxResults' + var _mr = 'max_result' + var _nT = 'nextToken' + var _nt = 'next_token' + var _rN = 'roleName' + var _rn = 'role_name' + var _xasbt = 'x-amz-sso_bearer_token' + + // src/commands/GetRoleCredentialsCommand.ts + var _GetRoleCredentialsCommand = class _GetRoleCredentialsCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('SWBPortalService', 'GetRoleCredentials', {}) + .n('SSOClient', 'GetRoleCredentialsCommand') + .f( + GetRoleCredentialsRequestFilterSensitiveLog, + GetRoleCredentialsResponseFilterSensitiveLog + ) + .ser(se_GetRoleCredentialsCommand) + .de(de_GetRoleCredentialsCommand) + .build() {} + __name(_GetRoleCredentialsCommand, 'GetRoleCredentialsCommand') + var GetRoleCredentialsCommand = _GetRoleCredentialsCommand + // src/commands/ListAccountRolesCommand.ts -var GetResourcePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("AWSMPSeymour", "GetResourcePolicy", {}).n("MarketplaceCatalogClient", "GetResourcePolicyCommand").f(void 0, void 0).ser(se_GetResourcePolicyCommand).de(de_GetResourcePolicyCommand).build() { - static { - __name(this, "GetResourcePolicyCommand"); - } -}; + var _ListAccountRolesCommand = class _ListAccountRolesCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('SWBPortalService', 'ListAccountRoles', {}) + .n('SSOClient', 'ListAccountRolesCommand') + .f(ListAccountRolesRequestFilterSensitiveLog, void 0) + .ser(se_ListAccountRolesCommand) + .de(de_ListAccountRolesCommand) + .build() {} + __name(_ListAccountRolesCommand, 'ListAccountRolesCommand') + var ListAccountRolesCommand = _ListAccountRolesCommand + + // src/commands/ListAccountsCommand.ts + + var _ListAccountsCommand = class _ListAccountsCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('SWBPortalService', 'ListAccounts', {}) + .n('SSOClient', 'ListAccountsCommand') + .f(ListAccountsRequestFilterSensitiveLog, void 0) + .ser(se_ListAccountsCommand) + .de(de_ListAccountsCommand) + .build() {} + __name(_ListAccountsCommand, 'ListAccountsCommand') + var ListAccountsCommand = _ListAccountsCommand + + // src/commands/LogoutCommand.ts + + var _LogoutCommand = class _LogoutCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('SWBPortalService', 'Logout', {}) + .n('SSOClient', 'LogoutCommand') + .f(LogoutRequestFilterSensitiveLog, void 0) + .ser(se_LogoutCommand) + .de(de_LogoutCommand) + .build() {} + __name(_LogoutCommand, 'LogoutCommand') + var LogoutCommand = _LogoutCommand + + // src/SSO.ts + var commands = { + GetRoleCredentialsCommand, + ListAccountRolesCommand, + ListAccountsCommand, + LogoutCommand + } + var _SSO = class _SSO extends SSOClient {} + __name(_SSO, 'SSO') + var SSO = _SSO + ;(0, import_smithy_client.createAggregatedClient)(commands, SSO) + + // src/pagination/ListAccountRolesPaginator.ts + + var paginateListAccountRoles = (0, import_core.createPaginator)( + SSOClient, + ListAccountRolesCommand, + 'nextToken', + 'nextToken', + 'maxResults' + ) -// src/commands/ListChangeSetsCommand.ts + // src/pagination/ListAccountsPaginator.ts + var paginateListAccounts = (0, import_core.createPaginator)( + SSOClient, + ListAccountsCommand, + 'nextToken', + 'nextToken', + 'maxResults' + ) + // Annotate the CommonJS export names for ESM import in node: + 0 && 0 -var ListChangeSetsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("AWSMPSeymour", "ListChangeSets", {}).n("MarketplaceCatalogClient", "ListChangeSetsCommand").f(void 0, void 0).ser(se_ListChangeSetsCommand).de(de_ListChangeSetsCommand).build() { - static { - __name(this, "ListChangeSetsCommand"); - } -}; + /***/ + }, -// src/commands/ListEntitiesCommand.ts + /***/ 19756: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getRuntimeConfig = void 0 + const tslib_1 = __nccwpck_require__(4351) + const package_json_1 = tslib_1.__importDefault(__nccwpck_require__(91092)) + const core_1 = __nccwpck_require__(59963) + const util_user_agent_node_1 = __nccwpck_require__(98095) + const config_resolver_1 = __nccwpck_require__(53098) + const hash_node_1 = __nccwpck_require__(3081) + const middleware_retry_1 = __nccwpck_require__(96039) + const node_config_provider_1 = __nccwpck_require__(33461) + const node_http_handler_1 = __nccwpck_require__(67028) + const util_body_length_node_1 = __nccwpck_require__(68075) + const util_retry_1 = __nccwpck_require__(84902) + const runtimeConfig_shared_1 = __nccwpck_require__(44809) + const smithy_client_1 = __nccwpck_require__(63570) + const util_defaults_mode_node_1 = __nccwpck_require__(72429) + const smithy_client_2 = __nccwpck_require__(63570) + const getRuntimeConfig = config => { + ;(0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version) + const defaultsMode = (0, + util_defaults_mode_node_1.resolveDefaultsModeConfig)(config) + const defaultConfigProvider = () => + defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode) + const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)( + config + ) + ;(0, core_1.emitWarningIfUnsupportedVersion)(process.version) + return { + ...clientSharedValues, + ...config, + runtime: 'node', + defaultsMode, + bodyLengthChecker: + config?.bodyLengthChecker ?? + util_body_length_node_1.calculateBodyLength, + defaultUserAgentProvider: + config?.defaultUserAgentProvider ?? + (0, util_user_agent_node_1.defaultUserAgent)({ + serviceId: clientSharedValues.serviceId, + clientVersion: package_json_1.default.version + }), + maxAttempts: + config?.maxAttempts ?? + (0, node_config_provider_1.loadConfig)( + middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS + ), + region: + config?.region ?? + (0, node_config_provider_1.loadConfig)( + config_resolver_1.NODE_REGION_CONFIG_OPTIONS, + config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS + ), + requestHandler: node_http_handler_1.NodeHttpHandler.create( + config?.requestHandler ?? defaultConfigProvider + ), + retryMode: + config?.retryMode ?? + (0, node_config_provider_1.loadConfig)({ + ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS, + default: async () => + (await defaultConfigProvider()).retryMode || + util_retry_1.DEFAULT_RETRY_MODE + }), + sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, 'sha256'), + streamCollector: + config?.streamCollector ?? node_http_handler_1.streamCollector, + useDualstackEndpoint: + config?.useDualstackEndpoint ?? + (0, node_config_provider_1.loadConfig)( + config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS + ), + useFipsEndpoint: + config?.useFipsEndpoint ?? + (0, node_config_provider_1.loadConfig)( + config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS + ) + } + } + exports.getRuntimeConfig = getRuntimeConfig + /***/ + }, + /***/ 44809: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getRuntimeConfig = void 0 + const core_1 = __nccwpck_require__(59963) + const core_2 = __nccwpck_require__(55829) + const smithy_client_1 = __nccwpck_require__(63570) + const url_parser_1 = __nccwpck_require__(14681) + const util_base64_1 = __nccwpck_require__(75600) + const util_utf8_1 = __nccwpck_require__(41895) + const httpAuthSchemeProvider_1 = __nccwpck_require__(49344) + const endpointResolver_1 = __nccwpck_require__(30898) + const getRuntimeConfig = config => { + return { + apiVersion: '2019-06-10', + base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64, + base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64, + disableHostPrefix: config?.disableHostPrefix ?? false, + endpointProvider: + config?.endpointProvider ?? + endpointResolver_1.defaultEndpointResolver, + extensions: config?.extensions ?? [], + httpAuthSchemeProvider: + config?.httpAuthSchemeProvider ?? + httpAuthSchemeProvider_1.defaultSSOHttpAuthSchemeProvider, + httpAuthSchemes: config?.httpAuthSchemes ?? [ + { + schemeId: 'aws.auth#sigv4', + identityProvider: ipc => + ipc.getIdentityProvider('aws.auth#sigv4'), + signer: new core_1.AwsSdkSigV4Signer() + }, + { + schemeId: 'smithy.api#noAuth', + identityProvider: ipc => + ipc.getIdentityProvider('smithy.api#noAuth') || + (async () => ({})), + signer: new core_2.NoAuthSigner() + } + ], + logger: config?.logger ?? new smithy_client_1.NoOpLogger(), + serviceId: config?.serviceId ?? 'SSO', + urlParser: config?.urlParser ?? url_parser_1.parseUrl, + utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8, + utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8 + } + } + exports.getRuntimeConfig = getRuntimeConfig -var ListEntitiesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("AWSMPSeymour", "ListEntities", {}).n("MarketplaceCatalogClient", "ListEntitiesCommand").f(void 0, void 0).ser(se_ListEntitiesCommand).de(de_ListEntitiesCommand).build() { - static { - __name(this, "ListEntitiesCommand"); - } -}; + /***/ + }, -// src/commands/ListTagsForResourceCommand.ts + /***/ 67028: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __create = Object.create + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __getProtoOf = Object.getPrototypeOf + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toESM = (mod, isNodeMode, target) => ( + (target = mod != null ? __create(__getProtoOf(mod)) : {}), + __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule + ? __defProp(target, 'default', { value: mod, enumerable: true }) + : target, + mod + ) + ) + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + DEFAULT_REQUEST_TIMEOUT: () => DEFAULT_REQUEST_TIMEOUT, + NodeHttp2Handler: () => NodeHttp2Handler, + NodeHttpHandler: () => NodeHttpHandler, + streamCollector: () => streamCollector + }) + module.exports = __toCommonJS(src_exports) + + // src/node-http-handler.ts + var import_protocol_http = __nccwpck_require__(64418) + var import_querystring_builder = __nccwpck_require__(68031) + var import_http = __nccwpck_require__(13685) + var import_https = __nccwpck_require__(95687) + + // src/constants.ts + var NODEJS_TIMEOUT_ERROR_CODES = ['ECONNRESET', 'EPIPE', 'ETIMEDOUT'] + + // src/get-transformed-headers.ts + var getTransformedHeaders = /* @__PURE__ */ __name(headers => { + const transformedHeaders = {} + for (const name of Object.keys(headers)) { + const headerValues = headers[name] + transformedHeaders[name] = Array.isArray(headerValues) + ? headerValues.join(',') + : headerValues + } + return transformedHeaders + }, 'getTransformedHeaders') + + // src/set-connection-timeout.ts + var DEFER_EVENT_LISTENER_TIME = 1e3 + var setConnectionTimeout = /* @__PURE__ */ __name( + (request, reject, timeoutInMs = 0) => { + if (!timeoutInMs) { + return -1 + } + const registerTimeout = /* @__PURE__ */ __name(offset => { + const timeoutId = setTimeout(() => { + request.destroy() + reject( + Object.assign( + new Error( + `Socket timed out without establishing a connection within ${timeoutInMs} ms` + ), + { + name: 'TimeoutError' + } + ) + ) + }, timeoutInMs - offset) + const doWithSocket = /* @__PURE__ */ __name(socket => { + if (socket == null ? void 0 : socket.connecting) { + socket.on('connect', () => { + clearTimeout(timeoutId) + }) + } else { + clearTimeout(timeoutId) + } + }, 'doWithSocket') + if (request.socket) { + doWithSocket(request.socket) + } else { + request.on('socket', doWithSocket) + } + }, 'registerTimeout') + if (timeoutInMs < 2e3) { + registerTimeout(0) + return 0 + } + return setTimeout( + registerTimeout.bind(null, DEFER_EVENT_LISTENER_TIME), + DEFER_EVENT_LISTENER_TIME + ) + }, + 'setConnectionTimeout' + ) + // src/set-socket-keep-alive.ts + var DEFER_EVENT_LISTENER_TIME2 = 3e3 + var setSocketKeepAlive = /* @__PURE__ */ __name( + ( + request, + { keepAlive, keepAliveMsecs }, + deferTimeMs = DEFER_EVENT_LISTENER_TIME2 + ) => { + if (keepAlive !== true) { + return -1 + } + const registerListener = /* @__PURE__ */ __name(() => { + if (request.socket) { + request.socket.setKeepAlive(keepAlive, keepAliveMsecs || 0) + } else { + request.on('socket', socket => { + socket.setKeepAlive(keepAlive, keepAliveMsecs || 0) + }) + } + }, 'registerListener') + if (deferTimeMs === 0) { + registerListener() + return 0 + } + return setTimeout(registerListener, deferTimeMs) + }, + 'setSocketKeepAlive' + ) + // src/set-socket-timeout.ts + var DEFER_EVENT_LISTENER_TIME3 = 3e3 + var setSocketTimeout = /* @__PURE__ */ __name( + (request, reject, timeoutInMs = 0) => { + const registerTimeout = /* @__PURE__ */ __name(offset => { + request.setTimeout(timeoutInMs - offset, () => { + request.destroy() + reject( + Object.assign( + new Error(`Connection timed out after ${timeoutInMs} ms`), + { name: 'TimeoutError' } + ) + ) + }) + }, 'registerTimeout') + if (0 < timeoutInMs && timeoutInMs < 6e3) { + registerTimeout(0) + return 0 + } + return setTimeout( + registerTimeout.bind( + null, + timeoutInMs === 0 ? 0 : DEFER_EVENT_LISTENER_TIME3 + ), + DEFER_EVENT_LISTENER_TIME3 + ) + }, + 'setSocketTimeout' + ) -var ListTagsForResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("AWSMPSeymour", "ListTagsForResource", {}).n("MarketplaceCatalogClient", "ListTagsForResourceCommand").f(void 0, void 0).ser(se_ListTagsForResourceCommand).de(de_ListTagsForResourceCommand).build() { - static { - __name(this, "ListTagsForResourceCommand"); - } -}; + // src/write-request-body.ts + var import_stream = __nccwpck_require__(12781) + var MIN_WAIT_TIME = 1e3 + async function writeRequestBody( + httpRequest, + request, + maxContinueTimeoutMs = MIN_WAIT_TIME + ) { + const headers = request.headers ?? {} + const expect = headers['Expect'] || headers['expect'] + let timeoutId = -1 + let hasError = false + if (expect === '100-continue') { + await Promise.race([ + new Promise(resolve => { + timeoutId = Number( + setTimeout( + resolve, + Math.max(MIN_WAIT_TIME, maxContinueTimeoutMs) + ) + ) + }), + new Promise(resolve => { + httpRequest.on('continue', () => { + clearTimeout(timeoutId) + resolve() + }) + httpRequest.on('error', () => { + hasError = true + clearTimeout(timeoutId) + resolve() + }) + }) + ]) + } + if (!hasError) { + writeBody(httpRequest, request.body) + } + } + __name(writeRequestBody, 'writeRequestBody') + function writeBody(httpRequest, body) { + if (body instanceof import_stream.Readable) { + body.pipe(httpRequest) + return + } + if (body) { + if (Buffer.isBuffer(body) || typeof body === 'string') { + httpRequest.end(body) + return + } + const uint8 = body + if ( + typeof uint8 === 'object' && + uint8.buffer && + typeof uint8.byteOffset === 'number' && + typeof uint8.byteLength === 'number' + ) { + httpRequest.end( + Buffer.from(uint8.buffer, uint8.byteOffset, uint8.byteLength) + ) + return + } + httpRequest.end(Buffer.from(body)) + return + } + httpRequest.end() + } + __name(writeBody, 'writeBody') + + // src/node-http-handler.ts + var DEFAULT_REQUEST_TIMEOUT = 0 + var _NodeHttpHandler = class _NodeHttpHandler { + constructor(options) { + this.socketWarningTimestamp = 0 + // Node http handler is hard-coded to http/1.1: https://github.com/nodejs/node/blob/ff5664b83b89c55e4ab5d5f60068fb457f1f5872/lib/_http_server.js#L286 + this.metadata = { handlerProtocol: 'http/1.1' } + this.configProvider = new Promise((resolve, reject) => { + if (typeof options === 'function') { + options() + .then(_options => { + resolve(this.resolveDefaultConfig(_options)) + }) + .catch(reject) + } else { + resolve(this.resolveDefaultConfig(options)) + } + }) + } + /** + * @returns the input if it is an HttpHandler of any class, + * or instantiates a new instance of this handler. + */ + static create(instanceOrOptions) { + if ( + typeof (instanceOrOptions == null + ? void 0 + : instanceOrOptions.handle) === 'function' + ) { + return instanceOrOptions + } + return new _NodeHttpHandler(instanceOrOptions) + } + /** + * @internal + * + * @param agent - http(s) agent in use by the NodeHttpHandler instance. + * @param socketWarningTimestamp - last socket usage check timestamp. + * @param logger - channel for the warning. + * @returns timestamp of last emitted warning. + */ + static checkSocketUsage( + agent, + socketWarningTimestamp, + logger = console + ) { + var _a, _b, _c + const { sockets, requests, maxSockets } = agent + if (typeof maxSockets !== 'number' || maxSockets === Infinity) { + return socketWarningTimestamp + } + const interval = 15e3 + if (Date.now() - interval < socketWarningTimestamp) { + return socketWarningTimestamp + } + if (sockets && requests) { + for (const origin in sockets) { + const socketsInUse = + ((_a = sockets[origin]) == null ? void 0 : _a.length) ?? 0 + const requestsEnqueued = + ((_b = requests[origin]) == null ? void 0 : _b.length) ?? 0 + if ( + socketsInUse >= maxSockets && + requestsEnqueued >= 2 * maxSockets + ) { + ;(_c = logger == null ? void 0 : logger.warn) == null + ? void 0 + : _c.call( + logger, + `@smithy/node-http-handler:WARN - socket usage at capacity=${socketsInUse} and ${requestsEnqueued} additional requests are enqueued. +See https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html +or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.` + ) + return Date.now() + } + } + } + return socketWarningTimestamp + } + resolveDefaultConfig(options) { + const { + requestTimeout, + connectionTimeout, + socketTimeout, + httpAgent, + httpsAgent + } = options || {} + const keepAlive = true + const maxSockets = 50 + return { + connectionTimeout, + requestTimeout: requestTimeout ?? socketTimeout, + httpAgent: (() => { + if ( + httpAgent instanceof import_http.Agent || + typeof (httpAgent == null ? void 0 : httpAgent.destroy) === + 'function' + ) { + return httpAgent + } + return new import_http.Agent({ + keepAlive, + maxSockets, + ...httpAgent + }) + })(), + httpsAgent: (() => { + if ( + httpsAgent instanceof import_https.Agent || + typeof (httpsAgent == null ? void 0 : httpsAgent.destroy) === + 'function' + ) { + return httpsAgent + } + return new import_https.Agent({ + keepAlive, + maxSockets, + ...httpsAgent + }) + })(), + logger: console + } + } + destroy() { + var _a, _b, _c, _d + ;(_b = (_a = this.config) == null ? void 0 : _a.httpAgent) == null + ? void 0 + : _b.destroy() + ;(_d = (_c = this.config) == null ? void 0 : _c.httpsAgent) == null + ? void 0 + : _d.destroy() + } + async handle(request, { abortSignal } = {}) { + if (!this.config) { + this.config = await this.configProvider + } + return new Promise((_resolve, _reject) => { + let writeRequestBodyPromise = void 0 + const timeouts = [] + const resolve = /* @__PURE__ */ __name(async arg => { + await writeRequestBodyPromise + timeouts.forEach(clearTimeout) + _resolve(arg) + }, 'resolve') + const reject = /* @__PURE__ */ __name(async arg => { + await writeRequestBodyPromise + timeouts.forEach(clearTimeout) + _reject(arg) + }, 'reject') + if (!this.config) { + throw new Error( + 'Node HTTP request handler config is not resolved' + ) + } + if (abortSignal == null ? void 0 : abortSignal.aborted) { + const abortError = new Error('Request aborted') + abortError.name = 'AbortError' + reject(abortError) + return + } + const isSSL = request.protocol === 'https:' + const agent = isSSL ? this.config.httpsAgent : this.config.httpAgent + timeouts.push( + setTimeout( + () => { + this.socketWarningTimestamp = + _NodeHttpHandler.checkSocketUsage( + agent, + this.socketWarningTimestamp, + this.config.logger + ) + }, + this.config.socketAcquisitionWarningTimeout ?? + (this.config.requestTimeout ?? 2e3) + + (this.config.connectionTimeout ?? 1e3) + ) + ) + const queryString = (0, + import_querystring_builder.buildQueryString)(request.query || {}) + let auth = void 0 + if (request.username != null || request.password != null) { + const username = request.username ?? '' + const password = request.password ?? '' + auth = `${username}:${password}` + } + let path = request.path + if (queryString) { + path += `?${queryString}` + } + if (request.fragment) { + path += `#${request.fragment}` + } + const nodeHttpsOptions = { + headers: request.headers, + host: request.hostname, + method: request.method, + path, + port: request.port, + agent, + auth + } + const requestFunc = isSSL + ? import_https.request + : import_http.request + const req = requestFunc(nodeHttpsOptions, res => { + const httpResponse = new import_protocol_http.HttpResponse({ + statusCode: res.statusCode || -1, + reason: res.statusMessage, + headers: getTransformedHeaders(res.headers), + body: res + }) + resolve({ response: httpResponse }) + }) + req.on('error', err => { + if (NODEJS_TIMEOUT_ERROR_CODES.includes(err.code)) { + reject(Object.assign(err, { name: 'TimeoutError' })) + } else { + reject(err) + } + }) + if (abortSignal) { + const onAbort = /* @__PURE__ */ __name(() => { + req.destroy() + const abortError = new Error('Request aborted') + abortError.name = 'AbortError' + reject(abortError) + }, 'onAbort') + if (typeof abortSignal.addEventListener === 'function') { + const signal = abortSignal + signal.addEventListener('abort', onAbort, { once: true }) + req.once('close', () => + signal.removeEventListener('abort', onAbort) + ) + } else { + abortSignal.onabort = onAbort + } + } + timeouts.push( + setConnectionTimeout(req, reject, this.config.connectionTimeout) + ) + timeouts.push( + setSocketTimeout(req, reject, this.config.requestTimeout) + ) + const httpAgent = nodeHttpsOptions.agent + if (typeof httpAgent === 'object' && 'keepAlive' in httpAgent) { + timeouts.push( + setSocketKeepAlive(req, { + // @ts-expect-error keepAlive is not public on httpAgent. + keepAlive: httpAgent.keepAlive, + // @ts-expect-error keepAliveMsecs is not public on httpAgent. + keepAliveMsecs: httpAgent.keepAliveMsecs + }) + ) + } + writeRequestBodyPromise = writeRequestBody( + req, + request, + this.config.requestTimeout + ).catch(e => { + timeouts.forEach(clearTimeout) + return _reject(e) + }) + }) + } + updateHttpClientConfig(key, value) { + this.config = void 0 + this.configProvider = this.configProvider.then(config => { + return { + ...config, + [key]: value + } + }) + } + httpHandlerConfigs() { + return this.config ?? {} + } + } + __name(_NodeHttpHandler, 'NodeHttpHandler') + var NodeHttpHandler = _NodeHttpHandler -// src/commands/PutResourcePolicyCommand.ts + // src/node-http2-handler.ts + var import_http22 = __nccwpck_require__(85158) + // src/node-http2-connection-manager.ts + var import_http2 = __toESM(__nccwpck_require__(85158)) -var PutResourcePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("AWSMPSeymour", "PutResourcePolicy", {}).n("MarketplaceCatalogClient", "PutResourcePolicyCommand").f(void 0, void 0).ser(se_PutResourcePolicyCommand).de(de_PutResourcePolicyCommand).build() { - static { - __name(this, "PutResourcePolicyCommand"); - } -}; + // src/node-http2-connection-pool.ts + var _NodeHttp2ConnectionPool = class _NodeHttp2ConnectionPool { + constructor(sessions) { + this.sessions = [] + this.sessions = sessions ?? [] + } + poll() { + if (this.sessions.length > 0) { + return this.sessions.shift() + } + } + offerLast(session) { + this.sessions.push(session) + } + contains(session) { + return this.sessions.includes(session) + } + remove(session) { + this.sessions = this.sessions.filter(s => s !== session) + } + [Symbol.iterator]() { + return this.sessions[Symbol.iterator]() + } + destroy(connection) { + for (const session of this.sessions) { + if (session === connection) { + if (!session.destroyed) { + session.destroy() + } + } + } + } + } + __name(_NodeHttp2ConnectionPool, 'NodeHttp2ConnectionPool') + var NodeHttp2ConnectionPool = _NodeHttp2ConnectionPool -// src/commands/StartChangeSetCommand.ts + // src/node-http2-connection-manager.ts + var _NodeHttp2ConnectionManager = class _NodeHttp2ConnectionManager { + constructor(config) { + this.sessionCache = /* @__PURE__ */ new Map() + this.config = config + if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) { + throw new RangeError('maxConcurrency must be greater than zero.') + } + } + lease(requestContext, connectionConfiguration) { + const url = this.getUrlString(requestContext) + const existingPool = this.sessionCache.get(url) + if (existingPool) { + const existingSession = existingPool.poll() + if (existingSession && !this.config.disableConcurrency) { + return existingSession + } + } + const session = import_http2.default.connect(url) + if (this.config.maxConcurrency) { + session.settings( + { maxConcurrentStreams: this.config.maxConcurrency }, + err => { + if (err) { + throw new Error( + 'Fail to set maxConcurrentStreams to ' + + this.config.maxConcurrency + + 'when creating new session for ' + + requestContext.destination.toString() + ) + } + } + ) + } + session.unref() + const destroySessionCb = /* @__PURE__ */ __name(() => { + session.destroy() + this.deleteSession(url, session) + }, 'destroySessionCb') + session.on('goaway', destroySessionCb) + session.on('error', destroySessionCb) + session.on('frameError', destroySessionCb) + session.on('close', () => this.deleteSession(url, session)) + if (connectionConfiguration.requestTimeout) { + session.setTimeout( + connectionConfiguration.requestTimeout, + destroySessionCb + ) + } + const connectionPool = + this.sessionCache.get(url) || new NodeHttp2ConnectionPool() + connectionPool.offerLast(session) + this.sessionCache.set(url, connectionPool) + return session + } + /** + * Delete a session from the connection pool. + * @param authority The authority of the session to delete. + * @param session The session to delete. + */ + deleteSession(authority, session) { + const existingConnectionPool = this.sessionCache.get(authority) + if (!existingConnectionPool) { + return + } + if (!existingConnectionPool.contains(session)) { + return + } + existingConnectionPool.remove(session) + this.sessionCache.set(authority, existingConnectionPool) + } + release(requestContext, session) { + var _a + const cacheKey = this.getUrlString(requestContext) + ;(_a = this.sessionCache.get(cacheKey)) == null + ? void 0 + : _a.offerLast(session) + } + destroy() { + for (const [key, connectionPool] of this.sessionCache) { + for (const session of connectionPool) { + if (!session.destroyed) { + session.destroy() + } + connectionPool.remove(session) + } + this.sessionCache.delete(key) + } + } + setMaxConcurrentStreams(maxConcurrentStreams) { + if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) { + throw new RangeError( + 'maxConcurrentStreams must be greater than zero.' + ) + } + this.config.maxConcurrency = maxConcurrentStreams + } + setDisableConcurrentStreams(disableConcurrentStreams) { + this.config.disableConcurrency = disableConcurrentStreams + } + getUrlString(request) { + return request.destination.toString() + } + } + __name(_NodeHttp2ConnectionManager, 'NodeHttp2ConnectionManager') + var NodeHttp2ConnectionManager = _NodeHttp2ConnectionManager + + // src/node-http2-handler.ts + var _NodeHttp2Handler = class _NodeHttp2Handler { + constructor(options) { + this.metadata = { handlerProtocol: 'h2' } + this.connectionManager = new NodeHttp2ConnectionManager({}) + this.configProvider = new Promise((resolve, reject) => { + if (typeof options === 'function') { + options() + .then(opts => { + resolve(opts || {}) + }) + .catch(reject) + } else { + resolve(options || {}) + } + }) + } + /** + * @returns the input if it is an HttpHandler of any class, + * or instantiates a new instance of this handler. + */ + static create(instanceOrOptions) { + if ( + typeof (instanceOrOptions == null + ? void 0 + : instanceOrOptions.handle) === 'function' + ) { + return instanceOrOptions + } + return new _NodeHttp2Handler(instanceOrOptions) + } + destroy() { + this.connectionManager.destroy() + } + async handle(request, { abortSignal } = {}) { + if (!this.config) { + this.config = await this.configProvider + this.connectionManager.setDisableConcurrentStreams( + this.config.disableConcurrentStreams || false + ) + if (this.config.maxConcurrentStreams) { + this.connectionManager.setMaxConcurrentStreams( + this.config.maxConcurrentStreams + ) + } + } + const { requestTimeout, disableConcurrentStreams } = this.config + return new Promise((_resolve, _reject) => { + var _a + let fulfilled = false + let writeRequestBodyPromise = void 0 + const resolve = /* @__PURE__ */ __name(async arg => { + await writeRequestBodyPromise + _resolve(arg) + }, 'resolve') + const reject = /* @__PURE__ */ __name(async arg => { + await writeRequestBodyPromise + _reject(arg) + }, 'reject') + if (abortSignal == null ? void 0 : abortSignal.aborted) { + fulfilled = true + const abortError = new Error('Request aborted') + abortError.name = 'AbortError' + reject(abortError) + return + } + const { hostname, method, port, protocol, query } = request + let auth = '' + if (request.username != null || request.password != null) { + const username = request.username ?? '' + const password = request.password ?? '' + auth = `${username}:${password}@` + } + const authority = `${protocol}//${auth}${hostname}${port ? `:${port}` : ''}` + const requestContext = { destination: new URL(authority) } + const session = this.connectionManager.lease(requestContext, { + requestTimeout: + (_a = this.config) == null ? void 0 : _a.sessionTimeout, + disableConcurrentStreams: disableConcurrentStreams || false + }) + const rejectWithDestroy = /* @__PURE__ */ __name(err => { + if (disableConcurrentStreams) { + this.destroySession(session) + } + fulfilled = true + reject(err) + }, 'rejectWithDestroy') + const queryString = (0, + import_querystring_builder.buildQueryString)(query || {}) + let path = request.path + if (queryString) { + path += `?${queryString}` + } + if (request.fragment) { + path += `#${request.fragment}` + } + const req = session.request({ + ...request.headers, + [import_http22.constants.HTTP2_HEADER_PATH]: path, + [import_http22.constants.HTTP2_HEADER_METHOD]: method + }) + session.ref() + req.on('response', headers => { + const httpResponse = new import_protocol_http.HttpResponse({ + statusCode: headers[':status'] || -1, + headers: getTransformedHeaders(headers), + body: req + }) + fulfilled = true + resolve({ response: httpResponse }) + if (disableConcurrentStreams) { + session.close() + this.connectionManager.deleteSession(authority, session) + } + }) + if (requestTimeout) { + req.setTimeout(requestTimeout, () => { + req.close() + const timeoutError = new Error( + `Stream timed out because of no activity for ${requestTimeout} ms` + ) + timeoutError.name = 'TimeoutError' + rejectWithDestroy(timeoutError) + }) + } + if (abortSignal) { + const onAbort = /* @__PURE__ */ __name(() => { + req.close() + const abortError = new Error('Request aborted') + abortError.name = 'AbortError' + rejectWithDestroy(abortError) + }, 'onAbort') + if (typeof abortSignal.addEventListener === 'function') { + const signal = abortSignal + signal.addEventListener('abort', onAbort, { once: true }) + req.once('close', () => + signal.removeEventListener('abort', onAbort) + ) + } else { + abortSignal.onabort = onAbort + } + } + req.on('frameError', (type, code, id) => { + rejectWithDestroy( + new Error( + `Frame type id ${type} in stream id ${id} has failed with code ${code}.` + ) + ) + }) + req.on('error', rejectWithDestroy) + req.on('aborted', () => { + rejectWithDestroy( + new Error( + `HTTP/2 stream is abnormally aborted in mid-communication with result code ${req.rstCode}.` + ) + ) + }) + req.on('close', () => { + session.unref() + if (disableConcurrentStreams) { + session.destroy() + } + if (!fulfilled) { + rejectWithDestroy( + new Error( + 'Unexpected error: http2 request did not get a response' + ) + ) + } + }) + writeRequestBodyPromise = writeRequestBody( + req, + request, + requestTimeout + ) + }) + } + updateHttpClientConfig(key, value) { + this.config = void 0 + this.configProvider = this.configProvider.then(config => { + return { + ...config, + [key]: value + } + }) + } + httpHandlerConfigs() { + return this.config ?? {} + } + /** + * Destroys a session. + * @param session The session to destroy. + */ + destroySession(session) { + if (!session.destroyed) { + session.destroy() + } + } + } + __name(_NodeHttp2Handler, 'NodeHttp2Handler') + var NodeHttp2Handler = _NodeHttp2Handler + // src/stream-collector/collector.ts + var _Collector = class _Collector extends import_stream.Writable { + constructor() { + super(...arguments) + this.bufferedBytes = [] + } + _write(chunk, encoding, callback) { + this.bufferedBytes.push(chunk) + callback() + } + } + __name(_Collector, 'Collector') + var Collector = _Collector -var StartChangeSetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("AWSMPSeymour", "StartChangeSet", {}).n("MarketplaceCatalogClient", "StartChangeSetCommand").f(void 0, void 0).ser(se_StartChangeSetCommand).de(de_StartChangeSetCommand).build() { - static { - __name(this, "StartChangeSetCommand"); - } -}; + // src/stream-collector/index.ts + var streamCollector = /* @__PURE__ */ __name(stream => { + if (isReadableStreamInstance(stream)) { + return collectReadableStream(stream) + } + return new Promise((resolve, reject) => { + const collector = new Collector() + stream.pipe(collector) + stream.on('error', err => { + collector.end() + reject(err) + }) + collector.on('error', reject) + collector.on('finish', function () { + const bytes = new Uint8Array(Buffer.concat(this.bufferedBytes)) + resolve(bytes) + }) + }) + }, 'streamCollector') + var isReadableStreamInstance = /* @__PURE__ */ __name( + stream => + typeof ReadableStream === 'function' && + stream instanceof ReadableStream, + 'isReadableStreamInstance' + ) + async function collectReadableStream(stream) { + const chunks = [] + const reader = stream.getReader() + let isDone = false + let length = 0 + while (!isDone) { + const { done, value } = await reader.read() + if (value) { + chunks.push(value) + length += value.length + } + isDone = done + } + const collected = new Uint8Array(length) + let offset = 0 + for (const chunk of chunks) { + collected.set(chunk, offset) + offset += chunk.length + } + return collected + } + __name(collectReadableStream, 'collectReadableStream') + // Annotate the CommonJS export names for ESM import in node: -// src/commands/TagResourceCommand.ts + 0 && 0 + /***/ + }, + /***/ 64195: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.STSClient = exports.__Client = void 0 + const middleware_host_header_1 = __nccwpck_require__(22545) + const middleware_logger_1 = __nccwpck_require__(20014) + const middleware_recursion_detection_1 = __nccwpck_require__(85525) + const middleware_user_agent_1 = __nccwpck_require__(64688) + const config_resolver_1 = __nccwpck_require__(53098) + const core_1 = __nccwpck_require__(55829) + const middleware_content_length_1 = __nccwpck_require__(82800) + const middleware_endpoint_1 = __nccwpck_require__(82918) + const middleware_retry_1 = __nccwpck_require__(96039) + const smithy_client_1 = __nccwpck_require__(63570) + Object.defineProperty(exports, '__Client', { + enumerable: true, + get: function () { + return smithy_client_1.Client + } + }) + const httpAuthSchemeProvider_1 = __nccwpck_require__(17145) + const EndpointParameters_1 = __nccwpck_require__(20510) + const runtimeConfig_1 = __nccwpck_require__(83405) + const runtimeExtensions_1 = __nccwpck_require__(32053) + class STSClient extends smithy_client_1.Client { + constructor(...[configuration]) { + const _config_0 = (0, runtimeConfig_1.getRuntimeConfig)( + configuration || {} + ) + const _config_1 = (0, + EndpointParameters_1.resolveClientEndpointParameters)(_config_0) + const _config_2 = (0, middleware_user_agent_1.resolveUserAgentConfig)( + _config_1 + ) + const _config_3 = (0, middleware_retry_1.resolveRetryConfig)( + _config_2 + ) + const _config_4 = (0, config_resolver_1.resolveRegionConfig)( + _config_3 + ) + const _config_5 = (0, + middleware_host_header_1.resolveHostHeaderConfig)(_config_4) + const _config_6 = (0, middleware_endpoint_1.resolveEndpointConfig)( + _config_5 + ) + const _config_7 = (0, + httpAuthSchemeProvider_1.resolveHttpAuthSchemeConfig)(_config_6) + const _config_8 = (0, runtimeExtensions_1.resolveRuntimeExtensions)( + _config_7, + configuration?.extensions || [] + ) + super(_config_8) + this.config = _config_8 + this.middlewareStack.use( + (0, middleware_user_agent_1.getUserAgentPlugin)(this.config) + ) + this.middlewareStack.use( + (0, middleware_retry_1.getRetryPlugin)(this.config) + ) + this.middlewareStack.use( + (0, middleware_content_length_1.getContentLengthPlugin)(this.config) + ) + this.middlewareStack.use( + (0, middleware_host_header_1.getHostHeaderPlugin)(this.config) + ) + this.middlewareStack.use( + (0, middleware_logger_1.getLoggerPlugin)(this.config) + ) + this.middlewareStack.use( + (0, middleware_recursion_detection_1.getRecursionDetectionPlugin)( + this.config + ) + ) + this.middlewareStack.use( + (0, core_1.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, { + httpAuthSchemeParametersProvider: + httpAuthSchemeProvider_1.defaultSTSHttpAuthSchemeParametersProvider, + identityProviderConfigProvider: async config => + new core_1.DefaultIdentityProviderConfig({ + 'aws.auth#sigv4': config.credentials + }) + }) + ) + this.middlewareStack.use( + (0, core_1.getHttpSigningPlugin)(this.config) + ) + } + destroy() { + super.destroy() + } + } + exports.STSClient = STSClient -var TagResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("AWSMPSeymour", "TagResource", {}).n("MarketplaceCatalogClient", "TagResourceCommand").f(void 0, void 0).ser(se_TagResourceCommand).de(de_TagResourceCommand).build() { - static { - __name(this, "TagResourceCommand"); - } -}; + /***/ + }, -// src/commands/UntagResourceCommand.ts + /***/ 28527: /***/ (__unused_webpack_module, exports) => { + 'use strict' + Object.defineProperty(exports, '__esModule', { value: true }) + exports.resolveHttpAuthRuntimeConfig = + exports.getHttpAuthExtensionConfiguration = void 0 + const getHttpAuthExtensionConfiguration = runtimeConfig => { + const _httpAuthSchemes = runtimeConfig.httpAuthSchemes + let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider + let _credentials = runtimeConfig.credentials + return { + setHttpAuthScheme(httpAuthScheme) { + const index = _httpAuthSchemes.findIndex( + scheme => scheme.schemeId === httpAuthScheme.schemeId + ) + if (index === -1) { + _httpAuthSchemes.push(httpAuthScheme) + } else { + _httpAuthSchemes.splice(index, 1, httpAuthScheme) + } + }, + httpAuthSchemes() { + return _httpAuthSchemes + }, + setHttpAuthSchemeProvider(httpAuthSchemeProvider) { + _httpAuthSchemeProvider = httpAuthSchemeProvider + }, + httpAuthSchemeProvider() { + return _httpAuthSchemeProvider + }, + setCredentials(credentials) { + _credentials = credentials + }, + credentials() { + return _credentials + } + } + } + exports.getHttpAuthExtensionConfiguration = + getHttpAuthExtensionConfiguration + const resolveHttpAuthRuntimeConfig = config => { + return { + httpAuthSchemes: config.httpAuthSchemes(), + httpAuthSchemeProvider: config.httpAuthSchemeProvider(), + credentials: config.credentials() + } + } + exports.resolveHttpAuthRuntimeConfig = resolveHttpAuthRuntimeConfig + /***/ + }, -var UntagResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("AWSMPSeymour", "UntagResource", {}).n("MarketplaceCatalogClient", "UntagResourceCommand").f(void 0, void 0).ser(se_UntagResourceCommand).de(de_UntagResourceCommand).build() { - static { - __name(this, "UntagResourceCommand"); - } -}; - -// src/MarketplaceCatalog.ts -var commands = { - BatchDescribeEntitiesCommand, - CancelChangeSetCommand, - DeleteResourcePolicyCommand, - DescribeChangeSetCommand, - DescribeEntityCommand, - GetResourcePolicyCommand, - ListChangeSetsCommand, - ListEntitiesCommand, - ListTagsForResourceCommand, - PutResourcePolicyCommand, - StartChangeSetCommand, - TagResourceCommand, - UntagResourceCommand -}; -var MarketplaceCatalog = class extends MarketplaceCatalogClient { - static { - __name(this, "MarketplaceCatalog"); - } -}; -(0, import_smithy_client.createAggregatedClient)(commands, MarketplaceCatalog); - -// src/pagination/ListChangeSetsPaginator.ts - -var paginateListChangeSets = (0, import_core.createPaginator)(MarketplaceCatalogClient, ListChangeSetsCommand, "NextToken", "NextToken", "MaxResults"); - -// src/pagination/ListEntitiesPaginator.ts - -var paginateListEntities = (0, import_core.createPaginator)(MarketplaceCatalogClient, ListEntitiesCommand, "NextToken", "NextToken", "MaxResults"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 44506: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getRuntimeConfig = void 0; -const tslib_1 = __nccwpck_require__(4351); -const package_json_1 = tslib_1.__importDefault(__nccwpck_require__(80280)); -const core_1 = __nccwpck_require__(69736); -const credential_provider_node_1 = __nccwpck_require__(75663); -const util_user_agent_node_1 = __nccwpck_require__(37896); -const config_resolver_1 = __nccwpck_require__(47517); -const hash_node_1 = __nccwpck_require__(52998); -const middleware_retry_1 = __nccwpck_require__(74268); -const node_config_provider_1 = __nccwpck_require__(6706); -const node_http_handler_1 = __nccwpck_require__(55239); -const util_body_length_node_1 = __nccwpck_require__(10327); -const util_retry_1 = __nccwpck_require__(31955); -const runtimeConfig_shared_1 = __nccwpck_require__(68488); -const smithy_client_1 = __nccwpck_require__(76583); -const util_defaults_mode_node_1 = __nccwpck_require__(32855); -const smithy_client_2 = __nccwpck_require__(76583); -const getRuntimeConfig = (config) => { - (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version); - const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config); - const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode); - const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config); - (0, core_1.emitWarningIfUnsupportedVersion)(process.version); - const profileConfig = { profile: config?.profile }; - return { - ...clientSharedValues, - ...config, - runtime: "node", - defaultsMode, - bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength, - credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider, - defaultUserAgentProvider: config?.defaultUserAgentProvider ?? - (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }), - maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config), - region: config?.region ?? - (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...profileConfig }), - requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider), - retryMode: config?.retryMode ?? - (0, node_config_provider_1.loadConfig)({ - ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS, - default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE, - }, config), - sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, "sha256"), - streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector, - useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, profileConfig), - useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, profileConfig), - userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, profileConfig), - }; -}; -exports.getRuntimeConfig = getRuntimeConfig; - - -/***/ }), - -/***/ 68488: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getRuntimeConfig = void 0; -const core_1 = __nccwpck_require__(69736); -const smithy_client_1 = __nccwpck_require__(76583); -const url_parser_1 = __nccwpck_require__(57247); -const util_base64_1 = __nccwpck_require__(87656); -const util_utf8_1 = __nccwpck_require__(94377); -const httpAuthSchemeProvider_1 = __nccwpck_require__(59221); -const endpointResolver_1 = __nccwpck_require__(53211); -const getRuntimeConfig = (config) => { - return { - apiVersion: "2018-09-17", - base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64, - base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64, - disableHostPrefix: config?.disableHostPrefix ?? false, - endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver, - extensions: config?.extensions ?? [], - httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultMarketplaceCatalogHttpAuthSchemeProvider, - httpAuthSchemes: config?.httpAuthSchemes ?? [ - { - schemeId: "aws.auth#sigv4", - identityProvider: (ipc) => ipc.getIdentityProvider("aws.auth#sigv4"), - signer: new core_1.AwsSdkSigV4Signer(), - }, - ], - logger: config?.logger ?? new smithy_client_1.NoOpLogger(), - serviceId: config?.serviceId ?? "Marketplace Catalog", - urlParser: config?.urlParser ?? url_parser_1.parseUrl, - utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8, - utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8, - }; -}; -exports.getRuntimeConfig = getRuntimeConfig; - - -/***/ }), - -/***/ 60801: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.resolveHttpAuthSchemeConfig = exports.defaultSSOHttpAuthSchemeProvider = exports.defaultSSOHttpAuthSchemeParametersProvider = void 0; -const core_1 = __nccwpck_require__(69736); -const util_middleware_1 = __nccwpck_require__(69474); -const defaultSSOHttpAuthSchemeParametersProvider = async (config, context, input) => { - return { - operation: (0, util_middleware_1.getSmithyContext)(context).operation, - region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) || + /***/ 17145: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.resolveHttpAuthSchemeConfig = + exports.resolveStsAuthConfig = + exports.defaultSTSHttpAuthSchemeProvider = + exports.defaultSTSHttpAuthSchemeParametersProvider = + void 0 + const core_1 = __nccwpck_require__(59963) + const util_middleware_1 = __nccwpck_require__(2390) + const STSClient_1 = __nccwpck_require__(64195) + const defaultSTSHttpAuthSchemeParametersProvider = async ( + config, + context, + input + ) => { + return { + operation: (0, util_middleware_1.getSmithyContext)(context).operation, + region: + (await (0, util_middleware_1.normalizeProvider)(config.region)()) || (() => { - throw new Error("expected `region` to be configured for `aws.auth#sigv4`"); - })(), - }; -}; -exports.defaultSSOHttpAuthSchemeParametersProvider = defaultSSOHttpAuthSchemeParametersProvider; -function createAwsAuthSigv4HttpAuthOption(authParameters) { - return { - schemeId: "aws.auth#sigv4", - signingProperties: { - name: "awsssoportal", - region: authParameters.region, - }, - propertiesExtractor: (config, context) => ({ + throw new Error( + 'expected `region` to be configured for `aws.auth#sigv4`' + ) + })() + } + } + exports.defaultSTSHttpAuthSchemeParametersProvider = + defaultSTSHttpAuthSchemeParametersProvider + function createAwsAuthSigv4HttpAuthOption(authParameters) { + return { + schemeId: 'aws.auth#sigv4', + signingProperties: { + name: 'sts', + region: authParameters.region + }, + propertiesExtractor: (config, context) => ({ signingProperties: { - config, - context, - }, - }), - }; -} -function createSmithyApiNoAuthHttpAuthOption(authParameters) { - return { - schemeId: "smithy.api#noAuth", - }; -} -const defaultSSOHttpAuthSchemeProvider = (authParameters) => { - const options = []; - switch (authParameters.operation) { - case "GetRoleCredentials": { - options.push(createSmithyApiNoAuthHttpAuthOption(authParameters)); - break; - } - case "ListAccountRoles": { - options.push(createSmithyApiNoAuthHttpAuthOption(authParameters)); - break; - } - case "ListAccounts": { - options.push(createSmithyApiNoAuthHttpAuthOption(authParameters)); - break; - } - case "Logout": { - options.push(createSmithyApiNoAuthHttpAuthOption(authParameters)); - break; - } - default: { - options.push(createAwsAuthSigv4HttpAuthOption(authParameters)); + config, + context + } + }) } - } - return options; -}; -exports.defaultSSOHttpAuthSchemeProvider = defaultSSOHttpAuthSchemeProvider; -const resolveHttpAuthSchemeConfig = (config) => { - const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config); - return Object.assign(config_0, {}); -}; -exports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig; - - -/***/ }), - -/***/ 16008: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.defaultEndpointResolver = void 0; -const util_endpoints_1 = __nccwpck_require__(24253); -const util_endpoints_2 = __nccwpck_require__(76779); -const ruleset_1 = __nccwpck_require__(49020); -const cache = new util_endpoints_2.EndpointCache({ - size: 50, - params: ["Endpoint", "Region", "UseDualStack", "UseFIPS"], -}); -const defaultEndpointResolver = (endpointParams, context = {}) => { - return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, { - endpointParams: endpointParams, - logger: context.logger, - })); -}; -exports.defaultEndpointResolver = defaultEndpointResolver; -util_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions; - - -/***/ }), - -/***/ 49020: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.ruleSet = void 0; -const u = "required", v = "fn", w = "argv", x = "ref"; -const a = true, b = "isSet", c = "booleanEquals", d = "error", e = "endpoint", f = "tree", g = "PartitionResult", h = "getAttr", i = { [u]: false, "type": "String" }, j = { [u]: true, "default": false, "type": "Boolean" }, k = { [x]: "Endpoint" }, l = { [v]: c, [w]: [{ [x]: "UseFIPS" }, true] }, m = { [v]: c, [w]: [{ [x]: "UseDualStack" }, true] }, n = {}, o = { [v]: h, [w]: [{ [x]: g }, "supportsFIPS"] }, p = { [x]: g }, q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, "supportsDualStack"] }] }, r = [l], s = [m], t = [{ [x]: "Region" }]; -const _data = { version: "1.0", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [v]: b, [w]: [k] }], rules: [{ conditions: r, error: "Invalid Configuration: FIPS and custom endpoint are not supported", type: d }, { conditions: s, error: "Invalid Configuration: Dualstack and custom endpoint are not supported", type: d }, { endpoint: { url: k, properties: n, headers: n }, type: e }], type: f }, { conditions: [{ [v]: b, [w]: t }], rules: [{ conditions: [{ [v]: "aws.partition", [w]: t, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [v]: c, [w]: [a, o] }, q], rules: [{ endpoint: { url: "https://portal.sso-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", properties: n, headers: n }, type: e }], type: f }, { error: "FIPS and DualStack are enabled, but this partition does not support one or both", type: d }], type: f }, { conditions: r, rules: [{ conditions: [{ [v]: c, [w]: [o, a] }], rules: [{ conditions: [{ [v]: "stringEquals", [w]: [{ [v]: h, [w]: [p, "name"] }, "aws-us-gov"] }], endpoint: { url: "https://portal.sso.{Region}.amazonaws.com", properties: n, headers: n }, type: e }, { endpoint: { url: "https://portal.sso-fips.{Region}.{PartitionResult#dnsSuffix}", properties: n, headers: n }, type: e }], type: f }, { error: "FIPS is enabled but this partition does not support FIPS", type: d }], type: f }, { conditions: s, rules: [{ conditions: [q], rules: [{ endpoint: { url: "https://portal.sso.{Region}.{PartitionResult#dualStackDnsSuffix}", properties: n, headers: n }, type: e }], type: f }, { error: "DualStack is enabled but this partition does not support DualStack", type: d }], type: f }, { endpoint: { url: "https://portal.sso.{Region}.{PartitionResult#dnsSuffix}", properties: n, headers: n }, type: e }], type: f }], type: f }, { error: "Invalid Configuration: Missing Region", type: d }] }; -exports.ruleSet = _data; - - -/***/ }), - -/***/ 11475: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var index_exports = {}; -__export(index_exports, { - GetRoleCredentialsCommand: () => GetRoleCredentialsCommand, - GetRoleCredentialsRequestFilterSensitiveLog: () => GetRoleCredentialsRequestFilterSensitiveLog, - GetRoleCredentialsResponseFilterSensitiveLog: () => GetRoleCredentialsResponseFilterSensitiveLog, - InvalidRequestException: () => InvalidRequestException, - ListAccountRolesCommand: () => ListAccountRolesCommand, - ListAccountRolesRequestFilterSensitiveLog: () => ListAccountRolesRequestFilterSensitiveLog, - ListAccountsCommand: () => ListAccountsCommand, - ListAccountsRequestFilterSensitiveLog: () => ListAccountsRequestFilterSensitiveLog, - LogoutCommand: () => LogoutCommand, - LogoutRequestFilterSensitiveLog: () => LogoutRequestFilterSensitiveLog, - ResourceNotFoundException: () => ResourceNotFoundException, - RoleCredentialsFilterSensitiveLog: () => RoleCredentialsFilterSensitiveLog, - SSO: () => SSO, - SSOClient: () => SSOClient, - SSOServiceException: () => SSOServiceException, - TooManyRequestsException: () => TooManyRequestsException, - UnauthorizedException: () => UnauthorizedException, - __Client: () => import_smithy_client.Client, - paginateListAccountRoles: () => paginateListAccountRoles, - paginateListAccounts: () => paginateListAccounts -}); -module.exports = __toCommonJS(index_exports); - -// src/SSOClient.ts -var import_middleware_host_header = __nccwpck_require__(11046); -var import_middleware_logger = __nccwpck_require__(26622); -var import_middleware_recursion_detection = __nccwpck_require__(33544); -var import_middleware_user_agent = __nccwpck_require__(9711); -var import_config_resolver = __nccwpck_require__(47517); -var import_core = __nccwpck_require__(27588); -var import_middleware_content_length = __nccwpck_require__(34305); -var import_middleware_endpoint = __nccwpck_require__(13636); -var import_middleware_retry = __nccwpck_require__(74268); - -var import_httpAuthSchemeProvider = __nccwpck_require__(60801); - -// src/endpoint/EndpointParameters.ts -var resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => { - return Object.assign(options, { - useDualstackEndpoint: options.useDualstackEndpoint ?? false, - useFipsEndpoint: options.useFipsEndpoint ?? false, - defaultSigningName: "awsssoportal" - }); -}, "resolveClientEndpointParameters"); -var commonParams = { - UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" }, - Endpoint: { type: "builtInParams", name: "endpoint" }, - Region: { type: "builtInParams", name: "region" }, - UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" } -}; - -// src/SSOClient.ts -var import_runtimeConfig = __nccwpck_require__(79833); - -// src/runtimeExtensions.ts -var import_region_config_resolver = __nccwpck_require__(56088); -var import_protocol_http = __nccwpck_require__(31788); -var import_smithy_client = __nccwpck_require__(76583); - -// src/auth/httpAuthExtensionConfiguration.ts -var getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => { - const _httpAuthSchemes = runtimeConfig.httpAuthSchemes; - let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider; - let _credentials = runtimeConfig.credentials; - return { - setHttpAuthScheme(httpAuthScheme) { - const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId); - if (index === -1) { - _httpAuthSchemes.push(httpAuthScheme); - } else { - _httpAuthSchemes.splice(index, 1, httpAuthScheme); } - }, - httpAuthSchemes() { - return _httpAuthSchemes; - }, - setHttpAuthSchemeProvider(httpAuthSchemeProvider) { - _httpAuthSchemeProvider = httpAuthSchemeProvider; - }, - httpAuthSchemeProvider() { - return _httpAuthSchemeProvider; - }, - setCredentials(credentials) { - _credentials = credentials; - }, - credentials() { - return _credentials; - } - }; -}, "getHttpAuthExtensionConfiguration"); -var resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => { - return { - httpAuthSchemes: config.httpAuthSchemes(), - httpAuthSchemeProvider: config.httpAuthSchemeProvider(), - credentials: config.credentials() - }; -}, "resolveHttpAuthRuntimeConfig"); - -// src/runtimeExtensions.ts -var resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => { - const extensionConfiguration = Object.assign( - (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig), - (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig), - (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig), - getHttpAuthExtensionConfiguration(runtimeConfig) - ); - extensions.forEach((extension) => extension.configure(extensionConfiguration)); - return Object.assign( - runtimeConfig, - (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration), - (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration), - (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration), - resolveHttpAuthRuntimeConfig(extensionConfiguration) - ); -}, "resolveRuntimeExtensions"); - -// src/SSOClient.ts -var SSOClient = class extends import_smithy_client.Client { - static { - __name(this, "SSOClient"); - } - /** - * The resolved configuration of SSOClient class. This is resolved and normalized from the {@link SSOClientConfig | constructor configuration interface}. - */ - config; - constructor(...[configuration]) { - const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {}); - super(_config_0); - this.initConfig = _config_0; - const _config_1 = resolveClientEndpointParameters(_config_0); - const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1); - const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2); - const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3); - const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4); - const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5); - const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6); - const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); - this.config = _config_8; - this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config)); - this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config)); - this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config)); - this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config)); - this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config)); - this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config)); - this.middlewareStack.use( - (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, { - httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultSSOHttpAuthSchemeParametersProvider, - identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({ - "aws.auth#sigv4": config.credentials - }), "identityProviderConfigProvider") + function createSmithyApiNoAuthHttpAuthOption(authParameters) { + return { + schemeId: 'smithy.api#noAuth' + } + } + const defaultSTSHttpAuthSchemeProvider = authParameters => { + const options = [] + switch (authParameters.operation) { + case 'AssumeRoleWithSAML': { + options.push(createSmithyApiNoAuthHttpAuthOption(authParameters)) + break + } + case 'AssumeRoleWithWebIdentity': { + options.push(createSmithyApiNoAuthHttpAuthOption(authParameters)) + break + } + default: { + options.push(createAwsAuthSigv4HttpAuthOption(authParameters)) + } + } + return options + } + exports.defaultSTSHttpAuthSchemeProvider = + defaultSTSHttpAuthSchemeProvider + const resolveStsAuthConfig = input => ({ + ...input, + stsClientCtor: STSClient_1.STSClient }) - ); - this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config)); - } - /** - * Destroy underlying resources, like sockets. It's usually not necessary to do this. - * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed. - * Otherwise, sockets might stay open for quite a long time before the server terminates them. - */ - destroy() { - super.destroy(); - } -}; - -// src/SSO.ts - - -// src/commands/GetRoleCredentialsCommand.ts - -var import_middleware_serde = __nccwpck_require__(88037); - - -// src/models/models_0.ts - - -// src/models/SSOServiceException.ts - -var SSOServiceException = class _SSOServiceException extends import_smithy_client.ServiceException { - static { - __name(this, "SSOServiceException"); - } - /** - * @internal - */ - constructor(options) { - super(options); - Object.setPrototypeOf(this, _SSOServiceException.prototype); - } -}; - -// src/models/models_0.ts -var InvalidRequestException = class _InvalidRequestException extends SSOServiceException { - static { - __name(this, "InvalidRequestException"); - } - name = "InvalidRequestException"; - $fault = "client"; - /** - * @internal - */ - constructor(opts) { - super({ - name: "InvalidRequestException", - $fault: "client", - ...opts - }); - Object.setPrototypeOf(this, _InvalidRequestException.prototype); - } -}; -var ResourceNotFoundException = class _ResourceNotFoundException extends SSOServiceException { - static { - __name(this, "ResourceNotFoundException"); - } - name = "ResourceNotFoundException"; - $fault = "client"; - /** - * @internal - */ - constructor(opts) { - super({ - name: "ResourceNotFoundException", - $fault: "client", - ...opts - }); - Object.setPrototypeOf(this, _ResourceNotFoundException.prototype); - } -}; -var TooManyRequestsException = class _TooManyRequestsException extends SSOServiceException { - static { - __name(this, "TooManyRequestsException"); - } - name = "TooManyRequestsException"; - $fault = "client"; - /** - * @internal - */ - constructor(opts) { - super({ - name: "TooManyRequestsException", - $fault: "client", - ...opts - }); - Object.setPrototypeOf(this, _TooManyRequestsException.prototype); - } -}; -var UnauthorizedException = class _UnauthorizedException extends SSOServiceException { - static { - __name(this, "UnauthorizedException"); - } - name = "UnauthorizedException"; - $fault = "client"; - /** - * @internal - */ - constructor(opts) { - super({ - name: "UnauthorizedException", - $fault: "client", - ...opts - }); - Object.setPrototypeOf(this, _UnauthorizedException.prototype); - } -}; -var GetRoleCredentialsRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({ - ...obj, - ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING } -}), "GetRoleCredentialsRequestFilterSensitiveLog"); -var RoleCredentialsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({ - ...obj, - ...obj.secretAccessKey && { secretAccessKey: import_smithy_client.SENSITIVE_STRING }, - ...obj.sessionToken && { sessionToken: import_smithy_client.SENSITIVE_STRING } -}), "RoleCredentialsFilterSensitiveLog"); -var GetRoleCredentialsResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({ - ...obj, - ...obj.roleCredentials && { roleCredentials: RoleCredentialsFilterSensitiveLog(obj.roleCredentials) } -}), "GetRoleCredentialsResponseFilterSensitiveLog"); -var ListAccountRolesRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({ - ...obj, - ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING } -}), "ListAccountRolesRequestFilterSensitiveLog"); -var ListAccountsRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({ - ...obj, - ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING } -}), "ListAccountsRequestFilterSensitiveLog"); -var LogoutRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({ - ...obj, - ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING } -}), "LogoutRequestFilterSensitiveLog"); - -// src/protocols/Aws_restJson1.ts -var import_core2 = __nccwpck_require__(69736); - - -var se_GetRoleCredentialsCommand = /* @__PURE__ */ __name(async (input, context) => { - const b = (0, import_core.requestBuilder)(input, context); - const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, { - [_xasbt]: input[_aT] - }); - b.bp("/federation/credentials"); - const query = (0, import_smithy_client.map)({ - [_rn]: [, (0, import_smithy_client.expectNonNull)(input[_rN], `roleName`)], - [_ai]: [, (0, import_smithy_client.expectNonNull)(input[_aI], `accountId`)] - }); - let body; - b.m("GET").h(headers).q(query).b(body); - return b.build(); -}, "se_GetRoleCredentialsCommand"); -var se_ListAccountRolesCommand = /* @__PURE__ */ __name(async (input, context) => { - const b = (0, import_core.requestBuilder)(input, context); - const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, { - [_xasbt]: input[_aT] - }); - b.bp("/assignment/roles"); - const query = (0, import_smithy_client.map)({ - [_nt]: [, input[_nT]], - [_mr]: [() => input.maxResults !== void 0, () => input[_mR].toString()], - [_ai]: [, (0, import_smithy_client.expectNonNull)(input[_aI], `accountId`)] - }); - let body; - b.m("GET").h(headers).q(query).b(body); - return b.build(); -}, "se_ListAccountRolesCommand"); -var se_ListAccountsCommand = /* @__PURE__ */ __name(async (input, context) => { - const b = (0, import_core.requestBuilder)(input, context); - const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, { - [_xasbt]: input[_aT] - }); - b.bp("/assignment/accounts"); - const query = (0, import_smithy_client.map)({ - [_nt]: [, input[_nT]], - [_mr]: [() => input.maxResults !== void 0, () => input[_mR].toString()] - }); - let body; - b.m("GET").h(headers).q(query).b(body); - return b.build(); -}, "se_ListAccountsCommand"); -var se_LogoutCommand = /* @__PURE__ */ __name(async (input, context) => { - const b = (0, import_core.requestBuilder)(input, context); - const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, { - [_xasbt]: input[_aT] - }); - b.bp("/logout"); - let body; - b.m("POST").h(headers).b(body); - return b.build(); -}, "se_LogoutCommand"); -var de_GetRoleCredentialsCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_CommandError(output, context); - } - const contents = (0, import_smithy_client.map)({ - $metadata: deserializeMetadata(output) - }); - const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), "body"); - const doc = (0, import_smithy_client.take)(data, { - roleCredentials: import_smithy_client._json - }); - Object.assign(contents, doc); - return contents; -}, "de_GetRoleCredentialsCommand"); -var de_ListAccountRolesCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_CommandError(output, context); - } - const contents = (0, import_smithy_client.map)({ - $metadata: deserializeMetadata(output) - }); - const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), "body"); - const doc = (0, import_smithy_client.take)(data, { - nextToken: import_smithy_client.expectString, - roleList: import_smithy_client._json - }); - Object.assign(contents, doc); - return contents; -}, "de_ListAccountRolesCommand"); -var de_ListAccountsCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_CommandError(output, context); - } - const contents = (0, import_smithy_client.map)({ - $metadata: deserializeMetadata(output) - }); - const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), "body"); - const doc = (0, import_smithy_client.take)(data, { - accountList: import_smithy_client._json, - nextToken: import_smithy_client.expectString - }); - Object.assign(contents, doc); - return contents; -}, "de_ListAccountsCommand"); -var de_LogoutCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_CommandError(output, context); - } - const contents = (0, import_smithy_client.map)({ - $metadata: deserializeMetadata(output) - }); - await (0, import_smithy_client.collectBody)(output.body, context); - return contents; -}, "de_LogoutCommand"); -var de_CommandError = /* @__PURE__ */ __name(async (output, context) => { - const parsedOutput = { - ...output, - body: await (0, import_core2.parseJsonErrorBody)(output.body, context) - }; - const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body); - switch (errorCode) { - case "InvalidRequestException": - case "com.amazonaws.sso#InvalidRequestException": - throw await de_InvalidRequestExceptionRes(parsedOutput, context); - case "ResourceNotFoundException": - case "com.amazonaws.sso#ResourceNotFoundException": - throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); - case "TooManyRequestsException": - case "com.amazonaws.sso#TooManyRequestsException": - throw await de_TooManyRequestsExceptionRes(parsedOutput, context); - case "UnauthorizedException": - case "com.amazonaws.sso#UnauthorizedException": - throw await de_UnauthorizedExceptionRes(parsedOutput, context); - default: - const parsedBody = parsedOutput.body; - return throwDefaultError({ - output, - parsedBody, - errorCode - }); - } -}, "de_CommandError"); -var throwDefaultError = (0, import_smithy_client.withBaseException)(SSOServiceException); -var de_InvalidRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const contents = (0, import_smithy_client.map)({}); - const data = parsedOutput.body; - const doc = (0, import_smithy_client.take)(data, { - message: import_smithy_client.expectString - }); - Object.assign(contents, doc); - const exception = new InvalidRequestException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents - }); - return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body); -}, "de_InvalidRequestExceptionRes"); -var de_ResourceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const contents = (0, import_smithy_client.map)({}); - const data = parsedOutput.body; - const doc = (0, import_smithy_client.take)(data, { - message: import_smithy_client.expectString - }); - Object.assign(contents, doc); - const exception = new ResourceNotFoundException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents - }); - return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body); -}, "de_ResourceNotFoundExceptionRes"); -var de_TooManyRequestsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const contents = (0, import_smithy_client.map)({}); - const data = parsedOutput.body; - const doc = (0, import_smithy_client.take)(data, { - message: import_smithy_client.expectString - }); - Object.assign(contents, doc); - const exception = new TooManyRequestsException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents - }); - return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body); -}, "de_TooManyRequestsExceptionRes"); -var de_UnauthorizedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const contents = (0, import_smithy_client.map)({}); - const data = parsedOutput.body; - const doc = (0, import_smithy_client.take)(data, { - message: import_smithy_client.expectString - }); - Object.assign(contents, doc); - const exception = new UnauthorizedException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents - }); - return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body); -}, "de_UnauthorizedExceptionRes"); -var deserializeMetadata = /* @__PURE__ */ __name((output) => ({ - httpStatusCode: output.statusCode, - requestId: output.headers["x-amzn-requestid"] ?? output.headers["x-amzn-request-id"] ?? output.headers["x-amz-request-id"], - extendedRequestId: output.headers["x-amz-id-2"], - cfId: output.headers["x-amz-cf-id"] -}), "deserializeMetadata"); -var _aI = "accountId"; -var _aT = "accessToken"; -var _ai = "account_id"; -var _mR = "maxResults"; -var _mr = "max_result"; -var _nT = "nextToken"; -var _nt = "next_token"; -var _rN = "roleName"; -var _rn = "role_name"; -var _xasbt = "x-amz-sso_bearer_token"; - -// src/commands/GetRoleCredentialsCommand.ts -var GetRoleCredentialsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("SWBPortalService", "GetRoleCredentials", {}).n("SSOClient", "GetRoleCredentialsCommand").f(GetRoleCredentialsRequestFilterSensitiveLog, GetRoleCredentialsResponseFilterSensitiveLog).ser(se_GetRoleCredentialsCommand).de(de_GetRoleCredentialsCommand).build() { - static { - __name(this, "GetRoleCredentialsCommand"); - } -}; - -// src/commands/ListAccountRolesCommand.ts + exports.resolveStsAuthConfig = resolveStsAuthConfig + const resolveHttpAuthSchemeConfig = config => { + const config_0 = (0, exports.resolveStsAuthConfig)(config) + const config_1 = (0, core_1.resolveAwsSdkSigV4Config)(config_0) + return { + ...config_1 + } + } + exports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig + /***/ + }, + /***/ 20510: /***/ (__unused_webpack_module, exports) => { + 'use strict' -var ListAccountRolesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("SWBPortalService", "ListAccountRoles", {}).n("SSOClient", "ListAccountRolesCommand").f(ListAccountRolesRequestFilterSensitiveLog, void 0).ser(se_ListAccountRolesCommand).de(de_ListAccountRolesCommand).build() { - static { - __name(this, "ListAccountRolesCommand"); - } -}; + Object.defineProperty(exports, '__esModule', { value: true }) + exports.commonParams = exports.resolveClientEndpointParameters = void 0 + const resolveClientEndpointParameters = options => { + return { + ...options, + useDualstackEndpoint: options.useDualstackEndpoint ?? false, + useFipsEndpoint: options.useFipsEndpoint ?? false, + useGlobalEndpoint: options.useGlobalEndpoint ?? false, + defaultSigningName: 'sts' + } + } + exports.resolveClientEndpointParameters = resolveClientEndpointParameters + exports.commonParams = { + UseGlobalEndpoint: { type: 'builtInParams', name: 'useGlobalEndpoint' }, + UseFIPS: { type: 'builtInParams', name: 'useFipsEndpoint' }, + Endpoint: { type: 'builtInParams', name: 'endpoint' }, + Region: { type: 'builtInParams', name: 'region' }, + UseDualStack: { type: 'builtInParams', name: 'useDualstackEndpoint' } + } -// src/commands/ListAccountsCommand.ts + /***/ + }, + /***/ 41203: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.defaultEndpointResolver = void 0 + const util_endpoints_1 = __nccwpck_require__(13350) + const util_endpoints_2 = __nccwpck_require__(45473) + const ruleset_1 = __nccwpck_require__(86882) + const defaultEndpointResolver = (endpointParams, context = {}) => { + return (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, { + endpointParams: endpointParams, + logger: context.logger + }) + } + exports.defaultEndpointResolver = defaultEndpointResolver + util_endpoints_2.customEndpointFunctions.aws = + util_endpoints_1.awsEndpointFunctions + /***/ + }, -var ListAccountsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("SWBPortalService", "ListAccounts", {}).n("SSOClient", "ListAccountsCommand").f(ListAccountsRequestFilterSensitiveLog, void 0).ser(se_ListAccountsCommand).de(de_ListAccountsCommand).build() { - static { - __name(this, "ListAccountsCommand"); - } -}; + /***/ 86882: /***/ (__unused_webpack_module, exports) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.ruleSet = void 0 + const F = 'required', + G = 'type', + H = 'fn', + I = 'argv', + J = 'ref' + const a = false, + b = true, + c = 'booleanEquals', + d = 'stringEquals', + e = 'sigv4', + f = 'sts', + g = 'us-east-1', + h = 'endpoint', + i = 'https://sts.{Region}.{PartitionResult#dnsSuffix}', + j = 'tree', + k = 'error', + l = 'getAttr', + m = { [F]: false, [G]: 'String' }, + n = { [F]: true, default: false, [G]: 'Boolean' }, + o = { [J]: 'Endpoint' }, + p = { [H]: 'isSet', [I]: [{ [J]: 'Region' }] }, + q = { [J]: 'Region' }, + r = { [H]: 'aws.partition', [I]: [q], assign: 'PartitionResult' }, + s = { [J]: 'UseFIPS' }, + t = { [J]: 'UseDualStack' }, + u = { + url: 'https://sts.amazonaws.com', + properties: { + authSchemes: [{ name: e, signingName: f, signingRegion: g }] + }, + headers: {} + }, + v = {}, + w = { + conditions: [{ [H]: d, [I]: [q, 'aws-global'] }], + [h]: u, + [G]: h + }, + x = { [H]: c, [I]: [s, true] }, + y = { [H]: c, [I]: [t, true] }, + z = { [H]: l, [I]: [{ [J]: 'PartitionResult' }, 'supportsFIPS'] }, + A = { [J]: 'PartitionResult' }, + B = { [H]: c, [I]: [true, { [H]: l, [I]: [A, 'supportsDualStack'] }] }, + C = [{ [H]: 'isSet', [I]: [o] }], + D = [x], + E = [y] + const _data = { + version: '1.0', + parameters: { + Region: m, + UseDualStack: n, + UseFIPS: n, + Endpoint: m, + UseGlobalEndpoint: n + }, + rules: [ + { + conditions: [ + { [H]: c, [I]: [{ [J]: 'UseGlobalEndpoint' }, b] }, + { [H]: 'not', [I]: C }, + p, + r, + { [H]: c, [I]: [s, a] }, + { [H]: c, [I]: [t, a] } + ], + rules: [ + { + conditions: [{ [H]: d, [I]: [q, 'ap-northeast-1'] }], + endpoint: u, + [G]: h + }, + { + conditions: [{ [H]: d, [I]: [q, 'ap-south-1'] }], + endpoint: u, + [G]: h + }, + { + conditions: [{ [H]: d, [I]: [q, 'ap-southeast-1'] }], + endpoint: u, + [G]: h + }, + { + conditions: [{ [H]: d, [I]: [q, 'ap-southeast-2'] }], + endpoint: u, + [G]: h + }, + w, + { + conditions: [{ [H]: d, [I]: [q, 'ca-central-1'] }], + endpoint: u, + [G]: h + }, + { + conditions: [{ [H]: d, [I]: [q, 'eu-central-1'] }], + endpoint: u, + [G]: h + }, + { + conditions: [{ [H]: d, [I]: [q, 'eu-north-1'] }], + endpoint: u, + [G]: h + }, + { + conditions: [{ [H]: d, [I]: [q, 'eu-west-1'] }], + endpoint: u, + [G]: h + }, + { + conditions: [{ [H]: d, [I]: [q, 'eu-west-2'] }], + endpoint: u, + [G]: h + }, + { + conditions: [{ [H]: d, [I]: [q, 'eu-west-3'] }], + endpoint: u, + [G]: h + }, + { + conditions: [{ [H]: d, [I]: [q, 'sa-east-1'] }], + endpoint: u, + [G]: h + }, + { conditions: [{ [H]: d, [I]: [q, g] }], endpoint: u, [G]: h }, + { + conditions: [{ [H]: d, [I]: [q, 'us-east-2'] }], + endpoint: u, + [G]: h + }, + { + conditions: [{ [H]: d, [I]: [q, 'us-west-1'] }], + endpoint: u, + [G]: h + }, + { + conditions: [{ [H]: d, [I]: [q, 'us-west-2'] }], + endpoint: u, + [G]: h + }, + { + endpoint: { + url: i, + properties: { + authSchemes: [ + { name: e, signingName: f, signingRegion: '{Region}' } + ] + }, + headers: v + }, + [G]: h + } + ], + [G]: j + }, + { + conditions: C, + rules: [ + { + conditions: D, + error: + 'Invalid Configuration: FIPS and custom endpoint are not supported', + [G]: k + }, + { + conditions: E, + error: + 'Invalid Configuration: Dualstack and custom endpoint are not supported', + [G]: k + }, + { endpoint: { url: o, properties: v, headers: v }, [G]: h } + ], + [G]: j + }, + { + conditions: [p], + rules: [ + { + conditions: [r], + rules: [ + { + conditions: [x, y], + rules: [ + { + conditions: [{ [H]: c, [I]: [b, z] }, B], + rules: [ + { + endpoint: { + url: 'https://sts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}', + properties: v, + headers: v + }, + [G]: h + } + ], + [G]: j + }, + { + error: + 'FIPS and DualStack are enabled, but this partition does not support one or both', + [G]: k + } + ], + [G]: j + }, + { + conditions: D, + rules: [ + { + conditions: [{ [H]: c, [I]: [z, b] }], + rules: [ + { + conditions: [ + { + [H]: d, + [I]: [ + { [H]: l, [I]: [A, 'name'] }, + 'aws-us-gov' + ] + } + ], + endpoint: { + url: 'https://sts.{Region}.amazonaws.com', + properties: v, + headers: v + }, + [G]: h + }, + { + endpoint: { + url: 'https://sts-fips.{Region}.{PartitionResult#dnsSuffix}', + properties: v, + headers: v + }, + [G]: h + } + ], + [G]: j + }, + { + error: + 'FIPS is enabled but this partition does not support FIPS', + [G]: k + } + ], + [G]: j + }, + { + conditions: E, + rules: [ + { + conditions: [B], + rules: [ + { + endpoint: { + url: 'https://sts.{Region}.{PartitionResult#dualStackDnsSuffix}', + properties: v, + headers: v + }, + [G]: h + } + ], + [G]: j + }, + { + error: + 'DualStack is enabled but this partition does not support DualStack', + [G]: k + } + ], + [G]: j + }, + w, + { endpoint: { url: i, properties: v, headers: v }, [G]: h } + ], + [G]: j + } + ], + [G]: j + }, + { error: 'Invalid Configuration: Missing Region', [G]: k } + ] + } + exports.ruleSet = _data -// src/commands/LogoutCommand.ts + /***/ + }, + /***/ 52209: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __reExport = (target, mod, secondTarget) => ( + __copyProps(target, mod, 'default'), + secondTarget && __copyProps(secondTarget, mod, 'default') + ) + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + AssumeRoleCommand: () => AssumeRoleCommand, + AssumeRoleResponseFilterSensitiveLog: () => + AssumeRoleResponseFilterSensitiveLog, + AssumeRoleWithSAMLCommand: () => AssumeRoleWithSAMLCommand, + AssumeRoleWithSAMLRequestFilterSensitiveLog: () => + AssumeRoleWithSAMLRequestFilterSensitiveLog, + AssumeRoleWithSAMLResponseFilterSensitiveLog: () => + AssumeRoleWithSAMLResponseFilterSensitiveLog, + AssumeRoleWithWebIdentityCommand: () => + AssumeRoleWithWebIdentityCommand, + AssumeRoleWithWebIdentityRequestFilterSensitiveLog: () => + AssumeRoleWithWebIdentityRequestFilterSensitiveLog, + AssumeRoleWithWebIdentityResponseFilterSensitiveLog: () => + AssumeRoleWithWebIdentityResponseFilterSensitiveLog, + ClientInputEndpointParameters: () => + import_EndpointParameters9.ClientInputEndpointParameters, + CredentialsFilterSensitiveLog: () => CredentialsFilterSensitiveLog, + DecodeAuthorizationMessageCommand: () => + DecodeAuthorizationMessageCommand, + ExpiredTokenException: () => ExpiredTokenException, + GetAccessKeyInfoCommand: () => GetAccessKeyInfoCommand, + GetCallerIdentityCommand: () => GetCallerIdentityCommand, + GetFederationTokenCommand: () => GetFederationTokenCommand, + GetFederationTokenResponseFilterSensitiveLog: () => + GetFederationTokenResponseFilterSensitiveLog, + GetSessionTokenCommand: () => GetSessionTokenCommand, + GetSessionTokenResponseFilterSensitiveLog: () => + GetSessionTokenResponseFilterSensitiveLog, + IDPCommunicationErrorException: () => IDPCommunicationErrorException, + IDPRejectedClaimException: () => IDPRejectedClaimException, + InvalidAuthorizationMessageException: () => + InvalidAuthorizationMessageException, + InvalidIdentityTokenException: () => InvalidIdentityTokenException, + MalformedPolicyDocumentException: () => + MalformedPolicyDocumentException, + PackedPolicyTooLargeException: () => PackedPolicyTooLargeException, + RegionDisabledException: () => RegionDisabledException, + STS: () => STS, + STSServiceException: () => STSServiceException, + decorateDefaultCredentialProvider: () => + decorateDefaultCredentialProvider, + getDefaultRoleAssumer: () => getDefaultRoleAssumer2, + getDefaultRoleAssumerWithWebIdentity: () => + getDefaultRoleAssumerWithWebIdentity2 + }) + module.exports = __toCommonJS(src_exports) + __reExport(src_exports, __nccwpck_require__(64195), module.exports) + // src/STS.ts -var LogoutCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("SWBPortalService", "Logout", {}).n("SSOClient", "LogoutCommand").f(LogoutRequestFilterSensitiveLog, void 0).ser(se_LogoutCommand).de(de_LogoutCommand).build() { - static { - __name(this, "LogoutCommand"); - } -}; - -// src/SSO.ts -var commands = { - GetRoleCredentialsCommand, - ListAccountRolesCommand, - ListAccountsCommand, - LogoutCommand -}; -var SSO = class extends SSOClient { - static { - __name(this, "SSO"); - } -}; -(0, import_smithy_client.createAggregatedClient)(commands, SSO); - -// src/pagination/ListAccountRolesPaginator.ts - -var paginateListAccountRoles = (0, import_core.createPaginator)(SSOClient, ListAccountRolesCommand, "nextToken", "nextToken", "maxResults"); - -// src/pagination/ListAccountsPaginator.ts - -var paginateListAccounts = (0, import_core.createPaginator)(SSOClient, ListAccountsCommand, "nextToken", "nextToken", "maxResults"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 79833: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getRuntimeConfig = void 0; -const tslib_1 = __nccwpck_require__(4351); -const package_json_1 = tslib_1.__importDefault(__nccwpck_require__(97480)); -const core_1 = __nccwpck_require__(69736); -const util_user_agent_node_1 = __nccwpck_require__(37896); -const config_resolver_1 = __nccwpck_require__(47517); -const hash_node_1 = __nccwpck_require__(52998); -const middleware_retry_1 = __nccwpck_require__(74268); -const node_config_provider_1 = __nccwpck_require__(6706); -const node_http_handler_1 = __nccwpck_require__(55239); -const util_body_length_node_1 = __nccwpck_require__(10327); -const util_retry_1 = __nccwpck_require__(31955); -const runtimeConfig_shared_1 = __nccwpck_require__(88214); -const smithy_client_1 = __nccwpck_require__(76583); -const util_defaults_mode_node_1 = __nccwpck_require__(32855); -const smithy_client_2 = __nccwpck_require__(76583); -const getRuntimeConfig = (config) => { - (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version); - const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config); - const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode); - const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config); - (0, core_1.emitWarningIfUnsupportedVersion)(process.version); - const profileConfig = { profile: config?.profile }; - return { - ...clientSharedValues, - ...config, - runtime: "node", - defaultsMode, - bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength, - defaultUserAgentProvider: config?.defaultUserAgentProvider ?? - (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }), - maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config), - region: config?.region ?? - (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...profileConfig }), - requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider), - retryMode: config?.retryMode ?? - (0, node_config_provider_1.loadConfig)({ - ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS, - default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE, - }, config), - sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, "sha256"), - streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector, - useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, profileConfig), - useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, profileConfig), - userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, profileConfig), - }; -}; -exports.getRuntimeConfig = getRuntimeConfig; - - -/***/ }), - -/***/ 88214: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getRuntimeConfig = void 0; -const core_1 = __nccwpck_require__(69736); -const core_2 = __nccwpck_require__(27588); -const smithy_client_1 = __nccwpck_require__(76583); -const url_parser_1 = __nccwpck_require__(57247); -const util_base64_1 = __nccwpck_require__(87656); -const util_utf8_1 = __nccwpck_require__(94377); -const httpAuthSchemeProvider_1 = __nccwpck_require__(60801); -const endpointResolver_1 = __nccwpck_require__(16008); -const getRuntimeConfig = (config) => { - return { - apiVersion: "2019-06-10", - base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64, - base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64, - disableHostPrefix: config?.disableHostPrefix ?? false, - endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver, - extensions: config?.extensions ?? [], - httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSSOHttpAuthSchemeProvider, - httpAuthSchemes: config?.httpAuthSchemes ?? [ - { - schemeId: "aws.auth#sigv4", - identityProvider: (ipc) => ipc.getIdentityProvider("aws.auth#sigv4"), - signer: new core_1.AwsSdkSigV4Signer(), - }, - { - schemeId: "smithy.api#noAuth", - identityProvider: (ipc) => ipc.getIdentityProvider("smithy.api#noAuth") || (async () => ({})), - signer: new core_2.NoAuthSigner(), - }, - ], - logger: config?.logger ?? new smithy_client_1.NoOpLogger(), - serviceId: config?.serviceId ?? "SSO", - urlParser: config?.urlParser ?? url_parser_1.parseUrl, - utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8, - utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8, - }; -}; -exports.getRuntimeConfig = getRuntimeConfig; - - -/***/ }), - -/***/ 69736: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -const tslib_1 = __nccwpck_require__(4351); -tslib_1.__exportStar(__nccwpck_require__(60034), exports); -tslib_1.__exportStar(__nccwpck_require__(39759), exports); -tslib_1.__exportStar(__nccwpck_require__(29359), exports); - - -/***/ }), - -/***/ 60034: -/***/ ((module) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/submodules/client/index.ts -var index_exports = {}; -__export(index_exports, { - emitWarningIfUnsupportedVersion: () => emitWarningIfUnsupportedVersion, - setCredentialFeature: () => setCredentialFeature, - setFeature: () => setFeature, - state: () => state -}); -module.exports = __toCommonJS(index_exports); - -// src/submodules/client/emitWarningIfUnsupportedVersion.ts -var state = { - warningEmitted: false -}; -var emitWarningIfUnsupportedVersion = /* @__PURE__ */ __name((version) => { - if (version && !state.warningEmitted && parseInt(version.substring(1, version.indexOf("."))) < 18) { - state.warningEmitted = true; - process.emitWarning( - `NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will -no longer support Node.js 16.x on January 6, 2025. + // src/commands/AssumeRoleCommand.ts + var import_middleware_endpoint = __nccwpck_require__(82918) + var import_middleware_serde = __nccwpck_require__(81238) -To continue receiving updates to AWS services, bug fixes, and security -updates please upgrade to a supported Node.js LTS version. + var import_EndpointParameters = __nccwpck_require__(20510) -More information can be found at: https://a.co/74kJMmI` - ); - } -}, "emitWarningIfUnsupportedVersion"); + // src/models/models_0.ts -// src/submodules/client/setCredentialFeature.ts -function setCredentialFeature(credentials, feature, value) { - if (!credentials.$source) { - credentials.$source = {}; - } - credentials.$source[feature] = value; - return credentials; -} -__name(setCredentialFeature, "setCredentialFeature"); - -// src/submodules/client/setFeature.ts -function setFeature(context, feature, value) { - if (!context.__aws_sdk_context) { - context.__aws_sdk_context = { - features: {} - }; - } else if (!context.__aws_sdk_context.features) { - context.__aws_sdk_context.features = {}; - } - context.__aws_sdk_context.features[feature] = value; -} -__name(setFeature, "setFeature"); -// Annotate the CommonJS export names for ESM import in node: -0 && (0); - - -/***/ }), - -/***/ 39759: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/submodules/httpAuthSchemes/index.ts -var index_exports = {}; -__export(index_exports, { - AWSSDKSigV4Signer: () => AWSSDKSigV4Signer, - AwsSdkSigV4ASigner: () => AwsSdkSigV4ASigner, - AwsSdkSigV4Signer: () => AwsSdkSigV4Signer, - NODE_SIGV4A_CONFIG_OPTIONS: () => NODE_SIGV4A_CONFIG_OPTIONS, - resolveAWSSDKSigV4Config: () => resolveAWSSDKSigV4Config, - resolveAwsSdkSigV4AConfig: () => resolveAwsSdkSigV4AConfig, - resolveAwsSdkSigV4Config: () => resolveAwsSdkSigV4Config, - validateSigningProperties: () => validateSigningProperties -}); -module.exports = __toCommonJS(index_exports); - -// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts -var import_protocol_http2 = __nccwpck_require__(31788); - -// src/submodules/httpAuthSchemes/utils/getDateHeader.ts -var import_protocol_http = __nccwpck_require__(31788); -var getDateHeader = /* @__PURE__ */ __name((response) => import_protocol_http.HttpResponse.isInstance(response) ? response.headers?.date ?? response.headers?.Date : void 0, "getDateHeader"); - -// src/submodules/httpAuthSchemes/utils/getSkewCorrectedDate.ts -var getSkewCorrectedDate = /* @__PURE__ */ __name((systemClockOffset) => new Date(Date.now() + systemClockOffset), "getSkewCorrectedDate"); - -// src/submodules/httpAuthSchemes/utils/isClockSkewed.ts -var isClockSkewed = /* @__PURE__ */ __name((clockTime, systemClockOffset) => Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - clockTime) >= 3e5, "isClockSkewed"); - -// src/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.ts -var getUpdatedSystemClockOffset = /* @__PURE__ */ __name((clockTime, currentSystemClockOffset) => { - const clockTimeInMs = Date.parse(clockTime); - if (isClockSkewed(clockTimeInMs, currentSystemClockOffset)) { - return clockTimeInMs - Date.now(); - } - return currentSystemClockOffset; -}, "getUpdatedSystemClockOffset"); + // src/models/STSServiceException.ts + var import_smithy_client = __nccwpck_require__(63570) + var _STSServiceException = class _STSServiceException + extends import_smithy_client.ServiceException + { + /** + * @internal + */ + constructor(options) { + super(options) + Object.setPrototypeOf(this, _STSServiceException.prototype) + } + } + __name(_STSServiceException, 'STSServiceException') + var STSServiceException = _STSServiceException -// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts -var throwSigningPropertyError = /* @__PURE__ */ __name((name, property) => { - if (!property) { - throw new Error(`Property \`${name}\` is not resolved for AWS SDK SigV4Auth`); - } - return property; -}, "throwSigningPropertyError"); -var validateSigningProperties = /* @__PURE__ */ __name(async (signingProperties) => { - const context = throwSigningPropertyError( - "context", - signingProperties.context - ); - const config = throwSigningPropertyError("config", signingProperties.config); - const authScheme = context.endpointV2?.properties?.authSchemes?.[0]; - const signerFunction = throwSigningPropertyError( - "signer", - config.signer - ); - const signer = await signerFunction(authScheme); - const signingRegion = signingProperties?.signingRegion; - const signingRegionSet = signingProperties?.signingRegionSet; - const signingName = signingProperties?.signingName; - return { - config, - signer, - signingRegion, - signingRegionSet, - signingName - }; -}, "validateSigningProperties"); -var AwsSdkSigV4Signer = class { - static { - __name(this, "AwsSdkSigV4Signer"); - } - async sign(httpRequest, identity, signingProperties) { - if (!import_protocol_http2.HttpRequest.isInstance(httpRequest)) { - throw new Error("The request is not an instance of `HttpRequest` and cannot be signed"); - } - const validatedProps = await validateSigningProperties(signingProperties); - const { config, signer } = validatedProps; - let { signingRegion, signingName } = validatedProps; - const handlerExecutionContext = signingProperties.context; - if (handlerExecutionContext?.authSchemes?.length ?? 0 > 1) { - const [first, second] = handlerExecutionContext.authSchemes; - if (first?.name === "sigv4a" && second?.name === "sigv4") { - signingRegion = second?.signingRegion ?? signingRegion; - signingName = second?.signingName ?? signingName; + // src/models/models_0.ts + var _ExpiredTokenException = class _ExpiredTokenException extends STSServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'ExpiredTokenException', + $fault: 'client', + ...opts + }) + this.name = 'ExpiredTokenException' + this.$fault = 'client' + Object.setPrototypeOf(this, _ExpiredTokenException.prototype) + } } - } - const signedRequest = await signer.sign(httpRequest, { - signingDate: getSkewCorrectedDate(config.systemClockOffset), - signingRegion, - signingService: signingName - }); - return signedRequest; - } - errorHandler(signingProperties) { - return (error) => { - const serverTime = error.ServerTime ?? getDateHeader(error.$response); - if (serverTime) { - const config = throwSigningPropertyError("config", signingProperties.config); - const initialSystemClockOffset = config.systemClockOffset; - config.systemClockOffset = getUpdatedSystemClockOffset(serverTime, config.systemClockOffset); - const clockSkewCorrected = config.systemClockOffset !== initialSystemClockOffset; - if (clockSkewCorrected && error.$metadata) { - error.$metadata.clockSkewCorrected = true; - } - } - throw error; - }; - } - successHandler(httpResponse, signingProperties) { - const dateHeader = getDateHeader(httpResponse); - if (dateHeader) { - const config = throwSigningPropertyError("config", signingProperties.config); - config.systemClockOffset = getUpdatedSystemClockOffset(dateHeader, config.systemClockOffset); - } - } -}; -var AWSSDKSigV4Signer = AwsSdkSigV4Signer; - -// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.ts -var import_protocol_http3 = __nccwpck_require__(31788); -var AwsSdkSigV4ASigner = class extends AwsSdkSigV4Signer { - static { - __name(this, "AwsSdkSigV4ASigner"); - } - async sign(httpRequest, identity, signingProperties) { - if (!import_protocol_http3.HttpRequest.isInstance(httpRequest)) { - throw new Error("The request is not an instance of `HttpRequest` and cannot be signed"); - } - const { config, signer, signingRegion, signingRegionSet, signingName } = await validateSigningProperties( - signingProperties - ); - const configResolvedSigningRegionSet = await config.sigv4aSigningRegionSet?.(); - const multiRegionOverride = (configResolvedSigningRegionSet ?? signingRegionSet ?? [signingRegion]).join(","); - const signedRequest = await signer.sign(httpRequest, { - signingDate: getSkewCorrectedDate(config.systemClockOffset), - signingRegion: multiRegionOverride, - signingService: signingName - }); - return signedRequest; - } -}; - -// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4AConfig.ts -var import_core = __nccwpck_require__(27588); -var import_property_provider = __nccwpck_require__(19248); -var resolveAwsSdkSigV4AConfig = /* @__PURE__ */ __name((config) => { - config.sigv4aSigningRegionSet = (0, import_core.normalizeProvider)(config.sigv4aSigningRegionSet); - return config; -}, "resolveAwsSdkSigV4AConfig"); -var NODE_SIGV4A_CONFIG_OPTIONS = { - environmentVariableSelector(env) { - if (env.AWS_SIGV4A_SIGNING_REGION_SET) { - return env.AWS_SIGV4A_SIGNING_REGION_SET.split(",").map((_) => _.trim()); - } - throw new import_property_provider.ProviderError("AWS_SIGV4A_SIGNING_REGION_SET not set in env.", { - tryNextLink: true - }); - }, - configFileSelector(profile) { - if (profile.sigv4a_signing_region_set) { - return (profile.sigv4a_signing_region_set ?? "").split(",").map((_) => _.trim()); - } - throw new import_property_provider.ProviderError("sigv4a_signing_region_set not set in profile.", { - tryNextLink: true - }); - }, - default: void 0 -}; - -// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.ts -var import_client = __nccwpck_require__(60034); -var import_core2 = __nccwpck_require__(27588); -var import_signature_v4 = __nccwpck_require__(78313); -var resolveAwsSdkSigV4Config = /* @__PURE__ */ __name((config) => { - let inputCredentials = config.credentials; - let isUserSupplied = !!config.credentials; - let resolvedCredentials = void 0; - Object.defineProperty(config, "credentials", { - set(credentials) { - if (credentials && credentials !== inputCredentials && credentials !== resolvedCredentials) { - isUserSupplied = true; - } - inputCredentials = credentials; - const memoizedProvider = normalizeCredentialProvider(config, { - credentials: inputCredentials, - credentialDefaultProvider: config.credentialDefaultProvider - }); - const boundProvider = bindCallerConfig(config, memoizedProvider); - if (isUserSupplied && !boundProvider.attributed) { - resolvedCredentials = /* @__PURE__ */ __name(async (options) => boundProvider(options).then( - (creds) => (0, import_client.setCredentialFeature)(creds, "CREDENTIALS_CODE", "e") - ), "resolvedCredentials"); - resolvedCredentials.memoized = boundProvider.memoized; - resolvedCredentials.configBound = boundProvider.configBound; - resolvedCredentials.attributed = true; - } else { - resolvedCredentials = boundProvider; - } - }, - get() { - return resolvedCredentials; - }, - enumerable: true, - configurable: true - }); - config.credentials = inputCredentials; - const { - // Default for signingEscapePath - signingEscapePath = true, - // Default for systemClockOffset - systemClockOffset = config.systemClockOffset || 0, - // No default for sha256 since it is platform dependent - sha256 - } = config; - let signer; - if (config.signer) { - signer = (0, import_core2.normalizeProvider)(config.signer); - } else if (config.regionInfoProvider) { - signer = /* @__PURE__ */ __name(() => (0, import_core2.normalizeProvider)(config.region)().then( - async (region) => [ - await config.regionInfoProvider(region, { - useFipsEndpoint: await config.useFipsEndpoint(), - useDualstackEndpoint: await config.useDualstackEndpoint() - }) || {}, - region - ] - ).then(([regionInfo, region]) => { - const { signingRegion, signingService } = regionInfo; - config.signingRegion = config.signingRegion || signingRegion || region; - config.signingName = config.signingName || signingService || config.serviceId; - const params = { - ...config, - credentials: config.credentials, - region: config.signingRegion, - service: config.signingName, - sha256, - uriEscapePath: signingEscapePath - }; - const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4; - return new SignerCtor(params); - }), "signer"); - } else { - signer = /* @__PURE__ */ __name(async (authScheme) => { - authScheme = Object.assign( - {}, - { - name: "sigv4", - signingName: config.signingName || config.defaultSigningName, - signingRegion: await (0, import_core2.normalizeProvider)(config.region)(), - properties: {} - }, - authScheme - ); - const signingRegion = authScheme.signingRegion; - const signingService = authScheme.signingName; - config.signingRegion = config.signingRegion || signingRegion; - config.signingName = config.signingName || signingService || config.serviceId; - const params = { - ...config, - credentials: config.credentials, - region: config.signingRegion, - service: config.signingName, - sha256, - uriEscapePath: signingEscapePath - }; - const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4; - return new SignerCtor(params); - }, "signer"); - } - const resolvedConfig = Object.assign(config, { - systemClockOffset, - signingEscapePath, - signer - }); - return resolvedConfig; -}, "resolveAwsSdkSigV4Config"); -var resolveAWSSDKSigV4Config = resolveAwsSdkSigV4Config; -function normalizeCredentialProvider(config, { - credentials, - credentialDefaultProvider -}) { - let credentialsProvider; - if (credentials) { - if (!credentials?.memoized) { - credentialsProvider = (0, import_core2.memoizeIdentityProvider)(credentials, import_core2.isIdentityExpired, import_core2.doesIdentityRequireRefresh); - } else { - credentialsProvider = credentials; - } - } else { - if (credentialDefaultProvider) { - credentialsProvider = (0, import_core2.normalizeProvider)( - credentialDefaultProvider( - Object.assign({}, config, { - parentClientConfig: config + __name(_ExpiredTokenException, 'ExpiredTokenException') + var ExpiredTokenException = _ExpiredTokenException + var _MalformedPolicyDocumentException = class _MalformedPolicyDocumentException extends STSServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'MalformedPolicyDocumentException', + $fault: 'client', + ...opts + }) + this.name = 'MalformedPolicyDocumentException' + this.$fault = 'client' + Object.setPrototypeOf( + this, + _MalformedPolicyDocumentException.prototype + ) + } + } + __name( + _MalformedPolicyDocumentException, + 'MalformedPolicyDocumentException' + ) + var MalformedPolicyDocumentException = _MalformedPolicyDocumentException + var _PackedPolicyTooLargeException = class _PackedPolicyTooLargeException extends STSServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'PackedPolicyTooLargeException', + $fault: 'client', + ...opts + }) + this.name = 'PackedPolicyTooLargeException' + this.$fault = 'client' + Object.setPrototypeOf(this, _PackedPolicyTooLargeException.prototype) + } + } + __name(_PackedPolicyTooLargeException, 'PackedPolicyTooLargeException') + var PackedPolicyTooLargeException = _PackedPolicyTooLargeException + var _RegionDisabledException = class _RegionDisabledException extends STSServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'RegionDisabledException', + $fault: 'client', + ...opts + }) + this.name = 'RegionDisabledException' + this.$fault = 'client' + Object.setPrototypeOf(this, _RegionDisabledException.prototype) + } + } + __name(_RegionDisabledException, 'RegionDisabledException') + var RegionDisabledException = _RegionDisabledException + var _IDPRejectedClaimException = class _IDPRejectedClaimException extends STSServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'IDPRejectedClaimException', + $fault: 'client', + ...opts + }) + this.name = 'IDPRejectedClaimException' + this.$fault = 'client' + Object.setPrototypeOf(this, _IDPRejectedClaimException.prototype) + } + } + __name(_IDPRejectedClaimException, 'IDPRejectedClaimException') + var IDPRejectedClaimException = _IDPRejectedClaimException + var _InvalidIdentityTokenException = class _InvalidIdentityTokenException extends STSServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'InvalidIdentityTokenException', + $fault: 'client', + ...opts + }) + this.name = 'InvalidIdentityTokenException' + this.$fault = 'client' + Object.setPrototypeOf(this, _InvalidIdentityTokenException.prototype) + } + } + __name(_InvalidIdentityTokenException, 'InvalidIdentityTokenException') + var InvalidIdentityTokenException = _InvalidIdentityTokenException + var _IDPCommunicationErrorException = class _IDPCommunicationErrorException extends STSServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'IDPCommunicationErrorException', + $fault: 'client', + ...opts + }) + this.name = 'IDPCommunicationErrorException' + this.$fault = 'client' + Object.setPrototypeOf(this, _IDPCommunicationErrorException.prototype) + } + } + __name(_IDPCommunicationErrorException, 'IDPCommunicationErrorException') + var IDPCommunicationErrorException = _IDPCommunicationErrorException + var _InvalidAuthorizationMessageException = class _InvalidAuthorizationMessageException extends STSServiceException { + /** + * @internal + */ + constructor(opts) { + super({ + name: 'InvalidAuthorizationMessageException', + $fault: 'client', + ...opts + }) + this.name = 'InvalidAuthorizationMessageException' + this.$fault = 'client' + Object.setPrototypeOf( + this, + _InvalidAuthorizationMessageException.prototype + ) + } + } + __name( + _InvalidAuthorizationMessageException, + 'InvalidAuthorizationMessageException' + ) + var InvalidAuthorizationMessageException = + _InvalidAuthorizationMessageException + var CredentialsFilterSensitiveLog = /* @__PURE__ */ __name( + obj => ({ + ...obj, + ...(obj.SecretAccessKey && { + SecretAccessKey: import_smithy_client.SENSITIVE_STRING + }) + }), + 'CredentialsFilterSensitiveLog' + ) + var AssumeRoleResponseFilterSensitiveLog = /* @__PURE__ */ __name( + obj => ({ + ...obj, + ...(obj.Credentials && { + Credentials: CredentialsFilterSensitiveLog(obj.Credentials) + }) + }), + 'AssumeRoleResponseFilterSensitiveLog' + ) + var AssumeRoleWithSAMLRequestFilterSensitiveLog = /* @__PURE__ */ __name( + obj => ({ + ...obj, + ...(obj.SAMLAssertion && { + SAMLAssertion: import_smithy_client.SENSITIVE_STRING + }) + }), + 'AssumeRoleWithSAMLRequestFilterSensitiveLog' + ) + var AssumeRoleWithSAMLResponseFilterSensitiveLog = /* @__PURE__ */ __name( + obj => ({ + ...obj, + ...(obj.Credentials && { + Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }) + }), + 'AssumeRoleWithSAMLResponseFilterSensitiveLog' + ) + var AssumeRoleWithWebIdentityRequestFilterSensitiveLog = + /* @__PURE__ */ __name( + obj => ({ + ...obj, + ...(obj.WebIdentityToken && { + WebIdentityToken: import_smithy_client.SENSITIVE_STRING + }) + }), + 'AssumeRoleWithWebIdentityRequestFilterSensitiveLog' ) - ); - } else { - credentialsProvider = /* @__PURE__ */ __name(async () => { - throw new Error( - "@aws-sdk/core::resolveAwsSdkSigV4Config - `credentials` not provided and no credentialDefaultProvider was configured." - ); - }, "credentialsProvider"); - } - } - credentialsProvider.memoized = true; - return credentialsProvider; -} -__name(normalizeCredentialProvider, "normalizeCredentialProvider"); -function bindCallerConfig(config, credentialsProvider) { - if (credentialsProvider.configBound) { - return credentialsProvider; - } - const fn = /* @__PURE__ */ __name(async (options) => credentialsProvider({ ...options, callerClientConfig: config }), "fn"); - fn.memoized = credentialsProvider.memoized; - fn.configBound = true; - return fn; -} -__name(bindCallerConfig, "bindCallerConfig"); -// Annotate the CommonJS export names for ESM import in node: -0 && (0); - - -/***/ }), - -/***/ 29359: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/submodules/protocols/index.ts -var index_exports = {}; -__export(index_exports, { - _toBool: () => _toBool, - _toNum: () => _toNum, - _toStr: () => _toStr, - awsExpectUnion: () => awsExpectUnion, - loadRestJsonErrorCode: () => loadRestJsonErrorCode, - loadRestXmlErrorCode: () => loadRestXmlErrorCode, - parseJsonBody: () => parseJsonBody, - parseJsonErrorBody: () => parseJsonErrorBody, - parseXmlBody: () => parseXmlBody, - parseXmlErrorBody: () => parseXmlErrorBody -}); -module.exports = __toCommonJS(index_exports); - -// src/submodules/protocols/coercing-serializers.ts -var _toStr = /* @__PURE__ */ __name((val) => { - if (val == null) { - return val; - } - if (typeof val === "number" || typeof val === "bigint") { - const warning = new Error(`Received number ${val} where a string was expected.`); - warning.name = "Warning"; - console.warn(warning); - return String(val); - } - if (typeof val === "boolean") { - const warning = new Error(`Received boolean ${val} where a string was expected.`); - warning.name = "Warning"; - console.warn(warning); - return String(val); - } - return val; -}, "_toStr"); -var _toBool = /* @__PURE__ */ __name((val) => { - if (val == null) { - return val; - } - if (typeof val === "number") { - } - if (typeof val === "string") { - const lowercase = val.toLowerCase(); - if (val !== "" && lowercase !== "false" && lowercase !== "true") { - const warning = new Error(`Received string "${val}" where a boolean was expected.`); - warning.name = "Warning"; - console.warn(warning); - } - return val !== "" && lowercase !== "false"; - } - return val; -}, "_toBool"); -var _toNum = /* @__PURE__ */ __name((val) => { - if (val == null) { - return val; - } - if (typeof val === "boolean") { - } - if (typeof val === "string") { - const num = Number(val); - if (num.toString() !== val) { - const warning = new Error(`Received string "${val}" where a number was expected.`); - warning.name = "Warning"; - console.warn(warning); - return val; - } - return num; - } - return val; -}, "_toNum"); - -// src/submodules/protocols/json/awsExpectUnion.ts -var import_smithy_client = __nccwpck_require__(76583); -var awsExpectUnion = /* @__PURE__ */ __name((value) => { - if (value == null) { - return void 0; - } - if (typeof value === "object" && "__type" in value) { - delete value.__type; - } - return (0, import_smithy_client.expectUnion)(value); -}, "awsExpectUnion"); - -// src/submodules/protocols/common.ts -var import_smithy_client2 = __nccwpck_require__(76583); -var collectBodyString = /* @__PURE__ */ __name((streamBody, context) => (0, import_smithy_client2.collectBody)(streamBody, context).then((body) => context.utf8Encoder(body)), "collectBodyString"); - -// src/submodules/protocols/json/parseJsonBody.ts -var parseJsonBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => { - if (encoded.length) { - try { - return JSON.parse(encoded); - } catch (e) { - if (e?.name === "SyntaxError") { - Object.defineProperty(e, "$responseBodyText", { - value: encoded - }); - } - throw e; - } - } - return {}; -}), "parseJsonBody"); -var parseJsonErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => { - const value = await parseJsonBody(errorBody, context); - value.message = value.message ?? value.Message; - return value; -}, "parseJsonErrorBody"); -var loadRestJsonErrorCode = /* @__PURE__ */ __name((output, data) => { - const findKey = /* @__PURE__ */ __name((object, key) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase()), "findKey"); - const sanitizeErrorCode = /* @__PURE__ */ __name((rawValue) => { - let cleanValue = rawValue; - if (typeof cleanValue === "number") { - cleanValue = cleanValue.toString(); - } - if (cleanValue.indexOf(",") >= 0) { - cleanValue = cleanValue.split(",")[0]; - } - if (cleanValue.indexOf(":") >= 0) { - cleanValue = cleanValue.split(":")[0]; - } - if (cleanValue.indexOf("#") >= 0) { - cleanValue = cleanValue.split("#")[1]; - } - return cleanValue; - }, "sanitizeErrorCode"); - const headerKey = findKey(output.headers, "x-amzn-errortype"); - if (headerKey !== void 0) { - return sanitizeErrorCode(output.headers[headerKey]); - } - if (data.code !== void 0) { - return sanitizeErrorCode(data.code); - } - if (data["__type"] !== void 0) { - return sanitizeErrorCode(data["__type"]); - } -}, "loadRestJsonErrorCode"); - -// src/submodules/protocols/xml/parseXmlBody.ts -var import_smithy_client3 = __nccwpck_require__(76583); -var import_fast_xml_parser = __nccwpck_require__(12603); -var parseXmlBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => { - if (encoded.length) { - const parser = new import_fast_xml_parser.XMLParser({ - attributeNamePrefix: "", - htmlEntities: true, - ignoreAttributes: false, - ignoreDeclaration: true, - parseTagValue: false, - trimValues: false, - tagValueProcessor: /* @__PURE__ */ __name((_, val) => val.trim() === "" && val.includes("\n") ? "" : void 0, "tagValueProcessor") - }); - parser.addEntity("#xD", "\r"); - parser.addEntity("#10", "\n"); - let parsedObj; - try { - parsedObj = parser.parse(encoded, true); - } catch (e) { - if (e && typeof e === "object") { - Object.defineProperty(e, "$responseBodyText", { - value: encoded - }); - } - throw e; - } - const textNodeName = "#text"; - const key = Object.keys(parsedObj)[0]; - const parsedObjToReturn = parsedObj[key]; - if (parsedObjToReturn[textNodeName]) { - parsedObjToReturn[key] = parsedObjToReturn[textNodeName]; - delete parsedObjToReturn[textNodeName]; - } - return (0, import_smithy_client3.getValueFromTextNode)(parsedObjToReturn); - } - return {}; -}), "parseXmlBody"); -var parseXmlErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => { - const value = await parseXmlBody(errorBody, context); - if (value.Error) { - value.Error.message = value.Error.message ?? value.Error.Message; - } - return value; -}, "parseXmlErrorBody"); -var loadRestXmlErrorCode = /* @__PURE__ */ __name((output, data) => { - if (data?.Error?.Code !== void 0) { - return data.Error.Code; - } - if (data?.Code !== void 0) { - return data.Code; - } - if (output.statusCode == 404) { - return "NotFound"; - } -}, "loadRestXmlErrorCode"); -// Annotate the CommonJS export names for ESM import in node: -0 && (0); - - -/***/ }), - -/***/ 19995: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var index_exports = {}; -__export(index_exports, { - ENV_ACCOUNT_ID: () => ENV_ACCOUNT_ID, - ENV_CREDENTIAL_SCOPE: () => ENV_CREDENTIAL_SCOPE, - ENV_EXPIRATION: () => ENV_EXPIRATION, - ENV_KEY: () => ENV_KEY, - ENV_SECRET: () => ENV_SECRET, - ENV_SESSION: () => ENV_SESSION, - fromEnv: () => fromEnv -}); -module.exports = __toCommonJS(index_exports); - -// src/fromEnv.ts -var import_client = __nccwpck_require__(60034); -var import_property_provider = __nccwpck_require__(19248); -var ENV_KEY = "AWS_ACCESS_KEY_ID"; -var ENV_SECRET = "AWS_SECRET_ACCESS_KEY"; -var ENV_SESSION = "AWS_SESSION_TOKEN"; -var ENV_EXPIRATION = "AWS_CREDENTIAL_EXPIRATION"; -var ENV_CREDENTIAL_SCOPE = "AWS_CREDENTIAL_SCOPE"; -var ENV_ACCOUNT_ID = "AWS_ACCOUNT_ID"; -var fromEnv = /* @__PURE__ */ __name((init) => async () => { - init?.logger?.debug("@aws-sdk/credential-provider-env - fromEnv"); - const accessKeyId = process.env[ENV_KEY]; - const secretAccessKey = process.env[ENV_SECRET]; - const sessionToken = process.env[ENV_SESSION]; - const expiry = process.env[ENV_EXPIRATION]; - const credentialScope = process.env[ENV_CREDENTIAL_SCOPE]; - const accountId = process.env[ENV_ACCOUNT_ID]; - if (accessKeyId && secretAccessKey) { - const credentials = { - accessKeyId, - secretAccessKey, - ...sessionToken && { sessionToken }, - ...expiry && { expiration: new Date(expiry) }, - ...credentialScope && { credentialScope }, - ...accountId && { accountId } - }; - (0, import_client.setCredentialFeature)(credentials, "CREDENTIALS_ENV_VARS", "g"); - return credentials; - } - throw new import_property_provider.CredentialsProviderError("Unable to find environment variable credentials.", { logger: init?.logger }); -}, "fromEnv"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 5701: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; + var AssumeRoleWithWebIdentityResponseFilterSensitiveLog = + /* @__PURE__ */ __name( + obj => ({ + ...obj, + ...(obj.Credentials && { + Credentials: CredentialsFilterSensitiveLog(obj.Credentials) + }) + }), + 'AssumeRoleWithWebIdentityResponseFilterSensitiveLog' + ) + var GetFederationTokenResponseFilterSensitiveLog = /* @__PURE__ */ __name( + obj => ({ + ...obj, + ...(obj.Credentials && { + Credentials: CredentialsFilterSensitiveLog(obj.Credentials) + }) + }), + 'GetFederationTokenResponseFilterSensitiveLog' + ) + var GetSessionTokenResponseFilterSensitiveLog = /* @__PURE__ */ __name( + obj => ({ + ...obj, + ...(obj.Credentials && { + Credentials: CredentialsFilterSensitiveLog(obj.Credentials) + }) + }), + 'GetSessionTokenResponseFilterSensitiveLog' + ) -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.checkUrl = void 0; -const property_provider_1 = __nccwpck_require__(19248); -const LOOPBACK_CIDR_IPv4 = "127.0.0.0/8"; -const LOOPBACK_CIDR_IPv6 = "::1/128"; -const ECS_CONTAINER_HOST = "169.254.170.2"; -const EKS_CONTAINER_HOST_IPv4 = "169.254.170.23"; -const EKS_CONTAINER_HOST_IPv6 = "[fd00:ec2::23]"; -const checkUrl = (url, logger) => { - if (url.protocol === "https:") { - return; - } - if (url.hostname === ECS_CONTAINER_HOST || - url.hostname === EKS_CONTAINER_HOST_IPv4 || - url.hostname === EKS_CONTAINER_HOST_IPv6) { - return; - } - if (url.hostname.includes("[")) { - if (url.hostname === "[::1]" || url.hostname === "[0000:0000:0000:0000:0000:0000:0000:0001]") { - return; + // src/protocols/Aws_query.ts + var import_core = __nccwpck_require__(59963) + var import_protocol_http = __nccwpck_require__(64418) + + var se_AssumeRoleCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_AssumeRoleRequest(input, context), + [_A]: _AR, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_AssumeRoleCommand' + ) + var se_AssumeRoleWithSAMLCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_AssumeRoleWithSAMLRequest(input, context), + [_A]: _ARWSAML, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_AssumeRoleWithSAMLCommand' + ) + var se_AssumeRoleWithWebIdentityCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_AssumeRoleWithWebIdentityRequest(input, context), + [_A]: _ARWWI, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_AssumeRoleWithWebIdentityCommand' + ) + var se_DecodeAuthorizationMessageCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_DecodeAuthorizationMessageRequest(input, context), + [_A]: _DAM, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_DecodeAuthorizationMessageCommand' + ) + var se_GetAccessKeyInfoCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_GetAccessKeyInfoRequest(input, context), + [_A]: _GAKI, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_GetAccessKeyInfoCommand' + ) + var se_GetCallerIdentityCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_GetCallerIdentityRequest(input, context), + [_A]: _GCI, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_GetCallerIdentityCommand' + ) + var se_GetFederationTokenCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_GetFederationTokenRequest(input, context), + [_A]: _GFT, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_GetFederationTokenCommand' + ) + var se_GetSessionTokenCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_GetSessionTokenRequest(input, context), + [_A]: _GST, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_GetSessionTokenCommand' + ) + var de_AssumeRoleCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core.parseXmlBody)(output.body, context) + let contents = {} + contents = de_AssumeRoleResponse(data.AssumeRoleResult, context) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_AssumeRoleCommand' + ) + var de_AssumeRoleWithSAMLCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core.parseXmlBody)(output.body, context) + let contents = {} + contents = de_AssumeRoleWithSAMLResponse( + data.AssumeRoleWithSAMLResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_AssumeRoleWithSAMLCommand' + ) + var de_AssumeRoleWithWebIdentityCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core.parseXmlBody)(output.body, context) + let contents = {} + contents = de_AssumeRoleWithWebIdentityResponse( + data.AssumeRoleWithWebIdentityResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_AssumeRoleWithWebIdentityCommand' + ) + var de_DecodeAuthorizationMessageCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core.parseXmlBody)(output.body, context) + let contents = {} + contents = de_DecodeAuthorizationMessageResponse( + data.DecodeAuthorizationMessageResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_DecodeAuthorizationMessageCommand' + ) + var de_GetAccessKeyInfoCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core.parseXmlBody)(output.body, context) + let contents = {} + contents = de_GetAccessKeyInfoResponse( + data.GetAccessKeyInfoResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_GetAccessKeyInfoCommand' + ) + var de_GetCallerIdentityCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core.parseXmlBody)(output.body, context) + let contents = {} + contents = de_GetCallerIdentityResponse( + data.GetCallerIdentityResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_GetCallerIdentityCommand' + ) + var de_GetFederationTokenCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core.parseXmlBody)(output.body, context) + let contents = {} + contents = de_GetFederationTokenResponse( + data.GetFederationTokenResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_GetFederationTokenCommand' + ) + var de_GetSessionTokenCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core.parseXmlBody)(output.body, context) + let contents = {} + contents = de_GetSessionTokenResponse( + data.GetSessionTokenResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_GetSessionTokenCommand' + ) + var de_CommandError = /* @__PURE__ */ __name(async (output, context) => { + const parsedOutput = { + ...output, + body: await (0, import_core.parseXmlErrorBody)(output.body, context) + } + const errorCode = loadQueryErrorCode(output, parsedOutput.body) + switch (errorCode) { + case 'ExpiredTokenException': + case 'com.amazonaws.sts#ExpiredTokenException': + throw await de_ExpiredTokenExceptionRes(parsedOutput, context) + case 'MalformedPolicyDocument': + case 'com.amazonaws.sts#MalformedPolicyDocumentException': + throw await de_MalformedPolicyDocumentExceptionRes( + parsedOutput, + context + ) + case 'PackedPolicyTooLarge': + case 'com.amazonaws.sts#PackedPolicyTooLargeException': + throw await de_PackedPolicyTooLargeExceptionRes( + parsedOutput, + context + ) + case 'RegionDisabledException': + case 'com.amazonaws.sts#RegionDisabledException': + throw await de_RegionDisabledExceptionRes(parsedOutput, context) + case 'IDPRejectedClaim': + case 'com.amazonaws.sts#IDPRejectedClaimException': + throw await de_IDPRejectedClaimExceptionRes(parsedOutput, context) + case 'InvalidIdentityToken': + case 'com.amazonaws.sts#InvalidIdentityTokenException': + throw await de_InvalidIdentityTokenExceptionRes( + parsedOutput, + context + ) + case 'IDPCommunicationError': + case 'com.amazonaws.sts#IDPCommunicationErrorException': + throw await de_IDPCommunicationErrorExceptionRes( + parsedOutput, + context + ) + case 'InvalidAuthorizationMessageException': + case 'com.amazonaws.sts#InvalidAuthorizationMessageException': + throw await de_InvalidAuthorizationMessageExceptionRes( + parsedOutput, + context + ) + default: + const parsedBody = parsedOutput.body + return throwDefaultError({ + output, + parsedBody: parsedBody.Error, + errorCode + }) + } + }, 'de_CommandError') + var de_ExpiredTokenExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const body = parsedOutput.body + const deserialized = de_ExpiredTokenException(body.Error, context) + const exception = new ExpiredTokenException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + body + ) + }, + 'de_ExpiredTokenExceptionRes' + ) + var de_IDPCommunicationErrorExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const body = parsedOutput.body + const deserialized = de_IDPCommunicationErrorException( + body.Error, + context + ) + const exception = new IDPCommunicationErrorException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + body + ) + }, + 'de_IDPCommunicationErrorExceptionRes' + ) + var de_IDPRejectedClaimExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const body = parsedOutput.body + const deserialized = de_IDPRejectedClaimException(body.Error, context) + const exception = new IDPRejectedClaimException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + body + ) + }, + 'de_IDPRejectedClaimExceptionRes' + ) + var de_InvalidAuthorizationMessageExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const body = parsedOutput.body + const deserialized = de_InvalidAuthorizationMessageException( + body.Error, + context + ) + const exception = new InvalidAuthorizationMessageException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + body + ) + }, + 'de_InvalidAuthorizationMessageExceptionRes' + ) + var de_InvalidIdentityTokenExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const body = parsedOutput.body + const deserialized = de_InvalidIdentityTokenException( + body.Error, + context + ) + const exception = new InvalidIdentityTokenException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + body + ) + }, + 'de_InvalidIdentityTokenExceptionRes' + ) + var de_MalformedPolicyDocumentExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const body = parsedOutput.body + const deserialized = de_MalformedPolicyDocumentException( + body.Error, + context + ) + const exception = new MalformedPolicyDocumentException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + body + ) + }, + 'de_MalformedPolicyDocumentExceptionRes' + ) + var de_PackedPolicyTooLargeExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const body = parsedOutput.body + const deserialized = de_PackedPolicyTooLargeException( + body.Error, + context + ) + const exception = new PackedPolicyTooLargeException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + body + ) + }, + 'de_PackedPolicyTooLargeExceptionRes' + ) + var de_RegionDisabledExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const body = parsedOutput.body + const deserialized = de_RegionDisabledException(body.Error, context) + const exception = new RegionDisabledException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized + }) + return (0, import_smithy_client.decorateServiceException)( + exception, + body + ) + }, + 'de_RegionDisabledExceptionRes' + ) + var se_AssumeRoleRequest = /* @__PURE__ */ __name((input, context) => { + var _a2, _b, _c, _d + const entries = {} + if (input[_RA] != null) { + entries[_RA] = input[_RA] + } + if (input[_RSN] != null) { + entries[_RSN] = input[_RSN] + } + if (input[_PA] != null) { + const memberEntries = se_policyDescriptorListType(input[_PA], context) + if (((_a2 = input[_PA]) == null ? void 0 : _a2.length) === 0) { + entries.PolicyArns = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `PolicyArns.${key}` + entries[loc] = value + }) + } + if (input[_P] != null) { + entries[_P] = input[_P] + } + if (input[_DS] != null) { + entries[_DS] = input[_DS] + } + if (input[_T] != null) { + const memberEntries = se_tagListType(input[_T], context) + if (((_b = input[_T]) == null ? void 0 : _b.length) === 0) { + entries.Tags = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `Tags.${key}` + entries[loc] = value + }) + } + if (input[_TTK] != null) { + const memberEntries = se_tagKeyListType(input[_TTK], context) + if (((_c = input[_TTK]) == null ? void 0 : _c.length) === 0) { + entries.TransitiveTagKeys = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `TransitiveTagKeys.${key}` + entries[loc] = value + }) + } + if (input[_EI] != null) { + entries[_EI] = input[_EI] + } + if (input[_SN] != null) { + entries[_SN] = input[_SN] + } + if (input[_TC] != null) { + entries[_TC] = input[_TC] + } + if (input[_SI] != null) { + entries[_SI] = input[_SI] + } + if (input[_PC] != null) { + const memberEntries = se_ProvidedContextsListType(input[_PC], context) + if (((_d = input[_PC]) == null ? void 0 : _d.length) === 0) { + entries.ProvidedContexts = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `ProvidedContexts.${key}` + entries[loc] = value + }) + } + return entries + }, 'se_AssumeRoleRequest') + var se_AssumeRoleWithSAMLRequest = /* @__PURE__ */ __name( + (input, context) => { + var _a2 + const entries = {} + if (input[_RA] != null) { + entries[_RA] = input[_RA] + } + if (input[_PAr] != null) { + entries[_PAr] = input[_PAr] + } + if (input[_SAMLA] != null) { + entries[_SAMLA] = input[_SAMLA] + } + if (input[_PA] != null) { + const memberEntries = se_policyDescriptorListType( + input[_PA], + context + ) + if (((_a2 = input[_PA]) == null ? void 0 : _a2.length) === 0) { + entries.PolicyArns = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `PolicyArns.${key}` + entries[loc] = value + }) + } + if (input[_P] != null) { + entries[_P] = input[_P] + } + if (input[_DS] != null) { + entries[_DS] = input[_DS] + } + return entries + }, + 'se_AssumeRoleWithSAMLRequest' + ) + var se_AssumeRoleWithWebIdentityRequest = /* @__PURE__ */ __name( + (input, context) => { + var _a2 + const entries = {} + if (input[_RA] != null) { + entries[_RA] = input[_RA] + } + if (input[_RSN] != null) { + entries[_RSN] = input[_RSN] + } + if (input[_WIT] != null) { + entries[_WIT] = input[_WIT] + } + if (input[_PI] != null) { + entries[_PI] = input[_PI] + } + if (input[_PA] != null) { + const memberEntries = se_policyDescriptorListType( + input[_PA], + context + ) + if (((_a2 = input[_PA]) == null ? void 0 : _a2.length) === 0) { + entries.PolicyArns = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `PolicyArns.${key}` + entries[loc] = value + }) + } + if (input[_P] != null) { + entries[_P] = input[_P] + } + if (input[_DS] != null) { + entries[_DS] = input[_DS] + } + return entries + }, + 'se_AssumeRoleWithWebIdentityRequest' + ) + var se_DecodeAuthorizationMessageRequest = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_EM] != null) { + entries[_EM] = input[_EM] + } + return entries + }, + 'se_DecodeAuthorizationMessageRequest' + ) + var se_GetAccessKeyInfoRequest = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_AKI] != null) { + entries[_AKI] = input[_AKI] + } + return entries + }, + 'se_GetAccessKeyInfoRequest' + ) + var se_GetCallerIdentityRequest = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + return entries + }, + 'se_GetCallerIdentityRequest' + ) + var se_GetFederationTokenRequest = /* @__PURE__ */ __name( + (input, context) => { + var _a2, _b + const entries = {} + if (input[_N] != null) { + entries[_N] = input[_N] + } + if (input[_P] != null) { + entries[_P] = input[_P] + } + if (input[_PA] != null) { + const memberEntries = se_policyDescriptorListType( + input[_PA], + context + ) + if (((_a2 = input[_PA]) == null ? void 0 : _a2.length) === 0) { + entries.PolicyArns = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `PolicyArns.${key}` + entries[loc] = value + }) + } + if (input[_DS] != null) { + entries[_DS] = input[_DS] + } + if (input[_T] != null) { + const memberEntries = se_tagListType(input[_T], context) + if (((_b = input[_T]) == null ? void 0 : _b.length) === 0) { + entries.Tags = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `Tags.${key}` + entries[loc] = value + }) + } + return entries + }, + 'se_GetFederationTokenRequest' + ) + var se_GetSessionTokenRequest = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_DS] != null) { + entries[_DS] = input[_DS] + } + if (input[_SN] != null) { + entries[_SN] = input[_SN] + } + if (input[_TC] != null) { + entries[_TC] = input[_TC] + } + return entries + }, + 'se_GetSessionTokenRequest' + ) + var se_policyDescriptorListType = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + let counter = 1 + for (const entry of input) { + if (entry === null) { + continue + } + const memberEntries = se_PolicyDescriptorType(entry, context) + Object.entries(memberEntries).forEach(([key, value]) => { + entries[`member.${counter}.${key}`] = value + }) + counter++ + } + return entries + }, + 'se_policyDescriptorListType' + ) + var se_PolicyDescriptorType = /* @__PURE__ */ __name((input, context) => { + const entries = {} + if (input[_a] != null) { + entries[_a] = input[_a] + } + return entries + }, 'se_PolicyDescriptorType') + var se_ProvidedContext = /* @__PURE__ */ __name((input, context) => { + const entries = {} + if (input[_PAro] != null) { + entries[_PAro] = input[_PAro] + } + if (input[_CA] != null) { + entries[_CA] = input[_CA] + } + return entries + }, 'se_ProvidedContext') + var se_ProvidedContextsListType = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + let counter = 1 + for (const entry of input) { + if (entry === null) { + continue + } + const memberEntries = se_ProvidedContext(entry, context) + Object.entries(memberEntries).forEach(([key, value]) => { + entries[`member.${counter}.${key}`] = value + }) + counter++ + } + return entries + }, + 'se_ProvidedContextsListType' + ) + var se_Tag = /* @__PURE__ */ __name((input, context) => { + const entries = {} + if (input[_K] != null) { + entries[_K] = input[_K] + } + if (input[_Va] != null) { + entries[_Va] = input[_Va] + } + return entries + }, 'se_Tag') + var se_tagKeyListType = /* @__PURE__ */ __name((input, context) => { + const entries = {} + let counter = 1 + for (const entry of input) { + if (entry === null) { + continue + } + entries[`member.${counter}`] = entry + counter++ + } + return entries + }, 'se_tagKeyListType') + var se_tagListType = /* @__PURE__ */ __name((input, context) => { + const entries = {} + let counter = 1 + for (const entry of input) { + if (entry === null) { + continue + } + const memberEntries = se_Tag(entry, context) + Object.entries(memberEntries).forEach(([key, value]) => { + entries[`member.${counter}.${key}`] = value + }) + counter++ + } + return entries + }, 'se_tagListType') + var de_AssumedRoleUser = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_ARI] != null) { + contents[_ARI] = (0, import_smithy_client.expectString)(output[_ARI]) + } + if (output[_Ar] != null) { + contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]) + } + return contents + }, 'de_AssumedRoleUser') + var de_AssumeRoleResponse = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_C] != null) { + contents[_C] = de_Credentials(output[_C], context) + } + if (output[_ARU] != null) { + contents[_ARU] = de_AssumedRoleUser(output[_ARU], context) + } + if (output[_PPS] != null) { + contents[_PPS] = (0, import_smithy_client.strictParseInt32)( + output[_PPS] + ) } - } - else { - if (url.hostname === "localhost") { - return; - } - const ipComponents = url.hostname.split("."); - const inRange = (component) => { - const num = parseInt(component, 10); - return 0 <= num && num <= 255; - }; - if (ipComponents[0] === "127" && - inRange(ipComponents[1]) && - inRange(ipComponents[2]) && - inRange(ipComponents[3]) && - ipComponents.length === 4) { - return; + if (output[_SI] != null) { + contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]) } - } - throw new property_provider_1.CredentialsProviderError(`URL not accepted. It must either be HTTPS or match one of the following: - - loopback CIDR 127.0.0.0/8 or [::1/128] - - ECS container host 169.254.170.2 - - EKS container host 169.254.170.23 or [fd00:ec2::23]`, { logger }); -}; -exports.checkUrl = checkUrl; - - -/***/ }), - -/***/ 66615: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.fromHttp = void 0; -const tslib_1 = __nccwpck_require__(4351); -const client_1 = __nccwpck_require__(60034); -const node_http_handler_1 = __nccwpck_require__(55239); -const property_provider_1 = __nccwpck_require__(19248); -const promises_1 = tslib_1.__importDefault(__nccwpck_require__(73292)); -const checkUrl_1 = __nccwpck_require__(5701); -const requestHelpers_1 = __nccwpck_require__(92398); -const retry_wrapper_1 = __nccwpck_require__(55383); -const AWS_CONTAINER_CREDENTIALS_RELATIVE_URI = "AWS_CONTAINER_CREDENTIALS_RELATIVE_URI"; -const DEFAULT_LINK_LOCAL_HOST = "http://169.254.170.2"; -const AWS_CONTAINER_CREDENTIALS_FULL_URI = "AWS_CONTAINER_CREDENTIALS_FULL_URI"; -const AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE = "AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE"; -const AWS_CONTAINER_AUTHORIZATION_TOKEN = "AWS_CONTAINER_AUTHORIZATION_TOKEN"; -const fromHttp = (options = {}) => { - options.logger?.debug("@aws-sdk/credential-provider-http - fromHttp"); - let host; - const relative = options.awsContainerCredentialsRelativeUri ?? process.env[AWS_CONTAINER_CREDENTIALS_RELATIVE_URI]; - const full = options.awsContainerCredentialsFullUri ?? process.env[AWS_CONTAINER_CREDENTIALS_FULL_URI]; - const token = options.awsContainerAuthorizationToken ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN]; - const tokenFile = options.awsContainerAuthorizationTokenFile ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE]; - const warn = options.logger?.constructor?.name === "NoOpLogger" || !options.logger ? console.warn : options.logger.warn; - if (relative && full) { - warn("@aws-sdk/credential-provider-http: " + - "you have set both awsContainerCredentialsRelativeUri and awsContainerCredentialsFullUri."); - warn("awsContainerCredentialsFullUri will take precedence."); - } - if (token && tokenFile) { - warn("@aws-sdk/credential-provider-http: " + - "you have set both awsContainerAuthorizationToken and awsContainerAuthorizationTokenFile."); - warn("awsContainerAuthorizationToken will take precedence."); - } - if (full) { - host = full; - } - else if (relative) { - host = `${DEFAULT_LINK_LOCAL_HOST}${relative}`; - } - else { - throw new property_provider_1.CredentialsProviderError(`No HTTP credential provider host provided. -Set AWS_CONTAINER_CREDENTIALS_FULL_URI or AWS_CONTAINER_CREDENTIALS_RELATIVE_URI.`, { logger: options.logger }); - } - const url = new URL(host); - (0, checkUrl_1.checkUrl)(url, options.logger); - const requestHandler = new node_http_handler_1.NodeHttpHandler({ - requestTimeout: options.timeout ?? 1000, - connectionTimeout: options.timeout ?? 1000, - }); - return (0, retry_wrapper_1.retryWrapper)(async () => { - const request = (0, requestHelpers_1.createGetRequest)(url); - if (token) { - request.headers.Authorization = token; - } - else if (tokenFile) { - request.headers.Authorization = (await promises_1.default.readFile(tokenFile)).toString(); + return contents + }, 'de_AssumeRoleResponse') + var de_AssumeRoleWithSAMLResponse = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_C] != null) { + contents[_C] = de_Credentials(output[_C], context) + } + if (output[_ARU] != null) { + contents[_ARU] = de_AssumedRoleUser(output[_ARU], context) + } + if (output[_PPS] != null) { + contents[_PPS] = (0, import_smithy_client.strictParseInt32)( + output[_PPS] + ) + } + if (output[_S] != null) { + contents[_S] = (0, import_smithy_client.expectString)(output[_S]) + } + if (output[_ST] != null) { + contents[_ST] = (0, import_smithy_client.expectString)(output[_ST]) + } + if (output[_I] != null) { + contents[_I] = (0, import_smithy_client.expectString)(output[_I]) + } + if (output[_Au] != null) { + contents[_Au] = (0, import_smithy_client.expectString)(output[_Au]) + } + if (output[_NQ] != null) { + contents[_NQ] = (0, import_smithy_client.expectString)(output[_NQ]) + } + if (output[_SI] != null) { + contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]) + } + return contents + }, + 'de_AssumeRoleWithSAMLResponse' + ) + var de_AssumeRoleWithWebIdentityResponse = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_C] != null) { + contents[_C] = de_Credentials(output[_C], context) + } + if (output[_SFWIT] != null) { + contents[_SFWIT] = (0, import_smithy_client.expectString)( + output[_SFWIT] + ) + } + if (output[_ARU] != null) { + contents[_ARU] = de_AssumedRoleUser(output[_ARU], context) + } + if (output[_PPS] != null) { + contents[_PPS] = (0, import_smithy_client.strictParseInt32)( + output[_PPS] + ) + } + if (output[_Pr] != null) { + contents[_Pr] = (0, import_smithy_client.expectString)(output[_Pr]) + } + if (output[_Au] != null) { + contents[_Au] = (0, import_smithy_client.expectString)(output[_Au]) + } + if (output[_SI] != null) { + contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]) + } + return contents + }, + 'de_AssumeRoleWithWebIdentityResponse' + ) + var de_Credentials = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_AKI] != null) { + contents[_AKI] = (0, import_smithy_client.expectString)(output[_AKI]) } - try { - const result = await requestHandler.handle(request); - return (0, requestHelpers_1.getCredentials)(result.response).then((creds) => (0, client_1.setCredentialFeature)(creds, "CREDENTIALS_HTTP", "z")); - } - catch (e) { - throw new property_provider_1.CredentialsProviderError(String(e), { logger: options.logger }); - } - }, options.maxRetries ?? 3, options.timeout ?? 1000); -}; -exports.fromHttp = fromHttp; - - -/***/ }), - -/***/ 92398: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getCredentials = exports.createGetRequest = void 0; -const property_provider_1 = __nccwpck_require__(19248); -const protocol_http_1 = __nccwpck_require__(31788); -const smithy_client_1 = __nccwpck_require__(76583); -const util_stream_1 = __nccwpck_require__(77846); -function createGetRequest(url) { - return new protocol_http_1.HttpRequest({ - protocol: url.protocol, - hostname: url.hostname, - port: Number(url.port), - path: url.pathname, - query: Array.from(url.searchParams.entries()).reduce((acc, [k, v]) => { - acc[k] = v; - return acc; - }, {}), - fragment: url.hash, - }); -} -exports.createGetRequest = createGetRequest; -async function getCredentials(response, logger) { - const stream = (0, util_stream_1.sdkStreamMixin)(response.body); - const str = await stream.transformToString(); - if (response.statusCode === 200) { - const parsed = JSON.parse(str); - if (typeof parsed.AccessKeyId !== "string" || - typeof parsed.SecretAccessKey !== "string" || - typeof parsed.Token !== "string" || - typeof parsed.Expiration !== "string") { - throw new property_provider_1.CredentialsProviderError("HTTP credential provider response not of the required format, an object matching: " + - "{ AccessKeyId: string, SecretAccessKey: string, Token: string, Expiration: string(rfc3339) }", { logger }); + if (output[_SAK] != null) { + contents[_SAK] = (0, import_smithy_client.expectString)(output[_SAK]) } - return { - accessKeyId: parsed.AccessKeyId, - secretAccessKey: parsed.SecretAccessKey, - sessionToken: parsed.Token, - expiration: (0, smithy_client_1.parseRfc3339DateTime)(parsed.Expiration), - }; - } - if (response.statusCode >= 400 && response.statusCode < 500) { - let parsedBody = {}; - try { - parsedBody = JSON.parse(str); + if (output[_STe] != null) { + contents[_STe] = (0, import_smithy_client.expectString)(output[_STe]) } - catch (e) { } - throw Object.assign(new property_provider_1.CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger }), { - Code: parsedBody.Code, - Message: parsedBody.Message, - }); - } - throw new property_provider_1.CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger }); -} -exports.getCredentials = getCredentials; + if (output[_E] != null) { + contents[_E] = (0, import_smithy_client.expectNonNull)( + (0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_E]) + ) + } + return contents + }, 'de_Credentials') + var de_DecodeAuthorizationMessageResponse = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_DM] != null) { + contents[_DM] = (0, import_smithy_client.expectString)(output[_DM]) + } + return contents + }, + 'de_DecodeAuthorizationMessageResponse' + ) + var de_ExpiredTokenException = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_m] != null) { + contents[_m] = (0, import_smithy_client.expectString)(output[_m]) + } + return contents + }, + 'de_ExpiredTokenException' + ) + var de_FederatedUser = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_FUI] != null) { + contents[_FUI] = (0, import_smithy_client.expectString)(output[_FUI]) + } + if (output[_Ar] != null) { + contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]) + } + return contents + }, 'de_FederatedUser') + var de_GetAccessKeyInfoResponse = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_Ac] != null) { + contents[_Ac] = (0, import_smithy_client.expectString)(output[_Ac]) + } + return contents + }, + 'de_GetAccessKeyInfoResponse' + ) + var de_GetCallerIdentityResponse = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_UI] != null) { + contents[_UI] = (0, import_smithy_client.expectString)(output[_UI]) + } + if (output[_Ac] != null) { + contents[_Ac] = (0, import_smithy_client.expectString)(output[_Ac]) + } + if (output[_Ar] != null) { + contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]) + } + return contents + }, + 'de_GetCallerIdentityResponse' + ) + var de_GetFederationTokenResponse = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_C] != null) { + contents[_C] = de_Credentials(output[_C], context) + } + if (output[_FU] != null) { + contents[_FU] = de_FederatedUser(output[_FU], context) + } + if (output[_PPS] != null) { + contents[_PPS] = (0, import_smithy_client.strictParseInt32)( + output[_PPS] + ) + } + return contents + }, + 'de_GetFederationTokenResponse' + ) + var de_GetSessionTokenResponse = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_C] != null) { + contents[_C] = de_Credentials(output[_C], context) + } + return contents + }, + 'de_GetSessionTokenResponse' + ) + var de_IDPCommunicationErrorException = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_m] != null) { + contents[_m] = (0, import_smithy_client.expectString)(output[_m]) + } + return contents + }, + 'de_IDPCommunicationErrorException' + ) + var de_IDPRejectedClaimException = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_m] != null) { + contents[_m] = (0, import_smithy_client.expectString)(output[_m]) + } + return contents + }, + 'de_IDPRejectedClaimException' + ) + var de_InvalidAuthorizationMessageException = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_m] != null) { + contents[_m] = (0, import_smithy_client.expectString)(output[_m]) + } + return contents + }, + 'de_InvalidAuthorizationMessageException' + ) + var de_InvalidIdentityTokenException = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_m] != null) { + contents[_m] = (0, import_smithy_client.expectString)(output[_m]) + } + return contents + }, + 'de_InvalidIdentityTokenException' + ) + var de_MalformedPolicyDocumentException = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_m] != null) { + contents[_m] = (0, import_smithy_client.expectString)(output[_m]) + } + return contents + }, + 'de_MalformedPolicyDocumentException' + ) + var de_PackedPolicyTooLargeException = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_m] != null) { + contents[_m] = (0, import_smithy_client.expectString)(output[_m]) + } + return contents + }, + 'de_PackedPolicyTooLargeException' + ) + var de_RegionDisabledException = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_m] != null) { + contents[_m] = (0, import_smithy_client.expectString)(output[_m]) + } + return contents + }, + 'de_RegionDisabledException' + ) + var deserializeMetadata = /* @__PURE__ */ __name( + output => ({ + httpStatusCode: output.statusCode, + requestId: + output.headers['x-amzn-requestid'] ?? + output.headers['x-amzn-request-id'] ?? + output.headers['x-amz-request-id'], + extendedRequestId: output.headers['x-amz-id-2'], + cfId: output.headers['x-amz-cf-id'] + }), + 'deserializeMetadata' + ) + var throwDefaultError = (0, import_smithy_client.withBaseException)( + STSServiceException + ) + var buildHttpRpcRequest = /* @__PURE__ */ __name( + async (context, headers, path, resolvedHostname, body) => { + const { + hostname, + protocol = 'https', + port, + path: basePath + } = await context.endpoint() + const contents = { + protocol, + hostname, + port, + method: 'POST', + path: basePath.endsWith('/') + ? basePath.slice(0, -1) + path + : basePath + path, + headers + } + if (resolvedHostname !== void 0) { + contents.hostname = resolvedHostname + } + if (body !== void 0) { + contents.body = body + } + return new import_protocol_http.HttpRequest(contents) + }, + 'buildHttpRpcRequest' + ) + var SHARED_HEADERS = { + 'content-type': 'application/x-www-form-urlencoded' + } + var _ = '2011-06-15' + var _A = 'Action' + var _AKI = 'AccessKeyId' + var _AR = 'AssumeRole' + var _ARI = 'AssumedRoleId' + var _ARU = 'AssumedRoleUser' + var _ARWSAML = 'AssumeRoleWithSAML' + var _ARWWI = 'AssumeRoleWithWebIdentity' + var _Ac = 'Account' + var _Ar = 'Arn' + var _Au = 'Audience' + var _C = 'Credentials' + var _CA = 'ContextAssertion' + var _DAM = 'DecodeAuthorizationMessage' + var _DM = 'DecodedMessage' + var _DS = 'DurationSeconds' + var _E = 'Expiration' + var _EI = 'ExternalId' + var _EM = 'EncodedMessage' + var _FU = 'FederatedUser' + var _FUI = 'FederatedUserId' + var _GAKI = 'GetAccessKeyInfo' + var _GCI = 'GetCallerIdentity' + var _GFT = 'GetFederationToken' + var _GST = 'GetSessionToken' + var _I = 'Issuer' + var _K = 'Key' + var _N = 'Name' + var _NQ = 'NameQualifier' + var _P = 'Policy' + var _PA = 'PolicyArns' + var _PAr = 'PrincipalArn' + var _PAro = 'ProviderArn' + var _PC = 'ProvidedContexts' + var _PI = 'ProviderId' + var _PPS = 'PackedPolicySize' + var _Pr = 'Provider' + var _RA = 'RoleArn' + var _RSN = 'RoleSessionName' + var _S = 'Subject' + var _SAK = 'SecretAccessKey' + var _SAMLA = 'SAMLAssertion' + var _SFWIT = 'SubjectFromWebIdentityToken' + var _SI = 'SourceIdentity' + var _SN = 'SerialNumber' + var _ST = 'SubjectType' + var _STe = 'SessionToken' + var _T = 'Tags' + var _TC = 'TokenCode' + var _TTK = 'TransitiveTagKeys' + var _UI = 'UserId' + var _V = 'Version' + var _Va = 'Value' + var _WIT = 'WebIdentityToken' + var _a = 'arn' + var _m = 'message' + var buildFormUrlencodedString = /* @__PURE__ */ __name( + formEntries => + Object.entries(formEntries) + .map( + ([key, value]) => + (0, import_smithy_client.extendedEncodeURIComponent)(key) + + '=' + + (0, import_smithy_client.extendedEncodeURIComponent)(value) + ) + .join('&'), + 'buildFormUrlencodedString' + ) + var loadQueryErrorCode = /* @__PURE__ */ __name((output, data) => { + var _a2 + if (((_a2 = data.Error) == null ? void 0 : _a2.Code) !== void 0) { + return data.Error.Code + } + if (output.statusCode == 404) { + return 'NotFound' + } + }, 'loadQueryErrorCode') + // src/commands/AssumeRoleCommand.ts + var _AssumeRoleCommand = class _AssumeRoleCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...import_EndpointParameters.commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('AWSSecurityTokenServiceV20110615', 'AssumeRole', {}) + .n('STSClient', 'AssumeRoleCommand') + .f(void 0, AssumeRoleResponseFilterSensitiveLog) + .ser(se_AssumeRoleCommand) + .de(de_AssumeRoleCommand) + .build() {} + __name(_AssumeRoleCommand, 'AssumeRoleCommand') + var AssumeRoleCommand = _AssumeRoleCommand + + // src/commands/AssumeRoleWithSAMLCommand.ts + + var import_EndpointParameters2 = __nccwpck_require__(20510) + var _AssumeRoleWithSAMLCommand = class _AssumeRoleWithSAMLCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...import_EndpointParameters2.commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('AWSSecurityTokenServiceV20110615', 'AssumeRoleWithSAML', {}) + .n('STSClient', 'AssumeRoleWithSAMLCommand') + .f( + AssumeRoleWithSAMLRequestFilterSensitiveLog, + AssumeRoleWithSAMLResponseFilterSensitiveLog + ) + .ser(se_AssumeRoleWithSAMLCommand) + .de(de_AssumeRoleWithSAMLCommand) + .build() {} + __name(_AssumeRoleWithSAMLCommand, 'AssumeRoleWithSAMLCommand') + var AssumeRoleWithSAMLCommand = _AssumeRoleWithSAMLCommand + + // src/commands/AssumeRoleWithWebIdentityCommand.ts + + var import_EndpointParameters3 = __nccwpck_require__(20510) + var _AssumeRoleWithWebIdentityCommand = class _AssumeRoleWithWebIdentityCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...import_EndpointParameters3.commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('AWSSecurityTokenServiceV20110615', 'AssumeRoleWithWebIdentity', {}) + .n('STSClient', 'AssumeRoleWithWebIdentityCommand') + .f( + AssumeRoleWithWebIdentityRequestFilterSensitiveLog, + AssumeRoleWithWebIdentityResponseFilterSensitiveLog + ) + .ser(se_AssumeRoleWithWebIdentityCommand) + .de(de_AssumeRoleWithWebIdentityCommand) + .build() {} + __name( + _AssumeRoleWithWebIdentityCommand, + 'AssumeRoleWithWebIdentityCommand' + ) + var AssumeRoleWithWebIdentityCommand = _AssumeRoleWithWebIdentityCommand -/***/ }), + // src/commands/DecodeAuthorizationMessageCommand.ts -/***/ 55383: -/***/ ((__unused_webpack_module, exports) => { + var import_EndpointParameters4 = __nccwpck_require__(20510) + var _DecodeAuthorizationMessageCommand = class _DecodeAuthorizationMessageCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...import_EndpointParameters4.commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('AWSSecurityTokenServiceV20110615', 'DecodeAuthorizationMessage', {}) + .n('STSClient', 'DecodeAuthorizationMessageCommand') + .f(void 0, void 0) + .ser(se_DecodeAuthorizationMessageCommand) + .de(de_DecodeAuthorizationMessageCommand) + .build() {} + __name( + _DecodeAuthorizationMessageCommand, + 'DecodeAuthorizationMessageCommand' + ) + var DecodeAuthorizationMessageCommand = _DecodeAuthorizationMessageCommand -"use strict"; + // src/commands/GetAccessKeyInfoCommand.ts -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.retryWrapper = void 0; -const retryWrapper = (toRetry, maxRetries, delayMs) => { - return async () => { - for (let i = 0; i < maxRetries; ++i) { - try { - return await toRetry(); + var import_EndpointParameters5 = __nccwpck_require__(20510) + var _GetAccessKeyInfoCommand = class _GetAccessKeyInfoCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...import_EndpointParameters5.commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('AWSSecurityTokenServiceV20110615', 'GetAccessKeyInfo', {}) + .n('STSClient', 'GetAccessKeyInfoCommand') + .f(void 0, void 0) + .ser(se_GetAccessKeyInfoCommand) + .de(de_GetAccessKeyInfoCommand) + .build() {} + __name(_GetAccessKeyInfoCommand, 'GetAccessKeyInfoCommand') + var GetAccessKeyInfoCommand = _GetAccessKeyInfoCommand + + // src/commands/GetCallerIdentityCommand.ts + + var import_EndpointParameters6 = __nccwpck_require__(20510) + var _GetCallerIdentityCommand = class _GetCallerIdentityCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...import_EndpointParameters6.commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('AWSSecurityTokenServiceV20110615', 'GetCallerIdentity', {}) + .n('STSClient', 'GetCallerIdentityCommand') + .f(void 0, void 0) + .ser(se_GetCallerIdentityCommand) + .de(de_GetCallerIdentityCommand) + .build() {} + __name(_GetCallerIdentityCommand, 'GetCallerIdentityCommand') + var GetCallerIdentityCommand = _GetCallerIdentityCommand + + // src/commands/GetFederationTokenCommand.ts + + var import_EndpointParameters7 = __nccwpck_require__(20510) + var _GetFederationTokenCommand = class _GetFederationTokenCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...import_EndpointParameters7.commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('AWSSecurityTokenServiceV20110615', 'GetFederationToken', {}) + .n('STSClient', 'GetFederationTokenCommand') + .f(void 0, GetFederationTokenResponseFilterSensitiveLog) + .ser(se_GetFederationTokenCommand) + .de(de_GetFederationTokenCommand) + .build() {} + __name(_GetFederationTokenCommand, 'GetFederationTokenCommand') + var GetFederationTokenCommand = _GetFederationTokenCommand + + // src/commands/GetSessionTokenCommand.ts + + var import_EndpointParameters8 = __nccwpck_require__(20510) + var _GetSessionTokenCommand = class _GetSessionTokenCommand extends import_smithy_client.Command.classBuilder() + .ep({ + ...import_EndpointParameters8.commonParams + }) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('AWSSecurityTokenServiceV20110615', 'GetSessionToken', {}) + .n('STSClient', 'GetSessionTokenCommand') + .f(void 0, GetSessionTokenResponseFilterSensitiveLog) + .ser(se_GetSessionTokenCommand) + .de(de_GetSessionTokenCommand) + .build() {} + __name(_GetSessionTokenCommand, 'GetSessionTokenCommand') + var GetSessionTokenCommand = _GetSessionTokenCommand + + // src/STS.ts + var import_STSClient = __nccwpck_require__(64195) + var commands = { + AssumeRoleCommand, + AssumeRoleWithSAMLCommand, + AssumeRoleWithWebIdentityCommand, + DecodeAuthorizationMessageCommand, + GetAccessKeyInfoCommand, + GetCallerIdentityCommand, + GetFederationTokenCommand, + GetSessionTokenCommand + } + var _STS = class _STS extends import_STSClient.STSClient {} + __name(_STS, 'STS') + var STS = _STS + ;(0, import_smithy_client.createAggregatedClient)(commands, STS) + + // src/index.ts + var import_EndpointParameters9 = __nccwpck_require__(20510) + + // src/defaultStsRoleAssumers.ts + var ASSUME_ROLE_DEFAULT_REGION = 'us-east-1' + var getAccountIdFromAssumedRoleUser = /* @__PURE__ */ __name( + assumedRoleUser => { + if ( + typeof (assumedRoleUser == null ? void 0 : assumedRoleUser.Arn) === + 'string' + ) { + const arnComponents = assumedRoleUser.Arn.split(':') + if (arnComponents.length > 4 && arnComponents[4] !== '') { + return arnComponents[4] } - catch (e) { - await new Promise((resolve) => setTimeout(resolve, delayMs)); + } + return void 0 + }, + 'getAccountIdFromAssumedRoleUser' + ) + var resolveRegion = /* @__PURE__ */ __name( + async (_region, _parentRegion, credentialProviderLogger) => { + var _a2 + const region = + typeof _region === 'function' ? await _region() : _region + const parentRegion = + typeof _parentRegion === 'function' + ? await _parentRegion() + : _parentRegion + ;(_a2 = + credentialProviderLogger == null + ? void 0 + : credentialProviderLogger.debug) == null + ? void 0 + : _a2.call( + credentialProviderLogger, + '@aws-sdk/client-sts::resolveRegion', + 'accepting first of:', + `${region} (provider)`, + `${parentRegion} (parent client)`, + `${ASSUME_ROLE_DEFAULT_REGION} (STS default)` + ) + return region ?? parentRegion ?? ASSUME_ROLE_DEFAULT_REGION + }, + 'resolveRegion' + ) + var getDefaultRoleAssumer = /* @__PURE__ */ __name( + (stsOptions, stsClientCtor) => { + let stsClient + let closureSourceCreds + return async (sourceCreds, params) => { + var _a2, _b, _c + closureSourceCreds = sourceCreds + if (!stsClient) { + const { + logger = (_a2 = + stsOptions == null + ? void 0 + : stsOptions.parentClientConfig) == null + ? void 0 + : _a2.logger, + region, + requestHandler = (_b = + stsOptions == null + ? void 0 + : stsOptions.parentClientConfig) == null + ? void 0 + : _b.requestHandler, + credentialProviderLogger + } = stsOptions + const resolvedRegion = await resolveRegion( + region, + (_c = + stsOptions == null + ? void 0 + : stsOptions.parentClientConfig) == null + ? void 0 + : _c.region, + credentialProviderLogger + ) + const isCompatibleRequestHandler = !isH2(requestHandler) + stsClient = new stsClientCtor({ + // A hack to make sts client uses the credential in current closure. + credentialDefaultProvider: () => async () => closureSourceCreds, + region: resolvedRegion, + requestHandler: isCompatibleRequestHandler + ? requestHandler + : void 0, + logger + }) + } + const { + Credentials: Credentials2, + AssumedRoleUser: AssumedRoleUser2 + } = await stsClient.send(new AssumeRoleCommand(params)) + if ( + !Credentials2 || + !Credentials2.AccessKeyId || + !Credentials2.SecretAccessKey + ) { + throw new Error( + `Invalid response from STS.assumeRole call with role ${params.RoleArn}` + ) + } + const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser2) + return { + accessKeyId: Credentials2.AccessKeyId, + secretAccessKey: Credentials2.SecretAccessKey, + sessionToken: Credentials2.SessionToken, + expiration: Credentials2.Expiration, + // TODO(credentialScope): access normally when shape is updated. + ...(Credentials2.CredentialScope && { + credentialScope: Credentials2.CredentialScope + }), + ...(accountId && { accountId }) } - } - return await toRetry(); - }; -}; -exports.retryWrapper = retryWrapper; - - -/***/ }), - -/***/ 96893: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.fromHttp = void 0; -var fromHttp_1 = __nccwpck_require__(66615); -Object.defineProperty(exports, "fromHttp", ({ enumerable: true, get: function () { return fromHttp_1.fromHttp; } })); - - -/***/ }), - -/***/ 9972: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -var __create = Object.create; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __getProtoOf = Object.getPrototypeOf; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. - isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, - mod -)); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var index_exports = {}; -__export(index_exports, { - fromIni: () => fromIni -}); -module.exports = __toCommonJS(index_exports); - -// src/fromIni.ts - - -// src/resolveProfileData.ts - - -// src/resolveAssumeRoleCredentials.ts - - -var import_shared_ini_file_loader = __nccwpck_require__(69001); - -// src/resolveCredentialSource.ts -var import_client = __nccwpck_require__(60034); -var import_property_provider = __nccwpck_require__(19248); -var resolveCredentialSource = /* @__PURE__ */ __name((credentialSource, profileName, logger) => { - const sourceProvidersMap = { - EcsContainer: /* @__PURE__ */ __name(async (options) => { - const { fromHttp } = await Promise.resolve().then(() => __toESM(__nccwpck_require__(96893))); - const { fromContainerMetadata } = await Promise.resolve().then(() => __toESM(__nccwpck_require__(91502))); - logger?.debug("@aws-sdk/credential-provider-ini - credential_source is EcsContainer"); - return async () => (0, import_property_provider.chain)(fromHttp(options ?? {}), fromContainerMetadata(options))().then(setNamedProvider); - }, "EcsContainer"), - Ec2InstanceMetadata: /* @__PURE__ */ __name(async (options) => { - logger?.debug("@aws-sdk/credential-provider-ini - credential_source is Ec2InstanceMetadata"); - const { fromInstanceMetadata } = await Promise.resolve().then(() => __toESM(__nccwpck_require__(91502))); - return async () => fromInstanceMetadata(options)().then(setNamedProvider); - }, "Ec2InstanceMetadata"), - Environment: /* @__PURE__ */ __name(async (options) => { - logger?.debug("@aws-sdk/credential-provider-ini - credential_source is Environment"); - const { fromEnv } = await Promise.resolve().then(() => __toESM(__nccwpck_require__(19995))); - return async () => fromEnv(options)().then(setNamedProvider); - }, "Environment") - }; - if (credentialSource in sourceProvidersMap) { - return sourceProvidersMap[credentialSource]; - } else { - throw new import_property_provider.CredentialsProviderError( - `Unsupported credential source in profile ${profileName}. Got ${credentialSource}, expected EcsContainer or Ec2InstanceMetadata or Environment.`, - { logger } - ); - } -}, "resolveCredentialSource"); -var setNamedProvider = /* @__PURE__ */ __name((creds) => (0, import_client.setCredentialFeature)(creds, "CREDENTIALS_PROFILE_NAMED_PROVIDER", "p"), "setNamedProvider"); - -// src/resolveAssumeRoleCredentials.ts -var isAssumeRoleProfile = /* @__PURE__ */ __name((arg, { profile = "default", logger } = {}) => { - return Boolean(arg) && typeof arg === "object" && typeof arg.role_arn === "string" && ["undefined", "string"].indexOf(typeof arg.role_session_name) > -1 && ["undefined", "string"].indexOf(typeof arg.external_id) > -1 && ["undefined", "string"].indexOf(typeof arg.mfa_serial) > -1 && (isAssumeRoleWithSourceProfile(arg, { profile, logger }) || isCredentialSourceProfile(arg, { profile, logger })); -}, "isAssumeRoleProfile"); -var isAssumeRoleWithSourceProfile = /* @__PURE__ */ __name((arg, { profile, logger }) => { - const withSourceProfile = typeof arg.source_profile === "string" && typeof arg.credential_source === "undefined"; - if (withSourceProfile) { - logger?.debug?.(` ${profile} isAssumeRoleWithSourceProfile source_profile=${arg.source_profile}`); - } - return withSourceProfile; -}, "isAssumeRoleWithSourceProfile"); -var isCredentialSourceProfile = /* @__PURE__ */ __name((arg, { profile, logger }) => { - const withProviderProfile = typeof arg.credential_source === "string" && typeof arg.source_profile === "undefined"; - if (withProviderProfile) { - logger?.debug?.(` ${profile} isCredentialSourceProfile credential_source=${arg.credential_source}`); - } - return withProviderProfile; -}, "isCredentialSourceProfile"); -var resolveAssumeRoleCredentials = /* @__PURE__ */ __name(async (profileName, profiles, options, visitedProfiles = {}) => { - options.logger?.debug("@aws-sdk/credential-provider-ini - resolveAssumeRoleCredentials (STS)"); - const profileData = profiles[profileName]; - const { source_profile, region } = profileData; - if (!options.roleAssumer) { - const { getDefaultRoleAssumer } = await Promise.resolve().then(() => __toESM(__nccwpck_require__(2273))); - options.roleAssumer = getDefaultRoleAssumer( - { - ...options.clientConfig, - credentialProviderLogger: options.logger, - parentClientConfig: { - ...options?.parentClientConfig, - region: region ?? options?.parentClientConfig?.region - } - }, - options.clientPlugins - ); - } - if (source_profile && source_profile in visitedProfiles) { - throw new import_property_provider.CredentialsProviderError( - `Detected a cycle attempting to resolve credentials for profile ${(0, import_shared_ini_file_loader.getProfileName)(options)}. Profiles visited: ` + Object.keys(visitedProfiles).join(", "), - { logger: options.logger } - ); - } - options.logger?.debug( - `@aws-sdk/credential-provider-ini - finding credential resolver using ${source_profile ? `source_profile=[${source_profile}]` : `profile=[${profileName}]`}` - ); - const sourceCredsProvider = source_profile ? resolveProfileData( - source_profile, - profiles, - options, - { - ...visitedProfiles, - [source_profile]: true - }, - isCredentialSourceWithoutRoleArn(profiles[source_profile] ?? {}) - ) : (await resolveCredentialSource(profileData.credential_source, profileName, options.logger)(options))(); - if (isCredentialSourceWithoutRoleArn(profileData)) { - return sourceCredsProvider.then((creds) => (0, import_client.setCredentialFeature)(creds, "CREDENTIALS_PROFILE_SOURCE_PROFILE", "o")); - } else { - const params = { - RoleArn: profileData.role_arn, - RoleSessionName: profileData.role_session_name || `aws-sdk-js-${Date.now()}`, - ExternalId: profileData.external_id, - DurationSeconds: parseInt(profileData.duration_seconds || "3600", 10) - }; - const { mfa_serial } = profileData; - if (mfa_serial) { - if (!options.mfaCodeProvider) { - throw new import_property_provider.CredentialsProviderError( - `Profile ${profileName} requires multi-factor authentication, but no MFA code callback was provided.`, - { logger: options.logger, tryNextLink: false } - ); - } - params.SerialNumber = mfa_serial; - params.TokenCode = await options.mfaCodeProvider(mfa_serial); - } - const sourceCreds = await sourceCredsProvider; - return options.roleAssumer(sourceCreds, params).then( - (creds) => (0, import_client.setCredentialFeature)(creds, "CREDENTIALS_PROFILE_SOURCE_PROFILE", "o") - ); - } -}, "resolveAssumeRoleCredentials"); -var isCredentialSourceWithoutRoleArn = /* @__PURE__ */ __name((section) => { - return !section.role_arn && !!section.credential_source; -}, "isCredentialSourceWithoutRoleArn"); - -// src/resolveProcessCredentials.ts - -var isProcessProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === "object" && typeof arg.credential_process === "string", "isProcessProfile"); -var resolveProcessCredentials = /* @__PURE__ */ __name(async (options, profile) => Promise.resolve().then(() => __toESM(__nccwpck_require__(79732))).then( - ({ fromProcess }) => fromProcess({ - ...options, - profile - })().then((creds) => (0, import_client.setCredentialFeature)(creds, "CREDENTIALS_PROFILE_PROCESS", "v")) -), "resolveProcessCredentials"); - -// src/resolveSsoCredentials.ts - -var resolveSsoCredentials = /* @__PURE__ */ __name(async (profile, profileData, options = {}) => { - const { fromSSO } = await Promise.resolve().then(() => __toESM(__nccwpck_require__(84297))); - return fromSSO({ - profile, - logger: options.logger, - parentClientConfig: options.parentClientConfig, - clientConfig: options.clientConfig - })().then((creds) => { - if (profileData.sso_session) { - return (0, import_client.setCredentialFeature)(creds, "CREDENTIALS_PROFILE_SSO", "r"); - } else { - return (0, import_client.setCredentialFeature)(creds, "CREDENTIALS_PROFILE_SSO_LEGACY", "t"); - } - }); -}, "resolveSsoCredentials"); -var isSsoProfile = /* @__PURE__ */ __name((arg) => arg && (typeof arg.sso_start_url === "string" || typeof arg.sso_account_id === "string" || typeof arg.sso_session === "string" || typeof arg.sso_region === "string" || typeof arg.sso_role_name === "string"), "isSsoProfile"); - -// src/resolveStaticCredentials.ts - -var isStaticCredsProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === "object" && typeof arg.aws_access_key_id === "string" && typeof arg.aws_secret_access_key === "string" && ["undefined", "string"].indexOf(typeof arg.aws_session_token) > -1 && ["undefined", "string"].indexOf(typeof arg.aws_account_id) > -1, "isStaticCredsProfile"); -var resolveStaticCredentials = /* @__PURE__ */ __name(async (profile, options) => { - options?.logger?.debug("@aws-sdk/credential-provider-ini - resolveStaticCredentials"); - const credentials = { - accessKeyId: profile.aws_access_key_id, - secretAccessKey: profile.aws_secret_access_key, - sessionToken: profile.aws_session_token, - ...profile.aws_credential_scope && { credentialScope: profile.aws_credential_scope }, - ...profile.aws_account_id && { accountId: profile.aws_account_id } - }; - return (0, import_client.setCredentialFeature)(credentials, "CREDENTIALS_PROFILE", "n"); -}, "resolveStaticCredentials"); - -// src/resolveWebIdentityCredentials.ts - -var isWebIdentityProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === "object" && typeof arg.web_identity_token_file === "string" && typeof arg.role_arn === "string" && ["undefined", "string"].indexOf(typeof arg.role_session_name) > -1, "isWebIdentityProfile"); -var resolveWebIdentityCredentials = /* @__PURE__ */ __name(async (profile, options) => Promise.resolve().then(() => __toESM(__nccwpck_require__(79761))).then( - ({ fromTokenFile }) => fromTokenFile({ - webIdentityTokenFile: profile.web_identity_token_file, - roleArn: profile.role_arn, - roleSessionName: profile.role_session_name, - roleAssumerWithWebIdentity: options.roleAssumerWithWebIdentity, - logger: options.logger, - parentClientConfig: options.parentClientConfig - })().then((creds) => (0, import_client.setCredentialFeature)(creds, "CREDENTIALS_PROFILE_STS_WEB_ID_TOKEN", "q")) -), "resolveWebIdentityCredentials"); - -// src/resolveProfileData.ts -var resolveProfileData = /* @__PURE__ */ __name(async (profileName, profiles, options, visitedProfiles = {}, isAssumeRoleRecursiveCall = false) => { - const data = profiles[profileName]; - if (Object.keys(visitedProfiles).length > 0 && isStaticCredsProfile(data)) { - return resolveStaticCredentials(data, options); - } - if (isAssumeRoleRecursiveCall || isAssumeRoleProfile(data, { profile: profileName, logger: options.logger })) { - return resolveAssumeRoleCredentials(profileName, profiles, options, visitedProfiles); - } - if (isStaticCredsProfile(data)) { - return resolveStaticCredentials(data, options); - } - if (isWebIdentityProfile(data)) { - return resolveWebIdentityCredentials(data, options); - } - if (isProcessProfile(data)) { - return resolveProcessCredentials(options, profileName); - } - if (isSsoProfile(data)) { - return await resolveSsoCredentials(profileName, data, options); - } - throw new import_property_provider.CredentialsProviderError( - `Could not resolve credentials using profile: [${profileName}] in configuration/credentials file(s).`, - { logger: options.logger } - ); -}, "resolveProfileData"); - -// src/fromIni.ts -var fromIni = /* @__PURE__ */ __name((_init = {}) => async ({ callerClientConfig } = {}) => { - const init = { - ..._init, - parentClientConfig: { - ...callerClientConfig, - ..._init.parentClientConfig - } - }; - init.logger?.debug("@aws-sdk/credential-provider-ini - fromIni"); - const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init); - return resolveProfileData( - (0, import_shared_ini_file_loader.getProfileName)({ - profile: _init.profile ?? callerClientConfig?.profile - }), - profiles, - init - ); -}, "fromIni"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 75663: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -var __create = Object.create; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __getProtoOf = Object.getPrototypeOf; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. - isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, - mod -)); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var index_exports = {}; -__export(index_exports, { - credentialsTreatedAsExpired: () => credentialsTreatedAsExpired, - credentialsWillNeedRefresh: () => credentialsWillNeedRefresh, - defaultProvider: () => defaultProvider -}); -module.exports = __toCommonJS(index_exports); - -// src/defaultProvider.ts -var import_credential_provider_env = __nccwpck_require__(19995); - -var import_shared_ini_file_loader = __nccwpck_require__(69001); - -// src/remoteProvider.ts -var import_property_provider = __nccwpck_require__(19248); -var ENV_IMDS_DISABLED = "AWS_EC2_METADATA_DISABLED"; -var remoteProvider = /* @__PURE__ */ __name(async (init) => { - const { ENV_CMDS_FULL_URI, ENV_CMDS_RELATIVE_URI, fromContainerMetadata, fromInstanceMetadata } = await Promise.resolve().then(() => __toESM(__nccwpck_require__(91502))); - if (process.env[ENV_CMDS_RELATIVE_URI] || process.env[ENV_CMDS_FULL_URI]) { - init.logger?.debug("@aws-sdk/credential-provider-node - remoteProvider::fromHttp/fromContainerMetadata"); - const { fromHttp } = await Promise.resolve().then(() => __toESM(__nccwpck_require__(96893))); - return (0, import_property_provider.chain)(fromHttp(init), fromContainerMetadata(init)); - } - if (process.env[ENV_IMDS_DISABLED] && process.env[ENV_IMDS_DISABLED] !== "false") { - return async () => { - throw new import_property_provider.CredentialsProviderError("EC2 Instance Metadata Service access disabled", { logger: init.logger }); - }; - } - init.logger?.debug("@aws-sdk/credential-provider-node - remoteProvider::fromInstanceMetadata"); - return fromInstanceMetadata(init); -}, "remoteProvider"); - -// src/defaultProvider.ts -var multipleCredentialSourceWarningEmitted = false; -var defaultProvider = /* @__PURE__ */ __name((init = {}) => (0, import_property_provider.memoize)( - (0, import_property_provider.chain)( - async () => { - const profile = init.profile ?? process.env[import_shared_ini_file_loader.ENV_PROFILE]; - if (profile) { - const envStaticCredentialsAreSet = process.env[import_credential_provider_env.ENV_KEY] && process.env[import_credential_provider_env.ENV_SECRET]; - if (envStaticCredentialsAreSet) { - if (!multipleCredentialSourceWarningEmitted) { - const warnFn = init.logger?.warn && init.logger?.constructor?.name !== "NoOpLogger" ? init.logger.warn : console.warn; - warnFn( - `@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING: - Multiple credential sources detected: - Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set. - This SDK will proceed with the AWS_PROFILE value. - - However, a future version may change this behavior to prefer the ENV static credentials. - Please ensure that your environment only sets either the AWS_PROFILE or the - AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair. -` - ); - multipleCredentialSourceWarningEmitted = true; } - } - throw new import_property_provider.CredentialsProviderError("AWS_PROFILE is set, skipping fromEnv provider.", { - logger: init.logger, - tryNextLink: true - }); - } - init.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromEnv"); - return (0, import_credential_provider_env.fromEnv)(init)(); - }, - async () => { - init.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromSSO"); - const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init; - if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) { - throw new import_property_provider.CredentialsProviderError( - "Skipping SSO provider in default chain (inputs do not include SSO fields).", - { logger: init.logger } - ); - } - const { fromSSO } = await Promise.resolve().then(() => __toESM(__nccwpck_require__(84297))); - return fromSSO(init)(); - }, - async () => { - init.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromIni"); - const { fromIni } = await Promise.resolve().then(() => __toESM(__nccwpck_require__(9972))); - return fromIni(init)(); - }, - async () => { - init.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromProcess"); - const { fromProcess } = await Promise.resolve().then(() => __toESM(__nccwpck_require__(79732))); - return fromProcess(init)(); - }, - async () => { - init.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromTokenFile"); - const { fromTokenFile } = await Promise.resolve().then(() => __toESM(__nccwpck_require__(79761))); - return fromTokenFile(init)(); - }, - async () => { - init.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::remoteProvider"); - return (await remoteProvider(init))(); - }, - async () => { - throw new import_property_provider.CredentialsProviderError("Could not load credentials from any providers", { - tryNextLink: false, - logger: init.logger - }); - } - ), - credentialsTreatedAsExpired, - credentialsWillNeedRefresh -), "defaultProvider"); -var credentialsWillNeedRefresh = /* @__PURE__ */ __name((credentials) => credentials?.expiration !== void 0, "credentialsWillNeedRefresh"); -var credentialsTreatedAsExpired = /* @__PURE__ */ __name((credentials) => credentials?.expiration !== void 0 && credentials.expiration.getTime() - Date.now() < 3e5, "credentialsTreatedAsExpired"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 79732: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var index_exports = {}; -__export(index_exports, { - fromProcess: () => fromProcess -}); -module.exports = __toCommonJS(index_exports); - -// src/fromProcess.ts -var import_shared_ini_file_loader = __nccwpck_require__(69001); - -// src/resolveProcessCredentials.ts -var import_property_provider = __nccwpck_require__(19248); -var import_child_process = __nccwpck_require__(32081); -var import_util = __nccwpck_require__(73837); - -// src/getValidatedProcessCredentials.ts -var import_client = __nccwpck_require__(60034); -var getValidatedProcessCredentials = /* @__PURE__ */ __name((profileName, data, profiles) => { - if (data.Version !== 1) { - throw Error(`Profile ${profileName} credential_process did not return Version 1.`); - } - if (data.AccessKeyId === void 0 || data.SecretAccessKey === void 0) { - throw Error(`Profile ${profileName} credential_process returned invalid credentials.`); - } - if (data.Expiration) { - const currentTime = /* @__PURE__ */ new Date(); - const expireTime = new Date(data.Expiration); - if (expireTime < currentTime) { - throw Error(`Profile ${profileName} credential_process returned expired credentials.`); - } - } - let accountId = data.AccountId; - if (!accountId && profiles?.[profileName]?.aws_account_id) { - accountId = profiles[profileName].aws_account_id; - } - const credentials = { - accessKeyId: data.AccessKeyId, - secretAccessKey: data.SecretAccessKey, - ...data.SessionToken && { sessionToken: data.SessionToken }, - ...data.Expiration && { expiration: new Date(data.Expiration) }, - ...data.CredentialScope && { credentialScope: data.CredentialScope }, - ...accountId && { accountId } - }; - (0, import_client.setCredentialFeature)(credentials, "CREDENTIALS_PROCESS", "w"); - return credentials; -}, "getValidatedProcessCredentials"); - -// src/resolveProcessCredentials.ts -var resolveProcessCredentials = /* @__PURE__ */ __name(async (profileName, profiles, logger) => { - const profile = profiles[profileName]; - if (profiles[profileName]) { - const credentialProcess = profile["credential_process"]; - if (credentialProcess !== void 0) { - const execPromise = (0, import_util.promisify)(import_child_process.exec); - try { - const { stdout } = await execPromise(credentialProcess); - let data; - try { - data = JSON.parse(stdout.trim()); - } catch { - throw Error(`Profile ${profileName} credential_process returned invalid JSON.`); - } - return getValidatedProcessCredentials(profileName, data, profiles); - } catch (error) { - throw new import_property_provider.CredentialsProviderError(error.message, { logger }); - } - } else { - throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} did not contain credential_process.`, { logger }); - } - } else { - throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} could not be found in shared credentials file.`, { - logger - }); - } -}, "resolveProcessCredentials"); - -// src/fromProcess.ts -var fromProcess = /* @__PURE__ */ __name((init = {}) => async ({ callerClientConfig } = {}) => { - init.logger?.debug("@aws-sdk/credential-provider-process - fromProcess"); - const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init); - return resolveProcessCredentials( - (0, import_shared_ini_file_loader.getProfileName)({ - profile: init.profile ?? callerClientConfig?.profile - }), - profiles, - init.logger - ); -}, "fromProcess"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 84297: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __esm = (fn, res) => function __init() { - return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res; -}; -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/loadSso.ts -var loadSso_exports = {}; -__export(loadSso_exports, { - GetRoleCredentialsCommand: () => import_client_sso.GetRoleCredentialsCommand, - SSOClient: () => import_client_sso.SSOClient -}); -var import_client_sso; -var init_loadSso = __esm({ - "src/loadSso.ts"() { - "use strict"; - import_client_sso = __nccwpck_require__(11475); - } -}); - -// src/index.ts -var index_exports = {}; -__export(index_exports, { - fromSSO: () => fromSSO, - isSsoProfile: () => isSsoProfile, - validateSsoProfile: () => validateSsoProfile -}); -module.exports = __toCommonJS(index_exports); - -// src/fromSSO.ts - - - -// src/isSsoProfile.ts -var isSsoProfile = /* @__PURE__ */ __name((arg) => arg && (typeof arg.sso_start_url === "string" || typeof arg.sso_account_id === "string" || typeof arg.sso_session === "string" || typeof arg.sso_region === "string" || typeof arg.sso_role_name === "string"), "isSsoProfile"); - -// src/resolveSSOCredentials.ts -var import_client = __nccwpck_require__(60034); -var import_token_providers = __nccwpck_require__(6701); -var import_property_provider = __nccwpck_require__(19248); -var import_shared_ini_file_loader = __nccwpck_require__(69001); -var SHOULD_FAIL_CREDENTIAL_CHAIN = false; -var resolveSSOCredentials = /* @__PURE__ */ __name(async ({ - ssoStartUrl, - ssoSession, - ssoAccountId, - ssoRegion, - ssoRoleName, - ssoClient, - clientConfig, - parentClientConfig, - profile, - logger -}) => { - let token; - const refreshMessage = `To refresh this SSO session run aws sso login with the corresponding profile.`; - if (ssoSession) { - try { - const _token = await (0, import_token_providers.fromSso)({ profile })(); - token = { - accessToken: _token.token, - expiresAt: new Date(_token.expiration).toISOString() - }; - } catch (e) { - throw new import_property_provider.CredentialsProviderError(e.message, { - tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN, - logger - }); - } - } else { - try { - token = await (0, import_shared_ini_file_loader.getSSOTokenFromFile)(ssoStartUrl); - } catch (e) { - throw new import_property_provider.CredentialsProviderError(`The SSO session associated with this profile is invalid. ${refreshMessage}`, { - tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN, - logger - }); - } - } - if (new Date(token.expiresAt).getTime() - Date.now() <= 0) { - throw new import_property_provider.CredentialsProviderError(`The SSO session associated with this profile has expired. ${refreshMessage}`, { - tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN, - logger - }); - } - const { accessToken } = token; - const { SSOClient: SSOClient2, GetRoleCredentialsCommand: GetRoleCredentialsCommand2 } = await Promise.resolve().then(() => (init_loadSso(), loadSso_exports)); - const sso = ssoClient || new SSOClient2( - Object.assign({}, clientConfig ?? {}, { - logger: clientConfig?.logger ?? parentClientConfig?.logger, - region: clientConfig?.region ?? ssoRegion - }) - ); - let ssoResp; - try { - ssoResp = await sso.send( - new GetRoleCredentialsCommand2({ - accountId: ssoAccountId, - roleName: ssoRoleName, - accessToken - }) - ); - } catch (e) { - throw new import_property_provider.CredentialsProviderError(e, { - tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN, - logger - }); - } - const { - roleCredentials: { accessKeyId, secretAccessKey, sessionToken, expiration, credentialScope, accountId } = {} - } = ssoResp; - if (!accessKeyId || !secretAccessKey || !sessionToken || !expiration) { - throw new import_property_provider.CredentialsProviderError("SSO returns an invalid temporary credential.", { - tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN, - logger - }); - } - const credentials = { - accessKeyId, - secretAccessKey, - sessionToken, - expiration: new Date(expiration), - ...credentialScope && { credentialScope }, - ...accountId && { accountId } - }; - if (ssoSession) { - (0, import_client.setCredentialFeature)(credentials, "CREDENTIALS_SSO", "s"); - } else { - (0, import_client.setCredentialFeature)(credentials, "CREDENTIALS_SSO_LEGACY", "u"); - } - return credentials; -}, "resolveSSOCredentials"); - -// src/validateSsoProfile.ts - -var validateSsoProfile = /* @__PURE__ */ __name((profile, logger) => { - const { sso_start_url, sso_account_id, sso_region, sso_role_name } = profile; - if (!sso_start_url || !sso_account_id || !sso_region || !sso_role_name) { - throw new import_property_provider.CredentialsProviderError( - `Profile is configured with invalid SSO credentials. Required parameters "sso_account_id", "sso_region", "sso_role_name", "sso_start_url". Got ${Object.keys(profile).join( - ", " - )} -Reference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`, - { tryNextLink: false, logger } - ); - } - return profile; -}, "validateSsoProfile"); - -// src/fromSSO.ts -var fromSSO = /* @__PURE__ */ __name((init = {}) => async ({ callerClientConfig } = {}) => { - init.logger?.debug("@aws-sdk/credential-provider-sso - fromSSO"); - const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init; - const { ssoClient } = init; - const profileName = (0, import_shared_ini_file_loader.getProfileName)({ - profile: init.profile ?? callerClientConfig?.profile - }); - if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) { - const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init); - const profile = profiles[profileName]; - if (!profile) { - throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} was not found.`, { logger: init.logger }); - } - if (!isSsoProfile(profile)) { - throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} is not configured with SSO credentials.`, { - logger: init.logger - }); - } - if (profile?.sso_session) { - const ssoSessions = await (0, import_shared_ini_file_loader.loadSsoSessionData)(init); - const session = ssoSessions[profile.sso_session]; - const conflictMsg = ` configurations in profile ${profileName} and sso-session ${profile.sso_session}`; - if (ssoRegion && ssoRegion !== session.sso_region) { - throw new import_property_provider.CredentialsProviderError(`Conflicting SSO region` + conflictMsg, { - tryNextLink: false, - logger: init.logger - }); - } - if (ssoStartUrl && ssoStartUrl !== session.sso_start_url) { - throw new import_property_provider.CredentialsProviderError(`Conflicting SSO start_url` + conflictMsg, { - tryNextLink: false, - logger: init.logger - }); - } - profile.sso_region = session.sso_region; - profile.sso_start_url = session.sso_start_url; - } - const { sso_start_url, sso_account_id, sso_region, sso_role_name, sso_session } = validateSsoProfile( - profile, - init.logger - ); - return resolveSSOCredentials({ - ssoStartUrl: sso_start_url, - ssoSession: sso_session, - ssoAccountId: sso_account_id, - ssoRegion: sso_region, - ssoRoleName: sso_role_name, - ssoClient, - clientConfig: init.clientConfig, - parentClientConfig: init.parentClientConfig, - profile: profileName - }); - } else if (!ssoStartUrl || !ssoAccountId || !ssoRegion || !ssoRoleName) { - throw new import_property_provider.CredentialsProviderError( - 'Incomplete configuration. The fromSSO() argument hash must include "ssoStartUrl", "ssoAccountId", "ssoRegion", "ssoRoleName"', - { tryNextLink: false, logger: init.logger } - ); - } else { - return resolveSSOCredentials({ - ssoStartUrl, - ssoSession, - ssoAccountId, - ssoRegion, - ssoRoleName, - ssoClient, - clientConfig: init.clientConfig, - parentClientConfig: init.parentClientConfig, - profile: profileName - }); - } -}, "fromSSO"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 50514: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.fromTokenFile = void 0; -const client_1 = __nccwpck_require__(60034); -const property_provider_1 = __nccwpck_require__(19248); -const fs_1 = __nccwpck_require__(57147); -const fromWebToken_1 = __nccwpck_require__(73171); -const ENV_TOKEN_FILE = "AWS_WEB_IDENTITY_TOKEN_FILE"; -const ENV_ROLE_ARN = "AWS_ROLE_ARN"; -const ENV_ROLE_SESSION_NAME = "AWS_ROLE_SESSION_NAME"; -const fromTokenFile = (init = {}) => async () => { - init.logger?.debug("@aws-sdk/credential-provider-web-identity - fromTokenFile"); - const webIdentityTokenFile = init?.webIdentityTokenFile ?? process.env[ENV_TOKEN_FILE]; - const roleArn = init?.roleArn ?? process.env[ENV_ROLE_ARN]; - const roleSessionName = init?.roleSessionName ?? process.env[ENV_ROLE_SESSION_NAME]; - if (!webIdentityTokenFile || !roleArn) { - throw new property_provider_1.CredentialsProviderError("Web identity configuration not specified", { - logger: init.logger, - }); - } - const credentials = await (0, fromWebToken_1.fromWebToken)({ - ...init, - webIdentityToken: (0, fs_1.readFileSync)(webIdentityTokenFile, { encoding: "ascii" }), - roleArn, - roleSessionName, - })(); - if (webIdentityTokenFile === process.env[ENV_TOKEN_FILE]) { - (0, client_1.setCredentialFeature)(credentials, "CREDENTIALS_ENV_VARS_STS_WEB_ID_TOKEN", "h"); - } - return credentials; -}; -exports.fromTokenFile = fromTokenFile; - - -/***/ }), + }, + 'getDefaultRoleAssumer' + ) + var getDefaultRoleAssumerWithWebIdentity = /* @__PURE__ */ __name( + (stsOptions, stsClientCtor) => { + let stsClient + return async params => { + var _a2, _b, _c + if (!stsClient) { + const { + logger = (_a2 = + stsOptions == null + ? void 0 + : stsOptions.parentClientConfig) == null + ? void 0 + : _a2.logger, + region, + requestHandler = (_b = + stsOptions == null + ? void 0 + : stsOptions.parentClientConfig) == null + ? void 0 + : _b.requestHandler, + credentialProviderLogger + } = stsOptions + const resolvedRegion = await resolveRegion( + region, + (_c = + stsOptions == null + ? void 0 + : stsOptions.parentClientConfig) == null + ? void 0 + : _c.region, + credentialProviderLogger + ) + const isCompatibleRequestHandler = !isH2(requestHandler) + stsClient = new stsClientCtor({ + region: resolvedRegion, + requestHandler: isCompatibleRequestHandler + ? requestHandler + : void 0, + logger + }) + } + const { + Credentials: Credentials2, + AssumedRoleUser: AssumedRoleUser2 + } = await stsClient.send( + new AssumeRoleWithWebIdentityCommand(params) + ) + if ( + !Credentials2 || + !Credentials2.AccessKeyId || + !Credentials2.SecretAccessKey + ) { + throw new Error( + `Invalid response from STS.assumeRoleWithWebIdentity call with role ${params.RoleArn}` + ) + } + const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser2) + return { + accessKeyId: Credentials2.AccessKeyId, + secretAccessKey: Credentials2.SecretAccessKey, + sessionToken: Credentials2.SessionToken, + expiration: Credentials2.Expiration, + // TODO(credentialScope): access normally when shape is updated. + ...(Credentials2.CredentialScope && { + credentialScope: Credentials2.CredentialScope + }), + ...(accountId && { accountId }) + } + } + }, + 'getDefaultRoleAssumerWithWebIdentity' + ) + var isH2 = /* @__PURE__ */ __name(requestHandler => { + var _a2 + return ( + ((_a2 = requestHandler == null ? void 0 : requestHandler.metadata) == + null + ? void 0 + : _a2.handlerProtocol) === 'h2' + ) + }, 'isH2') + + // src/defaultRoleAssumers.ts + var import_STSClient2 = __nccwpck_require__(64195) + var getCustomizableStsClientCtor = /* @__PURE__ */ __name( + (baseCtor, customizations) => { + var _a2 + if (!customizations) return baseCtor + else + return ( + (_a2 = class extends baseCtor { + constructor(config) { + super(config) + for (const customization of customizations) { + this.middlewareStack.use(customization) + } + } + }), + __name(_a2, 'CustomizableSTSClient'), + _a2 + ) + }, + 'getCustomizableStsClientCtor' + ) + var getDefaultRoleAssumer2 = /* @__PURE__ */ __name( + (stsOptions = {}, stsPlugins) => + getDefaultRoleAssumer( + stsOptions, + getCustomizableStsClientCtor( + import_STSClient2.STSClient, + stsPlugins + ) + ), + 'getDefaultRoleAssumer' + ) + var getDefaultRoleAssumerWithWebIdentity2 = /* @__PURE__ */ __name( + (stsOptions = {}, stsPlugins) => + getDefaultRoleAssumerWithWebIdentity( + stsOptions, + getCustomizableStsClientCtor( + import_STSClient2.STSClient, + stsPlugins + ) + ), + 'getDefaultRoleAssumerWithWebIdentity' + ) + var decorateDefaultCredentialProvider = /* @__PURE__ */ __name( + provider => input => + provider({ + roleAssumer: getDefaultRoleAssumer2(input), + roleAssumerWithWebIdentity: + getDefaultRoleAssumerWithWebIdentity2(input), + ...input + }), + 'decorateDefaultCredentialProvider' + ) + // Annotate the CommonJS export names for ESM import in node: -/***/ 73171: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + 0 && 0 -"use strict"; + /***/ + }, -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.fromWebToken = void 0; -const fromWebToken = (init) => async (awsIdentityProperties) => { - init.logger?.debug("@aws-sdk/credential-provider-web-identity - fromWebToken"); - const { roleArn, roleSessionName, webIdentityToken, providerId, policyArns, policy, durationSeconds } = init; - let { roleAssumerWithWebIdentity } = init; - if (!roleAssumerWithWebIdentity) { - const { getDefaultRoleAssumerWithWebIdentity } = await Promise.resolve().then(() => __importStar(__nccwpck_require__(2273))); - roleAssumerWithWebIdentity = getDefaultRoleAssumerWithWebIdentity({ - ...init.clientConfig, - credentialProviderLogger: init.logger, - parentClientConfig: { - ...awsIdentityProperties?.callerClientConfig, - ...init.parentClientConfig, + /***/ 83405: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getRuntimeConfig = void 0 + const tslib_1 = __nccwpck_require__(4351) + const package_json_1 = tslib_1.__importDefault(__nccwpck_require__(7947)) + const core_1 = __nccwpck_require__(59963) + const credential_provider_node_1 = __nccwpck_require__(75531) + const util_user_agent_node_1 = __nccwpck_require__(98095) + const config_resolver_1 = __nccwpck_require__(53098) + const core_2 = __nccwpck_require__(55829) + const hash_node_1 = __nccwpck_require__(3081) + const middleware_retry_1 = __nccwpck_require__(96039) + const node_config_provider_1 = __nccwpck_require__(33461) + const node_http_handler_1 = __nccwpck_require__(58303) + const util_body_length_node_1 = __nccwpck_require__(68075) + const util_retry_1 = __nccwpck_require__(84902) + const runtimeConfig_shared_1 = __nccwpck_require__(52642) + const smithy_client_1 = __nccwpck_require__(63570) + const util_defaults_mode_node_1 = __nccwpck_require__(72429) + const smithy_client_2 = __nccwpck_require__(63570) + const getRuntimeConfig = config => { + ;(0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version) + const defaultsMode = (0, + util_defaults_mode_node_1.resolveDefaultsModeConfig)(config) + const defaultConfigProvider = () => + defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode) + const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)( + config + ) + ;(0, core_1.emitWarningIfUnsupportedVersion)(process.version) + return { + ...clientSharedValues, + ...config, + runtime: 'node', + defaultsMode, + bodyLengthChecker: + config?.bodyLengthChecker ?? + util_body_length_node_1.calculateBodyLength, + credentialDefaultProvider: + config?.credentialDefaultProvider ?? + credential_provider_node_1.defaultProvider, + defaultUserAgentProvider: + config?.defaultUserAgentProvider ?? + (0, util_user_agent_node_1.defaultUserAgent)({ + serviceId: clientSharedValues.serviceId, + clientVersion: package_json_1.default.version + }), + httpAuthSchemes: config?.httpAuthSchemes ?? [ + { + schemeId: 'aws.auth#sigv4', + identityProvider: ipc => + ipc.getIdentityProvider('aws.auth#sigv4') || + (async idProps => + await (0, credential_provider_node_1.defaultProvider)( + idProps?.__config || {} + )()), + signer: new core_1.AwsSdkSigV4Signer() }, - }, init.clientPlugins); - } - return roleAssumerWithWebIdentity({ - RoleArn: roleArn, - RoleSessionName: roleSessionName ?? `aws-sdk-js-session-${Date.now()}`, - WebIdentityToken: webIdentityToken, - ProviderId: providerId, - PolicyArns: policyArns, - Policy: policy, - DurationSeconds: durationSeconds, - }); -}; -exports.fromWebToken = fromWebToken; - - -/***/ }), - -/***/ 79761: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var index_exports = {}; -module.exports = __toCommonJS(index_exports); -__reExport(index_exports, __nccwpck_require__(50514), module.exports); -__reExport(index_exports, __nccwpck_require__(73171), module.exports); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 11046: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var index_exports = {}; -__export(index_exports, { - getHostHeaderPlugin: () => getHostHeaderPlugin, - hostHeaderMiddleware: () => hostHeaderMiddleware, - hostHeaderMiddlewareOptions: () => hostHeaderMiddlewareOptions, - resolveHostHeaderConfig: () => resolveHostHeaderConfig -}); -module.exports = __toCommonJS(index_exports); -var import_protocol_http = __nccwpck_require__(31788); -function resolveHostHeaderConfig(input) { - return input; -} -__name(resolveHostHeaderConfig, "resolveHostHeaderConfig"); -var hostHeaderMiddleware = /* @__PURE__ */ __name((options) => (next) => async (args) => { - if (!import_protocol_http.HttpRequest.isInstance(args.request)) return next(args); - const { request } = args; - const { handlerProtocol = "" } = options.requestHandler.metadata || {}; - if (handlerProtocol.indexOf("h2") >= 0 && !request.headers[":authority"]) { - delete request.headers["host"]; - request.headers[":authority"] = request.hostname + (request.port ? ":" + request.port : ""); - } else if (!request.headers["host"]) { - let host = request.hostname; - if (request.port != null) host += `:${request.port}`; - request.headers["host"] = host; - } - return next(args); -}, "hostHeaderMiddleware"); -var hostHeaderMiddlewareOptions = { - name: "hostHeaderMiddleware", - step: "build", - priority: "low", - tags: ["HOST"], - override: true -}; -var getHostHeaderPlugin = /* @__PURE__ */ __name((options) => ({ - applyToStack: /* @__PURE__ */ __name((clientStack) => { - clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions); - }, "applyToStack") -}), "getHostHeaderPlugin"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 26622: -/***/ ((module) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var index_exports = {}; -__export(index_exports, { - getLoggerPlugin: () => getLoggerPlugin, - loggerMiddleware: () => loggerMiddleware, - loggerMiddlewareOptions: () => loggerMiddlewareOptions -}); -module.exports = __toCommonJS(index_exports); - -// src/loggerMiddleware.ts -var loggerMiddleware = /* @__PURE__ */ __name(() => (next, context) => async (args) => { - try { - const response = await next(args); - const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context; - const { overrideInputFilterSensitiveLog, overrideOutputFilterSensitiveLog } = dynamoDbDocumentClientOptions; - const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog; - const outputFilterSensitiveLog = overrideOutputFilterSensitiveLog ?? context.outputFilterSensitiveLog; - const { $metadata, ...outputWithoutMetadata } = response.output; - logger?.info?.({ - clientName, - commandName, - input: inputFilterSensitiveLog(args.input), - output: outputFilterSensitiveLog(outputWithoutMetadata), - metadata: $metadata - }); - return response; - } catch (error) { - const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context; - const { overrideInputFilterSensitiveLog } = dynamoDbDocumentClientOptions; - const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog; - logger?.error?.({ - clientName, - commandName, - input: inputFilterSensitiveLog(args.input), - error, - metadata: error.$metadata - }); - throw error; - } -}, "loggerMiddleware"); -var loggerMiddlewareOptions = { - name: "loggerMiddleware", - tags: ["LOGGER"], - step: "initialize", - override: true -}; -var getLoggerPlugin = /* @__PURE__ */ __name((options) => ({ - applyToStack: /* @__PURE__ */ __name((clientStack) => { - clientStack.add(loggerMiddleware(), loggerMiddlewareOptions); - }, "applyToStack") -}), "getLoggerPlugin"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 33544: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var index_exports = {}; -__export(index_exports, { - addRecursionDetectionMiddlewareOptions: () => addRecursionDetectionMiddlewareOptions, - getRecursionDetectionPlugin: () => getRecursionDetectionPlugin, - recursionDetectionMiddleware: () => recursionDetectionMiddleware -}); -module.exports = __toCommonJS(index_exports); -var import_protocol_http = __nccwpck_require__(31788); -var TRACE_ID_HEADER_NAME = "X-Amzn-Trace-Id"; -var ENV_LAMBDA_FUNCTION_NAME = "AWS_LAMBDA_FUNCTION_NAME"; -var ENV_TRACE_ID = "_X_AMZN_TRACE_ID"; -var recursionDetectionMiddleware = /* @__PURE__ */ __name((options) => (next) => async (args) => { - const { request } = args; - if (!import_protocol_http.HttpRequest.isInstance(request) || options.runtime !== "node") { - return next(args); - } - const traceIdHeader = Object.keys(request.headers ?? {}).find((h) => h.toLowerCase() === TRACE_ID_HEADER_NAME.toLowerCase()) ?? TRACE_ID_HEADER_NAME; - if (request.headers.hasOwnProperty(traceIdHeader)) { - return next(args); - } - const functionName = process.env[ENV_LAMBDA_FUNCTION_NAME]; - const traceId = process.env[ENV_TRACE_ID]; - const nonEmptyString = /* @__PURE__ */ __name((str) => typeof str === "string" && str.length > 0, "nonEmptyString"); - if (nonEmptyString(functionName) && nonEmptyString(traceId)) { - request.headers[TRACE_ID_HEADER_NAME] = traceId; - } - return next({ - ...args, - request - }); -}, "recursionDetectionMiddleware"); -var addRecursionDetectionMiddlewareOptions = { - step: "build", - tags: ["RECURSION_DETECTION"], - name: "recursionDetectionMiddleware", - override: true, - priority: "low" -}; -var getRecursionDetectionPlugin = /* @__PURE__ */ __name((options) => ({ - applyToStack: /* @__PURE__ */ __name((clientStack) => { - clientStack.add(recursionDetectionMiddleware(options), addRecursionDetectionMiddlewareOptions); - }, "applyToStack") -}), "getRecursionDetectionPlugin"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 9711: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var index_exports = {}; -__export(index_exports, { - DEFAULT_UA_APP_ID: () => DEFAULT_UA_APP_ID, - getUserAgentMiddlewareOptions: () => getUserAgentMiddlewareOptions, - getUserAgentPlugin: () => getUserAgentPlugin, - resolveUserAgentConfig: () => resolveUserAgentConfig, - userAgentMiddleware: () => userAgentMiddleware -}); -module.exports = __toCommonJS(index_exports); - -// src/configurations.ts -var import_core = __nccwpck_require__(27588); -var DEFAULT_UA_APP_ID = void 0; -function isValidUserAgentAppId(appId) { - if (appId === void 0) { - return true; - } - return typeof appId === "string" && appId.length <= 50; -} -__name(isValidUserAgentAppId, "isValidUserAgentAppId"); -function resolveUserAgentConfig(input) { - const normalizedAppIdProvider = (0, import_core.normalizeProvider)(input.userAgentAppId ?? DEFAULT_UA_APP_ID); - const { customUserAgent } = input; - return Object.assign(input, { - customUserAgent: typeof customUserAgent === "string" ? [[customUserAgent]] : customUserAgent, - userAgentAppId: /* @__PURE__ */ __name(async () => { - const appId = await normalizedAppIdProvider(); - if (!isValidUserAgentAppId(appId)) { - const logger = input.logger?.constructor?.name === "NoOpLogger" || !input.logger ? console : input.logger; - if (typeof appId !== "string") { - logger?.warn("userAgentAppId must be a string or undefined."); - } else if (appId.length > 50) { - logger?.warn("The provided userAgentAppId exceeds the maximum length of 50 characters."); - } - } - return appId; - }, "userAgentAppId") - }); -} -__name(resolveUserAgentConfig, "resolveUserAgentConfig"); - -// src/user-agent-middleware.ts -var import_util_endpoints = __nccwpck_require__(24253); -var import_protocol_http = __nccwpck_require__(31788); - -// src/check-features.ts -var import_core2 = __nccwpck_require__(69736); -var ACCOUNT_ID_ENDPOINT_REGEX = /\d{12}\.ddb/; -async function checkFeatures(context, config, args) { - const request = args.request; - if (request?.headers?.["smithy-protocol"] === "rpc-v2-cbor") { - (0, import_core2.setFeature)(context, "PROTOCOL_RPC_V2_CBOR", "M"); - } - if (typeof config.retryStrategy === "function") { - const retryStrategy = await config.retryStrategy(); - if (typeof retryStrategy.acquireInitialRetryToken === "function") { - if (retryStrategy.constructor?.name?.includes("Adaptive")) { - (0, import_core2.setFeature)(context, "RETRY_MODE_ADAPTIVE", "F"); - } else { - (0, import_core2.setFeature)(context, "RETRY_MODE_STANDARD", "E"); - } - } else { - (0, import_core2.setFeature)(context, "RETRY_MODE_LEGACY", "D"); - } - } - if (typeof config.accountIdEndpointMode === "function") { - const endpointV2 = context.endpointV2; - if (String(endpointV2?.url?.hostname).match(ACCOUNT_ID_ENDPOINT_REGEX)) { - (0, import_core2.setFeature)(context, "ACCOUNT_ID_ENDPOINT", "O"); - } - switch (await config.accountIdEndpointMode?.()) { - case "disabled": - (0, import_core2.setFeature)(context, "ACCOUNT_ID_MODE_DISABLED", "Q"); - break; - case "preferred": - (0, import_core2.setFeature)(context, "ACCOUNT_ID_MODE_PREFERRED", "P"); - break; - case "required": - (0, import_core2.setFeature)(context, "ACCOUNT_ID_MODE_REQUIRED", "R"); - break; - } - } - const identity = context.__smithy_context?.selectedHttpAuthScheme?.identity; - if (identity?.$source) { - const credentials = identity; - if (credentials.accountId) { - (0, import_core2.setFeature)(context, "RESOLVED_ACCOUNT_ID", "T"); - } - for (const [key, value] of Object.entries(credentials.$source ?? {})) { - (0, import_core2.setFeature)(context, key, value); - } - } -} -__name(checkFeatures, "checkFeatures"); - -// src/constants.ts -var USER_AGENT = "user-agent"; -var X_AMZ_USER_AGENT = "x-amz-user-agent"; -var SPACE = " "; -var UA_NAME_SEPARATOR = "/"; -var UA_NAME_ESCAPE_REGEX = /[^\!\$\%\&\'\*\+\-\.\^\_\`\|\~\d\w]/g; -var UA_VALUE_ESCAPE_REGEX = /[^\!\$\%\&\'\*\+\-\.\^\_\`\|\~\d\w\#]/g; -var UA_ESCAPE_CHAR = "-"; - -// src/encode-features.ts -var BYTE_LIMIT = 1024; -function encodeFeatures(features) { - let buffer = ""; - for (const key in features) { - const val = features[key]; - if (buffer.length + val.length + 1 <= BYTE_LIMIT) { - if (buffer.length) { - buffer += "," + val; - } else { - buffer += val; + { + schemeId: 'smithy.api#noAuth', + identityProvider: ipc => + ipc.getIdentityProvider('smithy.api#noAuth') || + (async () => ({})), + signer: new core_2.NoAuthSigner() + } + ], + maxAttempts: + config?.maxAttempts ?? + (0, node_config_provider_1.loadConfig)( + middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS + ), + region: + config?.region ?? + (0, node_config_provider_1.loadConfig)( + config_resolver_1.NODE_REGION_CONFIG_OPTIONS, + config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS + ), + requestHandler: node_http_handler_1.NodeHttpHandler.create( + config?.requestHandler ?? defaultConfigProvider + ), + retryMode: + config?.retryMode ?? + (0, node_config_provider_1.loadConfig)({ + ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS, + default: async () => + (await defaultConfigProvider()).retryMode || + util_retry_1.DEFAULT_RETRY_MODE + }), + sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, 'sha256'), + streamCollector: + config?.streamCollector ?? node_http_handler_1.streamCollector, + useDualstackEndpoint: + config?.useDualstackEndpoint ?? + (0, node_config_provider_1.loadConfig)( + config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS + ), + useFipsEndpoint: + config?.useFipsEndpoint ?? + (0, node_config_provider_1.loadConfig)( + config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS + ) + } } - continue; - } - break; - } - return buffer; -} -__name(encodeFeatures, "encodeFeatures"); - -// src/user-agent-middleware.ts -var userAgentMiddleware = /* @__PURE__ */ __name((options) => (next, context) => async (args) => { - const { request } = args; - if (!import_protocol_http.HttpRequest.isInstance(request)) { - return next(args); - } - const { headers } = request; - const userAgent = context?.userAgent?.map(escapeUserAgent) || []; - const defaultUserAgent = (await options.defaultUserAgentProvider()).map(escapeUserAgent); - await checkFeatures(context, options, args); - const awsContext = context; - defaultUserAgent.push( - `m/${encodeFeatures( - Object.assign({}, context.__smithy_context?.features, awsContext.__aws_sdk_context?.features) - )}` - ); - const customUserAgent = options?.customUserAgent?.map(escapeUserAgent) || []; - const appId = await options.userAgentAppId(); - if (appId) { - defaultUserAgent.push(escapeUserAgent([`app/${appId}`])); - } - const prefix = (0, import_util_endpoints.getUserAgentPrefix)(); - const sdkUserAgentValue = (prefix ? [prefix] : []).concat([...defaultUserAgent, ...userAgent, ...customUserAgent]).join(SPACE); - const normalUAValue = [ - ...defaultUserAgent.filter((section) => section.startsWith("aws-sdk-")), - ...customUserAgent - ].join(SPACE); - if (options.runtime !== "browser") { - if (normalUAValue) { - headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT] ? `${headers[USER_AGENT]} ${normalUAValue}` : normalUAValue; - } - headers[USER_AGENT] = sdkUserAgentValue; - } else { - headers[X_AMZ_USER_AGENT] = sdkUserAgentValue; - } - return next({ - ...args, - request - }); -}, "userAgentMiddleware"); -var escapeUserAgent = /* @__PURE__ */ __name((userAgentPair) => { - const name = userAgentPair[0].split(UA_NAME_SEPARATOR).map((part) => part.replace(UA_NAME_ESCAPE_REGEX, UA_ESCAPE_CHAR)).join(UA_NAME_SEPARATOR); - const version = userAgentPair[1]?.replace(UA_VALUE_ESCAPE_REGEX, UA_ESCAPE_CHAR); - const prefixSeparatorIndex = name.indexOf(UA_NAME_SEPARATOR); - const prefix = name.substring(0, prefixSeparatorIndex); - let uaName = name.substring(prefixSeparatorIndex + 1); - if (prefix === "api") { - uaName = uaName.toLowerCase(); - } - return [prefix, uaName, version].filter((item) => item && item.length > 0).reduce((acc, item, index) => { - switch (index) { - case 0: - return item; - case 1: - return `${acc}/${item}`; - default: - return `${acc}#${item}`; - } - }, ""); -}, "escapeUserAgent"); -var getUserAgentMiddlewareOptions = { - name: "getUserAgentMiddleware", - step: "build", - priority: "low", - tags: ["SET_USER_AGENT", "USER_AGENT"], - override: true -}; -var getUserAgentPlugin = /* @__PURE__ */ __name((config) => ({ - applyToStack: /* @__PURE__ */ __name((clientStack) => { - clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions); - }, "applyToStack") -}), "getUserAgentPlugin"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 56088: -/***/ ((module) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var index_exports = {}; -__export(index_exports, { - NODE_REGION_CONFIG_FILE_OPTIONS: () => NODE_REGION_CONFIG_FILE_OPTIONS, - NODE_REGION_CONFIG_OPTIONS: () => NODE_REGION_CONFIG_OPTIONS, - REGION_ENV_NAME: () => REGION_ENV_NAME, - REGION_INI_NAME: () => REGION_INI_NAME, - getAwsRegionExtensionConfiguration: () => getAwsRegionExtensionConfiguration, - resolveAwsRegionExtensionConfiguration: () => resolveAwsRegionExtensionConfiguration, - resolveRegionConfig: () => resolveRegionConfig -}); -module.exports = __toCommonJS(index_exports); - -// src/extensions/index.ts -var getAwsRegionExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => { - return { - setRegion(region) { - runtimeConfig.region = region; - }, - region() { - return runtimeConfig.region; - } - }; -}, "getAwsRegionExtensionConfiguration"); -var resolveAwsRegionExtensionConfiguration = /* @__PURE__ */ __name((awsRegionExtensionConfiguration) => { - return { - region: awsRegionExtensionConfiguration.region() - }; -}, "resolveAwsRegionExtensionConfiguration"); - -// src/regionConfig/config.ts -var REGION_ENV_NAME = "AWS_REGION"; -var REGION_INI_NAME = "region"; -var NODE_REGION_CONFIG_OPTIONS = { - environmentVariableSelector: /* @__PURE__ */ __name((env) => env[REGION_ENV_NAME], "environmentVariableSelector"), - configFileSelector: /* @__PURE__ */ __name((profile) => profile[REGION_INI_NAME], "configFileSelector"), - default: /* @__PURE__ */ __name(() => { - throw new Error("Region is missing"); - }, "default") -}; -var NODE_REGION_CONFIG_FILE_OPTIONS = { - preferredFile: "credentials" -}; - -// src/regionConfig/isFipsRegion.ts -var isFipsRegion = /* @__PURE__ */ __name((region) => typeof region === "string" && (region.startsWith("fips-") || region.endsWith("-fips")), "isFipsRegion"); - -// src/regionConfig/getRealRegion.ts -var getRealRegion = /* @__PURE__ */ __name((region) => isFipsRegion(region) ? ["fips-aws-global", "aws-fips"].includes(region) ? "us-east-1" : region.replace(/fips-(dkr-|prod-)?|-fips/, "") : region, "getRealRegion"); - -// src/regionConfig/resolveRegionConfig.ts -var resolveRegionConfig = /* @__PURE__ */ __name((input) => { - const { region, useFipsEndpoint } = input; - if (!region) { - throw new Error("Region is missing"); - } - return Object.assign(input, { - region: /* @__PURE__ */ __name(async () => { - if (typeof region === "string") { - return getRealRegion(region); - } - const providedRegion = await region(); - return getRealRegion(providedRegion); - }, "region"), - useFipsEndpoint: /* @__PURE__ */ __name(async () => { - const providedRegion = typeof region === "string" ? region : await region(); - if (isFipsRegion(providedRegion)) { - return true; - } - return typeof useFipsEndpoint !== "function" ? Promise.resolve(!!useFipsEndpoint) : useFipsEndpoint(); - }, "useFipsEndpoint") - }); -}, "resolveRegionConfig"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 6701: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -var __create = Object.create; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __getProtoOf = Object.getPrototypeOf; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. - isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, - mod -)); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var index_exports = {}; -__export(index_exports, { - fromSso: () => fromSso, - fromStatic: () => fromStatic, - nodeProvider: () => nodeProvider -}); -module.exports = __toCommonJS(index_exports); - -// src/fromSso.ts - - - -// src/constants.ts -var EXPIRE_WINDOW_MS = 5 * 60 * 1e3; -var REFRESH_MESSAGE = `To refresh this SSO session run 'aws sso login' with the corresponding profile.`; - -// src/getSsoOidcClient.ts -var getSsoOidcClient = /* @__PURE__ */ __name(async (ssoRegion, init = {}) => { - const { SSOOIDCClient } = await Promise.resolve().then(() => __toESM(__nccwpck_require__(27334))); - const ssoOidcClient = new SSOOIDCClient( - Object.assign({}, init.clientConfig ?? {}, { - region: ssoRegion ?? init.clientConfig?.region, - logger: init.clientConfig?.logger ?? init.parentClientConfig?.logger - }) - ); - return ssoOidcClient; -}, "getSsoOidcClient"); - -// src/getNewSsoOidcToken.ts -var getNewSsoOidcToken = /* @__PURE__ */ __name(async (ssoToken, ssoRegion, init = {}) => { - const { CreateTokenCommand } = await Promise.resolve().then(() => __toESM(__nccwpck_require__(27334))); - const ssoOidcClient = await getSsoOidcClient(ssoRegion, init); - return ssoOidcClient.send( - new CreateTokenCommand({ - clientId: ssoToken.clientId, - clientSecret: ssoToken.clientSecret, - refreshToken: ssoToken.refreshToken, - grantType: "refresh_token" - }) - ); -}, "getNewSsoOidcToken"); - -// src/validateTokenExpiry.ts -var import_property_provider = __nccwpck_require__(19248); -var validateTokenExpiry = /* @__PURE__ */ __name((token) => { - if (token.expiration && token.expiration.getTime() < Date.now()) { - throw new import_property_provider.TokenProviderError(`Token is expired. ${REFRESH_MESSAGE}`, false); - } -}, "validateTokenExpiry"); + exports.getRuntimeConfig = getRuntimeConfig -// src/validateTokenKey.ts + /***/ + }, -var validateTokenKey = /* @__PURE__ */ __name((key, value, forRefresh = false) => { - if (typeof value === "undefined") { - throw new import_property_provider.TokenProviderError( - `Value not present for '${key}' in SSO Token${forRefresh ? ". Cannot refresh" : ""}. ${REFRESH_MESSAGE}`, - false - ); - } -}, "validateTokenKey"); - -// src/writeSSOTokenToFile.ts -var import_shared_ini_file_loader = __nccwpck_require__(69001); -var import_fs = __nccwpck_require__(57147); -var { writeFile } = import_fs.promises; -var writeSSOTokenToFile = /* @__PURE__ */ __name((id, ssoToken) => { - const tokenFilepath = (0, import_shared_ini_file_loader.getSSOTokenFilepath)(id); - const tokenString = JSON.stringify(ssoToken, null, 2); - return writeFile(tokenFilepath, tokenString); -}, "writeSSOTokenToFile"); - -// src/fromSso.ts -var lastRefreshAttemptTime = /* @__PURE__ */ new Date(0); -var fromSso = /* @__PURE__ */ __name((_init = {}) => async ({ callerClientConfig } = {}) => { - const init = { - ..._init, - parentClientConfig: { - ...callerClientConfig, - ..._init.parentClientConfig - } - }; - init.logger?.debug("@aws-sdk/token-providers - fromSso"); - const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init); - const profileName = (0, import_shared_ini_file_loader.getProfileName)({ - profile: init.profile ?? callerClientConfig?.profile - }); - const profile = profiles[profileName]; - if (!profile) { - throw new import_property_provider.TokenProviderError(`Profile '${profileName}' could not be found in shared credentials file.`, false); - } else if (!profile["sso_session"]) { - throw new import_property_provider.TokenProviderError(`Profile '${profileName}' is missing required property 'sso_session'.`); - } - const ssoSessionName = profile["sso_session"]; - const ssoSessions = await (0, import_shared_ini_file_loader.loadSsoSessionData)(init); - const ssoSession = ssoSessions[ssoSessionName]; - if (!ssoSession) { - throw new import_property_provider.TokenProviderError( - `Sso session '${ssoSessionName}' could not be found in shared credentials file.`, - false - ); - } - for (const ssoSessionRequiredKey of ["sso_start_url", "sso_region"]) { - if (!ssoSession[ssoSessionRequiredKey]) { - throw new import_property_provider.TokenProviderError( - `Sso session '${ssoSessionName}' is missing required property '${ssoSessionRequiredKey}'.`, - false - ); - } - } - const ssoStartUrl = ssoSession["sso_start_url"]; - const ssoRegion = ssoSession["sso_region"]; - let ssoToken; - try { - ssoToken = await (0, import_shared_ini_file_loader.getSSOTokenFromFile)(ssoSessionName); - } catch (e) { - throw new import_property_provider.TokenProviderError( - `The SSO session token associated with profile=${profileName} was not found or is invalid. ${REFRESH_MESSAGE}`, - false - ); - } - validateTokenKey("accessToken", ssoToken.accessToken); - validateTokenKey("expiresAt", ssoToken.expiresAt); - const { accessToken, expiresAt } = ssoToken; - const existingToken = { token: accessToken, expiration: new Date(expiresAt) }; - if (existingToken.expiration.getTime() - Date.now() > EXPIRE_WINDOW_MS) { - return existingToken; - } - if (Date.now() - lastRefreshAttemptTime.getTime() < 30 * 1e3) { - validateTokenExpiry(existingToken); - return existingToken; - } - validateTokenKey("clientId", ssoToken.clientId, true); - validateTokenKey("clientSecret", ssoToken.clientSecret, true); - validateTokenKey("refreshToken", ssoToken.refreshToken, true); - try { - lastRefreshAttemptTime.setTime(Date.now()); - const newSsoOidcToken = await getNewSsoOidcToken(ssoToken, ssoRegion, init); - validateTokenKey("accessToken", newSsoOidcToken.accessToken); - validateTokenKey("expiresIn", newSsoOidcToken.expiresIn); - const newTokenExpiration = new Date(Date.now() + newSsoOidcToken.expiresIn * 1e3); - try { - await writeSSOTokenToFile(ssoSessionName, { - ...ssoToken, - accessToken: newSsoOidcToken.accessToken, - expiresAt: newTokenExpiration.toISOString(), - refreshToken: newSsoOidcToken.refreshToken - }); - } catch (error) { - } - return { - token: newSsoOidcToken.accessToken, - expiration: newTokenExpiration - }; - } catch (error) { - validateTokenExpiry(existingToken); - return existingToken; - } -}, "fromSso"); + /***/ 52642: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getRuntimeConfig = void 0 + const core_1 = __nccwpck_require__(59963) + const core_2 = __nccwpck_require__(55829) + const smithy_client_1 = __nccwpck_require__(63570) + const url_parser_1 = __nccwpck_require__(14681) + const util_base64_1 = __nccwpck_require__(75600) + const util_utf8_1 = __nccwpck_require__(41895) + const httpAuthSchemeProvider_1 = __nccwpck_require__(17145) + const endpointResolver_1 = __nccwpck_require__(41203) + const getRuntimeConfig = config => { + return { + apiVersion: '2011-06-15', + base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64, + base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64, + disableHostPrefix: config?.disableHostPrefix ?? false, + endpointProvider: + config?.endpointProvider ?? + endpointResolver_1.defaultEndpointResolver, + extensions: config?.extensions ?? [], + httpAuthSchemeProvider: + config?.httpAuthSchemeProvider ?? + httpAuthSchemeProvider_1.defaultSTSHttpAuthSchemeProvider, + httpAuthSchemes: config?.httpAuthSchemes ?? [ + { + schemeId: 'aws.auth#sigv4', + identityProvider: ipc => + ipc.getIdentityProvider('aws.auth#sigv4'), + signer: new core_1.AwsSdkSigV4Signer() + }, + { + schemeId: 'smithy.api#noAuth', + identityProvider: ipc => + ipc.getIdentityProvider('smithy.api#noAuth') || + (async () => ({})), + signer: new core_2.NoAuthSigner() + } + ], + logger: config?.logger ?? new smithy_client_1.NoOpLogger(), + serviceId: config?.serviceId ?? 'STS', + urlParser: config?.urlParser ?? url_parser_1.parseUrl, + utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8, + utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8 + } + } + exports.getRuntimeConfig = getRuntimeConfig -// src/fromStatic.ts + /***/ + }, -var fromStatic = /* @__PURE__ */ __name(({ token, logger }) => async () => { - logger?.debug("@aws-sdk/token-providers - fromStatic"); - if (!token || !token.token) { - throw new import_property_provider.TokenProviderError(`Please pass a valid token to fromStatic`, false); - } - return token; -}, "fromStatic"); + /***/ 32053: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.resolveRuntimeExtensions = void 0 + const region_config_resolver_1 = __nccwpck_require__(18156) + const protocol_http_1 = __nccwpck_require__(64418) + const smithy_client_1 = __nccwpck_require__(63570) + const httpAuthExtensionConfiguration_1 = __nccwpck_require__(28527) + const asPartial = t => t + const resolveRuntimeExtensions = (runtimeConfig, extensions) => { + const extensionConfiguration = { + ...asPartial( + (0, region_config_resolver_1.getAwsRegionExtensionConfiguration)( + runtimeConfig + ) + ), + ...asPartial( + (0, smithy_client_1.getDefaultExtensionConfiguration)(runtimeConfig) + ), + ...asPartial( + (0, protocol_http_1.getHttpHandlerExtensionConfiguration)( + runtimeConfig + ) + ), + ...asPartial( + (0, + httpAuthExtensionConfiguration_1.getHttpAuthExtensionConfiguration)( + runtimeConfig + ) + ) + } + extensions.forEach(extension => + extension.configure(extensionConfiguration) + ) + return { + ...runtimeConfig, + ...(0, + region_config_resolver_1.resolveAwsRegionExtensionConfiguration)( + extensionConfiguration + ), + ...(0, smithy_client_1.resolveDefaultRuntimeConfig)( + extensionConfiguration + ), + ...(0, protocol_http_1.resolveHttpHandlerRuntimeConfig)( + extensionConfiguration + ), + ...(0, httpAuthExtensionConfiguration_1.resolveHttpAuthRuntimeConfig)( + extensionConfiguration + ) + } + } + exports.resolveRuntimeExtensions = resolveRuntimeExtensions -// src/nodeProvider.ts + /***/ + }, -var nodeProvider = /* @__PURE__ */ __name((init = {}) => (0, import_property_provider.memoize)( - (0, import_property_provider.chain)(fromSso(init), async () => { - throw new import_property_provider.TokenProviderError("Could not load token from any providers", false); - }), - (token) => token.expiration !== void 0 && token.expiration.getTime() - Date.now() < 3e5, - (token) => token.expiration !== void 0 -), "nodeProvider"); -// Annotate the CommonJS export names for ESM import in node: + /***/ 58303: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __create = Object.create + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __getProtoOf = Object.getPrototypeOf + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toESM = (mod, isNodeMode, target) => ( + (target = mod != null ? __create(__getProtoOf(mod)) : {}), + __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule + ? __defProp(target, 'default', { value: mod, enumerable: true }) + : target, + mod + ) + ) + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + DEFAULT_REQUEST_TIMEOUT: () => DEFAULT_REQUEST_TIMEOUT, + NodeHttp2Handler: () => NodeHttp2Handler, + NodeHttpHandler: () => NodeHttpHandler, + streamCollector: () => streamCollector + }) + module.exports = __toCommonJS(src_exports) + + // src/node-http-handler.ts + var import_protocol_http = __nccwpck_require__(64418) + var import_querystring_builder = __nccwpck_require__(68031) + var import_http = __nccwpck_require__(13685) + var import_https = __nccwpck_require__(95687) + + // src/constants.ts + var NODEJS_TIMEOUT_ERROR_CODES = ['ECONNRESET', 'EPIPE', 'ETIMEDOUT'] + + // src/get-transformed-headers.ts + var getTransformedHeaders = /* @__PURE__ */ __name(headers => { + const transformedHeaders = {} + for (const name of Object.keys(headers)) { + const headerValues = headers[name] + transformedHeaders[name] = Array.isArray(headerValues) + ? headerValues.join(',') + : headerValues + } + return transformedHeaders + }, 'getTransformedHeaders') + + // src/set-connection-timeout.ts + var DEFER_EVENT_LISTENER_TIME = 1e3 + var setConnectionTimeout = /* @__PURE__ */ __name( + (request, reject, timeoutInMs = 0) => { + if (!timeoutInMs) { + return -1 + } + const registerTimeout = /* @__PURE__ */ __name(offset => { + const timeoutId = setTimeout(() => { + request.destroy() + reject( + Object.assign( + new Error( + `Socket timed out without establishing a connection within ${timeoutInMs} ms` + ), + { + name: 'TimeoutError' + } + ) + ) + }, timeoutInMs - offset) + const doWithSocket = /* @__PURE__ */ __name(socket => { + if (socket == null ? void 0 : socket.connecting) { + socket.on('connect', () => { + clearTimeout(timeoutId) + }) + } else { + clearTimeout(timeoutId) + } + }, 'doWithSocket') + if (request.socket) { + doWithSocket(request.socket) + } else { + request.on('socket', doWithSocket) + } + }, 'registerTimeout') + if (timeoutInMs < 2e3) { + registerTimeout(0) + return 0 + } + return setTimeout( + registerTimeout.bind(null, DEFER_EVENT_LISTENER_TIME), + DEFER_EVENT_LISTENER_TIME + ) + }, + 'setConnectionTimeout' + ) -0 && (0); + // src/set-socket-keep-alive.ts + var DEFER_EVENT_LISTENER_TIME2 = 3e3 + var setSocketKeepAlive = /* @__PURE__ */ __name( + ( + request, + { keepAlive, keepAliveMsecs }, + deferTimeMs = DEFER_EVENT_LISTENER_TIME2 + ) => { + if (keepAlive !== true) { + return -1 + } + const registerListener = /* @__PURE__ */ __name(() => { + if (request.socket) { + request.socket.setKeepAlive(keepAlive, keepAliveMsecs || 0) + } else { + request.on('socket', socket => { + socket.setKeepAlive(keepAlive, keepAliveMsecs || 0) + }) + } + }, 'registerListener') + if (deferTimeMs === 0) { + registerListener() + return 0 + } + return setTimeout(registerListener, deferTimeMs) + }, + 'setSocketKeepAlive' + ) + // src/set-socket-timeout.ts + var DEFER_EVENT_LISTENER_TIME3 = 3e3 + var setSocketTimeout = /* @__PURE__ */ __name( + (request, reject, timeoutInMs = 0) => { + const registerTimeout = /* @__PURE__ */ __name(offset => { + request.setTimeout(timeoutInMs - offset, () => { + request.destroy() + reject( + Object.assign( + new Error(`Connection timed out after ${timeoutInMs} ms`), + { name: 'TimeoutError' } + ) + ) + }) + }, 'registerTimeout') + if (0 < timeoutInMs && timeoutInMs < 6e3) { + registerTimeout(0) + return 0 + } + return setTimeout( + registerTimeout.bind( + null, + timeoutInMs === 0 ? 0 : DEFER_EVENT_LISTENER_TIME3 + ), + DEFER_EVENT_LISTENER_TIME3 + ) + }, + 'setSocketTimeout' + ) + // src/write-request-body.ts + var import_stream = __nccwpck_require__(12781) + var MIN_WAIT_TIME = 1e3 + async function writeRequestBody( + httpRequest, + request, + maxContinueTimeoutMs = MIN_WAIT_TIME + ) { + const headers = request.headers ?? {} + const expect = headers['Expect'] || headers['expect'] + let timeoutId = -1 + let hasError = false + if (expect === '100-continue') { + await Promise.race([ + new Promise(resolve => { + timeoutId = Number( + setTimeout( + resolve, + Math.max(MIN_WAIT_TIME, maxContinueTimeoutMs) + ) + ) + }), + new Promise(resolve => { + httpRequest.on('continue', () => { + clearTimeout(timeoutId) + resolve() + }) + httpRequest.on('error', () => { + hasError = true + clearTimeout(timeoutId) + resolve() + }) + }) + ]) + } + if (!hasError) { + writeBody(httpRequest, request.body) + } + } + __name(writeRequestBody, 'writeRequestBody') + function writeBody(httpRequest, body) { + if (body instanceof import_stream.Readable) { + body.pipe(httpRequest) + return + } + if (body) { + if (Buffer.isBuffer(body) || typeof body === 'string') { + httpRequest.end(body) + return + } + const uint8 = body + if ( + typeof uint8 === 'object' && + uint8.buffer && + typeof uint8.byteOffset === 'number' && + typeof uint8.byteLength === 'number' + ) { + httpRequest.end( + Buffer.from(uint8.buffer, uint8.byteOffset, uint8.byteLength) + ) + return + } + httpRequest.end(Buffer.from(body)) + return + } + httpRequest.end() + } + __name(writeBody, 'writeBody') + + // src/node-http-handler.ts + var DEFAULT_REQUEST_TIMEOUT = 0 + var _NodeHttpHandler = class _NodeHttpHandler { + constructor(options) { + this.socketWarningTimestamp = 0 + // Node http handler is hard-coded to http/1.1: https://github.com/nodejs/node/blob/ff5664b83b89c55e4ab5d5f60068fb457f1f5872/lib/_http_server.js#L286 + this.metadata = { handlerProtocol: 'http/1.1' } + this.configProvider = new Promise((resolve, reject) => { + if (typeof options === 'function') { + options() + .then(_options => { + resolve(this.resolveDefaultConfig(_options)) + }) + .catch(reject) + } else { + resolve(this.resolveDefaultConfig(options)) + } + }) + } + /** + * @returns the input if it is an HttpHandler of any class, + * or instantiates a new instance of this handler. + */ + static create(instanceOrOptions) { + if ( + typeof (instanceOrOptions == null + ? void 0 + : instanceOrOptions.handle) === 'function' + ) { + return instanceOrOptions + } + return new _NodeHttpHandler(instanceOrOptions) + } + /** + * @internal + * + * @param agent - http(s) agent in use by the NodeHttpHandler instance. + * @param socketWarningTimestamp - last socket usage check timestamp. + * @param logger - channel for the warning. + * @returns timestamp of last emitted warning. + */ + static checkSocketUsage( + agent, + socketWarningTimestamp, + logger = console + ) { + var _a, _b, _c + const { sockets, requests, maxSockets } = agent + if (typeof maxSockets !== 'number' || maxSockets === Infinity) { + return socketWarningTimestamp + } + const interval = 15e3 + if (Date.now() - interval < socketWarningTimestamp) { + return socketWarningTimestamp + } + if (sockets && requests) { + for (const origin in sockets) { + const socketsInUse = + ((_a = sockets[origin]) == null ? void 0 : _a.length) ?? 0 + const requestsEnqueued = + ((_b = requests[origin]) == null ? void 0 : _b.length) ?? 0 + if ( + socketsInUse >= maxSockets && + requestsEnqueued >= 2 * maxSockets + ) { + ;(_c = logger == null ? void 0 : logger.warn) == null + ? void 0 + : _c.call( + logger, + `@smithy/node-http-handler:WARN - socket usage at capacity=${socketsInUse} and ${requestsEnqueued} additional requests are enqueued. +See https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html +or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.` + ) + return Date.now() + } + } + } + return socketWarningTimestamp + } + resolveDefaultConfig(options) { + const { + requestTimeout, + connectionTimeout, + socketTimeout, + httpAgent, + httpsAgent + } = options || {} + const keepAlive = true + const maxSockets = 50 + return { + connectionTimeout, + requestTimeout: requestTimeout ?? socketTimeout, + httpAgent: (() => { + if ( + httpAgent instanceof import_http.Agent || + typeof (httpAgent == null ? void 0 : httpAgent.destroy) === + 'function' + ) { + return httpAgent + } + return new import_http.Agent({ + keepAlive, + maxSockets, + ...httpAgent + }) + })(), + httpsAgent: (() => { + if ( + httpsAgent instanceof import_https.Agent || + typeof (httpsAgent == null ? void 0 : httpsAgent.destroy) === + 'function' + ) { + return httpsAgent + } + return new import_https.Agent({ + keepAlive, + maxSockets, + ...httpsAgent + }) + })(), + logger: console + } + } + destroy() { + var _a, _b, _c, _d + ;(_b = (_a = this.config) == null ? void 0 : _a.httpAgent) == null + ? void 0 + : _b.destroy() + ;(_d = (_c = this.config) == null ? void 0 : _c.httpsAgent) == null + ? void 0 + : _d.destroy() + } + async handle(request, { abortSignal } = {}) { + if (!this.config) { + this.config = await this.configProvider + } + return new Promise((_resolve, _reject) => { + let writeRequestBodyPromise = void 0 + const timeouts = [] + const resolve = /* @__PURE__ */ __name(async arg => { + await writeRequestBodyPromise + timeouts.forEach(clearTimeout) + _resolve(arg) + }, 'resolve') + const reject = /* @__PURE__ */ __name(async arg => { + await writeRequestBodyPromise + timeouts.forEach(clearTimeout) + _reject(arg) + }, 'reject') + if (!this.config) { + throw new Error( + 'Node HTTP request handler config is not resolved' + ) + } + if (abortSignal == null ? void 0 : abortSignal.aborted) { + const abortError = new Error('Request aborted') + abortError.name = 'AbortError' + reject(abortError) + return + } + const isSSL = request.protocol === 'https:' + const agent = isSSL ? this.config.httpsAgent : this.config.httpAgent + timeouts.push( + setTimeout( + () => { + this.socketWarningTimestamp = + _NodeHttpHandler.checkSocketUsage( + agent, + this.socketWarningTimestamp, + this.config.logger + ) + }, + this.config.socketAcquisitionWarningTimeout ?? + (this.config.requestTimeout ?? 2e3) + + (this.config.connectionTimeout ?? 1e3) + ) + ) + const queryString = (0, + import_querystring_builder.buildQueryString)(request.query || {}) + let auth = void 0 + if (request.username != null || request.password != null) { + const username = request.username ?? '' + const password = request.password ?? '' + auth = `${username}:${password}` + } + let path = request.path + if (queryString) { + path += `?${queryString}` + } + if (request.fragment) { + path += `#${request.fragment}` + } + const nodeHttpsOptions = { + headers: request.headers, + host: request.hostname, + method: request.method, + path, + port: request.port, + agent, + auth + } + const requestFunc = isSSL + ? import_https.request + : import_http.request + const req = requestFunc(nodeHttpsOptions, res => { + const httpResponse = new import_protocol_http.HttpResponse({ + statusCode: res.statusCode || -1, + reason: res.statusMessage, + headers: getTransformedHeaders(res.headers), + body: res + }) + resolve({ response: httpResponse }) + }) + req.on('error', err => { + if (NODEJS_TIMEOUT_ERROR_CODES.includes(err.code)) { + reject(Object.assign(err, { name: 'TimeoutError' })) + } else { + reject(err) + } + }) + if (abortSignal) { + const onAbort = /* @__PURE__ */ __name(() => { + req.destroy() + const abortError = new Error('Request aborted') + abortError.name = 'AbortError' + reject(abortError) + }, 'onAbort') + if (typeof abortSignal.addEventListener === 'function') { + const signal = abortSignal + signal.addEventListener('abort', onAbort, { once: true }) + req.once('close', () => + signal.removeEventListener('abort', onAbort) + ) + } else { + abortSignal.onabort = onAbort + } + } + timeouts.push( + setConnectionTimeout(req, reject, this.config.connectionTimeout) + ) + timeouts.push( + setSocketTimeout(req, reject, this.config.requestTimeout) + ) + const httpAgent = nodeHttpsOptions.agent + if (typeof httpAgent === 'object' && 'keepAlive' in httpAgent) { + timeouts.push( + setSocketKeepAlive(req, { + // @ts-expect-error keepAlive is not public on httpAgent. + keepAlive: httpAgent.keepAlive, + // @ts-expect-error keepAliveMsecs is not public on httpAgent. + keepAliveMsecs: httpAgent.keepAliveMsecs + }) + ) + } + writeRequestBodyPromise = writeRequestBody( + req, + request, + this.config.requestTimeout + ).catch(e => { + timeouts.forEach(clearTimeout) + return _reject(e) + }) + }) + } + updateHttpClientConfig(key, value) { + this.config = void 0 + this.configProvider = this.configProvider.then(config => { + return { + ...config, + [key]: value + } + }) + } + httpHandlerConfigs() { + return this.config ?? {} + } + } + __name(_NodeHttpHandler, 'NodeHttpHandler') + var NodeHttpHandler = _NodeHttpHandler -/***/ }), + // src/node-http2-handler.ts -/***/ 24253: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + var import_http22 = __nccwpck_require__(85158) -"use strict"; + // src/node-http2-connection-manager.ts + var import_http2 = __toESM(__nccwpck_require__(85158)) -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var index_exports = {}; -__export(index_exports, { - ConditionObject: () => import_util_endpoints.ConditionObject, - DeprecatedObject: () => import_util_endpoints.DeprecatedObject, - EndpointError: () => import_util_endpoints.EndpointError, - EndpointObject: () => import_util_endpoints.EndpointObject, - EndpointObjectHeaders: () => import_util_endpoints.EndpointObjectHeaders, - EndpointObjectProperties: () => import_util_endpoints.EndpointObjectProperties, - EndpointParams: () => import_util_endpoints.EndpointParams, - EndpointResolverOptions: () => import_util_endpoints.EndpointResolverOptions, - EndpointRuleObject: () => import_util_endpoints.EndpointRuleObject, - ErrorRuleObject: () => import_util_endpoints.ErrorRuleObject, - EvaluateOptions: () => import_util_endpoints.EvaluateOptions, - Expression: () => import_util_endpoints.Expression, - FunctionArgv: () => import_util_endpoints.FunctionArgv, - FunctionObject: () => import_util_endpoints.FunctionObject, - FunctionReturn: () => import_util_endpoints.FunctionReturn, - ParameterObject: () => import_util_endpoints.ParameterObject, - ReferenceObject: () => import_util_endpoints.ReferenceObject, - ReferenceRecord: () => import_util_endpoints.ReferenceRecord, - RuleSetObject: () => import_util_endpoints.RuleSetObject, - RuleSetRules: () => import_util_endpoints.RuleSetRules, - TreeRuleObject: () => import_util_endpoints.TreeRuleObject, - awsEndpointFunctions: () => awsEndpointFunctions, - getUserAgentPrefix: () => getUserAgentPrefix, - isIpAddress: () => import_util_endpoints.isIpAddress, - partition: () => partition, - resolveEndpoint: () => import_util_endpoints.resolveEndpoint, - setPartitionInfo: () => setPartitionInfo, - useDefaultPartitionInfo: () => useDefaultPartitionInfo -}); -module.exports = __toCommonJS(index_exports); - -// src/aws.ts - - -// src/lib/aws/isVirtualHostableS3Bucket.ts - - -// src/lib/isIpAddress.ts -var import_util_endpoints = __nccwpck_require__(76779); - -// src/lib/aws/isVirtualHostableS3Bucket.ts -var isVirtualHostableS3Bucket = /* @__PURE__ */ __name((value, allowSubDomains = false) => { - if (allowSubDomains) { - for (const label of value.split(".")) { - if (!isVirtualHostableS3Bucket(label)) { - return false; - } - } - return true; - } - if (!(0, import_util_endpoints.isValidHostLabel)(value)) { - return false; - } - if (value.length < 3 || value.length > 63) { - return false; - } - if (value !== value.toLowerCase()) { - return false; - } - if ((0, import_util_endpoints.isIpAddress)(value)) { - return false; - } - return true; -}, "isVirtualHostableS3Bucket"); - -// src/lib/aws/parseArn.ts -var ARN_DELIMITER = ":"; -var RESOURCE_DELIMITER = "/"; -var parseArn = /* @__PURE__ */ __name((value) => { - const segments = value.split(ARN_DELIMITER); - if (segments.length < 6) return null; - const [arn, partition2, service, region, accountId, ...resourcePath] = segments; - if (arn !== "arn" || partition2 === "" || service === "" || resourcePath.join(ARN_DELIMITER) === "") return null; - const resourceId = resourcePath.map((resource) => resource.split(RESOURCE_DELIMITER)).flat(); - return { - partition: partition2, - service, - region, - accountId, - resourceId - }; -}, "parseArn"); - -// src/lib/aws/partitions.json -var partitions_default = { - partitions: [{ - id: "aws", - outputs: { - dnsSuffix: "amazonaws.com", - dualStackDnsSuffix: "api.aws", - implicitGlobalRegion: "us-east-1", - name: "aws", - supportsDualStack: true, - supportsFIPS: true - }, - regionRegex: "^(us|eu|ap|sa|ca|me|af|il|mx)\\-\\w+\\-\\d+$", - regions: { - "af-south-1": { - description: "Africa (Cape Town)" - }, - "ap-east-1": { - description: "Asia Pacific (Hong Kong)" - }, - "ap-northeast-1": { - description: "Asia Pacific (Tokyo)" - }, - "ap-northeast-2": { - description: "Asia Pacific (Seoul)" - }, - "ap-northeast-3": { - description: "Asia Pacific (Osaka)" - }, - "ap-south-1": { - description: "Asia Pacific (Mumbai)" - }, - "ap-south-2": { - description: "Asia Pacific (Hyderabad)" - }, - "ap-southeast-1": { - description: "Asia Pacific (Singapore)" - }, - "ap-southeast-2": { - description: "Asia Pacific (Sydney)" - }, - "ap-southeast-3": { - description: "Asia Pacific (Jakarta)" - }, - "ap-southeast-4": { - description: "Asia Pacific (Melbourne)" - }, - "ap-southeast-5": { - description: "Asia Pacific (Malaysia)" - }, - "ap-southeast-7": { - description: "Asia Pacific (Thailand)" - }, - "aws-global": { - description: "AWS Standard global region" - }, - "ca-central-1": { - description: "Canada (Central)" - }, - "ca-west-1": { - description: "Canada West (Calgary)" - }, - "eu-central-1": { - description: "Europe (Frankfurt)" - }, - "eu-central-2": { - description: "Europe (Zurich)" - }, - "eu-north-1": { - description: "Europe (Stockholm)" - }, - "eu-south-1": { - description: "Europe (Milan)" - }, - "eu-south-2": { - description: "Europe (Spain)" - }, - "eu-west-1": { - description: "Europe (Ireland)" - }, - "eu-west-2": { - description: "Europe (London)" - }, - "eu-west-3": { - description: "Europe (Paris)" - }, - "il-central-1": { - description: "Israel (Tel Aviv)" - }, - "me-central-1": { - description: "Middle East (UAE)" - }, - "me-south-1": { - description: "Middle East (Bahrain)" - }, - "mx-central-1": { - description: "Mexico (Central)" - }, - "sa-east-1": { - description: "South America (Sao Paulo)" - }, - "us-east-1": { - description: "US East (N. Virginia)" - }, - "us-east-2": { - description: "US East (Ohio)" - }, - "us-west-1": { - description: "US West (N. California)" - }, - "us-west-2": { - description: "US West (Oregon)" - } - } - }, { - id: "aws-cn", - outputs: { - dnsSuffix: "amazonaws.com.cn", - dualStackDnsSuffix: "api.amazonwebservices.com.cn", - implicitGlobalRegion: "cn-northwest-1", - name: "aws-cn", - supportsDualStack: true, - supportsFIPS: true - }, - regionRegex: "^cn\\-\\w+\\-\\d+$", - regions: { - "aws-cn-global": { - description: "AWS China global region" - }, - "cn-north-1": { - description: "China (Beijing)" - }, - "cn-northwest-1": { - description: "China (Ningxia)" - } - } - }, { - id: "aws-us-gov", - outputs: { - dnsSuffix: "amazonaws.com", - dualStackDnsSuffix: "api.aws", - implicitGlobalRegion: "us-gov-west-1", - name: "aws-us-gov", - supportsDualStack: true, - supportsFIPS: true - }, - regionRegex: "^us\\-gov\\-\\w+\\-\\d+$", - regions: { - "aws-us-gov-global": { - description: "AWS GovCloud (US) global region" - }, - "us-gov-east-1": { - description: "AWS GovCloud (US-East)" - }, - "us-gov-west-1": { - description: "AWS GovCloud (US-West)" - } - } - }, { - id: "aws-iso", - outputs: { - dnsSuffix: "c2s.ic.gov", - dualStackDnsSuffix: "c2s.ic.gov", - implicitGlobalRegion: "us-iso-east-1", - name: "aws-iso", - supportsDualStack: false, - supportsFIPS: true - }, - regionRegex: "^us\\-iso\\-\\w+\\-\\d+$", - regions: { - "aws-iso-global": { - description: "AWS ISO (US) global region" - }, - "us-iso-east-1": { - description: "US ISO East" - }, - "us-iso-west-1": { - description: "US ISO WEST" - } - } - }, { - id: "aws-iso-b", - outputs: { - dnsSuffix: "sc2s.sgov.gov", - dualStackDnsSuffix: "sc2s.sgov.gov", - implicitGlobalRegion: "us-isob-east-1", - name: "aws-iso-b", - supportsDualStack: false, - supportsFIPS: true - }, - regionRegex: "^us\\-isob\\-\\w+\\-\\d+$", - regions: { - "aws-iso-b-global": { - description: "AWS ISOB (US) global region" - }, - "us-isob-east-1": { - description: "US ISOB East (Ohio)" - } - } - }, { - id: "aws-iso-e", - outputs: { - dnsSuffix: "cloud.adc-e.uk", - dualStackDnsSuffix: "cloud.adc-e.uk", - implicitGlobalRegion: "eu-isoe-west-1", - name: "aws-iso-e", - supportsDualStack: false, - supportsFIPS: true - }, - regionRegex: "^eu\\-isoe\\-\\w+\\-\\d+$", - regions: { - "aws-iso-e-global": { - description: "AWS ISOE (Europe) global region" - }, - "eu-isoe-west-1": { - description: "EU ISOE West" - } - } - }, { - id: "aws-iso-f", - outputs: { - dnsSuffix: "csp.hci.ic.gov", - dualStackDnsSuffix: "csp.hci.ic.gov", - implicitGlobalRegion: "us-isof-south-1", - name: "aws-iso-f", - supportsDualStack: false, - supportsFIPS: true - }, - regionRegex: "^us\\-isof\\-\\w+\\-\\d+$", - regions: { - "aws-iso-f-global": { - description: "AWS ISOF global region" - }, - "us-isof-east-1": { - description: "US ISOF EAST" - }, - "us-isof-south-1": { - description: "US ISOF SOUTH" - } - } - }, { - id: "aws-eusc", - outputs: { - dnsSuffix: "amazonaws.eu", - dualStackDnsSuffix: "amazonaws.eu", - implicitGlobalRegion: "eusc-de-east-1", - name: "aws-eusc", - supportsDualStack: false, - supportsFIPS: true - }, - regionRegex: "^eusc\\-(de)\\-\\w+\\-\\d+$", - regions: { - "eusc-de-east-1": { - description: "EU (Germany)" + // src/node-http2-connection-pool.ts + var _NodeHttp2ConnectionPool = class _NodeHttp2ConnectionPool { + constructor(sessions) { + this.sessions = [] + this.sessions = sessions ?? [] + } + poll() { + if (this.sessions.length > 0) { + return this.sessions.shift() + } + } + offerLast(session) { + this.sessions.push(session) + } + contains(session) { + return this.sessions.includes(session) + } + remove(session) { + this.sessions = this.sessions.filter(s => s !== session) + } + [Symbol.iterator]() { + return this.sessions[Symbol.iterator]() + } + destroy(connection) { + for (const session of this.sessions) { + if (session === connection) { + if (!session.destroyed) { + session.destroy() + } + } + } + } } - } - }], - version: "1.1" -}; - -// src/lib/aws/partition.ts -var selectedPartitionsInfo = partitions_default; -var selectedUserAgentPrefix = ""; -var partition = /* @__PURE__ */ __name((value) => { - const { partitions } = selectedPartitionsInfo; - for (const partition2 of partitions) { - const { regions, outputs } = partition2; - for (const [region, regionData] of Object.entries(regions)) { - if (region === value) { - return { - ...outputs, - ...regionData - }; + __name(_NodeHttp2ConnectionPool, 'NodeHttp2ConnectionPool') + var NodeHttp2ConnectionPool = _NodeHttp2ConnectionPool + + // src/node-http2-connection-manager.ts + var _NodeHttp2ConnectionManager = class _NodeHttp2ConnectionManager { + constructor(config) { + this.sessionCache = /* @__PURE__ */ new Map() + this.config = config + if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) { + throw new RangeError('maxConcurrency must be greater than zero.') + } + } + lease(requestContext, connectionConfiguration) { + const url = this.getUrlString(requestContext) + const existingPool = this.sessionCache.get(url) + if (existingPool) { + const existingSession = existingPool.poll() + if (existingSession && !this.config.disableConcurrency) { + return existingSession + } + } + const session = import_http2.default.connect(url) + if (this.config.maxConcurrency) { + session.settings( + { maxConcurrentStreams: this.config.maxConcurrency }, + err => { + if (err) { + throw new Error( + 'Fail to set maxConcurrentStreams to ' + + this.config.maxConcurrency + + 'when creating new session for ' + + requestContext.destination.toString() + ) + } + } + ) + } + session.unref() + const destroySessionCb = /* @__PURE__ */ __name(() => { + session.destroy() + this.deleteSession(url, session) + }, 'destroySessionCb') + session.on('goaway', destroySessionCb) + session.on('error', destroySessionCb) + session.on('frameError', destroySessionCb) + session.on('close', () => this.deleteSession(url, session)) + if (connectionConfiguration.requestTimeout) { + session.setTimeout( + connectionConfiguration.requestTimeout, + destroySessionCb + ) + } + const connectionPool = + this.sessionCache.get(url) || new NodeHttp2ConnectionPool() + connectionPool.offerLast(session) + this.sessionCache.set(url, connectionPool) + return session + } + /** + * Delete a session from the connection pool. + * @param authority The authority of the session to delete. + * @param session The session to delete. + */ + deleteSession(authority, session) { + const existingConnectionPool = this.sessionCache.get(authority) + if (!existingConnectionPool) { + return + } + if (!existingConnectionPool.contains(session)) { + return + } + existingConnectionPool.remove(session) + this.sessionCache.set(authority, existingConnectionPool) + } + release(requestContext, session) { + var _a + const cacheKey = this.getUrlString(requestContext) + ;(_a = this.sessionCache.get(cacheKey)) == null + ? void 0 + : _a.offerLast(session) + } + destroy() { + for (const [key, connectionPool] of this.sessionCache) { + for (const session of connectionPool) { + if (!session.destroyed) { + session.destroy() + } + connectionPool.remove(session) + } + this.sessionCache.delete(key) + } + } + setMaxConcurrentStreams(maxConcurrentStreams) { + if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) { + throw new RangeError( + 'maxConcurrentStreams must be greater than zero.' + ) + } + this.config.maxConcurrency = maxConcurrentStreams + } + setDisableConcurrentStreams(disableConcurrentStreams) { + this.config.disableConcurrency = disableConcurrentStreams + } + getUrlString(request) { + return request.destination.toString() + } + } + __name(_NodeHttp2ConnectionManager, 'NodeHttp2ConnectionManager') + var NodeHttp2ConnectionManager = _NodeHttp2ConnectionManager + + // src/node-http2-handler.ts + var _NodeHttp2Handler = class _NodeHttp2Handler { + constructor(options) { + this.metadata = { handlerProtocol: 'h2' } + this.connectionManager = new NodeHttp2ConnectionManager({}) + this.configProvider = new Promise((resolve, reject) => { + if (typeof options === 'function') { + options() + .then(opts => { + resolve(opts || {}) + }) + .catch(reject) + } else { + resolve(options || {}) + } + }) + } + /** + * @returns the input if it is an HttpHandler of any class, + * or instantiates a new instance of this handler. + */ + static create(instanceOrOptions) { + if ( + typeof (instanceOrOptions == null + ? void 0 + : instanceOrOptions.handle) === 'function' + ) { + return instanceOrOptions + } + return new _NodeHttp2Handler(instanceOrOptions) + } + destroy() { + this.connectionManager.destroy() + } + async handle(request, { abortSignal } = {}) { + if (!this.config) { + this.config = await this.configProvider + this.connectionManager.setDisableConcurrentStreams( + this.config.disableConcurrentStreams || false + ) + if (this.config.maxConcurrentStreams) { + this.connectionManager.setMaxConcurrentStreams( + this.config.maxConcurrentStreams + ) + } + } + const { requestTimeout, disableConcurrentStreams } = this.config + return new Promise((_resolve, _reject) => { + var _a + let fulfilled = false + let writeRequestBodyPromise = void 0 + const resolve = /* @__PURE__ */ __name(async arg => { + await writeRequestBodyPromise + _resolve(arg) + }, 'resolve') + const reject = /* @__PURE__ */ __name(async arg => { + await writeRequestBodyPromise + _reject(arg) + }, 'reject') + if (abortSignal == null ? void 0 : abortSignal.aborted) { + fulfilled = true + const abortError = new Error('Request aborted') + abortError.name = 'AbortError' + reject(abortError) + return + } + const { hostname, method, port, protocol, query } = request + let auth = '' + if (request.username != null || request.password != null) { + const username = request.username ?? '' + const password = request.password ?? '' + auth = `${username}:${password}@` + } + const authority = `${protocol}//${auth}${hostname}${port ? `:${port}` : ''}` + const requestContext = { destination: new URL(authority) } + const session = this.connectionManager.lease(requestContext, { + requestTimeout: + (_a = this.config) == null ? void 0 : _a.sessionTimeout, + disableConcurrentStreams: disableConcurrentStreams || false + }) + const rejectWithDestroy = /* @__PURE__ */ __name(err => { + if (disableConcurrentStreams) { + this.destroySession(session) + } + fulfilled = true + reject(err) + }, 'rejectWithDestroy') + const queryString = (0, + import_querystring_builder.buildQueryString)(query || {}) + let path = request.path + if (queryString) { + path += `?${queryString}` + } + if (request.fragment) { + path += `#${request.fragment}` + } + const req = session.request({ + ...request.headers, + [import_http22.constants.HTTP2_HEADER_PATH]: path, + [import_http22.constants.HTTP2_HEADER_METHOD]: method + }) + session.ref() + req.on('response', headers => { + const httpResponse = new import_protocol_http.HttpResponse({ + statusCode: headers[':status'] || -1, + headers: getTransformedHeaders(headers), + body: req + }) + fulfilled = true + resolve({ response: httpResponse }) + if (disableConcurrentStreams) { + session.close() + this.connectionManager.deleteSession(authority, session) + } + }) + if (requestTimeout) { + req.setTimeout(requestTimeout, () => { + req.close() + const timeoutError = new Error( + `Stream timed out because of no activity for ${requestTimeout} ms` + ) + timeoutError.name = 'TimeoutError' + rejectWithDestroy(timeoutError) + }) + } + if (abortSignal) { + const onAbort = /* @__PURE__ */ __name(() => { + req.close() + const abortError = new Error('Request aborted') + abortError.name = 'AbortError' + rejectWithDestroy(abortError) + }, 'onAbort') + if (typeof abortSignal.addEventListener === 'function') { + const signal = abortSignal + signal.addEventListener('abort', onAbort, { once: true }) + req.once('close', () => + signal.removeEventListener('abort', onAbort) + ) + } else { + abortSignal.onabort = onAbort + } + } + req.on('frameError', (type, code, id) => { + rejectWithDestroy( + new Error( + `Frame type id ${type} in stream id ${id} has failed with code ${code}.` + ) + ) + }) + req.on('error', rejectWithDestroy) + req.on('aborted', () => { + rejectWithDestroy( + new Error( + `HTTP/2 stream is abnormally aborted in mid-communication with result code ${req.rstCode}.` + ) + ) + }) + req.on('close', () => { + session.unref() + if (disableConcurrentStreams) { + session.destroy() + } + if (!fulfilled) { + rejectWithDestroy( + new Error( + 'Unexpected error: http2 request did not get a response' + ) + ) + } + }) + writeRequestBodyPromise = writeRequestBody( + req, + request, + requestTimeout + ) + }) + } + updateHttpClientConfig(key, value) { + this.config = void 0 + this.configProvider = this.configProvider.then(config => { + return { + ...config, + [key]: value + } + }) + } + httpHandlerConfigs() { + return this.config ?? {} + } + /** + * Destroys a session. + * @param session The session to destroy. + */ + destroySession(session) { + if (!session.destroyed) { + session.destroy() + } + } } - } - } - for (const partition2 of partitions) { - const { regionRegex, outputs } = partition2; - if (new RegExp(regionRegex).test(value)) { - return { - ...outputs - }; - } - } - const DEFAULT_PARTITION = partitions.find((partition2) => partition2.id === "aws"); - if (!DEFAULT_PARTITION) { - throw new Error( - "Provided region was not found in the partition array or regex, and default partition with id 'aws' doesn't exist." - ); - } - return { - ...DEFAULT_PARTITION.outputs - }; -}, "partition"); -var setPartitionInfo = /* @__PURE__ */ __name((partitionsInfo, userAgentPrefix = "") => { - selectedPartitionsInfo = partitionsInfo; - selectedUserAgentPrefix = userAgentPrefix; -}, "setPartitionInfo"); -var useDefaultPartitionInfo = /* @__PURE__ */ __name(() => { - setPartitionInfo(partitions_default, ""); -}, "useDefaultPartitionInfo"); -var getUserAgentPrefix = /* @__PURE__ */ __name(() => selectedUserAgentPrefix, "getUserAgentPrefix"); - -// src/aws.ts -var awsEndpointFunctions = { - isVirtualHostableS3Bucket, - parseArn, - partition -}; -import_util_endpoints.customEndpointFunctions.aws = awsEndpointFunctions; - -// src/resolveEndpoint.ts - - -// src/types/EndpointError.ts - - -// src/types/EndpointRuleObject.ts - + __name(_NodeHttp2Handler, 'NodeHttp2Handler') + var NodeHttp2Handler = _NodeHttp2Handler -// src/types/ErrorRuleObject.ts + // src/stream-collector/collector.ts + var _Collector = class _Collector extends import_stream.Writable { + constructor() { + super(...arguments) + this.bufferedBytes = [] + } + _write(chunk, encoding, callback) { + this.bufferedBytes.push(chunk) + callback() + } + } + __name(_Collector, 'Collector') + var Collector = _Collector -// src/types/RuleSetObject.ts - + // src/stream-collector/index.ts + var streamCollector = /* @__PURE__ */ __name(stream => { + if (isReadableStreamInstance(stream)) { + return collectReadableStream(stream) + } + return new Promise((resolve, reject) => { + const collector = new Collector() + stream.pipe(collector) + stream.on('error', err => { + collector.end() + reject(err) + }) + collector.on('error', reject) + collector.on('finish', function () { + const bytes = new Uint8Array(Buffer.concat(this.bufferedBytes)) + resolve(bytes) + }) + }) + }, 'streamCollector') + var isReadableStreamInstance = /* @__PURE__ */ __name( + stream => + typeof ReadableStream === 'function' && + stream instanceof ReadableStream, + 'isReadableStreamInstance' + ) + async function collectReadableStream(stream) { + const chunks = [] + const reader = stream.getReader() + let isDone = false + let length = 0 + while (!isDone) { + const { done, value } = await reader.read() + if (value) { + chunks.push(value) + length += value.length + } + isDone = done + } + const collected = new Uint8Array(length) + let offset = 0 + for (const chunk of chunks) { + collected.set(chunk, offset) + offset += chunk.length + } + return collected + } + __name(collectReadableStream, 'collectReadableStream') + // Annotate the CommonJS export names for ESM import in node: -// src/types/TreeRuleObject.ts + 0 && 0 + /***/ + }, -// src/types/shared.ts + /***/ 59963: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -// Annotate the CommonJS export names for ESM import in node: + Object.defineProperty(exports, '__esModule', { value: true }) + const tslib_1 = __nccwpck_require__(4351) + tslib_1.__exportStar(__nccwpck_require__(2825), exports) + tslib_1.__exportStar(__nccwpck_require__(27862), exports) + tslib_1.__exportStar(__nccwpck_require__(50785), exports) -0 && (0); + /***/ + }, + /***/ 2825: /***/ module => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + // src/submodules/client/index.ts + var client_exports = {} + __export(client_exports, { + emitWarningIfUnsupportedVersion: () => emitWarningIfUnsupportedVersion + }) + module.exports = __toCommonJS(client_exports) -/***/ }), + // src/submodules/client/emitWarningIfUnsupportedVersion.ts + var warningEmitted = false + var emitWarningIfUnsupportedVersion = /* @__PURE__ */ __name(version => { + if ( + version && + !warningEmitted && + parseInt(version.substring(1, version.indexOf('.'))) < 18 + ) { + warningEmitted = true + process.emitWarning( + `NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will +no longer support Node.js 16.x on January 6, 2025. -/***/ 37896: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +To continue receiving updates to AWS services, bug fixes, and security +updates please upgrade to a supported Node.js LTS version. -"use strict"; +More information can be found at: https://a.co/74kJMmI` + ) + } + }, 'emitWarningIfUnsupportedVersion') + // Annotate the CommonJS export names for ESM import in node: + 0 && 0 -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var index_exports = {}; -__export(index_exports, { - NODE_APP_ID_CONFIG_OPTIONS: () => NODE_APP_ID_CONFIG_OPTIONS, - UA_APP_ID_ENV_NAME: () => UA_APP_ID_ENV_NAME, - UA_APP_ID_INI_NAME: () => UA_APP_ID_INI_NAME, - createDefaultUserAgentProvider: () => createDefaultUserAgentProvider, - crtAvailability: () => crtAvailability, - defaultUserAgent: () => defaultUserAgent -}); -module.exports = __toCommonJS(index_exports); - -// src/defaultUserAgent.ts -var import_os = __nccwpck_require__(22037); -var import_process = __nccwpck_require__(77282); - -// src/crt-availability.ts -var crtAvailability = { - isCrtAvailable: false -}; - -// src/is-crt-available.ts -var isCrtAvailable = /* @__PURE__ */ __name(() => { - if (crtAvailability.isCrtAvailable) { - return ["md/crt-avail"]; - } - return null; -}, "isCrtAvailable"); - -// src/defaultUserAgent.ts -var createDefaultUserAgentProvider = /* @__PURE__ */ __name(({ serviceId, clientVersion }) => { - return async (config) => { - const sections = [ - // sdk-metadata - ["aws-sdk-js", clientVersion], - // ua-metadata - ["ua", "2.1"], - // os-metadata - [`os/${(0, import_os.platform)()}`, (0, import_os.release)()], - // language-metadata - // ECMAScript edition doesn't matter in JS, so no version needed. - ["lang/js"], - ["md/nodejs", `${import_process.versions.node}`] - ]; - const crtAvailable = isCrtAvailable(); - if (crtAvailable) { - sections.push(crtAvailable); - } - if (serviceId) { - sections.push([`api/${serviceId}`, clientVersion]); - } - if (import_process.env.AWS_EXECUTION_ENV) { - sections.push([`exec-env/${import_process.env.AWS_EXECUTION_ENV}`]); - } - const appId = await config?.userAgentAppId?.(); - const resolvedUserAgent = appId ? [...sections, [`app/${appId}`]] : [...sections]; - return resolvedUserAgent; - }; -}, "createDefaultUserAgentProvider"); -var defaultUserAgent = createDefaultUserAgentProvider; - -// src/nodeAppIdConfigOptions.ts -var import_middleware_user_agent = __nccwpck_require__(9711); -var UA_APP_ID_ENV_NAME = "AWS_SDK_UA_APP_ID"; -var UA_APP_ID_INI_NAME = "sdk_ua_app_id"; -var UA_APP_ID_INI_NAME_DEPRECATED = "sdk-ua-app-id"; -var NODE_APP_ID_CONFIG_OPTIONS = { - environmentVariableSelector: /* @__PURE__ */ __name((env2) => env2[UA_APP_ID_ENV_NAME], "environmentVariableSelector"), - configFileSelector: /* @__PURE__ */ __name((profile) => profile[UA_APP_ID_INI_NAME] ?? profile[UA_APP_ID_INI_NAME_DEPRECATED], "configFileSelector"), - default: import_middleware_user_agent.DEFAULT_UA_APP_ID -}; -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 47517: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - CONFIG_USE_DUALSTACK_ENDPOINT: () => CONFIG_USE_DUALSTACK_ENDPOINT, - CONFIG_USE_FIPS_ENDPOINT: () => CONFIG_USE_FIPS_ENDPOINT, - DEFAULT_USE_DUALSTACK_ENDPOINT: () => DEFAULT_USE_DUALSTACK_ENDPOINT, - DEFAULT_USE_FIPS_ENDPOINT: () => DEFAULT_USE_FIPS_ENDPOINT, - ENV_USE_DUALSTACK_ENDPOINT: () => ENV_USE_DUALSTACK_ENDPOINT, - ENV_USE_FIPS_ENDPOINT: () => ENV_USE_FIPS_ENDPOINT, - NODE_REGION_CONFIG_FILE_OPTIONS: () => NODE_REGION_CONFIG_FILE_OPTIONS, - NODE_REGION_CONFIG_OPTIONS: () => NODE_REGION_CONFIG_OPTIONS, - NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS: () => NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, - NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS: () => NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, - REGION_ENV_NAME: () => REGION_ENV_NAME, - REGION_INI_NAME: () => REGION_INI_NAME, - getRegionInfo: () => getRegionInfo, - resolveCustomEndpointsConfig: () => resolveCustomEndpointsConfig, - resolveEndpointsConfig: () => resolveEndpointsConfig, - resolveRegionConfig: () => resolveRegionConfig -}); -module.exports = __toCommonJS(src_exports); - -// src/endpointsConfig/NodeUseDualstackEndpointConfigOptions.ts -var import_util_config_provider = __nccwpck_require__(64692); -var ENV_USE_DUALSTACK_ENDPOINT = "AWS_USE_DUALSTACK_ENDPOINT"; -var CONFIG_USE_DUALSTACK_ENDPOINT = "use_dualstack_endpoint"; -var DEFAULT_USE_DUALSTACK_ENDPOINT = false; -var NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS = { - environmentVariableSelector: (env) => (0, import_util_config_provider.booleanSelector)(env, ENV_USE_DUALSTACK_ENDPOINT, import_util_config_provider.SelectorType.ENV), - configFileSelector: (profile) => (0, import_util_config_provider.booleanSelector)(profile, CONFIG_USE_DUALSTACK_ENDPOINT, import_util_config_provider.SelectorType.CONFIG), - default: false -}; - -// src/endpointsConfig/NodeUseFipsEndpointConfigOptions.ts - -var ENV_USE_FIPS_ENDPOINT = "AWS_USE_FIPS_ENDPOINT"; -var CONFIG_USE_FIPS_ENDPOINT = "use_fips_endpoint"; -var DEFAULT_USE_FIPS_ENDPOINT = false; -var NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS = { - environmentVariableSelector: (env) => (0, import_util_config_provider.booleanSelector)(env, ENV_USE_FIPS_ENDPOINT, import_util_config_provider.SelectorType.ENV), - configFileSelector: (profile) => (0, import_util_config_provider.booleanSelector)(profile, CONFIG_USE_FIPS_ENDPOINT, import_util_config_provider.SelectorType.CONFIG), - default: false -}; - -// src/endpointsConfig/resolveCustomEndpointsConfig.ts -var import_util_middleware = __nccwpck_require__(69474); -var resolveCustomEndpointsConfig = /* @__PURE__ */ __name((input) => { - const { tls, endpoint, urlParser, useDualstackEndpoint } = input; - return Object.assign(input, { - tls: tls ?? true, - endpoint: (0, import_util_middleware.normalizeProvider)(typeof endpoint === "string" ? urlParser(endpoint) : endpoint), - isCustomEndpoint: true, - useDualstackEndpoint: (0, import_util_middleware.normalizeProvider)(useDualstackEndpoint ?? false) - }); -}, "resolveCustomEndpointsConfig"); - -// src/endpointsConfig/resolveEndpointsConfig.ts - - -// src/endpointsConfig/utils/getEndpointFromRegion.ts -var getEndpointFromRegion = /* @__PURE__ */ __name(async (input) => { - const { tls = true } = input; - const region = await input.region(); - const dnsHostRegex = new RegExp(/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/); - if (!dnsHostRegex.test(region)) { - throw new Error("Invalid region in client config"); - } - const useDualstackEndpoint = await input.useDualstackEndpoint(); - const useFipsEndpoint = await input.useFipsEndpoint(); - const { hostname } = await input.regionInfoProvider(region, { useDualstackEndpoint, useFipsEndpoint }) ?? {}; - if (!hostname) { - throw new Error("Cannot resolve hostname from client config"); - } - return input.urlParser(`${tls ? "https:" : "http:"}//${hostname}`); -}, "getEndpointFromRegion"); - -// src/endpointsConfig/resolveEndpointsConfig.ts -var resolveEndpointsConfig = /* @__PURE__ */ __name((input) => { - const useDualstackEndpoint = (0, import_util_middleware.normalizeProvider)(input.useDualstackEndpoint ?? false); - const { endpoint, useFipsEndpoint, urlParser, tls } = input; - return Object.assign(input, { - tls: tls ?? true, - endpoint: endpoint ? (0, import_util_middleware.normalizeProvider)(typeof endpoint === "string" ? urlParser(endpoint) : endpoint) : () => getEndpointFromRegion({ ...input, useDualstackEndpoint, useFipsEndpoint }), - isCustomEndpoint: !!endpoint, - useDualstackEndpoint - }); -}, "resolveEndpointsConfig"); - -// src/regionConfig/config.ts -var REGION_ENV_NAME = "AWS_REGION"; -var REGION_INI_NAME = "region"; -var NODE_REGION_CONFIG_OPTIONS = { - environmentVariableSelector: (env) => env[REGION_ENV_NAME], - configFileSelector: (profile) => profile[REGION_INI_NAME], - default: () => { - throw new Error("Region is missing"); - } -}; -var NODE_REGION_CONFIG_FILE_OPTIONS = { - preferredFile: "credentials" -}; - -// src/regionConfig/isFipsRegion.ts -var isFipsRegion = /* @__PURE__ */ __name((region) => typeof region === "string" && (region.startsWith("fips-") || region.endsWith("-fips")), "isFipsRegion"); - -// src/regionConfig/getRealRegion.ts -var getRealRegion = /* @__PURE__ */ __name((region) => isFipsRegion(region) ? ["fips-aws-global", "aws-fips"].includes(region) ? "us-east-1" : region.replace(/fips-(dkr-|prod-)?|-fips/, "") : region, "getRealRegion"); - -// src/regionConfig/resolveRegionConfig.ts -var resolveRegionConfig = /* @__PURE__ */ __name((input) => { - const { region, useFipsEndpoint } = input; - if (!region) { - throw new Error("Region is missing"); - } - return Object.assign(input, { - region: async () => { - if (typeof region === "string") { - return getRealRegion(region); - } - const providedRegion = await region(); - return getRealRegion(providedRegion); + /***/ }, - useFipsEndpoint: async () => { - const providedRegion = typeof region === "string" ? region : await region(); - if (isFipsRegion(providedRegion)) { - return true; - } - return typeof useFipsEndpoint !== "function" ? Promise.resolve(!!useFipsEndpoint) : useFipsEndpoint(); - } - }); -}, "resolveRegionConfig"); - -// src/regionInfo/getHostnameFromVariants.ts -var getHostnameFromVariants = /* @__PURE__ */ __name((variants = [], { useFipsEndpoint, useDualstackEndpoint }) => variants.find( - ({ tags }) => useFipsEndpoint === tags.includes("fips") && useDualstackEndpoint === tags.includes("dualstack") -)?.hostname, "getHostnameFromVariants"); - -// src/regionInfo/getResolvedHostname.ts -var getResolvedHostname = /* @__PURE__ */ __name((resolvedRegion, { regionHostname, partitionHostname }) => regionHostname ? regionHostname : partitionHostname ? partitionHostname.replace("{region}", resolvedRegion) : void 0, "getResolvedHostname"); - -// src/regionInfo/getResolvedPartition.ts -var getResolvedPartition = /* @__PURE__ */ __name((region, { partitionHash }) => Object.keys(partitionHash || {}).find((key) => partitionHash[key].regions.includes(region)) ?? "aws", "getResolvedPartition"); - -// src/regionInfo/getResolvedSigningRegion.ts -var getResolvedSigningRegion = /* @__PURE__ */ __name((hostname, { signingRegion, regionRegex, useFipsEndpoint }) => { - if (signingRegion) { - return signingRegion; - } else if (useFipsEndpoint) { - const regionRegexJs = regionRegex.replace("\\\\", "\\").replace(/^\^/g, "\\.").replace(/\$$/g, "\\."); - const regionRegexmatchArray = hostname.match(regionRegexJs); - if (regionRegexmatchArray) { - return regionRegexmatchArray[0].slice(1, -1); - } - } -}, "getResolvedSigningRegion"); - -// src/regionInfo/getRegionInfo.ts -var getRegionInfo = /* @__PURE__ */ __name((region, { - useFipsEndpoint = false, - useDualstackEndpoint = false, - signingService, - regionHash, - partitionHash -}) => { - const partition = getResolvedPartition(region, { partitionHash }); - const resolvedRegion = region in regionHash ? region : partitionHash[partition]?.endpoint ?? region; - const hostnameOptions = { useFipsEndpoint, useDualstackEndpoint }; - const regionHostname = getHostnameFromVariants(regionHash[resolvedRegion]?.variants, hostnameOptions); - const partitionHostname = getHostnameFromVariants(partitionHash[partition]?.variants, hostnameOptions); - const hostname = getResolvedHostname(resolvedRegion, { regionHostname, partitionHostname }); - if (hostname === void 0) { - throw new Error(`Endpoint resolution failed for: ${{ resolvedRegion, useFipsEndpoint, useDualstackEndpoint }}`); - } - const signingRegion = getResolvedSigningRegion(hostname, { - signingRegion: regionHash[resolvedRegion]?.signingRegion, - regionRegex: partitionHash[partition].regionRegex, - useFipsEndpoint - }); - return { - partition, - signingService, - hostname, - ...signingRegion && { signingRegion }, - ...regionHash[resolvedRegion]?.signingService && { - signingService: regionHash[resolvedRegion].signingService - } - }; -}, "getRegionInfo"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - + /***/ 27862: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/submodules/httpAuthSchemes/index.ts + var httpAuthSchemes_exports = {} + __export(httpAuthSchemes_exports, { + AWSSDKSigV4Signer: () => AWSSDKSigV4Signer, + AwsSdkSigV4ASigner: () => AwsSdkSigV4ASigner, + AwsSdkSigV4Signer: () => AwsSdkSigV4Signer, + NODE_SIGV4A_CONFIG_OPTIONS: () => NODE_SIGV4A_CONFIG_OPTIONS, + resolveAWSSDKSigV4Config: () => resolveAWSSDKSigV4Config, + resolveAwsSdkSigV4AConfig: () => resolveAwsSdkSigV4AConfig, + resolveAwsSdkSigV4Config: () => resolveAwsSdkSigV4Config, + validateSigningProperties: () => validateSigningProperties + }) + module.exports = __toCommonJS(httpAuthSchemes_exports) + + // src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts + var import_protocol_http2 = __nccwpck_require__(64418) + + // src/submodules/httpAuthSchemes/utils/getDateHeader.ts + var import_protocol_http = __nccwpck_require__(64418) + var getDateHeader = /* @__PURE__ */ __name(response => { + var _a, _b + 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 + }, 'getDateHeader') + + // src/submodules/httpAuthSchemes/utils/getSkewCorrectedDate.ts + var getSkewCorrectedDate = /* @__PURE__ */ __name( + systemClockOffset => new Date(Date.now() + systemClockOffset), + 'getSkewCorrectedDate' + ) -/***/ }), + // src/submodules/httpAuthSchemes/utils/isClockSkewed.ts + var isClockSkewed = /* @__PURE__ */ __name( + (clockTime, systemClockOffset) => + Math.abs( + getSkewCorrectedDate(systemClockOffset).getTime() - clockTime + ) >= 3e5, + 'isClockSkewed' + ) -/***/ 27588: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + // src/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.ts + var getUpdatedSystemClockOffset = /* @__PURE__ */ __name( + (clockTime, currentSystemClockOffset) => { + const clockTimeInMs = Date.parse(clockTime) + if (isClockSkewed(clockTimeInMs, currentSystemClockOffset)) { + return clockTimeInMs - Date.now() + } + return currentSystemClockOffset + }, + 'getUpdatedSystemClockOffset' + ) -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - DefaultIdentityProviderConfig: () => DefaultIdentityProviderConfig, - EXPIRATION_MS: () => EXPIRATION_MS, - HttpApiKeyAuthSigner: () => HttpApiKeyAuthSigner, - HttpBearerAuthSigner: () => HttpBearerAuthSigner, - NoAuthSigner: () => NoAuthSigner, - createIsIdentityExpiredFunction: () => createIsIdentityExpiredFunction, - createPaginator: () => createPaginator, - doesIdentityRequireRefresh: () => doesIdentityRequireRefresh, - getHttpAuthSchemeEndpointRuleSetPlugin: () => getHttpAuthSchemeEndpointRuleSetPlugin, - getHttpAuthSchemePlugin: () => getHttpAuthSchemePlugin, - getHttpSigningPlugin: () => getHttpSigningPlugin, - getSmithyContext: () => getSmithyContext, - httpAuthSchemeEndpointRuleSetMiddlewareOptions: () => httpAuthSchemeEndpointRuleSetMiddlewareOptions, - httpAuthSchemeMiddleware: () => httpAuthSchemeMiddleware, - httpAuthSchemeMiddlewareOptions: () => httpAuthSchemeMiddlewareOptions, - httpSigningMiddleware: () => httpSigningMiddleware, - httpSigningMiddlewareOptions: () => httpSigningMiddlewareOptions, - isIdentityExpired: () => isIdentityExpired, - memoizeIdentityProvider: () => memoizeIdentityProvider, - normalizeProvider: () => normalizeProvider, - requestBuilder: () => import_protocols.requestBuilder, - setFeature: () => setFeature -}); -module.exports = __toCommonJS(src_exports); - -// src/getSmithyContext.ts -var import_types = __nccwpck_require__(63443); -var getSmithyContext = /* @__PURE__ */ __name((context) => context[import_types.SMITHY_CONTEXT_KEY] || (context[import_types.SMITHY_CONTEXT_KEY] = {}), "getSmithyContext"); - -// src/middleware-http-auth-scheme/httpAuthSchemeMiddleware.ts -var import_util_middleware = __nccwpck_require__(69474); -function convertHttpAuthSchemesToMap(httpAuthSchemes) { - const map = /* @__PURE__ */ new Map(); - for (const scheme of httpAuthSchemes) { - map.set(scheme.schemeId, scheme); - } - return map; -} -__name(convertHttpAuthSchemesToMap, "convertHttpAuthSchemesToMap"); -var httpAuthSchemeMiddleware = /* @__PURE__ */ __name((config, mwOptions) => (next, context) => async (args) => { - const options = config.httpAuthSchemeProvider( - await mwOptions.httpAuthSchemeParametersProvider(config, context, args.input) - ); - const authSchemes = convertHttpAuthSchemesToMap(config.httpAuthSchemes); - const smithyContext = (0, import_util_middleware.getSmithyContext)(context); - const failureReasons = []; - for (const option of options) { - const scheme = authSchemes.get(option.schemeId); - if (!scheme) { - failureReasons.push(`HttpAuthScheme \`${option.schemeId}\` was not enabled for this service.`); - continue; - } - const identityProvider = scheme.identityProvider(await mwOptions.identityProviderConfigProvider(config)); - if (!identityProvider) { - failureReasons.push(`HttpAuthScheme \`${option.schemeId}\` did not have an IdentityProvider configured.`); - continue; - } - const { identityProperties = {}, signingProperties = {} } = option.propertiesExtractor?.(config, context) || {}; - option.identityProperties = Object.assign(option.identityProperties || {}, identityProperties); - option.signingProperties = Object.assign(option.signingProperties || {}, signingProperties); - smithyContext.selectedHttpAuthScheme = { - httpAuthOption: option, - identity: await identityProvider(option.identityProperties), - signer: scheme.signer - }; - break; - } - if (!smithyContext.selectedHttpAuthScheme) { - throw new Error(failureReasons.join("\n")); - } - return next(args); -}, "httpAuthSchemeMiddleware"); - -// src/middleware-http-auth-scheme/getHttpAuthSchemeEndpointRuleSetPlugin.ts -var httpAuthSchemeEndpointRuleSetMiddlewareOptions = { - step: "serialize", - tags: ["HTTP_AUTH_SCHEME"], - name: "httpAuthSchemeMiddleware", - override: true, - relation: "before", - toMiddleware: "endpointV2Middleware" -}; -var getHttpAuthSchemeEndpointRuleSetPlugin = /* @__PURE__ */ __name((config, { - httpAuthSchemeParametersProvider, - identityProviderConfigProvider -}) => ({ - applyToStack: (clientStack) => { - clientStack.addRelativeTo( - httpAuthSchemeMiddleware(config, { - httpAuthSchemeParametersProvider, - identityProviderConfigProvider - }), - httpAuthSchemeEndpointRuleSetMiddlewareOptions - ); - } -}), "getHttpAuthSchemeEndpointRuleSetPlugin"); - -// src/middleware-http-auth-scheme/getHttpAuthSchemePlugin.ts -var import_middleware_serde = __nccwpck_require__(88037); -var httpAuthSchemeMiddlewareOptions = { - step: "serialize", - tags: ["HTTP_AUTH_SCHEME"], - name: "httpAuthSchemeMiddleware", - override: true, - relation: "before", - toMiddleware: import_middleware_serde.serializerMiddlewareOption.name -}; -var getHttpAuthSchemePlugin = /* @__PURE__ */ __name((config, { - httpAuthSchemeParametersProvider, - identityProviderConfigProvider -}) => ({ - applyToStack: (clientStack) => { - clientStack.addRelativeTo( - httpAuthSchemeMiddleware(config, { - httpAuthSchemeParametersProvider, - identityProviderConfigProvider - }), - httpAuthSchemeMiddlewareOptions - ); - } -}), "getHttpAuthSchemePlugin"); - -// src/middleware-http-signing/httpSigningMiddleware.ts -var import_protocol_http = __nccwpck_require__(31788); - -var defaultErrorHandler = /* @__PURE__ */ __name((signingProperties) => (error) => { - throw error; -}, "defaultErrorHandler"); -var defaultSuccessHandler = /* @__PURE__ */ __name((httpResponse, signingProperties) => { -}, "defaultSuccessHandler"); -var httpSigningMiddleware = /* @__PURE__ */ __name((config) => (next, context) => async (args) => { - if (!import_protocol_http.HttpRequest.isInstance(args.request)) { - return next(args); - } - const smithyContext = (0, import_util_middleware.getSmithyContext)(context); - const scheme = smithyContext.selectedHttpAuthScheme; - if (!scheme) { - throw new Error(`No HttpAuthScheme was selected: unable to sign request`); - } - const { - httpAuthOption: { signingProperties = {} }, - identity, - signer - } = scheme; - const output = await next({ - ...args, - request: await signer.sign(args.request, identity, signingProperties) - }).catch((signer.errorHandler || defaultErrorHandler)(signingProperties)); - (signer.successHandler || defaultSuccessHandler)(output.response, signingProperties); - return output; -}, "httpSigningMiddleware"); - -// src/middleware-http-signing/getHttpSigningMiddleware.ts -var httpSigningMiddlewareOptions = { - step: "finalizeRequest", - tags: ["HTTP_SIGNING"], - name: "httpSigningMiddleware", - aliases: ["apiKeyMiddleware", "tokenMiddleware", "awsAuthMiddleware"], - override: true, - relation: "after", - toMiddleware: "retryMiddleware" -}; -var getHttpSigningPlugin = /* @__PURE__ */ __name((config) => ({ - applyToStack: (clientStack) => { - clientStack.addRelativeTo(httpSigningMiddleware(config), httpSigningMiddlewareOptions); - } -}), "getHttpSigningPlugin"); - -// src/normalizeProvider.ts -var normalizeProvider = /* @__PURE__ */ __name((input) => { - if (typeof input === "function") - return input; - const promisified = Promise.resolve(input); - return () => promisified; -}, "normalizeProvider"); - -// src/pagination/createPaginator.ts -var makePagedClientRequest = /* @__PURE__ */ __name(async (CommandCtor, client, input, withCommand = (_) => _, ...args) => { - let command = new CommandCtor(input); - command = withCommand(command) ?? command; - return await client.send(command, ...args); -}, "makePagedClientRequest"); -function createPaginator(ClientCtor, CommandCtor, inputTokenName, outputTokenName, pageSizeTokenName) { - return /* @__PURE__ */ __name(async function* paginateOperation(config, input, ...additionalArguments) { - const _input = input; - let token = config.startingToken ?? _input[inputTokenName]; - let hasNext = true; - let page; - while (hasNext) { - _input[inputTokenName] = token; - if (pageSizeTokenName) { - _input[pageSizeTokenName] = _input[pageSizeTokenName] ?? config.pageSize; - } - if (config.client instanceof ClientCtor) { - page = await makePagedClientRequest( - CommandCtor, - config.client, - input, - config.withCommand, - ...additionalArguments - ); - } else { - throw new Error(`Invalid client, expected instance of ${ClientCtor.name}`); - } - yield page; - const prevToken = token; - token = get(page, outputTokenName); - hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken)); - } - return void 0; - }, "paginateOperation"); -} -__name(createPaginator, "createPaginator"); -var get = /* @__PURE__ */ __name((fromObject, path) => { - let cursor = fromObject; - const pathComponents = path.split("."); - for (const step of pathComponents) { - if (!cursor || typeof cursor !== "object") { - return void 0; - } - cursor = cursor[step]; - } - return cursor; -}, "get"); - -// src/protocols/requestBuilder.ts -var import_protocols = __nccwpck_require__(56952); - -// src/setFeature.ts -function setFeature(context, feature, value) { - if (!context.__smithy_context) { - context.__smithy_context = { - features: {} - }; - } else if (!context.__smithy_context.features) { - context.__smithy_context.features = {}; - } - context.__smithy_context.features[feature] = value; -} -__name(setFeature, "setFeature"); - -// src/util-identity-and-auth/DefaultIdentityProviderConfig.ts -var DefaultIdentityProviderConfig = class { - /** - * Creates an IdentityProviderConfig with a record of scheme IDs to identity providers. - * - * @param config scheme IDs and identity providers to configure - */ - constructor(config) { - this.authSchemes = /* @__PURE__ */ new Map(); - for (const [key, value] of Object.entries(config)) { - if (value !== void 0) { - this.authSchemes.set(key, value); + // src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts + var throwSigningPropertyError = /* @__PURE__ */ __name( + (name, property) => { + if (!property) { + throw new Error( + `Property \`${name}\` is not resolved for AWS SDK SigV4Auth` + ) + } + return property + }, + 'throwSigningPropertyError' + ) + var validateSigningProperties = /* @__PURE__ */ __name( + async signingProperties => { + var _a, _b, _c + const context = throwSigningPropertyError( + 'context', + signingProperties.context + ) + const config = throwSigningPropertyError( + 'config', + signingProperties.config + ) + const authScheme = + (_c = + (_b = + (_a = context.endpointV2) == null ? void 0 : _a.properties) == + null + ? void 0 + : _b.authSchemes) == null + ? void 0 + : _c[0] + const signerFunction = throwSigningPropertyError( + 'signer', + config.signer + ) + const signer = await signerFunction(authScheme) + const signingRegion = + signingProperties == null ? void 0 : signingProperties.signingRegion + const signingRegionSet = + signingProperties == null + ? void 0 + : signingProperties.signingRegionSet + const signingName = + signingProperties == null ? void 0 : signingProperties.signingName + return { + config, + signer, + signingRegion, + signingRegionSet, + signingName + } + }, + 'validateSigningProperties' + ) + var _AwsSdkSigV4Signer = class _AwsSdkSigV4Signer { + async sign(httpRequest, identity, signingProperties) { + var _a + if (!import_protocol_http2.HttpRequest.isInstance(httpRequest)) { + throw new Error( + 'The request is not an instance of `HttpRequest` and cannot be signed' + ) + } + const validatedProps = + await validateSigningProperties(signingProperties) + const { config, signer } = validatedProps + let { signingRegion, signingName } = validatedProps + const handlerExecutionContext = signingProperties.context + if ( + ((_a = + handlerExecutionContext == null + ? void 0 + : handlerExecutionContext.authSchemes) == null + ? void 0 + : _a.length) ?? + 0 > 1 + ) { + const [first, second] = handlerExecutionContext.authSchemes + if ( + (first == null ? void 0 : first.name) === 'sigv4a' && + (second == null ? void 0 : second.name) === 'sigv4' + ) { + signingRegion = + (second == null ? void 0 : second.signingRegion) ?? + signingRegion + signingName = + (second == null ? void 0 : second.signingName) ?? signingName + } + } + const signedRequest = await signer.sign(httpRequest, { + signingDate: getSkewCorrectedDate(config.systemClockOffset), + signingRegion, + signingService: signingName + }) + return signedRequest + } + errorHandler(signingProperties) { + return error => { + const serverTime = + error.ServerTime ?? getDateHeader(error.$response) + if (serverTime) { + const config = throwSigningPropertyError( + 'config', + signingProperties.config + ) + const initialSystemClockOffset = config.systemClockOffset + config.systemClockOffset = getUpdatedSystemClockOffset( + serverTime, + config.systemClockOffset + ) + const clockSkewCorrected = + config.systemClockOffset !== initialSystemClockOffset + if (clockSkewCorrected && error.$metadata) { + error.$metadata.clockSkewCorrected = true + } + } + throw error + } + } + successHandler(httpResponse, signingProperties) { + const dateHeader = getDateHeader(httpResponse) + if (dateHeader) { + const config = throwSigningPropertyError( + 'config', + signingProperties.config + ) + config.systemClockOffset = getUpdatedSystemClockOffset( + dateHeader, + config.systemClockOffset + ) + } + } } - } - } - static { - __name(this, "DefaultIdentityProviderConfig"); - } - getIdentityProvider(schemeId) { - return this.authSchemes.get(schemeId); - } -}; - -// src/util-identity-and-auth/httpAuthSchemes/httpApiKeyAuth.ts - - -var HttpApiKeyAuthSigner = class { - static { - __name(this, "HttpApiKeyAuthSigner"); - } - async sign(httpRequest, identity, signingProperties) { - if (!signingProperties) { - throw new Error( - "request could not be signed with `apiKey` since the `name` and `in` signer properties are missing" - ); - } - if (!signingProperties.name) { - throw new Error("request could not be signed with `apiKey` since the `name` signer property is missing"); - } - if (!signingProperties.in) { - throw new Error("request could not be signed with `apiKey` since the `in` signer property is missing"); - } - if (!identity.apiKey) { - throw new Error("request could not be signed with `apiKey` since the `apiKey` is not defined"); - } - const clonedRequest = import_protocol_http.HttpRequest.clone(httpRequest); - if (signingProperties.in === import_types.HttpApiKeyAuthLocation.QUERY) { - clonedRequest.query[signingProperties.name] = identity.apiKey; - } else if (signingProperties.in === import_types.HttpApiKeyAuthLocation.HEADER) { - clonedRequest.headers[signingProperties.name] = signingProperties.scheme ? `${signingProperties.scheme} ${identity.apiKey}` : identity.apiKey; - } else { - throw new Error( - "request can only be signed with `apiKey` locations `query` or `header`, but found: `" + signingProperties.in + "`" - ); - } - return clonedRequest; - } -}; + __name(_AwsSdkSigV4Signer, 'AwsSdkSigV4Signer') + var AwsSdkSigV4Signer = _AwsSdkSigV4Signer + var AWSSDKSigV4Signer = AwsSdkSigV4Signer -// src/util-identity-and-auth/httpAuthSchemes/httpBearerAuth.ts + // src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.ts + var import_protocol_http3 = __nccwpck_require__(64418) + var _AwsSdkSigV4ASigner = class _AwsSdkSigV4ASigner extends AwsSdkSigV4Signer { + async sign(httpRequest, identity, signingProperties) { + var _a + if (!import_protocol_http3.HttpRequest.isInstance(httpRequest)) { + throw new Error( + 'The request is not an instance of `HttpRequest` and cannot be signed' + ) + } + const { + config, + signer, + signingRegion, + signingRegionSet, + signingName + } = await validateSigningProperties(signingProperties) + const configResolvedSigningRegionSet = await ((_a = + config.sigv4aSigningRegionSet) == null + ? void 0 + : _a.call(config)) + const multiRegionOverride = ( + configResolvedSigningRegionSet ?? + signingRegionSet ?? [signingRegion] + ).join(',') + const signedRequest = await signer.sign(httpRequest, { + signingDate: getSkewCorrectedDate(config.systemClockOffset), + signingRegion: multiRegionOverride, + signingService: signingName + }) + return signedRequest + } + } + __name(_AwsSdkSigV4ASigner, 'AwsSdkSigV4ASigner') + var AwsSdkSigV4ASigner = _AwsSdkSigV4ASigner -var HttpBearerAuthSigner = class { - static { - __name(this, "HttpBearerAuthSigner"); - } - async sign(httpRequest, identity, signingProperties) { - const clonedRequest = import_protocol_http.HttpRequest.clone(httpRequest); - if (!identity.token) { - throw new Error("request could not be signed with `token` since the `token` is not defined"); - } - clonedRequest.headers["Authorization"] = `Bearer ${identity.token}`; - return clonedRequest; - } -}; + // src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4AConfig.ts + var import_core = __nccwpck_require__(55829) + var import_property_provider = __nccwpck_require__(79721) + var resolveAwsSdkSigV4AConfig = /* @__PURE__ */ __name(config => { + config.sigv4aSigningRegionSet = (0, import_core.normalizeProvider)( + config.sigv4aSigningRegionSet + ) + return config + }, 'resolveAwsSdkSigV4AConfig') + var NODE_SIGV4A_CONFIG_OPTIONS = { + environmentVariableSelector(env) { + if (env.AWS_SIGV4A_SIGNING_REGION_SET) { + return env.AWS_SIGV4A_SIGNING_REGION_SET.split(',').map(_ => + _.trim() + ) + } + throw new import_property_provider.ProviderError( + 'AWS_SIGV4A_SIGNING_REGION_SET not set in env.', + { + tryNextLink: true + } + ) + }, + configFileSelector(profile) { + if (profile.sigv4a_signing_region_set) { + return (profile.sigv4a_signing_region_set ?? '') + .split(',') + .map(_ => _.trim()) + } + throw new import_property_provider.ProviderError( + 'sigv4a_signing_region_set not set in profile.', + { + tryNextLink: true + } + ) + }, + default: void 0 + } + + // src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.ts + var import_core2 = __nccwpck_require__(55829) + var import_signature_v4 = __nccwpck_require__(11528) + var resolveAwsSdkSigV4Config = /* @__PURE__ */ __name(config => { + let normalizedCreds + if (config.credentials) { + normalizedCreds = (0, import_core2.memoizeIdentityProvider)( + config.credentials, + import_core2.isIdentityExpired, + import_core2.doesIdentityRequireRefresh + ) + } + if (!normalizedCreds) { + if (config.credentialDefaultProvider) { + normalizedCreds = (0, import_core2.normalizeProvider)( + config.credentialDefaultProvider( + Object.assign({}, config, { + parentClientConfig: config + }) + ) + ) + } else { + normalizedCreds = /* @__PURE__ */ __name(async () => { + throw new Error('`credentials` is missing') + }, 'normalizedCreds') + } + } + const { + // Default for signingEscapePath + signingEscapePath = true, + // Default for systemClockOffset + systemClockOffset = config.systemClockOffset || 0, + // No default for sha256 since it is platform dependent + sha256 + } = config + let signer + if (config.signer) { + signer = (0, import_core2.normalizeProvider)(config.signer) + } else if (config.regionInfoProvider) { + signer = /* @__PURE__ */ __name( + () => + (0, import_core2.normalizeProvider)(config.region)() + .then(async region => [ + (await config.regionInfoProvider(region, { + useFipsEndpoint: await config.useFipsEndpoint(), + useDualstackEndpoint: await config.useDualstackEndpoint() + })) || {}, + region + ]) + .then(([regionInfo, region]) => { + const { signingRegion, signingService } = regionInfo + config.signingRegion = + config.signingRegion || signingRegion || region + config.signingName = + config.signingName || signingService || config.serviceId + const params = { + ...config, + credentials: normalizedCreds, + region: config.signingRegion, + service: config.signingName, + sha256, + uriEscapePath: signingEscapePath + } + const SignerCtor = + config.signerConstructor || import_signature_v4.SignatureV4 + return new SignerCtor(params) + }), + 'signer' + ) + } else { + signer = /* @__PURE__ */ __name(async authScheme => { + authScheme = Object.assign( + {}, + { + name: 'sigv4', + signingName: config.signingName || config.defaultSigningName, + signingRegion: await (0, import_core2.normalizeProvider)( + config.region + )(), + properties: {} + }, + authScheme + ) + const signingRegion = authScheme.signingRegion + const signingService = authScheme.signingName + config.signingRegion = config.signingRegion || signingRegion + config.signingName = + config.signingName || signingService || config.serviceId + const params = { + ...config, + credentials: normalizedCreds, + region: config.signingRegion, + service: config.signingName, + sha256, + uriEscapePath: signingEscapePath + } + const SignerCtor = + config.signerConstructor || import_signature_v4.SignatureV4 + return new SignerCtor(params) + }, 'signer') + } + return { + ...config, + systemClockOffset, + signingEscapePath, + credentials: normalizedCreds, + signer + } + }, 'resolveAwsSdkSigV4Config') + var resolveAWSSDKSigV4Config = resolveAwsSdkSigV4Config + // Annotate the CommonJS export names for ESM import in node: + 0 && 0 + + /***/ + }, -// src/util-identity-and-auth/httpAuthSchemes/noAuth.ts -var NoAuthSigner = class { - static { - __name(this, "NoAuthSigner"); - } - async sign(httpRequest, identity, signingProperties) { - return httpRequest; - } -}; - -// src/util-identity-and-auth/memoizeIdentityProvider.ts -var createIsIdentityExpiredFunction = /* @__PURE__ */ __name((expirationMs) => (identity) => doesIdentityRequireRefresh(identity) && identity.expiration.getTime() - Date.now() < expirationMs, "createIsIdentityExpiredFunction"); -var EXPIRATION_MS = 3e5; -var isIdentityExpired = createIsIdentityExpiredFunction(EXPIRATION_MS); -var doesIdentityRequireRefresh = /* @__PURE__ */ __name((identity) => identity.expiration !== void 0, "doesIdentityRequireRefresh"); -var memoizeIdentityProvider = /* @__PURE__ */ __name((provider, isExpired, requiresRefresh) => { - if (provider === void 0) { - return void 0; - } - const normalizedProvider = typeof provider !== "function" ? async () => Promise.resolve(provider) : provider; - let resolved; - let pending; - let hasResult; - let isConstant = false; - const coalesceProvider = /* @__PURE__ */ __name(async (options) => { - if (!pending) { - pending = normalizedProvider(options); - } - try { - resolved = await pending; - hasResult = true; - isConstant = false; - } finally { - pending = void 0; - } - return resolved; - }, "coalesceProvider"); - if (isExpired === void 0) { - return async (options) => { - if (!hasResult || options?.forceRefresh) { - resolved = await coalesceProvider(options); - } - return resolved; - }; - } - return async (options) => { - if (!hasResult || options?.forceRefresh) { - resolved = await coalesceProvider(options); - } - if (isConstant) { - return resolved; - } - if (!requiresRefresh(resolved)) { - isConstant = true; - return resolved; - } - if (isExpired(resolved)) { - await coalesceProvider(options); - return resolved; - } - return resolved; - }; -}, "memoizeIdentityProvider"); -// Annotate the CommonJS export names for ESM import in node: + /***/ 50785: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/submodules/protocols/index.ts + var protocols_exports = {} + __export(protocols_exports, { + _toBool: () => _toBool, + _toNum: () => _toNum, + _toStr: () => _toStr, + awsExpectUnion: () => awsExpectUnion, + loadRestJsonErrorCode: () => loadRestJsonErrorCode, + loadRestXmlErrorCode: () => loadRestXmlErrorCode, + parseJsonBody: () => parseJsonBody, + parseJsonErrorBody: () => parseJsonErrorBody, + parseXmlBody: () => parseXmlBody, + parseXmlErrorBody: () => parseXmlErrorBody + }) + module.exports = __toCommonJS(protocols_exports) -0 && (0); + // src/submodules/protocols/coercing-serializers.ts + var _toStr = /* @__PURE__ */ __name(val => { + if (val == null) { + return val + } + if (typeof val === 'number' || typeof val === 'bigint') { + const warning = new Error( + `Received number ${val} where a string was expected.` + ) + warning.name = 'Warning' + console.warn(warning) + return String(val) + } + if (typeof val === 'boolean') { + const warning = new Error( + `Received boolean ${val} where a string was expected.` + ) + warning.name = 'Warning' + console.warn(warning) + return String(val) + } + return val + }, '_toStr') + var _toBool = /* @__PURE__ */ __name(val => { + if (val == null) { + return val + } + if (typeof val === 'number') { + } + if (typeof val === 'string') { + const lowercase = val.toLowerCase() + if (val !== '' && lowercase !== 'false' && lowercase !== 'true') { + const warning = new Error( + `Received string "${val}" where a boolean was expected.` + ) + warning.name = 'Warning' + console.warn(warning) + } + return val !== '' && lowercase !== 'false' + } + return val + }, '_toBool') + var _toNum = /* @__PURE__ */ __name(val => { + if (val == null) { + return val + } + if (typeof val === 'boolean') { + } + if (typeof val === 'string') { + const num = Number(val) + if (num.toString() !== val) { + const warning = new Error( + `Received string "${val}" where a number was expected.` + ) + warning.name = 'Warning' + console.warn(warning) + return val + } + return num + } + return val + }, '_toNum') + + // src/submodules/protocols/json/awsExpectUnion.ts + var import_smithy_client = __nccwpck_require__(63570) + var awsExpectUnion = /* @__PURE__ */ __name(value => { + if (value == null) { + return void 0 + } + if (typeof value === 'object' && '__type' in value) { + delete value.__type + } + return (0, import_smithy_client.expectUnion)(value) + }, 'awsExpectUnion') + + // src/submodules/protocols/common.ts + var import_smithy_client2 = __nccwpck_require__(63570) + var collectBodyString = /* @__PURE__ */ __name( + (streamBody, context) => + (0, import_smithy_client2.collectBody)(streamBody, context).then( + body => context.utf8Encoder(body) + ), + 'collectBodyString' + ) + // src/submodules/protocols/json/parseJsonBody.ts + var parseJsonBody = /* @__PURE__ */ __name( + (streamBody, context) => + collectBodyString(streamBody, context).then(encoded => { + if (encoded.length) { + try { + return JSON.parse(encoded) + } catch (e) { + if ((e == null ? void 0 : e.name) === 'SyntaxError') { + Object.defineProperty(e, '$responseBodyText', { + value: encoded + }) + } + throw e + } + } + return {} + }), + 'parseJsonBody' + ) + var parseJsonErrorBody = /* @__PURE__ */ __name( + async (errorBody, context) => { + const value = await parseJsonBody(errorBody, context) + value.message = value.message ?? value.Message + return value + }, + 'parseJsonErrorBody' + ) + var loadRestJsonErrorCode = /* @__PURE__ */ __name((output, data) => { + const findKey = /* @__PURE__ */ __name( + (object, key) => + Object.keys(object).find( + k => k.toLowerCase() === key.toLowerCase() + ), + 'findKey' + ) + const sanitizeErrorCode = /* @__PURE__ */ __name(rawValue => { + let cleanValue = rawValue + if (typeof cleanValue === 'number') { + cleanValue = cleanValue.toString() + } + if (cleanValue.indexOf(',') >= 0) { + cleanValue = cleanValue.split(',')[0] + } + if (cleanValue.indexOf(':') >= 0) { + cleanValue = cleanValue.split(':')[0] + } + if (cleanValue.indexOf('#') >= 0) { + cleanValue = cleanValue.split('#')[1] + } + return cleanValue + }, 'sanitizeErrorCode') + const headerKey = findKey(output.headers, 'x-amzn-errortype') + if (headerKey !== void 0) { + return sanitizeErrorCode(output.headers[headerKey]) + } + if (data.code !== void 0) { + return sanitizeErrorCode(data.code) + } + if (data['__type'] !== void 0) { + return sanitizeErrorCode(data['__type']) + } + }, 'loadRestJsonErrorCode') + + // src/submodules/protocols/xml/parseXmlBody.ts + var import_smithy_client3 = __nccwpck_require__(63570) + var import_fast_xml_parser = __nccwpck_require__(12603) + var parseXmlBody = /* @__PURE__ */ __name( + (streamBody, context) => + collectBodyString(streamBody, context).then(encoded => { + if (encoded.length) { + const parser = new import_fast_xml_parser.XMLParser({ + attributeNamePrefix: '', + htmlEntities: true, + ignoreAttributes: false, + ignoreDeclaration: true, + parseTagValue: false, + trimValues: false, + tagValueProcessor: (_, val) => + val.trim() === '' && val.includes('\n') ? '' : void 0 + }) + parser.addEntity('#xD', '\r') + parser.addEntity('#10', '\n') + let parsedObj + try { + parsedObj = parser.parse(encoded, true) + } catch (e) { + if (e && typeof e === 'object') { + Object.defineProperty(e, '$responseBodyText', { + value: encoded + }) + } + throw e + } + const textNodeName = '#text' + const key = Object.keys(parsedObj)[0] + const parsedObjToReturn = parsedObj[key] + if (parsedObjToReturn[textNodeName]) { + parsedObjToReturn[key] = parsedObjToReturn[textNodeName] + delete parsedObjToReturn[textNodeName] + } + return (0, import_smithy_client3.getValueFromTextNode)( + parsedObjToReturn + ) + } + return {} + }), + 'parseXmlBody' + ) + var parseXmlErrorBody = /* @__PURE__ */ __name( + async (errorBody, context) => { + const value = await parseXmlBody(errorBody, context) + if (value.Error) { + value.Error.message = value.Error.message ?? value.Error.Message + } + return value + }, + 'parseXmlErrorBody' + ) + var loadRestXmlErrorCode = /* @__PURE__ */ __name((output, data) => { + var _a + if ( + ((_a = data == null ? void 0 : data.Error) == null + ? void 0 + : _a.Code) !== void 0 + ) { + return data.Error.Code + } + if ((data == null ? void 0 : data.Code) !== void 0) { + return data.Code + } + if (output.statusCode == 404) { + return 'NotFound' + } + }, 'loadRestXmlErrorCode') + // Annotate the CommonJS export names for ESM import in node: + 0 && 0 + /***/ + }, -/***/ }), + /***/ 15972: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + ENV_ACCOUNT_ID: () => ENV_ACCOUNT_ID, + ENV_CREDENTIAL_SCOPE: () => ENV_CREDENTIAL_SCOPE, + ENV_EXPIRATION: () => ENV_EXPIRATION, + ENV_KEY: () => ENV_KEY, + ENV_SECRET: () => ENV_SECRET, + ENV_SESSION: () => ENV_SESSION, + fromEnv: () => fromEnv + }) + module.exports = __toCommonJS(src_exports) + + // src/fromEnv.ts + var import_property_provider = __nccwpck_require__(79721) + var ENV_KEY = 'AWS_ACCESS_KEY_ID' + var ENV_SECRET = 'AWS_SECRET_ACCESS_KEY' + var ENV_SESSION = 'AWS_SESSION_TOKEN' + var ENV_EXPIRATION = 'AWS_CREDENTIAL_EXPIRATION' + var ENV_CREDENTIAL_SCOPE = 'AWS_CREDENTIAL_SCOPE' + var ENV_ACCOUNT_ID = 'AWS_ACCOUNT_ID' + var fromEnv = /* @__PURE__ */ __name( + init => async () => { + var _a + ;(_a = init == null ? void 0 : init.logger) == null + ? void 0 + : _a.debug('@aws-sdk/credential-provider-env - fromEnv') + const accessKeyId = process.env[ENV_KEY] + const secretAccessKey = process.env[ENV_SECRET] + const sessionToken = process.env[ENV_SESSION] + const expiry = process.env[ENV_EXPIRATION] + const credentialScope = process.env[ENV_CREDENTIAL_SCOPE] + const accountId = process.env[ENV_ACCOUNT_ID] + if (accessKeyId && secretAccessKey) { + return { + accessKeyId, + secretAccessKey, + ...(sessionToken && { sessionToken }), + ...(expiry && { expiration: new Date(expiry) }), + ...(credentialScope && { credentialScope }), + ...(accountId && { accountId }) + } + } + throw new import_property_provider.CredentialsProviderError( + 'Unable to find environment variable credentials.', + { logger: init == null ? void 0 : init.logger } + ) + }, + 'fromEnv' + ) + // Annotate the CommonJS export names for ESM import in node: -/***/ 56952: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + 0 && 0 -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/submodules/protocols/index.ts -var protocols_exports = {}; -__export(protocols_exports, { - RequestBuilder: () => RequestBuilder, - collectBody: () => collectBody, - extendedEncodeURIComponent: () => extendedEncodeURIComponent, - requestBuilder: () => requestBuilder, - resolvedPath: () => resolvedPath -}); -module.exports = __toCommonJS(protocols_exports); - -// src/submodules/protocols/collect-stream-body.ts -var import_util_stream = __nccwpck_require__(77846); -var collectBody = async (streamBody = new Uint8Array(), context) => { - if (streamBody instanceof Uint8Array) { - return import_util_stream.Uint8ArrayBlobAdapter.mutate(streamBody); - } - if (!streamBody) { - return import_util_stream.Uint8ArrayBlobAdapter.mutate(new Uint8Array()); - } - const fromContext = context.streamCollector(streamBody); - return import_util_stream.Uint8ArrayBlobAdapter.mutate(await fromContext); -}; - -// src/submodules/protocols/extended-encode-uri-component.ts -function extendedEncodeURIComponent(str) { - return encodeURIComponent(str).replace(/[!'()*]/g, function(c) { - return "%" + c.charCodeAt(0).toString(16).toUpperCase(); - }); -} - -// src/submodules/protocols/requestBuilder.ts -var import_protocol_http = __nccwpck_require__(31788); - -// src/submodules/protocols/resolve-path.ts -var resolvedPath = (resolvedPath2, input, memberName, labelValueProvider, uriLabel, isGreedyLabel) => { - if (input != null && input[memberName] !== void 0) { - const labelValue = labelValueProvider(); - if (labelValue.length <= 0) { - throw new Error("Empty value provided for input HTTP label: " + memberName + "."); - } - resolvedPath2 = resolvedPath2.replace( - uriLabel, - isGreedyLabel ? labelValue.split("/").map((segment) => extendedEncodeURIComponent(segment)).join("/") : extendedEncodeURIComponent(labelValue) - ); - } else { - throw new Error("No value provided for input HTTP label: " + memberName + "."); - } - return resolvedPath2; -}; - -// src/submodules/protocols/requestBuilder.ts -function requestBuilder(input, context) { - return new RequestBuilder(input, context); -} -var RequestBuilder = class { - constructor(input, context) { - this.input = input; - this.context = context; - this.query = {}; - this.method = ""; - this.headers = {}; - this.path = ""; - this.body = null; - this.hostname = ""; - this.resolvePathStack = []; - } - async build() { - const { hostname, protocol = "https", port, path: basePath } = await this.context.endpoint(); - this.path = basePath; - for (const resolvePath of this.resolvePathStack) { - resolvePath(this.path); - } - return new import_protocol_http.HttpRequest({ - protocol, - hostname: this.hostname || hostname, - port, - method: this.method, - path: this.path, - query: this.query, - body: this.body, - headers: this.headers - }); - } - /** - * Brevity setter for "hostname". - */ - hn(hostname) { - this.hostname = hostname; - return this; - } - /** - * Brevity initial builder for "basepath". - */ - bp(uriLabel) { - this.resolvePathStack.push((basePath) => { - this.path = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + uriLabel; - }); - return this; - } - /** - * Brevity incremental builder for "path". - */ - p(memberName, labelValueProvider, uriLabel, isGreedyLabel) { - this.resolvePathStack.push((path) => { - this.path = resolvedPath(path, this.input, memberName, labelValueProvider, uriLabel, isGreedyLabel); - }); - return this; - } - /** - * Brevity setter for "headers". - */ - h(headers) { - this.headers = headers; - return this; - } - /** - * Brevity setter for "query". - */ - q(query) { - this.query = query; - return this; - } - /** - * Brevity setter for "body". - */ - b(body) { - this.body = body; - return this; - } - /** - * Brevity setter for "method". - */ - m(method) { - this.method = method; - return this; - } -}; -// Annotate the CommonJS export names for ESM import in node: -0 && (0); - - -/***/ }), - -/***/ 91502: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - DEFAULT_MAX_RETRIES: () => DEFAULT_MAX_RETRIES, - DEFAULT_TIMEOUT: () => DEFAULT_TIMEOUT, - ENV_CMDS_AUTH_TOKEN: () => ENV_CMDS_AUTH_TOKEN, - ENV_CMDS_FULL_URI: () => ENV_CMDS_FULL_URI, - ENV_CMDS_RELATIVE_URI: () => ENV_CMDS_RELATIVE_URI, - Endpoint: () => Endpoint, - fromContainerMetadata: () => fromContainerMetadata, - fromInstanceMetadata: () => fromInstanceMetadata, - getInstanceMetadataEndpoint: () => getInstanceMetadataEndpoint, - httpRequest: () => httpRequest, - providerConfigFromInit: () => providerConfigFromInit -}); -module.exports = __toCommonJS(src_exports); - -// src/fromContainerMetadata.ts - -var import_url = __nccwpck_require__(57310); - -// src/remoteProvider/httpRequest.ts -var import_property_provider = __nccwpck_require__(19248); -var import_buffer = __nccwpck_require__(14300); -var import_http = __nccwpck_require__(13685); -function httpRequest(options) { - return new Promise((resolve, reject) => { - const req = (0, import_http.request)({ - method: "GET", - ...options, - // Node.js http module doesn't accept hostname with square brackets - // Refs: https://github.com/nodejs/node/issues/39738 - hostname: options.hostname?.replace(/^\[(.+)\]$/, "$1") - }); - req.on("error", (err) => { - reject(Object.assign(new import_property_provider.ProviderError("Unable to connect to instance metadata service"), err)); - req.destroy(); - }); - req.on("timeout", () => { - reject(new import_property_provider.ProviderError("TimeoutError from instance metadata service")); - req.destroy(); - }); - req.on("response", (res) => { - const { statusCode = 400 } = res; - if (statusCode < 200 || 300 <= statusCode) { - reject( - Object.assign(new import_property_provider.ProviderError("Error response received from instance metadata service"), { statusCode }) - ); - req.destroy(); - } - const chunks = []; - res.on("data", (chunk) => { - chunks.push(chunk); - }); - res.on("end", () => { - resolve(import_buffer.Buffer.concat(chunks)); - req.destroy(); - }); - }); - req.end(); - }); -} -__name(httpRequest, "httpRequest"); - -// src/remoteProvider/ImdsCredentials.ts -var isImdsCredentials = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === "object" && typeof arg.AccessKeyId === "string" && typeof arg.SecretAccessKey === "string" && typeof arg.Token === "string" && typeof arg.Expiration === "string", "isImdsCredentials"); -var fromImdsCredentials = /* @__PURE__ */ __name((creds) => ({ - accessKeyId: creds.AccessKeyId, - secretAccessKey: creds.SecretAccessKey, - sessionToken: creds.Token, - expiration: new Date(creds.Expiration), - ...creds.AccountId && { accountId: creds.AccountId } -}), "fromImdsCredentials"); - -// src/remoteProvider/RemoteProviderInit.ts -var DEFAULT_TIMEOUT = 1e3; -var DEFAULT_MAX_RETRIES = 0; -var providerConfigFromInit = /* @__PURE__ */ __name(({ - maxRetries = DEFAULT_MAX_RETRIES, - timeout = DEFAULT_TIMEOUT -}) => ({ maxRetries, timeout }), "providerConfigFromInit"); - -// src/remoteProvider/retry.ts -var retry = /* @__PURE__ */ __name((toRetry, maxRetries) => { - let promise = toRetry(); - for (let i = 0; i < maxRetries; i++) { - promise = promise.catch(toRetry); - } - return promise; -}, "retry"); - -// src/fromContainerMetadata.ts -var ENV_CMDS_FULL_URI = "AWS_CONTAINER_CREDENTIALS_FULL_URI"; -var ENV_CMDS_RELATIVE_URI = "AWS_CONTAINER_CREDENTIALS_RELATIVE_URI"; -var ENV_CMDS_AUTH_TOKEN = "AWS_CONTAINER_AUTHORIZATION_TOKEN"; -var fromContainerMetadata = /* @__PURE__ */ __name((init = {}) => { - const { timeout, maxRetries } = providerConfigFromInit(init); - return () => retry(async () => { - const requestOptions = await getCmdsUri({ logger: init.logger }); - const credsResponse = JSON.parse(await requestFromEcsImds(timeout, requestOptions)); - if (!isImdsCredentials(credsResponse)) { - throw new import_property_provider.CredentialsProviderError("Invalid response received from instance metadata service.", { - logger: init.logger - }); - } - return fromImdsCredentials(credsResponse); - }, maxRetries); -}, "fromContainerMetadata"); -var requestFromEcsImds = /* @__PURE__ */ __name(async (timeout, options) => { - if (process.env[ENV_CMDS_AUTH_TOKEN]) { - options.headers = { - ...options.headers, - Authorization: process.env[ENV_CMDS_AUTH_TOKEN] - }; - } - const buffer = await httpRequest({ - ...options, - timeout - }); - return buffer.toString(); -}, "requestFromEcsImds"); -var CMDS_IP = "169.254.170.2"; -var GREENGRASS_HOSTS = { - localhost: true, - "127.0.0.1": true -}; -var GREENGRASS_PROTOCOLS = { - "http:": true, - "https:": true -}; -var getCmdsUri = /* @__PURE__ */ __name(async ({ logger }) => { - if (process.env[ENV_CMDS_RELATIVE_URI]) { - return { - hostname: CMDS_IP, - path: process.env[ENV_CMDS_RELATIVE_URI] - }; - } - if (process.env[ENV_CMDS_FULL_URI]) { - const parsed = (0, import_url.parse)(process.env[ENV_CMDS_FULL_URI]); - if (!parsed.hostname || !(parsed.hostname in GREENGRASS_HOSTS)) { - throw new import_property_provider.CredentialsProviderError(`${parsed.hostname} is not a valid container metadata service hostname`, { - tryNextLink: false, - logger - }); - } - if (!parsed.protocol || !(parsed.protocol in GREENGRASS_PROTOCOLS)) { - throw new import_property_provider.CredentialsProviderError(`${parsed.protocol} is not a valid container metadata service protocol`, { - tryNextLink: false, - logger - }); - } - return { - ...parsed, - port: parsed.port ? parseInt(parsed.port, 10) : void 0 - }; - } - throw new import_property_provider.CredentialsProviderError( - `The container metadata credential provider cannot be used unless the ${ENV_CMDS_RELATIVE_URI} or ${ENV_CMDS_FULL_URI} environment variable is set`, - { - tryNextLink: false, - logger - } - ); -}, "getCmdsUri"); + /***/ + }, -// src/fromInstanceMetadata.ts + /***/ 63757: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.checkUrl = void 0 + const property_provider_1 = __nccwpck_require__(79721) + const LOOPBACK_CIDR_IPv4 = '127.0.0.0/8' + const LOOPBACK_CIDR_IPv6 = '::1/128' + const ECS_CONTAINER_HOST = '169.254.170.2' + const EKS_CONTAINER_HOST_IPv4 = '169.254.170.23' + const EKS_CONTAINER_HOST_IPv6 = '[fd00:ec2::23]' + const checkUrl = (url, logger) => { + if (url.protocol === 'https:') { + return + } + if ( + url.hostname === ECS_CONTAINER_HOST || + url.hostname === EKS_CONTAINER_HOST_IPv4 || + url.hostname === EKS_CONTAINER_HOST_IPv6 + ) { + return + } + if (url.hostname.includes('[')) { + if ( + url.hostname === '[::1]' || + url.hostname === '[0000:0000:0000:0000:0000:0000:0000:0001]' + ) { + return + } + } else { + if (url.hostname === 'localhost') { + return + } + const ipComponents = url.hostname.split('.') + const inRange = component => { + const num = parseInt(component, 10) + return 0 <= num && num <= 255 + } + if ( + ipComponents[0] === '127' && + inRange(ipComponents[1]) && + inRange(ipComponents[2]) && + inRange(ipComponents[3]) && + ipComponents.length === 4 + ) { + return + } + } + throw new property_provider_1.CredentialsProviderError( + `URL not accepted. It must either be HTTPS or match one of the following: + - loopback CIDR 127.0.0.0/8 or [::1/128] + - ECS container host 169.254.170.2 + - EKS container host 169.254.170.23 or [fd00:ec2::23]`, + { logger } + ) + } + exports.checkUrl = checkUrl + /***/ + }, + /***/ 56070: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.fromHttp = void 0 + const tslib_1 = __nccwpck_require__(4351) + const node_http_handler_1 = __nccwpck_require__(54893) + const property_provider_1 = __nccwpck_require__(79721) + const promises_1 = tslib_1.__importDefault(__nccwpck_require__(73292)) + const checkUrl_1 = __nccwpck_require__(63757) + const requestHelpers_1 = __nccwpck_require__(79287) + const retry_wrapper_1 = __nccwpck_require__(79921) + const AWS_CONTAINER_CREDENTIALS_RELATIVE_URI = + 'AWS_CONTAINER_CREDENTIALS_RELATIVE_URI' + const DEFAULT_LINK_LOCAL_HOST = 'http://169.254.170.2' + const AWS_CONTAINER_CREDENTIALS_FULL_URI = + 'AWS_CONTAINER_CREDENTIALS_FULL_URI' + const AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE = + 'AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE' + const AWS_CONTAINER_AUTHORIZATION_TOKEN = + 'AWS_CONTAINER_AUTHORIZATION_TOKEN' + const fromHttp = (options = {}) => { + options.logger?.debug('@aws-sdk/credential-provider-http - fromHttp') + let host + const relative = + options.awsContainerCredentialsRelativeUri ?? + process.env[AWS_CONTAINER_CREDENTIALS_RELATIVE_URI] + const full = + options.awsContainerCredentialsFullUri ?? + process.env[AWS_CONTAINER_CREDENTIALS_FULL_URI] + const token = + options.awsContainerAuthorizationToken ?? + process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN] + const tokenFile = + options.awsContainerAuthorizationTokenFile ?? + process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE] + const warn = + options.logger?.constructor?.name === 'NoOpLogger' || !options.logger + ? console.warn + : options.logger.warn + if (relative && full) { + warn( + '@aws-sdk/credential-provider-http: ' + + 'you have set both awsContainerCredentialsRelativeUri and awsContainerCredentialsFullUri.' + ) + warn('awsContainerCredentialsFullUri will take precedence.') + } + if (token && tokenFile) { + warn( + '@aws-sdk/credential-provider-http: ' + + 'you have set both awsContainerAuthorizationToken and awsContainerAuthorizationTokenFile.' + ) + warn('awsContainerAuthorizationToken will take precedence.') + } + if (full) { + host = full + } else if (relative) { + host = `${DEFAULT_LINK_LOCAL_HOST}${relative}` + } else { + throw new property_provider_1.CredentialsProviderError( + `No HTTP credential provider host provided. +Set AWS_CONTAINER_CREDENTIALS_FULL_URI or AWS_CONTAINER_CREDENTIALS_RELATIVE_URI.`, + { logger: options.logger } + ) + } + const url = new URL(host) + ;(0, checkUrl_1.checkUrl)(url, options.logger) + const requestHandler = new node_http_handler_1.NodeHttpHandler({ + requestTimeout: options.timeout ?? 1000, + connectionTimeout: options.timeout ?? 1000 + }) + return (0, retry_wrapper_1.retryWrapper)( + async () => { + const request = (0, requestHelpers_1.createGetRequest)(url) + if (token) { + request.headers.Authorization = token + } else if (tokenFile) { + request.headers.Authorization = ( + await promises_1.default.readFile(tokenFile) + ).toString() + } + try { + const result = await requestHandler.handle(request) + return (0, requestHelpers_1.getCredentials)(result.response) + } catch (e) { + throw new property_provider_1.CredentialsProviderError( + String(e), + { logger: options.logger } + ) + } + }, + options.maxRetries ?? 3, + options.timeout ?? 1000 + ) + } + exports.fromHttp = fromHttp -// src/error/InstanceMetadataV1FallbackError.ts + /***/ + }, -var InstanceMetadataV1FallbackError = class _InstanceMetadataV1FallbackError extends import_property_provider.CredentialsProviderError { - constructor(message, tryNextLink = true) { - super(message, tryNextLink); - this.tryNextLink = tryNextLink; - this.name = "InstanceMetadataV1FallbackError"; - Object.setPrototypeOf(this, _InstanceMetadataV1FallbackError.prototype); - } - static { - __name(this, "InstanceMetadataV1FallbackError"); - } -}; - -// src/utils/getInstanceMetadataEndpoint.ts -var import_node_config_provider = __nccwpck_require__(6706); -var import_url_parser = __nccwpck_require__(57247); - -// src/config/Endpoint.ts -var Endpoint = /* @__PURE__ */ ((Endpoint2) => { - Endpoint2["IPv4"] = "http://169.254.169.254"; - Endpoint2["IPv6"] = "http://[fd00:ec2::254]"; - return Endpoint2; -})(Endpoint || {}); - -// src/config/EndpointConfigOptions.ts -var ENV_ENDPOINT_NAME = "AWS_EC2_METADATA_SERVICE_ENDPOINT"; -var CONFIG_ENDPOINT_NAME = "ec2_metadata_service_endpoint"; -var ENDPOINT_CONFIG_OPTIONS = { - environmentVariableSelector: (env) => env[ENV_ENDPOINT_NAME], - configFileSelector: (profile) => profile[CONFIG_ENDPOINT_NAME], - default: void 0 -}; - -// src/config/EndpointMode.ts -var EndpointMode = /* @__PURE__ */ ((EndpointMode2) => { - EndpointMode2["IPv4"] = "IPv4"; - EndpointMode2["IPv6"] = "IPv6"; - return EndpointMode2; -})(EndpointMode || {}); - -// src/config/EndpointModeConfigOptions.ts -var ENV_ENDPOINT_MODE_NAME = "AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE"; -var CONFIG_ENDPOINT_MODE_NAME = "ec2_metadata_service_endpoint_mode"; -var ENDPOINT_MODE_CONFIG_OPTIONS = { - environmentVariableSelector: (env) => env[ENV_ENDPOINT_MODE_NAME], - configFileSelector: (profile) => profile[CONFIG_ENDPOINT_MODE_NAME], - default: "IPv4" /* IPv4 */ -}; - -// src/utils/getInstanceMetadataEndpoint.ts -var getInstanceMetadataEndpoint = /* @__PURE__ */ __name(async () => (0, import_url_parser.parseUrl)(await getFromEndpointConfig() || await getFromEndpointModeConfig()), "getInstanceMetadataEndpoint"); -var getFromEndpointConfig = /* @__PURE__ */ __name(async () => (0, import_node_config_provider.loadConfig)(ENDPOINT_CONFIG_OPTIONS)(), "getFromEndpointConfig"); -var getFromEndpointModeConfig = /* @__PURE__ */ __name(async () => { - const endpointMode = await (0, import_node_config_provider.loadConfig)(ENDPOINT_MODE_CONFIG_OPTIONS)(); - switch (endpointMode) { - case "IPv4" /* IPv4 */: - return "http://169.254.169.254" /* IPv4 */; - case "IPv6" /* IPv6 */: - return "http://[fd00:ec2::254]" /* IPv6 */; - default: - throw new Error(`Unsupported endpoint mode: ${endpointMode}. Select from ${Object.values(EndpointMode)}`); - } -}, "getFromEndpointModeConfig"); - -// src/utils/getExtendedInstanceMetadataCredentials.ts -var STATIC_STABILITY_REFRESH_INTERVAL_SECONDS = 5 * 60; -var STATIC_STABILITY_REFRESH_INTERVAL_JITTER_WINDOW_SECONDS = 5 * 60; -var STATIC_STABILITY_DOC_URL = "https://docs.aws.amazon.com/sdkref/latest/guide/feature-static-credentials.html"; -var getExtendedInstanceMetadataCredentials = /* @__PURE__ */ __name((credentials, logger) => { - const refreshInterval = STATIC_STABILITY_REFRESH_INTERVAL_SECONDS + Math.floor(Math.random() * STATIC_STABILITY_REFRESH_INTERVAL_JITTER_WINDOW_SECONDS); - const newExpiration = new Date(Date.now() + refreshInterval * 1e3); - logger.warn( - `Attempting credential expiration extension due to a credential service availability issue. A refresh of these credentials will be attempted after ${new Date(newExpiration)}. -For more information, please visit: ` + STATIC_STABILITY_DOC_URL - ); - const originalExpiration = credentials.originalExpiration ?? credentials.expiration; - return { - ...credentials, - ...originalExpiration ? { originalExpiration } : {}, - expiration: newExpiration - }; -}, "getExtendedInstanceMetadataCredentials"); - -// src/utils/staticStabilityProvider.ts -var staticStabilityProvider = /* @__PURE__ */ __name((provider, options = {}) => { - const logger = options?.logger || console; - let pastCredentials; - return async () => { - let credentials; - try { - credentials = await provider(); - if (credentials.expiration && credentials.expiration.getTime() < Date.now()) { - credentials = getExtendedInstanceMetadataCredentials(credentials, logger); - } - } catch (e) { - if (pastCredentials) { - logger.warn("Credential renew failed: ", e); - credentials = getExtendedInstanceMetadataCredentials(pastCredentials, logger); - } else { - throw e; + /***/ 79287: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getCredentials = exports.createGetRequest = void 0 + const property_provider_1 = __nccwpck_require__(79721) + const protocol_http_1 = __nccwpck_require__(64418) + const smithy_client_1 = __nccwpck_require__(63570) + const util_stream_1 = __nccwpck_require__(96607) + function createGetRequest(url) { + return new protocol_http_1.HttpRequest({ + protocol: url.protocol, + hostname: url.hostname, + port: Number(url.port), + path: url.pathname, + query: Array.from(url.searchParams.entries()).reduce( + (acc, [k, v]) => { + acc[k] = v + return acc + }, + {} + ), + fragment: url.hash + }) } - } - pastCredentials = credentials; - return credentials; - }; -}, "staticStabilityProvider"); - -// src/fromInstanceMetadata.ts -var IMDS_PATH = "/latest/meta-data/iam/security-credentials/"; -var IMDS_TOKEN_PATH = "/latest/api/token"; -var AWS_EC2_METADATA_V1_DISABLED = "AWS_EC2_METADATA_V1_DISABLED"; -var PROFILE_AWS_EC2_METADATA_V1_DISABLED = "ec2_metadata_v1_disabled"; -var X_AWS_EC2_METADATA_TOKEN = "x-aws-ec2-metadata-token"; -var fromInstanceMetadata = /* @__PURE__ */ __name((init = {}) => staticStabilityProvider(getInstanceMetadataProvider(init), { logger: init.logger }), "fromInstanceMetadata"); -var getInstanceMetadataProvider = /* @__PURE__ */ __name((init = {}) => { - let disableFetchToken = false; - const { logger, profile } = init; - const { timeout, maxRetries } = providerConfigFromInit(init); - const getCredentials = /* @__PURE__ */ __name(async (maxRetries2, options) => { - const isImdsV1Fallback = disableFetchToken || options.headers?.[X_AWS_EC2_METADATA_TOKEN] == null; - if (isImdsV1Fallback) { - let fallbackBlockedFromProfile = false; - let fallbackBlockedFromProcessEnv = false; - const configValue = await (0, import_node_config_provider.loadConfig)( - { - environmentVariableSelector: (env) => { - const envValue = env[AWS_EC2_METADATA_V1_DISABLED]; - fallbackBlockedFromProcessEnv = !!envValue && envValue !== "false"; - if (envValue === void 0) { - throw new import_property_provider.CredentialsProviderError( - `${AWS_EC2_METADATA_V1_DISABLED} not set in env, checking config file next.`, - { logger: init.logger } - ); + exports.createGetRequest = createGetRequest + async function getCredentials(response, logger) { + const stream = (0, util_stream_1.sdkStreamMixin)(response.body) + const str = await stream.transformToString() + if (response.statusCode === 200) { + const parsed = JSON.parse(str) + if ( + typeof parsed.AccessKeyId !== 'string' || + typeof parsed.SecretAccessKey !== 'string' || + typeof parsed.Token !== 'string' || + typeof parsed.Expiration !== 'string' + ) { + throw new property_provider_1.CredentialsProviderError( + 'HTTP credential provider response not of the required format, an object matching: ' + + '{ AccessKeyId: string, SecretAccessKey: string, Token: string, Expiration: string(rfc3339) }', + { logger } + ) + } + return { + accessKeyId: parsed.AccessKeyId, + secretAccessKey: parsed.SecretAccessKey, + sessionToken: parsed.Token, + expiration: (0, smithy_client_1.parseRfc3339DateTime)( + parsed.Expiration + ) + } + } + if (response.statusCode >= 400 && response.statusCode < 500) { + let parsedBody = {} + try { + parsedBody = JSON.parse(str) + } catch (e) {} + throw Object.assign( + new property_provider_1.CredentialsProviderError( + `Server responded with status: ${response.statusCode}`, + { logger } + ), + { + Code: parsedBody.Code, + Message: parsedBody.Message } - return fallbackBlockedFromProcessEnv; - }, - configFileSelector: (profile2) => { - const profileValue = profile2[PROFILE_AWS_EC2_METADATA_V1_DISABLED]; - fallbackBlockedFromProfile = !!profileValue && profileValue !== "false"; - return fallbackBlockedFromProfile; - }, - default: false - }, - { - profile + ) } - )(); - if (init.ec2MetadataV1Disabled || configValue) { - const causes = []; - if (init.ec2MetadataV1Disabled) - causes.push("credential provider initialization (runtime option ec2MetadataV1Disabled)"); - if (fallbackBlockedFromProfile) - causes.push(`config file profile (${PROFILE_AWS_EC2_METADATA_V1_DISABLED})`); - if (fallbackBlockedFromProcessEnv) - causes.push(`process environment variable (${AWS_EC2_METADATA_V1_DISABLED})`); - throw new InstanceMetadataV1FallbackError( - `AWS EC2 Metadata v1 fallback has been blocked by AWS SDK configuration in the following: [${causes.join( - ", " - )}].` - ); + throw new property_provider_1.CredentialsProviderError( + `Server responded with status: ${response.statusCode}`, + { logger } + ) } - } - const imdsProfile = (await retry(async () => { - let profile2; - try { - profile2 = await getProfile(options); - } catch (err) { - if (err.statusCode === 401) { - disableFetchToken = false; + exports.getCredentials = getCredentials + + /***/ + }, + + /***/ 79921: /***/ (__unused_webpack_module, exports) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.retryWrapper = void 0 + const retryWrapper = (toRetry, maxRetries, delayMs) => { + return async () => { + for (let i = 0; i < maxRetries; ++i) { + try { + return await toRetry() + } catch (e) { + await new Promise(resolve => setTimeout(resolve, delayMs)) + } + } + return await toRetry() } - throw err; } - return profile2; - }, maxRetries2)).trim(); - return retry(async () => { - let creds; - try { - creds = await getCredentialsFromProfile(imdsProfile, options, init); - } catch (err) { - if (err.statusCode === 401) { - disableFetchToken = false; - } - throw err; - } - return creds; - }, maxRetries2); - }, "getCredentials"); - return async () => { - const endpoint = await getInstanceMetadataEndpoint(); - if (disableFetchToken) { - logger?.debug("AWS SDK Instance Metadata", "using v1 fallback (no token fetch)"); - return getCredentials(maxRetries, { ...endpoint, timeout }); - } else { - let token; - try { - token = (await getMetadataToken({ ...endpoint, timeout })).toString(); - } catch (error) { - if (error?.statusCode === 400) { - throw Object.assign(error, { - message: "EC2 Metadata token request returned error" - }); - } else if (error.message === "TimeoutError" || [403, 404, 405].includes(error.statusCode)) { - disableFetchToken = true; - } - logger?.debug("AWS SDK Instance Metadata", "using v1 fallback (initial)"); - return getCredentials(maxRetries, { ...endpoint, timeout }); - } - return getCredentials(maxRetries, { - ...endpoint, - headers: { - [X_AWS_EC2_METADATA_TOKEN]: token - }, - timeout - }); - } - }; -}, "getInstanceMetadataProvider"); -var getMetadataToken = /* @__PURE__ */ __name(async (options) => httpRequest({ - ...options, - path: IMDS_TOKEN_PATH, - method: "PUT", - headers: { - "x-aws-ec2-metadata-token-ttl-seconds": "21600" - } -}), "getMetadataToken"); -var getProfile = /* @__PURE__ */ __name(async (options) => (await httpRequest({ ...options, path: IMDS_PATH })).toString(), "getProfile"); -var getCredentialsFromProfile = /* @__PURE__ */ __name(async (profile, options, init) => { - const credentialsResponse = JSON.parse( - (await httpRequest({ - ...options, - path: IMDS_PATH + profile - })).toString() - ); - if (!isImdsCredentials(credentialsResponse)) { - throw new import_property_provider.CredentialsProviderError("Invalid response received from instance metadata service.", { - logger: init.logger - }); - } - return fromImdsCredentials(credentialsResponse); -}, "getCredentialsFromProfile"); -// Annotate the CommonJS export names for ESM import in node: + exports.retryWrapper = retryWrapper + + /***/ + }, -0 && (0); + /***/ 17290: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.fromHttp = void 0 + var fromHttp_1 = __nccwpck_require__(56070) + Object.defineProperty(exports, 'fromHttp', { + enumerable: true, + get: function () { + return fromHttp_1.fromHttp + } + }) + /***/ + }, + /***/ 54893: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __create = Object.create + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __getProtoOf = Object.getPrototypeOf + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toESM = (mod, isNodeMode, target) => ( + (target = mod != null ? __create(__getProtoOf(mod)) : {}), + __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule + ? __defProp(target, 'default', { value: mod, enumerable: true }) + : target, + mod + ) + ) + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + DEFAULT_REQUEST_TIMEOUT: () => DEFAULT_REQUEST_TIMEOUT, + NodeHttp2Handler: () => NodeHttp2Handler, + NodeHttpHandler: () => NodeHttpHandler, + streamCollector: () => streamCollector + }) + module.exports = __toCommonJS(src_exports) + + // src/node-http-handler.ts + var import_protocol_http = __nccwpck_require__(64418) + var import_querystring_builder = __nccwpck_require__(68031) + var import_http = __nccwpck_require__(13685) + var import_https = __nccwpck_require__(95687) + + // src/constants.ts + var NODEJS_TIMEOUT_ERROR_CODES = ['ECONNRESET', 'EPIPE', 'ETIMEDOUT'] + + // src/get-transformed-headers.ts + var getTransformedHeaders = /* @__PURE__ */ __name(headers => { + const transformedHeaders = {} + for (const name of Object.keys(headers)) { + const headerValues = headers[name] + transformedHeaders[name] = Array.isArray(headerValues) + ? headerValues.join(',') + : headerValues + } + return transformedHeaders + }, 'getTransformedHeaders') + + // src/set-connection-timeout.ts + var DEFER_EVENT_LISTENER_TIME = 1e3 + var setConnectionTimeout = /* @__PURE__ */ __name( + (request, reject, timeoutInMs = 0) => { + if (!timeoutInMs) { + return -1 + } + const registerTimeout = /* @__PURE__ */ __name(offset => { + const timeoutId = setTimeout(() => { + request.destroy() + reject( + Object.assign( + new Error( + `Socket timed out without establishing a connection within ${timeoutInMs} ms` + ), + { + name: 'TimeoutError' + } + ) + ) + }, timeoutInMs - offset) + const doWithSocket = /* @__PURE__ */ __name(socket => { + if (socket == null ? void 0 : socket.connecting) { + socket.on('connect', () => { + clearTimeout(timeoutId) + }) + } else { + clearTimeout(timeoutId) + } + }, 'doWithSocket') + if (request.socket) { + doWithSocket(request.socket) + } else { + request.on('socket', doWithSocket) + } + }, 'registerTimeout') + if (timeoutInMs < 2e3) { + registerTimeout(0) + return 0 + } + return setTimeout( + registerTimeout.bind(null, DEFER_EVENT_LISTENER_TIME), + DEFER_EVENT_LISTENER_TIME + ) + }, + 'setConnectionTimeout' + ) -/***/ }), + // src/set-socket-keep-alive.ts + var DEFER_EVENT_LISTENER_TIME2 = 3e3 + var setSocketKeepAlive = /* @__PURE__ */ __name( + ( + request, + { keepAlive, keepAliveMsecs }, + deferTimeMs = DEFER_EVENT_LISTENER_TIME2 + ) => { + if (keepAlive !== true) { + return -1 + } + const registerListener = /* @__PURE__ */ __name(() => { + if (request.socket) { + request.socket.setKeepAlive(keepAlive, keepAliveMsecs || 0) + } else { + request.on('socket', socket => { + socket.setKeepAlive(keepAlive, keepAliveMsecs || 0) + }) + } + }, 'registerListener') + if (deferTimeMs === 0) { + registerListener() + return 0 + } + return setTimeout(registerListener, deferTimeMs) + }, + 'setSocketKeepAlive' + ) -/***/ 19464: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + // src/set-socket-timeout.ts + var DEFER_EVENT_LISTENER_TIME3 = 3e3 + var setSocketTimeout = /* @__PURE__ */ __name( + (request, reject, timeoutInMs = 0) => { + const registerTimeout = /* @__PURE__ */ __name(offset => { + request.setTimeout(timeoutInMs - offset, () => { + request.destroy() + reject( + Object.assign( + new Error(`Connection timed out after ${timeoutInMs} ms`), + { name: 'TimeoutError' } + ) + ) + }) + }, 'registerTimeout') + if (0 < timeoutInMs && timeoutInMs < 6e3) { + registerTimeout(0) + return 0 + } + return setTimeout( + registerTimeout.bind( + null, + timeoutInMs === 0 ? 0 : DEFER_EVENT_LISTENER_TIME3 + ), + DEFER_EVENT_LISTENER_TIME3 + ) + }, + 'setSocketTimeout' + ) -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - FetchHttpHandler: () => FetchHttpHandler, - keepAliveSupport: () => keepAliveSupport, - streamCollector: () => streamCollector -}); -module.exports = __toCommonJS(src_exports); - -// src/fetch-http-handler.ts -var import_protocol_http = __nccwpck_require__(31788); -var import_querystring_builder = __nccwpck_require__(87169); - -// src/create-request.ts -function createRequest(url, requestOptions) { - return new Request(url, requestOptions); -} -__name(createRequest, "createRequest"); - -// src/request-timeout.ts -function requestTimeout(timeoutInMs = 0) { - return new Promise((resolve, reject) => { - if (timeoutInMs) { - setTimeout(() => { - const timeoutError = new Error(`Request did not complete within ${timeoutInMs} ms`); - timeoutError.name = "TimeoutError"; - reject(timeoutError); - }, timeoutInMs); - } - }); -} -__name(requestTimeout, "requestTimeout"); - -// src/fetch-http-handler.ts -var keepAliveSupport = { - supported: void 0 -}; -var FetchHttpHandler = class _FetchHttpHandler { - static { - __name(this, "FetchHttpHandler"); - } - /** - * @returns the input if it is an HttpHandler of any class, - * or instantiates a new instance of this handler. - */ - static create(instanceOrOptions) { - if (typeof instanceOrOptions?.handle === "function") { - return instanceOrOptions; - } - return new _FetchHttpHandler(instanceOrOptions); - } - constructor(options) { - if (typeof options === "function") { - this.configProvider = options().then((opts) => opts || {}); - } else { - this.config = options ?? {}; - this.configProvider = Promise.resolve(this.config); - } - if (keepAliveSupport.supported === void 0) { - keepAliveSupport.supported = Boolean( - typeof Request !== "undefined" && "keepalive" in createRequest("https://[::1]") - ); - } - } - destroy() { - } - async handle(request, { abortSignal } = {}) { - if (!this.config) { - this.config = await this.configProvider; - } - const requestTimeoutInMs = this.config.requestTimeout; - const keepAlive = this.config.keepAlive === true; - const credentials = this.config.credentials; - if (abortSignal?.aborted) { - const abortError = new Error("Request aborted"); - abortError.name = "AbortError"; - return Promise.reject(abortError); - } - let path = request.path; - const queryString = (0, import_querystring_builder.buildQueryString)(request.query || {}); - if (queryString) { - path += `?${queryString}`; - } - if (request.fragment) { - path += `#${request.fragment}`; - } - let auth = ""; - if (request.username != null || request.password != null) { - const username = request.username ?? ""; - const password = request.password ?? ""; - auth = `${username}:${password}@`; - } - const { port, method } = request; - const url = `${request.protocol}//${auth}${request.hostname}${port ? `:${port}` : ""}${path}`; - const body = method === "GET" || method === "HEAD" ? void 0 : request.body; - const requestOptions = { - body, - headers: new Headers(request.headers), - method, - credentials - }; - if (this.config?.cache) { - requestOptions.cache = this.config.cache; - } - if (body) { - requestOptions.duplex = "half"; - } - if (typeof AbortController !== "undefined") { - requestOptions.signal = abortSignal; - } - if (keepAliveSupport.supported) { - requestOptions.keepalive = keepAlive; - } - if (typeof this.config.requestInit === "function") { - Object.assign(requestOptions, this.config.requestInit(request)); - } - let removeSignalEventListener = /* @__PURE__ */ __name(() => { - }, "removeSignalEventListener"); - const fetchRequest = createRequest(url, requestOptions); - const raceOfPromises = [ - fetch(fetchRequest).then((response) => { - const fetchHeaders = response.headers; - const transformedHeaders = {}; - for (const pair of fetchHeaders.entries()) { - transformedHeaders[pair[0]] = pair[1]; - } - const hasReadableStream = response.body != void 0; - if (!hasReadableStream) { - return response.blob().then((body2) => ({ - response: new import_protocol_http.HttpResponse({ - headers: transformedHeaders, - reason: response.statusText, - statusCode: response.status, - body: body2 + // src/write-request-body.ts + var import_stream = __nccwpck_require__(12781) + var MIN_WAIT_TIME = 1e3 + async function writeRequestBody( + httpRequest, + request, + maxContinueTimeoutMs = MIN_WAIT_TIME + ) { + const headers = request.headers ?? {} + const expect = headers['Expect'] || headers['expect'] + let timeoutId = -1 + let hasError = false + if (expect === '100-continue') { + await Promise.race([ + new Promise(resolve => { + timeoutId = Number( + setTimeout( + resolve, + Math.max(MIN_WAIT_TIME, maxContinueTimeoutMs) + ) + ) + }), + new Promise(resolve => { + httpRequest.on('continue', () => { + clearTimeout(timeoutId) + resolve() + }) + httpRequest.on('error', () => { + hasError = true + clearTimeout(timeoutId) + resolve() + }) + }) + ]) + } + if (!hasError) { + writeBody(httpRequest, request.body) + } + } + __name(writeRequestBody, 'writeRequestBody') + function writeBody(httpRequest, body) { + if (body instanceof import_stream.Readable) { + body.pipe(httpRequest) + return + } + if (body) { + if (Buffer.isBuffer(body) || typeof body === 'string') { + httpRequest.end(body) + return + } + const uint8 = body + if ( + typeof uint8 === 'object' && + uint8.buffer && + typeof uint8.byteOffset === 'number' && + typeof uint8.byteLength === 'number' + ) { + httpRequest.end( + Buffer.from(uint8.buffer, uint8.byteOffset, uint8.byteLength) + ) + return + } + httpRequest.end(Buffer.from(body)) + return + } + httpRequest.end() + } + __name(writeBody, 'writeBody') + + // src/node-http-handler.ts + var DEFAULT_REQUEST_TIMEOUT = 0 + var _NodeHttpHandler = class _NodeHttpHandler { + constructor(options) { + this.socketWarningTimestamp = 0 + // Node http handler is hard-coded to http/1.1: https://github.com/nodejs/node/blob/ff5664b83b89c55e4ab5d5f60068fb457f1f5872/lib/_http_server.js#L286 + this.metadata = { handlerProtocol: 'http/1.1' } + this.configProvider = new Promise((resolve, reject) => { + if (typeof options === 'function') { + options() + .then(_options => { + resolve(this.resolveDefaultConfig(_options)) + }) + .catch(reject) + } else { + resolve(this.resolveDefaultConfig(options)) + } + }) + } + /** + * @returns the input if it is an HttpHandler of any class, + * or instantiates a new instance of this handler. + */ + static create(instanceOrOptions) { + if ( + typeof (instanceOrOptions == null + ? void 0 + : instanceOrOptions.handle) === 'function' + ) { + return instanceOrOptions + } + return new _NodeHttpHandler(instanceOrOptions) + } + /** + * @internal + * + * @param agent - http(s) agent in use by the NodeHttpHandler instance. + * @param socketWarningTimestamp - last socket usage check timestamp. + * @param logger - channel for the warning. + * @returns timestamp of last emitted warning. + */ + static checkSocketUsage( + agent, + socketWarningTimestamp, + logger = console + ) { + var _a, _b, _c + const { sockets, requests, maxSockets } = agent + if (typeof maxSockets !== 'number' || maxSockets === Infinity) { + return socketWarningTimestamp + } + const interval = 15e3 + if (Date.now() - interval < socketWarningTimestamp) { + return socketWarningTimestamp + } + if (sockets && requests) { + for (const origin in sockets) { + const socketsInUse = + ((_a = sockets[origin]) == null ? void 0 : _a.length) ?? 0 + const requestsEnqueued = + ((_b = requests[origin]) == null ? void 0 : _b.length) ?? 0 + if ( + socketsInUse >= maxSockets && + requestsEnqueued >= 2 * maxSockets + ) { + ;(_c = logger == null ? void 0 : logger.warn) == null + ? void 0 + : _c.call( + logger, + `@smithy/node-http-handler:WARN - socket usage at capacity=${socketsInUse} and ${requestsEnqueued} additional requests are enqueued. +See https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html +or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.` + ) + return Date.now() + } + } + } + return socketWarningTimestamp + } + resolveDefaultConfig(options) { + const { + requestTimeout, + connectionTimeout, + socketTimeout, + httpAgent, + httpsAgent + } = options || {} + const keepAlive = true + const maxSockets = 50 + return { + connectionTimeout, + requestTimeout: requestTimeout ?? socketTimeout, + httpAgent: (() => { + if ( + httpAgent instanceof import_http.Agent || + typeof (httpAgent == null ? void 0 : httpAgent.destroy) === + 'function' + ) { + return httpAgent + } + return new import_http.Agent({ + keepAlive, + maxSockets, + ...httpAgent + }) + })(), + httpsAgent: (() => { + if ( + httpsAgent instanceof import_https.Agent || + typeof (httpsAgent == null ? void 0 : httpsAgent.destroy) === + 'function' + ) { + return httpsAgent + } + return new import_https.Agent({ + keepAlive, + maxSockets, + ...httpsAgent + }) + })(), + logger: console + } + } + destroy() { + var _a, _b, _c, _d + ;(_b = (_a = this.config) == null ? void 0 : _a.httpAgent) == null + ? void 0 + : _b.destroy() + ;(_d = (_c = this.config) == null ? void 0 : _c.httpsAgent) == null + ? void 0 + : _d.destroy() + } + async handle(request, { abortSignal } = {}) { + if (!this.config) { + this.config = await this.configProvider + } + return new Promise((_resolve, _reject) => { + let writeRequestBodyPromise = void 0 + const timeouts = [] + const resolve = /* @__PURE__ */ __name(async arg => { + await writeRequestBodyPromise + timeouts.forEach(clearTimeout) + _resolve(arg) + }, 'resolve') + const reject = /* @__PURE__ */ __name(async arg => { + await writeRequestBodyPromise + timeouts.forEach(clearTimeout) + _reject(arg) + }, 'reject') + if (!this.config) { + throw new Error( + 'Node HTTP request handler config is not resolved' + ) + } + if (abortSignal == null ? void 0 : abortSignal.aborted) { + const abortError = new Error('Request aborted') + abortError.name = 'AbortError' + reject(abortError) + return + } + const isSSL = request.protocol === 'https:' + const agent = isSSL ? this.config.httpsAgent : this.config.httpAgent + timeouts.push( + setTimeout( + () => { + this.socketWarningTimestamp = + _NodeHttpHandler.checkSocketUsage( + agent, + this.socketWarningTimestamp, + this.config.logger + ) + }, + this.config.socketAcquisitionWarningTimeout ?? + (this.config.requestTimeout ?? 2e3) + + (this.config.connectionTimeout ?? 1e3) + ) + ) + const queryString = (0, + import_querystring_builder.buildQueryString)(request.query || {}) + let auth = void 0 + if (request.username != null || request.password != null) { + const username = request.username ?? '' + const password = request.password ?? '' + auth = `${username}:${password}` + } + let path = request.path + if (queryString) { + path += `?${queryString}` + } + if (request.fragment) { + path += `#${request.fragment}` + } + const nodeHttpsOptions = { + headers: request.headers, + host: request.hostname, + method: request.method, + path, + port: request.port, + agent, + auth + } + const requestFunc = isSSL + ? import_https.request + : import_http.request + const req = requestFunc(nodeHttpsOptions, res => { + const httpResponse = new import_protocol_http.HttpResponse({ + statusCode: res.statusCode || -1, + reason: res.statusMessage, + headers: getTransformedHeaders(res.headers), + body: res + }) + resolve({ response: httpResponse }) }) - })); - } - return { - response: new import_protocol_http.HttpResponse({ - headers: transformedHeaders, - reason: response.statusText, - statusCode: response.status, - body: response.body - }) - }; - }), - requestTimeout(requestTimeoutInMs) - ]; - if (abortSignal) { - raceOfPromises.push( - new Promise((resolve, reject) => { - const onAbort = /* @__PURE__ */ __name(() => { - const abortError = new Error("Request aborted"); - abortError.name = "AbortError"; - reject(abortError); - }, "onAbort"); - if (typeof abortSignal.addEventListener === "function") { - const signal = abortSignal; - signal.addEventListener("abort", onAbort, { once: true }); - removeSignalEventListener = /* @__PURE__ */ __name(() => signal.removeEventListener("abort", onAbort), "removeSignalEventListener"); - } else { - abortSignal.onabort = onAbort; - } - }) - ); - } - return Promise.race(raceOfPromises).finally(removeSignalEventListener); - } - updateHttpClientConfig(key, value) { - this.config = void 0; - this.configProvider = this.configProvider.then((config) => { - config[key] = value; - return config; - }); - } - httpHandlerConfigs() { - return this.config ?? {}; - } -}; - -// src/stream-collector.ts -var import_util_base64 = __nccwpck_require__(87656); -var streamCollector = /* @__PURE__ */ __name(async (stream) => { - if (typeof Blob === "function" && stream instanceof Blob || stream.constructor?.name === "Blob") { - if (Blob.prototype.arrayBuffer !== void 0) { - return new Uint8Array(await stream.arrayBuffer()); - } - return collectBlob(stream); - } - return collectStream(stream); -}, "streamCollector"); -async function collectBlob(blob) { - const base64 = await readToBase64(blob); - const arrayBuffer = (0, import_util_base64.fromBase64)(base64); - return new Uint8Array(arrayBuffer); -} -__name(collectBlob, "collectBlob"); -async function collectStream(stream) { - const chunks = []; - const reader = stream.getReader(); - let isDone = false; - let length = 0; - while (!isDone) { - const { done, value } = await reader.read(); - if (value) { - chunks.push(value); - length += value.length; - } - isDone = done; - } - const collected = new Uint8Array(length); - let offset = 0; - for (const chunk of chunks) { - collected.set(chunk, offset); - offset += chunk.length; - } - return collected; -} -__name(collectStream, "collectStream"); -function readToBase64(blob) { - return new Promise((resolve, reject) => { - const reader = new FileReader(); - reader.onloadend = () => { - if (reader.readyState !== 2) { - return reject(new Error("Reader aborted too early")); - } - const result = reader.result ?? ""; - const commaIndex = result.indexOf(","); - const dataOffset = commaIndex > -1 ? commaIndex + 1 : result.length; - resolve(result.substring(dataOffset)); - }; - reader.onabort = () => reject(new Error("Read aborted")); - reader.onerror = () => reject(reader.error); - reader.readAsDataURL(blob); - }); -} -__name(readToBase64, "readToBase64"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 52998: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - Hash: () => Hash -}); -module.exports = __toCommonJS(src_exports); -var import_util_buffer_from = __nccwpck_require__(48928); -var import_util_utf8 = __nccwpck_require__(94377); -var import_buffer = __nccwpck_require__(14300); -var import_crypto = __nccwpck_require__(6113); -var Hash = class { - static { - __name(this, "Hash"); - } - constructor(algorithmIdentifier, secret) { - this.algorithmIdentifier = algorithmIdentifier; - this.secret = secret; - this.reset(); - } - update(toHash, encoding) { - this.hash.update((0, import_util_utf8.toUint8Array)(castSourceData(toHash, encoding))); - } - digest() { - return Promise.resolve(this.hash.digest()); - } - reset() { - this.hash = this.secret ? (0, import_crypto.createHmac)(this.algorithmIdentifier, castSourceData(this.secret)) : (0, import_crypto.createHash)(this.algorithmIdentifier); - } -}; -function castSourceData(toCast, encoding) { - if (import_buffer.Buffer.isBuffer(toCast)) { - return toCast; - } - if (typeof toCast === "string") { - return (0, import_util_buffer_from.fromString)(toCast, encoding); - } - if (ArrayBuffer.isView(toCast)) { - return (0, import_util_buffer_from.fromArrayBuffer)(toCast.buffer, toCast.byteOffset, toCast.byteLength); - } - return (0, import_util_buffer_from.fromArrayBuffer)(toCast); -} -__name(castSourceData, "castSourceData"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 22299: -/***/ ((module) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - isArrayBuffer: () => isArrayBuffer -}); -module.exports = __toCommonJS(src_exports); -var isArrayBuffer = /* @__PURE__ */ __name((arg) => typeof ArrayBuffer === "function" && arg instanceof ArrayBuffer || Object.prototype.toString.call(arg) === "[object ArrayBuffer]", "isArrayBuffer"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 34305: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - contentLengthMiddleware: () => contentLengthMiddleware, - contentLengthMiddlewareOptions: () => contentLengthMiddlewareOptions, - getContentLengthPlugin: () => getContentLengthPlugin -}); -module.exports = __toCommonJS(src_exports); -var import_protocol_http = __nccwpck_require__(31788); -var CONTENT_LENGTH_HEADER = "content-length"; -function contentLengthMiddleware(bodyLengthChecker) { - return (next) => async (args) => { - const request = args.request; - if (import_protocol_http.HttpRequest.isInstance(request)) { - const { body, headers } = request; - if (body && Object.keys(headers).map((str) => str.toLowerCase()).indexOf(CONTENT_LENGTH_HEADER) === -1) { - try { - const length = bodyLengthChecker(body); - request.headers = { - ...request.headers, - [CONTENT_LENGTH_HEADER]: String(length) - }; - } catch (error) { + req.on('error', err => { + if (NODEJS_TIMEOUT_ERROR_CODES.includes(err.code)) { + reject(Object.assign(err, { name: 'TimeoutError' })) + } else { + reject(err) + } + }) + if (abortSignal) { + const onAbort = /* @__PURE__ */ __name(() => { + req.destroy() + const abortError = new Error('Request aborted') + abortError.name = 'AbortError' + reject(abortError) + }, 'onAbort') + if (typeof abortSignal.addEventListener === 'function') { + const signal = abortSignal + signal.addEventListener('abort', onAbort, { once: true }) + req.once('close', () => + signal.removeEventListener('abort', onAbort) + ) + } else { + abortSignal.onabort = onAbort + } + } + timeouts.push( + setConnectionTimeout(req, reject, this.config.connectionTimeout) + ) + timeouts.push( + setSocketTimeout(req, reject, this.config.requestTimeout) + ) + const httpAgent = nodeHttpsOptions.agent + if (typeof httpAgent === 'object' && 'keepAlive' in httpAgent) { + timeouts.push( + setSocketKeepAlive(req, { + // @ts-expect-error keepAlive is not public on httpAgent. + keepAlive: httpAgent.keepAlive, + // @ts-expect-error keepAliveMsecs is not public on httpAgent. + keepAliveMsecs: httpAgent.keepAliveMsecs + }) + ) + } + writeRequestBodyPromise = writeRequestBody( + req, + request, + this.config.requestTimeout + ).catch(e => { + timeouts.forEach(clearTimeout) + return _reject(e) + }) + }) } - } - } - return next({ - ...args, - request - }); - }; -} -__name(contentLengthMiddleware, "contentLengthMiddleware"); -var contentLengthMiddlewareOptions = { - step: "build", - tags: ["SET_CONTENT_LENGTH", "CONTENT_LENGTH"], - name: "contentLengthMiddleware", - override: true -}; -var getContentLengthPlugin = /* @__PURE__ */ __name((options) => ({ - applyToStack: (clientStack) => { - clientStack.add(contentLengthMiddleware(options.bodyLengthChecker), contentLengthMiddlewareOptions); - } -}), "getContentLengthPlugin"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 76528: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getEndpointFromConfig = void 0; -const node_config_provider_1 = __nccwpck_require__(6706); -const getEndpointUrlConfig_1 = __nccwpck_require__(32544); -const getEndpointFromConfig = async (serviceId) => (0, node_config_provider_1.loadConfig)((0, getEndpointUrlConfig_1.getEndpointUrlConfig)(serviceId !== null && serviceId !== void 0 ? serviceId : ""))(); -exports.getEndpointFromConfig = getEndpointFromConfig; - - -/***/ }), - -/***/ 32544: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getEndpointUrlConfig = void 0; -const shared_ini_file_loader_1 = __nccwpck_require__(69001); -const ENV_ENDPOINT_URL = "AWS_ENDPOINT_URL"; -const CONFIG_ENDPOINT_URL = "endpoint_url"; -const getEndpointUrlConfig = (serviceId) => ({ - environmentVariableSelector: (env) => { - const serviceSuffixParts = serviceId.split(" ").map((w) => w.toUpperCase()); - const serviceEndpointUrl = env[[ENV_ENDPOINT_URL, ...serviceSuffixParts].join("_")]; - if (serviceEndpointUrl) - return serviceEndpointUrl; - const endpointUrl = env[ENV_ENDPOINT_URL]; - if (endpointUrl) - return endpointUrl; - return undefined; - }, - configFileSelector: (profile, config) => { - if (config && profile.services) { - const servicesSection = config[["services", profile.services].join(shared_ini_file_loader_1.CONFIG_PREFIX_SEPARATOR)]; - if (servicesSection) { - const servicePrefixParts = serviceId.split(" ").map((w) => w.toLowerCase()); - const endpointUrl = servicesSection[[servicePrefixParts.join("_"), CONFIG_ENDPOINT_URL].join(shared_ini_file_loader_1.CONFIG_PREFIX_SEPARATOR)]; - if (endpointUrl) - return endpointUrl; - } - } - const endpointUrl = profile[CONFIG_ENDPOINT_URL]; - if (endpointUrl) - return endpointUrl; - return undefined; - }, - default: undefined, -}); -exports.getEndpointUrlConfig = getEndpointUrlConfig; - - -/***/ }), - -/***/ 13636: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - endpointMiddleware: () => endpointMiddleware, - endpointMiddlewareOptions: () => endpointMiddlewareOptions, - getEndpointFromInstructions: () => getEndpointFromInstructions, - getEndpointPlugin: () => getEndpointPlugin, - resolveEndpointConfig: () => resolveEndpointConfig, - resolveParams: () => resolveParams, - toEndpointV1: () => toEndpointV1 -}); -module.exports = __toCommonJS(src_exports); - -// src/service-customizations/s3.ts -var resolveParamsForS3 = /* @__PURE__ */ __name(async (endpointParams) => { - const bucket = endpointParams?.Bucket || ""; - if (typeof endpointParams.Bucket === "string") { - endpointParams.Bucket = bucket.replace(/#/g, encodeURIComponent("#")).replace(/\?/g, encodeURIComponent("?")); - } - if (isArnBucketName(bucket)) { - if (endpointParams.ForcePathStyle === true) { - throw new Error("Path-style addressing cannot be used with ARN buckets"); - } - } else if (!isDnsCompatibleBucketName(bucket) || bucket.indexOf(".") !== -1 && !String(endpointParams.Endpoint).startsWith("http:") || bucket.toLowerCase() !== bucket || bucket.length < 3) { - endpointParams.ForcePathStyle = true; - } - if (endpointParams.DisableMultiRegionAccessPoints) { - endpointParams.disableMultiRegionAccessPoints = true; - endpointParams.DisableMRAP = true; - } - return endpointParams; -}, "resolveParamsForS3"); -var DOMAIN_PATTERN = /^[a-z0-9][a-z0-9\.\-]{1,61}[a-z0-9]$/; -var IP_ADDRESS_PATTERN = /(\d+\.){3}\d+/; -var DOTS_PATTERN = /\.\./; -var isDnsCompatibleBucketName = /* @__PURE__ */ __name((bucketName) => DOMAIN_PATTERN.test(bucketName) && !IP_ADDRESS_PATTERN.test(bucketName) && !DOTS_PATTERN.test(bucketName), "isDnsCompatibleBucketName"); -var isArnBucketName = /* @__PURE__ */ __name((bucketName) => { - const [arn, partition, service, , , bucket] = bucketName.split(":"); - const isArn = arn === "arn" && bucketName.split(":").length >= 6; - const isValidArn = Boolean(isArn && partition && service && bucket); - if (isArn && !isValidArn) { - throw new Error(`Invalid ARN: ${bucketName} was an invalid ARN.`); - } - return isValidArn; -}, "isArnBucketName"); - -// src/adaptors/createConfigValueProvider.ts -var createConfigValueProvider = /* @__PURE__ */ __name((configKey, canonicalEndpointParamKey, config) => { - const configProvider = /* @__PURE__ */ __name(async () => { - const configValue = config[configKey] ?? config[canonicalEndpointParamKey]; - if (typeof configValue === "function") { - return configValue(); - } - return configValue; - }, "configProvider"); - if (configKey === "credentialScope" || canonicalEndpointParamKey === "CredentialScope") { - return async () => { - const credentials = typeof config.credentials === "function" ? await config.credentials() : config.credentials; - const configValue = credentials?.credentialScope ?? credentials?.CredentialScope; - return configValue; - }; - } - if (configKey === "accountId" || canonicalEndpointParamKey === "AccountId") { - return async () => { - const credentials = typeof config.credentials === "function" ? await config.credentials() : config.credentials; - const configValue = credentials?.accountId ?? credentials?.AccountId; - return configValue; - }; - } - if (configKey === "endpoint" || canonicalEndpointParamKey === "endpoint") { - return async () => { - const endpoint = await configProvider(); - if (endpoint && typeof endpoint === "object") { - if ("url" in endpoint) { - return endpoint.url.href; + updateHttpClientConfig(key, value) { + this.config = void 0 + this.configProvider = this.configProvider.then(config => { + return { + ...config, + [key]: value + } + }) } - if ("hostname" in endpoint) { - const { protocol, hostname, port, path } = endpoint; - return `${protocol}//${hostname}${port ? ":" + port : ""}${path}`; + httpHandlerConfigs() { + return this.config ?? {} } } - return endpoint; - }; - } - return configProvider; -}, "createConfigValueProvider"); - -// src/adaptors/getEndpointFromInstructions.ts -var import_getEndpointFromConfig = __nccwpck_require__(76528); - -// src/adaptors/toEndpointV1.ts -var import_url_parser = __nccwpck_require__(57247); -var toEndpointV1 = /* @__PURE__ */ __name((endpoint) => { - if (typeof endpoint === "object") { - if ("url" in endpoint) { - return (0, import_url_parser.parseUrl)(endpoint.url); - } - return endpoint; - } - return (0, import_url_parser.parseUrl)(endpoint); -}, "toEndpointV1"); - -// src/adaptors/getEndpointFromInstructions.ts -var getEndpointFromInstructions = /* @__PURE__ */ __name(async (commandInput, instructionsSupplier, clientConfig, context) => { - if (!clientConfig.endpoint) { - let endpointFromConfig; - if (clientConfig.serviceConfiguredEndpoint) { - endpointFromConfig = await clientConfig.serviceConfiguredEndpoint(); - } else { - endpointFromConfig = await (0, import_getEndpointFromConfig.getEndpointFromConfig)(clientConfig.serviceId); - } - if (endpointFromConfig) { - clientConfig.endpoint = () => Promise.resolve(toEndpointV1(endpointFromConfig)); - } - } - const endpointParams = await resolveParams(commandInput, instructionsSupplier, clientConfig); - if (typeof clientConfig.endpointProvider !== "function") { - throw new Error("config.endpointProvider is not set."); - } - const endpoint = clientConfig.endpointProvider(endpointParams, context); - return endpoint; -}, "getEndpointFromInstructions"); -var resolveParams = /* @__PURE__ */ __name(async (commandInput, instructionsSupplier, clientConfig) => { - const endpointParams = {}; - const instructions = instructionsSupplier?.getEndpointParameterInstructions?.() || {}; - for (const [name, instruction] of Object.entries(instructions)) { - switch (instruction.type) { - case "staticContextParams": - endpointParams[name] = instruction.value; - break; - case "contextParams": - endpointParams[name] = commandInput[instruction.name]; - break; - case "clientContextParams": - case "builtInParams": - endpointParams[name] = await createConfigValueProvider(instruction.name, name, clientConfig)(); - break; - case "operationContextParams": - endpointParams[name] = instruction.get(commandInput); - break; - default: - throw new Error("Unrecognized endpoint parameter instruction: " + JSON.stringify(instruction)); - } - } - if (Object.keys(instructions).length === 0) { - Object.assign(endpointParams, clientConfig); - } - if (String(clientConfig.serviceId).toLowerCase() === "s3") { - await resolveParamsForS3(endpointParams); - } - return endpointParams; -}, "resolveParams"); - -// src/endpointMiddleware.ts -var import_core = __nccwpck_require__(27588); -var import_util_middleware = __nccwpck_require__(69474); -var endpointMiddleware = /* @__PURE__ */ __name(({ - config, - instructions -}) => { - return (next, context) => async (args) => { - if (config.endpoint) { - (0, import_core.setFeature)(context, "ENDPOINT_OVERRIDE", "N"); - } - const endpoint = await getEndpointFromInstructions( - args.input, - { - getEndpointParameterInstructions() { - return instructions; - } - }, - { ...config }, - context - ); - context.endpointV2 = endpoint; - context.authSchemes = endpoint.properties?.authSchemes; - const authScheme = context.authSchemes?.[0]; - if (authScheme) { - context["signing_region"] = authScheme.signingRegion; - context["signing_service"] = authScheme.signingName; - const smithyContext = (0, import_util_middleware.getSmithyContext)(context); - const httpAuthOption = smithyContext?.selectedHttpAuthScheme?.httpAuthOption; - if (httpAuthOption) { - httpAuthOption.signingProperties = Object.assign( - httpAuthOption.signingProperties || {}, - { - signing_region: authScheme.signingRegion, - signingRegion: authScheme.signingRegion, - signing_service: authScheme.signingName, - signingName: authScheme.signingName, - signingRegionSet: authScheme.signingRegionSet - }, - authScheme.properties - ); - } - } - return next({ - ...args - }); - }; -}, "endpointMiddleware"); - -// src/getEndpointPlugin.ts -var import_middleware_serde = __nccwpck_require__(88037); -var endpointMiddlewareOptions = { - step: "serialize", - tags: ["ENDPOINT_PARAMETERS", "ENDPOINT_V2", "ENDPOINT"], - name: "endpointV2Middleware", - override: true, - relation: "before", - toMiddleware: import_middleware_serde.serializerMiddlewareOption.name -}; -var getEndpointPlugin = /* @__PURE__ */ __name((config, instructions) => ({ - applyToStack: (clientStack) => { - clientStack.addRelativeTo( - endpointMiddleware({ - config, - instructions - }), - endpointMiddlewareOptions - ); - } -}), "getEndpointPlugin"); - -// src/resolveEndpointConfig.ts - -var import_getEndpointFromConfig2 = __nccwpck_require__(76528); -var resolveEndpointConfig = /* @__PURE__ */ __name((input) => { - const tls = input.tls ?? true; - const { endpoint, useDualstackEndpoint, useFipsEndpoint } = input; - const customEndpointProvider = endpoint != null ? async () => toEndpointV1(await (0, import_util_middleware.normalizeProvider)(endpoint)()) : void 0; - const isCustomEndpoint = !!endpoint; - const resolvedConfig = Object.assign(input, { - endpoint: customEndpointProvider, - tls, - isCustomEndpoint, - useDualstackEndpoint: (0, import_util_middleware.normalizeProvider)(useDualstackEndpoint ?? false), - useFipsEndpoint: (0, import_util_middleware.normalizeProvider)(useFipsEndpoint ?? false) - }); - let configuredEndpointPromise = void 0; - resolvedConfig.serviceConfiguredEndpoint = async () => { - if (input.serviceId && !configuredEndpointPromise) { - configuredEndpointPromise = (0, import_getEndpointFromConfig2.getEndpointFromConfig)(input.serviceId); - } - return configuredEndpointPromise; - }; - return resolvedConfig; -}, "resolveEndpointConfig"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 74268: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - AdaptiveRetryStrategy: () => AdaptiveRetryStrategy, - CONFIG_MAX_ATTEMPTS: () => CONFIG_MAX_ATTEMPTS, - CONFIG_RETRY_MODE: () => CONFIG_RETRY_MODE, - ENV_MAX_ATTEMPTS: () => ENV_MAX_ATTEMPTS, - ENV_RETRY_MODE: () => ENV_RETRY_MODE, - NODE_MAX_ATTEMPT_CONFIG_OPTIONS: () => NODE_MAX_ATTEMPT_CONFIG_OPTIONS, - NODE_RETRY_MODE_CONFIG_OPTIONS: () => NODE_RETRY_MODE_CONFIG_OPTIONS, - StandardRetryStrategy: () => StandardRetryStrategy, - defaultDelayDecider: () => defaultDelayDecider, - defaultRetryDecider: () => defaultRetryDecider, - getOmitRetryHeadersPlugin: () => getOmitRetryHeadersPlugin, - getRetryAfterHint: () => getRetryAfterHint, - getRetryPlugin: () => getRetryPlugin, - omitRetryHeadersMiddleware: () => omitRetryHeadersMiddleware, - omitRetryHeadersMiddlewareOptions: () => omitRetryHeadersMiddlewareOptions, - resolveRetryConfig: () => resolveRetryConfig, - retryMiddleware: () => retryMiddleware, - retryMiddlewareOptions: () => retryMiddlewareOptions -}); -module.exports = __toCommonJS(src_exports); - -// src/AdaptiveRetryStrategy.ts - - -// src/StandardRetryStrategy.ts -var import_protocol_http = __nccwpck_require__(31788); - - -var import_uuid = __nccwpck_require__(21286); - -// src/defaultRetryQuota.ts -var import_util_retry = __nccwpck_require__(31955); -var getDefaultRetryQuota = /* @__PURE__ */ __name((initialRetryTokens, options) => { - const MAX_CAPACITY = initialRetryTokens; - const noRetryIncrement = options?.noRetryIncrement ?? import_util_retry.NO_RETRY_INCREMENT; - const retryCost = options?.retryCost ?? import_util_retry.RETRY_COST; - const timeoutRetryCost = options?.timeoutRetryCost ?? import_util_retry.TIMEOUT_RETRY_COST; - let availableCapacity = initialRetryTokens; - const getCapacityAmount = /* @__PURE__ */ __name((error) => error.name === "TimeoutError" ? timeoutRetryCost : retryCost, "getCapacityAmount"); - const hasRetryTokens = /* @__PURE__ */ __name((error) => getCapacityAmount(error) <= availableCapacity, "hasRetryTokens"); - const retrieveRetryTokens = /* @__PURE__ */ __name((error) => { - if (!hasRetryTokens(error)) { - throw new Error("No retry token available"); - } - const capacityAmount = getCapacityAmount(error); - availableCapacity -= capacityAmount; - return capacityAmount; - }, "retrieveRetryTokens"); - const releaseRetryTokens = /* @__PURE__ */ __name((capacityReleaseAmount) => { - availableCapacity += capacityReleaseAmount ?? noRetryIncrement; - availableCapacity = Math.min(availableCapacity, MAX_CAPACITY); - }, "releaseRetryTokens"); - return Object.freeze({ - hasRetryTokens, - retrieveRetryTokens, - releaseRetryTokens - }); -}, "getDefaultRetryQuota"); - -// src/delayDecider.ts - -var defaultDelayDecider = /* @__PURE__ */ __name((delayBase, attempts) => Math.floor(Math.min(import_util_retry.MAXIMUM_RETRY_DELAY, Math.random() * 2 ** attempts * delayBase)), "defaultDelayDecider"); - -// src/retryDecider.ts -var import_service_error_classification = __nccwpck_require__(44652); -var defaultRetryDecider = /* @__PURE__ */ __name((error) => { - if (!error) { - return false; - } - 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); -}, "defaultRetryDecider"); - -// src/util.ts -var asSdkError = /* @__PURE__ */ __name((error) => { - if (error instanceof Error) - return error; - if (error instanceof Object) - return Object.assign(new Error(), error); - if (typeof error === "string") - return new Error(error); - return new Error(`AWS SDK error wrapper for ${error}`); -}, "asSdkError"); - -// src/StandardRetryStrategy.ts -var StandardRetryStrategy = class { - constructor(maxAttemptsProvider, options) { - this.maxAttemptsProvider = maxAttemptsProvider; - this.mode = import_util_retry.RETRY_MODES.STANDARD; - this.retryDecider = options?.retryDecider ?? defaultRetryDecider; - this.delayDecider = options?.delayDecider ?? defaultDelayDecider; - this.retryQuota = options?.retryQuota ?? getDefaultRetryQuota(import_util_retry.INITIAL_RETRY_TOKENS); - } - static { - __name(this, "StandardRetryStrategy"); - } - shouldRetry(error, attempts, maxAttempts) { - return attempts < maxAttempts && this.retryDecider(error) && this.retryQuota.hasRetryTokens(error); - } - async getMaxAttempts() { - let maxAttempts; - try { - maxAttempts = await this.maxAttemptsProvider(); - } catch (error) { - maxAttempts = import_util_retry.DEFAULT_MAX_ATTEMPTS; - } - return maxAttempts; - } - async retry(next, args, options) { - let retryTokenAmount; - let attempts = 0; - let totalDelay = 0; - const maxAttempts = await this.getMaxAttempts(); - const { request } = args; - if (import_protocol_http.HttpRequest.isInstance(request)) { - request.headers[import_util_retry.INVOCATION_ID_HEADER] = (0, import_uuid.v4)(); - } - while (true) { - try { - if (import_protocol_http.HttpRequest.isInstance(request)) { - request.headers[import_util_retry.REQUEST_HEADER] = `attempt=${attempts + 1}; max=${maxAttempts}`; - } - if (options?.beforeRequest) { - await options.beforeRequest(); - } - const { response, output } = await next(args); - if (options?.afterRequest) { - options.afterRequest(response); - } - this.retryQuota.releaseRetryTokens(retryTokenAmount); - output.$metadata.attempts = attempts + 1; - output.$metadata.totalRetryDelay = totalDelay; - return { response, output }; - } catch (e) { - const err = asSdkError(e); - attempts++; - if (this.shouldRetry(err, attempts, maxAttempts)) { - retryTokenAmount = this.retryQuota.retrieveRetryTokens(err); - const delayFromDecider = this.delayDecider( - (0, import_service_error_classification.isThrottlingError)(err) ? import_util_retry.THROTTLING_RETRY_DELAY_BASE : import_util_retry.DEFAULT_RETRY_DELAY_BASE, - attempts - ); - const delayFromResponse = getDelayFromRetryAfterHeader(err.$response); - const delay = Math.max(delayFromResponse || 0, delayFromDecider); - totalDelay += delay; - await new Promise((resolve) => setTimeout(resolve, delay)); - continue; - } - if (!err.$metadata) { - err.$metadata = {}; - } - err.$metadata.attempts = attempts; - err.$metadata.totalRetryDelay = totalDelay; - throw err; - } - } - } -}; -var getDelayFromRetryAfterHeader = /* @__PURE__ */ __name((response) => { - if (!import_protocol_http.HttpResponse.isInstance(response)) - return; - const retryAfterHeaderName = Object.keys(response.headers).find((key) => key.toLowerCase() === "retry-after"); - if (!retryAfterHeaderName) - return; - const retryAfter = response.headers[retryAfterHeaderName]; - const retryAfterSeconds = Number(retryAfter); - if (!Number.isNaN(retryAfterSeconds)) - return retryAfterSeconds * 1e3; - const retryAfterDate = new Date(retryAfter); - return retryAfterDate.getTime() - Date.now(); -}, "getDelayFromRetryAfterHeader"); - -// src/AdaptiveRetryStrategy.ts -var AdaptiveRetryStrategy = class extends StandardRetryStrategy { - static { - __name(this, "AdaptiveRetryStrategy"); - } - constructor(maxAttemptsProvider, options) { - const { rateLimiter, ...superOptions } = options ?? {}; - super(maxAttemptsProvider, superOptions); - this.rateLimiter = rateLimiter ?? new import_util_retry.DefaultRateLimiter(); - this.mode = import_util_retry.RETRY_MODES.ADAPTIVE; - } - async retry(next, args) { - return super.retry(next, args, { - beforeRequest: async () => { - return this.rateLimiter.getSendToken(); - }, - afterRequest: (response) => { - this.rateLimiter.updateClientSendingRate(response); - } - }); - } -}; - -// src/configurations.ts -var import_util_middleware = __nccwpck_require__(69474); - -var ENV_MAX_ATTEMPTS = "AWS_MAX_ATTEMPTS"; -var CONFIG_MAX_ATTEMPTS = "max_attempts"; -var NODE_MAX_ATTEMPT_CONFIG_OPTIONS = { - environmentVariableSelector: (env) => { - const value = env[ENV_MAX_ATTEMPTS]; - if (!value) - return void 0; - const maxAttempt = parseInt(value); - if (Number.isNaN(maxAttempt)) { - throw new Error(`Environment variable ${ENV_MAX_ATTEMPTS} mast be a number, got "${value}"`); - } - return maxAttempt; - }, - configFileSelector: (profile) => { - const value = profile[CONFIG_MAX_ATTEMPTS]; - if (!value) - return void 0; - const maxAttempt = parseInt(value); - if (Number.isNaN(maxAttempt)) { - throw new Error(`Shared config file entry ${CONFIG_MAX_ATTEMPTS} mast be a number, got "${value}"`); - } - return maxAttempt; - }, - default: import_util_retry.DEFAULT_MAX_ATTEMPTS -}; -var resolveRetryConfig = /* @__PURE__ */ __name((input) => { - const { retryStrategy, retryMode: _retryMode, maxAttempts: _maxAttempts } = input; - const maxAttempts = (0, import_util_middleware.normalizeProvider)(_maxAttempts ?? import_util_retry.DEFAULT_MAX_ATTEMPTS); - return Object.assign(input, { - maxAttempts, - retryStrategy: async () => { - if (retryStrategy) { - return retryStrategy; - } - const retryMode = await (0, import_util_middleware.normalizeProvider)(_retryMode)(); - if (retryMode === import_util_retry.RETRY_MODES.ADAPTIVE) { - return new import_util_retry.AdaptiveRetryStrategy(maxAttempts); - } - return new import_util_retry.StandardRetryStrategy(maxAttempts); - } - }); -}, "resolveRetryConfig"); -var ENV_RETRY_MODE = "AWS_RETRY_MODE"; -var CONFIG_RETRY_MODE = "retry_mode"; -var NODE_RETRY_MODE_CONFIG_OPTIONS = { - environmentVariableSelector: (env) => env[ENV_RETRY_MODE], - configFileSelector: (profile) => profile[CONFIG_RETRY_MODE], - default: import_util_retry.DEFAULT_RETRY_MODE -}; - -// src/omitRetryHeadersMiddleware.ts - - -var omitRetryHeadersMiddleware = /* @__PURE__ */ __name(() => (next) => async (args) => { - const { request } = args; - if (import_protocol_http.HttpRequest.isInstance(request)) { - delete request.headers[import_util_retry.INVOCATION_ID_HEADER]; - delete request.headers[import_util_retry.REQUEST_HEADER]; - } - return next(args); -}, "omitRetryHeadersMiddleware"); -var omitRetryHeadersMiddlewareOptions = { - name: "omitRetryHeadersMiddleware", - tags: ["RETRY", "HEADERS", "OMIT_RETRY_HEADERS"], - relation: "before", - toMiddleware: "awsAuthMiddleware", - override: true -}; -var getOmitRetryHeadersPlugin = /* @__PURE__ */ __name((options) => ({ - applyToStack: (clientStack) => { - clientStack.addRelativeTo(omitRetryHeadersMiddleware(), omitRetryHeadersMiddlewareOptions); - } -}), "getOmitRetryHeadersPlugin"); + __name(_NodeHttpHandler, 'NodeHttpHandler') + var NodeHttpHandler = _NodeHttpHandler -// src/retryMiddleware.ts + // src/node-http2-handler.ts + var import_http22 = __nccwpck_require__(85158) -var import_smithy_client = __nccwpck_require__(76583); + // src/node-http2-connection-manager.ts + var import_http2 = __toESM(__nccwpck_require__(85158)) - -var import_isStreamingPayload = __nccwpck_require__(91981); -var retryMiddleware = /* @__PURE__ */ __name((options) => (next, context) => async (args) => { - let retryStrategy = await options.retryStrategy(); - const maxAttempts = await options.maxAttempts(); - if (isRetryStrategyV2(retryStrategy)) { - retryStrategy = retryStrategy; - let retryToken = await retryStrategy.acquireInitialRetryToken(context["partition_id"]); - let lastError = new Error(); - let attempts = 0; - let totalRetryDelay = 0; - const { request } = args; - const isRequest = import_protocol_http.HttpRequest.isInstance(request); - if (isRequest) { - request.headers[import_util_retry.INVOCATION_ID_HEADER] = (0, import_uuid.v4)(); - } - while (true) { - try { - if (isRequest) { - request.headers[import_util_retry.REQUEST_HEADER] = `attempt=${attempts + 1}; max=${maxAttempts}`; - } - const { response, output } = await next(args); - retryStrategy.recordSuccess(retryToken); - output.$metadata.attempts = attempts + 1; - output.$metadata.totalRetryDelay = totalRetryDelay; - return { response, output }; - } catch (e) { - const retryErrorInfo = getRetryErrorInfo(e); - lastError = asSdkError(e); - if (isRequest && (0, import_isStreamingPayload.isStreamingPayload)(request)) { - (context.logger instanceof import_smithy_client.NoOpLogger ? console : context.logger)?.warn( - "An error was encountered in a non-retryable streaming request." - ); - throw lastError; + // src/node-http2-connection-pool.ts + var _NodeHttp2ConnectionPool = class _NodeHttp2ConnectionPool { + constructor(sessions) { + this.sessions = [] + this.sessions = sessions ?? [] } - try { - retryToken = await retryStrategy.refreshRetryTokenForRetry(retryToken, retryErrorInfo); - } catch (refreshError) { - if (!lastError.$metadata) { - lastError.$metadata = {}; + poll() { + if (this.sessions.length > 0) { + return this.sessions.shift() } - lastError.$metadata.attempts = attempts + 1; - lastError.$metadata.totalRetryDelay = totalRetryDelay; - throw lastError; } - attempts = retryToken.getRetryCount(); - const delay = retryToken.getRetryDelay(); - totalRetryDelay += delay; - await new Promise((resolve) => setTimeout(resolve, delay)); - } - } - } else { - retryStrategy = retryStrategy; - if (retryStrategy?.mode) - context.userAgent = [...context.userAgent || [], ["cfg/retry-mode", retryStrategy.mode]]; - return retryStrategy.retry(next, args); - } -}, "retryMiddleware"); -var isRetryStrategyV2 = /* @__PURE__ */ __name((retryStrategy) => typeof retryStrategy.acquireInitialRetryToken !== "undefined" && typeof retryStrategy.refreshRetryTokenForRetry !== "undefined" && typeof retryStrategy.recordSuccess !== "undefined", "isRetryStrategyV2"); -var getRetryErrorInfo = /* @__PURE__ */ __name((error) => { - const errorInfo = { - error, - errorType: getRetryErrorType(error) - }; - const retryAfterHint = getRetryAfterHint(error.$response); - if (retryAfterHint) { - errorInfo.retryAfterHint = retryAfterHint; - } - return errorInfo; -}, "getRetryErrorInfo"); -var getRetryErrorType = /* @__PURE__ */ __name((error) => { - if ((0, import_service_error_classification.isThrottlingError)(error)) - return "THROTTLING"; - if ((0, import_service_error_classification.isTransientError)(error)) - return "TRANSIENT"; - if ((0, import_service_error_classification.isServerError)(error)) - return "SERVER_ERROR"; - return "CLIENT_ERROR"; -}, "getRetryErrorType"); -var retryMiddlewareOptions = { - name: "retryMiddleware", - tags: ["RETRY"], - step: "finalizeRequest", - priority: "high", - override: true -}; -var getRetryPlugin = /* @__PURE__ */ __name((options) => ({ - applyToStack: (clientStack) => { - clientStack.add(retryMiddleware(options), retryMiddlewareOptions); - } -}), "getRetryPlugin"); -var getRetryAfterHint = /* @__PURE__ */ __name((response) => { - if (!import_protocol_http.HttpResponse.isInstance(response)) - return; - const retryAfterHeaderName = Object.keys(response.headers).find((key) => key.toLowerCase() === "retry-after"); - if (!retryAfterHeaderName) - return; - const retryAfter = response.headers[retryAfterHeaderName]; - const retryAfterSeconds = Number(retryAfter); - if (!Number.isNaN(retryAfterSeconds)) - return new Date(retryAfterSeconds * 1e3); - const retryAfterDate = new Date(retryAfter); - return retryAfterDate; -}, "getRetryAfterHint"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 91981: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.isStreamingPayload = void 0; -const stream_1 = __nccwpck_require__(12781); -const isStreamingPayload = (request) => (request === null || request === void 0 ? void 0 : request.body) instanceof stream_1.Readable || - (typeof ReadableStream !== "undefined" && (request === null || request === void 0 ? void 0 : request.body) instanceof ReadableStream); -exports.isStreamingPayload = isStreamingPayload; - - -/***/ }), - -/***/ 88037: -/***/ ((module) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - deserializerMiddleware: () => deserializerMiddleware, - deserializerMiddlewareOption: () => deserializerMiddlewareOption, - getSerdePlugin: () => getSerdePlugin, - serializerMiddleware: () => serializerMiddleware, - serializerMiddlewareOption: () => serializerMiddlewareOption -}); -module.exports = __toCommonJS(src_exports); - -// src/deserializerMiddleware.ts -var deserializerMiddleware = /* @__PURE__ */ __name((options, deserializer) => (next, context) => async (args) => { - const { response } = await next(args); - try { - const parsed = await deserializer(response, options); - return { - response, - output: parsed - }; - } catch (error) { - Object.defineProperty(error, "$response", { - value: response - }); - if (!("$metadata" in error)) { - const hint = `Deserialization error: to see the raw response, inspect the hidden field {error}.$response on this object.`; - try { - error.message += "\n " + hint; - } catch (e) { - if (!context.logger || context.logger?.constructor?.name === "NoOpLogger") { - console.warn(hint); - } else { - context.logger?.warn?.(hint); + offerLast(session) { + this.sessions.push(session) } - } - if (typeof error.$responseBodyText !== "undefined") { - if (error.$response) { - error.$response.body = error.$responseBodyText; + contains(session) { + return this.sessions.includes(session) + } + remove(session) { + this.sessions = this.sessions.filter(s => s !== session) + } + [Symbol.iterator]() { + return this.sessions[Symbol.iterator]() + } + destroy(connection) { + for (const session of this.sessions) { + if (session === connection) { + if (!session.destroyed) { + session.destroy() + } + } + } } } - } - throw error; - } -}, "deserializerMiddleware"); + __name(_NodeHttp2ConnectionPool, 'NodeHttp2ConnectionPool') + var NodeHttp2ConnectionPool = _NodeHttp2ConnectionPool -// src/serializerMiddleware.ts -var serializerMiddleware = /* @__PURE__ */ __name((options, serializer) => (next, context) => async (args) => { - const endpoint = context.endpointV2?.url && options.urlParser ? async () => options.urlParser(context.endpointV2.url) : options.endpoint; - if (!endpoint) { - throw new Error("No valid endpoint provider available."); - } - const request = await serializer(args.input, { ...options, endpoint }); - return next({ - ...args, - request - }); -}, "serializerMiddleware"); - -// src/serdePlugin.ts -var deserializerMiddlewareOption = { - name: "deserializerMiddleware", - step: "deserialize", - tags: ["DESERIALIZER"], - override: true -}; -var serializerMiddlewareOption = { - name: "serializerMiddleware", - step: "serialize", - tags: ["SERIALIZER"], - override: true -}; -function getSerdePlugin(config, serializer, deserializer) { - return { - applyToStack: (commandStack) => { - commandStack.add(deserializerMiddleware(config, deserializer), deserializerMiddlewareOption); - commandStack.add(serializerMiddleware(config, serializer), serializerMiddlewareOption); - } - }; -} -__name(getSerdePlugin, "getSerdePlugin"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 22513: -/***/ ((module) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - constructStack: () => constructStack -}); -module.exports = __toCommonJS(src_exports); - -// src/MiddlewareStack.ts -var getAllAliases = /* @__PURE__ */ __name((name, aliases) => { - const _aliases = []; - if (name) { - _aliases.push(name); - } - if (aliases) { - for (const alias of aliases) { - _aliases.push(alias); - } - } - return _aliases; -}, "getAllAliases"); -var getMiddlewareNameWithAliases = /* @__PURE__ */ __name((name, aliases) => { - return `${name || "anonymous"}${aliases && aliases.length > 0 ? ` (a.k.a. ${aliases.join(",")})` : ""}`; -}, "getMiddlewareNameWithAliases"); -var constructStack = /* @__PURE__ */ __name(() => { - let absoluteEntries = []; - let relativeEntries = []; - let identifyOnResolve = false; - const entriesNameSet = /* @__PURE__ */ new Set(); - const sort = /* @__PURE__ */ __name((entries) => entries.sort( - (a, b) => stepWeights[b.step] - stepWeights[a.step] || priorityWeights[b.priority || "normal"] - priorityWeights[a.priority || "normal"] - ), "sort"); - const removeByName = /* @__PURE__ */ __name((toRemove) => { - let isRemoved = false; - const filterCb = /* @__PURE__ */ __name((entry) => { - const aliases = getAllAliases(entry.name, entry.aliases); - if (aliases.includes(toRemove)) { - isRemoved = true; - for (const alias of aliases) { - entriesNameSet.delete(alias); - } - return false; - } - return true; - }, "filterCb"); - absoluteEntries = absoluteEntries.filter(filterCb); - relativeEntries = relativeEntries.filter(filterCb); - return isRemoved; - }, "removeByName"); - const removeByReference = /* @__PURE__ */ __name((toRemove) => { - let isRemoved = false; - const filterCb = /* @__PURE__ */ __name((entry) => { - if (entry.middleware === toRemove) { - isRemoved = true; - for (const alias of getAllAliases(entry.name, entry.aliases)) { - entriesNameSet.delete(alias); - } - return false; - } - return true; - }, "filterCb"); - absoluteEntries = absoluteEntries.filter(filterCb); - relativeEntries = relativeEntries.filter(filterCb); - return isRemoved; - }, "removeByReference"); - const cloneTo = /* @__PURE__ */ __name((toStack) => { - absoluteEntries.forEach((entry) => { - toStack.add(entry.middleware, { ...entry }); - }); - relativeEntries.forEach((entry) => { - toStack.addRelativeTo(entry.middleware, { ...entry }); - }); - toStack.identifyOnResolve?.(stack.identifyOnResolve()); - return toStack; - }, "cloneTo"); - const expandRelativeMiddlewareList = /* @__PURE__ */ __name((from) => { - const expandedMiddlewareList = []; - from.before.forEach((entry) => { - if (entry.before.length === 0 && entry.after.length === 0) { - expandedMiddlewareList.push(entry); - } else { - expandedMiddlewareList.push(...expandRelativeMiddlewareList(entry)); - } - }); - expandedMiddlewareList.push(from); - from.after.reverse().forEach((entry) => { - if (entry.before.length === 0 && entry.after.length === 0) { - expandedMiddlewareList.push(entry); - } else { - expandedMiddlewareList.push(...expandRelativeMiddlewareList(entry)); - } - }); - return expandedMiddlewareList; - }, "expandRelativeMiddlewareList"); - const getMiddlewareList = /* @__PURE__ */ __name((debug = false) => { - const normalizedAbsoluteEntries = []; - const normalizedRelativeEntries = []; - const normalizedEntriesNameMap = {}; - absoluteEntries.forEach((entry) => { - const normalizedEntry = { - ...entry, - before: [], - after: [] - }; - for (const alias of getAllAliases(normalizedEntry.name, normalizedEntry.aliases)) { - normalizedEntriesNameMap[alias] = normalizedEntry; - } - normalizedAbsoluteEntries.push(normalizedEntry); - }); - relativeEntries.forEach((entry) => { - const normalizedEntry = { - ...entry, - before: [], - after: [] - }; - for (const alias of getAllAliases(normalizedEntry.name, normalizedEntry.aliases)) { - normalizedEntriesNameMap[alias] = normalizedEntry; - } - normalizedRelativeEntries.push(normalizedEntry); - }); - normalizedRelativeEntries.forEach((entry) => { - if (entry.toMiddleware) { - const toMiddleware = normalizedEntriesNameMap[entry.toMiddleware]; - if (toMiddleware === void 0) { - if (debug) { - return; + // src/node-http2-connection-manager.ts + var _NodeHttp2ConnectionManager = class _NodeHttp2ConnectionManager { + constructor(config) { + this.sessionCache = /* @__PURE__ */ new Map() + this.config = config + if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) { + throw new RangeError('maxConcurrency must be greater than zero.') } - throw new Error( - `${entry.toMiddleware} is not found when adding ${getMiddlewareNameWithAliases(entry.name, entry.aliases)} middleware ${entry.relation} ${entry.toMiddleware}` - ); - } - if (entry.relation === "after") { - toMiddleware.after.push(entry); - } - if (entry.relation === "before") { - toMiddleware.before.push(entry); - } - } - }); - const mainChain = sort(normalizedAbsoluteEntries).map(expandRelativeMiddlewareList).reduce( - (wholeList, expandedMiddlewareList) => { - wholeList.push(...expandedMiddlewareList); - return wholeList; - }, - [] - ); - return mainChain; - }, "getMiddlewareList"); - const stack = { - add: (middleware, options = {}) => { - const { name, override, aliases: _aliases } = options; - const entry = { - step: "initialize", - priority: "normal", - middleware, - ...options - }; - const aliases = getAllAliases(name, _aliases); - if (aliases.length > 0) { - if (aliases.some((alias) => entriesNameSet.has(alias))) { - if (!override) - throw new Error(`Duplicate middleware name '${getMiddlewareNameWithAliases(name, _aliases)}'`); - for (const alias of aliases) { - const toOverrideIndex = absoluteEntries.findIndex( - (entry2) => entry2.name === alias || entry2.aliases?.some((a) => a === alias) - ); - if (toOverrideIndex === -1) { - continue; - } - const toOverride = absoluteEntries[toOverrideIndex]; - if (toOverride.step !== entry.step || entry.priority !== toOverride.priority) { - throw new Error( - `"${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.` - ); + } + lease(requestContext, connectionConfiguration) { + const url = this.getUrlString(requestContext) + const existingPool = this.sessionCache.get(url) + if (existingPool) { + const existingSession = existingPool.poll() + if (existingSession && !this.config.disableConcurrency) { + return existingSession } - absoluteEntries.splice(toOverrideIndex, 1); } + const session = import_http2.default.connect(url) + if (this.config.maxConcurrency) { + session.settings( + { maxConcurrentStreams: this.config.maxConcurrency }, + err => { + if (err) { + throw new Error( + 'Fail to set maxConcurrentStreams to ' + + this.config.maxConcurrency + + 'when creating new session for ' + + requestContext.destination.toString() + ) + } + } + ) + } + session.unref() + const destroySessionCb = /* @__PURE__ */ __name(() => { + session.destroy() + this.deleteSession(url, session) + }, 'destroySessionCb') + session.on('goaway', destroySessionCb) + session.on('error', destroySessionCb) + session.on('frameError', destroySessionCb) + session.on('close', () => this.deleteSession(url, session)) + if (connectionConfiguration.requestTimeout) { + session.setTimeout( + connectionConfiguration.requestTimeout, + destroySessionCb + ) + } + const connectionPool = + this.sessionCache.get(url) || new NodeHttp2ConnectionPool() + connectionPool.offerLast(session) + this.sessionCache.set(url, connectionPool) + return session + } + /** + * Delete a session from the connection pool. + * @param authority The authority of the session to delete. + * @param session The session to delete. + */ + deleteSession(authority, session) { + const existingConnectionPool = this.sessionCache.get(authority) + if (!existingConnectionPool) { + return + } + if (!existingConnectionPool.contains(session)) { + return + } + existingConnectionPool.remove(session) + this.sessionCache.set(authority, existingConnectionPool) } - for (const alias of aliases) { - entriesNameSet.add(alias); + release(requestContext, session) { + var _a + const cacheKey = this.getUrlString(requestContext) + ;(_a = this.sessionCache.get(cacheKey)) == null + ? void 0 + : _a.offerLast(session) } - } - absoluteEntries.push(entry); - }, - addRelativeTo: (middleware, options) => { - const { name, override, aliases: _aliases } = options; - const entry = { - middleware, - ...options - }; - const aliases = getAllAliases(name, _aliases); - if (aliases.length > 0) { - if (aliases.some((alias) => entriesNameSet.has(alias))) { - if (!override) - throw new Error(`Duplicate middleware name '${getMiddlewareNameWithAliases(name, _aliases)}'`); - for (const alias of aliases) { - const toOverrideIndex = relativeEntries.findIndex( - (entry2) => entry2.name === alias || entry2.aliases?.some((a) => a === alias) - ); - if (toOverrideIndex === -1) { - continue; - } - const toOverride = relativeEntries[toOverrideIndex]; - if (toOverride.toMiddleware !== entry.toMiddleware || toOverride.relation !== entry.relation) { - throw new Error( - `"${getMiddlewareNameWithAliases(toOverride.name, toOverride.aliases)}" middleware ${toOverride.relation} "${toOverride.toMiddleware}" middleware cannot be overridden by "${getMiddlewareNameWithAliases(name, _aliases)}" middleware ${entry.relation} "${entry.toMiddleware}" middleware.` - ); + destroy() { + for (const [key, connectionPool] of this.sessionCache) { + for (const session of connectionPool) { + if (!session.destroyed) { + session.destroy() + } + connectionPool.remove(session) } - relativeEntries.splice(toOverrideIndex, 1); + this.sessionCache.delete(key) } } - for (const alias of aliases) { - entriesNameSet.add(alias); + setMaxConcurrentStreams(maxConcurrentStreams) { + if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) { + throw new RangeError( + 'maxConcurrentStreams must be greater than zero.' + ) + } + this.config.maxConcurrency = maxConcurrentStreams + } + setDisableConcurrentStreams(disableConcurrentStreams) { + this.config.disableConcurrency = disableConcurrentStreams + } + getUrlString(request) { + return request.destination.toString() + } + } + __name(_NodeHttp2ConnectionManager, 'NodeHttp2ConnectionManager') + var NodeHttp2ConnectionManager = _NodeHttp2ConnectionManager + + // src/node-http2-handler.ts + var _NodeHttp2Handler = class _NodeHttp2Handler { + constructor(options) { + this.metadata = { handlerProtocol: 'h2' } + this.connectionManager = new NodeHttp2ConnectionManager({}) + this.configProvider = new Promise((resolve, reject) => { + if (typeof options === 'function') { + options() + .then(opts => { + resolve(opts || {}) + }) + .catch(reject) + } else { + resolve(options || {}) + } + }) } - } - relativeEntries.push(entry); - }, - clone: () => cloneTo(constructStack()), - use: (plugin) => { - plugin.applyToStack(stack); - }, - remove: (toRemove) => { - if (typeof toRemove === "string") - return removeByName(toRemove); - else - return removeByReference(toRemove); - }, - removeByTag: (toRemove) => { - let isRemoved = false; - const filterCb = /* @__PURE__ */ __name((entry) => { - const { tags, name, aliases: _aliases } = entry; - if (tags && tags.includes(toRemove)) { - const aliases = getAllAliases(name, _aliases); - for (const alias of aliases) { - entriesNameSet.delete(alias); - } - isRemoved = true; - return false; - } - return true; - }, "filterCb"); - absoluteEntries = absoluteEntries.filter(filterCb); - relativeEntries = relativeEntries.filter(filterCb); - return isRemoved; - }, - concat: (from) => { - const cloned = cloneTo(constructStack()); - cloned.use(from); - cloned.identifyOnResolve( - identifyOnResolve || cloned.identifyOnResolve() || (from.identifyOnResolve?.() ?? false) - ); - return cloned; - }, - applyToStack: cloneTo, - identify: () => { - return getMiddlewareList(true).map((mw) => { - const step = mw.step ?? mw.relation + " " + mw.toMiddleware; - return getMiddlewareNameWithAliases(mw.name, mw.aliases) + " - " + step; - }); - }, - identifyOnResolve(toggle) { - if (typeof toggle === "boolean") - identifyOnResolve = toggle; - return identifyOnResolve; - }, - resolve: (handler, context) => { - for (const middleware of getMiddlewareList().map((entry) => entry.middleware).reverse()) { - handler = middleware(handler, context); - } - if (identifyOnResolve) { - console.log(stack.identify()); - } - return handler; - } - }; - return stack; -}, "constructStack"); -var stepWeights = { - initialize: 5, - serialize: 4, - build: 3, - finalizeRequest: 2, - deserialize: 1 -}; -var priorityWeights = { - high: 3, - normal: 2, - low: 1 -}; -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 6706: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - loadConfig: () => loadConfig -}); -module.exports = __toCommonJS(src_exports); - -// src/configLoader.ts - - -// src/fromEnv.ts -var import_property_provider = __nccwpck_require__(19248); - -// src/getSelectorName.ts -function getSelectorName(functionString) { - try { - const constants = new Set(Array.from(functionString.match(/([A-Z_]){3,}/g) ?? [])); - constants.delete("CONFIG"); - constants.delete("CONFIG_PREFIX_SEPARATOR"); - constants.delete("ENV"); - return [...constants].join(", "); - } catch (e) { - return functionString; - } -} -__name(getSelectorName, "getSelectorName"); - -// src/fromEnv.ts -var fromEnv = /* @__PURE__ */ __name((envVarSelector, logger) => async () => { - try { - const config = envVarSelector(process.env); - if (config === void 0) { - throw new Error(); - } - return config; - } catch (e) { - throw new import_property_provider.CredentialsProviderError( - e.message || `Not found in ENV: ${getSelectorName(envVarSelector.toString())}`, - { logger } - ); - } -}, "fromEnv"); - -// src/fromSharedConfigFiles.ts - -var import_shared_ini_file_loader = __nccwpck_require__(69001); -var fromSharedConfigFiles = /* @__PURE__ */ __name((configSelector, { preferredFile = "config", ...init } = {}) => async () => { - const profile = (0, import_shared_ini_file_loader.getProfileName)(init); - const { configFile, credentialsFile } = await (0, import_shared_ini_file_loader.loadSharedConfigFiles)(init); - const profileFromCredentials = credentialsFile[profile] || {}; - const profileFromConfig = configFile[profile] || {}; - const mergedProfile = preferredFile === "config" ? { ...profileFromCredentials, ...profileFromConfig } : { ...profileFromConfig, ...profileFromCredentials }; - try { - const cfgFile = preferredFile === "config" ? configFile : credentialsFile; - const configValue = configSelector(mergedProfile, cfgFile); - if (configValue === void 0) { - throw new Error(); - } - return configValue; - } catch (e) { - throw new import_property_provider.CredentialsProviderError( - e.message || `Not found in config files w/ profile [${profile}]: ${getSelectorName(configSelector.toString())}`, - { logger: init.logger } - ); - } -}, "fromSharedConfigFiles"); - -// src/fromStatic.ts - -var isFunction = /* @__PURE__ */ __name((func) => typeof func === "function", "isFunction"); -var fromStatic = /* @__PURE__ */ __name((defaultValue) => isFunction(defaultValue) ? async () => await defaultValue() : (0, import_property_provider.fromStatic)(defaultValue), "fromStatic"); - -// src/configLoader.ts -var loadConfig = /* @__PURE__ */ __name(({ environmentVariableSelector, configFileSelector, default: defaultValue }, configuration = {}) => (0, import_property_provider.memoize)( - (0, import_property_provider.chain)( - fromEnv(environmentVariableSelector), - fromSharedConfigFiles(configFileSelector, configuration), - fromStatic(defaultValue) - ) -), "loadConfig"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 55239: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __create = Object.create; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __getProtoOf = Object.getPrototypeOf; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. - isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, - mod -)); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - DEFAULT_REQUEST_TIMEOUT: () => DEFAULT_REQUEST_TIMEOUT, - NodeHttp2Handler: () => NodeHttp2Handler, - NodeHttpHandler: () => NodeHttpHandler, - streamCollector: () => streamCollector -}); -module.exports = __toCommonJS(src_exports); - -// src/node-http-handler.ts -var import_protocol_http = __nccwpck_require__(31788); -var import_querystring_builder = __nccwpck_require__(87169); -var import_http = __nccwpck_require__(13685); -var import_https = __nccwpck_require__(95687); - -// src/constants.ts -var NODEJS_TIMEOUT_ERROR_CODES = ["ECONNRESET", "EPIPE", "ETIMEDOUT"]; - -// src/get-transformed-headers.ts -var getTransformedHeaders = /* @__PURE__ */ __name((headers) => { - const transformedHeaders = {}; - for (const name of Object.keys(headers)) { - const headerValues = headers[name]; - transformedHeaders[name] = Array.isArray(headerValues) ? headerValues.join(",") : headerValues; - } - return transformedHeaders; -}, "getTransformedHeaders"); - -// src/timing.ts -var timing = { - setTimeout: (cb, ms) => setTimeout(cb, ms), - clearTimeout: (timeoutId) => clearTimeout(timeoutId) -}; - -// src/set-connection-timeout.ts -var DEFER_EVENT_LISTENER_TIME = 1e3; -var setConnectionTimeout = /* @__PURE__ */ __name((request, reject, timeoutInMs = 0) => { - if (!timeoutInMs) { - return -1; - } - const registerTimeout = /* @__PURE__ */ __name((offset) => { - const timeoutId = timing.setTimeout(() => { - request.destroy(); - reject( - Object.assign(new Error(`Socket timed out without establishing a connection within ${timeoutInMs} ms`), { - name: "TimeoutError" - }) - ); - }, timeoutInMs - offset); - const doWithSocket = /* @__PURE__ */ __name((socket) => { - if (socket?.connecting) { - socket.on("connect", () => { - timing.clearTimeout(timeoutId); - }); - } else { - timing.clearTimeout(timeoutId); - } - }, "doWithSocket"); - if (request.socket) { - doWithSocket(request.socket); - } else { - request.on("socket", doWithSocket); - } - }, "registerTimeout"); - if (timeoutInMs < 2e3) { - registerTimeout(0); - return 0; - } - return timing.setTimeout(registerTimeout.bind(null, DEFER_EVENT_LISTENER_TIME), DEFER_EVENT_LISTENER_TIME); -}, "setConnectionTimeout"); - -// src/set-socket-keep-alive.ts -var DEFER_EVENT_LISTENER_TIME2 = 3e3; -var setSocketKeepAlive = /* @__PURE__ */ __name((request, { keepAlive, keepAliveMsecs }, deferTimeMs = DEFER_EVENT_LISTENER_TIME2) => { - if (keepAlive !== true) { - return -1; - } - const registerListener = /* @__PURE__ */ __name(() => { - if (request.socket) { - request.socket.setKeepAlive(keepAlive, keepAliveMsecs || 0); - } else { - request.on("socket", (socket) => { - socket.setKeepAlive(keepAlive, keepAliveMsecs || 0); - }); - } - }, "registerListener"); - if (deferTimeMs === 0) { - registerListener(); - return 0; - } - return timing.setTimeout(registerListener, deferTimeMs); -}, "setSocketKeepAlive"); - -// src/set-socket-timeout.ts -var DEFER_EVENT_LISTENER_TIME3 = 3e3; -var setSocketTimeout = /* @__PURE__ */ __name((request, reject, timeoutInMs = DEFAULT_REQUEST_TIMEOUT) => { - const registerTimeout = /* @__PURE__ */ __name((offset) => { - const timeout = timeoutInMs - offset; - const onTimeout = /* @__PURE__ */ __name(() => { - request.destroy(); - reject(Object.assign(new Error(`Connection timed out after ${timeoutInMs} ms`), { name: "TimeoutError" })); - }, "onTimeout"); - if (request.socket) { - request.socket.setTimeout(timeout, onTimeout); - request.on("close", () => request.socket?.removeListener("timeout", onTimeout)); - } else { - request.setTimeout(timeout, onTimeout); - } - }, "registerTimeout"); - if (0 < timeoutInMs && timeoutInMs < 6e3) { - registerTimeout(0); - return 0; - } - return timing.setTimeout( - registerTimeout.bind(null, timeoutInMs === 0 ? 0 : DEFER_EVENT_LISTENER_TIME3), - DEFER_EVENT_LISTENER_TIME3 - ); -}, "setSocketTimeout"); - -// src/write-request-body.ts -var import_stream = __nccwpck_require__(12781); -var MIN_WAIT_TIME = 6e3; -async function writeRequestBody(httpRequest, request, maxContinueTimeoutMs = MIN_WAIT_TIME) { - const headers = request.headers ?? {}; - const expect = headers["Expect"] || headers["expect"]; - let timeoutId = -1; - let sendBody = true; - if (expect === "100-continue") { - sendBody = await Promise.race([ - new Promise((resolve) => { - timeoutId = Number(timing.setTimeout(() => resolve(true), Math.max(MIN_WAIT_TIME, maxContinueTimeoutMs))); - }), - new Promise((resolve) => { - httpRequest.on("continue", () => { - timing.clearTimeout(timeoutId); - resolve(true); - }); - httpRequest.on("response", () => { - timing.clearTimeout(timeoutId); - resolve(false); - }); - httpRequest.on("error", () => { - timing.clearTimeout(timeoutId); - resolve(false); - }); - }) - ]); - } - if (sendBody) { - writeBody(httpRequest, request.body); - } -} -__name(writeRequestBody, "writeRequestBody"); -function writeBody(httpRequest, body) { - if (body instanceof import_stream.Readable) { - body.pipe(httpRequest); - return; - } - if (body) { - if (Buffer.isBuffer(body) || typeof body === "string") { - httpRequest.end(body); - return; - } - const uint8 = body; - if (typeof uint8 === "object" && uint8.buffer && typeof uint8.byteOffset === "number" && typeof uint8.byteLength === "number") { - httpRequest.end(Buffer.from(uint8.buffer, uint8.byteOffset, uint8.byteLength)); - return; - } - httpRequest.end(Buffer.from(body)); - return; - } - httpRequest.end(); -} -__name(writeBody, "writeBody"); - -// src/node-http-handler.ts -var DEFAULT_REQUEST_TIMEOUT = 0; -var NodeHttpHandler = class _NodeHttpHandler { - constructor(options) { - this.socketWarningTimestamp = 0; - // Node http handler is hard-coded to http/1.1: https://github.com/nodejs/node/blob/ff5664b83b89c55e4ab5d5f60068fb457f1f5872/lib/_http_server.js#L286 - this.metadata = { handlerProtocol: "http/1.1" }; - this.configProvider = new Promise((resolve, reject) => { - if (typeof options === "function") { - options().then((_options) => { - resolve(this.resolveDefaultConfig(_options)); - }).catch(reject); - } else { - resolve(this.resolveDefaultConfig(options)); - } - }); - } - static { - __name(this, "NodeHttpHandler"); - } - /** - * @returns the input if it is an HttpHandler of any class, - * or instantiates a new instance of this handler. - */ - static create(instanceOrOptions) { - if (typeof instanceOrOptions?.handle === "function") { - return instanceOrOptions; - } - return new _NodeHttpHandler(instanceOrOptions); - } - /** - * @internal - * - * @param agent - http(s) agent in use by the NodeHttpHandler instance. - * @param socketWarningTimestamp - last socket usage check timestamp. - * @param logger - channel for the warning. - * @returns timestamp of last emitted warning. - */ - static checkSocketUsage(agent, socketWarningTimestamp, logger = console) { - const { sockets, requests, maxSockets } = agent; - if (typeof maxSockets !== "number" || maxSockets === Infinity) { - return socketWarningTimestamp; - } - const interval = 15e3; - if (Date.now() - interval < socketWarningTimestamp) { - return socketWarningTimestamp; - } - if (sockets && requests) { - for (const origin in sockets) { - const socketsInUse = sockets[origin]?.length ?? 0; - const requestsEnqueued = requests[origin]?.length ?? 0; - if (socketsInUse >= maxSockets && requestsEnqueued >= 2 * maxSockets) { - logger?.warn?.( - `@smithy/node-http-handler:WARN - socket usage at capacity=${socketsInUse} and ${requestsEnqueued} additional requests are enqueued. -See https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html -or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.` - ); - return Date.now(); + /** + * @returns the input if it is an HttpHandler of any class, + * or instantiates a new instance of this handler. + */ + static create(instanceOrOptions) { + if ( + typeof (instanceOrOptions == null + ? void 0 + : instanceOrOptions.handle) === 'function' + ) { + return instanceOrOptions + } + return new _NodeHttp2Handler(instanceOrOptions) } - } - } - return socketWarningTimestamp; - } - resolveDefaultConfig(options) { - const { requestTimeout, connectionTimeout, socketTimeout, socketAcquisitionWarningTimeout, httpAgent, httpsAgent } = options || {}; - const keepAlive = true; - const maxSockets = 50; - return { - connectionTimeout, - requestTimeout: requestTimeout ?? socketTimeout, - socketAcquisitionWarningTimeout, - httpAgent: (() => { - if (httpAgent instanceof import_http.Agent || typeof httpAgent?.destroy === "function") { - return httpAgent; - } - return new import_http.Agent({ keepAlive, maxSockets, ...httpAgent }); - })(), - httpsAgent: (() => { - if (httpsAgent instanceof import_https.Agent || typeof httpsAgent?.destroy === "function") { - return httpsAgent; - } - return new import_https.Agent({ keepAlive, maxSockets, ...httpsAgent }); - })(), - logger: console - }; - } - destroy() { - this.config?.httpAgent?.destroy(); - this.config?.httpsAgent?.destroy(); - } - async handle(request, { abortSignal } = {}) { - if (!this.config) { - this.config = await this.configProvider; - } - return new Promise((_resolve, _reject) => { - let writeRequestBodyPromise = void 0; - const timeouts = []; - const resolve = /* @__PURE__ */ __name(async (arg) => { - await writeRequestBodyPromise; - timeouts.forEach(timing.clearTimeout); - _resolve(arg); - }, "resolve"); - const reject = /* @__PURE__ */ __name(async (arg) => { - await writeRequestBodyPromise; - timeouts.forEach(timing.clearTimeout); - _reject(arg); - }, "reject"); - if (!this.config) { - throw new Error("Node HTTP request handler config is not resolved"); - } - if (abortSignal?.aborted) { - const abortError = new Error("Request aborted"); - abortError.name = "AbortError"; - reject(abortError); - return; - } - const isSSL = request.protocol === "https:"; - const agent = isSSL ? this.config.httpsAgent : this.config.httpAgent; - timeouts.push( - timing.setTimeout( - () => { - this.socketWarningTimestamp = _NodeHttpHandler.checkSocketUsage( - agent, - this.socketWarningTimestamp, - this.config.logger - ); - }, - this.config.socketAcquisitionWarningTimeout ?? (this.config.requestTimeout ?? 2e3) + (this.config.connectionTimeout ?? 1e3) - ) - ); - const queryString = (0, import_querystring_builder.buildQueryString)(request.query || {}); - let auth = void 0; - if (request.username != null || request.password != null) { - const username = request.username ?? ""; - const password = request.password ?? ""; - auth = `${username}:${password}`; - } - let path = request.path; - if (queryString) { - path += `?${queryString}`; - } - if (request.fragment) { - path += `#${request.fragment}`; - } - let hostname = request.hostname ?? ""; - if (hostname[0] === "[" && hostname.endsWith("]")) { - hostname = request.hostname.slice(1, -1); - } else { - hostname = request.hostname; - } - const nodeHttpsOptions = { - headers: request.headers, - host: hostname, - method: request.method, - path, - port: request.port, - agent, - auth - }; - const requestFunc = isSSL ? import_https.request : import_http.request; - const req = requestFunc(nodeHttpsOptions, (res) => { - const httpResponse = new import_protocol_http.HttpResponse({ - statusCode: res.statusCode || -1, - reason: res.statusMessage, - headers: getTransformedHeaders(res.headers), - body: res - }); - resolve({ response: httpResponse }); - }); - req.on("error", (err) => { - if (NODEJS_TIMEOUT_ERROR_CODES.includes(err.code)) { - reject(Object.assign(err, { name: "TimeoutError" })); - } else { - reject(err); - } - }); - if (abortSignal) { - const onAbort = /* @__PURE__ */ __name(() => { - req.destroy(); - const abortError = new Error("Request aborted"); - abortError.name = "AbortError"; - reject(abortError); - }, "onAbort"); - if (typeof abortSignal.addEventListener === "function") { - const signal = abortSignal; - signal.addEventListener("abort", onAbort, { once: true }); - req.once("close", () => signal.removeEventListener("abort", onAbort)); - } else { - abortSignal.onabort = onAbort; - } - } - timeouts.push(setConnectionTimeout(req, reject, this.config.connectionTimeout)); - timeouts.push(setSocketTimeout(req, reject, this.config.requestTimeout)); - const httpAgent = nodeHttpsOptions.agent; - if (typeof httpAgent === "object" && "keepAlive" in httpAgent) { - timeouts.push( - setSocketKeepAlive(req, { - // @ts-expect-error keepAlive is not public on httpAgent. - keepAlive: httpAgent.keepAlive, - // @ts-expect-error keepAliveMsecs is not public on httpAgent. - keepAliveMsecs: httpAgent.keepAliveMsecs - }) - ); - } - writeRequestBodyPromise = writeRequestBody(req, request, this.config.requestTimeout).catch((e) => { - timeouts.forEach(timing.clearTimeout); - return _reject(e); - }); - }); - } - updateHttpClientConfig(key, value) { - this.config = void 0; - this.configProvider = this.configProvider.then((config) => { - return { - ...config, - [key]: value - }; - }); - } - httpHandlerConfigs() { - return this.config ?? {}; - } -}; - -// src/node-http2-handler.ts - - -var import_http22 = __nccwpck_require__(85158); + destroy() { + this.connectionManager.destroy() + } + async handle(request, { abortSignal } = {}) { + if (!this.config) { + this.config = await this.configProvider + this.connectionManager.setDisableConcurrentStreams( + this.config.disableConcurrentStreams || false + ) + if (this.config.maxConcurrentStreams) { + this.connectionManager.setMaxConcurrentStreams( + this.config.maxConcurrentStreams + ) + } + } + const { requestTimeout, disableConcurrentStreams } = this.config + return new Promise((_resolve, _reject) => { + var _a + let fulfilled = false + let writeRequestBodyPromise = void 0 + const resolve = /* @__PURE__ */ __name(async arg => { + await writeRequestBodyPromise + _resolve(arg) + }, 'resolve') + const reject = /* @__PURE__ */ __name(async arg => { + await writeRequestBodyPromise + _reject(arg) + }, 'reject') + if (abortSignal == null ? void 0 : abortSignal.aborted) { + fulfilled = true + const abortError = new Error('Request aborted') + abortError.name = 'AbortError' + reject(abortError) + return + } + const { hostname, method, port, protocol, query } = request + let auth = '' + if (request.username != null || request.password != null) { + const username = request.username ?? '' + const password = request.password ?? '' + auth = `${username}:${password}@` + } + const authority = `${protocol}//${auth}${hostname}${port ? `:${port}` : ''}` + const requestContext = { destination: new URL(authority) } + const session = this.connectionManager.lease(requestContext, { + requestTimeout: + (_a = this.config) == null ? void 0 : _a.sessionTimeout, + disableConcurrentStreams: disableConcurrentStreams || false + }) + const rejectWithDestroy = /* @__PURE__ */ __name(err => { + if (disableConcurrentStreams) { + this.destroySession(session) + } + fulfilled = true + reject(err) + }, 'rejectWithDestroy') + const queryString = (0, + import_querystring_builder.buildQueryString)(query || {}) + let path = request.path + if (queryString) { + path += `?${queryString}` + } + if (request.fragment) { + path += `#${request.fragment}` + } + const req = session.request({ + ...request.headers, + [import_http22.constants.HTTP2_HEADER_PATH]: path, + [import_http22.constants.HTTP2_HEADER_METHOD]: method + }) + session.ref() + req.on('response', headers => { + const httpResponse = new import_protocol_http.HttpResponse({ + statusCode: headers[':status'] || -1, + headers: getTransformedHeaders(headers), + body: req + }) + fulfilled = true + resolve({ response: httpResponse }) + if (disableConcurrentStreams) { + session.close() + this.connectionManager.deleteSession(authority, session) + } + }) + if (requestTimeout) { + req.setTimeout(requestTimeout, () => { + req.close() + const timeoutError = new Error( + `Stream timed out because of no activity for ${requestTimeout} ms` + ) + timeoutError.name = 'TimeoutError' + rejectWithDestroy(timeoutError) + }) + } + if (abortSignal) { + const onAbort = /* @__PURE__ */ __name(() => { + req.close() + const abortError = new Error('Request aborted') + abortError.name = 'AbortError' + rejectWithDestroy(abortError) + }, 'onAbort') + if (typeof abortSignal.addEventListener === 'function') { + const signal = abortSignal + signal.addEventListener('abort', onAbort, { once: true }) + req.once('close', () => + signal.removeEventListener('abort', onAbort) + ) + } else { + abortSignal.onabort = onAbort + } + } + req.on('frameError', (type, code, id) => { + rejectWithDestroy( + new Error( + `Frame type id ${type} in stream id ${id} has failed with code ${code}.` + ) + ) + }) + req.on('error', rejectWithDestroy) + req.on('aborted', () => { + rejectWithDestroy( + new Error( + `HTTP/2 stream is abnormally aborted in mid-communication with result code ${req.rstCode}.` + ) + ) + }) + req.on('close', () => { + session.unref() + if (disableConcurrentStreams) { + session.destroy() + } + if (!fulfilled) { + rejectWithDestroy( + new Error( + 'Unexpected error: http2 request did not get a response' + ) + ) + } + }) + writeRequestBodyPromise = writeRequestBody( + req, + request, + requestTimeout + ) + }) + } + updateHttpClientConfig(key, value) { + this.config = void 0 + this.configProvider = this.configProvider.then(config => { + return { + ...config, + [key]: value + } + }) + } + httpHandlerConfigs() { + return this.config ?? {} + } + /** + * Destroys a session. + * @param session The session to destroy. + */ + destroySession(session) { + if (!session.destroyed) { + session.destroy() + } + } + } + __name(_NodeHttp2Handler, 'NodeHttp2Handler') + var NodeHttp2Handler = _NodeHttp2Handler -// src/node-http2-connection-manager.ts -var import_http2 = __toESM(__nccwpck_require__(85158)); + // src/stream-collector/collector.ts -// src/node-http2-connection-pool.ts -var NodeHttp2ConnectionPool = class { - constructor(sessions) { - this.sessions = []; - this.sessions = sessions ?? []; - } - static { - __name(this, "NodeHttp2ConnectionPool"); - } - poll() { - if (this.sessions.length > 0) { - return this.sessions.shift(); - } - } - offerLast(session) { - this.sessions.push(session); - } - contains(session) { - return this.sessions.includes(session); - } - remove(session) { - this.sessions = this.sessions.filter((s) => s !== session); - } - [Symbol.iterator]() { - return this.sessions[Symbol.iterator](); - } - destroy(connection) { - for (const session of this.sessions) { - if (session === connection) { - if (!session.destroyed) { - session.destroy(); + var _Collector = class _Collector extends import_stream.Writable { + constructor() { + super(...arguments) + this.bufferedBytes = [] + } + _write(chunk, encoding, callback) { + this.bufferedBytes.push(chunk) + callback() } } - } - } -}; - -// src/node-http2-connection-manager.ts -var NodeHttp2ConnectionManager = class { - constructor(config) { - this.sessionCache = /* @__PURE__ */ new Map(); - this.config = config; - if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) { - throw new RangeError("maxConcurrency must be greater than zero."); - } - } - static { - __name(this, "NodeHttp2ConnectionManager"); - } - lease(requestContext, connectionConfiguration) { - const url = this.getUrlString(requestContext); - const existingPool = this.sessionCache.get(url); - if (existingPool) { - const existingSession = existingPool.poll(); - if (existingSession && !this.config.disableConcurrency) { - return existingSession; - } - } - const session = import_http2.default.connect(url); - if (this.config.maxConcurrency) { - session.settings({ maxConcurrentStreams: this.config.maxConcurrency }, (err) => { - if (err) { - throw new Error( - "Fail to set maxConcurrentStreams to " + this.config.maxConcurrency + "when creating new session for " + requestContext.destination.toString() - ); + __name(_Collector, 'Collector') + var Collector = _Collector + + // src/stream-collector/index.ts + var streamCollector = /* @__PURE__ */ __name(stream => { + if (isReadableStreamInstance(stream)) { + return collectReadableStream(stream) } - }); - } - session.unref(); - const destroySessionCb = /* @__PURE__ */ __name(() => { - session.destroy(); - this.deleteSession(url, session); - }, "destroySessionCb"); - session.on("goaway", destroySessionCb); - session.on("error", destroySessionCb); - session.on("frameError", destroySessionCb); - session.on("close", () => this.deleteSession(url, session)); - if (connectionConfiguration.requestTimeout) { - session.setTimeout(connectionConfiguration.requestTimeout, destroySessionCb); - } - const connectionPool = this.sessionCache.get(url) || new NodeHttp2ConnectionPool(); - connectionPool.offerLast(session); - this.sessionCache.set(url, connectionPool); - return session; - } - /** - * Delete a session from the connection pool. - * @param authority The authority of the session to delete. - * @param session The session to delete. - */ - deleteSession(authority, session) { - const existingConnectionPool = this.sessionCache.get(authority); - if (!existingConnectionPool) { - return; - } - if (!existingConnectionPool.contains(session)) { - return; - } - existingConnectionPool.remove(session); - this.sessionCache.set(authority, existingConnectionPool); - } - release(requestContext, session) { - const cacheKey = this.getUrlString(requestContext); - this.sessionCache.get(cacheKey)?.offerLast(session); - } - destroy() { - for (const [key, connectionPool] of this.sessionCache) { - for (const session of connectionPool) { - if (!session.destroyed) { - session.destroy(); + return new Promise((resolve, reject) => { + const collector = new Collector() + stream.pipe(collector) + stream.on('error', err => { + collector.end() + reject(err) + }) + collector.on('error', reject) + collector.on('finish', function () { + const bytes = new Uint8Array(Buffer.concat(this.bufferedBytes)) + resolve(bytes) + }) + }) + }, 'streamCollector') + var isReadableStreamInstance = /* @__PURE__ */ __name( + stream => + typeof ReadableStream === 'function' && + stream instanceof ReadableStream, + 'isReadableStreamInstance' + ) + async function collectReadableStream(stream) { + const chunks = [] + const reader = stream.getReader() + let isDone = false + let length = 0 + while (!isDone) { + const { done, value } = await reader.read() + if (value) { + chunks.push(value) + length += value.length + } + isDone = done } - connectionPool.remove(session); - } - this.sessionCache.delete(key); - } - } - setMaxConcurrentStreams(maxConcurrentStreams) { - if (maxConcurrentStreams && maxConcurrentStreams <= 0) { - throw new RangeError("maxConcurrentStreams must be greater than zero."); - } - this.config.maxConcurrency = maxConcurrentStreams; - } - setDisableConcurrentStreams(disableConcurrentStreams) { - this.config.disableConcurrency = disableConcurrentStreams; - } - getUrlString(request) { - return request.destination.toString(); - } -}; - -// src/node-http2-handler.ts -var NodeHttp2Handler = class _NodeHttp2Handler { - constructor(options) { - this.metadata = { handlerProtocol: "h2" }; - this.connectionManager = new NodeHttp2ConnectionManager({}); - this.configProvider = new Promise((resolve, reject) => { - if (typeof options === "function") { - options().then((opts) => { - resolve(opts || {}); - }).catch(reject); - } else { - resolve(options || {}); - } - }); - } - static { - __name(this, "NodeHttp2Handler"); - } - /** - * @returns the input if it is an HttpHandler of any class, - * or instantiates a new instance of this handler. - */ - static create(instanceOrOptions) { - if (typeof instanceOrOptions?.handle === "function") { - return instanceOrOptions; - } - return new _NodeHttp2Handler(instanceOrOptions); - } - destroy() { - this.connectionManager.destroy(); - } - async handle(request, { abortSignal } = {}) { - if (!this.config) { - this.config = await this.configProvider; - this.connectionManager.setDisableConcurrentStreams(this.config.disableConcurrentStreams || false); - if (this.config.maxConcurrentStreams) { - this.connectionManager.setMaxConcurrentStreams(this.config.maxConcurrentStreams); + const collected = new Uint8Array(length) + let offset = 0 + for (const chunk of chunks) { + collected.set(chunk, offset) + offset += chunk.length + } + return collected } - } - const { requestTimeout, disableConcurrentStreams } = this.config; - return new Promise((_resolve, _reject) => { - let fulfilled = false; - let writeRequestBodyPromise = void 0; - const resolve = /* @__PURE__ */ __name(async (arg) => { - await writeRequestBodyPromise; - _resolve(arg); - }, "resolve"); - const reject = /* @__PURE__ */ __name(async (arg) => { - await writeRequestBodyPromise; - _reject(arg); - }, "reject"); - if (abortSignal?.aborted) { - fulfilled = true; - const abortError = new Error("Request aborted"); - abortError.name = "AbortError"; - reject(abortError); - return; - } - const { hostname, method, port, protocol, query } = request; - let auth = ""; - if (request.username != null || request.password != null) { - const username = request.username ?? ""; - const password = request.password ?? ""; - auth = `${username}:${password}@`; - } - const authority = `${protocol}//${auth}${hostname}${port ? `:${port}` : ""}`; - const requestContext = { destination: new URL(authority) }; - const session = this.connectionManager.lease(requestContext, { - requestTimeout: this.config?.sessionTimeout, - disableConcurrentStreams: disableConcurrentStreams || false - }); - const rejectWithDestroy = /* @__PURE__ */ __name((err) => { - if (disableConcurrentStreams) { - this.destroySession(session); - } - fulfilled = true; - reject(err); - }, "rejectWithDestroy"); - const queryString = (0, import_querystring_builder.buildQueryString)(query || {}); - let path = request.path; - if (queryString) { - path += `?${queryString}`; - } - if (request.fragment) { - path += `#${request.fragment}`; - } - const req = session.request({ - ...request.headers, - [import_http22.constants.HTTP2_HEADER_PATH]: path, - [import_http22.constants.HTTP2_HEADER_METHOD]: method - }); - session.ref(); - req.on("response", (headers) => { - const httpResponse = new import_protocol_http.HttpResponse({ - statusCode: headers[":status"] || -1, - headers: getTransformedHeaders(headers), - body: req - }); - fulfilled = true; - resolve({ response: httpResponse }); - if (disableConcurrentStreams) { - session.close(); - this.connectionManager.deleteSession(authority, session); - } - }); - if (requestTimeout) { - req.setTimeout(requestTimeout, () => { - req.close(); - const timeoutError = new Error(`Stream timed out because of no activity for ${requestTimeout} ms`); - timeoutError.name = "TimeoutError"; - rejectWithDestroy(timeoutError); - }); - } - if (abortSignal) { - const onAbort = /* @__PURE__ */ __name(() => { - req.close(); - const abortError = new Error("Request aborted"); - abortError.name = "AbortError"; - rejectWithDestroy(abortError); - }, "onAbort"); - if (typeof abortSignal.addEventListener === "function") { - const signal = abortSignal; - signal.addEventListener("abort", onAbort, { once: true }); - req.once("close", () => signal.removeEventListener("abort", onAbort)); - } else { - abortSignal.onabort = onAbort; - } - } - req.on("frameError", (type, code, id) => { - rejectWithDestroy(new Error(`Frame type id ${type} in stream id ${id} has failed with code ${code}.`)); - }); - req.on("error", rejectWithDestroy); - req.on("aborted", () => { - rejectWithDestroy( - new Error(`HTTP/2 stream is abnormally aborted in mid-communication with result code ${req.rstCode}.`) - ); - }); - req.on("close", () => { - session.unref(); - if (disableConcurrentStreams) { - session.destroy(); - } - if (!fulfilled) { - rejectWithDestroy(new Error("Unexpected error: http2 request did not get a response")); - } - }); - writeRequestBodyPromise = writeRequestBody(req, request, requestTimeout); - }); - } - updateHttpClientConfig(key, value) { - this.config = void 0; - this.configProvider = this.configProvider.then((config) => { - return { - ...config, - [key]: value - }; - }); - } - httpHandlerConfigs() { - return this.config ?? {}; - } - /** - * Destroys a session. - * @param session - the session to destroy. - */ - destroySession(session) { - if (!session.destroyed) { - session.destroy(); - } - } -}; + __name(collectReadableStream, 'collectReadableStream') + // Annotate the CommonJS export names for ESM import in node: -// src/stream-collector/collector.ts + 0 && 0 -var Collector = class extends import_stream.Writable { - constructor() { - super(...arguments); - this.bufferedBytes = []; - } - static { - __name(this, "Collector"); - } - _write(chunk, encoding, callback) { - this.bufferedBytes.push(chunk); - callback(); - } -}; + /***/ + }, -// src/stream-collector/index.ts -var streamCollector = /* @__PURE__ */ __name((stream) => { - if (isReadableStreamInstance(stream)) { - return collectReadableStream(stream); - } - return new Promise((resolve, reject) => { - const collector = new Collector(); - stream.pipe(collector); - stream.on("error", (err) => { - collector.end(); - reject(err); - }); - collector.on("error", reject); - collector.on("finish", function() { - const bytes = new Uint8Array(Buffer.concat(this.bufferedBytes)); - resolve(bytes); - }); - }); -}, "streamCollector"); -var isReadableStreamInstance = /* @__PURE__ */ __name((stream) => typeof ReadableStream === "function" && stream instanceof ReadableStream, "isReadableStreamInstance"); -async function collectReadableStream(stream) { - const chunks = []; - const reader = stream.getReader(); - let isDone = false; - let length = 0; - while (!isDone) { - const { done, value } = await reader.read(); - if (value) { - chunks.push(value); - length += value.length; - } - isDone = done; - } - const collected = new Uint8Array(length); - let offset = 0; - for (const chunk of chunks) { - collected.set(chunk, offset); - offset += chunk.length; - } - return collected; -} -__name(collectReadableStream, "collectReadableStream"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 19248: -/***/ ((module) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - CredentialsProviderError: () => CredentialsProviderError, - ProviderError: () => ProviderError, - TokenProviderError: () => TokenProviderError, - chain: () => chain, - fromStatic: () => fromStatic, - memoize: () => memoize -}); -module.exports = __toCommonJS(src_exports); - -// src/ProviderError.ts -var ProviderError = class _ProviderError extends Error { - constructor(message, options = true) { - let logger; - let tryNextLink = true; - if (typeof options === "boolean") { - logger = void 0; - tryNextLink = options; - } else if (options != null && typeof options === "object") { - logger = options.logger; - tryNextLink = options.tryNextLink ?? true; - } - super(message); - this.name = "ProviderError"; - this.tryNextLink = tryNextLink; - Object.setPrototypeOf(this, _ProviderError.prototype); - logger?.debug?.(`@smithy/property-provider ${tryNextLink ? "->" : "(!)"} ${message}`); - } - static { - __name(this, "ProviderError"); - } - /** - * @deprecated use new operator. - */ - static from(error, options = true) { - return Object.assign(new this(error.message, options), error); - } -}; - -// src/CredentialsProviderError.ts -var CredentialsProviderError = class _CredentialsProviderError extends ProviderError { - /** - * @override - */ - constructor(message, options = true) { - super(message, options); - this.name = "CredentialsProviderError"; - Object.setPrototypeOf(this, _CredentialsProviderError.prototype); - } - static { - __name(this, "CredentialsProviderError"); - } -}; - -// src/TokenProviderError.ts -var TokenProviderError = class _TokenProviderError extends ProviderError { - /** - * @override - */ - constructor(message, options = true) { - super(message, options); - this.name = "TokenProviderError"; - Object.setPrototypeOf(this, _TokenProviderError.prototype); - } - static { - __name(this, "TokenProviderError"); - } -}; + /***/ 74203: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __create = Object.create + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __getProtoOf = Object.getPrototypeOf + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toESM = (mod, isNodeMode, target) => ( + (target = mod != null ? __create(__getProtoOf(mod)) : {}), + __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule + ? __defProp(target, 'default', { value: mod, enumerable: true }) + : target, + mod + ) + ) + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -// src/chain.ts -var chain = /* @__PURE__ */ __name((...providers) => async () => { - if (providers.length === 0) { - throw new ProviderError("No providers in chain"); - } - let lastProviderError; - for (const provider of providers) { - try { - const credentials = await provider(); - return credentials; - } catch (err) { - lastProviderError = err; - if (err?.tryNextLink) { - continue; - } - throw err; - } - } - throw lastProviderError; -}, "chain"); - -// src/fromStatic.ts -var fromStatic = /* @__PURE__ */ __name((staticValue) => () => Promise.resolve(staticValue), "fromStatic"); - -// src/memoize.ts -var memoize = /* @__PURE__ */ __name((provider, isExpired, requiresRefresh) => { - let resolved; - let pending; - let hasResult; - let isConstant = false; - const coalesceProvider = /* @__PURE__ */ __name(async () => { - if (!pending) { - pending = provider(); - } - try { - resolved = await pending; - hasResult = true; - isConstant = false; - } finally { - pending = void 0; - } - return resolved; - }, "coalesceProvider"); - if (isExpired === void 0) { - return async (options) => { - if (!hasResult || options?.forceRefresh) { - resolved = await coalesceProvider(); - } - return resolved; - }; - } - return async (options) => { - if (!hasResult || options?.forceRefresh) { - resolved = await coalesceProvider(); - } - if (isConstant) { - return resolved; - } - if (requiresRefresh && !requiresRefresh(resolved)) { - isConstant = true; - return resolved; - } - if (isExpired(resolved)) { - await coalesceProvider(); - return resolved; - } - return resolved; - }; -}, "memoize"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 31788: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - Field: () => Field, - Fields: () => Fields, - HttpRequest: () => HttpRequest, - HttpResponse: () => HttpResponse, - IHttpRequest: () => import_types.HttpRequest, - getHttpHandlerExtensionConfiguration: () => getHttpHandlerExtensionConfiguration, - isValidHostname: () => isValidHostname, - resolveHttpHandlerRuntimeConfig: () => resolveHttpHandlerRuntimeConfig -}); -module.exports = __toCommonJS(src_exports); - -// src/extensions/httpExtensionConfiguration.ts -var getHttpHandlerExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => { - return { - setHttpHandler(handler) { - runtimeConfig.httpHandler = handler; - }, - httpHandler() { - return runtimeConfig.httpHandler; - }, - updateHttpClientConfig(key, value) { - runtimeConfig.httpHandler?.updateHttpClientConfig(key, value); - }, - httpHandlerConfigs() { - return runtimeConfig.httpHandler.httpHandlerConfigs(); - } - }; -}, "getHttpHandlerExtensionConfiguration"); -var resolveHttpHandlerRuntimeConfig = /* @__PURE__ */ __name((httpHandlerExtensionConfiguration) => { - return { - httpHandler: httpHandlerExtensionConfiguration.httpHandler() - }; -}, "resolveHttpHandlerRuntimeConfig"); - -// src/Field.ts -var import_types = __nccwpck_require__(63443); -var Field = class { - static { - __name(this, "Field"); - } - constructor({ name, kind = import_types.FieldPosition.HEADER, values = [] }) { - this.name = name; - this.kind = kind; - this.values = values; - } - /** - * Appends a value to the field. - * - * @param value The value to append. - */ - add(value) { - this.values.push(value); - } - /** - * Overwrite existing field values. - * - * @param values The new field values. - */ - set(values) { - this.values = values; - } - /** - * Remove all matching entries from list. - * - * @param value Value to remove. - */ - remove(value) { - this.values = this.values.filter((v) => v !== value); - } - /** - * Get comma-delimited string. - * - * @returns String representation of {@link Field}. - */ - toString() { - return this.values.map((v) => v.includes(",") || v.includes(" ") ? `"${v}"` : v).join(", "); - } - /** - * Get string values as a list - * - * @returns Values in {@link Field} as a list. - */ - get() { - return this.values; - } -}; - -// src/Fields.ts -var Fields = class { - constructor({ fields = [], encoding = "utf-8" }) { - this.entries = {}; - fields.forEach(this.setField.bind(this)); - this.encoding = encoding; - } - static { - __name(this, "Fields"); - } - /** - * Set entry for a {@link Field} name. The `name` - * attribute will be used to key the collection. - * - * @param field The {@link Field} to set. - */ - setField(field) { - this.entries[field.name.toLowerCase()] = field; - } - /** - * Retrieve {@link Field} entry by name. - * - * @param name The name of the {@link Field} entry - * to retrieve - * @returns The {@link Field} if it exists. - */ - getField(name) { - return this.entries[name.toLowerCase()]; - } - /** - * Delete entry from collection. - * - * @param name Name of the entry to delete. - */ - removeField(name) { - delete this.entries[name.toLowerCase()]; - } - /** - * Helper function for retrieving specific types of fields. - * Used to grab all headers or all trailers. - * - * @param kind {@link FieldPosition} of entries to retrieve. - * @returns The {@link Field} entries with the specified - * {@link FieldPosition}. - */ - getByType(kind) { - return Object.values(this.entries).filter((field) => field.kind === kind); - } -}; + // src/index.ts + var src_exports = {} + __export(src_exports, { + fromIni: () => fromIni + }) + module.exports = __toCommonJS(src_exports) + + // src/fromIni.ts + + // src/resolveProfileData.ts + + // src/resolveAssumeRoleCredentials.ts + + var import_shared_ini_file_loader = __nccwpck_require__(43507) + + // src/resolveCredentialSource.ts + var import_property_provider = __nccwpck_require__(79721) + var resolveCredentialSource = /* @__PURE__ */ __name( + (credentialSource, profileName, logger) => { + const sourceProvidersMap = { + EcsContainer: async options => { + const { fromHttp } = await Promise.resolve().then(() => + __toESM(__nccwpck_require__(17290)) + ) + const { fromContainerMetadata } = await Promise.resolve().then( + () => __toESM(__nccwpck_require__(7477)) + ) + logger == null + ? void 0 + : logger.debug( + '@aws-sdk/credential-provider-ini - credential_source is EcsContainer' + ) + return (0, import_property_provider.chain)( + fromHttp(options ?? {}), + fromContainerMetadata(options) + ) + }, + Ec2InstanceMetadata: async options => { + logger == null + ? void 0 + : logger.debug( + '@aws-sdk/credential-provider-ini - credential_source is Ec2InstanceMetadata' + ) + const { fromInstanceMetadata } = await Promise.resolve().then( + () => __toESM(__nccwpck_require__(7477)) + ) + return fromInstanceMetadata(options) + }, + Environment: async options => { + logger == null + ? void 0 + : logger.debug( + '@aws-sdk/credential-provider-ini - credential_source is Environment' + ) + const { fromEnv } = await Promise.resolve().then(() => + __toESM(__nccwpck_require__(15972)) + ) + return fromEnv(options) + } + } + if (credentialSource in sourceProvidersMap) { + return sourceProvidersMap[credentialSource] + } else { + throw new import_property_provider.CredentialsProviderError( + `Unsupported credential source in profile ${profileName}. Got ${credentialSource}, expected EcsContainer or Ec2InstanceMetadata or Environment.`, + { logger } + ) + } + }, + 'resolveCredentialSource' + ) + + // src/resolveAssumeRoleCredentials.ts + var isAssumeRoleProfile = /* @__PURE__ */ __name( + (arg, { profile = 'default', logger } = {}) => { + return ( + Boolean(arg) && + typeof arg === 'object' && + typeof arg.role_arn === 'string' && + ['undefined', 'string'].indexOf(typeof arg.role_session_name) > + -1 && + ['undefined', 'string'].indexOf(typeof arg.external_id) > -1 && + ['undefined', 'string'].indexOf(typeof arg.mfa_serial) > -1 && + (isAssumeRoleWithSourceProfile(arg, { profile, logger }) || + isCredentialSourceProfile(arg, { profile, logger })) + ) + }, + 'isAssumeRoleProfile' + ) + var isAssumeRoleWithSourceProfile = /* @__PURE__ */ __name( + (arg, { profile, logger }) => { + var _a + const withSourceProfile = + typeof arg.source_profile === 'string' && + typeof arg.credential_source === 'undefined' + if (withSourceProfile) { + ;(_a = logger == null ? void 0 : logger.debug) == null + ? void 0 + : _a.call( + logger, + ` ${profile} isAssumeRoleWithSourceProfile source_profile=${arg.source_profile}` + ) + } + return withSourceProfile + }, + 'isAssumeRoleWithSourceProfile' + ) + var isCredentialSourceProfile = /* @__PURE__ */ __name( + (arg, { profile, logger }) => { + var _a + const withProviderProfile = + typeof arg.credential_source === 'string' && + typeof arg.source_profile === 'undefined' + if (withProviderProfile) { + ;(_a = logger == null ? void 0 : logger.debug) == null + ? void 0 + : _a.call( + logger, + ` ${profile} isCredentialSourceProfile credential_source=${arg.credential_source}` + ) + } + return withProviderProfile + }, + 'isCredentialSourceProfile' + ) + var resolveAssumeRoleCredentials = /* @__PURE__ */ __name( + async (profileName, profiles, options, visitedProfiles = {}) => { + var _a, _b + ;(_a = options.logger) == null + ? void 0 + : _a.debug( + '@aws-sdk/credential-provider-ini - resolveAssumeRoleCredentials (STS)' + ) + const data = profiles[profileName] + if (!options.roleAssumer) { + const { getDefaultRoleAssumer } = await Promise.resolve().then(() => + __toESM(__nccwpck_require__(52209)) + ) + options.roleAssumer = getDefaultRoleAssumer( + { + ...options.clientConfig, + credentialProviderLogger: options.logger, + parentClientConfig: + options == null ? void 0 : options.parentClientConfig + }, + options.clientPlugins + ) + } + const { source_profile } = data + if (source_profile && source_profile in visitedProfiles) { + throw new import_property_provider.CredentialsProviderError( + `Detected a cycle attempting to resolve credentials for profile ${(0, import_shared_ini_file_loader.getProfileName)(options)}. Profiles visited: ` + + Object.keys(visitedProfiles).join(', '), + { logger: options.logger } + ) + } + ;(_b = options.logger) == null + ? void 0 + : _b.debug( + `@aws-sdk/credential-provider-ini - finding credential resolver using ${source_profile ? `source_profile=[${source_profile}]` : `profile=[${profileName}]`}` + ) + const sourceCredsProvider = source_profile + ? resolveProfileData( + source_profile, + { + ...profiles, + [source_profile]: { + ...profiles[source_profile], + // This assigns the role_arn of the "root" profile + // to the credential_source profile so this recursive call knows + // what role to assume. + role_arn: data.role_arn ?? profiles[source_profile].role_arn + } + }, + options, + { + ...visitedProfiles, + [source_profile]: true + } + ) + : ( + await resolveCredentialSource( + data.credential_source, + profileName, + options.logger + )(options) + )() + const params = { + RoleArn: data.role_arn, + RoleSessionName: + data.role_session_name || `aws-sdk-js-${Date.now()}`, + ExternalId: data.external_id, + DurationSeconds: parseInt(data.duration_seconds || '3600', 10) + } + const { mfa_serial } = data + if (mfa_serial) { + if (!options.mfaCodeProvider) { + throw new import_property_provider.CredentialsProviderError( + `Profile ${profileName} requires multi-factor authentication, but no MFA code callback was provided.`, + { logger: options.logger, tryNextLink: false } + ) + } + params.SerialNumber = mfa_serial + params.TokenCode = await options.mfaCodeProvider(mfa_serial) + } + const sourceCreds = await sourceCredsProvider + return options.roleAssumer(sourceCreds, params) + }, + 'resolveAssumeRoleCredentials' + ) -// src/httpRequest.ts + // src/resolveProcessCredentials.ts + var isProcessProfile = /* @__PURE__ */ __name( + arg => + Boolean(arg) && + typeof arg === 'object' && + typeof arg.credential_process === 'string', + 'isProcessProfile' + ) + var resolveProcessCredentials = /* @__PURE__ */ __name( + async (options, profile) => + Promise.resolve() + .then(() => __toESM(__nccwpck_require__(89969))) + .then(({ fromProcess }) => + fromProcess({ + ...options, + profile + })() + ), + 'resolveProcessCredentials' + ) -var HttpRequest = class _HttpRequest { - static { - __name(this, "HttpRequest"); - } - constructor(options) { - this.method = options.method || "GET"; - this.hostname = options.hostname || "localhost"; - this.port = options.port; - this.query = options.query || {}; - this.headers = options.headers || {}; - this.body = options.body; - this.protocol = options.protocol ? options.protocol.slice(-1) !== ":" ? `${options.protocol}:` : options.protocol : "https:"; - this.path = options.path ? options.path.charAt(0) !== "/" ? `/${options.path}` : options.path : "/"; - this.username = options.username; - this.password = options.password; - this.fragment = options.fragment; - } - /** - * Note: this does not deep-clone the body. - */ - static clone(request) { - const cloned = new _HttpRequest({ - ...request, - headers: { ...request.headers } - }); - if (cloned.query) { - cloned.query = cloneQuery(cloned.query); - } - return cloned; - } - /** - * This method only actually asserts that request is the interface {@link IHttpRequest}, - * and not necessarily this concrete class. Left in place for API stability. - * - * Do not call instance methods on the input of this function, and - * do not assume it has the HttpRequest prototype. - */ - static isInstance(request) { - if (!request) { - return false; - } - const req = request; - return "method" in req && "protocol" in req && "hostname" in req && "path" in req && typeof req["query"] === "object" && typeof req["headers"] === "object"; - } - /** - * @deprecated use static HttpRequest.clone(request) instead. It's not safe to call - * this method because {@link HttpRequest.isInstance} incorrectly - * asserts that IHttpRequest (interface) objects are of type HttpRequest (class). - */ - clone() { - return _HttpRequest.clone(this); - } -}; -function cloneQuery(query) { - return Object.keys(query).reduce((carry, paramName) => { - const param = query[paramName]; - return { - ...carry, - [paramName]: Array.isArray(param) ? [...param] : param - }; - }, {}); -} -__name(cloneQuery, "cloneQuery"); - -// src/httpResponse.ts -var HttpResponse = class { - static { - __name(this, "HttpResponse"); - } - constructor(options) { - this.statusCode = options.statusCode; - this.reason = options.reason; - this.headers = options.headers || {}; - this.body = options.body; - } - static isInstance(response) { - if (!response) - return false; - const resp = response; - return typeof resp.statusCode === "number" && typeof resp.headers === "object"; - } -}; - -// src/isValidHostname.ts -function isValidHostname(hostname) { - const hostPattern = /^[a-z0-9][a-z0-9\.\-]*[a-z0-9]$/; - return hostPattern.test(hostname); -} -__name(isValidHostname, "isValidHostname"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 87169: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - buildQueryString: () => buildQueryString -}); -module.exports = __toCommonJS(src_exports); -var import_util_uri_escape = __nccwpck_require__(59765); -function buildQueryString(query) { - const parts = []; - for (let key of Object.keys(query).sort()) { - const value = query[key]; - key = (0, import_util_uri_escape.escapeUri)(key); - if (Array.isArray(value)) { - for (let i = 0, iLen = value.length; i < iLen; i++) { - parts.push(`${key}=${(0, import_util_uri_escape.escapeUri)(value[i])}`); - } - } else { - let qsEntry = key; - if (value || typeof value === "string") { - qsEntry += `=${(0, import_util_uri_escape.escapeUri)(value)}`; - } - parts.push(qsEntry); - } - } - return parts.join("&"); -} -__name(buildQueryString, "buildQueryString"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 2465: -/***/ ((module) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - parseQueryString: () => parseQueryString -}); -module.exports = __toCommonJS(src_exports); -function parseQueryString(querystring) { - const query = {}; - querystring = querystring.replace(/^\?/, ""); - if (querystring) { - for (const pair of querystring.split("&")) { - let [key, value = null] = pair.split("="); - key = decodeURIComponent(key); - if (value) { - value = decodeURIComponent(value); - } - if (!(key in query)) { - query[key] = value; - } else if (Array.isArray(query[key])) { - query[key].push(value); - } else { - query[key] = [query[key], value]; - } - } - } - return query; -} -__name(parseQueryString, "parseQueryString"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 44652: -/***/ ((module) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - isClockSkewCorrectedError: () => isClockSkewCorrectedError, - isClockSkewError: () => isClockSkewError, - isRetryableByTrait: () => isRetryableByTrait, - isServerError: () => isServerError, - isThrottlingError: () => isThrottlingError, - isTransientError: () => isTransientError -}); -module.exports = __toCommonJS(src_exports); - -// src/constants.ts -var CLOCK_SKEW_ERROR_CODES = [ - "AuthFailure", - "InvalidSignatureException", - "RequestExpired", - "RequestInTheFuture", - "RequestTimeTooSkewed", - "SignatureDoesNotMatch" -]; -var THROTTLING_ERROR_CODES = [ - "BandwidthLimitExceeded", - "EC2ThrottledException", - "LimitExceededException", - "PriorRequestNotComplete", - "ProvisionedThroughputExceededException", - "RequestLimitExceeded", - "RequestThrottled", - "RequestThrottledException", - "SlowDown", - "ThrottledException", - "Throttling", - "ThrottlingException", - "TooManyRequestsException", - "TransactionInProgressException" - // DynamoDB -]; -var TRANSIENT_ERROR_CODES = ["TimeoutError", "RequestTimeout", "RequestTimeoutException"]; -var TRANSIENT_ERROR_STATUS_CODES = [500, 502, 503, 504]; -var NODEJS_TIMEOUT_ERROR_CODES = ["ECONNRESET", "ECONNREFUSED", "EPIPE", "ETIMEDOUT"]; - -// src/index.ts -var isRetryableByTrait = /* @__PURE__ */ __name((error) => error.$retryable !== void 0, "isRetryableByTrait"); -var isClockSkewError = /* @__PURE__ */ __name((error) => CLOCK_SKEW_ERROR_CODES.includes(error.name), "isClockSkewError"); -var isClockSkewCorrectedError = /* @__PURE__ */ __name((error) => error.$metadata?.clockSkewCorrected, "isClockSkewCorrectedError"); -var isThrottlingError = /* @__PURE__ */ __name((error) => error.$metadata?.httpStatusCode === 429 || THROTTLING_ERROR_CODES.includes(error.name) || error.$retryable?.throttling == true, "isThrottlingError"); -var isTransientError = /* @__PURE__ */ __name((error, depth = 0) => isClockSkewCorrectedError(error) || TRANSIENT_ERROR_CODES.includes(error.name) || NODEJS_TIMEOUT_ERROR_CODES.includes(error?.code || "") || TRANSIENT_ERROR_STATUS_CODES.includes(error.$metadata?.httpStatusCode || 0) || error.cause !== void 0 && depth <= 10 && isTransientError(error.cause, depth + 1), "isTransientError"); -var isServerError = /* @__PURE__ */ __name((error) => { - if (error.$metadata?.httpStatusCode !== void 0) { - const statusCode = error.$metadata.httpStatusCode; - if (500 <= statusCode && statusCode <= 599 && !isTransientError(error)) { - return true; - } - return false; - } - return false; -}, "isServerError"); -// Annotate the CommonJS export names for ESM import in node: + // src/resolveSsoCredentials.ts + var resolveSsoCredentials = /* @__PURE__ */ __name( + async (profile, options = {}) => { + const { fromSSO } = await Promise.resolve().then(() => + __toESM(__nccwpck_require__(26414)) + ) + return fromSSO({ + profile, + logger: options.logger + })() + }, + 'resolveSsoCredentials' + ) + var isSsoProfile = /* @__PURE__ */ __name( + arg => + arg && + (typeof arg.sso_start_url === 'string' || + typeof arg.sso_account_id === 'string' || + typeof arg.sso_session === 'string' || + typeof arg.sso_region === 'string' || + typeof arg.sso_role_name === 'string'), + 'isSsoProfile' + ) -0 && (0); + // src/resolveStaticCredentials.ts + var isStaticCredsProfile = /* @__PURE__ */ __name( + arg => + Boolean(arg) && + typeof arg === 'object' && + typeof arg.aws_access_key_id === 'string' && + typeof arg.aws_secret_access_key === 'string' && + ['undefined', 'string'].indexOf(typeof arg.aws_session_token) > -1 && + ['undefined', 'string'].indexOf(typeof arg.aws_account_id) > -1, + 'isStaticCredsProfile' + ) + var resolveStaticCredentials = /* @__PURE__ */ __name( + (profile, options) => { + var _a + ;(_a = options == null ? void 0 : options.logger) == null + ? void 0 + : _a.debug( + '@aws-sdk/credential-provider-ini - resolveStaticCredentials' + ) + return Promise.resolve({ + accessKeyId: profile.aws_access_key_id, + secretAccessKey: profile.aws_secret_access_key, + sessionToken: profile.aws_session_token, + ...(profile.aws_credential_scope && { + credentialScope: profile.aws_credential_scope + }), + ...(profile.aws_account_id && { accountId: profile.aws_account_id }) + }) + }, + 'resolveStaticCredentials' + ) + // src/resolveWebIdentityCredentials.ts + var isWebIdentityProfile = /* @__PURE__ */ __name( + arg => + Boolean(arg) && + typeof arg === 'object' && + typeof arg.web_identity_token_file === 'string' && + typeof arg.role_arn === 'string' && + ['undefined', 'string'].indexOf(typeof arg.role_session_name) > -1, + 'isWebIdentityProfile' + ) + var resolveWebIdentityCredentials = /* @__PURE__ */ __name( + async (profile, options) => + Promise.resolve() + .then(() => __toESM(__nccwpck_require__(15646))) + .then(({ fromTokenFile }) => + fromTokenFile({ + webIdentityTokenFile: profile.web_identity_token_file, + roleArn: profile.role_arn, + roleSessionName: profile.role_session_name, + roleAssumerWithWebIdentity: options.roleAssumerWithWebIdentity, + logger: options.logger, + parentClientConfig: options.parentClientConfig + })() + ), + 'resolveWebIdentityCredentials' + ) + // src/resolveProfileData.ts + var resolveProfileData = /* @__PURE__ */ __name( + async (profileName, profiles, options, visitedProfiles = {}) => { + const data = profiles[profileName] + if ( + Object.keys(visitedProfiles).length > 0 && + isStaticCredsProfile(data) + ) { + return resolveStaticCredentials(data, options) + } + if ( + isAssumeRoleProfile(data, { + profile: profileName, + logger: options.logger + }) + ) { + return resolveAssumeRoleCredentials( + profileName, + profiles, + options, + visitedProfiles + ) + } + if (isStaticCredsProfile(data)) { + return resolveStaticCredentials(data, options) + } + if (isWebIdentityProfile(data)) { + return resolveWebIdentityCredentials(data, options) + } + if (isProcessProfile(data)) { + return resolveProcessCredentials(options, profileName) + } + if (isSsoProfile(data)) { + return await resolveSsoCredentials(profileName, options) + } + throw new import_property_provider.CredentialsProviderError( + `Could not resolve credentials using profile: [${profileName}] in configuration/credentials file(s).`, + { logger: options.logger } + ) + }, + 'resolveProfileData' + ) -/***/ }), + // src/fromIni.ts + var fromIni = /* @__PURE__ */ __name( + (init = {}) => + async () => { + var _a + ;(_a = init.logger) == null + ? void 0 + : _a.debug('@aws-sdk/credential-provider-ini - fromIni') + const profiles = await (0, + import_shared_ini_file_loader.parseKnownFiles)(init) + return resolveProfileData( + (0, import_shared_ini_file_loader.getProfileName)(init), + profiles, + init + ) + }, + 'fromIni' + ) + // Annotate the CommonJS export names for ESM import in node: -/***/ 47007: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + 0 && 0 -"use strict"; + /***/ + }, -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getHomeDir = void 0; -const os_1 = __nccwpck_require__(22037); -const path_1 = __nccwpck_require__(71017); -const homeDirCache = {}; -const getHomeDirCacheKey = () => { - if (process && process.geteuid) { - return `${process.geteuid()}`; - } - return "DEFAULT"; -}; -const getHomeDir = () => { - const { HOME, USERPROFILE, HOMEPATH, HOMEDRIVE = `C:${path_1.sep}` } = process.env; - if (HOME) - return HOME; - if (USERPROFILE) - return USERPROFILE; - if (HOMEPATH) - return `${HOMEDRIVE}${HOMEPATH}`; - const homeDirCacheKey = getHomeDirCacheKey(); - if (!homeDirCache[homeDirCacheKey]) - homeDirCache[homeDirCacheKey] = (0, os_1.homedir)(); - return homeDirCache[homeDirCacheKey]; -}; -exports.getHomeDir = getHomeDir; - - -/***/ }), - -/***/ 34572: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getSSOTokenFilepath = void 0; -const crypto_1 = __nccwpck_require__(6113); -const path_1 = __nccwpck_require__(71017); -const getHomeDir_1 = __nccwpck_require__(47007); -const getSSOTokenFilepath = (id) => { - const hasher = (0, crypto_1.createHash)("sha1"); - const cacheName = hasher.update(id).digest("hex"); - return (0, path_1.join)((0, getHomeDir_1.getHomeDir)(), ".aws", "sso", "cache", `${cacheName}.json`); -}; -exports.getSSOTokenFilepath = getSSOTokenFilepath; - - -/***/ }), - -/***/ 25391: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getSSOTokenFromFile = void 0; -const fs_1 = __nccwpck_require__(57147); -const getSSOTokenFilepath_1 = __nccwpck_require__(34572); -const { readFile } = fs_1.promises; -const getSSOTokenFromFile = async (id) => { - const ssoTokenFilepath = (0, getSSOTokenFilepath_1.getSSOTokenFilepath)(id); - const ssoTokenText = await readFile(ssoTokenFilepath, "utf8"); - return JSON.parse(ssoTokenText); -}; -exports.getSSOTokenFromFile = getSSOTokenFromFile; - - -/***/ }), - -/***/ 69001: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - CONFIG_PREFIX_SEPARATOR: () => CONFIG_PREFIX_SEPARATOR, - DEFAULT_PROFILE: () => DEFAULT_PROFILE, - ENV_PROFILE: () => ENV_PROFILE, - getProfileName: () => getProfileName, - loadSharedConfigFiles: () => loadSharedConfigFiles, - loadSsoSessionData: () => loadSsoSessionData, - parseKnownFiles: () => parseKnownFiles -}); -module.exports = __toCommonJS(src_exports); -__reExport(src_exports, __nccwpck_require__(47007), module.exports); - -// src/getProfileName.ts -var ENV_PROFILE = "AWS_PROFILE"; -var DEFAULT_PROFILE = "default"; -var getProfileName = /* @__PURE__ */ __name((init) => init.profile || process.env[ENV_PROFILE] || DEFAULT_PROFILE, "getProfileName"); - -// src/index.ts -__reExport(src_exports, __nccwpck_require__(34572), module.exports); -__reExport(src_exports, __nccwpck_require__(25391), module.exports); - -// src/loadSharedConfigFiles.ts - - -// src/getConfigData.ts -var import_types = __nccwpck_require__(63443); -var getConfigData = /* @__PURE__ */ __name((data) => Object.entries(data).filter(([key]) => { - const indexOfSeparator = key.indexOf(CONFIG_PREFIX_SEPARATOR); - if (indexOfSeparator === -1) { - return false; - } - return Object.values(import_types.IniSectionType).includes(key.substring(0, indexOfSeparator)); -}).reduce( - (acc, [key, value]) => { - const indexOfSeparator = key.indexOf(CONFIG_PREFIX_SEPARATOR); - const updatedKey = key.substring(0, indexOfSeparator) === import_types.IniSectionType.PROFILE ? key.substring(indexOfSeparator + 1) : key; - acc[updatedKey] = value; - return acc; - }, - { - // Populate default profile, if present. - ...data.default && { default: data.default } - } -), "getConfigData"); - -// src/getConfigFilepath.ts -var import_path = __nccwpck_require__(71017); -var import_getHomeDir = __nccwpck_require__(47007); -var ENV_CONFIG_PATH = "AWS_CONFIG_FILE"; -var getConfigFilepath = /* @__PURE__ */ __name(() => process.env[ENV_CONFIG_PATH] || (0, import_path.join)((0, import_getHomeDir.getHomeDir)(), ".aws", "config"), "getConfigFilepath"); - -// src/getCredentialsFilepath.ts - -var import_getHomeDir2 = __nccwpck_require__(47007); -var ENV_CREDENTIALS_PATH = "AWS_SHARED_CREDENTIALS_FILE"; -var getCredentialsFilepath = /* @__PURE__ */ __name(() => process.env[ENV_CREDENTIALS_PATH] || (0, import_path.join)((0, import_getHomeDir2.getHomeDir)(), ".aws", "credentials"), "getCredentialsFilepath"); - -// src/loadSharedConfigFiles.ts -var import_getHomeDir3 = __nccwpck_require__(47007); - -// src/parseIni.ts - -var prefixKeyRegex = /^([\w-]+)\s(["'])?([\w-@\+\.%:/]+)\2$/; -var profileNameBlockList = ["__proto__", "profile __proto__"]; -var parseIni = /* @__PURE__ */ __name((iniData) => { - const map = {}; - let currentSection; - let currentSubSection; - for (const iniLine of iniData.split(/\r?\n/)) { - const trimmedLine = iniLine.split(/(^|\s)[;#]/)[0].trim(); - const isSection = trimmedLine[0] === "[" && trimmedLine[trimmedLine.length - 1] === "]"; - if (isSection) { - currentSection = void 0; - currentSubSection = void 0; - const sectionName = trimmedLine.substring(1, trimmedLine.length - 1); - const matches = prefixKeyRegex.exec(sectionName); - if (matches) { - const [, prefix, , name] = matches; - if (Object.values(import_types.IniSectionType).includes(prefix)) { - currentSection = [prefix, name].join(CONFIG_PREFIX_SEPARATOR); + /***/ 75531: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __create = Object.create + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __getProtoOf = Object.getPrototypeOf + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) } - } else { - currentSection = sectionName; - } - if (profileNameBlockList.includes(sectionName)) { - throw new Error(`Found invalid profile name "${sectionName}"`); - } - } else if (currentSection) { - const indexOfEqualsSign = trimmedLine.indexOf("="); - if (![0, -1].includes(indexOfEqualsSign)) { - const [name, value] = [ - trimmedLine.substring(0, indexOfEqualsSign).trim(), - trimmedLine.substring(indexOfEqualsSign + 1).trim() - ]; - if (value === "") { - currentSubSection = name; - } else { - if (currentSubSection && iniLine.trimStart() === iniLine) { - currentSubSection = void 0; + return to + } + var __toESM = (mod, isNodeMode, target) => ( + (target = mod != null ? __create(__getProtoOf(mod)) : {}), + __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule + ? __defProp(target, 'default', { value: mod, enumerable: true }) + : target, + mod + ) + ) + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + credentialsTreatedAsExpired: () => credentialsTreatedAsExpired, + credentialsWillNeedRefresh: () => credentialsWillNeedRefresh, + defaultProvider: () => defaultProvider + }) + module.exports = __toCommonJS(src_exports) + + // src/defaultProvider.ts + var import_credential_provider_env = __nccwpck_require__(15972) + + var import_shared_ini_file_loader = __nccwpck_require__(43507) + + // src/remoteProvider.ts + var import_property_provider = __nccwpck_require__(79721) + var ENV_IMDS_DISABLED = 'AWS_EC2_METADATA_DISABLED' + var remoteProvider = /* @__PURE__ */ __name(async init => { + var _a, _b + const { + ENV_CMDS_FULL_URI, + ENV_CMDS_RELATIVE_URI, + fromContainerMetadata, + fromInstanceMetadata + } = await Promise.resolve().then(() => + __toESM(__nccwpck_require__(7477)) + ) + if ( + process.env[ENV_CMDS_RELATIVE_URI] || + process.env[ENV_CMDS_FULL_URI] + ) { + ;(_a = init.logger) == null + ? void 0 + : _a.debug( + '@aws-sdk/credential-provider-node - remoteProvider::fromHttp/fromContainerMetadata' + ) + const { fromHttp } = await Promise.resolve().then(() => + __toESM(__nccwpck_require__(17290)) + ) + return (0, import_property_provider.chain)( + fromHttp(init), + fromContainerMetadata(init) + ) + } + if (process.env[ENV_IMDS_DISABLED]) { + return async () => { + throw new import_property_provider.CredentialsProviderError( + 'EC2 Instance Metadata Service access disabled', + { logger: init.logger } + ) } - map[currentSection] = map[currentSection] || {}; - const key = currentSubSection ? [currentSubSection, name].join(CONFIG_PREFIX_SEPARATOR) : name; - map[currentSection][key] = value; } - } - } - } - return map; -}, "parseIni"); - -// src/loadSharedConfigFiles.ts -var import_slurpFile = __nccwpck_require__(41511); -var swallowError = /* @__PURE__ */ __name(() => ({}), "swallowError"); -var CONFIG_PREFIX_SEPARATOR = "."; -var loadSharedConfigFiles = /* @__PURE__ */ __name(async (init = {}) => { - const { filepath = getCredentialsFilepath(), configFilepath = getConfigFilepath() } = init; - const homeDir = (0, import_getHomeDir3.getHomeDir)(); - const relativeHomeDirPrefix = "~/"; - let resolvedFilepath = filepath; - if (filepath.startsWith(relativeHomeDirPrefix)) { - resolvedFilepath = (0, import_path.join)(homeDir, filepath.slice(2)); - } - let resolvedConfigFilepath = configFilepath; - if (configFilepath.startsWith(relativeHomeDirPrefix)) { - resolvedConfigFilepath = (0, import_path.join)(homeDir, configFilepath.slice(2)); - } - const parsedFiles = await Promise.all([ - (0, import_slurpFile.slurpFile)(resolvedConfigFilepath, { - ignoreCache: init.ignoreCache - }).then(parseIni).then(getConfigData).catch(swallowError), - (0, import_slurpFile.slurpFile)(resolvedFilepath, { - ignoreCache: init.ignoreCache - }).then(parseIni).catch(swallowError) - ]); - return { - configFile: parsedFiles[0], - credentialsFile: parsedFiles[1] - }; -}, "loadSharedConfigFiles"); - -// src/getSsoSessionData.ts - -var 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"); - -// src/loadSsoSessionData.ts -var import_slurpFile2 = __nccwpck_require__(41511); -var swallowError2 = /* @__PURE__ */ __name(() => ({}), "swallowError"); -var loadSsoSessionData = /* @__PURE__ */ __name(async (init = {}) => (0, import_slurpFile2.slurpFile)(init.configFilepath ?? getConfigFilepath()).then(parseIni).then(getSsoSessionData).catch(swallowError2), "loadSsoSessionData"); - -// src/mergeConfigFiles.ts -var mergeConfigFiles = /* @__PURE__ */ __name((...files) => { - const merged = {}; - for (const file of files) { - for (const [key, values] of Object.entries(file)) { - if (merged[key] !== void 0) { - Object.assign(merged[key], values); - } else { - merged[key] = values; - } - } - } - return merged; -}, "mergeConfigFiles"); - -// src/parseKnownFiles.ts -var parseKnownFiles = /* @__PURE__ */ __name(async (init) => { - const parsedFiles = await loadSharedConfigFiles(init); - return mergeConfigFiles(parsedFiles.configFile, parsedFiles.credentialsFile); -}, "parseKnownFiles"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), + ;(_b = init.logger) == null + ? void 0 + : _b.debug( + '@aws-sdk/credential-provider-node - remoteProvider::fromInstanceMetadata' + ) + return fromInstanceMetadata(init) + }, 'remoteProvider') + + // src/defaultProvider.ts + var multipleCredentialSourceWarningEmitted = false + var defaultProvider = /* @__PURE__ */ __name( + (init = {}) => + (0, import_property_provider.memoize)( + (0, import_property_provider.chain)( + async () => { + var _a, _b, _c, _d + const profile = + init.profile ?? + process.env[import_shared_ini_file_loader.ENV_PROFILE] + if (profile) { + const envStaticCredentialsAreSet = + process.env[import_credential_provider_env.ENV_KEY] && + process.env[import_credential_provider_env.ENV_SECRET] + if (envStaticCredentialsAreSet) { + if (!multipleCredentialSourceWarningEmitted) { + const warnFn = + ((_a = init.logger) == null ? void 0 : _a.warn) && + ((_c = + (_b = init.logger) == null + ? void 0 + : _b.constructor) == null + ? void 0 + : _c.name) !== 'NoOpLogger' + ? init.logger.warn + : console.warn + warnFn( + `@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING: + Multiple credential sources detected: + Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set. + This SDK will proceed with the AWS_PROFILE value. + + However, a future version may change this behavior to prefer the ENV static credentials. + Please ensure that your environment only sets either the AWS_PROFILE or the + AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair. +` + ) + multipleCredentialSourceWarningEmitted = true + } + } + throw new import_property_provider.CredentialsProviderError( + 'AWS_PROFILE is set, skipping fromEnv provider.', + { + logger: init.logger, + tryNextLink: true + } + ) + } + ;(_d = init.logger) == null + ? void 0 + : _d.debug( + '@aws-sdk/credential-provider-node - defaultProvider::fromEnv' + ) + return (0, import_credential_provider_env.fromEnv)(init)() + }, + async () => { + var _a + ;(_a = init.logger) == null + ? void 0 + : _a.debug( + '@aws-sdk/credential-provider-node - defaultProvider::fromSSO' + ) + const { + ssoStartUrl, + ssoAccountId, + ssoRegion, + ssoRoleName, + ssoSession + } = init + if ( + !ssoStartUrl && + !ssoAccountId && + !ssoRegion && + !ssoRoleName && + !ssoSession + ) { + throw new import_property_provider.CredentialsProviderError( + 'Skipping SSO provider in default chain (inputs do not include SSO fields).', + { logger: init.logger } + ) + } + const { fromSSO } = await Promise.resolve().then(() => + __toESM(__nccwpck_require__(26414)) + ) + return fromSSO(init)() + }, + async () => { + var _a + ;(_a = init.logger) == null + ? void 0 + : _a.debug( + '@aws-sdk/credential-provider-node - defaultProvider::fromIni' + ) + const { fromIni } = await Promise.resolve().then(() => + __toESM(__nccwpck_require__(74203)) + ) + return fromIni(init)() + }, + async () => { + var _a + ;(_a = init.logger) == null + ? void 0 + : _a.debug( + '@aws-sdk/credential-provider-node - defaultProvider::fromProcess' + ) + const { fromProcess } = await Promise.resolve().then(() => + __toESM(__nccwpck_require__(89969)) + ) + return fromProcess(init)() + }, + async () => { + var _a + ;(_a = init.logger) == null + ? void 0 + : _a.debug( + '@aws-sdk/credential-provider-node - defaultProvider::fromTokenFile' + ) + const { fromTokenFile } = await Promise.resolve().then(() => + __toESM(__nccwpck_require__(15646)) + ) + return fromTokenFile(init)() + }, + async () => { + var _a + ;(_a = init.logger) == null + ? void 0 + : _a.debug( + '@aws-sdk/credential-provider-node - defaultProvider::remoteProvider' + ) + return (await remoteProvider(init))() + }, + async () => { + throw new import_property_provider.CredentialsProviderError( + 'Could not load credentials from any providers', + { + tryNextLink: false, + logger: init.logger + } + ) + } + ), + credentialsTreatedAsExpired, + credentialsWillNeedRefresh + ), + 'defaultProvider' + ) + var credentialsWillNeedRefresh = /* @__PURE__ */ __name( + credentials => + (credentials == null ? void 0 : credentials.expiration) !== void 0, + 'credentialsWillNeedRefresh' + ) + var credentialsTreatedAsExpired = /* @__PURE__ */ __name( + credentials => + (credentials == null ? void 0 : credentials.expiration) !== void 0 && + credentials.expiration.getTime() - Date.now() < 3e5, + 'credentialsTreatedAsExpired' + ) + // Annotate the CommonJS export names for ESM import in node: -/***/ 41511: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + 0 && 0 -"use strict"; + /***/ + }, -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.slurpFile = void 0; -const fs_1 = __nccwpck_require__(57147); -const { readFile } = fs_1.promises; -const filePromisesHash = {}; -const slurpFile = (path, options) => { - if (!filePromisesHash[path] || (options === null || options === void 0 ? void 0 : options.ignoreCache)) { - filePromisesHash[path] = readFile(path, "utf8"); - } - return filePromisesHash[path]; -}; -exports.slurpFile = slurpFile; - - -/***/ }), - -/***/ 78313: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - SignatureV4: () => SignatureV4, - clearCredentialCache: () => clearCredentialCache, - createScope: () => createScope, - getCanonicalHeaders: () => getCanonicalHeaders, - getCanonicalQuery: () => getCanonicalQuery, - getPayloadHash: () => getPayloadHash, - getSigningKey: () => getSigningKey, - moveHeadersToQuery: () => moveHeadersToQuery, - prepareRequest: () => prepareRequest -}); -module.exports = __toCommonJS(src_exports); - -// src/SignatureV4.ts - -var import_util_middleware = __nccwpck_require__(69474); - -var import_util_utf84 = __nccwpck_require__(94377); - -// src/constants.ts -var ALGORITHM_QUERY_PARAM = "X-Amz-Algorithm"; -var CREDENTIAL_QUERY_PARAM = "X-Amz-Credential"; -var AMZ_DATE_QUERY_PARAM = "X-Amz-Date"; -var SIGNED_HEADERS_QUERY_PARAM = "X-Amz-SignedHeaders"; -var EXPIRES_QUERY_PARAM = "X-Amz-Expires"; -var SIGNATURE_QUERY_PARAM = "X-Amz-Signature"; -var TOKEN_QUERY_PARAM = "X-Amz-Security-Token"; -var AUTH_HEADER = "authorization"; -var AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase(); -var DATE_HEADER = "date"; -var GENERATED_HEADERS = [AUTH_HEADER, AMZ_DATE_HEADER, DATE_HEADER]; -var SIGNATURE_HEADER = SIGNATURE_QUERY_PARAM.toLowerCase(); -var SHA256_HEADER = "x-amz-content-sha256"; -var TOKEN_HEADER = TOKEN_QUERY_PARAM.toLowerCase(); -var ALWAYS_UNSIGNABLE_HEADERS = { - authorization: true, - "cache-control": true, - connection: true, - expect: true, - from: true, - "keep-alive": true, - "max-forwards": true, - pragma: true, - referer: true, - te: true, - trailer: true, - "transfer-encoding": true, - upgrade: true, - "user-agent": true, - "x-amzn-trace-id": true -}; -var PROXY_HEADER_PATTERN = /^proxy-/; -var SEC_HEADER_PATTERN = /^sec-/; -var ALGORITHM_IDENTIFIER = "AWS4-HMAC-SHA256"; -var EVENT_ALGORITHM_IDENTIFIER = "AWS4-HMAC-SHA256-PAYLOAD"; -var UNSIGNED_PAYLOAD = "UNSIGNED-PAYLOAD"; -var MAX_CACHE_SIZE = 50; -var KEY_TYPE_IDENTIFIER = "aws4_request"; -var MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7; - -// src/credentialDerivation.ts -var import_util_hex_encoding = __nccwpck_require__(82143); -var import_util_utf8 = __nccwpck_require__(94377); -var signingKeyCache = {}; -var cacheQueue = []; -var createScope = /* @__PURE__ */ __name((shortDate, region, service) => `${shortDate}/${region}/${service}/${KEY_TYPE_IDENTIFIER}`, "createScope"); -var getSigningKey = /* @__PURE__ */ __name(async (sha256Constructor, credentials, shortDate, region, service) => { - const credsHash = await hmac(sha256Constructor, credentials.secretAccessKey, credentials.accessKeyId); - const cacheKey = `${shortDate}:${region}:${service}:${(0, import_util_hex_encoding.toHex)(credsHash)}:${credentials.sessionToken}`; - if (cacheKey in signingKeyCache) { - return signingKeyCache[cacheKey]; - } - cacheQueue.push(cacheKey); - while (cacheQueue.length > MAX_CACHE_SIZE) { - delete signingKeyCache[cacheQueue.shift()]; - } - let key = `AWS4${credentials.secretAccessKey}`; - for (const signable of [shortDate, region, service, KEY_TYPE_IDENTIFIER]) { - key = await hmac(sha256Constructor, key, signable); - } - return signingKeyCache[cacheKey] = key; -}, "getSigningKey"); -var clearCredentialCache = /* @__PURE__ */ __name(() => { - cacheQueue.length = 0; - Object.keys(signingKeyCache).forEach((cacheKey) => { - delete signingKeyCache[cacheKey]; - }); -}, "clearCredentialCache"); -var hmac = /* @__PURE__ */ __name((ctor, secret, data) => { - const hash = new ctor(secret); - hash.update((0, import_util_utf8.toUint8Array)(data)); - return hash.digest(); -}, "hmac"); - -// src/getCanonicalHeaders.ts -var getCanonicalHeaders = /* @__PURE__ */ __name(({ headers }, unsignableHeaders, signableHeaders) => { - const canonical = {}; - for (const headerName of Object.keys(headers).sort()) { - if (headers[headerName] == void 0) { - continue; - } - const canonicalHeaderName = headerName.toLowerCase(); - if (canonicalHeaderName in ALWAYS_UNSIGNABLE_HEADERS || unsignableHeaders?.has(canonicalHeaderName) || PROXY_HEADER_PATTERN.test(canonicalHeaderName) || SEC_HEADER_PATTERN.test(canonicalHeaderName)) { - if (!signableHeaders || signableHeaders && !signableHeaders.has(canonicalHeaderName)) { - continue; + /***/ 89969: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to } - } - canonical[canonicalHeaderName] = headers[headerName].trim().replace(/\s+/g, " "); - } - return canonical; -}, "getCanonicalHeaders"); - -// src/getCanonicalQuery.ts -var import_util_uri_escape = __nccwpck_require__(59765); -var getCanonicalQuery = /* @__PURE__ */ __name(({ query = {} }) => { - const keys = []; - const serialized = {}; - for (const key of Object.keys(query)) { - if (key.toLowerCase() === SIGNATURE_HEADER) { - continue; - } - const encodedKey = (0, import_util_uri_escape.escapeUri)(key); - keys.push(encodedKey); - const value = query[key]; - if (typeof value === "string") { - serialized[encodedKey] = `${encodedKey}=${(0, import_util_uri_escape.escapeUri)(value)}`; - } else if (Array.isArray(value)) { - serialized[encodedKey] = value.slice(0).reduce((encoded, value2) => encoded.concat([`${encodedKey}=${(0, import_util_uri_escape.escapeUri)(value2)}`]), []).sort().join("&"); - } - } - return keys.sort().map((key) => serialized[key]).filter((serialized2) => serialized2).join("&"); -}, "getCanonicalQuery"); + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -// src/getPayloadHash.ts -var import_is_array_buffer = __nccwpck_require__(22299); + // src/index.ts + var src_exports = {} + __export(src_exports, { + fromProcess: () => fromProcess + }) + module.exports = __toCommonJS(src_exports) + + // src/fromProcess.ts + var import_shared_ini_file_loader = __nccwpck_require__(43507) + + // src/resolveProcessCredentials.ts + var import_property_provider = __nccwpck_require__(79721) + var import_child_process = __nccwpck_require__(32081) + var import_util = __nccwpck_require__(73837) + + // src/getValidatedProcessCredentials.ts + var getValidatedProcessCredentials = /* @__PURE__ */ __name( + (profileName, data, profiles) => { + var _a + if (data.Version !== 1) { + throw Error( + `Profile ${profileName} credential_process did not return Version 1.` + ) + } + if (data.AccessKeyId === void 0 || data.SecretAccessKey === void 0) { + throw Error( + `Profile ${profileName} credential_process returned invalid credentials.` + ) + } + if (data.Expiration) { + const currentTime = /* @__PURE__ */ new Date() + const expireTime = new Date(data.Expiration) + if (expireTime < currentTime) { + throw Error( + `Profile ${profileName} credential_process returned expired credentials.` + ) + } + } + let accountId = data.AccountId + if ( + !accountId && + ((_a = profiles == null ? void 0 : profiles[profileName]) == null + ? void 0 + : _a.aws_account_id) + ) { + accountId = profiles[profileName].aws_account_id + } + return { + accessKeyId: data.AccessKeyId, + secretAccessKey: data.SecretAccessKey, + ...(data.SessionToken && { sessionToken: data.SessionToken }), + ...(data.Expiration && { expiration: new Date(data.Expiration) }), + ...(data.CredentialScope && { + credentialScope: data.CredentialScope + }), + ...(accountId && { accountId }) + } + }, + 'getValidatedProcessCredentials' + ) -var import_util_utf82 = __nccwpck_require__(94377); -var getPayloadHash = /* @__PURE__ */ __name(async ({ headers, body }, hashConstructor) => { - for (const headerName of Object.keys(headers)) { - if (headerName.toLowerCase() === SHA256_HEADER) { - return headers[headerName]; - } - } - if (body == void 0) { - return "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"; - } else if (typeof body === "string" || ArrayBuffer.isView(body) || (0, import_is_array_buffer.isArrayBuffer)(body)) { - const hashCtor = new hashConstructor(); - hashCtor.update((0, import_util_utf82.toUint8Array)(body)); - return (0, import_util_hex_encoding.toHex)(await hashCtor.digest()); - } - return UNSIGNED_PAYLOAD; -}, "getPayloadHash"); + // src/resolveProcessCredentials.ts + var resolveProcessCredentials = /* @__PURE__ */ __name( + async (profileName, profiles, logger) => { + const profile = profiles[profileName] + if (profiles[profileName]) { + const credentialProcess = profile['credential_process'] + if (credentialProcess !== void 0) { + const execPromise = (0, import_util.promisify)( + import_child_process.exec + ) + try { + const { stdout } = await execPromise(credentialProcess) + let data + try { + data = JSON.parse(stdout.trim()) + } catch { + throw Error( + `Profile ${profileName} credential_process returned invalid JSON.` + ) + } + return getValidatedProcessCredentials( + profileName, + data, + profiles + ) + } catch (error) { + throw new import_property_provider.CredentialsProviderError( + error.message, + { logger } + ) + } + } else { + throw new import_property_provider.CredentialsProviderError( + `Profile ${profileName} did not contain credential_process.`, + { logger } + ) + } + } else { + throw new import_property_provider.CredentialsProviderError( + `Profile ${profileName} could not be found in shared credentials file.`, + { + logger + } + ) + } + }, + 'resolveProcessCredentials' + ) -// src/HeaderFormatter.ts + // src/fromProcess.ts + var fromProcess = /* @__PURE__ */ __name( + (init = {}) => + async () => { + var _a + ;(_a = init.logger) == null + ? void 0 + : _a.debug('@aws-sdk/credential-provider-process - fromProcess') + const profiles = await (0, + import_shared_ini_file_loader.parseKnownFiles)(init) + return resolveProcessCredentials( + (0, import_shared_ini_file_loader.getProfileName)(init), + profiles, + init.logger + ) + }, + 'fromProcess' + ) + // Annotate the CommonJS export names for ESM import in node: -var import_util_utf83 = __nccwpck_require__(94377); -var HeaderFormatter = class { - static { - __name(this, "HeaderFormatter"); - } - format(headers) { - const chunks = []; - for (const headerName of Object.keys(headers)) { - const bytes = (0, import_util_utf83.fromUtf8)(headerName); - chunks.push(Uint8Array.from([bytes.byteLength]), bytes, this.formatHeaderValue(headers[headerName])); - } - const out = new Uint8Array(chunks.reduce((carry, bytes) => carry + bytes.byteLength, 0)); - let position = 0; - for (const chunk of chunks) { - out.set(chunk, position); - position += chunk.byteLength; - } - return out; - } - formatHeaderValue(header) { - switch (header.type) { - case "boolean": - return Uint8Array.from([header.value ? 0 /* boolTrue */ : 1 /* boolFalse */]); - case "byte": - return Uint8Array.from([2 /* byte */, header.value]); - case "short": - const shortView = new DataView(new ArrayBuffer(3)); - shortView.setUint8(0, 3 /* short */); - shortView.setInt16(1, header.value, false); - return new Uint8Array(shortView.buffer); - case "integer": - const intView = new DataView(new ArrayBuffer(5)); - intView.setUint8(0, 4 /* integer */); - intView.setInt32(1, header.value, false); - return new Uint8Array(intView.buffer); - case "long": - const longBytes = new Uint8Array(9); - longBytes[0] = 5 /* long */; - longBytes.set(header.value.bytes, 1); - return longBytes; - case "binary": - const binView = new DataView(new ArrayBuffer(3 + header.value.byteLength)); - binView.setUint8(0, 6 /* byteArray */); - binView.setUint16(1, header.value.byteLength, false); - const binBytes = new Uint8Array(binView.buffer); - binBytes.set(header.value, 3); - return binBytes; - case "string": - const utf8Bytes = (0, import_util_utf83.fromUtf8)(header.value); - const strView = new DataView(new ArrayBuffer(3 + utf8Bytes.byteLength)); - strView.setUint8(0, 7 /* string */); - strView.setUint16(1, utf8Bytes.byteLength, false); - const strBytes = new Uint8Array(strView.buffer); - strBytes.set(utf8Bytes, 3); - return strBytes; - case "timestamp": - const tsBytes = new Uint8Array(9); - tsBytes[0] = 8 /* timestamp */; - tsBytes.set(Int64.fromNumber(header.value.valueOf()).bytes, 1); - return tsBytes; - case "uuid": - if (!UUID_PATTERN.test(header.value)) { - throw new Error(`Invalid UUID received: ${header.value}`); - } - const uuidBytes = new Uint8Array(17); - uuidBytes[0] = 9 /* uuid */; - uuidBytes.set((0, import_util_hex_encoding.fromHex)(header.value.replace(/\-/g, "")), 1); - return uuidBytes; - } - } -}; -var UUID_PATTERN = /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/; -var Int64 = class _Int64 { - constructor(bytes) { - this.bytes = bytes; - if (bytes.byteLength !== 8) { - throw new Error("Int64 buffers must be exactly 8 bytes"); - } - } - static { - __name(this, "Int64"); - } - static fromNumber(number) { - if (number > 9223372036854776e3 || number < -9223372036854776e3) { - throw new Error(`${number} is too large (or, if negative, too small) to represent as an Int64`); - } - const bytes = new Uint8Array(8); - for (let i = 7, remaining = Math.abs(Math.round(number)); i > -1 && remaining > 0; i--, remaining /= 256) { - bytes[i] = remaining; - } - if (number < 0) { - negate(bytes); - } - return new _Int64(bytes); - } - /** - * Called implicitly by infix arithmetic operators. - */ - valueOf() { - const bytes = this.bytes.slice(0); - const negative = bytes[0] & 128; - if (negative) { - negate(bytes); - } - return parseInt((0, import_util_hex_encoding.toHex)(bytes), 16) * (negative ? -1 : 1); - } - toString() { - return String(this.valueOf()); - } -}; -function negate(bytes) { - for (let i = 0; i < 8; i++) { - bytes[i] ^= 255; - } - for (let i = 7; i > -1; i--) { - bytes[i]++; - if (bytes[i] !== 0) - break; - } -} -__name(negate, "negate"); - -// src/headerUtil.ts -var hasHeader = /* @__PURE__ */ __name((soughtHeader, headers) => { - soughtHeader = soughtHeader.toLowerCase(); - for (const headerName of Object.keys(headers)) { - if (soughtHeader === headerName.toLowerCase()) { - return true; - } - } - return false; -}, "hasHeader"); - -// src/moveHeadersToQuery.ts -var import_protocol_http = __nccwpck_require__(31788); -var moveHeadersToQuery = /* @__PURE__ */ __name((request, options = {}) => { - const { headers, query = {} } = import_protocol_http.HttpRequest.clone(request); - for (const name of Object.keys(headers)) { - const lname = name.toLowerCase(); - if (lname.slice(0, 6) === "x-amz-" && !options.unhoistableHeaders?.has(lname) || options.hoistableHeaders?.has(lname)) { - query[name] = headers[name]; - delete headers[name]; - } - } - return { - ...request, - headers, - query - }; -}, "moveHeadersToQuery"); - -// src/prepareRequest.ts - -var prepareRequest = /* @__PURE__ */ __name((request) => { - request = import_protocol_http.HttpRequest.clone(request); - for (const headerName of Object.keys(request.headers)) { - if (GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) { - delete request.headers[headerName]; - } - } - return request; -}, "prepareRequest"); - -// src/utilDate.ts -var iso8601 = /* @__PURE__ */ __name((time) => toDate(time).toISOString().replace(/\.\d{3}Z$/, "Z"), "iso8601"); -var toDate = /* @__PURE__ */ __name((time) => { - if (typeof time === "number") { - return new Date(time * 1e3); - } - if (typeof time === "string") { - if (Number(time)) { - return new Date(Number(time) * 1e3); - } - return new Date(time); - } - return time; -}, "toDate"); - -// src/SignatureV4.ts -var SignatureV4 = class { - constructor({ - applyChecksum, - credentials, - region, - service, - sha256, - uriEscapePath = true - }) { - this.headerFormatter = new HeaderFormatter(); - this.service = service; - this.sha256 = sha256; - this.uriEscapePath = uriEscapePath; - this.applyChecksum = typeof applyChecksum === "boolean" ? applyChecksum : true; - this.regionProvider = (0, import_util_middleware.normalizeProvider)(region); - this.credentialProvider = (0, import_util_middleware.normalizeProvider)(credentials); - } - static { - __name(this, "SignatureV4"); - } - async presign(originalRequest, options = {}) { - const { - signingDate = /* @__PURE__ */ new Date(), - expiresIn = 3600, - unsignableHeaders, - unhoistableHeaders, - signableHeaders, - hoistableHeaders, - signingRegion, - signingService - } = options; - const credentials = await this.credentialProvider(); - this.validateResolvedCredentials(credentials); - const region = signingRegion ?? await this.regionProvider(); - const { longDate, shortDate } = formatDate(signingDate); - if (expiresIn > MAX_PRESIGNED_TTL) { - return Promise.reject( - "Signature version 4 presigned URLs must have an expiration date less than one week in the future" - ); - } - const scope = createScope(shortDate, region, signingService ?? this.service); - const request = moveHeadersToQuery(prepareRequest(originalRequest), { unhoistableHeaders, hoistableHeaders }); - if (credentials.sessionToken) { - request.query[TOKEN_QUERY_PARAM] = credentials.sessionToken; - } - request.query[ALGORITHM_QUERY_PARAM] = ALGORITHM_IDENTIFIER; - request.query[CREDENTIAL_QUERY_PARAM] = `${credentials.accessKeyId}/${scope}`; - request.query[AMZ_DATE_QUERY_PARAM] = longDate; - request.query[EXPIRES_QUERY_PARAM] = expiresIn.toString(10); - const canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders); - request.query[SIGNED_HEADERS_QUERY_PARAM] = getCanonicalHeaderList(canonicalHeaders); - request.query[SIGNATURE_QUERY_PARAM] = await this.getSignature( - longDate, - scope, - this.getSigningKey(credentials, region, shortDate, signingService), - this.createCanonicalRequest(request, canonicalHeaders, await getPayloadHash(originalRequest, this.sha256)) - ); - return request; - } - async sign(toSign, options) { - if (typeof toSign === "string") { - return this.signString(toSign, options); - } else if (toSign.headers && toSign.payload) { - return this.signEvent(toSign, options); - } else if (toSign.message) { - return this.signMessage(toSign, options); - } else { - return this.signRequest(toSign, options); - } - } - async signEvent({ headers, payload }, { signingDate = /* @__PURE__ */ new Date(), priorSignature, signingRegion, signingService }) { - const region = signingRegion ?? await this.regionProvider(); - const { shortDate, longDate } = formatDate(signingDate); - const scope = createScope(shortDate, region, signingService ?? this.service); - const hashedPayload = await getPayloadHash({ headers: {}, body: payload }, this.sha256); - const hash = new this.sha256(); - hash.update(headers); - const hashedHeaders = (0, import_util_hex_encoding.toHex)(await hash.digest()); - const stringToSign = [ - EVENT_ALGORITHM_IDENTIFIER, - longDate, - scope, - priorSignature, - hashedHeaders, - hashedPayload - ].join("\n"); - return this.signString(stringToSign, { signingDate, signingRegion: region, signingService }); - } - async signMessage(signableMessage, { signingDate = /* @__PURE__ */ new Date(), signingRegion, signingService }) { - const promise = this.signEvent( - { - headers: this.headerFormatter.format(signableMessage.message.headers), - payload: signableMessage.message.body - }, - { - signingDate, - signingRegion, - signingService, - priorSignature: signableMessage.priorSignature - } - ); - return promise.then((signature) => { - return { message: signableMessage.message, signature }; - }); - } - async signString(stringToSign, { signingDate = /* @__PURE__ */ new Date(), signingRegion, signingService } = {}) { - const credentials = await this.credentialProvider(); - this.validateResolvedCredentials(credentials); - const region = signingRegion ?? await this.regionProvider(); - const { shortDate } = formatDate(signingDate); - const hash = new this.sha256(await this.getSigningKey(credentials, region, shortDate, signingService)); - hash.update((0, import_util_utf84.toUint8Array)(stringToSign)); - return (0, import_util_hex_encoding.toHex)(await hash.digest()); - } - async signRequest(requestToSign, { - signingDate = /* @__PURE__ */ new Date(), - signableHeaders, - unsignableHeaders, - signingRegion, - signingService - } = {}) { - const credentials = await this.credentialProvider(); - this.validateResolvedCredentials(credentials); - const region = signingRegion ?? await this.regionProvider(); - const request = prepareRequest(requestToSign); - const { longDate, shortDate } = formatDate(signingDate); - const scope = createScope(shortDate, region, signingService ?? this.service); - request.headers[AMZ_DATE_HEADER] = longDate; - if (credentials.sessionToken) { - request.headers[TOKEN_HEADER] = credentials.sessionToken; - } - const payloadHash = await getPayloadHash(request, this.sha256); - if (!hasHeader(SHA256_HEADER, request.headers) && this.applyChecksum) { - request.headers[SHA256_HEADER] = payloadHash; - } - const canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders); - const signature = await this.getSignature( - longDate, - scope, - this.getSigningKey(credentials, region, shortDate, signingService), - this.createCanonicalRequest(request, canonicalHeaders, payloadHash) - ); - request.headers[AUTH_HEADER] = `${ALGORITHM_IDENTIFIER} Credential=${credentials.accessKeyId}/${scope}, SignedHeaders=${getCanonicalHeaderList(canonicalHeaders)}, Signature=${signature}`; - return request; - } - createCanonicalRequest(request, canonicalHeaders, payloadHash) { - const sortedHeaders = Object.keys(canonicalHeaders).sort(); - return `${request.method} -${this.getCanonicalPath(request)} -${getCanonicalQuery(request)} -${sortedHeaders.map((name) => `${name}:${canonicalHeaders[name]}`).join("\n")} + 0 && 0 -${sortedHeaders.join(";")} -${payloadHash}`; - } - async createStringToSign(longDate, credentialScope, canonicalRequest) { - const hash = new this.sha256(); - hash.update((0, import_util_utf84.toUint8Array)(canonicalRequest)); - const hashedRequest = await hash.digest(); - return `${ALGORITHM_IDENTIFIER} -${longDate} -${credentialScope} -${(0, import_util_hex_encoding.toHex)(hashedRequest)}`; - } - getCanonicalPath({ path }) { - if (this.uriEscapePath) { - const normalizedPathSegments = []; - for (const pathSegment of path.split("/")) { - if (pathSegment?.length === 0) - continue; - if (pathSegment === ".") - continue; - if (pathSegment === "..") { - normalizedPathSegments.pop(); - } else { - normalizedPathSegments.push(pathSegment); + /***/ + }, + + /***/ 26414: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __esm = (fn, res) => + function __init() { + return ( + fn && (res = (0, fn[__getOwnPropNames(fn)[0]])((fn = 0))), + res + ) } + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to } - const normalizedPath = `${path?.startsWith("/") ? "/" : ""}${normalizedPathSegments.join("/")}${normalizedPathSegments.length > 0 && path?.endsWith("/") ? "/" : ""}`; - const doubleEncoded = (0, import_util_uri_escape.escapeUri)(normalizedPath); - return doubleEncoded.replace(/%2F/g, "/"); - } - return path; - } - async getSignature(longDate, credentialScope, keyPromise, canonicalRequest) { - const stringToSign = await this.createStringToSign(longDate, credentialScope, canonicalRequest); - const hash = new this.sha256(await keyPromise); - hash.update((0, import_util_utf84.toUint8Array)(stringToSign)); - return (0, import_util_hex_encoding.toHex)(await hash.digest()); - } - getSigningKey(credentials, region, shortDate, service) { - return getSigningKey(this.sha256, credentials, shortDate, region, service || this.service); - } - validateResolvedCredentials(credentials) { - if (typeof credentials !== "object" || // @ts-expect-error: Property 'accessKeyId' does not exist on type 'object'.ts(2339) - typeof credentials.accessKeyId !== "string" || // @ts-expect-error: Property 'secretAccessKey' does not exist on type 'object'.ts(2339) - typeof credentials.secretAccessKey !== "string") { - throw new Error("Resolved credential object is not valid"); - } - } -}; -var formatDate = /* @__PURE__ */ __name((now) => { - const longDate = iso8601(now).replace(/[\-:]/g, ""); - return { - longDate, - shortDate: longDate.slice(0, 8) - }; -}, "formatDate"); -var getCanonicalHeaderList = /* @__PURE__ */ __name((headers) => Object.keys(headers).sort().join(";"), "getCanonicalHeaderList"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 76583: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - Client: () => Client, - Command: () => Command, - LazyJsonString: () => LazyJsonString, - NoOpLogger: () => NoOpLogger, - SENSITIVE_STRING: () => SENSITIVE_STRING, - ServiceException: () => ServiceException, - _json: () => _json, - collectBody: () => import_protocols.collectBody, - convertMap: () => convertMap, - createAggregatedClient: () => createAggregatedClient, - dateToUtcString: () => dateToUtcString, - decorateServiceException: () => decorateServiceException, - emitWarningIfUnsupportedVersion: () => emitWarningIfUnsupportedVersion, - expectBoolean: () => expectBoolean, - expectByte: () => expectByte, - expectFloat32: () => expectFloat32, - expectInt: () => expectInt, - expectInt32: () => expectInt32, - expectLong: () => expectLong, - expectNonNull: () => expectNonNull, - expectNumber: () => expectNumber, - expectObject: () => expectObject, - expectShort: () => expectShort, - expectString: () => expectString, - expectUnion: () => expectUnion, - extendedEncodeURIComponent: () => import_protocols.extendedEncodeURIComponent, - getArrayIfSingleItem: () => getArrayIfSingleItem, - getDefaultClientConfiguration: () => getDefaultClientConfiguration, - getDefaultExtensionConfiguration: () => getDefaultExtensionConfiguration, - getValueFromTextNode: () => getValueFromTextNode, - handleFloat: () => handleFloat, - isSerializableHeaderValue: () => isSerializableHeaderValue, - limitedParseDouble: () => limitedParseDouble, - limitedParseFloat: () => limitedParseFloat, - limitedParseFloat32: () => limitedParseFloat32, - loadConfigsForDefaultMode: () => loadConfigsForDefaultMode, - logger: () => logger, - map: () => map, - parseBoolean: () => parseBoolean, - parseEpochTimestamp: () => parseEpochTimestamp, - parseRfc3339DateTime: () => parseRfc3339DateTime, - parseRfc3339DateTimeWithOffset: () => parseRfc3339DateTimeWithOffset, - parseRfc7231DateTime: () => parseRfc7231DateTime, - quoteHeader: () => quoteHeader, - resolveDefaultRuntimeConfig: () => resolveDefaultRuntimeConfig, - resolvedPath: () => import_protocols.resolvedPath, - serializeDateTime: () => serializeDateTime, - serializeFloat: () => serializeFloat, - splitEvery: () => splitEvery, - splitHeader: () => splitHeader, - strictParseByte: () => strictParseByte, - strictParseDouble: () => strictParseDouble, - strictParseFloat: () => strictParseFloat, - strictParseFloat32: () => strictParseFloat32, - strictParseInt: () => strictParseInt, - strictParseInt32: () => strictParseInt32, - strictParseLong: () => strictParseLong, - strictParseShort: () => strictParseShort, - take: () => take, - throwDefaultError: () => throwDefaultError, - withBaseException: () => withBaseException -}); -module.exports = __toCommonJS(src_exports); - -// src/client.ts -var import_middleware_stack = __nccwpck_require__(22513); -var Client = class { - constructor(config) { - this.config = config; - this.middlewareStack = (0, import_middleware_stack.constructStack)(); - } - static { - __name(this, "Client"); - } - send(command, optionsOrCb, cb) { - const options = typeof optionsOrCb !== "function" ? optionsOrCb : void 0; - const callback = typeof optionsOrCb === "function" ? optionsOrCb : cb; - const useHandlerCache = options === void 0 && this.config.cacheMiddleware === true; - let handler; - if (useHandlerCache) { - if (!this.handlers) { - this.handlers = /* @__PURE__ */ new WeakMap(); - } - const handlers = this.handlers; - if (handlers.has(command.constructor)) { - handler = handlers.get(command.constructor); - } else { - handler = command.resolveMiddleware(this.middlewareStack, this.config, options); - handlers.set(command.constructor, handler); - } - } else { - delete this.handlers; - handler = command.resolveMiddleware(this.middlewareStack, this.config, options); - } - if (callback) { - handler(command).then( - (result) => callback(null, result.output), - (err) => callback(err) - ).catch( - // prevent any errors thrown in the callback from triggering an - // unhandled promise rejection - () => { - } - ); - } else { - return handler(command).then((result) => result.output); - } - } - destroy() { - this.config?.requestHandler?.destroy?.(); - delete this.handlers; - } -}; - -// src/collect-stream-body.ts -var import_protocols = __nccwpck_require__(56952); + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -// src/command.ts + // src/loadSso.ts + var loadSso_exports = {} + __export(loadSso_exports, { + GetRoleCredentialsCommand: () => + import_client_sso.GetRoleCredentialsCommand, + SSOClient: () => import_client_sso.SSOClient + }) + var import_client_sso + var init_loadSso = __esm({ + 'src/loadSso.ts'() { + 'use strict' + import_client_sso = __nccwpck_require__(82666) + } + }) -var import_types = __nccwpck_require__(63443); -var Command = class { - constructor() { - this.middlewareStack = (0, import_middleware_stack.constructStack)(); - } - static { - __name(this, "Command"); - } - /** - * Factory for Command ClassBuilder. - * @internal - */ - static classBuilder() { - return new ClassBuilder(); - } - /** - * @internal - */ - resolveMiddlewareWithContext(clientStack, configuration, options, { - middlewareFn, - clientName, - commandName, - inputFilterSensitiveLog, - outputFilterSensitiveLog, - smithyContext, - additionalContext, - CommandCtor - }) { - for (const mw of middlewareFn.bind(this)(CommandCtor, clientStack, configuration, options)) { - this.middlewareStack.use(mw); - } - const stack = clientStack.concat(this.middlewareStack); - const { logger: logger2 } = configuration; - const handlerExecutionContext = { - logger: logger2, - clientName, - commandName, - inputFilterSensitiveLog, - outputFilterSensitiveLog, - [import_types.SMITHY_CONTEXT_KEY]: { - commandInstance: this, - ...smithyContext - }, - ...additionalContext - }; - const { requestHandler } = configuration; - return stack.resolve( - (request) => requestHandler.handle(request.request, options || {}), - handlerExecutionContext - ); - } -}; -var ClassBuilder = class { - constructor() { - this._init = () => { - }; - this._ep = {}; - this._middlewareFn = () => []; - this._commandName = ""; - this._clientName = ""; - this._additionalContext = {}; - this._smithyContext = {}; - this._inputFilterSensitiveLog = (_) => _; - this._outputFilterSensitiveLog = (_) => _; - this._serializer = null; - this._deserializer = null; - } - static { - __name(this, "ClassBuilder"); - } - /** - * Optional init callback. - */ - init(cb) { - this._init = cb; - } - /** - * Set the endpoint parameter instructions. - */ - ep(endpointParameterInstructions) { - this._ep = endpointParameterInstructions; - return this; - } - /** - * Add any number of middleware. - */ - m(middlewareSupplier) { - this._middlewareFn = middlewareSupplier; - return this; - } - /** - * Set the initial handler execution context Smithy field. - */ - s(service, operation, smithyContext = {}) { - this._smithyContext = { - service, - operation, - ...smithyContext - }; - return this; - } - /** - * Set the initial handler execution context. - */ - c(additionalContext = {}) { - this._additionalContext = additionalContext; - return this; - } - /** - * Set constant string identifiers for the operation. - */ - n(clientName, commandName) { - this._clientName = clientName; - this._commandName = commandName; - return this; - } - /** - * Set the input and output sensistive log filters. - */ - f(inputFilter = (_) => _, outputFilter = (_) => _) { - this._inputFilterSensitiveLog = inputFilter; - this._outputFilterSensitiveLog = outputFilter; - return this; - } - /** - * Sets the serializer. - */ - ser(serializer) { - this._serializer = serializer; - return this; - } - /** - * Sets the deserializer. - */ - de(deserializer) { - this._deserializer = deserializer; - return this; - } - /** - * @returns a Command class with the classBuilder properties. - */ - build() { - const closure = this; - let CommandRef; - return CommandRef = class extends Command { - /** - * @public - */ - constructor(...[input]) { - super(); - /** - * @internal - */ - // @ts-ignore used in middlewareFn closure. - this.serialize = closure._serializer; - /** - * @internal - */ - // @ts-ignore used in middlewareFn closure. - this.deserialize = closure._deserializer; - this.input = input ?? {}; - closure._init(this); - } - static { - __name(this, "CommandRef"); - } - /** - * @public - */ - static getEndpointParameterInstructions() { - return closure._ep; - } - /** - * @internal - */ - resolveMiddleware(stack, configuration, options) { - return this.resolveMiddlewareWithContext(stack, configuration, options, { - CommandCtor: CommandRef, - middlewareFn: closure._middlewareFn, - clientName: closure._clientName, - commandName: closure._commandName, - inputFilterSensitiveLog: closure._inputFilterSensitiveLog, - outputFilterSensitiveLog: closure._outputFilterSensitiveLog, - smithyContext: closure._smithyContext, - additionalContext: closure._additionalContext - }); - } - }; - } -}; - -// src/constants.ts -var SENSITIVE_STRING = "***SensitiveInformation***"; - -// src/create-aggregated-client.ts -var createAggregatedClient = /* @__PURE__ */ __name((commands, Client2) => { - for (const command of Object.keys(commands)) { - const CommandCtor = commands[command]; - const methodImpl = /* @__PURE__ */ __name(async function(args, optionsOrCb, cb) { - const command2 = new CommandCtor(args); - if (typeof optionsOrCb === "function") { - this.send(command2, optionsOrCb); - } else if (typeof cb === "function") { - if (typeof optionsOrCb !== "object") - throw new Error(`Expected http options but got ${typeof optionsOrCb}`); - this.send(command2, optionsOrCb || {}, cb); - } else { - return this.send(command2, optionsOrCb); - } - }, "methodImpl"); - const methodName = (command[0].toLowerCase() + command.slice(1)).replace(/Command$/, ""); - Client2.prototype[methodName] = methodImpl; - } -}, "createAggregatedClient"); - -// src/parse-utils.ts -var parseBoolean = /* @__PURE__ */ __name((value) => { - switch (value) { - case "true": - return true; - case "false": - return false; - default: - throw new Error(`Unable to parse boolean value "${value}"`); - } -}, "parseBoolean"); -var expectBoolean = /* @__PURE__ */ __name((value) => { - if (value === null || value === void 0) { - return void 0; - } - if (typeof value === "number") { - if (value === 0 || value === 1) { - logger.warn(stackTraceWarning(`Expected boolean, got ${typeof value}: ${value}`)); - } - if (value === 0) { - return false; - } - if (value === 1) { - return true; - } - } - if (typeof value === "string") { - const lower = value.toLowerCase(); - if (lower === "false" || lower === "true") { - logger.warn(stackTraceWarning(`Expected boolean, got ${typeof value}: ${value}`)); - } - if (lower === "false") { - return false; - } - if (lower === "true") { - return true; - } - } - if (typeof value === "boolean") { - return value; - } - throw new TypeError(`Expected boolean, got ${typeof value}: ${value}`); -}, "expectBoolean"); -var expectNumber = /* @__PURE__ */ __name((value) => { - if (value === null || value === void 0) { - return void 0; - } - if (typeof value === "string") { - const parsed = parseFloat(value); - if (!Number.isNaN(parsed)) { - if (String(parsed) !== String(value)) { - logger.warn(stackTraceWarning(`Expected number but observed string: ${value}`)); - } - return parsed; - } - } - if (typeof value === "number") { - return value; - } - throw new TypeError(`Expected number, got ${typeof value}: ${value}`); -}, "expectNumber"); -var MAX_FLOAT = Math.ceil(2 ** 127 * (2 - 2 ** -23)); -var expectFloat32 = /* @__PURE__ */ __name((value) => { - const expected = expectNumber(value); - if (expected !== void 0 && !Number.isNaN(expected) && expected !== Infinity && expected !== -Infinity) { - if (Math.abs(expected) > MAX_FLOAT) { - throw new TypeError(`Expected 32-bit float, got ${value}`); - } - } - return expected; -}, "expectFloat32"); -var expectLong = /* @__PURE__ */ __name((value) => { - if (value === null || value === void 0) { - return void 0; - } - if (Number.isInteger(value) && !Number.isNaN(value)) { - return value; - } - throw new TypeError(`Expected integer, got ${typeof value}: ${value}`); -}, "expectLong"); -var expectInt = expectLong; -var expectInt32 = /* @__PURE__ */ __name((value) => expectSizedInt(value, 32), "expectInt32"); -var expectShort = /* @__PURE__ */ __name((value) => expectSizedInt(value, 16), "expectShort"); -var expectByte = /* @__PURE__ */ __name((value) => expectSizedInt(value, 8), "expectByte"); -var expectSizedInt = /* @__PURE__ */ __name((value, size) => { - const expected = expectLong(value); - if (expected !== void 0 && castInt(expected, size) !== expected) { - throw new TypeError(`Expected ${size}-bit integer, got ${value}`); - } - return expected; -}, "expectSizedInt"); -var castInt = /* @__PURE__ */ __name((value, size) => { - switch (size) { - case 32: - return Int32Array.of(value)[0]; - case 16: - return Int16Array.of(value)[0]; - case 8: - return Int8Array.of(value)[0]; - } -}, "castInt"); -var expectNonNull = /* @__PURE__ */ __name((value, location) => { - if (value === null || value === void 0) { - if (location) { - throw new TypeError(`Expected a non-null value for ${location}`); - } - throw new TypeError("Expected a non-null value"); - } - return value; -}, "expectNonNull"); -var expectObject = /* @__PURE__ */ __name((value) => { - if (value === null || value === void 0) { - return void 0; - } - if (typeof value === "object" && !Array.isArray(value)) { - return value; - } - const receivedType = Array.isArray(value) ? "array" : typeof value; - throw new TypeError(`Expected object, got ${receivedType}: ${value}`); -}, "expectObject"); -var expectString = /* @__PURE__ */ __name((value) => { - if (value === null || value === void 0) { - return void 0; - } - if (typeof value === "string") { - return value; - } - if (["boolean", "number", "bigint"].includes(typeof value)) { - logger.warn(stackTraceWarning(`Expected string, got ${typeof value}: ${value}`)); - return String(value); - } - throw new TypeError(`Expected string, got ${typeof value}: ${value}`); -}, "expectString"); -var expectUnion = /* @__PURE__ */ __name((value) => { - if (value === null || value === void 0) { - return void 0; - } - const asObject = expectObject(value); - const setKeys = Object.entries(asObject).filter(([, v]) => v != null).map(([k]) => k); - if (setKeys.length === 0) { - throw new TypeError(`Unions must have exactly one non-null member. None were found.`); - } - if (setKeys.length > 1) { - throw new TypeError(`Unions must have exactly one non-null member. Keys ${setKeys} were not null.`); - } - return asObject; -}, "expectUnion"); -var strictParseDouble = /* @__PURE__ */ __name((value) => { - if (typeof value == "string") { - return expectNumber(parseNumber(value)); - } - return expectNumber(value); -}, "strictParseDouble"); -var strictParseFloat = strictParseDouble; -var strictParseFloat32 = /* @__PURE__ */ __name((value) => { - if (typeof value == "string") { - return expectFloat32(parseNumber(value)); - } - return expectFloat32(value); -}, "strictParseFloat32"); -var NUMBER_REGEX = /(-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?)|(-?Infinity)|(NaN)/g; -var parseNumber = /* @__PURE__ */ __name((value) => { - const matches = value.match(NUMBER_REGEX); - if (matches === null || matches[0].length !== value.length) { - throw new TypeError(`Expected real number, got implicit NaN`); - } - return parseFloat(value); -}, "parseNumber"); -var limitedParseDouble = /* @__PURE__ */ __name((value) => { - if (typeof value == "string") { - return parseFloatString(value); - } - return expectNumber(value); -}, "limitedParseDouble"); -var handleFloat = limitedParseDouble; -var limitedParseFloat = limitedParseDouble; -var limitedParseFloat32 = /* @__PURE__ */ __name((value) => { - if (typeof value == "string") { - return parseFloatString(value); - } - return expectFloat32(value); -}, "limitedParseFloat32"); -var parseFloatString = /* @__PURE__ */ __name((value) => { - switch (value) { - case "NaN": - return NaN; - case "Infinity": - return Infinity; - case "-Infinity": - return -Infinity; - default: - throw new Error(`Unable to parse float value: ${value}`); - } -}, "parseFloatString"); -var strictParseLong = /* @__PURE__ */ __name((value) => { - if (typeof value === "string") { - return expectLong(parseNumber(value)); - } - return expectLong(value); -}, "strictParseLong"); -var strictParseInt = strictParseLong; -var strictParseInt32 = /* @__PURE__ */ __name((value) => { - if (typeof value === "string") { - return expectInt32(parseNumber(value)); - } - return expectInt32(value); -}, "strictParseInt32"); -var strictParseShort = /* @__PURE__ */ __name((value) => { - if (typeof value === "string") { - return expectShort(parseNumber(value)); - } - return expectShort(value); -}, "strictParseShort"); -var strictParseByte = /* @__PURE__ */ __name((value) => { - if (typeof value === "string") { - return expectByte(parseNumber(value)); - } - return expectByte(value); -}, "strictParseByte"); -var stackTraceWarning = /* @__PURE__ */ __name((message) => { - return String(new TypeError(message).stack || message).split("\n").slice(0, 5).filter((s) => !s.includes("stackTraceWarning")).join("\n"); -}, "stackTraceWarning"); -var logger = { - warn: console.warn -}; - -// src/date-utils.ts -var DAYS = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]; -var MONTHS = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; -function dateToUtcString(date) { - const year = date.getUTCFullYear(); - const month = date.getUTCMonth(); - const dayOfWeek = date.getUTCDay(); - const dayOfMonthInt = date.getUTCDate(); - const hoursInt = date.getUTCHours(); - const minutesInt = date.getUTCMinutes(); - const secondsInt = date.getUTCSeconds(); - const dayOfMonthString = dayOfMonthInt < 10 ? `0${dayOfMonthInt}` : `${dayOfMonthInt}`; - const hoursString = hoursInt < 10 ? `0${hoursInt}` : `${hoursInt}`; - const minutesString = minutesInt < 10 ? `0${minutesInt}` : `${minutesInt}`; - const secondsString = secondsInt < 10 ? `0${secondsInt}` : `${secondsInt}`; - return `${DAYS[dayOfWeek]}, ${dayOfMonthString} ${MONTHS[month]} ${year} ${hoursString}:${minutesString}:${secondsString} GMT`; -} -__name(dateToUtcString, "dateToUtcString"); -var RFC3339 = new RegExp(/^(\d{4})-(\d{2})-(\d{2})[tT](\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?[zZ]$/); -var parseRfc3339DateTime = /* @__PURE__ */ __name((value) => { - if (value === null || value === void 0) { - return void 0; - } - if (typeof value !== "string") { - throw new TypeError("RFC-3339 date-times must be expressed as strings"); - } - const match = RFC3339.exec(value); - if (!match) { - throw new TypeError("Invalid RFC-3339 date-time value"); - } - const [_, yearStr, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds] = match; - const year = strictParseShort(stripLeadingZeroes(yearStr)); - const month = parseDateValue(monthStr, "month", 1, 12); - const day = parseDateValue(dayStr, "day", 1, 31); - return buildDate(year, month, day, { hours, minutes, seconds, fractionalMilliseconds }); -}, "parseRfc3339DateTime"); -var RFC3339_WITH_OFFSET = new RegExp( - /^(\d{4})-(\d{2})-(\d{2})[tT](\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?(([-+]\d{2}\:\d{2})|[zZ])$/ -); -var parseRfc3339DateTimeWithOffset = /* @__PURE__ */ __name((value) => { - if (value === null || value === void 0) { - return void 0; - } - if (typeof value !== "string") { - throw new TypeError("RFC-3339 date-times must be expressed as strings"); - } - const match = RFC3339_WITH_OFFSET.exec(value); - if (!match) { - throw new TypeError("Invalid RFC-3339 date-time value"); - } - const [_, yearStr, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds, offsetStr] = match; - const year = strictParseShort(stripLeadingZeroes(yearStr)); - const month = parseDateValue(monthStr, "month", 1, 12); - const day = parseDateValue(dayStr, "day", 1, 31); - const date = buildDate(year, month, day, { hours, minutes, seconds, fractionalMilliseconds }); - if (offsetStr.toUpperCase() != "Z") { - date.setTime(date.getTime() - parseOffsetToMilliseconds(offsetStr)); - } - return date; -}, "parseRfc3339DateTimeWithOffset"); -var IMF_FIXDATE = new RegExp( - /^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d{2}) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d{1,2}):(\d{2}):(\d{2})(?:\.(\d+))? GMT$/ -); -var RFC_850_DATE = new RegExp( - /^(?:Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d{2})-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d{2}) (\d{1,2}):(\d{2}):(\d{2})(?:\.(\d+))? GMT$/ -); -var ASC_TIME = new RegExp( - /^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( [1-9]|\d{2}) (\d{1,2}):(\d{2}):(\d{2})(?:\.(\d+))? (\d{4})$/ -); -var parseRfc7231DateTime = /* @__PURE__ */ __name((value) => { - if (value === null || value === void 0) { - return void 0; - } - if (typeof value !== "string") { - throw new TypeError("RFC-7231 date-times must be expressed as strings"); - } - let match = IMF_FIXDATE.exec(value); - if (match) { - const [_, dayStr, monthStr, yearStr, hours, minutes, seconds, fractionalMilliseconds] = match; - return buildDate( - strictParseShort(stripLeadingZeroes(yearStr)), - parseMonthByShortName(monthStr), - parseDateValue(dayStr, "day", 1, 31), - { hours, minutes, seconds, fractionalMilliseconds } - ); - } - match = RFC_850_DATE.exec(value); - if (match) { - const [_, dayStr, monthStr, yearStr, hours, minutes, seconds, fractionalMilliseconds] = match; - return adjustRfc850Year( - buildDate(parseTwoDigitYear(yearStr), parseMonthByShortName(monthStr), parseDateValue(dayStr, "day", 1, 31), { - hours, - minutes, - seconds, - fractionalMilliseconds + // src/index.ts + var src_exports = {} + __export(src_exports, { + fromSSO: () => fromSSO, + isSsoProfile: () => isSsoProfile, + validateSsoProfile: () => validateSsoProfile }) - ); - } - match = ASC_TIME.exec(value); - if (match) { - const [_, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds, yearStr] = match; - return buildDate( - strictParseShort(stripLeadingZeroes(yearStr)), - parseMonthByShortName(monthStr), - parseDateValue(dayStr.trimLeft(), "day", 1, 31), - { hours, minutes, seconds, fractionalMilliseconds } - ); - } - throw new TypeError("Invalid RFC-7231 date-time value"); -}, "parseRfc7231DateTime"); -var parseEpochTimestamp = /* @__PURE__ */ __name((value) => { - if (value === null || value === void 0) { - return void 0; - } - let valueAsDouble; - if (typeof value === "number") { - valueAsDouble = value; - } else if (typeof value === "string") { - valueAsDouble = strictParseDouble(value); - } else if (typeof value === "object" && value.tag === 1) { - valueAsDouble = value.value; - } else { - throw new TypeError("Epoch timestamps must be expressed as floating point numbers or their string representation"); - } - if (Number.isNaN(valueAsDouble) || valueAsDouble === Infinity || valueAsDouble === -Infinity) { - throw new TypeError("Epoch timestamps must be valid, non-Infinite, non-NaN numerics"); - } - return new Date(Math.round(valueAsDouble * 1e3)); -}, "parseEpochTimestamp"); -var buildDate = /* @__PURE__ */ __name((year, month, day, time) => { - const adjustedMonth = month - 1; - validateDayOfMonth(year, adjustedMonth, day); - return new Date( - Date.UTC( - year, - adjustedMonth, - day, - parseDateValue(time.hours, "hour", 0, 23), - parseDateValue(time.minutes, "minute", 0, 59), - // seconds can go up to 60 for leap seconds - parseDateValue(time.seconds, "seconds", 0, 60), - parseMilliseconds(time.fractionalMilliseconds) - ) - ); -}, "buildDate"); -var parseTwoDigitYear = /* @__PURE__ */ __name((value) => { - const thisYear = (/* @__PURE__ */ new Date()).getUTCFullYear(); - const valueInThisCentury = Math.floor(thisYear / 100) * 100 + strictParseShort(stripLeadingZeroes(value)); - if (valueInThisCentury < thisYear) { - return valueInThisCentury + 100; - } - return valueInThisCentury; -}, "parseTwoDigitYear"); -var FIFTY_YEARS_IN_MILLIS = 50 * 365 * 24 * 60 * 60 * 1e3; -var adjustRfc850Year = /* @__PURE__ */ __name((input) => { - if (input.getTime() - (/* @__PURE__ */ new Date()).getTime() > FIFTY_YEARS_IN_MILLIS) { - return new Date( - Date.UTC( - input.getUTCFullYear() - 100, - input.getUTCMonth(), - input.getUTCDate(), - input.getUTCHours(), - input.getUTCMinutes(), - input.getUTCSeconds(), - input.getUTCMilliseconds() - ) - ); - } - return input; -}, "adjustRfc850Year"); -var parseMonthByShortName = /* @__PURE__ */ __name((value) => { - const monthIdx = MONTHS.indexOf(value); - if (monthIdx < 0) { - throw new TypeError(`Invalid month: ${value}`); - } - return monthIdx + 1; -}, "parseMonthByShortName"); -var DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; -var validateDayOfMonth = /* @__PURE__ */ __name((year, month, day) => { - let maxDays = DAYS_IN_MONTH[month]; - if (month === 1 && isLeapYear(year)) { - maxDays = 29; - } - if (day > maxDays) { - throw new TypeError(`Invalid day for ${MONTHS[month]} in ${year}: ${day}`); - } -}, "validateDayOfMonth"); -var isLeapYear = /* @__PURE__ */ __name((year) => { - return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); -}, "isLeapYear"); -var parseDateValue = /* @__PURE__ */ __name((value, type, lower, upper) => { - const dateVal = strictParseByte(stripLeadingZeroes(value)); - if (dateVal < lower || dateVal > upper) { - throw new TypeError(`${type} must be between ${lower} and ${upper}, inclusive`); - } - return dateVal; -}, "parseDateValue"); -var parseMilliseconds = /* @__PURE__ */ __name((value) => { - if (value === null || value === void 0) { - return 0; - } - return strictParseFloat32("0." + value) * 1e3; -}, "parseMilliseconds"); -var parseOffsetToMilliseconds = /* @__PURE__ */ __name((value) => { - const directionStr = value[0]; - let direction = 1; - if (directionStr == "+") { - direction = 1; - } else if (directionStr == "-") { - direction = -1; - } else { - throw new TypeError(`Offset direction, ${directionStr}, must be "+" or "-"`); - } - const hour = Number(value.substring(1, 3)); - const minute = Number(value.substring(4, 6)); - return direction * (hour * 60 + minute) * 60 * 1e3; -}, "parseOffsetToMilliseconds"); -var stripLeadingZeroes = /* @__PURE__ */ __name((value) => { - let idx = 0; - while (idx < value.length - 1 && value.charAt(idx) === "0") { - idx++; - } - if (idx === 0) { - return value; - } - return value.slice(idx); -}, "stripLeadingZeroes"); + module.exports = __toCommonJS(src_exports) + + // src/fromSSO.ts + + // src/isSsoProfile.ts + var isSsoProfile = /* @__PURE__ */ __name( + arg => + arg && + (typeof arg.sso_start_url === 'string' || + typeof arg.sso_account_id === 'string' || + typeof arg.sso_session === 'string' || + typeof arg.sso_region === 'string' || + typeof arg.sso_role_name === 'string'), + 'isSsoProfile' + ) -// src/exceptions.ts -var ServiceException = class _ServiceException extends Error { - static { - __name(this, "ServiceException"); - } - constructor(options) { - super(options.message); - Object.setPrototypeOf(this, Object.getPrototypeOf(this).constructor.prototype); - this.name = options.name; - this.$fault = options.$fault; - this.$metadata = options.$metadata; - } - /** - * Checks if a value is an instance of ServiceException (duck typed) - */ - static isInstance(value) { - if (!value) - return false; - const candidate = value; - return _ServiceException.prototype.isPrototypeOf(candidate) || Boolean(candidate.$fault) && Boolean(candidate.$metadata) && (candidate.$fault === "client" || candidate.$fault === "server"); - } - /** - * Custom instanceof check to support the operator for ServiceException base class - */ - static [Symbol.hasInstance](instance) { - if (!instance) - return false; - const candidate = instance; - if (this === _ServiceException) { - return _ServiceException.isInstance(instance); - } - if (_ServiceException.isInstance(instance)) { - if (candidate.name && this.name) { - return this.prototype.isPrototypeOf(instance) || candidate.name === this.name; - } - return this.prototype.isPrototypeOf(instance); - } - return false; - } -}; -var decorateServiceException = /* @__PURE__ */ __name((exception, additions = {}) => { - Object.entries(additions).filter(([, v]) => v !== void 0).forEach(([k, v]) => { - if (exception[k] == void 0 || exception[k] === "") { - exception[k] = v; - } - }); - const message = exception.message || exception.Message || "UnknownError"; - exception.message = message; - delete exception.Message; - return exception; -}, "decorateServiceException"); - -// src/default-error-handler.ts -var throwDefaultError = /* @__PURE__ */ __name(({ output, parsedBody, exceptionCtor, errorCode }) => { - const $metadata = deserializeMetadata(output); - const statusCode = $metadata.httpStatusCode ? $metadata.httpStatusCode + "" : void 0; - const response = new exceptionCtor({ - name: parsedBody?.code || parsedBody?.Code || errorCode || statusCode || "UnknownError", - $fault: "client", - $metadata - }); - throw decorateServiceException(response, parsedBody); -}, "throwDefaultError"); -var withBaseException = /* @__PURE__ */ __name((ExceptionCtor) => { - return ({ output, parsedBody, errorCode }) => { - throwDefaultError({ output, parsedBody, exceptionCtor: ExceptionCtor, errorCode }); - }; -}, "withBaseException"); -var deserializeMetadata = /* @__PURE__ */ __name((output) => ({ - httpStatusCode: output.statusCode, - requestId: output.headers["x-amzn-requestid"] ?? output.headers["x-amzn-request-id"] ?? output.headers["x-amz-request-id"], - extendedRequestId: output.headers["x-amz-id-2"], - cfId: output.headers["x-amz-cf-id"] -}), "deserializeMetadata"); - -// src/defaults-mode.ts -var loadConfigsForDefaultMode = /* @__PURE__ */ __name((mode) => { - switch (mode) { - case "standard": - return { - retryMode: "standard", - connectionTimeout: 3100 - }; - case "in-region": - return { - retryMode: "standard", - connectionTimeout: 1100 - }; - case "cross-region": - return { - retryMode: "standard", - connectionTimeout: 3100 - }; - case "mobile": - return { - retryMode: "standard", - connectionTimeout: 3e4 - }; - default: - return {}; - } -}, "loadConfigsForDefaultMode"); + // src/resolveSSOCredentials.ts + var import_token_providers = __nccwpck_require__(52843) + var import_property_provider = __nccwpck_require__(79721) + var import_shared_ini_file_loader = __nccwpck_require__(43507) + var SHOULD_FAIL_CREDENTIAL_CHAIN = false + var resolveSSOCredentials = /* @__PURE__ */ __name( + async ({ + ssoStartUrl, + ssoSession, + ssoAccountId, + ssoRegion, + ssoRoleName, + ssoClient, + clientConfig, + profile, + logger + }) => { + let token + const refreshMessage = `To refresh this SSO session run aws sso login with the corresponding profile.` + if (ssoSession) { + try { + const _token = await (0, import_token_providers.fromSso)({ + profile + })() + token = { + accessToken: _token.token, + expiresAt: new Date(_token.expiration).toISOString() + } + } catch (e) { + throw new import_property_provider.CredentialsProviderError( + e.message, + { + tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN, + logger + } + ) + } + } else { + try { + token = await (0, + import_shared_ini_file_loader.getSSOTokenFromFile)(ssoStartUrl) + } catch (e) { + throw new import_property_provider.CredentialsProviderError( + `The SSO session associated with this profile is invalid. ${refreshMessage}`, + { + tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN, + logger + } + ) + } + } + if (new Date(token.expiresAt).getTime() - Date.now() <= 0) { + throw new import_property_provider.CredentialsProviderError( + `The SSO session associated with this profile has expired. ${refreshMessage}`, + { + tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN, + logger + } + ) + } + const { accessToken } = token + const { + SSOClient: SSOClient2, + GetRoleCredentialsCommand: GetRoleCredentialsCommand2 + } = await Promise.resolve().then( + () => (init_loadSso(), loadSso_exports) + ) + const sso = + ssoClient || + new SSOClient2( + Object.assign({}, clientConfig ?? {}, { + region: + (clientConfig == null ? void 0 : clientConfig.region) ?? + ssoRegion + }) + ) + let ssoResp + try { + ssoResp = await sso.send( + new GetRoleCredentialsCommand2({ + accountId: ssoAccountId, + roleName: ssoRoleName, + accessToken + }) + ) + } catch (e) { + throw new import_property_provider.CredentialsProviderError(e, { + tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN, + logger + }) + } + const { + roleCredentials: { + accessKeyId, + secretAccessKey, + sessionToken, + expiration, + credentialScope, + accountId + } = {} + } = ssoResp + if ( + !accessKeyId || + !secretAccessKey || + !sessionToken || + !expiration + ) { + throw new import_property_provider.CredentialsProviderError( + 'SSO returns an invalid temporary credential.', + { + tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN, + logger + } + ) + } + return { + accessKeyId, + secretAccessKey, + sessionToken, + expiration: new Date(expiration), + ...(credentialScope && { credentialScope }), + ...(accountId && { accountId }) + } + }, + 'resolveSSOCredentials' + ) + + // src/validateSsoProfile.ts -// src/emitWarningIfUnsupportedVersion.ts -var warningEmitted = false; -var emitWarningIfUnsupportedVersion = /* @__PURE__ */ __name((version) => { - if (version && !warningEmitted && parseInt(version.substring(1, version.indexOf("."))) < 16) { - warningEmitted = true; - } -}, "emitWarningIfUnsupportedVersion"); + var validateSsoProfile = /* @__PURE__ */ __name((profile, logger) => { + const { sso_start_url, sso_account_id, sso_region, sso_role_name } = + profile + if ( + !sso_start_url || + !sso_account_id || + !sso_region || + !sso_role_name + ) { + throw new import_property_provider.CredentialsProviderError( + `Profile is configured with invalid SSO credentials. Required parameters "sso_account_id", "sso_region", "sso_role_name", "sso_start_url". Got ${Object.keys( + profile + ).join(', ')} +Reference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`, + { tryNextLink: false, logger } + ) + } + return profile + }, 'validateSsoProfile') + + // src/fromSSO.ts + var fromSSO = /* @__PURE__ */ __name( + (init = {}) => + async () => { + var _a + ;(_a = init.logger) == null + ? void 0 + : _a.debug('@aws-sdk/credential-provider-sso - fromSSO') + const { + ssoStartUrl, + ssoAccountId, + ssoRegion, + ssoRoleName, + ssoSession + } = init + const { ssoClient } = init + const profileName = (0, + import_shared_ini_file_loader.getProfileName)(init) + if ( + !ssoStartUrl && + !ssoAccountId && + !ssoRegion && + !ssoRoleName && + !ssoSession + ) { + const profiles = await (0, + import_shared_ini_file_loader.parseKnownFiles)(init) + const profile = profiles[profileName] + if (!profile) { + throw new import_property_provider.CredentialsProviderError( + `Profile ${profileName} was not found.`, + { logger: init.logger } + ) + } + if (!isSsoProfile(profile)) { + throw new import_property_provider.CredentialsProviderError( + `Profile ${profileName} is not configured with SSO credentials.`, + { + logger: init.logger + } + ) + } + if (profile == null ? void 0 : profile.sso_session) { + const ssoSessions = await (0, + import_shared_ini_file_loader.loadSsoSessionData)(init) + const session = ssoSessions[profile.sso_session] + const conflictMsg = ` configurations in profile ${profileName} and sso-session ${profile.sso_session}` + if (ssoRegion && ssoRegion !== session.sso_region) { + throw new import_property_provider.CredentialsProviderError( + `Conflicting SSO region` + conflictMsg, + { + tryNextLink: false, + logger: init.logger + } + ) + } + if (ssoStartUrl && ssoStartUrl !== session.sso_start_url) { + throw new import_property_provider.CredentialsProviderError( + `Conflicting SSO start_url` + conflictMsg, + { + tryNextLink: false, + logger: init.logger + } + ) + } + profile.sso_region = session.sso_region + profile.sso_start_url = session.sso_start_url + } + const { + sso_start_url, + sso_account_id, + sso_region, + sso_role_name, + sso_session + } = validateSsoProfile(profile, init.logger) + return resolveSSOCredentials({ + ssoStartUrl: sso_start_url, + ssoSession: sso_session, + ssoAccountId: sso_account_id, + ssoRegion: sso_region, + ssoRoleName: sso_role_name, + ssoClient, + clientConfig: init.clientConfig, + profile: profileName + }) + } else if ( + !ssoStartUrl || + !ssoAccountId || + !ssoRegion || + !ssoRoleName + ) { + throw new import_property_provider.CredentialsProviderError( + 'Incomplete configuration. The fromSSO() argument hash must include "ssoStartUrl", "ssoAccountId", "ssoRegion", "ssoRoleName"', + { tryNextLink: false, logger: init.logger } + ) + } else { + return resolveSSOCredentials({ + ssoStartUrl, + ssoSession, + ssoAccountId, + ssoRegion, + ssoRoleName, + ssoClient, + clientConfig: init.clientConfig, + profile: profileName + }) + } + }, + 'fromSSO' + ) + // Annotate the CommonJS export names for ESM import in node: -// src/extended-encode-uri-component.ts + 0 && 0 + /***/ + }, -// src/extensions/checksum.ts + /***/ 35614: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.fromTokenFile = void 0 + const property_provider_1 = __nccwpck_require__(79721) + const fs_1 = __nccwpck_require__(57147) + const fromWebToken_1 = __nccwpck_require__(47905) + const ENV_TOKEN_FILE = 'AWS_WEB_IDENTITY_TOKEN_FILE' + const ENV_ROLE_ARN = 'AWS_ROLE_ARN' + const ENV_ROLE_SESSION_NAME = 'AWS_ROLE_SESSION_NAME' + const fromTokenFile = + (init = {}) => + async () => { + init.logger?.debug( + '@aws-sdk/credential-provider-web-identity - fromTokenFile' + ) + const webIdentityTokenFile = + init?.webIdentityTokenFile ?? process.env[ENV_TOKEN_FILE] + const roleArn = init?.roleArn ?? process.env[ENV_ROLE_ARN] + const roleSessionName = + init?.roleSessionName ?? process.env[ENV_ROLE_SESSION_NAME] + if (!webIdentityTokenFile || !roleArn) { + throw new property_provider_1.CredentialsProviderError( + 'Web identity configuration not specified', + { + logger: init.logger + } + ) + } + return (0, fromWebToken_1.fromWebToken)({ + ...init, + webIdentityToken: (0, fs_1.readFileSync)(webIdentityTokenFile, { + encoding: 'ascii' + }), + roleArn, + roleSessionName + })() + } + exports.fromTokenFile = fromTokenFile -var getChecksumConfiguration = /* @__PURE__ */ __name((runtimeConfig) => { - const checksumAlgorithms = []; - for (const id in import_types.AlgorithmId) { - const algorithmId = import_types.AlgorithmId[id]; - if (runtimeConfig[algorithmId] === void 0) { - continue; - } - checksumAlgorithms.push({ - algorithmId: () => algorithmId, - checksumConstructor: () => runtimeConfig[algorithmId] - }); - } - return { - addChecksumAlgorithm(algo) { - checksumAlgorithms.push(algo); + /***/ }, - checksumAlgorithms() { - return checksumAlgorithms; - } - }; -}, "getChecksumConfiguration"); -var resolveChecksumRuntimeConfig = /* @__PURE__ */ __name((clientConfig) => { - const runtimeConfig = {}; - clientConfig.checksumAlgorithms().forEach((checksumAlgorithm) => { - runtimeConfig[checksumAlgorithm.algorithmId()] = checksumAlgorithm.checksumConstructor(); - }); - return runtimeConfig; -}, "resolveChecksumRuntimeConfig"); - -// src/extensions/retry.ts -var getRetryConfiguration = /* @__PURE__ */ __name((runtimeConfig) => { - return { - setRetryStrategy(retryStrategy) { - runtimeConfig.retryStrategy = retryStrategy; - }, - retryStrategy() { - return runtimeConfig.retryStrategy; - } - }; -}, "getRetryConfiguration"); -var resolveRetryRuntimeConfig = /* @__PURE__ */ __name((retryStrategyConfiguration) => { - const runtimeConfig = {}; - runtimeConfig.retryStrategy = retryStrategyConfiguration.retryStrategy(); - return runtimeConfig; -}, "resolveRetryRuntimeConfig"); - -// src/extensions/defaultExtensionConfiguration.ts -var getDefaultExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => { - return Object.assign(getChecksumConfiguration(runtimeConfig), getRetryConfiguration(runtimeConfig)); -}, "getDefaultExtensionConfiguration"); -var getDefaultClientConfiguration = getDefaultExtensionConfiguration; -var resolveDefaultRuntimeConfig = /* @__PURE__ */ __name((config) => { - return Object.assign(resolveChecksumRuntimeConfig(config), resolveRetryRuntimeConfig(config)); -}, "resolveDefaultRuntimeConfig"); - -// src/get-array-if-single-item.ts -var getArrayIfSingleItem = /* @__PURE__ */ __name((mayBeArray) => Array.isArray(mayBeArray) ? mayBeArray : [mayBeArray], "getArrayIfSingleItem"); - -// src/get-value-from-text-node.ts -var getValueFromTextNode = /* @__PURE__ */ __name((obj) => { - const textNodeName = "#text"; - for (const key in obj) { - if (obj.hasOwnProperty(key) && obj[key][textNodeName] !== void 0) { - obj[key] = obj[key][textNodeName]; - } else if (typeof obj[key] === "object" && obj[key] !== null) { - obj[key] = getValueFromTextNode(obj[key]); - } - } - return obj; -}, "getValueFromTextNode"); -// src/is-serializable-header-value.ts -var isSerializableHeaderValue = /* @__PURE__ */ __name((value) => { - return value != null; -}, "isSerializableHeaderValue"); + /***/ 47905: /***/ function ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) { + 'use strict' + + var __createBinding = + (this && this.__createBinding) || + (Object.create + ? function (o, m, k, k2) { + if (k2 === undefined) k2 = k + var desc = Object.getOwnPropertyDescriptor(m, k) + if ( + !desc || + ('get' in desc + ? !m.__esModule + : desc.writable || desc.configurable) + ) { + desc = { + enumerable: true, + get: function () { + return m[k] + } + } + } + Object.defineProperty(o, k2, desc) + } + : function (o, m, k, k2) { + if (k2 === undefined) k2 = k + o[k2] = m[k] + }) + var __setModuleDefault = + (this && this.__setModuleDefault) || + (Object.create + ? function (o, v) { + Object.defineProperty(o, 'default', { + enumerable: true, + value: v + }) + } + : function (o, v) { + o['default'] = v + }) + var __importStar = + (this && this.__importStar) || + function (mod) { + if (mod && mod.__esModule) return mod + var result = {} + if (mod != null) + for (var k in mod) + if ( + k !== 'default' && + Object.prototype.hasOwnProperty.call(mod, k) + ) + __createBinding(result, mod, k) + __setModuleDefault(result, mod) + return result + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.fromWebToken = void 0 + const fromWebToken = init => async () => { + init.logger?.debug( + '@aws-sdk/credential-provider-web-identity - fromWebToken' + ) + const { + roleArn, + roleSessionName, + webIdentityToken, + providerId, + policyArns, + policy, + durationSeconds + } = init + let { roleAssumerWithWebIdentity } = init + if (!roleAssumerWithWebIdentity) { + const { getDefaultRoleAssumerWithWebIdentity } = + await Promise.resolve().then(() => + __importStar(__nccwpck_require__(52209)) + ) + roleAssumerWithWebIdentity = getDefaultRoleAssumerWithWebIdentity( + { + ...init.clientConfig, + credentialProviderLogger: init.logger, + parentClientConfig: init.parentClientConfig + }, + init.clientPlugins + ) + } + return roleAssumerWithWebIdentity({ + RoleArn: roleArn, + RoleSessionName: + roleSessionName ?? `aws-sdk-js-session-${Date.now()}`, + WebIdentityToken: webIdentityToken, + ProviderId: providerId, + PolicyArns: policyArns, + Policy: policy, + DurationSeconds: durationSeconds + }) + } + exports.fromWebToken = fromWebToken -// src/lazy-json.ts -var LazyJsonString = /* @__PURE__ */ __name(function LazyJsonString2(val) { - const str = Object.assign(new String(val), { - deserializeJSON() { - return JSON.parse(String(val)); + /***/ }, - toString() { - return String(val); + + /***/ 15646: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __reExport = (target, mod, secondTarget) => ( + __copyProps(target, mod, 'default'), + secondTarget && __copyProps(secondTarget, mod, 'default') + ) + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + module.exports = __toCommonJS(src_exports) + __reExport(src_exports, __nccwpck_require__(35614), module.exports) + __reExport(src_exports, __nccwpck_require__(47905), module.exports) + // Annotate the CommonJS export names for ESM import in node: + + 0 && 0 + + /***/ }, - toJSON() { - return String(val); - } - }); - return str; -}, "LazyJsonString"); -LazyJsonString.from = (object) => { - if (object && typeof object === "object" && (object instanceof LazyJsonString || "deserializeJSON" in object)) { - return object; - } else if (typeof object === "string" || Object.getPrototypeOf(object) === String.prototype) { - return LazyJsonString(String(object)); - } - return LazyJsonString(JSON.stringify(object)); -}; -LazyJsonString.fromObject = LazyJsonString.from; - -// src/NoOpLogger.ts -var NoOpLogger = class { - static { - __name(this, "NoOpLogger"); - } - trace() { - } - debug() { - } - info() { - } - warn() { - } - error() { - } -}; - -// src/object-mapping.ts -function map(arg0, arg1, arg2) { - let target; - let filter; - let instructions; - if (typeof arg1 === "undefined" && typeof arg2 === "undefined") { - target = {}; - instructions = arg0; - } else { - target = arg0; - if (typeof arg1 === "function") { - filter = arg1; - instructions = arg2; - return mapWithFilter(target, filter, instructions); - } else { - instructions = arg1; - } - } - for (const key of Object.keys(instructions)) { - if (!Array.isArray(instructions[key])) { - target[key] = instructions[key]; - continue; - } - applyInstruction(target, null, instructions, key); - } - return target; -} -__name(map, "map"); -var convertMap = /* @__PURE__ */ __name((target) => { - const output = {}; - for (const [k, v] of Object.entries(target || {})) { - output[k] = [, v]; - } - return output; -}, "convertMap"); -var take = /* @__PURE__ */ __name((source, instructions) => { - const out = {}; - for (const key in instructions) { - applyInstruction(out, source, instructions, key); - } - return out; -}, "take"); -var mapWithFilter = /* @__PURE__ */ __name((target, filter, instructions) => { - return map( - target, - Object.entries(instructions).reduce( - (_instructions, [key, value]) => { - if (Array.isArray(value)) { - _instructions[key] = value; - } else { - if (typeof value === "function") { - _instructions[key] = [filter, value()]; - } else { - _instructions[key] = [filter, value]; - } - } - return _instructions; - }, - {} - ) - ); -}, "mapWithFilter"); -var applyInstruction = /* @__PURE__ */ __name((target, source, instructions, targetKey) => { - if (source !== null) { - let instruction = instructions[targetKey]; - if (typeof instruction === "function") { - instruction = [, instruction]; - } - const [filter2 = nonNullish, valueFn = pass, sourceKey = targetKey] = instruction; - if (typeof filter2 === "function" && filter2(source[sourceKey]) || typeof filter2 !== "function" && !!filter2) { - target[targetKey] = valueFn(source[sourceKey]); - } - return; - } - let [filter, value] = instructions[targetKey]; - if (typeof value === "function") { - let _value; - const defaultFilterPassed = filter === void 0 && (_value = value()) != null; - const customFilterPassed = typeof filter === "function" && !!filter(void 0) || typeof filter !== "function" && !!filter; - if (defaultFilterPassed) { - target[targetKey] = _value; - } else if (customFilterPassed) { - target[targetKey] = value(); - } - } else { - const defaultFilterPassed = filter === void 0 && value != null; - const customFilterPassed = typeof filter === "function" && !!filter(value) || typeof filter !== "function" && !!filter; - if (defaultFilterPassed || customFilterPassed) { - target[targetKey] = value; - } - } -}, "applyInstruction"); -var nonNullish = /* @__PURE__ */ __name((_) => _ != null, "nonNullish"); -var pass = /* @__PURE__ */ __name((_) => _, "pass"); - -// src/quote-header.ts -function quoteHeader(part) { - if (part.includes(",") || part.includes('"')) { - part = `"${part.replace(/"/g, '\\"')}"`; - } - return part; -} -__name(quoteHeader, "quoteHeader"); -// src/resolve-path.ts + /***/ 22545: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + // src/index.ts + var src_exports = {} + __export(src_exports, { + getHostHeaderPlugin: () => getHostHeaderPlugin, + hostHeaderMiddleware: () => hostHeaderMiddleware, + hostHeaderMiddlewareOptions: () => hostHeaderMiddlewareOptions, + resolveHostHeaderConfig: () => resolveHostHeaderConfig + }) + module.exports = __toCommonJS(src_exports) + var import_protocol_http = __nccwpck_require__(64418) + function resolveHostHeaderConfig(input) { + return input + } + __name(resolveHostHeaderConfig, 'resolveHostHeaderConfig') + var hostHeaderMiddleware = /* @__PURE__ */ __name( + options => next => async args => { + if (!import_protocol_http.HttpRequest.isInstance(args.request)) + return next(args) + const { request } = args + const { handlerProtocol = '' } = options.requestHandler.metadata || {} + if ( + handlerProtocol.indexOf('h2') >= 0 && + !request.headers[':authority'] + ) { + delete request.headers['host'] + request.headers[':authority'] = + request.hostname + (request.port ? ':' + request.port : '') + } else if (!request.headers['host']) { + let host = request.hostname + if (request.port != null) host += `:${request.port}` + request.headers['host'] = host + } + return next(args) + }, + 'hostHeaderMiddleware' + ) + var hostHeaderMiddlewareOptions = { + name: 'hostHeaderMiddleware', + step: 'build', + priority: 'low', + tags: ['HOST'], + override: true + } + var getHostHeaderPlugin = /* @__PURE__ */ __name( + options => ({ + applyToStack: clientStack => { + clientStack.add( + hostHeaderMiddleware(options), + hostHeaderMiddlewareOptions + ) + } + }), + 'getHostHeaderPlugin' + ) + // Annotate the CommonJS export names for ESM import in node: -// src/ser-utils.ts -var serializeFloat = /* @__PURE__ */ __name((value) => { - if (value !== value) { - return "NaN"; - } - switch (value) { - case Infinity: - return "Infinity"; - case -Infinity: - return "-Infinity"; - default: - return value; - } -}, "serializeFloat"); -var serializeDateTime = /* @__PURE__ */ __name((date) => date.toISOString().replace(".000Z", "Z"), "serializeDateTime"); + 0 && 0 -// src/serde-json.ts -var _json = /* @__PURE__ */ __name((obj) => { - if (obj == null) { - return {}; - } - if (Array.isArray(obj)) { - return obj.filter((_) => _ != null).map(_json); - } - if (typeof obj === "object") { - const target = {}; - for (const key of Object.keys(obj)) { - if (obj[key] == null) { - continue; + /***/ + }, + + /***/ 20014: /***/ module => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to } - target[key] = _json(obj[key]); - } - return target; - } - return obj; -}, "_json"); + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -// src/split-every.ts -function splitEvery(value, delimiter, numDelimiters) { - if (numDelimiters <= 0 || !Number.isInteger(numDelimiters)) { - throw new Error("Invalid number of delimiters (" + numDelimiters + ") for splitEvery."); - } - const segments = value.split(delimiter); - if (numDelimiters === 1) { - return segments; - } - const compoundSegments = []; - let currentSegment = ""; - for (let i = 0; i < segments.length; i++) { - if (currentSegment === "") { - currentSegment = segments[i]; - } else { - currentSegment += delimiter + segments[i]; - } - if ((i + 1) % numDelimiters === 0) { - compoundSegments.push(currentSegment); - currentSegment = ""; - } - } - if (currentSegment !== "") { - compoundSegments.push(currentSegment); - } - return compoundSegments; -} -__name(splitEvery, "splitEvery"); - -// src/split-header.ts -var splitHeader = /* @__PURE__ */ __name((value) => { - const z = value.length; - const values = []; - let withinQuotes = false; - let prevChar = void 0; - let anchor = 0; - for (let i = 0; i < z; ++i) { - const char = value[i]; - switch (char) { - case `"`: - if (prevChar !== "\\") { - withinQuotes = !withinQuotes; - } - break; - case ",": - if (!withinQuotes) { - values.push(value.slice(anchor, i)); - anchor = i + 1; - } - break; - default: - } - prevChar = char; - } - values.push(value.slice(anchor)); - return values.map((v) => { - v = v.trim(); - const z2 = v.length; - if (z2 < 2) { - return v; - } - if (v[0] === `"` && v[z2 - 1] === `"`) { - v = v.slice(1, z2 - 1); - } - return v.replace(/\\"/g, '"'); - }); -}, "splitHeader"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 63443: -/***/ ((module) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - AlgorithmId: () => AlgorithmId, - EndpointURLScheme: () => EndpointURLScheme, - FieldPosition: () => FieldPosition, - HttpApiKeyAuthLocation: () => HttpApiKeyAuthLocation, - HttpAuthLocation: () => HttpAuthLocation, - IniSectionType: () => IniSectionType, - RequestHandlerProtocol: () => RequestHandlerProtocol, - SMITHY_CONTEXT_KEY: () => SMITHY_CONTEXT_KEY, - getDefaultClientConfiguration: () => getDefaultClientConfiguration, - resolveDefaultRuntimeConfig: () => resolveDefaultRuntimeConfig -}); -module.exports = __toCommonJS(src_exports); - -// src/auth/auth.ts -var HttpAuthLocation = /* @__PURE__ */ ((HttpAuthLocation2) => { - HttpAuthLocation2["HEADER"] = "header"; - HttpAuthLocation2["QUERY"] = "query"; - return HttpAuthLocation2; -})(HttpAuthLocation || {}); - -// src/auth/HttpApiKeyAuth.ts -var HttpApiKeyAuthLocation = /* @__PURE__ */ ((HttpApiKeyAuthLocation2) => { - HttpApiKeyAuthLocation2["HEADER"] = "header"; - HttpApiKeyAuthLocation2["QUERY"] = "query"; - return HttpApiKeyAuthLocation2; -})(HttpApiKeyAuthLocation || {}); - -// src/endpoint.ts -var EndpointURLScheme = /* @__PURE__ */ ((EndpointURLScheme2) => { - EndpointURLScheme2["HTTP"] = "http"; - EndpointURLScheme2["HTTPS"] = "https"; - return EndpointURLScheme2; -})(EndpointURLScheme || {}); - -// src/extensions/checksum.ts -var AlgorithmId = /* @__PURE__ */ ((AlgorithmId2) => { - AlgorithmId2["MD5"] = "md5"; - AlgorithmId2["CRC32"] = "crc32"; - AlgorithmId2["CRC32C"] = "crc32c"; - AlgorithmId2["SHA1"] = "sha1"; - AlgorithmId2["SHA256"] = "sha256"; - return AlgorithmId2; -})(AlgorithmId || {}); -var getChecksumConfiguration = /* @__PURE__ */ __name((runtimeConfig) => { - const checksumAlgorithms = []; - if (runtimeConfig.sha256 !== void 0) { - checksumAlgorithms.push({ - algorithmId: () => "sha256" /* SHA256 */, - checksumConstructor: () => runtimeConfig.sha256 - }); - } - if (runtimeConfig.md5 != void 0) { - checksumAlgorithms.push({ - algorithmId: () => "md5" /* MD5 */, - checksumConstructor: () => runtimeConfig.md5 - }); - } - return { - addChecksumAlgorithm(algo) { - checksumAlgorithms.push(algo); + // src/index.ts + var src_exports = {} + __export(src_exports, { + getLoggerPlugin: () => getLoggerPlugin, + loggerMiddleware: () => loggerMiddleware, + loggerMiddlewareOptions: () => loggerMiddlewareOptions + }) + module.exports = __toCommonJS(src_exports) + + // src/loggerMiddleware.ts + var loggerMiddleware = /* @__PURE__ */ __name( + () => (next, context) => async args => { + var _a, _b + try { + const response = await next(args) + const { + clientName, + commandName, + logger, + dynamoDbDocumentClientOptions = {} + } = context + const { + overrideInputFilterSensitiveLog, + overrideOutputFilterSensitiveLog + } = dynamoDbDocumentClientOptions + const inputFilterSensitiveLog = + overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog + const outputFilterSensitiveLog = + overrideOutputFilterSensitiveLog ?? + context.outputFilterSensitiveLog + const { $metadata, ...outputWithoutMetadata } = response.output + ;(_a = logger == null ? void 0 : logger.info) == null + ? void 0 + : _a.call(logger, { + clientName, + commandName, + input: inputFilterSensitiveLog(args.input), + output: outputFilterSensitiveLog(outputWithoutMetadata), + metadata: $metadata + }) + return response + } catch (error) { + const { + clientName, + commandName, + logger, + dynamoDbDocumentClientOptions = {} + } = context + const { overrideInputFilterSensitiveLog } = + dynamoDbDocumentClientOptions + const inputFilterSensitiveLog = + overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog + ;(_b = logger == null ? void 0 : logger.error) == null + ? void 0 + : _b.call(logger, { + clientName, + commandName, + input: inputFilterSensitiveLog(args.input), + error, + metadata: error.$metadata + }) + throw error + } + }, + 'loggerMiddleware' + ) + var loggerMiddlewareOptions = { + name: 'loggerMiddleware', + tags: ['LOGGER'], + step: 'initialize', + override: true + } + var getLoggerPlugin = /* @__PURE__ */ __name( + options => ({ + applyToStack: clientStack => { + clientStack.add(loggerMiddleware(), loggerMiddlewareOptions) + } + }), + 'getLoggerPlugin' + ) + // Annotate the CommonJS export names for ESM import in node: + + 0 && 0 + + /***/ }, - checksumAlgorithms() { - return checksumAlgorithms; - } - }; -}, "getChecksumConfiguration"); -var resolveChecksumRuntimeConfig = /* @__PURE__ */ __name((clientConfig) => { - const runtimeConfig = {}; - clientConfig.checksumAlgorithms().forEach((checksumAlgorithm) => { - runtimeConfig[checksumAlgorithm.algorithmId()] = checksumAlgorithm.checksumConstructor(); - }); - return runtimeConfig; -}, "resolveChecksumRuntimeConfig"); - -// src/extensions/defaultClientConfiguration.ts -var getDefaultClientConfiguration = /* @__PURE__ */ __name((runtimeConfig) => { - return getChecksumConfiguration(runtimeConfig); -}, "getDefaultClientConfiguration"); -var resolveDefaultRuntimeConfig = /* @__PURE__ */ __name((config) => { - return resolveChecksumRuntimeConfig(config); -}, "resolveDefaultRuntimeConfig"); - -// src/http.ts -var FieldPosition = /* @__PURE__ */ ((FieldPosition2) => { - FieldPosition2[FieldPosition2["HEADER"] = 0] = "HEADER"; - FieldPosition2[FieldPosition2["TRAILER"] = 1] = "TRAILER"; - return FieldPosition2; -})(FieldPosition || {}); - -// src/middleware.ts -var SMITHY_CONTEXT_KEY = "__smithy_context"; - -// src/profile.ts -var IniSectionType = /* @__PURE__ */ ((IniSectionType2) => { - IniSectionType2["PROFILE"] = "profile"; - IniSectionType2["SSO_SESSION"] = "sso-session"; - IniSectionType2["SERVICES"] = "services"; - return IniSectionType2; -})(IniSectionType || {}); - -// src/transfer.ts -var RequestHandlerProtocol = /* @__PURE__ */ ((RequestHandlerProtocol2) => { - RequestHandlerProtocol2["HTTP_0_9"] = "http/0.9"; - RequestHandlerProtocol2["HTTP_1_0"] = "http/1.0"; - RequestHandlerProtocol2["TDS_8_0"] = "tds/8.0"; - return RequestHandlerProtocol2; -})(RequestHandlerProtocol || {}); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 57247: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - parseUrl: () => parseUrl -}); -module.exports = __toCommonJS(src_exports); -var import_querystring_parser = __nccwpck_require__(2465); -var parseUrl = /* @__PURE__ */ __name((url) => { - if (typeof url === "string") { - return parseUrl(new URL(url)); - } - const { hostname, pathname, port, protocol, search } = url; - let query; - if (search) { - query = (0, import_querystring_parser.parseQueryString)(search); - } - return { - hostname, - port: port ? parseInt(port) : void 0, - protocol, - path: pathname, - query - }; -}, "parseUrl"); -// Annotate the CommonJS export names for ESM import in node: -0 && (0); + /***/ 85525: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + // src/index.ts + var src_exports = {} + __export(src_exports, { + addRecursionDetectionMiddlewareOptions: () => + addRecursionDetectionMiddlewareOptions, + getRecursionDetectionPlugin: () => getRecursionDetectionPlugin, + recursionDetectionMiddleware: () => recursionDetectionMiddleware + }) + module.exports = __toCommonJS(src_exports) + var import_protocol_http = __nccwpck_require__(64418) + var TRACE_ID_HEADER_NAME = 'X-Amzn-Trace-Id' + var ENV_LAMBDA_FUNCTION_NAME = 'AWS_LAMBDA_FUNCTION_NAME' + var ENV_TRACE_ID = '_X_AMZN_TRACE_ID' + var recursionDetectionMiddleware = /* @__PURE__ */ __name( + options => next => async args => { + const { request } = args + if ( + !import_protocol_http.HttpRequest.isInstance(request) || + options.runtime !== 'node' || + request.headers.hasOwnProperty(TRACE_ID_HEADER_NAME) + ) { + return next(args) + } + const functionName = process.env[ENV_LAMBDA_FUNCTION_NAME] + const traceId = process.env[ENV_TRACE_ID] + const nonEmptyString = /* @__PURE__ */ __name( + str => typeof str === 'string' && str.length > 0, + 'nonEmptyString' + ) + if (nonEmptyString(functionName) && nonEmptyString(traceId)) { + request.headers[TRACE_ID_HEADER_NAME] = traceId + } + return next({ + ...args, + request + }) + }, + 'recursionDetectionMiddleware' + ) + var addRecursionDetectionMiddlewareOptions = { + step: 'build', + tags: ['RECURSION_DETECTION'], + name: 'recursionDetectionMiddleware', + override: true, + priority: 'low' + } + var getRecursionDetectionPlugin = /* @__PURE__ */ __name( + options => ({ + applyToStack: clientStack => { + clientStack.add( + recursionDetectionMiddleware(options), + addRecursionDetectionMiddlewareOptions + ) + } + }), + 'getRecursionDetectionPlugin' + ) + // Annotate the CommonJS export names for ESM import in node: + 0 && 0 -/***/ }), + /***/ + }, -/***/ 75065: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + /***/ 64688: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -"use strict"; + // src/index.ts + var src_exports = {} + __export(src_exports, { + getUserAgentMiddlewareOptions: () => getUserAgentMiddlewareOptions, + getUserAgentPlugin: () => getUserAgentPlugin, + resolveUserAgentConfig: () => resolveUserAgentConfig, + userAgentMiddleware: () => userAgentMiddleware + }) + module.exports = __toCommonJS(src_exports) -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.fromBase64 = void 0; -const util_buffer_from_1 = __nccwpck_require__(48928); -const BASE64_REGEX = /^[A-Za-z0-9+/]*={0,2}$/; -const fromBase64 = (input) => { - if ((input.length * 3) % 4 !== 0) { - throw new TypeError(`Incorrect padding on base64 string.`); - } - if (!BASE64_REGEX.exec(input)) { - throw new TypeError(`Invalid base64 string.`); - } - const buffer = (0, util_buffer_from_1.fromString)(input, "base64"); - return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength); -}; -exports.fromBase64 = fromBase64; - - -/***/ }), - -/***/ 87656: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + // src/configurations.ts + function resolveUserAgentConfig(input) { + return { + ...input, + customUserAgent: + typeof input.customUserAgent === 'string' + ? [[input.customUserAgent]] + : input.customUserAgent + } + } + __name(resolveUserAgentConfig, 'resolveUserAgentConfig') + + // src/user-agent-middleware.ts + var import_util_endpoints = __nccwpck_require__(13350) + var import_protocol_http = __nccwpck_require__(64418) + + // src/constants.ts + var USER_AGENT = 'user-agent' + var X_AMZ_USER_AGENT = 'x-amz-user-agent' + var SPACE = ' ' + var UA_NAME_SEPARATOR = '/' + var UA_NAME_ESCAPE_REGEX = /[^\!\$\%\&\'\*\+\-\.\^\_\`\|\~\d\w]/g + var UA_VALUE_ESCAPE_REGEX = /[^\!\$\%\&\'\*\+\-\.\^\_\`\|\~\d\w\#]/g + var UA_ESCAPE_CHAR = '-' + + // src/user-agent-middleware.ts + var userAgentMiddleware = /* @__PURE__ */ __name( + options => (next, context) => async args => { + var _a, _b + const { request } = args + if (!import_protocol_http.HttpRequest.isInstance(request)) + return next(args) + const { headers } = request + const userAgent = + ((_a = context == null ? void 0 : context.userAgent) == null + ? void 0 + : _a.map(escapeUserAgent)) || [] + const defaultUserAgent = ( + await options.defaultUserAgentProvider() + ).map(escapeUserAgent) + const customUserAgent = + ((_b = options == null ? void 0 : options.customUserAgent) == null + ? void 0 + : _b.map(escapeUserAgent)) || [] + const prefix = (0, import_util_endpoints.getUserAgentPrefix)() + const sdkUserAgentValue = (prefix ? [prefix] : []) + .concat([...defaultUserAgent, ...userAgent, ...customUserAgent]) + .join(SPACE) + const normalUAValue = [ + ...defaultUserAgent.filter(section => + section.startsWith('aws-sdk-') + ), + ...customUserAgent + ].join(SPACE) + if (options.runtime !== 'browser') { + if (normalUAValue) { + headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT] + ? `${headers[USER_AGENT]} ${normalUAValue}` + : normalUAValue + } + headers[USER_AGENT] = sdkUserAgentValue + } else { + headers[X_AMZ_USER_AGENT] = sdkUserAgentValue + } + return next({ + ...args, + request + }) + }, + 'userAgentMiddleware' + ) + var escapeUserAgent = /* @__PURE__ */ __name(userAgentPair => { + var _a + const name = userAgentPair[0] + .split(UA_NAME_SEPARATOR) + .map(part => part.replace(UA_NAME_ESCAPE_REGEX, UA_ESCAPE_CHAR)) + .join(UA_NAME_SEPARATOR) + const version = + (_a = userAgentPair[1]) == null + ? void 0 + : _a.replace(UA_VALUE_ESCAPE_REGEX, UA_ESCAPE_CHAR) + const prefixSeparatorIndex = name.indexOf(UA_NAME_SEPARATOR) + const prefix = name.substring(0, prefixSeparatorIndex) + let uaName = name.substring(prefixSeparatorIndex + 1) + if (prefix === 'api') { + uaName = uaName.toLowerCase() + } + return [prefix, uaName, version] + .filter(item => item && item.length > 0) + .reduce((acc, item, index) => { + switch (index) { + case 0: + return item + case 1: + return `${acc}/${item}` + default: + return `${acc}#${item}` + } + }, '') + }, 'escapeUserAgent') + var getUserAgentMiddlewareOptions = { + name: 'getUserAgentMiddleware', + step: 'build', + priority: 'low', + tags: ['SET_USER_AGENT', 'USER_AGENT'], + override: true + } + var getUserAgentPlugin = /* @__PURE__ */ __name( + config => ({ + applyToStack: clientStack => { + clientStack.add( + userAgentMiddleware(config), + getUserAgentMiddlewareOptions + ) + } + }), + 'getUserAgentPlugin' + ) + // Annotate the CommonJS export names for ESM import in node: + + 0 && 0 -// src/index.ts -var src_exports = {}; -module.exports = __toCommonJS(src_exports); -__reExport(src_exports, __nccwpck_require__(75065), module.exports); -__reExport(src_exports, __nccwpck_require__(23674), module.exports); -// Annotate the CommonJS export names for ESM import in node: + /***/ + }, -0 && (0); + /***/ 59414: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.resolveHttpAuthSchemeConfig = + exports.defaultSSOOIDCHttpAuthSchemeProvider = + exports.defaultSSOOIDCHttpAuthSchemeParametersProvider = + void 0 + const core_1 = __nccwpck_require__(11928) + const util_middleware_1 = __nccwpck_require__(14298) + const defaultSSOOIDCHttpAuthSchemeParametersProvider = async ( + config, + context, + input + ) => { + return { + operation: (0, util_middleware_1.getSmithyContext)(context).operation, + region: + (await (0, util_middleware_1.normalizeProvider)(config.region)()) || + (() => { + throw new Error( + 'expected `region` to be configured for `aws.auth#sigv4`' + ) + })() + } + } + exports.defaultSSOOIDCHttpAuthSchemeParametersProvider = + defaultSSOOIDCHttpAuthSchemeParametersProvider + function createAwsAuthSigv4HttpAuthOption(authParameters) { + return { + schemeId: 'aws.auth#sigv4', + signingProperties: { + name: 'sso-oauth', + region: authParameters.region + }, + propertiesExtractor: (config, context) => ({ + signingProperties: { + config, + context + } + }) + } + } + function createSmithyApiNoAuthHttpAuthOption(authParameters) { + return { + schemeId: 'smithy.api#noAuth' + } + } + const defaultSSOOIDCHttpAuthSchemeProvider = authParameters => { + const options = [] + switch (authParameters.operation) { + case 'CreateToken': { + options.push(createSmithyApiNoAuthHttpAuthOption(authParameters)) + break + } + default: { + options.push(createAwsAuthSigv4HttpAuthOption(authParameters)) + } + } + return options + } + exports.defaultSSOOIDCHttpAuthSchemeProvider = + defaultSSOOIDCHttpAuthSchemeProvider + const resolveHttpAuthSchemeConfig = config => { + const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config) + return Object.assign(config_0, {}) + } + exports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig + /***/ + }, + /***/ 60005: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.defaultEndpointResolver = void 0 + const util_endpoints_1 = __nccwpck_require__(65237) + const util_endpoints_2 = __nccwpck_require__(42178) + const ruleset_1 = __nccwpck_require__(90932) + const cache = new util_endpoints_2.EndpointCache({ + size: 50, + params: ['Endpoint', 'Region', 'UseDualStack', 'UseFIPS'] + }) + const defaultEndpointResolver = (endpointParams, context = {}) => { + return cache.get(endpointParams, () => + (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, { + endpointParams: endpointParams, + logger: context.logger + }) + ) + } + exports.defaultEndpointResolver = defaultEndpointResolver + util_endpoints_2.customEndpointFunctions.aws = + util_endpoints_1.awsEndpointFunctions -/***/ }), + /***/ + }, -/***/ 23674: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + /***/ 90932: /***/ (__unused_webpack_module, exports) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.ruleSet = void 0 + const u = 'required', + v = 'fn', + w = 'argv', + x = 'ref' + const a = true, + b = 'isSet', + c = 'booleanEquals', + d = 'error', + e = 'endpoint', + f = 'tree', + g = 'PartitionResult', + h = 'getAttr', + i = { [u]: false, type: 'String' }, + j = { [u]: true, default: false, type: 'Boolean' }, + k = { [x]: 'Endpoint' }, + l = { [v]: c, [w]: [{ [x]: 'UseFIPS' }, true] }, + m = { [v]: c, [w]: [{ [x]: 'UseDualStack' }, true] }, + n = {}, + o = { [v]: h, [w]: [{ [x]: g }, 'supportsFIPS'] }, + p = { [x]: g }, + q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, 'supportsDualStack'] }] }, + r = [l], + s = [m], + t = [{ [x]: 'Region' }] + const _data = { + version: '1.0', + parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, + rules: [ + { + conditions: [{ [v]: b, [w]: [k] }], + rules: [ + { + conditions: r, + error: + 'Invalid Configuration: FIPS and custom endpoint are not supported', + type: d + }, + { + conditions: s, + error: + 'Invalid Configuration: Dualstack and custom endpoint are not supported', + type: d + }, + { endpoint: { url: k, properties: n, headers: n }, type: e } + ], + type: f + }, + { + conditions: [{ [v]: b, [w]: t }], + rules: [ + { + conditions: [{ [v]: 'aws.partition', [w]: t, assign: g }], + rules: [ + { + conditions: [l, m], + rules: [ + { + conditions: [{ [v]: c, [w]: [a, o] }, q], + rules: [ + { + endpoint: { + url: 'https://oidc-fips.{Region}.{PartitionResult#dualStackDnsSuffix}', + properties: n, + headers: n + }, + type: e + } + ], + type: f + }, + { + error: + 'FIPS and DualStack are enabled, but this partition does not support one or both', + type: d + } + ], + type: f + }, + { + conditions: r, + rules: [ + { + conditions: [{ [v]: c, [w]: [o, a] }], + rules: [ + { + conditions: [ + { + [v]: 'stringEquals', + [w]: [ + { [v]: h, [w]: [p, 'name'] }, + 'aws-us-gov' + ] + } + ], + endpoint: { + url: 'https://oidc.{Region}.amazonaws.com', + properties: n, + headers: n + }, + type: e + }, + { + endpoint: { + url: 'https://oidc-fips.{Region}.{PartitionResult#dnsSuffix}', + properties: n, + headers: n + }, + type: e + } + ], + type: f + }, + { + error: + 'FIPS is enabled but this partition does not support FIPS', + type: d + } + ], + type: f + }, + { + conditions: s, + rules: [ + { + conditions: [q], + rules: [ + { + endpoint: { + url: 'https://oidc.{Region}.{PartitionResult#dualStackDnsSuffix}', + properties: n, + headers: n + }, + type: e + } + ], + type: f + }, + { + error: + 'DualStack is enabled but this partition does not support DualStack', + type: d + } + ], + type: f + }, + { + endpoint: { + url: 'https://oidc.{Region}.{PartitionResult#dnsSuffix}', + properties: n, + headers: n + }, + type: e + } + ], + type: f + } + ], + type: f + }, + { error: 'Invalid Configuration: Missing Region', type: d } + ] + } + exports.ruleSet = _data -"use strict"; + /***/ + }, -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.toBase64 = void 0; -const util_buffer_from_1 = __nccwpck_require__(48928); -const util_utf8_1 = __nccwpck_require__(94377); -const toBase64 = (_input) => { - let input; - if (typeof _input === "string") { - input = (0, util_utf8_1.fromUtf8)(_input); - } - else { - input = _input; - } - if (typeof input !== "object" || typeof input.byteOffset !== "number" || typeof input.byteLength !== "number") { - throw new Error("@smithy/util-base64: toBase64 encoder function only accepts string | Uint8Array."); - } - return (0, util_buffer_from_1.fromArrayBuffer)(input.buffer, input.byteOffset, input.byteLength).toString("base64"); -}; -exports.toBase64 = toBase64; - - -/***/ }), - -/***/ 10327: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - calculateBodyLength: () => calculateBodyLength -}); -module.exports = __toCommonJS(src_exports); - -// src/calculateBodyLength.ts -var import_fs = __nccwpck_require__(57147); -var calculateBodyLength = /* @__PURE__ */ __name((body) => { - if (!body) { - return 0; - } - if (typeof body === "string") { - return Buffer.byteLength(body); - } else if (typeof body.byteLength === "number") { - return body.byteLength; - } else if (typeof body.size === "number") { - return body.size; - } else if (typeof body.start === "number" && typeof body.end === "number") { - return body.end + 1 - body.start; - } else if (typeof body.path === "string" || Buffer.isBuffer(body.path)) { - return (0, import_fs.lstatSync)(body.path).size; - } else if (typeof body.fd === "number") { - return (0, import_fs.fstatSync)(body.fd).size; - } - throw new Error(`Body Length computation failed for ${body}`); -}, "calculateBodyLength"); -// Annotate the CommonJS export names for ESM import in node: + /***/ 27334: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/submodules/sso-oidc/index.ts + var index_exports = {} + __export(index_exports, { + $Command: () => import_smithy_client6.Command, + AccessDeniedException: () => AccessDeniedException, + AuthorizationPendingException: () => AuthorizationPendingException, + CreateTokenCommand: () => CreateTokenCommand, + CreateTokenRequestFilterSensitiveLog: () => + CreateTokenRequestFilterSensitiveLog, + CreateTokenResponseFilterSensitiveLog: () => + CreateTokenResponseFilterSensitiveLog, + ExpiredTokenException: () => ExpiredTokenException, + InternalServerException: () => InternalServerException, + InvalidClientException: () => InvalidClientException, + InvalidGrantException: () => InvalidGrantException, + InvalidRequestException: () => InvalidRequestException, + InvalidScopeException: () => InvalidScopeException, + SSOOIDC: () => SSOOIDC, + SSOOIDCClient: () => SSOOIDCClient, + SSOOIDCServiceException: () => SSOOIDCServiceException, + SlowDownException: () => SlowDownException, + UnauthorizedClientException: () => UnauthorizedClientException, + UnsupportedGrantTypeException: () => UnsupportedGrantTypeException, + __Client: () => import_smithy_client2.Client + }) + module.exports = __toCommonJS(index_exports) + + // src/submodules/sso-oidc/SSOOIDCClient.ts + var import_middleware_host_header = __nccwpck_require__(97378) + var import_middleware_logger = __nccwpck_require__(57779) + var import_middleware_recursion_detection = __nccwpck_require__(35398) + var import_middleware_user_agent = __nccwpck_require__(1834) + var import_config_resolver = __nccwpck_require__(99541) + var import_core = __nccwpck_require__(1004) + var import_middleware_content_length = __nccwpck_require__(51214) + var import_middleware_endpoint = __nccwpck_require__(23435) + var import_middleware_retry = __nccwpck_require__(23737) + var import_smithy_client2 = __nccwpck_require__(21433) + var import_httpAuthSchemeProvider = __nccwpck_require__(59414) + + // src/submodules/sso-oidc/endpoint/EndpointParameters.ts + var resolveClientEndpointParameters = /* @__PURE__ */ __name(options => { + return Object.assign(options, { + useDualstackEndpoint: options.useDualstackEndpoint ?? false, + useFipsEndpoint: options.useFipsEndpoint ?? false, + defaultSigningName: 'sso-oauth' + }) + }, 'resolveClientEndpointParameters') + var commonParams = { + UseFIPS: { type: 'builtInParams', name: 'useFipsEndpoint' }, + Endpoint: { type: 'builtInParams', name: 'endpoint' }, + Region: { type: 'builtInParams', name: 'region' }, + UseDualStack: { type: 'builtInParams', name: 'useDualstackEndpoint' } + } + + // src/submodules/sso-oidc/SSOOIDCClient.ts + var import_runtimeConfig = __nccwpck_require__(77277) + + // src/submodules/sso-oidc/runtimeExtensions.ts + var import_region_config_resolver = __nccwpck_require__(32357) + var import_protocol_http = __nccwpck_require__(18241) + var import_smithy_client = __nccwpck_require__(21433) + + // src/submodules/sso-oidc/auth/httpAuthExtensionConfiguration.ts + var getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name( + runtimeConfig => { + const _httpAuthSchemes = runtimeConfig.httpAuthSchemes + let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider + let _credentials = runtimeConfig.credentials + return { + setHttpAuthScheme(httpAuthScheme) { + const index = _httpAuthSchemes.findIndex( + scheme => scheme.schemeId === httpAuthScheme.schemeId + ) + if (index === -1) { + _httpAuthSchemes.push(httpAuthScheme) + } else { + _httpAuthSchemes.splice(index, 1, httpAuthScheme) + } + }, + httpAuthSchemes() { + return _httpAuthSchemes + }, + setHttpAuthSchemeProvider(httpAuthSchemeProvider) { + _httpAuthSchemeProvider = httpAuthSchemeProvider + }, + httpAuthSchemeProvider() { + return _httpAuthSchemeProvider + }, + setCredentials(credentials) { + _credentials = credentials + }, + credentials() { + return _credentials + } + } + }, + 'getHttpAuthExtensionConfiguration' + ) + var resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name(config => { + return { + httpAuthSchemes: config.httpAuthSchemes(), + httpAuthSchemeProvider: config.httpAuthSchemeProvider(), + credentials: config.credentials() + } + }, 'resolveHttpAuthRuntimeConfig') + + // src/submodules/sso-oidc/runtimeExtensions.ts + var resolveRuntimeExtensions = /* @__PURE__ */ __name( + (runtimeConfig, extensions) => { + const extensionConfiguration = Object.assign( + (0, + import_region_config_resolver.getAwsRegionExtensionConfiguration)( + runtimeConfig + ), + (0, import_smithy_client.getDefaultExtensionConfiguration)( + runtimeConfig + ), + (0, import_protocol_http.getHttpHandlerExtensionConfiguration)( + runtimeConfig + ), + getHttpAuthExtensionConfiguration(runtimeConfig) + ) + extensions.forEach(extension => + extension.configure(extensionConfiguration) + ) + return Object.assign( + runtimeConfig, + (0, + import_region_config_resolver.resolveAwsRegionExtensionConfiguration)( + extensionConfiguration + ), + (0, import_smithy_client.resolveDefaultRuntimeConfig)( + extensionConfiguration + ), + (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)( + extensionConfiguration + ), + resolveHttpAuthRuntimeConfig(extensionConfiguration) + ) + }, + 'resolveRuntimeExtensions' + ) -0 && (0); + // src/submodules/sso-oidc/SSOOIDCClient.ts + var SSOOIDCClient = class extends import_smithy_client2.Client { + static { + __name(this, 'SSOOIDCClient') + } + /** + * The resolved configuration of SSOOIDCClient class. This is resolved and normalized from the {@link SSOOIDCClientConfig | constructor configuration interface}. + */ + config + constructor(...[configuration]) { + const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)( + configuration || {} + ) + super(_config_0) + this.initConfig = _config_0 + const _config_1 = resolveClientEndpointParameters(_config_0) + const _config_2 = (0, + import_middleware_user_agent.resolveUserAgentConfig)(_config_1) + const _config_3 = (0, import_middleware_retry.resolveRetryConfig)( + _config_2 + ) + const _config_4 = (0, import_config_resolver.resolveRegionConfig)( + _config_3 + ) + const _config_5 = (0, + import_middleware_host_header.resolveHostHeaderConfig)(_config_4) + const _config_6 = (0, + import_middleware_endpoint.resolveEndpointConfig)(_config_5) + const _config_7 = (0, + import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6) + const _config_8 = resolveRuntimeExtensions( + _config_7, + configuration?.extensions || [] + ) + this.config = _config_8 + this.middlewareStack.use( + (0, import_middleware_user_agent.getUserAgentPlugin)(this.config) + ) + this.middlewareStack.use( + (0, import_middleware_retry.getRetryPlugin)(this.config) + ) + this.middlewareStack.use( + (0, import_middleware_content_length.getContentLengthPlugin)( + this.config + ) + ) + this.middlewareStack.use( + (0, import_middleware_host_header.getHostHeaderPlugin)(this.config) + ) + this.middlewareStack.use( + (0, import_middleware_logger.getLoggerPlugin)(this.config) + ) + this.middlewareStack.use( + (0, + import_middleware_recursion_detection.getRecursionDetectionPlugin)( + this.config + ) + ) + this.middlewareStack.use( + (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)( + this.config, + { + httpAuthSchemeParametersProvider: + import_httpAuthSchemeProvider.defaultSSOOIDCHttpAuthSchemeParametersProvider, + identityProviderConfigProvider: /* @__PURE__ */ __name( + async config => + new import_core.DefaultIdentityProviderConfig({ + 'aws.auth#sigv4': config.credentials + }), + 'identityProviderConfigProvider' + ) + } + ) + ) + this.middlewareStack.use( + (0, import_core.getHttpSigningPlugin)(this.config) + ) + } + /** + * Destroy underlying resources, like sockets. It's usually not necessary to do this. + * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed. + * Otherwise, sockets might stay open for quite a long time before the server terminates them. + */ + destroy() { + super.destroy() + } + } + // src/submodules/sso-oidc/SSOOIDC.ts + var import_smithy_client7 = __nccwpck_require__(21433) + // src/submodules/sso-oidc/commands/CreateTokenCommand.ts + var import_middleware_endpoint2 = __nccwpck_require__(23435) + var import_middleware_serde = __nccwpck_require__(94572) + var import_smithy_client6 = __nccwpck_require__(21433) -/***/ }), + // src/submodules/sso-oidc/models/models_0.ts + var import_smithy_client4 = __nccwpck_require__(21433) -/***/ 48928: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + // src/submodules/sso-oidc/models/SSOOIDCServiceException.ts + var import_smithy_client3 = __nccwpck_require__(21433) + var SSOOIDCServiceException = class _SSOOIDCServiceException + extends import_smithy_client3.ServiceException + { + static { + __name(this, 'SSOOIDCServiceException') + } + /** + * @internal + */ + constructor(options) { + super(options) + Object.setPrototypeOf(this, _SSOOIDCServiceException.prototype) + } + } -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - fromArrayBuffer: () => fromArrayBuffer, - fromString: () => fromString -}); -module.exports = __toCommonJS(src_exports); -var import_is_array_buffer = __nccwpck_require__(22299); -var import_buffer = __nccwpck_require__(14300); -var fromArrayBuffer = /* @__PURE__ */ __name((input, offset = 0, length = input.byteLength - offset) => { - if (!(0, import_is_array_buffer.isArrayBuffer)(input)) { - throw new TypeError(`The "input" argument must be ArrayBuffer. Received type ${typeof input} (${input})`); - } - return import_buffer.Buffer.from(input, offset, length); -}, "fromArrayBuffer"); -var fromString = /* @__PURE__ */ __name((input, encoding) => { - if (typeof input !== "string") { - throw new TypeError(`The "input" argument must be of type string. Received type ${typeof input} (${input})`); - } - return encoding ? import_buffer.Buffer.from(input, encoding) : import_buffer.Buffer.from(input); -}, "fromString"); -// Annotate the CommonJS export names for ESM import in node: + // src/submodules/sso-oidc/models/models_0.ts + var AccessDeniedException = class _AccessDeniedException extends SSOOIDCServiceException { + static { + __name(this, 'AccessDeniedException') + } + name = 'AccessDeniedException' + $fault = 'client' + /** + *

Single error code. For this exception the value will be access_denied.

+ * @public + */ + error + /** + *

Human-readable text providing additional information, used to assist the client developer + * in understanding the error that occurred.

+ * @public + */ + error_description + /** + * @internal + */ + constructor(opts) { + super({ + name: 'AccessDeniedException', + $fault: 'client', + ...opts + }) + Object.setPrototypeOf(this, _AccessDeniedException.prototype) + this.error = opts.error + this.error_description = opts.error_description + } + } + var AuthorizationPendingException = class _AuthorizationPendingException extends SSOOIDCServiceException { + static { + __name(this, 'AuthorizationPendingException') + } + name = 'AuthorizationPendingException' + $fault = 'client' + /** + *

Single error code. For this exception the value will be + * authorization_pending.

+ * @public + */ + error + /** + *

Human-readable text providing additional information, used to assist the client developer + * in understanding the error that occurred.

+ * @public + */ + error_description + /** + * @internal + */ + constructor(opts) { + super({ + name: 'AuthorizationPendingException', + $fault: 'client', + ...opts + }) + Object.setPrototypeOf(this, _AuthorizationPendingException.prototype) + this.error = opts.error + this.error_description = opts.error_description + } + } + var CreateTokenRequestFilterSensitiveLog = /* @__PURE__ */ __name( + obj => ({ + ...obj, + ...(obj.clientSecret && { + clientSecret: import_smithy_client4.SENSITIVE_STRING + }), + ...(obj.refreshToken && { + refreshToken: import_smithy_client4.SENSITIVE_STRING + }), + ...(obj.codeVerifier && { + codeVerifier: import_smithy_client4.SENSITIVE_STRING + }) + }), + 'CreateTokenRequestFilterSensitiveLog' + ) + var CreateTokenResponseFilterSensitiveLog = /* @__PURE__ */ __name( + obj => ({ + ...obj, + ...(obj.accessToken && { + accessToken: import_smithy_client4.SENSITIVE_STRING + }), + ...(obj.refreshToken && { + refreshToken: import_smithy_client4.SENSITIVE_STRING + }), + ...(obj.idToken && { + idToken: import_smithy_client4.SENSITIVE_STRING + }) + }), + 'CreateTokenResponseFilterSensitiveLog' + ) + var ExpiredTokenException = class _ExpiredTokenException extends SSOOIDCServiceException { + static { + __name(this, 'ExpiredTokenException') + } + name = 'ExpiredTokenException' + $fault = 'client' + /** + *

Single error code. For this exception the value will be expired_token.

+ * @public + */ + error + /** + *

Human-readable text providing additional information, used to assist the client developer + * in understanding the error that occurred.

+ * @public + */ + error_description + /** + * @internal + */ + constructor(opts) { + super({ + name: 'ExpiredTokenException', + $fault: 'client', + ...opts + }) + Object.setPrototypeOf(this, _ExpiredTokenException.prototype) + this.error = opts.error + this.error_description = opts.error_description + } + } + var InternalServerException = class _InternalServerException extends SSOOIDCServiceException { + static { + __name(this, 'InternalServerException') + } + name = 'InternalServerException' + $fault = 'server' + /** + *

Single error code. For this exception the value will be server_error.

+ * @public + */ + error + /** + *

Human-readable text providing additional information, used to assist the client developer + * in understanding the error that occurred.

+ * @public + */ + error_description + /** + * @internal + */ + constructor(opts) { + super({ + name: 'InternalServerException', + $fault: 'server', + ...opts + }) + Object.setPrototypeOf(this, _InternalServerException.prototype) + this.error = opts.error + this.error_description = opts.error_description + } + } + var InvalidClientException = class _InvalidClientException extends SSOOIDCServiceException { + static { + __name(this, 'InvalidClientException') + } + name = 'InvalidClientException' + $fault = 'client' + /** + *

Single error code. For this exception the value will be + * invalid_client.

+ * @public + */ + error + /** + *

Human-readable text providing additional information, used to assist the client developer + * in understanding the error that occurred.

+ * @public + */ + error_description + /** + * @internal + */ + constructor(opts) { + super({ + name: 'InvalidClientException', + $fault: 'client', + ...opts + }) + Object.setPrototypeOf(this, _InvalidClientException.prototype) + this.error = opts.error + this.error_description = opts.error_description + } + } + var InvalidGrantException = class _InvalidGrantException extends SSOOIDCServiceException { + static { + __name(this, 'InvalidGrantException') + } + name = 'InvalidGrantException' + $fault = 'client' + /** + *

Single error code. For this exception the value will be invalid_grant.

+ * @public + */ + error + /** + *

Human-readable text providing additional information, used to assist the client developer + * in understanding the error that occurred.

+ * @public + */ + error_description + /** + * @internal + */ + constructor(opts) { + super({ + name: 'InvalidGrantException', + $fault: 'client', + ...opts + }) + Object.setPrototypeOf(this, _InvalidGrantException.prototype) + this.error = opts.error + this.error_description = opts.error_description + } + } + var InvalidRequestException = class _InvalidRequestException extends SSOOIDCServiceException { + static { + __name(this, 'InvalidRequestException') + } + name = 'InvalidRequestException' + $fault = 'client' + /** + *

Single error code. For this exception the value will be + * invalid_request.

+ * @public + */ + error + /** + *

Human-readable text providing additional information, used to assist the client developer + * in understanding the error that occurred.

+ * @public + */ + error_description + /** + * @internal + */ + constructor(opts) { + super({ + name: 'InvalidRequestException', + $fault: 'client', + ...opts + }) + Object.setPrototypeOf(this, _InvalidRequestException.prototype) + this.error = opts.error + this.error_description = opts.error_description + } + } + var InvalidScopeException = class _InvalidScopeException extends SSOOIDCServiceException { + static { + __name(this, 'InvalidScopeException') + } + name = 'InvalidScopeException' + $fault = 'client' + /** + *

Single error code. For this exception the value will be invalid_scope.

+ * @public + */ + error + /** + *

Human-readable text providing additional information, used to assist the client developer + * in understanding the error that occurred.

+ * @public + */ + error_description + /** + * @internal + */ + constructor(opts) { + super({ + name: 'InvalidScopeException', + $fault: 'client', + ...opts + }) + Object.setPrototypeOf(this, _InvalidScopeException.prototype) + this.error = opts.error + this.error_description = opts.error_description + } + } + var SlowDownException = class _SlowDownException extends SSOOIDCServiceException { + static { + __name(this, 'SlowDownException') + } + name = 'SlowDownException' + $fault = 'client' + /** + *

Single error code. For this exception the value will be slow_down.

+ * @public + */ + error + /** + *

Human-readable text providing additional information, used to assist the client developer + * in understanding the error that occurred.

+ * @public + */ + error_description + /** + * @internal + */ + constructor(opts) { + super({ + name: 'SlowDownException', + $fault: 'client', + ...opts + }) + Object.setPrototypeOf(this, _SlowDownException.prototype) + this.error = opts.error + this.error_description = opts.error_description + } + } + var UnauthorizedClientException = class _UnauthorizedClientException extends SSOOIDCServiceException { + static { + __name(this, 'UnauthorizedClientException') + } + name = 'UnauthorizedClientException' + $fault = 'client' + /** + *

Single error code. For this exception the value will be + * unauthorized_client.

+ * @public + */ + error + /** + *

Human-readable text providing additional information, used to assist the client developer + * in understanding the error that occurred.

+ * @public + */ + error_description + /** + * @internal + */ + constructor(opts) { + super({ + name: 'UnauthorizedClientException', + $fault: 'client', + ...opts + }) + Object.setPrototypeOf(this, _UnauthorizedClientException.prototype) + this.error = opts.error + this.error_description = opts.error_description + } + } + var UnsupportedGrantTypeException = class _UnsupportedGrantTypeException extends SSOOIDCServiceException { + static { + __name(this, 'UnsupportedGrantTypeException') + } + name = 'UnsupportedGrantTypeException' + $fault = 'client' + /** + *

Single error code. For this exception the value will be + * unsupported_grant_type.

+ * @public + */ + error + /** + *

Human-readable text providing additional information, used to assist the client developer + * in understanding the error that occurred.

+ * @public + */ + error_description + /** + * @internal + */ + constructor(opts) { + super({ + name: 'UnsupportedGrantTypeException', + $fault: 'client', + ...opts + }) + Object.setPrototypeOf(this, _UnsupportedGrantTypeException.prototype) + this.error = opts.error + this.error_description = opts.error_description + } + } -0 && (0); + // src/submodules/sso-oidc/protocols/Aws_restJson1.ts + var import_core2 = __nccwpck_require__(11928) + var import_core3 = __nccwpck_require__(1004) + var import_smithy_client5 = __nccwpck_require__(21433) + var se_CreateTokenCommand = /* @__PURE__ */ __name( + async (input, context) => { + const b = (0, import_core3.requestBuilder)(input, context) + const headers = { + 'content-type': 'application/json' + } + b.bp('/token') + let body + body = JSON.stringify( + (0, import_smithy_client5.take)(input, { + clientId: [], + clientSecret: [], + code: [], + codeVerifier: [], + deviceCode: [], + grantType: [], + redirectUri: [], + refreshToken: [], + scope: /* @__PURE__ */ __name( + _ => (0, import_smithy_client5._json)(_), + 'scope' + ) + }) + ) + b.m('POST').h(headers).b(body) + return b.build() + }, + 'se_CreateTokenCommand' + ) + var de_CreateTokenCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context) + } + const contents = (0, import_smithy_client5.map)({ + $metadata: deserializeMetadata(output) + }) + const data = (0, import_smithy_client5.expectNonNull)( + (0, import_smithy_client5.expectObject)( + await (0, import_core2.parseJsonBody)(output.body, context) + ), + 'body' + ) + const doc = (0, import_smithy_client5.take)(data, { + accessToken: import_smithy_client5.expectString, + expiresIn: import_smithy_client5.expectInt32, + idToken: import_smithy_client5.expectString, + refreshToken: import_smithy_client5.expectString, + tokenType: import_smithy_client5.expectString + }) + Object.assign(contents, doc) + return contents + }, + 'de_CreateTokenCommand' + ) + var de_CommandError = /* @__PURE__ */ __name(async (output, context) => { + const parsedOutput = { + ...output, + body: await (0, import_core2.parseJsonErrorBody)(output.body, context) + } + const errorCode = (0, import_core2.loadRestJsonErrorCode)( + output, + parsedOutput.body + ) + switch (errorCode) { + case 'AccessDeniedException': + case 'com.amazonaws.ssooidc#AccessDeniedException': + throw await de_AccessDeniedExceptionRes(parsedOutput, context) + case 'AuthorizationPendingException': + case 'com.amazonaws.ssooidc#AuthorizationPendingException': + throw await de_AuthorizationPendingExceptionRes( + parsedOutput, + context + ) + case 'ExpiredTokenException': + case 'com.amazonaws.ssooidc#ExpiredTokenException': + throw await de_ExpiredTokenExceptionRes(parsedOutput, context) + case 'InternalServerException': + case 'com.amazonaws.ssooidc#InternalServerException': + throw await de_InternalServerExceptionRes(parsedOutput, context) + case 'InvalidClientException': + case 'com.amazonaws.ssooidc#InvalidClientException': + throw await de_InvalidClientExceptionRes(parsedOutput, context) + case 'InvalidGrantException': + case 'com.amazonaws.ssooidc#InvalidGrantException': + throw await de_InvalidGrantExceptionRes(parsedOutput, context) + case 'InvalidRequestException': + case 'com.amazonaws.ssooidc#InvalidRequestException': + throw await de_InvalidRequestExceptionRes(parsedOutput, context) + case 'InvalidScopeException': + case 'com.amazonaws.ssooidc#InvalidScopeException': + throw await de_InvalidScopeExceptionRes(parsedOutput, context) + case 'SlowDownException': + case 'com.amazonaws.ssooidc#SlowDownException': + throw await de_SlowDownExceptionRes(parsedOutput, context) + case 'UnauthorizedClientException': + case 'com.amazonaws.ssooidc#UnauthorizedClientException': + throw await de_UnauthorizedClientExceptionRes(parsedOutput, context) + case 'UnsupportedGrantTypeException': + case 'com.amazonaws.ssooidc#UnsupportedGrantTypeException': + throw await de_UnsupportedGrantTypeExceptionRes( + parsedOutput, + context + ) + default: + const parsedBody = parsedOutput.body + return throwDefaultError({ + output, + parsedBody, + errorCode + }) + } + }, 'de_CommandError') + var throwDefaultError = (0, import_smithy_client5.withBaseException)( + SSOOIDCServiceException + ) + var de_AccessDeniedExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const contents = (0, import_smithy_client5.map)({}) + const data = parsedOutput.body + const doc = (0, import_smithy_client5.take)(data, { + error: import_smithy_client5.expectString, + error_description: import_smithy_client5.expectString + }) + Object.assign(contents, doc) + const exception = new AccessDeniedException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }) + return (0, import_smithy_client5.decorateServiceException)( + exception, + parsedOutput.body + ) + }, + 'de_AccessDeniedExceptionRes' + ) + var de_AuthorizationPendingExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const contents = (0, import_smithy_client5.map)({}) + const data = parsedOutput.body + const doc = (0, import_smithy_client5.take)(data, { + error: import_smithy_client5.expectString, + error_description: import_smithy_client5.expectString + }) + Object.assign(contents, doc) + const exception = new AuthorizationPendingException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }) + return (0, import_smithy_client5.decorateServiceException)( + exception, + parsedOutput.body + ) + }, + 'de_AuthorizationPendingExceptionRes' + ) + var de_ExpiredTokenExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const contents = (0, import_smithy_client5.map)({}) + const data = parsedOutput.body + const doc = (0, import_smithy_client5.take)(data, { + error: import_smithy_client5.expectString, + error_description: import_smithy_client5.expectString + }) + Object.assign(contents, doc) + const exception = new ExpiredTokenException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }) + return (0, import_smithy_client5.decorateServiceException)( + exception, + parsedOutput.body + ) + }, + 'de_ExpiredTokenExceptionRes' + ) + var de_InternalServerExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const contents = (0, import_smithy_client5.map)({}) + const data = parsedOutput.body + const doc = (0, import_smithy_client5.take)(data, { + error: import_smithy_client5.expectString, + error_description: import_smithy_client5.expectString + }) + Object.assign(contents, doc) + const exception = new InternalServerException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }) + return (0, import_smithy_client5.decorateServiceException)( + exception, + parsedOutput.body + ) + }, + 'de_InternalServerExceptionRes' + ) + var de_InvalidClientExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const contents = (0, import_smithy_client5.map)({}) + const data = parsedOutput.body + const doc = (0, import_smithy_client5.take)(data, { + error: import_smithy_client5.expectString, + error_description: import_smithy_client5.expectString + }) + Object.assign(contents, doc) + const exception = new InvalidClientException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }) + return (0, import_smithy_client5.decorateServiceException)( + exception, + parsedOutput.body + ) + }, + 'de_InvalidClientExceptionRes' + ) + var de_InvalidGrantExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const contents = (0, import_smithy_client5.map)({}) + const data = parsedOutput.body + const doc = (0, import_smithy_client5.take)(data, { + error: import_smithy_client5.expectString, + error_description: import_smithy_client5.expectString + }) + Object.assign(contents, doc) + const exception = new InvalidGrantException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }) + return (0, import_smithy_client5.decorateServiceException)( + exception, + parsedOutput.body + ) + }, + 'de_InvalidGrantExceptionRes' + ) + var de_InvalidRequestExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const contents = (0, import_smithy_client5.map)({}) + const data = parsedOutput.body + const doc = (0, import_smithy_client5.take)(data, { + error: import_smithy_client5.expectString, + error_description: import_smithy_client5.expectString + }) + Object.assign(contents, doc) + const exception = new InvalidRequestException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }) + return (0, import_smithy_client5.decorateServiceException)( + exception, + parsedOutput.body + ) + }, + 'de_InvalidRequestExceptionRes' + ) + var de_InvalidScopeExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const contents = (0, import_smithy_client5.map)({}) + const data = parsedOutput.body + const doc = (0, import_smithy_client5.take)(data, { + error: import_smithy_client5.expectString, + error_description: import_smithy_client5.expectString + }) + Object.assign(contents, doc) + const exception = new InvalidScopeException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }) + return (0, import_smithy_client5.decorateServiceException)( + exception, + parsedOutput.body + ) + }, + 'de_InvalidScopeExceptionRes' + ) + var de_SlowDownExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const contents = (0, import_smithy_client5.map)({}) + const data = parsedOutput.body + const doc = (0, import_smithy_client5.take)(data, { + error: import_smithy_client5.expectString, + error_description: import_smithy_client5.expectString + }) + Object.assign(contents, doc) + const exception = new SlowDownException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }) + return (0, import_smithy_client5.decorateServiceException)( + exception, + parsedOutput.body + ) + }, + 'de_SlowDownExceptionRes' + ) + var de_UnauthorizedClientExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const contents = (0, import_smithy_client5.map)({}) + const data = parsedOutput.body + const doc = (0, import_smithy_client5.take)(data, { + error: import_smithy_client5.expectString, + error_description: import_smithy_client5.expectString + }) + Object.assign(contents, doc) + const exception = new UnauthorizedClientException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }) + return (0, import_smithy_client5.decorateServiceException)( + exception, + parsedOutput.body + ) + }, + 'de_UnauthorizedClientExceptionRes' + ) + var de_UnsupportedGrantTypeExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const contents = (0, import_smithy_client5.map)({}) + const data = parsedOutput.body + const doc = (0, import_smithy_client5.take)(data, { + error: import_smithy_client5.expectString, + error_description: import_smithy_client5.expectString + }) + Object.assign(contents, doc) + const exception = new UnsupportedGrantTypeException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }) + return (0, import_smithy_client5.decorateServiceException)( + exception, + parsedOutput.body + ) + }, + 'de_UnsupportedGrantTypeExceptionRes' + ) + var deserializeMetadata = /* @__PURE__ */ __name( + output => ({ + httpStatusCode: output.statusCode, + requestId: + output.headers['x-amzn-requestid'] ?? + output.headers['x-amzn-request-id'] ?? + output.headers['x-amz-request-id'], + extendedRequestId: output.headers['x-amz-id-2'], + cfId: output.headers['x-amz-cf-id'] + }), + 'deserializeMetadata' + ) + // src/submodules/sso-oidc/commands/CreateTokenCommand.ts + var CreateTokenCommand = class extends import_smithy_client6.Command.classBuilder() + .ep(commonParams) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint2.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('AWSSSOOIDCService', 'CreateToken', {}) + .n('SSOOIDCClient', 'CreateTokenCommand') + .f( + CreateTokenRequestFilterSensitiveLog, + CreateTokenResponseFilterSensitiveLog + ) + .ser(se_CreateTokenCommand) + .de(de_CreateTokenCommand) + .build() { + static { + __name(this, 'CreateTokenCommand') + } + } + // src/submodules/sso-oidc/SSOOIDC.ts + var commands = { + CreateTokenCommand + } + var SSOOIDC = class extends SSOOIDCClient { + static { + __name(this, 'SSOOIDC') + } + } + ;(0, import_smithy_client7.createAggregatedClient)(commands, SSOOIDC) + // Annotate the CommonJS export names for ESM import in node: + 0 && 0 -/***/ }), + /***/ + }, -/***/ 64692: -/***/ ((module) => { + /***/ 77277: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getRuntimeConfig = void 0 + const tslib_1 = __nccwpck_require__(4351) + const package_json_1 = tslib_1.__importDefault(__nccwpck_require__(88842)) + const core_1 = __nccwpck_require__(11928) + const util_user_agent_node_1 = __nccwpck_require__(29318) + const config_resolver_1 = __nccwpck_require__(99541) + const hash_node_1 = __nccwpck_require__(92920) + const middleware_retry_1 = __nccwpck_require__(23737) + const node_config_provider_1 = __nccwpck_require__(85650) + const node_http_handler_1 = __nccwpck_require__(96798) + const util_body_length_node_1 = __nccwpck_require__(24047) + const util_retry_1 = __nccwpck_require__(35808) + const runtimeConfig_shared_1 = __nccwpck_require__(49513) + const smithy_client_1 = __nccwpck_require__(21433) + const util_defaults_mode_node_1 = __nccwpck_require__(43762) + const smithy_client_2 = __nccwpck_require__(21433) + const getRuntimeConfig = config => { + ;(0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version) + const defaultsMode = (0, + util_defaults_mode_node_1.resolveDefaultsModeConfig)(config) + const defaultConfigProvider = () => + defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode) + const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)( + config + ) + ;(0, core_1.emitWarningIfUnsupportedVersion)(process.version) + const profileConfig = { profile: config?.profile } + return { + ...clientSharedValues, + ...config, + runtime: 'node', + defaultsMode, + bodyLengthChecker: + config?.bodyLengthChecker ?? + util_body_length_node_1.calculateBodyLength, + defaultUserAgentProvider: + config?.defaultUserAgentProvider ?? + (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ + serviceId: clientSharedValues.serviceId, + clientVersion: package_json_1.default.version + }), + maxAttempts: + config?.maxAttempts ?? + (0, node_config_provider_1.loadConfig)( + middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, + config + ), + region: + config?.region ?? + (0, node_config_provider_1.loadConfig)( + config_resolver_1.NODE_REGION_CONFIG_OPTIONS, + { + ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, + ...profileConfig + } + ), + requestHandler: node_http_handler_1.NodeHttpHandler.create( + config?.requestHandler ?? defaultConfigProvider + ), + retryMode: + config?.retryMode ?? + (0, node_config_provider_1.loadConfig)( + { + ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS, + default: async () => + (await defaultConfigProvider()).retryMode || + util_retry_1.DEFAULT_RETRY_MODE + }, + config + ), + sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, 'sha256'), + streamCollector: + config?.streamCollector ?? node_http_handler_1.streamCollector, + useDualstackEndpoint: + config?.useDualstackEndpoint ?? + (0, node_config_provider_1.loadConfig)( + config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, + profileConfig + ), + useFipsEndpoint: + config?.useFipsEndpoint ?? + (0, node_config_provider_1.loadConfig)( + config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, + profileConfig + ), + userAgentAppId: + config?.userAgentAppId ?? + (0, node_config_provider_1.loadConfig)( + util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, + profileConfig + ) + } + } + exports.getRuntimeConfig = getRuntimeConfig -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - SelectorType: () => SelectorType, - booleanSelector: () => booleanSelector, - numberSelector: () => numberSelector -}); -module.exports = __toCommonJS(src_exports); - -// src/booleanSelector.ts -var booleanSelector = /* @__PURE__ */ __name((obj, key, type) => { - if (!(key in obj)) - return void 0; - if (obj[key] === "true") - return true; - if (obj[key] === "false") - return false; - throw new Error(`Cannot load ${type} "${key}". Expected "true" or "false", got ${obj[key]}.`); -}, "booleanSelector"); - -// src/numberSelector.ts -var numberSelector = /* @__PURE__ */ __name((obj, key, type) => { - if (!(key in obj)) - return void 0; - const numberValue = parseInt(obj[key], 10); - if (Number.isNaN(numberValue)) { - throw new TypeError(`Cannot load ${type} '${key}'. Expected number, got '${obj[key]}'.`); - } - return numberValue; -}, "numberSelector"); - -// src/types.ts -var SelectorType = /* @__PURE__ */ ((SelectorType2) => { - SelectorType2["ENV"] = "env"; - SelectorType2["CONFIG"] = "shared config entry"; - return SelectorType2; -})(SelectorType || {}); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 32855: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __create = Object.create; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __getProtoOf = Object.getPrototypeOf; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. - isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, - mod -)); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - resolveDefaultsModeConfig: () => resolveDefaultsModeConfig -}); -module.exports = __toCommonJS(src_exports); - -// src/resolveDefaultsModeConfig.ts -var import_config_resolver = __nccwpck_require__(47517); -var import_node_config_provider = __nccwpck_require__(6706); -var import_property_provider = __nccwpck_require__(19248); - -// src/constants.ts -var AWS_EXECUTION_ENV = "AWS_EXECUTION_ENV"; -var AWS_REGION_ENV = "AWS_REGION"; -var AWS_DEFAULT_REGION_ENV = "AWS_DEFAULT_REGION"; -var ENV_IMDS_DISABLED = "AWS_EC2_METADATA_DISABLED"; -var DEFAULTS_MODE_OPTIONS = ["in-region", "cross-region", "mobile", "standard", "legacy"]; -var IMDS_REGION_PATH = "/latest/meta-data/placement/region"; - -// src/defaultsModeConfig.ts -var AWS_DEFAULTS_MODE_ENV = "AWS_DEFAULTS_MODE"; -var AWS_DEFAULTS_MODE_CONFIG = "defaults_mode"; -var NODE_DEFAULTS_MODE_CONFIG_OPTIONS = { - environmentVariableSelector: (env) => { - return env[AWS_DEFAULTS_MODE_ENV]; - }, - configFileSelector: (profile) => { - return profile[AWS_DEFAULTS_MODE_CONFIG]; - }, - default: "legacy" -}; - -// src/resolveDefaultsModeConfig.ts -var resolveDefaultsModeConfig = /* @__PURE__ */ __name(({ - region = (0, import_node_config_provider.loadConfig)(import_config_resolver.NODE_REGION_CONFIG_OPTIONS), - defaultsMode = (0, import_node_config_provider.loadConfig)(NODE_DEFAULTS_MODE_CONFIG_OPTIONS) -} = {}) => (0, import_property_provider.memoize)(async () => { - const mode = typeof defaultsMode === "function" ? await defaultsMode() : defaultsMode; - switch (mode?.toLowerCase()) { - case "auto": - return resolveNodeDefaultsModeAuto(region); - case "in-region": - case "cross-region": - case "mobile": - case "standard": - case "legacy": - return Promise.resolve(mode?.toLocaleLowerCase()); - case void 0: - return Promise.resolve("legacy"); - default: - throw new Error( - `Invalid parameter for "defaultsMode", expect ${DEFAULTS_MODE_OPTIONS.join(", ")}, got ${mode}` - ); - } -}), "resolveDefaultsModeConfig"); -var resolveNodeDefaultsModeAuto = /* @__PURE__ */ __name(async (clientRegion) => { - if (clientRegion) { - const resolvedRegion = typeof clientRegion === "function" ? await clientRegion() : clientRegion; - const inferredRegion = await inferPhysicalRegion(); - if (!inferredRegion) { - return "standard"; - } - if (resolvedRegion === inferredRegion) { - return "in-region"; - } else { - return "cross-region"; - } - } - return "standard"; -}, "resolveNodeDefaultsModeAuto"); -var inferPhysicalRegion = /* @__PURE__ */ __name(async () => { - if (process.env[AWS_EXECUTION_ENV] && (process.env[AWS_REGION_ENV] || process.env[AWS_DEFAULT_REGION_ENV])) { - return process.env[AWS_REGION_ENV] ?? process.env[AWS_DEFAULT_REGION_ENV]; - } - if (!process.env[ENV_IMDS_DISABLED]) { - try { - const { getInstanceMetadataEndpoint, httpRequest } = await Promise.resolve().then(() => __toESM(__nccwpck_require__(91502))); - const endpoint = await getInstanceMetadataEndpoint(); - return (await httpRequest({ ...endpoint, path: IMDS_REGION_PATH })).toString(); - } catch (e) { - } - } -}, "inferPhysicalRegion"); -// Annotate the CommonJS export names for ESM import in node: + /***/ + }, -0 && (0); + /***/ 49513: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getRuntimeConfig = void 0 + const core_1 = __nccwpck_require__(11928) + const core_2 = __nccwpck_require__(1004) + const smithy_client_1 = __nccwpck_require__(21433) + const url_parser_1 = __nccwpck_require__(94769) + const util_base64_1 = __nccwpck_require__(44079) + const util_utf8_1 = __nccwpck_require__(76749) + const httpAuthSchemeProvider_1 = __nccwpck_require__(59414) + const endpointResolver_1 = __nccwpck_require__(60005) + const getRuntimeConfig = config => { + return { + apiVersion: '2019-06-10', + base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64, + base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64, + disableHostPrefix: config?.disableHostPrefix ?? false, + endpointProvider: + config?.endpointProvider ?? + endpointResolver_1.defaultEndpointResolver, + extensions: config?.extensions ?? [], + httpAuthSchemeProvider: + config?.httpAuthSchemeProvider ?? + httpAuthSchemeProvider_1.defaultSSOOIDCHttpAuthSchemeProvider, + httpAuthSchemes: config?.httpAuthSchemes ?? [ + { + schemeId: 'aws.auth#sigv4', + identityProvider: ipc => + ipc.getIdentityProvider('aws.auth#sigv4'), + signer: new core_1.AwsSdkSigV4Signer() + }, + { + schemeId: 'smithy.api#noAuth', + identityProvider: ipc => + ipc.getIdentityProvider('smithy.api#noAuth') || + (async () => ({})), + signer: new core_2.NoAuthSigner() + } + ], + logger: config?.logger ?? new smithy_client_1.NoOpLogger(), + serviceId: config?.serviceId ?? 'SSO OIDC', + urlParser: config?.urlParser ?? url_parser_1.parseUrl, + utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8, + utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8 + } + } + exports.getRuntimeConfig = getRuntimeConfig + /***/ + }, + /***/ 68974: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.STSClient = exports.__Client = void 0 + const middleware_host_header_1 = __nccwpck_require__(97378) + const middleware_logger_1 = __nccwpck_require__(57779) + const middleware_recursion_detection_1 = __nccwpck_require__(35398) + const middleware_user_agent_1 = __nccwpck_require__(1834) + const config_resolver_1 = __nccwpck_require__(99541) + const core_1 = __nccwpck_require__(1004) + const middleware_content_length_1 = __nccwpck_require__(51214) + const middleware_endpoint_1 = __nccwpck_require__(23435) + const middleware_retry_1 = __nccwpck_require__(23737) + const smithy_client_1 = __nccwpck_require__(21433) + Object.defineProperty(exports, '__Client', { + enumerable: true, + get: function () { + return smithy_client_1.Client + } + }) + const httpAuthSchemeProvider_1 = __nccwpck_require__(48013) + const EndpointParameters_1 = __nccwpck_require__(41765) + const runtimeConfig_1 = __nccwpck_require__(1798) + const runtimeExtensions_1 = __nccwpck_require__(30669) + class STSClient extends smithy_client_1.Client { + config + constructor(...[configuration]) { + const _config_0 = (0, runtimeConfig_1.getRuntimeConfig)( + configuration || {} + ) + super(_config_0) + this.initConfig = _config_0 + const _config_1 = (0, + EndpointParameters_1.resolveClientEndpointParameters)(_config_0) + const _config_2 = (0, middleware_user_agent_1.resolveUserAgentConfig)( + _config_1 + ) + const _config_3 = (0, middleware_retry_1.resolveRetryConfig)( + _config_2 + ) + const _config_4 = (0, config_resolver_1.resolveRegionConfig)( + _config_3 + ) + const _config_5 = (0, + middleware_host_header_1.resolveHostHeaderConfig)(_config_4) + const _config_6 = (0, middleware_endpoint_1.resolveEndpointConfig)( + _config_5 + ) + const _config_7 = (0, + httpAuthSchemeProvider_1.resolveHttpAuthSchemeConfig)(_config_6) + const _config_8 = (0, runtimeExtensions_1.resolveRuntimeExtensions)( + _config_7, + configuration?.extensions || [] + ) + this.config = _config_8 + this.middlewareStack.use( + (0, middleware_user_agent_1.getUserAgentPlugin)(this.config) + ) + this.middlewareStack.use( + (0, middleware_retry_1.getRetryPlugin)(this.config) + ) + this.middlewareStack.use( + (0, middleware_content_length_1.getContentLengthPlugin)(this.config) + ) + this.middlewareStack.use( + (0, middleware_host_header_1.getHostHeaderPlugin)(this.config) + ) + this.middlewareStack.use( + (0, middleware_logger_1.getLoggerPlugin)(this.config) + ) + this.middlewareStack.use( + (0, middleware_recursion_detection_1.getRecursionDetectionPlugin)( + this.config + ) + ) + this.middlewareStack.use( + (0, core_1.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, { + httpAuthSchemeParametersProvider: + httpAuthSchemeProvider_1.defaultSTSHttpAuthSchemeParametersProvider, + identityProviderConfigProvider: async config => + new core_1.DefaultIdentityProviderConfig({ + 'aws.auth#sigv4': config.credentials + }) + }) + ) + this.middlewareStack.use( + (0, core_1.getHttpSigningPlugin)(this.config) + ) + } + destroy() { + super.destroy() + } + } + exports.STSClient = STSClient -/***/ }), + /***/ + }, -/***/ 76779: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + /***/ 14935: /***/ (__unused_webpack_module, exports) => { + 'use strict' -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - EndpointCache: () => EndpointCache, - EndpointError: () => EndpointError, - customEndpointFunctions: () => customEndpointFunctions, - isIpAddress: () => isIpAddress, - isValidHostLabel: () => isValidHostLabel, - resolveEndpoint: () => resolveEndpoint -}); -module.exports = __toCommonJS(src_exports); - -// src/cache/EndpointCache.ts -var EndpointCache = class { - /** - * @param [size] - desired average maximum capacity. A buffer of 10 additional keys will be allowed - * before keys are dropped. - * @param [params] - list of params to consider as part of the cache key. - * - * If the params list is not populated, no caching will happen. - * This may be out of order depending on how the object is created and arrives to this class. - */ - constructor({ size, params }) { - this.data = /* @__PURE__ */ new Map(); - this.parameters = []; - this.capacity = size ?? 50; - if (params) { - this.parameters = params; - } - } - static { - __name(this, "EndpointCache"); - } - /** - * @param endpointParams - query for endpoint. - * @param resolver - provider of the value if not present. - * @returns endpoint corresponding to the query. - */ - get(endpointParams, resolver) { - const key = this.hash(endpointParams); - if (key === false) { - return resolver(); - } - if (!this.data.has(key)) { - if (this.data.size > this.capacity + 10) { - const keys = this.data.keys(); - let i = 0; - while (true) { - const { value, done } = keys.next(); - this.data.delete(value); - if (done || ++i > 10) { - break; + Object.defineProperty(exports, '__esModule', { value: true }) + exports.resolveHttpAuthRuntimeConfig = + exports.getHttpAuthExtensionConfiguration = void 0 + const getHttpAuthExtensionConfiguration = runtimeConfig => { + const _httpAuthSchemes = runtimeConfig.httpAuthSchemes + let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider + let _credentials = runtimeConfig.credentials + return { + setHttpAuthScheme(httpAuthScheme) { + const index = _httpAuthSchemes.findIndex( + scheme => scheme.schemeId === httpAuthScheme.schemeId + ) + if (index === -1) { + _httpAuthSchemes.push(httpAuthScheme) + } else { + _httpAuthSchemes.splice(index, 1, httpAuthScheme) + } + }, + httpAuthSchemes() { + return _httpAuthSchemes + }, + setHttpAuthSchemeProvider(httpAuthSchemeProvider) { + _httpAuthSchemeProvider = httpAuthSchemeProvider + }, + httpAuthSchemeProvider() { + return _httpAuthSchemeProvider + }, + setCredentials(credentials) { + _credentials = credentials + }, + credentials() { + return _credentials } } } - this.data.set(key, resolver()); - } - return this.data.get(key); - } - size() { - return this.data.size; - } - /** - * @returns cache key or false if not cachable. - */ - hash(endpointParams) { - let buffer = ""; - const { parameters } = this; - if (parameters.length === 0) { - return false; - } - for (const param of parameters) { - const val = String(endpointParams[param] ?? ""); - if (val.includes("|;")) { - return false; + exports.getHttpAuthExtensionConfiguration = + getHttpAuthExtensionConfiguration + const resolveHttpAuthRuntimeConfig = config => { + return { + httpAuthSchemes: config.httpAuthSchemes(), + httpAuthSchemeProvider: config.httpAuthSchemeProvider(), + credentials: config.credentials() + } } - buffer += val + "|;"; - } - return buffer; - } -}; - -// src/lib/isIpAddress.ts -var 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}$` -); -var isIpAddress = /* @__PURE__ */ __name((value) => IP_V4_REGEX.test(value) || value.startsWith("[") && value.endsWith("]"), "isIpAddress"); - -// src/lib/isValidHostLabel.ts -var VALID_HOST_LABEL_REGEX = new RegExp(`^(?!.*-$)(?!-)[a-zA-Z0-9-]{1,63}$`); -var isValidHostLabel = /* @__PURE__ */ __name((value, allowSubDomains = false) => { - if (!allowSubDomains) { - return VALID_HOST_LABEL_REGEX.test(value); - } - const labels = value.split("."); - for (const label of labels) { - if (!isValidHostLabel(label)) { - return false; - } - } - return true; -}, "isValidHostLabel"); - -// src/utils/customEndpointFunctions.ts -var customEndpointFunctions = {}; - -// src/debug/debugId.ts -var debugId = "endpoints"; - -// src/debug/toDebugString.ts -function toDebugString(input) { - if (typeof input !== "object" || input == null) { - return input; - } - if ("ref" in input) { - return `$${toDebugString(input.ref)}`; - } - if ("fn" in input) { - return `${input.fn}(${(input.argv || []).map(toDebugString).join(", ")})`; - } - return JSON.stringify(input, null, 2); -} -__name(toDebugString, "toDebugString"); - -// src/types/EndpointError.ts -var EndpointError = class extends Error { - static { - __name(this, "EndpointError"); - } - constructor(message) { - super(message); - this.name = "EndpointError"; - } -}; - -// src/lib/booleanEquals.ts -var booleanEquals = /* @__PURE__ */ __name((value1, value2) => value1 === value2, "booleanEquals"); - -// src/lib/getAttrPathList.ts -var getAttrPathList = /* @__PURE__ */ __name((path) => { - const parts = path.split("."); - const pathList = []; - for (const part of parts) { - const squareBracketIndex = part.indexOf("["); - if (squareBracketIndex !== -1) { - if (part.indexOf("]") !== part.length - 1) { - throw new EndpointError(`Path: '${path}' does not end with ']'`); - } - const arrayIndex = part.slice(squareBracketIndex + 1, -1); - if (Number.isNaN(parseInt(arrayIndex))) { - throw new EndpointError(`Invalid array index: '${arrayIndex}' in path: '${path}'`); - } - if (squareBracketIndex !== 0) { - pathList.push(part.slice(0, squareBracketIndex)); - } - pathList.push(arrayIndex); - } else { - pathList.push(part); - } - } - return pathList; -}, "getAttrPathList"); - -// src/lib/getAttr.ts -var getAttr = /* @__PURE__ */ __name((value, path) => getAttrPathList(path).reduce((acc, index) => { - if (typeof acc !== "object") { - throw new EndpointError(`Index '${index}' in '${path}' not found in '${JSON.stringify(value)}'`); - } else if (Array.isArray(acc)) { - return acc[parseInt(index)]; - } - return acc[index]; -}, value), "getAttr"); - -// src/lib/isSet.ts -var isSet = /* @__PURE__ */ __name((value) => value != null, "isSet"); - -// src/lib/not.ts -var not = /* @__PURE__ */ __name((value) => !value, "not"); - -// src/lib/parseURL.ts -var import_types3 = __nccwpck_require__(63443); -var DEFAULT_PORTS = { - [import_types3.EndpointURLScheme.HTTP]: 80, - [import_types3.EndpointURLScheme.HTTPS]: 443 -}; -var parseURL = /* @__PURE__ */ __name((value) => { - const whatwgURL = (() => { - try { - if (value instanceof URL) { - return value; - } - if (typeof value === "object" && "hostname" in value) { - const { hostname: hostname2, port, protocol: protocol2 = "", path = "", query = {} } = value; - const url = new URL(`${protocol2}//${hostname2}${port ? `:${port}` : ""}${path}`); - url.search = Object.entries(query).map(([k, v]) => `${k}=${v}`).join("&"); - return url; - } - return new URL(value); - } catch (error) { - return null; - } - })(); - if (!whatwgURL) { - console.error(`Unable to parse ${JSON.stringify(value)} as a whatwg URL.`); - return null; - } - const urlString = whatwgURL.href; - const { host, hostname, pathname, protocol, search } = whatwgURL; - if (search) { - return null; - } - const scheme = protocol.slice(0, -1); - if (!Object.values(import_types3.EndpointURLScheme).includes(scheme)) { - return null; - } - const isIp = isIpAddress(hostname); - const inputContainsDefaultPort = urlString.includes(`${host}:${DEFAULT_PORTS[scheme]}`) || typeof value === "string" && value.includes(`${host}:${DEFAULT_PORTS[scheme]}`); - const authority = `${host}${inputContainsDefaultPort ? `:${DEFAULT_PORTS[scheme]}` : ``}`; - return { - scheme, - authority, - path: pathname, - normalizedPath: pathname.endsWith("/") ? pathname : `${pathname}/`, - isIp - }; -}, "parseURL"); - -// src/lib/stringEquals.ts -var stringEquals = /* @__PURE__ */ __name((value1, value2) => value1 === value2, "stringEquals"); - -// src/lib/substring.ts -var substring = /* @__PURE__ */ __name((input, start, stop, reverse) => { - if (start >= stop || input.length < stop) { - return null; - } - if (!reverse) { - return input.substring(start, stop); - } - return input.substring(input.length - stop, input.length - start); -}, "substring"); - -// src/lib/uriEncode.ts -var uriEncode = /* @__PURE__ */ __name((value) => encodeURIComponent(value).replace(/[!*'()]/g, (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`), "uriEncode"); - -// src/utils/endpointFunctions.ts -var endpointFunctions = { - booleanEquals, - getAttr, - isSet, - isValidHostLabel, - not, - parseURL, - stringEquals, - substring, - uriEncode -}; - -// src/utils/evaluateTemplate.ts -var evaluateTemplate = /* @__PURE__ */ __name((template, options) => { - const evaluatedTemplateArr = []; - const templateContext = { - ...options.endpointParams, - ...options.referenceRecord - }; - let currentIndex = 0; - while (currentIndex < template.length) { - const openingBraceIndex = template.indexOf("{", currentIndex); - if (openingBraceIndex === -1) { - evaluatedTemplateArr.push(template.slice(currentIndex)); - break; - } - evaluatedTemplateArr.push(template.slice(currentIndex, openingBraceIndex)); - const closingBraceIndex = template.indexOf("}", openingBraceIndex); - if (closingBraceIndex === -1) { - evaluatedTemplateArr.push(template.slice(openingBraceIndex)); - break; - } - if (template[openingBraceIndex + 1] === "{" && template[closingBraceIndex + 1] === "}") { - evaluatedTemplateArr.push(template.slice(openingBraceIndex + 1, closingBraceIndex)); - currentIndex = closingBraceIndex + 2; - } - const parameterName = template.substring(openingBraceIndex + 1, closingBraceIndex); - if (parameterName.includes("#")) { - const [refName, attrName] = parameterName.split("#"); - evaluatedTemplateArr.push(getAttr(templateContext[refName], attrName)); - } else { - evaluatedTemplateArr.push(templateContext[parameterName]); - } - currentIndex = closingBraceIndex + 1; - } - return evaluatedTemplateArr.join(""); -}, "evaluateTemplate"); - -// src/utils/getReferenceValue.ts -var getReferenceValue = /* @__PURE__ */ __name(({ ref }, options) => { - const referenceRecord = { - ...options.endpointParams, - ...options.referenceRecord - }; - return referenceRecord[ref]; -}, "getReferenceValue"); - -// src/utils/evaluateExpression.ts -var evaluateExpression = /* @__PURE__ */ __name((obj, keyName, options) => { - if (typeof obj === "string") { - return evaluateTemplate(obj, options); - } else if (obj["fn"]) { - return callFunction(obj, options); - } else if (obj["ref"]) { - return getReferenceValue(obj, options); - } - throw new EndpointError(`'${keyName}': ${String(obj)} is not a string, function or reference.`); -}, "evaluateExpression"); - -// src/utils/callFunction.ts -var callFunction = /* @__PURE__ */ __name(({ fn, argv }, options) => { - const evaluatedArgs = argv.map( - (arg) => ["boolean", "number"].includes(typeof arg) ? arg : evaluateExpression(arg, "arg", options) - ); - const fnSegments = fn.split("."); - if (fnSegments[0] in customEndpointFunctions && fnSegments[1] != null) { - return customEndpointFunctions[fnSegments[0]][fnSegments[1]](...evaluatedArgs); - } - return endpointFunctions[fn](...evaluatedArgs); -}, "callFunction"); - -// src/utils/evaluateCondition.ts -var evaluateCondition = /* @__PURE__ */ __name(({ assign, ...fnArgs }, options) => { - if (assign && assign in options.referenceRecord) { - throw new EndpointError(`'${assign}' is already defined in Reference Record.`); - } - const value = callFunction(fnArgs, options); - options.logger?.debug?.(`${debugId} evaluateCondition: ${toDebugString(fnArgs)} = ${toDebugString(value)}`); - return { - result: value === "" ? true : !!value, - ...assign != null && { toAssign: { name: assign, value } } - }; -}, "evaluateCondition"); - -// src/utils/evaluateConditions.ts -var evaluateConditions = /* @__PURE__ */ __name((conditions = [], options) => { - const conditionsReferenceRecord = {}; - for (const condition of conditions) { - const { result, toAssign } = evaluateCondition(condition, { - ...options, - referenceRecord: { - ...options.referenceRecord, - ...conditionsReferenceRecord - } - }); - if (!result) { - return { result }; - } - if (toAssign) { - conditionsReferenceRecord[toAssign.name] = toAssign.value; - options.logger?.debug?.(`${debugId} assign: ${toAssign.name} := ${toDebugString(toAssign.value)}`); - } - } - return { result: true, referenceRecord: conditionsReferenceRecord }; -}, "evaluateConditions"); - -// src/utils/getEndpointHeaders.ts -var getEndpointHeaders = /* @__PURE__ */ __name((headers, options) => Object.entries(headers).reduce( - (acc, [headerKey, headerVal]) => ({ - ...acc, - [headerKey]: headerVal.map((headerValEntry) => { - const processedExpr = evaluateExpression(headerValEntry, "Header value entry", options); - if (typeof processedExpr !== "string") { - throw new EndpointError(`Header '${headerKey}' value '${processedExpr}' is not a string`); - } - return processedExpr; - }) - }), - {} -), "getEndpointHeaders"); - -// src/utils/getEndpointProperty.ts -var getEndpointProperty = /* @__PURE__ */ __name((property, options) => { - if (Array.isArray(property)) { - return property.map((propertyEntry) => getEndpointProperty(propertyEntry, options)); - } - switch (typeof property) { - case "string": - return evaluateTemplate(property, options); - case "object": - if (property === null) { - throw new EndpointError(`Unexpected endpoint property: ${property}`); - } - return getEndpointProperties(property, options); - case "boolean": - return property; - default: - throw new EndpointError(`Unexpected endpoint property type: ${typeof property}`); - } -}, "getEndpointProperty"); - -// src/utils/getEndpointProperties.ts -var getEndpointProperties = /* @__PURE__ */ __name((properties, options) => Object.entries(properties).reduce( - (acc, [propertyKey, propertyVal]) => ({ - ...acc, - [propertyKey]: getEndpointProperty(propertyVal, options) - }), - {} -), "getEndpointProperties"); - -// src/utils/getEndpointUrl.ts -var getEndpointUrl = /* @__PURE__ */ __name((endpointUrl, options) => { - const expression = evaluateExpression(endpointUrl, "Endpoint URL", options); - if (typeof expression === "string") { - try { - return new URL(expression); - } catch (error) { - console.error(`Failed to construct URL with ${expression}`, error); - throw error; - } - } - throw new EndpointError(`Endpoint URL must be a string, got ${typeof expression}`); -}, "getEndpointUrl"); - -// src/utils/evaluateEndpointRule.ts -var evaluateEndpointRule = /* @__PURE__ */ __name((endpointRule, options) => { - const { conditions, endpoint } = endpointRule; - const { result, referenceRecord } = evaluateConditions(conditions, options); - if (!result) { - return; - } - const endpointRuleOptions = { - ...options, - referenceRecord: { ...options.referenceRecord, ...referenceRecord } - }; - const { url, properties, headers } = endpoint; - options.logger?.debug?.(`${debugId} Resolving endpoint from template: ${toDebugString(endpoint)}`); - return { - ...headers != void 0 && { - headers: getEndpointHeaders(headers, endpointRuleOptions) - }, - ...properties != void 0 && { - properties: getEndpointProperties(properties, endpointRuleOptions) - }, - url: getEndpointUrl(url, endpointRuleOptions) - }; -}, "evaluateEndpointRule"); - -// src/utils/evaluateErrorRule.ts -var evaluateErrorRule = /* @__PURE__ */ __name((errorRule, options) => { - const { conditions, error } = errorRule; - const { result, referenceRecord } = evaluateConditions(conditions, options); - if (!result) { - return; - } - throw new EndpointError( - evaluateExpression(error, "Error", { - ...options, - referenceRecord: { ...options.referenceRecord, ...referenceRecord } - }) - ); -}, "evaluateErrorRule"); - -// src/utils/evaluateTreeRule.ts -var evaluateTreeRule = /* @__PURE__ */ __name((treeRule, options) => { - const { conditions, rules } = treeRule; - const { result, referenceRecord } = evaluateConditions(conditions, options); - if (!result) { - return; - } - return evaluateRules(rules, { - ...options, - referenceRecord: { ...options.referenceRecord, ...referenceRecord } - }); -}, "evaluateTreeRule"); - -// src/utils/evaluateRules.ts -var evaluateRules = /* @__PURE__ */ __name((rules, options) => { - for (const rule of rules) { - if (rule.type === "endpoint") { - const endpointOrUndefined = evaluateEndpointRule(rule, options); - if (endpointOrUndefined) { - return endpointOrUndefined; - } - } else if (rule.type === "error") { - evaluateErrorRule(rule, options); - } else if (rule.type === "tree") { - const endpointOrUndefined = evaluateTreeRule(rule, options); - if (endpointOrUndefined) { - return endpointOrUndefined; - } - } else { - throw new EndpointError(`Unknown endpoint rule: ${rule}`); - } - } - throw new EndpointError(`Rules evaluation failed`); -}, "evaluateRules"); - -// src/resolveEndpoint.ts -var resolveEndpoint = /* @__PURE__ */ __name((ruleSetObject, options) => { - const { endpointParams, logger } = options; - const { parameters, rules } = ruleSetObject; - options.logger?.debug?.(`${debugId} Initial EndpointParams: ${toDebugString(endpointParams)}`); - const paramsWithDefault = Object.entries(parameters).filter(([, v]) => v.default != null).map(([k, v]) => [k, v.default]); - if (paramsWithDefault.length > 0) { - for (const [paramKey, paramDefaultValue] of paramsWithDefault) { - endpointParams[paramKey] = endpointParams[paramKey] ?? paramDefaultValue; - } - } - const requiredParams = Object.entries(parameters).filter(([, v]) => v.required).map(([k]) => k); - for (const requiredParam of requiredParams) { - if (endpointParams[requiredParam] == null) { - throw new EndpointError(`Missing required parameter: '${requiredParam}'`); - } - } - const endpoint = evaluateRules(rules, { endpointParams, logger, referenceRecord: {} }); - options.logger?.debug?.(`${debugId} Resolved endpoint: ${toDebugString(endpoint)}`); - return endpoint; -}, "resolveEndpoint"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 82143: -/***/ ((module) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - fromHex: () => fromHex, - toHex: () => toHex -}); -module.exports = __toCommonJS(src_exports); -var SHORT_TO_HEX = {}; -var HEX_TO_SHORT = {}; -for (let i = 0; i < 256; i++) { - let encodedByte = i.toString(16).toLowerCase(); - if (encodedByte.length === 1) { - encodedByte = `0${encodedByte}`; - } - SHORT_TO_HEX[i] = encodedByte; - HEX_TO_SHORT[encodedByte] = i; -} -function fromHex(encoded) { - if (encoded.length % 2 !== 0) { - throw new Error("Hex encoded strings must have an even number length"); - } - const out = new Uint8Array(encoded.length / 2); - for (let i = 0; i < encoded.length; i += 2) { - const encodedByte = encoded.slice(i, i + 2).toLowerCase(); - if (encodedByte in HEX_TO_SHORT) { - out[i / 2] = HEX_TO_SHORT[encodedByte]; - } else { - throw new Error(`Cannot decode unrecognized sequence ${encodedByte} as hexadecimal`); - } - } - return out; -} -__name(fromHex, "fromHex"); -function toHex(bytes) { - let out = ""; - for (let i = 0; i < bytes.byteLength; i++) { - out += SHORT_TO_HEX[bytes[i]]; - } - return out; -} -__name(toHex, "toHex"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 69474: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - getSmithyContext: () => getSmithyContext, - normalizeProvider: () => normalizeProvider -}); -module.exports = __toCommonJS(src_exports); - -// src/getSmithyContext.ts -var import_types = __nccwpck_require__(63443); -var getSmithyContext = /* @__PURE__ */ __name((context) => context[import_types.SMITHY_CONTEXT_KEY] || (context[import_types.SMITHY_CONTEXT_KEY] = {}), "getSmithyContext"); - -// src/normalizeProvider.ts -var normalizeProvider = /* @__PURE__ */ __name((input) => { - if (typeof input === "function") - return input; - const promisified = Promise.resolve(input); - return () => promisified; -}, "normalizeProvider"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 31955: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - AdaptiveRetryStrategy: () => AdaptiveRetryStrategy, - ConfiguredRetryStrategy: () => ConfiguredRetryStrategy, - DEFAULT_MAX_ATTEMPTS: () => DEFAULT_MAX_ATTEMPTS, - DEFAULT_RETRY_DELAY_BASE: () => DEFAULT_RETRY_DELAY_BASE, - DEFAULT_RETRY_MODE: () => DEFAULT_RETRY_MODE, - DefaultRateLimiter: () => DefaultRateLimiter, - INITIAL_RETRY_TOKENS: () => INITIAL_RETRY_TOKENS, - INVOCATION_ID_HEADER: () => INVOCATION_ID_HEADER, - MAXIMUM_RETRY_DELAY: () => MAXIMUM_RETRY_DELAY, - NO_RETRY_INCREMENT: () => NO_RETRY_INCREMENT, - REQUEST_HEADER: () => REQUEST_HEADER, - RETRY_COST: () => RETRY_COST, - RETRY_MODES: () => RETRY_MODES, - StandardRetryStrategy: () => StandardRetryStrategy, - THROTTLING_RETRY_DELAY_BASE: () => THROTTLING_RETRY_DELAY_BASE, - TIMEOUT_RETRY_COST: () => TIMEOUT_RETRY_COST -}); -module.exports = __toCommonJS(src_exports); - -// src/config.ts -var RETRY_MODES = /* @__PURE__ */ ((RETRY_MODES2) => { - RETRY_MODES2["STANDARD"] = "standard"; - RETRY_MODES2["ADAPTIVE"] = "adaptive"; - return RETRY_MODES2; -})(RETRY_MODES || {}); -var DEFAULT_MAX_ATTEMPTS = 3; -var DEFAULT_RETRY_MODE = "standard" /* STANDARD */; - -// src/DefaultRateLimiter.ts -var import_service_error_classification = __nccwpck_require__(44652); -var DefaultRateLimiter = class _DefaultRateLimiter { - constructor(options) { - // Pre-set state variables - this.currentCapacity = 0; - this.enabled = false; - this.lastMaxRate = 0; - this.measuredTxRate = 0; - this.requestCount = 0; - this.lastTimestamp = 0; - this.timeWindow = 0; - this.beta = options?.beta ?? 0.7; - this.minCapacity = options?.minCapacity ?? 1; - this.minFillRate = options?.minFillRate ?? 0.5; - this.scaleConstant = options?.scaleConstant ?? 0.4; - this.smooth = options?.smooth ?? 0.8; - const currentTimeInSeconds = this.getCurrentTimeInSeconds(); - this.lastThrottleTime = currentTimeInSeconds; - this.lastTxRateBucket = Math.floor(this.getCurrentTimeInSeconds()); - this.fillRate = this.minFillRate; - this.maxCapacity = this.minCapacity; - } - static { - __name(this, "DefaultRateLimiter"); - } - static { - /** - * Only used in testing. - */ - this.setTimeoutFn = setTimeout; - } - getCurrentTimeInSeconds() { - return Date.now() / 1e3; - } - async getSendToken() { - return this.acquireTokenBucket(1); - } - async acquireTokenBucket(amount) { - if (!this.enabled) { - return; - } - this.refillTokenBucket(); - if (amount > this.currentCapacity) { - const delay = (amount - this.currentCapacity) / this.fillRate * 1e3; - await new Promise((resolve) => _DefaultRateLimiter.setTimeoutFn(resolve, delay)); - } - this.currentCapacity = this.currentCapacity - amount; - } - refillTokenBucket() { - const timestamp = this.getCurrentTimeInSeconds(); - if (!this.lastTimestamp) { - this.lastTimestamp = timestamp; - return; - } - const fillAmount = (timestamp - this.lastTimestamp) * this.fillRate; - this.currentCapacity = Math.min(this.maxCapacity, this.currentCapacity + fillAmount); - this.lastTimestamp = timestamp; - } - updateClientSendingRate(response) { - let calculatedRate; - this.updateMeasuredRate(); - if ((0, import_service_error_classification.isThrottlingError)(response)) { - const rateToUse = !this.enabled ? this.measuredTxRate : Math.min(this.measuredTxRate, this.fillRate); - this.lastMaxRate = rateToUse; - this.calculateTimeWindow(); - this.lastThrottleTime = this.getCurrentTimeInSeconds(); - calculatedRate = this.cubicThrottle(rateToUse); - this.enableTokenBucket(); - } else { - this.calculateTimeWindow(); - calculatedRate = this.cubicSuccess(this.getCurrentTimeInSeconds()); - } - const newRate = Math.min(calculatedRate, 2 * this.measuredTxRate); - this.updateTokenBucketRate(newRate); - } - calculateTimeWindow() { - this.timeWindow = this.getPrecise(Math.pow(this.lastMaxRate * (1 - this.beta) / this.scaleConstant, 1 / 3)); - } - cubicThrottle(rateToUse) { - return this.getPrecise(rateToUse * this.beta); - } - cubicSuccess(timestamp) { - return this.getPrecise( - this.scaleConstant * Math.pow(timestamp - this.lastThrottleTime - this.timeWindow, 3) + this.lastMaxRate - ); - } - enableTokenBucket() { - this.enabled = true; - } - updateTokenBucketRate(newRate) { - this.refillTokenBucket(); - this.fillRate = Math.max(newRate, this.minFillRate); - this.maxCapacity = Math.max(newRate, this.minCapacity); - this.currentCapacity = Math.min(this.currentCapacity, this.maxCapacity); - } - updateMeasuredRate() { - const t = this.getCurrentTimeInSeconds(); - const timeBucket = Math.floor(t * 2) / 2; - this.requestCount++; - if (timeBucket > this.lastTxRateBucket) { - const currentRate = this.requestCount / (timeBucket - this.lastTxRateBucket); - this.measuredTxRate = this.getPrecise(currentRate * this.smooth + this.measuredTxRate * (1 - this.smooth)); - this.requestCount = 0; - this.lastTxRateBucket = timeBucket; - } - } - getPrecise(num) { - return parseFloat(num.toFixed(8)); - } -}; - -// src/constants.ts -var DEFAULT_RETRY_DELAY_BASE = 100; -var MAXIMUM_RETRY_DELAY = 20 * 1e3; -var THROTTLING_RETRY_DELAY_BASE = 500; -var INITIAL_RETRY_TOKENS = 500; -var RETRY_COST = 5; -var TIMEOUT_RETRY_COST = 10; -var NO_RETRY_INCREMENT = 1; -var INVOCATION_ID_HEADER = "amz-sdk-invocation-id"; -var REQUEST_HEADER = "amz-sdk-request"; - -// src/defaultRetryBackoffStrategy.ts -var getDefaultRetryBackoffStrategy = /* @__PURE__ */ __name(() => { - let delayBase = DEFAULT_RETRY_DELAY_BASE; - const computeNextBackoffDelay = /* @__PURE__ */ __name((attempts) => { - return Math.floor(Math.min(MAXIMUM_RETRY_DELAY, Math.random() * 2 ** attempts * delayBase)); - }, "computeNextBackoffDelay"); - const setDelayBase = /* @__PURE__ */ __name((delay) => { - delayBase = delay; - }, "setDelayBase"); - return { - computeNextBackoffDelay, - setDelayBase - }; -}, "getDefaultRetryBackoffStrategy"); - -// src/defaultRetryToken.ts -var createDefaultRetryToken = /* @__PURE__ */ __name(({ - retryDelay, - retryCount, - retryCost -}) => { - const getRetryCount = /* @__PURE__ */ __name(() => retryCount, "getRetryCount"); - const getRetryDelay = /* @__PURE__ */ __name(() => Math.min(MAXIMUM_RETRY_DELAY, retryDelay), "getRetryDelay"); - const getRetryCost = /* @__PURE__ */ __name(() => retryCost, "getRetryCost"); - return { - getRetryCount, - getRetryDelay, - getRetryCost - }; -}, "createDefaultRetryToken"); - -// src/StandardRetryStrategy.ts -var StandardRetryStrategy = class { - constructor(maxAttempts) { - this.maxAttempts = maxAttempts; - this.mode = "standard" /* STANDARD */; - this.capacity = INITIAL_RETRY_TOKENS; - this.retryBackoffStrategy = getDefaultRetryBackoffStrategy(); - this.maxAttemptsProvider = typeof maxAttempts === "function" ? maxAttempts : async () => maxAttempts; - } - static { - __name(this, "StandardRetryStrategy"); - } - // eslint-disable-next-line @typescript-eslint/no-unused-vars - async acquireInitialRetryToken(retryTokenScope) { - return createDefaultRetryToken({ - retryDelay: DEFAULT_RETRY_DELAY_BASE, - retryCount: 0 - }); - } - async refreshRetryTokenForRetry(token, errorInfo) { - const maxAttempts = await this.getMaxAttempts(); - if (this.shouldRetry(token, errorInfo, maxAttempts)) { - const errorType = errorInfo.errorType; - this.retryBackoffStrategy.setDelayBase( - errorType === "THROTTLING" ? THROTTLING_RETRY_DELAY_BASE : DEFAULT_RETRY_DELAY_BASE - ); - const delayFromErrorType = this.retryBackoffStrategy.computeNextBackoffDelay(token.getRetryCount()); - const retryDelay = errorInfo.retryAfterHint ? Math.max(errorInfo.retryAfterHint.getTime() - Date.now() || 0, delayFromErrorType) : delayFromErrorType; - const capacityCost = this.getCapacityCost(errorType); - this.capacity -= capacityCost; - return createDefaultRetryToken({ - retryDelay, - retryCount: token.getRetryCount() + 1, - retryCost: capacityCost - }); - } - throw new Error("No retry token available"); - } - recordSuccess(token) { - this.capacity = Math.max(INITIAL_RETRY_TOKENS, this.capacity + (token.getRetryCost() ?? NO_RETRY_INCREMENT)); - } - /** - * @returns the current available retry capacity. - * - * This number decreases when retries are executed and refills when requests or retries succeed. - */ - getCapacity() { - return this.capacity; - } - async getMaxAttempts() { - try { - return await this.maxAttemptsProvider(); - } catch (error) { - console.warn(`Max attempts provider could not resolve. Using default of ${DEFAULT_MAX_ATTEMPTS}`); - return DEFAULT_MAX_ATTEMPTS; - } - } - shouldRetry(tokenToRenew, errorInfo, maxAttempts) { - const attempts = tokenToRenew.getRetryCount() + 1; - return attempts < maxAttempts && this.capacity >= this.getCapacityCost(errorInfo.errorType) && this.isRetryableError(errorInfo.errorType); - } - getCapacityCost(errorType) { - return errorType === "TRANSIENT" ? TIMEOUT_RETRY_COST : RETRY_COST; - } - isRetryableError(errorType) { - return errorType === "THROTTLING" || errorType === "TRANSIENT"; - } -}; - -// src/AdaptiveRetryStrategy.ts -var AdaptiveRetryStrategy = class { - constructor(maxAttemptsProvider, options) { - this.maxAttemptsProvider = maxAttemptsProvider; - this.mode = "adaptive" /* ADAPTIVE */; - const { rateLimiter } = options ?? {}; - this.rateLimiter = rateLimiter ?? new DefaultRateLimiter(); - this.standardRetryStrategy = new StandardRetryStrategy(maxAttemptsProvider); - } - static { - __name(this, "AdaptiveRetryStrategy"); - } - async acquireInitialRetryToken(retryTokenScope) { - await this.rateLimiter.getSendToken(); - return this.standardRetryStrategy.acquireInitialRetryToken(retryTokenScope); - } - async refreshRetryTokenForRetry(tokenToRenew, errorInfo) { - this.rateLimiter.updateClientSendingRate(errorInfo); - return this.standardRetryStrategy.refreshRetryTokenForRetry(tokenToRenew, errorInfo); - } - recordSuccess(token) { - this.rateLimiter.updateClientSendingRate({}); - this.standardRetryStrategy.recordSuccess(token); - } -}; - -// src/ConfiguredRetryStrategy.ts -var ConfiguredRetryStrategy = class extends StandardRetryStrategy { - static { - __name(this, "ConfiguredRetryStrategy"); - } - /** - * @param maxAttempts - the maximum number of retry attempts allowed. - * e.g., if set to 3, then 4 total requests are possible. - * @param computeNextBackoffDelay - a millisecond delay for each retry or a function that takes the retry attempt - * and returns the delay. - * - * @example exponential backoff. - * ```js - * new Client({ - * retryStrategy: new ConfiguredRetryStrategy(3, (attempt) => attempt ** 2) - * }); - * ``` - * @example constant delay. - * ```js - * new Client({ - * retryStrategy: new ConfiguredRetryStrategy(3, 2000) - * }); - * ``` - */ - constructor(maxAttempts, computeNextBackoffDelay = DEFAULT_RETRY_DELAY_BASE) { - super(typeof maxAttempts === "function" ? maxAttempts : async () => maxAttempts); - if (typeof computeNextBackoffDelay === "number") { - this.computeNextBackoffDelay = () => computeNextBackoffDelay; - } else { - this.computeNextBackoffDelay = computeNextBackoffDelay; - } - } - async refreshRetryTokenForRetry(tokenToRenew, errorInfo) { - const token = await super.refreshRetryTokenForRetry(tokenToRenew, errorInfo); - token.getRetryDelay = () => this.computeNextBackoffDelay(token.getRetryCount()); - return token; - } -}; -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - + exports.resolveHttpAuthRuntimeConfig = resolveHttpAuthRuntimeConfig + /***/ + }, -/***/ }), + /***/ 48013: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.resolveHttpAuthSchemeConfig = + exports.resolveStsAuthConfig = + exports.defaultSTSHttpAuthSchemeProvider = + exports.defaultSTSHttpAuthSchemeParametersProvider = + void 0 + const core_1 = __nccwpck_require__(11928) + const util_middleware_1 = __nccwpck_require__(14298) + const STSClient_1 = __nccwpck_require__(68974) + const defaultSTSHttpAuthSchemeParametersProvider = async ( + config, + context, + input + ) => { + return { + operation: (0, util_middleware_1.getSmithyContext)(context).operation, + region: + (await (0, util_middleware_1.normalizeProvider)(config.region)()) || + (() => { + throw new Error( + 'expected `region` to be configured for `aws.auth#sigv4`' + ) + })() + } + } + exports.defaultSTSHttpAuthSchemeParametersProvider = + defaultSTSHttpAuthSchemeParametersProvider + function createAwsAuthSigv4HttpAuthOption(authParameters) { + return { + schemeId: 'aws.auth#sigv4', + signingProperties: { + name: 'sts', + region: authParameters.region + }, + propertiesExtractor: (config, context) => ({ + signingProperties: { + config, + context + } + }) + } + } + function createSmithyApiNoAuthHttpAuthOption(authParameters) { + return { + schemeId: 'smithy.api#noAuth' + } + } + const defaultSTSHttpAuthSchemeProvider = authParameters => { + const options = [] + switch (authParameters.operation) { + case 'AssumeRoleWithWebIdentity': { + options.push(createSmithyApiNoAuthHttpAuthOption(authParameters)) + break + } + default: { + options.push(createAwsAuthSigv4HttpAuthOption(authParameters)) + } + } + return options + } + exports.defaultSTSHttpAuthSchemeProvider = + defaultSTSHttpAuthSchemeProvider + const resolveStsAuthConfig = input => + Object.assign(input, { + stsClientCtor: STSClient_1.STSClient + }) + exports.resolveStsAuthConfig = resolveStsAuthConfig + const resolveHttpAuthSchemeConfig = config => { + const config_0 = (0, exports.resolveStsAuthConfig)(config) + const config_1 = (0, core_1.resolveAwsSdkSigV4Config)(config_0) + return Object.assign(config_1, {}) + } + exports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig -/***/ 67487: -/***/ ((__unused_webpack_module, exports) => { + /***/ + }, -"use strict"; + /***/ 41765: /***/ (__unused_webpack_module, exports) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.commonParams = exports.resolveClientEndpointParameters = void 0 + const resolveClientEndpointParameters = options => { + return Object.assign(options, { + useDualstackEndpoint: options.useDualstackEndpoint ?? false, + useFipsEndpoint: options.useFipsEndpoint ?? false, + useGlobalEndpoint: options.useGlobalEndpoint ?? false, + defaultSigningName: 'sts' + }) + } + exports.resolveClientEndpointParameters = resolveClientEndpointParameters + exports.commonParams = { + UseGlobalEndpoint: { type: 'builtInParams', name: 'useGlobalEndpoint' }, + UseFIPS: { type: 'builtInParams', name: 'useFipsEndpoint' }, + Endpoint: { type: 'builtInParams', name: 'endpoint' }, + Region: { type: 'builtInParams', name: 'region' }, + UseDualStack: { type: 'builtInParams', name: 'useDualstackEndpoint' } + } -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.ByteArrayCollector = void 0; -class ByteArrayCollector { - constructor(allocByteArray) { - this.allocByteArray = allocByteArray; - this.byteLength = 0; - this.byteArrays = []; - } - push(byteArray) { - this.byteArrays.push(byteArray); - this.byteLength += byteArray.byteLength; - } - flush() { - if (this.byteArrays.length === 1) { - const bytes = this.byteArrays[0]; - this.reset(); - return bytes; - } - const aggregation = this.allocByteArray(this.byteLength); - let cursor = 0; - for (let i = 0; i < this.byteArrays.length; ++i) { - const bytes = this.byteArrays[i]; - aggregation.set(bytes, cursor); - cursor += bytes.byteLength; - } - this.reset(); - return aggregation; - } - reset() { - this.byteArrays = []; - this.byteLength = 0; - } -} -exports.ByteArrayCollector = ByteArrayCollector; + /***/ + }, + /***/ 47561: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.defaultEndpointResolver = void 0 + const util_endpoints_1 = __nccwpck_require__(65237) + const util_endpoints_2 = __nccwpck_require__(42178) + const ruleset_1 = __nccwpck_require__(39127) + const cache = new util_endpoints_2.EndpointCache({ + size: 50, + params: [ + 'Endpoint', + 'Region', + 'UseDualStack', + 'UseFIPS', + 'UseGlobalEndpoint' + ] + }) + const defaultEndpointResolver = (endpointParams, context = {}) => { + return cache.get(endpointParams, () => + (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, { + endpointParams: endpointParams, + logger: context.logger + }) + ) + } + exports.defaultEndpointResolver = defaultEndpointResolver + util_endpoints_2.customEndpointFunctions.aws = + util_endpoints_1.awsEndpointFunctions -/***/ }), + /***/ + }, -/***/ 83725: -/***/ ((__unused_webpack_module, exports) => { + /***/ 39127: /***/ (__unused_webpack_module, exports) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.ruleSet = void 0 + const F = 'required', + G = 'type', + H = 'fn', + I = 'argv', + J = 'ref' + const a = false, + b = true, + c = 'booleanEquals', + d = 'stringEquals', + e = 'sigv4', + f = 'sts', + g = 'us-east-1', + h = 'endpoint', + i = 'https://sts.{Region}.{PartitionResult#dnsSuffix}', + j = 'tree', + k = 'error', + l = 'getAttr', + m = { [F]: false, [G]: 'String' }, + n = { [F]: true, default: false, [G]: 'Boolean' }, + o = { [J]: 'Endpoint' }, + p = { [H]: 'isSet', [I]: [{ [J]: 'Region' }] }, + q = { [J]: 'Region' }, + r = { [H]: 'aws.partition', [I]: [q], assign: 'PartitionResult' }, + s = { [J]: 'UseFIPS' }, + t = { [J]: 'UseDualStack' }, + u = { + url: 'https://sts.amazonaws.com', + properties: { + authSchemes: [{ name: e, signingName: f, signingRegion: g }] + }, + headers: {} + }, + v = {}, + w = { + conditions: [{ [H]: d, [I]: [q, 'aws-global'] }], + [h]: u, + [G]: h + }, + x = { [H]: c, [I]: [s, true] }, + y = { [H]: c, [I]: [t, true] }, + z = { [H]: l, [I]: [{ [J]: 'PartitionResult' }, 'supportsFIPS'] }, + A = { [J]: 'PartitionResult' }, + B = { [H]: c, [I]: [true, { [H]: l, [I]: [A, 'supportsDualStack'] }] }, + C = [{ [H]: 'isSet', [I]: [o] }], + D = [x], + E = [y] + const _data = { + version: '1.0', + parameters: { + Region: m, + UseDualStack: n, + UseFIPS: n, + Endpoint: m, + UseGlobalEndpoint: n + }, + rules: [ + { + conditions: [ + { [H]: c, [I]: [{ [J]: 'UseGlobalEndpoint' }, b] }, + { [H]: 'not', [I]: C }, + p, + r, + { [H]: c, [I]: [s, a] }, + { [H]: c, [I]: [t, a] } + ], + rules: [ + { + conditions: [{ [H]: d, [I]: [q, 'ap-northeast-1'] }], + endpoint: u, + [G]: h + }, + { + conditions: [{ [H]: d, [I]: [q, 'ap-south-1'] }], + endpoint: u, + [G]: h + }, + { + conditions: [{ [H]: d, [I]: [q, 'ap-southeast-1'] }], + endpoint: u, + [G]: h + }, + { + conditions: [{ [H]: d, [I]: [q, 'ap-southeast-2'] }], + endpoint: u, + [G]: h + }, + w, + { + conditions: [{ [H]: d, [I]: [q, 'ca-central-1'] }], + endpoint: u, + [G]: h + }, + { + conditions: [{ [H]: d, [I]: [q, 'eu-central-1'] }], + endpoint: u, + [G]: h + }, + { + conditions: [{ [H]: d, [I]: [q, 'eu-north-1'] }], + endpoint: u, + [G]: h + }, + { + conditions: [{ [H]: d, [I]: [q, 'eu-west-1'] }], + endpoint: u, + [G]: h + }, + { + conditions: [{ [H]: d, [I]: [q, 'eu-west-2'] }], + endpoint: u, + [G]: h + }, + { + conditions: [{ [H]: d, [I]: [q, 'eu-west-3'] }], + endpoint: u, + [G]: h + }, + { + conditions: [{ [H]: d, [I]: [q, 'sa-east-1'] }], + endpoint: u, + [G]: h + }, + { conditions: [{ [H]: d, [I]: [q, g] }], endpoint: u, [G]: h }, + { + conditions: [{ [H]: d, [I]: [q, 'us-east-2'] }], + endpoint: u, + [G]: h + }, + { + conditions: [{ [H]: d, [I]: [q, 'us-west-1'] }], + endpoint: u, + [G]: h + }, + { + conditions: [{ [H]: d, [I]: [q, 'us-west-2'] }], + endpoint: u, + [G]: h + }, + { + endpoint: { + url: i, + properties: { + authSchemes: [ + { name: e, signingName: f, signingRegion: '{Region}' } + ] + }, + headers: v + }, + [G]: h + } + ], + [G]: j + }, + { + conditions: C, + rules: [ + { + conditions: D, + error: + 'Invalid Configuration: FIPS and custom endpoint are not supported', + [G]: k + }, + { + conditions: E, + error: + 'Invalid Configuration: Dualstack and custom endpoint are not supported', + [G]: k + }, + { endpoint: { url: o, properties: v, headers: v }, [G]: h } + ], + [G]: j + }, + { + conditions: [p], + rules: [ + { + conditions: [r], + rules: [ + { + conditions: [x, y], + rules: [ + { + conditions: [{ [H]: c, [I]: [b, z] }, B], + rules: [ + { + endpoint: { + url: 'https://sts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}', + properties: v, + headers: v + }, + [G]: h + } + ], + [G]: j + }, + { + error: + 'FIPS and DualStack are enabled, but this partition does not support one or both', + [G]: k + } + ], + [G]: j + }, + { + conditions: D, + rules: [ + { + conditions: [{ [H]: c, [I]: [z, b] }], + rules: [ + { + conditions: [ + { + [H]: d, + [I]: [ + { [H]: l, [I]: [A, 'name'] }, + 'aws-us-gov' + ] + } + ], + endpoint: { + url: 'https://sts.{Region}.amazonaws.com', + properties: v, + headers: v + }, + [G]: h + }, + { + endpoint: { + url: 'https://sts-fips.{Region}.{PartitionResult#dnsSuffix}', + properties: v, + headers: v + }, + [G]: h + } + ], + [G]: j + }, + { + error: + 'FIPS is enabled but this partition does not support FIPS', + [G]: k + } + ], + [G]: j + }, + { + conditions: E, + rules: [ + { + conditions: [B], + rules: [ + { + endpoint: { + url: 'https://sts.{Region}.{PartitionResult#dualStackDnsSuffix}', + properties: v, + headers: v + }, + [G]: h + } + ], + [G]: j + }, + { + error: + 'DualStack is enabled but this partition does not support DualStack', + [G]: k + } + ], + [G]: j + }, + w, + { endpoint: { url: i, properties: v, headers: v }, [G]: h } + ], + [G]: j + } + ], + [G]: j + }, + { error: 'Invalid Configuration: Missing Region', [G]: k } + ] + } + exports.ruleSet = _data -"use strict"; + /***/ + }, -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.ChecksumStream = void 0; -const ReadableStreamRef = typeof ReadableStream === "function" ? ReadableStream : function () { }; -class ChecksumStream extends ReadableStreamRef { -} -exports.ChecksumStream = ChecksumStream; + /***/ 2273: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __reExport = (target, mod, secondTarget) => ( + __copyProps(target, mod, 'default'), + secondTarget && __copyProps(secondTarget, mod, 'default') + ) + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/submodules/sts/index.ts + var index_exports = {} + __export(index_exports, { + AssumeRoleCommand: () => AssumeRoleCommand, + AssumeRoleResponseFilterSensitiveLog: () => + AssumeRoleResponseFilterSensitiveLog, + AssumeRoleWithWebIdentityCommand: () => + AssumeRoleWithWebIdentityCommand, + AssumeRoleWithWebIdentityRequestFilterSensitiveLog: () => + AssumeRoleWithWebIdentityRequestFilterSensitiveLog, + AssumeRoleWithWebIdentityResponseFilterSensitiveLog: () => + AssumeRoleWithWebIdentityResponseFilterSensitiveLog, + ClientInputEndpointParameters: () => + import_EndpointParameters3.ClientInputEndpointParameters, + CredentialsFilterSensitiveLog: () => CredentialsFilterSensitiveLog, + ExpiredTokenException: () => ExpiredTokenException, + IDPCommunicationErrorException: () => IDPCommunicationErrorException, + IDPRejectedClaimException: () => IDPRejectedClaimException, + InvalidIdentityTokenException: () => InvalidIdentityTokenException, + MalformedPolicyDocumentException: () => + MalformedPolicyDocumentException, + PackedPolicyTooLargeException: () => PackedPolicyTooLargeException, + RegionDisabledException: () => RegionDisabledException, + STS: () => STS, + STSServiceException: () => STSServiceException, + decorateDefaultCredentialProvider: () => + decorateDefaultCredentialProvider, + getDefaultRoleAssumer: () => getDefaultRoleAssumer2, + getDefaultRoleAssumerWithWebIdentity: () => + getDefaultRoleAssumerWithWebIdentity2 + }) + module.exports = __toCommonJS(index_exports) + __reExport(index_exports, __nccwpck_require__(68974), module.exports) + // src/submodules/sts/STS.ts + var import_smithy_client6 = __nccwpck_require__(21433) -/***/ }), + // src/submodules/sts/commands/AssumeRoleCommand.ts + var import_middleware_endpoint = __nccwpck_require__(23435) + var import_middleware_serde = __nccwpck_require__(94572) + var import_smithy_client4 = __nccwpck_require__(21433) + var import_EndpointParameters = __nccwpck_require__(41765) -/***/ 61442: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + // src/submodules/sts/models/models_0.ts + var import_smithy_client2 = __nccwpck_require__(21433) -"use strict"; + // src/submodules/sts/models/STSServiceException.ts + var import_smithy_client = __nccwpck_require__(21433) + var STSServiceException = class _STSServiceException + extends import_smithy_client.ServiceException + { + static { + __name(this, 'STSServiceException') + } + /** + * @internal + */ + constructor(options) { + super(options) + Object.setPrototypeOf(this, _STSServiceException.prototype) + } + } -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.ChecksumStream = void 0; -const util_base64_1 = __nccwpck_require__(87656); -const stream_1 = __nccwpck_require__(12781); -class ChecksumStream extends stream_1.Duplex { - constructor({ expectedChecksum, checksum, source, checksumSourceLocation, base64Encoder, }) { - var _a, _b; - super(); - if (typeof source.pipe === "function") { - this.source = source; + // src/submodules/sts/models/models_0.ts + var CredentialsFilterSensitiveLog = /* @__PURE__ */ __name( + obj => ({ + ...obj, + ...(obj.SecretAccessKey && { + SecretAccessKey: import_smithy_client2.SENSITIVE_STRING + }) + }), + 'CredentialsFilterSensitiveLog' + ) + var AssumeRoleResponseFilterSensitiveLog = /* @__PURE__ */ __name( + obj => ({ + ...obj, + ...(obj.Credentials && { + Credentials: CredentialsFilterSensitiveLog(obj.Credentials) + }) + }), + 'AssumeRoleResponseFilterSensitiveLog' + ) + var ExpiredTokenException = class _ExpiredTokenException extends STSServiceException { + static { + __name(this, 'ExpiredTokenException') + } + name = 'ExpiredTokenException' + $fault = 'client' + /** + * @internal + */ + constructor(opts) { + super({ + name: 'ExpiredTokenException', + $fault: 'client', + ...opts + }) + Object.setPrototypeOf(this, _ExpiredTokenException.prototype) + } + } + var MalformedPolicyDocumentException = class _MalformedPolicyDocumentException extends STSServiceException { + static { + __name(this, 'MalformedPolicyDocumentException') + } + name = 'MalformedPolicyDocumentException' + $fault = 'client' + /** + * @internal + */ + constructor(opts) { + super({ + name: 'MalformedPolicyDocumentException', + $fault: 'client', + ...opts + }) + Object.setPrototypeOf( + this, + _MalformedPolicyDocumentException.prototype + ) + } + } + var PackedPolicyTooLargeException = class _PackedPolicyTooLargeException extends STSServiceException { + static { + __name(this, 'PackedPolicyTooLargeException') + } + name = 'PackedPolicyTooLargeException' + $fault = 'client' + /** + * @internal + */ + constructor(opts) { + super({ + name: 'PackedPolicyTooLargeException', + $fault: 'client', + ...opts + }) + Object.setPrototypeOf(this, _PackedPolicyTooLargeException.prototype) + } + } + var RegionDisabledException = class _RegionDisabledException extends STSServiceException { + static { + __name(this, 'RegionDisabledException') + } + name = 'RegionDisabledException' + $fault = 'client' + /** + * @internal + */ + constructor(opts) { + super({ + name: 'RegionDisabledException', + $fault: 'client', + ...opts + }) + Object.setPrototypeOf(this, _RegionDisabledException.prototype) + } + } + var IDPRejectedClaimException = class _IDPRejectedClaimException extends STSServiceException { + static { + __name(this, 'IDPRejectedClaimException') + } + name = 'IDPRejectedClaimException' + $fault = 'client' + /** + * @internal + */ + constructor(opts) { + super({ + name: 'IDPRejectedClaimException', + $fault: 'client', + ...opts + }) + Object.setPrototypeOf(this, _IDPRejectedClaimException.prototype) + } + } + var InvalidIdentityTokenException = class _InvalidIdentityTokenException extends STSServiceException { + static { + __name(this, 'InvalidIdentityTokenException') + } + name = 'InvalidIdentityTokenException' + $fault = 'client' + /** + * @internal + */ + constructor(opts) { + super({ + name: 'InvalidIdentityTokenException', + $fault: 'client', + ...opts + }) + Object.setPrototypeOf(this, _InvalidIdentityTokenException.prototype) + } + } + var AssumeRoleWithWebIdentityRequestFilterSensitiveLog = + /* @__PURE__ */ __name( + obj => ({ + ...obj, + ...(obj.WebIdentityToken && { + WebIdentityToken: import_smithy_client2.SENSITIVE_STRING + }) + }), + 'AssumeRoleWithWebIdentityRequestFilterSensitiveLog' + ) + var AssumeRoleWithWebIdentityResponseFilterSensitiveLog = + /* @__PURE__ */ __name( + obj => ({ + ...obj, + ...(obj.Credentials && { + Credentials: CredentialsFilterSensitiveLog(obj.Credentials) + }) + }), + 'AssumeRoleWithWebIdentityResponseFilterSensitiveLog' + ) + var IDPCommunicationErrorException = class _IDPCommunicationErrorException extends STSServiceException { + static { + __name(this, 'IDPCommunicationErrorException') + } + name = 'IDPCommunicationErrorException' + $fault = 'client' + /** + * @internal + */ + constructor(opts) { + super({ + name: 'IDPCommunicationErrorException', + $fault: 'client', + ...opts + }) + Object.setPrototypeOf(this, _IDPCommunicationErrorException.prototype) + } + } + + // src/submodules/sts/protocols/Aws_query.ts + var import_core = __nccwpck_require__(11928) + var import_protocol_http = __nccwpck_require__(18241) + var import_smithy_client3 = __nccwpck_require__(21433) + var se_AssumeRoleCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_AssumeRoleRequest(input, context), + [_A]: _AR, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_AssumeRoleCommand' + ) + var se_AssumeRoleWithWebIdentityCommand = /* @__PURE__ */ __name( + async (input, context) => { + const headers = SHARED_HEADERS + let body + body = buildFormUrlencodedString({ + ...se_AssumeRoleWithWebIdentityRequest(input, context), + [_A]: _ARWWI, + [_V]: _ + }) + return buildHttpRpcRequest(context, headers, '/', void 0, body) + }, + 'se_AssumeRoleWithWebIdentityCommand' + ) + var de_AssumeRoleCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core.parseXmlBody)(output.body, context) + let contents = {} + contents = de_AssumeRoleResponse(data.AssumeRoleResult, context) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_AssumeRoleCommand' + ) + var de_AssumeRoleWithWebIdentityCommand = /* @__PURE__ */ __name( + async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError(output, context) + } + const data = await (0, import_core.parseXmlBody)(output.body, context) + let contents = {} + contents = de_AssumeRoleWithWebIdentityResponse( + data.AssumeRoleWithWebIdentityResult, + context + ) + const response = { + $metadata: deserializeMetadata(output), + ...contents + } + return response + }, + 'de_AssumeRoleWithWebIdentityCommand' + ) + var de_CommandError = /* @__PURE__ */ __name(async (output, context) => { + const parsedOutput = { + ...output, + body: await (0, import_core.parseXmlErrorBody)(output.body, context) + } + const errorCode = loadQueryErrorCode(output, parsedOutput.body) + switch (errorCode) { + case 'ExpiredTokenException': + case 'com.amazonaws.sts#ExpiredTokenException': + throw await de_ExpiredTokenExceptionRes(parsedOutput, context) + case 'MalformedPolicyDocument': + case 'com.amazonaws.sts#MalformedPolicyDocumentException': + throw await de_MalformedPolicyDocumentExceptionRes( + parsedOutput, + context + ) + case 'PackedPolicyTooLarge': + case 'com.amazonaws.sts#PackedPolicyTooLargeException': + throw await de_PackedPolicyTooLargeExceptionRes( + parsedOutput, + context + ) + case 'RegionDisabledException': + case 'com.amazonaws.sts#RegionDisabledException': + throw await de_RegionDisabledExceptionRes(parsedOutput, context) + case 'IDPCommunicationError': + case 'com.amazonaws.sts#IDPCommunicationErrorException': + throw await de_IDPCommunicationErrorExceptionRes( + parsedOutput, + context + ) + case 'IDPRejectedClaim': + case 'com.amazonaws.sts#IDPRejectedClaimException': + throw await de_IDPRejectedClaimExceptionRes(parsedOutput, context) + case 'InvalidIdentityToken': + case 'com.amazonaws.sts#InvalidIdentityTokenException': + throw await de_InvalidIdentityTokenExceptionRes( + parsedOutput, + context + ) + default: + const parsedBody = parsedOutput.body + return throwDefaultError({ + output, + parsedBody: parsedBody.Error, + errorCode + }) } - else { - throw new Error(`@smithy/util-stream: unsupported source type ${(_b = (_a = source === null || source === void 0 ? void 0 : source.constructor) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : source} in ChecksumStream.`); + }, 'de_CommandError') + var de_ExpiredTokenExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const body = parsedOutput.body + const deserialized = de_ExpiredTokenException(body.Error, context) + const exception = new ExpiredTokenException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized + }) + return (0, import_smithy_client3.decorateServiceException)( + exception, + body + ) + }, + 'de_ExpiredTokenExceptionRes' + ) + var de_IDPCommunicationErrorExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const body = parsedOutput.body + const deserialized = de_IDPCommunicationErrorException( + body.Error, + context + ) + const exception = new IDPCommunicationErrorException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized + }) + return (0, import_smithy_client3.decorateServiceException)( + exception, + body + ) + }, + 'de_IDPCommunicationErrorExceptionRes' + ) + var de_IDPRejectedClaimExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const body = parsedOutput.body + const deserialized = de_IDPRejectedClaimException(body.Error, context) + const exception = new IDPRejectedClaimException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized + }) + return (0, import_smithy_client3.decorateServiceException)( + exception, + body + ) + }, + 'de_IDPRejectedClaimExceptionRes' + ) + var de_InvalidIdentityTokenExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const body = parsedOutput.body + const deserialized = de_InvalidIdentityTokenException( + body.Error, + context + ) + const exception = new InvalidIdentityTokenException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized + }) + return (0, import_smithy_client3.decorateServiceException)( + exception, + body + ) + }, + 'de_InvalidIdentityTokenExceptionRes' + ) + var de_MalformedPolicyDocumentExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const body = parsedOutput.body + const deserialized = de_MalformedPolicyDocumentException( + body.Error, + context + ) + const exception = new MalformedPolicyDocumentException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized + }) + return (0, import_smithy_client3.decorateServiceException)( + exception, + body + ) + }, + 'de_MalformedPolicyDocumentExceptionRes' + ) + var de_PackedPolicyTooLargeExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const body = parsedOutput.body + const deserialized = de_PackedPolicyTooLargeException( + body.Error, + context + ) + const exception = new PackedPolicyTooLargeException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized + }) + return (0, import_smithy_client3.decorateServiceException)( + exception, + body + ) + }, + 'de_PackedPolicyTooLargeExceptionRes' + ) + var de_RegionDisabledExceptionRes = /* @__PURE__ */ __name( + async (parsedOutput, context) => { + const body = parsedOutput.body + const deserialized = de_RegionDisabledException(body.Error, context) + const exception = new RegionDisabledException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized + }) + return (0, import_smithy_client3.decorateServiceException)( + exception, + body + ) + }, + 'de_RegionDisabledExceptionRes' + ) + var se_AssumeRoleRequest = /* @__PURE__ */ __name((input, context) => { + const entries = {} + if (input[_RA] != null) { + entries[_RA] = input[_RA] + } + if (input[_RSN] != null) { + entries[_RSN] = input[_RSN] + } + if (input[_PA] != null) { + const memberEntries = se_policyDescriptorListType(input[_PA], context) + if (input[_PA]?.length === 0) { + entries.PolicyArns = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `PolicyArns.${key}` + entries[loc] = value + }) } - this.base64Encoder = base64Encoder !== null && base64Encoder !== void 0 ? base64Encoder : util_base64_1.toBase64; - this.expectedChecksum = expectedChecksum; - this.checksum = checksum; - this.checksumSourceLocation = checksumSourceLocation; - this.source.pipe(this); - } - _read(size) { } - _write(chunk, encoding, callback) { - try { - this.checksum.update(chunk); - this.push(chunk); + if (input[_P] != null) { + entries[_P] = input[_P] } - catch (e) { - return callback(e); + if (input[_DS] != null) { + entries[_DS] = input[_DS] } - return callback(); - } - async _final(callback) { - try { - const digest = await this.checksum.digest(); - const received = this.base64Encoder(digest); - if (this.expectedChecksum !== received) { - return callback(new Error(`Checksum mismatch: expected "${this.expectedChecksum}" but received "${received}"` + - ` in response header "${this.checksumSourceLocation}".`)); - } + if (input[_T] != null) { + const memberEntries = se_tagListType(input[_T], context) + if (input[_T]?.length === 0) { + entries.Tags = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `Tags.${key}` + entries[loc] = value + }) } - catch (e) { - return callback(e); + if (input[_TTK] != null) { + const memberEntries = se_tagKeyListType(input[_TTK], context) + if (input[_TTK]?.length === 0) { + entries.TransitiveTagKeys = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `TransitiveTagKeys.${key}` + entries[loc] = value + }) } - this.push(null); - return callback(); - } -} -exports.ChecksumStream = ChecksumStream; - - -/***/ }), - -/***/ 35218: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.createChecksumStream = void 0; -const util_base64_1 = __nccwpck_require__(87656); -const stream_type_check_1 = __nccwpck_require__(8639); -const ChecksumStream_browser_1 = __nccwpck_require__(83725); -const createChecksumStream = ({ expectedChecksum, checksum, source, checksumSourceLocation, base64Encoder, }) => { - var _a, _b; - if (!(0, stream_type_check_1.isReadableStream)(source)) { - throw new Error(`@smithy/util-stream: unsupported source type ${(_b = (_a = source === null || source === void 0 ? void 0 : source.constructor) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : source} in ChecksumStream.`); - } - const encoder = base64Encoder !== null && base64Encoder !== void 0 ? base64Encoder : util_base64_1.toBase64; - if (typeof TransformStream !== "function") { - throw new Error("@smithy/util-stream: unable to instantiate ChecksumStream because API unavailable: ReadableStream/TransformStream."); - } - const transform = new TransformStream({ - start() { }, - async transform(chunk, controller) { - checksum.update(chunk); - controller.enqueue(chunk); - }, - async flush(controller) { - const digest = await checksum.digest(); - const received = encoder(digest); - if (expectedChecksum !== received) { - const error = new Error(`Checksum mismatch: expected "${expectedChecksum}" but received "${received}"` + - ` in response header "${checksumSourceLocation}".`); - controller.error(error); + if (input[_EI] != null) { + entries[_EI] = input[_EI] + } + if (input[_SN] != null) { + entries[_SN] = input[_SN] + } + if (input[_TC] != null) { + entries[_TC] = input[_TC] + } + if (input[_SI] != null) { + entries[_SI] = input[_SI] + } + if (input[_PC] != null) { + const memberEntries = se_ProvidedContextsListType(input[_PC], context) + if (input[_PC]?.length === 0) { + entries.ProvidedContexts = [] + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `ProvidedContexts.${key}` + entries[loc] = value + }) + } + return entries + }, 'se_AssumeRoleRequest') + var se_AssumeRoleWithWebIdentityRequest = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + if (input[_RA] != null) { + entries[_RA] = input[_RA] + } + if (input[_RSN] != null) { + entries[_RSN] = input[_RSN] + } + if (input[_WIT] != null) { + entries[_WIT] = input[_WIT] + } + if (input[_PI] != null) { + entries[_PI] = input[_PI] + } + if (input[_PA] != null) { + const memberEntries = se_policyDescriptorListType( + input[_PA], + context + ) + if (input[_PA]?.length === 0) { + entries.PolicyArns = [] } - else { - controller.terminate(); + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `PolicyArns.${key}` + entries[loc] = value + }) + } + if (input[_P] != null) { + entries[_P] = input[_P] + } + if (input[_DS] != null) { + entries[_DS] = input[_DS] + } + return entries + }, + 'se_AssumeRoleWithWebIdentityRequest' + ) + var se_policyDescriptorListType = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + let counter = 1 + for (const entry of input) { + if (entry === null) { + continue } + const memberEntries = se_PolicyDescriptorType(entry, context) + Object.entries(memberEntries).forEach(([key, value]) => { + entries[`member.${counter}.${key}`] = value + }) + counter++ + } + return entries }, - }); - source.pipeThrough(transform); - const readable = transform.readable; - Object.setPrototypeOf(readable, ChecksumStream_browser_1.ChecksumStream.prototype); - return readable; -}; -exports.createChecksumStream = createChecksumStream; - - -/***/ }), - -/***/ 19112: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.createChecksumStream = void 0; -const stream_type_check_1 = __nccwpck_require__(8639); -const ChecksumStream_1 = __nccwpck_require__(61442); -const createChecksumStream_browser_1 = __nccwpck_require__(35218); -function createChecksumStream(init) { - if (typeof ReadableStream === "function" && (0, stream_type_check_1.isReadableStream)(init.source)) { - return (0, createChecksumStream_browser_1.createChecksumStream)(init); - } - return new ChecksumStream_1.ChecksumStream(init); -} -exports.createChecksumStream = createChecksumStream; - - -/***/ }), - -/***/ 50343: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.createBufferedReadable = void 0; -const node_stream_1 = __nccwpck_require__(84492); -const ByteArrayCollector_1 = __nccwpck_require__(67487); -const createBufferedReadableStream_1 = __nccwpck_require__(86601); -const stream_type_check_1 = __nccwpck_require__(8639); -function createBufferedReadable(upstream, size, logger) { - if ((0, stream_type_check_1.isReadableStream)(upstream)) { - return (0, createBufferedReadableStream_1.createBufferedReadableStream)(upstream, size, logger); - } - const downstream = new node_stream_1.Readable({ read() { } }); - let streamBufferingLoggedWarning = false; - let bytesSeen = 0; - const buffers = [ - "", - new ByteArrayCollector_1.ByteArrayCollector((size) => new Uint8Array(size)), - new ByteArrayCollector_1.ByteArrayCollector((size) => Buffer.from(new Uint8Array(size))), - ]; - let mode = -1; - upstream.on("data", (chunk) => { - const chunkMode = (0, createBufferedReadableStream_1.modeOf)(chunk, true); - if (mode !== chunkMode) { - if (mode >= 0) { - downstream.push((0, createBufferedReadableStream_1.flush)(buffers, mode)); + 'se_policyDescriptorListType' + ) + var se_PolicyDescriptorType = /* @__PURE__ */ __name((input, context) => { + const entries = {} + if (input[_a] != null) { + entries[_a] = input[_a] + } + return entries + }, 'se_PolicyDescriptorType') + var se_ProvidedContext = /* @__PURE__ */ __name((input, context) => { + const entries = {} + if (input[_PAr] != null) { + entries[_PAr] = input[_PAr] + } + if (input[_CA] != null) { + entries[_CA] = input[_CA] + } + return entries + }, 'se_ProvidedContext') + var se_ProvidedContextsListType = /* @__PURE__ */ __name( + (input, context) => { + const entries = {} + let counter = 1 + for (const entry of input) { + if (entry === null) { + continue } - mode = chunkMode; + const memberEntries = se_ProvidedContext(entry, context) + Object.entries(memberEntries).forEach(([key, value]) => { + entries[`member.${counter}.${key}`] = value + }) + counter++ + } + return entries + }, + 'se_ProvidedContextsListType' + ) + var se_Tag = /* @__PURE__ */ __name((input, context) => { + const entries = {} + if (input[_K] != null) { + entries[_K] = input[_K] + } + if (input[_Va] != null) { + entries[_Va] = input[_Va] + } + return entries + }, 'se_Tag') + var se_tagKeyListType = /* @__PURE__ */ __name((input, context) => { + const entries = {} + let counter = 1 + for (const entry of input) { + if (entry === null) { + continue + } + entries[`member.${counter}`] = entry + counter++ + } + return entries + }, 'se_tagKeyListType') + var se_tagListType = /* @__PURE__ */ __name((input, context) => { + const entries = {} + let counter = 1 + for (const entry of input) { + if (entry === null) { + continue + } + const memberEntries = se_Tag(entry, context) + Object.entries(memberEntries).forEach(([key, value]) => { + entries[`member.${counter}.${key}`] = value + }) + counter++ + } + return entries + }, 'se_tagListType') + var de_AssumedRoleUser = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_ARI] != null) { + contents[_ARI] = (0, import_smithy_client3.expectString)(output[_ARI]) + } + if (output[_Ar] != null) { + contents[_Ar] = (0, import_smithy_client3.expectString)(output[_Ar]) + } + return contents + }, 'de_AssumedRoleUser') + var de_AssumeRoleResponse = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_C] != null) { + contents[_C] = de_Credentials(output[_C], context) + } + if (output[_ARU] != null) { + contents[_ARU] = de_AssumedRoleUser(output[_ARU], context) + } + if (output[_PPS] != null) { + contents[_PPS] = (0, import_smithy_client3.strictParseInt32)( + output[_PPS] + ) } - if (mode === -1) { - downstream.push(chunk); - return; + if (output[_SI] != null) { + contents[_SI] = (0, import_smithy_client3.expectString)(output[_SI]) } - const chunkSize = (0, createBufferedReadableStream_1.sizeOf)(chunk); - bytesSeen += chunkSize; - const bufferSize = (0, createBufferedReadableStream_1.sizeOf)(buffers[mode]); - if (chunkSize >= size && bufferSize === 0) { - downstream.push(chunk); + return contents + }, 'de_AssumeRoleResponse') + var de_AssumeRoleWithWebIdentityResponse = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_C] != null) { + contents[_C] = de_Credentials(output[_C], context) + } + if (output[_SFWIT] != null) { + contents[_SFWIT] = (0, import_smithy_client3.expectString)( + output[_SFWIT] + ) + } + if (output[_ARU] != null) { + contents[_ARU] = de_AssumedRoleUser(output[_ARU], context) + } + if (output[_PPS] != null) { + contents[_PPS] = (0, import_smithy_client3.strictParseInt32)( + output[_PPS] + ) + } + if (output[_Pr] != null) { + contents[_Pr] = (0, import_smithy_client3.expectString)(output[_Pr]) + } + if (output[_Au] != null) { + contents[_Au] = (0, import_smithy_client3.expectString)(output[_Au]) + } + if (output[_SI] != null) { + contents[_SI] = (0, import_smithy_client3.expectString)(output[_SI]) + } + return contents + }, + 'de_AssumeRoleWithWebIdentityResponse' + ) + var de_Credentials = /* @__PURE__ */ __name((output, context) => { + const contents = {} + if (output[_AKI] != null) { + contents[_AKI] = (0, import_smithy_client3.expectString)(output[_AKI]) } - else { - const newSize = (0, createBufferedReadableStream_1.merge)(buffers, mode, chunk); - if (!streamBufferingLoggedWarning && bytesSeen > size * 2) { - streamBufferingLoggedWarning = true; - logger === null || logger === void 0 ? void 0 : logger.warn(`@smithy/util-stream - stream chunk size ${chunkSize} is below threshold of ${size}, automatically buffering.`); - } - if (newSize >= size) { - downstream.push((0, createBufferedReadableStream_1.flush)(buffers, mode)); - } + if (output[_SAK] != null) { + contents[_SAK] = (0, import_smithy_client3.expectString)(output[_SAK]) } - }); - upstream.on("end", () => { - if (mode !== -1) { - const remainder = (0, createBufferedReadableStream_1.flush)(buffers, mode); - if ((0, createBufferedReadableStream_1.sizeOf)(remainder) > 0) { - downstream.push(remainder); - } + if (output[_ST] != null) { + contents[_ST] = (0, import_smithy_client3.expectString)(output[_ST]) } - downstream.push(null); - }); - return downstream; -} -exports.createBufferedReadable = createBufferedReadable; - - -/***/ }), - -/***/ 86601: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.modeOf = exports.sizeOf = exports.flush = exports.merge = exports.createBufferedReadable = exports.createBufferedReadableStream = void 0; -const ByteArrayCollector_1 = __nccwpck_require__(67487); -function createBufferedReadableStream(upstream, size, logger) { - const reader = upstream.getReader(); - let streamBufferingLoggedWarning = false; - let bytesSeen = 0; - const buffers = ["", new ByteArrayCollector_1.ByteArrayCollector((size) => new Uint8Array(size))]; - let mode = -1; - const pull = async (controller) => { - const { value, done } = await reader.read(); - const chunk = value; - if (done) { - if (mode !== -1) { - const remainder = flush(buffers, mode); - if (sizeOf(remainder) > 0) { - controller.enqueue(remainder); - } - } - controller.close(); + if (output[_E] != null) { + contents[_E] = (0, import_smithy_client3.expectNonNull)( + (0, import_smithy_client3.parseRfc3339DateTimeWithOffset)( + output[_E] + ) + ) } - else { - const chunkMode = modeOf(chunk, false); - if (mode !== chunkMode) { - if (mode >= 0) { - controller.enqueue(flush(buffers, mode)); - } - mode = chunkMode; - } - if (mode === -1) { - controller.enqueue(chunk); - return; - } - const chunkSize = sizeOf(chunk); - bytesSeen += chunkSize; - const bufferSize = sizeOf(buffers[mode]); - if (chunkSize >= size && bufferSize === 0) { - controller.enqueue(chunk); - } - else { - const newSize = merge(buffers, mode, chunk); - if (!streamBufferingLoggedWarning && bytesSeen > size * 2) { - streamBufferingLoggedWarning = true; - logger === null || logger === void 0 ? void 0 : logger.warn(`@smithy/util-stream - stream chunk size ${chunkSize} is below threshold of ${size}, automatically buffering.`); - } - if (newSize >= size) { - controller.enqueue(flush(buffers, mode)); - } - else { - await pull(controller); - } - } + return contents + }, 'de_Credentials') + var de_ExpiredTokenException = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_m] != null) { + contents[_m] = (0, import_smithy_client3.expectString)(output[_m]) + } + return contents + }, + 'de_ExpiredTokenException' + ) + var de_IDPCommunicationErrorException = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_m] != null) { + contents[_m] = (0, import_smithy_client3.expectString)(output[_m]) + } + return contents + }, + 'de_IDPCommunicationErrorException' + ) + var de_IDPRejectedClaimException = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_m] != null) { + contents[_m] = (0, import_smithy_client3.expectString)(output[_m]) + } + return contents + }, + 'de_IDPRejectedClaimException' + ) + var de_InvalidIdentityTokenException = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_m] != null) { + contents[_m] = (0, import_smithy_client3.expectString)(output[_m]) + } + return contents + }, + 'de_InvalidIdentityTokenException' + ) + var de_MalformedPolicyDocumentException = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_m] != null) { + contents[_m] = (0, import_smithy_client3.expectString)(output[_m]) + } + return contents + }, + 'de_MalformedPolicyDocumentException' + ) + var de_PackedPolicyTooLargeException = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_m] != null) { + contents[_m] = (0, import_smithy_client3.expectString)(output[_m]) + } + return contents + }, + 'de_PackedPolicyTooLargeException' + ) + var de_RegionDisabledException = /* @__PURE__ */ __name( + (output, context) => { + const contents = {} + if (output[_m] != null) { + contents[_m] = (0, import_smithy_client3.expectString)(output[_m]) + } + return contents + }, + 'de_RegionDisabledException' + ) + var deserializeMetadata = /* @__PURE__ */ __name( + output => ({ + httpStatusCode: output.statusCode, + requestId: + output.headers['x-amzn-requestid'] ?? + output.headers['x-amzn-request-id'] ?? + output.headers['x-amz-request-id'], + extendedRequestId: output.headers['x-amz-id-2'], + cfId: output.headers['x-amz-cf-id'] + }), + 'deserializeMetadata' + ) + var throwDefaultError = (0, import_smithy_client3.withBaseException)( + STSServiceException + ) + var buildHttpRpcRequest = /* @__PURE__ */ __name( + async (context, headers, path, resolvedHostname, body) => { + const { + hostname, + protocol = 'https', + port, + path: basePath + } = await context.endpoint() + const contents = { + protocol, + hostname, + port, + method: 'POST', + path: basePath.endsWith('/') + ? basePath.slice(0, -1) + path + : basePath + path, + headers + } + if (resolvedHostname !== void 0) { + contents.hostname = resolvedHostname + } + if (body !== void 0) { + contents.body = body + } + return new import_protocol_http.HttpRequest(contents) + }, + 'buildHttpRpcRequest' + ) + var SHARED_HEADERS = { + 'content-type': 'application/x-www-form-urlencoded' + } + var _ = '2011-06-15' + var _A = 'Action' + var _AKI = 'AccessKeyId' + var _AR = 'AssumeRole' + var _ARI = 'AssumedRoleId' + var _ARU = 'AssumedRoleUser' + var _ARWWI = 'AssumeRoleWithWebIdentity' + var _Ar = 'Arn' + var _Au = 'Audience' + var _C = 'Credentials' + var _CA = 'ContextAssertion' + var _DS = 'DurationSeconds' + var _E = 'Expiration' + var _EI = 'ExternalId' + var _K = 'Key' + var _P = 'Policy' + var _PA = 'PolicyArns' + var _PAr = 'ProviderArn' + var _PC = 'ProvidedContexts' + var _PI = 'ProviderId' + var _PPS = 'PackedPolicySize' + var _Pr = 'Provider' + var _RA = 'RoleArn' + var _RSN = 'RoleSessionName' + var _SAK = 'SecretAccessKey' + var _SFWIT = 'SubjectFromWebIdentityToken' + var _SI = 'SourceIdentity' + var _SN = 'SerialNumber' + var _ST = 'SessionToken' + var _T = 'Tags' + var _TC = 'TokenCode' + var _TTK = 'TransitiveTagKeys' + var _V = 'Version' + var _Va = 'Value' + var _WIT = 'WebIdentityToken' + var _a = 'arn' + var _m = 'message' + var buildFormUrlencodedString = /* @__PURE__ */ __name( + formEntries => + Object.entries(formEntries) + .map( + ([key, value]) => + (0, import_smithy_client3.extendedEncodeURIComponent)(key) + + '=' + + (0, import_smithy_client3.extendedEncodeURIComponent)(value) + ) + .join('&'), + 'buildFormUrlencodedString' + ) + var loadQueryErrorCode = /* @__PURE__ */ __name((output, data) => { + if (data.Error?.Code !== void 0) { + return data.Error.Code + } + if (output.statusCode == 404) { + return 'NotFound' + } + }, 'loadQueryErrorCode') + + // src/submodules/sts/commands/AssumeRoleCommand.ts + var AssumeRoleCommand = class extends import_smithy_client4.Command.classBuilder() + .ep(import_EndpointParameters.commonParams) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('AWSSecurityTokenServiceV20110615', 'AssumeRole', {}) + .n('STSClient', 'AssumeRoleCommand') + .f(void 0, AssumeRoleResponseFilterSensitiveLog) + .ser(se_AssumeRoleCommand) + .de(de_AssumeRoleCommand) + .build() { + static { + __name(this, 'AssumeRoleCommand') + } + } + + // src/submodules/sts/commands/AssumeRoleWithWebIdentityCommand.ts + var import_middleware_endpoint2 = __nccwpck_require__(23435) + var import_middleware_serde2 = __nccwpck_require__(94572) + var import_smithy_client5 = __nccwpck_require__(21433) + var import_EndpointParameters2 = __nccwpck_require__(41765) + var AssumeRoleWithWebIdentityCommand = class extends import_smithy_client5.Command.classBuilder() + .ep(import_EndpointParameters2.commonParams) + .m(function (Command, cs, config, o) { + return [ + (0, import_middleware_serde2.getSerdePlugin)( + config, + this.serialize, + this.deserialize + ), + (0, import_middleware_endpoint2.getEndpointPlugin)( + config, + Command.getEndpointParameterInstructions() + ) + ] + }) + .s('AWSSecurityTokenServiceV20110615', 'AssumeRoleWithWebIdentity', {}) + .n('STSClient', 'AssumeRoleWithWebIdentityCommand') + .f( + AssumeRoleWithWebIdentityRequestFilterSensitiveLog, + AssumeRoleWithWebIdentityResponseFilterSensitiveLog + ) + .ser(se_AssumeRoleWithWebIdentityCommand) + .de(de_AssumeRoleWithWebIdentityCommand) + .build() { + static { + __name(this, 'AssumeRoleWithWebIdentityCommand') } - }; - return new ReadableStream({ - pull, - }); -} -exports.createBufferedReadableStream = createBufferedReadableStream; -exports.createBufferedReadable = createBufferedReadableStream; -function merge(buffers, mode, chunk) { - switch (mode) { - case 0: - buffers[0] += chunk; - return sizeOf(buffers[0]); - case 1: - case 2: - buffers[mode].push(chunk); - return sizeOf(buffers[mode]); - } -} -exports.merge = merge; -function flush(buffers, mode) { - switch (mode) { - case 0: - const s = buffers[0]; - buffers[0] = ""; - return s; - case 1: - case 2: - return buffers[mode].flush(); - } - throw new Error(`@smithy/util-stream - invalid index ${mode} given to flush()`); -} -exports.flush = flush; -function sizeOf(chunk) { - var _a, _b; - return (_b = (_a = chunk === null || chunk === void 0 ? void 0 : chunk.byteLength) !== null && _a !== void 0 ? _a : chunk === null || chunk === void 0 ? void 0 : chunk.length) !== null && _b !== void 0 ? _b : 0; -} -exports.sizeOf = sizeOf; -function modeOf(chunk, allowBuffer = true) { - if (allowBuffer && typeof Buffer !== "undefined" && chunk instanceof Buffer) { - return 2; - } - if (chunk instanceof Uint8Array) { - return 1; - } - if (typeof chunk === "string") { - return 0; - } - return -1; -} -exports.modeOf = modeOf; - - -/***/ }), - -/***/ 2411: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getAwsChunkedEncodingStream = void 0; -const stream_1 = __nccwpck_require__(12781); -const getAwsChunkedEncodingStream = (readableStream, options) => { - const { base64Encoder, bodyLengthChecker, checksumAlgorithmFn, checksumLocationName, streamHasher } = options; - const checksumRequired = base64Encoder !== undefined && - checksumAlgorithmFn !== undefined && - checksumLocationName !== undefined && - streamHasher !== undefined; - const digest = checksumRequired ? streamHasher(checksumAlgorithmFn, readableStream) : undefined; - const awsChunkedEncodingStream = new stream_1.Readable({ read: () => { } }); - readableStream.on("data", (data) => { - const length = bodyLengthChecker(data) || 0; - awsChunkedEncodingStream.push(`${length.toString(16)}\r\n`); - awsChunkedEncodingStream.push(data); - awsChunkedEncodingStream.push("\r\n"); - }); - readableStream.on("end", async () => { - awsChunkedEncodingStream.push(`0\r\n`); - if (checksumRequired) { - const checksum = base64Encoder(await digest); - awsChunkedEncodingStream.push(`${checksumLocationName}:${checksum}\r\n`); - awsChunkedEncodingStream.push(`\r\n`); - } - awsChunkedEncodingStream.push(null); - }); - return awsChunkedEncodingStream; -}; -exports.getAwsChunkedEncodingStream = getAwsChunkedEncodingStream; - - -/***/ }), - -/***/ 58505: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.headStream = void 0; -async function headStream(stream, bytes) { - var _a; - let byteLengthCounter = 0; - const chunks = []; - const reader = stream.getReader(); - let isDone = false; - while (!isDone) { - const { done, value } = await reader.read(); - if (value) { - chunks.push(value); - byteLengthCounter += (_a = value === null || value === void 0 ? void 0 : value.byteLength) !== null && _a !== void 0 ? _a : 0; - } - if (byteLengthCounter >= bytes) { - break; - } - isDone = done; - } - reader.releaseLock(); - const collected = new Uint8Array(Math.min(bytes, byteLengthCounter)); - let offset = 0; - for (const chunk of chunks) { - if (chunk.byteLength > collected.byteLength - offset) { - collected.set(chunk.subarray(0, collected.byteLength - offset), offset); - break; - } - else { - collected.set(chunk, offset); - } - offset += chunk.length; - } - return collected; -} -exports.headStream = headStream; - - -/***/ }), + } -/***/ 23673: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + // src/submodules/sts/STS.ts + var import_STSClient = __nccwpck_require__(68974) + var commands = { + AssumeRoleCommand, + AssumeRoleWithWebIdentityCommand + } + var STS = class extends import_STSClient.STSClient { + static { + __name(this, 'STS') + } + } + ;(0, import_smithy_client6.createAggregatedClient)(commands, STS) -"use strict"; + // src/submodules/sts/index.ts + var import_EndpointParameters3 = __nccwpck_require__(41765) -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.headStream = void 0; -const stream_1 = __nccwpck_require__(12781); -const headStream_browser_1 = __nccwpck_require__(58505); -const stream_type_check_1 = __nccwpck_require__(8639); -const headStream = (stream, bytes) => { - if ((0, stream_type_check_1.isReadableStream)(stream)) { - return (0, headStream_browser_1.headStream)(stream, bytes); - } - return new Promise((resolve, reject) => { - const collector = new Collector(); - collector.limit = bytes; - stream.pipe(collector); - stream.on("error", (err) => { - collector.end(); - reject(err); - }); - collector.on("error", reject); - collector.on("finish", function () { - const bytes = new Uint8Array(Buffer.concat(this.buffers)); - resolve(bytes); - }); - }); -}; -exports.headStream = headStream; -class Collector extends stream_1.Writable { - constructor() { - super(...arguments); - this.buffers = []; - this.limit = Infinity; - this.bytesBuffered = 0; - } - _write(chunk, encoding, callback) { - var _a; - this.buffers.push(chunk); - this.bytesBuffered += (_a = chunk.byteLength) !== null && _a !== void 0 ? _a : 0; - if (this.bytesBuffered >= this.limit) { - const excess = this.bytesBuffered - this.limit; - const tailBuffer = this.buffers[this.buffers.length - 1]; - this.buffers[this.buffers.length - 1] = tailBuffer.subarray(0, tailBuffer.byteLength - excess); - this.emit("finish"); - } - callback(); - } -} - - -/***/ }), - -/***/ 77846: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - Uint8ArrayBlobAdapter: () => Uint8ArrayBlobAdapter -}); -module.exports = __toCommonJS(src_exports); - -// src/blob/transforms.ts -var import_util_base64 = __nccwpck_require__(87656); -var import_util_utf8 = __nccwpck_require__(94377); -function transformToString(payload, encoding = "utf-8") { - if (encoding === "base64") { - return (0, import_util_base64.toBase64)(payload); - } - return (0, import_util_utf8.toUtf8)(payload); -} -__name(transformToString, "transformToString"); -function transformFromString(str, encoding) { - if (encoding === "base64") { - return Uint8ArrayBlobAdapter.mutate((0, import_util_base64.fromBase64)(str)); - } - return Uint8ArrayBlobAdapter.mutate((0, import_util_utf8.fromUtf8)(str)); -} -__name(transformFromString, "transformFromString"); - -// src/blob/Uint8ArrayBlobAdapter.ts -var Uint8ArrayBlobAdapter = class _Uint8ArrayBlobAdapter extends Uint8Array { - static { - __name(this, "Uint8ArrayBlobAdapter"); - } - /** - * @param source - such as a string or Stream. - * @returns a new Uint8ArrayBlobAdapter extending Uint8Array. - */ - static fromString(source, encoding = "utf-8") { - switch (typeof source) { - case "string": - return transformFromString(source, encoding); - default: - throw new Error(`Unsupported conversion from ${typeof source} to Uint8ArrayBlobAdapter.`); - } - } - /** - * @param source - Uint8Array to be mutated. - * @returns the same Uint8Array but with prototype switched to Uint8ArrayBlobAdapter. - */ - static mutate(source) { - Object.setPrototypeOf(source, _Uint8ArrayBlobAdapter.prototype); - return source; - } - /** - * @param encoding - default 'utf-8'. - * @returns the blob as string. - */ - transformToString(encoding = "utf-8") { - return transformToString(this, encoding); - } -}; - -// src/index.ts -__reExport(src_exports, __nccwpck_require__(61442), module.exports); -__reExport(src_exports, __nccwpck_require__(19112), module.exports); -__reExport(src_exports, __nccwpck_require__(50343), module.exports); -__reExport(src_exports, __nccwpck_require__(2411), module.exports); -__reExport(src_exports, __nccwpck_require__(23673), module.exports); -__reExport(src_exports, __nccwpck_require__(29415), module.exports); -__reExport(src_exports, __nccwpck_require__(65494), module.exports); -__reExport(src_exports, __nccwpck_require__(8639), module.exports); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 11775: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.sdkStreamMixin = void 0; -const fetch_http_handler_1 = __nccwpck_require__(19464); -const util_base64_1 = __nccwpck_require__(87656); -const util_hex_encoding_1 = __nccwpck_require__(82143); -const util_utf8_1 = __nccwpck_require__(94377); -const stream_type_check_1 = __nccwpck_require__(8639); -const ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED = "The stream has already been transformed."; -const sdkStreamMixin = (stream) => { - var _a, _b; - if (!isBlobInstance(stream) && !(0, stream_type_check_1.isReadableStream)(stream)) { - 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; - throw new Error(`Unexpected stream implementation, expect Blob or ReadableStream, got ${name}`); - } - let transformed = false; - const transformToByteArray = async () => { - if (transformed) { - throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED); - } - transformed = true; - return await (0, fetch_http_handler_1.streamCollector)(stream); - }; - const blobToWebStream = (blob) => { - if (typeof blob.stream !== "function") { - throw new Error("Cannot transform payload Blob to web stream. Please make sure the Blob.stream() is polyfilled.\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"); - } - return blob.stream(); - }; - return Object.assign(stream, { - transformToByteArray: transformToByteArray, - transformToString: async (encoding) => { - const buf = await transformToByteArray(); - if (encoding === "base64") { - return (0, util_base64_1.toBase64)(buf); - } - else if (encoding === "hex") { - return (0, util_hex_encoding_1.toHex)(buf); - } - else if (encoding === undefined || encoding === "utf8" || encoding === "utf-8") { - return (0, util_utf8_1.toUtf8)(buf); - } - else if (typeof TextDecoder === "function") { - return new TextDecoder(encoding).decode(buf); - } - else { - throw new Error("TextDecoder is not available, please make sure polyfill is provided."); + // src/submodules/sts/defaultStsRoleAssumers.ts + var import_client = __nccwpck_require__(83526) + var ASSUME_ROLE_DEFAULT_REGION = 'us-east-1' + var getAccountIdFromAssumedRoleUser = /* @__PURE__ */ __name( + assumedRoleUser => { + if (typeof assumedRoleUser?.Arn === 'string') { + const arnComponents = assumedRoleUser.Arn.split(':') + if (arnComponents.length > 4 && arnComponents[4] !== '') { + return arnComponents[4] } + } + return void 0 }, - transformToWebStream: () => { - if (transformed) { - throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED); - } - transformed = true; - if (isBlobInstance(stream)) { - return blobToWebStream(stream); + 'getAccountIdFromAssumedRoleUser' + ) + var resolveRegion = /* @__PURE__ */ __name( + async (_region, _parentRegion, credentialProviderLogger) => { + const region = + typeof _region === 'function' ? await _region() : _region + const parentRegion = + typeof _parentRegion === 'function' + ? await _parentRegion() + : _parentRegion + credentialProviderLogger?.debug?.( + '@aws-sdk/client-sts::resolveRegion', + 'accepting first of:', + `${region} (provider)`, + `${parentRegion} (parent client)`, + `${ASSUME_ROLE_DEFAULT_REGION} (STS default)` + ) + return region ?? parentRegion ?? ASSUME_ROLE_DEFAULT_REGION + }, + 'resolveRegion' + ) + var getDefaultRoleAssumer = /* @__PURE__ */ __name( + (stsOptions, STSClient3) => { + let stsClient + let closureSourceCreds + return async (sourceCreds, params) => { + closureSourceCreds = sourceCreds + if (!stsClient) { + const { + logger = stsOptions?.parentClientConfig?.logger, + region, + requestHandler = stsOptions?.parentClientConfig?.requestHandler, + credentialProviderLogger + } = stsOptions + const resolvedRegion = await resolveRegion( + region, + stsOptions?.parentClientConfig?.region, + credentialProviderLogger + ) + const isCompatibleRequestHandler = !isH2(requestHandler) + stsClient = new STSClient3({ + profile: stsOptions?.parentClientConfig?.profile, + // A hack to make sts client uses the credential in current closure. + credentialDefaultProvider: /* @__PURE__ */ __name( + () => async () => closureSourceCreds, + 'credentialDefaultProvider' + ), + region: resolvedRegion, + requestHandler: isCompatibleRequestHandler + ? requestHandler + : void 0, + logger + }) } - else if ((0, stream_type_check_1.isReadableStream)(stream)) { - return stream; + const { + Credentials: Credentials2, + AssumedRoleUser: AssumedRoleUser2 + } = await stsClient.send(new AssumeRoleCommand(params)) + if ( + !Credentials2 || + !Credentials2.AccessKeyId || + !Credentials2.SecretAccessKey + ) { + throw new Error( + `Invalid response from STS.assumeRole call with role ${params.RoleArn}` + ) } - else { - throw new Error(`Cannot transform payload to web stream, got ${stream}`); + const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser2) + const credentials = { + accessKeyId: Credentials2.AccessKeyId, + secretAccessKey: Credentials2.SecretAccessKey, + sessionToken: Credentials2.SessionToken, + expiration: Credentials2.Expiration, + // TODO(credentialScope): access normally when shape is updated. + ...(Credentials2.CredentialScope && { + credentialScope: Credentials2.CredentialScope + }), + ...(accountId && { accountId }) } + ;(0, import_client.setCredentialFeature)( + credentials, + 'CREDENTIALS_STS_ASSUME_ROLE', + 'i' + ) + return credentials + } }, - }); -}; -exports.sdkStreamMixin = sdkStreamMixin; -const isBlobInstance = (stream) => typeof Blob === "function" && stream instanceof Blob; - - -/***/ }), - -/***/ 29415: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.sdkStreamMixin = void 0; -const node_http_handler_1 = __nccwpck_require__(55239); -const util_buffer_from_1 = __nccwpck_require__(48928); -const stream_1 = __nccwpck_require__(12781); -const sdk_stream_mixin_browser_1 = __nccwpck_require__(11775); -const ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED = "The stream has already been transformed."; -const sdkStreamMixin = (stream) => { - var _a, _b; - if (!(stream instanceof stream_1.Readable)) { - try { - return (0, sdk_stream_mixin_browser_1.sdkStreamMixin)(stream); - } - catch (e) { - 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; - throw new Error(`Unexpected stream implementation, expect Stream.Readable instance, got ${name}`); - } - } - let transformed = false; - const transformToByteArray = async () => { - if (transformed) { - throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED); - } - transformed = true; - return await (0, node_http_handler_1.streamCollector)(stream); - }; - return Object.assign(stream, { - transformToByteArray, - transformToString: async (encoding) => { - const buf = await transformToByteArray(); - if (encoding === undefined || Buffer.isEncoding(encoding)) { - return (0, util_buffer_from_1.fromArrayBuffer)(buf.buffer, buf.byteOffset, buf.byteLength).toString(encoding); + 'getDefaultRoleAssumer' + ) + var getDefaultRoleAssumerWithWebIdentity = /* @__PURE__ */ __name( + (stsOptions, STSClient3) => { + let stsClient + return async params => { + if (!stsClient) { + const { + logger = stsOptions?.parentClientConfig?.logger, + region, + requestHandler = stsOptions?.parentClientConfig?.requestHandler, + credentialProviderLogger + } = stsOptions + const resolvedRegion = await resolveRegion( + region, + stsOptions?.parentClientConfig?.region, + credentialProviderLogger + ) + const isCompatibleRequestHandler = !isH2(requestHandler) + stsClient = new STSClient3({ + profile: stsOptions?.parentClientConfig?.profile, + region: resolvedRegion, + requestHandler: isCompatibleRequestHandler + ? requestHandler + : void 0, + logger + }) } - else { - const decoder = new TextDecoder(encoding); - return decoder.decode(buf); + const { + Credentials: Credentials2, + AssumedRoleUser: AssumedRoleUser2 + } = await stsClient.send( + new AssumeRoleWithWebIdentityCommand(params) + ) + if ( + !Credentials2 || + !Credentials2.AccessKeyId || + !Credentials2.SecretAccessKey + ) { + throw new Error( + `Invalid response from STS.assumeRoleWithWebIdentity call with role ${params.RoleArn}` + ) } - }, - transformToWebStream: () => { - if (transformed) { - throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED); + const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser2) + const credentials = { + accessKeyId: Credentials2.AccessKeyId, + secretAccessKey: Credentials2.SecretAccessKey, + sessionToken: Credentials2.SessionToken, + expiration: Credentials2.Expiration, + // TODO(credentialScope): access normally when shape is updated. + ...(Credentials2.CredentialScope && { + credentialScope: Credentials2.CredentialScope + }), + ...(accountId && { accountId }) } - if (stream.readableFlowing !== null) { - throw new Error("The stream has been consumed by other callbacks."); + if (accountId) { + ;(0, import_client.setCredentialFeature)( + credentials, + 'RESOLVED_ACCOUNT_ID', + 'T' + ) } - if (typeof stream_1.Readable.toWeb !== "function") { - throw new Error("Readable.toWeb() is not supported. Please ensure a polyfill is available."); + ;(0, import_client.setCredentialFeature)( + credentials, + 'CREDENTIALS_STS_ASSUME_ROLE_WEB_ID', + 'k' + ) + return credentials + } + }, + 'getDefaultRoleAssumerWithWebIdentity' + ) + var isH2 = /* @__PURE__ */ __name(requestHandler => { + return requestHandler?.metadata?.handlerProtocol === 'h2' + }, 'isH2') + + // src/submodules/sts/defaultRoleAssumers.ts + var import_STSClient2 = __nccwpck_require__(68974) + var getCustomizableStsClientCtor = /* @__PURE__ */ __name( + (baseCtor, customizations) => { + if (!customizations) return baseCtor + else + return class CustomizableSTSClient extends baseCtor { + static { + __name(this, 'CustomizableSTSClient') + } + constructor(config) { + super(config) + for (const customization of customizations) { + this.middlewareStack.use(customization) + } + } } - transformed = true; - return stream_1.Readable.toWeb(stream); }, - }); -}; -exports.sdkStreamMixin = sdkStreamMixin; - - -/***/ }), - -/***/ 60168: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.splitStream = void 0; -async function splitStream(stream) { - if (typeof stream.stream === "function") { - stream = stream.stream(); - } - const readableStream = stream; - return readableStream.tee(); -} -exports.splitStream = splitStream; - - -/***/ }), - -/***/ 65494: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.splitStream = void 0; -const stream_1 = __nccwpck_require__(12781); -const splitStream_browser_1 = __nccwpck_require__(60168); -const stream_type_check_1 = __nccwpck_require__(8639); -async function splitStream(stream) { - if ((0, stream_type_check_1.isReadableStream)(stream) || (0, stream_type_check_1.isBlob)(stream)) { - return (0, splitStream_browser_1.splitStream)(stream); - } - const stream1 = new stream_1.PassThrough(); - const stream2 = new stream_1.PassThrough(); - stream.pipe(stream1); - stream.pipe(stream2); - return [stream1, stream2]; -} -exports.splitStream = splitStream; - - -/***/ }), - -/***/ 8639: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.isBlob = exports.isReadableStream = void 0; -const isReadableStream = (stream) => { - var _a; - return typeof ReadableStream === "function" && - (((_a = stream === null || stream === void 0 ? void 0 : stream.constructor) === null || _a === void 0 ? void 0 : _a.name) === ReadableStream.name || stream instanceof ReadableStream); -}; -exports.isReadableStream = isReadableStream; -const isBlob = (blob) => { - var _a; - return typeof Blob === "function" && (((_a = blob === null || blob === void 0 ? void 0 : blob.constructor) === null || _a === void 0 ? void 0 : _a.name) === Blob.name || blob instanceof Blob); -}; -exports.isBlob = isBlob; - - -/***/ }), - -/***/ 59765: -/***/ ((module) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - escapeUri: () => escapeUri, - escapeUriPath: () => escapeUriPath -}); -module.exports = __toCommonJS(src_exports); - -// src/escape-uri.ts -var escapeUri = /* @__PURE__ */ __name((uri) => ( - // AWS percent-encodes some extra non-standard characters in a URI - encodeURIComponent(uri).replace(/[!'()*]/g, hexEncode) -), "escapeUri"); -var hexEncode = /* @__PURE__ */ __name((c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`, "hexEncode"); - -// src/escape-uri-path.ts -var escapeUriPath = /* @__PURE__ */ __name((uri) => uri.split("/").map(escapeUri).join("/"), "escapeUriPath"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 94377: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - fromUtf8: () => fromUtf8, - toUint8Array: () => toUint8Array, - toUtf8: () => toUtf8 -}); -module.exports = __toCommonJS(src_exports); - -// src/fromUtf8.ts -var import_util_buffer_from = __nccwpck_require__(48928); -var fromUtf8 = /* @__PURE__ */ __name((input) => { - const buf = (0, import_util_buffer_from.fromString)(input, "utf8"); - return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength / Uint8Array.BYTES_PER_ELEMENT); -}, "fromUtf8"); - -// src/toUint8Array.ts -var toUint8Array = /* @__PURE__ */ __name((data) => { - if (typeof data === "string") { - return fromUtf8(data); - } - if (ArrayBuffer.isView(data)) { - return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT); - } - return new Uint8Array(data); -}, "toUint8Array"); - -// src/toUtf8.ts - -var toUtf8 = /* @__PURE__ */ __name((input) => { - if (typeof input === "string") { - return input; - } - if (typeof input !== "object" || typeof input.byteOffset !== "number" || typeof input.byteLength !== "number") { - throw new Error("@smithy/util-utf8: toUtf8 encoder function only accepts string | Uint8Array."); - } - return (0, import_util_buffer_from.fromArrayBuffer)(input.buffer, input.byteOffset, input.byteLength).toString("utf8"); -}, "toUtf8"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 21286: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -Object.defineProperty(exports, "NIL", ({ - enumerable: true, - get: function () { - return _nil.default; - } -})); -Object.defineProperty(exports, "parse", ({ - enumerable: true, - get: function () { - return _parse.default; - } -})); -Object.defineProperty(exports, "stringify", ({ - enumerable: true, - get: function () { - return _stringify.default; - } -})); -Object.defineProperty(exports, "v1", ({ - enumerable: true, - get: function () { - return _v.default; - } -})); -Object.defineProperty(exports, "v3", ({ - enumerable: true, - get: function () { - return _v2.default; - } -})); -Object.defineProperty(exports, "v4", ({ - enumerable: true, - get: function () { - return _v3.default; - } -})); -Object.defineProperty(exports, "v5", ({ - enumerable: true, - get: function () { - return _v4.default; - } -})); -Object.defineProperty(exports, "validate", ({ - enumerable: true, - get: function () { - return _validate.default; - } -})); -Object.defineProperty(exports, "version", ({ - enumerable: true, - get: function () { - return _version.default; - } -})); - -var _v = _interopRequireDefault(__nccwpck_require__(23802)); - -var _v2 = _interopRequireDefault(__nccwpck_require__(99450)); - -var _v3 = _interopRequireDefault(__nccwpck_require__(6475)); - -var _v4 = _interopRequireDefault(__nccwpck_require__(60959)); - -var _nil = _interopRequireDefault(__nccwpck_require__(44021)); - -var _version = _interopRequireDefault(__nccwpck_require__(95943)); - -var _validate = _interopRequireDefault(__nccwpck_require__(10722)); - -var _stringify = _interopRequireDefault(__nccwpck_require__(33659)); - -var _parse = _interopRequireDefault(__nccwpck_require__(10887)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ 15359: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function md5(bytes) { - if (Array.isArray(bytes)) { - bytes = Buffer.from(bytes); - } else if (typeof bytes === 'string') { - bytes = Buffer.from(bytes, 'utf8'); - } - - return _crypto.default.createHash('md5').update(bytes).digest(); -} - -var _default = md5; -exports["default"] = _default; - -/***/ }), - -/***/ 33671: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var _default = { - randomUUID: _crypto.default.randomUUID -}; -exports["default"] = _default; - -/***/ }), - -/***/ 44021: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; -var _default = '00000000-0000-0000-0000-000000000000'; -exports["default"] = _default; - -/***/ }), - -/***/ 10887: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _validate = _interopRequireDefault(__nccwpck_require__(10722)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function parse(uuid) { - if (!(0, _validate.default)(uuid)) { - throw TypeError('Invalid UUID'); - } - - let v; - const arr = new Uint8Array(16); // Parse ########-....-....-....-............ - - arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24; - arr[1] = v >>> 16 & 0xff; - arr[2] = v >>> 8 & 0xff; - arr[3] = v & 0xff; // Parse ........-####-....-....-............ - - arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8; - arr[5] = v & 0xff; // Parse ........-....-####-....-............ - - arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8; - arr[7] = v & 0xff; // Parse ........-....-....-####-............ - - arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8; - arr[9] = v & 0xff; // Parse ........-....-....-....-############ - // (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes) - - arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff; - arr[11] = v / 0x100000000 & 0xff; - arr[12] = v >>> 24 & 0xff; - arr[13] = v >>> 16 & 0xff; - arr[14] = v >>> 8 & 0xff; - arr[15] = v & 0xff; - return arr; -} - -var _default = parse; -exports["default"] = _default; - -/***/ }), - -/***/ 99135: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; -var _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; -exports["default"] = _default; - -/***/ }), - -/***/ 25446: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = rng; - -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -const rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate - -let poolPtr = rnds8Pool.length; - -function rng() { - if (poolPtr > rnds8Pool.length - 16) { - _crypto.default.randomFillSync(rnds8Pool); - - poolPtr = 0; - } - - return rnds8Pool.slice(poolPtr, poolPtr += 16); -} - -/***/ }), - -/***/ 45889: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + 'getCustomizableStsClientCtor' + ) + var getDefaultRoleAssumer2 = /* @__PURE__ */ __name( + (stsOptions = {}, stsPlugins) => + getDefaultRoleAssumer( + stsOptions, + getCustomizableStsClientCtor( + import_STSClient2.STSClient, + stsPlugins + ) + ), + 'getDefaultRoleAssumer' + ) + var getDefaultRoleAssumerWithWebIdentity2 = /* @__PURE__ */ __name( + (stsOptions = {}, stsPlugins) => + getDefaultRoleAssumerWithWebIdentity( + stsOptions, + getCustomizableStsClientCtor( + import_STSClient2.STSClient, + stsPlugins + ) + ), + 'getDefaultRoleAssumerWithWebIdentity' + ) + var decorateDefaultCredentialProvider = /* @__PURE__ */ __name( + provider => input => + provider({ + roleAssumer: getDefaultRoleAssumer2(input), + roleAssumerWithWebIdentity: + getDefaultRoleAssumerWithWebIdentity2(input), + ...input + }), + 'decorateDefaultCredentialProvider' + ) + // Annotate the CommonJS export names for ESM import in node: + 0 && 0 -"use strict"; + /***/ + }, + /***/ 1798: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getRuntimeConfig = void 0 + const tslib_1 = __nccwpck_require__(4351) + const package_json_1 = tslib_1.__importDefault(__nccwpck_require__(88842)) + const core_1 = __nccwpck_require__(11928) + const util_user_agent_node_1 = __nccwpck_require__(29318) + const config_resolver_1 = __nccwpck_require__(99541) + const core_2 = __nccwpck_require__(1004) + const hash_node_1 = __nccwpck_require__(92920) + const middleware_retry_1 = __nccwpck_require__(23737) + const node_config_provider_1 = __nccwpck_require__(85650) + const node_http_handler_1 = __nccwpck_require__(96798) + const util_body_length_node_1 = __nccwpck_require__(24047) + const util_retry_1 = __nccwpck_require__(35808) + const runtimeConfig_shared_1 = __nccwpck_require__(75238) + const smithy_client_1 = __nccwpck_require__(21433) + const util_defaults_mode_node_1 = __nccwpck_require__(43762) + const smithy_client_2 = __nccwpck_require__(21433) + const getRuntimeConfig = config => { + ;(0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version) + const defaultsMode = (0, + util_defaults_mode_node_1.resolveDefaultsModeConfig)(config) + const defaultConfigProvider = () => + defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode) + const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)( + config + ) + ;(0, core_1.emitWarningIfUnsupportedVersion)(process.version) + const profileConfig = { profile: config?.profile } + return { + ...clientSharedValues, + ...config, + runtime: 'node', + defaultsMode, + bodyLengthChecker: + config?.bodyLengthChecker ?? + util_body_length_node_1.calculateBodyLength, + defaultUserAgentProvider: + config?.defaultUserAgentProvider ?? + (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ + serviceId: clientSharedValues.serviceId, + clientVersion: package_json_1.default.version + }), + httpAuthSchemes: config?.httpAuthSchemes ?? [ + { + schemeId: 'aws.auth#sigv4', + identityProvider: ipc => + ipc.getIdentityProvider('aws.auth#sigv4') || + (async idProps => + await config.credentialDefaultProvider( + idProps?.__config || {} + )()), + signer: new core_1.AwsSdkSigV4Signer() + }, + { + schemeId: 'smithy.api#noAuth', + identityProvider: ipc => + ipc.getIdentityProvider('smithy.api#noAuth') || + (async () => ({})), + signer: new core_2.NoAuthSigner() + } + ], + maxAttempts: + config?.maxAttempts ?? + (0, node_config_provider_1.loadConfig)( + middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, + config + ), + region: + config?.region ?? + (0, node_config_provider_1.loadConfig)( + config_resolver_1.NODE_REGION_CONFIG_OPTIONS, + { + ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, + ...profileConfig + } + ), + requestHandler: node_http_handler_1.NodeHttpHandler.create( + config?.requestHandler ?? defaultConfigProvider + ), + retryMode: + config?.retryMode ?? + (0, node_config_provider_1.loadConfig)( + { + ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS, + default: async () => + (await defaultConfigProvider()).retryMode || + util_retry_1.DEFAULT_RETRY_MODE + }, + config + ), + sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, 'sha256'), + streamCollector: + config?.streamCollector ?? node_http_handler_1.streamCollector, + useDualstackEndpoint: + config?.useDualstackEndpoint ?? + (0, node_config_provider_1.loadConfig)( + config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, + profileConfig + ), + useFipsEndpoint: + config?.useFipsEndpoint ?? + (0, node_config_provider_1.loadConfig)( + config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, + profileConfig + ), + userAgentAppId: + config?.userAgentAppId ?? + (0, node_config_provider_1.loadConfig)( + util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, + profileConfig + ) + } + } + exports.getRuntimeConfig = getRuntimeConfig -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + /***/ + }, -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); + /***/ 75238: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getRuntimeConfig = void 0 + const core_1 = __nccwpck_require__(11928) + const core_2 = __nccwpck_require__(1004) + const smithy_client_1 = __nccwpck_require__(21433) + const url_parser_1 = __nccwpck_require__(94769) + const util_base64_1 = __nccwpck_require__(44079) + const util_utf8_1 = __nccwpck_require__(76749) + const httpAuthSchemeProvider_1 = __nccwpck_require__(48013) + const endpointResolver_1 = __nccwpck_require__(47561) + const getRuntimeConfig = config => { + return { + apiVersion: '2011-06-15', + base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64, + base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64, + disableHostPrefix: config?.disableHostPrefix ?? false, + endpointProvider: + config?.endpointProvider ?? + endpointResolver_1.defaultEndpointResolver, + extensions: config?.extensions ?? [], + httpAuthSchemeProvider: + config?.httpAuthSchemeProvider ?? + httpAuthSchemeProvider_1.defaultSTSHttpAuthSchemeProvider, + httpAuthSchemes: config?.httpAuthSchemes ?? [ + { + schemeId: 'aws.auth#sigv4', + identityProvider: ipc => + ipc.getIdentityProvider('aws.auth#sigv4'), + signer: new core_1.AwsSdkSigV4Signer() + }, + { + schemeId: 'smithy.api#noAuth', + identityProvider: ipc => + ipc.getIdentityProvider('smithy.api#noAuth') || + (async () => ({})), + signer: new core_2.NoAuthSigner() + } + ], + logger: config?.logger ?? new smithy_client_1.NoOpLogger(), + serviceId: config?.serviceId ?? 'STS', + urlParser: config?.urlParser ?? url_parser_1.parseUrl, + utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8, + utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8 + } + } + exports.getRuntimeConfig = getRuntimeConfig -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + /***/ + }, -function sha1(bytes) { - if (Array.isArray(bytes)) { - bytes = Buffer.from(bytes); - } else if (typeof bytes === 'string') { - bytes = Buffer.from(bytes, 'utf8'); - } + /***/ 30669: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.resolveRuntimeExtensions = void 0 + const region_config_resolver_1 = __nccwpck_require__(32357) + const protocol_http_1 = __nccwpck_require__(18241) + const smithy_client_1 = __nccwpck_require__(21433) + const httpAuthExtensionConfiguration_1 = __nccwpck_require__(14935) + const resolveRuntimeExtensions = (runtimeConfig, extensions) => { + const extensionConfiguration = Object.assign( + (0, region_config_resolver_1.getAwsRegionExtensionConfiguration)( + runtimeConfig + ), + (0, smithy_client_1.getDefaultExtensionConfiguration)(runtimeConfig), + (0, protocol_http_1.getHttpHandlerExtensionConfiguration)( + runtimeConfig + ), + (0, + httpAuthExtensionConfiguration_1.getHttpAuthExtensionConfiguration)( + runtimeConfig + ) + ) + extensions.forEach(extension => + extension.configure(extensionConfiguration) + ) + return Object.assign( + runtimeConfig, + (0, region_config_resolver_1.resolveAwsRegionExtensionConfiguration)( + extensionConfiguration + ), + (0, smithy_client_1.resolveDefaultRuntimeConfig)( + extensionConfiguration + ), + (0, protocol_http_1.resolveHttpHandlerRuntimeConfig)( + extensionConfiguration + ), + (0, httpAuthExtensionConfiguration_1.resolveHttpAuthRuntimeConfig)( + extensionConfiguration + ) + ) + } + exports.resolveRuntimeExtensions = resolveRuntimeExtensions - return _crypto.default.createHash('sha1').update(bytes).digest(); -} + /***/ + }, -var _default = sha1; -exports["default"] = _default; + /***/ 11928: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -/***/ }), + Object.defineProperty(exports, '__esModule', { value: true }) + const tslib_1 = __nccwpck_require__(4351) + tslib_1.__exportStar(__nccwpck_require__(83526), exports) + tslib_1.__exportStar(__nccwpck_require__(10203), exports) + tslib_1.__exportStar(__nccwpck_require__(7705), exports) -/***/ 33659: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + /***/ + }, -"use strict"; + /***/ 83526: /***/ module => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + // src/submodules/client/index.ts + var index_exports = {} + __export(index_exports, { + emitWarningIfUnsupportedVersion: () => emitWarningIfUnsupportedVersion, + setCredentialFeature: () => setCredentialFeature, + setFeature: () => setFeature, + state: () => state + }) + module.exports = __toCommonJS(index_exports) -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; -exports.unsafeStringify = unsafeStringify; + // src/submodules/client/emitWarningIfUnsupportedVersion.ts + var state = { + warningEmitted: false + } + var emitWarningIfUnsupportedVersion = /* @__PURE__ */ __name(version => { + if ( + version && + !state.warningEmitted && + parseInt(version.substring(1, version.indexOf('.'))) < 18 + ) { + state.warningEmitted = true + process.emitWarning( + `NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will +no longer support Node.js 16.x on January 6, 2025. -var _validate = _interopRequireDefault(__nccwpck_require__(10722)); +To continue receiving updates to AWS services, bug fixes, and security +updates please upgrade to a supported Node.js LTS version. -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +More information can be found at: https://a.co/74kJMmI` + ) + } + }, 'emitWarningIfUnsupportedVersion') -/** - * Convert array of 16 byte values to UUID string format of the form: - * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX - */ -const byteToHex = []; - -for (let i = 0; i < 256; ++i) { - byteToHex.push((i + 0x100).toString(16).slice(1)); -} - -function unsafeStringify(arr, offset = 0) { - // Note: Be careful editing this code! It's been tuned for performance - // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434 - 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]]; -} - -function stringify(arr, offset = 0) { - const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one - // of the following: - // - One or more input array values don't map to a hex octet (leading to - // "undefined" in the uuid) - // - Invalid input values for the RFC `version` or `variant` fields - - if (!(0, _validate.default)(uuid)) { - throw TypeError('Stringified UUID is invalid'); - } + // src/submodules/client/setCredentialFeature.ts + function setCredentialFeature(credentials, feature, value) { + if (!credentials.$source) { + credentials.$source = {} + } + credentials.$source[feature] = value + return credentials + } + __name(setCredentialFeature, 'setCredentialFeature') - return uuid; -} + // src/submodules/client/setFeature.ts + function setFeature(context, feature, value) { + if (!context.__aws_sdk_context) { + context.__aws_sdk_context = { + features: {} + } + } else if (!context.__aws_sdk_context.features) { + context.__aws_sdk_context.features = {} + } + context.__aws_sdk_context.features[feature] = value + } + __name(setFeature, 'setFeature') + // Annotate the CommonJS export names for ESM import in node: + 0 && 0 -var _default = stringify; -exports["default"] = _default; + /***/ + }, -/***/ }), + /***/ 10203: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/submodules/httpAuthSchemes/index.ts + var index_exports = {} + __export(index_exports, { + AWSSDKSigV4Signer: () => AWSSDKSigV4Signer, + AwsSdkSigV4ASigner: () => AwsSdkSigV4ASigner, + AwsSdkSigV4Signer: () => AwsSdkSigV4Signer, + NODE_SIGV4A_CONFIG_OPTIONS: () => NODE_SIGV4A_CONFIG_OPTIONS, + resolveAWSSDKSigV4Config: () => resolveAWSSDKSigV4Config, + resolveAwsSdkSigV4AConfig: () => resolveAwsSdkSigV4AConfig, + resolveAwsSdkSigV4Config: () => resolveAwsSdkSigV4Config, + validateSigningProperties: () => validateSigningProperties + }) + module.exports = __toCommonJS(index_exports) + + // src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts + var import_protocol_http2 = __nccwpck_require__(18241) + + // src/submodules/httpAuthSchemes/utils/getDateHeader.ts + var import_protocol_http = __nccwpck_require__(18241) + var getDateHeader = /* @__PURE__ */ __name( + response => + import_protocol_http.HttpResponse.isInstance(response) + ? (response.headers?.date ?? response.headers?.Date) + : void 0, + 'getDateHeader' + ) -/***/ 23802: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + // src/submodules/httpAuthSchemes/utils/getSkewCorrectedDate.ts + var getSkewCorrectedDate = /* @__PURE__ */ __name( + systemClockOffset => new Date(Date.now() + systemClockOffset), + 'getSkewCorrectedDate' + ) -"use strict"; + // src/submodules/httpAuthSchemes/utils/isClockSkewed.ts + var isClockSkewed = /* @__PURE__ */ __name( + (clockTime, systemClockOffset) => + Math.abs( + getSkewCorrectedDate(systemClockOffset).getTime() - clockTime + ) >= 3e5, + 'isClockSkewed' + ) + // src/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.ts + var getUpdatedSystemClockOffset = /* @__PURE__ */ __name( + (clockTime, currentSystemClockOffset) => { + const clockTimeInMs = Date.parse(clockTime) + if (isClockSkewed(clockTimeInMs, currentSystemClockOffset)) { + return clockTimeInMs - Date.now() + } + return currentSystemClockOffset + }, + 'getUpdatedSystemClockOffset' + ) -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + // src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts + var throwSigningPropertyError = /* @__PURE__ */ __name( + (name, property) => { + if (!property) { + throw new Error( + `Property \`${name}\` is not resolved for AWS SDK SigV4Auth` + ) + } + return property + }, + 'throwSigningPropertyError' + ) + var validateSigningProperties = /* @__PURE__ */ __name( + async signingProperties => { + const context = throwSigningPropertyError( + 'context', + signingProperties.context + ) + const config = throwSigningPropertyError( + 'config', + signingProperties.config + ) + const authScheme = context.endpointV2?.properties?.authSchemes?.[0] + const signerFunction = throwSigningPropertyError( + 'signer', + config.signer + ) + const signer = await signerFunction(authScheme) + const signingRegion = signingProperties?.signingRegion + const signingRegionSet = signingProperties?.signingRegionSet + const signingName = signingProperties?.signingName + return { + config, + signer, + signingRegion, + signingRegionSet, + signingName + } + }, + 'validateSigningProperties' + ) + var AwsSdkSigV4Signer = class { + static { + __name(this, 'AwsSdkSigV4Signer') + } + async sign(httpRequest, identity, signingProperties) { + if (!import_protocol_http2.HttpRequest.isInstance(httpRequest)) { + throw new Error( + 'The request is not an instance of `HttpRequest` and cannot be signed' + ) + } + const validatedProps = + await validateSigningProperties(signingProperties) + const { config, signer } = validatedProps + let { signingRegion, signingName } = validatedProps + const handlerExecutionContext = signingProperties.context + if (handlerExecutionContext?.authSchemes?.length ?? 0 > 1) { + const [first, second] = handlerExecutionContext.authSchemes + if (first?.name === 'sigv4a' && second?.name === 'sigv4') { + signingRegion = second?.signingRegion ?? signingRegion + signingName = second?.signingName ?? signingName + } + } + const signedRequest = await signer.sign(httpRequest, { + signingDate: getSkewCorrectedDate(config.systemClockOffset), + signingRegion, + signingService: signingName + }) + return signedRequest + } + errorHandler(signingProperties) { + return error => { + const serverTime = + error.ServerTime ?? getDateHeader(error.$response) + if (serverTime) { + const config = throwSigningPropertyError( + 'config', + signingProperties.config + ) + const initialSystemClockOffset = config.systemClockOffset + config.systemClockOffset = getUpdatedSystemClockOffset( + serverTime, + config.systemClockOffset + ) + const clockSkewCorrected = + config.systemClockOffset !== initialSystemClockOffset + if (clockSkewCorrected && error.$metadata) { + error.$metadata.clockSkewCorrected = true + } + } + throw error + } + } + successHandler(httpResponse, signingProperties) { + const dateHeader = getDateHeader(httpResponse) + if (dateHeader) { + const config = throwSigningPropertyError( + 'config', + signingProperties.config + ) + config.systemClockOffset = getUpdatedSystemClockOffset( + dateHeader, + config.systemClockOffset + ) + } + } + } + var AWSSDKSigV4Signer = AwsSdkSigV4Signer -var _rng = _interopRequireDefault(__nccwpck_require__(25446)); + // src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.ts + var import_protocol_http3 = __nccwpck_require__(18241) + var AwsSdkSigV4ASigner = class extends AwsSdkSigV4Signer { + static { + __name(this, 'AwsSdkSigV4ASigner') + } + async sign(httpRequest, identity, signingProperties) { + if (!import_protocol_http3.HttpRequest.isInstance(httpRequest)) { + throw new Error( + 'The request is not an instance of `HttpRequest` and cannot be signed' + ) + } + const { + config, + signer, + signingRegion, + signingRegionSet, + signingName + } = await validateSigningProperties(signingProperties) + const configResolvedSigningRegionSet = + await config.sigv4aSigningRegionSet?.() + const multiRegionOverride = ( + configResolvedSigningRegionSet ?? + signingRegionSet ?? [signingRegion] + ).join(',') + const signedRequest = await signer.sign(httpRequest, { + signingDate: getSkewCorrectedDate(config.systemClockOffset), + signingRegion: multiRegionOverride, + signingService: signingName + }) + return signedRequest + } + } -var _stringify = __nccwpck_require__(33659); + // src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4AConfig.ts + var import_core = __nccwpck_require__(1004) + var import_property_provider = __nccwpck_require__(51005) + var resolveAwsSdkSigV4AConfig = /* @__PURE__ */ __name(config => { + config.sigv4aSigningRegionSet = (0, import_core.normalizeProvider)( + config.sigv4aSigningRegionSet + ) + return config + }, 'resolveAwsSdkSigV4AConfig') + var NODE_SIGV4A_CONFIG_OPTIONS = { + environmentVariableSelector(env) { + if (env.AWS_SIGV4A_SIGNING_REGION_SET) { + return env.AWS_SIGV4A_SIGNING_REGION_SET.split(',').map(_ => + _.trim() + ) + } + throw new import_property_provider.ProviderError( + 'AWS_SIGV4A_SIGNING_REGION_SET not set in env.', + { + tryNextLink: true + } + ) + }, + configFileSelector(profile) { + if (profile.sigv4a_signing_region_set) { + return (profile.sigv4a_signing_region_set ?? '') + .split(',') + .map(_ => _.trim()) + } + throw new import_property_provider.ProviderError( + 'sigv4a_signing_region_set not set in profile.', + { + tryNextLink: true + } + ) + }, + default: void 0 + } + + // src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.ts + var import_client = __nccwpck_require__(83526) + var import_core2 = __nccwpck_require__(1004) + var import_signature_v4 = __nccwpck_require__(55499) + var resolveAwsSdkSigV4Config = /* @__PURE__ */ __name(config => { + let inputCredentials = config.credentials + let isUserSupplied = !!config.credentials + let resolvedCredentials = void 0 + Object.defineProperty(config, 'credentials', { + set(credentials) { + if ( + credentials && + credentials !== inputCredentials && + credentials !== resolvedCredentials + ) { + isUserSupplied = true + } + inputCredentials = credentials + const memoizedProvider = normalizeCredentialProvider(config, { + credentials: inputCredentials, + credentialDefaultProvider: config.credentialDefaultProvider + }) + const boundProvider = bindCallerConfig(config, memoizedProvider) + if (isUserSupplied && !boundProvider.attributed) { + resolvedCredentials = /* @__PURE__ */ __name( + async options => + boundProvider(options).then(creds => + (0, import_client.setCredentialFeature)( + creds, + 'CREDENTIALS_CODE', + 'e' + ) + ), + 'resolvedCredentials' + ) + resolvedCredentials.memoized = boundProvider.memoized + resolvedCredentials.configBound = boundProvider.configBound + resolvedCredentials.attributed = true + } else { + resolvedCredentials = boundProvider + } + }, + get() { + return resolvedCredentials + }, + enumerable: true, + configurable: true + }) + config.credentials = inputCredentials + const { + // Default for signingEscapePath + signingEscapePath = true, + // Default for systemClockOffset + systemClockOffset = config.systemClockOffset || 0, + // No default for sha256 since it is platform dependent + sha256 + } = config + let signer + if (config.signer) { + signer = (0, import_core2.normalizeProvider)(config.signer) + } else if (config.regionInfoProvider) { + signer = /* @__PURE__ */ __name( + () => + (0, import_core2.normalizeProvider)(config.region)() + .then(async region => [ + (await config.regionInfoProvider(region, { + useFipsEndpoint: await config.useFipsEndpoint(), + useDualstackEndpoint: await config.useDualstackEndpoint() + })) || {}, + region + ]) + .then(([regionInfo, region]) => { + const { signingRegion, signingService } = regionInfo + config.signingRegion = + config.signingRegion || signingRegion || region + config.signingName = + config.signingName || signingService || config.serviceId + const params = { + ...config, + credentials: config.credentials, + region: config.signingRegion, + service: config.signingName, + sha256, + uriEscapePath: signingEscapePath + } + const SignerCtor = + config.signerConstructor || import_signature_v4.SignatureV4 + return new SignerCtor(params) + }), + 'signer' + ) + } else { + signer = /* @__PURE__ */ __name(async authScheme => { + authScheme = Object.assign( + {}, + { + name: 'sigv4', + signingName: config.signingName || config.defaultSigningName, + signingRegion: await (0, import_core2.normalizeProvider)( + config.region + )(), + properties: {} + }, + authScheme + ) + const signingRegion = authScheme.signingRegion + const signingService = authScheme.signingName + config.signingRegion = config.signingRegion || signingRegion + config.signingName = + config.signingName || signingService || config.serviceId + const params = { + ...config, + credentials: config.credentials, + region: config.signingRegion, + service: config.signingName, + sha256, + uriEscapePath: signingEscapePath + } + const SignerCtor = + config.signerConstructor || import_signature_v4.SignatureV4 + return new SignerCtor(params) + }, 'signer') + } + const resolvedConfig = Object.assign(config, { + systemClockOffset, + signingEscapePath, + signer + }) + return resolvedConfig + }, 'resolveAwsSdkSigV4Config') + var resolveAWSSDKSigV4Config = resolveAwsSdkSigV4Config + function normalizeCredentialProvider( + config, + { credentials, credentialDefaultProvider } + ) { + let credentialsProvider + if (credentials) { + if (!credentials?.memoized) { + credentialsProvider = (0, import_core2.memoizeIdentityProvider)( + credentials, + import_core2.isIdentityExpired, + import_core2.doesIdentityRequireRefresh + ) + } else { + credentialsProvider = credentials + } + } else { + if (credentialDefaultProvider) { + credentialsProvider = (0, import_core2.normalizeProvider)( + credentialDefaultProvider( + Object.assign({}, config, { + parentClientConfig: config + }) + ) + ) + } else { + credentialsProvider = /* @__PURE__ */ __name(async () => { + throw new Error( + '@aws-sdk/core::resolveAwsSdkSigV4Config - `credentials` not provided and no credentialDefaultProvider was configured.' + ) + }, 'credentialsProvider') + } + } + credentialsProvider.memoized = true + return credentialsProvider + } + __name(normalizeCredentialProvider, 'normalizeCredentialProvider') + function bindCallerConfig(config, credentialsProvider) { + if (credentialsProvider.configBound) { + return credentialsProvider + } + const fn = /* @__PURE__ */ __name( + async options => + credentialsProvider({ ...options, callerClientConfig: config }), + 'fn' + ) + fn.memoized = credentialsProvider.memoized + fn.configBound = true + return fn + } + __name(bindCallerConfig, 'bindCallerConfig') + // Annotate the CommonJS export names for ESM import in node: + 0 && 0 -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + /***/ + }, -// **`v1()` - Generate time-based UUID** -// -// Inspired by https://github.com/LiosK/UUID.js -// and http://docs.python.org/library/uuid.html -let _nodeId; + /***/ 7705: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/submodules/protocols/index.ts + var index_exports = {} + __export(index_exports, { + _toBool: () => _toBool, + _toNum: () => _toNum, + _toStr: () => _toStr, + awsExpectUnion: () => awsExpectUnion, + loadRestJsonErrorCode: () => loadRestJsonErrorCode, + loadRestXmlErrorCode: () => loadRestXmlErrorCode, + parseJsonBody: () => parseJsonBody, + parseJsonErrorBody: () => parseJsonErrorBody, + parseXmlBody: () => parseXmlBody, + parseXmlErrorBody: () => parseXmlErrorBody + }) + module.exports = __toCommonJS(index_exports) -let _clockseq; // Previous uuid creation time + // src/submodules/protocols/coercing-serializers.ts + var _toStr = /* @__PURE__ */ __name(val => { + if (val == null) { + return val + } + if (typeof val === 'number' || typeof val === 'bigint') { + const warning = new Error( + `Received number ${val} where a string was expected.` + ) + warning.name = 'Warning' + console.warn(warning) + return String(val) + } + if (typeof val === 'boolean') { + const warning = new Error( + `Received boolean ${val} where a string was expected.` + ) + warning.name = 'Warning' + console.warn(warning) + return String(val) + } + return val + }, '_toStr') + var _toBool = /* @__PURE__ */ __name(val => { + if (val == null) { + return val + } + if (typeof val === 'number') { + } + if (typeof val === 'string') { + const lowercase = val.toLowerCase() + if (val !== '' && lowercase !== 'false' && lowercase !== 'true') { + const warning = new Error( + `Received string "${val}" where a boolean was expected.` + ) + warning.name = 'Warning' + console.warn(warning) + } + return val !== '' && lowercase !== 'false' + } + return val + }, '_toBool') + var _toNum = /* @__PURE__ */ __name(val => { + if (val == null) { + return val + } + if (typeof val === 'boolean') { + } + if (typeof val === 'string') { + const num = Number(val) + if (num.toString() !== val) { + const warning = new Error( + `Received string "${val}" where a number was expected.` + ) + warning.name = 'Warning' + console.warn(warning) + return val + } + return num + } + return val + }, '_toNum') + + // src/submodules/protocols/json/awsExpectUnion.ts + var import_smithy_client = __nccwpck_require__(21433) + var awsExpectUnion = /* @__PURE__ */ __name(value => { + if (value == null) { + return void 0 + } + if (typeof value === 'object' && '__type' in value) { + delete value.__type + } + return (0, import_smithy_client.expectUnion)(value) + }, 'awsExpectUnion') + + // src/submodules/protocols/common.ts + var import_smithy_client2 = __nccwpck_require__(21433) + var collectBodyString = /* @__PURE__ */ __name( + (streamBody, context) => + (0, import_smithy_client2.collectBody)(streamBody, context).then( + body => context.utf8Encoder(body) + ), + 'collectBodyString' + ) + // src/submodules/protocols/json/parseJsonBody.ts + var parseJsonBody = /* @__PURE__ */ __name( + (streamBody, context) => + collectBodyString(streamBody, context).then(encoded => { + if (encoded.length) { + try { + return JSON.parse(encoded) + } catch (e) { + if (e?.name === 'SyntaxError') { + Object.defineProperty(e, '$responseBodyText', { + value: encoded + }) + } + throw e + } + } + return {} + }), + 'parseJsonBody' + ) + var parseJsonErrorBody = /* @__PURE__ */ __name( + async (errorBody, context) => { + const value = await parseJsonBody(errorBody, context) + value.message = value.message ?? value.Message + return value + }, + 'parseJsonErrorBody' + ) + var loadRestJsonErrorCode = /* @__PURE__ */ __name((output, data) => { + const findKey = /* @__PURE__ */ __name( + (object, key) => + Object.keys(object).find( + k => k.toLowerCase() === key.toLowerCase() + ), + 'findKey' + ) + const sanitizeErrorCode = /* @__PURE__ */ __name(rawValue => { + let cleanValue = rawValue + if (typeof cleanValue === 'number') { + cleanValue = cleanValue.toString() + } + if (cleanValue.indexOf(',') >= 0) { + cleanValue = cleanValue.split(',')[0] + } + if (cleanValue.indexOf(':') >= 0) { + cleanValue = cleanValue.split(':')[0] + } + if (cleanValue.indexOf('#') >= 0) { + cleanValue = cleanValue.split('#')[1] + } + return cleanValue + }, 'sanitizeErrorCode') + const headerKey = findKey(output.headers, 'x-amzn-errortype') + if (headerKey !== void 0) { + return sanitizeErrorCode(output.headers[headerKey]) + } + if (data.code !== void 0) { + return sanitizeErrorCode(data.code) + } + if (data['__type'] !== void 0) { + return sanitizeErrorCode(data['__type']) + } + }, 'loadRestJsonErrorCode') + + // src/submodules/protocols/xml/parseXmlBody.ts + var import_smithy_client3 = __nccwpck_require__(21433) + var import_fast_xml_parser = __nccwpck_require__(12603) + var parseXmlBody = /* @__PURE__ */ __name( + (streamBody, context) => + collectBodyString(streamBody, context).then(encoded => { + if (encoded.length) { + const parser = new import_fast_xml_parser.XMLParser({ + attributeNamePrefix: '', + htmlEntities: true, + ignoreAttributes: false, + ignoreDeclaration: true, + parseTagValue: false, + trimValues: false, + tagValueProcessor: /* @__PURE__ */ __name( + (_, val) => + val.trim() === '' && val.includes('\n') ? '' : void 0, + 'tagValueProcessor' + ) + }) + parser.addEntity('#xD', '\r') + parser.addEntity('#10', '\n') + let parsedObj + try { + parsedObj = parser.parse(encoded, true) + } catch (e) { + if (e && typeof e === 'object') { + Object.defineProperty(e, '$responseBodyText', { + value: encoded + }) + } + throw e + } + const textNodeName = '#text' + const key = Object.keys(parsedObj)[0] + const parsedObjToReturn = parsedObj[key] + if (parsedObjToReturn[textNodeName]) { + parsedObjToReturn[key] = parsedObjToReturn[textNodeName] + delete parsedObjToReturn[textNodeName] + } + return (0, import_smithy_client3.getValueFromTextNode)( + parsedObjToReturn + ) + } + return {} + }), + 'parseXmlBody' + ) + var parseXmlErrorBody = /* @__PURE__ */ __name( + async (errorBody, context) => { + const value = await parseXmlBody(errorBody, context) + if (value.Error) { + value.Error.message = value.Error.message ?? value.Error.Message + } + return value + }, + 'parseXmlErrorBody' + ) + var loadRestXmlErrorCode = /* @__PURE__ */ __name((output, data) => { + if (data?.Error?.Code !== void 0) { + return data.Error.Code + } + if (data?.Code !== void 0) { + return data.Code + } + if (output.statusCode == 404) { + return 'NotFound' + } + }, 'loadRestXmlErrorCode') + // Annotate the CommonJS export names for ESM import in node: + 0 && 0 -let _lastMSecs = 0; -let _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details + /***/ + }, -function v1(options, buf, offset) { - let i = buf && offset || 0; - const b = buf || new Array(16); - options = options || {}; - let node = options.node || _nodeId; - let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not - // specified. We do this lazily to minimize issues related to insufficient - // system entropy. See #189 + /***/ 97378: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) - if (node == null || clockseq == null) { - const seedBytes = options.random || (options.rng || _rng.default)(); + // src/index.ts + var index_exports = {} + __export(index_exports, { + getHostHeaderPlugin: () => getHostHeaderPlugin, + hostHeaderMiddleware: () => hostHeaderMiddleware, + hostHeaderMiddlewareOptions: () => hostHeaderMiddlewareOptions, + resolveHostHeaderConfig: () => resolveHostHeaderConfig + }) + module.exports = __toCommonJS(index_exports) + var import_protocol_http = __nccwpck_require__(18241) + function resolveHostHeaderConfig(input) { + return input + } + __name(resolveHostHeaderConfig, 'resolveHostHeaderConfig') + var hostHeaderMiddleware = /* @__PURE__ */ __name( + options => next => async args => { + if (!import_protocol_http.HttpRequest.isInstance(args.request)) + return next(args) + const { request } = args + const { handlerProtocol = '' } = options.requestHandler.metadata || {} + if ( + handlerProtocol.indexOf('h2') >= 0 && + !request.headers[':authority'] + ) { + delete request.headers['host'] + request.headers[':authority'] = + request.hostname + (request.port ? ':' + request.port : '') + } else if (!request.headers['host']) { + let host = request.hostname + if (request.port != null) host += `:${request.port}` + request.headers['host'] = host + } + return next(args) + }, + 'hostHeaderMiddleware' + ) + var hostHeaderMiddlewareOptions = { + name: 'hostHeaderMiddleware', + step: 'build', + priority: 'low', + tags: ['HOST'], + override: true + } + var getHostHeaderPlugin = /* @__PURE__ */ __name( + options => ({ + applyToStack: /* @__PURE__ */ __name(clientStack => { + clientStack.add( + hostHeaderMiddleware(options), + hostHeaderMiddlewareOptions + ) + }, 'applyToStack') + }), + 'getHostHeaderPlugin' + ) + // Annotate the CommonJS export names for ESM import in node: - if (node == null) { - // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) - node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]]; - } + 0 && 0 - if (clockseq == null) { - // Per 4.2.2, randomize (14 bit) clockseq - clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff; - } - } // UUID timestamps are 100 nano-second units since the Gregorian epoch, - // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so - // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' - // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. + /***/ + }, + /***/ 57779: /***/ module => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) - let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock - // cycle to simulate higher resolution clock + // src/index.ts + var index_exports = {} + __export(index_exports, { + getLoggerPlugin: () => getLoggerPlugin, + loggerMiddleware: () => loggerMiddleware, + loggerMiddlewareOptions: () => loggerMiddlewareOptions + }) + module.exports = __toCommonJS(index_exports) + + // src/loggerMiddleware.ts + var loggerMiddleware = /* @__PURE__ */ __name( + () => (next, context) => async args => { + try { + const response = await next(args) + const { + clientName, + commandName, + logger, + dynamoDbDocumentClientOptions = {} + } = context + const { + overrideInputFilterSensitiveLog, + overrideOutputFilterSensitiveLog + } = dynamoDbDocumentClientOptions + const inputFilterSensitiveLog = + overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog + const outputFilterSensitiveLog = + overrideOutputFilterSensitiveLog ?? + context.outputFilterSensitiveLog + const { $metadata, ...outputWithoutMetadata } = response.output + logger?.info?.({ + clientName, + commandName, + input: inputFilterSensitiveLog(args.input), + output: outputFilterSensitiveLog(outputWithoutMetadata), + metadata: $metadata + }) + return response + } catch (error) { + const { + clientName, + commandName, + logger, + dynamoDbDocumentClientOptions = {} + } = context + const { overrideInputFilterSensitiveLog } = + dynamoDbDocumentClientOptions + const inputFilterSensitiveLog = + overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog + logger?.error?.({ + clientName, + commandName, + input: inputFilterSensitiveLog(args.input), + error, + metadata: error.$metadata + }) + throw error + } + }, + 'loggerMiddleware' + ) + var loggerMiddlewareOptions = { + name: 'loggerMiddleware', + tags: ['LOGGER'], + step: 'initialize', + override: true + } + var getLoggerPlugin = /* @__PURE__ */ __name( + options => ({ + applyToStack: /* @__PURE__ */ __name(clientStack => { + clientStack.add(loggerMiddleware(), loggerMiddlewareOptions) + }, 'applyToStack') + }), + 'getLoggerPlugin' + ) + // Annotate the CommonJS export names for ESM import in node: - let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs) + 0 && 0 - const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression + /***/ + }, - if (dt < 0 && options.clockseq === undefined) { - clockseq = clockseq + 1 & 0x3fff; - } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new - // time interval + /***/ 35398: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + // src/index.ts + var index_exports = {} + __export(index_exports, { + addRecursionDetectionMiddlewareOptions: () => + addRecursionDetectionMiddlewareOptions, + getRecursionDetectionPlugin: () => getRecursionDetectionPlugin, + recursionDetectionMiddleware: () => recursionDetectionMiddleware + }) + module.exports = __toCommonJS(index_exports) + var import_protocol_http = __nccwpck_require__(18241) + var TRACE_ID_HEADER_NAME = 'X-Amzn-Trace-Id' + var ENV_LAMBDA_FUNCTION_NAME = 'AWS_LAMBDA_FUNCTION_NAME' + var ENV_TRACE_ID = '_X_AMZN_TRACE_ID' + var recursionDetectionMiddleware = /* @__PURE__ */ __name( + options => next => async args => { + const { request } = args + if ( + !import_protocol_http.HttpRequest.isInstance(request) || + options.runtime !== 'node' + ) { + return next(args) + } + const traceIdHeader = + Object.keys(request.headers ?? {}).find( + h => h.toLowerCase() === TRACE_ID_HEADER_NAME.toLowerCase() + ) ?? TRACE_ID_HEADER_NAME + if (request.headers.hasOwnProperty(traceIdHeader)) { + return next(args) + } + const functionName = process.env[ENV_LAMBDA_FUNCTION_NAME] + const traceId = process.env[ENV_TRACE_ID] + const nonEmptyString = /* @__PURE__ */ __name( + str => typeof str === 'string' && str.length > 0, + 'nonEmptyString' + ) + if (nonEmptyString(functionName) && nonEmptyString(traceId)) { + request.headers[TRACE_ID_HEADER_NAME] = traceId + } + return next({ + ...args, + request + }) + }, + 'recursionDetectionMiddleware' + ) + var addRecursionDetectionMiddlewareOptions = { + step: 'build', + tags: ['RECURSION_DETECTION'], + name: 'recursionDetectionMiddleware', + override: true, + priority: 'low' + } + var getRecursionDetectionPlugin = /* @__PURE__ */ __name( + options => ({ + applyToStack: /* @__PURE__ */ __name(clientStack => { + clientStack.add( + recursionDetectionMiddleware(options), + addRecursionDetectionMiddlewareOptions + ) + }, 'applyToStack') + }), + 'getRecursionDetectionPlugin' + ) + // Annotate the CommonJS export names for ESM import in node: - if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { - nsecs = 0; - } // Per 4.2.1.2 Throw error if too many uuids are requested + 0 && 0 + /***/ + }, - if (nsecs >= 10000) { - throw new Error("uuid.v1(): Can't create more than 10M uuids/sec"); - } + /***/ 1834: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) - _lastMSecs = msecs; - _lastNSecs = nsecs; - _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch + // src/index.ts + var index_exports = {} + __export(index_exports, { + DEFAULT_UA_APP_ID: () => DEFAULT_UA_APP_ID, + getUserAgentMiddlewareOptions: () => getUserAgentMiddlewareOptions, + getUserAgentPlugin: () => getUserAgentPlugin, + resolveUserAgentConfig: () => resolveUserAgentConfig, + userAgentMiddleware: () => userAgentMiddleware + }) + module.exports = __toCommonJS(index_exports) - msecs += 12219292800000; // `time_low` + // src/configurations.ts + var import_core = __nccwpck_require__(1004) + var DEFAULT_UA_APP_ID = void 0 + function isValidUserAgentAppId(appId) { + if (appId === void 0) { + return true + } + return typeof appId === 'string' && appId.length <= 50 + } + __name(isValidUserAgentAppId, 'isValidUserAgentAppId') + function resolveUserAgentConfig(input) { + const normalizedAppIdProvider = (0, import_core.normalizeProvider)( + input.userAgentAppId ?? DEFAULT_UA_APP_ID + ) + const { customUserAgent } = input + return Object.assign(input, { + customUserAgent: + typeof customUserAgent === 'string' + ? [[customUserAgent]] + : customUserAgent, + userAgentAppId: /* @__PURE__ */ __name(async () => { + const appId = await normalizedAppIdProvider() + if (!isValidUserAgentAppId(appId)) { + const logger = + input.logger?.constructor?.name === 'NoOpLogger' || + !input.logger + ? console + : input.logger + if (typeof appId !== 'string') { + logger?.warn('userAgentAppId must be a string or undefined.') + } else if (appId.length > 50) { + logger?.warn( + 'The provided userAgentAppId exceeds the maximum length of 50 characters.' + ) + } + } + return appId + }, 'userAgentAppId') + }) + } + __name(resolveUserAgentConfig, 'resolveUserAgentConfig') + + // src/user-agent-middleware.ts + var import_util_endpoints = __nccwpck_require__(65237) + var import_protocol_http = __nccwpck_require__(18241) + + // src/check-features.ts + var import_core2 = __nccwpck_require__(11928) + var ACCOUNT_ID_ENDPOINT_REGEX = /\d{12}\.ddb/ + async function checkFeatures(context, config, args) { + const request = args.request + if (request?.headers?.['smithy-protocol'] === 'rpc-v2-cbor') { + ;(0, import_core2.setFeature)(context, 'PROTOCOL_RPC_V2_CBOR', 'M') + } + if (typeof config.retryStrategy === 'function') { + const retryStrategy = await config.retryStrategy() + if (typeof retryStrategy.acquireInitialRetryToken === 'function') { + if (retryStrategy.constructor?.name?.includes('Adaptive')) { + ;(0, import_core2.setFeature)(context, 'RETRY_MODE_ADAPTIVE', 'F') + } else { + ;(0, import_core2.setFeature)(context, 'RETRY_MODE_STANDARD', 'E') + } + } else { + ;(0, import_core2.setFeature)(context, 'RETRY_MODE_LEGACY', 'D') + } + } + if (typeof config.accountIdEndpointMode === 'function') { + const endpointV2 = context.endpointV2 + if ( + String(endpointV2?.url?.hostname).match(ACCOUNT_ID_ENDPOINT_REGEX) + ) { + ;(0, import_core2.setFeature)(context, 'ACCOUNT_ID_ENDPOINT', 'O') + } + switch (await config.accountIdEndpointMode?.()) { + case 'disabled': + ;(0, import_core2.setFeature)( + context, + 'ACCOUNT_ID_MODE_DISABLED', + 'Q' + ) + break + case 'preferred': + ;(0, import_core2.setFeature)( + context, + 'ACCOUNT_ID_MODE_PREFERRED', + 'P' + ) + break + case 'required': + ;(0, import_core2.setFeature)( + context, + 'ACCOUNT_ID_MODE_REQUIRED', + 'R' + ) + break + } + } + const identity = + context.__smithy_context?.selectedHttpAuthScheme?.identity + if (identity?.$source) { + const credentials = identity + if (credentials.accountId) { + ;(0, import_core2.setFeature)(context, 'RESOLVED_ACCOUNT_ID', 'T') + } + for (const [key, value] of Object.entries( + credentials.$source ?? {} + )) { + ;(0, import_core2.setFeature)(context, key, value) + } + } + } + __name(checkFeatures, 'checkFeatures') - const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; - b[i++] = tl >>> 24 & 0xff; - b[i++] = tl >>> 16 & 0xff; - b[i++] = tl >>> 8 & 0xff; - b[i++] = tl & 0xff; // `time_mid` + // src/constants.ts + var USER_AGENT = 'user-agent' + var X_AMZ_USER_AGENT = 'x-amz-user-agent' + var SPACE = ' ' + var UA_NAME_SEPARATOR = '/' + var UA_NAME_ESCAPE_REGEX = /[^\!\$\%\&\'\*\+\-\.\^\_\`\|\~\d\w]/g + var UA_VALUE_ESCAPE_REGEX = /[^\!\$\%\&\'\*\+\-\.\^\_\`\|\~\d\w\#]/g + var UA_ESCAPE_CHAR = '-' - const tmh = msecs / 0x100000000 * 10000 & 0xfffffff; - b[i++] = tmh >>> 8 & 0xff; - b[i++] = tmh & 0xff; // `time_high_and_version` + // src/encode-features.ts + var BYTE_LIMIT = 1024 + function encodeFeatures(features) { + let buffer = '' + for (const key in features) { + const val = features[key] + if (buffer.length + val.length + 1 <= BYTE_LIMIT) { + if (buffer.length) { + buffer += ',' + val + } else { + buffer += val + } + continue + } + break + } + return buffer + } + __name(encodeFeatures, 'encodeFeatures') - b[i++] = tmh >>> 24 & 0xf | 0x10; // include version + // src/user-agent-middleware.ts + var userAgentMiddleware = /* @__PURE__ */ __name( + options => (next, context) => async args => { + const { request } = args + if (!import_protocol_http.HttpRequest.isInstance(request)) { + return next(args) + } + const { headers } = request + const userAgent = context?.userAgent?.map(escapeUserAgent) || [] + const defaultUserAgent = ( + await options.defaultUserAgentProvider() + ).map(escapeUserAgent) + await checkFeatures(context, options, args) + const awsContext = context + defaultUserAgent.push( + `m/${encodeFeatures( + Object.assign( + {}, + context.__smithy_context?.features, + awsContext.__aws_sdk_context?.features + ) + )}` + ) + const customUserAgent = + options?.customUserAgent?.map(escapeUserAgent) || [] + const appId = await options.userAgentAppId() + if (appId) { + defaultUserAgent.push(escapeUserAgent([`app/${appId}`])) + } + const prefix = (0, import_util_endpoints.getUserAgentPrefix)() + const sdkUserAgentValue = (prefix ? [prefix] : []) + .concat([...defaultUserAgent, ...userAgent, ...customUserAgent]) + .join(SPACE) + const normalUAValue = [ + ...defaultUserAgent.filter(section => + section.startsWith('aws-sdk-') + ), + ...customUserAgent + ].join(SPACE) + if (options.runtime !== 'browser') { + if (normalUAValue) { + headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT] + ? `${headers[USER_AGENT]} ${normalUAValue}` + : normalUAValue + } + headers[USER_AGENT] = sdkUserAgentValue + } else { + headers[X_AMZ_USER_AGENT] = sdkUserAgentValue + } + return next({ + ...args, + request + }) + }, + 'userAgentMiddleware' + ) + var escapeUserAgent = /* @__PURE__ */ __name(userAgentPair => { + const name = userAgentPair[0] + .split(UA_NAME_SEPARATOR) + .map(part => part.replace(UA_NAME_ESCAPE_REGEX, UA_ESCAPE_CHAR)) + .join(UA_NAME_SEPARATOR) + const version = userAgentPair[1]?.replace( + UA_VALUE_ESCAPE_REGEX, + UA_ESCAPE_CHAR + ) + const prefixSeparatorIndex = name.indexOf(UA_NAME_SEPARATOR) + const prefix = name.substring(0, prefixSeparatorIndex) + let uaName = name.substring(prefixSeparatorIndex + 1) + if (prefix === 'api') { + uaName = uaName.toLowerCase() + } + return [prefix, uaName, version] + .filter(item => item && item.length > 0) + .reduce((acc, item, index) => { + switch (index) { + case 0: + return item + case 1: + return `${acc}/${item}` + default: + return `${acc}#${item}` + } + }, '') + }, 'escapeUserAgent') + var getUserAgentMiddlewareOptions = { + name: 'getUserAgentMiddleware', + step: 'build', + priority: 'low', + tags: ['SET_USER_AGENT', 'USER_AGENT'], + override: true + } + var getUserAgentPlugin = /* @__PURE__ */ __name( + config => ({ + applyToStack: /* @__PURE__ */ __name(clientStack => { + clientStack.add( + userAgentMiddleware(config), + getUserAgentMiddlewareOptions + ) + }, 'applyToStack') + }), + 'getUserAgentPlugin' + ) + // Annotate the CommonJS export names for ESM import in node: - b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) + 0 && 0 - b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low` + /***/ + }, - b[i++] = clockseq & 0xff; // `node` + /***/ 32357: /***/ module => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var index_exports = {} + __export(index_exports, { + NODE_REGION_CONFIG_FILE_OPTIONS: () => NODE_REGION_CONFIG_FILE_OPTIONS, + NODE_REGION_CONFIG_OPTIONS: () => NODE_REGION_CONFIG_OPTIONS, + REGION_ENV_NAME: () => REGION_ENV_NAME, + REGION_INI_NAME: () => REGION_INI_NAME, + getAwsRegionExtensionConfiguration: () => + getAwsRegionExtensionConfiguration, + resolveAwsRegionExtensionConfiguration: () => + resolveAwsRegionExtensionConfiguration, + resolveRegionConfig: () => resolveRegionConfig + }) + module.exports = __toCommonJS(index_exports) - for (let n = 0; n < 6; ++n) { - b[i + n] = node[n]; - } + // src/extensions/index.ts + var getAwsRegionExtensionConfiguration = /* @__PURE__ */ __name( + runtimeConfig => { + return { + setRegion(region) { + runtimeConfig.region = region + }, + region() { + return runtimeConfig.region + } + } + }, + 'getAwsRegionExtensionConfiguration' + ) + var resolveAwsRegionExtensionConfiguration = /* @__PURE__ */ __name( + awsRegionExtensionConfiguration => { + return { + region: awsRegionExtensionConfiguration.region() + } + }, + 'resolveAwsRegionExtensionConfiguration' + ) - return buf || (0, _stringify.unsafeStringify)(b); -} + // src/regionConfig/config.ts + var REGION_ENV_NAME = 'AWS_REGION' + var REGION_INI_NAME = 'region' + var NODE_REGION_CONFIG_OPTIONS = { + environmentVariableSelector: /* @__PURE__ */ __name( + env => env[REGION_ENV_NAME], + 'environmentVariableSelector' + ), + configFileSelector: /* @__PURE__ */ __name( + profile => profile[REGION_INI_NAME], + 'configFileSelector' + ), + default: /* @__PURE__ */ __name(() => { + throw new Error('Region is missing') + }, 'default') + } + var NODE_REGION_CONFIG_FILE_OPTIONS = { + preferredFile: 'credentials' + } + + // src/regionConfig/isFipsRegion.ts + var isFipsRegion = /* @__PURE__ */ __name( + region => + typeof region === 'string' && + (region.startsWith('fips-') || region.endsWith('-fips')), + 'isFipsRegion' + ) -var _default = v1; -exports["default"] = _default; + // src/regionConfig/getRealRegion.ts + var getRealRegion = /* @__PURE__ */ __name( + region => + isFipsRegion(region) + ? ['fips-aws-global', 'aws-fips'].includes(region) + ? 'us-east-1' + : region.replace(/fips-(dkr-|prod-)?|-fips/, '') + : region, + 'getRealRegion' + ) -/***/ }), + // src/regionConfig/resolveRegionConfig.ts + var resolveRegionConfig = /* @__PURE__ */ __name(input => { + const { region, useFipsEndpoint } = input + if (!region) { + throw new Error('Region is missing') + } + return Object.assign(input, { + region: /* @__PURE__ */ __name(async () => { + if (typeof region === 'string') { + return getRealRegion(region) + } + const providedRegion = await region() + return getRealRegion(providedRegion) + }, 'region'), + useFipsEndpoint: /* @__PURE__ */ __name(async () => { + const providedRegion = + typeof region === 'string' ? region : await region() + if (isFipsRegion(providedRegion)) { + return true + } + return typeof useFipsEndpoint !== 'function' + ? Promise.resolve(!!useFipsEndpoint) + : useFipsEndpoint() + }, 'useFipsEndpoint') + }) + }, 'resolveRegionConfig') + // Annotate the CommonJS export names for ESM import in node: -/***/ 99450: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + 0 && 0 -"use strict"; + /***/ + }, + /***/ 65237: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var index_exports = {} + __export(index_exports, { + ConditionObject: () => import_util_endpoints.ConditionObject, + DeprecatedObject: () => import_util_endpoints.DeprecatedObject, + EndpointError: () => import_util_endpoints.EndpointError, + EndpointObject: () => import_util_endpoints.EndpointObject, + EndpointObjectHeaders: () => + import_util_endpoints.EndpointObjectHeaders, + EndpointObjectProperties: () => + import_util_endpoints.EndpointObjectProperties, + EndpointParams: () => import_util_endpoints.EndpointParams, + EndpointResolverOptions: () => + import_util_endpoints.EndpointResolverOptions, + EndpointRuleObject: () => import_util_endpoints.EndpointRuleObject, + ErrorRuleObject: () => import_util_endpoints.ErrorRuleObject, + EvaluateOptions: () => import_util_endpoints.EvaluateOptions, + Expression: () => import_util_endpoints.Expression, + FunctionArgv: () => import_util_endpoints.FunctionArgv, + FunctionObject: () => import_util_endpoints.FunctionObject, + FunctionReturn: () => import_util_endpoints.FunctionReturn, + ParameterObject: () => import_util_endpoints.ParameterObject, + ReferenceObject: () => import_util_endpoints.ReferenceObject, + ReferenceRecord: () => import_util_endpoints.ReferenceRecord, + RuleSetObject: () => import_util_endpoints.RuleSetObject, + RuleSetRules: () => import_util_endpoints.RuleSetRules, + TreeRuleObject: () => import_util_endpoints.TreeRuleObject, + awsEndpointFunctions: () => awsEndpointFunctions, + getUserAgentPrefix: () => getUserAgentPrefix, + isIpAddress: () => import_util_endpoints.isIpAddress, + partition: () => partition, + resolveEndpoint: () => import_util_endpoints.resolveEndpoint, + setPartitionInfo: () => setPartitionInfo, + useDefaultPartitionInfo: () => useDefaultPartitionInfo + }) + module.exports = __toCommonJS(index_exports) -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + // src/aws.ts -var _v = _interopRequireDefault(__nccwpck_require__(13383)); + // src/lib/aws/isVirtualHostableS3Bucket.ts -var _md = _interopRequireDefault(__nccwpck_require__(15359)); + // src/lib/isIpAddress.ts + var import_util_endpoints = __nccwpck_require__(42178) -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + // src/lib/aws/isVirtualHostableS3Bucket.ts + var isVirtualHostableS3Bucket = /* @__PURE__ */ __name( + (value, allowSubDomains = false) => { + if (allowSubDomains) { + for (const label of value.split('.')) { + if (!isVirtualHostableS3Bucket(label)) { + return false + } + } + return true + } + if (!(0, import_util_endpoints.isValidHostLabel)(value)) { + return false + } + if (value.length < 3 || value.length > 63) { + return false + } + if (value !== value.toLowerCase()) { + return false + } + if ((0, import_util_endpoints.isIpAddress)(value)) { + return false + } + return true + }, + 'isVirtualHostableS3Bucket' + ) -const v3 = (0, _v.default)('v3', 0x30, _md.default); -var _default = v3; -exports["default"] = _default; + // src/lib/aws/parseArn.ts + var ARN_DELIMITER = ':' + var RESOURCE_DELIMITER = '/' + var parseArn = /* @__PURE__ */ __name(value => { + const segments = value.split(ARN_DELIMITER) + if (segments.length < 6) return null + const [arn, partition2, service, region, accountId, ...resourcePath] = + segments + if ( + arn !== 'arn' || + partition2 === '' || + service === '' || + resourcePath.join(ARN_DELIMITER) === '' + ) + return null + const resourceId = resourcePath + .map(resource => resource.split(RESOURCE_DELIMITER)) + .flat() + return { + partition: partition2, + service, + region, + accountId, + resourceId + } + }, 'parseArn') -/***/ }), + // src/lib/aws/partitions.json + var partitions_default = { + partitions: [ + { + id: 'aws', + outputs: { + dnsSuffix: 'amazonaws.com', + dualStackDnsSuffix: 'api.aws', + implicitGlobalRegion: 'us-east-1', + name: 'aws', + supportsDualStack: true, + supportsFIPS: true + }, + regionRegex: '^(us|eu|ap|sa|ca|me|af|il|mx)\\-\\w+\\-\\d+$', + regions: { + 'af-south-1': { + description: 'Africa (Cape Town)' + }, + 'ap-east-1': { + description: 'Asia Pacific (Hong Kong)' + }, + 'ap-northeast-1': { + description: 'Asia Pacific (Tokyo)' + }, + 'ap-northeast-2': { + description: 'Asia Pacific (Seoul)' + }, + 'ap-northeast-3': { + description: 'Asia Pacific (Osaka)' + }, + 'ap-south-1': { + description: 'Asia Pacific (Mumbai)' + }, + 'ap-south-2': { + description: 'Asia Pacific (Hyderabad)' + }, + 'ap-southeast-1': { + description: 'Asia Pacific (Singapore)' + }, + 'ap-southeast-2': { + description: 'Asia Pacific (Sydney)' + }, + 'ap-southeast-3': { + description: 'Asia Pacific (Jakarta)' + }, + 'ap-southeast-4': { + description: 'Asia Pacific (Melbourne)' + }, + 'ap-southeast-5': { + description: 'Asia Pacific (Malaysia)' + }, + 'ap-southeast-7': { + description: 'Asia Pacific (Thailand)' + }, + 'aws-global': { + description: 'AWS Standard global region' + }, + 'ca-central-1': { + description: 'Canada (Central)' + }, + 'ca-west-1': { + description: 'Canada West (Calgary)' + }, + 'eu-central-1': { + description: 'Europe (Frankfurt)' + }, + 'eu-central-2': { + description: 'Europe (Zurich)' + }, + 'eu-north-1': { + description: 'Europe (Stockholm)' + }, + 'eu-south-1': { + description: 'Europe (Milan)' + }, + 'eu-south-2': { + description: 'Europe (Spain)' + }, + 'eu-west-1': { + description: 'Europe (Ireland)' + }, + 'eu-west-2': { + description: 'Europe (London)' + }, + 'eu-west-3': { + description: 'Europe (Paris)' + }, + 'il-central-1': { + description: 'Israel (Tel Aviv)' + }, + 'me-central-1': { + description: 'Middle East (UAE)' + }, + 'me-south-1': { + description: 'Middle East (Bahrain)' + }, + 'mx-central-1': { + description: 'Mexico (Central)' + }, + 'sa-east-1': { + description: 'South America (Sao Paulo)' + }, + 'us-east-1': { + description: 'US East (N. Virginia)' + }, + 'us-east-2': { + description: 'US East (Ohio)' + }, + 'us-west-1': { + description: 'US West (N. California)' + }, + 'us-west-2': { + description: 'US West (Oregon)' + } + } + }, + { + id: 'aws-cn', + outputs: { + dnsSuffix: 'amazonaws.com.cn', + dualStackDnsSuffix: 'api.amazonwebservices.com.cn', + implicitGlobalRegion: 'cn-northwest-1', + name: 'aws-cn', + supportsDualStack: true, + supportsFIPS: true + }, + regionRegex: '^cn\\-\\w+\\-\\d+$', + regions: { + 'aws-cn-global': { + description: 'AWS China global region' + }, + 'cn-north-1': { + description: 'China (Beijing)' + }, + 'cn-northwest-1': { + description: 'China (Ningxia)' + } + } + }, + { + id: 'aws-us-gov', + outputs: { + dnsSuffix: 'amazonaws.com', + dualStackDnsSuffix: 'api.aws', + implicitGlobalRegion: 'us-gov-west-1', + name: 'aws-us-gov', + supportsDualStack: true, + supportsFIPS: true + }, + regionRegex: '^us\\-gov\\-\\w+\\-\\d+$', + regions: { + 'aws-us-gov-global': { + description: 'AWS GovCloud (US) global region' + }, + 'us-gov-east-1': { + description: 'AWS GovCloud (US-East)' + }, + 'us-gov-west-1': { + description: 'AWS GovCloud (US-West)' + } + } + }, + { + id: 'aws-iso', + outputs: { + dnsSuffix: 'c2s.ic.gov', + dualStackDnsSuffix: 'c2s.ic.gov', + implicitGlobalRegion: 'us-iso-east-1', + name: 'aws-iso', + supportsDualStack: false, + supportsFIPS: true + }, + regionRegex: '^us\\-iso\\-\\w+\\-\\d+$', + regions: { + 'aws-iso-global': { + description: 'AWS ISO (US) global region' + }, + 'us-iso-east-1': { + description: 'US ISO East' + }, + 'us-iso-west-1': { + description: 'US ISO WEST' + } + } + }, + { + id: 'aws-iso-b', + outputs: { + dnsSuffix: 'sc2s.sgov.gov', + dualStackDnsSuffix: 'sc2s.sgov.gov', + implicitGlobalRegion: 'us-isob-east-1', + name: 'aws-iso-b', + supportsDualStack: false, + supportsFIPS: true + }, + regionRegex: '^us\\-isob\\-\\w+\\-\\d+$', + regions: { + 'aws-iso-b-global': { + description: 'AWS ISOB (US) global region' + }, + 'us-isob-east-1': { + description: 'US ISOB East (Ohio)' + } + } + }, + { + id: 'aws-iso-e', + outputs: { + dnsSuffix: 'cloud.adc-e.uk', + dualStackDnsSuffix: 'cloud.adc-e.uk', + implicitGlobalRegion: 'eu-isoe-west-1', + name: 'aws-iso-e', + supportsDualStack: false, + supportsFIPS: true + }, + regionRegex: '^eu\\-isoe\\-\\w+\\-\\d+$', + regions: { + 'aws-iso-e-global': { + description: 'AWS ISOE (Europe) global region' + }, + 'eu-isoe-west-1': { + description: 'EU ISOE West' + } + } + }, + { + id: 'aws-iso-f', + outputs: { + dnsSuffix: 'csp.hci.ic.gov', + dualStackDnsSuffix: 'csp.hci.ic.gov', + implicitGlobalRegion: 'us-isof-south-1', + name: 'aws-iso-f', + supportsDualStack: false, + supportsFIPS: true + }, + regionRegex: '^us\\-isof\\-\\w+\\-\\d+$', + regions: { + 'aws-iso-f-global': { + description: 'AWS ISOF global region' + }, + 'us-isof-east-1': { + description: 'US ISOF EAST' + }, + 'us-isof-south-1': { + description: 'US ISOF SOUTH' + } + } + }, + { + id: 'aws-eusc', + outputs: { + dnsSuffix: 'amazonaws.eu', + dualStackDnsSuffix: 'amazonaws.eu', + implicitGlobalRegion: 'eusc-de-east-1', + name: 'aws-eusc', + supportsDualStack: false, + supportsFIPS: true + }, + regionRegex: '^eusc\\-(de)\\-\\w+\\-\\d+$', + regions: { + 'eusc-de-east-1': { + description: 'EU (Germany)' + } + } + } + ], + version: '1.1' + } + + // src/lib/aws/partition.ts + var selectedPartitionsInfo = partitions_default + var selectedUserAgentPrefix = '' + var partition = /* @__PURE__ */ __name(value => { + const { partitions } = selectedPartitionsInfo + for (const partition2 of partitions) { + const { regions, outputs } = partition2 + for (const [region, regionData] of Object.entries(regions)) { + if (region === value) { + return { + ...outputs, + ...regionData + } + } + } + } + for (const partition2 of partitions) { + const { regionRegex, outputs } = partition2 + if (new RegExp(regionRegex).test(value)) { + return { + ...outputs + } + } + } + const DEFAULT_PARTITION = partitions.find( + partition2 => partition2.id === 'aws' + ) + if (!DEFAULT_PARTITION) { + throw new Error( + "Provided region was not found in the partition array or regex, and default partition with id 'aws' doesn't exist." + ) + } + return { + ...DEFAULT_PARTITION.outputs + } + }, 'partition') + var setPartitionInfo = /* @__PURE__ */ __name( + (partitionsInfo, userAgentPrefix = '') => { + selectedPartitionsInfo = partitionsInfo + selectedUserAgentPrefix = userAgentPrefix + }, + 'setPartitionInfo' + ) + var useDefaultPartitionInfo = /* @__PURE__ */ __name(() => { + setPartitionInfo(partitions_default, '') + }, 'useDefaultPartitionInfo') + var getUserAgentPrefix = /* @__PURE__ */ __name( + () => selectedUserAgentPrefix, + 'getUserAgentPrefix' + ) -/***/ 13383: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + // src/aws.ts + var awsEndpointFunctions = { + isVirtualHostableS3Bucket, + parseArn, + partition + } + import_util_endpoints.customEndpointFunctions.aws = awsEndpointFunctions -"use strict"; + // src/resolveEndpoint.ts + // src/types/EndpointError.ts -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.URL = exports.DNS = void 0; -exports["default"] = v35; + // src/types/EndpointRuleObject.ts -var _stringify = __nccwpck_require__(33659); + // src/types/ErrorRuleObject.ts -var _parse = _interopRequireDefault(__nccwpck_require__(10887)); + // src/types/RuleSetObject.ts -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + // src/types/TreeRuleObject.ts -function stringToBytes(str) { - str = unescape(encodeURIComponent(str)); // UTF8 escape + // src/types/shared.ts - const bytes = []; + // Annotate the CommonJS export names for ESM import in node: - for (let i = 0; i < str.length; ++i) { - bytes.push(str.charCodeAt(i)); - } + 0 && 0 - return bytes; -} + /***/ + }, -const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8'; -exports.DNS = DNS; -const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8'; -exports.URL = URL; + /***/ 29318: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -function v35(name, version, hashfunc) { - function generateUUID(value, namespace, buf, offset) { - var _namespace; + // src/index.ts + var index_exports = {} + __export(index_exports, { + NODE_APP_ID_CONFIG_OPTIONS: () => NODE_APP_ID_CONFIG_OPTIONS, + UA_APP_ID_ENV_NAME: () => UA_APP_ID_ENV_NAME, + UA_APP_ID_INI_NAME: () => UA_APP_ID_INI_NAME, + createDefaultUserAgentProvider: () => createDefaultUserAgentProvider, + crtAvailability: () => crtAvailability, + defaultUserAgent: () => defaultUserAgent + }) + module.exports = __toCommonJS(index_exports) - if (typeof value === 'string') { - value = stringToBytes(value); - } + // src/defaultUserAgent.ts + var import_os = __nccwpck_require__(22037) + var import_process = __nccwpck_require__(77282) - if (typeof namespace === 'string') { - namespace = (0, _parse.default)(namespace); - } + // src/crt-availability.ts + var crtAvailability = { + isCrtAvailable: false + } - if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) { - throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)'); - } // Compute hash of namespace and value, Per 4.3 - // Future: Use spread syntax when supported on all platforms, e.g. `bytes = - // hashfunc([...namespace, ... value])` + // src/is-crt-available.ts + var isCrtAvailable = /* @__PURE__ */ __name(() => { + if (crtAvailability.isCrtAvailable) { + return ['md/crt-avail'] + } + return null + }, 'isCrtAvailable') + + // src/defaultUserAgent.ts + var createDefaultUserAgentProvider = /* @__PURE__ */ __name( + ({ serviceId, clientVersion }) => { + return async config => { + const sections = [ + // sdk-metadata + ['aws-sdk-js', clientVersion], + // ua-metadata + ['ua', '2.1'], + // os-metadata + [`os/${(0, import_os.platform)()}`, (0, import_os.release)()], + // language-metadata + // ECMAScript edition doesn't matter in JS, so no version needed. + ['lang/js'], + ['md/nodejs', `${import_process.versions.node}`] + ] + const crtAvailable = isCrtAvailable() + if (crtAvailable) { + sections.push(crtAvailable) + } + if (serviceId) { + sections.push([`api/${serviceId}`, clientVersion]) + } + if (import_process.env.AWS_EXECUTION_ENV) { + sections.push([ + `exec-env/${import_process.env.AWS_EXECUTION_ENV}` + ]) + } + const appId = await config?.userAgentAppId?.() + const resolvedUserAgent = appId + ? [...sections, [`app/${appId}`]] + : [...sections] + return resolvedUserAgent + } + }, + 'createDefaultUserAgentProvider' + ) + var defaultUserAgent = createDefaultUserAgentProvider + + // src/nodeAppIdConfigOptions.ts + var import_middleware_user_agent = __nccwpck_require__(1834) + var UA_APP_ID_ENV_NAME = 'AWS_SDK_UA_APP_ID' + var UA_APP_ID_INI_NAME = 'sdk_ua_app_id' + var UA_APP_ID_INI_NAME_DEPRECATED = 'sdk-ua-app-id' + var NODE_APP_ID_CONFIG_OPTIONS = { + environmentVariableSelector: /* @__PURE__ */ __name( + env2 => env2[UA_APP_ID_ENV_NAME], + 'environmentVariableSelector' + ), + configFileSelector: /* @__PURE__ */ __name( + profile => + profile[UA_APP_ID_INI_NAME] ?? + profile[UA_APP_ID_INI_NAME_DEPRECATED], + 'configFileSelector' + ), + default: import_middleware_user_agent.DEFAULT_UA_APP_ID + } + // Annotate the CommonJS export names for ESM import in node: + + 0 && 0 + + /***/ + }, + /***/ 99541: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + CONFIG_USE_DUALSTACK_ENDPOINT: () => CONFIG_USE_DUALSTACK_ENDPOINT, + CONFIG_USE_FIPS_ENDPOINT: () => CONFIG_USE_FIPS_ENDPOINT, + DEFAULT_USE_DUALSTACK_ENDPOINT: () => DEFAULT_USE_DUALSTACK_ENDPOINT, + DEFAULT_USE_FIPS_ENDPOINT: () => DEFAULT_USE_FIPS_ENDPOINT, + ENV_USE_DUALSTACK_ENDPOINT: () => ENV_USE_DUALSTACK_ENDPOINT, + ENV_USE_FIPS_ENDPOINT: () => ENV_USE_FIPS_ENDPOINT, + NODE_REGION_CONFIG_FILE_OPTIONS: () => NODE_REGION_CONFIG_FILE_OPTIONS, + NODE_REGION_CONFIG_OPTIONS: () => NODE_REGION_CONFIG_OPTIONS, + NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS: () => + NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, + NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS: () => + NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, + REGION_ENV_NAME: () => REGION_ENV_NAME, + REGION_INI_NAME: () => REGION_INI_NAME, + getRegionInfo: () => getRegionInfo, + resolveCustomEndpointsConfig: () => resolveCustomEndpointsConfig, + resolveEndpointsConfig: () => resolveEndpointsConfig, + resolveRegionConfig: () => resolveRegionConfig + }) + module.exports = __toCommonJS(src_exports) + + // src/endpointsConfig/NodeUseDualstackEndpointConfigOptions.ts + var import_util_config_provider = __nccwpck_require__(15233) + var ENV_USE_DUALSTACK_ENDPOINT = 'AWS_USE_DUALSTACK_ENDPOINT' + var CONFIG_USE_DUALSTACK_ENDPOINT = 'use_dualstack_endpoint' + var DEFAULT_USE_DUALSTACK_ENDPOINT = false + var NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS = { + environmentVariableSelector: env => + (0, import_util_config_provider.booleanSelector)( + env, + ENV_USE_DUALSTACK_ENDPOINT, + import_util_config_provider.SelectorType.ENV + ), + configFileSelector: profile => + (0, import_util_config_provider.booleanSelector)( + profile, + CONFIG_USE_DUALSTACK_ENDPOINT, + import_util_config_provider.SelectorType.CONFIG + ), + default: false + } + + // src/endpointsConfig/NodeUseFipsEndpointConfigOptions.ts + + var ENV_USE_FIPS_ENDPOINT = 'AWS_USE_FIPS_ENDPOINT' + var CONFIG_USE_FIPS_ENDPOINT = 'use_fips_endpoint' + var DEFAULT_USE_FIPS_ENDPOINT = false + var NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS = { + environmentVariableSelector: env => + (0, import_util_config_provider.booleanSelector)( + env, + ENV_USE_FIPS_ENDPOINT, + import_util_config_provider.SelectorType.ENV + ), + configFileSelector: profile => + (0, import_util_config_provider.booleanSelector)( + profile, + CONFIG_USE_FIPS_ENDPOINT, + import_util_config_provider.SelectorType.CONFIG + ), + default: false + } + + // src/endpointsConfig/resolveCustomEndpointsConfig.ts + var import_util_middleware = __nccwpck_require__(14298) + var resolveCustomEndpointsConfig = /* @__PURE__ */ __name(input => { + const { tls, endpoint, urlParser, useDualstackEndpoint } = input + return Object.assign(input, { + tls: tls ?? true, + endpoint: (0, import_util_middleware.normalizeProvider)( + typeof endpoint === 'string' ? urlParser(endpoint) : endpoint + ), + isCustomEndpoint: true, + useDualstackEndpoint: (0, import_util_middleware.normalizeProvider)( + useDualstackEndpoint ?? false + ) + }) + }, 'resolveCustomEndpointsConfig') - let bytes = new Uint8Array(16 + value.length); - bytes.set(namespace); - bytes.set(value, namespace.length); - bytes = hashfunc(bytes); - bytes[6] = bytes[6] & 0x0f | version; - bytes[8] = bytes[8] & 0x3f | 0x80; + // src/endpointsConfig/resolveEndpointsConfig.ts - if (buf) { - offset = offset || 0; + // src/endpointsConfig/utils/getEndpointFromRegion.ts + var getEndpointFromRegion = /* @__PURE__ */ __name(async input => { + const { tls = true } = input + const region = await input.region() + const dnsHostRegex = new RegExp( + /^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/ + ) + if (!dnsHostRegex.test(region)) { + throw new Error('Invalid region in client config') + } + const useDualstackEndpoint = await input.useDualstackEndpoint() + const useFipsEndpoint = await input.useFipsEndpoint() + const { hostname } = + (await input.regionInfoProvider(region, { + useDualstackEndpoint, + useFipsEndpoint + })) ?? {} + if (!hostname) { + throw new Error('Cannot resolve hostname from client config') + } + return input.urlParser(`${tls ? 'https:' : 'http:'}//${hostname}`) + }, 'getEndpointFromRegion') + + // src/endpointsConfig/resolveEndpointsConfig.ts + var resolveEndpointsConfig = /* @__PURE__ */ __name(input => { + const useDualstackEndpoint = (0, + import_util_middleware.normalizeProvider)( + input.useDualstackEndpoint ?? false + ) + const { endpoint, useFipsEndpoint, urlParser, tls } = input + return Object.assign(input, { + tls: tls ?? true, + endpoint: endpoint + ? (0, import_util_middleware.normalizeProvider)( + typeof endpoint === 'string' ? urlParser(endpoint) : endpoint + ) + : () => + getEndpointFromRegion({ + ...input, + useDualstackEndpoint, + useFipsEndpoint + }), + isCustomEndpoint: !!endpoint, + useDualstackEndpoint + }) + }, 'resolveEndpointsConfig') - for (let i = 0; i < 16; ++i) { - buf[offset + i] = bytes[i]; + // src/regionConfig/config.ts + var REGION_ENV_NAME = 'AWS_REGION' + var REGION_INI_NAME = 'region' + var NODE_REGION_CONFIG_OPTIONS = { + environmentVariableSelector: env => env[REGION_ENV_NAME], + configFileSelector: profile => profile[REGION_INI_NAME], + default: () => { + throw new Error('Region is missing') + } + } + var NODE_REGION_CONFIG_FILE_OPTIONS = { + preferredFile: 'credentials' } - return buf; - } - - return (0, _stringify.unsafeStringify)(bytes); - } // Function#name is not settable on some platforms (#270) - - - try { - generateUUID.name = name; // eslint-disable-next-line no-empty - } catch (err) {} // For CommonJS default export support - - - generateUUID.DNS = DNS; - generateUUID.URL = URL; - return generateUUID; -} - -/***/ }), - -/***/ 6475: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; + // src/regionConfig/isFipsRegion.ts + var isFipsRegion = /* @__PURE__ */ __name( + region => + typeof region === 'string' && + (region.startsWith('fips-') || region.endsWith('-fips')), + 'isFipsRegion' + ) + // src/regionConfig/getRealRegion.ts + var getRealRegion = /* @__PURE__ */ __name( + region => + isFipsRegion(region) + ? ['fips-aws-global', 'aws-fips'].includes(region) + ? 'us-east-1' + : region.replace(/fips-(dkr-|prod-)?|-fips/, '') + : region, + 'getRealRegion' + ) -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + // src/regionConfig/resolveRegionConfig.ts + var resolveRegionConfig = /* @__PURE__ */ __name(input => { + const { region, useFipsEndpoint } = input + if (!region) { + throw new Error('Region is missing') + } + return Object.assign(input, { + region: async () => { + if (typeof region === 'string') { + return getRealRegion(region) + } + const providedRegion = await region() + return getRealRegion(providedRegion) + }, + useFipsEndpoint: async () => { + const providedRegion = + typeof region === 'string' ? region : await region() + if (isFipsRegion(providedRegion)) { + return true + } + return typeof useFipsEndpoint !== 'function' + ? Promise.resolve(!!useFipsEndpoint) + : useFipsEndpoint() + } + }) + }, 'resolveRegionConfig') + + // src/regionInfo/getHostnameFromVariants.ts + var getHostnameFromVariants = /* @__PURE__ */ __name( + (variants = [], { useFipsEndpoint, useDualstackEndpoint }) => + variants.find( + ({ tags }) => + useFipsEndpoint === tags.includes('fips') && + useDualstackEndpoint === tags.includes('dualstack') + )?.hostname, + 'getHostnameFromVariants' + ) -var _native = _interopRequireDefault(__nccwpck_require__(33671)); + // src/regionInfo/getResolvedHostname.ts + var getResolvedHostname = /* @__PURE__ */ __name( + (resolvedRegion, { regionHostname, partitionHostname }) => + regionHostname + ? regionHostname + : partitionHostname + ? partitionHostname.replace('{region}', resolvedRegion) + : void 0, + 'getResolvedHostname' + ) -var _rng = _interopRequireDefault(__nccwpck_require__(25446)); + // src/regionInfo/getResolvedPartition.ts + var getResolvedPartition = /* @__PURE__ */ __name( + (region, { partitionHash }) => + Object.keys(partitionHash || {}).find(key => + partitionHash[key].regions.includes(region) + ) ?? 'aws', + 'getResolvedPartition' + ) -var _stringify = __nccwpck_require__(33659); + // src/regionInfo/getResolvedSigningRegion.ts + var getResolvedSigningRegion = /* @__PURE__ */ __name( + (hostname, { signingRegion, regionRegex, useFipsEndpoint }) => { + if (signingRegion) { + return signingRegion + } else if (useFipsEndpoint) { + const regionRegexJs = regionRegex + .replace('\\\\', '\\') + .replace(/^\^/g, '\\.') + .replace(/\$$/g, '\\.') + const regionRegexmatchArray = hostname.match(regionRegexJs) + if (regionRegexmatchArray) { + return regionRegexmatchArray[0].slice(1, -1) + } + } + }, + 'getResolvedSigningRegion' + ) -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + // src/regionInfo/getRegionInfo.ts + var getRegionInfo = /* @__PURE__ */ __name( + ( + region, + { + useFipsEndpoint = false, + useDualstackEndpoint = false, + signingService, + regionHash, + partitionHash + } + ) => { + const partition = getResolvedPartition(region, { partitionHash }) + const resolvedRegion = + region in regionHash + ? region + : (partitionHash[partition]?.endpoint ?? region) + const hostnameOptions = { useFipsEndpoint, useDualstackEndpoint } + const regionHostname = getHostnameFromVariants( + regionHash[resolvedRegion]?.variants, + hostnameOptions + ) + const partitionHostname = getHostnameFromVariants( + partitionHash[partition]?.variants, + hostnameOptions + ) + const hostname = getResolvedHostname(resolvedRegion, { + regionHostname, + partitionHostname + }) + if (hostname === void 0) { + throw new Error( + `Endpoint resolution failed for: ${{ resolvedRegion, useFipsEndpoint, useDualstackEndpoint }}` + ) + } + const signingRegion = getResolvedSigningRegion(hostname, { + signingRegion: regionHash[resolvedRegion]?.signingRegion, + regionRegex: partitionHash[partition].regionRegex, + useFipsEndpoint + }) + return { + partition, + signingService, + hostname, + ...(signingRegion && { signingRegion }), + ...(regionHash[resolvedRegion]?.signingService && { + signingService: regionHash[resolvedRegion].signingService + }) + } + }, + 'getRegionInfo' + ) + // Annotate the CommonJS export names for ESM import in node: -function v4(options, buf, offset) { - if (_native.default.randomUUID && !buf && !options) { - return _native.default.randomUUID(); - } + 0 && 0 - options = options || {}; + /***/ + }, - const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` + /***/ 1004: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + DefaultIdentityProviderConfig: () => DefaultIdentityProviderConfig, + EXPIRATION_MS: () => EXPIRATION_MS, + HttpApiKeyAuthSigner: () => HttpApiKeyAuthSigner, + HttpBearerAuthSigner: () => HttpBearerAuthSigner, + NoAuthSigner: () => NoAuthSigner, + createIsIdentityExpiredFunction: () => createIsIdentityExpiredFunction, + createPaginator: () => createPaginator, + doesIdentityRequireRefresh: () => doesIdentityRequireRefresh, + getHttpAuthSchemeEndpointRuleSetPlugin: () => + getHttpAuthSchemeEndpointRuleSetPlugin, + getHttpAuthSchemePlugin: () => getHttpAuthSchemePlugin, + getHttpSigningPlugin: () => getHttpSigningPlugin, + getSmithyContext: () => getSmithyContext, + httpAuthSchemeEndpointRuleSetMiddlewareOptions: () => + httpAuthSchemeEndpointRuleSetMiddlewareOptions, + httpAuthSchemeMiddleware: () => httpAuthSchemeMiddleware, + httpAuthSchemeMiddlewareOptions: () => httpAuthSchemeMiddlewareOptions, + httpSigningMiddleware: () => httpSigningMiddleware, + httpSigningMiddlewareOptions: () => httpSigningMiddlewareOptions, + isIdentityExpired: () => isIdentityExpired, + memoizeIdentityProvider: () => memoizeIdentityProvider, + normalizeProvider: () => normalizeProvider, + requestBuilder: () => import_protocols.requestBuilder, + setFeature: () => setFeature + }) + module.exports = __toCommonJS(src_exports) + + // src/getSmithyContext.ts + var import_types = __nccwpck_require__(63592) + var getSmithyContext = /* @__PURE__ */ __name( + context => + context[import_types.SMITHY_CONTEXT_KEY] || + (context[import_types.SMITHY_CONTEXT_KEY] = {}), + 'getSmithyContext' + ) + // src/middleware-http-auth-scheme/httpAuthSchemeMiddleware.ts + var import_util_middleware = __nccwpck_require__(14298) + function convertHttpAuthSchemesToMap(httpAuthSchemes) { + const map = /* @__PURE__ */ new Map() + for (const scheme of httpAuthSchemes) { + map.set(scheme.schemeId, scheme) + } + return map + } + __name(convertHttpAuthSchemesToMap, 'convertHttpAuthSchemesToMap') + var httpAuthSchemeMiddleware = /* @__PURE__ */ __name( + (config, mwOptions) => (next, context) => async args => { + const options = config.httpAuthSchemeProvider( + await mwOptions.httpAuthSchemeParametersProvider( + config, + context, + args.input + ) + ) + const authSchemes = convertHttpAuthSchemesToMap( + config.httpAuthSchemes + ) + const smithyContext = (0, import_util_middleware.getSmithyContext)( + context + ) + const failureReasons = [] + for (const option of options) { + const scheme = authSchemes.get(option.schemeId) + if (!scheme) { + failureReasons.push( + `HttpAuthScheme \`${option.schemeId}\` was not enabled for this service.` + ) + continue + } + const identityProvider = scheme.identityProvider( + await mwOptions.identityProviderConfigProvider(config) + ) + if (!identityProvider) { + failureReasons.push( + `HttpAuthScheme \`${option.schemeId}\` did not have an IdentityProvider configured.` + ) + continue + } + const { identityProperties = {}, signingProperties = {} } = + option.propertiesExtractor?.(config, context) || {} + option.identityProperties = Object.assign( + option.identityProperties || {}, + identityProperties + ) + option.signingProperties = Object.assign( + option.signingProperties || {}, + signingProperties + ) + smithyContext.selectedHttpAuthScheme = { + httpAuthOption: option, + identity: await identityProvider(option.identityProperties), + signer: scheme.signer + } + break + } + if (!smithyContext.selectedHttpAuthScheme) { + throw new Error(failureReasons.join('\n')) + } + return next(args) + }, + 'httpAuthSchemeMiddleware' + ) - rnds[6] = rnds[6] & 0x0f | 0x40; - rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided + // src/middleware-http-auth-scheme/getHttpAuthSchemeEndpointRuleSetPlugin.ts + var httpAuthSchemeEndpointRuleSetMiddlewareOptions = { + step: 'serialize', + tags: ['HTTP_AUTH_SCHEME'], + name: 'httpAuthSchemeMiddleware', + override: true, + relation: 'before', + toMiddleware: 'endpointV2Middleware' + } + var getHttpAuthSchemeEndpointRuleSetPlugin = /* @__PURE__ */ __name( + ( + config, + { httpAuthSchemeParametersProvider, identityProviderConfigProvider } + ) => ({ + applyToStack: clientStack => { + clientStack.addRelativeTo( + httpAuthSchemeMiddleware(config, { + httpAuthSchemeParametersProvider, + identityProviderConfigProvider + }), + httpAuthSchemeEndpointRuleSetMiddlewareOptions + ) + } + }), + 'getHttpAuthSchemeEndpointRuleSetPlugin' + ) - if (buf) { - offset = offset || 0; + // src/middleware-http-auth-scheme/getHttpAuthSchemePlugin.ts + var import_middleware_serde = __nccwpck_require__(94572) + var httpAuthSchemeMiddlewareOptions = { + step: 'serialize', + tags: ['HTTP_AUTH_SCHEME'], + name: 'httpAuthSchemeMiddleware', + override: true, + relation: 'before', + toMiddleware: import_middleware_serde.serializerMiddlewareOption.name + } + var getHttpAuthSchemePlugin = /* @__PURE__ */ __name( + ( + config, + { httpAuthSchemeParametersProvider, identityProviderConfigProvider } + ) => ({ + applyToStack: clientStack => { + clientStack.addRelativeTo( + httpAuthSchemeMiddleware(config, { + httpAuthSchemeParametersProvider, + identityProviderConfigProvider + }), + httpAuthSchemeMiddlewareOptions + ) + } + }), + 'getHttpAuthSchemePlugin' + ) - for (let i = 0; i < 16; ++i) { - buf[offset + i] = rnds[i]; - } + // src/middleware-http-signing/httpSigningMiddleware.ts + var import_protocol_http = __nccwpck_require__(18241) - return buf; - } + var defaultErrorHandler = /* @__PURE__ */ __name( + signingProperties => error => { + throw error + }, + 'defaultErrorHandler' + ) + var defaultSuccessHandler = /* @__PURE__ */ __name( + (httpResponse, signingProperties) => {}, + 'defaultSuccessHandler' + ) + var httpSigningMiddleware = /* @__PURE__ */ __name( + config => (next, context) => async args => { + if (!import_protocol_http.HttpRequest.isInstance(args.request)) { + return next(args) + } + const smithyContext = (0, import_util_middleware.getSmithyContext)( + context + ) + const scheme = smithyContext.selectedHttpAuthScheme + if (!scheme) { + throw new Error( + `No HttpAuthScheme was selected: unable to sign request` + ) + } + const { + httpAuthOption: { signingProperties = {} }, + identity, + signer + } = scheme + const output = await next({ + ...args, + request: await signer.sign( + args.request, + identity, + signingProperties + ) + }).catch( + (signer.errorHandler || defaultErrorHandler)(signingProperties) + ) + ;(signer.successHandler || defaultSuccessHandler)( + output.response, + signingProperties + ) + return output + }, + 'httpSigningMiddleware' + ) - return (0, _stringify.unsafeStringify)(rnds); -} + // src/middleware-http-signing/getHttpSigningMiddleware.ts + var httpSigningMiddlewareOptions = { + step: 'finalizeRequest', + tags: ['HTTP_SIGNING'], + name: 'httpSigningMiddleware', + aliases: ['apiKeyMiddleware', 'tokenMiddleware', 'awsAuthMiddleware'], + override: true, + relation: 'after', + toMiddleware: 'retryMiddleware' + } + var getHttpSigningPlugin = /* @__PURE__ */ __name( + config => ({ + applyToStack: clientStack => { + clientStack.addRelativeTo( + httpSigningMiddleware(config), + httpSigningMiddlewareOptions + ) + } + }), + 'getHttpSigningPlugin' + ) -var _default = v4; -exports["default"] = _default; + // src/normalizeProvider.ts + var normalizeProvider = /* @__PURE__ */ __name(input => { + if (typeof input === 'function') return input + const promisified = Promise.resolve(input) + return () => promisified + }, 'normalizeProvider') + + // src/pagination/createPaginator.ts + var makePagedClientRequest = /* @__PURE__ */ __name( + async (CommandCtor, client, input, withCommand = _ => _, ...args) => { + let command = new CommandCtor(input) + command = withCommand(command) ?? command + return await client.send(command, ...args) + }, + 'makePagedClientRequest' + ) + function createPaginator( + ClientCtor, + CommandCtor, + inputTokenName, + outputTokenName, + pageSizeTokenName + ) { + return /* @__PURE__ */ __name(async function* paginateOperation( + config, + input, + ...additionalArguments + ) { + const _input = input + let token = config.startingToken ?? _input[inputTokenName] + let hasNext = true + let page + while (hasNext) { + _input[inputTokenName] = token + if (pageSizeTokenName) { + _input[pageSizeTokenName] = + _input[pageSizeTokenName] ?? config.pageSize + } + if (config.client instanceof ClientCtor) { + page = await makePagedClientRequest( + CommandCtor, + config.client, + input, + config.withCommand, + ...additionalArguments + ) + } else { + throw new Error( + `Invalid client, expected instance of ${ClientCtor.name}` + ) + } + yield page + const prevToken = token + token = get(page, outputTokenName) + hasNext = !!( + token && + (!config.stopOnSameToken || token !== prevToken) + ) + } + return void 0 + }, 'paginateOperation') + } + __name(createPaginator, 'createPaginator') + var get = /* @__PURE__ */ __name((fromObject, path) => { + let cursor = fromObject + const pathComponents = path.split('.') + for (const step of pathComponents) { + if (!cursor || typeof cursor !== 'object') { + return void 0 + } + cursor = cursor[step] + } + return cursor + }, 'get') -/***/ }), + // src/protocols/requestBuilder.ts + var import_protocols = __nccwpck_require__(22072) -/***/ 60959: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + // src/setFeature.ts + function setFeature(context, feature, value) { + if (!context.__smithy_context) { + context.__smithy_context = { + features: {} + } + } else if (!context.__smithy_context.features) { + context.__smithy_context.features = {} + } + context.__smithy_context.features[feature] = value + } + __name(setFeature, 'setFeature') -"use strict"; + // src/util-identity-and-auth/DefaultIdentityProviderConfig.ts + var DefaultIdentityProviderConfig = class { + /** + * Creates an IdentityProviderConfig with a record of scheme IDs to identity providers. + * + * @param config scheme IDs and identity providers to configure + */ + constructor(config) { + this.authSchemes = /* @__PURE__ */ new Map() + for (const [key, value] of Object.entries(config)) { + if (value !== void 0) { + this.authSchemes.set(key, value) + } + } + } + static { + __name(this, 'DefaultIdentityProviderConfig') + } + getIdentityProvider(schemeId) { + return this.authSchemes.get(schemeId) + } + } + // src/util-identity-and-auth/httpAuthSchemes/httpApiKeyAuth.ts -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + var HttpApiKeyAuthSigner = class { + static { + __name(this, 'HttpApiKeyAuthSigner') + } + async sign(httpRequest, identity, signingProperties) { + if (!signingProperties) { + throw new Error( + 'request could not be signed with `apiKey` since the `name` and `in` signer properties are missing' + ) + } + if (!signingProperties.name) { + throw new Error( + 'request could not be signed with `apiKey` since the `name` signer property is missing' + ) + } + if (!signingProperties.in) { + throw new Error( + 'request could not be signed with `apiKey` since the `in` signer property is missing' + ) + } + if (!identity.apiKey) { + throw new Error( + 'request could not be signed with `apiKey` since the `apiKey` is not defined' + ) + } + const clonedRequest = + import_protocol_http.HttpRequest.clone(httpRequest) + if ( + signingProperties.in === import_types.HttpApiKeyAuthLocation.QUERY + ) { + clonedRequest.query[signingProperties.name] = identity.apiKey + } else if ( + signingProperties.in === import_types.HttpApiKeyAuthLocation.HEADER + ) { + clonedRequest.headers[signingProperties.name] = + signingProperties.scheme + ? `${signingProperties.scheme} ${identity.apiKey}` + : identity.apiKey + } else { + throw new Error( + 'request can only be signed with `apiKey` locations `query` or `header`, but found: `' + + signingProperties.in + + '`' + ) + } + return clonedRequest + } + } -var _v = _interopRequireDefault(__nccwpck_require__(13383)); + // src/util-identity-and-auth/httpAuthSchemes/httpBearerAuth.ts -var _sha = _interopRequireDefault(__nccwpck_require__(45889)); + var HttpBearerAuthSigner = class { + static { + __name(this, 'HttpBearerAuthSigner') + } + async sign(httpRequest, identity, signingProperties) { + const clonedRequest = + import_protocol_http.HttpRequest.clone(httpRequest) + if (!identity.token) { + throw new Error( + 'request could not be signed with `token` since the `token` is not defined' + ) + } + clonedRequest.headers['Authorization'] = `Bearer ${identity.token}` + return clonedRequest + } + } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + // src/util-identity-and-auth/httpAuthSchemes/noAuth.ts + var NoAuthSigner = class { + static { + __name(this, 'NoAuthSigner') + } + async sign(httpRequest, identity, signingProperties) { + return httpRequest + } + } -const v5 = (0, _v.default)('v5', 0x50, _sha.default); -var _default = v5; -exports["default"] = _default; + // src/util-identity-and-auth/memoizeIdentityProvider.ts + var createIsIdentityExpiredFunction = /* @__PURE__ */ __name( + expirationMs => identity => + doesIdentityRequireRefresh(identity) && + identity.expiration.getTime() - Date.now() < expirationMs, + 'createIsIdentityExpiredFunction' + ) + var EXPIRATION_MS = 3e5 + var isIdentityExpired = createIsIdentityExpiredFunction(EXPIRATION_MS) + var doesIdentityRequireRefresh = /* @__PURE__ */ __name( + identity => identity.expiration !== void 0, + 'doesIdentityRequireRefresh' + ) + var memoizeIdentityProvider = /* @__PURE__ */ __name( + (provider, isExpired, requiresRefresh) => { + if (provider === void 0) { + return void 0 + } + const normalizedProvider = + typeof provider !== 'function' + ? async () => Promise.resolve(provider) + : provider + let resolved + let pending + let hasResult + let isConstant = false + const coalesceProvider = /* @__PURE__ */ __name(async options => { + if (!pending) { + pending = normalizedProvider(options) + } + try { + resolved = await pending + hasResult = true + isConstant = false + } finally { + pending = void 0 + } + return resolved + }, 'coalesceProvider') + if (isExpired === void 0) { + return async options => { + if (!hasResult || options?.forceRefresh) { + resolved = await coalesceProvider(options) + } + return resolved + } + } + return async options => { + if (!hasResult || options?.forceRefresh) { + resolved = await coalesceProvider(options) + } + if (isConstant) { + return resolved + } + if (!requiresRefresh(resolved)) { + isConstant = true + return resolved + } + if (isExpired(resolved)) { + await coalesceProvider(options) + return resolved + } + return resolved + } + }, + 'memoizeIdentityProvider' + ) + // Annotate the CommonJS export names for ESM import in node: -/***/ }), + 0 && 0 -/***/ 10722: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + /***/ + }, -"use strict"; + /***/ 22072: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + // src/submodules/protocols/index.ts + var protocols_exports = {} + __export(protocols_exports, { + RequestBuilder: () => RequestBuilder, + collectBody: () => collectBody, + extendedEncodeURIComponent: () => extendedEncodeURIComponent, + requestBuilder: () => requestBuilder, + resolvedPath: () => resolvedPath + }) + module.exports = __toCommonJS(protocols_exports) -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + // src/submodules/protocols/collect-stream-body.ts + var import_util_stream = __nccwpck_require__(60530) + var collectBody = async (streamBody = new Uint8Array(), context) => { + if (streamBody instanceof Uint8Array) { + return import_util_stream.Uint8ArrayBlobAdapter.mutate(streamBody) + } + if (!streamBody) { + return import_util_stream.Uint8ArrayBlobAdapter.mutate( + new Uint8Array() + ) + } + const fromContext = context.streamCollector(streamBody) + return import_util_stream.Uint8ArrayBlobAdapter.mutate( + await fromContext + ) + } -var _regex = _interopRequireDefault(__nccwpck_require__(99135)); + // src/submodules/protocols/extended-encode-uri-component.ts + function extendedEncodeURIComponent(str) { + return encodeURIComponent(str).replace(/[!'()*]/g, function (c) { + return '%' + c.charCodeAt(0).toString(16).toUpperCase() + }) + } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + // src/submodules/protocols/requestBuilder.ts + var import_protocol_http = __nccwpck_require__(18241) -function validate(uuid) { - return typeof uuid === 'string' && _regex.default.test(uuid); -} + // src/submodules/protocols/resolve-path.ts + var resolvedPath = ( + resolvedPath2, + input, + memberName, + labelValueProvider, + uriLabel, + isGreedyLabel + ) => { + if (input != null && input[memberName] !== void 0) { + const labelValue = labelValueProvider() + if (labelValue.length <= 0) { + throw new Error( + 'Empty value provided for input HTTP label: ' + memberName + '.' + ) + } + resolvedPath2 = resolvedPath2.replace( + uriLabel, + isGreedyLabel + ? labelValue + .split('/') + .map(segment => extendedEncodeURIComponent(segment)) + .join('/') + : extendedEncodeURIComponent(labelValue) + ) + } else { + throw new Error( + 'No value provided for input HTTP label: ' + memberName + '.' + ) + } + return resolvedPath2 + } + + // src/submodules/protocols/requestBuilder.ts + function requestBuilder(input, context) { + return new RequestBuilder(input, context) + } + var RequestBuilder = class { + constructor(input, context) { + this.input = input + this.context = context + this.query = {} + this.method = '' + this.headers = {} + this.path = '' + this.body = null + this.hostname = '' + this.resolvePathStack = [] + } + async build() { + const { + hostname, + protocol = 'https', + port, + path: basePath + } = await this.context.endpoint() + this.path = basePath + for (const resolvePath of this.resolvePathStack) { + resolvePath(this.path) + } + return new import_protocol_http.HttpRequest({ + protocol, + hostname: this.hostname || hostname, + port, + method: this.method, + path: this.path, + query: this.query, + body: this.body, + headers: this.headers + }) + } + /** + * Brevity setter for "hostname". + */ + hn(hostname) { + this.hostname = hostname + return this + } + /** + * Brevity initial builder for "basepath". + */ + bp(uriLabel) { + this.resolvePathStack.push(basePath => { + this.path = + `${basePath?.endsWith('/') ? basePath.slice(0, -1) : basePath || ''}` + + uriLabel + }) + return this + } + /** + * Brevity incremental builder for "path". + */ + p(memberName, labelValueProvider, uriLabel, isGreedyLabel) { + this.resolvePathStack.push(path => { + this.path = resolvedPath( + path, + this.input, + memberName, + labelValueProvider, + uriLabel, + isGreedyLabel + ) + }) + return this + } + /** + * Brevity setter for "headers". + */ + h(headers) { + this.headers = headers + return this + } + /** + * Brevity setter for "query". + */ + q(query) { + this.query = query + return this + } + /** + * Brevity setter for "body". + */ + b(body) { + this.body = body + return this + } + /** + * Brevity setter for "method". + */ + m(method) { + this.method = method + return this + } + } + // Annotate the CommonJS export names for ESM import in node: + 0 && 0 -var _default = validate; -exports["default"] = _default; + /***/ + }, -/***/ }), + /***/ 83588: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + DEFAULT_MAX_RETRIES: () => DEFAULT_MAX_RETRIES, + DEFAULT_TIMEOUT: () => DEFAULT_TIMEOUT, + ENV_CMDS_AUTH_TOKEN: () => ENV_CMDS_AUTH_TOKEN, + ENV_CMDS_FULL_URI: () => ENV_CMDS_FULL_URI, + ENV_CMDS_RELATIVE_URI: () => ENV_CMDS_RELATIVE_URI, + Endpoint: () => Endpoint, + fromContainerMetadata: () => fromContainerMetadata, + fromInstanceMetadata: () => fromInstanceMetadata, + getInstanceMetadataEndpoint: () => getInstanceMetadataEndpoint, + httpRequest: () => httpRequest, + providerConfigFromInit: () => providerConfigFromInit + }) + module.exports = __toCommonJS(src_exports) -/***/ 95943: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + // src/fromContainerMetadata.ts -"use strict"; + var import_url = __nccwpck_require__(57310) + // src/remoteProvider/httpRequest.ts + var import_property_provider = __nccwpck_require__(51005) + var import_buffer = __nccwpck_require__(14300) + var import_http = __nccwpck_require__(13685) + function httpRequest(options) { + return new Promise((resolve, reject) => { + const req = (0, import_http.request)({ + method: 'GET', + ...options, + // Node.js http module doesn't accept hostname with square brackets + // Refs: https://github.com/nodejs/node/issues/39738 + hostname: options.hostname?.replace(/^\[(.+)\]$/, '$1') + }) + req.on('error', err => { + reject( + Object.assign( + new import_property_provider.ProviderError( + 'Unable to connect to instance metadata service' + ), + err + ) + ) + req.destroy() + }) + req.on('timeout', () => { + reject( + new import_property_provider.ProviderError( + 'TimeoutError from instance metadata service' + ) + ) + req.destroy() + }) + req.on('response', res => { + const { statusCode = 400 } = res + if (statusCode < 200 || 300 <= statusCode) { + reject( + Object.assign( + new import_property_provider.ProviderError( + 'Error response received from instance metadata service' + ), + { statusCode } + ) + ) + req.destroy() + } + const chunks = [] + res.on('data', chunk => { + chunks.push(chunk) + }) + res.on('end', () => { + resolve(import_buffer.Buffer.concat(chunks)) + req.destroy() + }) + }) + req.end() + }) + } + __name(httpRequest, 'httpRequest') + + // src/remoteProvider/ImdsCredentials.ts + var isImdsCredentials = /* @__PURE__ */ __name( + arg => + Boolean(arg) && + typeof arg === 'object' && + typeof arg.AccessKeyId === 'string' && + typeof arg.SecretAccessKey === 'string' && + typeof arg.Token === 'string' && + typeof arg.Expiration === 'string', + 'isImdsCredentials' + ) + var fromImdsCredentials = /* @__PURE__ */ __name( + creds => ({ + accessKeyId: creds.AccessKeyId, + secretAccessKey: creds.SecretAccessKey, + sessionToken: creds.Token, + expiration: new Date(creds.Expiration), + ...(creds.AccountId && { accountId: creds.AccountId }) + }), + 'fromImdsCredentials' + ) -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + // src/remoteProvider/RemoteProviderInit.ts + var DEFAULT_TIMEOUT = 1e3 + var DEFAULT_MAX_RETRIES = 0 + var providerConfigFromInit = /* @__PURE__ */ __name( + ({ maxRetries = DEFAULT_MAX_RETRIES, timeout = DEFAULT_TIMEOUT }) => ({ + maxRetries, + timeout + }), + 'providerConfigFromInit' + ) -var _validate = _interopRequireDefault(__nccwpck_require__(10722)); + // src/remoteProvider/retry.ts + var retry = /* @__PURE__ */ __name((toRetry, maxRetries) => { + let promise = toRetry() + for (let i = 0; i < maxRetries; i++) { + promise = promise.catch(toRetry) + } + return promise + }, 'retry') + + // src/fromContainerMetadata.ts + var ENV_CMDS_FULL_URI = 'AWS_CONTAINER_CREDENTIALS_FULL_URI' + var ENV_CMDS_RELATIVE_URI = 'AWS_CONTAINER_CREDENTIALS_RELATIVE_URI' + var ENV_CMDS_AUTH_TOKEN = 'AWS_CONTAINER_AUTHORIZATION_TOKEN' + var fromContainerMetadata = /* @__PURE__ */ __name((init = {}) => { + const { timeout, maxRetries } = providerConfigFromInit(init) + return () => + retry(async () => { + const requestOptions = await getCmdsUri({ logger: init.logger }) + const credsResponse = JSON.parse( + await requestFromEcsImds(timeout, requestOptions) + ) + if (!isImdsCredentials(credsResponse)) { + throw new import_property_provider.CredentialsProviderError( + 'Invalid response received from instance metadata service.', + { + logger: init.logger + } + ) + } + return fromImdsCredentials(credsResponse) + }, maxRetries) + }, 'fromContainerMetadata') + var requestFromEcsImds = /* @__PURE__ */ __name( + async (timeout, options) => { + if (process.env[ENV_CMDS_AUTH_TOKEN]) { + options.headers = { + ...options.headers, + Authorization: process.env[ENV_CMDS_AUTH_TOKEN] + } + } + const buffer = await httpRequest({ + ...options, + timeout + }) + return buffer.toString() + }, + 'requestFromEcsImds' + ) + var CMDS_IP = '169.254.170.2' + var GREENGRASS_HOSTS = { + localhost: true, + '127.0.0.1': true + } + var GREENGRASS_PROTOCOLS = { + 'http:': true, + 'https:': true + } + var getCmdsUri = /* @__PURE__ */ __name(async ({ logger }) => { + if (process.env[ENV_CMDS_RELATIVE_URI]) { + return { + hostname: CMDS_IP, + path: process.env[ENV_CMDS_RELATIVE_URI] + } + } + if (process.env[ENV_CMDS_FULL_URI]) { + const parsed = (0, import_url.parse)(process.env[ENV_CMDS_FULL_URI]) + if (!parsed.hostname || !(parsed.hostname in GREENGRASS_HOSTS)) { + throw new import_property_provider.CredentialsProviderError( + `${parsed.hostname} is not a valid container metadata service hostname`, + { + tryNextLink: false, + logger + } + ) + } + if (!parsed.protocol || !(parsed.protocol in GREENGRASS_PROTOCOLS)) { + throw new import_property_provider.CredentialsProviderError( + `${parsed.protocol} is not a valid container metadata service protocol`, + { + tryNextLink: false, + logger + } + ) + } + return { + ...parsed, + port: parsed.port ? parseInt(parsed.port, 10) : void 0 + } + } + throw new import_property_provider.CredentialsProviderError( + `The container metadata credential provider cannot be used unless the ${ENV_CMDS_RELATIVE_URI} or ${ENV_CMDS_FULL_URI} environment variable is set`, + { + tryNextLink: false, + logger + } + ) + }, 'getCmdsUri') -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + // src/fromInstanceMetadata.ts -function version(uuid) { - if (!(0, _validate.default)(uuid)) { - throw TypeError('Invalid UUID'); - } + // src/error/InstanceMetadataV1FallbackError.ts - return parseInt(uuid.slice(14, 15), 16); -} + var InstanceMetadataV1FallbackError = class _InstanceMetadataV1FallbackError + extends import_property_provider.CredentialsProviderError + { + constructor(message, tryNextLink = true) { + super(message, tryNextLink) + this.tryNextLink = tryNextLink + this.name = 'InstanceMetadataV1FallbackError' + Object.setPrototypeOf( + this, + _InstanceMetadataV1FallbackError.prototype + ) + } + static { + __name(this, 'InstanceMetadataV1FallbackError') + } + } + + // src/utils/getInstanceMetadataEndpoint.ts + var import_node_config_provider = __nccwpck_require__(85650) + var import_url_parser = __nccwpck_require__(94769) + + // src/config/Endpoint.ts + var Endpoint = /* @__PURE__ */ (Endpoint2 => { + Endpoint2['IPv4'] = 'http://169.254.169.254' + Endpoint2['IPv6'] = 'http://[fd00:ec2::254]' + return Endpoint2 + })(Endpoint || {}) + + // src/config/EndpointConfigOptions.ts + var ENV_ENDPOINT_NAME = 'AWS_EC2_METADATA_SERVICE_ENDPOINT' + var CONFIG_ENDPOINT_NAME = 'ec2_metadata_service_endpoint' + var ENDPOINT_CONFIG_OPTIONS = { + environmentVariableSelector: env => env[ENV_ENDPOINT_NAME], + configFileSelector: profile => profile[CONFIG_ENDPOINT_NAME], + default: void 0 + } + + // src/config/EndpointMode.ts + var EndpointMode = /* @__PURE__ */ (EndpointMode2 => { + EndpointMode2['IPv4'] = 'IPv4' + EndpointMode2['IPv6'] = 'IPv6' + return EndpointMode2 + })(EndpointMode || {}) + + // src/config/EndpointModeConfigOptions.ts + var ENV_ENDPOINT_MODE_NAME = 'AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE' + var CONFIG_ENDPOINT_MODE_NAME = 'ec2_metadata_service_endpoint_mode' + var ENDPOINT_MODE_CONFIG_OPTIONS = { + environmentVariableSelector: env => env[ENV_ENDPOINT_MODE_NAME], + configFileSelector: profile => profile[CONFIG_ENDPOINT_MODE_NAME], + default: 'IPv4' /* IPv4 */ + } + + // src/utils/getInstanceMetadataEndpoint.ts + var getInstanceMetadataEndpoint = /* @__PURE__ */ __name( + async () => + (0, import_url_parser.parseUrl)( + (await getFromEndpointConfig()) || + (await getFromEndpointModeConfig()) + ), + 'getInstanceMetadataEndpoint' + ) + var getFromEndpointConfig = /* @__PURE__ */ __name( + async () => + (0, import_node_config_provider.loadConfig)( + ENDPOINT_CONFIG_OPTIONS + )(), + 'getFromEndpointConfig' + ) + var getFromEndpointModeConfig = /* @__PURE__ */ __name(async () => { + const endpointMode = await (0, import_node_config_provider.loadConfig)( + ENDPOINT_MODE_CONFIG_OPTIONS + )() + switch (endpointMode) { + case 'IPv4' /* IPv4 */: + return 'http://169.254.169.254' /* IPv4 */ + case 'IPv6' /* IPv6 */: + return 'http://[fd00:ec2::254]' /* IPv6 */ + default: + throw new Error( + `Unsupported endpoint mode: ${endpointMode}. Select from ${Object.values(EndpointMode)}` + ) + } + }, 'getFromEndpointModeConfig') + + // src/utils/getExtendedInstanceMetadataCredentials.ts + var STATIC_STABILITY_REFRESH_INTERVAL_SECONDS = 5 * 60 + var STATIC_STABILITY_REFRESH_INTERVAL_JITTER_WINDOW_SECONDS = 5 * 60 + var STATIC_STABILITY_DOC_URL = + 'https://docs.aws.amazon.com/sdkref/latest/guide/feature-static-credentials.html' + var getExtendedInstanceMetadataCredentials = /* @__PURE__ */ __name( + (credentials, logger) => { + const refreshInterval = + STATIC_STABILITY_REFRESH_INTERVAL_SECONDS + + Math.floor( + Math.random() * + STATIC_STABILITY_REFRESH_INTERVAL_JITTER_WINDOW_SECONDS + ) + const newExpiration = new Date(Date.now() + refreshInterval * 1e3) + logger.warn( + `Attempting credential expiration extension due to a credential service availability issue. A refresh of these credentials will be attempted after ${new Date(newExpiration)}. +For more information, please visit: ` + STATIC_STABILITY_DOC_URL + ) + const originalExpiration = + credentials.originalExpiration ?? credentials.expiration + return { + ...credentials, + ...(originalExpiration ? { originalExpiration } : {}), + expiration: newExpiration + } + }, + 'getExtendedInstanceMetadataCredentials' + ) -var _default = version; -exports["default"] = _default; + // src/utils/staticStabilityProvider.ts + var staticStabilityProvider = /* @__PURE__ */ __name( + (provider, options = {}) => { + const logger = options?.logger || console + let pastCredentials + return async () => { + let credentials + try { + credentials = await provider() + if ( + credentials.expiration && + credentials.expiration.getTime() < Date.now() + ) { + credentials = getExtendedInstanceMetadataCredentials( + credentials, + logger + ) + } + } catch (e) { + if (pastCredentials) { + logger.warn('Credential renew failed: ', e) + credentials = getExtendedInstanceMetadataCredentials( + pastCredentials, + logger + ) + } else { + throw e + } + } + pastCredentials = credentials + return credentials + } + }, + 'staticStabilityProvider' + ) -/***/ }), + // src/fromInstanceMetadata.ts + var IMDS_PATH = '/latest/meta-data/iam/security-credentials/' + var IMDS_TOKEN_PATH = '/latest/api/token' + var AWS_EC2_METADATA_V1_DISABLED = 'AWS_EC2_METADATA_V1_DISABLED' + var PROFILE_AWS_EC2_METADATA_V1_DISABLED = 'ec2_metadata_v1_disabled' + var X_AWS_EC2_METADATA_TOKEN = 'x-aws-ec2-metadata-token' + var fromInstanceMetadata = /* @__PURE__ */ __name( + (init = {}) => + staticStabilityProvider(getInstanceMetadataProvider(init), { + logger: init.logger + }), + 'fromInstanceMetadata' + ) + var getInstanceMetadataProvider = /* @__PURE__ */ __name((init = {}) => { + let disableFetchToken = false + const { logger, profile } = init + const { timeout, maxRetries } = providerConfigFromInit(init) + const getCredentials = /* @__PURE__ */ __name( + async (maxRetries2, options) => { + const isImdsV1Fallback = + disableFetchToken || + options.headers?.[X_AWS_EC2_METADATA_TOKEN] == null + if (isImdsV1Fallback) { + let fallbackBlockedFromProfile = false + let fallbackBlockedFromProcessEnv = false + const configValue = await (0, + import_node_config_provider.loadConfig)( + { + environmentVariableSelector: env => { + const envValue = env[AWS_EC2_METADATA_V1_DISABLED] + fallbackBlockedFromProcessEnv = + !!envValue && envValue !== 'false' + if (envValue === void 0) { + throw new import_property_provider.CredentialsProviderError( + `${AWS_EC2_METADATA_V1_DISABLED} not set in env, checking config file next.`, + { logger: init.logger } + ) + } + return fallbackBlockedFromProcessEnv + }, + configFileSelector: profile2 => { + const profileValue = + profile2[PROFILE_AWS_EC2_METADATA_V1_DISABLED] + fallbackBlockedFromProfile = + !!profileValue && profileValue !== 'false' + return fallbackBlockedFromProfile + }, + default: false + }, + { + profile + } + )() + if (init.ec2MetadataV1Disabled || configValue) { + const causes = [] + if (init.ec2MetadataV1Disabled) + causes.push( + 'credential provider initialization (runtime option ec2MetadataV1Disabled)' + ) + if (fallbackBlockedFromProfile) + causes.push( + `config file profile (${PROFILE_AWS_EC2_METADATA_V1_DISABLED})` + ) + if (fallbackBlockedFromProcessEnv) + causes.push( + `process environment variable (${AWS_EC2_METADATA_V1_DISABLED})` + ) + throw new InstanceMetadataV1FallbackError( + `AWS EC2 Metadata v1 fallback has been blocked by AWS SDK configuration in the following: [${causes.join( + ', ' + )}].` + ) + } + } + const imdsProfile = ( + await retry(async () => { + let profile2 + try { + profile2 = await getProfile(options) + } catch (err) { + if (err.statusCode === 401) { + disableFetchToken = false + } + throw err + } + return profile2 + }, maxRetries2) + ).trim() + return retry(async () => { + let creds + try { + creds = await getCredentialsFromProfile( + imdsProfile, + options, + init + ) + } catch (err) { + if (err.statusCode === 401) { + disableFetchToken = false + } + throw err + } + return creds + }, maxRetries2) + }, + 'getCredentials' + ) + return async () => { + const endpoint = await getInstanceMetadataEndpoint() + if (disableFetchToken) { + logger?.debug( + 'AWS SDK Instance Metadata', + 'using v1 fallback (no token fetch)' + ) + return getCredentials(maxRetries, { ...endpoint, timeout }) + } else { + let token + try { + token = ( + await getMetadataToken({ ...endpoint, timeout }) + ).toString() + } catch (error) { + if (error?.statusCode === 400) { + throw Object.assign(error, { + message: 'EC2 Metadata token request returned error' + }) + } else if ( + error.message === 'TimeoutError' || + [403, 404, 405].includes(error.statusCode) + ) { + disableFetchToken = true + } + logger?.debug( + 'AWS SDK Instance Metadata', + 'using v1 fallback (initial)' + ) + return getCredentials(maxRetries, { ...endpoint, timeout }) + } + return getCredentials(maxRetries, { + ...endpoint, + headers: { + [X_AWS_EC2_METADATA_TOKEN]: token + }, + timeout + }) + } + } + }, 'getInstanceMetadataProvider') + var getMetadataToken = /* @__PURE__ */ __name( + async options => + httpRequest({ + ...options, + path: IMDS_TOKEN_PATH, + method: 'PUT', + headers: { + 'x-aws-ec2-metadata-token-ttl-seconds': '21600' + } + }), + 'getMetadataToken' + ) + var getProfile = /* @__PURE__ */ __name( + async options => + (await httpRequest({ ...options, path: IMDS_PATH })).toString(), + 'getProfile' + ) + var getCredentialsFromProfile = /* @__PURE__ */ __name( + async (profile, options, init) => { + const credentialsResponse = JSON.parse( + ( + await httpRequest({ + ...options, + path: IMDS_PATH + profile + }) + ).toString() + ) + if (!isImdsCredentials(credentialsResponse)) { + throw new import_property_provider.CredentialsProviderError( + 'Invalid response received from instance metadata service.', + { + logger: init.logger + } + ) + } + return fromImdsCredentials(credentialsResponse) + }, + 'getCredentialsFromProfile' + ) + // Annotate the CommonJS export names for ESM import in node: -/***/ 16948: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + 0 && 0 -"use strict"; + /***/ + }, -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.resolveHttpAuthSchemeConfig = exports.defaultSSOOIDCHttpAuthSchemeProvider = exports.defaultSSOOIDCHttpAuthSchemeParametersProvider = void 0; -const core_1 = __nccwpck_require__(59963); -const util_middleware_1 = __nccwpck_require__(2390); -const defaultSSOOIDCHttpAuthSchemeParametersProvider = async (config, context, input) => { - return { - operation: (0, util_middleware_1.getSmithyContext)(context).operation, - region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) || - (() => { - throw new Error("expected `region` to be configured for `aws.auth#sigv4`"); - })(), - }; -}; -exports.defaultSSOOIDCHttpAuthSchemeParametersProvider = defaultSSOOIDCHttpAuthSchemeParametersProvider; -function createAwsAuthSigv4HttpAuthOption(authParameters) { - return { - schemeId: "aws.auth#sigv4", - signingProperties: { - name: "sso-oauth", - region: authParameters.region, - }, - propertiesExtractor: (config, context) => ({ - signingProperties: { - config, - context, - }, - }), - }; -} -function createSmithyApiNoAuthHttpAuthOption(authParameters) { - return { - schemeId: "smithy.api#noAuth", - }; -} -const defaultSSOOIDCHttpAuthSchemeProvider = (authParameters) => { - const options = []; - switch (authParameters.operation) { - case "CreateToken": { - options.push(createSmithyApiNoAuthHttpAuthOption(authParameters)); - break; - } - case "RegisterClient": { - options.push(createSmithyApiNoAuthHttpAuthOption(authParameters)); - break; - } - case "StartDeviceAuthorization": { - options.push(createSmithyApiNoAuthHttpAuthOption(authParameters)); - break; - } - default: { - options.push(createAwsAuthSigv4HttpAuthOption(authParameters)); + /***/ 28509: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) } - } - return options; -}; -exports.defaultSSOOIDCHttpAuthSchemeProvider = defaultSSOOIDCHttpAuthSchemeProvider; -const resolveHttpAuthSchemeConfig = (config) => { - const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config); - return { - ...config_0, - }; -}; -exports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig; - - -/***/ }), - -/***/ 97604: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.defaultEndpointResolver = void 0; -const util_endpoints_1 = __nccwpck_require__(13350); -const util_endpoints_2 = __nccwpck_require__(45473); -const ruleset_1 = __nccwpck_require__(51756); -const defaultEndpointResolver = (endpointParams, context = {}) => { - return (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, { - endpointParams: endpointParams, - logger: context.logger, - }); -}; -exports.defaultEndpointResolver = defaultEndpointResolver; -util_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions; - - -/***/ }), - -/***/ 51756: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.ruleSet = void 0; -const u = "required", v = "fn", w = "argv", x = "ref"; -const a = true, b = "isSet", c = "booleanEquals", d = "error", e = "endpoint", f = "tree", g = "PartitionResult", h = "getAttr", i = { [u]: false, "type": "String" }, j = { [u]: true, "default": false, "type": "Boolean" }, k = { [x]: "Endpoint" }, l = { [v]: c, [w]: [{ [x]: "UseFIPS" }, true] }, m = { [v]: c, [w]: [{ [x]: "UseDualStack" }, true] }, n = {}, o = { [v]: h, [w]: [{ [x]: g }, "supportsFIPS"] }, p = { [x]: g }, q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, "supportsDualStack"] }] }, r = [l], s = [m], t = [{ [x]: "Region" }]; -const _data = { version: "1.0", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [v]: b, [w]: [k] }], rules: [{ conditions: r, error: "Invalid Configuration: FIPS and custom endpoint are not supported", type: d }, { conditions: s, error: "Invalid Configuration: Dualstack and custom endpoint are not supported", type: d }, { endpoint: { url: k, properties: n, headers: n }, type: e }], type: f }, { conditions: [{ [v]: b, [w]: t }], rules: [{ conditions: [{ [v]: "aws.partition", [w]: t, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [v]: c, [w]: [a, o] }, q], rules: [{ endpoint: { url: "https://oidc-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", properties: n, headers: n }, type: e }], type: f }, { error: "FIPS and DualStack are enabled, but this partition does not support one or both", type: d }], type: f }, { conditions: r, rules: [{ conditions: [{ [v]: c, [w]: [o, a] }], rules: [{ conditions: [{ [v]: "stringEquals", [w]: [{ [v]: h, [w]: [p, "name"] }, "aws-us-gov"] }], endpoint: { url: "https://oidc.{Region}.amazonaws.com", properties: n, headers: n }, type: e }, { endpoint: { url: "https://oidc-fips.{Region}.{PartitionResult#dnsSuffix}", properties: n, headers: n }, type: e }], type: f }, { error: "FIPS is enabled but this partition does not support FIPS", type: d }], type: f }, { conditions: s, rules: [{ conditions: [q], rules: [{ endpoint: { url: "https://oidc.{Region}.{PartitionResult#dualStackDnsSuffix}", properties: n, headers: n }, type: e }], type: f }, { error: "DualStack is enabled but this partition does not support DualStack", type: d }], type: f }, { endpoint: { url: "https://oidc.{Region}.{PartitionResult#dnsSuffix}", properties: n, headers: n }, type: e }], type: f }], type: f }, { error: "Invalid Configuration: Missing Region", type: d }] }; -exports.ruleSet = _data; - - -/***/ }), - -/***/ 54527: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - AccessDeniedException: () => AccessDeniedException, - AuthorizationPendingException: () => AuthorizationPendingException, - CreateTokenCommand: () => CreateTokenCommand, - CreateTokenRequestFilterSensitiveLog: () => CreateTokenRequestFilterSensitiveLog, - CreateTokenResponseFilterSensitiveLog: () => CreateTokenResponseFilterSensitiveLog, - CreateTokenWithIAMCommand: () => CreateTokenWithIAMCommand, - CreateTokenWithIAMRequestFilterSensitiveLog: () => CreateTokenWithIAMRequestFilterSensitiveLog, - CreateTokenWithIAMResponseFilterSensitiveLog: () => CreateTokenWithIAMResponseFilterSensitiveLog, - ExpiredTokenException: () => ExpiredTokenException, - InternalServerException: () => InternalServerException, - InvalidClientException: () => InvalidClientException, - InvalidClientMetadataException: () => InvalidClientMetadataException, - InvalidGrantException: () => InvalidGrantException, - InvalidRedirectUriException: () => InvalidRedirectUriException, - InvalidRequestException: () => InvalidRequestException, - InvalidRequestRegionException: () => InvalidRequestRegionException, - InvalidScopeException: () => InvalidScopeException, - RegisterClientCommand: () => RegisterClientCommand, - RegisterClientResponseFilterSensitiveLog: () => RegisterClientResponseFilterSensitiveLog, - SSOOIDC: () => SSOOIDC, - SSOOIDCClient: () => SSOOIDCClient, - SSOOIDCServiceException: () => SSOOIDCServiceException, - SlowDownException: () => SlowDownException, - StartDeviceAuthorizationCommand: () => StartDeviceAuthorizationCommand, - StartDeviceAuthorizationRequestFilterSensitiveLog: () => StartDeviceAuthorizationRequestFilterSensitiveLog, - UnauthorizedClientException: () => UnauthorizedClientException, - UnsupportedGrantTypeException: () => UnsupportedGrantTypeException, - __Client: () => import_smithy_client.Client -}); -module.exports = __toCommonJS(src_exports); - -// src/SSOOIDCClient.ts -var import_middleware_host_header = __nccwpck_require__(22545); -var import_middleware_logger = __nccwpck_require__(20014); -var import_middleware_recursion_detection = __nccwpck_require__(85525); -var import_middleware_user_agent = __nccwpck_require__(64688); -var import_config_resolver = __nccwpck_require__(53098); -var import_core = __nccwpck_require__(55829); -var import_middleware_content_length = __nccwpck_require__(82800); -var import_middleware_endpoint = __nccwpck_require__(82918); -var import_middleware_retry = __nccwpck_require__(96039); - -var import_httpAuthSchemeProvider = __nccwpck_require__(16948); - -// src/endpoint/EndpointParameters.ts -var resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => { - return { - ...options, - useDualstackEndpoint: options.useDualstackEndpoint ?? false, - useFipsEndpoint: options.useFipsEndpoint ?? false, - defaultSigningName: "sso-oauth" - }; -}, "resolveClientEndpointParameters"); -var commonParams = { - UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" }, - Endpoint: { type: "builtInParams", name: "endpoint" }, - Region: { type: "builtInParams", name: "region" }, - UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" } -}; - -// src/SSOOIDCClient.ts -var import_runtimeConfig = __nccwpck_require__(25524); - -// src/runtimeExtensions.ts -var import_region_config_resolver = __nccwpck_require__(18156); -var import_protocol_http = __nccwpck_require__(64418); -var import_smithy_client = __nccwpck_require__(63570); - -// src/auth/httpAuthExtensionConfiguration.ts -var getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => { - const _httpAuthSchemes = runtimeConfig.httpAuthSchemes; - let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider; - let _credentials = runtimeConfig.credentials; - return { - setHttpAuthScheme(httpAuthScheme) { - const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId); - if (index === -1) { - _httpAuthSchemes.push(httpAuthScheme); - } else { - _httpAuthSchemes.splice(index, 1, httpAuthScheme); + return to } - }, - httpAuthSchemes() { - return _httpAuthSchemes; - }, - setHttpAuthSchemeProvider(httpAuthSchemeProvider) { - _httpAuthSchemeProvider = httpAuthSchemeProvider; - }, - httpAuthSchemeProvider() { - return _httpAuthSchemeProvider; - }, - setCredentials(credentials) { - _credentials = credentials; - }, - credentials() { - return _credentials; - } - }; -}, "getHttpAuthExtensionConfiguration"); -var resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => { - return { - httpAuthSchemes: config.httpAuthSchemes(), - httpAuthSchemeProvider: config.httpAuthSchemeProvider(), - credentials: config.credentials() - }; -}, "resolveHttpAuthRuntimeConfig"); - -// src/runtimeExtensions.ts -var asPartial = /* @__PURE__ */ __name((t) => t, "asPartial"); -var resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => { - const extensionConfiguration = { - ...asPartial((0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig)), - ...asPartial((0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig)), - ...asPartial((0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig)), - ...asPartial(getHttpAuthExtensionConfiguration(runtimeConfig)) - }; - extensions.forEach((extension) => extension.configure(extensionConfiguration)); - return { - ...runtimeConfig, - ...(0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration), - ...(0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration), - ...(0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration), - ...resolveHttpAuthRuntimeConfig(extensionConfiguration) - }; -}, "resolveRuntimeExtensions"); - -// src/SSOOIDCClient.ts -var _SSOOIDCClient = class _SSOOIDCClient extends import_smithy_client.Client { - constructor(...[configuration]) { - const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {}); - const _config_1 = resolveClientEndpointParameters(_config_0); - const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1); - const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2); - const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3); - const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4); - const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5); - const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6); - const _config_8 = resolveRuntimeExtensions(_config_7, (configuration == null ? void 0 : configuration.extensions) || []); - super(_config_8); - this.config = _config_8; - this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config)); - this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config)); - this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config)); - this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config)); - this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config)); - this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config)); - this.middlewareStack.use( - (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, { - httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultSSOOIDCHttpAuthSchemeParametersProvider, - identityProviderConfigProvider: async (config) => new import_core.DefaultIdentityProviderConfig({ - "aws.auth#sigv4": config.credentials - }) - }) - ); - this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config)); - } - /** - * Destroy underlying resources, like sockets. It's usually not necessary to do this. - * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed. - * Otherwise, sockets might stay open for quite a long time before the server terminates them. - */ - destroy() { - super.destroy(); - } -}; -__name(_SSOOIDCClient, "SSOOIDCClient"); -var SSOOIDCClient = _SSOOIDCClient; - -// src/SSOOIDC.ts - - -// src/commands/CreateTokenCommand.ts + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -var import_middleware_serde = __nccwpck_require__(81238); - - -// src/models/models_0.ts + // src/index.ts + var src_exports = {} + __export(src_exports, { + FetchHttpHandler: () => FetchHttpHandler, + keepAliveSupport: () => keepAliveSupport, + streamCollector: () => streamCollector + }) + module.exports = __toCommonJS(src_exports) + // src/fetch-http-handler.ts + var import_protocol_http = __nccwpck_require__(18241) + var import_querystring_builder = __nccwpck_require__(39025) -// src/models/SSOOIDCServiceException.ts + // src/create-request.ts + function createRequest(url, requestOptions) { + return new Request(url, requestOptions) + } + __name(createRequest, 'createRequest') -var _SSOOIDCServiceException = class _SSOOIDCServiceException extends import_smithy_client.ServiceException { - /** - * @internal - */ - constructor(options) { - super(options); - Object.setPrototypeOf(this, _SSOOIDCServiceException.prototype); - } -}; -__name(_SSOOIDCServiceException, "SSOOIDCServiceException"); -var SSOOIDCServiceException = _SSOOIDCServiceException; - -// src/models/models_0.ts -var _AccessDeniedException = class _AccessDeniedException extends SSOOIDCServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "AccessDeniedException", - $fault: "client", - ...opts - }); - this.name = "AccessDeniedException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _AccessDeniedException.prototype); - this.error = opts.error; - this.error_description = opts.error_description; - } -}; -__name(_AccessDeniedException, "AccessDeniedException"); -var AccessDeniedException = _AccessDeniedException; -var _AuthorizationPendingException = class _AuthorizationPendingException extends SSOOIDCServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "AuthorizationPendingException", - $fault: "client", - ...opts - }); - this.name = "AuthorizationPendingException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _AuthorizationPendingException.prototype); - this.error = opts.error; - this.error_description = opts.error_description; - } -}; -__name(_AuthorizationPendingException, "AuthorizationPendingException"); -var AuthorizationPendingException = _AuthorizationPendingException; -var _ExpiredTokenException = class _ExpiredTokenException extends SSOOIDCServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "ExpiredTokenException", - $fault: "client", - ...opts - }); - this.name = "ExpiredTokenException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _ExpiredTokenException.prototype); - this.error = opts.error; - this.error_description = opts.error_description; - } -}; -__name(_ExpiredTokenException, "ExpiredTokenException"); -var ExpiredTokenException = _ExpiredTokenException; -var _InternalServerException = class _InternalServerException extends SSOOIDCServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "InternalServerException", - $fault: "server", - ...opts - }); - this.name = "InternalServerException"; - this.$fault = "server"; - Object.setPrototypeOf(this, _InternalServerException.prototype); - this.error = opts.error; - this.error_description = opts.error_description; - } -}; -__name(_InternalServerException, "InternalServerException"); -var InternalServerException = _InternalServerException; -var _InvalidClientException = class _InvalidClientException extends SSOOIDCServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "InvalidClientException", - $fault: "client", - ...opts - }); - this.name = "InvalidClientException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _InvalidClientException.prototype); - this.error = opts.error; - this.error_description = opts.error_description; - } -}; -__name(_InvalidClientException, "InvalidClientException"); -var InvalidClientException = _InvalidClientException; -var _InvalidGrantException = class _InvalidGrantException extends SSOOIDCServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "InvalidGrantException", - $fault: "client", - ...opts - }); - this.name = "InvalidGrantException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _InvalidGrantException.prototype); - this.error = opts.error; - this.error_description = opts.error_description; - } -}; -__name(_InvalidGrantException, "InvalidGrantException"); -var InvalidGrantException = _InvalidGrantException; -var _InvalidRequestException = class _InvalidRequestException extends SSOOIDCServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "InvalidRequestException", - $fault: "client", - ...opts - }); - this.name = "InvalidRequestException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _InvalidRequestException.prototype); - this.error = opts.error; - this.error_description = opts.error_description; - } -}; -__name(_InvalidRequestException, "InvalidRequestException"); -var InvalidRequestException = _InvalidRequestException; -var _InvalidScopeException = class _InvalidScopeException extends SSOOIDCServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "InvalidScopeException", - $fault: "client", - ...opts - }); - this.name = "InvalidScopeException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _InvalidScopeException.prototype); - this.error = opts.error; - this.error_description = opts.error_description; - } -}; -__name(_InvalidScopeException, "InvalidScopeException"); -var InvalidScopeException = _InvalidScopeException; -var _SlowDownException = class _SlowDownException extends SSOOIDCServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "SlowDownException", - $fault: "client", - ...opts - }); - this.name = "SlowDownException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _SlowDownException.prototype); - this.error = opts.error; - this.error_description = opts.error_description; - } -}; -__name(_SlowDownException, "SlowDownException"); -var SlowDownException = _SlowDownException; -var _UnauthorizedClientException = class _UnauthorizedClientException extends SSOOIDCServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "UnauthorizedClientException", - $fault: "client", - ...opts - }); - this.name = "UnauthorizedClientException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _UnauthorizedClientException.prototype); - this.error = opts.error; - this.error_description = opts.error_description; - } -}; -__name(_UnauthorizedClientException, "UnauthorizedClientException"); -var UnauthorizedClientException = _UnauthorizedClientException; -var _UnsupportedGrantTypeException = class _UnsupportedGrantTypeException extends SSOOIDCServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "UnsupportedGrantTypeException", - $fault: "client", - ...opts - }); - this.name = "UnsupportedGrantTypeException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _UnsupportedGrantTypeException.prototype); - this.error = opts.error; - this.error_description = opts.error_description; - } -}; -__name(_UnsupportedGrantTypeException, "UnsupportedGrantTypeException"); -var UnsupportedGrantTypeException = _UnsupportedGrantTypeException; -var _InvalidRequestRegionException = class _InvalidRequestRegionException extends SSOOIDCServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "InvalidRequestRegionException", - $fault: "client", - ...opts - }); - this.name = "InvalidRequestRegionException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _InvalidRequestRegionException.prototype); - this.error = opts.error; - this.error_description = opts.error_description; - this.endpoint = opts.endpoint; - this.region = opts.region; - } -}; -__name(_InvalidRequestRegionException, "InvalidRequestRegionException"); -var InvalidRequestRegionException = _InvalidRequestRegionException; -var _InvalidClientMetadataException = class _InvalidClientMetadataException extends SSOOIDCServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "InvalidClientMetadataException", - $fault: "client", - ...opts - }); - this.name = "InvalidClientMetadataException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _InvalidClientMetadataException.prototype); - this.error = opts.error; - this.error_description = opts.error_description; - } -}; -__name(_InvalidClientMetadataException, "InvalidClientMetadataException"); -var InvalidClientMetadataException = _InvalidClientMetadataException; -var _InvalidRedirectUriException = class _InvalidRedirectUriException extends SSOOIDCServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "InvalidRedirectUriException", - $fault: "client", - ...opts - }); - this.name = "InvalidRedirectUriException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _InvalidRedirectUriException.prototype); - this.error = opts.error; - this.error_description = opts.error_description; - } -}; -__name(_InvalidRedirectUriException, "InvalidRedirectUriException"); -var InvalidRedirectUriException = _InvalidRedirectUriException; -var CreateTokenRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({ - ...obj, - ...obj.clientSecret && { clientSecret: import_smithy_client.SENSITIVE_STRING }, - ...obj.refreshToken && { refreshToken: import_smithy_client.SENSITIVE_STRING }, - ...obj.codeVerifier && { codeVerifier: import_smithy_client.SENSITIVE_STRING } -}), "CreateTokenRequestFilterSensitiveLog"); -var CreateTokenResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({ - ...obj, - ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }, - ...obj.refreshToken && { refreshToken: import_smithy_client.SENSITIVE_STRING }, - ...obj.idToken && { idToken: import_smithy_client.SENSITIVE_STRING } -}), "CreateTokenResponseFilterSensitiveLog"); -var CreateTokenWithIAMRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({ - ...obj, - ...obj.refreshToken && { refreshToken: import_smithy_client.SENSITIVE_STRING }, - ...obj.assertion && { assertion: import_smithy_client.SENSITIVE_STRING }, - ...obj.subjectToken && { subjectToken: import_smithy_client.SENSITIVE_STRING }, - ...obj.codeVerifier && { codeVerifier: import_smithy_client.SENSITIVE_STRING } -}), "CreateTokenWithIAMRequestFilterSensitiveLog"); -var CreateTokenWithIAMResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({ - ...obj, - ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }, - ...obj.refreshToken && { refreshToken: import_smithy_client.SENSITIVE_STRING }, - ...obj.idToken && { idToken: import_smithy_client.SENSITIVE_STRING } -}), "CreateTokenWithIAMResponseFilterSensitiveLog"); -var RegisterClientResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({ - ...obj, - ...obj.clientSecret && { clientSecret: import_smithy_client.SENSITIVE_STRING } -}), "RegisterClientResponseFilterSensitiveLog"); -var StartDeviceAuthorizationRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({ - ...obj, - ...obj.clientSecret && { clientSecret: import_smithy_client.SENSITIVE_STRING } -}), "StartDeviceAuthorizationRequestFilterSensitiveLog"); - -// src/protocols/Aws_restJson1.ts -var import_core2 = __nccwpck_require__(59963); - - -var se_CreateTokenCommand = /* @__PURE__ */ __name(async (input, context) => { - const b = (0, import_core.requestBuilder)(input, context); - const headers = { - "content-type": "application/json" - }; - b.bp("/token"); - let body; - body = JSON.stringify( - (0, import_smithy_client.take)(input, { - clientId: [], - clientSecret: [], - code: [], - codeVerifier: [], - deviceCode: [], - grantType: [], - redirectUri: [], - refreshToken: [], - scope: (_) => (0, import_smithy_client._json)(_) - }) - ); - b.m("POST").h(headers).b(body); - return b.build(); -}, "se_CreateTokenCommand"); -var se_CreateTokenWithIAMCommand = /* @__PURE__ */ __name(async (input, context) => { - const b = (0, import_core.requestBuilder)(input, context); - const headers = { - "content-type": "application/json" - }; - b.bp("/token"); - const query = (0, import_smithy_client.map)({ - [_ai]: [, "t"] - }); - let body; - body = JSON.stringify( - (0, import_smithy_client.take)(input, { - assertion: [], - clientId: [], - code: [], - codeVerifier: [], - grantType: [], - redirectUri: [], - refreshToken: [], - requestedTokenType: [], - scope: (_) => (0, import_smithy_client._json)(_), - subjectToken: [], - subjectTokenType: [] - }) - ); - b.m("POST").h(headers).q(query).b(body); - return b.build(); -}, "se_CreateTokenWithIAMCommand"); -var se_RegisterClientCommand = /* @__PURE__ */ __name(async (input, context) => { - const b = (0, import_core.requestBuilder)(input, context); - const headers = { - "content-type": "application/json" - }; - b.bp("/client/register"); - let body; - body = JSON.stringify( - (0, import_smithy_client.take)(input, { - clientName: [], - clientType: [], - entitledApplicationArn: [], - grantTypes: (_) => (0, import_smithy_client._json)(_), - issuerUrl: [], - redirectUris: (_) => (0, import_smithy_client._json)(_), - scopes: (_) => (0, import_smithy_client._json)(_) - }) - ); - b.m("POST").h(headers).b(body); - return b.build(); -}, "se_RegisterClientCommand"); -var se_StartDeviceAuthorizationCommand = /* @__PURE__ */ __name(async (input, context) => { - const b = (0, import_core.requestBuilder)(input, context); - const headers = { - "content-type": "application/json" - }; - b.bp("/device_authorization"); - let body; - body = JSON.stringify( - (0, import_smithy_client.take)(input, { - clientId: [], - clientSecret: [], - startUrl: [] - }) - ); - b.m("POST").h(headers).b(body); - return b.build(); -}, "se_StartDeviceAuthorizationCommand"); -var de_CreateTokenCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_CommandError(output, context); - } - const contents = (0, import_smithy_client.map)({ - $metadata: deserializeMetadata(output) - }); - const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), "body"); - const doc = (0, import_smithy_client.take)(data, { - accessToken: import_smithy_client.expectString, - expiresIn: import_smithy_client.expectInt32, - idToken: import_smithy_client.expectString, - refreshToken: import_smithy_client.expectString, - tokenType: import_smithy_client.expectString - }); - Object.assign(contents, doc); - return contents; -}, "de_CreateTokenCommand"); -var de_CreateTokenWithIAMCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_CommandError(output, context); - } - const contents = (0, import_smithy_client.map)({ - $metadata: deserializeMetadata(output) - }); - const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), "body"); - const doc = (0, import_smithy_client.take)(data, { - accessToken: import_smithy_client.expectString, - expiresIn: import_smithy_client.expectInt32, - idToken: import_smithy_client.expectString, - issuedTokenType: import_smithy_client.expectString, - refreshToken: import_smithy_client.expectString, - scope: import_smithy_client._json, - tokenType: import_smithy_client.expectString - }); - Object.assign(contents, doc); - return contents; -}, "de_CreateTokenWithIAMCommand"); -var de_RegisterClientCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_CommandError(output, context); - } - const contents = (0, import_smithy_client.map)({ - $metadata: deserializeMetadata(output) - }); - const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), "body"); - const doc = (0, import_smithy_client.take)(data, { - authorizationEndpoint: import_smithy_client.expectString, - clientId: import_smithy_client.expectString, - clientIdIssuedAt: import_smithy_client.expectLong, - clientSecret: import_smithy_client.expectString, - clientSecretExpiresAt: import_smithy_client.expectLong, - tokenEndpoint: import_smithy_client.expectString - }); - Object.assign(contents, doc); - return contents; -}, "de_RegisterClientCommand"); -var de_StartDeviceAuthorizationCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_CommandError(output, context); - } - const contents = (0, import_smithy_client.map)({ - $metadata: deserializeMetadata(output) - }); - const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), "body"); - const doc = (0, import_smithy_client.take)(data, { - deviceCode: import_smithy_client.expectString, - expiresIn: import_smithy_client.expectInt32, - interval: import_smithy_client.expectInt32, - userCode: import_smithy_client.expectString, - verificationUri: import_smithy_client.expectString, - verificationUriComplete: import_smithy_client.expectString - }); - Object.assign(contents, doc); - return contents; -}, "de_StartDeviceAuthorizationCommand"); -var de_CommandError = /* @__PURE__ */ __name(async (output, context) => { - const parsedOutput = { - ...output, - body: await (0, import_core2.parseJsonErrorBody)(output.body, context) - }; - const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body); - switch (errorCode) { - case "AccessDeniedException": - case "com.amazonaws.ssooidc#AccessDeniedException": - throw await de_AccessDeniedExceptionRes(parsedOutput, context); - case "AuthorizationPendingException": - case "com.amazonaws.ssooidc#AuthorizationPendingException": - throw await de_AuthorizationPendingExceptionRes(parsedOutput, context); - case "ExpiredTokenException": - case "com.amazonaws.ssooidc#ExpiredTokenException": - throw await de_ExpiredTokenExceptionRes(parsedOutput, context); - case "InternalServerException": - case "com.amazonaws.ssooidc#InternalServerException": - throw await de_InternalServerExceptionRes(parsedOutput, context); - case "InvalidClientException": - case "com.amazonaws.ssooidc#InvalidClientException": - throw await de_InvalidClientExceptionRes(parsedOutput, context); - case "InvalidGrantException": - case "com.amazonaws.ssooidc#InvalidGrantException": - throw await de_InvalidGrantExceptionRes(parsedOutput, context); - case "InvalidRequestException": - case "com.amazonaws.ssooidc#InvalidRequestException": - throw await de_InvalidRequestExceptionRes(parsedOutput, context); - case "InvalidScopeException": - case "com.amazonaws.ssooidc#InvalidScopeException": - throw await de_InvalidScopeExceptionRes(parsedOutput, context); - case "SlowDownException": - case "com.amazonaws.ssooidc#SlowDownException": - throw await de_SlowDownExceptionRes(parsedOutput, context); - case "UnauthorizedClientException": - case "com.amazonaws.ssooidc#UnauthorizedClientException": - throw await de_UnauthorizedClientExceptionRes(parsedOutput, context); - case "UnsupportedGrantTypeException": - case "com.amazonaws.ssooidc#UnsupportedGrantTypeException": - throw await de_UnsupportedGrantTypeExceptionRes(parsedOutput, context); - case "InvalidRequestRegionException": - case "com.amazonaws.ssooidc#InvalidRequestRegionException": - throw await de_InvalidRequestRegionExceptionRes(parsedOutput, context); - case "InvalidClientMetadataException": - case "com.amazonaws.ssooidc#InvalidClientMetadataException": - throw await de_InvalidClientMetadataExceptionRes(parsedOutput, context); - case "InvalidRedirectUriException": - case "com.amazonaws.ssooidc#InvalidRedirectUriException": - throw await de_InvalidRedirectUriExceptionRes(parsedOutput, context); - default: - const parsedBody = parsedOutput.body; - return throwDefaultError({ - output, - parsedBody, - errorCode - }); - } -}, "de_CommandError"); -var throwDefaultError = (0, import_smithy_client.withBaseException)(SSOOIDCServiceException); -var de_AccessDeniedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const contents = (0, import_smithy_client.map)({}); - const data = parsedOutput.body; - const doc = (0, import_smithy_client.take)(data, { - error: import_smithy_client.expectString, - error_description: import_smithy_client.expectString - }); - Object.assign(contents, doc); - const exception = new AccessDeniedException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents - }); - return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body); -}, "de_AccessDeniedExceptionRes"); -var de_AuthorizationPendingExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const contents = (0, import_smithy_client.map)({}); - const data = parsedOutput.body; - const doc = (0, import_smithy_client.take)(data, { - error: import_smithy_client.expectString, - error_description: import_smithy_client.expectString - }); - Object.assign(contents, doc); - const exception = new AuthorizationPendingException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents - }); - return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body); -}, "de_AuthorizationPendingExceptionRes"); -var de_ExpiredTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const contents = (0, import_smithy_client.map)({}); - const data = parsedOutput.body; - const doc = (0, import_smithy_client.take)(data, { - error: import_smithy_client.expectString, - error_description: import_smithy_client.expectString - }); - Object.assign(contents, doc); - const exception = new ExpiredTokenException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents - }); - return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body); -}, "de_ExpiredTokenExceptionRes"); -var de_InternalServerExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const contents = (0, import_smithy_client.map)({}); - const data = parsedOutput.body; - const doc = (0, import_smithy_client.take)(data, { - error: import_smithy_client.expectString, - error_description: import_smithy_client.expectString - }); - Object.assign(contents, doc); - const exception = new InternalServerException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents - }); - return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body); -}, "de_InternalServerExceptionRes"); -var de_InvalidClientExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const contents = (0, import_smithy_client.map)({}); - const data = parsedOutput.body; - const doc = (0, import_smithy_client.take)(data, { - error: import_smithy_client.expectString, - error_description: import_smithy_client.expectString - }); - Object.assign(contents, doc); - const exception = new InvalidClientException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents - }); - return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body); -}, "de_InvalidClientExceptionRes"); -var de_InvalidClientMetadataExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const contents = (0, import_smithy_client.map)({}); - const data = parsedOutput.body; - const doc = (0, import_smithy_client.take)(data, { - error: import_smithy_client.expectString, - error_description: import_smithy_client.expectString - }); - Object.assign(contents, doc); - const exception = new InvalidClientMetadataException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents - }); - return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body); -}, "de_InvalidClientMetadataExceptionRes"); -var de_InvalidGrantExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const contents = (0, import_smithy_client.map)({}); - const data = parsedOutput.body; - const doc = (0, import_smithy_client.take)(data, { - error: import_smithy_client.expectString, - error_description: import_smithy_client.expectString - }); - Object.assign(contents, doc); - const exception = new InvalidGrantException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents - }); - return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body); -}, "de_InvalidGrantExceptionRes"); -var de_InvalidRedirectUriExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const contents = (0, import_smithy_client.map)({}); - const data = parsedOutput.body; - const doc = (0, import_smithy_client.take)(data, { - error: import_smithy_client.expectString, - error_description: import_smithy_client.expectString - }); - Object.assign(contents, doc); - const exception = new InvalidRedirectUriException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents - }); - return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body); -}, "de_InvalidRedirectUriExceptionRes"); -var de_InvalidRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const contents = (0, import_smithy_client.map)({}); - const data = parsedOutput.body; - const doc = (0, import_smithy_client.take)(data, { - error: import_smithy_client.expectString, - error_description: import_smithy_client.expectString - }); - Object.assign(contents, doc); - const exception = new InvalidRequestException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents - }); - return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body); -}, "de_InvalidRequestExceptionRes"); -var de_InvalidRequestRegionExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const contents = (0, import_smithy_client.map)({}); - const data = parsedOutput.body; - const doc = (0, import_smithy_client.take)(data, { - endpoint: import_smithy_client.expectString, - error: import_smithy_client.expectString, - error_description: import_smithy_client.expectString, - region: import_smithy_client.expectString - }); - Object.assign(contents, doc); - const exception = new InvalidRequestRegionException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents - }); - return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body); -}, "de_InvalidRequestRegionExceptionRes"); -var de_InvalidScopeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const contents = (0, import_smithy_client.map)({}); - const data = parsedOutput.body; - const doc = (0, import_smithy_client.take)(data, { - error: import_smithy_client.expectString, - error_description: import_smithy_client.expectString - }); - Object.assign(contents, doc); - const exception = new InvalidScopeException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents - }); - return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body); -}, "de_InvalidScopeExceptionRes"); -var de_SlowDownExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const contents = (0, import_smithy_client.map)({}); - const data = parsedOutput.body; - const doc = (0, import_smithy_client.take)(data, { - error: import_smithy_client.expectString, - error_description: import_smithy_client.expectString - }); - Object.assign(contents, doc); - const exception = new SlowDownException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents - }); - return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body); -}, "de_SlowDownExceptionRes"); -var de_UnauthorizedClientExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const contents = (0, import_smithy_client.map)({}); - const data = parsedOutput.body; - const doc = (0, import_smithy_client.take)(data, { - error: import_smithy_client.expectString, - error_description: import_smithy_client.expectString - }); - Object.assign(contents, doc); - const exception = new UnauthorizedClientException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents - }); - return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body); -}, "de_UnauthorizedClientExceptionRes"); -var de_UnsupportedGrantTypeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const contents = (0, import_smithy_client.map)({}); - const data = parsedOutput.body; - const doc = (0, import_smithy_client.take)(data, { - error: import_smithy_client.expectString, - error_description: import_smithy_client.expectString - }); - Object.assign(contents, doc); - const exception = new UnsupportedGrantTypeException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents - }); - return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body); -}, "de_UnsupportedGrantTypeExceptionRes"); -var deserializeMetadata = /* @__PURE__ */ __name((output) => ({ - httpStatusCode: output.statusCode, - requestId: output.headers["x-amzn-requestid"] ?? output.headers["x-amzn-request-id"] ?? output.headers["x-amz-request-id"], - extendedRequestId: output.headers["x-amz-id-2"], - cfId: output.headers["x-amz-cf-id"] -}), "deserializeMetadata"); -var _ai = "aws_iam"; - -// src/commands/CreateTokenCommand.ts -var _CreateTokenCommand = class _CreateTokenCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("AWSSSOOIDCService", "CreateToken", {}).n("SSOOIDCClient", "CreateTokenCommand").f(CreateTokenRequestFilterSensitiveLog, CreateTokenResponseFilterSensitiveLog).ser(se_CreateTokenCommand).de(de_CreateTokenCommand).build() { -}; -__name(_CreateTokenCommand, "CreateTokenCommand"); -var CreateTokenCommand = _CreateTokenCommand; - -// src/commands/CreateTokenWithIAMCommand.ts - - - -var _CreateTokenWithIAMCommand = class _CreateTokenWithIAMCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("AWSSSOOIDCService", "CreateTokenWithIAM", {}).n("SSOOIDCClient", "CreateTokenWithIAMCommand").f(CreateTokenWithIAMRequestFilterSensitiveLog, CreateTokenWithIAMResponseFilterSensitiveLog).ser(se_CreateTokenWithIAMCommand).de(de_CreateTokenWithIAMCommand).build() { -}; -__name(_CreateTokenWithIAMCommand, "CreateTokenWithIAMCommand"); -var CreateTokenWithIAMCommand = _CreateTokenWithIAMCommand; - -// src/commands/RegisterClientCommand.ts - - - -var _RegisterClientCommand = class _RegisterClientCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("AWSSSOOIDCService", "RegisterClient", {}).n("SSOOIDCClient", "RegisterClientCommand").f(void 0, RegisterClientResponseFilterSensitiveLog).ser(se_RegisterClientCommand).de(de_RegisterClientCommand).build() { -}; -__name(_RegisterClientCommand, "RegisterClientCommand"); -var RegisterClientCommand = _RegisterClientCommand; - -// src/commands/StartDeviceAuthorizationCommand.ts - - - -var _StartDeviceAuthorizationCommand = class _StartDeviceAuthorizationCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("AWSSSOOIDCService", "StartDeviceAuthorization", {}).n("SSOOIDCClient", "StartDeviceAuthorizationCommand").f(StartDeviceAuthorizationRequestFilterSensitiveLog, void 0).ser(se_StartDeviceAuthorizationCommand).de(de_StartDeviceAuthorizationCommand).build() { -}; -__name(_StartDeviceAuthorizationCommand, "StartDeviceAuthorizationCommand"); -var StartDeviceAuthorizationCommand = _StartDeviceAuthorizationCommand; - -// src/SSOOIDC.ts -var commands = { - CreateTokenCommand, - CreateTokenWithIAMCommand, - RegisterClientCommand, - StartDeviceAuthorizationCommand -}; -var _SSOOIDC = class _SSOOIDC extends SSOOIDCClient { -}; -__name(_SSOOIDC, "SSOOIDC"); -var SSOOIDC = _SSOOIDC; -(0, import_smithy_client.createAggregatedClient)(commands, SSOOIDC); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 25524: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getRuntimeConfig = void 0; -const tslib_1 = __nccwpck_require__(4351); -const package_json_1 = tslib_1.__importDefault(__nccwpck_require__(69722)); -const core_1 = __nccwpck_require__(59963); -const credential_provider_node_1 = __nccwpck_require__(75531); -const util_user_agent_node_1 = __nccwpck_require__(98095); -const config_resolver_1 = __nccwpck_require__(53098); -const hash_node_1 = __nccwpck_require__(3081); -const middleware_retry_1 = __nccwpck_require__(96039); -const node_config_provider_1 = __nccwpck_require__(33461); -const node_http_handler_1 = __nccwpck_require__(7202); -const util_body_length_node_1 = __nccwpck_require__(68075); -const util_retry_1 = __nccwpck_require__(84902); -const runtimeConfig_shared_1 = __nccwpck_require__(68005); -const smithy_client_1 = __nccwpck_require__(63570); -const util_defaults_mode_node_1 = __nccwpck_require__(72429); -const smithy_client_2 = __nccwpck_require__(63570); -const getRuntimeConfig = (config) => { - (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version); - const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config); - const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode); - const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config); - (0, core_1.emitWarningIfUnsupportedVersion)(process.version); - return { - ...clientSharedValues, - ...config, - runtime: "node", - defaultsMode, - bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength, - credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider, - defaultUserAgentProvider: config?.defaultUserAgentProvider ?? - (0, util_user_agent_node_1.defaultUserAgent)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }), - maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS), - region: config?.region ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS), - requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider), - retryMode: config?.retryMode ?? - (0, node_config_provider_1.loadConfig)({ - ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS, - default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE, - }), - sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, "sha256"), - streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector, - useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS), - useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS), - }; -}; -exports.getRuntimeConfig = getRuntimeConfig; - - -/***/ }), - -/***/ 68005: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getRuntimeConfig = void 0; -const core_1 = __nccwpck_require__(59963); -const core_2 = __nccwpck_require__(55829); -const smithy_client_1 = __nccwpck_require__(63570); -const url_parser_1 = __nccwpck_require__(14681); -const util_base64_1 = __nccwpck_require__(75600); -const util_utf8_1 = __nccwpck_require__(41895); -const httpAuthSchemeProvider_1 = __nccwpck_require__(16948); -const endpointResolver_1 = __nccwpck_require__(97604); -const getRuntimeConfig = (config) => { - return { - apiVersion: "2019-06-10", - base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64, - base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64, - disableHostPrefix: config?.disableHostPrefix ?? false, - endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver, - extensions: config?.extensions ?? [], - httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSSOOIDCHttpAuthSchemeProvider, - httpAuthSchemes: config?.httpAuthSchemes ?? [ - { - schemeId: "aws.auth#sigv4", - identityProvider: (ipc) => ipc.getIdentityProvider("aws.auth#sigv4"), - signer: new core_1.AwsSdkSigV4Signer(), - }, - { - schemeId: "smithy.api#noAuth", - identityProvider: (ipc) => ipc.getIdentityProvider("smithy.api#noAuth") || (async () => ({})), - signer: new core_2.NoAuthSigner(), - }, - ], - logger: config?.logger ?? new smithy_client_1.NoOpLogger(), - serviceId: config?.serviceId ?? "SSO OIDC", - urlParser: config?.urlParser ?? url_parser_1.parseUrl, - utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8, - utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8, - }; -}; -exports.getRuntimeConfig = getRuntimeConfig; - - -/***/ }), - -/***/ 7202: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __create = Object.create; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __getProtoOf = Object.getPrototypeOf; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. - isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, - mod -)); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - DEFAULT_REQUEST_TIMEOUT: () => DEFAULT_REQUEST_TIMEOUT, - NodeHttp2Handler: () => NodeHttp2Handler, - NodeHttpHandler: () => NodeHttpHandler, - streamCollector: () => streamCollector -}); -module.exports = __toCommonJS(src_exports); - -// src/node-http-handler.ts -var import_protocol_http = __nccwpck_require__(64418); -var import_querystring_builder = __nccwpck_require__(68031); -var import_http = __nccwpck_require__(13685); -var import_https = __nccwpck_require__(95687); - -// src/constants.ts -var NODEJS_TIMEOUT_ERROR_CODES = ["ECONNRESET", "EPIPE", "ETIMEDOUT"]; - -// src/get-transformed-headers.ts -var getTransformedHeaders = /* @__PURE__ */ __name((headers) => { - const transformedHeaders = {}; - for (const name of Object.keys(headers)) { - const headerValues = headers[name]; - transformedHeaders[name] = Array.isArray(headerValues) ? headerValues.join(",") : headerValues; - } - return transformedHeaders; -}, "getTransformedHeaders"); - -// src/set-connection-timeout.ts -var DEFER_EVENT_LISTENER_TIME = 1e3; -var setConnectionTimeout = /* @__PURE__ */ __name((request, reject, timeoutInMs = 0) => { - if (!timeoutInMs) { - return -1; - } - const registerTimeout = /* @__PURE__ */ __name((offset) => { - const timeoutId = setTimeout(() => { - request.destroy(); - reject( - Object.assign(new Error(`Socket timed out without establishing a connection within ${timeoutInMs} ms`), { - name: "TimeoutError" + // src/request-timeout.ts + function requestTimeout(timeoutInMs = 0) { + return new Promise((resolve, reject) => { + if (timeoutInMs) { + setTimeout(() => { + const timeoutError = new Error( + `Request did not complete within ${timeoutInMs} ms` + ) + timeoutError.name = 'TimeoutError' + reject(timeoutError) + }, timeoutInMs) + } }) - ); - }, timeoutInMs - offset); - const doWithSocket = /* @__PURE__ */ __name((socket) => { - if (socket == null ? void 0 : socket.connecting) { - socket.on("connect", () => { - clearTimeout(timeoutId); - }); - } else { - clearTimeout(timeoutId); } - }, "doWithSocket"); - if (request.socket) { - doWithSocket(request.socket); - } else { - request.on("socket", doWithSocket); - } - }, "registerTimeout"); - if (timeoutInMs < 2e3) { - registerTimeout(0); - return 0; - } - return setTimeout(registerTimeout.bind(null, DEFER_EVENT_LISTENER_TIME), DEFER_EVENT_LISTENER_TIME); -}, "setConnectionTimeout"); - -// src/set-socket-keep-alive.ts -var DEFER_EVENT_LISTENER_TIME2 = 3e3; -var setSocketKeepAlive = /* @__PURE__ */ __name((request, { keepAlive, keepAliveMsecs }, deferTimeMs = DEFER_EVENT_LISTENER_TIME2) => { - if (keepAlive !== true) { - return -1; - } - const registerListener = /* @__PURE__ */ __name(() => { - if (request.socket) { - request.socket.setKeepAlive(keepAlive, keepAliveMsecs || 0); - } else { - request.on("socket", (socket) => { - socket.setKeepAlive(keepAlive, keepAliveMsecs || 0); - }); - } - }, "registerListener"); - if (deferTimeMs === 0) { - registerListener(); - return 0; - } - return setTimeout(registerListener, deferTimeMs); -}, "setSocketKeepAlive"); - -// src/set-socket-timeout.ts -var DEFER_EVENT_LISTENER_TIME3 = 3e3; -var setSocketTimeout = /* @__PURE__ */ __name((request, reject, timeoutInMs = 0) => { - const registerTimeout = /* @__PURE__ */ __name((offset) => { - request.setTimeout(timeoutInMs - offset, () => { - request.destroy(); - reject(Object.assign(new Error(`Connection timed out after ${timeoutInMs} ms`), { name: "TimeoutError" })); - }); - }, "registerTimeout"); - if (0 < timeoutInMs && timeoutInMs < 6e3) { - registerTimeout(0); - return 0; - } - return setTimeout( - registerTimeout.bind(null, timeoutInMs === 0 ? 0 : DEFER_EVENT_LISTENER_TIME3), - DEFER_EVENT_LISTENER_TIME3 - ); -}, "setSocketTimeout"); - -// src/write-request-body.ts -var import_stream = __nccwpck_require__(12781); -var MIN_WAIT_TIME = 1e3; -async function writeRequestBody(httpRequest, request, maxContinueTimeoutMs = MIN_WAIT_TIME) { - const headers = request.headers ?? {}; - const expect = headers["Expect"] || headers["expect"]; - let timeoutId = -1; - let hasError = false; - if (expect === "100-continue") { - await Promise.race([ - new Promise((resolve) => { - timeoutId = Number(setTimeout(resolve, Math.max(MIN_WAIT_TIME, maxContinueTimeoutMs))); - }), - new Promise((resolve) => { - httpRequest.on("continue", () => { - clearTimeout(timeoutId); - resolve(); - }); - httpRequest.on("error", () => { - hasError = true; - clearTimeout(timeoutId); - resolve(); - }); - }) - ]); - } - if (!hasError) { - writeBody(httpRequest, request.body); - } -} -__name(writeRequestBody, "writeRequestBody"); -function writeBody(httpRequest, body) { - if (body instanceof import_stream.Readable) { - body.pipe(httpRequest); - return; - } - if (body) { - if (Buffer.isBuffer(body) || typeof body === "string") { - httpRequest.end(body); - return; - } - const uint8 = body; - if (typeof uint8 === "object" && uint8.buffer && typeof uint8.byteOffset === "number" && typeof uint8.byteLength === "number") { - httpRequest.end(Buffer.from(uint8.buffer, uint8.byteOffset, uint8.byteLength)); - return; - } - httpRequest.end(Buffer.from(body)); - return; - } - httpRequest.end(); -} -__name(writeBody, "writeBody"); - -// src/node-http-handler.ts -var DEFAULT_REQUEST_TIMEOUT = 0; -var _NodeHttpHandler = class _NodeHttpHandler { - constructor(options) { - this.socketWarningTimestamp = 0; - // Node http handler is hard-coded to http/1.1: https://github.com/nodejs/node/blob/ff5664b83b89c55e4ab5d5f60068fb457f1f5872/lib/_http_server.js#L286 - this.metadata = { handlerProtocol: "http/1.1" }; - this.configProvider = new Promise((resolve, reject) => { - if (typeof options === "function") { - options().then((_options) => { - resolve(this.resolveDefaultConfig(_options)); - }).catch(reject); - } else { - resolve(this.resolveDefaultConfig(options)); + __name(requestTimeout, 'requestTimeout') + + // src/fetch-http-handler.ts + var keepAliveSupport = { + supported: void 0 } - }); - } - /** - * @returns the input if it is an HttpHandler of any class, - * or instantiates a new instance of this handler. - */ - static create(instanceOrOptions) { - if (typeof (instanceOrOptions == null ? void 0 : instanceOrOptions.handle) === "function") { - return instanceOrOptions; - } - return new _NodeHttpHandler(instanceOrOptions); - } - /** - * @internal - * - * @param agent - http(s) agent in use by the NodeHttpHandler instance. - * @param socketWarningTimestamp - last socket usage check timestamp. - * @param logger - channel for the warning. - * @returns timestamp of last emitted warning. - */ - static checkSocketUsage(agent, socketWarningTimestamp, logger = console) { - var _a, _b, _c; - const { sockets, requests, maxSockets } = agent; - if (typeof maxSockets !== "number" || maxSockets === Infinity) { - return socketWarningTimestamp; - } - const interval = 15e3; - if (Date.now() - interval < socketWarningTimestamp) { - return socketWarningTimestamp; - } - if (sockets && requests) { - for (const origin in sockets) { - const socketsInUse = ((_a = sockets[origin]) == null ? void 0 : _a.length) ?? 0; - const requestsEnqueued = ((_b = requests[origin]) == null ? void 0 : _b.length) ?? 0; - if (socketsInUse >= maxSockets && requestsEnqueued >= 2 * maxSockets) { - (_c = logger == null ? void 0 : logger.warn) == null ? void 0 : _c.call( - logger, - `@smithy/node-http-handler:WARN - socket usage at capacity=${socketsInUse} and ${requestsEnqueued} additional requests are enqueued. -See https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html -or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.` - ); - return Date.now(); + var FetchHttpHandler = class _FetchHttpHandler { + static { + __name(this, 'FetchHttpHandler') } - } - } - return socketWarningTimestamp; - } - resolveDefaultConfig(options) { - const { requestTimeout, connectionTimeout, socketTimeout, httpAgent, httpsAgent } = options || {}; - const keepAlive = true; - const maxSockets = 50; - return { - connectionTimeout, - requestTimeout: requestTimeout ?? socketTimeout, - httpAgent: (() => { - if (httpAgent instanceof import_http.Agent || typeof (httpAgent == null ? void 0 : httpAgent.destroy) === "function") { - return httpAgent; - } - return new import_http.Agent({ keepAlive, maxSockets, ...httpAgent }); - })(), - httpsAgent: (() => { - if (httpsAgent instanceof import_https.Agent || typeof (httpsAgent == null ? void 0 : httpsAgent.destroy) === "function") { - return httpsAgent; - } - return new import_https.Agent({ keepAlive, maxSockets, ...httpsAgent }); - })(), - logger: console - }; - } - destroy() { - var _a, _b, _c, _d; - (_b = (_a = this.config) == null ? void 0 : _a.httpAgent) == null ? void 0 : _b.destroy(); - (_d = (_c = this.config) == null ? void 0 : _c.httpsAgent) == null ? void 0 : _d.destroy(); - } - async handle(request, { abortSignal } = {}) { - if (!this.config) { - this.config = await this.configProvider; - } - return new Promise((_resolve, _reject) => { - let writeRequestBodyPromise = void 0; - const timeouts = []; - const resolve = /* @__PURE__ */ __name(async (arg) => { - await writeRequestBodyPromise; - timeouts.forEach(clearTimeout); - _resolve(arg); - }, "resolve"); - const reject = /* @__PURE__ */ __name(async (arg) => { - await writeRequestBodyPromise; - timeouts.forEach(clearTimeout); - _reject(arg); - }, "reject"); - if (!this.config) { - throw new Error("Node HTTP request handler config is not resolved"); - } - if (abortSignal == null ? void 0 : abortSignal.aborted) { - const abortError = new Error("Request aborted"); - abortError.name = "AbortError"; - reject(abortError); - return; - } - const isSSL = request.protocol === "https:"; - const agent = isSSL ? this.config.httpsAgent : this.config.httpAgent; - timeouts.push( - setTimeout( - () => { - this.socketWarningTimestamp = _NodeHttpHandler.checkSocketUsage( - agent, - this.socketWarningTimestamp, - this.config.logger - ); - }, - this.config.socketAcquisitionWarningTimeout ?? (this.config.requestTimeout ?? 2e3) + (this.config.connectionTimeout ?? 1e3) - ) - ); - const queryString = (0, import_querystring_builder.buildQueryString)(request.query || {}); - let auth = void 0; - if (request.username != null || request.password != null) { - const username = request.username ?? ""; - const password = request.password ?? ""; - auth = `${username}:${password}`; - } - let path = request.path; - if (queryString) { - path += `?${queryString}`; - } - if (request.fragment) { - path += `#${request.fragment}`; - } - const nodeHttpsOptions = { - headers: request.headers, - host: request.hostname, - method: request.method, - path, - port: request.port, - agent, - auth - }; - const requestFunc = isSSL ? import_https.request : import_http.request; - const req = requestFunc(nodeHttpsOptions, (res) => { - const httpResponse = new import_protocol_http.HttpResponse({ - statusCode: res.statusCode || -1, - reason: res.statusMessage, - headers: getTransformedHeaders(res.headers), - body: res - }); - resolve({ response: httpResponse }); - }); - req.on("error", (err) => { - if (NODEJS_TIMEOUT_ERROR_CODES.includes(err.code)) { - reject(Object.assign(err, { name: "TimeoutError" })); - } else { - reject(err); - } - }); - if (abortSignal) { - const onAbort = /* @__PURE__ */ __name(() => { - req.destroy(); - const abortError = new Error("Request aborted"); - abortError.name = "AbortError"; - reject(abortError); - }, "onAbort"); - if (typeof abortSignal.addEventListener === "function") { - const signal = abortSignal; - signal.addEventListener("abort", onAbort, { once: true }); - req.once("close", () => signal.removeEventListener("abort", onAbort)); - } else { - abortSignal.onabort = onAbort; - } - } - timeouts.push(setConnectionTimeout(req, reject, this.config.connectionTimeout)); - timeouts.push(setSocketTimeout(req, reject, this.config.requestTimeout)); - const httpAgent = nodeHttpsOptions.agent; - if (typeof httpAgent === "object" && "keepAlive" in httpAgent) { - timeouts.push( - setSocketKeepAlive(req, { - // @ts-expect-error keepAlive is not public on httpAgent. - keepAlive: httpAgent.keepAlive, - // @ts-expect-error keepAliveMsecs is not public on httpAgent. - keepAliveMsecs: httpAgent.keepAliveMsecs - }) - ); - } - writeRequestBodyPromise = writeRequestBody(req, request, this.config.requestTimeout).catch((e) => { - timeouts.forEach(clearTimeout); - return _reject(e); - }); - }); - } - updateHttpClientConfig(key, value) { - this.config = void 0; - this.configProvider = this.configProvider.then((config) => { - return { - ...config, - [key]: value - }; - }); - } - httpHandlerConfigs() { - return this.config ?? {}; - } -}; -__name(_NodeHttpHandler, "NodeHttpHandler"); -var NodeHttpHandler = _NodeHttpHandler; - -// src/node-http2-handler.ts - - -var import_http22 = __nccwpck_require__(85158); - -// src/node-http2-connection-manager.ts -var import_http2 = __toESM(__nccwpck_require__(85158)); - -// src/node-http2-connection-pool.ts -var _NodeHttp2ConnectionPool = class _NodeHttp2ConnectionPool { - constructor(sessions) { - this.sessions = []; - this.sessions = sessions ?? []; - } - poll() { - if (this.sessions.length > 0) { - return this.sessions.shift(); - } - } - offerLast(session) { - this.sessions.push(session); - } - contains(session) { - return this.sessions.includes(session); - } - remove(session) { - this.sessions = this.sessions.filter((s) => s !== session); - } - [Symbol.iterator]() { - return this.sessions[Symbol.iterator](); - } - destroy(connection) { - for (const session of this.sessions) { - if (session === connection) { - if (!session.destroyed) { - session.destroy(); + /** + * @returns the input if it is an HttpHandler of any class, + * or instantiates a new instance of this handler. + */ + static create(instanceOrOptions) { + if (typeof instanceOrOptions?.handle === 'function') { + return instanceOrOptions + } + return new _FetchHttpHandler(instanceOrOptions) } - } - } - } -}; -__name(_NodeHttp2ConnectionPool, "NodeHttp2ConnectionPool"); -var NodeHttp2ConnectionPool = _NodeHttp2ConnectionPool; - -// src/node-http2-connection-manager.ts -var _NodeHttp2ConnectionManager = class _NodeHttp2ConnectionManager { - constructor(config) { - this.sessionCache = /* @__PURE__ */ new Map(); - this.config = config; - if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) { - throw new RangeError("maxConcurrency must be greater than zero."); - } - } - lease(requestContext, connectionConfiguration) { - const url = this.getUrlString(requestContext); - const existingPool = this.sessionCache.get(url); - if (existingPool) { - const existingSession = existingPool.poll(); - if (existingSession && !this.config.disableConcurrency) { - return existingSession; - } - } - const session = import_http2.default.connect(url); - if (this.config.maxConcurrency) { - session.settings({ maxConcurrentStreams: this.config.maxConcurrency }, (err) => { - if (err) { - throw new Error( - "Fail to set maxConcurrentStreams to " + this.config.maxConcurrency + "when creating new session for " + requestContext.destination.toString() - ); + constructor(options) { + if (typeof options === 'function') { + this.configProvider = options().then(opts => opts || {}) + } else { + this.config = options ?? {} + this.configProvider = Promise.resolve(this.config) + } + if (keepAliveSupport.supported === void 0) { + keepAliveSupport.supported = Boolean( + typeof Request !== 'undefined' && + 'keepalive' in createRequest('https://[::1]') + ) + } } - }); - } - session.unref(); - const destroySessionCb = /* @__PURE__ */ __name(() => { - session.destroy(); - this.deleteSession(url, session); - }, "destroySessionCb"); - session.on("goaway", destroySessionCb); - session.on("error", destroySessionCb); - session.on("frameError", destroySessionCb); - session.on("close", () => this.deleteSession(url, session)); - if (connectionConfiguration.requestTimeout) { - session.setTimeout(connectionConfiguration.requestTimeout, destroySessionCb); - } - const connectionPool = this.sessionCache.get(url) || new NodeHttp2ConnectionPool(); - connectionPool.offerLast(session); - this.sessionCache.set(url, connectionPool); - return session; - } - /** - * Delete a session from the connection pool. - * @param authority The authority of the session to delete. - * @param session The session to delete. - */ - deleteSession(authority, session) { - const existingConnectionPool = this.sessionCache.get(authority); - if (!existingConnectionPool) { - return; - } - if (!existingConnectionPool.contains(session)) { - return; - } - existingConnectionPool.remove(session); - this.sessionCache.set(authority, existingConnectionPool); - } - release(requestContext, session) { - var _a; - const cacheKey = this.getUrlString(requestContext); - (_a = this.sessionCache.get(cacheKey)) == null ? void 0 : _a.offerLast(session); - } - destroy() { - for (const [key, connectionPool] of this.sessionCache) { - for (const session of connectionPool) { - if (!session.destroyed) { - session.destroy(); + destroy() {} + async handle(request, { abortSignal } = {}) { + if (!this.config) { + this.config = await this.configProvider + } + const requestTimeoutInMs = this.config.requestTimeout + const keepAlive = this.config.keepAlive === true + const credentials = this.config.credentials + if (abortSignal?.aborted) { + const abortError = new Error('Request aborted') + abortError.name = 'AbortError' + return Promise.reject(abortError) + } + let path = request.path + const queryString = (0, import_querystring_builder.buildQueryString)( + request.query || {} + ) + if (queryString) { + path += `?${queryString}` + } + if (request.fragment) { + path += `#${request.fragment}` + } + let auth = '' + if (request.username != null || request.password != null) { + const username = request.username ?? '' + const password = request.password ?? '' + auth = `${username}:${password}@` + } + const { port, method } = request + const url = `${request.protocol}//${auth}${request.hostname}${port ? `:${port}` : ''}${path}` + const body = + method === 'GET' || method === 'HEAD' ? void 0 : request.body + const requestOptions = { + body, + headers: new Headers(request.headers), + method, + credentials + } + if (this.config?.cache) { + requestOptions.cache = this.config.cache + } + if (body) { + requestOptions.duplex = 'half' + } + if (typeof AbortController !== 'undefined') { + requestOptions.signal = abortSignal + } + if (keepAliveSupport.supported) { + requestOptions.keepalive = keepAlive + } + if (typeof this.config.requestInit === 'function') { + Object.assign(requestOptions, this.config.requestInit(request)) + } + let removeSignalEventListener = /* @__PURE__ */ __name( + () => {}, + 'removeSignalEventListener' + ) + const fetchRequest = createRequest(url, requestOptions) + const raceOfPromises = [ + fetch(fetchRequest).then(response => { + const fetchHeaders = response.headers + const transformedHeaders = {} + for (const pair of fetchHeaders.entries()) { + transformedHeaders[pair[0]] = pair[1] + } + const hasReadableStream = response.body != void 0 + if (!hasReadableStream) { + return response.blob().then(body2 => ({ + response: new import_protocol_http.HttpResponse({ + headers: transformedHeaders, + reason: response.statusText, + statusCode: response.status, + body: body2 + }) + })) + } + return { + response: new import_protocol_http.HttpResponse({ + headers: transformedHeaders, + reason: response.statusText, + statusCode: response.status, + body: response.body + }) + } + }), + requestTimeout(requestTimeoutInMs) + ] + if (abortSignal) { + raceOfPromises.push( + new Promise((resolve, reject) => { + const onAbort = /* @__PURE__ */ __name(() => { + const abortError = new Error('Request aborted') + abortError.name = 'AbortError' + reject(abortError) + }, 'onAbort') + if (typeof abortSignal.addEventListener === 'function') { + const signal = abortSignal + signal.addEventListener('abort', onAbort, { once: true }) + removeSignalEventListener = /* @__PURE__ */ __name( + () => signal.removeEventListener('abort', onAbort), + 'removeSignalEventListener' + ) + } else { + abortSignal.onabort = onAbort + } + }) + ) + } + return Promise.race(raceOfPromises).finally(removeSignalEventListener) } - connectionPool.remove(session); - } - this.sessionCache.delete(key); - } - } - setMaxConcurrentStreams(maxConcurrentStreams) { - if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) { - throw new RangeError("maxConcurrentStreams must be greater than zero."); - } - this.config.maxConcurrency = maxConcurrentStreams; - } - setDisableConcurrentStreams(disableConcurrentStreams) { - this.config.disableConcurrency = disableConcurrentStreams; - } - getUrlString(request) { - return request.destination.toString(); - } -}; -__name(_NodeHttp2ConnectionManager, "NodeHttp2ConnectionManager"); -var NodeHttp2ConnectionManager = _NodeHttp2ConnectionManager; - -// src/node-http2-handler.ts -var _NodeHttp2Handler = class _NodeHttp2Handler { - constructor(options) { - this.metadata = { handlerProtocol: "h2" }; - this.connectionManager = new NodeHttp2ConnectionManager({}); - this.configProvider = new Promise((resolve, reject) => { - if (typeof options === "function") { - options().then((opts) => { - resolve(opts || {}); - }).catch(reject); - } else { - resolve(options || {}); - } - }); - } - /** - * @returns the input if it is an HttpHandler of any class, - * or instantiates a new instance of this handler. - */ - static create(instanceOrOptions) { - if (typeof (instanceOrOptions == null ? void 0 : instanceOrOptions.handle) === "function") { - return instanceOrOptions; - } - return new _NodeHttp2Handler(instanceOrOptions); - } - destroy() { - this.connectionManager.destroy(); - } - async handle(request, { abortSignal } = {}) { - if (!this.config) { - this.config = await this.configProvider; - this.connectionManager.setDisableConcurrentStreams(this.config.disableConcurrentStreams || false); - if (this.config.maxConcurrentStreams) { - this.connectionManager.setMaxConcurrentStreams(this.config.maxConcurrentStreams); - } - } - const { requestTimeout, disableConcurrentStreams } = this.config; - return new Promise((_resolve, _reject) => { - var _a; - let fulfilled = false; - let writeRequestBodyPromise = void 0; - const resolve = /* @__PURE__ */ __name(async (arg) => { - await writeRequestBodyPromise; - _resolve(arg); - }, "resolve"); - const reject = /* @__PURE__ */ __name(async (arg) => { - await writeRequestBodyPromise; - _reject(arg); - }, "reject"); - if (abortSignal == null ? void 0 : abortSignal.aborted) { - fulfilled = true; - const abortError = new Error("Request aborted"); - abortError.name = "AbortError"; - reject(abortError); - return; - } - const { hostname, method, port, protocol, query } = request; - let auth = ""; - if (request.username != null || request.password != null) { - const username = request.username ?? ""; - const password = request.password ?? ""; - auth = `${username}:${password}@`; - } - const authority = `${protocol}//${auth}${hostname}${port ? `:${port}` : ""}`; - const requestContext = { destination: new URL(authority) }; - const session = this.connectionManager.lease(requestContext, { - requestTimeout: (_a = this.config) == null ? void 0 : _a.sessionTimeout, - disableConcurrentStreams: disableConcurrentStreams || false - }); - const rejectWithDestroy = /* @__PURE__ */ __name((err) => { - if (disableConcurrentStreams) { - this.destroySession(session); - } - fulfilled = true; - reject(err); - }, "rejectWithDestroy"); - const queryString = (0, import_querystring_builder.buildQueryString)(query || {}); - let path = request.path; - if (queryString) { - path += `?${queryString}`; - } - if (request.fragment) { - path += `#${request.fragment}`; - } - const req = session.request({ - ...request.headers, - [import_http22.constants.HTTP2_HEADER_PATH]: path, - [import_http22.constants.HTTP2_HEADER_METHOD]: method - }); - session.ref(); - req.on("response", (headers) => { - const httpResponse = new import_protocol_http.HttpResponse({ - statusCode: headers[":status"] || -1, - headers: getTransformedHeaders(headers), - body: req - }); - fulfilled = true; - resolve({ response: httpResponse }); - if (disableConcurrentStreams) { - session.close(); - this.connectionManager.deleteSession(authority, session); - } - }); - if (requestTimeout) { - req.setTimeout(requestTimeout, () => { - req.close(); - const timeoutError = new Error(`Stream timed out because of no activity for ${requestTimeout} ms`); - timeoutError.name = "TimeoutError"; - rejectWithDestroy(timeoutError); - }); - } - if (abortSignal) { - const onAbort = /* @__PURE__ */ __name(() => { - req.close(); - const abortError = new Error("Request aborted"); - abortError.name = "AbortError"; - rejectWithDestroy(abortError); - }, "onAbort"); - if (typeof abortSignal.addEventListener === "function") { - const signal = abortSignal; - signal.addEventListener("abort", onAbort, { once: true }); - req.once("close", () => signal.removeEventListener("abort", onAbort)); - } else { - abortSignal.onabort = onAbort; - } - } - req.on("frameError", (type, code, id) => { - rejectWithDestroy(new Error(`Frame type id ${type} in stream id ${id} has failed with code ${code}.`)); - }); - req.on("error", rejectWithDestroy); - req.on("aborted", () => { - rejectWithDestroy( - new Error(`HTTP/2 stream is abnormally aborted in mid-communication with result code ${req.rstCode}.`) - ); - }); - req.on("close", () => { - session.unref(); - if (disableConcurrentStreams) { - session.destroy(); - } - if (!fulfilled) { - rejectWithDestroy(new Error("Unexpected error: http2 request did not get a response")); - } - }); - writeRequestBodyPromise = writeRequestBody(req, request, requestTimeout); - }); - } - updateHttpClientConfig(key, value) { - this.config = void 0; - this.configProvider = this.configProvider.then((config) => { - return { - ...config, - [key]: value - }; - }); - } - httpHandlerConfigs() { - return this.config ?? {}; - } - /** - * Destroys a session. - * @param session The session to destroy. - */ - destroySession(session) { - if (!session.destroyed) { - session.destroy(); - } - } -}; -__name(_NodeHttp2Handler, "NodeHttp2Handler"); -var NodeHttp2Handler = _NodeHttp2Handler; - -// src/stream-collector/collector.ts - -var _Collector = class _Collector extends import_stream.Writable { - constructor() { - super(...arguments); - this.bufferedBytes = []; - } - _write(chunk, encoding, callback) { - this.bufferedBytes.push(chunk); - callback(); - } -}; -__name(_Collector, "Collector"); -var Collector = _Collector; - -// src/stream-collector/index.ts -var streamCollector = /* @__PURE__ */ __name((stream) => { - if (isReadableStreamInstance(stream)) { - return collectReadableStream(stream); - } - return new Promise((resolve, reject) => { - const collector = new Collector(); - stream.pipe(collector); - stream.on("error", (err) => { - collector.end(); - reject(err); - }); - collector.on("error", reject); - collector.on("finish", function() { - const bytes = new Uint8Array(Buffer.concat(this.bufferedBytes)); - resolve(bytes); - }); - }); -}, "streamCollector"); -var isReadableStreamInstance = /* @__PURE__ */ __name((stream) => typeof ReadableStream === "function" && stream instanceof ReadableStream, "isReadableStreamInstance"); -async function collectReadableStream(stream) { - const chunks = []; - const reader = stream.getReader(); - let isDone = false; - let length = 0; - while (!isDone) { - const { done, value } = await reader.read(); - if (value) { - chunks.push(value); - length += value.length; - } - isDone = done; - } - const collected = new Uint8Array(length); - let offset = 0; - for (const chunk of chunks) { - collected.set(chunk, offset); - offset += chunk.length; - } - return collected; -} -__name(collectReadableStream, "collectReadableStream"); -// Annotate the CommonJS export names for ESM import in node: + updateHttpClientConfig(key, value) { + this.config = void 0 + this.configProvider = this.configProvider.then(config => { + config[key] = value + return config + }) + } + httpHandlerConfigs() { + return this.config ?? {} + } + } -0 && (0); + // src/stream-collector.ts + var import_util_base64 = __nccwpck_require__(44079) + var streamCollector = /* @__PURE__ */ __name(async stream => { + if ( + (typeof Blob === 'function' && stream instanceof Blob) || + stream.constructor?.name === 'Blob' + ) { + if (Blob.prototype.arrayBuffer !== void 0) { + return new Uint8Array(await stream.arrayBuffer()) + } + return collectBlob(stream) + } + return collectStream(stream) + }, 'streamCollector') + async function collectBlob(blob) { + const base64 = await readToBase64(blob) + const arrayBuffer = (0, import_util_base64.fromBase64)(base64) + return new Uint8Array(arrayBuffer) + } + __name(collectBlob, 'collectBlob') + async function collectStream(stream) { + const chunks = [] + const reader = stream.getReader() + let isDone = false + let length = 0 + while (!isDone) { + const { done, value } = await reader.read() + if (value) { + chunks.push(value) + length += value.length + } + isDone = done + } + const collected = new Uint8Array(length) + let offset = 0 + for (const chunk of chunks) { + collected.set(chunk, offset) + offset += chunk.length + } + return collected + } + __name(collectStream, 'collectStream') + function readToBase64(blob) { + return new Promise((resolve, reject) => { + const reader = new FileReader() + reader.onloadend = () => { + if (reader.readyState !== 2) { + return reject(new Error('Reader aborted too early')) + } + const result = reader.result ?? '' + const commaIndex = result.indexOf(',') + const dataOffset = commaIndex > -1 ? commaIndex + 1 : result.length + resolve(result.substring(dataOffset)) + } + reader.onabort = () => reject(new Error('Read aborted')) + reader.onerror = () => reject(reader.error) + reader.readAsDataURL(blob) + }) + } + __name(readToBase64, 'readToBase64') + // Annotate the CommonJS export names for ESM import in node: + 0 && 0 + /***/ + }, -/***/ }), + /***/ 92920: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -/***/ 49344: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + // src/index.ts + var src_exports = {} + __export(src_exports, { + Hash: () => Hash + }) + module.exports = __toCommonJS(src_exports) + var import_util_buffer_from = __nccwpck_require__(18614) + var import_util_utf8 = __nccwpck_require__(76749) + var import_buffer = __nccwpck_require__(14300) + var import_crypto = __nccwpck_require__(6113) + var Hash = class { + static { + __name(this, 'Hash') + } + constructor(algorithmIdentifier, secret) { + this.algorithmIdentifier = algorithmIdentifier + this.secret = secret + this.reset() + } + update(toHash, encoding) { + this.hash.update( + (0, import_util_utf8.toUint8Array)(castSourceData(toHash, encoding)) + ) + } + digest() { + return Promise.resolve(this.hash.digest()) + } + reset() { + this.hash = this.secret + ? (0, import_crypto.createHmac)( + this.algorithmIdentifier, + castSourceData(this.secret) + ) + : (0, import_crypto.createHash)(this.algorithmIdentifier) + } + } + function castSourceData(toCast, encoding) { + if (import_buffer.Buffer.isBuffer(toCast)) { + return toCast + } + if (typeof toCast === 'string') { + return (0, import_util_buffer_from.fromString)(toCast, encoding) + } + if (ArrayBuffer.isView(toCast)) { + return (0, import_util_buffer_from.fromArrayBuffer)( + toCast.buffer, + toCast.byteOffset, + toCast.byteLength + ) + } + return (0, import_util_buffer_from.fromArrayBuffer)(toCast) + } + __name(castSourceData, 'castSourceData') + // Annotate the CommonJS export names for ESM import in node: -"use strict"; + 0 && 0 -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.resolveHttpAuthSchemeConfig = exports.defaultSSOHttpAuthSchemeProvider = exports.defaultSSOHttpAuthSchemeParametersProvider = void 0; -const core_1 = __nccwpck_require__(59963); -const util_middleware_1 = __nccwpck_require__(2390); -const defaultSSOHttpAuthSchemeParametersProvider = async (config, context, input) => { - return { - operation: (0, util_middleware_1.getSmithyContext)(context).operation, - region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) || - (() => { - throw new Error("expected `region` to be configured for `aws.auth#sigv4`"); - })(), - }; -}; -exports.defaultSSOHttpAuthSchemeParametersProvider = defaultSSOHttpAuthSchemeParametersProvider; -function createAwsAuthSigv4HttpAuthOption(authParameters) { - return { - schemeId: "aws.auth#sigv4", - signingProperties: { - name: "awsssoportal", - region: authParameters.region, - }, - propertiesExtractor: (config, context) => ({ - signingProperties: { - config, - context, - }, - }), - }; -} -function createSmithyApiNoAuthHttpAuthOption(authParameters) { - return { - schemeId: "smithy.api#noAuth", - }; -} -const defaultSSOHttpAuthSchemeProvider = (authParameters) => { - const options = []; - switch (authParameters.operation) { - case "GetRoleCredentials": { - options.push(createSmithyApiNoAuthHttpAuthOption(authParameters)); - break; - } - case "ListAccountRoles": { - options.push(createSmithyApiNoAuthHttpAuthOption(authParameters)); - break; - } - case "ListAccounts": { - options.push(createSmithyApiNoAuthHttpAuthOption(authParameters)); - break; - } - case "Logout": { - options.push(createSmithyApiNoAuthHttpAuthOption(authParameters)); - break; - } - default: { - options.push(createAwsAuthSigv4HttpAuthOption(authParameters)); + /***/ + }, + + /***/ 25796: /***/ module => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) } - } - return options; -}; -exports.defaultSSOHttpAuthSchemeProvider = defaultSSOHttpAuthSchemeProvider; -const resolveHttpAuthSchemeConfig = (config) => { - const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config); - return { - ...config_0, - }; -}; -exports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig; - - -/***/ }), - -/***/ 30898: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.defaultEndpointResolver = void 0; -const util_endpoints_1 = __nccwpck_require__(13350); -const util_endpoints_2 = __nccwpck_require__(45473); -const ruleset_1 = __nccwpck_require__(13341); -const defaultEndpointResolver = (endpointParams, context = {}) => { - return (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, { - endpointParams: endpointParams, - logger: context.logger, - }); -}; -exports.defaultEndpointResolver = defaultEndpointResolver; -util_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions; - - -/***/ }), - -/***/ 13341: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.ruleSet = void 0; -const u = "required", v = "fn", w = "argv", x = "ref"; -const a = true, b = "isSet", c = "booleanEquals", d = "error", e = "endpoint", f = "tree", g = "PartitionResult", h = "getAttr", i = { [u]: false, "type": "String" }, j = { [u]: true, "default": false, "type": "Boolean" }, k = { [x]: "Endpoint" }, l = { [v]: c, [w]: [{ [x]: "UseFIPS" }, true] }, m = { [v]: c, [w]: [{ [x]: "UseDualStack" }, true] }, n = {}, o = { [v]: h, [w]: [{ [x]: g }, "supportsFIPS"] }, p = { [x]: g }, q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, "supportsDualStack"] }] }, r = [l], s = [m], t = [{ [x]: "Region" }]; -const _data = { version: "1.0", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [v]: b, [w]: [k] }], rules: [{ conditions: r, error: "Invalid Configuration: FIPS and custom endpoint are not supported", type: d }, { conditions: s, error: "Invalid Configuration: Dualstack and custom endpoint are not supported", type: d }, { endpoint: { url: k, properties: n, headers: n }, type: e }], type: f }, { conditions: [{ [v]: b, [w]: t }], rules: [{ conditions: [{ [v]: "aws.partition", [w]: t, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [v]: c, [w]: [a, o] }, q], rules: [{ endpoint: { url: "https://portal.sso-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", properties: n, headers: n }, type: e }], type: f }, { error: "FIPS and DualStack are enabled, but this partition does not support one or both", type: d }], type: f }, { conditions: r, rules: [{ conditions: [{ [v]: c, [w]: [o, a] }], rules: [{ conditions: [{ [v]: "stringEquals", [w]: [{ [v]: h, [w]: [p, "name"] }, "aws-us-gov"] }], endpoint: { url: "https://portal.sso.{Region}.amazonaws.com", properties: n, headers: n }, type: e }, { endpoint: { url: "https://portal.sso-fips.{Region}.{PartitionResult#dnsSuffix}", properties: n, headers: n }, type: e }], type: f }, { error: "FIPS is enabled but this partition does not support FIPS", type: d }], type: f }, { conditions: s, rules: [{ conditions: [q], rules: [{ endpoint: { url: "https://portal.sso.{Region}.{PartitionResult#dualStackDnsSuffix}", properties: n, headers: n }, type: e }], type: f }, { error: "DualStack is enabled but this partition does not support DualStack", type: d }], type: f }, { endpoint: { url: "https://portal.sso.{Region}.{PartitionResult#dnsSuffix}", properties: n, headers: n }, type: e }], type: f }], type: f }, { error: "Invalid Configuration: Missing Region", type: d }] }; -exports.ruleSet = _data; - - -/***/ }), - -/***/ 82666: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - GetRoleCredentialsCommand: () => GetRoleCredentialsCommand, - GetRoleCredentialsRequestFilterSensitiveLog: () => GetRoleCredentialsRequestFilterSensitiveLog, - GetRoleCredentialsResponseFilterSensitiveLog: () => GetRoleCredentialsResponseFilterSensitiveLog, - InvalidRequestException: () => InvalidRequestException, - ListAccountRolesCommand: () => ListAccountRolesCommand, - ListAccountRolesRequestFilterSensitiveLog: () => ListAccountRolesRequestFilterSensitiveLog, - ListAccountsCommand: () => ListAccountsCommand, - ListAccountsRequestFilterSensitiveLog: () => ListAccountsRequestFilterSensitiveLog, - LogoutCommand: () => LogoutCommand, - LogoutRequestFilterSensitiveLog: () => LogoutRequestFilterSensitiveLog, - ResourceNotFoundException: () => ResourceNotFoundException, - RoleCredentialsFilterSensitiveLog: () => RoleCredentialsFilterSensitiveLog, - SSO: () => SSO, - SSOClient: () => SSOClient, - SSOServiceException: () => SSOServiceException, - TooManyRequestsException: () => TooManyRequestsException, - UnauthorizedException: () => UnauthorizedException, - __Client: () => import_smithy_client.Client, - paginateListAccountRoles: () => paginateListAccountRoles, - paginateListAccounts: () => paginateListAccounts -}); -module.exports = __toCommonJS(src_exports); - -// src/SSOClient.ts -var import_middleware_host_header = __nccwpck_require__(22545); -var import_middleware_logger = __nccwpck_require__(20014); -var import_middleware_recursion_detection = __nccwpck_require__(85525); -var import_middleware_user_agent = __nccwpck_require__(64688); -var import_config_resolver = __nccwpck_require__(53098); -var import_core = __nccwpck_require__(55829); -var import_middleware_content_length = __nccwpck_require__(82800); -var import_middleware_endpoint = __nccwpck_require__(82918); -var import_middleware_retry = __nccwpck_require__(96039); - -var import_httpAuthSchemeProvider = __nccwpck_require__(49344); - -// src/endpoint/EndpointParameters.ts -var resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => { - return { - ...options, - useDualstackEndpoint: options.useDualstackEndpoint ?? false, - useFipsEndpoint: options.useFipsEndpoint ?? false, - defaultSigningName: "awsssoportal" - }; -}, "resolveClientEndpointParameters"); -var commonParams = { - UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" }, - Endpoint: { type: "builtInParams", name: "endpoint" }, - Region: { type: "builtInParams", name: "region" }, - UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" } -}; - -// src/SSOClient.ts -var import_runtimeConfig = __nccwpck_require__(19756); - -// src/runtimeExtensions.ts -var import_region_config_resolver = __nccwpck_require__(18156); -var import_protocol_http = __nccwpck_require__(64418); -var import_smithy_client = __nccwpck_require__(63570); - -// src/auth/httpAuthExtensionConfiguration.ts -var getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => { - const _httpAuthSchemes = runtimeConfig.httpAuthSchemes; - let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider; - let _credentials = runtimeConfig.credentials; - return { - setHttpAuthScheme(httpAuthScheme) { - const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId); - if (index === -1) { - _httpAuthSchemes.push(httpAuthScheme); - } else { - _httpAuthSchemes.splice(index, 1, httpAuthScheme); + return to } - }, - httpAuthSchemes() { - return _httpAuthSchemes; - }, - setHttpAuthSchemeProvider(httpAuthSchemeProvider) { - _httpAuthSchemeProvider = httpAuthSchemeProvider; - }, - httpAuthSchemeProvider() { - return _httpAuthSchemeProvider; - }, - setCredentials(credentials) { - _credentials = credentials; - }, - credentials() { - return _credentials; - } - }; -}, "getHttpAuthExtensionConfiguration"); -var resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => { - return { - httpAuthSchemes: config.httpAuthSchemes(), - httpAuthSchemeProvider: config.httpAuthSchemeProvider(), - credentials: config.credentials() - }; -}, "resolveHttpAuthRuntimeConfig"); - -// src/runtimeExtensions.ts -var asPartial = /* @__PURE__ */ __name((t) => t, "asPartial"); -var resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => { - const extensionConfiguration = { - ...asPartial((0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig)), - ...asPartial((0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig)), - ...asPartial((0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig)), - ...asPartial(getHttpAuthExtensionConfiguration(runtimeConfig)) - }; - extensions.forEach((extension) => extension.configure(extensionConfiguration)); - return { - ...runtimeConfig, - ...(0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration), - ...(0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration), - ...(0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration), - ...resolveHttpAuthRuntimeConfig(extensionConfiguration) - }; -}, "resolveRuntimeExtensions"); - -// src/SSOClient.ts -var _SSOClient = class _SSOClient extends import_smithy_client.Client { - constructor(...[configuration]) { - const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {}); - const _config_1 = resolveClientEndpointParameters(_config_0); - const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1); - const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2); - const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3); - const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4); - const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5); - const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6); - const _config_8 = resolveRuntimeExtensions(_config_7, (configuration == null ? void 0 : configuration.extensions) || []); - super(_config_8); - this.config = _config_8; - this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config)); - this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config)); - this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config)); - this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config)); - this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config)); - this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config)); - this.middlewareStack.use( - (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, { - httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultSSOHttpAuthSchemeParametersProvider, - identityProviderConfigProvider: async (config) => new import_core.DefaultIdentityProviderConfig({ - "aws.auth#sigv4": config.credentials - }) + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + isArrayBuffer: () => isArrayBuffer }) - ); - this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config)); - } - /** - * Destroy underlying resources, like sockets. It's usually not necessary to do this. - * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed. - * Otherwise, sockets might stay open for quite a long time before the server terminates them. - */ - destroy() { - super.destroy(); - } -}; -__name(_SSOClient, "SSOClient"); -var SSOClient = _SSOClient; + module.exports = __toCommonJS(src_exports) + var isArrayBuffer = /* @__PURE__ */ __name( + arg => + (typeof ArrayBuffer === 'function' && arg instanceof ArrayBuffer) || + Object.prototype.toString.call(arg) === '[object ArrayBuffer]', + 'isArrayBuffer' + ) + // Annotate the CommonJS export names for ESM import in node: -// src/SSO.ts + 0 && 0 + /***/ + }, -// src/commands/GetRoleCredentialsCommand.ts + /***/ 51214: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -var import_middleware_serde = __nccwpck_require__(81238); + // src/index.ts + var src_exports = {} + __export(src_exports, { + contentLengthMiddleware: () => contentLengthMiddleware, + contentLengthMiddlewareOptions: () => contentLengthMiddlewareOptions, + getContentLengthPlugin: () => getContentLengthPlugin + }) + module.exports = __toCommonJS(src_exports) + var import_protocol_http = __nccwpck_require__(18241) + var CONTENT_LENGTH_HEADER = 'content-length' + function contentLengthMiddleware(bodyLengthChecker) { + return next => async args => { + const request = args.request + if (import_protocol_http.HttpRequest.isInstance(request)) { + const { body, headers } = request + if ( + body && + Object.keys(headers) + .map(str => str.toLowerCase()) + .indexOf(CONTENT_LENGTH_HEADER) === -1 + ) { + try { + const length = bodyLengthChecker(body) + request.headers = { + ...request.headers, + [CONTENT_LENGTH_HEADER]: String(length) + } + } catch (error) {} + } + } + return next({ + ...args, + request + }) + } + } + __name(contentLengthMiddleware, 'contentLengthMiddleware') + var contentLengthMiddlewareOptions = { + step: 'build', + tags: ['SET_CONTENT_LENGTH', 'CONTENT_LENGTH'], + name: 'contentLengthMiddleware', + override: true + } + var getContentLengthPlugin = /* @__PURE__ */ __name( + options => ({ + applyToStack: clientStack => { + clientStack.add( + contentLengthMiddleware(options.bodyLengthChecker), + contentLengthMiddlewareOptions + ) + } + }), + 'getContentLengthPlugin' + ) + // Annotate the CommonJS export names for ESM import in node: + 0 && 0 -// src/models/models_0.ts + /***/ + }, + /***/ 2941: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getEndpointFromConfig = void 0 + const node_config_provider_1 = __nccwpck_require__(85650) + const getEndpointUrlConfig_1 = __nccwpck_require__(37924) + const getEndpointFromConfig = async serviceId => + (0, node_config_provider_1.loadConfig)( + (0, getEndpointUrlConfig_1.getEndpointUrlConfig)( + serviceId !== null && serviceId !== void 0 ? serviceId : '' + ) + )() + exports.getEndpointFromConfig = getEndpointFromConfig -// src/models/SSOServiceException.ts + /***/ + }, -var _SSOServiceException = class _SSOServiceException extends import_smithy_client.ServiceException { - /** - * @internal - */ - constructor(options) { - super(options); - Object.setPrototypeOf(this, _SSOServiceException.prototype); - } -}; -__name(_SSOServiceException, "SSOServiceException"); -var SSOServiceException = _SSOServiceException; - -// src/models/models_0.ts -var _InvalidRequestException = class _InvalidRequestException extends SSOServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "InvalidRequestException", - $fault: "client", - ...opts - }); - this.name = "InvalidRequestException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _InvalidRequestException.prototype); - } -}; -__name(_InvalidRequestException, "InvalidRequestException"); -var InvalidRequestException = _InvalidRequestException; -var _ResourceNotFoundException = class _ResourceNotFoundException extends SSOServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "ResourceNotFoundException", - $fault: "client", - ...opts - }); - this.name = "ResourceNotFoundException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _ResourceNotFoundException.prototype); - } -}; -__name(_ResourceNotFoundException, "ResourceNotFoundException"); -var ResourceNotFoundException = _ResourceNotFoundException; -var _TooManyRequestsException = class _TooManyRequestsException extends SSOServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "TooManyRequestsException", - $fault: "client", - ...opts - }); - this.name = "TooManyRequestsException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _TooManyRequestsException.prototype); - } -}; -__name(_TooManyRequestsException, "TooManyRequestsException"); -var TooManyRequestsException = _TooManyRequestsException; -var _UnauthorizedException = class _UnauthorizedException extends SSOServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "UnauthorizedException", - $fault: "client", - ...opts - }); - this.name = "UnauthorizedException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _UnauthorizedException.prototype); - } -}; -__name(_UnauthorizedException, "UnauthorizedException"); -var UnauthorizedException = _UnauthorizedException; -var GetRoleCredentialsRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({ - ...obj, - ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING } -}), "GetRoleCredentialsRequestFilterSensitiveLog"); -var RoleCredentialsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({ - ...obj, - ...obj.secretAccessKey && { secretAccessKey: import_smithy_client.SENSITIVE_STRING }, - ...obj.sessionToken && { sessionToken: import_smithy_client.SENSITIVE_STRING } -}), "RoleCredentialsFilterSensitiveLog"); -var GetRoleCredentialsResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({ - ...obj, - ...obj.roleCredentials && { roleCredentials: RoleCredentialsFilterSensitiveLog(obj.roleCredentials) } -}), "GetRoleCredentialsResponseFilterSensitiveLog"); -var ListAccountRolesRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({ - ...obj, - ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING } -}), "ListAccountRolesRequestFilterSensitiveLog"); -var ListAccountsRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({ - ...obj, - ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING } -}), "ListAccountsRequestFilterSensitiveLog"); -var LogoutRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({ - ...obj, - ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING } -}), "LogoutRequestFilterSensitiveLog"); - -// src/protocols/Aws_restJson1.ts -var import_core2 = __nccwpck_require__(59963); - - -var se_GetRoleCredentialsCommand = /* @__PURE__ */ __name(async (input, context) => { - const b = (0, import_core.requestBuilder)(input, context); - const headers = (0, import_smithy_client.map)({}, isSerializableHeaderValue, { - [_xasbt]: input[_aT] - }); - b.bp("/federation/credentials"); - const query = (0, import_smithy_client.map)({ - [_rn]: [, (0, import_smithy_client.expectNonNull)(input[_rN], `roleName`)], - [_ai]: [, (0, import_smithy_client.expectNonNull)(input[_aI], `accountId`)] - }); - let body; - b.m("GET").h(headers).q(query).b(body); - return b.build(); -}, "se_GetRoleCredentialsCommand"); -var se_ListAccountRolesCommand = /* @__PURE__ */ __name(async (input, context) => { - const b = (0, import_core.requestBuilder)(input, context); - const headers = (0, import_smithy_client.map)({}, isSerializableHeaderValue, { - [_xasbt]: input[_aT] - }); - b.bp("/assignment/roles"); - const query = (0, import_smithy_client.map)({ - [_nt]: [, input[_nT]], - [_mr]: [() => input.maxResults !== void 0, () => input[_mR].toString()], - [_ai]: [, (0, import_smithy_client.expectNonNull)(input[_aI], `accountId`)] - }); - let body; - b.m("GET").h(headers).q(query).b(body); - return b.build(); -}, "se_ListAccountRolesCommand"); -var se_ListAccountsCommand = /* @__PURE__ */ __name(async (input, context) => { - const b = (0, import_core.requestBuilder)(input, context); - const headers = (0, import_smithy_client.map)({}, isSerializableHeaderValue, { - [_xasbt]: input[_aT] - }); - b.bp("/assignment/accounts"); - const query = (0, import_smithy_client.map)({ - [_nt]: [, input[_nT]], - [_mr]: [() => input.maxResults !== void 0, () => input[_mR].toString()] - }); - let body; - b.m("GET").h(headers).q(query).b(body); - return b.build(); -}, "se_ListAccountsCommand"); -var se_LogoutCommand = /* @__PURE__ */ __name(async (input, context) => { - const b = (0, import_core.requestBuilder)(input, context); - const headers = (0, import_smithy_client.map)({}, isSerializableHeaderValue, { - [_xasbt]: input[_aT] - }); - b.bp("/logout"); - let body; - b.m("POST").h(headers).b(body); - return b.build(); -}, "se_LogoutCommand"); -var de_GetRoleCredentialsCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_CommandError(output, context); - } - const contents = (0, import_smithy_client.map)({ - $metadata: deserializeMetadata(output) - }); - const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), "body"); - const doc = (0, import_smithy_client.take)(data, { - roleCredentials: import_smithy_client._json - }); - Object.assign(contents, doc); - return contents; -}, "de_GetRoleCredentialsCommand"); -var de_ListAccountRolesCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_CommandError(output, context); - } - const contents = (0, import_smithy_client.map)({ - $metadata: deserializeMetadata(output) - }); - const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), "body"); - const doc = (0, import_smithy_client.take)(data, { - nextToken: import_smithy_client.expectString, - roleList: import_smithy_client._json - }); - Object.assign(contents, doc); - return contents; -}, "de_ListAccountRolesCommand"); -var de_ListAccountsCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_CommandError(output, context); - } - const contents = (0, import_smithy_client.map)({ - $metadata: deserializeMetadata(output) - }); - const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), "body"); - const doc = (0, import_smithy_client.take)(data, { - accountList: import_smithy_client._json, - nextToken: import_smithy_client.expectString - }); - Object.assign(contents, doc); - return contents; -}, "de_ListAccountsCommand"); -var de_LogoutCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_CommandError(output, context); - } - const contents = (0, import_smithy_client.map)({ - $metadata: deserializeMetadata(output) - }); - await (0, import_smithy_client.collectBody)(output.body, context); - return contents; -}, "de_LogoutCommand"); -var de_CommandError = /* @__PURE__ */ __name(async (output, context) => { - const parsedOutput = { - ...output, - body: await (0, import_core2.parseJsonErrorBody)(output.body, context) - }; - const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body); - switch (errorCode) { - case "InvalidRequestException": - case "com.amazonaws.sso#InvalidRequestException": - throw await de_InvalidRequestExceptionRes(parsedOutput, context); - case "ResourceNotFoundException": - case "com.amazonaws.sso#ResourceNotFoundException": - throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); - case "TooManyRequestsException": - case "com.amazonaws.sso#TooManyRequestsException": - throw await de_TooManyRequestsExceptionRes(parsedOutput, context); - case "UnauthorizedException": - case "com.amazonaws.sso#UnauthorizedException": - throw await de_UnauthorizedExceptionRes(parsedOutput, context); - default: - const parsedBody = parsedOutput.body; - return throwDefaultError({ - output, - parsedBody, - errorCode - }); - } -}, "de_CommandError"); -var throwDefaultError = (0, import_smithy_client.withBaseException)(SSOServiceException); -var de_InvalidRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const contents = (0, import_smithy_client.map)({}); - const data = parsedOutput.body; - const doc = (0, import_smithy_client.take)(data, { - message: import_smithy_client.expectString - }); - Object.assign(contents, doc); - const exception = new InvalidRequestException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents - }); - return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body); -}, "de_InvalidRequestExceptionRes"); -var de_ResourceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const contents = (0, import_smithy_client.map)({}); - const data = parsedOutput.body; - const doc = (0, import_smithy_client.take)(data, { - message: import_smithy_client.expectString - }); - Object.assign(contents, doc); - const exception = new ResourceNotFoundException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents - }); - return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body); -}, "de_ResourceNotFoundExceptionRes"); -var de_TooManyRequestsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const contents = (0, import_smithy_client.map)({}); - const data = parsedOutput.body; - const doc = (0, import_smithy_client.take)(data, { - message: import_smithy_client.expectString - }); - Object.assign(contents, doc); - const exception = new TooManyRequestsException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents - }); - return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body); -}, "de_TooManyRequestsExceptionRes"); -var de_UnauthorizedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const contents = (0, import_smithy_client.map)({}); - const data = parsedOutput.body; - const doc = (0, import_smithy_client.take)(data, { - message: import_smithy_client.expectString - }); - Object.assign(contents, doc); - const exception = new UnauthorizedException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents - }); - return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body); -}, "de_UnauthorizedExceptionRes"); -var deserializeMetadata = /* @__PURE__ */ __name((output) => ({ - httpStatusCode: output.statusCode, - requestId: output.headers["x-amzn-requestid"] ?? output.headers["x-amzn-request-id"] ?? output.headers["x-amz-request-id"], - extendedRequestId: output.headers["x-amz-id-2"], - cfId: output.headers["x-amz-cf-id"] -}), "deserializeMetadata"); -var isSerializableHeaderValue = /* @__PURE__ */ __name((value) => value !== void 0 && value !== null && value !== "" && (!Object.getOwnPropertyNames(value).includes("length") || value.length != 0) && (!Object.getOwnPropertyNames(value).includes("size") || value.size != 0), "isSerializableHeaderValue"); -var _aI = "accountId"; -var _aT = "accessToken"; -var _ai = "account_id"; -var _mR = "maxResults"; -var _mr = "max_result"; -var _nT = "nextToken"; -var _nt = "next_token"; -var _rN = "roleName"; -var _rn = "role_name"; -var _xasbt = "x-amz-sso_bearer_token"; - -// src/commands/GetRoleCredentialsCommand.ts -var _GetRoleCredentialsCommand = class _GetRoleCredentialsCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("SWBPortalService", "GetRoleCredentials", {}).n("SSOClient", "GetRoleCredentialsCommand").f(GetRoleCredentialsRequestFilterSensitiveLog, GetRoleCredentialsResponseFilterSensitiveLog).ser(se_GetRoleCredentialsCommand).de(de_GetRoleCredentialsCommand).build() { -}; -__name(_GetRoleCredentialsCommand, "GetRoleCredentialsCommand"); -var GetRoleCredentialsCommand = _GetRoleCredentialsCommand; - -// src/commands/ListAccountRolesCommand.ts - - - -var _ListAccountRolesCommand = class _ListAccountRolesCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("SWBPortalService", "ListAccountRoles", {}).n("SSOClient", "ListAccountRolesCommand").f(ListAccountRolesRequestFilterSensitiveLog, void 0).ser(se_ListAccountRolesCommand).de(de_ListAccountRolesCommand).build() { -}; -__name(_ListAccountRolesCommand, "ListAccountRolesCommand"); -var ListAccountRolesCommand = _ListAccountRolesCommand; - -// src/commands/ListAccountsCommand.ts - - - -var _ListAccountsCommand = class _ListAccountsCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("SWBPortalService", "ListAccounts", {}).n("SSOClient", "ListAccountsCommand").f(ListAccountsRequestFilterSensitiveLog, void 0).ser(se_ListAccountsCommand).de(de_ListAccountsCommand).build() { -}; -__name(_ListAccountsCommand, "ListAccountsCommand"); -var ListAccountsCommand = _ListAccountsCommand; - -// src/commands/LogoutCommand.ts - - - -var _LogoutCommand = class _LogoutCommand extends import_smithy_client.Command.classBuilder().ep({ - ...commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("SWBPortalService", "Logout", {}).n("SSOClient", "LogoutCommand").f(LogoutRequestFilterSensitiveLog, void 0).ser(se_LogoutCommand).de(de_LogoutCommand).build() { -}; -__name(_LogoutCommand, "LogoutCommand"); -var LogoutCommand = _LogoutCommand; - -// src/SSO.ts -var commands = { - GetRoleCredentialsCommand, - ListAccountRolesCommand, - ListAccountsCommand, - LogoutCommand -}; -var _SSO = class _SSO extends SSOClient { -}; -__name(_SSO, "SSO"); -var SSO = _SSO; -(0, import_smithy_client.createAggregatedClient)(commands, SSO); - -// src/pagination/ListAccountRolesPaginator.ts - -var paginateListAccountRoles = (0, import_core.createPaginator)(SSOClient, ListAccountRolesCommand, "nextToken", "nextToken", "maxResults"); - -// src/pagination/ListAccountsPaginator.ts - -var paginateListAccounts = (0, import_core.createPaginator)(SSOClient, ListAccountsCommand, "nextToken", "nextToken", "maxResults"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 19756: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getRuntimeConfig = void 0; -const tslib_1 = __nccwpck_require__(4351); -const package_json_1 = tslib_1.__importDefault(__nccwpck_require__(91092)); -const core_1 = __nccwpck_require__(59963); -const util_user_agent_node_1 = __nccwpck_require__(98095); -const config_resolver_1 = __nccwpck_require__(53098); -const hash_node_1 = __nccwpck_require__(3081); -const middleware_retry_1 = __nccwpck_require__(96039); -const node_config_provider_1 = __nccwpck_require__(33461); -const node_http_handler_1 = __nccwpck_require__(67028); -const util_body_length_node_1 = __nccwpck_require__(68075); -const util_retry_1 = __nccwpck_require__(84902); -const runtimeConfig_shared_1 = __nccwpck_require__(44809); -const smithy_client_1 = __nccwpck_require__(63570); -const util_defaults_mode_node_1 = __nccwpck_require__(72429); -const smithy_client_2 = __nccwpck_require__(63570); -const getRuntimeConfig = (config) => { - (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version); - const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config); - const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode); - const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config); - (0, core_1.emitWarningIfUnsupportedVersion)(process.version); - return { - ...clientSharedValues, - ...config, - runtime: "node", - defaultsMode, - bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength, - defaultUserAgentProvider: config?.defaultUserAgentProvider ?? - (0, util_user_agent_node_1.defaultUserAgent)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }), - maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS), - region: config?.region ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS), - requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider), - retryMode: config?.retryMode ?? - (0, node_config_provider_1.loadConfig)({ - ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS, - default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE, - }), - sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, "sha256"), - streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector, - useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS), - useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS), - }; -}; -exports.getRuntimeConfig = getRuntimeConfig; - - -/***/ }), - -/***/ 44809: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getRuntimeConfig = void 0; -const core_1 = __nccwpck_require__(59963); -const core_2 = __nccwpck_require__(55829); -const smithy_client_1 = __nccwpck_require__(63570); -const url_parser_1 = __nccwpck_require__(14681); -const util_base64_1 = __nccwpck_require__(75600); -const util_utf8_1 = __nccwpck_require__(41895); -const httpAuthSchemeProvider_1 = __nccwpck_require__(49344); -const endpointResolver_1 = __nccwpck_require__(30898); -const getRuntimeConfig = (config) => { - return { - apiVersion: "2019-06-10", - base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64, - base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64, - disableHostPrefix: config?.disableHostPrefix ?? false, - endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver, - extensions: config?.extensions ?? [], - httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSSOHttpAuthSchemeProvider, - httpAuthSchemes: config?.httpAuthSchemes ?? [ - { - schemeId: "aws.auth#sigv4", - identityProvider: (ipc) => ipc.getIdentityProvider("aws.auth#sigv4"), - signer: new core_1.AwsSdkSigV4Signer(), - }, - { - schemeId: "smithy.api#noAuth", - identityProvider: (ipc) => ipc.getIdentityProvider("smithy.api#noAuth") || (async () => ({})), - signer: new core_2.NoAuthSigner(), - }, - ], - logger: config?.logger ?? new smithy_client_1.NoOpLogger(), - serviceId: config?.serviceId ?? "SSO", - urlParser: config?.urlParser ?? url_parser_1.parseUrl, - utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8, - utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8, - }; -}; -exports.getRuntimeConfig = getRuntimeConfig; - - -/***/ }), - -/***/ 67028: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __create = Object.create; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __getProtoOf = Object.getPrototypeOf; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. - isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, - mod -)); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - DEFAULT_REQUEST_TIMEOUT: () => DEFAULT_REQUEST_TIMEOUT, - NodeHttp2Handler: () => NodeHttp2Handler, - NodeHttpHandler: () => NodeHttpHandler, - streamCollector: () => streamCollector -}); -module.exports = __toCommonJS(src_exports); - -// src/node-http-handler.ts -var import_protocol_http = __nccwpck_require__(64418); -var import_querystring_builder = __nccwpck_require__(68031); -var import_http = __nccwpck_require__(13685); -var import_https = __nccwpck_require__(95687); - -// src/constants.ts -var NODEJS_TIMEOUT_ERROR_CODES = ["ECONNRESET", "EPIPE", "ETIMEDOUT"]; - -// src/get-transformed-headers.ts -var getTransformedHeaders = /* @__PURE__ */ __name((headers) => { - const transformedHeaders = {}; - for (const name of Object.keys(headers)) { - const headerValues = headers[name]; - transformedHeaders[name] = Array.isArray(headerValues) ? headerValues.join(",") : headerValues; - } - return transformedHeaders; -}, "getTransformedHeaders"); - -// src/set-connection-timeout.ts -var DEFER_EVENT_LISTENER_TIME = 1e3; -var setConnectionTimeout = /* @__PURE__ */ __name((request, reject, timeoutInMs = 0) => { - if (!timeoutInMs) { - return -1; - } - const registerTimeout = /* @__PURE__ */ __name((offset) => { - const timeoutId = setTimeout(() => { - request.destroy(); - reject( - Object.assign(new Error(`Socket timed out without establishing a connection within ${timeoutInMs} ms`), { - name: "TimeoutError" - }) - ); - }, timeoutInMs - offset); - const doWithSocket = /* @__PURE__ */ __name((socket) => { - if (socket == null ? void 0 : socket.connecting) { - socket.on("connect", () => { - clearTimeout(timeoutId); - }); - } else { - clearTimeout(timeoutId); - } - }, "doWithSocket"); - if (request.socket) { - doWithSocket(request.socket); - } else { - request.on("socket", doWithSocket); - } - }, "registerTimeout"); - if (timeoutInMs < 2e3) { - registerTimeout(0); - return 0; - } - return setTimeout(registerTimeout.bind(null, DEFER_EVENT_LISTENER_TIME), DEFER_EVENT_LISTENER_TIME); -}, "setConnectionTimeout"); - -// src/set-socket-keep-alive.ts -var DEFER_EVENT_LISTENER_TIME2 = 3e3; -var setSocketKeepAlive = /* @__PURE__ */ __name((request, { keepAlive, keepAliveMsecs }, deferTimeMs = DEFER_EVENT_LISTENER_TIME2) => { - if (keepAlive !== true) { - return -1; - } - const registerListener = /* @__PURE__ */ __name(() => { - if (request.socket) { - request.socket.setKeepAlive(keepAlive, keepAliveMsecs || 0); - } else { - request.on("socket", (socket) => { - socket.setKeepAlive(keepAlive, keepAliveMsecs || 0); - }); - } - }, "registerListener"); - if (deferTimeMs === 0) { - registerListener(); - return 0; - } - return setTimeout(registerListener, deferTimeMs); -}, "setSocketKeepAlive"); - -// src/set-socket-timeout.ts -var DEFER_EVENT_LISTENER_TIME3 = 3e3; -var setSocketTimeout = /* @__PURE__ */ __name((request, reject, timeoutInMs = 0) => { - const registerTimeout = /* @__PURE__ */ __name((offset) => { - request.setTimeout(timeoutInMs - offset, () => { - request.destroy(); - reject(Object.assign(new Error(`Connection timed out after ${timeoutInMs} ms`), { name: "TimeoutError" })); - }); - }, "registerTimeout"); - if (0 < timeoutInMs && timeoutInMs < 6e3) { - registerTimeout(0); - return 0; - } - return setTimeout( - registerTimeout.bind(null, timeoutInMs === 0 ? 0 : DEFER_EVENT_LISTENER_TIME3), - DEFER_EVENT_LISTENER_TIME3 - ); -}, "setSocketTimeout"); - -// src/write-request-body.ts -var import_stream = __nccwpck_require__(12781); -var MIN_WAIT_TIME = 1e3; -async function writeRequestBody(httpRequest, request, maxContinueTimeoutMs = MIN_WAIT_TIME) { - const headers = request.headers ?? {}; - const expect = headers["Expect"] || headers["expect"]; - let timeoutId = -1; - let hasError = false; - if (expect === "100-continue") { - await Promise.race([ - new Promise((resolve) => { - timeoutId = Number(setTimeout(resolve, Math.max(MIN_WAIT_TIME, maxContinueTimeoutMs))); - }), - new Promise((resolve) => { - httpRequest.on("continue", () => { - clearTimeout(timeoutId); - resolve(); - }); - httpRequest.on("error", () => { - hasError = true; - clearTimeout(timeoutId); - resolve(); - }); + /***/ 37924: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getEndpointUrlConfig = void 0 + const shared_ini_file_loader_1 = __nccwpck_require__(28586) + const ENV_ENDPOINT_URL = 'AWS_ENDPOINT_URL' + const CONFIG_ENDPOINT_URL = 'endpoint_url' + const getEndpointUrlConfig = serviceId => ({ + environmentVariableSelector: env => { + const serviceSuffixParts = serviceId + .split(' ') + .map(w => w.toUpperCase()) + const serviceEndpointUrl = + env[[ENV_ENDPOINT_URL, ...serviceSuffixParts].join('_')] + if (serviceEndpointUrl) return serviceEndpointUrl + const endpointUrl = env[ENV_ENDPOINT_URL] + if (endpointUrl) return endpointUrl + return undefined + }, + configFileSelector: (profile, config) => { + if (config && profile.services) { + const servicesSection = + config[ + ['services', profile.services].join( + shared_ini_file_loader_1.CONFIG_PREFIX_SEPARATOR + ) + ] + if (servicesSection) { + const servicePrefixParts = serviceId + .split(' ') + .map(w => w.toLowerCase()) + const endpointUrl = + servicesSection[ + [servicePrefixParts.join('_'), CONFIG_ENDPOINT_URL].join( + shared_ini_file_loader_1.CONFIG_PREFIX_SEPARATOR + ) + ] + if (endpointUrl) return endpointUrl + } + } + const endpointUrl = profile[CONFIG_ENDPOINT_URL] + if (endpointUrl) return endpointUrl + return undefined + }, + default: undefined }) - ]); - } - if (!hasError) { - writeBody(httpRequest, request.body); - } -} -__name(writeRequestBody, "writeRequestBody"); -function writeBody(httpRequest, body) { - if (body instanceof import_stream.Readable) { - body.pipe(httpRequest); - return; - } - if (body) { - if (Buffer.isBuffer(body) || typeof body === "string") { - httpRequest.end(body); - return; - } - const uint8 = body; - if (typeof uint8 === "object" && uint8.buffer && typeof uint8.byteOffset === "number" && typeof uint8.byteLength === "number") { - httpRequest.end(Buffer.from(uint8.buffer, uint8.byteOffset, uint8.byteLength)); - return; - } - httpRequest.end(Buffer.from(body)); - return; - } - httpRequest.end(); -} -__name(writeBody, "writeBody"); - -// src/node-http-handler.ts -var DEFAULT_REQUEST_TIMEOUT = 0; -var _NodeHttpHandler = class _NodeHttpHandler { - constructor(options) { - this.socketWarningTimestamp = 0; - // Node http handler is hard-coded to http/1.1: https://github.com/nodejs/node/blob/ff5664b83b89c55e4ab5d5f60068fb457f1f5872/lib/_http_server.js#L286 - this.metadata = { handlerProtocol: "http/1.1" }; - this.configProvider = new Promise((resolve, reject) => { - if (typeof options === "function") { - options().then((_options) => { - resolve(this.resolveDefaultConfig(_options)); - }).catch(reject); - } else { - resolve(this.resolveDefaultConfig(options)); - } - }); - } - /** - * @returns the input if it is an HttpHandler of any class, - * or instantiates a new instance of this handler. - */ - static create(instanceOrOptions) { - if (typeof (instanceOrOptions == null ? void 0 : instanceOrOptions.handle) === "function") { - return instanceOrOptions; - } - return new _NodeHttpHandler(instanceOrOptions); - } - /** - * @internal - * - * @param agent - http(s) agent in use by the NodeHttpHandler instance. - * @param socketWarningTimestamp - last socket usage check timestamp. - * @param logger - channel for the warning. - * @returns timestamp of last emitted warning. - */ - static checkSocketUsage(agent, socketWarningTimestamp, logger = console) { - var _a, _b, _c; - const { sockets, requests, maxSockets } = agent; - if (typeof maxSockets !== "number" || maxSockets === Infinity) { - return socketWarningTimestamp; - } - const interval = 15e3; - if (Date.now() - interval < socketWarningTimestamp) { - return socketWarningTimestamp; - } - if (sockets && requests) { - for (const origin in sockets) { - const socketsInUse = ((_a = sockets[origin]) == null ? void 0 : _a.length) ?? 0; - const requestsEnqueued = ((_b = requests[origin]) == null ? void 0 : _b.length) ?? 0; - if (socketsInUse >= maxSockets && requestsEnqueued >= 2 * maxSockets) { - (_c = logger == null ? void 0 : logger.warn) == null ? void 0 : _c.call( - logger, - `@smithy/node-http-handler:WARN - socket usage at capacity=${socketsInUse} and ${requestsEnqueued} additional requests are enqueued. -See https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html -or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.` - ); - return Date.now(); - } - } - } - return socketWarningTimestamp; - } - resolveDefaultConfig(options) { - const { requestTimeout, connectionTimeout, socketTimeout, httpAgent, httpsAgent } = options || {}; - const keepAlive = true; - const maxSockets = 50; - return { - connectionTimeout, - requestTimeout: requestTimeout ?? socketTimeout, - httpAgent: (() => { - if (httpAgent instanceof import_http.Agent || typeof (httpAgent == null ? void 0 : httpAgent.destroy) === "function") { - return httpAgent; - } - return new import_http.Agent({ keepAlive, maxSockets, ...httpAgent }); - })(), - httpsAgent: (() => { - if (httpsAgent instanceof import_https.Agent || typeof (httpsAgent == null ? void 0 : httpsAgent.destroy) === "function") { - return httpsAgent; - } - return new import_https.Agent({ keepAlive, maxSockets, ...httpsAgent }); - })(), - logger: console - }; - } - destroy() { - var _a, _b, _c, _d; - (_b = (_a = this.config) == null ? void 0 : _a.httpAgent) == null ? void 0 : _b.destroy(); - (_d = (_c = this.config) == null ? void 0 : _c.httpsAgent) == null ? void 0 : _d.destroy(); - } - async handle(request, { abortSignal } = {}) { - if (!this.config) { - this.config = await this.configProvider; - } - return new Promise((_resolve, _reject) => { - let writeRequestBodyPromise = void 0; - const timeouts = []; - const resolve = /* @__PURE__ */ __name(async (arg) => { - await writeRequestBodyPromise; - timeouts.forEach(clearTimeout); - _resolve(arg); - }, "resolve"); - const reject = /* @__PURE__ */ __name(async (arg) => { - await writeRequestBodyPromise; - timeouts.forEach(clearTimeout); - _reject(arg); - }, "reject"); - if (!this.config) { - throw new Error("Node HTTP request handler config is not resolved"); - } - if (abortSignal == null ? void 0 : abortSignal.aborted) { - const abortError = new Error("Request aborted"); - abortError.name = "AbortError"; - reject(abortError); - return; - } - const isSSL = request.protocol === "https:"; - const agent = isSSL ? this.config.httpsAgent : this.config.httpAgent; - timeouts.push( - setTimeout( - () => { - this.socketWarningTimestamp = _NodeHttpHandler.checkSocketUsage( - agent, - this.socketWarningTimestamp, - this.config.logger - ); - }, - this.config.socketAcquisitionWarningTimeout ?? (this.config.requestTimeout ?? 2e3) + (this.config.connectionTimeout ?? 1e3) - ) - ); - const queryString = (0, import_querystring_builder.buildQueryString)(request.query || {}); - let auth = void 0; - if (request.username != null || request.password != null) { - const username = request.username ?? ""; - const password = request.password ?? ""; - auth = `${username}:${password}`; - } - let path = request.path; - if (queryString) { - path += `?${queryString}`; - } - if (request.fragment) { - path += `#${request.fragment}`; - } - const nodeHttpsOptions = { - headers: request.headers, - host: request.hostname, - method: request.method, - path, - port: request.port, - agent, - auth - }; - const requestFunc = isSSL ? import_https.request : import_http.request; - const req = requestFunc(nodeHttpsOptions, (res) => { - const httpResponse = new import_protocol_http.HttpResponse({ - statusCode: res.statusCode || -1, - reason: res.statusMessage, - headers: getTransformedHeaders(res.headers), - body: res - }); - resolve({ response: httpResponse }); - }); - req.on("error", (err) => { - if (NODEJS_TIMEOUT_ERROR_CODES.includes(err.code)) { - reject(Object.assign(err, { name: "TimeoutError" })); - } else { - reject(err); - } - }); - if (abortSignal) { - const onAbort = /* @__PURE__ */ __name(() => { - req.destroy(); - const abortError = new Error("Request aborted"); - abortError.name = "AbortError"; - reject(abortError); - }, "onAbort"); - if (typeof abortSignal.addEventListener === "function") { - const signal = abortSignal; - signal.addEventListener("abort", onAbort, { once: true }); - req.once("close", () => signal.removeEventListener("abort", onAbort)); - } else { - abortSignal.onabort = onAbort; - } - } - timeouts.push(setConnectionTimeout(req, reject, this.config.connectionTimeout)); - timeouts.push(setSocketTimeout(req, reject, this.config.requestTimeout)); - const httpAgent = nodeHttpsOptions.agent; - if (typeof httpAgent === "object" && "keepAlive" in httpAgent) { - timeouts.push( - setSocketKeepAlive(req, { - // @ts-expect-error keepAlive is not public on httpAgent. - keepAlive: httpAgent.keepAlive, - // @ts-expect-error keepAliveMsecs is not public on httpAgent. - keepAliveMsecs: httpAgent.keepAliveMsecs - }) - ); - } - writeRequestBodyPromise = writeRequestBody(req, request, this.config.requestTimeout).catch((e) => { - timeouts.forEach(clearTimeout); - return _reject(e); - }); - }); - } - updateHttpClientConfig(key, value) { - this.config = void 0; - this.configProvider = this.configProvider.then((config) => { - return { - ...config, - [key]: value - }; - }); - } - httpHandlerConfigs() { - return this.config ?? {}; - } -}; -__name(_NodeHttpHandler, "NodeHttpHandler"); -var NodeHttpHandler = _NodeHttpHandler; + exports.getEndpointUrlConfig = getEndpointUrlConfig -// src/node-http2-handler.ts + /***/ + }, + /***/ 23435: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + endpointMiddleware: () => endpointMiddleware, + endpointMiddlewareOptions: () => endpointMiddlewareOptions, + getEndpointFromInstructions: () => getEndpointFromInstructions, + getEndpointPlugin: () => getEndpointPlugin, + resolveEndpointConfig: () => resolveEndpointConfig, + resolveParams: () => resolveParams, + toEndpointV1: () => toEndpointV1 + }) + module.exports = __toCommonJS(src_exports) + + // src/service-customizations/s3.ts + var resolveParamsForS3 = /* @__PURE__ */ __name(async endpointParams => { + const bucket = endpointParams?.Bucket || '' + if (typeof endpointParams.Bucket === 'string') { + endpointParams.Bucket = bucket + .replace(/#/g, encodeURIComponent('#')) + .replace(/\?/g, encodeURIComponent('?')) + } + if (isArnBucketName(bucket)) { + if (endpointParams.ForcePathStyle === true) { + throw new Error( + 'Path-style addressing cannot be used with ARN buckets' + ) + } + } else if ( + !isDnsCompatibleBucketName(bucket) || + (bucket.indexOf('.') !== -1 && + !String(endpointParams.Endpoint).startsWith('http:')) || + bucket.toLowerCase() !== bucket || + bucket.length < 3 + ) { + endpointParams.ForcePathStyle = true + } + if (endpointParams.DisableMultiRegionAccessPoints) { + endpointParams.disableMultiRegionAccessPoints = true + endpointParams.DisableMRAP = true + } + return endpointParams + }, 'resolveParamsForS3') + var DOMAIN_PATTERN = /^[a-z0-9][a-z0-9\.\-]{1,61}[a-z0-9]$/ + var IP_ADDRESS_PATTERN = /(\d+\.){3}\d+/ + var DOTS_PATTERN = /\.\./ + var isDnsCompatibleBucketName = /* @__PURE__ */ __name( + bucketName => + DOMAIN_PATTERN.test(bucketName) && + !IP_ADDRESS_PATTERN.test(bucketName) && + !DOTS_PATTERN.test(bucketName), + 'isDnsCompatibleBucketName' + ) + var isArnBucketName = /* @__PURE__ */ __name(bucketName => { + const [arn, partition, service, , , bucket] = bucketName.split(':') + const isArn = arn === 'arn' && bucketName.split(':').length >= 6 + const isValidArn = Boolean(isArn && partition && service && bucket) + if (isArn && !isValidArn) { + throw new Error(`Invalid ARN: ${bucketName} was an invalid ARN.`) + } + return isValidArn + }, 'isArnBucketName') + + // src/adaptors/createConfigValueProvider.ts + var createConfigValueProvider = /* @__PURE__ */ __name( + (configKey, canonicalEndpointParamKey, config) => { + const configProvider = /* @__PURE__ */ __name(async () => { + const configValue = + config[configKey] ?? config[canonicalEndpointParamKey] + if (typeof configValue === 'function') { + return configValue() + } + return configValue + }, 'configProvider') + if ( + configKey === 'credentialScope' || + canonicalEndpointParamKey === 'CredentialScope' + ) { + return async () => { + const credentials = + typeof config.credentials === 'function' + ? await config.credentials() + : config.credentials + const configValue = + credentials?.credentialScope ?? credentials?.CredentialScope + return configValue + } + } + if ( + configKey === 'accountId' || + canonicalEndpointParamKey === 'AccountId' + ) { + return async () => { + const credentials = + typeof config.credentials === 'function' + ? await config.credentials() + : config.credentials + const configValue = + credentials?.accountId ?? credentials?.AccountId + return configValue + } + } + if ( + configKey === 'endpoint' || + canonicalEndpointParamKey === 'endpoint' + ) { + return async () => { + const endpoint = await configProvider() + if (endpoint && typeof endpoint === 'object') { + if ('url' in endpoint) { + return endpoint.url.href + } + if ('hostname' in endpoint) { + const { protocol, hostname, port, path } = endpoint + return `${protocol}//${hostname}${port ? ':' + port : ''}${path}` + } + } + return endpoint + } + } + return configProvider + }, + 'createConfigValueProvider' + ) -var import_http22 = __nccwpck_require__(85158); + // src/adaptors/getEndpointFromInstructions.ts + var import_getEndpointFromConfig = __nccwpck_require__(2941) -// src/node-http2-connection-manager.ts -var import_http2 = __toESM(__nccwpck_require__(85158)); + // src/adaptors/toEndpointV1.ts + var import_url_parser = __nccwpck_require__(94769) + var toEndpointV1 = /* @__PURE__ */ __name(endpoint => { + if (typeof endpoint === 'object') { + if ('url' in endpoint) { + return (0, import_url_parser.parseUrl)(endpoint.url) + } + return endpoint + } + return (0, import_url_parser.parseUrl)(endpoint) + }, 'toEndpointV1') + + // src/adaptors/getEndpointFromInstructions.ts + var getEndpointFromInstructions = /* @__PURE__ */ __name( + async (commandInput, instructionsSupplier, clientConfig, context) => { + if (!clientConfig.endpoint) { + let endpointFromConfig + if (clientConfig.serviceConfiguredEndpoint) { + endpointFromConfig = + await clientConfig.serviceConfiguredEndpoint() + } else { + endpointFromConfig = await (0, + import_getEndpointFromConfig.getEndpointFromConfig)( + clientConfig.serviceId + ) + } + if (endpointFromConfig) { + clientConfig.endpoint = () => + Promise.resolve(toEndpointV1(endpointFromConfig)) + } + } + const endpointParams = await resolveParams( + commandInput, + instructionsSupplier, + clientConfig + ) + if (typeof clientConfig.endpointProvider !== 'function') { + throw new Error('config.endpointProvider is not set.') + } + const endpoint = clientConfig.endpointProvider( + endpointParams, + context + ) + return endpoint + }, + 'getEndpointFromInstructions' + ) + var resolveParams = /* @__PURE__ */ __name( + async (commandInput, instructionsSupplier, clientConfig) => { + const endpointParams = {} + const instructions = + instructionsSupplier?.getEndpointParameterInstructions?.() || {} + for (const [name, instruction] of Object.entries(instructions)) { + switch (instruction.type) { + case 'staticContextParams': + endpointParams[name] = instruction.value + break + case 'contextParams': + endpointParams[name] = commandInput[instruction.name] + break + case 'clientContextParams': + case 'builtInParams': + endpointParams[name] = await createConfigValueProvider( + instruction.name, + name, + clientConfig + )() + break + case 'operationContextParams': + endpointParams[name] = instruction.get(commandInput) + break + default: + throw new Error( + 'Unrecognized endpoint parameter instruction: ' + + JSON.stringify(instruction) + ) + } + } + if (Object.keys(instructions).length === 0) { + Object.assign(endpointParams, clientConfig) + } + if (String(clientConfig.serviceId).toLowerCase() === 's3') { + await resolveParamsForS3(endpointParams) + } + return endpointParams + }, + 'resolveParams' + ) -// src/node-http2-connection-pool.ts -var _NodeHttp2ConnectionPool = class _NodeHttp2ConnectionPool { - constructor(sessions) { - this.sessions = []; - this.sessions = sessions ?? []; - } - poll() { - if (this.sessions.length > 0) { - return this.sessions.shift(); - } - } - offerLast(session) { - this.sessions.push(session); - } - contains(session) { - return this.sessions.includes(session); - } - remove(session) { - this.sessions = this.sessions.filter((s) => s !== session); - } - [Symbol.iterator]() { - return this.sessions[Symbol.iterator](); - } - destroy(connection) { - for (const session of this.sessions) { - if (session === connection) { - if (!session.destroyed) { - session.destroy(); - } - } - } - } -}; -__name(_NodeHttp2ConnectionPool, "NodeHttp2ConnectionPool"); -var NodeHttp2ConnectionPool = _NodeHttp2ConnectionPool; - -// src/node-http2-connection-manager.ts -var _NodeHttp2ConnectionManager = class _NodeHttp2ConnectionManager { - constructor(config) { - this.sessionCache = /* @__PURE__ */ new Map(); - this.config = config; - if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) { - throw new RangeError("maxConcurrency must be greater than zero."); - } - } - lease(requestContext, connectionConfiguration) { - const url = this.getUrlString(requestContext); - const existingPool = this.sessionCache.get(url); - if (existingPool) { - const existingSession = existingPool.poll(); - if (existingSession && !this.config.disableConcurrency) { - return existingSession; - } - } - const session = import_http2.default.connect(url); - if (this.config.maxConcurrency) { - session.settings({ maxConcurrentStreams: this.config.maxConcurrency }, (err) => { - if (err) { - throw new Error( - "Fail to set maxConcurrentStreams to " + this.config.maxConcurrency + "when creating new session for " + requestContext.destination.toString() - ); - } - }); - } - session.unref(); - const destroySessionCb = /* @__PURE__ */ __name(() => { - session.destroy(); - this.deleteSession(url, session); - }, "destroySessionCb"); - session.on("goaway", destroySessionCb); - session.on("error", destroySessionCb); - session.on("frameError", destroySessionCb); - session.on("close", () => this.deleteSession(url, session)); - if (connectionConfiguration.requestTimeout) { - session.setTimeout(connectionConfiguration.requestTimeout, destroySessionCb); - } - const connectionPool = this.sessionCache.get(url) || new NodeHttp2ConnectionPool(); - connectionPool.offerLast(session); - this.sessionCache.set(url, connectionPool); - return session; - } - /** - * Delete a session from the connection pool. - * @param authority The authority of the session to delete. - * @param session The session to delete. - */ - deleteSession(authority, session) { - const existingConnectionPool = this.sessionCache.get(authority); - if (!existingConnectionPool) { - return; - } - if (!existingConnectionPool.contains(session)) { - return; - } - existingConnectionPool.remove(session); - this.sessionCache.set(authority, existingConnectionPool); - } - release(requestContext, session) { - var _a; - const cacheKey = this.getUrlString(requestContext); - (_a = this.sessionCache.get(cacheKey)) == null ? void 0 : _a.offerLast(session); - } - destroy() { - for (const [key, connectionPool] of this.sessionCache) { - for (const session of connectionPool) { - if (!session.destroyed) { - session.destroy(); - } - connectionPool.remove(session); - } - this.sessionCache.delete(key); - } - } - setMaxConcurrentStreams(maxConcurrentStreams) { - if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) { - throw new RangeError("maxConcurrentStreams must be greater than zero."); - } - this.config.maxConcurrency = maxConcurrentStreams; - } - setDisableConcurrentStreams(disableConcurrentStreams) { - this.config.disableConcurrency = disableConcurrentStreams; - } - getUrlString(request) { - return request.destination.toString(); - } -}; -__name(_NodeHttp2ConnectionManager, "NodeHttp2ConnectionManager"); -var NodeHttp2ConnectionManager = _NodeHttp2ConnectionManager; - -// src/node-http2-handler.ts -var _NodeHttp2Handler = class _NodeHttp2Handler { - constructor(options) { - this.metadata = { handlerProtocol: "h2" }; - this.connectionManager = new NodeHttp2ConnectionManager({}); - this.configProvider = new Promise((resolve, reject) => { - if (typeof options === "function") { - options().then((opts) => { - resolve(opts || {}); - }).catch(reject); - } else { - resolve(options || {}); - } - }); - } - /** - * @returns the input if it is an HttpHandler of any class, - * or instantiates a new instance of this handler. - */ - static create(instanceOrOptions) { - if (typeof (instanceOrOptions == null ? void 0 : instanceOrOptions.handle) === "function") { - return instanceOrOptions; - } - return new _NodeHttp2Handler(instanceOrOptions); - } - destroy() { - this.connectionManager.destroy(); - } - async handle(request, { abortSignal } = {}) { - if (!this.config) { - this.config = await this.configProvider; - this.connectionManager.setDisableConcurrentStreams(this.config.disableConcurrentStreams || false); - if (this.config.maxConcurrentStreams) { - this.connectionManager.setMaxConcurrentStreams(this.config.maxConcurrentStreams); - } - } - const { requestTimeout, disableConcurrentStreams } = this.config; - return new Promise((_resolve, _reject) => { - var _a; - let fulfilled = false; - let writeRequestBodyPromise = void 0; - const resolve = /* @__PURE__ */ __name(async (arg) => { - await writeRequestBodyPromise; - _resolve(arg); - }, "resolve"); - const reject = /* @__PURE__ */ __name(async (arg) => { - await writeRequestBodyPromise; - _reject(arg); - }, "reject"); - if (abortSignal == null ? void 0 : abortSignal.aborted) { - fulfilled = true; - const abortError = new Error("Request aborted"); - abortError.name = "AbortError"; - reject(abortError); - return; - } - const { hostname, method, port, protocol, query } = request; - let auth = ""; - if (request.username != null || request.password != null) { - const username = request.username ?? ""; - const password = request.password ?? ""; - auth = `${username}:${password}@`; - } - const authority = `${protocol}//${auth}${hostname}${port ? `:${port}` : ""}`; - const requestContext = { destination: new URL(authority) }; - const session = this.connectionManager.lease(requestContext, { - requestTimeout: (_a = this.config) == null ? void 0 : _a.sessionTimeout, - disableConcurrentStreams: disableConcurrentStreams || false - }); - const rejectWithDestroy = /* @__PURE__ */ __name((err) => { - if (disableConcurrentStreams) { - this.destroySession(session); - } - fulfilled = true; - reject(err); - }, "rejectWithDestroy"); - const queryString = (0, import_querystring_builder.buildQueryString)(query || {}); - let path = request.path; - if (queryString) { - path += `?${queryString}`; - } - if (request.fragment) { - path += `#${request.fragment}`; - } - const req = session.request({ - ...request.headers, - [import_http22.constants.HTTP2_HEADER_PATH]: path, - [import_http22.constants.HTTP2_HEADER_METHOD]: method - }); - session.ref(); - req.on("response", (headers) => { - const httpResponse = new import_protocol_http.HttpResponse({ - statusCode: headers[":status"] || -1, - headers: getTransformedHeaders(headers), - body: req - }); - fulfilled = true; - resolve({ response: httpResponse }); - if (disableConcurrentStreams) { - session.close(); - this.connectionManager.deleteSession(authority, session); - } - }); - if (requestTimeout) { - req.setTimeout(requestTimeout, () => { - req.close(); - const timeoutError = new Error(`Stream timed out because of no activity for ${requestTimeout} ms`); - timeoutError.name = "TimeoutError"; - rejectWithDestroy(timeoutError); - }); - } - if (abortSignal) { - const onAbort = /* @__PURE__ */ __name(() => { - req.close(); - const abortError = new Error("Request aborted"); - abortError.name = "AbortError"; - rejectWithDestroy(abortError); - }, "onAbort"); - if (typeof abortSignal.addEventListener === "function") { - const signal = abortSignal; - signal.addEventListener("abort", onAbort, { once: true }); - req.once("close", () => signal.removeEventListener("abort", onAbort)); - } else { - abortSignal.onabort = onAbort; - } - } - req.on("frameError", (type, code, id) => { - rejectWithDestroy(new Error(`Frame type id ${type} in stream id ${id} has failed with code ${code}.`)); - }); - req.on("error", rejectWithDestroy); - req.on("aborted", () => { - rejectWithDestroy( - new Error(`HTTP/2 stream is abnormally aborted in mid-communication with result code ${req.rstCode}.`) - ); - }); - req.on("close", () => { - session.unref(); - if (disableConcurrentStreams) { - session.destroy(); - } - if (!fulfilled) { - rejectWithDestroy(new Error("Unexpected error: http2 request did not get a response")); - } - }); - writeRequestBodyPromise = writeRequestBody(req, request, requestTimeout); - }); - } - updateHttpClientConfig(key, value) { - this.config = void 0; - this.configProvider = this.configProvider.then((config) => { - return { - ...config, - [key]: value - }; - }); - } - httpHandlerConfigs() { - return this.config ?? {}; - } - /** - * Destroys a session. - * @param session The session to destroy. - */ - destroySession(session) { - if (!session.destroyed) { - session.destroy(); - } - } -}; -__name(_NodeHttp2Handler, "NodeHttp2Handler"); -var NodeHttp2Handler = _NodeHttp2Handler; + // src/endpointMiddleware.ts + var import_core = __nccwpck_require__(1004) + var import_util_middleware = __nccwpck_require__(14298) + var endpointMiddleware = /* @__PURE__ */ __name( + ({ config, instructions }) => { + return (next, context) => async args => { + if (config.endpoint) { + ;(0, import_core.setFeature)(context, 'ENDPOINT_OVERRIDE', 'N') + } + const endpoint = await getEndpointFromInstructions( + args.input, + { + getEndpointParameterInstructions() { + return instructions + } + }, + { ...config }, + context + ) + context.endpointV2 = endpoint + context.authSchemes = endpoint.properties?.authSchemes + const authScheme = context.authSchemes?.[0] + if (authScheme) { + context['signing_region'] = authScheme.signingRegion + context['signing_service'] = authScheme.signingName + const smithyContext = (0, + import_util_middleware.getSmithyContext)(context) + const httpAuthOption = + smithyContext?.selectedHttpAuthScheme?.httpAuthOption + if (httpAuthOption) { + httpAuthOption.signingProperties = Object.assign( + httpAuthOption.signingProperties || {}, + { + signing_region: authScheme.signingRegion, + signingRegion: authScheme.signingRegion, + signing_service: authScheme.signingName, + signingName: authScheme.signingName, + signingRegionSet: authScheme.signingRegionSet + }, + authScheme.properties + ) + } + } + return next({ + ...args + }) + } + }, + 'endpointMiddleware' + ) -// src/stream-collector/collector.ts + // src/getEndpointPlugin.ts + var import_middleware_serde = __nccwpck_require__(94572) + var endpointMiddlewareOptions = { + step: 'serialize', + tags: ['ENDPOINT_PARAMETERS', 'ENDPOINT_V2', 'ENDPOINT'], + name: 'endpointV2Middleware', + override: true, + relation: 'before', + toMiddleware: import_middleware_serde.serializerMiddlewareOption.name + } + var getEndpointPlugin = /* @__PURE__ */ __name( + (config, instructions) => ({ + applyToStack: clientStack => { + clientStack.addRelativeTo( + endpointMiddleware({ + config, + instructions + }), + endpointMiddlewareOptions + ) + } + }), + 'getEndpointPlugin' + ) -var _Collector = class _Collector extends import_stream.Writable { - constructor() { - super(...arguments); - this.bufferedBytes = []; - } - _write(chunk, encoding, callback) { - this.bufferedBytes.push(chunk); - callback(); - } -}; -__name(_Collector, "Collector"); -var Collector = _Collector; - -// src/stream-collector/index.ts -var streamCollector = /* @__PURE__ */ __name((stream) => { - if (isReadableStreamInstance(stream)) { - return collectReadableStream(stream); - } - return new Promise((resolve, reject) => { - const collector = new Collector(); - stream.pipe(collector); - stream.on("error", (err) => { - collector.end(); - reject(err); - }); - collector.on("error", reject); - collector.on("finish", function() { - const bytes = new Uint8Array(Buffer.concat(this.bufferedBytes)); - resolve(bytes); - }); - }); -}, "streamCollector"); -var isReadableStreamInstance = /* @__PURE__ */ __name((stream) => typeof ReadableStream === "function" && stream instanceof ReadableStream, "isReadableStreamInstance"); -async function collectReadableStream(stream) { - const chunks = []; - const reader = stream.getReader(); - let isDone = false; - let length = 0; - while (!isDone) { - const { done, value } = await reader.read(); - if (value) { - chunks.push(value); - length += value.length; - } - isDone = done; - } - const collected = new Uint8Array(length); - let offset = 0; - for (const chunk of chunks) { - collected.set(chunk, offset); - offset += chunk.length; - } - return collected; -} -__name(collectReadableStream, "collectReadableStream"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 64195: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.STSClient = exports.__Client = void 0; -const middleware_host_header_1 = __nccwpck_require__(22545); -const middleware_logger_1 = __nccwpck_require__(20014); -const middleware_recursion_detection_1 = __nccwpck_require__(85525); -const middleware_user_agent_1 = __nccwpck_require__(64688); -const config_resolver_1 = __nccwpck_require__(53098); -const core_1 = __nccwpck_require__(55829); -const middleware_content_length_1 = __nccwpck_require__(82800); -const middleware_endpoint_1 = __nccwpck_require__(82918); -const middleware_retry_1 = __nccwpck_require__(96039); -const smithy_client_1 = __nccwpck_require__(63570); -Object.defineProperty(exports, "__Client", ({ enumerable: true, get: function () { return smithy_client_1.Client; } })); -const httpAuthSchemeProvider_1 = __nccwpck_require__(17145); -const EndpointParameters_1 = __nccwpck_require__(20510); -const runtimeConfig_1 = __nccwpck_require__(83405); -const runtimeExtensions_1 = __nccwpck_require__(32053); -class STSClient extends smithy_client_1.Client { - constructor(...[configuration]) { - const _config_0 = (0, runtimeConfig_1.getRuntimeConfig)(configuration || {}); - const _config_1 = (0, EndpointParameters_1.resolveClientEndpointParameters)(_config_0); - const _config_2 = (0, middleware_user_agent_1.resolveUserAgentConfig)(_config_1); - const _config_3 = (0, middleware_retry_1.resolveRetryConfig)(_config_2); - const _config_4 = (0, config_resolver_1.resolveRegionConfig)(_config_3); - const _config_5 = (0, middleware_host_header_1.resolveHostHeaderConfig)(_config_4); - const _config_6 = (0, middleware_endpoint_1.resolveEndpointConfig)(_config_5); - const _config_7 = (0, httpAuthSchemeProvider_1.resolveHttpAuthSchemeConfig)(_config_6); - const _config_8 = (0, runtimeExtensions_1.resolveRuntimeExtensions)(_config_7, configuration?.extensions || []); - super(_config_8); - this.config = _config_8; - this.middlewareStack.use((0, middleware_user_agent_1.getUserAgentPlugin)(this.config)); - this.middlewareStack.use((0, middleware_retry_1.getRetryPlugin)(this.config)); - this.middlewareStack.use((0, middleware_content_length_1.getContentLengthPlugin)(this.config)); - this.middlewareStack.use((0, middleware_host_header_1.getHostHeaderPlugin)(this.config)); - this.middlewareStack.use((0, middleware_logger_1.getLoggerPlugin)(this.config)); - this.middlewareStack.use((0, middleware_recursion_detection_1.getRecursionDetectionPlugin)(this.config)); - this.middlewareStack.use((0, core_1.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, { - httpAuthSchemeParametersProvider: httpAuthSchemeProvider_1.defaultSTSHttpAuthSchemeParametersProvider, - identityProviderConfigProvider: async (config) => new core_1.DefaultIdentityProviderConfig({ - "aws.auth#sigv4": config.credentials, - }), - })); - this.middlewareStack.use((0, core_1.getHttpSigningPlugin)(this.config)); - } - destroy() { - super.destroy(); - } -} -exports.STSClient = STSClient; + // src/resolveEndpointConfig.ts + + var import_getEndpointFromConfig2 = __nccwpck_require__(2941) + var resolveEndpointConfig = /* @__PURE__ */ __name(input => { + const tls = input.tls ?? true + const { endpoint, useDualstackEndpoint, useFipsEndpoint } = input + const customEndpointProvider = + endpoint != null + ? async () => + toEndpointV1( + await (0, import_util_middleware.normalizeProvider)( + endpoint + )() + ) + : void 0 + const isCustomEndpoint = !!endpoint + const resolvedConfig = Object.assign(input, { + endpoint: customEndpointProvider, + tls, + isCustomEndpoint, + useDualstackEndpoint: (0, import_util_middleware.normalizeProvider)( + useDualstackEndpoint ?? false + ), + useFipsEndpoint: (0, import_util_middleware.normalizeProvider)( + useFipsEndpoint ?? false + ) + }) + let configuredEndpointPromise = void 0 + resolvedConfig.serviceConfiguredEndpoint = async () => { + if (input.serviceId && !configuredEndpointPromise) { + configuredEndpointPromise = (0, + import_getEndpointFromConfig2.getEndpointFromConfig)( + input.serviceId + ) + } + return configuredEndpointPromise + } + return resolvedConfig + }, 'resolveEndpointConfig') + // Annotate the CommonJS export names for ESM import in node: + 0 && 0 -/***/ }), + /***/ + }, -/***/ 28527: -/***/ ((__unused_webpack_module, exports) => { + /***/ 23737: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + AdaptiveRetryStrategy: () => AdaptiveRetryStrategy, + CONFIG_MAX_ATTEMPTS: () => CONFIG_MAX_ATTEMPTS, + CONFIG_RETRY_MODE: () => CONFIG_RETRY_MODE, + ENV_MAX_ATTEMPTS: () => ENV_MAX_ATTEMPTS, + ENV_RETRY_MODE: () => ENV_RETRY_MODE, + NODE_MAX_ATTEMPT_CONFIG_OPTIONS: () => NODE_MAX_ATTEMPT_CONFIG_OPTIONS, + NODE_RETRY_MODE_CONFIG_OPTIONS: () => NODE_RETRY_MODE_CONFIG_OPTIONS, + StandardRetryStrategy: () => StandardRetryStrategy, + defaultDelayDecider: () => defaultDelayDecider, + defaultRetryDecider: () => defaultRetryDecider, + getOmitRetryHeadersPlugin: () => getOmitRetryHeadersPlugin, + getRetryAfterHint: () => getRetryAfterHint, + getRetryPlugin: () => getRetryPlugin, + omitRetryHeadersMiddleware: () => omitRetryHeadersMiddleware, + omitRetryHeadersMiddlewareOptions: () => + omitRetryHeadersMiddlewareOptions, + resolveRetryConfig: () => resolveRetryConfig, + retryMiddleware: () => retryMiddleware, + retryMiddlewareOptions: () => retryMiddlewareOptions + }) + module.exports = __toCommonJS(src_exports) + + // src/AdaptiveRetryStrategy.ts + + // src/StandardRetryStrategy.ts + var import_protocol_http = __nccwpck_require__(18241) + + var import_uuid = __nccwpck_require__(36450) + + // src/defaultRetryQuota.ts + var import_util_retry = __nccwpck_require__(35808) + var getDefaultRetryQuota = /* @__PURE__ */ __name( + (initialRetryTokens, options) => { + const MAX_CAPACITY = initialRetryTokens + const noRetryIncrement = + options?.noRetryIncrement ?? import_util_retry.NO_RETRY_INCREMENT + const retryCost = options?.retryCost ?? import_util_retry.RETRY_COST + const timeoutRetryCost = + options?.timeoutRetryCost ?? import_util_retry.TIMEOUT_RETRY_COST + let availableCapacity = initialRetryTokens + const getCapacityAmount = /* @__PURE__ */ __name( + error => + error.name === 'TimeoutError' ? timeoutRetryCost : retryCost, + 'getCapacityAmount' + ) + const hasRetryTokens = /* @__PURE__ */ __name( + error => getCapacityAmount(error) <= availableCapacity, + 'hasRetryTokens' + ) + const retrieveRetryTokens = /* @__PURE__ */ __name(error => { + if (!hasRetryTokens(error)) { + throw new Error('No retry token available') + } + const capacityAmount = getCapacityAmount(error) + availableCapacity -= capacityAmount + return capacityAmount + }, 'retrieveRetryTokens') + const releaseRetryTokens = /* @__PURE__ */ __name( + capacityReleaseAmount => { + availableCapacity += capacityReleaseAmount ?? noRetryIncrement + availableCapacity = Math.min(availableCapacity, MAX_CAPACITY) + }, + 'releaseRetryTokens' + ) + return Object.freeze({ + hasRetryTokens, + retrieveRetryTokens, + releaseRetryTokens + }) + }, + 'getDefaultRetryQuota' + ) -"use strict"; + // src/delayDecider.ts -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.resolveHttpAuthRuntimeConfig = exports.getHttpAuthExtensionConfiguration = void 0; -const getHttpAuthExtensionConfiguration = (runtimeConfig) => { - const _httpAuthSchemes = runtimeConfig.httpAuthSchemes; - let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider; - let _credentials = runtimeConfig.credentials; - return { - setHttpAuthScheme(httpAuthScheme) { - const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId); - if (index === -1) { - _httpAuthSchemes.push(httpAuthScheme); + var defaultDelayDecider = /* @__PURE__ */ __name( + (delayBase, attempts) => + Math.floor( + Math.min( + import_util_retry.MAXIMUM_RETRY_DELAY, + Math.random() * 2 ** attempts * delayBase + ) + ), + 'defaultDelayDecider' + ) + + // src/retryDecider.ts + var import_service_error_classification = __nccwpck_require__(4863) + var defaultRetryDecider = /* @__PURE__ */ __name(error => { + if (!error) { + return false + } + 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) + ) + }, 'defaultRetryDecider') + + // src/util.ts + var asSdkError = /* @__PURE__ */ __name(error => { + if (error instanceof Error) return error + if (error instanceof Object) return Object.assign(new Error(), error) + if (typeof error === 'string') return new Error(error) + return new Error(`AWS SDK error wrapper for ${error}`) + }, 'asSdkError') + + // src/StandardRetryStrategy.ts + var StandardRetryStrategy = class { + constructor(maxAttemptsProvider, options) { + this.maxAttemptsProvider = maxAttemptsProvider + this.mode = import_util_retry.RETRY_MODES.STANDARD + this.retryDecider = options?.retryDecider ?? defaultRetryDecider + this.delayDecider = options?.delayDecider ?? defaultDelayDecider + this.retryQuota = + options?.retryQuota ?? + getDefaultRetryQuota(import_util_retry.INITIAL_RETRY_TOKENS) + } + static { + __name(this, 'StandardRetryStrategy') + } + shouldRetry(error, attempts, maxAttempts) { + return ( + attempts < maxAttempts && + this.retryDecider(error) && + this.retryQuota.hasRetryTokens(error) + ) + } + async getMaxAttempts() { + let maxAttempts + try { + maxAttempts = await this.maxAttemptsProvider() + } catch (error) { + maxAttempts = import_util_retry.DEFAULT_MAX_ATTEMPTS + } + return maxAttempts + } + async retry(next, args, options) { + let retryTokenAmount + let attempts = 0 + let totalDelay = 0 + const maxAttempts = await this.getMaxAttempts() + const { request } = args + if (import_protocol_http.HttpRequest.isInstance(request)) { + request.headers[import_util_retry.INVOCATION_ID_HEADER] = (0, + import_uuid.v4)() + } + while (true) { + try { + if (import_protocol_http.HttpRequest.isInstance(request)) { + request.headers[import_util_retry.REQUEST_HEADER] = + `attempt=${attempts + 1}; max=${maxAttempts}` + } + if (options?.beforeRequest) { + await options.beforeRequest() + } + const { response, output } = await next(args) + if (options?.afterRequest) { + options.afterRequest(response) + } + this.retryQuota.releaseRetryTokens(retryTokenAmount) + output.$metadata.attempts = attempts + 1 + output.$metadata.totalRetryDelay = totalDelay + return { response, output } + } catch (e) { + const err = asSdkError(e) + attempts++ + if (this.shouldRetry(err, attempts, maxAttempts)) { + retryTokenAmount = this.retryQuota.retrieveRetryTokens(err) + const delayFromDecider = this.delayDecider( + (0, import_service_error_classification.isThrottlingError)( + err + ) + ? import_util_retry.THROTTLING_RETRY_DELAY_BASE + : import_util_retry.DEFAULT_RETRY_DELAY_BASE, + attempts + ) + const delayFromResponse = getDelayFromRetryAfterHeader( + err.$response + ) + const delay = Math.max(delayFromResponse || 0, delayFromDecider) + totalDelay += delay + await new Promise(resolve => setTimeout(resolve, delay)) + continue + } + if (!err.$metadata) { + err.$metadata = {} + } + err.$metadata.attempts = attempts + err.$metadata.totalRetryDelay = totalDelay + throw err } - else { - _httpAuthSchemes.splice(index, 1, httpAuthScheme); + } + } + } + var getDelayFromRetryAfterHeader = /* @__PURE__ */ __name(response => { + if (!import_protocol_http.HttpResponse.isInstance(response)) return + const retryAfterHeaderName = Object.keys(response.headers).find( + key => key.toLowerCase() === 'retry-after' + ) + if (!retryAfterHeaderName) return + const retryAfter = response.headers[retryAfterHeaderName] + const retryAfterSeconds = Number(retryAfter) + if (!Number.isNaN(retryAfterSeconds)) return retryAfterSeconds * 1e3 + const retryAfterDate = new Date(retryAfter) + return retryAfterDate.getTime() - Date.now() + }, 'getDelayFromRetryAfterHeader') + + // src/AdaptiveRetryStrategy.ts + var AdaptiveRetryStrategy = class extends StandardRetryStrategy { + static { + __name(this, 'AdaptiveRetryStrategy') + } + constructor(maxAttemptsProvider, options) { + const { rateLimiter, ...superOptions } = options ?? {} + super(maxAttemptsProvider, superOptions) + this.rateLimiter = + rateLimiter ?? new import_util_retry.DefaultRateLimiter() + this.mode = import_util_retry.RETRY_MODES.ADAPTIVE + } + async retry(next, args) { + return super.retry(next, args, { + beforeRequest: async () => { + return this.rateLimiter.getSendToken() + }, + afterRequest: response => { + this.rateLimiter.updateClientSendingRate(response) } + }) + } + } + + // src/configurations.ts + var import_util_middleware = __nccwpck_require__(14298) + + var ENV_MAX_ATTEMPTS = 'AWS_MAX_ATTEMPTS' + var CONFIG_MAX_ATTEMPTS = 'max_attempts' + var NODE_MAX_ATTEMPT_CONFIG_OPTIONS = { + environmentVariableSelector: env => { + const value = env[ENV_MAX_ATTEMPTS] + if (!value) return void 0 + const maxAttempt = parseInt(value) + if (Number.isNaN(maxAttempt)) { + throw new Error( + `Environment variable ${ENV_MAX_ATTEMPTS} mast be a number, got "${value}"` + ) + } + return maxAttempt }, - httpAuthSchemes() { - return _httpAuthSchemes; - }, - setHttpAuthSchemeProvider(httpAuthSchemeProvider) { - _httpAuthSchemeProvider = httpAuthSchemeProvider; - }, - httpAuthSchemeProvider() { - return _httpAuthSchemeProvider; - }, - setCredentials(credentials) { - _credentials = credentials; + configFileSelector: profile => { + const value = profile[CONFIG_MAX_ATTEMPTS] + if (!value) return void 0 + const maxAttempt = parseInt(value) + if (Number.isNaN(maxAttempt)) { + throw new Error( + `Shared config file entry ${CONFIG_MAX_ATTEMPTS} mast be a number, got "${value}"` + ) + } + return maxAttempt }, - credentials() { - return _credentials; + default: import_util_retry.DEFAULT_MAX_ATTEMPTS + } + var resolveRetryConfig = /* @__PURE__ */ __name(input => { + const { + retryStrategy, + retryMode: _retryMode, + maxAttempts: _maxAttempts + } = input + const maxAttempts = (0, import_util_middleware.normalizeProvider)( + _maxAttempts ?? import_util_retry.DEFAULT_MAX_ATTEMPTS + ) + return Object.assign(input, { + maxAttempts, + retryStrategy: async () => { + if (retryStrategy) { + return retryStrategy + } + const retryMode = await (0, + import_util_middleware.normalizeProvider)(_retryMode)() + if (retryMode === import_util_retry.RETRY_MODES.ADAPTIVE) { + return new import_util_retry.AdaptiveRetryStrategy(maxAttempts) + } + return new import_util_retry.StandardRetryStrategy(maxAttempts) + } + }) + }, 'resolveRetryConfig') + var ENV_RETRY_MODE = 'AWS_RETRY_MODE' + var CONFIG_RETRY_MODE = 'retry_mode' + var NODE_RETRY_MODE_CONFIG_OPTIONS = { + environmentVariableSelector: env => env[ENV_RETRY_MODE], + configFileSelector: profile => profile[CONFIG_RETRY_MODE], + default: import_util_retry.DEFAULT_RETRY_MODE + } + + // src/omitRetryHeadersMiddleware.ts + + var omitRetryHeadersMiddleware = /* @__PURE__ */ __name( + () => next => async args => { + const { request } = args + if (import_protocol_http.HttpRequest.isInstance(request)) { + delete request.headers[import_util_retry.INVOCATION_ID_HEADER] + delete request.headers[import_util_retry.REQUEST_HEADER] + } + return next(args) }, - }; -}; -exports.getHttpAuthExtensionConfiguration = getHttpAuthExtensionConfiguration; -const resolveHttpAuthRuntimeConfig = (config) => { - return { - httpAuthSchemes: config.httpAuthSchemes(), - httpAuthSchemeProvider: config.httpAuthSchemeProvider(), - credentials: config.credentials(), - }; -}; -exports.resolveHttpAuthRuntimeConfig = resolveHttpAuthRuntimeConfig; + 'omitRetryHeadersMiddleware' + ) + var omitRetryHeadersMiddlewareOptions = { + name: 'omitRetryHeadersMiddleware', + tags: ['RETRY', 'HEADERS', 'OMIT_RETRY_HEADERS'], + relation: 'before', + toMiddleware: 'awsAuthMiddleware', + override: true + } + var getOmitRetryHeadersPlugin = /* @__PURE__ */ __name( + options => ({ + applyToStack: clientStack => { + clientStack.addRelativeTo( + omitRetryHeadersMiddleware(), + omitRetryHeadersMiddlewareOptions + ) + } + }), + 'getOmitRetryHeadersPlugin' + ) + // src/retryMiddleware.ts -/***/ }), + var import_smithy_client = __nccwpck_require__(21433) -/***/ 17145: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + var import_isStreamingPayload = __nccwpck_require__(36241) + var retryMiddleware = /* @__PURE__ */ __name( + options => (next, context) => async args => { + let retryStrategy = await options.retryStrategy() + const maxAttempts = await options.maxAttempts() + if (isRetryStrategyV2(retryStrategy)) { + retryStrategy = retryStrategy + let retryToken = await retryStrategy.acquireInitialRetryToken( + context['partition_id'] + ) + let lastError = new Error() + let attempts = 0 + let totalRetryDelay = 0 + const { request } = args + const isRequest = + import_protocol_http.HttpRequest.isInstance(request) + if (isRequest) { + request.headers[import_util_retry.INVOCATION_ID_HEADER] = (0, + import_uuid.v4)() + } + while (true) { + try { + if (isRequest) { + request.headers[import_util_retry.REQUEST_HEADER] = + `attempt=${attempts + 1}; max=${maxAttempts}` + } + const { response, output } = await next(args) + retryStrategy.recordSuccess(retryToken) + output.$metadata.attempts = attempts + 1 + output.$metadata.totalRetryDelay = totalRetryDelay + return { response, output } + } catch (e) { + const retryErrorInfo = getRetryErrorInfo(e) + lastError = asSdkError(e) + if ( + isRequest && + (0, import_isStreamingPayload.isStreamingPayload)(request) + ) { + ;(context.logger instanceof import_smithy_client.NoOpLogger + ? console + : context.logger + )?.warn( + 'An error was encountered in a non-retryable streaming request.' + ) + throw lastError + } + try { + retryToken = await retryStrategy.refreshRetryTokenForRetry( + retryToken, + retryErrorInfo + ) + } catch (refreshError) { + if (!lastError.$metadata) { + lastError.$metadata = {} + } + lastError.$metadata.attempts = attempts + 1 + lastError.$metadata.totalRetryDelay = totalRetryDelay + throw lastError + } + attempts = retryToken.getRetryCount() + const delay = retryToken.getRetryDelay() + totalRetryDelay += delay + await new Promise(resolve => setTimeout(resolve, delay)) + } + } + } else { + retryStrategy = retryStrategy + if (retryStrategy?.mode) + context.userAgent = [ + ...(context.userAgent || []), + ['cfg/retry-mode', retryStrategy.mode] + ] + return retryStrategy.retry(next, args) + } + }, + 'retryMiddleware' + ) + var isRetryStrategyV2 = /* @__PURE__ */ __name( + retryStrategy => + typeof retryStrategy.acquireInitialRetryToken !== 'undefined' && + typeof retryStrategy.refreshRetryTokenForRetry !== 'undefined' && + typeof retryStrategy.recordSuccess !== 'undefined', + 'isRetryStrategyV2' + ) + var getRetryErrorInfo = /* @__PURE__ */ __name(error => { + const errorInfo = { + error, + errorType: getRetryErrorType(error) + } + const retryAfterHint = getRetryAfterHint(error.$response) + if (retryAfterHint) { + errorInfo.retryAfterHint = retryAfterHint + } + return errorInfo + }, 'getRetryErrorInfo') + var getRetryErrorType = /* @__PURE__ */ __name(error => { + if ((0, import_service_error_classification.isThrottlingError)(error)) + return 'THROTTLING' + if ((0, import_service_error_classification.isTransientError)(error)) + return 'TRANSIENT' + if ((0, import_service_error_classification.isServerError)(error)) + return 'SERVER_ERROR' + return 'CLIENT_ERROR' + }, 'getRetryErrorType') + var retryMiddlewareOptions = { + name: 'retryMiddleware', + tags: ['RETRY'], + step: 'finalizeRequest', + priority: 'high', + override: true + } + var getRetryPlugin = /* @__PURE__ */ __name( + options => ({ + applyToStack: clientStack => { + clientStack.add(retryMiddleware(options), retryMiddlewareOptions) + } + }), + 'getRetryPlugin' + ) + var getRetryAfterHint = /* @__PURE__ */ __name(response => { + if (!import_protocol_http.HttpResponse.isInstance(response)) return + const retryAfterHeaderName = Object.keys(response.headers).find( + key => key.toLowerCase() === 'retry-after' + ) + if (!retryAfterHeaderName) return + const retryAfter = response.headers[retryAfterHeaderName] + const retryAfterSeconds = Number(retryAfter) + if (!Number.isNaN(retryAfterSeconds)) + return new Date(retryAfterSeconds * 1e3) + const retryAfterDate = new Date(retryAfter) + return retryAfterDate + }, 'getRetryAfterHint') + // Annotate the CommonJS export names for ESM import in node: + + 0 && 0 + + /***/ + }, -"use strict"; + /***/ 36241: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.isStreamingPayload = void 0 + const stream_1 = __nccwpck_require__(12781) + const isStreamingPayload = request => + (request === null || request === void 0 + ? void 0 + : request.body) instanceof stream_1.Readable || + (typeof ReadableStream !== 'undefined' && + (request === null || request === void 0 + ? void 0 + : request.body) instanceof ReadableStream) + exports.isStreamingPayload = isStreamingPayload + + /***/ + }, -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.resolveHttpAuthSchemeConfig = exports.resolveStsAuthConfig = exports.defaultSTSHttpAuthSchemeProvider = exports.defaultSTSHttpAuthSchemeParametersProvider = void 0; -const core_1 = __nccwpck_require__(59963); -const util_middleware_1 = __nccwpck_require__(2390); -const STSClient_1 = __nccwpck_require__(64195); -const defaultSTSHttpAuthSchemeParametersProvider = async (config, context, input) => { - return { - operation: (0, util_middleware_1.getSmithyContext)(context).operation, - region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) || - (() => { - throw new Error("expected `region` to be configured for `aws.auth#sigv4`"); - })(), - }; -}; -exports.defaultSTSHttpAuthSchemeParametersProvider = defaultSTSHttpAuthSchemeParametersProvider; -function createAwsAuthSigv4HttpAuthOption(authParameters) { - return { - schemeId: "aws.auth#sigv4", - signingProperties: { - name: "sts", - region: authParameters.region, - }, - propertiesExtractor: (config, context) => ({ - signingProperties: { - config, - context, - }, - }), - }; -} -function createSmithyApiNoAuthHttpAuthOption(authParameters) { - return { - schemeId: "smithy.api#noAuth", - }; -} -const defaultSTSHttpAuthSchemeProvider = (authParameters) => { - const options = []; - switch (authParameters.operation) { - case "AssumeRoleWithSAML": { - options.push(createSmithyApiNoAuthHttpAuthOption(authParameters)); - break; - } - case "AssumeRoleWithWebIdentity": { - options.push(createSmithyApiNoAuthHttpAuthOption(authParameters)); - break; - } - default: { - options.push(createAwsAuthSigv4HttpAuthOption(authParameters)); + /***/ 94572: /***/ module => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) } - } - return options; -}; -exports.defaultSTSHttpAuthSchemeProvider = defaultSTSHttpAuthSchemeProvider; -const resolveStsAuthConfig = (input) => ({ - ...input, - stsClientCtor: STSClient_1.STSClient, -}); -exports.resolveStsAuthConfig = resolveStsAuthConfig; -const resolveHttpAuthSchemeConfig = (config) => { - const config_0 = (0, exports.resolveStsAuthConfig)(config); - const config_1 = (0, core_1.resolveAwsSdkSigV4Config)(config_0); - return { - ...config_1, - }; -}; -exports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig; - - -/***/ }), - -/***/ 20510: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.commonParams = exports.resolveClientEndpointParameters = void 0; -const resolveClientEndpointParameters = (options) => { - return { - ...options, - useDualstackEndpoint: options.useDualstackEndpoint ?? false, - useFipsEndpoint: options.useFipsEndpoint ?? false, - useGlobalEndpoint: options.useGlobalEndpoint ?? false, - defaultSigningName: "sts", - }; -}; -exports.resolveClientEndpointParameters = resolveClientEndpointParameters; -exports.commonParams = { - UseGlobalEndpoint: { type: "builtInParams", name: "useGlobalEndpoint" }, - UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" }, - Endpoint: { type: "builtInParams", name: "endpoint" }, - Region: { type: "builtInParams", name: "region" }, - UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" }, -}; - - -/***/ }), - -/***/ 41203: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.defaultEndpointResolver = void 0; -const util_endpoints_1 = __nccwpck_require__(13350); -const util_endpoints_2 = __nccwpck_require__(45473); -const ruleset_1 = __nccwpck_require__(86882); -const defaultEndpointResolver = (endpointParams, context = {}) => { - return (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, { - endpointParams: endpointParams, - logger: context.logger, - }); -}; -exports.defaultEndpointResolver = defaultEndpointResolver; -util_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions; - - -/***/ }), - -/***/ 86882: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.ruleSet = void 0; -const F = "required", G = "type", H = "fn", I = "argv", J = "ref"; -const a = false, b = true, c = "booleanEquals", d = "stringEquals", e = "sigv4", f = "sts", g = "us-east-1", h = "endpoint", i = "https://sts.{Region}.{PartitionResult#dnsSuffix}", j = "tree", k = "error", l = "getAttr", m = { [F]: false, [G]: "String" }, n = { [F]: true, "default": false, [G]: "Boolean" }, o = { [J]: "Endpoint" }, p = { [H]: "isSet", [I]: [{ [J]: "Region" }] }, q = { [J]: "Region" }, r = { [H]: "aws.partition", [I]: [q], "assign": "PartitionResult" }, s = { [J]: "UseFIPS" }, t = { [J]: "UseDualStack" }, u = { "url": "https://sts.amazonaws.com", "properties": { "authSchemes": [{ "name": e, "signingName": f, "signingRegion": g }] }, "headers": {} }, v = {}, w = { "conditions": [{ [H]: d, [I]: [q, "aws-global"] }], [h]: u, [G]: h }, x = { [H]: c, [I]: [s, true] }, y = { [H]: c, [I]: [t, true] }, z = { [H]: l, [I]: [{ [J]: "PartitionResult" }, "supportsFIPS"] }, A = { [J]: "PartitionResult" }, B = { [H]: c, [I]: [true, { [H]: l, [I]: [A, "supportsDualStack"] }] }, C = [{ [H]: "isSet", [I]: [o] }], D = [x], E = [y]; -const _data = { version: "1.0", parameters: { Region: m, UseDualStack: n, UseFIPS: n, Endpoint: m, UseGlobalEndpoint: n }, rules: [{ conditions: [{ [H]: c, [I]: [{ [J]: "UseGlobalEndpoint" }, b] }, { [H]: "not", [I]: C }, p, r, { [H]: c, [I]: [s, a] }, { [H]: c, [I]: [t, a] }], rules: [{ conditions: [{ [H]: d, [I]: [q, "ap-northeast-1"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, "ap-south-1"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, "ap-southeast-1"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, "ap-southeast-2"] }], endpoint: u, [G]: h }, w, { conditions: [{ [H]: d, [I]: [q, "ca-central-1"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, "eu-central-1"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, "eu-north-1"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, "eu-west-1"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, "eu-west-2"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, "eu-west-3"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, "sa-east-1"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, g] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, "us-east-2"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, "us-west-1"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, "us-west-2"] }], endpoint: u, [G]: h }, { endpoint: { url: i, properties: { authSchemes: [{ name: e, signingName: f, signingRegion: "{Region}" }] }, headers: v }, [G]: h }], [G]: j }, { conditions: C, rules: [{ conditions: D, error: "Invalid Configuration: FIPS and custom endpoint are not supported", [G]: k }, { conditions: E, error: "Invalid Configuration: Dualstack and custom endpoint are not supported", [G]: k }, { endpoint: { url: o, properties: v, headers: v }, [G]: h }], [G]: j }, { conditions: [p], rules: [{ conditions: [r], rules: [{ conditions: [x, y], rules: [{ conditions: [{ [H]: c, [I]: [b, z] }, B], rules: [{ endpoint: { url: "https://sts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", properties: v, headers: v }, [G]: h }], [G]: j }, { error: "FIPS and DualStack are enabled, but this partition does not support one or both", [G]: k }], [G]: j }, { conditions: D, rules: [{ conditions: [{ [H]: c, [I]: [z, b] }], rules: [{ conditions: [{ [H]: d, [I]: [{ [H]: l, [I]: [A, "name"] }, "aws-us-gov"] }], endpoint: { url: "https://sts.{Region}.amazonaws.com", properties: v, headers: v }, [G]: h }, { endpoint: { url: "https://sts-fips.{Region}.{PartitionResult#dnsSuffix}", properties: v, headers: v }, [G]: h }], [G]: j }, { error: "FIPS is enabled but this partition does not support FIPS", [G]: k }], [G]: j }, { conditions: E, rules: [{ conditions: [B], rules: [{ endpoint: { url: "https://sts.{Region}.{PartitionResult#dualStackDnsSuffix}", properties: v, headers: v }, [G]: h }], [G]: j }, { error: "DualStack is enabled but this partition does not support DualStack", [G]: k }], [G]: j }, w, { endpoint: { url: i, properties: v, headers: v }, [G]: h }], [G]: j }], [G]: j }, { error: "Invalid Configuration: Missing Region", [G]: k }] }; -exports.ruleSet = _data; - - -/***/ }), - -/***/ 52209: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - AssumeRoleCommand: () => AssumeRoleCommand, - AssumeRoleResponseFilterSensitiveLog: () => AssumeRoleResponseFilterSensitiveLog, - AssumeRoleWithSAMLCommand: () => AssumeRoleWithSAMLCommand, - AssumeRoleWithSAMLRequestFilterSensitiveLog: () => AssumeRoleWithSAMLRequestFilterSensitiveLog, - AssumeRoleWithSAMLResponseFilterSensitiveLog: () => AssumeRoleWithSAMLResponseFilterSensitiveLog, - AssumeRoleWithWebIdentityCommand: () => AssumeRoleWithWebIdentityCommand, - AssumeRoleWithWebIdentityRequestFilterSensitiveLog: () => AssumeRoleWithWebIdentityRequestFilterSensitiveLog, - AssumeRoleWithWebIdentityResponseFilterSensitiveLog: () => AssumeRoleWithWebIdentityResponseFilterSensitiveLog, - ClientInputEndpointParameters: () => import_EndpointParameters9.ClientInputEndpointParameters, - CredentialsFilterSensitiveLog: () => CredentialsFilterSensitiveLog, - DecodeAuthorizationMessageCommand: () => DecodeAuthorizationMessageCommand, - ExpiredTokenException: () => ExpiredTokenException, - GetAccessKeyInfoCommand: () => GetAccessKeyInfoCommand, - GetCallerIdentityCommand: () => GetCallerIdentityCommand, - GetFederationTokenCommand: () => GetFederationTokenCommand, - GetFederationTokenResponseFilterSensitiveLog: () => GetFederationTokenResponseFilterSensitiveLog, - GetSessionTokenCommand: () => GetSessionTokenCommand, - GetSessionTokenResponseFilterSensitiveLog: () => GetSessionTokenResponseFilterSensitiveLog, - IDPCommunicationErrorException: () => IDPCommunicationErrorException, - IDPRejectedClaimException: () => IDPRejectedClaimException, - InvalidAuthorizationMessageException: () => InvalidAuthorizationMessageException, - InvalidIdentityTokenException: () => InvalidIdentityTokenException, - MalformedPolicyDocumentException: () => MalformedPolicyDocumentException, - PackedPolicyTooLargeException: () => PackedPolicyTooLargeException, - RegionDisabledException: () => RegionDisabledException, - STS: () => STS, - STSServiceException: () => STSServiceException, - decorateDefaultCredentialProvider: () => decorateDefaultCredentialProvider, - getDefaultRoleAssumer: () => getDefaultRoleAssumer2, - getDefaultRoleAssumerWithWebIdentity: () => getDefaultRoleAssumerWithWebIdentity2 -}); -module.exports = __toCommonJS(src_exports); -__reExport(src_exports, __nccwpck_require__(64195), module.exports); - -// src/STS.ts - - -// src/commands/AssumeRoleCommand.ts -var import_middleware_endpoint = __nccwpck_require__(82918); -var import_middleware_serde = __nccwpck_require__(81238); - -var import_EndpointParameters = __nccwpck_require__(20510); - -// src/models/models_0.ts - - -// src/models/STSServiceException.ts -var import_smithy_client = __nccwpck_require__(63570); -var _STSServiceException = class _STSServiceException extends import_smithy_client.ServiceException { - /** - * @internal - */ - constructor(options) { - super(options); - Object.setPrototypeOf(this, _STSServiceException.prototype); - } -}; -__name(_STSServiceException, "STSServiceException"); -var STSServiceException = _STSServiceException; - -// src/models/models_0.ts -var _ExpiredTokenException = class _ExpiredTokenException extends STSServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "ExpiredTokenException", - $fault: "client", - ...opts - }); - this.name = "ExpiredTokenException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _ExpiredTokenException.prototype); - } -}; -__name(_ExpiredTokenException, "ExpiredTokenException"); -var ExpiredTokenException = _ExpiredTokenException; -var _MalformedPolicyDocumentException = class _MalformedPolicyDocumentException extends STSServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "MalformedPolicyDocumentException", - $fault: "client", - ...opts - }); - this.name = "MalformedPolicyDocumentException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _MalformedPolicyDocumentException.prototype); - } -}; -__name(_MalformedPolicyDocumentException, "MalformedPolicyDocumentException"); -var MalformedPolicyDocumentException = _MalformedPolicyDocumentException; -var _PackedPolicyTooLargeException = class _PackedPolicyTooLargeException extends STSServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "PackedPolicyTooLargeException", - $fault: "client", - ...opts - }); - this.name = "PackedPolicyTooLargeException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _PackedPolicyTooLargeException.prototype); - } -}; -__name(_PackedPolicyTooLargeException, "PackedPolicyTooLargeException"); -var PackedPolicyTooLargeException = _PackedPolicyTooLargeException; -var _RegionDisabledException = class _RegionDisabledException extends STSServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "RegionDisabledException", - $fault: "client", - ...opts - }); - this.name = "RegionDisabledException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _RegionDisabledException.prototype); - } -}; -__name(_RegionDisabledException, "RegionDisabledException"); -var RegionDisabledException = _RegionDisabledException; -var _IDPRejectedClaimException = class _IDPRejectedClaimException extends STSServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "IDPRejectedClaimException", - $fault: "client", - ...opts - }); - this.name = "IDPRejectedClaimException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _IDPRejectedClaimException.prototype); - } -}; -__name(_IDPRejectedClaimException, "IDPRejectedClaimException"); -var IDPRejectedClaimException = _IDPRejectedClaimException; -var _InvalidIdentityTokenException = class _InvalidIdentityTokenException extends STSServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "InvalidIdentityTokenException", - $fault: "client", - ...opts - }); - this.name = "InvalidIdentityTokenException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _InvalidIdentityTokenException.prototype); - } -}; -__name(_InvalidIdentityTokenException, "InvalidIdentityTokenException"); -var InvalidIdentityTokenException = _InvalidIdentityTokenException; -var _IDPCommunicationErrorException = class _IDPCommunicationErrorException extends STSServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "IDPCommunicationErrorException", - $fault: "client", - ...opts - }); - this.name = "IDPCommunicationErrorException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _IDPCommunicationErrorException.prototype); - } -}; -__name(_IDPCommunicationErrorException, "IDPCommunicationErrorException"); -var IDPCommunicationErrorException = _IDPCommunicationErrorException; -var _InvalidAuthorizationMessageException = class _InvalidAuthorizationMessageException extends STSServiceException { - /** - * @internal - */ - constructor(opts) { - super({ - name: "InvalidAuthorizationMessageException", - $fault: "client", - ...opts - }); - this.name = "InvalidAuthorizationMessageException"; - this.$fault = "client"; - Object.setPrototypeOf(this, _InvalidAuthorizationMessageException.prototype); - } -}; -__name(_InvalidAuthorizationMessageException, "InvalidAuthorizationMessageException"); -var InvalidAuthorizationMessageException = _InvalidAuthorizationMessageException; -var CredentialsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({ - ...obj, - ...obj.SecretAccessKey && { SecretAccessKey: import_smithy_client.SENSITIVE_STRING } -}), "CredentialsFilterSensitiveLog"); -var AssumeRoleResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({ - ...obj, - ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) } -}), "AssumeRoleResponseFilterSensitiveLog"); -var AssumeRoleWithSAMLRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({ - ...obj, - ...obj.SAMLAssertion && { SAMLAssertion: import_smithy_client.SENSITIVE_STRING } -}), "AssumeRoleWithSAMLRequestFilterSensitiveLog"); -var AssumeRoleWithSAMLResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({ - ...obj, - ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) } -}), "AssumeRoleWithSAMLResponseFilterSensitiveLog"); -var AssumeRoleWithWebIdentityRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({ - ...obj, - ...obj.WebIdentityToken && { WebIdentityToken: import_smithy_client.SENSITIVE_STRING } -}), "AssumeRoleWithWebIdentityRequestFilterSensitiveLog"); -var AssumeRoleWithWebIdentityResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({ - ...obj, - ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) } -}), "AssumeRoleWithWebIdentityResponseFilterSensitiveLog"); -var GetFederationTokenResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({ - ...obj, - ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) } -}), "GetFederationTokenResponseFilterSensitiveLog"); -var GetSessionTokenResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({ - ...obj, - ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) } -}), "GetSessionTokenResponseFilterSensitiveLog"); - -// src/protocols/Aws_query.ts -var import_core = __nccwpck_require__(59963); -var import_protocol_http = __nccwpck_require__(64418); - -var se_AssumeRoleCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_AssumeRoleRequest(input, context), - [_A]: _AR, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_AssumeRoleCommand"); -var se_AssumeRoleWithSAMLCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_AssumeRoleWithSAMLRequest(input, context), - [_A]: _ARWSAML, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_AssumeRoleWithSAMLCommand"); -var se_AssumeRoleWithWebIdentityCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_AssumeRoleWithWebIdentityRequest(input, context), - [_A]: _ARWWI, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_AssumeRoleWithWebIdentityCommand"); -var se_DecodeAuthorizationMessageCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_DecodeAuthorizationMessageRequest(input, context), - [_A]: _DAM, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_DecodeAuthorizationMessageCommand"); -var se_GetAccessKeyInfoCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_GetAccessKeyInfoRequest(input, context), - [_A]: _GAKI, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_GetAccessKeyInfoCommand"); -var se_GetCallerIdentityCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_GetCallerIdentityRequest(input, context), - [_A]: _GCI, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_GetCallerIdentityCommand"); -var se_GetFederationTokenCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_GetFederationTokenRequest(input, context), - [_A]: _GFT, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_GetFederationTokenCommand"); -var se_GetSessionTokenCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_GetSessionTokenRequest(input, context), - [_A]: _GST, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_GetSessionTokenCommand"); -var de_AssumeRoleCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_AssumeRoleResponse(data.AssumeRoleResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_AssumeRoleCommand"); -var de_AssumeRoleWithSAMLCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_AssumeRoleWithSAMLResponse(data.AssumeRoleWithSAMLResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_AssumeRoleWithSAMLCommand"); -var de_AssumeRoleWithWebIdentityCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_AssumeRoleWithWebIdentityResponse(data.AssumeRoleWithWebIdentityResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_AssumeRoleWithWebIdentityCommand"); -var de_DecodeAuthorizationMessageCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_DecodeAuthorizationMessageResponse(data.DecodeAuthorizationMessageResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_DecodeAuthorizationMessageCommand"); -var de_GetAccessKeyInfoCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_GetAccessKeyInfoResponse(data.GetAccessKeyInfoResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_GetAccessKeyInfoCommand"); -var de_GetCallerIdentityCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_GetCallerIdentityResponse(data.GetCallerIdentityResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_GetCallerIdentityCommand"); -var de_GetFederationTokenCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_GetFederationTokenResponse(data.GetFederationTokenResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_GetFederationTokenCommand"); -var de_GetSessionTokenCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_GetSessionTokenResponse(data.GetSessionTokenResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_GetSessionTokenCommand"); -var de_CommandError = /* @__PURE__ */ __name(async (output, context) => { - const parsedOutput = { - ...output, - body: await (0, import_core.parseXmlErrorBody)(output.body, context) - }; - const errorCode = loadQueryErrorCode(output, parsedOutput.body); - switch (errorCode) { - case "ExpiredTokenException": - case "com.amazonaws.sts#ExpiredTokenException": - throw await de_ExpiredTokenExceptionRes(parsedOutput, context); - case "MalformedPolicyDocument": - case "com.amazonaws.sts#MalformedPolicyDocumentException": - throw await de_MalformedPolicyDocumentExceptionRes(parsedOutput, context); - case "PackedPolicyTooLarge": - case "com.amazonaws.sts#PackedPolicyTooLargeException": - throw await de_PackedPolicyTooLargeExceptionRes(parsedOutput, context); - case "RegionDisabledException": - case "com.amazonaws.sts#RegionDisabledException": - throw await de_RegionDisabledExceptionRes(parsedOutput, context); - case "IDPRejectedClaim": - case "com.amazonaws.sts#IDPRejectedClaimException": - throw await de_IDPRejectedClaimExceptionRes(parsedOutput, context); - case "InvalidIdentityToken": - case "com.amazonaws.sts#InvalidIdentityTokenException": - throw await de_InvalidIdentityTokenExceptionRes(parsedOutput, context); - case "IDPCommunicationError": - case "com.amazonaws.sts#IDPCommunicationErrorException": - throw await de_IDPCommunicationErrorExceptionRes(parsedOutput, context); - case "InvalidAuthorizationMessageException": - case "com.amazonaws.sts#InvalidAuthorizationMessageException": - throw await de_InvalidAuthorizationMessageExceptionRes(parsedOutput, context); - default: - const parsedBody = parsedOutput.body; - return throwDefaultError({ - output, - parsedBody: parsedBody.Error, - errorCode - }); - } -}, "de_CommandError"); -var de_ExpiredTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const body = parsedOutput.body; - const deserialized = de_ExpiredTokenException(body.Error, context); - const exception = new ExpiredTokenException({ - $metadata: deserializeMetadata(parsedOutput), - ...deserialized - }); - return (0, import_smithy_client.decorateServiceException)(exception, body); -}, "de_ExpiredTokenExceptionRes"); -var de_IDPCommunicationErrorExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const body = parsedOutput.body; - const deserialized = de_IDPCommunicationErrorException(body.Error, context); - const exception = new IDPCommunicationErrorException({ - $metadata: deserializeMetadata(parsedOutput), - ...deserialized - }); - return (0, import_smithy_client.decorateServiceException)(exception, body); -}, "de_IDPCommunicationErrorExceptionRes"); -var de_IDPRejectedClaimExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const body = parsedOutput.body; - const deserialized = de_IDPRejectedClaimException(body.Error, context); - const exception = new IDPRejectedClaimException({ - $metadata: deserializeMetadata(parsedOutput), - ...deserialized - }); - return (0, import_smithy_client.decorateServiceException)(exception, body); -}, "de_IDPRejectedClaimExceptionRes"); -var de_InvalidAuthorizationMessageExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const body = parsedOutput.body; - const deserialized = de_InvalidAuthorizationMessageException(body.Error, context); - const exception = new InvalidAuthorizationMessageException({ - $metadata: deserializeMetadata(parsedOutput), - ...deserialized - }); - return (0, import_smithy_client.decorateServiceException)(exception, body); -}, "de_InvalidAuthorizationMessageExceptionRes"); -var de_InvalidIdentityTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const body = parsedOutput.body; - const deserialized = de_InvalidIdentityTokenException(body.Error, context); - const exception = new InvalidIdentityTokenException({ - $metadata: deserializeMetadata(parsedOutput), - ...deserialized - }); - return (0, import_smithy_client.decorateServiceException)(exception, body); -}, "de_InvalidIdentityTokenExceptionRes"); -var de_MalformedPolicyDocumentExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const body = parsedOutput.body; - const deserialized = de_MalformedPolicyDocumentException(body.Error, context); - const exception = new MalformedPolicyDocumentException({ - $metadata: deserializeMetadata(parsedOutput), - ...deserialized - }); - return (0, import_smithy_client.decorateServiceException)(exception, body); -}, "de_MalformedPolicyDocumentExceptionRes"); -var de_PackedPolicyTooLargeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const body = parsedOutput.body; - const deserialized = de_PackedPolicyTooLargeException(body.Error, context); - const exception = new PackedPolicyTooLargeException({ - $metadata: deserializeMetadata(parsedOutput), - ...deserialized - }); - return (0, import_smithy_client.decorateServiceException)(exception, body); -}, "de_PackedPolicyTooLargeExceptionRes"); -var de_RegionDisabledExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const body = parsedOutput.body; - const deserialized = de_RegionDisabledException(body.Error, context); - const exception = new RegionDisabledException({ - $metadata: deserializeMetadata(parsedOutput), - ...deserialized - }); - return (0, import_smithy_client.decorateServiceException)(exception, body); -}, "de_RegionDisabledExceptionRes"); -var se_AssumeRoleRequest = /* @__PURE__ */ __name((input, context) => { - var _a2, _b, _c, _d; - const entries = {}; - if (input[_RA] != null) { - entries[_RA] = input[_RA]; - } - if (input[_RSN] != null) { - entries[_RSN] = input[_RSN]; - } - if (input[_PA] != null) { - const memberEntries = se_policyDescriptorListType(input[_PA], context); - if (((_a2 = input[_PA]) == null ? void 0 : _a2.length) === 0) { - entries.PolicyArns = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `PolicyArns.${key}`; - entries[loc] = value; - }); - } - if (input[_P] != null) { - entries[_P] = input[_P]; - } - if (input[_DS] != null) { - entries[_DS] = input[_DS]; - } - if (input[_T] != null) { - const memberEntries = se_tagListType(input[_T], context); - if (((_b = input[_T]) == null ? void 0 : _b.length) === 0) { - entries.Tags = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `Tags.${key}`; - entries[loc] = value; - }); - } - if (input[_TTK] != null) { - const memberEntries = se_tagKeyListType(input[_TTK], context); - if (((_c = input[_TTK]) == null ? void 0 : _c.length) === 0) { - entries.TransitiveTagKeys = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `TransitiveTagKeys.${key}`; - entries[loc] = value; - }); - } - if (input[_EI] != null) { - entries[_EI] = input[_EI]; - } - if (input[_SN] != null) { - entries[_SN] = input[_SN]; - } - if (input[_TC] != null) { - entries[_TC] = input[_TC]; - } - if (input[_SI] != null) { - entries[_SI] = input[_SI]; - } - if (input[_PC] != null) { - const memberEntries = se_ProvidedContextsListType(input[_PC], context); - if (((_d = input[_PC]) == null ? void 0 : _d.length) === 0) { - entries.ProvidedContexts = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `ProvidedContexts.${key}`; - entries[loc] = value; - }); - } - return entries; -}, "se_AssumeRoleRequest"); -var se_AssumeRoleWithSAMLRequest = /* @__PURE__ */ __name((input, context) => { - var _a2; - const entries = {}; - if (input[_RA] != null) { - entries[_RA] = input[_RA]; - } - if (input[_PAr] != null) { - entries[_PAr] = input[_PAr]; - } - if (input[_SAMLA] != null) { - entries[_SAMLA] = input[_SAMLA]; - } - if (input[_PA] != null) { - const memberEntries = se_policyDescriptorListType(input[_PA], context); - if (((_a2 = input[_PA]) == null ? void 0 : _a2.length) === 0) { - entries.PolicyArns = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `PolicyArns.${key}`; - entries[loc] = value; - }); - } - if (input[_P] != null) { - entries[_P] = input[_P]; - } - if (input[_DS] != null) { - entries[_DS] = input[_DS]; - } - return entries; -}, "se_AssumeRoleWithSAMLRequest"); -var se_AssumeRoleWithWebIdentityRequest = /* @__PURE__ */ __name((input, context) => { - var _a2; - const entries = {}; - if (input[_RA] != null) { - entries[_RA] = input[_RA]; - } - if (input[_RSN] != null) { - entries[_RSN] = input[_RSN]; - } - if (input[_WIT] != null) { - entries[_WIT] = input[_WIT]; - } - if (input[_PI] != null) { - entries[_PI] = input[_PI]; - } - if (input[_PA] != null) { - const memberEntries = se_policyDescriptorListType(input[_PA], context); - if (((_a2 = input[_PA]) == null ? void 0 : _a2.length) === 0) { - entries.PolicyArns = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `PolicyArns.${key}`; - entries[loc] = value; - }); - } - if (input[_P] != null) { - entries[_P] = input[_P]; - } - if (input[_DS] != null) { - entries[_DS] = input[_DS]; - } - return entries; -}, "se_AssumeRoleWithWebIdentityRequest"); -var se_DecodeAuthorizationMessageRequest = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_EM] != null) { - entries[_EM] = input[_EM]; - } - return entries; -}, "se_DecodeAuthorizationMessageRequest"); -var se_GetAccessKeyInfoRequest = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_AKI] != null) { - entries[_AKI] = input[_AKI]; - } - return entries; -}, "se_GetAccessKeyInfoRequest"); -var se_GetCallerIdentityRequest = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - return entries; -}, "se_GetCallerIdentityRequest"); -var se_GetFederationTokenRequest = /* @__PURE__ */ __name((input, context) => { - var _a2, _b; - const entries = {}; - if (input[_N] != null) { - entries[_N] = input[_N]; - } - if (input[_P] != null) { - entries[_P] = input[_P]; - } - if (input[_PA] != null) { - const memberEntries = se_policyDescriptorListType(input[_PA], context); - if (((_a2 = input[_PA]) == null ? void 0 : _a2.length) === 0) { - entries.PolicyArns = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `PolicyArns.${key}`; - entries[loc] = value; - }); - } - if (input[_DS] != null) { - entries[_DS] = input[_DS]; - } - if (input[_T] != null) { - const memberEntries = se_tagListType(input[_T], context); - if (((_b = input[_T]) == null ? void 0 : _b.length) === 0) { - entries.Tags = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `Tags.${key}`; - entries[loc] = value; - }); - } - return entries; -}, "se_GetFederationTokenRequest"); -var se_GetSessionTokenRequest = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_DS] != null) { - entries[_DS] = input[_DS]; - } - if (input[_SN] != null) { - entries[_SN] = input[_SN]; - } - if (input[_TC] != null) { - entries[_TC] = input[_TC]; - } - return entries; -}, "se_GetSessionTokenRequest"); -var se_policyDescriptorListType = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - let counter = 1; - for (const entry of input) { - if (entry === null) { - continue; - } - const memberEntries = se_PolicyDescriptorType(entry, context); - Object.entries(memberEntries).forEach(([key, value]) => { - entries[`member.${counter}.${key}`] = value; - }); - counter++; - } - return entries; -}, "se_policyDescriptorListType"); -var se_PolicyDescriptorType = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_a] != null) { - entries[_a] = input[_a]; - } - return entries; -}, "se_PolicyDescriptorType"); -var se_ProvidedContext = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_PAro] != null) { - entries[_PAro] = input[_PAro]; - } - if (input[_CA] != null) { - entries[_CA] = input[_CA]; - } - return entries; -}, "se_ProvidedContext"); -var se_ProvidedContextsListType = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - let counter = 1; - for (const entry of input) { - if (entry === null) { - continue; - } - const memberEntries = se_ProvidedContext(entry, context); - Object.entries(memberEntries).forEach(([key, value]) => { - entries[`member.${counter}.${key}`] = value; - }); - counter++; - } - return entries; -}, "se_ProvidedContextsListType"); -var se_Tag = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_K] != null) { - entries[_K] = input[_K]; - } - if (input[_Va] != null) { - entries[_Va] = input[_Va]; - } - return entries; -}, "se_Tag"); -var se_tagKeyListType = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - let counter = 1; - for (const entry of input) { - if (entry === null) { - continue; - } - entries[`member.${counter}`] = entry; - counter++; - } - return entries; -}, "se_tagKeyListType"); -var se_tagListType = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - let counter = 1; - for (const entry of input) { - if (entry === null) { - continue; - } - const memberEntries = se_Tag(entry, context); - Object.entries(memberEntries).forEach(([key, value]) => { - entries[`member.${counter}.${key}`] = value; - }); - counter++; - } - return entries; -}, "se_tagListType"); -var de_AssumedRoleUser = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_ARI] != null) { - contents[_ARI] = (0, import_smithy_client.expectString)(output[_ARI]); - } - if (output[_Ar] != null) { - contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]); - } - return contents; -}, "de_AssumedRoleUser"); -var de_AssumeRoleResponse = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_C] != null) { - contents[_C] = de_Credentials(output[_C], context); - } - if (output[_ARU] != null) { - contents[_ARU] = de_AssumedRoleUser(output[_ARU], context); - } - if (output[_PPS] != null) { - contents[_PPS] = (0, import_smithy_client.strictParseInt32)(output[_PPS]); - } - if (output[_SI] != null) { - contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]); - } - return contents; -}, "de_AssumeRoleResponse"); -var de_AssumeRoleWithSAMLResponse = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_C] != null) { - contents[_C] = de_Credentials(output[_C], context); - } - if (output[_ARU] != null) { - contents[_ARU] = de_AssumedRoleUser(output[_ARU], context); - } - if (output[_PPS] != null) { - contents[_PPS] = (0, import_smithy_client.strictParseInt32)(output[_PPS]); - } - if (output[_S] != null) { - contents[_S] = (0, import_smithy_client.expectString)(output[_S]); - } - if (output[_ST] != null) { - contents[_ST] = (0, import_smithy_client.expectString)(output[_ST]); - } - if (output[_I] != null) { - contents[_I] = (0, import_smithy_client.expectString)(output[_I]); - } - if (output[_Au] != null) { - contents[_Au] = (0, import_smithy_client.expectString)(output[_Au]); - } - if (output[_NQ] != null) { - contents[_NQ] = (0, import_smithy_client.expectString)(output[_NQ]); - } - if (output[_SI] != null) { - contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]); - } - return contents; -}, "de_AssumeRoleWithSAMLResponse"); -var de_AssumeRoleWithWebIdentityResponse = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_C] != null) { - contents[_C] = de_Credentials(output[_C], context); - } - if (output[_SFWIT] != null) { - contents[_SFWIT] = (0, import_smithy_client.expectString)(output[_SFWIT]); - } - if (output[_ARU] != null) { - contents[_ARU] = de_AssumedRoleUser(output[_ARU], context); - } - if (output[_PPS] != null) { - contents[_PPS] = (0, import_smithy_client.strictParseInt32)(output[_PPS]); - } - if (output[_Pr] != null) { - contents[_Pr] = (0, import_smithy_client.expectString)(output[_Pr]); - } - if (output[_Au] != null) { - contents[_Au] = (0, import_smithy_client.expectString)(output[_Au]); - } - if (output[_SI] != null) { - contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]); - } - return contents; -}, "de_AssumeRoleWithWebIdentityResponse"); -var de_Credentials = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_AKI] != null) { - contents[_AKI] = (0, import_smithy_client.expectString)(output[_AKI]); - } - if (output[_SAK] != null) { - contents[_SAK] = (0, import_smithy_client.expectString)(output[_SAK]); - } - if (output[_STe] != null) { - contents[_STe] = (0, import_smithy_client.expectString)(output[_STe]); - } - if (output[_E] != null) { - contents[_E] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_E])); - } - return contents; -}, "de_Credentials"); -var de_DecodeAuthorizationMessageResponse = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_DM] != null) { - contents[_DM] = (0, import_smithy_client.expectString)(output[_DM]); - } - return contents; -}, "de_DecodeAuthorizationMessageResponse"); -var de_ExpiredTokenException = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_m] != null) { - contents[_m] = (0, import_smithy_client.expectString)(output[_m]); - } - return contents; -}, "de_ExpiredTokenException"); -var de_FederatedUser = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_FUI] != null) { - contents[_FUI] = (0, import_smithy_client.expectString)(output[_FUI]); - } - if (output[_Ar] != null) { - contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]); - } - return contents; -}, "de_FederatedUser"); -var de_GetAccessKeyInfoResponse = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_Ac] != null) { - contents[_Ac] = (0, import_smithy_client.expectString)(output[_Ac]); - } - return contents; -}, "de_GetAccessKeyInfoResponse"); -var de_GetCallerIdentityResponse = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_UI] != null) { - contents[_UI] = (0, import_smithy_client.expectString)(output[_UI]); - } - if (output[_Ac] != null) { - contents[_Ac] = (0, import_smithy_client.expectString)(output[_Ac]); - } - if (output[_Ar] != null) { - contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]); - } - return contents; -}, "de_GetCallerIdentityResponse"); -var de_GetFederationTokenResponse = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_C] != null) { - contents[_C] = de_Credentials(output[_C], context); - } - if (output[_FU] != null) { - contents[_FU] = de_FederatedUser(output[_FU], context); - } - if (output[_PPS] != null) { - contents[_PPS] = (0, import_smithy_client.strictParseInt32)(output[_PPS]); - } - return contents; -}, "de_GetFederationTokenResponse"); -var de_GetSessionTokenResponse = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_C] != null) { - contents[_C] = de_Credentials(output[_C], context); - } - return contents; -}, "de_GetSessionTokenResponse"); -var de_IDPCommunicationErrorException = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_m] != null) { - contents[_m] = (0, import_smithy_client.expectString)(output[_m]); - } - return contents; -}, "de_IDPCommunicationErrorException"); -var de_IDPRejectedClaimException = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_m] != null) { - contents[_m] = (0, import_smithy_client.expectString)(output[_m]); - } - return contents; -}, "de_IDPRejectedClaimException"); -var de_InvalidAuthorizationMessageException = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_m] != null) { - contents[_m] = (0, import_smithy_client.expectString)(output[_m]); - } - return contents; -}, "de_InvalidAuthorizationMessageException"); -var de_InvalidIdentityTokenException = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_m] != null) { - contents[_m] = (0, import_smithy_client.expectString)(output[_m]); - } - return contents; -}, "de_InvalidIdentityTokenException"); -var de_MalformedPolicyDocumentException = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_m] != null) { - contents[_m] = (0, import_smithy_client.expectString)(output[_m]); - } - return contents; -}, "de_MalformedPolicyDocumentException"); -var de_PackedPolicyTooLargeException = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_m] != null) { - contents[_m] = (0, import_smithy_client.expectString)(output[_m]); - } - return contents; -}, "de_PackedPolicyTooLargeException"); -var de_RegionDisabledException = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_m] != null) { - contents[_m] = (0, import_smithy_client.expectString)(output[_m]); - } - return contents; -}, "de_RegionDisabledException"); -var deserializeMetadata = /* @__PURE__ */ __name((output) => ({ - httpStatusCode: output.statusCode, - requestId: output.headers["x-amzn-requestid"] ?? output.headers["x-amzn-request-id"] ?? output.headers["x-amz-request-id"], - extendedRequestId: output.headers["x-amz-id-2"], - cfId: output.headers["x-amz-cf-id"] -}), "deserializeMetadata"); -var throwDefaultError = (0, import_smithy_client.withBaseException)(STSServiceException); -var buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => { - const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); - const contents = { - protocol, - hostname, - port, - method: "POST", - path: basePath.endsWith("/") ? basePath.slice(0, -1) + path : basePath + path, - headers - }; - if (resolvedHostname !== void 0) { - contents.hostname = resolvedHostname; - } - if (body !== void 0) { - contents.body = body; - } - return new import_protocol_http.HttpRequest(contents); -}, "buildHttpRpcRequest"); -var SHARED_HEADERS = { - "content-type": "application/x-www-form-urlencoded" -}; -var _ = "2011-06-15"; -var _A = "Action"; -var _AKI = "AccessKeyId"; -var _AR = "AssumeRole"; -var _ARI = "AssumedRoleId"; -var _ARU = "AssumedRoleUser"; -var _ARWSAML = "AssumeRoleWithSAML"; -var _ARWWI = "AssumeRoleWithWebIdentity"; -var _Ac = "Account"; -var _Ar = "Arn"; -var _Au = "Audience"; -var _C = "Credentials"; -var _CA = "ContextAssertion"; -var _DAM = "DecodeAuthorizationMessage"; -var _DM = "DecodedMessage"; -var _DS = "DurationSeconds"; -var _E = "Expiration"; -var _EI = "ExternalId"; -var _EM = "EncodedMessage"; -var _FU = "FederatedUser"; -var _FUI = "FederatedUserId"; -var _GAKI = "GetAccessKeyInfo"; -var _GCI = "GetCallerIdentity"; -var _GFT = "GetFederationToken"; -var _GST = "GetSessionToken"; -var _I = "Issuer"; -var _K = "Key"; -var _N = "Name"; -var _NQ = "NameQualifier"; -var _P = "Policy"; -var _PA = "PolicyArns"; -var _PAr = "PrincipalArn"; -var _PAro = "ProviderArn"; -var _PC = "ProvidedContexts"; -var _PI = "ProviderId"; -var _PPS = "PackedPolicySize"; -var _Pr = "Provider"; -var _RA = "RoleArn"; -var _RSN = "RoleSessionName"; -var _S = "Subject"; -var _SAK = "SecretAccessKey"; -var _SAMLA = "SAMLAssertion"; -var _SFWIT = "SubjectFromWebIdentityToken"; -var _SI = "SourceIdentity"; -var _SN = "SerialNumber"; -var _ST = "SubjectType"; -var _STe = "SessionToken"; -var _T = "Tags"; -var _TC = "TokenCode"; -var _TTK = "TransitiveTagKeys"; -var _UI = "UserId"; -var _V = "Version"; -var _Va = "Value"; -var _WIT = "WebIdentityToken"; -var _a = "arn"; -var _m = "message"; -var buildFormUrlencodedString = /* @__PURE__ */ __name((formEntries) => Object.entries(formEntries).map(([key, value]) => (0, import_smithy_client.extendedEncodeURIComponent)(key) + "=" + (0, import_smithy_client.extendedEncodeURIComponent)(value)).join("&"), "buildFormUrlencodedString"); -var loadQueryErrorCode = /* @__PURE__ */ __name((output, data) => { - var _a2; - if (((_a2 = data.Error) == null ? void 0 : _a2.Code) !== void 0) { - return data.Error.Code; - } - if (output.statusCode == 404) { - return "NotFound"; - } -}, "loadQueryErrorCode"); - -// src/commands/AssumeRoleCommand.ts -var _AssumeRoleCommand = class _AssumeRoleCommand extends import_smithy_client.Command.classBuilder().ep({ - ...import_EndpointParameters.commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("AWSSecurityTokenServiceV20110615", "AssumeRole", {}).n("STSClient", "AssumeRoleCommand").f(void 0, AssumeRoleResponseFilterSensitiveLog).ser(se_AssumeRoleCommand).de(de_AssumeRoleCommand).build() { -}; -__name(_AssumeRoleCommand, "AssumeRoleCommand"); -var AssumeRoleCommand = _AssumeRoleCommand; - -// src/commands/AssumeRoleWithSAMLCommand.ts - - - -var import_EndpointParameters2 = __nccwpck_require__(20510); -var _AssumeRoleWithSAMLCommand = class _AssumeRoleWithSAMLCommand extends import_smithy_client.Command.classBuilder().ep({ - ...import_EndpointParameters2.commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("AWSSecurityTokenServiceV20110615", "AssumeRoleWithSAML", {}).n("STSClient", "AssumeRoleWithSAMLCommand").f(AssumeRoleWithSAMLRequestFilterSensitiveLog, AssumeRoleWithSAMLResponseFilterSensitiveLog).ser(se_AssumeRoleWithSAMLCommand).de(de_AssumeRoleWithSAMLCommand).build() { -}; -__name(_AssumeRoleWithSAMLCommand, "AssumeRoleWithSAMLCommand"); -var AssumeRoleWithSAMLCommand = _AssumeRoleWithSAMLCommand; - -// src/commands/AssumeRoleWithWebIdentityCommand.ts - - - -var import_EndpointParameters3 = __nccwpck_require__(20510); -var _AssumeRoleWithWebIdentityCommand = class _AssumeRoleWithWebIdentityCommand extends import_smithy_client.Command.classBuilder().ep({ - ...import_EndpointParameters3.commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("AWSSecurityTokenServiceV20110615", "AssumeRoleWithWebIdentity", {}).n("STSClient", "AssumeRoleWithWebIdentityCommand").f(AssumeRoleWithWebIdentityRequestFilterSensitiveLog, AssumeRoleWithWebIdentityResponseFilterSensitiveLog).ser(se_AssumeRoleWithWebIdentityCommand).de(de_AssumeRoleWithWebIdentityCommand).build() { -}; -__name(_AssumeRoleWithWebIdentityCommand, "AssumeRoleWithWebIdentityCommand"); -var AssumeRoleWithWebIdentityCommand = _AssumeRoleWithWebIdentityCommand; - -// src/commands/DecodeAuthorizationMessageCommand.ts - - - -var import_EndpointParameters4 = __nccwpck_require__(20510); -var _DecodeAuthorizationMessageCommand = class _DecodeAuthorizationMessageCommand extends import_smithy_client.Command.classBuilder().ep({ - ...import_EndpointParameters4.commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("AWSSecurityTokenServiceV20110615", "DecodeAuthorizationMessage", {}).n("STSClient", "DecodeAuthorizationMessageCommand").f(void 0, void 0).ser(se_DecodeAuthorizationMessageCommand).de(de_DecodeAuthorizationMessageCommand).build() { -}; -__name(_DecodeAuthorizationMessageCommand, "DecodeAuthorizationMessageCommand"); -var DecodeAuthorizationMessageCommand = _DecodeAuthorizationMessageCommand; - -// src/commands/GetAccessKeyInfoCommand.ts - - - -var import_EndpointParameters5 = __nccwpck_require__(20510); -var _GetAccessKeyInfoCommand = class _GetAccessKeyInfoCommand extends import_smithy_client.Command.classBuilder().ep({ - ...import_EndpointParameters5.commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("AWSSecurityTokenServiceV20110615", "GetAccessKeyInfo", {}).n("STSClient", "GetAccessKeyInfoCommand").f(void 0, void 0).ser(se_GetAccessKeyInfoCommand).de(de_GetAccessKeyInfoCommand).build() { -}; -__name(_GetAccessKeyInfoCommand, "GetAccessKeyInfoCommand"); -var GetAccessKeyInfoCommand = _GetAccessKeyInfoCommand; - -// src/commands/GetCallerIdentityCommand.ts - - - -var import_EndpointParameters6 = __nccwpck_require__(20510); -var _GetCallerIdentityCommand = class _GetCallerIdentityCommand extends import_smithy_client.Command.classBuilder().ep({ - ...import_EndpointParameters6.commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("AWSSecurityTokenServiceV20110615", "GetCallerIdentity", {}).n("STSClient", "GetCallerIdentityCommand").f(void 0, void 0).ser(se_GetCallerIdentityCommand).de(de_GetCallerIdentityCommand).build() { -}; -__name(_GetCallerIdentityCommand, "GetCallerIdentityCommand"); -var GetCallerIdentityCommand = _GetCallerIdentityCommand; - -// src/commands/GetFederationTokenCommand.ts - - - -var import_EndpointParameters7 = __nccwpck_require__(20510); -var _GetFederationTokenCommand = class _GetFederationTokenCommand extends import_smithy_client.Command.classBuilder().ep({ - ...import_EndpointParameters7.commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("AWSSecurityTokenServiceV20110615", "GetFederationToken", {}).n("STSClient", "GetFederationTokenCommand").f(void 0, GetFederationTokenResponseFilterSensitiveLog).ser(se_GetFederationTokenCommand).de(de_GetFederationTokenCommand).build() { -}; -__name(_GetFederationTokenCommand, "GetFederationTokenCommand"); -var GetFederationTokenCommand = _GetFederationTokenCommand; - -// src/commands/GetSessionTokenCommand.ts - - - -var import_EndpointParameters8 = __nccwpck_require__(20510); -var _GetSessionTokenCommand = class _GetSessionTokenCommand extends import_smithy_client.Command.classBuilder().ep({ - ...import_EndpointParameters8.commonParams -}).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("AWSSecurityTokenServiceV20110615", "GetSessionToken", {}).n("STSClient", "GetSessionTokenCommand").f(void 0, GetSessionTokenResponseFilterSensitiveLog).ser(se_GetSessionTokenCommand).de(de_GetSessionTokenCommand).build() { -}; -__name(_GetSessionTokenCommand, "GetSessionTokenCommand"); -var GetSessionTokenCommand = _GetSessionTokenCommand; - -// src/STS.ts -var import_STSClient = __nccwpck_require__(64195); -var commands = { - AssumeRoleCommand, - AssumeRoleWithSAMLCommand, - AssumeRoleWithWebIdentityCommand, - DecodeAuthorizationMessageCommand, - GetAccessKeyInfoCommand, - GetCallerIdentityCommand, - GetFederationTokenCommand, - GetSessionTokenCommand -}; -var _STS = class _STS extends import_STSClient.STSClient { -}; -__name(_STS, "STS"); -var STS = _STS; -(0, import_smithy_client.createAggregatedClient)(commands, STS); - -// src/index.ts -var import_EndpointParameters9 = __nccwpck_require__(20510); - -// src/defaultStsRoleAssumers.ts -var ASSUME_ROLE_DEFAULT_REGION = "us-east-1"; -var getAccountIdFromAssumedRoleUser = /* @__PURE__ */ __name((assumedRoleUser) => { - if (typeof (assumedRoleUser == null ? void 0 : assumedRoleUser.Arn) === "string") { - const arnComponents = assumedRoleUser.Arn.split(":"); - if (arnComponents.length > 4 && arnComponents[4] !== "") { - return arnComponents[4]; - } - } - return void 0; -}, "getAccountIdFromAssumedRoleUser"); -var resolveRegion = /* @__PURE__ */ __name(async (_region, _parentRegion, credentialProviderLogger) => { - var _a2; - const region = typeof _region === "function" ? await _region() : _region; - const parentRegion = typeof _parentRegion === "function" ? await _parentRegion() : _parentRegion; - (_a2 = credentialProviderLogger == null ? void 0 : credentialProviderLogger.debug) == null ? void 0 : _a2.call( - credentialProviderLogger, - "@aws-sdk/client-sts::resolveRegion", - "accepting first of:", - `${region} (provider)`, - `${parentRegion} (parent client)`, - `${ASSUME_ROLE_DEFAULT_REGION} (STS default)` - ); - return region ?? parentRegion ?? ASSUME_ROLE_DEFAULT_REGION; -}, "resolveRegion"); -var getDefaultRoleAssumer = /* @__PURE__ */ __name((stsOptions, stsClientCtor) => { - let stsClient; - let closureSourceCreds; - return async (sourceCreds, params) => { - var _a2, _b, _c; - closureSourceCreds = sourceCreds; - if (!stsClient) { - const { - logger = (_a2 = stsOptions == null ? void 0 : stsOptions.parentClientConfig) == null ? void 0 : _a2.logger, - region, - requestHandler = (_b = stsOptions == null ? void 0 : stsOptions.parentClientConfig) == null ? void 0 : _b.requestHandler, - credentialProviderLogger - } = stsOptions; - const resolvedRegion = await resolveRegion( - region, - (_c = stsOptions == null ? void 0 : stsOptions.parentClientConfig) == null ? void 0 : _c.region, - credentialProviderLogger - ); - const isCompatibleRequestHandler = !isH2(requestHandler); - stsClient = new stsClientCtor({ - // A hack to make sts client uses the credential in current closure. - credentialDefaultProvider: () => async () => closureSourceCreds, - region: resolvedRegion, - requestHandler: isCompatibleRequestHandler ? requestHandler : void 0, - logger - }); - } - const { Credentials: Credentials2, AssumedRoleUser: AssumedRoleUser2 } = await stsClient.send(new AssumeRoleCommand(params)); - if (!Credentials2 || !Credentials2.AccessKeyId || !Credentials2.SecretAccessKey) { - throw new Error(`Invalid response from STS.assumeRole call with role ${params.RoleArn}`); - } - const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser2); - return { - accessKeyId: Credentials2.AccessKeyId, - secretAccessKey: Credentials2.SecretAccessKey, - sessionToken: Credentials2.SessionToken, - expiration: Credentials2.Expiration, - // TODO(credentialScope): access normally when shape is updated. - ...Credentials2.CredentialScope && { credentialScope: Credentials2.CredentialScope }, - ...accountId && { accountId } - }; - }; -}, "getDefaultRoleAssumer"); -var getDefaultRoleAssumerWithWebIdentity = /* @__PURE__ */ __name((stsOptions, stsClientCtor) => { - let stsClient; - return async (params) => { - var _a2, _b, _c; - if (!stsClient) { - const { - logger = (_a2 = stsOptions == null ? void 0 : stsOptions.parentClientConfig) == null ? void 0 : _a2.logger, - region, - requestHandler = (_b = stsOptions == null ? void 0 : stsOptions.parentClientConfig) == null ? void 0 : _b.requestHandler, - credentialProviderLogger - } = stsOptions; - const resolvedRegion = await resolveRegion( - region, - (_c = stsOptions == null ? void 0 : stsOptions.parentClientConfig) == null ? void 0 : _c.region, - credentialProviderLogger - ); - const isCompatibleRequestHandler = !isH2(requestHandler); - stsClient = new stsClientCtor({ - region: resolvedRegion, - requestHandler: isCompatibleRequestHandler ? requestHandler : void 0, - logger - }); - } - const { Credentials: Credentials2, AssumedRoleUser: AssumedRoleUser2 } = await stsClient.send(new AssumeRoleWithWebIdentityCommand(params)); - if (!Credentials2 || !Credentials2.AccessKeyId || !Credentials2.SecretAccessKey) { - throw new Error(`Invalid response from STS.assumeRoleWithWebIdentity call with role ${params.RoleArn}`); - } - const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser2); - return { - accessKeyId: Credentials2.AccessKeyId, - secretAccessKey: Credentials2.SecretAccessKey, - sessionToken: Credentials2.SessionToken, - expiration: Credentials2.Expiration, - // TODO(credentialScope): access normally when shape is updated. - ...Credentials2.CredentialScope && { credentialScope: Credentials2.CredentialScope }, - ...accountId && { accountId } - }; - }; -}, "getDefaultRoleAssumerWithWebIdentity"); -var isH2 = /* @__PURE__ */ __name((requestHandler) => { - var _a2; - return ((_a2 = requestHandler == null ? void 0 : requestHandler.metadata) == null ? void 0 : _a2.handlerProtocol) === "h2"; -}, "isH2"); - -// src/defaultRoleAssumers.ts -var import_STSClient2 = __nccwpck_require__(64195); -var getCustomizableStsClientCtor = /* @__PURE__ */ __name((baseCtor, customizations) => { - var _a2; - if (!customizations) - return baseCtor; - else - return _a2 = class extends baseCtor { - constructor(config) { - super(config); - for (const customization of customizations) { - this.middlewareStack.use(customization); - } - } - }, __name(_a2, "CustomizableSTSClient"), _a2; -}, "getCustomizableStsClientCtor"); -var getDefaultRoleAssumer2 = /* @__PURE__ */ __name((stsOptions = {}, stsPlugins) => getDefaultRoleAssumer(stsOptions, getCustomizableStsClientCtor(import_STSClient2.STSClient, stsPlugins)), "getDefaultRoleAssumer"); -var getDefaultRoleAssumerWithWebIdentity2 = /* @__PURE__ */ __name((stsOptions = {}, stsPlugins) => getDefaultRoleAssumerWithWebIdentity(stsOptions, getCustomizableStsClientCtor(import_STSClient2.STSClient, stsPlugins)), "getDefaultRoleAssumerWithWebIdentity"); -var decorateDefaultCredentialProvider = /* @__PURE__ */ __name((provider) => (input) => provider({ - roleAssumer: getDefaultRoleAssumer2(input), - roleAssumerWithWebIdentity: getDefaultRoleAssumerWithWebIdentity2(input), - ...input -}), "decorateDefaultCredentialProvider"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 83405: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getRuntimeConfig = void 0; -const tslib_1 = __nccwpck_require__(4351); -const package_json_1 = tslib_1.__importDefault(__nccwpck_require__(7947)); -const core_1 = __nccwpck_require__(59963); -const credential_provider_node_1 = __nccwpck_require__(75531); -const util_user_agent_node_1 = __nccwpck_require__(98095); -const config_resolver_1 = __nccwpck_require__(53098); -const core_2 = __nccwpck_require__(55829); -const hash_node_1 = __nccwpck_require__(3081); -const middleware_retry_1 = __nccwpck_require__(96039); -const node_config_provider_1 = __nccwpck_require__(33461); -const node_http_handler_1 = __nccwpck_require__(58303); -const util_body_length_node_1 = __nccwpck_require__(68075); -const util_retry_1 = __nccwpck_require__(84902); -const runtimeConfig_shared_1 = __nccwpck_require__(52642); -const smithy_client_1 = __nccwpck_require__(63570); -const util_defaults_mode_node_1 = __nccwpck_require__(72429); -const smithy_client_2 = __nccwpck_require__(63570); -const getRuntimeConfig = (config) => { - (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version); - const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config); - const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode); - const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config); - (0, core_1.emitWarningIfUnsupportedVersion)(process.version); - return { - ...clientSharedValues, - ...config, - runtime: "node", - defaultsMode, - bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength, - credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider, - defaultUserAgentProvider: config?.defaultUserAgentProvider ?? - (0, util_user_agent_node_1.defaultUserAgent)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }), - httpAuthSchemes: config?.httpAuthSchemes ?? [ - { - schemeId: "aws.auth#sigv4", - identityProvider: (ipc) => ipc.getIdentityProvider("aws.auth#sigv4") || - (async (idProps) => await (0, credential_provider_node_1.defaultProvider)(idProps?.__config || {})()), - signer: new core_1.AwsSdkSigV4Signer(), - }, - { - schemeId: "smithy.api#noAuth", - identityProvider: (ipc) => ipc.getIdentityProvider("smithy.api#noAuth") || (async () => ({})), - signer: new core_2.NoAuthSigner(), - }, - ], - maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS), - region: config?.region ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS), - requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider), - retryMode: config?.retryMode ?? - (0, node_config_provider_1.loadConfig)({ - ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS, - default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE, - }), - sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, "sha256"), - streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector, - useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS), - useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS), - }; -}; -exports.getRuntimeConfig = getRuntimeConfig; - - -/***/ }), - -/***/ 52642: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getRuntimeConfig = void 0; -const core_1 = __nccwpck_require__(59963); -const core_2 = __nccwpck_require__(55829); -const smithy_client_1 = __nccwpck_require__(63570); -const url_parser_1 = __nccwpck_require__(14681); -const util_base64_1 = __nccwpck_require__(75600); -const util_utf8_1 = __nccwpck_require__(41895); -const httpAuthSchemeProvider_1 = __nccwpck_require__(17145); -const endpointResolver_1 = __nccwpck_require__(41203); -const getRuntimeConfig = (config) => { - return { - apiVersion: "2011-06-15", - base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64, - base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64, - disableHostPrefix: config?.disableHostPrefix ?? false, - endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver, - extensions: config?.extensions ?? [], - httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSTSHttpAuthSchemeProvider, - httpAuthSchemes: config?.httpAuthSchemes ?? [ - { - schemeId: "aws.auth#sigv4", - identityProvider: (ipc) => ipc.getIdentityProvider("aws.auth#sigv4"), - signer: new core_1.AwsSdkSigV4Signer(), - }, - { - schemeId: "smithy.api#noAuth", - identityProvider: (ipc) => ipc.getIdentityProvider("smithy.api#noAuth") || (async () => ({})), - signer: new core_2.NoAuthSigner(), - }, - ], - logger: config?.logger ?? new smithy_client_1.NoOpLogger(), - serviceId: config?.serviceId ?? "STS", - urlParser: config?.urlParser ?? url_parser_1.parseUrl, - utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8, - utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8, - }; -}; -exports.getRuntimeConfig = getRuntimeConfig; - - -/***/ }), - -/***/ 32053: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.resolveRuntimeExtensions = void 0; -const region_config_resolver_1 = __nccwpck_require__(18156); -const protocol_http_1 = __nccwpck_require__(64418); -const smithy_client_1 = __nccwpck_require__(63570); -const httpAuthExtensionConfiguration_1 = __nccwpck_require__(28527); -const asPartial = (t) => t; -const resolveRuntimeExtensions = (runtimeConfig, extensions) => { - const extensionConfiguration = { - ...asPartial((0, region_config_resolver_1.getAwsRegionExtensionConfiguration)(runtimeConfig)), - ...asPartial((0, smithy_client_1.getDefaultExtensionConfiguration)(runtimeConfig)), - ...asPartial((0, protocol_http_1.getHttpHandlerExtensionConfiguration)(runtimeConfig)), - ...asPartial((0, httpAuthExtensionConfiguration_1.getHttpAuthExtensionConfiguration)(runtimeConfig)), - }; - extensions.forEach((extension) => extension.configure(extensionConfiguration)); - return { - ...runtimeConfig, - ...(0, region_config_resolver_1.resolveAwsRegionExtensionConfiguration)(extensionConfiguration), - ...(0, smithy_client_1.resolveDefaultRuntimeConfig)(extensionConfiguration), - ...(0, protocol_http_1.resolveHttpHandlerRuntimeConfig)(extensionConfiguration), - ...(0, httpAuthExtensionConfiguration_1.resolveHttpAuthRuntimeConfig)(extensionConfiguration), - }; -}; -exports.resolveRuntimeExtensions = resolveRuntimeExtensions; - - -/***/ }), - -/***/ 58303: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __create = Object.create; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __getProtoOf = Object.getPrototypeOf; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. - isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, - mod -)); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - DEFAULT_REQUEST_TIMEOUT: () => DEFAULT_REQUEST_TIMEOUT, - NodeHttp2Handler: () => NodeHttp2Handler, - NodeHttpHandler: () => NodeHttpHandler, - streamCollector: () => streamCollector -}); -module.exports = __toCommonJS(src_exports); - -// src/node-http-handler.ts -var import_protocol_http = __nccwpck_require__(64418); -var import_querystring_builder = __nccwpck_require__(68031); -var import_http = __nccwpck_require__(13685); -var import_https = __nccwpck_require__(95687); - -// src/constants.ts -var NODEJS_TIMEOUT_ERROR_CODES = ["ECONNRESET", "EPIPE", "ETIMEDOUT"]; - -// src/get-transformed-headers.ts -var getTransformedHeaders = /* @__PURE__ */ __name((headers) => { - const transformedHeaders = {}; - for (const name of Object.keys(headers)) { - const headerValues = headers[name]; - transformedHeaders[name] = Array.isArray(headerValues) ? headerValues.join(",") : headerValues; - } - return transformedHeaders; -}, "getTransformedHeaders"); - -// src/set-connection-timeout.ts -var DEFER_EVENT_LISTENER_TIME = 1e3; -var setConnectionTimeout = /* @__PURE__ */ __name((request, reject, timeoutInMs = 0) => { - if (!timeoutInMs) { - return -1; - } - const registerTimeout = /* @__PURE__ */ __name((offset) => { - const timeoutId = setTimeout(() => { - request.destroy(); - reject( - Object.assign(new Error(`Socket timed out without establishing a connection within ${timeoutInMs} ms`), { - name: "TimeoutError" - }) - ); - }, timeoutInMs - offset); - const doWithSocket = /* @__PURE__ */ __name((socket) => { - if (socket == null ? void 0 : socket.connecting) { - socket.on("connect", () => { - clearTimeout(timeoutId); - }); - } else { - clearTimeout(timeoutId); + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + deserializerMiddleware: () => deserializerMiddleware, + deserializerMiddlewareOption: () => deserializerMiddlewareOption, + getSerdePlugin: () => getSerdePlugin, + serializerMiddleware: () => serializerMiddleware, + serializerMiddlewareOption: () => serializerMiddlewareOption + }) + module.exports = __toCommonJS(src_exports) + + // src/deserializerMiddleware.ts + var deserializerMiddleware = /* @__PURE__ */ __name( + (options, deserializer) => (next, context) => async args => { + const { response } = await next(args) + try { + const parsed = await deserializer(response, options) + return { + response, + output: parsed + } + } catch (error) { + Object.defineProperty(error, '$response', { + value: response + }) + if (!('$metadata' in error)) { + const hint = `Deserialization error: to see the raw response, inspect the hidden field {error}.$response on this object.` + try { + error.message += '\n ' + hint + } catch (e) { + if ( + !context.logger || + context.logger?.constructor?.name === 'NoOpLogger' + ) { + console.warn(hint) + } else { + context.logger?.warn?.(hint) + } + } + if (typeof error.$responseBodyText !== 'undefined') { + if (error.$response) { + error.$response.body = error.$responseBodyText + } + } + } + throw error + } + }, + 'deserializerMiddleware' + ) + + // src/serializerMiddleware.ts + var serializerMiddleware = /* @__PURE__ */ __name( + (options, serializer) => (next, context) => async args => { + const endpoint = + context.endpointV2?.url && options.urlParser + ? async () => options.urlParser(context.endpointV2.url) + : options.endpoint + if (!endpoint) { + throw new Error('No valid endpoint provider available.') + } + const request = await serializer(args.input, { ...options, endpoint }) + return next({ + ...args, + request + }) + }, + 'serializerMiddleware' + ) + + // src/serdePlugin.ts + var deserializerMiddlewareOption = { + name: 'deserializerMiddleware', + step: 'deserialize', + tags: ['DESERIALIZER'], + override: true } - }, "doWithSocket"); - if (request.socket) { - doWithSocket(request.socket); - } else { - request.on("socket", doWithSocket); - } - }, "registerTimeout"); - if (timeoutInMs < 2e3) { - registerTimeout(0); - return 0; - } - return setTimeout(registerTimeout.bind(null, DEFER_EVENT_LISTENER_TIME), DEFER_EVENT_LISTENER_TIME); -}, "setConnectionTimeout"); - -// src/set-socket-keep-alive.ts -var DEFER_EVENT_LISTENER_TIME2 = 3e3; -var setSocketKeepAlive = /* @__PURE__ */ __name((request, { keepAlive, keepAliveMsecs }, deferTimeMs = DEFER_EVENT_LISTENER_TIME2) => { - if (keepAlive !== true) { - return -1; - } - const registerListener = /* @__PURE__ */ __name(() => { - if (request.socket) { - request.socket.setKeepAlive(keepAlive, keepAliveMsecs || 0); - } else { - request.on("socket", (socket) => { - socket.setKeepAlive(keepAlive, keepAliveMsecs || 0); - }); - } - }, "registerListener"); - if (deferTimeMs === 0) { - registerListener(); - return 0; - } - return setTimeout(registerListener, deferTimeMs); -}, "setSocketKeepAlive"); - -// src/set-socket-timeout.ts -var DEFER_EVENT_LISTENER_TIME3 = 3e3; -var setSocketTimeout = /* @__PURE__ */ __name((request, reject, timeoutInMs = 0) => { - const registerTimeout = /* @__PURE__ */ __name((offset) => { - request.setTimeout(timeoutInMs - offset, () => { - request.destroy(); - reject(Object.assign(new Error(`Connection timed out after ${timeoutInMs} ms`), { name: "TimeoutError" })); - }); - }, "registerTimeout"); - if (0 < timeoutInMs && timeoutInMs < 6e3) { - registerTimeout(0); - return 0; - } - return setTimeout( - registerTimeout.bind(null, timeoutInMs === 0 ? 0 : DEFER_EVENT_LISTENER_TIME3), - DEFER_EVENT_LISTENER_TIME3 - ); -}, "setSocketTimeout"); - -// src/write-request-body.ts -var import_stream = __nccwpck_require__(12781); -var MIN_WAIT_TIME = 1e3; -async function writeRequestBody(httpRequest, request, maxContinueTimeoutMs = MIN_WAIT_TIME) { - const headers = request.headers ?? {}; - const expect = headers["Expect"] || headers["expect"]; - let timeoutId = -1; - let hasError = false; - if (expect === "100-continue") { - await Promise.race([ - new Promise((resolve) => { - timeoutId = Number(setTimeout(resolve, Math.max(MIN_WAIT_TIME, maxContinueTimeoutMs))); - }), - new Promise((resolve) => { - httpRequest.on("continue", () => { - clearTimeout(timeoutId); - resolve(); - }); - httpRequest.on("error", () => { - hasError = true; - clearTimeout(timeoutId); - resolve(); - }); + var serializerMiddlewareOption = { + name: 'serializerMiddleware', + step: 'serialize', + tags: ['SERIALIZER'], + override: true + } + function getSerdePlugin(config, serializer, deserializer) { + return { + applyToStack: commandStack => { + commandStack.add( + deserializerMiddleware(config, deserializer), + deserializerMiddlewareOption + ) + commandStack.add( + serializerMiddleware(config, serializer), + serializerMiddlewareOption + ) + } + } + } + __name(getSerdePlugin, 'getSerdePlugin') + // Annotate the CommonJS export names for ESM import in node: + + 0 && 0 + + /***/ + }, + + /***/ 428: /***/ module => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + constructStack: () => constructStack }) - ]); - } - if (!hasError) { - writeBody(httpRequest, request.body); - } -} -__name(writeRequestBody, "writeRequestBody"); -function writeBody(httpRequest, body) { - if (body instanceof import_stream.Readable) { - body.pipe(httpRequest); - return; - } - if (body) { - if (Buffer.isBuffer(body) || typeof body === "string") { - httpRequest.end(body); - return; - } - const uint8 = body; - if (typeof uint8 === "object" && uint8.buffer && typeof uint8.byteOffset === "number" && typeof uint8.byteLength === "number") { - httpRequest.end(Buffer.from(uint8.buffer, uint8.byteOffset, uint8.byteLength)); - return; - } - httpRequest.end(Buffer.from(body)); - return; - } - httpRequest.end(); -} -__name(writeBody, "writeBody"); - -// src/node-http-handler.ts -var DEFAULT_REQUEST_TIMEOUT = 0; -var _NodeHttpHandler = class _NodeHttpHandler { - constructor(options) { - this.socketWarningTimestamp = 0; - // Node http handler is hard-coded to http/1.1: https://github.com/nodejs/node/blob/ff5664b83b89c55e4ab5d5f60068fb457f1f5872/lib/_http_server.js#L286 - this.metadata = { handlerProtocol: "http/1.1" }; - this.configProvider = new Promise((resolve, reject) => { - if (typeof options === "function") { - options().then((_options) => { - resolve(this.resolveDefaultConfig(_options)); - }).catch(reject); - } else { - resolve(this.resolveDefaultConfig(options)); + module.exports = __toCommonJS(src_exports) + + // src/MiddlewareStack.ts + var getAllAliases = /* @__PURE__ */ __name((name, aliases) => { + const _aliases = [] + if (name) { + _aliases.push(name) + } + if (aliases) { + for (const alias of aliases) { + _aliases.push(alias) + } + } + return _aliases + }, 'getAllAliases') + var getMiddlewareNameWithAliases = /* @__PURE__ */ __name( + (name, aliases) => { + return `${name || 'anonymous'}${aliases && aliases.length > 0 ? ` (a.k.a. ${aliases.join(',')})` : ''}` + }, + 'getMiddlewareNameWithAliases' + ) + var constructStack = /* @__PURE__ */ __name(() => { + let absoluteEntries = [] + let relativeEntries = [] + let identifyOnResolve = false + const entriesNameSet = /* @__PURE__ */ new Set() + const sort = /* @__PURE__ */ __name( + entries => + entries.sort( + (a, b) => + stepWeights[b.step] - stepWeights[a.step] || + priorityWeights[b.priority || 'normal'] - + priorityWeights[a.priority || 'normal'] + ), + 'sort' + ) + const removeByName = /* @__PURE__ */ __name(toRemove => { + let isRemoved = false + const filterCb = /* @__PURE__ */ __name(entry => { + const aliases = getAllAliases(entry.name, entry.aliases) + if (aliases.includes(toRemove)) { + isRemoved = true + for (const alias of aliases) { + entriesNameSet.delete(alias) + } + return false + } + return true + }, 'filterCb') + absoluteEntries = absoluteEntries.filter(filterCb) + relativeEntries = relativeEntries.filter(filterCb) + return isRemoved + }, 'removeByName') + const removeByReference = /* @__PURE__ */ __name(toRemove => { + let isRemoved = false + const filterCb = /* @__PURE__ */ __name(entry => { + if (entry.middleware === toRemove) { + isRemoved = true + for (const alias of getAllAliases(entry.name, entry.aliases)) { + entriesNameSet.delete(alias) + } + return false + } + return true + }, 'filterCb') + absoluteEntries = absoluteEntries.filter(filterCb) + relativeEntries = relativeEntries.filter(filterCb) + return isRemoved + }, 'removeByReference') + const cloneTo = /* @__PURE__ */ __name(toStack => { + absoluteEntries.forEach(entry => { + toStack.add(entry.middleware, { ...entry }) + }) + relativeEntries.forEach(entry => { + toStack.addRelativeTo(entry.middleware, { ...entry }) + }) + toStack.identifyOnResolve?.(stack.identifyOnResolve()) + return toStack + }, 'cloneTo') + const expandRelativeMiddlewareList = /* @__PURE__ */ __name(from => { + const expandedMiddlewareList = [] + from.before.forEach(entry => { + if (entry.before.length === 0 && entry.after.length === 0) { + expandedMiddlewareList.push(entry) + } else { + expandedMiddlewareList.push( + ...expandRelativeMiddlewareList(entry) + ) + } + }) + expandedMiddlewareList.push(from) + from.after.reverse().forEach(entry => { + if (entry.before.length === 0 && entry.after.length === 0) { + expandedMiddlewareList.push(entry) + } else { + expandedMiddlewareList.push( + ...expandRelativeMiddlewareList(entry) + ) + } + }) + return expandedMiddlewareList + }, 'expandRelativeMiddlewareList') + const getMiddlewareList = /* @__PURE__ */ __name((debug = false) => { + const normalizedAbsoluteEntries = [] + const normalizedRelativeEntries = [] + const normalizedEntriesNameMap = {} + absoluteEntries.forEach(entry => { + const normalizedEntry = { + ...entry, + before: [], + after: [] + } + for (const alias of getAllAliases( + normalizedEntry.name, + normalizedEntry.aliases + )) { + normalizedEntriesNameMap[alias] = normalizedEntry + } + normalizedAbsoluteEntries.push(normalizedEntry) + }) + relativeEntries.forEach(entry => { + const normalizedEntry = { + ...entry, + before: [], + after: [] + } + for (const alias of getAllAliases( + normalizedEntry.name, + normalizedEntry.aliases + )) { + normalizedEntriesNameMap[alias] = normalizedEntry + } + normalizedRelativeEntries.push(normalizedEntry) + }) + normalizedRelativeEntries.forEach(entry => { + if (entry.toMiddleware) { + const toMiddleware = normalizedEntriesNameMap[entry.toMiddleware] + if (toMiddleware === void 0) { + if (debug) { + return + } + throw new Error( + `${entry.toMiddleware} is not found when adding ${getMiddlewareNameWithAliases(entry.name, entry.aliases)} middleware ${entry.relation} ${entry.toMiddleware}` + ) + } + if (entry.relation === 'after') { + toMiddleware.after.push(entry) + } + if (entry.relation === 'before') { + toMiddleware.before.push(entry) + } + } + }) + const mainChain = sort(normalizedAbsoluteEntries) + .map(expandRelativeMiddlewareList) + .reduce((wholeList, expandedMiddlewareList) => { + wholeList.push(...expandedMiddlewareList) + return wholeList + }, []) + return mainChain + }, 'getMiddlewareList') + const stack = { + add: (middleware, options = {}) => { + const { name, override, aliases: _aliases } = options + const entry = { + step: 'initialize', + priority: 'normal', + middleware, + ...options + } + const aliases = getAllAliases(name, _aliases) + if (aliases.length > 0) { + if (aliases.some(alias => entriesNameSet.has(alias))) { + if (!override) + throw new Error( + `Duplicate middleware name '${getMiddlewareNameWithAliases(name, _aliases)}'` + ) + for (const alias of aliases) { + const toOverrideIndex = absoluteEntries.findIndex( + entry2 => + entry2.name === alias || + entry2.aliases?.some(a => a === alias) + ) + if (toOverrideIndex === -1) { + continue + } + const toOverride = absoluteEntries[toOverrideIndex] + if ( + toOverride.step !== entry.step || + entry.priority !== toOverride.priority + ) { + throw new Error( + `"${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.` + ) + } + absoluteEntries.splice(toOverrideIndex, 1) + } + } + for (const alias of aliases) { + entriesNameSet.add(alias) + } + } + absoluteEntries.push(entry) + }, + addRelativeTo: (middleware, options) => { + const { name, override, aliases: _aliases } = options + const entry = { + middleware, + ...options + } + const aliases = getAllAliases(name, _aliases) + if (aliases.length > 0) { + if (aliases.some(alias => entriesNameSet.has(alias))) { + if (!override) + throw new Error( + `Duplicate middleware name '${getMiddlewareNameWithAliases(name, _aliases)}'` + ) + for (const alias of aliases) { + const toOverrideIndex = relativeEntries.findIndex( + entry2 => + entry2.name === alias || + entry2.aliases?.some(a => a === alias) + ) + if (toOverrideIndex === -1) { + continue + } + const toOverride = relativeEntries[toOverrideIndex] + if ( + toOverride.toMiddleware !== entry.toMiddleware || + toOverride.relation !== entry.relation + ) { + throw new Error( + `"${getMiddlewareNameWithAliases(toOverride.name, toOverride.aliases)}" middleware ${toOverride.relation} "${toOverride.toMiddleware}" middleware cannot be overridden by "${getMiddlewareNameWithAliases(name, _aliases)}" middleware ${entry.relation} "${entry.toMiddleware}" middleware.` + ) + } + relativeEntries.splice(toOverrideIndex, 1) + } + } + for (const alias of aliases) { + entriesNameSet.add(alias) + } + } + relativeEntries.push(entry) + }, + clone: () => cloneTo(constructStack()), + use: plugin => { + plugin.applyToStack(stack) + }, + remove: toRemove => { + if (typeof toRemove === 'string') return removeByName(toRemove) + else return removeByReference(toRemove) + }, + removeByTag: toRemove => { + let isRemoved = false + const filterCb = /* @__PURE__ */ __name(entry => { + const { tags, name, aliases: _aliases } = entry + if (tags && tags.includes(toRemove)) { + const aliases = getAllAliases(name, _aliases) + for (const alias of aliases) { + entriesNameSet.delete(alias) + } + isRemoved = true + return false + } + return true + }, 'filterCb') + absoluteEntries = absoluteEntries.filter(filterCb) + relativeEntries = relativeEntries.filter(filterCb) + return isRemoved + }, + concat: from => { + const cloned = cloneTo(constructStack()) + cloned.use(from) + cloned.identifyOnResolve( + identifyOnResolve || + cloned.identifyOnResolve() || + (from.identifyOnResolve?.() ?? false) + ) + return cloned + }, + applyToStack: cloneTo, + identify: () => { + return getMiddlewareList(true).map(mw => { + const step = mw.step ?? mw.relation + ' ' + mw.toMiddleware + return ( + getMiddlewareNameWithAliases(mw.name, mw.aliases) + ' - ' + step + ) + }) + }, + identifyOnResolve(toggle) { + if (typeof toggle === 'boolean') identifyOnResolve = toggle + return identifyOnResolve + }, + resolve: (handler, context) => { + for (const middleware of getMiddlewareList() + .map(entry => entry.middleware) + .reverse()) { + handler = middleware(handler, context) + } + if (identifyOnResolve) { + console.log(stack.identify()) + } + return handler + } + } + return stack + }, 'constructStack') + var stepWeights = { + initialize: 5, + serialize: 4, + build: 3, + finalizeRequest: 2, + deserialize: 1 } - }); - } - /** - * @returns the input if it is an HttpHandler of any class, - * or instantiates a new instance of this handler. - */ - static create(instanceOrOptions) { - if (typeof (instanceOrOptions == null ? void 0 : instanceOrOptions.handle) === "function") { - return instanceOrOptions; - } - return new _NodeHttpHandler(instanceOrOptions); - } - /** - * @internal - * - * @param agent - http(s) agent in use by the NodeHttpHandler instance. - * @param socketWarningTimestamp - last socket usage check timestamp. - * @param logger - channel for the warning. - * @returns timestamp of last emitted warning. - */ - static checkSocketUsage(agent, socketWarningTimestamp, logger = console) { - var _a, _b, _c; - const { sockets, requests, maxSockets } = agent; - if (typeof maxSockets !== "number" || maxSockets === Infinity) { - return socketWarningTimestamp; - } - const interval = 15e3; - if (Date.now() - interval < socketWarningTimestamp) { - return socketWarningTimestamp; - } - if (sockets && requests) { - for (const origin in sockets) { - const socketsInUse = ((_a = sockets[origin]) == null ? void 0 : _a.length) ?? 0; - const requestsEnqueued = ((_b = requests[origin]) == null ? void 0 : _b.length) ?? 0; - if (socketsInUse >= maxSockets && requestsEnqueued >= 2 * maxSockets) { - (_c = logger == null ? void 0 : logger.warn) == null ? void 0 : _c.call( - logger, - `@smithy/node-http-handler:WARN - socket usage at capacity=${socketsInUse} and ${requestsEnqueued} additional requests are enqueued. -See https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html -or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.` - ); - return Date.now(); + var priorityWeights = { + high: 3, + normal: 2, + low: 1 + } + // Annotate the CommonJS export names for ESM import in node: + + 0 && 0 + + /***/ + }, + + /***/ 85650: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) } + return to } - } - return socketWarningTimestamp; - } - resolveDefaultConfig(options) { - const { requestTimeout, connectionTimeout, socketTimeout, httpAgent, httpsAgent } = options || {}; - const keepAlive = true; - const maxSockets = 50; - return { - connectionTimeout, - requestTimeout: requestTimeout ?? socketTimeout, - httpAgent: (() => { - if (httpAgent instanceof import_http.Agent || typeof (httpAgent == null ? void 0 : httpAgent.destroy) === "function") { - return httpAgent; - } - return new import_http.Agent({ keepAlive, maxSockets, ...httpAgent }); - })(), - httpsAgent: (() => { - if (httpsAgent instanceof import_https.Agent || typeof (httpsAgent == null ? void 0 : httpsAgent.destroy) === "function") { - return httpsAgent; - } - return new import_https.Agent({ keepAlive, maxSockets, ...httpsAgent }); - })(), - logger: console - }; - } - destroy() { - var _a, _b, _c, _d; - (_b = (_a = this.config) == null ? void 0 : _a.httpAgent) == null ? void 0 : _b.destroy(); - (_d = (_c = this.config) == null ? void 0 : _c.httpsAgent) == null ? void 0 : _d.destroy(); - } - async handle(request, { abortSignal } = {}) { - if (!this.config) { - this.config = await this.configProvider; - } - return new Promise((_resolve, _reject) => { - let writeRequestBodyPromise = void 0; - const timeouts = []; - const resolve = /* @__PURE__ */ __name(async (arg) => { - await writeRequestBodyPromise; - timeouts.forEach(clearTimeout); - _resolve(arg); - }, "resolve"); - const reject = /* @__PURE__ */ __name(async (arg) => { - await writeRequestBodyPromise; - timeouts.forEach(clearTimeout); - _reject(arg); - }, "reject"); - if (!this.config) { - throw new Error("Node HTTP request handler config is not resolved"); - } - if (abortSignal == null ? void 0 : abortSignal.aborted) { - const abortError = new Error("Request aborted"); - abortError.name = "AbortError"; - reject(abortError); - return; - } - const isSSL = request.protocol === "https:"; - const agent = isSSL ? this.config.httpsAgent : this.config.httpAgent; - timeouts.push( - setTimeout( - () => { - this.socketWarningTimestamp = _NodeHttpHandler.checkSocketUsage( - agent, - this.socketWarningTimestamp, - this.config.logger - ); + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + loadConfig: () => loadConfig + }) + module.exports = __toCommonJS(src_exports) + + // src/configLoader.ts + + // src/fromEnv.ts + var import_property_provider = __nccwpck_require__(51005) + + // src/getSelectorName.ts + function getSelectorName(functionString) { + try { + const constants = new Set( + Array.from(functionString.match(/([A-Z_]){3,}/g) ?? []) + ) + constants.delete('CONFIG') + constants.delete('CONFIG_PREFIX_SEPARATOR') + constants.delete('ENV') + return [...constants].join(', ') + } catch (e) { + return functionString + } + } + __name(getSelectorName, 'getSelectorName') + + // src/fromEnv.ts + var fromEnv = /* @__PURE__ */ __name( + (envVarSelector, logger) => async () => { + try { + const config = envVarSelector(process.env) + if (config === void 0) { + throw new Error() + } + return config + } catch (e) { + throw new import_property_provider.CredentialsProviderError( + e.message || + `Not found in ENV: ${getSelectorName(envVarSelector.toString())}`, + { logger } + ) + } + }, + 'fromEnv' + ) + + // src/fromSharedConfigFiles.ts + + var import_shared_ini_file_loader = __nccwpck_require__(28586) + var fromSharedConfigFiles = /* @__PURE__ */ __name( + (configSelector, { preferredFile = 'config', ...init } = {}) => + async () => { + const profile = (0, import_shared_ini_file_loader.getProfileName)( + init + ) + const { configFile, credentialsFile } = await (0, + import_shared_ini_file_loader.loadSharedConfigFiles)(init) + const profileFromCredentials = credentialsFile[profile] || {} + const profileFromConfig = configFile[profile] || {} + const mergedProfile = + preferredFile === 'config' + ? { ...profileFromCredentials, ...profileFromConfig } + : { ...profileFromConfig, ...profileFromCredentials } + try { + const cfgFile = + preferredFile === 'config' ? configFile : credentialsFile + const configValue = configSelector(mergedProfile, cfgFile) + if (configValue === void 0) { + throw new Error() + } + return configValue + } catch (e) { + throw new import_property_provider.CredentialsProviderError( + e.message || + `Not found in config files w/ profile [${profile}]: ${getSelectorName(configSelector.toString())}`, + { logger: init.logger } + ) + } }, - this.config.socketAcquisitionWarningTimeout ?? (this.config.requestTimeout ?? 2e3) + (this.config.connectionTimeout ?? 1e3) - ) - ); - const queryString = (0, import_querystring_builder.buildQueryString)(request.query || {}); - let auth = void 0; - if (request.username != null || request.password != null) { - const username = request.username ?? ""; - const password = request.password ?? ""; - auth = `${username}:${password}`; - } - let path = request.path; - if (queryString) { - path += `?${queryString}`; - } - if (request.fragment) { - path += `#${request.fragment}`; - } - const nodeHttpsOptions = { - headers: request.headers, - host: request.hostname, - method: request.method, - path, - port: request.port, - agent, - auth - }; - const requestFunc = isSSL ? import_https.request : import_http.request; - const req = requestFunc(nodeHttpsOptions, (res) => { - const httpResponse = new import_protocol_http.HttpResponse({ - statusCode: res.statusCode || -1, - reason: res.statusMessage, - headers: getTransformedHeaders(res.headers), - body: res - }); - resolve({ response: httpResponse }); - }); - req.on("error", (err) => { - if (NODEJS_TIMEOUT_ERROR_CODES.includes(err.code)) { - reject(Object.assign(err, { name: "TimeoutError" })); - } else { - reject(err); - } - }); - if (abortSignal) { - const onAbort = /* @__PURE__ */ __name(() => { - req.destroy(); - const abortError = new Error("Request aborted"); - abortError.name = "AbortError"; - reject(abortError); - }, "onAbort"); - if (typeof abortSignal.addEventListener === "function") { - const signal = abortSignal; - signal.addEventListener("abort", onAbort, { once: true }); - req.once("close", () => signal.removeEventListener("abort", onAbort)); - } else { - abortSignal.onabort = onAbort; - } - } - timeouts.push(setConnectionTimeout(req, reject, this.config.connectionTimeout)); - timeouts.push(setSocketTimeout(req, reject, this.config.requestTimeout)); - const httpAgent = nodeHttpsOptions.agent; - if (typeof httpAgent === "object" && "keepAlive" in httpAgent) { - timeouts.push( - setSocketKeepAlive(req, { - // @ts-expect-error keepAlive is not public on httpAgent. - keepAlive: httpAgent.keepAlive, - // @ts-expect-error keepAliveMsecs is not public on httpAgent. - keepAliveMsecs: httpAgent.keepAliveMsecs - }) - ); - } - writeRequestBodyPromise = writeRequestBody(req, request, this.config.requestTimeout).catch((e) => { - timeouts.forEach(clearTimeout); - return _reject(e); - }); - }); - } - updateHttpClientConfig(key, value) { - this.config = void 0; - this.configProvider = this.configProvider.then((config) => { - return { - ...config, - [key]: value - }; - }); - } - httpHandlerConfigs() { - return this.config ?? {}; - } -}; -__name(_NodeHttpHandler, "NodeHttpHandler"); -var NodeHttpHandler = _NodeHttpHandler; + 'fromSharedConfigFiles' + ) -// src/node-http2-handler.ts + // src/fromStatic.ts + var isFunction = /* @__PURE__ */ __name( + func => typeof func === 'function', + 'isFunction' + ) + var fromStatic = /* @__PURE__ */ __name( + defaultValue => + isFunction(defaultValue) + ? async () => await defaultValue() + : (0, import_property_provider.fromStatic)(defaultValue), + 'fromStatic' + ) -var import_http22 = __nccwpck_require__(85158); + // src/configLoader.ts + var loadConfig = /* @__PURE__ */ __name( + ( + { + environmentVariableSelector, + configFileSelector, + default: defaultValue + }, + configuration = {} + ) => + (0, import_property_provider.memoize)( + (0, import_property_provider.chain)( + fromEnv(environmentVariableSelector), + fromSharedConfigFiles(configFileSelector, configuration), + fromStatic(defaultValue) + ) + ), + 'loadConfig' + ) + // Annotate the CommonJS export names for ESM import in node: -// src/node-http2-connection-manager.ts -var import_http2 = __toESM(__nccwpck_require__(85158)); + 0 && 0 -// src/node-http2-connection-pool.ts -var _NodeHttp2ConnectionPool = class _NodeHttp2ConnectionPool { - constructor(sessions) { - this.sessions = []; - this.sessions = sessions ?? []; - } - poll() { - if (this.sessions.length > 0) { - return this.sessions.shift(); - } - } - offerLast(session) { - this.sessions.push(session); - } - contains(session) { - return this.sessions.includes(session); - } - remove(session) { - this.sessions = this.sessions.filter((s) => s !== session); - } - [Symbol.iterator]() { - return this.sessions[Symbol.iterator](); - } - destroy(connection) { - for (const session of this.sessions) { - if (session === connection) { - if (!session.destroyed) { - session.destroy(); + /***/ + }, + + /***/ 96798: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __create = Object.create + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __getProtoOf = Object.getPrototypeOf + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toESM = (mod, isNodeMode, target) => ( + (target = mod != null ? __create(__getProtoOf(mod)) : {}), + __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule + ? __defProp(target, 'default', { value: mod, enumerable: true }) + : target, + mod + ) + ) + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + DEFAULT_REQUEST_TIMEOUT: () => DEFAULT_REQUEST_TIMEOUT, + NodeHttp2Handler: () => NodeHttp2Handler, + NodeHttpHandler: () => NodeHttpHandler, + streamCollector: () => streamCollector + }) + module.exports = __toCommonJS(src_exports) + + // src/node-http-handler.ts + var import_protocol_http = __nccwpck_require__(18241) + var import_querystring_builder = __nccwpck_require__(39025) + var import_http = __nccwpck_require__(13685) + var import_https = __nccwpck_require__(95687) + + // src/constants.ts + var NODEJS_TIMEOUT_ERROR_CODES = ['ECONNRESET', 'EPIPE', 'ETIMEDOUT'] + + // src/get-transformed-headers.ts + var getTransformedHeaders = /* @__PURE__ */ __name(headers => { + const transformedHeaders = {} + for (const name of Object.keys(headers)) { + const headerValues = headers[name] + transformedHeaders[name] = Array.isArray(headerValues) + ? headerValues.join(',') + : headerValues + } + return transformedHeaders + }, 'getTransformedHeaders') + + // src/timing.ts + var timing = { + setTimeout: (cb, ms) => setTimeout(cb, ms), + clearTimeout: timeoutId => clearTimeout(timeoutId) + } + + // src/set-connection-timeout.ts + var DEFER_EVENT_LISTENER_TIME = 1e3 + var setConnectionTimeout = /* @__PURE__ */ __name( + (request, reject, timeoutInMs = 0) => { + if (!timeoutInMs) { + return -1 + } + const registerTimeout = /* @__PURE__ */ __name(offset => { + const timeoutId = timing.setTimeout(() => { + request.destroy() + reject( + Object.assign( + new Error( + `Socket timed out without establishing a connection within ${timeoutInMs} ms` + ), + { + name: 'TimeoutError' + } + ) + ) + }, timeoutInMs - offset) + const doWithSocket = /* @__PURE__ */ __name(socket => { + if (socket?.connecting) { + socket.on('connect', () => { + timing.clearTimeout(timeoutId) + }) + } else { + timing.clearTimeout(timeoutId) + } + }, 'doWithSocket') + if (request.socket) { + doWithSocket(request.socket) + } else { + request.on('socket', doWithSocket) + } + }, 'registerTimeout') + if (timeoutInMs < 2e3) { + registerTimeout(0) + return 0 + } + return timing.setTimeout( + registerTimeout.bind(null, DEFER_EVENT_LISTENER_TIME), + DEFER_EVENT_LISTENER_TIME + ) + }, + 'setConnectionTimeout' + ) + + // src/set-socket-keep-alive.ts + var DEFER_EVENT_LISTENER_TIME2 = 3e3 + var setSocketKeepAlive = /* @__PURE__ */ __name( + ( + request, + { keepAlive, keepAliveMsecs }, + deferTimeMs = DEFER_EVENT_LISTENER_TIME2 + ) => { + if (keepAlive !== true) { + return -1 + } + const registerListener = /* @__PURE__ */ __name(() => { + if (request.socket) { + request.socket.setKeepAlive(keepAlive, keepAliveMsecs || 0) + } else { + request.on('socket', socket => { + socket.setKeepAlive(keepAlive, keepAliveMsecs || 0) + }) + } + }, 'registerListener') + if (deferTimeMs === 0) { + registerListener() + return 0 + } + return timing.setTimeout(registerListener, deferTimeMs) + }, + 'setSocketKeepAlive' + ) + + // src/set-socket-timeout.ts + var DEFER_EVENT_LISTENER_TIME3 = 3e3 + var setSocketTimeout = /* @__PURE__ */ __name( + (request, reject, timeoutInMs = DEFAULT_REQUEST_TIMEOUT) => { + const registerTimeout = /* @__PURE__ */ __name(offset => { + const timeout = timeoutInMs - offset + const onTimeout = /* @__PURE__ */ __name(() => { + request.destroy() + reject( + Object.assign( + new Error(`Connection timed out after ${timeoutInMs} ms`), + { name: 'TimeoutError' } + ) + ) + }, 'onTimeout') + if (request.socket) { + request.socket.setTimeout(timeout, onTimeout) + request.on('close', () => + request.socket?.removeListener('timeout', onTimeout) + ) + } else { + request.setTimeout(timeout, onTimeout) + } + }, 'registerTimeout') + if (0 < timeoutInMs && timeoutInMs < 6e3) { + registerTimeout(0) + return 0 + } + return timing.setTimeout( + registerTimeout.bind( + null, + timeoutInMs === 0 ? 0 : DEFER_EVENT_LISTENER_TIME3 + ), + DEFER_EVENT_LISTENER_TIME3 + ) + }, + 'setSocketTimeout' + ) + + // src/write-request-body.ts + var import_stream = __nccwpck_require__(12781) + var MIN_WAIT_TIME = 6e3 + async function writeRequestBody( + httpRequest, + request, + maxContinueTimeoutMs = MIN_WAIT_TIME + ) { + const headers = request.headers ?? {} + const expect = headers['Expect'] || headers['expect'] + let timeoutId = -1 + let sendBody = true + if (expect === '100-continue') { + sendBody = await Promise.race([ + new Promise(resolve => { + timeoutId = Number( + timing.setTimeout( + () => resolve(true), + Math.max(MIN_WAIT_TIME, maxContinueTimeoutMs) + ) + ) + }), + new Promise(resolve => { + httpRequest.on('continue', () => { + timing.clearTimeout(timeoutId) + resolve(true) + }) + httpRequest.on('response', () => { + timing.clearTimeout(timeoutId) + resolve(false) + }) + httpRequest.on('error', () => { + timing.clearTimeout(timeoutId) + resolve(false) + }) + }) + ]) + } + if (sendBody) { + writeBody(httpRequest, request.body) + } + } + __name(writeRequestBody, 'writeRequestBody') + function writeBody(httpRequest, body) { + if (body instanceof import_stream.Readable) { + body.pipe(httpRequest) + return + } + if (body) { + if (Buffer.isBuffer(body) || typeof body === 'string') { + httpRequest.end(body) + return + } + const uint8 = body + if ( + typeof uint8 === 'object' && + uint8.buffer && + typeof uint8.byteOffset === 'number' && + typeof uint8.byteLength === 'number' + ) { + httpRequest.end( + Buffer.from(uint8.buffer, uint8.byteOffset, uint8.byteLength) + ) + return + } + httpRequest.end(Buffer.from(body)) + return + } + httpRequest.end() + } + __name(writeBody, 'writeBody') + + // src/node-http-handler.ts + var DEFAULT_REQUEST_TIMEOUT = 0 + var NodeHttpHandler = class _NodeHttpHandler { + constructor(options) { + this.socketWarningTimestamp = 0 + // Node http handler is hard-coded to http/1.1: https://github.com/nodejs/node/blob/ff5664b83b89c55e4ab5d5f60068fb457f1f5872/lib/_http_server.js#L286 + this.metadata = { handlerProtocol: 'http/1.1' } + this.configProvider = new Promise((resolve, reject) => { + if (typeof options === 'function') { + options() + .then(_options => { + resolve(this.resolveDefaultConfig(_options)) + }) + .catch(reject) + } else { + resolve(this.resolveDefaultConfig(options)) + } + }) + } + static { + __name(this, 'NodeHttpHandler') + } + /** + * @returns the input if it is an HttpHandler of any class, + * or instantiates a new instance of this handler. + */ + static create(instanceOrOptions) { + if (typeof instanceOrOptions?.handle === 'function') { + return instanceOrOptions + } + return new _NodeHttpHandler(instanceOrOptions) + } + /** + * @internal + * + * @param agent - http(s) agent in use by the NodeHttpHandler instance. + * @param socketWarningTimestamp - last socket usage check timestamp. + * @param logger - channel for the warning. + * @returns timestamp of last emitted warning. + */ + static checkSocketUsage( + agent, + socketWarningTimestamp, + logger = console + ) { + const { sockets, requests, maxSockets } = agent + if (typeof maxSockets !== 'number' || maxSockets === Infinity) { + return socketWarningTimestamp + } + const interval = 15e3 + if (Date.now() - interval < socketWarningTimestamp) { + return socketWarningTimestamp + } + if (sockets && requests) { + for (const origin in sockets) { + const socketsInUse = sockets[origin]?.length ?? 0 + const requestsEnqueued = requests[origin]?.length ?? 0 + if ( + socketsInUse >= maxSockets && + requestsEnqueued >= 2 * maxSockets + ) { + logger?.warn?.( + `@smithy/node-http-handler:WARN - socket usage at capacity=${socketsInUse} and ${requestsEnqueued} additional requests are enqueued. +See https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html +or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.` + ) + return Date.now() + } + } + } + return socketWarningTimestamp + } + resolveDefaultConfig(options) { + const { + requestTimeout, + connectionTimeout, + socketTimeout, + socketAcquisitionWarningTimeout, + httpAgent, + httpsAgent + } = options || {} + const keepAlive = true + const maxSockets = 50 + return { + connectionTimeout, + requestTimeout: requestTimeout ?? socketTimeout, + socketAcquisitionWarningTimeout, + httpAgent: (() => { + if ( + httpAgent instanceof import_http.Agent || + typeof httpAgent?.destroy === 'function' + ) { + return httpAgent + } + return new import_http.Agent({ + keepAlive, + maxSockets, + ...httpAgent + }) + })(), + httpsAgent: (() => { + if ( + httpsAgent instanceof import_https.Agent || + typeof httpsAgent?.destroy === 'function' + ) { + return httpsAgent + } + return new import_https.Agent({ + keepAlive, + maxSockets, + ...httpsAgent + }) + })(), + logger: console + } + } + destroy() { + this.config?.httpAgent?.destroy() + this.config?.httpsAgent?.destroy() + } + async handle(request, { abortSignal } = {}) { + if (!this.config) { + this.config = await this.configProvider + } + return new Promise((_resolve, _reject) => { + let writeRequestBodyPromise = void 0 + const timeouts = [] + const resolve = /* @__PURE__ */ __name(async arg => { + await writeRequestBodyPromise + timeouts.forEach(timing.clearTimeout) + _resolve(arg) + }, 'resolve') + const reject = /* @__PURE__ */ __name(async arg => { + await writeRequestBodyPromise + timeouts.forEach(timing.clearTimeout) + _reject(arg) + }, 'reject') + if (!this.config) { + throw new Error( + 'Node HTTP request handler config is not resolved' + ) + } + if (abortSignal?.aborted) { + const abortError = new Error('Request aborted') + abortError.name = 'AbortError' + reject(abortError) + return + } + const isSSL = request.protocol === 'https:' + const agent = isSSL ? this.config.httpsAgent : this.config.httpAgent + timeouts.push( + timing.setTimeout( + () => { + this.socketWarningTimestamp = + _NodeHttpHandler.checkSocketUsage( + agent, + this.socketWarningTimestamp, + this.config.logger + ) + }, + this.config.socketAcquisitionWarningTimeout ?? + (this.config.requestTimeout ?? 2e3) + + (this.config.connectionTimeout ?? 1e3) + ) + ) + const queryString = (0, + import_querystring_builder.buildQueryString)(request.query || {}) + let auth = void 0 + if (request.username != null || request.password != null) { + const username = request.username ?? '' + const password = request.password ?? '' + auth = `${username}:${password}` + } + let path = request.path + if (queryString) { + path += `?${queryString}` + } + if (request.fragment) { + path += `#${request.fragment}` + } + let hostname = request.hostname ?? '' + if (hostname[0] === '[' && hostname.endsWith(']')) { + hostname = request.hostname.slice(1, -1) + } else { + hostname = request.hostname + } + const nodeHttpsOptions = { + headers: request.headers, + host: hostname, + method: request.method, + path, + port: request.port, + agent, + auth + } + const requestFunc = isSSL + ? import_https.request + : import_http.request + const req = requestFunc(nodeHttpsOptions, res => { + const httpResponse = new import_protocol_http.HttpResponse({ + statusCode: res.statusCode || -1, + reason: res.statusMessage, + headers: getTransformedHeaders(res.headers), + body: res + }) + resolve({ response: httpResponse }) + }) + req.on('error', err => { + if (NODEJS_TIMEOUT_ERROR_CODES.includes(err.code)) { + reject(Object.assign(err, { name: 'TimeoutError' })) + } else { + reject(err) + } + }) + if (abortSignal) { + const onAbort = /* @__PURE__ */ __name(() => { + req.destroy() + const abortError = new Error('Request aborted') + abortError.name = 'AbortError' + reject(abortError) + }, 'onAbort') + if (typeof abortSignal.addEventListener === 'function') { + const signal = abortSignal + signal.addEventListener('abort', onAbort, { once: true }) + req.once('close', () => + signal.removeEventListener('abort', onAbort) + ) + } else { + abortSignal.onabort = onAbort + } + } + timeouts.push( + setConnectionTimeout(req, reject, this.config.connectionTimeout) + ) + timeouts.push( + setSocketTimeout(req, reject, this.config.requestTimeout) + ) + const httpAgent = nodeHttpsOptions.agent + if (typeof httpAgent === 'object' && 'keepAlive' in httpAgent) { + timeouts.push( + setSocketKeepAlive(req, { + // @ts-expect-error keepAlive is not public on httpAgent. + keepAlive: httpAgent.keepAlive, + // @ts-expect-error keepAliveMsecs is not public on httpAgent. + keepAliveMsecs: httpAgent.keepAliveMsecs + }) + ) + } + writeRequestBodyPromise = writeRequestBody( + req, + request, + this.config.requestTimeout + ).catch(e => { + timeouts.forEach(timing.clearTimeout) + return _reject(e) + }) + }) } - } - } - } -}; -__name(_NodeHttp2ConnectionPool, "NodeHttp2ConnectionPool"); -var NodeHttp2ConnectionPool = _NodeHttp2ConnectionPool; - -// src/node-http2-connection-manager.ts -var _NodeHttp2ConnectionManager = class _NodeHttp2ConnectionManager { - constructor(config) { - this.sessionCache = /* @__PURE__ */ new Map(); - this.config = config; - if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) { - throw new RangeError("maxConcurrency must be greater than zero."); - } - } - lease(requestContext, connectionConfiguration) { - const url = this.getUrlString(requestContext); - const existingPool = this.sessionCache.get(url); - if (existingPool) { - const existingSession = existingPool.poll(); - if (existingSession && !this.config.disableConcurrency) { - return existingSession; - } - } - const session = import_http2.default.connect(url); - if (this.config.maxConcurrency) { - session.settings({ maxConcurrentStreams: this.config.maxConcurrency }, (err) => { - if (err) { - throw new Error( - "Fail to set maxConcurrentStreams to " + this.config.maxConcurrency + "when creating new session for " + requestContext.destination.toString() - ); + updateHttpClientConfig(key, value) { + this.config = void 0 + this.configProvider = this.configProvider.then(config => { + return { + ...config, + [key]: value + } + }) } - }); - } - session.unref(); - const destroySessionCb = /* @__PURE__ */ __name(() => { - session.destroy(); - this.deleteSession(url, session); - }, "destroySessionCb"); - session.on("goaway", destroySessionCb); - session.on("error", destroySessionCb); - session.on("frameError", destroySessionCb); - session.on("close", () => this.deleteSession(url, session)); - if (connectionConfiguration.requestTimeout) { - session.setTimeout(connectionConfiguration.requestTimeout, destroySessionCb); - } - const connectionPool = this.sessionCache.get(url) || new NodeHttp2ConnectionPool(); - connectionPool.offerLast(session); - this.sessionCache.set(url, connectionPool); - return session; - } - /** - * Delete a session from the connection pool. - * @param authority The authority of the session to delete. - * @param session The session to delete. - */ - deleteSession(authority, session) { - const existingConnectionPool = this.sessionCache.get(authority); - if (!existingConnectionPool) { - return; - } - if (!existingConnectionPool.contains(session)) { - return; - } - existingConnectionPool.remove(session); - this.sessionCache.set(authority, existingConnectionPool); - } - release(requestContext, session) { - var _a; - const cacheKey = this.getUrlString(requestContext); - (_a = this.sessionCache.get(cacheKey)) == null ? void 0 : _a.offerLast(session); - } - destroy() { - for (const [key, connectionPool] of this.sessionCache) { - for (const session of connectionPool) { - if (!session.destroyed) { - session.destroy(); + httpHandlerConfigs() { + return this.config ?? {} } - connectionPool.remove(session); - } - this.sessionCache.delete(key); - } - } - setMaxConcurrentStreams(maxConcurrentStreams) { - if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) { - throw new RangeError("maxConcurrentStreams must be greater than zero."); - } - this.config.maxConcurrency = maxConcurrentStreams; - } - setDisableConcurrentStreams(disableConcurrentStreams) { - this.config.disableConcurrency = disableConcurrentStreams; - } - getUrlString(request) { - return request.destination.toString(); - } -}; -__name(_NodeHttp2ConnectionManager, "NodeHttp2ConnectionManager"); -var NodeHttp2ConnectionManager = _NodeHttp2ConnectionManager; - -// src/node-http2-handler.ts -var _NodeHttp2Handler = class _NodeHttp2Handler { - constructor(options) { - this.metadata = { handlerProtocol: "h2" }; - this.connectionManager = new NodeHttp2ConnectionManager({}); - this.configProvider = new Promise((resolve, reject) => { - if (typeof options === "function") { - options().then((opts) => { - resolve(opts || {}); - }).catch(reject); - } else { - resolve(options || {}); - } - }); - } - /** - * @returns the input if it is an HttpHandler of any class, - * or instantiates a new instance of this handler. - */ - static create(instanceOrOptions) { - if (typeof (instanceOrOptions == null ? void 0 : instanceOrOptions.handle) === "function") { - return instanceOrOptions; - } - return new _NodeHttp2Handler(instanceOrOptions); - } - destroy() { - this.connectionManager.destroy(); - } - async handle(request, { abortSignal } = {}) { - if (!this.config) { - this.config = await this.configProvider; - this.connectionManager.setDisableConcurrentStreams(this.config.disableConcurrentStreams || false); - if (this.config.maxConcurrentStreams) { - this.connectionManager.setMaxConcurrentStreams(this.config.maxConcurrentStreams); } - } - const { requestTimeout, disableConcurrentStreams } = this.config; - return new Promise((_resolve, _reject) => { - var _a; - let fulfilled = false; - let writeRequestBodyPromise = void 0; - const resolve = /* @__PURE__ */ __name(async (arg) => { - await writeRequestBodyPromise; - _resolve(arg); - }, "resolve"); - const reject = /* @__PURE__ */ __name(async (arg) => { - await writeRequestBodyPromise; - _reject(arg); - }, "reject"); - if (abortSignal == null ? void 0 : abortSignal.aborted) { - fulfilled = true; - const abortError = new Error("Request aborted"); - abortError.name = "AbortError"; - reject(abortError); - return; - } - const { hostname, method, port, protocol, query } = request; - let auth = ""; - if (request.username != null || request.password != null) { - const username = request.username ?? ""; - const password = request.password ?? ""; - auth = `${username}:${password}@`; - } - const authority = `${protocol}//${auth}${hostname}${port ? `:${port}` : ""}`; - const requestContext = { destination: new URL(authority) }; - const session = this.connectionManager.lease(requestContext, { - requestTimeout: (_a = this.config) == null ? void 0 : _a.sessionTimeout, - disableConcurrentStreams: disableConcurrentStreams || false - }); - const rejectWithDestroy = /* @__PURE__ */ __name((err) => { - if (disableConcurrentStreams) { - this.destroySession(session); - } - fulfilled = true; - reject(err); - }, "rejectWithDestroy"); - const queryString = (0, import_querystring_builder.buildQueryString)(query || {}); - let path = request.path; - if (queryString) { - path += `?${queryString}`; - } - if (request.fragment) { - path += `#${request.fragment}`; - } - const req = session.request({ - ...request.headers, - [import_http22.constants.HTTP2_HEADER_PATH]: path, - [import_http22.constants.HTTP2_HEADER_METHOD]: method - }); - session.ref(); - req.on("response", (headers) => { - const httpResponse = new import_protocol_http.HttpResponse({ - statusCode: headers[":status"] || -1, - headers: getTransformedHeaders(headers), - body: req - }); - fulfilled = true; - resolve({ response: httpResponse }); - if (disableConcurrentStreams) { - session.close(); - this.connectionManager.deleteSession(authority, session); - } - }); - if (requestTimeout) { - req.setTimeout(requestTimeout, () => { - req.close(); - const timeoutError = new Error(`Stream timed out because of no activity for ${requestTimeout} ms`); - timeoutError.name = "TimeoutError"; - rejectWithDestroy(timeoutError); - }); - } - if (abortSignal) { - const onAbort = /* @__PURE__ */ __name(() => { - req.close(); - const abortError = new Error("Request aborted"); - abortError.name = "AbortError"; - rejectWithDestroy(abortError); - }, "onAbort"); - if (typeof abortSignal.addEventListener === "function") { - const signal = abortSignal; - signal.addEventListener("abort", onAbort, { once: true }); - req.once("close", () => signal.removeEventListener("abort", onAbort)); - } else { - abortSignal.onabort = onAbort; - } - } - req.on("frameError", (type, code, id) => { - rejectWithDestroy(new Error(`Frame type id ${type} in stream id ${id} has failed with code ${code}.`)); - }); - req.on("error", rejectWithDestroy); - req.on("aborted", () => { - rejectWithDestroy( - new Error(`HTTP/2 stream is abnormally aborted in mid-communication with result code ${req.rstCode}.`) - ); - }); - req.on("close", () => { - session.unref(); - if (disableConcurrentStreams) { - session.destroy(); - } - if (!fulfilled) { - rejectWithDestroy(new Error("Unexpected error: http2 request did not get a response")); - } - }); - writeRequestBodyPromise = writeRequestBody(req, request, requestTimeout); - }); - } - updateHttpClientConfig(key, value) { - this.config = void 0; - this.configProvider = this.configProvider.then((config) => { - return { - ...config, - [key]: value - }; - }); - } - httpHandlerConfigs() { - return this.config ?? {}; - } - /** - * Destroys a session. - * @param session The session to destroy. - */ - destroySession(session) { - if (!session.destroyed) { - session.destroy(); - } - } -}; -__name(_NodeHttp2Handler, "NodeHttp2Handler"); -var NodeHttp2Handler = _NodeHttp2Handler; - -// src/stream-collector/collector.ts - -var _Collector = class _Collector extends import_stream.Writable { - constructor() { - super(...arguments); - this.bufferedBytes = []; - } - _write(chunk, encoding, callback) { - this.bufferedBytes.push(chunk); - callback(); - } -}; -__name(_Collector, "Collector"); -var Collector = _Collector; - -// src/stream-collector/index.ts -var streamCollector = /* @__PURE__ */ __name((stream) => { - if (isReadableStreamInstance(stream)) { - return collectReadableStream(stream); - } - return new Promise((resolve, reject) => { - const collector = new Collector(); - stream.pipe(collector); - stream.on("error", (err) => { - collector.end(); - reject(err); - }); - collector.on("error", reject); - collector.on("finish", function() { - const bytes = new Uint8Array(Buffer.concat(this.bufferedBytes)); - resolve(bytes); - }); - }); -}, "streamCollector"); -var isReadableStreamInstance = /* @__PURE__ */ __name((stream) => typeof ReadableStream === "function" && stream instanceof ReadableStream, "isReadableStreamInstance"); -async function collectReadableStream(stream) { - const chunks = []; - const reader = stream.getReader(); - let isDone = false; - let length = 0; - while (!isDone) { - const { done, value } = await reader.read(); - if (value) { - chunks.push(value); - length += value.length; - } - isDone = done; - } - const collected = new Uint8Array(length); - let offset = 0; - for (const chunk of chunks) { - collected.set(chunk, offset); - offset += chunk.length; - } - return collected; -} -__name(collectReadableStream, "collectReadableStream"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 59963: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -const tslib_1 = __nccwpck_require__(4351); -tslib_1.__exportStar(__nccwpck_require__(2825), exports); -tslib_1.__exportStar(__nccwpck_require__(27862), exports); -tslib_1.__exportStar(__nccwpck_require__(50785), exports); - - -/***/ }), - -/***/ 2825: -/***/ ((module) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/submodules/client/index.ts -var client_exports = {}; -__export(client_exports, { - emitWarningIfUnsupportedVersion: () => emitWarningIfUnsupportedVersion -}); -module.exports = __toCommonJS(client_exports); - -// src/submodules/client/emitWarningIfUnsupportedVersion.ts -var warningEmitted = false; -var emitWarningIfUnsupportedVersion = /* @__PURE__ */ __name((version) => { - if (version && !warningEmitted && parseInt(version.substring(1, version.indexOf("."))) < 18) { - warningEmitted = true; - process.emitWarning( - `NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will -no longer support Node.js 16.x on January 6, 2025. + // src/node-http2-handler.ts -To continue receiving updates to AWS services, bug fixes, and security -updates please upgrade to a supported Node.js LTS version. + var import_http22 = __nccwpck_require__(85158) -More information can be found at: https://a.co/74kJMmI` - ); - } -}, "emitWarningIfUnsupportedVersion"); -// Annotate the CommonJS export names for ESM import in node: -0 && (0); - - -/***/ }), - -/***/ 27862: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/submodules/httpAuthSchemes/index.ts -var httpAuthSchemes_exports = {}; -__export(httpAuthSchemes_exports, { - AWSSDKSigV4Signer: () => AWSSDKSigV4Signer, - AwsSdkSigV4ASigner: () => AwsSdkSigV4ASigner, - AwsSdkSigV4Signer: () => AwsSdkSigV4Signer, - NODE_SIGV4A_CONFIG_OPTIONS: () => NODE_SIGV4A_CONFIG_OPTIONS, - resolveAWSSDKSigV4Config: () => resolveAWSSDKSigV4Config, - resolveAwsSdkSigV4AConfig: () => resolveAwsSdkSigV4AConfig, - resolveAwsSdkSigV4Config: () => resolveAwsSdkSigV4Config, - validateSigningProperties: () => validateSigningProperties -}); -module.exports = __toCommonJS(httpAuthSchemes_exports); - -// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts -var import_protocol_http2 = __nccwpck_require__(64418); - -// src/submodules/httpAuthSchemes/utils/getDateHeader.ts -var import_protocol_http = __nccwpck_require__(64418); -var getDateHeader = /* @__PURE__ */ __name((response) => { - var _a, _b; - 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; -}, "getDateHeader"); - -// src/submodules/httpAuthSchemes/utils/getSkewCorrectedDate.ts -var getSkewCorrectedDate = /* @__PURE__ */ __name((systemClockOffset) => new Date(Date.now() + systemClockOffset), "getSkewCorrectedDate"); - -// src/submodules/httpAuthSchemes/utils/isClockSkewed.ts -var isClockSkewed = /* @__PURE__ */ __name((clockTime, systemClockOffset) => Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - clockTime) >= 3e5, "isClockSkewed"); - -// src/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.ts -var getUpdatedSystemClockOffset = /* @__PURE__ */ __name((clockTime, currentSystemClockOffset) => { - const clockTimeInMs = Date.parse(clockTime); - if (isClockSkewed(clockTimeInMs, currentSystemClockOffset)) { - return clockTimeInMs - Date.now(); - } - return currentSystemClockOffset; -}, "getUpdatedSystemClockOffset"); + // src/node-http2-connection-manager.ts + var import_http2 = __toESM(__nccwpck_require__(85158)) -// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts -var throwSigningPropertyError = /* @__PURE__ */ __name((name, property) => { - if (!property) { - throw new Error(`Property \`${name}\` is not resolved for AWS SDK SigV4Auth`); - } - return property; -}, "throwSigningPropertyError"); -var validateSigningProperties = /* @__PURE__ */ __name(async (signingProperties) => { - var _a, _b, _c; - const context = throwSigningPropertyError( - "context", - signingProperties.context - ); - const config = throwSigningPropertyError("config", signingProperties.config); - const authScheme = (_c = (_b = (_a = context.endpointV2) == null ? void 0 : _a.properties) == null ? void 0 : _b.authSchemes) == null ? void 0 : _c[0]; - const signerFunction = throwSigningPropertyError( - "signer", - config.signer - ); - const signer = await signerFunction(authScheme); - const signingRegion = signingProperties == null ? void 0 : signingProperties.signingRegion; - const signingRegionSet = signingProperties == null ? void 0 : signingProperties.signingRegionSet; - const signingName = signingProperties == null ? void 0 : signingProperties.signingName; - return { - config, - signer, - signingRegion, - signingRegionSet, - signingName - }; -}, "validateSigningProperties"); -var _AwsSdkSigV4Signer = class _AwsSdkSigV4Signer { - async sign(httpRequest, identity, signingProperties) { - var _a; - if (!import_protocol_http2.HttpRequest.isInstance(httpRequest)) { - throw new Error("The request is not an instance of `HttpRequest` and cannot be signed"); - } - const validatedProps = await validateSigningProperties(signingProperties); - const { config, signer } = validatedProps; - let { signingRegion, signingName } = validatedProps; - const handlerExecutionContext = signingProperties.context; - if (((_a = handlerExecutionContext == null ? void 0 : handlerExecutionContext.authSchemes) == null ? void 0 : _a.length) ?? 0 > 1) { - const [first, second] = handlerExecutionContext.authSchemes; - if ((first == null ? void 0 : first.name) === "sigv4a" && (second == null ? void 0 : second.name) === "sigv4") { - signingRegion = (second == null ? void 0 : second.signingRegion) ?? signingRegion; - signingName = (second == null ? void 0 : second.signingName) ?? signingName; + // src/node-http2-connection-pool.ts + var NodeHttp2ConnectionPool = class { + constructor(sessions) { + this.sessions = [] + this.sessions = sessions ?? [] + } + static { + __name(this, 'NodeHttp2ConnectionPool') + } + poll() { + if (this.sessions.length > 0) { + return this.sessions.shift() + } + } + offerLast(session) { + this.sessions.push(session) + } + contains(session) { + return this.sessions.includes(session) + } + remove(session) { + this.sessions = this.sessions.filter(s => s !== session) + } + [Symbol.iterator]() { + return this.sessions[Symbol.iterator]() + } + destroy(connection) { + for (const session of this.sessions) { + if (session === connection) { + if (!session.destroyed) { + session.destroy() + } + } + } + } } - } - const signedRequest = await signer.sign(httpRequest, { - signingDate: getSkewCorrectedDate(config.systemClockOffset), - signingRegion, - signingService: signingName - }); - return signedRequest; - } - errorHandler(signingProperties) { - return (error) => { - const serverTime = error.ServerTime ?? getDateHeader(error.$response); - if (serverTime) { - const config = throwSigningPropertyError("config", signingProperties.config); - const initialSystemClockOffset = config.systemClockOffset; - config.systemClockOffset = getUpdatedSystemClockOffset(serverTime, config.systemClockOffset); - const clockSkewCorrected = config.systemClockOffset !== initialSystemClockOffset; - if (clockSkewCorrected && error.$metadata) { - error.$metadata.clockSkewCorrected = true; - } - } - throw error; - }; - } - successHandler(httpResponse, signingProperties) { - const dateHeader = getDateHeader(httpResponse); - if (dateHeader) { - const config = throwSigningPropertyError("config", signingProperties.config); - config.systemClockOffset = getUpdatedSystemClockOffset(dateHeader, config.systemClockOffset); - } - } -}; -__name(_AwsSdkSigV4Signer, "AwsSdkSigV4Signer"); -var AwsSdkSigV4Signer = _AwsSdkSigV4Signer; -var AWSSDKSigV4Signer = AwsSdkSigV4Signer; - -// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.ts -var import_protocol_http3 = __nccwpck_require__(64418); -var _AwsSdkSigV4ASigner = class _AwsSdkSigV4ASigner extends AwsSdkSigV4Signer { - async sign(httpRequest, identity, signingProperties) { - var _a; - if (!import_protocol_http3.HttpRequest.isInstance(httpRequest)) { - throw new Error("The request is not an instance of `HttpRequest` and cannot be signed"); - } - const { config, signer, signingRegion, signingRegionSet, signingName } = await validateSigningProperties( - signingProperties - ); - const configResolvedSigningRegionSet = await ((_a = config.sigv4aSigningRegionSet) == null ? void 0 : _a.call(config)); - const multiRegionOverride = (configResolvedSigningRegionSet ?? signingRegionSet ?? [signingRegion]).join(","); - const signedRequest = await signer.sign(httpRequest, { - signingDate: getSkewCorrectedDate(config.systemClockOffset), - signingRegion: multiRegionOverride, - signingService: signingName - }); - return signedRequest; - } -}; -__name(_AwsSdkSigV4ASigner, "AwsSdkSigV4ASigner"); -var AwsSdkSigV4ASigner = _AwsSdkSigV4ASigner; - -// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4AConfig.ts -var import_core = __nccwpck_require__(55829); -var import_property_provider = __nccwpck_require__(79721); -var resolveAwsSdkSigV4AConfig = /* @__PURE__ */ __name((config) => { - config.sigv4aSigningRegionSet = (0, import_core.normalizeProvider)(config.sigv4aSigningRegionSet); - return config; -}, "resolveAwsSdkSigV4AConfig"); -var NODE_SIGV4A_CONFIG_OPTIONS = { - environmentVariableSelector(env) { - if (env.AWS_SIGV4A_SIGNING_REGION_SET) { - return env.AWS_SIGV4A_SIGNING_REGION_SET.split(",").map((_) => _.trim()); - } - throw new import_property_provider.ProviderError("AWS_SIGV4A_SIGNING_REGION_SET not set in env.", { - tryNextLink: true - }); - }, - configFileSelector(profile) { - if (profile.sigv4a_signing_region_set) { - return (profile.sigv4a_signing_region_set ?? "").split(",").map((_) => _.trim()); - } - throw new import_property_provider.ProviderError("sigv4a_signing_region_set not set in profile.", { - tryNextLink: true - }); - }, - default: void 0 -}; - -// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.ts -var import_core2 = __nccwpck_require__(55829); -var import_signature_v4 = __nccwpck_require__(11528); -var resolveAwsSdkSigV4Config = /* @__PURE__ */ __name((config) => { - let normalizedCreds; - if (config.credentials) { - normalizedCreds = (0, import_core2.memoizeIdentityProvider)(config.credentials, import_core2.isIdentityExpired, import_core2.doesIdentityRequireRefresh); - } - if (!normalizedCreds) { - if (config.credentialDefaultProvider) { - normalizedCreds = (0, import_core2.normalizeProvider)( - config.credentialDefaultProvider( - Object.assign({}, config, { - parentClientConfig: config - }) - ) - ); - } else { - normalizedCreds = /* @__PURE__ */ __name(async () => { - throw new Error("`credentials` is missing"); - }, "normalizedCreds"); - } - } - const { - // Default for signingEscapePath - signingEscapePath = true, - // Default for systemClockOffset - systemClockOffset = config.systemClockOffset || 0, - // No default for sha256 since it is platform dependent - sha256 - } = config; - let signer; - if (config.signer) { - signer = (0, import_core2.normalizeProvider)(config.signer); - } else if (config.regionInfoProvider) { - signer = /* @__PURE__ */ __name(() => (0, import_core2.normalizeProvider)(config.region)().then( - async (region) => [ - await config.regionInfoProvider(region, { - useFipsEndpoint: await config.useFipsEndpoint(), - useDualstackEndpoint: await config.useDualstackEndpoint() - }) || {}, - region - ] - ).then(([regionInfo, region]) => { - const { signingRegion, signingService } = regionInfo; - config.signingRegion = config.signingRegion || signingRegion || region; - config.signingName = config.signingName || signingService || config.serviceId; - const params = { - ...config, - credentials: normalizedCreds, - region: config.signingRegion, - service: config.signingName, - sha256, - uriEscapePath: signingEscapePath - }; - const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4; - return new SignerCtor(params); - }), "signer"); - } else { - signer = /* @__PURE__ */ __name(async (authScheme) => { - authScheme = Object.assign( - {}, - { - name: "sigv4", - signingName: config.signingName || config.defaultSigningName, - signingRegion: await (0, import_core2.normalizeProvider)(config.region)(), - properties: {} - }, - authScheme - ); - const signingRegion = authScheme.signingRegion; - const signingService = authScheme.signingName; - config.signingRegion = config.signingRegion || signingRegion; - config.signingName = config.signingName || signingService || config.serviceId; - const params = { - ...config, - credentials: normalizedCreds, - region: config.signingRegion, - service: config.signingName, - sha256, - uriEscapePath: signingEscapePath - }; - const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4; - return new SignerCtor(params); - }, "signer"); - } - return { - ...config, - systemClockOffset, - signingEscapePath, - credentials: normalizedCreds, - signer - }; -}, "resolveAwsSdkSigV4Config"); -var resolveAWSSDKSigV4Config = resolveAwsSdkSigV4Config; -// Annotate the CommonJS export names for ESM import in node: -0 && (0); - - -/***/ }), - -/***/ 50785: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/submodules/protocols/index.ts -var protocols_exports = {}; -__export(protocols_exports, { - _toBool: () => _toBool, - _toNum: () => _toNum, - _toStr: () => _toStr, - awsExpectUnion: () => awsExpectUnion, - loadRestJsonErrorCode: () => loadRestJsonErrorCode, - loadRestXmlErrorCode: () => loadRestXmlErrorCode, - parseJsonBody: () => parseJsonBody, - parseJsonErrorBody: () => parseJsonErrorBody, - parseXmlBody: () => parseXmlBody, - parseXmlErrorBody: () => parseXmlErrorBody -}); -module.exports = __toCommonJS(protocols_exports); - -// src/submodules/protocols/coercing-serializers.ts -var _toStr = /* @__PURE__ */ __name((val) => { - if (val == null) { - return val; - } - if (typeof val === "number" || typeof val === "bigint") { - const warning = new Error(`Received number ${val} where a string was expected.`); - warning.name = "Warning"; - console.warn(warning); - return String(val); - } - if (typeof val === "boolean") { - const warning = new Error(`Received boolean ${val} where a string was expected.`); - warning.name = "Warning"; - console.warn(warning); - return String(val); - } - return val; -}, "_toStr"); -var _toBool = /* @__PURE__ */ __name((val) => { - if (val == null) { - return val; - } - if (typeof val === "number") { - } - if (typeof val === "string") { - const lowercase = val.toLowerCase(); - if (val !== "" && lowercase !== "false" && lowercase !== "true") { - const warning = new Error(`Received string "${val}" where a boolean was expected.`); - warning.name = "Warning"; - console.warn(warning); - } - return val !== "" && lowercase !== "false"; - } - return val; -}, "_toBool"); -var _toNum = /* @__PURE__ */ __name((val) => { - if (val == null) { - return val; - } - if (typeof val === "boolean") { - } - if (typeof val === "string") { - const num = Number(val); - if (num.toString() !== val) { - const warning = new Error(`Received string "${val}" where a number was expected.`); - warning.name = "Warning"; - console.warn(warning); - return val; - } - return num; - } - return val; -}, "_toNum"); - -// src/submodules/protocols/json/awsExpectUnion.ts -var import_smithy_client = __nccwpck_require__(63570); -var awsExpectUnion = /* @__PURE__ */ __name((value) => { - if (value == null) { - return void 0; - } - if (typeof value === "object" && "__type" in value) { - delete value.__type; - } - return (0, import_smithy_client.expectUnion)(value); -}, "awsExpectUnion"); - -// src/submodules/protocols/common.ts -var import_smithy_client2 = __nccwpck_require__(63570); -var collectBodyString = /* @__PURE__ */ __name((streamBody, context) => (0, import_smithy_client2.collectBody)(streamBody, context).then((body) => context.utf8Encoder(body)), "collectBodyString"); - -// src/submodules/protocols/json/parseJsonBody.ts -var parseJsonBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => { - if (encoded.length) { - try { - return JSON.parse(encoded); - } catch (e) { - if ((e == null ? void 0 : e.name) === "SyntaxError") { - Object.defineProperty(e, "$responseBodyText", { - value: encoded - }); - } - throw e; - } - } - return {}; -}), "parseJsonBody"); -var parseJsonErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => { - const value = await parseJsonBody(errorBody, context); - value.message = value.message ?? value.Message; - return value; -}, "parseJsonErrorBody"); -var loadRestJsonErrorCode = /* @__PURE__ */ __name((output, data) => { - const findKey = /* @__PURE__ */ __name((object, key) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase()), "findKey"); - const sanitizeErrorCode = /* @__PURE__ */ __name((rawValue) => { - let cleanValue = rawValue; - if (typeof cleanValue === "number") { - cleanValue = cleanValue.toString(); - } - if (cleanValue.indexOf(",") >= 0) { - cleanValue = cleanValue.split(",")[0]; - } - if (cleanValue.indexOf(":") >= 0) { - cleanValue = cleanValue.split(":")[0]; - } - if (cleanValue.indexOf("#") >= 0) { - cleanValue = cleanValue.split("#")[1]; - } - return cleanValue; - }, "sanitizeErrorCode"); - const headerKey = findKey(output.headers, "x-amzn-errortype"); - if (headerKey !== void 0) { - return sanitizeErrorCode(output.headers[headerKey]); - } - if (data.code !== void 0) { - return sanitizeErrorCode(data.code); - } - if (data["__type"] !== void 0) { - return sanitizeErrorCode(data["__type"]); - } -}, "loadRestJsonErrorCode"); - -// src/submodules/protocols/xml/parseXmlBody.ts -var import_smithy_client3 = __nccwpck_require__(63570); -var import_fast_xml_parser = __nccwpck_require__(12603); -var parseXmlBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => { - if (encoded.length) { - const parser = new import_fast_xml_parser.XMLParser({ - attributeNamePrefix: "", - htmlEntities: true, - ignoreAttributes: false, - ignoreDeclaration: true, - parseTagValue: false, - trimValues: false, - tagValueProcessor: (_, val) => val.trim() === "" && val.includes("\n") ? "" : void 0 - }); - parser.addEntity("#xD", "\r"); - parser.addEntity("#10", "\n"); - let parsedObj; - try { - parsedObj = parser.parse(encoded, true); - } catch (e) { - if (e && typeof e === "object") { - Object.defineProperty(e, "$responseBodyText", { - value: encoded - }); - } - throw e; - } - const textNodeName = "#text"; - const key = Object.keys(parsedObj)[0]; - const parsedObjToReturn = parsedObj[key]; - if (parsedObjToReturn[textNodeName]) { - parsedObjToReturn[key] = parsedObjToReturn[textNodeName]; - delete parsedObjToReturn[textNodeName]; - } - return (0, import_smithy_client3.getValueFromTextNode)(parsedObjToReturn); - } - return {}; -}), "parseXmlBody"); -var parseXmlErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => { - const value = await parseXmlBody(errorBody, context); - if (value.Error) { - value.Error.message = value.Error.message ?? value.Error.Message; - } - return value; -}, "parseXmlErrorBody"); -var loadRestXmlErrorCode = /* @__PURE__ */ __name((output, data) => { - var _a; - if (((_a = data == null ? void 0 : data.Error) == null ? void 0 : _a.Code) !== void 0) { - return data.Error.Code; - } - if ((data == null ? void 0 : data.Code) !== void 0) { - return data.Code; - } - if (output.statusCode == 404) { - return "NotFound"; - } -}, "loadRestXmlErrorCode"); -// Annotate the CommonJS export names for ESM import in node: -0 && (0); - - -/***/ }), - -/***/ 15972: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - ENV_ACCOUNT_ID: () => ENV_ACCOUNT_ID, - ENV_CREDENTIAL_SCOPE: () => ENV_CREDENTIAL_SCOPE, - ENV_EXPIRATION: () => ENV_EXPIRATION, - ENV_KEY: () => ENV_KEY, - ENV_SECRET: () => ENV_SECRET, - ENV_SESSION: () => ENV_SESSION, - fromEnv: () => fromEnv -}); -module.exports = __toCommonJS(src_exports); - -// src/fromEnv.ts -var import_property_provider = __nccwpck_require__(79721); -var ENV_KEY = "AWS_ACCESS_KEY_ID"; -var ENV_SECRET = "AWS_SECRET_ACCESS_KEY"; -var ENV_SESSION = "AWS_SESSION_TOKEN"; -var ENV_EXPIRATION = "AWS_CREDENTIAL_EXPIRATION"; -var ENV_CREDENTIAL_SCOPE = "AWS_CREDENTIAL_SCOPE"; -var ENV_ACCOUNT_ID = "AWS_ACCOUNT_ID"; -var fromEnv = /* @__PURE__ */ __name((init) => async () => { - var _a; - (_a = init == null ? void 0 : init.logger) == null ? void 0 : _a.debug("@aws-sdk/credential-provider-env - fromEnv"); - const accessKeyId = process.env[ENV_KEY]; - const secretAccessKey = process.env[ENV_SECRET]; - const sessionToken = process.env[ENV_SESSION]; - const expiry = process.env[ENV_EXPIRATION]; - const credentialScope = process.env[ENV_CREDENTIAL_SCOPE]; - const accountId = process.env[ENV_ACCOUNT_ID]; - if (accessKeyId && secretAccessKey) { - return { - accessKeyId, - secretAccessKey, - ...sessionToken && { sessionToken }, - ...expiry && { expiration: new Date(expiry) }, - ...credentialScope && { credentialScope }, - ...accountId && { accountId } - }; - } - throw new import_property_provider.CredentialsProviderError("Unable to find environment variable credentials.", { logger: init == null ? void 0 : init.logger }); -}, "fromEnv"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - + // src/node-http2-connection-manager.ts + var NodeHttp2ConnectionManager = class { + constructor(config) { + this.sessionCache = /* @__PURE__ */ new Map() + this.config = config + if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) { + throw new RangeError('maxConcurrency must be greater than zero.') + } + } + static { + __name(this, 'NodeHttp2ConnectionManager') + } + lease(requestContext, connectionConfiguration) { + const url = this.getUrlString(requestContext) + const existingPool = this.sessionCache.get(url) + if (existingPool) { + const existingSession = existingPool.poll() + if (existingSession && !this.config.disableConcurrency) { + return existingSession + } + } + const session = import_http2.default.connect(url) + if (this.config.maxConcurrency) { + session.settings( + { maxConcurrentStreams: this.config.maxConcurrency }, + err => { + if (err) { + throw new Error( + 'Fail to set maxConcurrentStreams to ' + + this.config.maxConcurrency + + 'when creating new session for ' + + requestContext.destination.toString() + ) + } + } + ) + } + session.unref() + const destroySessionCb = /* @__PURE__ */ __name(() => { + session.destroy() + this.deleteSession(url, session) + }, 'destroySessionCb') + session.on('goaway', destroySessionCb) + session.on('error', destroySessionCb) + session.on('frameError', destroySessionCb) + session.on('close', () => this.deleteSession(url, session)) + if (connectionConfiguration.requestTimeout) { + session.setTimeout( + connectionConfiguration.requestTimeout, + destroySessionCb + ) + } + const connectionPool = + this.sessionCache.get(url) || new NodeHttp2ConnectionPool() + connectionPool.offerLast(session) + this.sessionCache.set(url, connectionPool) + return session + } + /** + * Delete a session from the connection pool. + * @param authority The authority of the session to delete. + * @param session The session to delete. + */ + deleteSession(authority, session) { + const existingConnectionPool = this.sessionCache.get(authority) + if (!existingConnectionPool) { + return + } + if (!existingConnectionPool.contains(session)) { + return + } + existingConnectionPool.remove(session) + this.sessionCache.set(authority, existingConnectionPool) + } + release(requestContext, session) { + const cacheKey = this.getUrlString(requestContext) + this.sessionCache.get(cacheKey)?.offerLast(session) + } + destroy() { + for (const [key, connectionPool] of this.sessionCache) { + for (const session of connectionPool) { + if (!session.destroyed) { + session.destroy() + } + connectionPool.remove(session) + } + this.sessionCache.delete(key) + } + } + setMaxConcurrentStreams(maxConcurrentStreams) { + if (maxConcurrentStreams && maxConcurrentStreams <= 0) { + throw new RangeError( + 'maxConcurrentStreams must be greater than zero.' + ) + } + this.config.maxConcurrency = maxConcurrentStreams + } + setDisableConcurrentStreams(disableConcurrentStreams) { + this.config.disableConcurrency = disableConcurrentStreams + } + getUrlString(request) { + return request.destination.toString() + } + } -/***/ }), + // src/node-http2-handler.ts + var NodeHttp2Handler = class _NodeHttp2Handler { + constructor(options) { + this.metadata = { handlerProtocol: 'h2' } + this.connectionManager = new NodeHttp2ConnectionManager({}) + this.configProvider = new Promise((resolve, reject) => { + if (typeof options === 'function') { + options() + .then(opts => { + resolve(opts || {}) + }) + .catch(reject) + } else { + resolve(options || {}) + } + }) + } + static { + __name(this, 'NodeHttp2Handler') + } + /** + * @returns the input if it is an HttpHandler of any class, + * or instantiates a new instance of this handler. + */ + static create(instanceOrOptions) { + if (typeof instanceOrOptions?.handle === 'function') { + return instanceOrOptions + } + return new _NodeHttp2Handler(instanceOrOptions) + } + destroy() { + this.connectionManager.destroy() + } + async handle(request, { abortSignal } = {}) { + if (!this.config) { + this.config = await this.configProvider + this.connectionManager.setDisableConcurrentStreams( + this.config.disableConcurrentStreams || false + ) + if (this.config.maxConcurrentStreams) { + this.connectionManager.setMaxConcurrentStreams( + this.config.maxConcurrentStreams + ) + } + } + const { requestTimeout, disableConcurrentStreams } = this.config + return new Promise((_resolve, _reject) => { + let fulfilled = false + let writeRequestBodyPromise = void 0 + const resolve = /* @__PURE__ */ __name(async arg => { + await writeRequestBodyPromise + _resolve(arg) + }, 'resolve') + const reject = /* @__PURE__ */ __name(async arg => { + await writeRequestBodyPromise + _reject(arg) + }, 'reject') + if (abortSignal?.aborted) { + fulfilled = true + const abortError = new Error('Request aborted') + abortError.name = 'AbortError' + reject(abortError) + return + } + const { hostname, method, port, protocol, query } = request + let auth = '' + if (request.username != null || request.password != null) { + const username = request.username ?? '' + const password = request.password ?? '' + auth = `${username}:${password}@` + } + const authority = `${protocol}//${auth}${hostname}${port ? `:${port}` : ''}` + const requestContext = { destination: new URL(authority) } + const session = this.connectionManager.lease(requestContext, { + requestTimeout: this.config?.sessionTimeout, + disableConcurrentStreams: disableConcurrentStreams || false + }) + const rejectWithDestroy = /* @__PURE__ */ __name(err => { + if (disableConcurrentStreams) { + this.destroySession(session) + } + fulfilled = true + reject(err) + }, 'rejectWithDestroy') + const queryString = (0, + import_querystring_builder.buildQueryString)(query || {}) + let path = request.path + if (queryString) { + path += `?${queryString}` + } + if (request.fragment) { + path += `#${request.fragment}` + } + const req = session.request({ + ...request.headers, + [import_http22.constants.HTTP2_HEADER_PATH]: path, + [import_http22.constants.HTTP2_HEADER_METHOD]: method + }) + session.ref() + req.on('response', headers => { + const httpResponse = new import_protocol_http.HttpResponse({ + statusCode: headers[':status'] || -1, + headers: getTransformedHeaders(headers), + body: req + }) + fulfilled = true + resolve({ response: httpResponse }) + if (disableConcurrentStreams) { + session.close() + this.connectionManager.deleteSession(authority, session) + } + }) + if (requestTimeout) { + req.setTimeout(requestTimeout, () => { + req.close() + const timeoutError = new Error( + `Stream timed out because of no activity for ${requestTimeout} ms` + ) + timeoutError.name = 'TimeoutError' + rejectWithDestroy(timeoutError) + }) + } + if (abortSignal) { + const onAbort = /* @__PURE__ */ __name(() => { + req.close() + const abortError = new Error('Request aborted') + abortError.name = 'AbortError' + rejectWithDestroy(abortError) + }, 'onAbort') + if (typeof abortSignal.addEventListener === 'function') { + const signal = abortSignal + signal.addEventListener('abort', onAbort, { once: true }) + req.once('close', () => + signal.removeEventListener('abort', onAbort) + ) + } else { + abortSignal.onabort = onAbort + } + } + req.on('frameError', (type, code, id) => { + rejectWithDestroy( + new Error( + `Frame type id ${type} in stream id ${id} has failed with code ${code}.` + ) + ) + }) + req.on('error', rejectWithDestroy) + req.on('aborted', () => { + rejectWithDestroy( + new Error( + `HTTP/2 stream is abnormally aborted in mid-communication with result code ${req.rstCode}.` + ) + ) + }) + req.on('close', () => { + session.unref() + if (disableConcurrentStreams) { + session.destroy() + } + if (!fulfilled) { + rejectWithDestroy( + new Error( + 'Unexpected error: http2 request did not get a response' + ) + ) + } + }) + writeRequestBodyPromise = writeRequestBody( + req, + request, + requestTimeout + ) + }) + } + updateHttpClientConfig(key, value) { + this.config = void 0 + this.configProvider = this.configProvider.then(config => { + return { + ...config, + [key]: value + } + }) + } + httpHandlerConfigs() { + return this.config ?? {} + } + /** + * Destroys a session. + * @param session - the session to destroy. + */ + destroySession(session) { + if (!session.destroyed) { + session.destroy() + } + } + } -/***/ 63757: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + // src/stream-collector/collector.ts -"use strict"; + var Collector = class extends import_stream.Writable { + constructor() { + super(...arguments) + this.bufferedBytes = [] + } + static { + __name(this, 'Collector') + } + _write(chunk, encoding, callback) { + this.bufferedBytes.push(chunk) + callback() + } + } -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.checkUrl = void 0; -const property_provider_1 = __nccwpck_require__(79721); -const LOOPBACK_CIDR_IPv4 = "127.0.0.0/8"; -const LOOPBACK_CIDR_IPv6 = "::1/128"; -const ECS_CONTAINER_HOST = "169.254.170.2"; -const EKS_CONTAINER_HOST_IPv4 = "169.254.170.23"; -const EKS_CONTAINER_HOST_IPv6 = "[fd00:ec2::23]"; -const checkUrl = (url, logger) => { - if (url.protocol === "https:") { - return; - } - if (url.hostname === ECS_CONTAINER_HOST || - url.hostname === EKS_CONTAINER_HOST_IPv4 || - url.hostname === EKS_CONTAINER_HOST_IPv6) { - return; - } - if (url.hostname.includes("[")) { - if (url.hostname === "[::1]" || url.hostname === "[0000:0000:0000:0000:0000:0000:0000:0001]") { - return; + // src/stream-collector/index.ts + var streamCollector = /* @__PURE__ */ __name(stream => { + if (isReadableStreamInstance(stream)) { + return collectReadableStream(stream) } - } - else { - if (url.hostname === "localhost") { - return; - } - const ipComponents = url.hostname.split("."); - const inRange = (component) => { - const num = parseInt(component, 10); - return 0 <= num && num <= 255; - }; - if (ipComponents[0] === "127" && - inRange(ipComponents[1]) && - inRange(ipComponents[2]) && - inRange(ipComponents[3]) && - ipComponents.length === 4) { - return; + return new Promise((resolve, reject) => { + const collector = new Collector() + stream.pipe(collector) + stream.on('error', err => { + collector.end() + reject(err) + }) + collector.on('error', reject) + collector.on('finish', function () { + const bytes = new Uint8Array(Buffer.concat(this.bufferedBytes)) + resolve(bytes) + }) + }) + }, 'streamCollector') + var isReadableStreamInstance = /* @__PURE__ */ __name( + stream => + typeof ReadableStream === 'function' && + stream instanceof ReadableStream, + 'isReadableStreamInstance' + ) + async function collectReadableStream(stream) { + const chunks = [] + const reader = stream.getReader() + let isDone = false + let length = 0 + while (!isDone) { + const { done, value } = await reader.read() + if (value) { + chunks.push(value) + length += value.length + } + isDone = done } - } - throw new property_provider_1.CredentialsProviderError(`URL not accepted. It must either be HTTPS or match one of the following: - - loopback CIDR 127.0.0.0/8 or [::1/128] - - ECS container host 169.254.170.2 - - EKS container host 169.254.170.23 or [fd00:ec2::23]`, { logger }); -}; -exports.checkUrl = checkUrl; - - -/***/ }), - -/***/ 56070: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.fromHttp = void 0; -const tslib_1 = __nccwpck_require__(4351); -const node_http_handler_1 = __nccwpck_require__(54893); -const property_provider_1 = __nccwpck_require__(79721); -const promises_1 = tslib_1.__importDefault(__nccwpck_require__(73292)); -const checkUrl_1 = __nccwpck_require__(63757); -const requestHelpers_1 = __nccwpck_require__(79287); -const retry_wrapper_1 = __nccwpck_require__(79921); -const AWS_CONTAINER_CREDENTIALS_RELATIVE_URI = "AWS_CONTAINER_CREDENTIALS_RELATIVE_URI"; -const DEFAULT_LINK_LOCAL_HOST = "http://169.254.170.2"; -const AWS_CONTAINER_CREDENTIALS_FULL_URI = "AWS_CONTAINER_CREDENTIALS_FULL_URI"; -const AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE = "AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE"; -const AWS_CONTAINER_AUTHORIZATION_TOKEN = "AWS_CONTAINER_AUTHORIZATION_TOKEN"; -const fromHttp = (options = {}) => { - options.logger?.debug("@aws-sdk/credential-provider-http - fromHttp"); - let host; - const relative = options.awsContainerCredentialsRelativeUri ?? process.env[AWS_CONTAINER_CREDENTIALS_RELATIVE_URI]; - const full = options.awsContainerCredentialsFullUri ?? process.env[AWS_CONTAINER_CREDENTIALS_FULL_URI]; - const token = options.awsContainerAuthorizationToken ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN]; - const tokenFile = options.awsContainerAuthorizationTokenFile ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE]; - const warn = options.logger?.constructor?.name === "NoOpLogger" || !options.logger ? console.warn : options.logger.warn; - if (relative && full) { - warn("@aws-sdk/credential-provider-http: " + - "you have set both awsContainerCredentialsRelativeUri and awsContainerCredentialsFullUri."); - warn("awsContainerCredentialsFullUri will take precedence."); - } - if (token && tokenFile) { - warn("@aws-sdk/credential-provider-http: " + - "you have set both awsContainerAuthorizationToken and awsContainerAuthorizationTokenFile."); - warn("awsContainerAuthorizationToken will take precedence."); - } - if (full) { - host = full; - } - else if (relative) { - host = `${DEFAULT_LINK_LOCAL_HOST}${relative}`; - } - else { - throw new property_provider_1.CredentialsProviderError(`No HTTP credential provider host provided. -Set AWS_CONTAINER_CREDENTIALS_FULL_URI or AWS_CONTAINER_CREDENTIALS_RELATIVE_URI.`, { logger: options.logger }); - } - const url = new URL(host); - (0, checkUrl_1.checkUrl)(url, options.logger); - const requestHandler = new node_http_handler_1.NodeHttpHandler({ - requestTimeout: options.timeout ?? 1000, - connectionTimeout: options.timeout ?? 1000, - }); - return (0, retry_wrapper_1.retryWrapper)(async () => { - const request = (0, requestHelpers_1.createGetRequest)(url); - if (token) { - request.headers.Authorization = token; - } - else if (tokenFile) { - request.headers.Authorization = (await promises_1.default.readFile(tokenFile)).toString(); + const collected = new Uint8Array(length) + let offset = 0 + for (const chunk of chunks) { + collected.set(chunk, offset) + offset += chunk.length } - try { - const result = await requestHandler.handle(request); - return (0, requestHelpers_1.getCredentials)(result.response); - } - catch (e) { - throw new property_provider_1.CredentialsProviderError(String(e), { logger: options.logger }); - } - }, options.maxRetries ?? 3, options.timeout ?? 1000); -}; -exports.fromHttp = fromHttp; - - -/***/ }), - -/***/ 79287: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getCredentials = exports.createGetRequest = void 0; -const property_provider_1 = __nccwpck_require__(79721); -const protocol_http_1 = __nccwpck_require__(64418); -const smithy_client_1 = __nccwpck_require__(63570); -const util_stream_1 = __nccwpck_require__(96607); -function createGetRequest(url) { - return new protocol_http_1.HttpRequest({ - protocol: url.protocol, - hostname: url.hostname, - port: Number(url.port), - path: url.pathname, - query: Array.from(url.searchParams.entries()).reduce((acc, [k, v]) => { - acc[k] = v; - return acc; - }, {}), - fragment: url.hash, - }); -} -exports.createGetRequest = createGetRequest; -async function getCredentials(response, logger) { - const stream = (0, util_stream_1.sdkStreamMixin)(response.body); - const str = await stream.transformToString(); - if (response.statusCode === 200) { - const parsed = JSON.parse(str); - if (typeof parsed.AccessKeyId !== "string" || - typeof parsed.SecretAccessKey !== "string" || - typeof parsed.Token !== "string" || - typeof parsed.Expiration !== "string") { - throw new property_provider_1.CredentialsProviderError("HTTP credential provider response not of the required format, an object matching: " + - "{ AccessKeyId: string, SecretAccessKey: string, Token: string, Expiration: string(rfc3339) }", { logger }); + return collected + } + __name(collectReadableStream, 'collectReadableStream') + // Annotate the CommonJS export names for ESM import in node: + + 0 && 0 + + /***/ + }, + + /***/ 51005: /***/ module => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) } - return { - accessKeyId: parsed.AccessKeyId, - secretAccessKey: parsed.SecretAccessKey, - sessionToken: parsed.Token, - expiration: (0, smithy_client_1.parseRfc3339DateTime)(parsed.Expiration), - }; - } - if (response.statusCode >= 400 && response.statusCode < 500) { - let parsedBody = {}; - try { - parsedBody = JSON.parse(str); + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + CredentialsProviderError: () => CredentialsProviderError, + ProviderError: () => ProviderError, + TokenProviderError: () => TokenProviderError, + chain: () => chain, + fromStatic: () => fromStatic, + memoize: () => memoize + }) + module.exports = __toCommonJS(src_exports) + + // src/ProviderError.ts + var ProviderError = class _ProviderError extends Error { + constructor(message, options = true) { + let logger + let tryNextLink = true + if (typeof options === 'boolean') { + logger = void 0 + tryNextLink = options + } else if (options != null && typeof options === 'object') { + logger = options.logger + tryNextLink = options.tryNextLink ?? true + } + super(message) + this.name = 'ProviderError' + this.tryNextLink = tryNextLink + Object.setPrototypeOf(this, _ProviderError.prototype) + logger?.debug?.( + `@smithy/property-provider ${tryNextLink ? '->' : '(!)'} ${message}` + ) } - catch (e) { } - throw Object.assign(new property_provider_1.CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger }), { - Code: parsedBody.Code, - Message: parsedBody.Message, - }); - } - throw new property_provider_1.CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger }); -} -exports.getCredentials = getCredentials; + static { + __name(this, 'ProviderError') + } + /** + * @deprecated use new operator. + */ + static from(error, options = true) { + return Object.assign(new this(error.message, options), error) + } + } + // src/CredentialsProviderError.ts + var CredentialsProviderError = class _CredentialsProviderError extends ProviderError { + /** + * @override + */ + constructor(message, options = true) { + super(message, options) + this.name = 'CredentialsProviderError' + Object.setPrototypeOf(this, _CredentialsProviderError.prototype) + } + static { + __name(this, 'CredentialsProviderError') + } + } -/***/ }), + // src/TokenProviderError.ts + var TokenProviderError = class _TokenProviderError extends ProviderError { + /** + * @override + */ + constructor(message, options = true) { + super(message, options) + this.name = 'TokenProviderError' + Object.setPrototypeOf(this, _TokenProviderError.prototype) + } + static { + __name(this, 'TokenProviderError') + } + } -/***/ 79921: -/***/ ((__unused_webpack_module, exports) => { + // src/chain.ts + var chain = /* @__PURE__ */ __name( + (...providers) => + async () => { + if (providers.length === 0) { + throw new ProviderError('No providers in chain') + } + let lastProviderError + for (const provider of providers) { + try { + const credentials = await provider() + return credentials + } catch (err) { + lastProviderError = err + if (err?.tryNextLink) { + continue + } + throw err + } + } + throw lastProviderError + }, + 'chain' + ) -"use strict"; + // src/fromStatic.ts + var fromStatic = /* @__PURE__ */ __name( + staticValue => () => Promise.resolve(staticValue), + 'fromStatic' + ) -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.retryWrapper = void 0; -const retryWrapper = (toRetry, maxRetries, delayMs) => { - return async () => { - for (let i = 0; i < maxRetries; ++i) { + // src/memoize.ts + var memoize = /* @__PURE__ */ __name( + (provider, isExpired, requiresRefresh) => { + let resolved + let pending + let hasResult + let isConstant = false + const coalesceProvider = /* @__PURE__ */ __name(async () => { + if (!pending) { + pending = provider() + } try { - return await toRetry(); + resolved = await pending + hasResult = true + isConstant = false + } finally { + pending = void 0 } - catch (e) { - await new Promise((resolve) => setTimeout(resolve, delayMs)); + return resolved + }, 'coalesceProvider') + if (isExpired === void 0) { + return async options => { + if (!hasResult || options?.forceRefresh) { + resolved = await coalesceProvider() + } + return resolved } - } - return await toRetry(); - }; -}; -exports.retryWrapper = retryWrapper; - - -/***/ }), - -/***/ 17290: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; + } + return async options => { + if (!hasResult || options?.forceRefresh) { + resolved = await coalesceProvider() + } + if (isConstant) { + return resolved + } + if (requiresRefresh && !requiresRefresh(resolved)) { + isConstant = true + return resolved + } + if (isExpired(resolved)) { + await coalesceProvider() + return resolved + } + return resolved + } + }, + 'memoize' + ) + // Annotate the CommonJS export names for ESM import in node: -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.fromHttp = void 0; -var fromHttp_1 = __nccwpck_require__(56070); -Object.defineProperty(exports, "fromHttp", ({ enumerable: true, get: function () { return fromHttp_1.fromHttp; } })); + 0 && 0 + /***/ + }, -/***/ }), + /***/ 18241: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + Field: () => Field, + Fields: () => Fields, + HttpRequest: () => HttpRequest, + HttpResponse: () => HttpResponse, + IHttpRequest: () => import_types.HttpRequest, + getHttpHandlerExtensionConfiguration: () => + getHttpHandlerExtensionConfiguration, + isValidHostname: () => isValidHostname, + resolveHttpHandlerRuntimeConfig: () => resolveHttpHandlerRuntimeConfig + }) + module.exports = __toCommonJS(src_exports) -/***/ 54893: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + // src/extensions/httpExtensionConfiguration.ts + var getHttpHandlerExtensionConfiguration = /* @__PURE__ */ __name( + runtimeConfig => { + return { + setHttpHandler(handler) { + runtimeConfig.httpHandler = handler + }, + httpHandler() { + return runtimeConfig.httpHandler + }, + updateHttpClientConfig(key, value) { + runtimeConfig.httpHandler?.updateHttpClientConfig(key, value) + }, + httpHandlerConfigs() { + return runtimeConfig.httpHandler.httpHandlerConfigs() + } + } + }, + 'getHttpHandlerExtensionConfiguration' + ) + var resolveHttpHandlerRuntimeConfig = /* @__PURE__ */ __name( + httpHandlerExtensionConfiguration => { + return { + httpHandler: httpHandlerExtensionConfiguration.httpHandler() + } + }, + 'resolveHttpHandlerRuntimeConfig' + ) -var __create = Object.create; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __getProtoOf = Object.getPrototypeOf; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. - isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, - mod -)); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - DEFAULT_REQUEST_TIMEOUT: () => DEFAULT_REQUEST_TIMEOUT, - NodeHttp2Handler: () => NodeHttp2Handler, - NodeHttpHandler: () => NodeHttpHandler, - streamCollector: () => streamCollector -}); -module.exports = __toCommonJS(src_exports); - -// src/node-http-handler.ts -var import_protocol_http = __nccwpck_require__(64418); -var import_querystring_builder = __nccwpck_require__(68031); -var import_http = __nccwpck_require__(13685); -var import_https = __nccwpck_require__(95687); - -// src/constants.ts -var NODEJS_TIMEOUT_ERROR_CODES = ["ECONNRESET", "EPIPE", "ETIMEDOUT"]; - -// src/get-transformed-headers.ts -var getTransformedHeaders = /* @__PURE__ */ __name((headers) => { - const transformedHeaders = {}; - for (const name of Object.keys(headers)) { - const headerValues = headers[name]; - transformedHeaders[name] = Array.isArray(headerValues) ? headerValues.join(",") : headerValues; - } - return transformedHeaders; -}, "getTransformedHeaders"); - -// src/set-connection-timeout.ts -var DEFER_EVENT_LISTENER_TIME = 1e3; -var setConnectionTimeout = /* @__PURE__ */ __name((request, reject, timeoutInMs = 0) => { - if (!timeoutInMs) { - return -1; - } - const registerTimeout = /* @__PURE__ */ __name((offset) => { - const timeoutId = setTimeout(() => { - request.destroy(); - reject( - Object.assign(new Error(`Socket timed out without establishing a connection within ${timeoutInMs} ms`), { - name: "TimeoutError" - }) - ); - }, timeoutInMs - offset); - const doWithSocket = /* @__PURE__ */ __name((socket) => { - if (socket == null ? void 0 : socket.connecting) { - socket.on("connect", () => { - clearTimeout(timeoutId); - }); - } else { - clearTimeout(timeoutId); - } - }, "doWithSocket"); - if (request.socket) { - doWithSocket(request.socket); - } else { - request.on("socket", doWithSocket); - } - }, "registerTimeout"); - if (timeoutInMs < 2e3) { - registerTimeout(0); - return 0; - } - return setTimeout(registerTimeout.bind(null, DEFER_EVENT_LISTENER_TIME), DEFER_EVENT_LISTENER_TIME); -}, "setConnectionTimeout"); - -// src/set-socket-keep-alive.ts -var DEFER_EVENT_LISTENER_TIME2 = 3e3; -var setSocketKeepAlive = /* @__PURE__ */ __name((request, { keepAlive, keepAliveMsecs }, deferTimeMs = DEFER_EVENT_LISTENER_TIME2) => { - if (keepAlive !== true) { - return -1; - } - const registerListener = /* @__PURE__ */ __name(() => { - if (request.socket) { - request.socket.setKeepAlive(keepAlive, keepAliveMsecs || 0); - } else { - request.on("socket", (socket) => { - socket.setKeepAlive(keepAlive, keepAliveMsecs || 0); - }); - } - }, "registerListener"); - if (deferTimeMs === 0) { - registerListener(); - return 0; - } - return setTimeout(registerListener, deferTimeMs); -}, "setSocketKeepAlive"); - -// src/set-socket-timeout.ts -var DEFER_EVENT_LISTENER_TIME3 = 3e3; -var setSocketTimeout = /* @__PURE__ */ __name((request, reject, timeoutInMs = 0) => { - const registerTimeout = /* @__PURE__ */ __name((offset) => { - request.setTimeout(timeoutInMs - offset, () => { - request.destroy(); - reject(Object.assign(new Error(`Connection timed out after ${timeoutInMs} ms`), { name: "TimeoutError" })); - }); - }, "registerTimeout"); - if (0 < timeoutInMs && timeoutInMs < 6e3) { - registerTimeout(0); - return 0; - } - return setTimeout( - registerTimeout.bind(null, timeoutInMs === 0 ? 0 : DEFER_EVENT_LISTENER_TIME3), - DEFER_EVENT_LISTENER_TIME3 - ); -}, "setSocketTimeout"); - -// src/write-request-body.ts -var import_stream = __nccwpck_require__(12781); -var MIN_WAIT_TIME = 1e3; -async function writeRequestBody(httpRequest, request, maxContinueTimeoutMs = MIN_WAIT_TIME) { - const headers = request.headers ?? {}; - const expect = headers["Expect"] || headers["expect"]; - let timeoutId = -1; - let hasError = false; - if (expect === "100-continue") { - await Promise.race([ - new Promise((resolve) => { - timeoutId = Number(setTimeout(resolve, Math.max(MIN_WAIT_TIME, maxContinueTimeoutMs))); - }), - new Promise((resolve) => { - httpRequest.on("continue", () => { - clearTimeout(timeoutId); - resolve(); - }); - httpRequest.on("error", () => { - hasError = true; - clearTimeout(timeoutId); - resolve(); - }); - }) - ]); - } - if (!hasError) { - writeBody(httpRequest, request.body); - } -} -__name(writeRequestBody, "writeRequestBody"); -function writeBody(httpRequest, body) { - if (body instanceof import_stream.Readable) { - body.pipe(httpRequest); - return; - } - if (body) { - if (Buffer.isBuffer(body) || typeof body === "string") { - httpRequest.end(body); - return; - } - const uint8 = body; - if (typeof uint8 === "object" && uint8.buffer && typeof uint8.byteOffset === "number" && typeof uint8.byteLength === "number") { - httpRequest.end(Buffer.from(uint8.buffer, uint8.byteOffset, uint8.byteLength)); - return; - } - httpRequest.end(Buffer.from(body)); - return; - } - httpRequest.end(); -} -__name(writeBody, "writeBody"); - -// src/node-http-handler.ts -var DEFAULT_REQUEST_TIMEOUT = 0; -var _NodeHttpHandler = class _NodeHttpHandler { - constructor(options) { - this.socketWarningTimestamp = 0; - // Node http handler is hard-coded to http/1.1: https://github.com/nodejs/node/blob/ff5664b83b89c55e4ab5d5f60068fb457f1f5872/lib/_http_server.js#L286 - this.metadata = { handlerProtocol: "http/1.1" }; - this.configProvider = new Promise((resolve, reject) => { - if (typeof options === "function") { - options().then((_options) => { - resolve(this.resolveDefaultConfig(_options)); - }).catch(reject); - } else { - resolve(this.resolveDefaultConfig(options)); - } - }); - } - /** - * @returns the input if it is an HttpHandler of any class, - * or instantiates a new instance of this handler. - */ - static create(instanceOrOptions) { - if (typeof (instanceOrOptions == null ? void 0 : instanceOrOptions.handle) === "function") { - return instanceOrOptions; - } - return new _NodeHttpHandler(instanceOrOptions); - } - /** - * @internal - * - * @param agent - http(s) agent in use by the NodeHttpHandler instance. - * @param socketWarningTimestamp - last socket usage check timestamp. - * @param logger - channel for the warning. - * @returns timestamp of last emitted warning. - */ - static checkSocketUsage(agent, socketWarningTimestamp, logger = console) { - var _a, _b, _c; - const { sockets, requests, maxSockets } = agent; - if (typeof maxSockets !== "number" || maxSockets === Infinity) { - return socketWarningTimestamp; - } - const interval = 15e3; - if (Date.now() - interval < socketWarningTimestamp) { - return socketWarningTimestamp; - } - if (sockets && requests) { - for (const origin in sockets) { - const socketsInUse = ((_a = sockets[origin]) == null ? void 0 : _a.length) ?? 0; - const requestsEnqueued = ((_b = requests[origin]) == null ? void 0 : _b.length) ?? 0; - if (socketsInUse >= maxSockets && requestsEnqueued >= 2 * maxSockets) { - (_c = logger == null ? void 0 : logger.warn) == null ? void 0 : _c.call( - logger, - `@smithy/node-http-handler:WARN - socket usage at capacity=${socketsInUse} and ${requestsEnqueued} additional requests are enqueued. -See https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html -or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.` - ); - return Date.now(); + // src/Field.ts + var import_types = __nccwpck_require__(63592) + var Field = class { + static { + __name(this, 'Field') + } + constructor({ + name, + kind = import_types.FieldPosition.HEADER, + values = [] + }) { + this.name = name + this.kind = kind + this.values = values + } + /** + * Appends a value to the field. + * + * @param value The value to append. + */ + add(value) { + this.values.push(value) + } + /** + * Overwrite existing field values. + * + * @param values The new field values. + */ + set(values) { + this.values = values + } + /** + * Remove all matching entries from list. + * + * @param value Value to remove. + */ + remove(value) { + this.values = this.values.filter(v => v !== value) + } + /** + * Get comma-delimited string. + * + * @returns String representation of {@link Field}. + */ + toString() { + return this.values + .map(v => (v.includes(',') || v.includes(' ') ? `"${v}"` : v)) + .join(', ') + } + /** + * Get string values as a list + * + * @returns Values in {@link Field} as a list. + */ + get() { + return this.values } } - } - return socketWarningTimestamp; - } - resolveDefaultConfig(options) { - const { requestTimeout, connectionTimeout, socketTimeout, httpAgent, httpsAgent } = options || {}; - const keepAlive = true; - const maxSockets = 50; - return { - connectionTimeout, - requestTimeout: requestTimeout ?? socketTimeout, - httpAgent: (() => { - if (httpAgent instanceof import_http.Agent || typeof (httpAgent == null ? void 0 : httpAgent.destroy) === "function") { - return httpAgent; - } - return new import_http.Agent({ keepAlive, maxSockets, ...httpAgent }); - })(), - httpsAgent: (() => { - if (httpsAgent instanceof import_https.Agent || typeof (httpsAgent == null ? void 0 : httpsAgent.destroy) === "function") { - return httpsAgent; - } - return new import_https.Agent({ keepAlive, maxSockets, ...httpsAgent }); - })(), - logger: console - }; - } - destroy() { - var _a, _b, _c, _d; - (_b = (_a = this.config) == null ? void 0 : _a.httpAgent) == null ? void 0 : _b.destroy(); - (_d = (_c = this.config) == null ? void 0 : _c.httpsAgent) == null ? void 0 : _d.destroy(); - } - async handle(request, { abortSignal } = {}) { - if (!this.config) { - this.config = await this.configProvider; - } - return new Promise((_resolve, _reject) => { - let writeRequestBodyPromise = void 0; - const timeouts = []; - const resolve = /* @__PURE__ */ __name(async (arg) => { - await writeRequestBodyPromise; - timeouts.forEach(clearTimeout); - _resolve(arg); - }, "resolve"); - const reject = /* @__PURE__ */ __name(async (arg) => { - await writeRequestBodyPromise; - timeouts.forEach(clearTimeout); - _reject(arg); - }, "reject"); - if (!this.config) { - throw new Error("Node HTTP request handler config is not resolved"); - } - if (abortSignal == null ? void 0 : abortSignal.aborted) { - const abortError = new Error("Request aborted"); - abortError.name = "AbortError"; - reject(abortError); - return; - } - const isSSL = request.protocol === "https:"; - const agent = isSSL ? this.config.httpsAgent : this.config.httpAgent; - timeouts.push( - setTimeout( - () => { - this.socketWarningTimestamp = _NodeHttpHandler.checkSocketUsage( - agent, - this.socketWarningTimestamp, - this.config.logger - ); - }, - this.config.socketAcquisitionWarningTimeout ?? (this.config.requestTimeout ?? 2e3) + (this.config.connectionTimeout ?? 1e3) - ) - ); - const queryString = (0, import_querystring_builder.buildQueryString)(request.query || {}); - let auth = void 0; - if (request.username != null || request.password != null) { - const username = request.username ?? ""; - const password = request.password ?? ""; - auth = `${username}:${password}`; - } - let path = request.path; - if (queryString) { - path += `?${queryString}`; - } - if (request.fragment) { - path += `#${request.fragment}`; - } - const nodeHttpsOptions = { - headers: request.headers, - host: request.hostname, - method: request.method, - path, - port: request.port, - agent, - auth - }; - const requestFunc = isSSL ? import_https.request : import_http.request; - const req = requestFunc(nodeHttpsOptions, (res) => { - const httpResponse = new import_protocol_http.HttpResponse({ - statusCode: res.statusCode || -1, - reason: res.statusMessage, - headers: getTransformedHeaders(res.headers), - body: res - }); - resolve({ response: httpResponse }); - }); - req.on("error", (err) => { - if (NODEJS_TIMEOUT_ERROR_CODES.includes(err.code)) { - reject(Object.assign(err, { name: "TimeoutError" })); - } else { - reject(err); - } - }); - if (abortSignal) { - const onAbort = /* @__PURE__ */ __name(() => { - req.destroy(); - const abortError = new Error("Request aborted"); - abortError.name = "AbortError"; - reject(abortError); - }, "onAbort"); - if (typeof abortSignal.addEventListener === "function") { - const signal = abortSignal; - signal.addEventListener("abort", onAbort, { once: true }); - req.once("close", () => signal.removeEventListener("abort", onAbort)); - } else { - abortSignal.onabort = onAbort; - } - } - timeouts.push(setConnectionTimeout(req, reject, this.config.connectionTimeout)); - timeouts.push(setSocketTimeout(req, reject, this.config.requestTimeout)); - const httpAgent = nodeHttpsOptions.agent; - if (typeof httpAgent === "object" && "keepAlive" in httpAgent) { - timeouts.push( - setSocketKeepAlive(req, { - // @ts-expect-error keepAlive is not public on httpAgent. - keepAlive: httpAgent.keepAlive, - // @ts-expect-error keepAliveMsecs is not public on httpAgent. - keepAliveMsecs: httpAgent.keepAliveMsecs - }) - ); - } - writeRequestBodyPromise = writeRequestBody(req, request, this.config.requestTimeout).catch((e) => { - timeouts.forEach(clearTimeout); - return _reject(e); - }); - }); - } - updateHttpClientConfig(key, value) { - this.config = void 0; - this.configProvider = this.configProvider.then((config) => { - return { - ...config, - [key]: value - }; - }); - } - httpHandlerConfigs() { - return this.config ?? {}; - } -}; -__name(_NodeHttpHandler, "NodeHttpHandler"); -var NodeHttpHandler = _NodeHttpHandler; - -// src/node-http2-handler.ts - - -var import_http22 = __nccwpck_require__(85158); - -// src/node-http2-connection-manager.ts -var import_http2 = __toESM(__nccwpck_require__(85158)); -// src/node-http2-connection-pool.ts -var _NodeHttp2ConnectionPool = class _NodeHttp2ConnectionPool { - constructor(sessions) { - this.sessions = []; - this.sessions = sessions ?? []; - } - poll() { - if (this.sessions.length > 0) { - return this.sessions.shift(); - } - } - offerLast(session) { - this.sessions.push(session); - } - contains(session) { - return this.sessions.includes(session); - } - remove(session) { - this.sessions = this.sessions.filter((s) => s !== session); - } - [Symbol.iterator]() { - return this.sessions[Symbol.iterator](); - } - destroy(connection) { - for (const session of this.sessions) { - if (session === connection) { - if (!session.destroyed) { - session.destroy(); + // src/Fields.ts + var Fields = class { + constructor({ fields = [], encoding = 'utf-8' }) { + this.entries = {} + fields.forEach(this.setField.bind(this)) + this.encoding = encoding } - } - } - } -}; -__name(_NodeHttp2ConnectionPool, "NodeHttp2ConnectionPool"); -var NodeHttp2ConnectionPool = _NodeHttp2ConnectionPool; - -// src/node-http2-connection-manager.ts -var _NodeHttp2ConnectionManager = class _NodeHttp2ConnectionManager { - constructor(config) { - this.sessionCache = /* @__PURE__ */ new Map(); - this.config = config; - if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) { - throw new RangeError("maxConcurrency must be greater than zero."); - } - } - lease(requestContext, connectionConfiguration) { - const url = this.getUrlString(requestContext); - const existingPool = this.sessionCache.get(url); - if (existingPool) { - const existingSession = existingPool.poll(); - if (existingSession && !this.config.disableConcurrency) { - return existingSession; - } - } - const session = import_http2.default.connect(url); - if (this.config.maxConcurrency) { - session.settings({ maxConcurrentStreams: this.config.maxConcurrency }, (err) => { - if (err) { - throw new Error( - "Fail to set maxConcurrentStreams to " + this.config.maxConcurrency + "when creating new session for " + requestContext.destination.toString() - ); + static { + __name(this, 'Fields') } - }); - } - session.unref(); - const destroySessionCb = /* @__PURE__ */ __name(() => { - session.destroy(); - this.deleteSession(url, session); - }, "destroySessionCb"); - session.on("goaway", destroySessionCb); - session.on("error", destroySessionCb); - session.on("frameError", destroySessionCb); - session.on("close", () => this.deleteSession(url, session)); - if (connectionConfiguration.requestTimeout) { - session.setTimeout(connectionConfiguration.requestTimeout, destroySessionCb); - } - const connectionPool = this.sessionCache.get(url) || new NodeHttp2ConnectionPool(); - connectionPool.offerLast(session); - this.sessionCache.set(url, connectionPool); - return session; - } - /** - * Delete a session from the connection pool. - * @param authority The authority of the session to delete. - * @param session The session to delete. - */ - deleteSession(authority, session) { - const existingConnectionPool = this.sessionCache.get(authority); - if (!existingConnectionPool) { - return; - } - if (!existingConnectionPool.contains(session)) { - return; - } - existingConnectionPool.remove(session); - this.sessionCache.set(authority, existingConnectionPool); - } - release(requestContext, session) { - var _a; - const cacheKey = this.getUrlString(requestContext); - (_a = this.sessionCache.get(cacheKey)) == null ? void 0 : _a.offerLast(session); - } - destroy() { - for (const [key, connectionPool] of this.sessionCache) { - for (const session of connectionPool) { - if (!session.destroyed) { - session.destroy(); + /** + * Set entry for a {@link Field} name. The `name` + * attribute will be used to key the collection. + * + * @param field The {@link Field} to set. + */ + setField(field) { + this.entries[field.name.toLowerCase()] = field + } + /** + * Retrieve {@link Field} entry by name. + * + * @param name The name of the {@link Field} entry + * to retrieve + * @returns The {@link Field} if it exists. + */ + getField(name) { + return this.entries[name.toLowerCase()] + } + /** + * Delete entry from collection. + * + * @param name Name of the entry to delete. + */ + removeField(name) { + delete this.entries[name.toLowerCase()] + } + /** + * Helper function for retrieving specific types of fields. + * Used to grab all headers or all trailers. + * + * @param kind {@link FieldPosition} of entries to retrieve. + * @returns The {@link Field} entries with the specified + * {@link FieldPosition}. + */ + getByType(kind) { + return Object.values(this.entries).filter( + field => field.kind === kind + ) } - connectionPool.remove(session); - } - this.sessionCache.delete(key); - } - } - setMaxConcurrentStreams(maxConcurrentStreams) { - if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) { - throw new RangeError("maxConcurrentStreams must be greater than zero."); - } - this.config.maxConcurrency = maxConcurrentStreams; - } - setDisableConcurrentStreams(disableConcurrentStreams) { - this.config.disableConcurrency = disableConcurrentStreams; - } - getUrlString(request) { - return request.destination.toString(); - } -}; -__name(_NodeHttp2ConnectionManager, "NodeHttp2ConnectionManager"); -var NodeHttp2ConnectionManager = _NodeHttp2ConnectionManager; - -// src/node-http2-handler.ts -var _NodeHttp2Handler = class _NodeHttp2Handler { - constructor(options) { - this.metadata = { handlerProtocol: "h2" }; - this.connectionManager = new NodeHttp2ConnectionManager({}); - this.configProvider = new Promise((resolve, reject) => { - if (typeof options === "function") { - options().then((opts) => { - resolve(opts || {}); - }).catch(reject); - } else { - resolve(options || {}); - } - }); - } - /** - * @returns the input if it is an HttpHandler of any class, - * or instantiates a new instance of this handler. - */ - static create(instanceOrOptions) { - if (typeof (instanceOrOptions == null ? void 0 : instanceOrOptions.handle) === "function") { - return instanceOrOptions; - } - return new _NodeHttp2Handler(instanceOrOptions); - } - destroy() { - this.connectionManager.destroy(); - } - async handle(request, { abortSignal } = {}) { - if (!this.config) { - this.config = await this.configProvider; - this.connectionManager.setDisableConcurrentStreams(this.config.disableConcurrentStreams || false); - if (this.config.maxConcurrentStreams) { - this.connectionManager.setMaxConcurrentStreams(this.config.maxConcurrentStreams); } - } - const { requestTimeout, disableConcurrentStreams } = this.config; - return new Promise((_resolve, _reject) => { - var _a; - let fulfilled = false; - let writeRequestBodyPromise = void 0; - const resolve = /* @__PURE__ */ __name(async (arg) => { - await writeRequestBodyPromise; - _resolve(arg); - }, "resolve"); - const reject = /* @__PURE__ */ __name(async (arg) => { - await writeRequestBodyPromise; - _reject(arg); - }, "reject"); - if (abortSignal == null ? void 0 : abortSignal.aborted) { - fulfilled = true; - const abortError = new Error("Request aborted"); - abortError.name = "AbortError"; - reject(abortError); - return; - } - const { hostname, method, port, protocol, query } = request; - let auth = ""; - if (request.username != null || request.password != null) { - const username = request.username ?? ""; - const password = request.password ?? ""; - auth = `${username}:${password}@`; - } - const authority = `${protocol}//${auth}${hostname}${port ? `:${port}` : ""}`; - const requestContext = { destination: new URL(authority) }; - const session = this.connectionManager.lease(requestContext, { - requestTimeout: (_a = this.config) == null ? void 0 : _a.sessionTimeout, - disableConcurrentStreams: disableConcurrentStreams || false - }); - const rejectWithDestroy = /* @__PURE__ */ __name((err) => { - if (disableConcurrentStreams) { - this.destroySession(session); - } - fulfilled = true; - reject(err); - }, "rejectWithDestroy"); - const queryString = (0, import_querystring_builder.buildQueryString)(query || {}); - let path = request.path; - if (queryString) { - path += `?${queryString}`; - } - if (request.fragment) { - path += `#${request.fragment}`; - } - const req = session.request({ - ...request.headers, - [import_http22.constants.HTTP2_HEADER_PATH]: path, - [import_http22.constants.HTTP2_HEADER_METHOD]: method - }); - session.ref(); - req.on("response", (headers) => { - const httpResponse = new import_protocol_http.HttpResponse({ - statusCode: headers[":status"] || -1, - headers: getTransformedHeaders(headers), - body: req - }); - fulfilled = true; - resolve({ response: httpResponse }); - if (disableConcurrentStreams) { - session.close(); - this.connectionManager.deleteSession(authority, session); - } - }); - if (requestTimeout) { - req.setTimeout(requestTimeout, () => { - req.close(); - const timeoutError = new Error(`Stream timed out because of no activity for ${requestTimeout} ms`); - timeoutError.name = "TimeoutError"; - rejectWithDestroy(timeoutError); - }); - } - if (abortSignal) { - const onAbort = /* @__PURE__ */ __name(() => { - req.close(); - const abortError = new Error("Request aborted"); - abortError.name = "AbortError"; - rejectWithDestroy(abortError); - }, "onAbort"); - if (typeof abortSignal.addEventListener === "function") { - const signal = abortSignal; - signal.addEventListener("abort", onAbort, { once: true }); - req.once("close", () => signal.removeEventListener("abort", onAbort)); - } else { - abortSignal.onabort = onAbort; - } - } - req.on("frameError", (type, code, id) => { - rejectWithDestroy(new Error(`Frame type id ${type} in stream id ${id} has failed with code ${code}.`)); - }); - req.on("error", rejectWithDestroy); - req.on("aborted", () => { - rejectWithDestroy( - new Error(`HTTP/2 stream is abnormally aborted in mid-communication with result code ${req.rstCode}.`) - ); - }); - req.on("close", () => { - session.unref(); - if (disableConcurrentStreams) { - session.destroy(); - } - if (!fulfilled) { - rejectWithDestroy(new Error("Unexpected error: http2 request did not get a response")); - } - }); - writeRequestBodyPromise = writeRequestBody(req, request, requestTimeout); - }); - } - updateHttpClientConfig(key, value) { - this.config = void 0; - this.configProvider = this.configProvider.then((config) => { - return { - ...config, - [key]: value - }; - }); - } - httpHandlerConfigs() { - return this.config ?? {}; - } - /** - * Destroys a session. - * @param session The session to destroy. - */ - destroySession(session) { - if (!session.destroyed) { - session.destroy(); - } - } -}; -__name(_NodeHttp2Handler, "NodeHttp2Handler"); -var NodeHttp2Handler = _NodeHttp2Handler; - -// src/stream-collector/collector.ts -var _Collector = class _Collector extends import_stream.Writable { - constructor() { - super(...arguments); - this.bufferedBytes = []; - } - _write(chunk, encoding, callback) { - this.bufferedBytes.push(chunk); - callback(); - } -}; -__name(_Collector, "Collector"); -var Collector = _Collector; - -// src/stream-collector/index.ts -var streamCollector = /* @__PURE__ */ __name((stream) => { - if (isReadableStreamInstance(stream)) { - return collectReadableStream(stream); - } - return new Promise((resolve, reject) => { - const collector = new Collector(); - stream.pipe(collector); - stream.on("error", (err) => { - collector.end(); - reject(err); - }); - collector.on("error", reject); - collector.on("finish", function() { - const bytes = new Uint8Array(Buffer.concat(this.bufferedBytes)); - resolve(bytes); - }); - }); -}, "streamCollector"); -var isReadableStreamInstance = /* @__PURE__ */ __name((stream) => typeof ReadableStream === "function" && stream instanceof ReadableStream, "isReadableStreamInstance"); -async function collectReadableStream(stream) { - const chunks = []; - const reader = stream.getReader(); - let isDone = false; - let length = 0; - while (!isDone) { - const { done, value } = await reader.read(); - if (value) { - chunks.push(value); - length += value.length; - } - isDone = done; - } - const collected = new Uint8Array(length); - let offset = 0; - for (const chunk of chunks) { - collected.set(chunk, offset); - offset += chunk.length; - } - return collected; -} -__name(collectReadableStream, "collectReadableStream"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 74203: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -var __create = Object.create; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __getProtoOf = Object.getPrototypeOf; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. - isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, - mod -)); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - fromIni: () => fromIni -}); -module.exports = __toCommonJS(src_exports); - -// src/fromIni.ts - - -// src/resolveProfileData.ts - - -// src/resolveAssumeRoleCredentials.ts - -var import_shared_ini_file_loader = __nccwpck_require__(43507); - -// src/resolveCredentialSource.ts -var import_property_provider = __nccwpck_require__(79721); -var resolveCredentialSource = /* @__PURE__ */ __name((credentialSource, profileName, logger) => { - const sourceProvidersMap = { - EcsContainer: async (options) => { - const { fromHttp } = await Promise.resolve().then(() => __toESM(__nccwpck_require__(17290))); - const { fromContainerMetadata } = await Promise.resolve().then(() => __toESM(__nccwpck_require__(7477))); - logger == null ? void 0 : logger.debug("@aws-sdk/credential-provider-ini - credential_source is EcsContainer"); - return (0, import_property_provider.chain)(fromHttp(options ?? {}), fromContainerMetadata(options)); - }, - Ec2InstanceMetadata: async (options) => { - logger == null ? void 0 : logger.debug("@aws-sdk/credential-provider-ini - credential_source is Ec2InstanceMetadata"); - const { fromInstanceMetadata } = await Promise.resolve().then(() => __toESM(__nccwpck_require__(7477))); - return fromInstanceMetadata(options); - }, - Environment: async (options) => { - logger == null ? void 0 : logger.debug("@aws-sdk/credential-provider-ini - credential_source is Environment"); - const { fromEnv } = await Promise.resolve().then(() => __toESM(__nccwpck_require__(15972))); - return fromEnv(options); - } - }; - if (credentialSource in sourceProvidersMap) { - return sourceProvidersMap[credentialSource]; - } else { - throw new import_property_provider.CredentialsProviderError( - `Unsupported credential source in profile ${profileName}. Got ${credentialSource}, expected EcsContainer or Ec2InstanceMetadata or Environment.`, - { logger } - ); - } -}, "resolveCredentialSource"); - -// src/resolveAssumeRoleCredentials.ts -var isAssumeRoleProfile = /* @__PURE__ */ __name((arg, { profile = "default", logger } = {}) => { - return Boolean(arg) && typeof arg === "object" && typeof arg.role_arn === "string" && ["undefined", "string"].indexOf(typeof arg.role_session_name) > -1 && ["undefined", "string"].indexOf(typeof arg.external_id) > -1 && ["undefined", "string"].indexOf(typeof arg.mfa_serial) > -1 && (isAssumeRoleWithSourceProfile(arg, { profile, logger }) || isCredentialSourceProfile(arg, { profile, logger })); -}, "isAssumeRoleProfile"); -var isAssumeRoleWithSourceProfile = /* @__PURE__ */ __name((arg, { profile, logger }) => { - var _a; - const withSourceProfile = typeof arg.source_profile === "string" && typeof arg.credential_source === "undefined"; - if (withSourceProfile) { - (_a = logger == null ? void 0 : logger.debug) == null ? void 0 : _a.call(logger, ` ${profile} isAssumeRoleWithSourceProfile source_profile=${arg.source_profile}`); - } - return withSourceProfile; -}, "isAssumeRoleWithSourceProfile"); -var isCredentialSourceProfile = /* @__PURE__ */ __name((arg, { profile, logger }) => { - var _a; - const withProviderProfile = typeof arg.credential_source === "string" && typeof arg.source_profile === "undefined"; - if (withProviderProfile) { - (_a = logger == null ? void 0 : logger.debug) == null ? void 0 : _a.call(logger, ` ${profile} isCredentialSourceProfile credential_source=${arg.credential_source}`); - } - return withProviderProfile; -}, "isCredentialSourceProfile"); -var resolveAssumeRoleCredentials = /* @__PURE__ */ __name(async (profileName, profiles, options, visitedProfiles = {}) => { - var _a, _b; - (_a = options.logger) == null ? void 0 : _a.debug("@aws-sdk/credential-provider-ini - resolveAssumeRoleCredentials (STS)"); - const data = profiles[profileName]; - if (!options.roleAssumer) { - const { getDefaultRoleAssumer } = await Promise.resolve().then(() => __toESM(__nccwpck_require__(52209))); - options.roleAssumer = getDefaultRoleAssumer( - { - ...options.clientConfig, - credentialProviderLogger: options.logger, - parentClientConfig: options == null ? void 0 : options.parentClientConfig - }, - options.clientPlugins - ); - } - const { source_profile } = data; - if (source_profile && source_profile in visitedProfiles) { - throw new import_property_provider.CredentialsProviderError( - `Detected a cycle attempting to resolve credentials for profile ${(0, import_shared_ini_file_loader.getProfileName)(options)}. Profiles visited: ` + Object.keys(visitedProfiles).join(", "), - { logger: options.logger } - ); - } - (_b = options.logger) == null ? void 0 : _b.debug( - `@aws-sdk/credential-provider-ini - finding credential resolver using ${source_profile ? `source_profile=[${source_profile}]` : `profile=[${profileName}]`}` - ); - const sourceCredsProvider = source_profile ? resolveProfileData( - source_profile, - { - ...profiles, - [source_profile]: { - ...profiles[source_profile], - // This assigns the role_arn of the "root" profile - // to the credential_source profile so this recursive call knows - // what role to assume. - role_arn: data.role_arn ?? profiles[source_profile].role_arn - } - }, - options, - { - ...visitedProfiles, - [source_profile]: true - } - ) : (await resolveCredentialSource(data.credential_source, profileName, options.logger)(options))(); - const params = { - RoleArn: data.role_arn, - RoleSessionName: data.role_session_name || `aws-sdk-js-${Date.now()}`, - ExternalId: data.external_id, - DurationSeconds: parseInt(data.duration_seconds || "3600", 10) - }; - const { mfa_serial } = data; - if (mfa_serial) { - if (!options.mfaCodeProvider) { - throw new import_property_provider.CredentialsProviderError( - `Profile ${profileName} requires multi-factor authentication, but no MFA code callback was provided.`, - { logger: options.logger, tryNextLink: false } - ); - } - params.SerialNumber = mfa_serial; - params.TokenCode = await options.mfaCodeProvider(mfa_serial); - } - const sourceCreds = await sourceCredsProvider; - return options.roleAssumer(sourceCreds, params); -}, "resolveAssumeRoleCredentials"); - -// src/resolveProcessCredentials.ts -var isProcessProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === "object" && typeof arg.credential_process === "string", "isProcessProfile"); -var resolveProcessCredentials = /* @__PURE__ */ __name(async (options, profile) => Promise.resolve().then(() => __toESM(__nccwpck_require__(89969))).then( - ({ fromProcess }) => fromProcess({ - ...options, - profile - })() -), "resolveProcessCredentials"); - -// src/resolveSsoCredentials.ts -var resolveSsoCredentials = /* @__PURE__ */ __name(async (profile, options = {}) => { - const { fromSSO } = await Promise.resolve().then(() => __toESM(__nccwpck_require__(26414))); - return fromSSO({ - profile, - logger: options.logger - })(); -}, "resolveSsoCredentials"); -var isSsoProfile = /* @__PURE__ */ __name((arg) => arg && (typeof arg.sso_start_url === "string" || typeof arg.sso_account_id === "string" || typeof arg.sso_session === "string" || typeof arg.sso_region === "string" || typeof arg.sso_role_name === "string"), "isSsoProfile"); - -// src/resolveStaticCredentials.ts -var isStaticCredsProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === "object" && typeof arg.aws_access_key_id === "string" && typeof arg.aws_secret_access_key === "string" && ["undefined", "string"].indexOf(typeof arg.aws_session_token) > -1 && ["undefined", "string"].indexOf(typeof arg.aws_account_id) > -1, "isStaticCredsProfile"); -var resolveStaticCredentials = /* @__PURE__ */ __name((profile, options) => { - var _a; - (_a = options == null ? void 0 : options.logger) == null ? void 0 : _a.debug("@aws-sdk/credential-provider-ini - resolveStaticCredentials"); - return Promise.resolve({ - accessKeyId: profile.aws_access_key_id, - secretAccessKey: profile.aws_secret_access_key, - sessionToken: profile.aws_session_token, - ...profile.aws_credential_scope && { credentialScope: profile.aws_credential_scope }, - ...profile.aws_account_id && { accountId: profile.aws_account_id } - }); -}, "resolveStaticCredentials"); - -// src/resolveWebIdentityCredentials.ts -var isWebIdentityProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === "object" && typeof arg.web_identity_token_file === "string" && typeof arg.role_arn === "string" && ["undefined", "string"].indexOf(typeof arg.role_session_name) > -1, "isWebIdentityProfile"); -var resolveWebIdentityCredentials = /* @__PURE__ */ __name(async (profile, options) => Promise.resolve().then(() => __toESM(__nccwpck_require__(15646))).then( - ({ fromTokenFile }) => fromTokenFile({ - webIdentityTokenFile: profile.web_identity_token_file, - roleArn: profile.role_arn, - roleSessionName: profile.role_session_name, - roleAssumerWithWebIdentity: options.roleAssumerWithWebIdentity, - logger: options.logger, - parentClientConfig: options.parentClientConfig - })() -), "resolveWebIdentityCredentials"); - -// src/resolveProfileData.ts -var resolveProfileData = /* @__PURE__ */ __name(async (profileName, profiles, options, visitedProfiles = {}) => { - const data = profiles[profileName]; - if (Object.keys(visitedProfiles).length > 0 && isStaticCredsProfile(data)) { - return resolveStaticCredentials(data, options); - } - if (isAssumeRoleProfile(data, { profile: profileName, logger: options.logger })) { - return resolveAssumeRoleCredentials(profileName, profiles, options, visitedProfiles); - } - if (isStaticCredsProfile(data)) { - return resolveStaticCredentials(data, options); - } - if (isWebIdentityProfile(data)) { - return resolveWebIdentityCredentials(data, options); - } - if (isProcessProfile(data)) { - return resolveProcessCredentials(options, profileName); - } - if (isSsoProfile(data)) { - return await resolveSsoCredentials(profileName, options); - } - throw new import_property_provider.CredentialsProviderError( - `Could not resolve credentials using profile: [${profileName}] in configuration/credentials file(s).`, - { logger: options.logger } - ); -}, "resolveProfileData"); - -// src/fromIni.ts -var fromIni = /* @__PURE__ */ __name((init = {}) => async () => { - var _a; - (_a = init.logger) == null ? void 0 : _a.debug("@aws-sdk/credential-provider-ini - fromIni"); - const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init); - return resolveProfileData((0, import_shared_ini_file_loader.getProfileName)(init), profiles, init); -}, "fromIni"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 75531: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -var __create = Object.create; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __getProtoOf = Object.getPrototypeOf; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. - isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, - mod -)); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - credentialsTreatedAsExpired: () => credentialsTreatedAsExpired, - credentialsWillNeedRefresh: () => credentialsWillNeedRefresh, - defaultProvider: () => defaultProvider -}); -module.exports = __toCommonJS(src_exports); - -// src/defaultProvider.ts -var import_credential_provider_env = __nccwpck_require__(15972); - -var import_shared_ini_file_loader = __nccwpck_require__(43507); - -// src/remoteProvider.ts -var import_property_provider = __nccwpck_require__(79721); -var ENV_IMDS_DISABLED = "AWS_EC2_METADATA_DISABLED"; -var remoteProvider = /* @__PURE__ */ __name(async (init) => { - var _a, _b; - const { ENV_CMDS_FULL_URI, ENV_CMDS_RELATIVE_URI, fromContainerMetadata, fromInstanceMetadata } = await Promise.resolve().then(() => __toESM(__nccwpck_require__(7477))); - if (process.env[ENV_CMDS_RELATIVE_URI] || process.env[ENV_CMDS_FULL_URI]) { - (_a = init.logger) == null ? void 0 : _a.debug("@aws-sdk/credential-provider-node - remoteProvider::fromHttp/fromContainerMetadata"); - const { fromHttp } = await Promise.resolve().then(() => __toESM(__nccwpck_require__(17290))); - return (0, import_property_provider.chain)(fromHttp(init), fromContainerMetadata(init)); - } - if (process.env[ENV_IMDS_DISABLED]) { - return async () => { - throw new import_property_provider.CredentialsProviderError("EC2 Instance Metadata Service access disabled", { logger: init.logger }); - }; - } - (_b = init.logger) == null ? void 0 : _b.debug("@aws-sdk/credential-provider-node - remoteProvider::fromInstanceMetadata"); - return fromInstanceMetadata(init); -}, "remoteProvider"); - -// src/defaultProvider.ts -var multipleCredentialSourceWarningEmitted = false; -var defaultProvider = /* @__PURE__ */ __name((init = {}) => (0, import_property_provider.memoize)( - (0, import_property_provider.chain)( - async () => { - var _a, _b, _c, _d; - const profile = init.profile ?? process.env[import_shared_ini_file_loader.ENV_PROFILE]; - if (profile) { - const envStaticCredentialsAreSet = process.env[import_credential_provider_env.ENV_KEY] && process.env[import_credential_provider_env.ENV_SECRET]; - if (envStaticCredentialsAreSet) { - if (!multipleCredentialSourceWarningEmitted) { - const warnFn = ((_a = init.logger) == null ? void 0 : _a.warn) && ((_c = (_b = init.logger) == null ? void 0 : _b.constructor) == null ? void 0 : _c.name) !== "NoOpLogger" ? init.logger.warn : console.warn; - warnFn( - `@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING: - Multiple credential sources detected: - Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set. - This SDK will proceed with the AWS_PROFILE value. - - However, a future version may change this behavior to prefer the ENV static credentials. - Please ensure that your environment only sets either the AWS_PROFILE or the - AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair. -` - ); - multipleCredentialSourceWarningEmitted = true; + // src/httpRequest.ts + + var HttpRequest = class _HttpRequest { + static { + __name(this, 'HttpRequest') + } + constructor(options) { + this.method = options.method || 'GET' + this.hostname = options.hostname || 'localhost' + this.port = options.port + this.query = options.query || {} + this.headers = options.headers || {} + this.body = options.body + this.protocol = options.protocol + ? options.protocol.slice(-1) !== ':' + ? `${options.protocol}:` + : options.protocol + : 'https:' + this.path = options.path + ? options.path.charAt(0) !== '/' + ? `/${options.path}` + : options.path + : '/' + this.username = options.username + this.password = options.password + this.fragment = options.fragment + } + /** + * Note: this does not deep-clone the body. + */ + static clone(request) { + const cloned = new _HttpRequest({ + ...request, + headers: { ...request.headers } + }) + if (cloned.query) { + cloned.query = cloneQuery(cloned.query) } + return cloned } - throw new import_property_provider.CredentialsProviderError("AWS_PROFILE is set, skipping fromEnv provider.", { - logger: init.logger, - tryNextLink: true - }); - } - (_d = init.logger) == null ? void 0 : _d.debug("@aws-sdk/credential-provider-node - defaultProvider::fromEnv"); - return (0, import_credential_provider_env.fromEnv)(init)(); - }, - async () => { - var _a; - (_a = init.logger) == null ? void 0 : _a.debug("@aws-sdk/credential-provider-node - defaultProvider::fromSSO"); - const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init; - if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) { - throw new import_property_provider.CredentialsProviderError( - "Skipping SSO provider in default chain (inputs do not include SSO fields).", - { logger: init.logger } - ); - } - const { fromSSO } = await Promise.resolve().then(() => __toESM(__nccwpck_require__(26414))); - return fromSSO(init)(); - }, - async () => { - var _a; - (_a = init.logger) == null ? void 0 : _a.debug("@aws-sdk/credential-provider-node - defaultProvider::fromIni"); - const { fromIni } = await Promise.resolve().then(() => __toESM(__nccwpck_require__(74203))); - return fromIni(init)(); - }, - async () => { - var _a; - (_a = init.logger) == null ? void 0 : _a.debug("@aws-sdk/credential-provider-node - defaultProvider::fromProcess"); - const { fromProcess } = await Promise.resolve().then(() => __toESM(__nccwpck_require__(89969))); - return fromProcess(init)(); - }, - async () => { - var _a; - (_a = init.logger) == null ? void 0 : _a.debug("@aws-sdk/credential-provider-node - defaultProvider::fromTokenFile"); - const { fromTokenFile } = await Promise.resolve().then(() => __toESM(__nccwpck_require__(15646))); - return fromTokenFile(init)(); - }, - async () => { - var _a; - (_a = init.logger) == null ? void 0 : _a.debug("@aws-sdk/credential-provider-node - defaultProvider::remoteProvider"); - return (await remoteProvider(init))(); - }, - async () => { - throw new import_property_provider.CredentialsProviderError("Could not load credentials from any providers", { - tryNextLink: false, - logger: init.logger - }); - } - ), - credentialsTreatedAsExpired, - credentialsWillNeedRefresh -), "defaultProvider"); -var credentialsWillNeedRefresh = /* @__PURE__ */ __name((credentials) => (credentials == null ? void 0 : credentials.expiration) !== void 0, "credentialsWillNeedRefresh"); -var credentialsTreatedAsExpired = /* @__PURE__ */ __name((credentials) => (credentials == null ? void 0 : credentials.expiration) !== void 0 && credentials.expiration.getTime() - Date.now() < 3e5, "credentialsTreatedAsExpired"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 89969: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - fromProcess: () => fromProcess -}); -module.exports = __toCommonJS(src_exports); - -// src/fromProcess.ts -var import_shared_ini_file_loader = __nccwpck_require__(43507); - -// src/resolveProcessCredentials.ts -var import_property_provider = __nccwpck_require__(79721); -var import_child_process = __nccwpck_require__(32081); -var import_util = __nccwpck_require__(73837); - -// src/getValidatedProcessCredentials.ts -var getValidatedProcessCredentials = /* @__PURE__ */ __name((profileName, data, profiles) => { - var _a; - if (data.Version !== 1) { - throw Error(`Profile ${profileName} credential_process did not return Version 1.`); - } - if (data.AccessKeyId === void 0 || data.SecretAccessKey === void 0) { - throw Error(`Profile ${profileName} credential_process returned invalid credentials.`); - } - if (data.Expiration) { - const currentTime = /* @__PURE__ */ new Date(); - const expireTime = new Date(data.Expiration); - if (expireTime < currentTime) { - throw Error(`Profile ${profileName} credential_process returned expired credentials.`); - } - } - let accountId = data.AccountId; - if (!accountId && ((_a = profiles == null ? void 0 : profiles[profileName]) == null ? void 0 : _a.aws_account_id)) { - accountId = profiles[profileName].aws_account_id; - } - return { - accessKeyId: data.AccessKeyId, - secretAccessKey: data.SecretAccessKey, - ...data.SessionToken && { sessionToken: data.SessionToken }, - ...data.Expiration && { expiration: new Date(data.Expiration) }, - ...data.CredentialScope && { credentialScope: data.CredentialScope }, - ...accountId && { accountId } - }; -}, "getValidatedProcessCredentials"); - -// src/resolveProcessCredentials.ts -var resolveProcessCredentials = /* @__PURE__ */ __name(async (profileName, profiles, logger) => { - const profile = profiles[profileName]; - if (profiles[profileName]) { - const credentialProcess = profile["credential_process"]; - if (credentialProcess !== void 0) { - const execPromise = (0, import_util.promisify)(import_child_process.exec); - try { - const { stdout } = await execPromise(credentialProcess); - let data; - try { - data = JSON.parse(stdout.trim()); - } catch { - throw Error(`Profile ${profileName} credential_process returned invalid JSON.`); + /** + * This method only actually asserts that request is the interface {@link IHttpRequest}, + * and not necessarily this concrete class. Left in place for API stability. + * + * Do not call instance methods on the input of this function, and + * do not assume it has the HttpRequest prototype. + */ + static isInstance(request) { + if (!request) { + return false + } + const req = request + return ( + 'method' in req && + 'protocol' in req && + 'hostname' in req && + 'path' in req && + typeof req['query'] === 'object' && + typeof req['headers'] === 'object' + ) } - return getValidatedProcessCredentials(profileName, data, profiles); - } catch (error) { - throw new import_property_provider.CredentialsProviderError(error.message, { logger }); - } - } else { - throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} did not contain credential_process.`, { logger }); - } - } else { - throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} could not be found in shared credentials file.`, { - logger - }); - } -}, "resolveProcessCredentials"); - -// src/fromProcess.ts -var fromProcess = /* @__PURE__ */ __name((init = {}) => async () => { - var _a; - (_a = init.logger) == null ? void 0 : _a.debug("@aws-sdk/credential-provider-process - fromProcess"); - const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init); - return resolveProcessCredentials((0, import_shared_ini_file_loader.getProfileName)(init), profiles, init.logger); -}, "fromProcess"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 26414: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __esm = (fn, res) => function __init() { - return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res; -}; -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/loadSso.ts -var loadSso_exports = {}; -__export(loadSso_exports, { - GetRoleCredentialsCommand: () => import_client_sso.GetRoleCredentialsCommand, - SSOClient: () => import_client_sso.SSOClient -}); -var import_client_sso; -var init_loadSso = __esm({ - "src/loadSso.ts"() { - "use strict"; - import_client_sso = __nccwpck_require__(82666); - } -}); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - fromSSO: () => fromSSO, - isSsoProfile: () => isSsoProfile, - validateSsoProfile: () => validateSsoProfile -}); -module.exports = __toCommonJS(src_exports); - -// src/fromSSO.ts - - - -// src/isSsoProfile.ts -var isSsoProfile = /* @__PURE__ */ __name((arg) => arg && (typeof arg.sso_start_url === "string" || typeof arg.sso_account_id === "string" || typeof arg.sso_session === "string" || typeof arg.sso_region === "string" || typeof arg.sso_role_name === "string"), "isSsoProfile"); - -// src/resolveSSOCredentials.ts -var import_token_providers = __nccwpck_require__(52843); -var import_property_provider = __nccwpck_require__(79721); -var import_shared_ini_file_loader = __nccwpck_require__(43507); -var SHOULD_FAIL_CREDENTIAL_CHAIN = false; -var resolveSSOCredentials = /* @__PURE__ */ __name(async ({ - ssoStartUrl, - ssoSession, - ssoAccountId, - ssoRegion, - ssoRoleName, - ssoClient, - clientConfig, - profile, - logger -}) => { - let token; - const refreshMessage = `To refresh this SSO session run aws sso login with the corresponding profile.`; - if (ssoSession) { - try { - const _token = await (0, import_token_providers.fromSso)({ profile })(); - token = { - accessToken: _token.token, - expiresAt: new Date(_token.expiration).toISOString() - }; - } catch (e) { - throw new import_property_provider.CredentialsProviderError(e.message, { - tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN, - logger - }); - } - } else { - try { - token = await (0, import_shared_ini_file_loader.getSSOTokenFromFile)(ssoStartUrl); - } catch (e) { - throw new import_property_provider.CredentialsProviderError(`The SSO session associated with this profile is invalid. ${refreshMessage}`, { - tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN, - logger - }); - } - } - if (new Date(token.expiresAt).getTime() - Date.now() <= 0) { - throw new import_property_provider.CredentialsProviderError(`The SSO session associated with this profile has expired. ${refreshMessage}`, { - tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN, - logger - }); - } - const { accessToken } = token; - const { SSOClient: SSOClient2, GetRoleCredentialsCommand: GetRoleCredentialsCommand2 } = await Promise.resolve().then(() => (init_loadSso(), loadSso_exports)); - const sso = ssoClient || new SSOClient2( - Object.assign({}, clientConfig ?? {}, { - region: (clientConfig == null ? void 0 : clientConfig.region) ?? ssoRegion - }) - ); - let ssoResp; - try { - ssoResp = await sso.send( - new GetRoleCredentialsCommand2({ - accountId: ssoAccountId, - roleName: ssoRoleName, - accessToken - }) - ); - } catch (e) { - throw new import_property_provider.CredentialsProviderError(e, { - tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN, - logger - }); - } - const { - roleCredentials: { accessKeyId, secretAccessKey, sessionToken, expiration, credentialScope, accountId } = {} - } = ssoResp; - if (!accessKeyId || !secretAccessKey || !sessionToken || !expiration) { - throw new import_property_provider.CredentialsProviderError("SSO returns an invalid temporary credential.", { - tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN, - logger - }); - } - return { - accessKeyId, - secretAccessKey, - sessionToken, - expiration: new Date(expiration), - ...credentialScope && { credentialScope }, - ...accountId && { accountId } - }; -}, "resolveSSOCredentials"); - -// src/validateSsoProfile.ts - -var validateSsoProfile = /* @__PURE__ */ __name((profile, logger) => { - const { sso_start_url, sso_account_id, sso_region, sso_role_name } = profile; - if (!sso_start_url || !sso_account_id || !sso_region || !sso_role_name) { - throw new import_property_provider.CredentialsProviderError( - `Profile is configured with invalid SSO credentials. Required parameters "sso_account_id", "sso_region", "sso_role_name", "sso_start_url". Got ${Object.keys(profile).join( - ", " - )} -Reference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`, - { tryNextLink: false, logger } - ); - } - return profile; -}, "validateSsoProfile"); - -// src/fromSSO.ts -var fromSSO = /* @__PURE__ */ __name((init = {}) => async () => { - var _a; - (_a = init.logger) == null ? void 0 : _a.debug("@aws-sdk/credential-provider-sso - fromSSO"); - const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init; - const { ssoClient } = init; - const profileName = (0, import_shared_ini_file_loader.getProfileName)(init); - if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) { - const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init); - const profile = profiles[profileName]; - if (!profile) { - throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} was not found.`, { logger: init.logger }); - } - if (!isSsoProfile(profile)) { - throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} is not configured with SSO credentials.`, { - logger: init.logger - }); - } - if (profile == null ? void 0 : profile.sso_session) { - const ssoSessions = await (0, import_shared_ini_file_loader.loadSsoSessionData)(init); - const session = ssoSessions[profile.sso_session]; - const conflictMsg = ` configurations in profile ${profileName} and sso-session ${profile.sso_session}`; - if (ssoRegion && ssoRegion !== session.sso_region) { - throw new import_property_provider.CredentialsProviderError(`Conflicting SSO region` + conflictMsg, { - tryNextLink: false, - logger: init.logger - }); - } - if (ssoStartUrl && ssoStartUrl !== session.sso_start_url) { - throw new import_property_provider.CredentialsProviderError(`Conflicting SSO start_url` + conflictMsg, { - tryNextLink: false, - logger: init.logger - }); - } - profile.sso_region = session.sso_region; - profile.sso_start_url = session.sso_start_url; - } - const { sso_start_url, sso_account_id, sso_region, sso_role_name, sso_session } = validateSsoProfile( - profile, - init.logger - ); - return resolveSSOCredentials({ - ssoStartUrl: sso_start_url, - ssoSession: sso_session, - ssoAccountId: sso_account_id, - ssoRegion: sso_region, - ssoRoleName: sso_role_name, - ssoClient, - clientConfig: init.clientConfig, - profile: profileName - }); - } else if (!ssoStartUrl || !ssoAccountId || !ssoRegion || !ssoRoleName) { - throw new import_property_provider.CredentialsProviderError( - 'Incomplete configuration. The fromSSO() argument hash must include "ssoStartUrl", "ssoAccountId", "ssoRegion", "ssoRoleName"', - { tryNextLink: false, logger: init.logger } - ); - } else { - return resolveSSOCredentials({ - ssoStartUrl, - ssoSession, - ssoAccountId, - ssoRegion, - ssoRoleName, - ssoClient, - clientConfig: init.clientConfig, - profile: profileName - }); - } -}, "fromSSO"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); + /** + * @deprecated use static HttpRequest.clone(request) instead. It's not safe to call + * this method because {@link HttpRequest.isInstance} incorrectly + * asserts that IHttpRequest (interface) objects are of type HttpRequest (class). + */ + clone() { + return _HttpRequest.clone(this) + } + } + function cloneQuery(query) { + return Object.keys(query).reduce((carry, paramName) => { + const param = query[paramName] + return { + ...carry, + [paramName]: Array.isArray(param) ? [...param] : param + } + }, {}) + } + __name(cloneQuery, 'cloneQuery') + + // src/httpResponse.ts + var HttpResponse = class { + static { + __name(this, 'HttpResponse') + } + constructor(options) { + this.statusCode = options.statusCode + this.reason = options.reason + this.headers = options.headers || {} + this.body = options.body + } + static isInstance(response) { + if (!response) return false + const resp = response + return ( + typeof resp.statusCode === 'number' && + typeof resp.headers === 'object' + ) + } + } + // src/isValidHostname.ts + function isValidHostname(hostname) { + const hostPattern = /^[a-z0-9][a-z0-9\.\-]*[a-z0-9]$/ + return hostPattern.test(hostname) + } + __name(isValidHostname, 'isValidHostname') + // Annotate the CommonJS export names for ESM import in node: + 0 && 0 -/***/ }), + /***/ + }, -/***/ 35614: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + /***/ 39025: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -"use strict"; + // src/index.ts + var src_exports = {} + __export(src_exports, { + buildQueryString: () => buildQueryString + }) + module.exports = __toCommonJS(src_exports) + var import_util_uri_escape = __nccwpck_require__(6480) + function buildQueryString(query) { + const parts = [] + for (let key of Object.keys(query).sort()) { + const value = query[key] + key = (0, import_util_uri_escape.escapeUri)(key) + if (Array.isArray(value)) { + for (let i = 0, iLen = value.length; i < iLen; i++) { + parts.push( + `${key}=${(0, import_util_uri_escape.escapeUri)(value[i])}` + ) + } + } else { + let qsEntry = key + if (value || typeof value === 'string') { + qsEntry += `=${(0, import_util_uri_escape.escapeUri)(value)}` + } + parts.push(qsEntry) + } + } + return parts.join('&') + } + __name(buildQueryString, 'buildQueryString') + // Annotate the CommonJS export names for ESM import in node: -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.fromTokenFile = void 0; -const property_provider_1 = __nccwpck_require__(79721); -const fs_1 = __nccwpck_require__(57147); -const fromWebToken_1 = __nccwpck_require__(47905); -const ENV_TOKEN_FILE = "AWS_WEB_IDENTITY_TOKEN_FILE"; -const ENV_ROLE_ARN = "AWS_ROLE_ARN"; -const ENV_ROLE_SESSION_NAME = "AWS_ROLE_SESSION_NAME"; -const fromTokenFile = (init = {}) => async () => { - init.logger?.debug("@aws-sdk/credential-provider-web-identity - fromTokenFile"); - const webIdentityTokenFile = init?.webIdentityTokenFile ?? process.env[ENV_TOKEN_FILE]; - const roleArn = init?.roleArn ?? process.env[ENV_ROLE_ARN]; - const roleSessionName = init?.roleSessionName ?? process.env[ENV_ROLE_SESSION_NAME]; - if (!webIdentityTokenFile || !roleArn) { - throw new property_provider_1.CredentialsProviderError("Web identity configuration not specified", { - logger: init.logger, - }); - } - return (0, fromWebToken_1.fromWebToken)({ - ...init, - webIdentityToken: (0, fs_1.readFileSync)(webIdentityTokenFile, { encoding: "ascii" }), - roleArn, - roleSessionName, - })(); -}; -exports.fromTokenFile = fromTokenFile; + 0 && 0 + /***/ + }, -/***/ }), + /***/ 40153: /***/ module => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -/***/ 47905: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + // src/index.ts + var src_exports = {} + __export(src_exports, { + parseQueryString: () => parseQueryString + }) + module.exports = __toCommonJS(src_exports) + function parseQueryString(querystring) { + const query = {} + querystring = querystring.replace(/^\?/, '') + if (querystring) { + for (const pair of querystring.split('&')) { + let [key, value = null] = pair.split('=') + key = decodeURIComponent(key) + if (value) { + value = decodeURIComponent(value) + } + if (!(key in query)) { + query[key] = value + } else if (Array.isArray(query[key])) { + query[key].push(value) + } else { + query[key] = [query[key], value] + } + } + } + return query + } + __name(parseQueryString, 'parseQueryString') + // Annotate the CommonJS export names for ESM import in node: -"use strict"; + 0 && 0 -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.fromWebToken = void 0; -const fromWebToken = (init) => async () => { - init.logger?.debug("@aws-sdk/credential-provider-web-identity - fromWebToken"); - const { roleArn, roleSessionName, webIdentityToken, providerId, policyArns, policy, durationSeconds } = init; - let { roleAssumerWithWebIdentity } = init; - if (!roleAssumerWithWebIdentity) { - const { getDefaultRoleAssumerWithWebIdentity } = await Promise.resolve().then(() => __importStar(__nccwpck_require__(52209))); - roleAssumerWithWebIdentity = getDefaultRoleAssumerWithWebIdentity({ - ...init.clientConfig, - credentialProviderLogger: init.logger, - parentClientConfig: init.parentClientConfig, - }, init.clientPlugins); - } - return roleAssumerWithWebIdentity({ - RoleArn: roleArn, - RoleSessionName: roleSessionName ?? `aws-sdk-js-session-${Date.now()}`, - WebIdentityToken: webIdentityToken, - ProviderId: providerId, - PolicyArns: policyArns, - Policy: policy, - DurationSeconds: durationSeconds, - }); -}; -exports.fromWebToken = fromWebToken; - - -/***/ }), - -/***/ 15646: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -module.exports = __toCommonJS(src_exports); -__reExport(src_exports, __nccwpck_require__(35614), module.exports); -__reExport(src_exports, __nccwpck_require__(47905), module.exports); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 22545: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - getHostHeaderPlugin: () => getHostHeaderPlugin, - hostHeaderMiddleware: () => hostHeaderMiddleware, - hostHeaderMiddlewareOptions: () => hostHeaderMiddlewareOptions, - resolveHostHeaderConfig: () => resolveHostHeaderConfig -}); -module.exports = __toCommonJS(src_exports); -var import_protocol_http = __nccwpck_require__(64418); -function resolveHostHeaderConfig(input) { - return input; -} -__name(resolveHostHeaderConfig, "resolveHostHeaderConfig"); -var hostHeaderMiddleware = /* @__PURE__ */ __name((options) => (next) => async (args) => { - if (!import_protocol_http.HttpRequest.isInstance(args.request)) - return next(args); - const { request } = args; - const { handlerProtocol = "" } = options.requestHandler.metadata || {}; - if (handlerProtocol.indexOf("h2") >= 0 && !request.headers[":authority"]) { - delete request.headers["host"]; - request.headers[":authority"] = request.hostname + (request.port ? ":" + request.port : ""); - } else if (!request.headers["host"]) { - let host = request.hostname; - if (request.port != null) - host += `:${request.port}`; - request.headers["host"] = host; - } - return next(args); -}, "hostHeaderMiddleware"); -var hostHeaderMiddlewareOptions = { - name: "hostHeaderMiddleware", - step: "build", - priority: "low", - tags: ["HOST"], - override: true -}; -var getHostHeaderPlugin = /* @__PURE__ */ __name((options) => ({ - applyToStack: (clientStack) => { - clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions); - } -}), "getHostHeaderPlugin"); -// Annotate the CommonJS export names for ESM import in node: + /***/ + }, -0 && (0); + /***/ 4863: /***/ module => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + // src/index.ts + var src_exports = {} + __export(src_exports, { + isClockSkewCorrectedError: () => isClockSkewCorrectedError, + isClockSkewError: () => isClockSkewError, + isRetryableByTrait: () => isRetryableByTrait, + isServerError: () => isServerError, + isThrottlingError: () => isThrottlingError, + isTransientError: () => isTransientError + }) + module.exports = __toCommonJS(src_exports) + + // src/constants.ts + var CLOCK_SKEW_ERROR_CODES = [ + 'AuthFailure', + 'InvalidSignatureException', + 'RequestExpired', + 'RequestInTheFuture', + 'RequestTimeTooSkewed', + 'SignatureDoesNotMatch' + ] + var THROTTLING_ERROR_CODES = [ + 'BandwidthLimitExceeded', + 'EC2ThrottledException', + 'LimitExceededException', + 'PriorRequestNotComplete', + 'ProvisionedThroughputExceededException', + 'RequestLimitExceeded', + 'RequestThrottled', + 'RequestThrottledException', + 'SlowDown', + 'ThrottledException', + 'Throttling', + 'ThrottlingException', + 'TooManyRequestsException', + 'TransactionInProgressException' + // DynamoDB + ] + var TRANSIENT_ERROR_CODES = [ + 'TimeoutError', + 'RequestTimeout', + 'RequestTimeoutException' + ] + var TRANSIENT_ERROR_STATUS_CODES = [500, 502, 503, 504] + var NODEJS_TIMEOUT_ERROR_CODES = [ + 'ECONNRESET', + 'ECONNREFUSED', + 'EPIPE', + 'ETIMEDOUT' + ] + // src/index.ts + var isRetryableByTrait = /* @__PURE__ */ __name( + error => error.$retryable !== void 0, + 'isRetryableByTrait' + ) + var isClockSkewError = /* @__PURE__ */ __name( + error => CLOCK_SKEW_ERROR_CODES.includes(error.name), + 'isClockSkewError' + ) + var isClockSkewCorrectedError = /* @__PURE__ */ __name( + error => error.$metadata?.clockSkewCorrected, + 'isClockSkewCorrectedError' + ) + var isThrottlingError = /* @__PURE__ */ __name( + error => + error.$metadata?.httpStatusCode === 429 || + THROTTLING_ERROR_CODES.includes(error.name) || + error.$retryable?.throttling == true, + 'isThrottlingError' + ) + var isTransientError = /* @__PURE__ */ __name( + (error, depth = 0) => + isClockSkewCorrectedError(error) || + TRANSIENT_ERROR_CODES.includes(error.name) || + NODEJS_TIMEOUT_ERROR_CODES.includes(error?.code || '') || + TRANSIENT_ERROR_STATUS_CODES.includes( + error.$metadata?.httpStatusCode || 0 + ) || + (error.cause !== void 0 && + depth <= 10 && + isTransientError(error.cause, depth + 1)), + 'isTransientError' + ) + var isServerError = /* @__PURE__ */ __name(error => { + if (error.$metadata?.httpStatusCode !== void 0) { + const statusCode = error.$metadata.httpStatusCode + if ( + 500 <= statusCode && + statusCode <= 599 && + !isTransientError(error) + ) { + return true + } + return false + } + return false + }, 'isServerError') + // Annotate the CommonJS export names for ESM import in node: -/***/ }), + 0 && 0 -/***/ 20014: -/***/ ((module) => { + /***/ + }, -"use strict"; + /***/ 14235: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getHomeDir = void 0 + const os_1 = __nccwpck_require__(22037) + const path_1 = __nccwpck_require__(71017) + const homeDirCache = {} + const getHomeDirCacheKey = () => { + if (process && process.geteuid) { + return `${process.geteuid()}` + } + return 'DEFAULT' + } + const getHomeDir = () => { + const { + HOME, + USERPROFILE, + HOMEPATH, + HOMEDRIVE = `C:${path_1.sep}` + } = process.env + if (HOME) return HOME + if (USERPROFILE) return USERPROFILE + if (HOMEPATH) return `${HOMEDRIVE}${HOMEPATH}` + const homeDirCacheKey = getHomeDirCacheKey() + if (!homeDirCache[homeDirCacheKey]) + homeDirCache[homeDirCacheKey] = (0, os_1.homedir)() + return homeDirCache[homeDirCacheKey] + } + exports.getHomeDir = getHomeDir + + /***/ + }, -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - getLoggerPlugin: () => getLoggerPlugin, - loggerMiddleware: () => loggerMiddleware, - loggerMiddlewareOptions: () => loggerMiddlewareOptions -}); -module.exports = __toCommonJS(src_exports); - -// src/loggerMiddleware.ts -var loggerMiddleware = /* @__PURE__ */ __name(() => (next, context) => async (args) => { - var _a, _b; - try { - const response = await next(args); - const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context; - const { overrideInputFilterSensitiveLog, overrideOutputFilterSensitiveLog } = dynamoDbDocumentClientOptions; - const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog; - const outputFilterSensitiveLog = overrideOutputFilterSensitiveLog ?? context.outputFilterSensitiveLog; - const { $metadata, ...outputWithoutMetadata } = response.output; - (_a = logger == null ? void 0 : logger.info) == null ? void 0 : _a.call(logger, { - clientName, - commandName, - input: inputFilterSensitiveLog(args.input), - output: outputFilterSensitiveLog(outputWithoutMetadata), - metadata: $metadata - }); - return response; - } catch (error) { - const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context; - const { overrideInputFilterSensitiveLog } = dynamoDbDocumentClientOptions; - const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog; - (_b = logger == null ? void 0 : logger.error) == null ? void 0 : _b.call(logger, { - clientName, - commandName, - input: inputFilterSensitiveLog(args.input), - error, - metadata: error.$metadata - }); - throw error; - } -}, "loggerMiddleware"); -var loggerMiddlewareOptions = { - name: "loggerMiddleware", - tags: ["LOGGER"], - step: "initialize", - override: true -}; -var getLoggerPlugin = /* @__PURE__ */ __name((options) => ({ - applyToStack: (clientStack) => { - clientStack.add(loggerMiddleware(), loggerMiddlewareOptions); - } -}), "getLoggerPlugin"); -// Annotate the CommonJS export names for ESM import in node: + /***/ 50193: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getSSOTokenFilepath = void 0 + const crypto_1 = __nccwpck_require__(6113) + const path_1 = __nccwpck_require__(71017) + const getHomeDir_1 = __nccwpck_require__(14235) + const getSSOTokenFilepath = id => { + const hasher = (0, crypto_1.createHash)('sha1') + const cacheName = hasher.update(id).digest('hex') + return (0, path_1.join)( + (0, getHomeDir_1.getHomeDir)(), + '.aws', + 'sso', + 'cache', + `${cacheName}.json` + ) + } + exports.getSSOTokenFilepath = getSSOTokenFilepath -0 && (0); + /***/ + }, + /***/ 15040: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getSSOTokenFromFile = void 0 + const fs_1 = __nccwpck_require__(57147) + const getSSOTokenFilepath_1 = __nccwpck_require__(50193) + const { readFile } = fs_1.promises + const getSSOTokenFromFile = async id => { + const ssoTokenFilepath = (0, getSSOTokenFilepath_1.getSSOTokenFilepath)( + id + ) + const ssoTokenText = await readFile(ssoTokenFilepath, 'utf8') + return JSON.parse(ssoTokenText) + } + exports.getSSOTokenFromFile = getSSOTokenFromFile + /***/ + }, -/***/ }), + /***/ 28586: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __reExport = (target, mod, secondTarget) => ( + __copyProps(target, mod, 'default'), + secondTarget && __copyProps(secondTarget, mod, 'default') + ) + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + CONFIG_PREFIX_SEPARATOR: () => CONFIG_PREFIX_SEPARATOR, + DEFAULT_PROFILE: () => DEFAULT_PROFILE, + ENV_PROFILE: () => ENV_PROFILE, + getProfileName: () => getProfileName, + loadSharedConfigFiles: () => loadSharedConfigFiles, + loadSsoSessionData: () => loadSsoSessionData, + parseKnownFiles: () => parseKnownFiles + }) + module.exports = __toCommonJS(src_exports) + __reExport(src_exports, __nccwpck_require__(14235), module.exports) + + // src/getProfileName.ts + var ENV_PROFILE = 'AWS_PROFILE' + var DEFAULT_PROFILE = 'default' + var getProfileName = /* @__PURE__ */ __name( + init => init.profile || process.env[ENV_PROFILE] || DEFAULT_PROFILE, + 'getProfileName' + ) -/***/ 85525: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + // src/index.ts + __reExport(src_exports, __nccwpck_require__(50193), module.exports) + __reExport(src_exports, __nccwpck_require__(15040), module.exports) + + // src/loadSharedConfigFiles.ts + + // src/getConfigData.ts + var import_types = __nccwpck_require__(63592) + var getConfigData = /* @__PURE__ */ __name( + data => + Object.entries(data) + .filter(([key]) => { + const indexOfSeparator = key.indexOf(CONFIG_PREFIX_SEPARATOR) + if (indexOfSeparator === -1) { + return false + } + return Object.values(import_types.IniSectionType).includes( + key.substring(0, indexOfSeparator) + ) + }) + .reduce( + (acc, [key, value]) => { + const indexOfSeparator = key.indexOf(CONFIG_PREFIX_SEPARATOR) + const updatedKey = + key.substring(0, indexOfSeparator) === + import_types.IniSectionType.PROFILE + ? key.substring(indexOfSeparator + 1) + : key + acc[updatedKey] = value + return acc + }, + { + // Populate default profile, if present. + ...(data.default && { default: data.default }) + } + ), + 'getConfigData' + ) -"use strict"; + // src/getConfigFilepath.ts + var import_path = __nccwpck_require__(71017) + var import_getHomeDir = __nccwpck_require__(14235) + var ENV_CONFIG_PATH = 'AWS_CONFIG_FILE' + var getConfigFilepath = /* @__PURE__ */ __name( + () => + process.env[ENV_CONFIG_PATH] || + (0, import_path.join)( + (0, import_getHomeDir.getHomeDir)(), + '.aws', + 'config' + ), + 'getConfigFilepath' + ) -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - addRecursionDetectionMiddlewareOptions: () => addRecursionDetectionMiddlewareOptions, - getRecursionDetectionPlugin: () => getRecursionDetectionPlugin, - recursionDetectionMiddleware: () => recursionDetectionMiddleware -}); -module.exports = __toCommonJS(src_exports); -var import_protocol_http = __nccwpck_require__(64418); -var TRACE_ID_HEADER_NAME = "X-Amzn-Trace-Id"; -var ENV_LAMBDA_FUNCTION_NAME = "AWS_LAMBDA_FUNCTION_NAME"; -var ENV_TRACE_ID = "_X_AMZN_TRACE_ID"; -var recursionDetectionMiddleware = /* @__PURE__ */ __name((options) => (next) => async (args) => { - const { request } = args; - if (!import_protocol_http.HttpRequest.isInstance(request) || options.runtime !== "node" || request.headers.hasOwnProperty(TRACE_ID_HEADER_NAME)) { - return next(args); - } - const functionName = process.env[ENV_LAMBDA_FUNCTION_NAME]; - const traceId = process.env[ENV_TRACE_ID]; - const nonEmptyString = /* @__PURE__ */ __name((str) => typeof str === "string" && str.length > 0, "nonEmptyString"); - if (nonEmptyString(functionName) && nonEmptyString(traceId)) { - request.headers[TRACE_ID_HEADER_NAME] = traceId; - } - return next({ - ...args, - request - }); -}, "recursionDetectionMiddleware"); -var addRecursionDetectionMiddlewareOptions = { - step: "build", - tags: ["RECURSION_DETECTION"], - name: "recursionDetectionMiddleware", - override: true, - priority: "low" -}; -var getRecursionDetectionPlugin = /* @__PURE__ */ __name((options) => ({ - applyToStack: (clientStack) => { - clientStack.add(recursionDetectionMiddleware(options), addRecursionDetectionMiddlewareOptions); - } -}), "getRecursionDetectionPlugin"); -// Annotate the CommonJS export names for ESM import in node: + // src/getCredentialsFilepath.ts + + var import_getHomeDir2 = __nccwpck_require__(14235) + var ENV_CREDENTIALS_PATH = 'AWS_SHARED_CREDENTIALS_FILE' + var getCredentialsFilepath = /* @__PURE__ */ __name( + () => + process.env[ENV_CREDENTIALS_PATH] || + (0, import_path.join)( + (0, import_getHomeDir2.getHomeDir)(), + '.aws', + 'credentials' + ), + 'getCredentialsFilepath' + ) -0 && (0); + // src/loadSharedConfigFiles.ts + var import_getHomeDir3 = __nccwpck_require__(14235) + + // src/parseIni.ts + + var prefixKeyRegex = /^([\w-]+)\s(["'])?([\w-@\+\.%:/]+)\2$/ + var profileNameBlockList = ['__proto__', 'profile __proto__'] + var parseIni = /* @__PURE__ */ __name(iniData => { + const map = {} + let currentSection + let currentSubSection + for (const iniLine of iniData.split(/\r?\n/)) { + const trimmedLine = iniLine.split(/(^|\s)[;#]/)[0].trim() + const isSection = + trimmedLine[0] === '[' && + trimmedLine[trimmedLine.length - 1] === ']' + if (isSection) { + currentSection = void 0 + currentSubSection = void 0 + const sectionName = trimmedLine.substring(1, trimmedLine.length - 1) + const matches = prefixKeyRegex.exec(sectionName) + if (matches) { + const [, prefix, , name] = matches + if (Object.values(import_types.IniSectionType).includes(prefix)) { + currentSection = [prefix, name].join(CONFIG_PREFIX_SEPARATOR) + } + } else { + currentSection = sectionName + } + if (profileNameBlockList.includes(sectionName)) { + throw new Error(`Found invalid profile name "${sectionName}"`) + } + } else if (currentSection) { + const indexOfEqualsSign = trimmedLine.indexOf('=') + if (![0, -1].includes(indexOfEqualsSign)) { + const [name, value] = [ + trimmedLine.substring(0, indexOfEqualsSign).trim(), + trimmedLine.substring(indexOfEqualsSign + 1).trim() + ] + if (value === '') { + currentSubSection = name + } else { + if (currentSubSection && iniLine.trimStart() === iniLine) { + currentSubSection = void 0 + } + map[currentSection] = map[currentSection] || {} + const key = currentSubSection + ? [currentSubSection, name].join(CONFIG_PREFIX_SEPARATOR) + : name + map[currentSection][key] = value + } + } + } + } + return map + }, 'parseIni') + + // src/loadSharedConfigFiles.ts + var import_slurpFile = __nccwpck_require__(17020) + var swallowError = /* @__PURE__ */ __name(() => ({}), 'swallowError') + var CONFIG_PREFIX_SEPARATOR = '.' + var loadSharedConfigFiles = /* @__PURE__ */ __name(async (init = {}) => { + const { + filepath = getCredentialsFilepath(), + configFilepath = getConfigFilepath() + } = init + const homeDir = (0, import_getHomeDir3.getHomeDir)() + const relativeHomeDirPrefix = '~/' + let resolvedFilepath = filepath + if (filepath.startsWith(relativeHomeDirPrefix)) { + resolvedFilepath = (0, import_path.join)(homeDir, filepath.slice(2)) + } + let resolvedConfigFilepath = configFilepath + if (configFilepath.startsWith(relativeHomeDirPrefix)) { + resolvedConfigFilepath = (0, import_path.join)( + homeDir, + configFilepath.slice(2) + ) + } + const parsedFiles = await Promise.all([ + (0, import_slurpFile.slurpFile)(resolvedConfigFilepath, { + ignoreCache: init.ignoreCache + }) + .then(parseIni) + .then(getConfigData) + .catch(swallowError), + (0, import_slurpFile.slurpFile)(resolvedFilepath, { + ignoreCache: init.ignoreCache + }) + .then(parseIni) + .catch(swallowError) + ]) + return { + configFile: parsedFiles[0], + credentialsFile: parsedFiles[1] + } + }, 'loadSharedConfigFiles') + // src/getSsoSessionData.ts + var 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' + ) -/***/ }), + // src/loadSsoSessionData.ts + var import_slurpFile2 = __nccwpck_require__(17020) + var swallowError2 = /* @__PURE__ */ __name(() => ({}), 'swallowError') + var loadSsoSessionData = /* @__PURE__ */ __name( + async (init = {}) => + (0, import_slurpFile2.slurpFile)( + init.configFilepath ?? getConfigFilepath() + ) + .then(parseIni) + .then(getSsoSessionData) + .catch(swallowError2), + 'loadSsoSessionData' + ) -/***/ 64688: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + // src/mergeConfigFiles.ts + var mergeConfigFiles = /* @__PURE__ */ __name((...files) => { + const merged = {} + for (const file of files) { + for (const [key, values] of Object.entries(file)) { + if (merged[key] !== void 0) { + Object.assign(merged[key], values) + } else { + merged[key] = values + } + } + } + return merged + }, 'mergeConfigFiles') -"use strict"; + // src/parseKnownFiles.ts + var parseKnownFiles = /* @__PURE__ */ __name(async init => { + const parsedFiles = await loadSharedConfigFiles(init) + return mergeConfigFiles( + parsedFiles.configFile, + parsedFiles.credentialsFile + ) + }, 'parseKnownFiles') + // Annotate the CommonJS export names for ESM import in node: -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - getUserAgentMiddlewareOptions: () => getUserAgentMiddlewareOptions, - getUserAgentPlugin: () => getUserAgentPlugin, - resolveUserAgentConfig: () => resolveUserAgentConfig, - userAgentMiddleware: () => userAgentMiddleware -}); -module.exports = __toCommonJS(src_exports); - -// src/configurations.ts -function resolveUserAgentConfig(input) { - return { - ...input, - customUserAgent: typeof input.customUserAgent === "string" ? [[input.customUserAgent]] : input.customUserAgent - }; -} -__name(resolveUserAgentConfig, "resolveUserAgentConfig"); - -// src/user-agent-middleware.ts -var import_util_endpoints = __nccwpck_require__(13350); -var import_protocol_http = __nccwpck_require__(64418); - -// src/constants.ts -var USER_AGENT = "user-agent"; -var X_AMZ_USER_AGENT = "x-amz-user-agent"; -var SPACE = " "; -var UA_NAME_SEPARATOR = "/"; -var UA_NAME_ESCAPE_REGEX = /[^\!\$\%\&\'\*\+\-\.\^\_\`\|\~\d\w]/g; -var UA_VALUE_ESCAPE_REGEX = /[^\!\$\%\&\'\*\+\-\.\^\_\`\|\~\d\w\#]/g; -var UA_ESCAPE_CHAR = "-"; - -// src/user-agent-middleware.ts -var userAgentMiddleware = /* @__PURE__ */ __name((options) => (next, context) => async (args) => { - var _a, _b; - const { request } = args; - if (!import_protocol_http.HttpRequest.isInstance(request)) - return next(args); - const { headers } = request; - const userAgent = ((_a = context == null ? void 0 : context.userAgent) == null ? void 0 : _a.map(escapeUserAgent)) || []; - const defaultUserAgent = (await options.defaultUserAgentProvider()).map(escapeUserAgent); - const customUserAgent = ((_b = options == null ? void 0 : options.customUserAgent) == null ? void 0 : _b.map(escapeUserAgent)) || []; - const prefix = (0, import_util_endpoints.getUserAgentPrefix)(); - const sdkUserAgentValue = (prefix ? [prefix] : []).concat([...defaultUserAgent, ...userAgent, ...customUserAgent]).join(SPACE); - const normalUAValue = [ - ...defaultUserAgent.filter((section) => section.startsWith("aws-sdk-")), - ...customUserAgent - ].join(SPACE); - if (options.runtime !== "browser") { - if (normalUAValue) { - headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT] ? `${headers[USER_AGENT]} ${normalUAValue}` : normalUAValue; - } - headers[USER_AGENT] = sdkUserAgentValue; - } else { - headers[X_AMZ_USER_AGENT] = sdkUserAgentValue; - } - return next({ - ...args, - request - }); -}, "userAgentMiddleware"); -var escapeUserAgent = /* @__PURE__ */ __name((userAgentPair) => { - var _a; - const name = userAgentPair[0].split(UA_NAME_SEPARATOR).map((part) => part.replace(UA_NAME_ESCAPE_REGEX, UA_ESCAPE_CHAR)).join(UA_NAME_SEPARATOR); - const version = (_a = userAgentPair[1]) == null ? void 0 : _a.replace(UA_VALUE_ESCAPE_REGEX, UA_ESCAPE_CHAR); - const prefixSeparatorIndex = name.indexOf(UA_NAME_SEPARATOR); - const prefix = name.substring(0, prefixSeparatorIndex); - let uaName = name.substring(prefixSeparatorIndex + 1); - if (prefix === "api") { - uaName = uaName.toLowerCase(); - } - return [prefix, uaName, version].filter((item) => item && item.length > 0).reduce((acc, item, index) => { - switch (index) { - case 0: - return item; - case 1: - return `${acc}/${item}`; - default: - return `${acc}#${item}`; - } - }, ""); -}, "escapeUserAgent"); -var getUserAgentMiddlewareOptions = { - name: "getUserAgentMiddleware", - step: "build", - priority: "low", - tags: ["SET_USER_AGENT", "USER_AGENT"], - override: true -}; -var getUserAgentPlugin = /* @__PURE__ */ __name((config) => ({ - applyToStack: (clientStack) => { - clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions); - } -}), "getUserAgentPlugin"); -// Annotate the CommonJS export names for ESM import in node: + 0 && 0 -0 && (0); + /***/ + }, + /***/ 17020: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.slurpFile = void 0 + const fs_1 = __nccwpck_require__(57147) + const { readFile } = fs_1.promises + const filePromisesHash = {} + const slurpFile = (path, options) => { + if ( + !filePromisesHash[path] || + (options === null || options === void 0 + ? void 0 + : options.ignoreCache) + ) { + filePromisesHash[path] = readFile(path, 'utf8') + } + return filePromisesHash[path] + } + exports.slurpFile = slurpFile + /***/ + }, -/***/ }), + /***/ 55499: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + SignatureV4: () => SignatureV4, + clearCredentialCache: () => clearCredentialCache, + createScope: () => createScope, + getCanonicalHeaders: () => getCanonicalHeaders, + getCanonicalQuery: () => getCanonicalQuery, + getPayloadHash: () => getPayloadHash, + getSigningKey: () => getSigningKey, + moveHeadersToQuery: () => moveHeadersToQuery, + prepareRequest: () => prepareRequest + }) + module.exports = __toCommonJS(src_exports) + + // src/SignatureV4.ts + + var import_util_middleware = __nccwpck_require__(14298) + + var import_util_utf84 = __nccwpck_require__(76749) + + // src/constants.ts + var ALGORITHM_QUERY_PARAM = 'X-Amz-Algorithm' + var CREDENTIAL_QUERY_PARAM = 'X-Amz-Credential' + var AMZ_DATE_QUERY_PARAM = 'X-Amz-Date' + var SIGNED_HEADERS_QUERY_PARAM = 'X-Amz-SignedHeaders' + var EXPIRES_QUERY_PARAM = 'X-Amz-Expires' + var SIGNATURE_QUERY_PARAM = 'X-Amz-Signature' + var TOKEN_QUERY_PARAM = 'X-Amz-Security-Token' + var AUTH_HEADER = 'authorization' + var AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase() + var DATE_HEADER = 'date' + var GENERATED_HEADERS = [AUTH_HEADER, AMZ_DATE_HEADER, DATE_HEADER] + var SIGNATURE_HEADER = SIGNATURE_QUERY_PARAM.toLowerCase() + var SHA256_HEADER = 'x-amz-content-sha256' + var TOKEN_HEADER = TOKEN_QUERY_PARAM.toLowerCase() + var ALWAYS_UNSIGNABLE_HEADERS = { + authorization: true, + 'cache-control': true, + connection: true, + expect: true, + from: true, + 'keep-alive': true, + 'max-forwards': true, + pragma: true, + referer: true, + te: true, + trailer: true, + 'transfer-encoding': true, + upgrade: true, + 'user-agent': true, + 'x-amzn-trace-id': true + } + var PROXY_HEADER_PATTERN = /^proxy-/ + var SEC_HEADER_PATTERN = /^sec-/ + var ALGORITHM_IDENTIFIER = 'AWS4-HMAC-SHA256' + var EVENT_ALGORITHM_IDENTIFIER = 'AWS4-HMAC-SHA256-PAYLOAD' + var UNSIGNED_PAYLOAD = 'UNSIGNED-PAYLOAD' + var MAX_CACHE_SIZE = 50 + var KEY_TYPE_IDENTIFIER = 'aws4_request' + var MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7 + + // src/credentialDerivation.ts + var import_util_hex_encoding = __nccwpck_require__(88310) + var import_util_utf8 = __nccwpck_require__(76749) + var signingKeyCache = {} + var cacheQueue = [] + var createScope = /* @__PURE__ */ __name( + (shortDate, region, service) => + `${shortDate}/${region}/${service}/${KEY_TYPE_IDENTIFIER}`, + 'createScope' + ) + var getSigningKey = /* @__PURE__ */ __name( + async (sha256Constructor, credentials, shortDate, region, service) => { + const credsHash = await hmac( + sha256Constructor, + credentials.secretAccessKey, + credentials.accessKeyId + ) + const cacheKey = `${shortDate}:${region}:${service}:${(0, import_util_hex_encoding.toHex)(credsHash)}:${credentials.sessionToken}` + if (cacheKey in signingKeyCache) { + return signingKeyCache[cacheKey] + } + cacheQueue.push(cacheKey) + while (cacheQueue.length > MAX_CACHE_SIZE) { + delete signingKeyCache[cacheQueue.shift()] + } + let key = `AWS4${credentials.secretAccessKey}` + for (const signable of [ + shortDate, + region, + service, + KEY_TYPE_IDENTIFIER + ]) { + key = await hmac(sha256Constructor, key, signable) + } + return (signingKeyCache[cacheKey] = key) + }, + 'getSigningKey' + ) + var clearCredentialCache = /* @__PURE__ */ __name(() => { + cacheQueue.length = 0 + Object.keys(signingKeyCache).forEach(cacheKey => { + delete signingKeyCache[cacheKey] + }) + }, 'clearCredentialCache') + var hmac = /* @__PURE__ */ __name((ctor, secret, data) => { + const hash = new ctor(secret) + hash.update((0, import_util_utf8.toUint8Array)(data)) + return hash.digest() + }, 'hmac') + + // src/getCanonicalHeaders.ts + var getCanonicalHeaders = /* @__PURE__ */ __name( + ({ headers }, unsignableHeaders, signableHeaders) => { + const canonical = {} + for (const headerName of Object.keys(headers).sort()) { + if (headers[headerName] == void 0) { + continue + } + const canonicalHeaderName = headerName.toLowerCase() + if ( + canonicalHeaderName in ALWAYS_UNSIGNABLE_HEADERS || + unsignableHeaders?.has(canonicalHeaderName) || + PROXY_HEADER_PATTERN.test(canonicalHeaderName) || + SEC_HEADER_PATTERN.test(canonicalHeaderName) + ) { + if ( + !signableHeaders || + (signableHeaders && !signableHeaders.has(canonicalHeaderName)) + ) { + continue + } + } + canonical[canonicalHeaderName] = headers[headerName] + .trim() + .replace(/\s+/g, ' ') + } + return canonical + }, + 'getCanonicalHeaders' + ) -/***/ 59414: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + // src/getCanonicalQuery.ts + var import_util_uri_escape = __nccwpck_require__(6480) + var getCanonicalQuery = /* @__PURE__ */ __name(({ query = {} }) => { + const keys = [] + const serialized = {} + for (const key of Object.keys(query)) { + if (key.toLowerCase() === SIGNATURE_HEADER) { + continue + } + const encodedKey = (0, import_util_uri_escape.escapeUri)(key) + keys.push(encodedKey) + const value = query[key] + if (typeof value === 'string') { + serialized[encodedKey] = + `${encodedKey}=${(0, import_util_uri_escape.escapeUri)(value)}` + } else if (Array.isArray(value)) { + serialized[encodedKey] = value + .slice(0) + .reduce( + (encoded, value2) => + encoded.concat([ + `${encodedKey}=${(0, import_util_uri_escape.escapeUri)(value2)}` + ]), + [] + ) + .sort() + .join('&') + } + } + return keys + .sort() + .map(key => serialized[key]) + .filter(serialized2 => serialized2) + .join('&') + }, 'getCanonicalQuery') + + // src/getPayloadHash.ts + var import_is_array_buffer = __nccwpck_require__(25796) + + var import_util_utf82 = __nccwpck_require__(76749) + var getPayloadHash = /* @__PURE__ */ __name( + async ({ headers, body }, hashConstructor) => { + for (const headerName of Object.keys(headers)) { + if (headerName.toLowerCase() === SHA256_HEADER) { + return headers[headerName] + } + } + if (body == void 0) { + return 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855' + } else if ( + typeof body === 'string' || + ArrayBuffer.isView(body) || + (0, import_is_array_buffer.isArrayBuffer)(body) + ) { + const hashCtor = new hashConstructor() + hashCtor.update((0, import_util_utf82.toUint8Array)(body)) + return (0, import_util_hex_encoding.toHex)(await hashCtor.digest()) + } + return UNSIGNED_PAYLOAD + }, + 'getPayloadHash' + ) -"use strict"; + // src/HeaderFormatter.ts -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.resolveHttpAuthSchemeConfig = exports.defaultSSOOIDCHttpAuthSchemeProvider = exports.defaultSSOOIDCHttpAuthSchemeParametersProvider = void 0; -const core_1 = __nccwpck_require__(11928); -const util_middleware_1 = __nccwpck_require__(14298); -const defaultSSOOIDCHttpAuthSchemeParametersProvider = async (config, context, input) => { - return { - operation: (0, util_middleware_1.getSmithyContext)(context).operation, - region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) || - (() => { - throw new Error("expected `region` to be configured for `aws.auth#sigv4`"); - })(), - }; -}; -exports.defaultSSOOIDCHttpAuthSchemeParametersProvider = defaultSSOOIDCHttpAuthSchemeParametersProvider; -function createAwsAuthSigv4HttpAuthOption(authParameters) { - return { - schemeId: "aws.auth#sigv4", - signingProperties: { - name: "sso-oauth", - region: authParameters.region, - }, - propertiesExtractor: (config, context) => ({ - signingProperties: { - config, - context, - }, - }), - }; -} -function createSmithyApiNoAuthHttpAuthOption(authParameters) { - return { - schemeId: "smithy.api#noAuth", - }; -} -const defaultSSOOIDCHttpAuthSchemeProvider = (authParameters) => { - const options = []; - switch (authParameters.operation) { - case "CreateToken": { - options.push(createSmithyApiNoAuthHttpAuthOption(authParameters)); - break; - } - default: { - options.push(createAwsAuthSigv4HttpAuthOption(authParameters)); + var import_util_utf83 = __nccwpck_require__(76749) + var HeaderFormatter = class { + static { + __name(this, 'HeaderFormatter') + } + format(headers) { + const chunks = [] + for (const headerName of Object.keys(headers)) { + const bytes = (0, import_util_utf83.fromUtf8)(headerName) + chunks.push( + Uint8Array.from([bytes.byteLength]), + bytes, + this.formatHeaderValue(headers[headerName]) + ) + } + const out = new Uint8Array( + chunks.reduce((carry, bytes) => carry + bytes.byteLength, 0) + ) + let position = 0 + for (const chunk of chunks) { + out.set(chunk, position) + position += chunk.byteLength + } + return out + } + formatHeaderValue(header) { + switch (header.type) { + case 'boolean': + return Uint8Array.from([ + header.value ? 0 /* boolTrue */ : 1 /* boolFalse */ + ]) + case 'byte': + return Uint8Array.from([2 /* byte */, header.value]) + case 'short': + const shortView = new DataView(new ArrayBuffer(3)) + shortView.setUint8(0, 3 /* short */) + shortView.setInt16(1, header.value, false) + return new Uint8Array(shortView.buffer) + case 'integer': + const intView = new DataView(new ArrayBuffer(5)) + intView.setUint8(0, 4 /* integer */) + intView.setInt32(1, header.value, false) + return new Uint8Array(intView.buffer) + case 'long': + const longBytes = new Uint8Array(9) + longBytes[0] = 5 /* long */ + longBytes.set(header.value.bytes, 1) + return longBytes + case 'binary': + const binView = new DataView( + new ArrayBuffer(3 + header.value.byteLength) + ) + binView.setUint8(0, 6 /* byteArray */) + binView.setUint16(1, header.value.byteLength, false) + const binBytes = new Uint8Array(binView.buffer) + binBytes.set(header.value, 3) + return binBytes + case 'string': + const utf8Bytes = (0, import_util_utf83.fromUtf8)(header.value) + const strView = new DataView( + new ArrayBuffer(3 + utf8Bytes.byteLength) + ) + strView.setUint8(0, 7 /* string */) + strView.setUint16(1, utf8Bytes.byteLength, false) + const strBytes = new Uint8Array(strView.buffer) + strBytes.set(utf8Bytes, 3) + return strBytes + case 'timestamp': + const tsBytes = new Uint8Array(9) + tsBytes[0] = 8 /* timestamp */ + tsBytes.set(Int64.fromNumber(header.value.valueOf()).bytes, 1) + return tsBytes + case 'uuid': + if (!UUID_PATTERN.test(header.value)) { + throw new Error(`Invalid UUID received: ${header.value}`) + } + const uuidBytes = new Uint8Array(17) + uuidBytes[0] = 9 /* uuid */ + uuidBytes.set( + (0, import_util_hex_encoding.fromHex)( + header.value.replace(/\-/g, '') + ), + 1 + ) + return uuidBytes + } } - } - return options; -}; -exports.defaultSSOOIDCHttpAuthSchemeProvider = defaultSSOOIDCHttpAuthSchemeProvider; -const resolveHttpAuthSchemeConfig = (config) => { - const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config); - return Object.assign(config_0, {}); -}; -exports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig; - - -/***/ }), - -/***/ 60005: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.defaultEndpointResolver = void 0; -const util_endpoints_1 = __nccwpck_require__(65237); -const util_endpoints_2 = __nccwpck_require__(42178); -const ruleset_1 = __nccwpck_require__(90932); -const cache = new util_endpoints_2.EndpointCache({ - size: 50, - params: ["Endpoint", "Region", "UseDualStack", "UseFIPS"], -}); -const defaultEndpointResolver = (endpointParams, context = {}) => { - return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, { - endpointParams: endpointParams, - logger: context.logger, - })); -}; -exports.defaultEndpointResolver = defaultEndpointResolver; -util_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions; - - -/***/ }), - -/***/ 90932: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.ruleSet = void 0; -const u = "required", v = "fn", w = "argv", x = "ref"; -const a = true, b = "isSet", c = "booleanEquals", d = "error", e = "endpoint", f = "tree", g = "PartitionResult", h = "getAttr", i = { [u]: false, "type": "String" }, j = { [u]: true, "default": false, "type": "Boolean" }, k = { [x]: "Endpoint" }, l = { [v]: c, [w]: [{ [x]: "UseFIPS" }, true] }, m = { [v]: c, [w]: [{ [x]: "UseDualStack" }, true] }, n = {}, o = { [v]: h, [w]: [{ [x]: g }, "supportsFIPS"] }, p = { [x]: g }, q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, "supportsDualStack"] }] }, r = [l], s = [m], t = [{ [x]: "Region" }]; -const _data = { version: "1.0", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [v]: b, [w]: [k] }], rules: [{ conditions: r, error: "Invalid Configuration: FIPS and custom endpoint are not supported", type: d }, { conditions: s, error: "Invalid Configuration: Dualstack and custom endpoint are not supported", type: d }, { endpoint: { url: k, properties: n, headers: n }, type: e }], type: f }, { conditions: [{ [v]: b, [w]: t }], rules: [{ conditions: [{ [v]: "aws.partition", [w]: t, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [v]: c, [w]: [a, o] }, q], rules: [{ endpoint: { url: "https://oidc-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", properties: n, headers: n }, type: e }], type: f }, { error: "FIPS and DualStack are enabled, but this partition does not support one or both", type: d }], type: f }, { conditions: r, rules: [{ conditions: [{ [v]: c, [w]: [o, a] }], rules: [{ conditions: [{ [v]: "stringEquals", [w]: [{ [v]: h, [w]: [p, "name"] }, "aws-us-gov"] }], endpoint: { url: "https://oidc.{Region}.amazonaws.com", properties: n, headers: n }, type: e }, { endpoint: { url: "https://oidc-fips.{Region}.{PartitionResult#dnsSuffix}", properties: n, headers: n }, type: e }], type: f }, { error: "FIPS is enabled but this partition does not support FIPS", type: d }], type: f }, { conditions: s, rules: [{ conditions: [q], rules: [{ endpoint: { url: "https://oidc.{Region}.{PartitionResult#dualStackDnsSuffix}", properties: n, headers: n }, type: e }], type: f }, { error: "DualStack is enabled but this partition does not support DualStack", type: d }], type: f }, { endpoint: { url: "https://oidc.{Region}.{PartitionResult#dnsSuffix}", properties: n, headers: n }, type: e }], type: f }], type: f }, { error: "Invalid Configuration: Missing Region", type: d }] }; -exports.ruleSet = _data; - - -/***/ }), - -/***/ 27334: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/submodules/sso-oidc/index.ts -var index_exports = {}; -__export(index_exports, { - $Command: () => import_smithy_client6.Command, - AccessDeniedException: () => AccessDeniedException, - AuthorizationPendingException: () => AuthorizationPendingException, - CreateTokenCommand: () => CreateTokenCommand, - CreateTokenRequestFilterSensitiveLog: () => CreateTokenRequestFilterSensitiveLog, - CreateTokenResponseFilterSensitiveLog: () => CreateTokenResponseFilterSensitiveLog, - ExpiredTokenException: () => ExpiredTokenException, - InternalServerException: () => InternalServerException, - InvalidClientException: () => InvalidClientException, - InvalidGrantException: () => InvalidGrantException, - InvalidRequestException: () => InvalidRequestException, - InvalidScopeException: () => InvalidScopeException, - SSOOIDC: () => SSOOIDC, - SSOOIDCClient: () => SSOOIDCClient, - SSOOIDCServiceException: () => SSOOIDCServiceException, - SlowDownException: () => SlowDownException, - UnauthorizedClientException: () => UnauthorizedClientException, - UnsupportedGrantTypeException: () => UnsupportedGrantTypeException, - __Client: () => import_smithy_client2.Client -}); -module.exports = __toCommonJS(index_exports); - -// src/submodules/sso-oidc/SSOOIDCClient.ts -var import_middleware_host_header = __nccwpck_require__(97378); -var import_middleware_logger = __nccwpck_require__(57779); -var import_middleware_recursion_detection = __nccwpck_require__(35398); -var import_middleware_user_agent = __nccwpck_require__(1834); -var import_config_resolver = __nccwpck_require__(99541); -var import_core = __nccwpck_require__(1004); -var import_middleware_content_length = __nccwpck_require__(51214); -var import_middleware_endpoint = __nccwpck_require__(23435); -var import_middleware_retry = __nccwpck_require__(23737); -var import_smithy_client2 = __nccwpck_require__(21433); -var import_httpAuthSchemeProvider = __nccwpck_require__(59414); - -// src/submodules/sso-oidc/endpoint/EndpointParameters.ts -var resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => { - return Object.assign(options, { - useDualstackEndpoint: options.useDualstackEndpoint ?? false, - useFipsEndpoint: options.useFipsEndpoint ?? false, - defaultSigningName: "sso-oauth" - }); -}, "resolveClientEndpointParameters"); -var commonParams = { - UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" }, - Endpoint: { type: "builtInParams", name: "endpoint" }, - Region: { type: "builtInParams", name: "region" }, - UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" } -}; - -// src/submodules/sso-oidc/SSOOIDCClient.ts -var import_runtimeConfig = __nccwpck_require__(77277); - -// src/submodules/sso-oidc/runtimeExtensions.ts -var import_region_config_resolver = __nccwpck_require__(32357); -var import_protocol_http = __nccwpck_require__(18241); -var import_smithy_client = __nccwpck_require__(21433); - -// src/submodules/sso-oidc/auth/httpAuthExtensionConfiguration.ts -var getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => { - const _httpAuthSchemes = runtimeConfig.httpAuthSchemes; - let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider; - let _credentials = runtimeConfig.credentials; - return { - setHttpAuthScheme(httpAuthScheme) { - const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId); - if (index === -1) { - _httpAuthSchemes.push(httpAuthScheme); - } else { - _httpAuthSchemes.splice(index, 1, httpAuthScheme); } - }, - httpAuthSchemes() { - return _httpAuthSchemes; - }, - setHttpAuthSchemeProvider(httpAuthSchemeProvider) { - _httpAuthSchemeProvider = httpAuthSchemeProvider; - }, - httpAuthSchemeProvider() { - return _httpAuthSchemeProvider; - }, - setCredentials(credentials) { - _credentials = credentials; - }, - credentials() { - return _credentials; - } - }; -}, "getHttpAuthExtensionConfiguration"); -var resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => { - return { - httpAuthSchemes: config.httpAuthSchemes(), - httpAuthSchemeProvider: config.httpAuthSchemeProvider(), - credentials: config.credentials() - }; -}, "resolveHttpAuthRuntimeConfig"); - -// src/submodules/sso-oidc/runtimeExtensions.ts -var resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => { - const extensionConfiguration = Object.assign( - (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig), - (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig), - (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig), - getHttpAuthExtensionConfiguration(runtimeConfig) - ); - extensions.forEach((extension) => extension.configure(extensionConfiguration)); - return Object.assign( - runtimeConfig, - (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration), - (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration), - (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration), - resolveHttpAuthRuntimeConfig(extensionConfiguration) - ); -}, "resolveRuntimeExtensions"); - -// src/submodules/sso-oidc/SSOOIDCClient.ts -var SSOOIDCClient = class extends import_smithy_client2.Client { - static { - __name(this, "SSOOIDCClient"); - } - /** - * The resolved configuration of SSOOIDCClient class. This is resolved and normalized from the {@link SSOOIDCClientConfig | constructor configuration interface}. - */ - config; - constructor(...[configuration]) { - const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {}); - super(_config_0); - this.initConfig = _config_0; - const _config_1 = resolveClientEndpointParameters(_config_0); - const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1); - const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2); - const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3); - const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4); - const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5); - const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6); - const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); - this.config = _config_8; - this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config)); - this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config)); - this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config)); - this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config)); - this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config)); - this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config)); - this.middlewareStack.use( - (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, { - httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultSSOOIDCHttpAuthSchemeParametersProvider, - identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({ - "aws.auth#sigv4": config.credentials - }), "identityProviderConfigProvider") - }) - ); - this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config)); - } - /** - * Destroy underlying resources, like sockets. It's usually not necessary to do this. - * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed. - * Otherwise, sockets might stay open for quite a long time before the server terminates them. - */ - destroy() { - super.destroy(); - } -}; - -// src/submodules/sso-oidc/SSOOIDC.ts -var import_smithy_client7 = __nccwpck_require__(21433); + var UUID_PATTERN = + /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/ + var Int64 = class _Int64 { + constructor(bytes) { + this.bytes = bytes + if (bytes.byteLength !== 8) { + throw new Error('Int64 buffers must be exactly 8 bytes') + } + } + static { + __name(this, 'Int64') + } + static fromNumber(number) { + if (number > 9223372036854776e3 || number < -9223372036854776e3) { + throw new Error( + `${number} is too large (or, if negative, too small) to represent as an Int64` + ) + } + const bytes = new Uint8Array(8) + for ( + let i = 7, remaining = Math.abs(Math.round(number)); + i > -1 && remaining > 0; + i--, remaining /= 256 + ) { + bytes[i] = remaining + } + if (number < 0) { + negate(bytes) + } + return new _Int64(bytes) + } + /** + * Called implicitly by infix arithmetic operators. + */ + valueOf() { + const bytes = this.bytes.slice(0) + const negative = bytes[0] & 128 + if (negative) { + negate(bytes) + } + return ( + parseInt((0, import_util_hex_encoding.toHex)(bytes), 16) * + (negative ? -1 : 1) + ) + } + toString() { + return String(this.valueOf()) + } + } + function negate(bytes) { + for (let i = 0; i < 8; i++) { + bytes[i] ^= 255 + } + for (let i = 7; i > -1; i--) { + bytes[i]++ + if (bytes[i] !== 0) break + } + } + __name(negate, 'negate') -// src/submodules/sso-oidc/commands/CreateTokenCommand.ts -var import_middleware_endpoint2 = __nccwpck_require__(23435); -var import_middleware_serde = __nccwpck_require__(94572); -var import_smithy_client6 = __nccwpck_require__(21433); + // src/headerUtil.ts + var hasHeader = /* @__PURE__ */ __name((soughtHeader, headers) => { + soughtHeader = soughtHeader.toLowerCase() + for (const headerName of Object.keys(headers)) { + if (soughtHeader === headerName.toLowerCase()) { + return true + } + } + return false + }, 'hasHeader') + + // src/moveHeadersToQuery.ts + var import_protocol_http = __nccwpck_require__(18241) + var moveHeadersToQuery = /* @__PURE__ */ __name( + (request, options = {}) => { + const { headers, query = {} } = + import_protocol_http.HttpRequest.clone(request) + for (const name of Object.keys(headers)) { + const lname = name.toLowerCase() + if ( + (lname.slice(0, 6) === 'x-amz-' && + !options.unhoistableHeaders?.has(lname)) || + options.hoistableHeaders?.has(lname) + ) { + query[name] = headers[name] + delete headers[name] + } + } + return { + ...request, + headers, + query + } + }, + 'moveHeadersToQuery' + ) -// src/submodules/sso-oidc/models/models_0.ts -var import_smithy_client4 = __nccwpck_require__(21433); + // src/prepareRequest.ts -// src/submodules/sso-oidc/models/SSOOIDCServiceException.ts -var import_smithy_client3 = __nccwpck_require__(21433); -var SSOOIDCServiceException = class _SSOOIDCServiceException extends import_smithy_client3.ServiceException { - static { - __name(this, "SSOOIDCServiceException"); - } - /** - * @internal - */ - constructor(options) { - super(options); - Object.setPrototypeOf(this, _SSOOIDCServiceException.prototype); - } -}; + var prepareRequest = /* @__PURE__ */ __name(request => { + request = import_protocol_http.HttpRequest.clone(request) + for (const headerName of Object.keys(request.headers)) { + if (GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) { + delete request.headers[headerName] + } + } + return request + }, 'prepareRequest') -// src/submodules/sso-oidc/models/models_0.ts -var AccessDeniedException = class _AccessDeniedException extends SSOOIDCServiceException { - static { - __name(this, "AccessDeniedException"); - } - name = "AccessDeniedException"; - $fault = "client"; - /** - *

Single error code. For this exception the value will be access_denied.

- * @public - */ - error; - /** - *

Human-readable text providing additional information, used to assist the client developer - * in understanding the error that occurred.

- * @public - */ - error_description; - /** - * @internal - */ - constructor(opts) { - super({ - name: "AccessDeniedException", - $fault: "client", - ...opts - }); - Object.setPrototypeOf(this, _AccessDeniedException.prototype); - this.error = opts.error; - this.error_description = opts.error_description; - } -}; -var AuthorizationPendingException = class _AuthorizationPendingException extends SSOOIDCServiceException { - static { - __name(this, "AuthorizationPendingException"); - } - name = "AuthorizationPendingException"; - $fault = "client"; - /** - *

Single error code. For this exception the value will be - * authorization_pending.

- * @public - */ - error; - /** - *

Human-readable text providing additional information, used to assist the client developer - * in understanding the error that occurred.

- * @public - */ - error_description; - /** - * @internal - */ - constructor(opts) { - super({ - name: "AuthorizationPendingException", - $fault: "client", - ...opts - }); - Object.setPrototypeOf(this, _AuthorizationPendingException.prototype); - this.error = opts.error; - this.error_description = opts.error_description; - } -}; -var CreateTokenRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({ - ...obj, - ...obj.clientSecret && { clientSecret: import_smithy_client4.SENSITIVE_STRING }, - ...obj.refreshToken && { refreshToken: import_smithy_client4.SENSITIVE_STRING }, - ...obj.codeVerifier && { codeVerifier: import_smithy_client4.SENSITIVE_STRING } -}), "CreateTokenRequestFilterSensitiveLog"); -var CreateTokenResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({ - ...obj, - ...obj.accessToken && { accessToken: import_smithy_client4.SENSITIVE_STRING }, - ...obj.refreshToken && { refreshToken: import_smithy_client4.SENSITIVE_STRING }, - ...obj.idToken && { idToken: import_smithy_client4.SENSITIVE_STRING } -}), "CreateTokenResponseFilterSensitiveLog"); -var ExpiredTokenException = class _ExpiredTokenException extends SSOOIDCServiceException { - static { - __name(this, "ExpiredTokenException"); - } - name = "ExpiredTokenException"; - $fault = "client"; - /** - *

Single error code. For this exception the value will be expired_token.

- * @public - */ - error; - /** - *

Human-readable text providing additional information, used to assist the client developer - * in understanding the error that occurred.

- * @public - */ - error_description; - /** - * @internal - */ - constructor(opts) { - super({ - name: "ExpiredTokenException", - $fault: "client", - ...opts - }); - Object.setPrototypeOf(this, _ExpiredTokenException.prototype); - this.error = opts.error; - this.error_description = opts.error_description; - } -}; -var InternalServerException = class _InternalServerException extends SSOOIDCServiceException { - static { - __name(this, "InternalServerException"); - } - name = "InternalServerException"; - $fault = "server"; - /** - *

Single error code. For this exception the value will be server_error.

- * @public - */ - error; - /** - *

Human-readable text providing additional information, used to assist the client developer - * in understanding the error that occurred.

- * @public - */ - error_description; - /** - * @internal - */ - constructor(opts) { - super({ - name: "InternalServerException", - $fault: "server", - ...opts - }); - Object.setPrototypeOf(this, _InternalServerException.prototype); - this.error = opts.error; - this.error_description = opts.error_description; - } -}; -var InvalidClientException = class _InvalidClientException extends SSOOIDCServiceException { - static { - __name(this, "InvalidClientException"); - } - name = "InvalidClientException"; - $fault = "client"; - /** - *

Single error code. For this exception the value will be - * invalid_client.

- * @public - */ - error; - /** - *

Human-readable text providing additional information, used to assist the client developer - * in understanding the error that occurred.

- * @public - */ - error_description; - /** - * @internal - */ - constructor(opts) { - super({ - name: "InvalidClientException", - $fault: "client", - ...opts - }); - Object.setPrototypeOf(this, _InvalidClientException.prototype); - this.error = opts.error; - this.error_description = opts.error_description; - } -}; -var InvalidGrantException = class _InvalidGrantException extends SSOOIDCServiceException { - static { - __name(this, "InvalidGrantException"); - } - name = "InvalidGrantException"; - $fault = "client"; - /** - *

Single error code. For this exception the value will be invalid_grant.

- * @public - */ - error; - /** - *

Human-readable text providing additional information, used to assist the client developer - * in understanding the error that occurred.

- * @public - */ - error_description; - /** - * @internal - */ - constructor(opts) { - super({ - name: "InvalidGrantException", - $fault: "client", - ...opts - }); - Object.setPrototypeOf(this, _InvalidGrantException.prototype); - this.error = opts.error; - this.error_description = opts.error_description; - } -}; -var InvalidRequestException = class _InvalidRequestException extends SSOOIDCServiceException { - static { - __name(this, "InvalidRequestException"); - } - name = "InvalidRequestException"; - $fault = "client"; - /** - *

Single error code. For this exception the value will be - * invalid_request.

- * @public - */ - error; - /** - *

Human-readable text providing additional information, used to assist the client developer - * in understanding the error that occurred.

- * @public - */ - error_description; - /** - * @internal - */ - constructor(opts) { - super({ - name: "InvalidRequestException", - $fault: "client", - ...opts - }); - Object.setPrototypeOf(this, _InvalidRequestException.prototype); - this.error = opts.error; - this.error_description = opts.error_description; - } -}; -var InvalidScopeException = class _InvalidScopeException extends SSOOIDCServiceException { - static { - __name(this, "InvalidScopeException"); - } - name = "InvalidScopeException"; - $fault = "client"; - /** - *

Single error code. For this exception the value will be invalid_scope.

- * @public - */ - error; - /** - *

Human-readable text providing additional information, used to assist the client developer - * in understanding the error that occurred.

- * @public - */ - error_description; - /** - * @internal - */ - constructor(opts) { - super({ - name: "InvalidScopeException", - $fault: "client", - ...opts - }); - Object.setPrototypeOf(this, _InvalidScopeException.prototype); - this.error = opts.error; - this.error_description = opts.error_description; - } -}; -var SlowDownException = class _SlowDownException extends SSOOIDCServiceException { - static { - __name(this, "SlowDownException"); - } - name = "SlowDownException"; - $fault = "client"; - /** - *

Single error code. For this exception the value will be slow_down.

- * @public - */ - error; - /** - *

Human-readable text providing additional information, used to assist the client developer - * in understanding the error that occurred.

- * @public - */ - error_description; - /** - * @internal - */ - constructor(opts) { - super({ - name: "SlowDownException", - $fault: "client", - ...opts - }); - Object.setPrototypeOf(this, _SlowDownException.prototype); - this.error = opts.error; - this.error_description = opts.error_description; - } -}; -var UnauthorizedClientException = class _UnauthorizedClientException extends SSOOIDCServiceException { - static { - __name(this, "UnauthorizedClientException"); - } - name = "UnauthorizedClientException"; - $fault = "client"; - /** - *

Single error code. For this exception the value will be - * unauthorized_client.

- * @public - */ - error; - /** - *

Human-readable text providing additional information, used to assist the client developer - * in understanding the error that occurred.

- * @public - */ - error_description; - /** - * @internal - */ - constructor(opts) { - super({ - name: "UnauthorizedClientException", - $fault: "client", - ...opts - }); - Object.setPrototypeOf(this, _UnauthorizedClientException.prototype); - this.error = opts.error; - this.error_description = opts.error_description; - } -}; -var UnsupportedGrantTypeException = class _UnsupportedGrantTypeException extends SSOOIDCServiceException { - static { - __name(this, "UnsupportedGrantTypeException"); - } - name = "UnsupportedGrantTypeException"; - $fault = "client"; - /** - *

Single error code. For this exception the value will be - * unsupported_grant_type.

- * @public - */ - error; - /** - *

Human-readable text providing additional information, used to assist the client developer - * in understanding the error that occurred.

- * @public - */ - error_description; - /** - * @internal - */ - constructor(opts) { - super({ - name: "UnsupportedGrantTypeException", - $fault: "client", - ...opts - }); - Object.setPrototypeOf(this, _UnsupportedGrantTypeException.prototype); - this.error = opts.error; - this.error_description = opts.error_description; - } -}; - -// src/submodules/sso-oidc/protocols/Aws_restJson1.ts -var import_core2 = __nccwpck_require__(11928); -var import_core3 = __nccwpck_require__(1004); -var import_smithy_client5 = __nccwpck_require__(21433); -var se_CreateTokenCommand = /* @__PURE__ */ __name(async (input, context) => { - const b = (0, import_core3.requestBuilder)(input, context); - const headers = { - "content-type": "application/json" - }; - b.bp("/token"); - let body; - body = JSON.stringify( - (0, import_smithy_client5.take)(input, { - clientId: [], - clientSecret: [], - code: [], - codeVerifier: [], - deviceCode: [], - grantType: [], - redirectUri: [], - refreshToken: [], - scope: /* @__PURE__ */ __name((_) => (0, import_smithy_client5._json)(_), "scope") - }) - ); - b.m("POST").h(headers).b(body); - return b.build(); -}, "se_CreateTokenCommand"); -var de_CreateTokenCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_CommandError(output, context); - } - const contents = (0, import_smithy_client5.map)({ - $metadata: deserializeMetadata(output) - }); - const data = (0, import_smithy_client5.expectNonNull)((0, import_smithy_client5.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), "body"); - const doc = (0, import_smithy_client5.take)(data, { - accessToken: import_smithy_client5.expectString, - expiresIn: import_smithy_client5.expectInt32, - idToken: import_smithy_client5.expectString, - refreshToken: import_smithy_client5.expectString, - tokenType: import_smithy_client5.expectString - }); - Object.assign(contents, doc); - return contents; -}, "de_CreateTokenCommand"); -var de_CommandError = /* @__PURE__ */ __name(async (output, context) => { - const parsedOutput = { - ...output, - body: await (0, import_core2.parseJsonErrorBody)(output.body, context) - }; - const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body); - switch (errorCode) { - case "AccessDeniedException": - case "com.amazonaws.ssooidc#AccessDeniedException": - throw await de_AccessDeniedExceptionRes(parsedOutput, context); - case "AuthorizationPendingException": - case "com.amazonaws.ssooidc#AuthorizationPendingException": - throw await de_AuthorizationPendingExceptionRes(parsedOutput, context); - case "ExpiredTokenException": - case "com.amazonaws.ssooidc#ExpiredTokenException": - throw await de_ExpiredTokenExceptionRes(parsedOutput, context); - case "InternalServerException": - case "com.amazonaws.ssooidc#InternalServerException": - throw await de_InternalServerExceptionRes(parsedOutput, context); - case "InvalidClientException": - case "com.amazonaws.ssooidc#InvalidClientException": - throw await de_InvalidClientExceptionRes(parsedOutput, context); - case "InvalidGrantException": - case "com.amazonaws.ssooidc#InvalidGrantException": - throw await de_InvalidGrantExceptionRes(parsedOutput, context); - case "InvalidRequestException": - case "com.amazonaws.ssooidc#InvalidRequestException": - throw await de_InvalidRequestExceptionRes(parsedOutput, context); - case "InvalidScopeException": - case "com.amazonaws.ssooidc#InvalidScopeException": - throw await de_InvalidScopeExceptionRes(parsedOutput, context); - case "SlowDownException": - case "com.amazonaws.ssooidc#SlowDownException": - throw await de_SlowDownExceptionRes(parsedOutput, context); - case "UnauthorizedClientException": - case "com.amazonaws.ssooidc#UnauthorizedClientException": - throw await de_UnauthorizedClientExceptionRes(parsedOutput, context); - case "UnsupportedGrantTypeException": - case "com.amazonaws.ssooidc#UnsupportedGrantTypeException": - throw await de_UnsupportedGrantTypeExceptionRes(parsedOutput, context); - default: - const parsedBody = parsedOutput.body; - return throwDefaultError({ - output, - parsedBody, - errorCode - }); - } -}, "de_CommandError"); -var throwDefaultError = (0, import_smithy_client5.withBaseException)(SSOOIDCServiceException); -var de_AccessDeniedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const contents = (0, import_smithy_client5.map)({}); - const data = parsedOutput.body; - const doc = (0, import_smithy_client5.take)(data, { - error: import_smithy_client5.expectString, - error_description: import_smithy_client5.expectString - }); - Object.assign(contents, doc); - const exception = new AccessDeniedException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents - }); - return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body); -}, "de_AccessDeniedExceptionRes"); -var de_AuthorizationPendingExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const contents = (0, import_smithy_client5.map)({}); - const data = parsedOutput.body; - const doc = (0, import_smithy_client5.take)(data, { - error: import_smithy_client5.expectString, - error_description: import_smithy_client5.expectString - }); - Object.assign(contents, doc); - const exception = new AuthorizationPendingException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents - }); - return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body); -}, "de_AuthorizationPendingExceptionRes"); -var de_ExpiredTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const contents = (0, import_smithy_client5.map)({}); - const data = parsedOutput.body; - const doc = (0, import_smithy_client5.take)(data, { - error: import_smithy_client5.expectString, - error_description: import_smithy_client5.expectString - }); - Object.assign(contents, doc); - const exception = new ExpiredTokenException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents - }); - return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body); -}, "de_ExpiredTokenExceptionRes"); -var de_InternalServerExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const contents = (0, import_smithy_client5.map)({}); - const data = parsedOutput.body; - const doc = (0, import_smithy_client5.take)(data, { - error: import_smithy_client5.expectString, - error_description: import_smithy_client5.expectString - }); - Object.assign(contents, doc); - const exception = new InternalServerException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents - }); - return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body); -}, "de_InternalServerExceptionRes"); -var de_InvalidClientExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const contents = (0, import_smithy_client5.map)({}); - const data = parsedOutput.body; - const doc = (0, import_smithy_client5.take)(data, { - error: import_smithy_client5.expectString, - error_description: import_smithy_client5.expectString - }); - Object.assign(contents, doc); - const exception = new InvalidClientException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents - }); - return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body); -}, "de_InvalidClientExceptionRes"); -var de_InvalidGrantExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const contents = (0, import_smithy_client5.map)({}); - const data = parsedOutput.body; - const doc = (0, import_smithy_client5.take)(data, { - error: import_smithy_client5.expectString, - error_description: import_smithy_client5.expectString - }); - Object.assign(contents, doc); - const exception = new InvalidGrantException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents - }); - return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body); -}, "de_InvalidGrantExceptionRes"); -var de_InvalidRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const contents = (0, import_smithy_client5.map)({}); - const data = parsedOutput.body; - const doc = (0, import_smithy_client5.take)(data, { - error: import_smithy_client5.expectString, - error_description: import_smithy_client5.expectString - }); - Object.assign(contents, doc); - const exception = new InvalidRequestException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents - }); - return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body); -}, "de_InvalidRequestExceptionRes"); -var de_InvalidScopeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const contents = (0, import_smithy_client5.map)({}); - const data = parsedOutput.body; - const doc = (0, import_smithy_client5.take)(data, { - error: import_smithy_client5.expectString, - error_description: import_smithy_client5.expectString - }); - Object.assign(contents, doc); - const exception = new InvalidScopeException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents - }); - return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body); -}, "de_InvalidScopeExceptionRes"); -var de_SlowDownExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const contents = (0, import_smithy_client5.map)({}); - const data = parsedOutput.body; - const doc = (0, import_smithy_client5.take)(data, { - error: import_smithy_client5.expectString, - error_description: import_smithy_client5.expectString - }); - Object.assign(contents, doc); - const exception = new SlowDownException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents - }); - return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body); -}, "de_SlowDownExceptionRes"); -var de_UnauthorizedClientExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const contents = (0, import_smithy_client5.map)({}); - const data = parsedOutput.body; - const doc = (0, import_smithy_client5.take)(data, { - error: import_smithy_client5.expectString, - error_description: import_smithy_client5.expectString - }); - Object.assign(contents, doc); - const exception = new UnauthorizedClientException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents - }); - return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body); -}, "de_UnauthorizedClientExceptionRes"); -var de_UnsupportedGrantTypeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const contents = (0, import_smithy_client5.map)({}); - const data = parsedOutput.body; - const doc = (0, import_smithy_client5.take)(data, { - error: import_smithy_client5.expectString, - error_description: import_smithy_client5.expectString - }); - Object.assign(contents, doc); - const exception = new UnsupportedGrantTypeException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents - }); - return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body); -}, "de_UnsupportedGrantTypeExceptionRes"); -var deserializeMetadata = /* @__PURE__ */ __name((output) => ({ - httpStatusCode: output.statusCode, - requestId: output.headers["x-amzn-requestid"] ?? output.headers["x-amzn-request-id"] ?? output.headers["x-amz-request-id"], - extendedRequestId: output.headers["x-amz-id-2"], - cfId: output.headers["x-amz-cf-id"] -}), "deserializeMetadata"); - -// src/submodules/sso-oidc/commands/CreateTokenCommand.ts -var CreateTokenCommand = class extends import_smithy_client6.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint2.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("AWSSSOOIDCService", "CreateToken", {}).n("SSOOIDCClient", "CreateTokenCommand").f(CreateTokenRequestFilterSensitiveLog, CreateTokenResponseFilterSensitiveLog).ser(se_CreateTokenCommand).de(de_CreateTokenCommand).build() { - static { - __name(this, "CreateTokenCommand"); - } -}; - -// src/submodules/sso-oidc/SSOOIDC.ts -var commands = { - CreateTokenCommand -}; -var SSOOIDC = class extends SSOOIDCClient { - static { - __name(this, "SSOOIDC"); - } -}; -(0, import_smithy_client7.createAggregatedClient)(commands, SSOOIDC); -// Annotate the CommonJS export names for ESM import in node: -0 && (0); - - -/***/ }), - -/***/ 77277: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getRuntimeConfig = void 0; -const tslib_1 = __nccwpck_require__(4351); -const package_json_1 = tslib_1.__importDefault(__nccwpck_require__(88842)); -const core_1 = __nccwpck_require__(11928); -const util_user_agent_node_1 = __nccwpck_require__(29318); -const config_resolver_1 = __nccwpck_require__(99541); -const hash_node_1 = __nccwpck_require__(92920); -const middleware_retry_1 = __nccwpck_require__(23737); -const node_config_provider_1 = __nccwpck_require__(85650); -const node_http_handler_1 = __nccwpck_require__(96798); -const util_body_length_node_1 = __nccwpck_require__(24047); -const util_retry_1 = __nccwpck_require__(35808); -const runtimeConfig_shared_1 = __nccwpck_require__(49513); -const smithy_client_1 = __nccwpck_require__(21433); -const util_defaults_mode_node_1 = __nccwpck_require__(43762); -const smithy_client_2 = __nccwpck_require__(21433); -const getRuntimeConfig = (config) => { - (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version); - const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config); - const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode); - const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config); - (0, core_1.emitWarningIfUnsupportedVersion)(process.version); - const profileConfig = { profile: config?.profile }; - return { - ...clientSharedValues, - ...config, - runtime: "node", - defaultsMode, - bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength, - defaultUserAgentProvider: config?.defaultUserAgentProvider ?? - (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }), - maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config), - region: config?.region ?? - (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...profileConfig }), - requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider), - retryMode: config?.retryMode ?? - (0, node_config_provider_1.loadConfig)({ - ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS, - default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE, - }, config), - sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, "sha256"), - streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector, - useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, profileConfig), - useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, profileConfig), - userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, profileConfig), - }; -}; -exports.getRuntimeConfig = getRuntimeConfig; - - -/***/ }), - -/***/ 49513: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getRuntimeConfig = void 0; -const core_1 = __nccwpck_require__(11928); -const core_2 = __nccwpck_require__(1004); -const smithy_client_1 = __nccwpck_require__(21433); -const url_parser_1 = __nccwpck_require__(94769); -const util_base64_1 = __nccwpck_require__(44079); -const util_utf8_1 = __nccwpck_require__(76749); -const httpAuthSchemeProvider_1 = __nccwpck_require__(59414); -const endpointResolver_1 = __nccwpck_require__(60005); -const getRuntimeConfig = (config) => { - return { - apiVersion: "2019-06-10", - base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64, - base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64, - disableHostPrefix: config?.disableHostPrefix ?? false, - endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver, - extensions: config?.extensions ?? [], - httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSSOOIDCHttpAuthSchemeProvider, - httpAuthSchemes: config?.httpAuthSchemes ?? [ + // src/utilDate.ts + var iso8601 = /* @__PURE__ */ __name( + time => + toDate(time) + .toISOString() + .replace(/\.\d{3}Z$/, 'Z'), + 'iso8601' + ) + var toDate = /* @__PURE__ */ __name(time => { + if (typeof time === 'number') { + return new Date(time * 1e3) + } + if (typeof time === 'string') { + if (Number(time)) { + return new Date(Number(time) * 1e3) + } + return new Date(time) + } + return time + }, 'toDate') + + // src/SignatureV4.ts + var SignatureV4 = class { + constructor({ + applyChecksum, + credentials, + region, + service, + sha256, + uriEscapePath = true + }) { + this.headerFormatter = new HeaderFormatter() + this.service = service + this.sha256 = sha256 + this.uriEscapePath = uriEscapePath + this.applyChecksum = + typeof applyChecksum === 'boolean' ? applyChecksum : true + this.regionProvider = (0, import_util_middleware.normalizeProvider)( + region + ) + this.credentialProvider = (0, + import_util_middleware.normalizeProvider)(credentials) + } + static { + __name(this, 'SignatureV4') + } + async presign(originalRequest, options = {}) { + const { + signingDate = /* @__PURE__ */ new Date(), + expiresIn = 3600, + unsignableHeaders, + unhoistableHeaders, + signableHeaders, + hoistableHeaders, + signingRegion, + signingService + } = options + const credentials = await this.credentialProvider() + this.validateResolvedCredentials(credentials) + const region = signingRegion ?? (await this.regionProvider()) + const { longDate, shortDate } = formatDate(signingDate) + if (expiresIn > MAX_PRESIGNED_TTL) { + return Promise.reject( + 'Signature version 4 presigned URLs must have an expiration date less than one week in the future' + ) + } + const scope = createScope( + shortDate, + region, + signingService ?? this.service + ) + const request = moveHeadersToQuery(prepareRequest(originalRequest), { + unhoistableHeaders, + hoistableHeaders + }) + if (credentials.sessionToken) { + request.query[TOKEN_QUERY_PARAM] = credentials.sessionToken + } + request.query[ALGORITHM_QUERY_PARAM] = ALGORITHM_IDENTIFIER + request.query[CREDENTIAL_QUERY_PARAM] = + `${credentials.accessKeyId}/${scope}` + request.query[AMZ_DATE_QUERY_PARAM] = longDate + request.query[EXPIRES_QUERY_PARAM] = expiresIn.toString(10) + const canonicalHeaders = getCanonicalHeaders( + request, + unsignableHeaders, + signableHeaders + ) + request.query[SIGNED_HEADERS_QUERY_PARAM] = + getCanonicalHeaderList(canonicalHeaders) + request.query[SIGNATURE_QUERY_PARAM] = await this.getSignature( + longDate, + scope, + this.getSigningKey(credentials, region, shortDate, signingService), + this.createCanonicalRequest( + request, + canonicalHeaders, + await getPayloadHash(originalRequest, this.sha256) + ) + ) + return request + } + async sign(toSign, options) { + if (typeof toSign === 'string') { + return this.signString(toSign, options) + } else if (toSign.headers && toSign.payload) { + return this.signEvent(toSign, options) + } else if (toSign.message) { + return this.signMessage(toSign, options) + } else { + return this.signRequest(toSign, options) + } + } + async signEvent( + { headers, payload }, + { + signingDate = /* @__PURE__ */ new Date(), + priorSignature, + signingRegion, + signingService + } + ) { + const region = signingRegion ?? (await this.regionProvider()) + const { shortDate, longDate } = formatDate(signingDate) + const scope = createScope( + shortDate, + region, + signingService ?? this.service + ) + const hashedPayload = await getPayloadHash( + { headers: {}, body: payload }, + this.sha256 + ) + const hash = new this.sha256() + hash.update(headers) + const hashedHeaders = (0, import_util_hex_encoding.toHex)( + await hash.digest() + ) + const stringToSign = [ + EVENT_ALGORITHM_IDENTIFIER, + longDate, + scope, + priorSignature, + hashedHeaders, + hashedPayload + ].join('\n') + return this.signString(stringToSign, { + signingDate, + signingRegion: region, + signingService + }) + } + async signMessage( + signableMessage, + { + signingDate = /* @__PURE__ */ new Date(), + signingRegion, + signingService + } + ) { + const promise = this.signEvent( { - schemeId: "aws.auth#sigv4", - identityProvider: (ipc) => ipc.getIdentityProvider("aws.auth#sigv4"), - signer: new core_1.AwsSdkSigV4Signer(), + headers: this.headerFormatter.format( + signableMessage.message.headers + ), + payload: signableMessage.message.body }, { - schemeId: "smithy.api#noAuth", - identityProvider: (ipc) => ipc.getIdentityProvider("smithy.api#noAuth") || (async () => ({})), - signer: new core_2.NoAuthSigner(), - }, - ], - logger: config?.logger ?? new smithy_client_1.NoOpLogger(), - serviceId: config?.serviceId ?? "SSO OIDC", - urlParser: config?.urlParser ?? url_parser_1.parseUrl, - utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8, - utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8, - }; -}; -exports.getRuntimeConfig = getRuntimeConfig; - - -/***/ }), - -/***/ 68974: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.STSClient = exports.__Client = void 0; -const middleware_host_header_1 = __nccwpck_require__(97378); -const middleware_logger_1 = __nccwpck_require__(57779); -const middleware_recursion_detection_1 = __nccwpck_require__(35398); -const middleware_user_agent_1 = __nccwpck_require__(1834); -const config_resolver_1 = __nccwpck_require__(99541); -const core_1 = __nccwpck_require__(1004); -const middleware_content_length_1 = __nccwpck_require__(51214); -const middleware_endpoint_1 = __nccwpck_require__(23435); -const middleware_retry_1 = __nccwpck_require__(23737); -const smithy_client_1 = __nccwpck_require__(21433); -Object.defineProperty(exports, "__Client", ({ enumerable: true, get: function () { return smithy_client_1.Client; } })); -const httpAuthSchemeProvider_1 = __nccwpck_require__(48013); -const EndpointParameters_1 = __nccwpck_require__(41765); -const runtimeConfig_1 = __nccwpck_require__(1798); -const runtimeExtensions_1 = __nccwpck_require__(30669); -class STSClient extends smithy_client_1.Client { - config; - constructor(...[configuration]) { - const _config_0 = (0, runtimeConfig_1.getRuntimeConfig)(configuration || {}); - super(_config_0); - this.initConfig = _config_0; - const _config_1 = (0, EndpointParameters_1.resolveClientEndpointParameters)(_config_0); - const _config_2 = (0, middleware_user_agent_1.resolveUserAgentConfig)(_config_1); - const _config_3 = (0, middleware_retry_1.resolveRetryConfig)(_config_2); - const _config_4 = (0, config_resolver_1.resolveRegionConfig)(_config_3); - const _config_5 = (0, middleware_host_header_1.resolveHostHeaderConfig)(_config_4); - const _config_6 = (0, middleware_endpoint_1.resolveEndpointConfig)(_config_5); - const _config_7 = (0, httpAuthSchemeProvider_1.resolveHttpAuthSchemeConfig)(_config_6); - const _config_8 = (0, runtimeExtensions_1.resolveRuntimeExtensions)(_config_7, configuration?.extensions || []); - this.config = _config_8; - this.middlewareStack.use((0, middleware_user_agent_1.getUserAgentPlugin)(this.config)); - this.middlewareStack.use((0, middleware_retry_1.getRetryPlugin)(this.config)); - this.middlewareStack.use((0, middleware_content_length_1.getContentLengthPlugin)(this.config)); - this.middlewareStack.use((0, middleware_host_header_1.getHostHeaderPlugin)(this.config)); - this.middlewareStack.use((0, middleware_logger_1.getLoggerPlugin)(this.config)); - this.middlewareStack.use((0, middleware_recursion_detection_1.getRecursionDetectionPlugin)(this.config)); - this.middlewareStack.use((0, core_1.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, { - httpAuthSchemeParametersProvider: httpAuthSchemeProvider_1.defaultSTSHttpAuthSchemeParametersProvider, - identityProviderConfigProvider: async (config) => new core_1.DefaultIdentityProviderConfig({ - "aws.auth#sigv4": config.credentials, - }), - })); - this.middlewareStack.use((0, core_1.getHttpSigningPlugin)(this.config)); - } - destroy() { - super.destroy(); - } -} -exports.STSClient = STSClient; - + signingDate, + signingRegion, + signingService, + priorSignature: signableMessage.priorSignature + } + ) + return promise.then(signature => { + return { message: signableMessage.message, signature } + }) + } + async signString( + stringToSign, + { + signingDate = /* @__PURE__ */ new Date(), + signingRegion, + signingService + } = {} + ) { + const credentials = await this.credentialProvider() + this.validateResolvedCredentials(credentials) + const region = signingRegion ?? (await this.regionProvider()) + const { shortDate } = formatDate(signingDate) + const hash = new this.sha256( + await this.getSigningKey( + credentials, + region, + shortDate, + signingService + ) + ) + hash.update((0, import_util_utf84.toUint8Array)(stringToSign)) + return (0, import_util_hex_encoding.toHex)(await hash.digest()) + } + async signRequest( + requestToSign, + { + signingDate = /* @__PURE__ */ new Date(), + signableHeaders, + unsignableHeaders, + signingRegion, + signingService + } = {} + ) { + const credentials = await this.credentialProvider() + this.validateResolvedCredentials(credentials) + const region = signingRegion ?? (await this.regionProvider()) + const request = prepareRequest(requestToSign) + const { longDate, shortDate } = formatDate(signingDate) + const scope = createScope( + shortDate, + region, + signingService ?? this.service + ) + request.headers[AMZ_DATE_HEADER] = longDate + if (credentials.sessionToken) { + request.headers[TOKEN_HEADER] = credentials.sessionToken + } + const payloadHash = await getPayloadHash(request, this.sha256) + if ( + !hasHeader(SHA256_HEADER, request.headers) && + this.applyChecksum + ) { + request.headers[SHA256_HEADER] = payloadHash + } + const canonicalHeaders = getCanonicalHeaders( + request, + unsignableHeaders, + signableHeaders + ) + const signature = await this.getSignature( + longDate, + scope, + this.getSigningKey(credentials, region, shortDate, signingService), + this.createCanonicalRequest(request, canonicalHeaders, payloadHash) + ) + request.headers[AUTH_HEADER] = + `${ALGORITHM_IDENTIFIER} Credential=${credentials.accessKeyId}/${scope}, SignedHeaders=${getCanonicalHeaderList(canonicalHeaders)}, Signature=${signature}` + return request + } + createCanonicalRequest(request, canonicalHeaders, payloadHash) { + const sortedHeaders = Object.keys(canonicalHeaders).sort() + return `${request.method} +${this.getCanonicalPath(request)} +${getCanonicalQuery(request)} +${sortedHeaders.map(name => `${name}:${canonicalHeaders[name]}`).join('\n')} -/***/ }), +${sortedHeaders.join(';')} +${payloadHash}` + } + async createStringToSign(longDate, credentialScope, canonicalRequest) { + const hash = new this.sha256() + hash.update((0, import_util_utf84.toUint8Array)(canonicalRequest)) + const hashedRequest = await hash.digest() + return `${ALGORITHM_IDENTIFIER} +${longDate} +${credentialScope} +${(0, import_util_hex_encoding.toHex)(hashedRequest)}` + } + getCanonicalPath({ path }) { + if (this.uriEscapePath) { + const normalizedPathSegments = [] + for (const pathSegment of path.split('/')) { + if (pathSegment?.length === 0) continue + if (pathSegment === '.') continue + if (pathSegment === '..') { + normalizedPathSegments.pop() + } else { + normalizedPathSegments.push(pathSegment) + } + } + const normalizedPath = `${path?.startsWith('/') ? '/' : ''}${normalizedPathSegments.join('/')}${normalizedPathSegments.length > 0 && path?.endsWith('/') ? '/' : ''}` + const doubleEncoded = (0, import_util_uri_escape.escapeUri)( + normalizedPath + ) + return doubleEncoded.replace(/%2F/g, '/') + } + return path + } + async getSignature( + longDate, + credentialScope, + keyPromise, + canonicalRequest + ) { + const stringToSign = await this.createStringToSign( + longDate, + credentialScope, + canonicalRequest + ) + const hash = new this.sha256(await keyPromise) + hash.update((0, import_util_utf84.toUint8Array)(stringToSign)) + return (0, import_util_hex_encoding.toHex)(await hash.digest()) + } + getSigningKey(credentials, region, shortDate, service) { + return getSigningKey( + this.sha256, + credentials, + shortDate, + region, + service || this.service + ) + } + validateResolvedCredentials(credentials) { + if ( + typeof credentials !== 'object' || // @ts-expect-error: Property 'accessKeyId' does not exist on type 'object'.ts(2339) + typeof credentials.accessKeyId !== 'string' || // @ts-expect-error: Property 'secretAccessKey' does not exist on type 'object'.ts(2339) + typeof credentials.secretAccessKey !== 'string' + ) { + throw new Error('Resolved credential object is not valid') + } + } + } + var formatDate = /* @__PURE__ */ __name(now => { + const longDate = iso8601(now).replace(/[\-:]/g, '') + return { + longDate, + shortDate: longDate.slice(0, 8) + } + }, 'formatDate') + var getCanonicalHeaderList = /* @__PURE__ */ __name( + headers => Object.keys(headers).sort().join(';'), + 'getCanonicalHeaderList' + ) + // Annotate the CommonJS export names for ESM import in node: -/***/ 14935: -/***/ ((__unused_webpack_module, exports) => { + 0 && 0 -"use strict"; + /***/ + }, -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.resolveHttpAuthRuntimeConfig = exports.getHttpAuthExtensionConfiguration = void 0; -const getHttpAuthExtensionConfiguration = (runtimeConfig) => { - const _httpAuthSchemes = runtimeConfig.httpAuthSchemes; - let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider; - let _credentials = runtimeConfig.credentials; - return { - setHttpAuthScheme(httpAuthScheme) { - const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId); - if (index === -1) { - _httpAuthSchemes.push(httpAuthScheme); + /***/ 21433: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + Client: () => Client, + Command: () => Command, + LazyJsonString: () => LazyJsonString, + NoOpLogger: () => NoOpLogger, + SENSITIVE_STRING: () => SENSITIVE_STRING, + ServiceException: () => ServiceException, + _json: () => _json, + collectBody: () => import_protocols.collectBody, + convertMap: () => convertMap, + createAggregatedClient: () => createAggregatedClient, + dateToUtcString: () => dateToUtcString, + decorateServiceException: () => decorateServiceException, + emitWarningIfUnsupportedVersion: () => emitWarningIfUnsupportedVersion, + expectBoolean: () => expectBoolean, + expectByte: () => expectByte, + expectFloat32: () => expectFloat32, + expectInt: () => expectInt, + expectInt32: () => expectInt32, + expectLong: () => expectLong, + expectNonNull: () => expectNonNull, + expectNumber: () => expectNumber, + expectObject: () => expectObject, + expectShort: () => expectShort, + expectString: () => expectString, + expectUnion: () => expectUnion, + extendedEncodeURIComponent: () => + import_protocols.extendedEncodeURIComponent, + getArrayIfSingleItem: () => getArrayIfSingleItem, + getDefaultClientConfiguration: () => getDefaultClientConfiguration, + getDefaultExtensionConfiguration: () => + getDefaultExtensionConfiguration, + getValueFromTextNode: () => getValueFromTextNode, + handleFloat: () => handleFloat, + isSerializableHeaderValue: () => isSerializableHeaderValue, + limitedParseDouble: () => limitedParseDouble, + limitedParseFloat: () => limitedParseFloat, + limitedParseFloat32: () => limitedParseFloat32, + loadConfigsForDefaultMode: () => loadConfigsForDefaultMode, + logger: () => logger, + map: () => map, + parseBoolean: () => parseBoolean, + parseEpochTimestamp: () => parseEpochTimestamp, + parseRfc3339DateTime: () => parseRfc3339DateTime, + parseRfc3339DateTimeWithOffset: () => parseRfc3339DateTimeWithOffset, + parseRfc7231DateTime: () => parseRfc7231DateTime, + quoteHeader: () => quoteHeader, + resolveDefaultRuntimeConfig: () => resolveDefaultRuntimeConfig, + resolvedPath: () => import_protocols.resolvedPath, + serializeDateTime: () => serializeDateTime, + serializeFloat: () => serializeFloat, + splitEvery: () => splitEvery, + splitHeader: () => splitHeader, + strictParseByte: () => strictParseByte, + strictParseDouble: () => strictParseDouble, + strictParseFloat: () => strictParseFloat, + strictParseFloat32: () => strictParseFloat32, + strictParseInt: () => strictParseInt, + strictParseInt32: () => strictParseInt32, + strictParseLong: () => strictParseLong, + strictParseShort: () => strictParseShort, + take: () => take, + throwDefaultError: () => throwDefaultError, + withBaseException: () => withBaseException + }) + module.exports = __toCommonJS(src_exports) + + // src/client.ts + var import_middleware_stack = __nccwpck_require__(428) + var Client = class { + constructor(config) { + this.config = config + this.middlewareStack = (0, import_middleware_stack.constructStack)() + } + static { + __name(this, 'Client') + } + send(command, optionsOrCb, cb) { + const options = + typeof optionsOrCb !== 'function' ? optionsOrCb : void 0 + const callback = typeof optionsOrCb === 'function' ? optionsOrCb : cb + const useHandlerCache = + options === void 0 && this.config.cacheMiddleware === true + let handler + if (useHandlerCache) { + if (!this.handlers) { + this.handlers = /* @__PURE__ */ new WeakMap() } - else { - _httpAuthSchemes.splice(index, 1, httpAuthScheme); + const handlers = this.handlers + if (handlers.has(command.constructor)) { + handler = handlers.get(command.constructor) + } else { + handler = command.resolveMiddleware( + this.middlewareStack, + this.config, + options + ) + handlers.set(command.constructor, handler) } - }, - httpAuthSchemes() { - return _httpAuthSchemes; - }, - setHttpAuthSchemeProvider(httpAuthSchemeProvider) { - _httpAuthSchemeProvider = httpAuthSchemeProvider; - }, - httpAuthSchemeProvider() { - return _httpAuthSchemeProvider; - }, - setCredentials(credentials) { - _credentials = credentials; - }, - credentials() { - return _credentials; - }, - }; -}; -exports.getHttpAuthExtensionConfiguration = getHttpAuthExtensionConfiguration; -const resolveHttpAuthRuntimeConfig = (config) => { - return { - httpAuthSchemes: config.httpAuthSchemes(), - httpAuthSchemeProvider: config.httpAuthSchemeProvider(), - credentials: config.credentials(), - }; -}; -exports.resolveHttpAuthRuntimeConfig = resolveHttpAuthRuntimeConfig; + } else { + delete this.handlers + handler = command.resolveMiddleware( + this.middlewareStack, + this.config, + options + ) + } + if (callback) { + handler(command) + .then( + result => callback(null, result.output), + err => callback(err) + ) + .catch( + // prevent any errors thrown in the callback from triggering an + // unhandled promise rejection + () => {} + ) + } else { + return handler(command).then(result => result.output) + } + } + destroy() { + this.config?.requestHandler?.destroy?.() + delete this.handlers + } + } + // src/collect-stream-body.ts + var import_protocols = __nccwpck_require__(22072) -/***/ }), + // src/command.ts + + var import_types = __nccwpck_require__(63592) + var Command = class { + constructor() { + this.middlewareStack = (0, import_middleware_stack.constructStack)() + } + static { + __name(this, 'Command') + } + /** + * Factory for Command ClassBuilder. + * @internal + */ + static classBuilder() { + return new ClassBuilder() + } + /** + * @internal + */ + resolveMiddlewareWithContext( + clientStack, + configuration, + options, + { + middlewareFn, + clientName, + commandName, + inputFilterSensitiveLog, + outputFilterSensitiveLog, + smithyContext, + additionalContext, + CommandCtor + } + ) { + for (const mw of middlewareFn.bind(this)( + CommandCtor, + clientStack, + configuration, + options + )) { + this.middlewareStack.use(mw) + } + const stack = clientStack.concat(this.middlewareStack) + const { logger: logger2 } = configuration + const handlerExecutionContext = { + logger: logger2, + clientName, + commandName, + inputFilterSensitiveLog, + outputFilterSensitiveLog, + [import_types.SMITHY_CONTEXT_KEY]: { + commandInstance: this, + ...smithyContext + }, + ...additionalContext + } + const { requestHandler } = configuration + return stack.resolve( + request => requestHandler.handle(request.request, options || {}), + handlerExecutionContext + ) + } + } + var ClassBuilder = class { + constructor() { + this._init = () => {} + this._ep = {} + this._middlewareFn = () => [] + this._commandName = '' + this._clientName = '' + this._additionalContext = {} + this._smithyContext = {} + this._inputFilterSensitiveLog = _ => _ + this._outputFilterSensitiveLog = _ => _ + this._serializer = null + this._deserializer = null + } + static { + __name(this, 'ClassBuilder') + } + /** + * Optional init callback. + */ + init(cb) { + this._init = cb + } + /** + * Set the endpoint parameter instructions. + */ + ep(endpointParameterInstructions) { + this._ep = endpointParameterInstructions + return this + } + /** + * Add any number of middleware. + */ + m(middlewareSupplier) { + this._middlewareFn = middlewareSupplier + return this + } + /** + * Set the initial handler execution context Smithy field. + */ + s(service, operation, smithyContext = {}) { + this._smithyContext = { + service, + operation, + ...smithyContext + } + return this + } + /** + * Set the initial handler execution context. + */ + c(additionalContext = {}) { + this._additionalContext = additionalContext + return this + } + /** + * Set constant string identifiers for the operation. + */ + n(clientName, commandName) { + this._clientName = clientName + this._commandName = commandName + return this + } + /** + * Set the input and output sensistive log filters. + */ + f(inputFilter = _ => _, outputFilter = _ => _) { + this._inputFilterSensitiveLog = inputFilter + this._outputFilterSensitiveLog = outputFilter + return this + } + /** + * Sets the serializer. + */ + ser(serializer) { + this._serializer = serializer + return this + } + /** + * Sets the deserializer. + */ + de(deserializer) { + this._deserializer = deserializer + return this + } + /** + * @returns a Command class with the classBuilder properties. + */ + build() { + const closure = this + let CommandRef + return (CommandRef = class extends Command { + /** + * @public + */ + constructor(...[input]) { + super() + /** + * @internal + */ + // @ts-ignore used in middlewareFn closure. + this.serialize = closure._serializer + /** + * @internal + */ + // @ts-ignore used in middlewareFn closure. + this.deserialize = closure._deserializer + this.input = input ?? {} + closure._init(this) + } + static { + __name(this, 'CommandRef') + } + /** + * @public + */ + static getEndpointParameterInstructions() { + return closure._ep + } + /** + * @internal + */ + resolveMiddleware(stack, configuration, options) { + return this.resolveMiddlewareWithContext( + stack, + configuration, + options, + { + CommandCtor: CommandRef, + middlewareFn: closure._middlewareFn, + clientName: closure._clientName, + commandName: closure._commandName, + inputFilterSensitiveLog: closure._inputFilterSensitiveLog, + outputFilterSensitiveLog: closure._outputFilterSensitiveLog, + smithyContext: closure._smithyContext, + additionalContext: closure._additionalContext + } + ) + } + }) + } + } -/***/ 48013: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + // src/constants.ts + var SENSITIVE_STRING = '***SensitiveInformation***' + + // src/create-aggregated-client.ts + var createAggregatedClient = /* @__PURE__ */ __name( + (commands, Client2) => { + for (const command of Object.keys(commands)) { + const CommandCtor = commands[command] + const methodImpl = /* @__PURE__ */ __name(async function ( + args, + optionsOrCb, + cb + ) { + const command2 = new CommandCtor(args) + if (typeof optionsOrCb === 'function') { + this.send(command2, optionsOrCb) + } else if (typeof cb === 'function') { + if (typeof optionsOrCb !== 'object') + throw new Error( + `Expected http options but got ${typeof optionsOrCb}` + ) + this.send(command2, optionsOrCb || {}, cb) + } else { + return this.send(command2, optionsOrCb) + } + }, 'methodImpl') + const methodName = ( + command[0].toLowerCase() + command.slice(1) + ).replace(/Command$/, '') + Client2.prototype[methodName] = methodImpl + } + }, + 'createAggregatedClient' + ) -"use strict"; + // src/parse-utils.ts + var parseBoolean = /* @__PURE__ */ __name(value => { + switch (value) { + case 'true': + return true + case 'false': + return false + default: + throw new Error(`Unable to parse boolean value "${value}"`) + } + }, 'parseBoolean') + var expectBoolean = /* @__PURE__ */ __name(value => { + if (value === null || value === void 0) { + return void 0 + } + if (typeof value === 'number') { + if (value === 0 || value === 1) { + logger.warn( + stackTraceWarning( + `Expected boolean, got ${typeof value}: ${value}` + ) + ) + } + if (value === 0) { + return false + } + if (value === 1) { + return true + } + } + if (typeof value === 'string') { + const lower = value.toLowerCase() + if (lower === 'false' || lower === 'true') { + logger.warn( + stackTraceWarning( + `Expected boolean, got ${typeof value}: ${value}` + ) + ) + } + if (lower === 'false') { + return false + } + if (lower === 'true') { + return true + } + } + if (typeof value === 'boolean') { + return value + } + throw new TypeError(`Expected boolean, got ${typeof value}: ${value}`) + }, 'expectBoolean') + var expectNumber = /* @__PURE__ */ __name(value => { + if (value === null || value === void 0) { + return void 0 + } + if (typeof value === 'string') { + const parsed = parseFloat(value) + if (!Number.isNaN(parsed)) { + if (String(parsed) !== String(value)) { + logger.warn( + stackTraceWarning( + `Expected number but observed string: ${value}` + ) + ) + } + return parsed + } + } + if (typeof value === 'number') { + return value + } + throw new TypeError(`Expected number, got ${typeof value}: ${value}`) + }, 'expectNumber') + var MAX_FLOAT = Math.ceil(2 ** 127 * (2 - 2 ** -23)) + var expectFloat32 = /* @__PURE__ */ __name(value => { + const expected = expectNumber(value) + if ( + expected !== void 0 && + !Number.isNaN(expected) && + expected !== Infinity && + expected !== -Infinity + ) { + if (Math.abs(expected) > MAX_FLOAT) { + throw new TypeError(`Expected 32-bit float, got ${value}`) + } + } + return expected + }, 'expectFloat32') + var expectLong = /* @__PURE__ */ __name(value => { + if (value === null || value === void 0) { + return void 0 + } + if (Number.isInteger(value) && !Number.isNaN(value)) { + return value + } + throw new TypeError(`Expected integer, got ${typeof value}: ${value}`) + }, 'expectLong') + var expectInt = expectLong + var expectInt32 = /* @__PURE__ */ __name( + value => expectSizedInt(value, 32), + 'expectInt32' + ) + var expectShort = /* @__PURE__ */ __name( + value => expectSizedInt(value, 16), + 'expectShort' + ) + var expectByte = /* @__PURE__ */ __name( + value => expectSizedInt(value, 8), + 'expectByte' + ) + var expectSizedInt = /* @__PURE__ */ __name((value, size) => { + const expected = expectLong(value) + if (expected !== void 0 && castInt(expected, size) !== expected) { + throw new TypeError(`Expected ${size}-bit integer, got ${value}`) + } + return expected + }, 'expectSizedInt') + var castInt = /* @__PURE__ */ __name((value, size) => { + switch (size) { + case 32: + return Int32Array.of(value)[0] + case 16: + return Int16Array.of(value)[0] + case 8: + return Int8Array.of(value)[0] + } + }, 'castInt') + var expectNonNull = /* @__PURE__ */ __name((value, location) => { + if (value === null || value === void 0) { + if (location) { + throw new TypeError(`Expected a non-null value for ${location}`) + } + throw new TypeError('Expected a non-null value') + } + return value + }, 'expectNonNull') + var expectObject = /* @__PURE__ */ __name(value => { + if (value === null || value === void 0) { + return void 0 + } + if (typeof value === 'object' && !Array.isArray(value)) { + return value + } + const receivedType = Array.isArray(value) ? 'array' : typeof value + throw new TypeError(`Expected object, got ${receivedType}: ${value}`) + }, 'expectObject') + var expectString = /* @__PURE__ */ __name(value => { + if (value === null || value === void 0) { + return void 0 + } + if (typeof value === 'string') { + return value + } + if (['boolean', 'number', 'bigint'].includes(typeof value)) { + logger.warn( + stackTraceWarning(`Expected string, got ${typeof value}: ${value}`) + ) + return String(value) + } + throw new TypeError(`Expected string, got ${typeof value}: ${value}`) + }, 'expectString') + var expectUnion = /* @__PURE__ */ __name(value => { + if (value === null || value === void 0) { + return void 0 + } + const asObject = expectObject(value) + const setKeys = Object.entries(asObject) + .filter(([, v]) => v != null) + .map(([k]) => k) + if (setKeys.length === 0) { + throw new TypeError( + `Unions must have exactly one non-null member. None were found.` + ) + } + if (setKeys.length > 1) { + throw new TypeError( + `Unions must have exactly one non-null member. Keys ${setKeys} were not null.` + ) + } + return asObject + }, 'expectUnion') + var strictParseDouble = /* @__PURE__ */ __name(value => { + if (typeof value == 'string') { + return expectNumber(parseNumber(value)) + } + return expectNumber(value) + }, 'strictParseDouble') + var strictParseFloat = strictParseDouble + var strictParseFloat32 = /* @__PURE__ */ __name(value => { + if (typeof value == 'string') { + return expectFloat32(parseNumber(value)) + } + return expectFloat32(value) + }, 'strictParseFloat32') + var NUMBER_REGEX = + /(-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?)|(-?Infinity)|(NaN)/g + var parseNumber = /* @__PURE__ */ __name(value => { + const matches = value.match(NUMBER_REGEX) + if (matches === null || matches[0].length !== value.length) { + throw new TypeError(`Expected real number, got implicit NaN`) + } + return parseFloat(value) + }, 'parseNumber') + var limitedParseDouble = /* @__PURE__ */ __name(value => { + if (typeof value == 'string') { + return parseFloatString(value) + } + return expectNumber(value) + }, 'limitedParseDouble') + var handleFloat = limitedParseDouble + var limitedParseFloat = limitedParseDouble + var limitedParseFloat32 = /* @__PURE__ */ __name(value => { + if (typeof value == 'string') { + return parseFloatString(value) + } + return expectFloat32(value) + }, 'limitedParseFloat32') + var parseFloatString = /* @__PURE__ */ __name(value => { + switch (value) { + case 'NaN': + return NaN + case 'Infinity': + return Infinity + case '-Infinity': + return -Infinity + default: + throw new Error(`Unable to parse float value: ${value}`) + } + }, 'parseFloatString') + var strictParseLong = /* @__PURE__ */ __name(value => { + if (typeof value === 'string') { + return expectLong(parseNumber(value)) + } + return expectLong(value) + }, 'strictParseLong') + var strictParseInt = strictParseLong + var strictParseInt32 = /* @__PURE__ */ __name(value => { + if (typeof value === 'string') { + return expectInt32(parseNumber(value)) + } + return expectInt32(value) + }, 'strictParseInt32') + var strictParseShort = /* @__PURE__ */ __name(value => { + if (typeof value === 'string') { + return expectShort(parseNumber(value)) + } + return expectShort(value) + }, 'strictParseShort') + var strictParseByte = /* @__PURE__ */ __name(value => { + if (typeof value === 'string') { + return expectByte(parseNumber(value)) + } + return expectByte(value) + }, 'strictParseByte') + var stackTraceWarning = /* @__PURE__ */ __name(message => { + return String(new TypeError(message).stack || message) + .split('\n') + .slice(0, 5) + .filter(s => !s.includes('stackTraceWarning')) + .join('\n') + }, 'stackTraceWarning') + var logger = { + warn: console.warn + } + + // src/date-utils.ts + var DAYS = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'] + var MONTHS = [ + 'Jan', + 'Feb', + 'Mar', + 'Apr', + 'May', + 'Jun', + 'Jul', + 'Aug', + 'Sep', + 'Oct', + 'Nov', + 'Dec' + ] + function dateToUtcString(date) { + const year = date.getUTCFullYear() + const month = date.getUTCMonth() + const dayOfWeek = date.getUTCDay() + const dayOfMonthInt = date.getUTCDate() + const hoursInt = date.getUTCHours() + const minutesInt = date.getUTCMinutes() + const secondsInt = date.getUTCSeconds() + const dayOfMonthString = + dayOfMonthInt < 10 ? `0${dayOfMonthInt}` : `${dayOfMonthInt}` + const hoursString = hoursInt < 10 ? `0${hoursInt}` : `${hoursInt}` + const minutesString = + minutesInt < 10 ? `0${minutesInt}` : `${minutesInt}` + const secondsString = + secondsInt < 10 ? `0${secondsInt}` : `${secondsInt}` + return `${DAYS[dayOfWeek]}, ${dayOfMonthString} ${MONTHS[month]} ${year} ${hoursString}:${minutesString}:${secondsString} GMT` + } + __name(dateToUtcString, 'dateToUtcString') + var RFC3339 = new RegExp( + /^(\d{4})-(\d{2})-(\d{2})[tT](\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?[zZ]$/ + ) + var parseRfc3339DateTime = /* @__PURE__ */ __name(value => { + if (value === null || value === void 0) { + return void 0 + } + if (typeof value !== 'string') { + throw new TypeError( + 'RFC-3339 date-times must be expressed as strings' + ) + } + const match = RFC3339.exec(value) + if (!match) { + throw new TypeError('Invalid RFC-3339 date-time value') + } + const [ + _, + yearStr, + monthStr, + dayStr, + hours, + minutes, + seconds, + fractionalMilliseconds + ] = match + const year = strictParseShort(stripLeadingZeroes(yearStr)) + const month = parseDateValue(monthStr, 'month', 1, 12) + const day = parseDateValue(dayStr, 'day', 1, 31) + return buildDate(year, month, day, { + hours, + minutes, + seconds, + fractionalMilliseconds + }) + }, 'parseRfc3339DateTime') + var RFC3339_WITH_OFFSET = new RegExp( + /^(\d{4})-(\d{2})-(\d{2})[tT](\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?(([-+]\d{2}\:\d{2})|[zZ])$/ + ) + var parseRfc3339DateTimeWithOffset = /* @__PURE__ */ __name(value => { + if (value === null || value === void 0) { + return void 0 + } + if (typeof value !== 'string') { + throw new TypeError( + 'RFC-3339 date-times must be expressed as strings' + ) + } + const match = RFC3339_WITH_OFFSET.exec(value) + if (!match) { + throw new TypeError('Invalid RFC-3339 date-time value') + } + const [ + _, + yearStr, + monthStr, + dayStr, + hours, + minutes, + seconds, + fractionalMilliseconds, + offsetStr + ] = match + const year = strictParseShort(stripLeadingZeroes(yearStr)) + const month = parseDateValue(monthStr, 'month', 1, 12) + const day = parseDateValue(dayStr, 'day', 1, 31) + const date = buildDate(year, month, day, { + hours, + minutes, + seconds, + fractionalMilliseconds + }) + if (offsetStr.toUpperCase() != 'Z') { + date.setTime(date.getTime() - parseOffsetToMilliseconds(offsetStr)) + } + return date + }, 'parseRfc3339DateTimeWithOffset') + var IMF_FIXDATE = new RegExp( + /^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d{2}) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d{1,2}):(\d{2}):(\d{2})(?:\.(\d+))? GMT$/ + ) + var RFC_850_DATE = new RegExp( + /^(?:Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d{2})-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d{2}) (\d{1,2}):(\d{2}):(\d{2})(?:\.(\d+))? GMT$/ + ) + var ASC_TIME = new RegExp( + /^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( [1-9]|\d{2}) (\d{1,2}):(\d{2}):(\d{2})(?:\.(\d+))? (\d{4})$/ + ) + var parseRfc7231DateTime = /* @__PURE__ */ __name(value => { + if (value === null || value === void 0) { + return void 0 + } + if (typeof value !== 'string') { + throw new TypeError( + 'RFC-7231 date-times must be expressed as strings' + ) + } + let match = IMF_FIXDATE.exec(value) + if (match) { + const [ + _, + dayStr, + monthStr, + yearStr, + hours, + minutes, + seconds, + fractionalMilliseconds + ] = match + return buildDate( + strictParseShort(stripLeadingZeroes(yearStr)), + parseMonthByShortName(monthStr), + parseDateValue(dayStr, 'day', 1, 31), + { hours, minutes, seconds, fractionalMilliseconds } + ) + } + match = RFC_850_DATE.exec(value) + if (match) { + const [ + _, + dayStr, + monthStr, + yearStr, + hours, + minutes, + seconds, + fractionalMilliseconds + ] = match + return adjustRfc850Year( + buildDate( + parseTwoDigitYear(yearStr), + parseMonthByShortName(monthStr), + parseDateValue(dayStr, 'day', 1, 31), + { + hours, + minutes, + seconds, + fractionalMilliseconds + } + ) + ) + } + match = ASC_TIME.exec(value) + if (match) { + const [ + _, + monthStr, + dayStr, + hours, + minutes, + seconds, + fractionalMilliseconds, + yearStr + ] = match + return buildDate( + strictParseShort(stripLeadingZeroes(yearStr)), + parseMonthByShortName(monthStr), + parseDateValue(dayStr.trimLeft(), 'day', 1, 31), + { hours, minutes, seconds, fractionalMilliseconds } + ) + } + throw new TypeError('Invalid RFC-7231 date-time value') + }, 'parseRfc7231DateTime') + var parseEpochTimestamp = /* @__PURE__ */ __name(value => { + if (value === null || value === void 0) { + return void 0 + } + let valueAsDouble + if (typeof value === 'number') { + valueAsDouble = value + } else if (typeof value === 'string') { + valueAsDouble = strictParseDouble(value) + } else if (typeof value === 'object' && value.tag === 1) { + valueAsDouble = value.value + } else { + throw new TypeError( + 'Epoch timestamps must be expressed as floating point numbers or their string representation' + ) + } + if ( + Number.isNaN(valueAsDouble) || + valueAsDouble === Infinity || + valueAsDouble === -Infinity + ) { + throw new TypeError( + 'Epoch timestamps must be valid, non-Infinite, non-NaN numerics' + ) + } + return new Date(Math.round(valueAsDouble * 1e3)) + }, 'parseEpochTimestamp') + var buildDate = /* @__PURE__ */ __name((year, month, day, time) => { + const adjustedMonth = month - 1 + validateDayOfMonth(year, adjustedMonth, day) + return new Date( + Date.UTC( + year, + adjustedMonth, + day, + parseDateValue(time.hours, 'hour', 0, 23), + parseDateValue(time.minutes, 'minute', 0, 59), + // seconds can go up to 60 for leap seconds + parseDateValue(time.seconds, 'seconds', 0, 60), + parseMilliseconds(time.fractionalMilliseconds) + ) + ) + }, 'buildDate') + var parseTwoDigitYear = /* @__PURE__ */ __name(value => { + const thisYear = /* @__PURE__ */ new Date().getUTCFullYear() + const valueInThisCentury = + Math.floor(thisYear / 100) * 100 + + strictParseShort(stripLeadingZeroes(value)) + if (valueInThisCentury < thisYear) { + return valueInThisCentury + 100 + } + return valueInThisCentury + }, 'parseTwoDigitYear') + var FIFTY_YEARS_IN_MILLIS = 50 * 365 * 24 * 60 * 60 * 1e3 + var adjustRfc850Year = /* @__PURE__ */ __name(input => { + if ( + input.getTime() - /* @__PURE__ */ new Date().getTime() > + FIFTY_YEARS_IN_MILLIS + ) { + return new Date( + Date.UTC( + input.getUTCFullYear() - 100, + input.getUTCMonth(), + input.getUTCDate(), + input.getUTCHours(), + input.getUTCMinutes(), + input.getUTCSeconds(), + input.getUTCMilliseconds() + ) + ) + } + return input + }, 'adjustRfc850Year') + var parseMonthByShortName = /* @__PURE__ */ __name(value => { + const monthIdx = MONTHS.indexOf(value) + if (monthIdx < 0) { + throw new TypeError(`Invalid month: ${value}`) + } + return monthIdx + 1 + }, 'parseMonthByShortName') + var DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] + var validateDayOfMonth = /* @__PURE__ */ __name((year, month, day) => { + let maxDays = DAYS_IN_MONTH[month] + if (month === 1 && isLeapYear(year)) { + maxDays = 29 + } + if (day > maxDays) { + throw new TypeError( + `Invalid day for ${MONTHS[month]} in ${year}: ${day}` + ) + } + }, 'validateDayOfMonth') + var isLeapYear = /* @__PURE__ */ __name(year => { + return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0) + }, 'isLeapYear') + var parseDateValue = /* @__PURE__ */ __name( + (value, type, lower, upper) => { + const dateVal = strictParseByte(stripLeadingZeroes(value)) + if (dateVal < lower || dateVal > upper) { + throw new TypeError( + `${type} must be between ${lower} and ${upper}, inclusive` + ) + } + return dateVal + }, + 'parseDateValue' + ) + var parseMilliseconds = /* @__PURE__ */ __name(value => { + if (value === null || value === void 0) { + return 0 + } + return strictParseFloat32('0.' + value) * 1e3 + }, 'parseMilliseconds') + var parseOffsetToMilliseconds = /* @__PURE__ */ __name(value => { + const directionStr = value[0] + let direction = 1 + if (directionStr == '+') { + direction = 1 + } else if (directionStr == '-') { + direction = -1 + } else { + throw new TypeError( + `Offset direction, ${directionStr}, must be "+" or "-"` + ) + } + const hour = Number(value.substring(1, 3)) + const minute = Number(value.substring(4, 6)) + return direction * (hour * 60 + minute) * 60 * 1e3 + }, 'parseOffsetToMilliseconds') + var stripLeadingZeroes = /* @__PURE__ */ __name(value => { + let idx = 0 + while (idx < value.length - 1 && value.charAt(idx) === '0') { + idx++ + } + if (idx === 0) { + return value + } + return value.slice(idx) + }, 'stripLeadingZeroes') + + // src/exceptions.ts + var ServiceException = class _ServiceException extends Error { + static { + __name(this, 'ServiceException') + } + constructor(options) { + super(options.message) + Object.setPrototypeOf( + this, + Object.getPrototypeOf(this).constructor.prototype + ) + this.name = options.name + this.$fault = options.$fault + this.$metadata = options.$metadata + } + /** + * Checks if a value is an instance of ServiceException (duck typed) + */ + static isInstance(value) { + if (!value) return false + const candidate = value + return ( + _ServiceException.prototype.isPrototypeOf(candidate) || + (Boolean(candidate.$fault) && + Boolean(candidate.$metadata) && + (candidate.$fault === 'client' || candidate.$fault === 'server')) + ) + } + /** + * Custom instanceof check to support the operator for ServiceException base class + */ + static [Symbol.hasInstance](instance) { + if (!instance) return false + const candidate = instance + if (this === _ServiceException) { + return _ServiceException.isInstance(instance) + } + if (_ServiceException.isInstance(instance)) { + if (candidate.name && this.name) { + return ( + this.prototype.isPrototypeOf(instance) || + candidate.name === this.name + ) + } + return this.prototype.isPrototypeOf(instance) + } + return false + } + } + var decorateServiceException = /* @__PURE__ */ __name( + (exception, additions = {}) => { + Object.entries(additions) + .filter(([, v]) => v !== void 0) + .forEach(([k, v]) => { + if (exception[k] == void 0 || exception[k] === '') { + exception[k] = v + } + }) + const message = + exception.message || exception.Message || 'UnknownError' + exception.message = message + delete exception.Message + return exception + }, + 'decorateServiceException' + ) -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.resolveHttpAuthSchemeConfig = exports.resolveStsAuthConfig = exports.defaultSTSHttpAuthSchemeProvider = exports.defaultSTSHttpAuthSchemeParametersProvider = void 0; -const core_1 = __nccwpck_require__(11928); -const util_middleware_1 = __nccwpck_require__(14298); -const STSClient_1 = __nccwpck_require__(68974); -const defaultSTSHttpAuthSchemeParametersProvider = async (config, context, input) => { - return { - operation: (0, util_middleware_1.getSmithyContext)(context).operation, - region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) || - (() => { - throw new Error("expected `region` to be configured for `aws.auth#sigv4`"); - })(), - }; -}; -exports.defaultSTSHttpAuthSchemeParametersProvider = defaultSTSHttpAuthSchemeParametersProvider; -function createAwsAuthSigv4HttpAuthOption(authParameters) { - return { - schemeId: "aws.auth#sigv4", - signingProperties: { - name: "sts", - region: authParameters.region, - }, - propertiesExtractor: (config, context) => ({ - signingProperties: { - config, - context, - }, + // src/default-error-handler.ts + var throwDefaultError = /* @__PURE__ */ __name( + ({ output, parsedBody, exceptionCtor, errorCode }) => { + const $metadata = deserializeMetadata(output) + const statusCode = $metadata.httpStatusCode + ? $metadata.httpStatusCode + '' + : void 0 + const response = new exceptionCtor({ + name: + parsedBody?.code || + parsedBody?.Code || + errorCode || + statusCode || + 'UnknownError', + $fault: 'client', + $metadata + }) + throw decorateServiceException(response, parsedBody) + }, + 'throwDefaultError' + ) + var withBaseException = /* @__PURE__ */ __name(ExceptionCtor => { + return ({ output, parsedBody, errorCode }) => { + throwDefaultError({ + output, + parsedBody, + exceptionCtor: ExceptionCtor, + errorCode + }) + } + }, 'withBaseException') + var deserializeMetadata = /* @__PURE__ */ __name( + output => ({ + httpStatusCode: output.statusCode, + requestId: + output.headers['x-amzn-requestid'] ?? + output.headers['x-amzn-request-id'] ?? + output.headers['x-amz-request-id'], + extendedRequestId: output.headers['x-amz-id-2'], + cfId: output.headers['x-amz-cf-id'] }), - }; -} -function createSmithyApiNoAuthHttpAuthOption(authParameters) { - return { - schemeId: "smithy.api#noAuth", - }; -} -const defaultSTSHttpAuthSchemeProvider = (authParameters) => { - const options = []; - switch (authParameters.operation) { - case "AssumeRoleWithWebIdentity": { - options.push(createSmithyApiNoAuthHttpAuthOption(authParameters)); - break; - } - default: { - options.push(createAwsAuthSigv4HttpAuthOption(authParameters)); + 'deserializeMetadata' + ) + + // src/defaults-mode.ts + var loadConfigsForDefaultMode = /* @__PURE__ */ __name(mode => { + switch (mode) { + case 'standard': + return { + retryMode: 'standard', + connectionTimeout: 3100 + } + case 'in-region': + return { + retryMode: 'standard', + connectionTimeout: 1100 + } + case 'cross-region': + return { + retryMode: 'standard', + connectionTimeout: 3100 + } + case 'mobile': + return { + retryMode: 'standard', + connectionTimeout: 3e4 + } + default: + return {} } - } - return options; -}; -exports.defaultSTSHttpAuthSchemeProvider = defaultSTSHttpAuthSchemeProvider; -const resolveStsAuthConfig = (input) => Object.assign(input, { - stsClientCtor: STSClient_1.STSClient, -}); -exports.resolveStsAuthConfig = resolveStsAuthConfig; -const resolveHttpAuthSchemeConfig = (config) => { - const config_0 = (0, exports.resolveStsAuthConfig)(config); - const config_1 = (0, core_1.resolveAwsSdkSigV4Config)(config_0); - return Object.assign(config_1, {}); -}; -exports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig; - - -/***/ }), - -/***/ 41765: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.commonParams = exports.resolveClientEndpointParameters = void 0; -const resolveClientEndpointParameters = (options) => { - return Object.assign(options, { - useDualstackEndpoint: options.useDualstackEndpoint ?? false, - useFipsEndpoint: options.useFipsEndpoint ?? false, - useGlobalEndpoint: options.useGlobalEndpoint ?? false, - defaultSigningName: "sts", - }); -}; -exports.resolveClientEndpointParameters = resolveClientEndpointParameters; -exports.commonParams = { - UseGlobalEndpoint: { type: "builtInParams", name: "useGlobalEndpoint" }, - UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" }, - Endpoint: { type: "builtInParams", name: "endpoint" }, - Region: { type: "builtInParams", name: "region" }, - UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" }, -}; - - -/***/ }), - -/***/ 47561: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.defaultEndpointResolver = void 0; -const util_endpoints_1 = __nccwpck_require__(65237); -const util_endpoints_2 = __nccwpck_require__(42178); -const ruleset_1 = __nccwpck_require__(39127); -const cache = new util_endpoints_2.EndpointCache({ - size: 50, - params: ["Endpoint", "Region", "UseDualStack", "UseFIPS", "UseGlobalEndpoint"], -}); -const defaultEndpointResolver = (endpointParams, context = {}) => { - return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, { - endpointParams: endpointParams, - logger: context.logger, - })); -}; -exports.defaultEndpointResolver = defaultEndpointResolver; -util_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions; - - -/***/ }), - -/***/ 39127: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.ruleSet = void 0; -const F = "required", G = "type", H = "fn", I = "argv", J = "ref"; -const a = false, b = true, c = "booleanEquals", d = "stringEquals", e = "sigv4", f = "sts", g = "us-east-1", h = "endpoint", i = "https://sts.{Region}.{PartitionResult#dnsSuffix}", j = "tree", k = "error", l = "getAttr", m = { [F]: false, [G]: "String" }, n = { [F]: true, "default": false, [G]: "Boolean" }, o = { [J]: "Endpoint" }, p = { [H]: "isSet", [I]: [{ [J]: "Region" }] }, q = { [J]: "Region" }, r = { [H]: "aws.partition", [I]: [q], "assign": "PartitionResult" }, s = { [J]: "UseFIPS" }, t = { [J]: "UseDualStack" }, u = { "url": "https://sts.amazonaws.com", "properties": { "authSchemes": [{ "name": e, "signingName": f, "signingRegion": g }] }, "headers": {} }, v = {}, w = { "conditions": [{ [H]: d, [I]: [q, "aws-global"] }], [h]: u, [G]: h }, x = { [H]: c, [I]: [s, true] }, y = { [H]: c, [I]: [t, true] }, z = { [H]: l, [I]: [{ [J]: "PartitionResult" }, "supportsFIPS"] }, A = { [J]: "PartitionResult" }, B = { [H]: c, [I]: [true, { [H]: l, [I]: [A, "supportsDualStack"] }] }, C = [{ [H]: "isSet", [I]: [o] }], D = [x], E = [y]; -const _data = { version: "1.0", parameters: { Region: m, UseDualStack: n, UseFIPS: n, Endpoint: m, UseGlobalEndpoint: n }, rules: [{ conditions: [{ [H]: c, [I]: [{ [J]: "UseGlobalEndpoint" }, b] }, { [H]: "not", [I]: C }, p, r, { [H]: c, [I]: [s, a] }, { [H]: c, [I]: [t, a] }], rules: [{ conditions: [{ [H]: d, [I]: [q, "ap-northeast-1"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, "ap-south-1"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, "ap-southeast-1"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, "ap-southeast-2"] }], endpoint: u, [G]: h }, w, { conditions: [{ [H]: d, [I]: [q, "ca-central-1"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, "eu-central-1"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, "eu-north-1"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, "eu-west-1"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, "eu-west-2"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, "eu-west-3"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, "sa-east-1"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, g] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, "us-east-2"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, "us-west-1"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, "us-west-2"] }], endpoint: u, [G]: h }, { endpoint: { url: i, properties: { authSchemes: [{ name: e, signingName: f, signingRegion: "{Region}" }] }, headers: v }, [G]: h }], [G]: j }, { conditions: C, rules: [{ conditions: D, error: "Invalid Configuration: FIPS and custom endpoint are not supported", [G]: k }, { conditions: E, error: "Invalid Configuration: Dualstack and custom endpoint are not supported", [G]: k }, { endpoint: { url: o, properties: v, headers: v }, [G]: h }], [G]: j }, { conditions: [p], rules: [{ conditions: [r], rules: [{ conditions: [x, y], rules: [{ conditions: [{ [H]: c, [I]: [b, z] }, B], rules: [{ endpoint: { url: "https://sts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", properties: v, headers: v }, [G]: h }], [G]: j }, { error: "FIPS and DualStack are enabled, but this partition does not support one or both", [G]: k }], [G]: j }, { conditions: D, rules: [{ conditions: [{ [H]: c, [I]: [z, b] }], rules: [{ conditions: [{ [H]: d, [I]: [{ [H]: l, [I]: [A, "name"] }, "aws-us-gov"] }], endpoint: { url: "https://sts.{Region}.amazonaws.com", properties: v, headers: v }, [G]: h }, { endpoint: { url: "https://sts-fips.{Region}.{PartitionResult#dnsSuffix}", properties: v, headers: v }, [G]: h }], [G]: j }, { error: "FIPS is enabled but this partition does not support FIPS", [G]: k }], [G]: j }, { conditions: E, rules: [{ conditions: [B], rules: [{ endpoint: { url: "https://sts.{Region}.{PartitionResult#dualStackDnsSuffix}", properties: v, headers: v }, [G]: h }], [G]: j }, { error: "DualStack is enabled but this partition does not support DualStack", [G]: k }], [G]: j }, w, { endpoint: { url: i, properties: v, headers: v }, [G]: h }], [G]: j }], [G]: j }, { error: "Invalid Configuration: Missing Region", [G]: k }] }; -exports.ruleSet = _data; - - -/***/ }), - -/***/ 2273: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/submodules/sts/index.ts -var index_exports = {}; -__export(index_exports, { - AssumeRoleCommand: () => AssumeRoleCommand, - AssumeRoleResponseFilterSensitiveLog: () => AssumeRoleResponseFilterSensitiveLog, - AssumeRoleWithWebIdentityCommand: () => AssumeRoleWithWebIdentityCommand, - AssumeRoleWithWebIdentityRequestFilterSensitiveLog: () => AssumeRoleWithWebIdentityRequestFilterSensitiveLog, - AssumeRoleWithWebIdentityResponseFilterSensitiveLog: () => AssumeRoleWithWebIdentityResponseFilterSensitiveLog, - ClientInputEndpointParameters: () => import_EndpointParameters3.ClientInputEndpointParameters, - CredentialsFilterSensitiveLog: () => CredentialsFilterSensitiveLog, - ExpiredTokenException: () => ExpiredTokenException, - IDPCommunicationErrorException: () => IDPCommunicationErrorException, - IDPRejectedClaimException: () => IDPRejectedClaimException, - InvalidIdentityTokenException: () => InvalidIdentityTokenException, - MalformedPolicyDocumentException: () => MalformedPolicyDocumentException, - PackedPolicyTooLargeException: () => PackedPolicyTooLargeException, - RegionDisabledException: () => RegionDisabledException, - STS: () => STS, - STSServiceException: () => STSServiceException, - decorateDefaultCredentialProvider: () => decorateDefaultCredentialProvider, - getDefaultRoleAssumer: () => getDefaultRoleAssumer2, - getDefaultRoleAssumerWithWebIdentity: () => getDefaultRoleAssumerWithWebIdentity2 -}); -module.exports = __toCommonJS(index_exports); -__reExport(index_exports, __nccwpck_require__(68974), module.exports); - -// src/submodules/sts/STS.ts -var import_smithy_client6 = __nccwpck_require__(21433); - -// src/submodules/sts/commands/AssumeRoleCommand.ts -var import_middleware_endpoint = __nccwpck_require__(23435); -var import_middleware_serde = __nccwpck_require__(94572); -var import_smithy_client4 = __nccwpck_require__(21433); -var import_EndpointParameters = __nccwpck_require__(41765); - -// src/submodules/sts/models/models_0.ts -var import_smithy_client2 = __nccwpck_require__(21433); - -// src/submodules/sts/models/STSServiceException.ts -var import_smithy_client = __nccwpck_require__(21433); -var STSServiceException = class _STSServiceException extends import_smithy_client.ServiceException { - static { - __name(this, "STSServiceException"); - } - /** - * @internal - */ - constructor(options) { - super(options); - Object.setPrototypeOf(this, _STSServiceException.prototype); - } -}; - -// src/submodules/sts/models/models_0.ts -var CredentialsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({ - ...obj, - ...obj.SecretAccessKey && { SecretAccessKey: import_smithy_client2.SENSITIVE_STRING } -}), "CredentialsFilterSensitiveLog"); -var AssumeRoleResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({ - ...obj, - ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) } -}), "AssumeRoleResponseFilterSensitiveLog"); -var ExpiredTokenException = class _ExpiredTokenException extends STSServiceException { - static { - __name(this, "ExpiredTokenException"); - } - name = "ExpiredTokenException"; - $fault = "client"; - /** - * @internal - */ - constructor(opts) { - super({ - name: "ExpiredTokenException", - $fault: "client", - ...opts - }); - Object.setPrototypeOf(this, _ExpiredTokenException.prototype); - } -}; -var MalformedPolicyDocumentException = class _MalformedPolicyDocumentException extends STSServiceException { - static { - __name(this, "MalformedPolicyDocumentException"); - } - name = "MalformedPolicyDocumentException"; - $fault = "client"; - /** - * @internal - */ - constructor(opts) { - super({ - name: "MalformedPolicyDocumentException", - $fault: "client", - ...opts - }); - Object.setPrototypeOf(this, _MalformedPolicyDocumentException.prototype); - } -}; -var PackedPolicyTooLargeException = class _PackedPolicyTooLargeException extends STSServiceException { - static { - __name(this, "PackedPolicyTooLargeException"); - } - name = "PackedPolicyTooLargeException"; - $fault = "client"; - /** - * @internal - */ - constructor(opts) { - super({ - name: "PackedPolicyTooLargeException", - $fault: "client", - ...opts - }); - Object.setPrototypeOf(this, _PackedPolicyTooLargeException.prototype); - } -}; -var RegionDisabledException = class _RegionDisabledException extends STSServiceException { - static { - __name(this, "RegionDisabledException"); - } - name = "RegionDisabledException"; - $fault = "client"; - /** - * @internal - */ - constructor(opts) { - super({ - name: "RegionDisabledException", - $fault: "client", - ...opts - }); - Object.setPrototypeOf(this, _RegionDisabledException.prototype); - } -}; -var IDPRejectedClaimException = class _IDPRejectedClaimException extends STSServiceException { - static { - __name(this, "IDPRejectedClaimException"); - } - name = "IDPRejectedClaimException"; - $fault = "client"; - /** - * @internal - */ - constructor(opts) { - super({ - name: "IDPRejectedClaimException", - $fault: "client", - ...opts - }); - Object.setPrototypeOf(this, _IDPRejectedClaimException.prototype); - } -}; -var InvalidIdentityTokenException = class _InvalidIdentityTokenException extends STSServiceException { - static { - __name(this, "InvalidIdentityTokenException"); - } - name = "InvalidIdentityTokenException"; - $fault = "client"; - /** - * @internal - */ - constructor(opts) { - super({ - name: "InvalidIdentityTokenException", - $fault: "client", - ...opts - }); - Object.setPrototypeOf(this, _InvalidIdentityTokenException.prototype); - } -}; -var AssumeRoleWithWebIdentityRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({ - ...obj, - ...obj.WebIdentityToken && { WebIdentityToken: import_smithy_client2.SENSITIVE_STRING } -}), "AssumeRoleWithWebIdentityRequestFilterSensitiveLog"); -var AssumeRoleWithWebIdentityResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({ - ...obj, - ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) } -}), "AssumeRoleWithWebIdentityResponseFilterSensitiveLog"); -var IDPCommunicationErrorException = class _IDPCommunicationErrorException extends STSServiceException { - static { - __name(this, "IDPCommunicationErrorException"); - } - name = "IDPCommunicationErrorException"; - $fault = "client"; - /** - * @internal - */ - constructor(opts) { - super({ - name: "IDPCommunicationErrorException", - $fault: "client", - ...opts - }); - Object.setPrototypeOf(this, _IDPCommunicationErrorException.prototype); - } -}; - -// src/submodules/sts/protocols/Aws_query.ts -var import_core = __nccwpck_require__(11928); -var import_protocol_http = __nccwpck_require__(18241); -var import_smithy_client3 = __nccwpck_require__(21433); -var se_AssumeRoleCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_AssumeRoleRequest(input, context), - [_A]: _AR, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_AssumeRoleCommand"); -var se_AssumeRoleWithWebIdentityCommand = /* @__PURE__ */ __name(async (input, context) => { - const headers = SHARED_HEADERS; - let body; - body = buildFormUrlencodedString({ - ...se_AssumeRoleWithWebIdentityRequest(input, context), - [_A]: _ARWWI, - [_V]: _ - }); - return buildHttpRpcRequest(context, headers, "/", void 0, body); -}, "se_AssumeRoleWithWebIdentityCommand"); -var de_AssumeRoleCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_AssumeRoleResponse(data.AssumeRoleResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_AssumeRoleCommand"); -var de_AssumeRoleWithWebIdentityCommand = /* @__PURE__ */ __name(async (output, context) => { - if (output.statusCode >= 300) { - return de_CommandError(output, context); - } - const data = await (0, import_core.parseXmlBody)(output.body, context); - let contents = {}; - contents = de_AssumeRoleWithWebIdentityResponse(data.AssumeRoleWithWebIdentityResult, context); - const response = { - $metadata: deserializeMetadata(output), - ...contents - }; - return response; -}, "de_AssumeRoleWithWebIdentityCommand"); -var de_CommandError = /* @__PURE__ */ __name(async (output, context) => { - const parsedOutput = { - ...output, - body: await (0, import_core.parseXmlErrorBody)(output.body, context) - }; - const errorCode = loadQueryErrorCode(output, parsedOutput.body); - switch (errorCode) { - case "ExpiredTokenException": - case "com.amazonaws.sts#ExpiredTokenException": - throw await de_ExpiredTokenExceptionRes(parsedOutput, context); - case "MalformedPolicyDocument": - case "com.amazonaws.sts#MalformedPolicyDocumentException": - throw await de_MalformedPolicyDocumentExceptionRes(parsedOutput, context); - case "PackedPolicyTooLarge": - case "com.amazonaws.sts#PackedPolicyTooLargeException": - throw await de_PackedPolicyTooLargeExceptionRes(parsedOutput, context); - case "RegionDisabledException": - case "com.amazonaws.sts#RegionDisabledException": - throw await de_RegionDisabledExceptionRes(parsedOutput, context); - case "IDPCommunicationError": - case "com.amazonaws.sts#IDPCommunicationErrorException": - throw await de_IDPCommunicationErrorExceptionRes(parsedOutput, context); - case "IDPRejectedClaim": - case "com.amazonaws.sts#IDPRejectedClaimException": - throw await de_IDPRejectedClaimExceptionRes(parsedOutput, context); - case "InvalidIdentityToken": - case "com.amazonaws.sts#InvalidIdentityTokenException": - throw await de_InvalidIdentityTokenExceptionRes(parsedOutput, context); - default: - const parsedBody = parsedOutput.body; - return throwDefaultError({ - output, - parsedBody: parsedBody.Error, - errorCode - }); - } -}, "de_CommandError"); -var de_ExpiredTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const body = parsedOutput.body; - const deserialized = de_ExpiredTokenException(body.Error, context); - const exception = new ExpiredTokenException({ - $metadata: deserializeMetadata(parsedOutput), - ...deserialized - }); - return (0, import_smithy_client3.decorateServiceException)(exception, body); -}, "de_ExpiredTokenExceptionRes"); -var de_IDPCommunicationErrorExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const body = parsedOutput.body; - const deserialized = de_IDPCommunicationErrorException(body.Error, context); - const exception = new IDPCommunicationErrorException({ - $metadata: deserializeMetadata(parsedOutput), - ...deserialized - }); - return (0, import_smithy_client3.decorateServiceException)(exception, body); -}, "de_IDPCommunicationErrorExceptionRes"); -var de_IDPRejectedClaimExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const body = parsedOutput.body; - const deserialized = de_IDPRejectedClaimException(body.Error, context); - const exception = new IDPRejectedClaimException({ - $metadata: deserializeMetadata(parsedOutput), - ...deserialized - }); - return (0, import_smithy_client3.decorateServiceException)(exception, body); -}, "de_IDPRejectedClaimExceptionRes"); -var de_InvalidIdentityTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const body = parsedOutput.body; - const deserialized = de_InvalidIdentityTokenException(body.Error, context); - const exception = new InvalidIdentityTokenException({ - $metadata: deserializeMetadata(parsedOutput), - ...deserialized - }); - return (0, import_smithy_client3.decorateServiceException)(exception, body); -}, "de_InvalidIdentityTokenExceptionRes"); -var de_MalformedPolicyDocumentExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const body = parsedOutput.body; - const deserialized = de_MalformedPolicyDocumentException(body.Error, context); - const exception = new MalformedPolicyDocumentException({ - $metadata: deserializeMetadata(parsedOutput), - ...deserialized - }); - return (0, import_smithy_client3.decorateServiceException)(exception, body); -}, "de_MalformedPolicyDocumentExceptionRes"); -var de_PackedPolicyTooLargeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const body = parsedOutput.body; - const deserialized = de_PackedPolicyTooLargeException(body.Error, context); - const exception = new PackedPolicyTooLargeException({ - $metadata: deserializeMetadata(parsedOutput), - ...deserialized - }); - return (0, import_smithy_client3.decorateServiceException)(exception, body); -}, "de_PackedPolicyTooLargeExceptionRes"); -var de_RegionDisabledExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { - const body = parsedOutput.body; - const deserialized = de_RegionDisabledException(body.Error, context); - const exception = new RegionDisabledException({ - $metadata: deserializeMetadata(parsedOutput), - ...deserialized - }); - return (0, import_smithy_client3.decorateServiceException)(exception, body); -}, "de_RegionDisabledExceptionRes"); -var se_AssumeRoleRequest = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_RA] != null) { - entries[_RA] = input[_RA]; - } - if (input[_RSN] != null) { - entries[_RSN] = input[_RSN]; - } - if (input[_PA] != null) { - const memberEntries = se_policyDescriptorListType(input[_PA], context); - if (input[_PA]?.length === 0) { - entries.PolicyArns = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `PolicyArns.${key}`; - entries[loc] = value; - }); - } - if (input[_P] != null) { - entries[_P] = input[_P]; - } - if (input[_DS] != null) { - entries[_DS] = input[_DS]; - } - if (input[_T] != null) { - const memberEntries = se_tagListType(input[_T], context); - if (input[_T]?.length === 0) { - entries.Tags = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `Tags.${key}`; - entries[loc] = value; - }); - } - if (input[_TTK] != null) { - const memberEntries = se_tagKeyListType(input[_TTK], context); - if (input[_TTK]?.length === 0) { - entries.TransitiveTagKeys = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `TransitiveTagKeys.${key}`; - entries[loc] = value; - }); - } - if (input[_EI] != null) { - entries[_EI] = input[_EI]; - } - if (input[_SN] != null) { - entries[_SN] = input[_SN]; - } - if (input[_TC] != null) { - entries[_TC] = input[_TC]; - } - if (input[_SI] != null) { - entries[_SI] = input[_SI]; - } - if (input[_PC] != null) { - const memberEntries = se_ProvidedContextsListType(input[_PC], context); - if (input[_PC]?.length === 0) { - entries.ProvidedContexts = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `ProvidedContexts.${key}`; - entries[loc] = value; - }); - } - return entries; -}, "se_AssumeRoleRequest"); -var se_AssumeRoleWithWebIdentityRequest = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_RA] != null) { - entries[_RA] = input[_RA]; - } - if (input[_RSN] != null) { - entries[_RSN] = input[_RSN]; - } - if (input[_WIT] != null) { - entries[_WIT] = input[_WIT]; - } - if (input[_PI] != null) { - entries[_PI] = input[_PI]; - } - if (input[_PA] != null) { - const memberEntries = se_policyDescriptorListType(input[_PA], context); - if (input[_PA]?.length === 0) { - entries.PolicyArns = []; - } - Object.entries(memberEntries).forEach(([key, value]) => { - const loc = `PolicyArns.${key}`; - entries[loc] = value; - }); - } - if (input[_P] != null) { - entries[_P] = input[_P]; - } - if (input[_DS] != null) { - entries[_DS] = input[_DS]; - } - return entries; -}, "se_AssumeRoleWithWebIdentityRequest"); -var se_policyDescriptorListType = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - let counter = 1; - for (const entry of input) { - if (entry === null) { - continue; - } - const memberEntries = se_PolicyDescriptorType(entry, context); - Object.entries(memberEntries).forEach(([key, value]) => { - entries[`member.${counter}.${key}`] = value; - }); - counter++; - } - return entries; -}, "se_policyDescriptorListType"); -var se_PolicyDescriptorType = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_a] != null) { - entries[_a] = input[_a]; - } - return entries; -}, "se_PolicyDescriptorType"); -var se_ProvidedContext = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_PAr] != null) { - entries[_PAr] = input[_PAr]; - } - if (input[_CA] != null) { - entries[_CA] = input[_CA]; - } - return entries; -}, "se_ProvidedContext"); -var se_ProvidedContextsListType = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - let counter = 1; - for (const entry of input) { - if (entry === null) { - continue; - } - const memberEntries = se_ProvidedContext(entry, context); - Object.entries(memberEntries).forEach(([key, value]) => { - entries[`member.${counter}.${key}`] = value; - }); - counter++; - } - return entries; -}, "se_ProvidedContextsListType"); -var se_Tag = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - if (input[_K] != null) { - entries[_K] = input[_K]; - } - if (input[_Va] != null) { - entries[_Va] = input[_Va]; - } - return entries; -}, "se_Tag"); -var se_tagKeyListType = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - let counter = 1; - for (const entry of input) { - if (entry === null) { - continue; - } - entries[`member.${counter}`] = entry; - counter++; - } - return entries; -}, "se_tagKeyListType"); -var se_tagListType = /* @__PURE__ */ __name((input, context) => { - const entries = {}; - let counter = 1; - for (const entry of input) { - if (entry === null) { - continue; - } - const memberEntries = se_Tag(entry, context); - Object.entries(memberEntries).forEach(([key, value]) => { - entries[`member.${counter}.${key}`] = value; - }); - counter++; - } - return entries; -}, "se_tagListType"); -var de_AssumedRoleUser = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_ARI] != null) { - contents[_ARI] = (0, import_smithy_client3.expectString)(output[_ARI]); - } - if (output[_Ar] != null) { - contents[_Ar] = (0, import_smithy_client3.expectString)(output[_Ar]); - } - return contents; -}, "de_AssumedRoleUser"); -var de_AssumeRoleResponse = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_C] != null) { - contents[_C] = de_Credentials(output[_C], context); - } - if (output[_ARU] != null) { - contents[_ARU] = de_AssumedRoleUser(output[_ARU], context); - } - if (output[_PPS] != null) { - contents[_PPS] = (0, import_smithy_client3.strictParseInt32)(output[_PPS]); - } - if (output[_SI] != null) { - contents[_SI] = (0, import_smithy_client3.expectString)(output[_SI]); - } - return contents; -}, "de_AssumeRoleResponse"); -var de_AssumeRoleWithWebIdentityResponse = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_C] != null) { - contents[_C] = de_Credentials(output[_C], context); - } - if (output[_SFWIT] != null) { - contents[_SFWIT] = (0, import_smithy_client3.expectString)(output[_SFWIT]); - } - if (output[_ARU] != null) { - contents[_ARU] = de_AssumedRoleUser(output[_ARU], context); - } - if (output[_PPS] != null) { - contents[_PPS] = (0, import_smithy_client3.strictParseInt32)(output[_PPS]); - } - if (output[_Pr] != null) { - contents[_Pr] = (0, import_smithy_client3.expectString)(output[_Pr]); - } - if (output[_Au] != null) { - contents[_Au] = (0, import_smithy_client3.expectString)(output[_Au]); - } - if (output[_SI] != null) { - contents[_SI] = (0, import_smithy_client3.expectString)(output[_SI]); - } - return contents; -}, "de_AssumeRoleWithWebIdentityResponse"); -var de_Credentials = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_AKI] != null) { - contents[_AKI] = (0, import_smithy_client3.expectString)(output[_AKI]); - } - if (output[_SAK] != null) { - contents[_SAK] = (0, import_smithy_client3.expectString)(output[_SAK]); - } - if (output[_ST] != null) { - contents[_ST] = (0, import_smithy_client3.expectString)(output[_ST]); - } - if (output[_E] != null) { - contents[_E] = (0, import_smithy_client3.expectNonNull)((0, import_smithy_client3.parseRfc3339DateTimeWithOffset)(output[_E])); - } - return contents; -}, "de_Credentials"); -var de_ExpiredTokenException = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_m] != null) { - contents[_m] = (0, import_smithy_client3.expectString)(output[_m]); - } - return contents; -}, "de_ExpiredTokenException"); -var de_IDPCommunicationErrorException = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_m] != null) { - contents[_m] = (0, import_smithy_client3.expectString)(output[_m]); - } - return contents; -}, "de_IDPCommunicationErrorException"); -var de_IDPRejectedClaimException = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_m] != null) { - contents[_m] = (0, import_smithy_client3.expectString)(output[_m]); - } - return contents; -}, "de_IDPRejectedClaimException"); -var de_InvalidIdentityTokenException = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_m] != null) { - contents[_m] = (0, import_smithy_client3.expectString)(output[_m]); - } - return contents; -}, "de_InvalidIdentityTokenException"); -var de_MalformedPolicyDocumentException = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_m] != null) { - contents[_m] = (0, import_smithy_client3.expectString)(output[_m]); - } - return contents; -}, "de_MalformedPolicyDocumentException"); -var de_PackedPolicyTooLargeException = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_m] != null) { - contents[_m] = (0, import_smithy_client3.expectString)(output[_m]); - } - return contents; -}, "de_PackedPolicyTooLargeException"); -var de_RegionDisabledException = /* @__PURE__ */ __name((output, context) => { - const contents = {}; - if (output[_m] != null) { - contents[_m] = (0, import_smithy_client3.expectString)(output[_m]); - } - return contents; -}, "de_RegionDisabledException"); -var deserializeMetadata = /* @__PURE__ */ __name((output) => ({ - httpStatusCode: output.statusCode, - requestId: output.headers["x-amzn-requestid"] ?? output.headers["x-amzn-request-id"] ?? output.headers["x-amz-request-id"], - extendedRequestId: output.headers["x-amz-id-2"], - cfId: output.headers["x-amz-cf-id"] -}), "deserializeMetadata"); -var throwDefaultError = (0, import_smithy_client3.withBaseException)(STSServiceException); -var buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => { - const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); - const contents = { - protocol, - hostname, - port, - method: "POST", - path: basePath.endsWith("/") ? basePath.slice(0, -1) + path : basePath + path, - headers - }; - if (resolvedHostname !== void 0) { - contents.hostname = resolvedHostname; - } - if (body !== void 0) { - contents.body = body; - } - return new import_protocol_http.HttpRequest(contents); -}, "buildHttpRpcRequest"); -var SHARED_HEADERS = { - "content-type": "application/x-www-form-urlencoded" -}; -var _ = "2011-06-15"; -var _A = "Action"; -var _AKI = "AccessKeyId"; -var _AR = "AssumeRole"; -var _ARI = "AssumedRoleId"; -var _ARU = "AssumedRoleUser"; -var _ARWWI = "AssumeRoleWithWebIdentity"; -var _Ar = "Arn"; -var _Au = "Audience"; -var _C = "Credentials"; -var _CA = "ContextAssertion"; -var _DS = "DurationSeconds"; -var _E = "Expiration"; -var _EI = "ExternalId"; -var _K = "Key"; -var _P = "Policy"; -var _PA = "PolicyArns"; -var _PAr = "ProviderArn"; -var _PC = "ProvidedContexts"; -var _PI = "ProviderId"; -var _PPS = "PackedPolicySize"; -var _Pr = "Provider"; -var _RA = "RoleArn"; -var _RSN = "RoleSessionName"; -var _SAK = "SecretAccessKey"; -var _SFWIT = "SubjectFromWebIdentityToken"; -var _SI = "SourceIdentity"; -var _SN = "SerialNumber"; -var _ST = "SessionToken"; -var _T = "Tags"; -var _TC = "TokenCode"; -var _TTK = "TransitiveTagKeys"; -var _V = "Version"; -var _Va = "Value"; -var _WIT = "WebIdentityToken"; -var _a = "arn"; -var _m = "message"; -var buildFormUrlencodedString = /* @__PURE__ */ __name((formEntries) => Object.entries(formEntries).map(([key, value]) => (0, import_smithy_client3.extendedEncodeURIComponent)(key) + "=" + (0, import_smithy_client3.extendedEncodeURIComponent)(value)).join("&"), "buildFormUrlencodedString"); -var loadQueryErrorCode = /* @__PURE__ */ __name((output, data) => { - if (data.Error?.Code !== void 0) { - return data.Error.Code; - } - if (output.statusCode == 404) { - return "NotFound"; - } -}, "loadQueryErrorCode"); - -// src/submodules/sts/commands/AssumeRoleCommand.ts -var AssumeRoleCommand = class extends import_smithy_client4.Command.classBuilder().ep(import_EndpointParameters.commonParams).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("AWSSecurityTokenServiceV20110615", "AssumeRole", {}).n("STSClient", "AssumeRoleCommand").f(void 0, AssumeRoleResponseFilterSensitiveLog).ser(se_AssumeRoleCommand).de(de_AssumeRoleCommand).build() { - static { - __name(this, "AssumeRoleCommand"); - } -}; - -// src/submodules/sts/commands/AssumeRoleWithWebIdentityCommand.ts -var import_middleware_endpoint2 = __nccwpck_require__(23435); -var import_middleware_serde2 = __nccwpck_require__(94572); -var import_smithy_client5 = __nccwpck_require__(21433); -var import_EndpointParameters2 = __nccwpck_require__(41765); -var AssumeRoleWithWebIdentityCommand = class extends import_smithy_client5.Command.classBuilder().ep(import_EndpointParameters2.commonParams).m(function(Command, cs, config, o) { - return [ - (0, import_middleware_serde2.getSerdePlugin)(config, this.serialize, this.deserialize), - (0, import_middleware_endpoint2.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) - ]; -}).s("AWSSecurityTokenServiceV20110615", "AssumeRoleWithWebIdentity", {}).n("STSClient", "AssumeRoleWithWebIdentityCommand").f(AssumeRoleWithWebIdentityRequestFilterSensitiveLog, AssumeRoleWithWebIdentityResponseFilterSensitiveLog).ser(se_AssumeRoleWithWebIdentityCommand).de(de_AssumeRoleWithWebIdentityCommand).build() { - static { - __name(this, "AssumeRoleWithWebIdentityCommand"); - } -}; - -// src/submodules/sts/STS.ts -var import_STSClient = __nccwpck_require__(68974); -var commands = { - AssumeRoleCommand, - AssumeRoleWithWebIdentityCommand -}; -var STS = class extends import_STSClient.STSClient { - static { - __name(this, "STS"); - } -}; -(0, import_smithy_client6.createAggregatedClient)(commands, STS); - -// src/submodules/sts/index.ts -var import_EndpointParameters3 = __nccwpck_require__(41765); - -// src/submodules/sts/defaultStsRoleAssumers.ts -var import_client = __nccwpck_require__(83526); -var ASSUME_ROLE_DEFAULT_REGION = "us-east-1"; -var getAccountIdFromAssumedRoleUser = /* @__PURE__ */ __name((assumedRoleUser) => { - if (typeof assumedRoleUser?.Arn === "string") { - const arnComponents = assumedRoleUser.Arn.split(":"); - if (arnComponents.length > 4 && arnComponents[4] !== "") { - return arnComponents[4]; - } - } - return void 0; -}, "getAccountIdFromAssumedRoleUser"); -var resolveRegion = /* @__PURE__ */ __name(async (_region, _parentRegion, credentialProviderLogger) => { - const region = typeof _region === "function" ? await _region() : _region; - const parentRegion = typeof _parentRegion === "function" ? await _parentRegion() : _parentRegion; - credentialProviderLogger?.debug?.( - "@aws-sdk/client-sts::resolveRegion", - "accepting first of:", - `${region} (provider)`, - `${parentRegion} (parent client)`, - `${ASSUME_ROLE_DEFAULT_REGION} (STS default)` - ); - return region ?? parentRegion ?? ASSUME_ROLE_DEFAULT_REGION; -}, "resolveRegion"); -var getDefaultRoleAssumer = /* @__PURE__ */ __name((stsOptions, STSClient3) => { - let stsClient; - let closureSourceCreds; - return async (sourceCreds, params) => { - closureSourceCreds = sourceCreds; - if (!stsClient) { - const { - logger = stsOptions?.parentClientConfig?.logger, - region, - requestHandler = stsOptions?.parentClientConfig?.requestHandler, - credentialProviderLogger - } = stsOptions; - const resolvedRegion = await resolveRegion( - region, - stsOptions?.parentClientConfig?.region, - credentialProviderLogger - ); - const isCompatibleRequestHandler = !isH2(requestHandler); - stsClient = new STSClient3({ - profile: stsOptions?.parentClientConfig?.profile, - // A hack to make sts client uses the credential in current closure. - credentialDefaultProvider: /* @__PURE__ */ __name(() => async () => closureSourceCreds, "credentialDefaultProvider"), - region: resolvedRegion, - requestHandler: isCompatibleRequestHandler ? requestHandler : void 0, - logger - }); - } - const { Credentials: Credentials2, AssumedRoleUser: AssumedRoleUser2 } = await stsClient.send(new AssumeRoleCommand(params)); - if (!Credentials2 || !Credentials2.AccessKeyId || !Credentials2.SecretAccessKey) { - throw new Error(`Invalid response from STS.assumeRole call with role ${params.RoleArn}`); - } - const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser2); - const credentials = { - accessKeyId: Credentials2.AccessKeyId, - secretAccessKey: Credentials2.SecretAccessKey, - sessionToken: Credentials2.SessionToken, - expiration: Credentials2.Expiration, - // TODO(credentialScope): access normally when shape is updated. - ...Credentials2.CredentialScope && { credentialScope: Credentials2.CredentialScope }, - ...accountId && { accountId } - }; - (0, import_client.setCredentialFeature)(credentials, "CREDENTIALS_STS_ASSUME_ROLE", "i"); - return credentials; - }; -}, "getDefaultRoleAssumer"); -var getDefaultRoleAssumerWithWebIdentity = /* @__PURE__ */ __name((stsOptions, STSClient3) => { - let stsClient; - return async (params) => { - if (!stsClient) { - const { - logger = stsOptions?.parentClientConfig?.logger, - region, - requestHandler = stsOptions?.parentClientConfig?.requestHandler, - credentialProviderLogger - } = stsOptions; - const resolvedRegion = await resolveRegion( - region, - stsOptions?.parentClientConfig?.region, - credentialProviderLogger - ); - const isCompatibleRequestHandler = !isH2(requestHandler); - stsClient = new STSClient3({ - profile: stsOptions?.parentClientConfig?.profile, - region: resolvedRegion, - requestHandler: isCompatibleRequestHandler ? requestHandler : void 0, - logger - }); - } - const { Credentials: Credentials2, AssumedRoleUser: AssumedRoleUser2 } = await stsClient.send(new AssumeRoleWithWebIdentityCommand(params)); - if (!Credentials2 || !Credentials2.AccessKeyId || !Credentials2.SecretAccessKey) { - throw new Error(`Invalid response from STS.assumeRoleWithWebIdentity call with role ${params.RoleArn}`); - } - const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser2); - const credentials = { - accessKeyId: Credentials2.AccessKeyId, - secretAccessKey: Credentials2.SecretAccessKey, - sessionToken: Credentials2.SessionToken, - expiration: Credentials2.Expiration, - // TODO(credentialScope): access normally when shape is updated. - ...Credentials2.CredentialScope && { credentialScope: Credentials2.CredentialScope }, - ...accountId && { accountId } - }; - if (accountId) { - (0, import_client.setCredentialFeature)(credentials, "RESOLVED_ACCOUNT_ID", "T"); - } - (0, import_client.setCredentialFeature)(credentials, "CREDENTIALS_STS_ASSUME_ROLE_WEB_ID", "k"); - return credentials; - }; -}, "getDefaultRoleAssumerWithWebIdentity"); -var isH2 = /* @__PURE__ */ __name((requestHandler) => { - return requestHandler?.metadata?.handlerProtocol === "h2"; -}, "isH2"); - -// src/submodules/sts/defaultRoleAssumers.ts -var import_STSClient2 = __nccwpck_require__(68974); -var getCustomizableStsClientCtor = /* @__PURE__ */ __name((baseCtor, customizations) => { - if (!customizations) return baseCtor; - else - return class CustomizableSTSClient extends baseCtor { - static { - __name(this, "CustomizableSTSClient"); - } - constructor(config) { - super(config); - for (const customization of customizations) { - this.middlewareStack.use(customization); - } - } - }; -}, "getCustomizableStsClientCtor"); -var getDefaultRoleAssumer2 = /* @__PURE__ */ __name((stsOptions = {}, stsPlugins) => getDefaultRoleAssumer(stsOptions, getCustomizableStsClientCtor(import_STSClient2.STSClient, stsPlugins)), "getDefaultRoleAssumer"); -var getDefaultRoleAssumerWithWebIdentity2 = /* @__PURE__ */ __name((stsOptions = {}, stsPlugins) => getDefaultRoleAssumerWithWebIdentity(stsOptions, getCustomizableStsClientCtor(import_STSClient2.STSClient, stsPlugins)), "getDefaultRoleAssumerWithWebIdentity"); -var decorateDefaultCredentialProvider = /* @__PURE__ */ __name((provider) => (input) => provider({ - roleAssumer: getDefaultRoleAssumer2(input), - roleAssumerWithWebIdentity: getDefaultRoleAssumerWithWebIdentity2(input), - ...input -}), "decorateDefaultCredentialProvider"); -// Annotate the CommonJS export names for ESM import in node: -0 && (0); - - -/***/ }), - -/***/ 1798: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getRuntimeConfig = void 0; -const tslib_1 = __nccwpck_require__(4351); -const package_json_1 = tslib_1.__importDefault(__nccwpck_require__(88842)); -const core_1 = __nccwpck_require__(11928); -const util_user_agent_node_1 = __nccwpck_require__(29318); -const config_resolver_1 = __nccwpck_require__(99541); -const core_2 = __nccwpck_require__(1004); -const hash_node_1 = __nccwpck_require__(92920); -const middleware_retry_1 = __nccwpck_require__(23737); -const node_config_provider_1 = __nccwpck_require__(85650); -const node_http_handler_1 = __nccwpck_require__(96798); -const util_body_length_node_1 = __nccwpck_require__(24047); -const util_retry_1 = __nccwpck_require__(35808); -const runtimeConfig_shared_1 = __nccwpck_require__(75238); -const smithy_client_1 = __nccwpck_require__(21433); -const util_defaults_mode_node_1 = __nccwpck_require__(43762); -const smithy_client_2 = __nccwpck_require__(21433); -const getRuntimeConfig = (config) => { - (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version); - const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config); - const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode); - const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config); - (0, core_1.emitWarningIfUnsupportedVersion)(process.version); - const profileConfig = { profile: config?.profile }; - return { - ...clientSharedValues, - ...config, - runtime: "node", - defaultsMode, - bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength, - defaultUserAgentProvider: config?.defaultUserAgentProvider ?? - (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }), - httpAuthSchemes: config?.httpAuthSchemes ?? [ - { - schemeId: "aws.auth#sigv4", - identityProvider: (ipc) => ipc.getIdentityProvider("aws.auth#sigv4") || - (async (idProps) => await config.credentialDefaultProvider(idProps?.__config || {})()), - signer: new core_1.AwsSdkSigV4Signer(), - }, - { - schemeId: "smithy.api#noAuth", - identityProvider: (ipc) => ipc.getIdentityProvider("smithy.api#noAuth") || (async () => ({})), - signer: new core_2.NoAuthSigner(), - }, - ], - maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config), - region: config?.region ?? - (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...profileConfig }), - requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider), - retryMode: config?.retryMode ?? - (0, node_config_provider_1.loadConfig)({ - ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS, - default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE, - }, config), - sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, "sha256"), - streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector, - useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, profileConfig), - useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, profileConfig), - userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, profileConfig), - }; -}; -exports.getRuntimeConfig = getRuntimeConfig; - - -/***/ }), - -/***/ 75238: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getRuntimeConfig = void 0; -const core_1 = __nccwpck_require__(11928); -const core_2 = __nccwpck_require__(1004); -const smithy_client_1 = __nccwpck_require__(21433); -const url_parser_1 = __nccwpck_require__(94769); -const util_base64_1 = __nccwpck_require__(44079); -const util_utf8_1 = __nccwpck_require__(76749); -const httpAuthSchemeProvider_1 = __nccwpck_require__(48013); -const endpointResolver_1 = __nccwpck_require__(47561); -const getRuntimeConfig = (config) => { - return { - apiVersion: "2011-06-15", - base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64, - base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64, - disableHostPrefix: config?.disableHostPrefix ?? false, - endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver, - extensions: config?.extensions ?? [], - httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSTSHttpAuthSchemeProvider, - httpAuthSchemes: config?.httpAuthSchemes ?? [ - { - schemeId: "aws.auth#sigv4", - identityProvider: (ipc) => ipc.getIdentityProvider("aws.auth#sigv4"), - signer: new core_1.AwsSdkSigV4Signer(), - }, - { - schemeId: "smithy.api#noAuth", - identityProvider: (ipc) => ipc.getIdentityProvider("smithy.api#noAuth") || (async () => ({})), - signer: new core_2.NoAuthSigner(), - }, - ], - logger: config?.logger ?? new smithy_client_1.NoOpLogger(), - serviceId: config?.serviceId ?? "STS", - urlParser: config?.urlParser ?? url_parser_1.parseUrl, - utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8, - utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8, - }; -}; -exports.getRuntimeConfig = getRuntimeConfig; - - -/***/ }), - -/***/ 30669: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.resolveRuntimeExtensions = void 0; -const region_config_resolver_1 = __nccwpck_require__(32357); -const protocol_http_1 = __nccwpck_require__(18241); -const smithy_client_1 = __nccwpck_require__(21433); -const httpAuthExtensionConfiguration_1 = __nccwpck_require__(14935); -const resolveRuntimeExtensions = (runtimeConfig, extensions) => { - const extensionConfiguration = Object.assign((0, region_config_resolver_1.getAwsRegionExtensionConfiguration)(runtimeConfig), (0, smithy_client_1.getDefaultExtensionConfiguration)(runtimeConfig), (0, protocol_http_1.getHttpHandlerExtensionConfiguration)(runtimeConfig), (0, httpAuthExtensionConfiguration_1.getHttpAuthExtensionConfiguration)(runtimeConfig)); - extensions.forEach((extension) => extension.configure(extensionConfiguration)); - return Object.assign(runtimeConfig, (0, region_config_resolver_1.resolveAwsRegionExtensionConfiguration)(extensionConfiguration), (0, smithy_client_1.resolveDefaultRuntimeConfig)(extensionConfiguration), (0, protocol_http_1.resolveHttpHandlerRuntimeConfig)(extensionConfiguration), (0, httpAuthExtensionConfiguration_1.resolveHttpAuthRuntimeConfig)(extensionConfiguration)); -}; -exports.resolveRuntimeExtensions = resolveRuntimeExtensions; - - -/***/ }), - -/***/ 11928: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -const tslib_1 = __nccwpck_require__(4351); -tslib_1.__exportStar(__nccwpck_require__(83526), exports); -tslib_1.__exportStar(__nccwpck_require__(10203), exports); -tslib_1.__exportStar(__nccwpck_require__(7705), exports); - - -/***/ }), - -/***/ 83526: -/***/ ((module) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/submodules/client/index.ts -var index_exports = {}; -__export(index_exports, { - emitWarningIfUnsupportedVersion: () => emitWarningIfUnsupportedVersion, - setCredentialFeature: () => setCredentialFeature, - setFeature: () => setFeature, - state: () => state -}); -module.exports = __toCommonJS(index_exports); - -// src/submodules/client/emitWarningIfUnsupportedVersion.ts -var state = { - warningEmitted: false -}; -var emitWarningIfUnsupportedVersion = /* @__PURE__ */ __name((version) => { - if (version && !state.warningEmitted && parseInt(version.substring(1, version.indexOf("."))) < 18) { - state.warningEmitted = true; - process.emitWarning( - `NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will -no longer support Node.js 16.x on January 6, 2025. + }, 'loadConfigsForDefaultMode') -To continue receiving updates to AWS services, bug fixes, and security -updates please upgrade to a supported Node.js LTS version. + // src/emitWarningIfUnsupportedVersion.ts + var warningEmitted = false + var emitWarningIfUnsupportedVersion = /* @__PURE__ */ __name(version => { + if ( + version && + !warningEmitted && + parseInt(version.substring(1, version.indexOf('.'))) < 16 + ) { + warningEmitted = true + } + }, 'emitWarningIfUnsupportedVersion') -More information can be found at: https://a.co/74kJMmI` - ); - } -}, "emitWarningIfUnsupportedVersion"); + // src/extended-encode-uri-component.ts -// src/submodules/client/setCredentialFeature.ts -function setCredentialFeature(credentials, feature, value) { - if (!credentials.$source) { - credentials.$source = {}; - } - credentials.$source[feature] = value; - return credentials; -} -__name(setCredentialFeature, "setCredentialFeature"); - -// src/submodules/client/setFeature.ts -function setFeature(context, feature, value) { - if (!context.__aws_sdk_context) { - context.__aws_sdk_context = { - features: {} - }; - } else if (!context.__aws_sdk_context.features) { - context.__aws_sdk_context.features = {}; - } - context.__aws_sdk_context.features[feature] = value; -} -__name(setFeature, "setFeature"); -// Annotate the CommonJS export names for ESM import in node: -0 && (0); - - -/***/ }), - -/***/ 10203: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/submodules/httpAuthSchemes/index.ts -var index_exports = {}; -__export(index_exports, { - AWSSDKSigV4Signer: () => AWSSDKSigV4Signer, - AwsSdkSigV4ASigner: () => AwsSdkSigV4ASigner, - AwsSdkSigV4Signer: () => AwsSdkSigV4Signer, - NODE_SIGV4A_CONFIG_OPTIONS: () => NODE_SIGV4A_CONFIG_OPTIONS, - resolveAWSSDKSigV4Config: () => resolveAWSSDKSigV4Config, - resolveAwsSdkSigV4AConfig: () => resolveAwsSdkSigV4AConfig, - resolveAwsSdkSigV4Config: () => resolveAwsSdkSigV4Config, - validateSigningProperties: () => validateSigningProperties -}); -module.exports = __toCommonJS(index_exports); - -// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts -var import_protocol_http2 = __nccwpck_require__(18241); - -// src/submodules/httpAuthSchemes/utils/getDateHeader.ts -var import_protocol_http = __nccwpck_require__(18241); -var getDateHeader = /* @__PURE__ */ __name((response) => import_protocol_http.HttpResponse.isInstance(response) ? response.headers?.date ?? response.headers?.Date : void 0, "getDateHeader"); - -// src/submodules/httpAuthSchemes/utils/getSkewCorrectedDate.ts -var getSkewCorrectedDate = /* @__PURE__ */ __name((systemClockOffset) => new Date(Date.now() + systemClockOffset), "getSkewCorrectedDate"); - -// src/submodules/httpAuthSchemes/utils/isClockSkewed.ts -var isClockSkewed = /* @__PURE__ */ __name((clockTime, systemClockOffset) => Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - clockTime) >= 3e5, "isClockSkewed"); - -// src/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.ts -var getUpdatedSystemClockOffset = /* @__PURE__ */ __name((clockTime, currentSystemClockOffset) => { - const clockTimeInMs = Date.parse(clockTime); - if (isClockSkewed(clockTimeInMs, currentSystemClockOffset)) { - return clockTimeInMs - Date.now(); - } - return currentSystemClockOffset; -}, "getUpdatedSystemClockOffset"); + // src/extensions/checksum.ts -// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts -var throwSigningPropertyError = /* @__PURE__ */ __name((name, property) => { - if (!property) { - throw new Error(`Property \`${name}\` is not resolved for AWS SDK SigV4Auth`); - } - return property; -}, "throwSigningPropertyError"); -var validateSigningProperties = /* @__PURE__ */ __name(async (signingProperties) => { - const context = throwSigningPropertyError( - "context", - signingProperties.context - ); - const config = throwSigningPropertyError("config", signingProperties.config); - const authScheme = context.endpointV2?.properties?.authSchemes?.[0]; - const signerFunction = throwSigningPropertyError( - "signer", - config.signer - ); - const signer = await signerFunction(authScheme); - const signingRegion = signingProperties?.signingRegion; - const signingRegionSet = signingProperties?.signingRegionSet; - const signingName = signingProperties?.signingName; - return { - config, - signer, - signingRegion, - signingRegionSet, - signingName - }; -}, "validateSigningProperties"); -var AwsSdkSigV4Signer = class { - static { - __name(this, "AwsSdkSigV4Signer"); - } - async sign(httpRequest, identity, signingProperties) { - if (!import_protocol_http2.HttpRequest.isInstance(httpRequest)) { - throw new Error("The request is not an instance of `HttpRequest` and cannot be signed"); - } - const validatedProps = await validateSigningProperties(signingProperties); - const { config, signer } = validatedProps; - let { signingRegion, signingName } = validatedProps; - const handlerExecutionContext = signingProperties.context; - if (handlerExecutionContext?.authSchemes?.length ?? 0 > 1) { - const [first, second] = handlerExecutionContext.authSchemes; - if (first?.name === "sigv4a" && second?.name === "sigv4") { - signingRegion = second?.signingRegion ?? signingRegion; - signingName = second?.signingName ?? signingName; - } - } - const signedRequest = await signer.sign(httpRequest, { - signingDate: getSkewCorrectedDate(config.systemClockOffset), - signingRegion, - signingService: signingName - }); - return signedRequest; - } - errorHandler(signingProperties) { - return (error) => { - const serverTime = error.ServerTime ?? getDateHeader(error.$response); - if (serverTime) { - const config = throwSigningPropertyError("config", signingProperties.config); - const initialSystemClockOffset = config.systemClockOffset; - config.systemClockOffset = getUpdatedSystemClockOffset(serverTime, config.systemClockOffset); - const clockSkewCorrected = config.systemClockOffset !== initialSystemClockOffset; - if (clockSkewCorrected && error.$metadata) { - error.$metadata.clockSkewCorrected = true; - } - } - throw error; - }; - } - successHandler(httpResponse, signingProperties) { - const dateHeader = getDateHeader(httpResponse); - if (dateHeader) { - const config = throwSigningPropertyError("config", signingProperties.config); - config.systemClockOffset = getUpdatedSystemClockOffset(dateHeader, config.systemClockOffset); - } - } -}; -var AWSSDKSigV4Signer = AwsSdkSigV4Signer; - -// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.ts -var import_protocol_http3 = __nccwpck_require__(18241); -var AwsSdkSigV4ASigner = class extends AwsSdkSigV4Signer { - static { - __name(this, "AwsSdkSigV4ASigner"); - } - async sign(httpRequest, identity, signingProperties) { - if (!import_protocol_http3.HttpRequest.isInstance(httpRequest)) { - throw new Error("The request is not an instance of `HttpRequest` and cannot be signed"); - } - const { config, signer, signingRegion, signingRegionSet, signingName } = await validateSigningProperties( - signingProperties - ); - const configResolvedSigningRegionSet = await config.sigv4aSigningRegionSet?.(); - const multiRegionOverride = (configResolvedSigningRegionSet ?? signingRegionSet ?? [signingRegion]).join(","); - const signedRequest = await signer.sign(httpRequest, { - signingDate: getSkewCorrectedDate(config.systemClockOffset), - signingRegion: multiRegionOverride, - signingService: signingName - }); - return signedRequest; - } -}; - -// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4AConfig.ts -var import_core = __nccwpck_require__(1004); -var import_property_provider = __nccwpck_require__(51005); -var resolveAwsSdkSigV4AConfig = /* @__PURE__ */ __name((config) => { - config.sigv4aSigningRegionSet = (0, import_core.normalizeProvider)(config.sigv4aSigningRegionSet); - return config; -}, "resolveAwsSdkSigV4AConfig"); -var NODE_SIGV4A_CONFIG_OPTIONS = { - environmentVariableSelector(env) { - if (env.AWS_SIGV4A_SIGNING_REGION_SET) { - return env.AWS_SIGV4A_SIGNING_REGION_SET.split(",").map((_) => _.trim()); - } - throw new import_property_provider.ProviderError("AWS_SIGV4A_SIGNING_REGION_SET not set in env.", { - tryNextLink: true - }); - }, - configFileSelector(profile) { - if (profile.sigv4a_signing_region_set) { - return (profile.sigv4a_signing_region_set ?? "").split(",").map((_) => _.trim()); - } - throw new import_property_provider.ProviderError("sigv4a_signing_region_set not set in profile.", { - tryNextLink: true - }); - }, - default: void 0 -}; - -// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.ts -var import_client = __nccwpck_require__(83526); -var import_core2 = __nccwpck_require__(1004); -var import_signature_v4 = __nccwpck_require__(55499); -var resolveAwsSdkSigV4Config = /* @__PURE__ */ __name((config) => { - let inputCredentials = config.credentials; - let isUserSupplied = !!config.credentials; - let resolvedCredentials = void 0; - Object.defineProperty(config, "credentials", { - set(credentials) { - if (credentials && credentials !== inputCredentials && credentials !== resolvedCredentials) { - isUserSupplied = true; - } - inputCredentials = credentials; - const memoizedProvider = normalizeCredentialProvider(config, { - credentials: inputCredentials, - credentialDefaultProvider: config.credentialDefaultProvider - }); - const boundProvider = bindCallerConfig(config, memoizedProvider); - if (isUserSupplied && !boundProvider.attributed) { - resolvedCredentials = /* @__PURE__ */ __name(async (options) => boundProvider(options).then( - (creds) => (0, import_client.setCredentialFeature)(creds, "CREDENTIALS_CODE", "e") - ), "resolvedCredentials"); - resolvedCredentials.memoized = boundProvider.memoized; - resolvedCredentials.configBound = boundProvider.configBound; - resolvedCredentials.attributed = true; - } else { - resolvedCredentials = boundProvider; - } - }, - get() { - return resolvedCredentials; - }, - enumerable: true, - configurable: true - }); - config.credentials = inputCredentials; - const { - // Default for signingEscapePath - signingEscapePath = true, - // Default for systemClockOffset - systemClockOffset = config.systemClockOffset || 0, - // No default for sha256 since it is platform dependent - sha256 - } = config; - let signer; - if (config.signer) { - signer = (0, import_core2.normalizeProvider)(config.signer); - } else if (config.regionInfoProvider) { - signer = /* @__PURE__ */ __name(() => (0, import_core2.normalizeProvider)(config.region)().then( - async (region) => [ - await config.regionInfoProvider(region, { - useFipsEndpoint: await config.useFipsEndpoint(), - useDualstackEndpoint: await config.useDualstackEndpoint() - }) || {}, - region - ] - ).then(([regionInfo, region]) => { - const { signingRegion, signingService } = regionInfo; - config.signingRegion = config.signingRegion || signingRegion || region; - config.signingName = config.signingName || signingService || config.serviceId; - const params = { - ...config, - credentials: config.credentials, - region: config.signingRegion, - service: config.signingName, - sha256, - uriEscapePath: signingEscapePath - }; - const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4; - return new SignerCtor(params); - }), "signer"); - } else { - signer = /* @__PURE__ */ __name(async (authScheme) => { - authScheme = Object.assign( - {}, - { - name: "sigv4", - signingName: config.signingName || config.defaultSigningName, - signingRegion: await (0, import_core2.normalizeProvider)(config.region)(), - properties: {} - }, - authScheme - ); - const signingRegion = authScheme.signingRegion; - const signingService = authScheme.signingName; - config.signingRegion = config.signingRegion || signingRegion; - config.signingName = config.signingName || signingService || config.serviceId; - const params = { - ...config, - credentials: config.credentials, - region: config.signingRegion, - service: config.signingName, - sha256, - uriEscapePath: signingEscapePath - }; - const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4; - return new SignerCtor(params); - }, "signer"); - } - const resolvedConfig = Object.assign(config, { - systemClockOffset, - signingEscapePath, - signer - }); - return resolvedConfig; -}, "resolveAwsSdkSigV4Config"); -var resolveAWSSDKSigV4Config = resolveAwsSdkSigV4Config; -function normalizeCredentialProvider(config, { - credentials, - credentialDefaultProvider -}) { - let credentialsProvider; - if (credentials) { - if (!credentials?.memoized) { - credentialsProvider = (0, import_core2.memoizeIdentityProvider)(credentials, import_core2.isIdentityExpired, import_core2.doesIdentityRequireRefresh); - } else { - credentialsProvider = credentials; - } - } else { - if (credentialDefaultProvider) { - credentialsProvider = (0, import_core2.normalizeProvider)( - credentialDefaultProvider( - Object.assign({}, config, { - parentClientConfig: config + var getChecksumConfiguration = /* @__PURE__ */ __name(runtimeConfig => { + const checksumAlgorithms = [] + for (const id in import_types.AlgorithmId) { + const algorithmId = import_types.AlgorithmId[id] + if (runtimeConfig[algorithmId] === void 0) { + continue + } + checksumAlgorithms.push({ + algorithmId: () => algorithmId, + checksumConstructor: () => runtimeConfig[algorithmId] }) - ) - ); - } else { - credentialsProvider = /* @__PURE__ */ __name(async () => { - throw new Error( - "@aws-sdk/core::resolveAwsSdkSigV4Config - `credentials` not provided and no credentialDefaultProvider was configured." - ); - }, "credentialsProvider"); - } - } - credentialsProvider.memoized = true; - return credentialsProvider; -} -__name(normalizeCredentialProvider, "normalizeCredentialProvider"); -function bindCallerConfig(config, credentialsProvider) { - if (credentialsProvider.configBound) { - return credentialsProvider; - } - const fn = /* @__PURE__ */ __name(async (options) => credentialsProvider({ ...options, callerClientConfig: config }), "fn"); - fn.memoized = credentialsProvider.memoized; - fn.configBound = true; - return fn; -} -__name(bindCallerConfig, "bindCallerConfig"); -// Annotate the CommonJS export names for ESM import in node: -0 && (0); - - -/***/ }), - -/***/ 7705: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/submodules/protocols/index.ts -var index_exports = {}; -__export(index_exports, { - _toBool: () => _toBool, - _toNum: () => _toNum, - _toStr: () => _toStr, - awsExpectUnion: () => awsExpectUnion, - loadRestJsonErrorCode: () => loadRestJsonErrorCode, - loadRestXmlErrorCode: () => loadRestXmlErrorCode, - parseJsonBody: () => parseJsonBody, - parseJsonErrorBody: () => parseJsonErrorBody, - parseXmlBody: () => parseXmlBody, - parseXmlErrorBody: () => parseXmlErrorBody -}); -module.exports = __toCommonJS(index_exports); - -// src/submodules/protocols/coercing-serializers.ts -var _toStr = /* @__PURE__ */ __name((val) => { - if (val == null) { - return val; - } - if (typeof val === "number" || typeof val === "bigint") { - const warning = new Error(`Received number ${val} where a string was expected.`); - warning.name = "Warning"; - console.warn(warning); - return String(val); - } - if (typeof val === "boolean") { - const warning = new Error(`Received boolean ${val} where a string was expected.`); - warning.name = "Warning"; - console.warn(warning); - return String(val); - } - return val; -}, "_toStr"); -var _toBool = /* @__PURE__ */ __name((val) => { - if (val == null) { - return val; - } - if (typeof val === "number") { - } - if (typeof val === "string") { - const lowercase = val.toLowerCase(); - if (val !== "" && lowercase !== "false" && lowercase !== "true") { - const warning = new Error(`Received string "${val}" where a boolean was expected.`); - warning.name = "Warning"; - console.warn(warning); - } - return val !== "" && lowercase !== "false"; - } - return val; -}, "_toBool"); -var _toNum = /* @__PURE__ */ __name((val) => { - if (val == null) { - return val; - } - if (typeof val === "boolean") { - } - if (typeof val === "string") { - const num = Number(val); - if (num.toString() !== val) { - const warning = new Error(`Received string "${val}" where a number was expected.`); - warning.name = "Warning"; - console.warn(warning); - return val; - } - return num; - } - return val; -}, "_toNum"); - -// src/submodules/protocols/json/awsExpectUnion.ts -var import_smithy_client = __nccwpck_require__(21433); -var awsExpectUnion = /* @__PURE__ */ __name((value) => { - if (value == null) { - return void 0; - } - if (typeof value === "object" && "__type" in value) { - delete value.__type; - } - return (0, import_smithy_client.expectUnion)(value); -}, "awsExpectUnion"); - -// src/submodules/protocols/common.ts -var import_smithy_client2 = __nccwpck_require__(21433); -var collectBodyString = /* @__PURE__ */ __name((streamBody, context) => (0, import_smithy_client2.collectBody)(streamBody, context).then((body) => context.utf8Encoder(body)), "collectBodyString"); - -// src/submodules/protocols/json/parseJsonBody.ts -var parseJsonBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => { - if (encoded.length) { - try { - return JSON.parse(encoded); - } catch (e) { - if (e?.name === "SyntaxError") { - Object.defineProperty(e, "$responseBodyText", { - value: encoded - }); - } - throw e; - } - } - return {}; -}), "parseJsonBody"); -var parseJsonErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => { - const value = await parseJsonBody(errorBody, context); - value.message = value.message ?? value.Message; - return value; -}, "parseJsonErrorBody"); -var loadRestJsonErrorCode = /* @__PURE__ */ __name((output, data) => { - const findKey = /* @__PURE__ */ __name((object, key) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase()), "findKey"); - const sanitizeErrorCode = /* @__PURE__ */ __name((rawValue) => { - let cleanValue = rawValue; - if (typeof cleanValue === "number") { - cleanValue = cleanValue.toString(); - } - if (cleanValue.indexOf(",") >= 0) { - cleanValue = cleanValue.split(",")[0]; - } - if (cleanValue.indexOf(":") >= 0) { - cleanValue = cleanValue.split(":")[0]; - } - if (cleanValue.indexOf("#") >= 0) { - cleanValue = cleanValue.split("#")[1]; - } - return cleanValue; - }, "sanitizeErrorCode"); - const headerKey = findKey(output.headers, "x-amzn-errortype"); - if (headerKey !== void 0) { - return sanitizeErrorCode(output.headers[headerKey]); - } - if (data.code !== void 0) { - return sanitizeErrorCode(data.code); - } - if (data["__type"] !== void 0) { - return sanitizeErrorCode(data["__type"]); - } -}, "loadRestJsonErrorCode"); - -// src/submodules/protocols/xml/parseXmlBody.ts -var import_smithy_client3 = __nccwpck_require__(21433); -var import_fast_xml_parser = __nccwpck_require__(12603); -var parseXmlBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => { - if (encoded.length) { - const parser = new import_fast_xml_parser.XMLParser({ - attributeNamePrefix: "", - htmlEntities: true, - ignoreAttributes: false, - ignoreDeclaration: true, - parseTagValue: false, - trimValues: false, - tagValueProcessor: /* @__PURE__ */ __name((_, val) => val.trim() === "" && val.includes("\n") ? "" : void 0, "tagValueProcessor") - }); - parser.addEntity("#xD", "\r"); - parser.addEntity("#10", "\n"); - let parsedObj; - try { - parsedObj = parser.parse(encoded, true); - } catch (e) { - if (e && typeof e === "object") { - Object.defineProperty(e, "$responseBodyText", { - value: encoded - }); - } - throw e; - } - const textNodeName = "#text"; - const key = Object.keys(parsedObj)[0]; - const parsedObjToReturn = parsedObj[key]; - if (parsedObjToReturn[textNodeName]) { - parsedObjToReturn[key] = parsedObjToReturn[textNodeName]; - delete parsedObjToReturn[textNodeName]; - } - return (0, import_smithy_client3.getValueFromTextNode)(parsedObjToReturn); - } - return {}; -}), "parseXmlBody"); -var parseXmlErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => { - const value = await parseXmlBody(errorBody, context); - if (value.Error) { - value.Error.message = value.Error.message ?? value.Error.Message; - } - return value; -}, "parseXmlErrorBody"); -var loadRestXmlErrorCode = /* @__PURE__ */ __name((output, data) => { - if (data?.Error?.Code !== void 0) { - return data.Error.Code; - } - if (data?.Code !== void 0) { - return data.Code; - } - if (output.statusCode == 404) { - return "NotFound"; - } -}, "loadRestXmlErrorCode"); -// Annotate the CommonJS export names for ESM import in node: -0 && (0); - - -/***/ }), - -/***/ 97378: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var index_exports = {}; -__export(index_exports, { - getHostHeaderPlugin: () => getHostHeaderPlugin, - hostHeaderMiddleware: () => hostHeaderMiddleware, - hostHeaderMiddlewareOptions: () => hostHeaderMiddlewareOptions, - resolveHostHeaderConfig: () => resolveHostHeaderConfig -}); -module.exports = __toCommonJS(index_exports); -var import_protocol_http = __nccwpck_require__(18241); -function resolveHostHeaderConfig(input) { - return input; -} -__name(resolveHostHeaderConfig, "resolveHostHeaderConfig"); -var hostHeaderMiddleware = /* @__PURE__ */ __name((options) => (next) => async (args) => { - if (!import_protocol_http.HttpRequest.isInstance(args.request)) return next(args); - const { request } = args; - const { handlerProtocol = "" } = options.requestHandler.metadata || {}; - if (handlerProtocol.indexOf("h2") >= 0 && !request.headers[":authority"]) { - delete request.headers["host"]; - request.headers[":authority"] = request.hostname + (request.port ? ":" + request.port : ""); - } else if (!request.headers["host"]) { - let host = request.hostname; - if (request.port != null) host += `:${request.port}`; - request.headers["host"] = host; - } - return next(args); -}, "hostHeaderMiddleware"); -var hostHeaderMiddlewareOptions = { - name: "hostHeaderMiddleware", - step: "build", - priority: "low", - tags: ["HOST"], - override: true -}; -var getHostHeaderPlugin = /* @__PURE__ */ __name((options) => ({ - applyToStack: /* @__PURE__ */ __name((clientStack) => { - clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions); - }, "applyToStack") -}), "getHostHeaderPlugin"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 57779: -/***/ ((module) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var index_exports = {}; -__export(index_exports, { - getLoggerPlugin: () => getLoggerPlugin, - loggerMiddleware: () => loggerMiddleware, - loggerMiddlewareOptions: () => loggerMiddlewareOptions -}); -module.exports = __toCommonJS(index_exports); - -// src/loggerMiddleware.ts -var loggerMiddleware = /* @__PURE__ */ __name(() => (next, context) => async (args) => { - try { - const response = await next(args); - const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context; - const { overrideInputFilterSensitiveLog, overrideOutputFilterSensitiveLog } = dynamoDbDocumentClientOptions; - const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog; - const outputFilterSensitiveLog = overrideOutputFilterSensitiveLog ?? context.outputFilterSensitiveLog; - const { $metadata, ...outputWithoutMetadata } = response.output; - logger?.info?.({ - clientName, - commandName, - input: inputFilterSensitiveLog(args.input), - output: outputFilterSensitiveLog(outputWithoutMetadata), - metadata: $metadata - }); - return response; - } catch (error) { - const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context; - const { overrideInputFilterSensitiveLog } = dynamoDbDocumentClientOptions; - const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog; - logger?.error?.({ - clientName, - commandName, - input: inputFilterSensitiveLog(args.input), - error, - metadata: error.$metadata - }); - throw error; - } -}, "loggerMiddleware"); -var loggerMiddlewareOptions = { - name: "loggerMiddleware", - tags: ["LOGGER"], - step: "initialize", - override: true -}; -var getLoggerPlugin = /* @__PURE__ */ __name((options) => ({ - applyToStack: /* @__PURE__ */ __name((clientStack) => { - clientStack.add(loggerMiddleware(), loggerMiddlewareOptions); - }, "applyToStack") -}), "getLoggerPlugin"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 35398: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var index_exports = {}; -__export(index_exports, { - addRecursionDetectionMiddlewareOptions: () => addRecursionDetectionMiddlewareOptions, - getRecursionDetectionPlugin: () => getRecursionDetectionPlugin, - recursionDetectionMiddleware: () => recursionDetectionMiddleware -}); -module.exports = __toCommonJS(index_exports); -var import_protocol_http = __nccwpck_require__(18241); -var TRACE_ID_HEADER_NAME = "X-Amzn-Trace-Id"; -var ENV_LAMBDA_FUNCTION_NAME = "AWS_LAMBDA_FUNCTION_NAME"; -var ENV_TRACE_ID = "_X_AMZN_TRACE_ID"; -var recursionDetectionMiddleware = /* @__PURE__ */ __name((options) => (next) => async (args) => { - const { request } = args; - if (!import_protocol_http.HttpRequest.isInstance(request) || options.runtime !== "node") { - return next(args); - } - const traceIdHeader = Object.keys(request.headers ?? {}).find((h) => h.toLowerCase() === TRACE_ID_HEADER_NAME.toLowerCase()) ?? TRACE_ID_HEADER_NAME; - if (request.headers.hasOwnProperty(traceIdHeader)) { - return next(args); - } - const functionName = process.env[ENV_LAMBDA_FUNCTION_NAME]; - const traceId = process.env[ENV_TRACE_ID]; - const nonEmptyString = /* @__PURE__ */ __name((str) => typeof str === "string" && str.length > 0, "nonEmptyString"); - if (nonEmptyString(functionName) && nonEmptyString(traceId)) { - request.headers[TRACE_ID_HEADER_NAME] = traceId; - } - return next({ - ...args, - request - }); -}, "recursionDetectionMiddleware"); -var addRecursionDetectionMiddlewareOptions = { - step: "build", - tags: ["RECURSION_DETECTION"], - name: "recursionDetectionMiddleware", - override: true, - priority: "low" -}; -var getRecursionDetectionPlugin = /* @__PURE__ */ __name((options) => ({ - applyToStack: /* @__PURE__ */ __name((clientStack) => { - clientStack.add(recursionDetectionMiddleware(options), addRecursionDetectionMiddlewareOptions); - }, "applyToStack") -}), "getRecursionDetectionPlugin"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 1834: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var index_exports = {}; -__export(index_exports, { - DEFAULT_UA_APP_ID: () => DEFAULT_UA_APP_ID, - getUserAgentMiddlewareOptions: () => getUserAgentMiddlewareOptions, - getUserAgentPlugin: () => getUserAgentPlugin, - resolveUserAgentConfig: () => resolveUserAgentConfig, - userAgentMiddleware: () => userAgentMiddleware -}); -module.exports = __toCommonJS(index_exports); - -// src/configurations.ts -var import_core = __nccwpck_require__(1004); -var DEFAULT_UA_APP_ID = void 0; -function isValidUserAgentAppId(appId) { - if (appId === void 0) { - return true; - } - return typeof appId === "string" && appId.length <= 50; -} -__name(isValidUserAgentAppId, "isValidUserAgentAppId"); -function resolveUserAgentConfig(input) { - const normalizedAppIdProvider = (0, import_core.normalizeProvider)(input.userAgentAppId ?? DEFAULT_UA_APP_ID); - const { customUserAgent } = input; - return Object.assign(input, { - customUserAgent: typeof customUserAgent === "string" ? [[customUserAgent]] : customUserAgent, - userAgentAppId: /* @__PURE__ */ __name(async () => { - const appId = await normalizedAppIdProvider(); - if (!isValidUserAgentAppId(appId)) { - const logger = input.logger?.constructor?.name === "NoOpLogger" || !input.logger ? console : input.logger; - if (typeof appId !== "string") { - logger?.warn("userAgentAppId must be a string or undefined."); - } else if (appId.length > 50) { - logger?.warn("The provided userAgentAppId exceeds the maximum length of 50 characters."); - } - } - return appId; - }, "userAgentAppId") - }); -} -__name(resolveUserAgentConfig, "resolveUserAgentConfig"); - -// src/user-agent-middleware.ts -var import_util_endpoints = __nccwpck_require__(65237); -var import_protocol_http = __nccwpck_require__(18241); - -// src/check-features.ts -var import_core2 = __nccwpck_require__(11928); -var ACCOUNT_ID_ENDPOINT_REGEX = /\d{12}\.ddb/; -async function checkFeatures(context, config, args) { - const request = args.request; - if (request?.headers?.["smithy-protocol"] === "rpc-v2-cbor") { - (0, import_core2.setFeature)(context, "PROTOCOL_RPC_V2_CBOR", "M"); - } - if (typeof config.retryStrategy === "function") { - const retryStrategy = await config.retryStrategy(); - if (typeof retryStrategy.acquireInitialRetryToken === "function") { - if (retryStrategy.constructor?.name?.includes("Adaptive")) { - (0, import_core2.setFeature)(context, "RETRY_MODE_ADAPTIVE", "F"); - } else { - (0, import_core2.setFeature)(context, "RETRY_MODE_STANDARD", "E"); - } - } else { - (0, import_core2.setFeature)(context, "RETRY_MODE_LEGACY", "D"); - } - } - if (typeof config.accountIdEndpointMode === "function") { - const endpointV2 = context.endpointV2; - if (String(endpointV2?.url?.hostname).match(ACCOUNT_ID_ENDPOINT_REGEX)) { - (0, import_core2.setFeature)(context, "ACCOUNT_ID_ENDPOINT", "O"); - } - switch (await config.accountIdEndpointMode?.()) { - case "disabled": - (0, import_core2.setFeature)(context, "ACCOUNT_ID_MODE_DISABLED", "Q"); - break; - case "preferred": - (0, import_core2.setFeature)(context, "ACCOUNT_ID_MODE_PREFERRED", "P"); - break; - case "required": - (0, import_core2.setFeature)(context, "ACCOUNT_ID_MODE_REQUIRED", "R"); - break; - } - } - const identity = context.__smithy_context?.selectedHttpAuthScheme?.identity; - if (identity?.$source) { - const credentials = identity; - if (credentials.accountId) { - (0, import_core2.setFeature)(context, "RESOLVED_ACCOUNT_ID", "T"); - } - for (const [key, value] of Object.entries(credentials.$source ?? {})) { - (0, import_core2.setFeature)(context, key, value); - } - } -} -__name(checkFeatures, "checkFeatures"); - -// src/constants.ts -var USER_AGENT = "user-agent"; -var X_AMZ_USER_AGENT = "x-amz-user-agent"; -var SPACE = " "; -var UA_NAME_SEPARATOR = "/"; -var UA_NAME_ESCAPE_REGEX = /[^\!\$\%\&\'\*\+\-\.\^\_\`\|\~\d\w]/g; -var UA_VALUE_ESCAPE_REGEX = /[^\!\$\%\&\'\*\+\-\.\^\_\`\|\~\d\w\#]/g; -var UA_ESCAPE_CHAR = "-"; - -// src/encode-features.ts -var BYTE_LIMIT = 1024; -function encodeFeatures(features) { - let buffer = ""; - for (const key in features) { - const val = features[key]; - if (buffer.length + val.length + 1 <= BYTE_LIMIT) { - if (buffer.length) { - buffer += "," + val; - } else { - buffer += val; - } - continue; - } - break; - } - return buffer; -} -__name(encodeFeatures, "encodeFeatures"); - -// src/user-agent-middleware.ts -var userAgentMiddleware = /* @__PURE__ */ __name((options) => (next, context) => async (args) => { - const { request } = args; - if (!import_protocol_http.HttpRequest.isInstance(request)) { - return next(args); - } - const { headers } = request; - const userAgent = context?.userAgent?.map(escapeUserAgent) || []; - const defaultUserAgent = (await options.defaultUserAgentProvider()).map(escapeUserAgent); - await checkFeatures(context, options, args); - const awsContext = context; - defaultUserAgent.push( - `m/${encodeFeatures( - Object.assign({}, context.__smithy_context?.features, awsContext.__aws_sdk_context?.features) - )}` - ); - const customUserAgent = options?.customUserAgent?.map(escapeUserAgent) || []; - const appId = await options.userAgentAppId(); - if (appId) { - defaultUserAgent.push(escapeUserAgent([`app/${appId}`])); - } - const prefix = (0, import_util_endpoints.getUserAgentPrefix)(); - const sdkUserAgentValue = (prefix ? [prefix] : []).concat([...defaultUserAgent, ...userAgent, ...customUserAgent]).join(SPACE); - const normalUAValue = [ - ...defaultUserAgent.filter((section) => section.startsWith("aws-sdk-")), - ...customUserAgent - ].join(SPACE); - if (options.runtime !== "browser") { - if (normalUAValue) { - headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT] ? `${headers[USER_AGENT]} ${normalUAValue}` : normalUAValue; - } - headers[USER_AGENT] = sdkUserAgentValue; - } else { - headers[X_AMZ_USER_AGENT] = sdkUserAgentValue; - } - return next({ - ...args, - request - }); -}, "userAgentMiddleware"); -var escapeUserAgent = /* @__PURE__ */ __name((userAgentPair) => { - const name = userAgentPair[0].split(UA_NAME_SEPARATOR).map((part) => part.replace(UA_NAME_ESCAPE_REGEX, UA_ESCAPE_CHAR)).join(UA_NAME_SEPARATOR); - const version = userAgentPair[1]?.replace(UA_VALUE_ESCAPE_REGEX, UA_ESCAPE_CHAR); - const prefixSeparatorIndex = name.indexOf(UA_NAME_SEPARATOR); - const prefix = name.substring(0, prefixSeparatorIndex); - let uaName = name.substring(prefixSeparatorIndex + 1); - if (prefix === "api") { - uaName = uaName.toLowerCase(); - } - return [prefix, uaName, version].filter((item) => item && item.length > 0).reduce((acc, item, index) => { - switch (index) { - case 0: - return item; - case 1: - return `${acc}/${item}`; - default: - return `${acc}#${item}`; - } - }, ""); -}, "escapeUserAgent"); -var getUserAgentMiddlewareOptions = { - name: "getUserAgentMiddleware", - step: "build", - priority: "low", - tags: ["SET_USER_AGENT", "USER_AGENT"], - override: true -}; -var getUserAgentPlugin = /* @__PURE__ */ __name((config) => ({ - applyToStack: /* @__PURE__ */ __name((clientStack) => { - clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions); - }, "applyToStack") -}), "getUserAgentPlugin"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 32357: -/***/ ((module) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var index_exports = {}; -__export(index_exports, { - NODE_REGION_CONFIG_FILE_OPTIONS: () => NODE_REGION_CONFIG_FILE_OPTIONS, - NODE_REGION_CONFIG_OPTIONS: () => NODE_REGION_CONFIG_OPTIONS, - REGION_ENV_NAME: () => REGION_ENV_NAME, - REGION_INI_NAME: () => REGION_INI_NAME, - getAwsRegionExtensionConfiguration: () => getAwsRegionExtensionConfiguration, - resolveAwsRegionExtensionConfiguration: () => resolveAwsRegionExtensionConfiguration, - resolveRegionConfig: () => resolveRegionConfig -}); -module.exports = __toCommonJS(index_exports); - -// src/extensions/index.ts -var getAwsRegionExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => { - return { - setRegion(region) { - runtimeConfig.region = region; - }, - region() { - return runtimeConfig.region; - } - }; -}, "getAwsRegionExtensionConfiguration"); -var resolveAwsRegionExtensionConfiguration = /* @__PURE__ */ __name((awsRegionExtensionConfiguration) => { - return { - region: awsRegionExtensionConfiguration.region() - }; -}, "resolveAwsRegionExtensionConfiguration"); - -// src/regionConfig/config.ts -var REGION_ENV_NAME = "AWS_REGION"; -var REGION_INI_NAME = "region"; -var NODE_REGION_CONFIG_OPTIONS = { - environmentVariableSelector: /* @__PURE__ */ __name((env) => env[REGION_ENV_NAME], "environmentVariableSelector"), - configFileSelector: /* @__PURE__ */ __name((profile) => profile[REGION_INI_NAME], "configFileSelector"), - default: /* @__PURE__ */ __name(() => { - throw new Error("Region is missing"); - }, "default") -}; -var NODE_REGION_CONFIG_FILE_OPTIONS = { - preferredFile: "credentials" -}; - -// src/regionConfig/isFipsRegion.ts -var isFipsRegion = /* @__PURE__ */ __name((region) => typeof region === "string" && (region.startsWith("fips-") || region.endsWith("-fips")), "isFipsRegion"); - -// src/regionConfig/getRealRegion.ts -var getRealRegion = /* @__PURE__ */ __name((region) => isFipsRegion(region) ? ["fips-aws-global", "aws-fips"].includes(region) ? "us-east-1" : region.replace(/fips-(dkr-|prod-)?|-fips/, "") : region, "getRealRegion"); - -// src/regionConfig/resolveRegionConfig.ts -var resolveRegionConfig = /* @__PURE__ */ __name((input) => { - const { region, useFipsEndpoint } = input; - if (!region) { - throw new Error("Region is missing"); - } - return Object.assign(input, { - region: /* @__PURE__ */ __name(async () => { - if (typeof region === "string") { - return getRealRegion(region); - } - const providedRegion = await region(); - return getRealRegion(providedRegion); - }, "region"), - useFipsEndpoint: /* @__PURE__ */ __name(async () => { - const providedRegion = typeof region === "string" ? region : await region(); - if (isFipsRegion(providedRegion)) { - return true; - } - return typeof useFipsEndpoint !== "function" ? Promise.resolve(!!useFipsEndpoint) : useFipsEndpoint(); - }, "useFipsEndpoint") - }); -}, "resolveRegionConfig"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 65237: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var index_exports = {}; -__export(index_exports, { - ConditionObject: () => import_util_endpoints.ConditionObject, - DeprecatedObject: () => import_util_endpoints.DeprecatedObject, - EndpointError: () => import_util_endpoints.EndpointError, - EndpointObject: () => import_util_endpoints.EndpointObject, - EndpointObjectHeaders: () => import_util_endpoints.EndpointObjectHeaders, - EndpointObjectProperties: () => import_util_endpoints.EndpointObjectProperties, - EndpointParams: () => import_util_endpoints.EndpointParams, - EndpointResolverOptions: () => import_util_endpoints.EndpointResolverOptions, - EndpointRuleObject: () => import_util_endpoints.EndpointRuleObject, - ErrorRuleObject: () => import_util_endpoints.ErrorRuleObject, - EvaluateOptions: () => import_util_endpoints.EvaluateOptions, - Expression: () => import_util_endpoints.Expression, - FunctionArgv: () => import_util_endpoints.FunctionArgv, - FunctionObject: () => import_util_endpoints.FunctionObject, - FunctionReturn: () => import_util_endpoints.FunctionReturn, - ParameterObject: () => import_util_endpoints.ParameterObject, - ReferenceObject: () => import_util_endpoints.ReferenceObject, - ReferenceRecord: () => import_util_endpoints.ReferenceRecord, - RuleSetObject: () => import_util_endpoints.RuleSetObject, - RuleSetRules: () => import_util_endpoints.RuleSetRules, - TreeRuleObject: () => import_util_endpoints.TreeRuleObject, - awsEndpointFunctions: () => awsEndpointFunctions, - getUserAgentPrefix: () => getUserAgentPrefix, - isIpAddress: () => import_util_endpoints.isIpAddress, - partition: () => partition, - resolveEndpoint: () => import_util_endpoints.resolveEndpoint, - setPartitionInfo: () => setPartitionInfo, - useDefaultPartitionInfo: () => useDefaultPartitionInfo -}); -module.exports = __toCommonJS(index_exports); - -// src/aws.ts - - -// src/lib/aws/isVirtualHostableS3Bucket.ts - - -// src/lib/isIpAddress.ts -var import_util_endpoints = __nccwpck_require__(42178); - -// src/lib/aws/isVirtualHostableS3Bucket.ts -var isVirtualHostableS3Bucket = /* @__PURE__ */ __name((value, allowSubDomains = false) => { - if (allowSubDomains) { - for (const label of value.split(".")) { - if (!isVirtualHostableS3Bucket(label)) { - return false; - } - } - return true; - } - if (!(0, import_util_endpoints.isValidHostLabel)(value)) { - return false; - } - if (value.length < 3 || value.length > 63) { - return false; - } - if (value !== value.toLowerCase()) { - return false; - } - if ((0, import_util_endpoints.isIpAddress)(value)) { - return false; - } - return true; -}, "isVirtualHostableS3Bucket"); - -// src/lib/aws/parseArn.ts -var ARN_DELIMITER = ":"; -var RESOURCE_DELIMITER = "/"; -var parseArn = /* @__PURE__ */ __name((value) => { - const segments = value.split(ARN_DELIMITER); - if (segments.length < 6) return null; - const [arn, partition2, service, region, accountId, ...resourcePath] = segments; - if (arn !== "arn" || partition2 === "" || service === "" || resourcePath.join(ARN_DELIMITER) === "") return null; - const resourceId = resourcePath.map((resource) => resource.split(RESOURCE_DELIMITER)).flat(); - return { - partition: partition2, - service, - region, - accountId, - resourceId - }; -}, "parseArn"); - -// src/lib/aws/partitions.json -var partitions_default = { - partitions: [{ - id: "aws", - outputs: { - dnsSuffix: "amazonaws.com", - dualStackDnsSuffix: "api.aws", - implicitGlobalRegion: "us-east-1", - name: "aws", - supportsDualStack: true, - supportsFIPS: true - }, - regionRegex: "^(us|eu|ap|sa|ca|me|af|il|mx)\\-\\w+\\-\\d+$", - regions: { - "af-south-1": { - description: "Africa (Cape Town)" - }, - "ap-east-1": { - description: "Asia Pacific (Hong Kong)" - }, - "ap-northeast-1": { - description: "Asia Pacific (Tokyo)" - }, - "ap-northeast-2": { - description: "Asia Pacific (Seoul)" - }, - "ap-northeast-3": { - description: "Asia Pacific (Osaka)" - }, - "ap-south-1": { - description: "Asia Pacific (Mumbai)" - }, - "ap-south-2": { - description: "Asia Pacific (Hyderabad)" - }, - "ap-southeast-1": { - description: "Asia Pacific (Singapore)" - }, - "ap-southeast-2": { - description: "Asia Pacific (Sydney)" - }, - "ap-southeast-3": { - description: "Asia Pacific (Jakarta)" - }, - "ap-southeast-4": { - description: "Asia Pacific (Melbourne)" - }, - "ap-southeast-5": { - description: "Asia Pacific (Malaysia)" - }, - "ap-southeast-7": { - description: "Asia Pacific (Thailand)" - }, - "aws-global": { - description: "AWS Standard global region" - }, - "ca-central-1": { - description: "Canada (Central)" - }, - "ca-west-1": { - description: "Canada West (Calgary)" - }, - "eu-central-1": { - description: "Europe (Frankfurt)" - }, - "eu-central-2": { - description: "Europe (Zurich)" - }, - "eu-north-1": { - description: "Europe (Stockholm)" - }, - "eu-south-1": { - description: "Europe (Milan)" - }, - "eu-south-2": { - description: "Europe (Spain)" - }, - "eu-west-1": { - description: "Europe (Ireland)" - }, - "eu-west-2": { - description: "Europe (London)" - }, - "eu-west-3": { - description: "Europe (Paris)" - }, - "il-central-1": { - description: "Israel (Tel Aviv)" - }, - "me-central-1": { - description: "Middle East (UAE)" - }, - "me-south-1": { - description: "Middle East (Bahrain)" - }, - "mx-central-1": { - description: "Mexico (Central)" - }, - "sa-east-1": { - description: "South America (Sao Paulo)" - }, - "us-east-1": { - description: "US East (N. Virginia)" - }, - "us-east-2": { - description: "US East (Ohio)" - }, - "us-west-1": { - description: "US West (N. California)" - }, - "us-west-2": { - description: "US West (Oregon)" - } - } - }, { - id: "aws-cn", - outputs: { - dnsSuffix: "amazonaws.com.cn", - dualStackDnsSuffix: "api.amazonwebservices.com.cn", - implicitGlobalRegion: "cn-northwest-1", - name: "aws-cn", - supportsDualStack: true, - supportsFIPS: true - }, - regionRegex: "^cn\\-\\w+\\-\\d+$", - regions: { - "aws-cn-global": { - description: "AWS China global region" - }, - "cn-north-1": { - description: "China (Beijing)" - }, - "cn-northwest-1": { - description: "China (Ningxia)" - } - } - }, { - id: "aws-us-gov", - outputs: { - dnsSuffix: "amazonaws.com", - dualStackDnsSuffix: "api.aws", - implicitGlobalRegion: "us-gov-west-1", - name: "aws-us-gov", - supportsDualStack: true, - supportsFIPS: true - }, - regionRegex: "^us\\-gov\\-\\w+\\-\\d+$", - regions: { - "aws-us-gov-global": { - description: "AWS GovCloud (US) global region" - }, - "us-gov-east-1": { - description: "AWS GovCloud (US-East)" - }, - "us-gov-west-1": { - description: "AWS GovCloud (US-West)" - } - } - }, { - id: "aws-iso", - outputs: { - dnsSuffix: "c2s.ic.gov", - dualStackDnsSuffix: "c2s.ic.gov", - implicitGlobalRegion: "us-iso-east-1", - name: "aws-iso", - supportsDualStack: false, - supportsFIPS: true - }, - regionRegex: "^us\\-iso\\-\\w+\\-\\d+$", - regions: { - "aws-iso-global": { - description: "AWS ISO (US) global region" - }, - "us-iso-east-1": { - description: "US ISO East" - }, - "us-iso-west-1": { - description: "US ISO WEST" - } - } - }, { - id: "aws-iso-b", - outputs: { - dnsSuffix: "sc2s.sgov.gov", - dualStackDnsSuffix: "sc2s.sgov.gov", - implicitGlobalRegion: "us-isob-east-1", - name: "aws-iso-b", - supportsDualStack: false, - supportsFIPS: true - }, - regionRegex: "^us\\-isob\\-\\w+\\-\\d+$", - regions: { - "aws-iso-b-global": { - description: "AWS ISOB (US) global region" - }, - "us-isob-east-1": { - description: "US ISOB East (Ohio)" - } - } - }, { - id: "aws-iso-e", - outputs: { - dnsSuffix: "cloud.adc-e.uk", - dualStackDnsSuffix: "cloud.adc-e.uk", - implicitGlobalRegion: "eu-isoe-west-1", - name: "aws-iso-e", - supportsDualStack: false, - supportsFIPS: true - }, - regionRegex: "^eu\\-isoe\\-\\w+\\-\\d+$", - regions: { - "aws-iso-e-global": { - description: "AWS ISOE (Europe) global region" - }, - "eu-isoe-west-1": { - description: "EU ISOE West" - } - } - }, { - id: "aws-iso-f", - outputs: { - dnsSuffix: "csp.hci.ic.gov", - dualStackDnsSuffix: "csp.hci.ic.gov", - implicitGlobalRegion: "us-isof-south-1", - name: "aws-iso-f", - supportsDualStack: false, - supportsFIPS: true - }, - regionRegex: "^us\\-isof\\-\\w+\\-\\d+$", - regions: { - "aws-iso-f-global": { - description: "AWS ISOF global region" - }, - "us-isof-east-1": { - description: "US ISOF EAST" - }, - "us-isof-south-1": { - description: "US ISOF SOUTH" - } - } - }, { - id: "aws-eusc", - outputs: { - dnsSuffix: "amazonaws.eu", - dualStackDnsSuffix: "amazonaws.eu", - implicitGlobalRegion: "eusc-de-east-1", - name: "aws-eusc", - supportsDualStack: false, - supportsFIPS: true - }, - regionRegex: "^eusc\\-(de)\\-\\w+\\-\\d+$", - regions: { - "eusc-de-east-1": { - description: "EU (Germany)" - } - } - }], - version: "1.1" -}; - -// src/lib/aws/partition.ts -var selectedPartitionsInfo = partitions_default; -var selectedUserAgentPrefix = ""; -var partition = /* @__PURE__ */ __name((value) => { - const { partitions } = selectedPartitionsInfo; - for (const partition2 of partitions) { - const { regions, outputs } = partition2; - for (const [region, regionData] of Object.entries(regions)) { - if (region === value) { + } return { - ...outputs, - ...regionData - }; - } - } - } - for (const partition2 of partitions) { - const { regionRegex, outputs } = partition2; - if (new RegExp(regionRegex).test(value)) { - return { - ...outputs - }; - } - } - const DEFAULT_PARTITION = partitions.find((partition2) => partition2.id === "aws"); - if (!DEFAULT_PARTITION) { - throw new Error( - "Provided region was not found in the partition array or regex, and default partition with id 'aws' doesn't exist." - ); - } - return { - ...DEFAULT_PARTITION.outputs - }; -}, "partition"); -var setPartitionInfo = /* @__PURE__ */ __name((partitionsInfo, userAgentPrefix = "") => { - selectedPartitionsInfo = partitionsInfo; - selectedUserAgentPrefix = userAgentPrefix; -}, "setPartitionInfo"); -var useDefaultPartitionInfo = /* @__PURE__ */ __name(() => { - setPartitionInfo(partitions_default, ""); -}, "useDefaultPartitionInfo"); -var getUserAgentPrefix = /* @__PURE__ */ __name(() => selectedUserAgentPrefix, "getUserAgentPrefix"); + addChecksumAlgorithm(algo) { + checksumAlgorithms.push(algo) + }, + checksumAlgorithms() { + return checksumAlgorithms + } + } + }, 'getChecksumConfiguration') + var resolveChecksumRuntimeConfig = /* @__PURE__ */ __name( + clientConfig => { + const runtimeConfig = {} + clientConfig.checksumAlgorithms().forEach(checksumAlgorithm => { + runtimeConfig[checksumAlgorithm.algorithmId()] = + checksumAlgorithm.checksumConstructor() + }) + return runtimeConfig + }, + 'resolveChecksumRuntimeConfig' + ) -// src/aws.ts -var awsEndpointFunctions = { - isVirtualHostableS3Bucket, - parseArn, - partition -}; -import_util_endpoints.customEndpointFunctions.aws = awsEndpointFunctions; + // src/extensions/retry.ts + var getRetryConfiguration = /* @__PURE__ */ __name(runtimeConfig => { + return { + setRetryStrategy(retryStrategy) { + runtimeConfig.retryStrategy = retryStrategy + }, + retryStrategy() { + return runtimeConfig.retryStrategy + } + } + }, 'getRetryConfiguration') + var resolveRetryRuntimeConfig = /* @__PURE__ */ __name( + retryStrategyConfiguration => { + const runtimeConfig = {} + runtimeConfig.retryStrategy = + retryStrategyConfiguration.retryStrategy() + return runtimeConfig + }, + 'resolveRetryRuntimeConfig' + ) -// src/resolveEndpoint.ts + // src/extensions/defaultExtensionConfiguration.ts + var getDefaultExtensionConfiguration = /* @__PURE__ */ __name( + runtimeConfig => { + return Object.assign( + getChecksumConfiguration(runtimeConfig), + getRetryConfiguration(runtimeConfig) + ) + }, + 'getDefaultExtensionConfiguration' + ) + var getDefaultClientConfiguration = getDefaultExtensionConfiguration + var resolveDefaultRuntimeConfig = /* @__PURE__ */ __name(config => { + return Object.assign( + resolveChecksumRuntimeConfig(config), + resolveRetryRuntimeConfig(config) + ) + }, 'resolveDefaultRuntimeConfig') + // src/get-array-if-single-item.ts + var getArrayIfSingleItem = /* @__PURE__ */ __name( + mayBeArray => (Array.isArray(mayBeArray) ? mayBeArray : [mayBeArray]), + 'getArrayIfSingleItem' + ) -// src/types/EndpointError.ts + // src/get-value-from-text-node.ts + var getValueFromTextNode = /* @__PURE__ */ __name(obj => { + const textNodeName = '#text' + for (const key in obj) { + if (obj.hasOwnProperty(key) && obj[key][textNodeName] !== void 0) { + obj[key] = obj[key][textNodeName] + } else if (typeof obj[key] === 'object' && obj[key] !== null) { + obj[key] = getValueFromTextNode(obj[key]) + } + } + return obj + }, 'getValueFromTextNode') + // src/is-serializable-header-value.ts + var isSerializableHeaderValue = /* @__PURE__ */ __name(value => { + return value != null + }, 'isSerializableHeaderValue') -// src/types/EndpointRuleObject.ts + // src/lazy-json.ts + var LazyJsonString = /* @__PURE__ */ __name(function LazyJsonString2( + val + ) { + const str = Object.assign(new String(val), { + deserializeJSON() { + return JSON.parse(String(val)) + }, + toString() { + return String(val) + }, + toJSON() { + return String(val) + } + }) + return str + }, 'LazyJsonString') + LazyJsonString.from = object => { + if ( + object && + typeof object === 'object' && + (object instanceof LazyJsonString || 'deserializeJSON' in object) + ) { + return object + } else if ( + typeof object === 'string' || + Object.getPrototypeOf(object) === String.prototype + ) { + return LazyJsonString(String(object)) + } + return LazyJsonString(JSON.stringify(object)) + } + LazyJsonString.fromObject = LazyJsonString.from + // src/NoOpLogger.ts + var NoOpLogger = class { + static { + __name(this, 'NoOpLogger') + } + trace() {} + debug() {} + info() {} + warn() {} + error() {} + } -// src/types/ErrorRuleObject.ts + // src/object-mapping.ts + function map(arg0, arg1, arg2) { + let target + let filter + let instructions + if (typeof arg1 === 'undefined' && typeof arg2 === 'undefined') { + target = {} + instructions = arg0 + } else { + target = arg0 + if (typeof arg1 === 'function') { + filter = arg1 + instructions = arg2 + return mapWithFilter(target, filter, instructions) + } else { + instructions = arg1 + } + } + for (const key of Object.keys(instructions)) { + if (!Array.isArray(instructions[key])) { + target[key] = instructions[key] + continue + } + applyInstruction(target, null, instructions, key) + } + return target + } + __name(map, 'map') + var convertMap = /* @__PURE__ */ __name(target => { + const output = {} + for (const [k, v] of Object.entries(target || {})) { + output[k] = [, v] + } + return output + }, 'convertMap') + var take = /* @__PURE__ */ __name((source, instructions) => { + const out = {} + for (const key in instructions) { + applyInstruction(out, source, instructions, key) + } + return out + }, 'take') + var mapWithFilter = /* @__PURE__ */ __name( + (target, filter, instructions) => { + return map( + target, + Object.entries(instructions).reduce( + (_instructions, [key, value]) => { + if (Array.isArray(value)) { + _instructions[key] = value + } else { + if (typeof value === 'function') { + _instructions[key] = [filter, value()] + } else { + _instructions[key] = [filter, value] + } + } + return _instructions + }, + {} + ) + ) + }, + 'mapWithFilter' + ) + var applyInstruction = /* @__PURE__ */ __name( + (target, source, instructions, targetKey) => { + if (source !== null) { + let instruction = instructions[targetKey] + if (typeof instruction === 'function') { + instruction = [, instruction] + } + const [ + filter2 = nonNullish, + valueFn = pass, + sourceKey = targetKey + ] = instruction + if ( + (typeof filter2 === 'function' && filter2(source[sourceKey])) || + (typeof filter2 !== 'function' && !!filter2) + ) { + target[targetKey] = valueFn(source[sourceKey]) + } + return + } + let [filter, value] = instructions[targetKey] + if (typeof value === 'function') { + let _value + const defaultFilterPassed = + filter === void 0 && (_value = value()) != null + const customFilterPassed = + (typeof filter === 'function' && !!filter(void 0)) || + (typeof filter !== 'function' && !!filter) + if (defaultFilterPassed) { + target[targetKey] = _value + } else if (customFilterPassed) { + target[targetKey] = value() + } + } else { + const defaultFilterPassed = filter === void 0 && value != null + const customFilterPassed = + (typeof filter === 'function' && !!filter(value)) || + (typeof filter !== 'function' && !!filter) + if (defaultFilterPassed || customFilterPassed) { + target[targetKey] = value + } + } + }, + 'applyInstruction' + ) + var nonNullish = /* @__PURE__ */ __name(_ => _ != null, 'nonNullish') + var pass = /* @__PURE__ */ __name(_ => _, 'pass') + // src/quote-header.ts + function quoteHeader(part) { + if (part.includes(',') || part.includes('"')) { + part = `"${part.replace(/"/g, '\\"')}"` + } + return part + } + __name(quoteHeader, 'quoteHeader') -// src/types/RuleSetObject.ts + // src/resolve-path.ts + // src/ser-utils.ts + var serializeFloat = /* @__PURE__ */ __name(value => { + if (value !== value) { + return 'NaN' + } + switch (value) { + case Infinity: + return 'Infinity' + case -Infinity: + return '-Infinity' + default: + return value + } + }, 'serializeFloat') + var serializeDateTime = /* @__PURE__ */ __name( + date => date.toISOString().replace('.000Z', 'Z'), + 'serializeDateTime' + ) -// src/types/TreeRuleObject.ts + // src/serde-json.ts + var _json = /* @__PURE__ */ __name(obj => { + if (obj == null) { + return {} + } + if (Array.isArray(obj)) { + return obj.filter(_ => _ != null).map(_json) + } + if (typeof obj === 'object') { + const target = {} + for (const key of Object.keys(obj)) { + if (obj[key] == null) { + continue + } + target[key] = _json(obj[key]) + } + return target + } + return obj + }, '_json') + // src/split-every.ts + function splitEvery(value, delimiter, numDelimiters) { + if (numDelimiters <= 0 || !Number.isInteger(numDelimiters)) { + throw new Error( + 'Invalid number of delimiters (' + + numDelimiters + + ') for splitEvery.' + ) + } + const segments = value.split(delimiter) + if (numDelimiters === 1) { + return segments + } + const compoundSegments = [] + let currentSegment = '' + for (let i = 0; i < segments.length; i++) { + if (currentSegment === '') { + currentSegment = segments[i] + } else { + currentSegment += delimiter + segments[i] + } + if ((i + 1) % numDelimiters === 0) { + compoundSegments.push(currentSegment) + currentSegment = '' + } + } + if (currentSegment !== '') { + compoundSegments.push(currentSegment) + } + return compoundSegments + } + __name(splitEvery, 'splitEvery') + + // src/split-header.ts + var splitHeader = /* @__PURE__ */ __name(value => { + const z = value.length + const values = [] + let withinQuotes = false + let prevChar = void 0 + let anchor = 0 + for (let i = 0; i < z; ++i) { + const char = value[i] + switch (char) { + case `"`: + if (prevChar !== '\\') { + withinQuotes = !withinQuotes + } + break + case ',': + if (!withinQuotes) { + values.push(value.slice(anchor, i)) + anchor = i + 1 + } + break + default: + } + prevChar = char + } + values.push(value.slice(anchor)) + return values.map(v => { + v = v.trim() + const z2 = v.length + if (z2 < 2) { + return v + } + if (v[0] === `"` && v[z2 - 1] === `"`) { + v = v.slice(1, z2 - 1) + } + return v.replace(/\\"/g, '"') + }) + }, 'splitHeader') + // Annotate the CommonJS export names for ESM import in node: -// src/types/shared.ts + 0 && 0 -// Annotate the CommonJS export names for ESM import in node: + /***/ + }, -0 && (0); + /***/ 63592: /***/ module => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + AlgorithmId: () => AlgorithmId, + EndpointURLScheme: () => EndpointURLScheme, + FieldPosition: () => FieldPosition, + HttpApiKeyAuthLocation: () => HttpApiKeyAuthLocation, + HttpAuthLocation: () => HttpAuthLocation, + IniSectionType: () => IniSectionType, + RequestHandlerProtocol: () => RequestHandlerProtocol, + SMITHY_CONTEXT_KEY: () => SMITHY_CONTEXT_KEY, + getDefaultClientConfiguration: () => getDefaultClientConfiguration, + resolveDefaultRuntimeConfig: () => resolveDefaultRuntimeConfig + }) + module.exports = __toCommonJS(src_exports) + + // src/auth/auth.ts + var HttpAuthLocation = /* @__PURE__ */ (HttpAuthLocation2 => { + HttpAuthLocation2['HEADER'] = 'header' + HttpAuthLocation2['QUERY'] = 'query' + return HttpAuthLocation2 + })(HttpAuthLocation || {}) + + // src/auth/HttpApiKeyAuth.ts + var HttpApiKeyAuthLocation = /* @__PURE__ */ (HttpApiKeyAuthLocation2 => { + HttpApiKeyAuthLocation2['HEADER'] = 'header' + HttpApiKeyAuthLocation2['QUERY'] = 'query' + return HttpApiKeyAuthLocation2 + })(HttpApiKeyAuthLocation || {}) + + // src/endpoint.ts + var EndpointURLScheme = /* @__PURE__ */ (EndpointURLScheme2 => { + EndpointURLScheme2['HTTP'] = 'http' + EndpointURLScheme2['HTTPS'] = 'https' + return EndpointURLScheme2 + })(EndpointURLScheme || {}) + + // src/extensions/checksum.ts + var AlgorithmId = /* @__PURE__ */ (AlgorithmId2 => { + AlgorithmId2['MD5'] = 'md5' + AlgorithmId2['CRC32'] = 'crc32' + AlgorithmId2['CRC32C'] = 'crc32c' + AlgorithmId2['SHA1'] = 'sha1' + AlgorithmId2['SHA256'] = 'sha256' + return AlgorithmId2 + })(AlgorithmId || {}) + var getChecksumConfiguration = /* @__PURE__ */ __name(runtimeConfig => { + const checksumAlgorithms = [] + if (runtimeConfig.sha256 !== void 0) { + checksumAlgorithms.push({ + algorithmId: () => 'sha256' /* SHA256 */, + checksumConstructor: () => runtimeConfig.sha256 + }) + } + if (runtimeConfig.md5 != void 0) { + checksumAlgorithms.push({ + algorithmId: () => 'md5' /* MD5 */, + checksumConstructor: () => runtimeConfig.md5 + }) + } + return { + addChecksumAlgorithm(algo) { + checksumAlgorithms.push(algo) + }, + checksumAlgorithms() { + return checksumAlgorithms + } + } + }, 'getChecksumConfiguration') + var resolveChecksumRuntimeConfig = /* @__PURE__ */ __name( + clientConfig => { + const runtimeConfig = {} + clientConfig.checksumAlgorithms().forEach(checksumAlgorithm => { + runtimeConfig[checksumAlgorithm.algorithmId()] = + checksumAlgorithm.checksumConstructor() + }) + return runtimeConfig + }, + 'resolveChecksumRuntimeConfig' + ) + // src/extensions/defaultClientConfiguration.ts + var getDefaultClientConfiguration = /* @__PURE__ */ __name( + runtimeConfig => { + return getChecksumConfiguration(runtimeConfig) + }, + 'getDefaultClientConfiguration' + ) + var resolveDefaultRuntimeConfig = /* @__PURE__ */ __name(config => { + return resolveChecksumRuntimeConfig(config) + }, 'resolveDefaultRuntimeConfig') + + // src/http.ts + var FieldPosition = /* @__PURE__ */ (FieldPosition2 => { + FieldPosition2[(FieldPosition2['HEADER'] = 0)] = 'HEADER' + FieldPosition2[(FieldPosition2['TRAILER'] = 1)] = 'TRAILER' + return FieldPosition2 + })(FieldPosition || {}) + + // src/middleware.ts + var SMITHY_CONTEXT_KEY = '__smithy_context' + + // src/profile.ts + var IniSectionType = /* @__PURE__ */ (IniSectionType2 => { + IniSectionType2['PROFILE'] = 'profile' + IniSectionType2['SSO_SESSION'] = 'sso-session' + IniSectionType2['SERVICES'] = 'services' + return IniSectionType2 + })(IniSectionType || {}) + + // src/transfer.ts + var RequestHandlerProtocol = /* @__PURE__ */ (RequestHandlerProtocol2 => { + RequestHandlerProtocol2['HTTP_0_9'] = 'http/0.9' + RequestHandlerProtocol2['HTTP_1_0'] = 'http/1.0' + RequestHandlerProtocol2['TDS_8_0'] = 'tds/8.0' + return RequestHandlerProtocol2 + })(RequestHandlerProtocol || {}) + // Annotate the CommonJS export names for ESM import in node: + + 0 && 0 + + /***/ + }, + /***/ 94769: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -/***/ }), + // src/index.ts + var src_exports = {} + __export(src_exports, { + parseUrl: () => parseUrl + }) + module.exports = __toCommonJS(src_exports) + var import_querystring_parser = __nccwpck_require__(40153) + var parseUrl = /* @__PURE__ */ __name(url => { + if (typeof url === 'string') { + return parseUrl(new URL(url)) + } + const { hostname, pathname, port, protocol, search } = url + let query + if (search) { + query = (0, import_querystring_parser.parseQueryString)(search) + } + return { + hostname, + port: port ? parseInt(port) : void 0, + protocol, + path: pathname, + query + } + }, 'parseUrl') + // Annotate the CommonJS export names for ESM import in node: -/***/ 29318: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + 0 && 0 -"use strict"; + /***/ + }, -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var index_exports = {}; -__export(index_exports, { - NODE_APP_ID_CONFIG_OPTIONS: () => NODE_APP_ID_CONFIG_OPTIONS, - UA_APP_ID_ENV_NAME: () => UA_APP_ID_ENV_NAME, - UA_APP_ID_INI_NAME: () => UA_APP_ID_INI_NAME, - createDefaultUserAgentProvider: () => createDefaultUserAgentProvider, - crtAvailability: () => crtAvailability, - defaultUserAgent: () => defaultUserAgent -}); -module.exports = __toCommonJS(index_exports); - -// src/defaultUserAgent.ts -var import_os = __nccwpck_require__(22037); -var import_process = __nccwpck_require__(77282); - -// src/crt-availability.ts -var crtAvailability = { - isCrtAvailable: false -}; - -// src/is-crt-available.ts -var isCrtAvailable = /* @__PURE__ */ __name(() => { - if (crtAvailability.isCrtAvailable) { - return ["md/crt-avail"]; - } - return null; -}, "isCrtAvailable"); - -// src/defaultUserAgent.ts -var createDefaultUserAgentProvider = /* @__PURE__ */ __name(({ serviceId, clientVersion }) => { - return async (config) => { - const sections = [ - // sdk-metadata - ["aws-sdk-js", clientVersion], - // ua-metadata - ["ua", "2.1"], - // os-metadata - [`os/${(0, import_os.platform)()}`, (0, import_os.release)()], - // language-metadata - // ECMAScript edition doesn't matter in JS, so no version needed. - ["lang/js"], - ["md/nodejs", `${import_process.versions.node}`] - ]; - const crtAvailable = isCrtAvailable(); - if (crtAvailable) { - sections.push(crtAvailable); - } - if (serviceId) { - sections.push([`api/${serviceId}`, clientVersion]); - } - if (import_process.env.AWS_EXECUTION_ENV) { - sections.push([`exec-env/${import_process.env.AWS_EXECUTION_ENV}`]); - } - const appId = await config?.userAgentAppId?.(); - const resolvedUserAgent = appId ? [...sections, [`app/${appId}`]] : [...sections]; - return resolvedUserAgent; - }; -}, "createDefaultUserAgentProvider"); -var defaultUserAgent = createDefaultUserAgentProvider; - -// src/nodeAppIdConfigOptions.ts -var import_middleware_user_agent = __nccwpck_require__(1834); -var UA_APP_ID_ENV_NAME = "AWS_SDK_UA_APP_ID"; -var UA_APP_ID_INI_NAME = "sdk_ua_app_id"; -var UA_APP_ID_INI_NAME_DEPRECATED = "sdk-ua-app-id"; -var NODE_APP_ID_CONFIG_OPTIONS = { - environmentVariableSelector: /* @__PURE__ */ __name((env2) => env2[UA_APP_ID_ENV_NAME], "environmentVariableSelector"), - configFileSelector: /* @__PURE__ */ __name((profile) => profile[UA_APP_ID_INI_NAME] ?? profile[UA_APP_ID_INI_NAME_DEPRECATED], "configFileSelector"), - default: import_middleware_user_agent.DEFAULT_UA_APP_ID -}; -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 99541: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - CONFIG_USE_DUALSTACK_ENDPOINT: () => CONFIG_USE_DUALSTACK_ENDPOINT, - CONFIG_USE_FIPS_ENDPOINT: () => CONFIG_USE_FIPS_ENDPOINT, - DEFAULT_USE_DUALSTACK_ENDPOINT: () => DEFAULT_USE_DUALSTACK_ENDPOINT, - DEFAULT_USE_FIPS_ENDPOINT: () => DEFAULT_USE_FIPS_ENDPOINT, - ENV_USE_DUALSTACK_ENDPOINT: () => ENV_USE_DUALSTACK_ENDPOINT, - ENV_USE_FIPS_ENDPOINT: () => ENV_USE_FIPS_ENDPOINT, - NODE_REGION_CONFIG_FILE_OPTIONS: () => NODE_REGION_CONFIG_FILE_OPTIONS, - NODE_REGION_CONFIG_OPTIONS: () => NODE_REGION_CONFIG_OPTIONS, - NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS: () => NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, - NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS: () => NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, - REGION_ENV_NAME: () => REGION_ENV_NAME, - REGION_INI_NAME: () => REGION_INI_NAME, - getRegionInfo: () => getRegionInfo, - resolveCustomEndpointsConfig: () => resolveCustomEndpointsConfig, - resolveEndpointsConfig: () => resolveEndpointsConfig, - resolveRegionConfig: () => resolveRegionConfig -}); -module.exports = __toCommonJS(src_exports); - -// src/endpointsConfig/NodeUseDualstackEndpointConfigOptions.ts -var import_util_config_provider = __nccwpck_require__(15233); -var ENV_USE_DUALSTACK_ENDPOINT = "AWS_USE_DUALSTACK_ENDPOINT"; -var CONFIG_USE_DUALSTACK_ENDPOINT = "use_dualstack_endpoint"; -var DEFAULT_USE_DUALSTACK_ENDPOINT = false; -var NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS = { - environmentVariableSelector: (env) => (0, import_util_config_provider.booleanSelector)(env, ENV_USE_DUALSTACK_ENDPOINT, import_util_config_provider.SelectorType.ENV), - configFileSelector: (profile) => (0, import_util_config_provider.booleanSelector)(profile, CONFIG_USE_DUALSTACK_ENDPOINT, import_util_config_provider.SelectorType.CONFIG), - default: false -}; - -// src/endpointsConfig/NodeUseFipsEndpointConfigOptions.ts - -var ENV_USE_FIPS_ENDPOINT = "AWS_USE_FIPS_ENDPOINT"; -var CONFIG_USE_FIPS_ENDPOINT = "use_fips_endpoint"; -var DEFAULT_USE_FIPS_ENDPOINT = false; -var NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS = { - environmentVariableSelector: (env) => (0, import_util_config_provider.booleanSelector)(env, ENV_USE_FIPS_ENDPOINT, import_util_config_provider.SelectorType.ENV), - configFileSelector: (profile) => (0, import_util_config_provider.booleanSelector)(profile, CONFIG_USE_FIPS_ENDPOINT, import_util_config_provider.SelectorType.CONFIG), - default: false -}; - -// src/endpointsConfig/resolveCustomEndpointsConfig.ts -var import_util_middleware = __nccwpck_require__(14298); -var resolveCustomEndpointsConfig = /* @__PURE__ */ __name((input) => { - const { tls, endpoint, urlParser, useDualstackEndpoint } = input; - return Object.assign(input, { - tls: tls ?? true, - endpoint: (0, import_util_middleware.normalizeProvider)(typeof endpoint === "string" ? urlParser(endpoint) : endpoint), - isCustomEndpoint: true, - useDualstackEndpoint: (0, import_util_middleware.normalizeProvider)(useDualstackEndpoint ?? false) - }); -}, "resolveCustomEndpointsConfig"); - -// src/endpointsConfig/resolveEndpointsConfig.ts - - -// src/endpointsConfig/utils/getEndpointFromRegion.ts -var getEndpointFromRegion = /* @__PURE__ */ __name(async (input) => { - const { tls = true } = input; - const region = await input.region(); - const dnsHostRegex = new RegExp(/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/); - if (!dnsHostRegex.test(region)) { - throw new Error("Invalid region in client config"); - } - const useDualstackEndpoint = await input.useDualstackEndpoint(); - const useFipsEndpoint = await input.useFipsEndpoint(); - const { hostname } = await input.regionInfoProvider(region, { useDualstackEndpoint, useFipsEndpoint }) ?? {}; - if (!hostname) { - throw new Error("Cannot resolve hostname from client config"); - } - return input.urlParser(`${tls ? "https:" : "http:"}//${hostname}`); -}, "getEndpointFromRegion"); - -// src/endpointsConfig/resolveEndpointsConfig.ts -var resolveEndpointsConfig = /* @__PURE__ */ __name((input) => { - const useDualstackEndpoint = (0, import_util_middleware.normalizeProvider)(input.useDualstackEndpoint ?? false); - const { endpoint, useFipsEndpoint, urlParser, tls } = input; - return Object.assign(input, { - tls: tls ?? true, - endpoint: endpoint ? (0, import_util_middleware.normalizeProvider)(typeof endpoint === "string" ? urlParser(endpoint) : endpoint) : () => getEndpointFromRegion({ ...input, useDualstackEndpoint, useFipsEndpoint }), - isCustomEndpoint: !!endpoint, - useDualstackEndpoint - }); -}, "resolveEndpointsConfig"); - -// src/regionConfig/config.ts -var REGION_ENV_NAME = "AWS_REGION"; -var REGION_INI_NAME = "region"; -var NODE_REGION_CONFIG_OPTIONS = { - environmentVariableSelector: (env) => env[REGION_ENV_NAME], - configFileSelector: (profile) => profile[REGION_INI_NAME], - default: () => { - throw new Error("Region is missing"); - } -}; -var NODE_REGION_CONFIG_FILE_OPTIONS = { - preferredFile: "credentials" -}; - -// src/regionConfig/isFipsRegion.ts -var isFipsRegion = /* @__PURE__ */ __name((region) => typeof region === "string" && (region.startsWith("fips-") || region.endsWith("-fips")), "isFipsRegion"); - -// src/regionConfig/getRealRegion.ts -var getRealRegion = /* @__PURE__ */ __name((region) => isFipsRegion(region) ? ["fips-aws-global", "aws-fips"].includes(region) ? "us-east-1" : region.replace(/fips-(dkr-|prod-)?|-fips/, "") : region, "getRealRegion"); - -// src/regionConfig/resolveRegionConfig.ts -var resolveRegionConfig = /* @__PURE__ */ __name((input) => { - const { region, useFipsEndpoint } = input; - if (!region) { - throw new Error("Region is missing"); - } - return Object.assign(input, { - region: async () => { - if (typeof region === "string") { - return getRealRegion(region); + /***/ 28665: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.fromBase64 = void 0 + const util_buffer_from_1 = __nccwpck_require__(18614) + const BASE64_REGEX = /^[A-Za-z0-9+/]*={0,2}$/ + const fromBase64 = input => { + if ((input.length * 3) % 4 !== 0) { + throw new TypeError(`Incorrect padding on base64 string.`) + } + if (!BASE64_REGEX.exec(input)) { + throw new TypeError(`Invalid base64 string.`) + } + const buffer = (0, util_buffer_from_1.fromString)(input, 'base64') + return new Uint8Array( + buffer.buffer, + buffer.byteOffset, + buffer.byteLength + ) } - const providedRegion = await region(); - return getRealRegion(providedRegion); + exports.fromBase64 = fromBase64 + + /***/ }, - useFipsEndpoint: async () => { - const providedRegion = typeof region === "string" ? region : await region(); - if (isFipsRegion(providedRegion)) { - return true; + + /***/ 44079: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to } - return typeof useFipsEndpoint !== "function" ? Promise.resolve(!!useFipsEndpoint) : useFipsEndpoint(); - } - }); -}, "resolveRegionConfig"); - -// src/regionInfo/getHostnameFromVariants.ts -var getHostnameFromVariants = /* @__PURE__ */ __name((variants = [], { useFipsEndpoint, useDualstackEndpoint }) => variants.find( - ({ tags }) => useFipsEndpoint === tags.includes("fips") && useDualstackEndpoint === tags.includes("dualstack") -)?.hostname, "getHostnameFromVariants"); - -// src/regionInfo/getResolvedHostname.ts -var getResolvedHostname = /* @__PURE__ */ __name((resolvedRegion, { regionHostname, partitionHostname }) => regionHostname ? regionHostname : partitionHostname ? partitionHostname.replace("{region}", resolvedRegion) : void 0, "getResolvedHostname"); - -// src/regionInfo/getResolvedPartition.ts -var getResolvedPartition = /* @__PURE__ */ __name((region, { partitionHash }) => Object.keys(partitionHash || {}).find((key) => partitionHash[key].regions.includes(region)) ?? "aws", "getResolvedPartition"); - -// src/regionInfo/getResolvedSigningRegion.ts -var getResolvedSigningRegion = /* @__PURE__ */ __name((hostname, { signingRegion, regionRegex, useFipsEndpoint }) => { - if (signingRegion) { - return signingRegion; - } else if (useFipsEndpoint) { - const regionRegexJs = regionRegex.replace("\\\\", "\\").replace(/^\^/g, "\\.").replace(/\$$/g, "\\."); - const regionRegexmatchArray = hostname.match(regionRegexJs); - if (regionRegexmatchArray) { - return regionRegexmatchArray[0].slice(1, -1); - } - } -}, "getResolvedSigningRegion"); - -// src/regionInfo/getRegionInfo.ts -var getRegionInfo = /* @__PURE__ */ __name((region, { - useFipsEndpoint = false, - useDualstackEndpoint = false, - signingService, - regionHash, - partitionHash -}) => { - const partition = getResolvedPartition(region, { partitionHash }); - const resolvedRegion = region in regionHash ? region : partitionHash[partition]?.endpoint ?? region; - const hostnameOptions = { useFipsEndpoint, useDualstackEndpoint }; - const regionHostname = getHostnameFromVariants(regionHash[resolvedRegion]?.variants, hostnameOptions); - const partitionHostname = getHostnameFromVariants(partitionHash[partition]?.variants, hostnameOptions); - const hostname = getResolvedHostname(resolvedRegion, { regionHostname, partitionHostname }); - if (hostname === void 0) { - throw new Error(`Endpoint resolution failed for: ${{ resolvedRegion, useFipsEndpoint, useDualstackEndpoint }}`); - } - const signingRegion = getResolvedSigningRegion(hostname, { - signingRegion: regionHash[resolvedRegion]?.signingRegion, - regionRegex: partitionHash[partition].regionRegex, - useFipsEndpoint - }); - return { - partition, - signingService, - hostname, - ...signingRegion && { signingRegion }, - ...regionHash[resolvedRegion]?.signingService && { - signingService: regionHash[resolvedRegion].signingService - } - }; -}, "getRegionInfo"); -// Annotate the CommonJS export names for ESM import in node: + var __reExport = (target, mod, secondTarget) => ( + __copyProps(target, mod, 'default'), + secondTarget && __copyProps(secondTarget, mod, 'default') + ) + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -0 && (0); + // src/index.ts + var src_exports = {} + module.exports = __toCommonJS(src_exports) + __reExport(src_exports, __nccwpck_require__(28665), module.exports) + __reExport(src_exports, __nccwpck_require__(27995), module.exports) + // Annotate the CommonJS export names for ESM import in node: + 0 && 0 + /***/ + }, -/***/ }), + /***/ 27995: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.toBase64 = void 0 + const util_buffer_from_1 = __nccwpck_require__(18614) + const util_utf8_1 = __nccwpck_require__(76749) + const toBase64 = _input => { + let input + if (typeof _input === 'string') { + input = (0, util_utf8_1.fromUtf8)(_input) + } else { + input = _input + } + if ( + typeof input !== 'object' || + typeof input.byteOffset !== 'number' || + typeof input.byteLength !== 'number' + ) { + throw new Error( + '@smithy/util-base64: toBase64 encoder function only accepts string | Uint8Array.' + ) + } + return (0, util_buffer_from_1.fromArrayBuffer)( + input.buffer, + input.byteOffset, + input.byteLength + ).toString('base64') + } + exports.toBase64 = toBase64 -/***/ 1004: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + /***/ + }, -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - DefaultIdentityProviderConfig: () => DefaultIdentityProviderConfig, - EXPIRATION_MS: () => EXPIRATION_MS, - HttpApiKeyAuthSigner: () => HttpApiKeyAuthSigner, - HttpBearerAuthSigner: () => HttpBearerAuthSigner, - NoAuthSigner: () => NoAuthSigner, - createIsIdentityExpiredFunction: () => createIsIdentityExpiredFunction, - createPaginator: () => createPaginator, - doesIdentityRequireRefresh: () => doesIdentityRequireRefresh, - getHttpAuthSchemeEndpointRuleSetPlugin: () => getHttpAuthSchemeEndpointRuleSetPlugin, - getHttpAuthSchemePlugin: () => getHttpAuthSchemePlugin, - getHttpSigningPlugin: () => getHttpSigningPlugin, - getSmithyContext: () => getSmithyContext, - httpAuthSchemeEndpointRuleSetMiddlewareOptions: () => httpAuthSchemeEndpointRuleSetMiddlewareOptions, - httpAuthSchemeMiddleware: () => httpAuthSchemeMiddleware, - httpAuthSchemeMiddlewareOptions: () => httpAuthSchemeMiddlewareOptions, - httpSigningMiddleware: () => httpSigningMiddleware, - httpSigningMiddlewareOptions: () => httpSigningMiddlewareOptions, - isIdentityExpired: () => isIdentityExpired, - memoizeIdentityProvider: () => memoizeIdentityProvider, - normalizeProvider: () => normalizeProvider, - requestBuilder: () => import_protocols.requestBuilder, - setFeature: () => setFeature -}); -module.exports = __toCommonJS(src_exports); - -// src/getSmithyContext.ts -var import_types = __nccwpck_require__(63592); -var getSmithyContext = /* @__PURE__ */ __name((context) => context[import_types.SMITHY_CONTEXT_KEY] || (context[import_types.SMITHY_CONTEXT_KEY] = {}), "getSmithyContext"); - -// src/middleware-http-auth-scheme/httpAuthSchemeMiddleware.ts -var import_util_middleware = __nccwpck_require__(14298); -function convertHttpAuthSchemesToMap(httpAuthSchemes) { - const map = /* @__PURE__ */ new Map(); - for (const scheme of httpAuthSchemes) { - map.set(scheme.schemeId, scheme); - } - return map; -} -__name(convertHttpAuthSchemesToMap, "convertHttpAuthSchemesToMap"); -var httpAuthSchemeMiddleware = /* @__PURE__ */ __name((config, mwOptions) => (next, context) => async (args) => { - const options = config.httpAuthSchemeProvider( - await mwOptions.httpAuthSchemeParametersProvider(config, context, args.input) - ); - const authSchemes = convertHttpAuthSchemesToMap(config.httpAuthSchemes); - const smithyContext = (0, import_util_middleware.getSmithyContext)(context); - const failureReasons = []; - for (const option of options) { - const scheme = authSchemes.get(option.schemeId); - if (!scheme) { - failureReasons.push(`HttpAuthScheme \`${option.schemeId}\` was not enabled for this service.`); - continue; - } - const identityProvider = scheme.identityProvider(await mwOptions.identityProviderConfigProvider(config)); - if (!identityProvider) { - failureReasons.push(`HttpAuthScheme \`${option.schemeId}\` did not have an IdentityProvider configured.`); - continue; - } - const { identityProperties = {}, signingProperties = {} } = option.propertiesExtractor?.(config, context) || {}; - option.identityProperties = Object.assign(option.identityProperties || {}, identityProperties); - option.signingProperties = Object.assign(option.signingProperties || {}, signingProperties); - smithyContext.selectedHttpAuthScheme = { - httpAuthOption: option, - identity: await identityProvider(option.identityProperties), - signer: scheme.signer - }; - break; - } - if (!smithyContext.selectedHttpAuthScheme) { - throw new Error(failureReasons.join("\n")); - } - return next(args); -}, "httpAuthSchemeMiddleware"); - -// src/middleware-http-auth-scheme/getHttpAuthSchemeEndpointRuleSetPlugin.ts -var httpAuthSchemeEndpointRuleSetMiddlewareOptions = { - step: "serialize", - tags: ["HTTP_AUTH_SCHEME"], - name: "httpAuthSchemeMiddleware", - override: true, - relation: "before", - toMiddleware: "endpointV2Middleware" -}; -var getHttpAuthSchemeEndpointRuleSetPlugin = /* @__PURE__ */ __name((config, { - httpAuthSchemeParametersProvider, - identityProviderConfigProvider -}) => ({ - applyToStack: (clientStack) => { - clientStack.addRelativeTo( - httpAuthSchemeMiddleware(config, { - httpAuthSchemeParametersProvider, - identityProviderConfigProvider - }), - httpAuthSchemeEndpointRuleSetMiddlewareOptions - ); - } -}), "getHttpAuthSchemeEndpointRuleSetPlugin"); - -// src/middleware-http-auth-scheme/getHttpAuthSchemePlugin.ts -var import_middleware_serde = __nccwpck_require__(94572); -var httpAuthSchemeMiddlewareOptions = { - step: "serialize", - tags: ["HTTP_AUTH_SCHEME"], - name: "httpAuthSchemeMiddleware", - override: true, - relation: "before", - toMiddleware: import_middleware_serde.serializerMiddlewareOption.name -}; -var getHttpAuthSchemePlugin = /* @__PURE__ */ __name((config, { - httpAuthSchemeParametersProvider, - identityProviderConfigProvider -}) => ({ - applyToStack: (clientStack) => { - clientStack.addRelativeTo( - httpAuthSchemeMiddleware(config, { - httpAuthSchemeParametersProvider, - identityProviderConfigProvider - }), - httpAuthSchemeMiddlewareOptions - ); - } -}), "getHttpAuthSchemePlugin"); - -// src/middleware-http-signing/httpSigningMiddleware.ts -var import_protocol_http = __nccwpck_require__(18241); - -var defaultErrorHandler = /* @__PURE__ */ __name((signingProperties) => (error) => { - throw error; -}, "defaultErrorHandler"); -var defaultSuccessHandler = /* @__PURE__ */ __name((httpResponse, signingProperties) => { -}, "defaultSuccessHandler"); -var httpSigningMiddleware = /* @__PURE__ */ __name((config) => (next, context) => async (args) => { - if (!import_protocol_http.HttpRequest.isInstance(args.request)) { - return next(args); - } - const smithyContext = (0, import_util_middleware.getSmithyContext)(context); - const scheme = smithyContext.selectedHttpAuthScheme; - if (!scheme) { - throw new Error(`No HttpAuthScheme was selected: unable to sign request`); - } - const { - httpAuthOption: { signingProperties = {} }, - identity, - signer - } = scheme; - const output = await next({ - ...args, - request: await signer.sign(args.request, identity, signingProperties) - }).catch((signer.errorHandler || defaultErrorHandler)(signingProperties)); - (signer.successHandler || defaultSuccessHandler)(output.response, signingProperties); - return output; -}, "httpSigningMiddleware"); - -// src/middleware-http-signing/getHttpSigningMiddleware.ts -var httpSigningMiddlewareOptions = { - step: "finalizeRequest", - tags: ["HTTP_SIGNING"], - name: "httpSigningMiddleware", - aliases: ["apiKeyMiddleware", "tokenMiddleware", "awsAuthMiddleware"], - override: true, - relation: "after", - toMiddleware: "retryMiddleware" -}; -var getHttpSigningPlugin = /* @__PURE__ */ __name((config) => ({ - applyToStack: (clientStack) => { - clientStack.addRelativeTo(httpSigningMiddleware(config), httpSigningMiddlewareOptions); - } -}), "getHttpSigningPlugin"); - -// src/normalizeProvider.ts -var normalizeProvider = /* @__PURE__ */ __name((input) => { - if (typeof input === "function") - return input; - const promisified = Promise.resolve(input); - return () => promisified; -}, "normalizeProvider"); - -// src/pagination/createPaginator.ts -var makePagedClientRequest = /* @__PURE__ */ __name(async (CommandCtor, client, input, withCommand = (_) => _, ...args) => { - let command = new CommandCtor(input); - command = withCommand(command) ?? command; - return await client.send(command, ...args); -}, "makePagedClientRequest"); -function createPaginator(ClientCtor, CommandCtor, inputTokenName, outputTokenName, pageSizeTokenName) { - return /* @__PURE__ */ __name(async function* paginateOperation(config, input, ...additionalArguments) { - const _input = input; - let token = config.startingToken ?? _input[inputTokenName]; - let hasNext = true; - let page; - while (hasNext) { - _input[inputTokenName] = token; - if (pageSizeTokenName) { - _input[pageSizeTokenName] = _input[pageSizeTokenName] ?? config.pageSize; - } - if (config.client instanceof ClientCtor) { - page = await makePagedClientRequest( - CommandCtor, - config.client, - input, - config.withCommand, - ...additionalArguments - ); - } else { - throw new Error(`Invalid client, expected instance of ${ClientCtor.name}`); + /***/ 24047: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to } - yield page; - const prevToken = token; - token = get(page, outputTokenName); - hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken)); - } - return void 0; - }, "paginateOperation"); -} -__name(createPaginator, "createPaginator"); -var get = /* @__PURE__ */ __name((fromObject, path) => { - let cursor = fromObject; - const pathComponents = path.split("."); - for (const step of pathComponents) { - if (!cursor || typeof cursor !== "object") { - return void 0; - } - cursor = cursor[step]; - } - return cursor; -}, "get"); - -// src/protocols/requestBuilder.ts -var import_protocols = __nccwpck_require__(22072); - -// src/setFeature.ts -function setFeature(context, feature, value) { - if (!context.__smithy_context) { - context.__smithy_context = { - features: {} - }; - } else if (!context.__smithy_context.features) { - context.__smithy_context.features = {}; - } - context.__smithy_context.features[feature] = value; -} -__name(setFeature, "setFeature"); - -// src/util-identity-and-auth/DefaultIdentityProviderConfig.ts -var DefaultIdentityProviderConfig = class { - /** - * Creates an IdentityProviderConfig with a record of scheme IDs to identity providers. - * - * @param config scheme IDs and identity providers to configure - */ - constructor(config) { - this.authSchemes = /* @__PURE__ */ new Map(); - for (const [key, value] of Object.entries(config)) { - if (value !== void 0) { - this.authSchemes.set(key, value); + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + calculateBodyLength: () => calculateBodyLength + }) + module.exports = __toCommonJS(src_exports) + + // src/calculateBodyLength.ts + var import_fs = __nccwpck_require__(57147) + var calculateBodyLength = /* @__PURE__ */ __name(body => { + if (!body) { + return 0 + } + if (typeof body === 'string') { + return Buffer.byteLength(body) + } else if (typeof body.byteLength === 'number') { + return body.byteLength + } else if (typeof body.size === 'number') { + return body.size + } else if ( + typeof body.start === 'number' && + typeof body.end === 'number' + ) { + return body.end + 1 - body.start + } else if ( + typeof body.path === 'string' || + Buffer.isBuffer(body.path) + ) { + return (0, import_fs.lstatSync)(body.path).size + } else if (typeof body.fd === 'number') { + return (0, import_fs.fstatSync)(body.fd).size + } + throw new Error(`Body Length computation failed for ${body}`) + }, 'calculateBodyLength') + // Annotate the CommonJS export names for ESM import in node: + + 0 && 0 + + /***/ + }, + + /***/ 18614: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to } - } - } - static { - __name(this, "DefaultIdentityProviderConfig"); - } - getIdentityProvider(schemeId) { - return this.authSchemes.get(schemeId); - } -}; + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -// src/util-identity-and-auth/httpAuthSchemes/httpApiKeyAuth.ts + // src/index.ts + var src_exports = {} + __export(src_exports, { + fromArrayBuffer: () => fromArrayBuffer, + fromString: () => fromString + }) + module.exports = __toCommonJS(src_exports) + var import_is_array_buffer = __nccwpck_require__(25796) + var import_buffer = __nccwpck_require__(14300) + var fromArrayBuffer = /* @__PURE__ */ __name( + (input, offset = 0, length = input.byteLength - offset) => { + if (!(0, import_is_array_buffer.isArrayBuffer)(input)) { + throw new TypeError( + `The "input" argument must be ArrayBuffer. Received type ${typeof input} (${input})` + ) + } + return import_buffer.Buffer.from(input, offset, length) + }, + 'fromArrayBuffer' + ) + var fromString = /* @__PURE__ */ __name((input, encoding) => { + if (typeof input !== 'string') { + throw new TypeError( + `The "input" argument must be of type string. Received type ${typeof input} (${input})` + ) + } + return encoding + ? import_buffer.Buffer.from(input, encoding) + : import_buffer.Buffer.from(input) + }, 'fromString') + // Annotate the CommonJS export names for ESM import in node: + 0 && 0 -var HttpApiKeyAuthSigner = class { - static { - __name(this, "HttpApiKeyAuthSigner"); - } - async sign(httpRequest, identity, signingProperties) { - if (!signingProperties) { - throw new Error( - "request could not be signed with `apiKey` since the `name` and `in` signer properties are missing" - ); - } - if (!signingProperties.name) { - throw new Error("request could not be signed with `apiKey` since the `name` signer property is missing"); - } - if (!signingProperties.in) { - throw new Error("request could not be signed with `apiKey` since the `in` signer property is missing"); - } - if (!identity.apiKey) { - throw new Error("request could not be signed with `apiKey` since the `apiKey` is not defined"); - } - const clonedRequest = import_protocol_http.HttpRequest.clone(httpRequest); - if (signingProperties.in === import_types.HttpApiKeyAuthLocation.QUERY) { - clonedRequest.query[signingProperties.name] = identity.apiKey; - } else if (signingProperties.in === import_types.HttpApiKeyAuthLocation.HEADER) { - clonedRequest.headers[signingProperties.name] = signingProperties.scheme ? `${signingProperties.scheme} ${identity.apiKey}` : identity.apiKey; - } else { - throw new Error( - "request can only be signed with `apiKey` locations `query` or `header`, but found: `" + signingProperties.in + "`" - ); - } - return clonedRequest; - } -}; + /***/ + }, -// src/util-identity-and-auth/httpAuthSchemes/httpBearerAuth.ts + /***/ 15233: /***/ module => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -var HttpBearerAuthSigner = class { - static { - __name(this, "HttpBearerAuthSigner"); - } - async sign(httpRequest, identity, signingProperties) { - const clonedRequest = import_protocol_http.HttpRequest.clone(httpRequest); - if (!identity.token) { - throw new Error("request could not be signed with `token` since the `token` is not defined"); - } - clonedRequest.headers["Authorization"] = `Bearer ${identity.token}`; - return clonedRequest; - } -}; + // src/index.ts + var src_exports = {} + __export(src_exports, { + SelectorType: () => SelectorType, + booleanSelector: () => booleanSelector, + numberSelector: () => numberSelector + }) + module.exports = __toCommonJS(src_exports) -// src/util-identity-and-auth/httpAuthSchemes/noAuth.ts -var NoAuthSigner = class { - static { - __name(this, "NoAuthSigner"); - } - async sign(httpRequest, identity, signingProperties) { - return httpRequest; - } -}; - -// src/util-identity-and-auth/memoizeIdentityProvider.ts -var createIsIdentityExpiredFunction = /* @__PURE__ */ __name((expirationMs) => (identity) => doesIdentityRequireRefresh(identity) && identity.expiration.getTime() - Date.now() < expirationMs, "createIsIdentityExpiredFunction"); -var EXPIRATION_MS = 3e5; -var isIdentityExpired = createIsIdentityExpiredFunction(EXPIRATION_MS); -var doesIdentityRequireRefresh = /* @__PURE__ */ __name((identity) => identity.expiration !== void 0, "doesIdentityRequireRefresh"); -var memoizeIdentityProvider = /* @__PURE__ */ __name((provider, isExpired, requiresRefresh) => { - if (provider === void 0) { - return void 0; - } - const normalizedProvider = typeof provider !== "function" ? async () => Promise.resolve(provider) : provider; - let resolved; - let pending; - let hasResult; - let isConstant = false; - const coalesceProvider = /* @__PURE__ */ __name(async (options) => { - if (!pending) { - pending = normalizedProvider(options); - } - try { - resolved = await pending; - hasResult = true; - isConstant = false; - } finally { - pending = void 0; - } - return resolved; - }, "coalesceProvider"); - if (isExpired === void 0) { - return async (options) => { - if (!hasResult || options?.forceRefresh) { - resolved = await coalesceProvider(options); - } - return resolved; - }; - } - return async (options) => { - if (!hasResult || options?.forceRefresh) { - resolved = await coalesceProvider(options); - } - if (isConstant) { - return resolved; - } - if (!requiresRefresh(resolved)) { - isConstant = true; - return resolved; - } - if (isExpired(resolved)) { - await coalesceProvider(options); - return resolved; - } - return resolved; - }; -}, "memoizeIdentityProvider"); -// Annotate the CommonJS export names for ESM import in node: + // src/booleanSelector.ts + var booleanSelector = /* @__PURE__ */ __name((obj, key, type) => { + if (!(key in obj)) return void 0 + if (obj[key] === 'true') return true + if (obj[key] === 'false') return false + throw new Error( + `Cannot load ${type} "${key}". Expected "true" or "false", got ${obj[key]}.` + ) + }, 'booleanSelector') + + // src/numberSelector.ts + var numberSelector = /* @__PURE__ */ __name((obj, key, type) => { + if (!(key in obj)) return void 0 + const numberValue = parseInt(obj[key], 10) + if (Number.isNaN(numberValue)) { + throw new TypeError( + `Cannot load ${type} '${key}'. Expected number, got '${obj[key]}'.` + ) + } + return numberValue + }, 'numberSelector') -0 && (0); + // src/types.ts + var SelectorType = /* @__PURE__ */ (SelectorType2 => { + SelectorType2['ENV'] = 'env' + SelectorType2['CONFIG'] = 'shared config entry' + return SelectorType2 + })(SelectorType || {}) + // Annotate the CommonJS export names for ESM import in node: + 0 && 0 + /***/ + }, -/***/ }), + /***/ 43762: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __create = Object.create + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __getProtoOf = Object.getPrototypeOf + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toESM = (mod, isNodeMode, target) => ( + (target = mod != null ? __create(__getProtoOf(mod)) : {}), + __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule + ? __defProp(target, 'default', { value: mod, enumerable: true }) + : target, + mod + ) + ) + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -/***/ 22072: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + // src/index.ts + var src_exports = {} + __export(src_exports, { + resolveDefaultsModeConfig: () => resolveDefaultsModeConfig + }) + module.exports = __toCommonJS(src_exports) + + // src/resolveDefaultsModeConfig.ts + var import_config_resolver = __nccwpck_require__(99541) + var import_node_config_provider = __nccwpck_require__(85650) + var import_property_provider = __nccwpck_require__(51005) + + // src/constants.ts + var AWS_EXECUTION_ENV = 'AWS_EXECUTION_ENV' + var AWS_REGION_ENV = 'AWS_REGION' + var AWS_DEFAULT_REGION_ENV = 'AWS_DEFAULT_REGION' + var ENV_IMDS_DISABLED = 'AWS_EC2_METADATA_DISABLED' + var DEFAULTS_MODE_OPTIONS = [ + 'in-region', + 'cross-region', + 'mobile', + 'standard', + 'legacy' + ] + var IMDS_REGION_PATH = '/latest/meta-data/placement/region' + + // src/defaultsModeConfig.ts + var AWS_DEFAULTS_MODE_ENV = 'AWS_DEFAULTS_MODE' + var AWS_DEFAULTS_MODE_CONFIG = 'defaults_mode' + var NODE_DEFAULTS_MODE_CONFIG_OPTIONS = { + environmentVariableSelector: env => { + return env[AWS_DEFAULTS_MODE_ENV] + }, + configFileSelector: profile => { + return profile[AWS_DEFAULTS_MODE_CONFIG] + }, + default: 'legacy' + } -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/submodules/protocols/index.ts -var protocols_exports = {}; -__export(protocols_exports, { - RequestBuilder: () => RequestBuilder, - collectBody: () => collectBody, - extendedEncodeURIComponent: () => extendedEncodeURIComponent, - requestBuilder: () => requestBuilder, - resolvedPath: () => resolvedPath -}); -module.exports = __toCommonJS(protocols_exports); - -// src/submodules/protocols/collect-stream-body.ts -var import_util_stream = __nccwpck_require__(60530); -var collectBody = async (streamBody = new Uint8Array(), context) => { - if (streamBody instanceof Uint8Array) { - return import_util_stream.Uint8ArrayBlobAdapter.mutate(streamBody); - } - if (!streamBody) { - return import_util_stream.Uint8ArrayBlobAdapter.mutate(new Uint8Array()); - } - const fromContext = context.streamCollector(streamBody); - return import_util_stream.Uint8ArrayBlobAdapter.mutate(await fromContext); -}; - -// src/submodules/protocols/extended-encode-uri-component.ts -function extendedEncodeURIComponent(str) { - return encodeURIComponent(str).replace(/[!'()*]/g, function(c) { - return "%" + c.charCodeAt(0).toString(16).toUpperCase(); - }); -} - -// src/submodules/protocols/requestBuilder.ts -var import_protocol_http = __nccwpck_require__(18241); - -// src/submodules/protocols/resolve-path.ts -var resolvedPath = (resolvedPath2, input, memberName, labelValueProvider, uriLabel, isGreedyLabel) => { - if (input != null && input[memberName] !== void 0) { - const labelValue = labelValueProvider(); - if (labelValue.length <= 0) { - throw new Error("Empty value provided for input HTTP label: " + memberName + "."); - } - resolvedPath2 = resolvedPath2.replace( - uriLabel, - isGreedyLabel ? labelValue.split("/").map((segment) => extendedEncodeURIComponent(segment)).join("/") : extendedEncodeURIComponent(labelValue) - ); - } else { - throw new Error("No value provided for input HTTP label: " + memberName + "."); - } - return resolvedPath2; -}; - -// src/submodules/protocols/requestBuilder.ts -function requestBuilder(input, context) { - return new RequestBuilder(input, context); -} -var RequestBuilder = class { - constructor(input, context) { - this.input = input; - this.context = context; - this.query = {}; - this.method = ""; - this.headers = {}; - this.path = ""; - this.body = null; - this.hostname = ""; - this.resolvePathStack = []; - } - async build() { - const { hostname, protocol = "https", port, path: basePath } = await this.context.endpoint(); - this.path = basePath; - for (const resolvePath of this.resolvePathStack) { - resolvePath(this.path); - } - return new import_protocol_http.HttpRequest({ - protocol, - hostname: this.hostname || hostname, - port, - method: this.method, - path: this.path, - query: this.query, - body: this.body, - headers: this.headers - }); - } - /** - * Brevity setter for "hostname". - */ - hn(hostname) { - this.hostname = hostname; - return this; - } - /** - * Brevity initial builder for "basepath". - */ - bp(uriLabel) { - this.resolvePathStack.push((basePath) => { - this.path = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + uriLabel; - }); - return this; - } - /** - * Brevity incremental builder for "path". - */ - p(memberName, labelValueProvider, uriLabel, isGreedyLabel) { - this.resolvePathStack.push((path) => { - this.path = resolvedPath(path, this.input, memberName, labelValueProvider, uriLabel, isGreedyLabel); - }); - return this; - } - /** - * Brevity setter for "headers". - */ - h(headers) { - this.headers = headers; - return this; - } - /** - * Brevity setter for "query". - */ - q(query) { - this.query = query; - return this; - } - /** - * Brevity setter for "body". - */ - b(body) { - this.body = body; - return this; - } - /** - * Brevity setter for "method". - */ - m(method) { - this.method = method; - return this; - } -}; -// Annotate the CommonJS export names for ESM import in node: -0 && (0); - - -/***/ }), - -/***/ 83588: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - DEFAULT_MAX_RETRIES: () => DEFAULT_MAX_RETRIES, - DEFAULT_TIMEOUT: () => DEFAULT_TIMEOUT, - ENV_CMDS_AUTH_TOKEN: () => ENV_CMDS_AUTH_TOKEN, - ENV_CMDS_FULL_URI: () => ENV_CMDS_FULL_URI, - ENV_CMDS_RELATIVE_URI: () => ENV_CMDS_RELATIVE_URI, - Endpoint: () => Endpoint, - fromContainerMetadata: () => fromContainerMetadata, - fromInstanceMetadata: () => fromInstanceMetadata, - getInstanceMetadataEndpoint: () => getInstanceMetadataEndpoint, - httpRequest: () => httpRequest, - providerConfigFromInit: () => providerConfigFromInit -}); -module.exports = __toCommonJS(src_exports); - -// src/fromContainerMetadata.ts - -var import_url = __nccwpck_require__(57310); - -// src/remoteProvider/httpRequest.ts -var import_property_provider = __nccwpck_require__(51005); -var import_buffer = __nccwpck_require__(14300); -var import_http = __nccwpck_require__(13685); -function httpRequest(options) { - return new Promise((resolve, reject) => { - const req = (0, import_http.request)({ - method: "GET", - ...options, - // Node.js http module doesn't accept hostname with square brackets - // Refs: https://github.com/nodejs/node/issues/39738 - hostname: options.hostname?.replace(/^\[(.+)\]$/, "$1") - }); - req.on("error", (err) => { - reject(Object.assign(new import_property_provider.ProviderError("Unable to connect to instance metadata service"), err)); - req.destroy(); - }); - req.on("timeout", () => { - reject(new import_property_provider.ProviderError("TimeoutError from instance metadata service")); - req.destroy(); - }); - req.on("response", (res) => { - const { statusCode = 400 } = res; - if (statusCode < 200 || 300 <= statusCode) { - reject( - Object.assign(new import_property_provider.ProviderError("Error response received from instance metadata service"), { statusCode }) - ); - req.destroy(); - } - const chunks = []; - res.on("data", (chunk) => { - chunks.push(chunk); - }); - res.on("end", () => { - resolve(import_buffer.Buffer.concat(chunks)); - req.destroy(); - }); - }); - req.end(); - }); -} -__name(httpRequest, "httpRequest"); - -// src/remoteProvider/ImdsCredentials.ts -var isImdsCredentials = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === "object" && typeof arg.AccessKeyId === "string" && typeof arg.SecretAccessKey === "string" && typeof arg.Token === "string" && typeof arg.Expiration === "string", "isImdsCredentials"); -var fromImdsCredentials = /* @__PURE__ */ __name((creds) => ({ - accessKeyId: creds.AccessKeyId, - secretAccessKey: creds.SecretAccessKey, - sessionToken: creds.Token, - expiration: new Date(creds.Expiration), - ...creds.AccountId && { accountId: creds.AccountId } -}), "fromImdsCredentials"); - -// src/remoteProvider/RemoteProviderInit.ts -var DEFAULT_TIMEOUT = 1e3; -var DEFAULT_MAX_RETRIES = 0; -var providerConfigFromInit = /* @__PURE__ */ __name(({ - maxRetries = DEFAULT_MAX_RETRIES, - timeout = DEFAULT_TIMEOUT -}) => ({ maxRetries, timeout }), "providerConfigFromInit"); - -// src/remoteProvider/retry.ts -var retry = /* @__PURE__ */ __name((toRetry, maxRetries) => { - let promise = toRetry(); - for (let i = 0; i < maxRetries; i++) { - promise = promise.catch(toRetry); - } - return promise; -}, "retry"); - -// src/fromContainerMetadata.ts -var ENV_CMDS_FULL_URI = "AWS_CONTAINER_CREDENTIALS_FULL_URI"; -var ENV_CMDS_RELATIVE_URI = "AWS_CONTAINER_CREDENTIALS_RELATIVE_URI"; -var ENV_CMDS_AUTH_TOKEN = "AWS_CONTAINER_AUTHORIZATION_TOKEN"; -var fromContainerMetadata = /* @__PURE__ */ __name((init = {}) => { - const { timeout, maxRetries } = providerConfigFromInit(init); - return () => retry(async () => { - const requestOptions = await getCmdsUri({ logger: init.logger }); - const credsResponse = JSON.parse(await requestFromEcsImds(timeout, requestOptions)); - if (!isImdsCredentials(credsResponse)) { - throw new import_property_provider.CredentialsProviderError("Invalid response received from instance metadata service.", { - logger: init.logger - }); - } - return fromImdsCredentials(credsResponse); - }, maxRetries); -}, "fromContainerMetadata"); -var requestFromEcsImds = /* @__PURE__ */ __name(async (timeout, options) => { - if (process.env[ENV_CMDS_AUTH_TOKEN]) { - options.headers = { - ...options.headers, - Authorization: process.env[ENV_CMDS_AUTH_TOKEN] - }; - } - const buffer = await httpRequest({ - ...options, - timeout - }); - return buffer.toString(); -}, "requestFromEcsImds"); -var CMDS_IP = "169.254.170.2"; -var GREENGRASS_HOSTS = { - localhost: true, - "127.0.0.1": true -}; -var GREENGRASS_PROTOCOLS = { - "http:": true, - "https:": true -}; -var getCmdsUri = /* @__PURE__ */ __name(async ({ logger }) => { - if (process.env[ENV_CMDS_RELATIVE_URI]) { - return { - hostname: CMDS_IP, - path: process.env[ENV_CMDS_RELATIVE_URI] - }; - } - if (process.env[ENV_CMDS_FULL_URI]) { - const parsed = (0, import_url.parse)(process.env[ENV_CMDS_FULL_URI]); - if (!parsed.hostname || !(parsed.hostname in GREENGRASS_HOSTS)) { - throw new import_property_provider.CredentialsProviderError(`${parsed.hostname} is not a valid container metadata service hostname`, { - tryNextLink: false, - logger - }); - } - if (!parsed.protocol || !(parsed.protocol in GREENGRASS_PROTOCOLS)) { - throw new import_property_provider.CredentialsProviderError(`${parsed.protocol} is not a valid container metadata service protocol`, { - tryNextLink: false, - logger - }); - } - return { - ...parsed, - port: parsed.port ? parseInt(parsed.port, 10) : void 0 - }; - } - throw new import_property_provider.CredentialsProviderError( - `The container metadata credential provider cannot be used unless the ${ENV_CMDS_RELATIVE_URI} or ${ENV_CMDS_FULL_URI} environment variable is set`, - { - tryNextLink: false, - logger - } - ); -}, "getCmdsUri"); + // src/resolveDefaultsModeConfig.ts + var resolveDefaultsModeConfig = /* @__PURE__ */ __name( + ({ + region = (0, import_node_config_provider.loadConfig)( + import_config_resolver.NODE_REGION_CONFIG_OPTIONS + ), + defaultsMode = (0, import_node_config_provider.loadConfig)( + NODE_DEFAULTS_MODE_CONFIG_OPTIONS + ) + } = {}) => + (0, import_property_provider.memoize)(async () => { + const mode = + typeof defaultsMode === 'function' + ? await defaultsMode() + : defaultsMode + switch (mode?.toLowerCase()) { + case 'auto': + return resolveNodeDefaultsModeAuto(region) + case 'in-region': + case 'cross-region': + case 'mobile': + case 'standard': + case 'legacy': + return Promise.resolve(mode?.toLocaleLowerCase()) + case void 0: + return Promise.resolve('legacy') + default: + throw new Error( + `Invalid parameter for "defaultsMode", expect ${DEFAULTS_MODE_OPTIONS.join(', ')}, got ${mode}` + ) + } + }), + 'resolveDefaultsModeConfig' + ) + var resolveNodeDefaultsModeAuto = /* @__PURE__ */ __name( + async clientRegion => { + if (clientRegion) { + const resolvedRegion = + typeof clientRegion === 'function' + ? await clientRegion() + : clientRegion + const inferredRegion = await inferPhysicalRegion() + if (!inferredRegion) { + return 'standard' + } + if (resolvedRegion === inferredRegion) { + return 'in-region' + } else { + return 'cross-region' + } + } + return 'standard' + }, + 'resolveNodeDefaultsModeAuto' + ) + var inferPhysicalRegion = /* @__PURE__ */ __name(async () => { + if ( + process.env[AWS_EXECUTION_ENV] && + (process.env[AWS_REGION_ENV] || process.env[AWS_DEFAULT_REGION_ENV]) + ) { + return ( + process.env[AWS_REGION_ENV] ?? process.env[AWS_DEFAULT_REGION_ENV] + ) + } + if (!process.env[ENV_IMDS_DISABLED]) { + try { + const { getInstanceMetadataEndpoint, httpRequest } = + await Promise.resolve().then(() => + __toESM(__nccwpck_require__(83588)) + ) + const endpoint = await getInstanceMetadataEndpoint() + return ( + await httpRequest({ ...endpoint, path: IMDS_REGION_PATH }) + ).toString() + } catch (e) {} + } + }, 'inferPhysicalRegion') + // Annotate the CommonJS export names for ESM import in node: -// src/fromInstanceMetadata.ts + 0 && 0 + /***/ + }, + /***/ 42178: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -// src/error/InstanceMetadataV1FallbackError.ts + // src/index.ts + var src_exports = {} + __export(src_exports, { + EndpointCache: () => EndpointCache, + EndpointError: () => EndpointError, + customEndpointFunctions: () => customEndpointFunctions, + isIpAddress: () => isIpAddress, + isValidHostLabel: () => isValidHostLabel, + resolveEndpoint: () => resolveEndpoint + }) + module.exports = __toCommonJS(src_exports) -var InstanceMetadataV1FallbackError = class _InstanceMetadataV1FallbackError extends import_property_provider.CredentialsProviderError { - constructor(message, tryNextLink = true) { - super(message, tryNextLink); - this.tryNextLink = tryNextLink; - this.name = "InstanceMetadataV1FallbackError"; - Object.setPrototypeOf(this, _InstanceMetadataV1FallbackError.prototype); - } - static { - __name(this, "InstanceMetadataV1FallbackError"); - } -}; - -// src/utils/getInstanceMetadataEndpoint.ts -var import_node_config_provider = __nccwpck_require__(85650); -var import_url_parser = __nccwpck_require__(94769); - -// src/config/Endpoint.ts -var Endpoint = /* @__PURE__ */ ((Endpoint2) => { - Endpoint2["IPv4"] = "http://169.254.169.254"; - Endpoint2["IPv6"] = "http://[fd00:ec2::254]"; - return Endpoint2; -})(Endpoint || {}); - -// src/config/EndpointConfigOptions.ts -var ENV_ENDPOINT_NAME = "AWS_EC2_METADATA_SERVICE_ENDPOINT"; -var CONFIG_ENDPOINT_NAME = "ec2_metadata_service_endpoint"; -var ENDPOINT_CONFIG_OPTIONS = { - environmentVariableSelector: (env) => env[ENV_ENDPOINT_NAME], - configFileSelector: (profile) => profile[CONFIG_ENDPOINT_NAME], - default: void 0 -}; - -// src/config/EndpointMode.ts -var EndpointMode = /* @__PURE__ */ ((EndpointMode2) => { - EndpointMode2["IPv4"] = "IPv4"; - EndpointMode2["IPv6"] = "IPv6"; - return EndpointMode2; -})(EndpointMode || {}); - -// src/config/EndpointModeConfigOptions.ts -var ENV_ENDPOINT_MODE_NAME = "AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE"; -var CONFIG_ENDPOINT_MODE_NAME = "ec2_metadata_service_endpoint_mode"; -var ENDPOINT_MODE_CONFIG_OPTIONS = { - environmentVariableSelector: (env) => env[ENV_ENDPOINT_MODE_NAME], - configFileSelector: (profile) => profile[CONFIG_ENDPOINT_MODE_NAME], - default: "IPv4" /* IPv4 */ -}; - -// src/utils/getInstanceMetadataEndpoint.ts -var getInstanceMetadataEndpoint = /* @__PURE__ */ __name(async () => (0, import_url_parser.parseUrl)(await getFromEndpointConfig() || await getFromEndpointModeConfig()), "getInstanceMetadataEndpoint"); -var getFromEndpointConfig = /* @__PURE__ */ __name(async () => (0, import_node_config_provider.loadConfig)(ENDPOINT_CONFIG_OPTIONS)(), "getFromEndpointConfig"); -var getFromEndpointModeConfig = /* @__PURE__ */ __name(async () => { - const endpointMode = await (0, import_node_config_provider.loadConfig)(ENDPOINT_MODE_CONFIG_OPTIONS)(); - switch (endpointMode) { - case "IPv4" /* IPv4 */: - return "http://169.254.169.254" /* IPv4 */; - case "IPv6" /* IPv6 */: - return "http://[fd00:ec2::254]" /* IPv6 */; - default: - throw new Error(`Unsupported endpoint mode: ${endpointMode}. Select from ${Object.values(EndpointMode)}`); - } -}, "getFromEndpointModeConfig"); - -// src/utils/getExtendedInstanceMetadataCredentials.ts -var STATIC_STABILITY_REFRESH_INTERVAL_SECONDS = 5 * 60; -var STATIC_STABILITY_REFRESH_INTERVAL_JITTER_WINDOW_SECONDS = 5 * 60; -var STATIC_STABILITY_DOC_URL = "https://docs.aws.amazon.com/sdkref/latest/guide/feature-static-credentials.html"; -var getExtendedInstanceMetadataCredentials = /* @__PURE__ */ __name((credentials, logger) => { - const refreshInterval = STATIC_STABILITY_REFRESH_INTERVAL_SECONDS + Math.floor(Math.random() * STATIC_STABILITY_REFRESH_INTERVAL_JITTER_WINDOW_SECONDS); - const newExpiration = new Date(Date.now() + refreshInterval * 1e3); - logger.warn( - `Attempting credential expiration extension due to a credential service availability issue. A refresh of these credentials will be attempted after ${new Date(newExpiration)}. -For more information, please visit: ` + STATIC_STABILITY_DOC_URL - ); - const originalExpiration = credentials.originalExpiration ?? credentials.expiration; - return { - ...credentials, - ...originalExpiration ? { originalExpiration } : {}, - expiration: newExpiration - }; -}, "getExtendedInstanceMetadataCredentials"); - -// src/utils/staticStabilityProvider.ts -var staticStabilityProvider = /* @__PURE__ */ __name((provider, options = {}) => { - const logger = options?.logger || console; - let pastCredentials; - return async () => { - let credentials; - try { - credentials = await provider(); - if (credentials.expiration && credentials.expiration.getTime() < Date.now()) { - credentials = getExtendedInstanceMetadataCredentials(credentials, logger); - } - } catch (e) { - if (pastCredentials) { - logger.warn("Credential renew failed: ", e); - credentials = getExtendedInstanceMetadataCredentials(pastCredentials, logger); - } else { - throw e; - } - } - pastCredentials = credentials; - return credentials; - }; -}, "staticStabilityProvider"); - -// src/fromInstanceMetadata.ts -var IMDS_PATH = "/latest/meta-data/iam/security-credentials/"; -var IMDS_TOKEN_PATH = "/latest/api/token"; -var AWS_EC2_METADATA_V1_DISABLED = "AWS_EC2_METADATA_V1_DISABLED"; -var PROFILE_AWS_EC2_METADATA_V1_DISABLED = "ec2_metadata_v1_disabled"; -var X_AWS_EC2_METADATA_TOKEN = "x-aws-ec2-metadata-token"; -var fromInstanceMetadata = /* @__PURE__ */ __name((init = {}) => staticStabilityProvider(getInstanceMetadataProvider(init), { logger: init.logger }), "fromInstanceMetadata"); -var getInstanceMetadataProvider = /* @__PURE__ */ __name((init = {}) => { - let disableFetchToken = false; - const { logger, profile } = init; - const { timeout, maxRetries } = providerConfigFromInit(init); - const getCredentials = /* @__PURE__ */ __name(async (maxRetries2, options) => { - const isImdsV1Fallback = disableFetchToken || options.headers?.[X_AWS_EC2_METADATA_TOKEN] == null; - if (isImdsV1Fallback) { - let fallbackBlockedFromProfile = false; - let fallbackBlockedFromProcessEnv = false; - const configValue = await (0, import_node_config_provider.loadConfig)( - { - environmentVariableSelector: (env) => { - const envValue = env[AWS_EC2_METADATA_V1_DISABLED]; - fallbackBlockedFromProcessEnv = !!envValue && envValue !== "false"; - if (envValue === void 0) { - throw new import_property_provider.CredentialsProviderError( - `${AWS_EC2_METADATA_V1_DISABLED} not set in env, checking config file next.`, - { logger: init.logger } - ); + // src/cache/EndpointCache.ts + var EndpointCache = class { + /** + * @param [size] - desired average maximum capacity. A buffer of 10 additional keys will be allowed + * before keys are dropped. + * @param [params] - list of params to consider as part of the cache key. + * + * If the params list is not populated, no caching will happen. + * This may be out of order depending on how the object is created and arrives to this class. + */ + constructor({ size, params }) { + this.data = /* @__PURE__ */ new Map() + this.parameters = [] + this.capacity = size ?? 50 + if (params) { + this.parameters = params + } + } + static { + __name(this, 'EndpointCache') + } + /** + * @param endpointParams - query for endpoint. + * @param resolver - provider of the value if not present. + * @returns endpoint corresponding to the query. + */ + get(endpointParams, resolver) { + const key = this.hash(endpointParams) + if (key === false) { + return resolver() + } + if (!this.data.has(key)) { + if (this.data.size > this.capacity + 10) { + const keys = this.data.keys() + let i = 0 + while (true) { + const { value, done } = keys.next() + this.data.delete(value) + if (done || ++i > 10) { + break + } + } } - return fallbackBlockedFromProcessEnv; - }, - configFileSelector: (profile2) => { - const profileValue = profile2[PROFILE_AWS_EC2_METADATA_V1_DISABLED]; - fallbackBlockedFromProfile = !!profileValue && profileValue !== "false"; - return fallbackBlockedFromProfile; - }, - default: false - }, - { - profile + this.data.set(key, resolver()) + } + return this.data.get(key) } - )(); - if (init.ec2MetadataV1Disabled || configValue) { - const causes = []; - if (init.ec2MetadataV1Disabled) - causes.push("credential provider initialization (runtime option ec2MetadataV1Disabled)"); - if (fallbackBlockedFromProfile) - causes.push(`config file profile (${PROFILE_AWS_EC2_METADATA_V1_DISABLED})`); - if (fallbackBlockedFromProcessEnv) - causes.push(`process environment variable (${AWS_EC2_METADATA_V1_DISABLED})`); - throw new InstanceMetadataV1FallbackError( - `AWS EC2 Metadata v1 fallback has been blocked by AWS SDK configuration in the following: [${causes.join( - ", " - )}].` - ); - } - } - const imdsProfile = (await retry(async () => { - let profile2; - try { - profile2 = await getProfile(options); - } catch (err) { - if (err.statusCode === 401) { - disableFetchToken = false; + size() { + return this.data.size + } + /** + * @returns cache key or false if not cachable. + */ + hash(endpointParams) { + let buffer = '' + const { parameters } = this + if (parameters.length === 0) { + return false + } + for (const param of parameters) { + const val = String(endpointParams[param] ?? '') + if (val.includes('|;')) { + return false + } + buffer += val + '|;' + } + return buffer } - throw err; } - return profile2; - }, maxRetries2)).trim(); - return retry(async () => { - let creds; - try { - creds = await getCredentialsFromProfile(imdsProfile, options, init); - } catch (err) { - if (err.statusCode === 401) { - disableFetchToken = false; - } - throw err; - } - return creds; - }, maxRetries2); - }, "getCredentials"); - return async () => { - const endpoint = await getInstanceMetadataEndpoint(); - if (disableFetchToken) { - logger?.debug("AWS SDK Instance Metadata", "using v1 fallback (no token fetch)"); - return getCredentials(maxRetries, { ...endpoint, timeout }); - } else { - let token; - try { - token = (await getMetadataToken({ ...endpoint, timeout })).toString(); - } catch (error) { - if (error?.statusCode === 400) { - throw Object.assign(error, { - message: "EC2 Metadata token request returned error" - }); - } else if (error.message === "TimeoutError" || [403, 404, 405].includes(error.statusCode)) { - disableFetchToken = true; - } - logger?.debug("AWS SDK Instance Metadata", "using v1 fallback (initial)"); - return getCredentials(maxRetries, { ...endpoint, timeout }); - } - return getCredentials(maxRetries, { - ...endpoint, - headers: { - [X_AWS_EC2_METADATA_TOKEN]: token - }, - timeout - }); - } - }; -}, "getInstanceMetadataProvider"); -var getMetadataToken = /* @__PURE__ */ __name(async (options) => httpRequest({ - ...options, - path: IMDS_TOKEN_PATH, - method: "PUT", - headers: { - "x-aws-ec2-metadata-token-ttl-seconds": "21600" - } -}), "getMetadataToken"); -var getProfile = /* @__PURE__ */ __name(async (options) => (await httpRequest({ ...options, path: IMDS_PATH })).toString(), "getProfile"); -var getCredentialsFromProfile = /* @__PURE__ */ __name(async (profile, options, init) => { - const credentialsResponse = JSON.parse( - (await httpRequest({ - ...options, - path: IMDS_PATH + profile - })).toString() - ); - if (!isImdsCredentials(credentialsResponse)) { - throw new import_property_provider.CredentialsProviderError("Invalid response received from instance metadata service.", { - logger: init.logger - }); - } - return fromImdsCredentials(credentialsResponse); -}, "getCredentialsFromProfile"); -// Annotate the CommonJS export names for ESM import in node: -0 && (0); + // src/lib/isIpAddress.ts + var 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}$` + ) + var isIpAddress = /* @__PURE__ */ __name( + value => + IP_V4_REGEX.test(value) || + (value.startsWith('[') && value.endsWith(']')), + 'isIpAddress' + ) + // src/lib/isValidHostLabel.ts + var VALID_HOST_LABEL_REGEX = new RegExp( + `^(?!.*-$)(?!-)[a-zA-Z0-9-]{1,63}$` + ) + var isValidHostLabel = /* @__PURE__ */ __name( + (value, allowSubDomains = false) => { + if (!allowSubDomains) { + return VALID_HOST_LABEL_REGEX.test(value) + } + const labels = value.split('.') + for (const label of labels) { + if (!isValidHostLabel(label)) { + return false + } + } + return true + }, + 'isValidHostLabel' + ) + // src/utils/customEndpointFunctions.ts + var customEndpointFunctions = {} -/***/ }), + // src/debug/debugId.ts + var debugId = 'endpoints' -/***/ 28509: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + // src/debug/toDebugString.ts + function toDebugString(input) { + if (typeof input !== 'object' || input == null) { + return input + } + if ('ref' in input) { + return `$${toDebugString(input.ref)}` + } + if ('fn' in input) { + return `${input.fn}(${(input.argv || []).map(toDebugString).join(', ')})` + } + return JSON.stringify(input, null, 2) + } + __name(toDebugString, 'toDebugString') -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - FetchHttpHandler: () => FetchHttpHandler, - keepAliveSupport: () => keepAliveSupport, - streamCollector: () => streamCollector -}); -module.exports = __toCommonJS(src_exports); - -// src/fetch-http-handler.ts -var import_protocol_http = __nccwpck_require__(18241); -var import_querystring_builder = __nccwpck_require__(39025); - -// src/create-request.ts -function createRequest(url, requestOptions) { - return new Request(url, requestOptions); -} -__name(createRequest, "createRequest"); - -// src/request-timeout.ts -function requestTimeout(timeoutInMs = 0) { - return new Promise((resolve, reject) => { - if (timeoutInMs) { - setTimeout(() => { - const timeoutError = new Error(`Request did not complete within ${timeoutInMs} ms`); - timeoutError.name = "TimeoutError"; - reject(timeoutError); - }, timeoutInMs); - } - }); -} -__name(requestTimeout, "requestTimeout"); - -// src/fetch-http-handler.ts -var keepAliveSupport = { - supported: void 0 -}; -var FetchHttpHandler = class _FetchHttpHandler { - static { - __name(this, "FetchHttpHandler"); - } - /** - * @returns the input if it is an HttpHandler of any class, - * or instantiates a new instance of this handler. - */ - static create(instanceOrOptions) { - if (typeof instanceOrOptions?.handle === "function") { - return instanceOrOptions; - } - return new _FetchHttpHandler(instanceOrOptions); - } - constructor(options) { - if (typeof options === "function") { - this.configProvider = options().then((opts) => opts || {}); - } else { - this.config = options ?? {}; - this.configProvider = Promise.resolve(this.config); - } - if (keepAliveSupport.supported === void 0) { - keepAliveSupport.supported = Boolean( - typeof Request !== "undefined" && "keepalive" in createRequest("https://[::1]") - ); - } - } - destroy() { - } - async handle(request, { abortSignal } = {}) { - if (!this.config) { - this.config = await this.configProvider; - } - const requestTimeoutInMs = this.config.requestTimeout; - const keepAlive = this.config.keepAlive === true; - const credentials = this.config.credentials; - if (abortSignal?.aborted) { - const abortError = new Error("Request aborted"); - abortError.name = "AbortError"; - return Promise.reject(abortError); - } - let path = request.path; - const queryString = (0, import_querystring_builder.buildQueryString)(request.query || {}); - if (queryString) { - path += `?${queryString}`; - } - if (request.fragment) { - path += `#${request.fragment}`; - } - let auth = ""; - if (request.username != null || request.password != null) { - const username = request.username ?? ""; - const password = request.password ?? ""; - auth = `${username}:${password}@`; - } - const { port, method } = request; - const url = `${request.protocol}//${auth}${request.hostname}${port ? `:${port}` : ""}${path}`; - const body = method === "GET" || method === "HEAD" ? void 0 : request.body; - const requestOptions = { - body, - headers: new Headers(request.headers), - method, - credentials - }; - if (this.config?.cache) { - requestOptions.cache = this.config.cache; - } - if (body) { - requestOptions.duplex = "half"; - } - if (typeof AbortController !== "undefined") { - requestOptions.signal = abortSignal; - } - if (keepAliveSupport.supported) { - requestOptions.keepalive = keepAlive; - } - if (typeof this.config.requestInit === "function") { - Object.assign(requestOptions, this.config.requestInit(request)); - } - let removeSignalEventListener = /* @__PURE__ */ __name(() => { - }, "removeSignalEventListener"); - const fetchRequest = createRequest(url, requestOptions); - const raceOfPromises = [ - fetch(fetchRequest).then((response) => { - const fetchHeaders = response.headers; - const transformedHeaders = {}; - for (const pair of fetchHeaders.entries()) { - transformedHeaders[pair[0]] = pair[1]; - } - const hasReadableStream = response.body != void 0; - if (!hasReadableStream) { - return response.blob().then((body2) => ({ - response: new import_protocol_http.HttpResponse({ - headers: transformedHeaders, - reason: response.statusText, - statusCode: response.status, - body: body2 - }) - })); + // src/types/EndpointError.ts + var EndpointError = class extends Error { + static { + __name(this, 'EndpointError') } - return { - response: new import_protocol_http.HttpResponse({ - headers: transformedHeaders, - reason: response.statusText, - statusCode: response.status, - body: response.body - }) - }; - }), - requestTimeout(requestTimeoutInMs) - ]; - if (abortSignal) { - raceOfPromises.push( - new Promise((resolve, reject) => { - const onAbort = /* @__PURE__ */ __name(() => { - const abortError = new Error("Request aborted"); - abortError.name = "AbortError"; - reject(abortError); - }, "onAbort"); - if (typeof abortSignal.addEventListener === "function") { - const signal = abortSignal; - signal.addEventListener("abort", onAbort, { once: true }); - removeSignalEventListener = /* @__PURE__ */ __name(() => signal.removeEventListener("abort", onAbort), "removeSignalEventListener"); - } else { - abortSignal.onabort = onAbort; - } - }) - ); - } - return Promise.race(raceOfPromises).finally(removeSignalEventListener); - } - updateHttpClientConfig(key, value) { - this.config = void 0; - this.configProvider = this.configProvider.then((config) => { - config[key] = value; - return config; - }); - } - httpHandlerConfigs() { - return this.config ?? {}; - } -}; - -// src/stream-collector.ts -var import_util_base64 = __nccwpck_require__(44079); -var streamCollector = /* @__PURE__ */ __name(async (stream) => { - if (typeof Blob === "function" && stream instanceof Blob || stream.constructor?.name === "Blob") { - if (Blob.prototype.arrayBuffer !== void 0) { - return new Uint8Array(await stream.arrayBuffer()); - } - return collectBlob(stream); - } - return collectStream(stream); -}, "streamCollector"); -async function collectBlob(blob) { - const base64 = await readToBase64(blob); - const arrayBuffer = (0, import_util_base64.fromBase64)(base64); - return new Uint8Array(arrayBuffer); -} -__name(collectBlob, "collectBlob"); -async function collectStream(stream) { - const chunks = []; - const reader = stream.getReader(); - let isDone = false; - let length = 0; - while (!isDone) { - const { done, value } = await reader.read(); - if (value) { - chunks.push(value); - length += value.length; - } - isDone = done; - } - const collected = new Uint8Array(length); - let offset = 0; - for (const chunk of chunks) { - collected.set(chunk, offset); - offset += chunk.length; - } - return collected; -} -__name(collectStream, "collectStream"); -function readToBase64(blob) { - return new Promise((resolve, reject) => { - const reader = new FileReader(); - reader.onloadend = () => { - if (reader.readyState !== 2) { - return reject(new Error("Reader aborted too early")); - } - const result = reader.result ?? ""; - const commaIndex = result.indexOf(","); - const dataOffset = commaIndex > -1 ? commaIndex + 1 : result.length; - resolve(result.substring(dataOffset)); - }; - reader.onabort = () => reject(new Error("Read aborted")); - reader.onerror = () => reject(reader.error); - reader.readAsDataURL(blob); - }); -} -__name(readToBase64, "readToBase64"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 92920: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - Hash: () => Hash -}); -module.exports = __toCommonJS(src_exports); -var import_util_buffer_from = __nccwpck_require__(18614); -var import_util_utf8 = __nccwpck_require__(76749); -var import_buffer = __nccwpck_require__(14300); -var import_crypto = __nccwpck_require__(6113); -var Hash = class { - static { - __name(this, "Hash"); - } - constructor(algorithmIdentifier, secret) { - this.algorithmIdentifier = algorithmIdentifier; - this.secret = secret; - this.reset(); - } - update(toHash, encoding) { - this.hash.update((0, import_util_utf8.toUint8Array)(castSourceData(toHash, encoding))); - } - digest() { - return Promise.resolve(this.hash.digest()); - } - reset() { - this.hash = this.secret ? (0, import_crypto.createHmac)(this.algorithmIdentifier, castSourceData(this.secret)) : (0, import_crypto.createHash)(this.algorithmIdentifier); - } -}; -function castSourceData(toCast, encoding) { - if (import_buffer.Buffer.isBuffer(toCast)) { - return toCast; - } - if (typeof toCast === "string") { - return (0, import_util_buffer_from.fromString)(toCast, encoding); - } - if (ArrayBuffer.isView(toCast)) { - return (0, import_util_buffer_from.fromArrayBuffer)(toCast.buffer, toCast.byteOffset, toCast.byteLength); - } - return (0, import_util_buffer_from.fromArrayBuffer)(toCast); -} -__name(castSourceData, "castSourceData"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 25796: -/***/ ((module) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - isArrayBuffer: () => isArrayBuffer -}); -module.exports = __toCommonJS(src_exports); -var isArrayBuffer = /* @__PURE__ */ __name((arg) => typeof ArrayBuffer === "function" && arg instanceof ArrayBuffer || Object.prototype.toString.call(arg) === "[object ArrayBuffer]", "isArrayBuffer"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 51214: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - contentLengthMiddleware: () => contentLengthMiddleware, - contentLengthMiddlewareOptions: () => contentLengthMiddlewareOptions, - getContentLengthPlugin: () => getContentLengthPlugin -}); -module.exports = __toCommonJS(src_exports); -var import_protocol_http = __nccwpck_require__(18241); -var CONTENT_LENGTH_HEADER = "content-length"; -function contentLengthMiddleware(bodyLengthChecker) { - return (next) => async (args) => { - const request = args.request; - if (import_protocol_http.HttpRequest.isInstance(request)) { - const { body, headers } = request; - if (body && Object.keys(headers).map((str) => str.toLowerCase()).indexOf(CONTENT_LENGTH_HEADER) === -1) { - try { - const length = bodyLengthChecker(body); - request.headers = { - ...request.headers, - [CONTENT_LENGTH_HEADER]: String(length) - }; - } catch (error) { + constructor(message) { + super(message) + this.name = 'EndpointError' } } - } - return next({ - ...args, - request - }); - }; -} -__name(contentLengthMiddleware, "contentLengthMiddleware"); -var contentLengthMiddlewareOptions = { - step: "build", - tags: ["SET_CONTENT_LENGTH", "CONTENT_LENGTH"], - name: "contentLengthMiddleware", - override: true -}; -var getContentLengthPlugin = /* @__PURE__ */ __name((options) => ({ - applyToStack: (clientStack) => { - clientStack.add(contentLengthMiddleware(options.bodyLengthChecker), contentLengthMiddlewareOptions); - } -}), "getContentLengthPlugin"); -// Annotate the CommonJS export names for ESM import in node: -0 && (0); + // src/lib/booleanEquals.ts + var booleanEquals = /* @__PURE__ */ __name( + (value1, value2) => value1 === value2, + 'booleanEquals' + ) + // src/lib/getAttrPathList.ts + var getAttrPathList = /* @__PURE__ */ __name(path => { + const parts = path.split('.') + const pathList = [] + for (const part of parts) { + const squareBracketIndex = part.indexOf('[') + if (squareBracketIndex !== -1) { + if (part.indexOf(']') !== part.length - 1) { + throw new EndpointError(`Path: '${path}' does not end with ']'`) + } + const arrayIndex = part.slice(squareBracketIndex + 1, -1) + if (Number.isNaN(parseInt(arrayIndex))) { + throw new EndpointError( + `Invalid array index: '${arrayIndex}' in path: '${path}'` + ) + } + if (squareBracketIndex !== 0) { + pathList.push(part.slice(0, squareBracketIndex)) + } + pathList.push(arrayIndex) + } else { + pathList.push(part) + } + } + return pathList + }, 'getAttrPathList') + + // src/lib/getAttr.ts + var getAttr = /* @__PURE__ */ __name( + (value, path) => + getAttrPathList(path).reduce((acc, index) => { + if (typeof acc !== 'object') { + throw new EndpointError( + `Index '${index}' in '${path}' not found in '${JSON.stringify(value)}'` + ) + } else if (Array.isArray(acc)) { + return acc[parseInt(index)] + } + return acc[index] + }, value), + 'getAttr' + ) + // src/lib/isSet.ts + var isSet = /* @__PURE__ */ __name(value => value != null, 'isSet') -/***/ }), + // src/lib/not.ts + var not = /* @__PURE__ */ __name(value => !value, 'not') -/***/ 2941: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + // src/lib/parseURL.ts + var import_types3 = __nccwpck_require__(63592) + var DEFAULT_PORTS = { + [import_types3.EndpointURLScheme.HTTP]: 80, + [import_types3.EndpointURLScheme.HTTPS]: 443 + } + var parseURL = /* @__PURE__ */ __name(value => { + const whatwgURL = (() => { + try { + if (value instanceof URL) { + return value + } + if (typeof value === 'object' && 'hostname' in value) { + const { + hostname: hostname2, + port, + protocol: protocol2 = '', + path = '', + query = {} + } = value + const url = new URL( + `${protocol2}//${hostname2}${port ? `:${port}` : ''}${path}` + ) + url.search = Object.entries(query) + .map(([k, v]) => `${k}=${v}`) + .join('&') + return url + } + return new URL(value) + } catch (error) { + return null + } + })() + if (!whatwgURL) { + console.error( + `Unable to parse ${JSON.stringify(value)} as a whatwg URL.` + ) + return null + } + const urlString = whatwgURL.href + const { host, hostname, pathname, protocol, search } = whatwgURL + if (search) { + return null + } + const scheme = protocol.slice(0, -1) + if (!Object.values(import_types3.EndpointURLScheme).includes(scheme)) { + return null + } + const isIp = isIpAddress(hostname) + const inputContainsDefaultPort = + urlString.includes(`${host}:${DEFAULT_PORTS[scheme]}`) || + (typeof value === 'string' && + value.includes(`${host}:${DEFAULT_PORTS[scheme]}`)) + const authority = `${host}${inputContainsDefaultPort ? `:${DEFAULT_PORTS[scheme]}` : ``}` + return { + scheme, + authority, + path: pathname, + normalizedPath: pathname.endsWith('/') ? pathname : `${pathname}/`, + isIp + } + }, 'parseURL') + + // src/lib/stringEquals.ts + var stringEquals = /* @__PURE__ */ __name( + (value1, value2) => value1 === value2, + 'stringEquals' + ) -"use strict"; + // src/lib/substring.ts + var substring = /* @__PURE__ */ __name((input, start, stop, reverse) => { + if (start >= stop || input.length < stop) { + return null + } + if (!reverse) { + return input.substring(start, stop) + } + return input.substring(input.length - stop, input.length - start) + }, 'substring') + + // src/lib/uriEncode.ts + var uriEncode = /* @__PURE__ */ __name( + value => + encodeURIComponent(value).replace( + /[!*'()]/g, + c => `%${c.charCodeAt(0).toString(16).toUpperCase()}` + ), + 'uriEncode' + ) -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getEndpointFromConfig = void 0; -const node_config_provider_1 = __nccwpck_require__(85650); -const getEndpointUrlConfig_1 = __nccwpck_require__(37924); -const getEndpointFromConfig = async (serviceId) => (0, node_config_provider_1.loadConfig)((0, getEndpointUrlConfig_1.getEndpointUrlConfig)(serviceId !== null && serviceId !== void 0 ? serviceId : ""))(); -exports.getEndpointFromConfig = getEndpointFromConfig; + // src/utils/endpointFunctions.ts + var endpointFunctions = { + booleanEquals, + getAttr, + isSet, + isValidHostLabel, + not, + parseURL, + stringEquals, + substring, + uriEncode + } + + // src/utils/evaluateTemplate.ts + var evaluateTemplate = /* @__PURE__ */ __name((template, options) => { + const evaluatedTemplateArr = [] + const templateContext = { + ...options.endpointParams, + ...options.referenceRecord + } + let currentIndex = 0 + while (currentIndex < template.length) { + const openingBraceIndex = template.indexOf('{', currentIndex) + if (openingBraceIndex === -1) { + evaluatedTemplateArr.push(template.slice(currentIndex)) + break + } + evaluatedTemplateArr.push( + template.slice(currentIndex, openingBraceIndex) + ) + const closingBraceIndex = template.indexOf('}', openingBraceIndex) + if (closingBraceIndex === -1) { + evaluatedTemplateArr.push(template.slice(openingBraceIndex)) + break + } + if ( + template[openingBraceIndex + 1] === '{' && + template[closingBraceIndex + 1] === '}' + ) { + evaluatedTemplateArr.push( + template.slice(openingBraceIndex + 1, closingBraceIndex) + ) + currentIndex = closingBraceIndex + 2 + } + const parameterName = template.substring( + openingBraceIndex + 1, + closingBraceIndex + ) + if (parameterName.includes('#')) { + const [refName, attrName] = parameterName.split('#') + evaluatedTemplateArr.push( + getAttr(templateContext[refName], attrName) + ) + } else { + evaluatedTemplateArr.push(templateContext[parameterName]) + } + currentIndex = closingBraceIndex + 1 + } + return evaluatedTemplateArr.join('') + }, 'evaluateTemplate') + + // src/utils/getReferenceValue.ts + var getReferenceValue = /* @__PURE__ */ __name(({ ref }, options) => { + const referenceRecord = { + ...options.endpointParams, + ...options.referenceRecord + } + return referenceRecord[ref] + }, 'getReferenceValue') + + // src/utils/evaluateExpression.ts + var evaluateExpression = /* @__PURE__ */ __name( + (obj, keyName, options) => { + if (typeof obj === 'string') { + return evaluateTemplate(obj, options) + } else if (obj['fn']) { + return callFunction(obj, options) + } else if (obj['ref']) { + return getReferenceValue(obj, options) + } + throw new EndpointError( + `'${keyName}': ${String(obj)} is not a string, function or reference.` + ) + }, + 'evaluateExpression' + ) + // src/utils/callFunction.ts + var callFunction = /* @__PURE__ */ __name(({ fn, argv }, options) => { + const evaluatedArgs = argv.map(arg => + ['boolean', 'number'].includes(typeof arg) + ? arg + : evaluateExpression(arg, 'arg', options) + ) + const fnSegments = fn.split('.') + if (fnSegments[0] in customEndpointFunctions && fnSegments[1] != null) { + return customEndpointFunctions[fnSegments[0]][fnSegments[1]]( + ...evaluatedArgs + ) + } + return endpointFunctions[fn](...evaluatedArgs) + }, 'callFunction') -/***/ }), + // src/utils/evaluateCondition.ts + var evaluateCondition = /* @__PURE__ */ __name( + ({ assign, ...fnArgs }, options) => { + if (assign && assign in options.referenceRecord) { + throw new EndpointError( + `'${assign}' is already defined in Reference Record.` + ) + } + const value = callFunction(fnArgs, options) + options.logger?.debug?.( + `${debugId} evaluateCondition: ${toDebugString(fnArgs)} = ${toDebugString(value)}` + ) + return { + result: value === '' ? true : !!value, + ...(assign != null && { toAssign: { name: assign, value } }) + } + }, + 'evaluateCondition' + ) -/***/ 37924: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + // src/utils/evaluateConditions.ts + var evaluateConditions = /* @__PURE__ */ __name( + (conditions = [], options) => { + const conditionsReferenceRecord = {} + for (const condition of conditions) { + const { result, toAssign } = evaluateCondition(condition, { + ...options, + referenceRecord: { + ...options.referenceRecord, + ...conditionsReferenceRecord + } + }) + if (!result) { + return { result } + } + if (toAssign) { + conditionsReferenceRecord[toAssign.name] = toAssign.value + options.logger?.debug?.( + `${debugId} assign: ${toAssign.name} := ${toDebugString(toAssign.value)}` + ) + } + } + return { result: true, referenceRecord: conditionsReferenceRecord } + }, + 'evaluateConditions' + ) -"use strict"; + // src/utils/getEndpointHeaders.ts + var getEndpointHeaders = /* @__PURE__ */ __name( + (headers, options) => + Object.entries(headers).reduce( + (acc, [headerKey, headerVal]) => ({ + ...acc, + [headerKey]: headerVal.map(headerValEntry => { + const processedExpr = evaluateExpression( + headerValEntry, + 'Header value entry', + options + ) + if (typeof processedExpr !== 'string') { + throw new EndpointError( + `Header '${headerKey}' value '${processedExpr}' is not a string` + ) + } + return processedExpr + }) + }), + {} + ), + 'getEndpointHeaders' + ) -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getEndpointUrlConfig = void 0; -const shared_ini_file_loader_1 = __nccwpck_require__(28586); -const ENV_ENDPOINT_URL = "AWS_ENDPOINT_URL"; -const CONFIG_ENDPOINT_URL = "endpoint_url"; -const getEndpointUrlConfig = (serviceId) => ({ - environmentVariableSelector: (env) => { - const serviceSuffixParts = serviceId.split(" ").map((w) => w.toUpperCase()); - const serviceEndpointUrl = env[[ENV_ENDPOINT_URL, ...serviceSuffixParts].join("_")]; - if (serviceEndpointUrl) - return serviceEndpointUrl; - const endpointUrl = env[ENV_ENDPOINT_URL]; - if (endpointUrl) - return endpointUrl; - return undefined; - }, - configFileSelector: (profile, config) => { - if (config && profile.services) { - const servicesSection = config[["services", profile.services].join(shared_ini_file_loader_1.CONFIG_PREFIX_SEPARATOR)]; - if (servicesSection) { - const servicePrefixParts = serviceId.split(" ").map((w) => w.toLowerCase()); - const endpointUrl = servicesSection[[servicePrefixParts.join("_"), CONFIG_ENDPOINT_URL].join(shared_ini_file_loader_1.CONFIG_PREFIX_SEPARATOR)]; - if (endpointUrl) - return endpointUrl; - } - } - const endpointUrl = profile[CONFIG_ENDPOINT_URL]; - if (endpointUrl) - return endpointUrl; - return undefined; - }, - default: undefined, -}); -exports.getEndpointUrlConfig = getEndpointUrlConfig; - - -/***/ }), - -/***/ 23435: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - endpointMiddleware: () => endpointMiddleware, - endpointMiddlewareOptions: () => endpointMiddlewareOptions, - getEndpointFromInstructions: () => getEndpointFromInstructions, - getEndpointPlugin: () => getEndpointPlugin, - resolveEndpointConfig: () => resolveEndpointConfig, - resolveParams: () => resolveParams, - toEndpointV1: () => toEndpointV1 -}); -module.exports = __toCommonJS(src_exports); - -// src/service-customizations/s3.ts -var resolveParamsForS3 = /* @__PURE__ */ __name(async (endpointParams) => { - const bucket = endpointParams?.Bucket || ""; - if (typeof endpointParams.Bucket === "string") { - endpointParams.Bucket = bucket.replace(/#/g, encodeURIComponent("#")).replace(/\?/g, encodeURIComponent("?")); - } - if (isArnBucketName(bucket)) { - if (endpointParams.ForcePathStyle === true) { - throw new Error("Path-style addressing cannot be used with ARN buckets"); - } - } else if (!isDnsCompatibleBucketName(bucket) || bucket.indexOf(".") !== -1 && !String(endpointParams.Endpoint).startsWith("http:") || bucket.toLowerCase() !== bucket || bucket.length < 3) { - endpointParams.ForcePathStyle = true; - } - if (endpointParams.DisableMultiRegionAccessPoints) { - endpointParams.disableMultiRegionAccessPoints = true; - endpointParams.DisableMRAP = true; - } - return endpointParams; -}, "resolveParamsForS3"); -var DOMAIN_PATTERN = /^[a-z0-9][a-z0-9\.\-]{1,61}[a-z0-9]$/; -var IP_ADDRESS_PATTERN = /(\d+\.){3}\d+/; -var DOTS_PATTERN = /\.\./; -var isDnsCompatibleBucketName = /* @__PURE__ */ __name((bucketName) => DOMAIN_PATTERN.test(bucketName) && !IP_ADDRESS_PATTERN.test(bucketName) && !DOTS_PATTERN.test(bucketName), "isDnsCompatibleBucketName"); -var isArnBucketName = /* @__PURE__ */ __name((bucketName) => { - const [arn, partition, service, , , bucket] = bucketName.split(":"); - const isArn = arn === "arn" && bucketName.split(":").length >= 6; - const isValidArn = Boolean(isArn && partition && service && bucket); - if (isArn && !isValidArn) { - throw new Error(`Invalid ARN: ${bucketName} was an invalid ARN.`); - } - return isValidArn; -}, "isArnBucketName"); - -// src/adaptors/createConfigValueProvider.ts -var createConfigValueProvider = /* @__PURE__ */ __name((configKey, canonicalEndpointParamKey, config) => { - const configProvider = /* @__PURE__ */ __name(async () => { - const configValue = config[configKey] ?? config[canonicalEndpointParamKey]; - if (typeof configValue === "function") { - return configValue(); - } - return configValue; - }, "configProvider"); - if (configKey === "credentialScope" || canonicalEndpointParamKey === "CredentialScope") { - return async () => { - const credentials = typeof config.credentials === "function" ? await config.credentials() : config.credentials; - const configValue = credentials?.credentialScope ?? credentials?.CredentialScope; - return configValue; - }; - } - if (configKey === "accountId" || canonicalEndpointParamKey === "AccountId") { - return async () => { - const credentials = typeof config.credentials === "function" ? await config.credentials() : config.credentials; - const configValue = credentials?.accountId ?? credentials?.AccountId; - return configValue; - }; - } - if (configKey === "endpoint" || canonicalEndpointParamKey === "endpoint") { - return async () => { - const endpoint = await configProvider(); - if (endpoint && typeof endpoint === "object") { - if ("url" in endpoint) { - return endpoint.url.href; + // src/utils/getEndpointProperty.ts + var getEndpointProperty = /* @__PURE__ */ __name((property, options) => { + if (Array.isArray(property)) { + return property.map(propertyEntry => + getEndpointProperty(propertyEntry, options) + ) } - if ("hostname" in endpoint) { - const { protocol, hostname, port, path } = endpoint; - return `${protocol}//${hostname}${port ? ":" + port : ""}${path}`; + switch (typeof property) { + case 'string': + return evaluateTemplate(property, options) + case 'object': + if (property === null) { + throw new EndpointError( + `Unexpected endpoint property: ${property}` + ) + } + return getEndpointProperties(property, options) + case 'boolean': + return property + default: + throw new EndpointError( + `Unexpected endpoint property type: ${typeof property}` + ) } - } - return endpoint; - }; - } - return configProvider; -}, "createConfigValueProvider"); - -// src/adaptors/getEndpointFromInstructions.ts -var import_getEndpointFromConfig = __nccwpck_require__(2941); - -// src/adaptors/toEndpointV1.ts -var import_url_parser = __nccwpck_require__(94769); -var toEndpointV1 = /* @__PURE__ */ __name((endpoint) => { - if (typeof endpoint === "object") { - if ("url" in endpoint) { - return (0, import_url_parser.parseUrl)(endpoint.url); - } - return endpoint; - } - return (0, import_url_parser.parseUrl)(endpoint); -}, "toEndpointV1"); - -// src/adaptors/getEndpointFromInstructions.ts -var getEndpointFromInstructions = /* @__PURE__ */ __name(async (commandInput, instructionsSupplier, clientConfig, context) => { - if (!clientConfig.endpoint) { - let endpointFromConfig; - if (clientConfig.serviceConfiguredEndpoint) { - endpointFromConfig = await clientConfig.serviceConfiguredEndpoint(); - } else { - endpointFromConfig = await (0, import_getEndpointFromConfig.getEndpointFromConfig)(clientConfig.serviceId); - } - if (endpointFromConfig) { - clientConfig.endpoint = () => Promise.resolve(toEndpointV1(endpointFromConfig)); - } - } - const endpointParams = await resolveParams(commandInput, instructionsSupplier, clientConfig); - if (typeof clientConfig.endpointProvider !== "function") { - throw new Error("config.endpointProvider is not set."); - } - const endpoint = clientConfig.endpointProvider(endpointParams, context); - return endpoint; -}, "getEndpointFromInstructions"); -var resolveParams = /* @__PURE__ */ __name(async (commandInput, instructionsSupplier, clientConfig) => { - const endpointParams = {}; - const instructions = instructionsSupplier?.getEndpointParameterInstructions?.() || {}; - for (const [name, instruction] of Object.entries(instructions)) { - switch (instruction.type) { - case "staticContextParams": - endpointParams[name] = instruction.value; - break; - case "contextParams": - endpointParams[name] = commandInput[instruction.name]; - break; - case "clientContextParams": - case "builtInParams": - endpointParams[name] = await createConfigValueProvider(instruction.name, name, clientConfig)(); - break; - case "operationContextParams": - endpointParams[name] = instruction.get(commandInput); - break; - default: - throw new Error("Unrecognized endpoint parameter instruction: " + JSON.stringify(instruction)); - } - } - if (Object.keys(instructions).length === 0) { - Object.assign(endpointParams, clientConfig); - } - if (String(clientConfig.serviceId).toLowerCase() === "s3") { - await resolveParamsForS3(endpointParams); - } - return endpointParams; -}, "resolveParams"); - -// src/endpointMiddleware.ts -var import_core = __nccwpck_require__(1004); -var import_util_middleware = __nccwpck_require__(14298); -var endpointMiddleware = /* @__PURE__ */ __name(({ - config, - instructions -}) => { - return (next, context) => async (args) => { - if (config.endpoint) { - (0, import_core.setFeature)(context, "ENDPOINT_OVERRIDE", "N"); - } - const endpoint = await getEndpointFromInstructions( - args.input, - { - getEndpointParameterInstructions() { - return instructions; - } - }, - { ...config }, - context - ); - context.endpointV2 = endpoint; - context.authSchemes = endpoint.properties?.authSchemes; - const authScheme = context.authSchemes?.[0]; - if (authScheme) { - context["signing_region"] = authScheme.signingRegion; - context["signing_service"] = authScheme.signingName; - const smithyContext = (0, import_util_middleware.getSmithyContext)(context); - const httpAuthOption = smithyContext?.selectedHttpAuthScheme?.httpAuthOption; - if (httpAuthOption) { - httpAuthOption.signingProperties = Object.assign( - httpAuthOption.signingProperties || {}, - { - signing_region: authScheme.signingRegion, - signingRegion: authScheme.signingRegion, - signing_service: authScheme.signingName, - signingName: authScheme.signingName, - signingRegionSet: authScheme.signingRegionSet - }, - authScheme.properties - ); - } - } - return next({ - ...args - }); - }; -}, "endpointMiddleware"); - -// src/getEndpointPlugin.ts -var import_middleware_serde = __nccwpck_require__(94572); -var endpointMiddlewareOptions = { - step: "serialize", - tags: ["ENDPOINT_PARAMETERS", "ENDPOINT_V2", "ENDPOINT"], - name: "endpointV2Middleware", - override: true, - relation: "before", - toMiddleware: import_middleware_serde.serializerMiddlewareOption.name -}; -var getEndpointPlugin = /* @__PURE__ */ __name((config, instructions) => ({ - applyToStack: (clientStack) => { - clientStack.addRelativeTo( - endpointMiddleware({ - config, - instructions - }), - endpointMiddlewareOptions - ); - } -}), "getEndpointPlugin"); - -// src/resolveEndpointConfig.ts - -var import_getEndpointFromConfig2 = __nccwpck_require__(2941); -var resolveEndpointConfig = /* @__PURE__ */ __name((input) => { - const tls = input.tls ?? true; - const { endpoint, useDualstackEndpoint, useFipsEndpoint } = input; - const customEndpointProvider = endpoint != null ? async () => toEndpointV1(await (0, import_util_middleware.normalizeProvider)(endpoint)()) : void 0; - const isCustomEndpoint = !!endpoint; - const resolvedConfig = Object.assign(input, { - endpoint: customEndpointProvider, - tls, - isCustomEndpoint, - useDualstackEndpoint: (0, import_util_middleware.normalizeProvider)(useDualstackEndpoint ?? false), - useFipsEndpoint: (0, import_util_middleware.normalizeProvider)(useFipsEndpoint ?? false) - }); - let configuredEndpointPromise = void 0; - resolvedConfig.serviceConfiguredEndpoint = async () => { - if (input.serviceId && !configuredEndpointPromise) { - configuredEndpointPromise = (0, import_getEndpointFromConfig2.getEndpointFromConfig)(input.serviceId); - } - return configuredEndpointPromise; - }; - return resolvedConfig; -}, "resolveEndpointConfig"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 23737: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - AdaptiveRetryStrategy: () => AdaptiveRetryStrategy, - CONFIG_MAX_ATTEMPTS: () => CONFIG_MAX_ATTEMPTS, - CONFIG_RETRY_MODE: () => CONFIG_RETRY_MODE, - ENV_MAX_ATTEMPTS: () => ENV_MAX_ATTEMPTS, - ENV_RETRY_MODE: () => ENV_RETRY_MODE, - NODE_MAX_ATTEMPT_CONFIG_OPTIONS: () => NODE_MAX_ATTEMPT_CONFIG_OPTIONS, - NODE_RETRY_MODE_CONFIG_OPTIONS: () => NODE_RETRY_MODE_CONFIG_OPTIONS, - StandardRetryStrategy: () => StandardRetryStrategy, - defaultDelayDecider: () => defaultDelayDecider, - defaultRetryDecider: () => defaultRetryDecider, - getOmitRetryHeadersPlugin: () => getOmitRetryHeadersPlugin, - getRetryAfterHint: () => getRetryAfterHint, - getRetryPlugin: () => getRetryPlugin, - omitRetryHeadersMiddleware: () => omitRetryHeadersMiddleware, - omitRetryHeadersMiddlewareOptions: () => omitRetryHeadersMiddlewareOptions, - resolveRetryConfig: () => resolveRetryConfig, - retryMiddleware: () => retryMiddleware, - retryMiddlewareOptions: () => retryMiddlewareOptions -}); -module.exports = __toCommonJS(src_exports); - -// src/AdaptiveRetryStrategy.ts - - -// src/StandardRetryStrategy.ts -var import_protocol_http = __nccwpck_require__(18241); - - -var import_uuid = __nccwpck_require__(36450); - -// src/defaultRetryQuota.ts -var import_util_retry = __nccwpck_require__(35808); -var getDefaultRetryQuota = /* @__PURE__ */ __name((initialRetryTokens, options) => { - const MAX_CAPACITY = initialRetryTokens; - const noRetryIncrement = options?.noRetryIncrement ?? import_util_retry.NO_RETRY_INCREMENT; - const retryCost = options?.retryCost ?? import_util_retry.RETRY_COST; - const timeoutRetryCost = options?.timeoutRetryCost ?? import_util_retry.TIMEOUT_RETRY_COST; - let availableCapacity = initialRetryTokens; - const getCapacityAmount = /* @__PURE__ */ __name((error) => error.name === "TimeoutError" ? timeoutRetryCost : retryCost, "getCapacityAmount"); - const hasRetryTokens = /* @__PURE__ */ __name((error) => getCapacityAmount(error) <= availableCapacity, "hasRetryTokens"); - const retrieveRetryTokens = /* @__PURE__ */ __name((error) => { - if (!hasRetryTokens(error)) { - throw new Error("No retry token available"); - } - const capacityAmount = getCapacityAmount(error); - availableCapacity -= capacityAmount; - return capacityAmount; - }, "retrieveRetryTokens"); - const releaseRetryTokens = /* @__PURE__ */ __name((capacityReleaseAmount) => { - availableCapacity += capacityReleaseAmount ?? noRetryIncrement; - availableCapacity = Math.min(availableCapacity, MAX_CAPACITY); - }, "releaseRetryTokens"); - return Object.freeze({ - hasRetryTokens, - retrieveRetryTokens, - releaseRetryTokens - }); -}, "getDefaultRetryQuota"); - -// src/delayDecider.ts - -var defaultDelayDecider = /* @__PURE__ */ __name((delayBase, attempts) => Math.floor(Math.min(import_util_retry.MAXIMUM_RETRY_DELAY, Math.random() * 2 ** attempts * delayBase)), "defaultDelayDecider"); - -// src/retryDecider.ts -var import_service_error_classification = __nccwpck_require__(4863); -var defaultRetryDecider = /* @__PURE__ */ __name((error) => { - if (!error) { - return false; - } - 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); -}, "defaultRetryDecider"); - -// src/util.ts -var asSdkError = /* @__PURE__ */ __name((error) => { - if (error instanceof Error) - return error; - if (error instanceof Object) - return Object.assign(new Error(), error); - if (typeof error === "string") - return new Error(error); - return new Error(`AWS SDK error wrapper for ${error}`); -}, "asSdkError"); - -// src/StandardRetryStrategy.ts -var StandardRetryStrategy = class { - constructor(maxAttemptsProvider, options) { - this.maxAttemptsProvider = maxAttemptsProvider; - this.mode = import_util_retry.RETRY_MODES.STANDARD; - this.retryDecider = options?.retryDecider ?? defaultRetryDecider; - this.delayDecider = options?.delayDecider ?? defaultDelayDecider; - this.retryQuota = options?.retryQuota ?? getDefaultRetryQuota(import_util_retry.INITIAL_RETRY_TOKENS); - } - static { - __name(this, "StandardRetryStrategy"); - } - shouldRetry(error, attempts, maxAttempts) { - return attempts < maxAttempts && this.retryDecider(error) && this.retryQuota.hasRetryTokens(error); - } - async getMaxAttempts() { - let maxAttempts; - try { - maxAttempts = await this.maxAttemptsProvider(); - } catch (error) { - maxAttempts = import_util_retry.DEFAULT_MAX_ATTEMPTS; - } - return maxAttempts; - } - async retry(next, args, options) { - let retryTokenAmount; - let attempts = 0; - let totalDelay = 0; - const maxAttempts = await this.getMaxAttempts(); - const { request } = args; - if (import_protocol_http.HttpRequest.isInstance(request)) { - request.headers[import_util_retry.INVOCATION_ID_HEADER] = (0, import_uuid.v4)(); - } - while (true) { - try { - if (import_protocol_http.HttpRequest.isInstance(request)) { - request.headers[import_util_retry.REQUEST_HEADER] = `attempt=${attempts + 1}; max=${maxAttempts}`; - } - if (options?.beforeRequest) { - await options.beforeRequest(); - } - const { response, output } = await next(args); - if (options?.afterRequest) { - options.afterRequest(response); - } - this.retryQuota.releaseRetryTokens(retryTokenAmount); - output.$metadata.attempts = attempts + 1; - output.$metadata.totalRetryDelay = totalDelay; - return { response, output }; - } catch (e) { - const err = asSdkError(e); - attempts++; - if (this.shouldRetry(err, attempts, maxAttempts)) { - retryTokenAmount = this.retryQuota.retrieveRetryTokens(err); - const delayFromDecider = this.delayDecider( - (0, import_service_error_classification.isThrottlingError)(err) ? import_util_retry.THROTTLING_RETRY_DELAY_BASE : import_util_retry.DEFAULT_RETRY_DELAY_BASE, - attempts - ); - const delayFromResponse = getDelayFromRetryAfterHeader(err.$response); - const delay = Math.max(delayFromResponse || 0, delayFromDecider); - totalDelay += delay; - await new Promise((resolve) => setTimeout(resolve, delay)); - continue; - } - if (!err.$metadata) { - err.$metadata = {}; - } - err.$metadata.attempts = attempts; - err.$metadata.totalRetryDelay = totalDelay; - throw err; - } - } - } -}; -var getDelayFromRetryAfterHeader = /* @__PURE__ */ __name((response) => { - if (!import_protocol_http.HttpResponse.isInstance(response)) - return; - const retryAfterHeaderName = Object.keys(response.headers).find((key) => key.toLowerCase() === "retry-after"); - if (!retryAfterHeaderName) - return; - const retryAfter = response.headers[retryAfterHeaderName]; - const retryAfterSeconds = Number(retryAfter); - if (!Number.isNaN(retryAfterSeconds)) - return retryAfterSeconds * 1e3; - const retryAfterDate = new Date(retryAfter); - return retryAfterDate.getTime() - Date.now(); -}, "getDelayFromRetryAfterHeader"); - -// src/AdaptiveRetryStrategy.ts -var AdaptiveRetryStrategy = class extends StandardRetryStrategy { - static { - __name(this, "AdaptiveRetryStrategy"); - } - constructor(maxAttemptsProvider, options) { - const { rateLimiter, ...superOptions } = options ?? {}; - super(maxAttemptsProvider, superOptions); - this.rateLimiter = rateLimiter ?? new import_util_retry.DefaultRateLimiter(); - this.mode = import_util_retry.RETRY_MODES.ADAPTIVE; - } - async retry(next, args) { - return super.retry(next, args, { - beforeRequest: async () => { - return this.rateLimiter.getSendToken(); - }, - afterRequest: (response) => { - this.rateLimiter.updateClientSendingRate(response); - } - }); - } -}; - -// src/configurations.ts -var import_util_middleware = __nccwpck_require__(14298); - -var ENV_MAX_ATTEMPTS = "AWS_MAX_ATTEMPTS"; -var CONFIG_MAX_ATTEMPTS = "max_attempts"; -var NODE_MAX_ATTEMPT_CONFIG_OPTIONS = { - environmentVariableSelector: (env) => { - const value = env[ENV_MAX_ATTEMPTS]; - if (!value) - return void 0; - const maxAttempt = parseInt(value); - if (Number.isNaN(maxAttempt)) { - throw new Error(`Environment variable ${ENV_MAX_ATTEMPTS} mast be a number, got "${value}"`); - } - return maxAttempt; - }, - configFileSelector: (profile) => { - const value = profile[CONFIG_MAX_ATTEMPTS]; - if (!value) - return void 0; - const maxAttempt = parseInt(value); - if (Number.isNaN(maxAttempt)) { - throw new Error(`Shared config file entry ${CONFIG_MAX_ATTEMPTS} mast be a number, got "${value}"`); - } - return maxAttempt; - }, - default: import_util_retry.DEFAULT_MAX_ATTEMPTS -}; -var resolveRetryConfig = /* @__PURE__ */ __name((input) => { - const { retryStrategy, retryMode: _retryMode, maxAttempts: _maxAttempts } = input; - const maxAttempts = (0, import_util_middleware.normalizeProvider)(_maxAttempts ?? import_util_retry.DEFAULT_MAX_ATTEMPTS); - return Object.assign(input, { - maxAttempts, - retryStrategy: async () => { - if (retryStrategy) { - return retryStrategy; - } - const retryMode = await (0, import_util_middleware.normalizeProvider)(_retryMode)(); - if (retryMode === import_util_retry.RETRY_MODES.ADAPTIVE) { - return new import_util_retry.AdaptiveRetryStrategy(maxAttempts); - } - return new import_util_retry.StandardRetryStrategy(maxAttempts); - } - }); -}, "resolveRetryConfig"); -var ENV_RETRY_MODE = "AWS_RETRY_MODE"; -var CONFIG_RETRY_MODE = "retry_mode"; -var NODE_RETRY_MODE_CONFIG_OPTIONS = { - environmentVariableSelector: (env) => env[ENV_RETRY_MODE], - configFileSelector: (profile) => profile[CONFIG_RETRY_MODE], - default: import_util_retry.DEFAULT_RETRY_MODE -}; - -// src/omitRetryHeadersMiddleware.ts - - -var omitRetryHeadersMiddleware = /* @__PURE__ */ __name(() => (next) => async (args) => { - const { request } = args; - if (import_protocol_http.HttpRequest.isInstance(request)) { - delete request.headers[import_util_retry.INVOCATION_ID_HEADER]; - delete request.headers[import_util_retry.REQUEST_HEADER]; - } - return next(args); -}, "omitRetryHeadersMiddleware"); -var omitRetryHeadersMiddlewareOptions = { - name: "omitRetryHeadersMiddleware", - tags: ["RETRY", "HEADERS", "OMIT_RETRY_HEADERS"], - relation: "before", - toMiddleware: "awsAuthMiddleware", - override: true -}; -var getOmitRetryHeadersPlugin = /* @__PURE__ */ __name((options) => ({ - applyToStack: (clientStack) => { - clientStack.addRelativeTo(omitRetryHeadersMiddleware(), omitRetryHeadersMiddlewareOptions); - } -}), "getOmitRetryHeadersPlugin"); + }, 'getEndpointProperty') + + // src/utils/getEndpointProperties.ts + var getEndpointProperties = /* @__PURE__ */ __name( + (properties, options) => + Object.entries(properties).reduce( + (acc, [propertyKey, propertyVal]) => ({ + ...acc, + [propertyKey]: getEndpointProperty(propertyVal, options) + }), + {} + ), + 'getEndpointProperties' + ) + + // src/utils/getEndpointUrl.ts + var getEndpointUrl = /* @__PURE__ */ __name((endpointUrl, options) => { + const expression = evaluateExpression( + endpointUrl, + 'Endpoint URL', + options + ) + if (typeof expression === 'string') { + try { + return new URL(expression) + } catch (error) { + console.error(`Failed to construct URL with ${expression}`, error) + throw error + } + } + throw new EndpointError( + `Endpoint URL must be a string, got ${typeof expression}` + ) + }, 'getEndpointUrl') + + // src/utils/evaluateEndpointRule.ts + var evaluateEndpointRule = /* @__PURE__ */ __name( + (endpointRule, options) => { + const { conditions, endpoint } = endpointRule + const { result, referenceRecord } = evaluateConditions( + conditions, + options + ) + if (!result) { + return + } + const endpointRuleOptions = { + ...options, + referenceRecord: { ...options.referenceRecord, ...referenceRecord } + } + const { url, properties, headers } = endpoint + options.logger?.debug?.( + `${debugId} Resolving endpoint from template: ${toDebugString(endpoint)}` + ) + return { + ...(headers != void 0 && { + headers: getEndpointHeaders(headers, endpointRuleOptions) + }), + ...(properties != void 0 && { + properties: getEndpointProperties(properties, endpointRuleOptions) + }), + url: getEndpointUrl(url, endpointRuleOptions) + } + }, + 'evaluateEndpointRule' + ) -// src/retryMiddleware.ts + // src/utils/evaluateErrorRule.ts + var evaluateErrorRule = /* @__PURE__ */ __name((errorRule, options) => { + const { conditions, error } = errorRule + const { result, referenceRecord } = evaluateConditions( + conditions, + options + ) + if (!result) { + return + } + throw new EndpointError( + evaluateExpression(error, 'Error', { + ...options, + referenceRecord: { ...options.referenceRecord, ...referenceRecord } + }) + ) + }, 'evaluateErrorRule') + + // src/utils/evaluateTreeRule.ts + var evaluateTreeRule = /* @__PURE__ */ __name((treeRule, options) => { + const { conditions, rules } = treeRule + const { result, referenceRecord } = evaluateConditions( + conditions, + options + ) + if (!result) { + return + } + return evaluateRules(rules, { + ...options, + referenceRecord: { ...options.referenceRecord, ...referenceRecord } + }) + }, 'evaluateTreeRule') + + // src/utils/evaluateRules.ts + var evaluateRules = /* @__PURE__ */ __name((rules, options) => { + for (const rule of rules) { + if (rule.type === 'endpoint') { + const endpointOrUndefined = evaluateEndpointRule(rule, options) + if (endpointOrUndefined) { + return endpointOrUndefined + } + } else if (rule.type === 'error') { + evaluateErrorRule(rule, options) + } else if (rule.type === 'tree') { + const endpointOrUndefined = evaluateTreeRule(rule, options) + if (endpointOrUndefined) { + return endpointOrUndefined + } + } else { + throw new EndpointError(`Unknown endpoint rule: ${rule}`) + } + } + throw new EndpointError(`Rules evaluation failed`) + }, 'evaluateRules') + // src/resolveEndpoint.ts + var resolveEndpoint = /* @__PURE__ */ __name((ruleSetObject, options) => { + const { endpointParams, logger } = options + const { parameters, rules } = ruleSetObject + options.logger?.debug?.( + `${debugId} Initial EndpointParams: ${toDebugString(endpointParams)}` + ) + const paramsWithDefault = Object.entries(parameters) + .filter(([, v]) => v.default != null) + .map(([k, v]) => [k, v.default]) + if (paramsWithDefault.length > 0) { + for (const [paramKey, paramDefaultValue] of paramsWithDefault) { + endpointParams[paramKey] = + endpointParams[paramKey] ?? paramDefaultValue + } + } + const requiredParams = Object.entries(parameters) + .filter(([, v]) => v.required) + .map(([k]) => k) + for (const requiredParam of requiredParams) { + if (endpointParams[requiredParam] == null) { + throw new EndpointError( + `Missing required parameter: '${requiredParam}'` + ) + } + } + const endpoint = evaluateRules(rules, { + endpointParams, + logger, + referenceRecord: {} + }) + options.logger?.debug?.( + `${debugId} Resolved endpoint: ${toDebugString(endpoint)}` + ) + return endpoint + }, 'resolveEndpoint') + // Annotate the CommonJS export names for ESM import in node: -var import_smithy_client = __nccwpck_require__(21433); + 0 && 0 + /***/ + }, -var import_isStreamingPayload = __nccwpck_require__(36241); -var retryMiddleware = /* @__PURE__ */ __name((options) => (next, context) => async (args) => { - let retryStrategy = await options.retryStrategy(); - const maxAttempts = await options.maxAttempts(); - if (isRetryStrategyV2(retryStrategy)) { - retryStrategy = retryStrategy; - let retryToken = await retryStrategy.acquireInitialRetryToken(context["partition_id"]); - let lastError = new Error(); - let attempts = 0; - let totalRetryDelay = 0; - const { request } = args; - const isRequest = import_protocol_http.HttpRequest.isInstance(request); - if (isRequest) { - request.headers[import_util_retry.INVOCATION_ID_HEADER] = (0, import_uuid.v4)(); - } - while (true) { - try { - if (isRequest) { - request.headers[import_util_retry.REQUEST_HEADER] = `attempt=${attempts + 1}; max=${maxAttempts}`; - } - const { response, output } = await next(args); - retryStrategy.recordSuccess(retryToken); - output.$metadata.attempts = attempts + 1; - output.$metadata.totalRetryDelay = totalRetryDelay; - return { response, output }; - } catch (e) { - const retryErrorInfo = getRetryErrorInfo(e); - lastError = asSdkError(e); - if (isRequest && (0, import_isStreamingPayload.isStreamingPayload)(request)) { - (context.logger instanceof import_smithy_client.NoOpLogger ? console : context.logger)?.warn( - "An error was encountered in a non-retryable streaming request." - ); - throw lastError; + /***/ 88310: /***/ module => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) } - try { - retryToken = await retryStrategy.refreshRetryTokenForRetry(retryToken, retryErrorInfo); - } catch (refreshError) { - if (!lastError.$metadata) { - lastError.$metadata = {}; + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + fromHex: () => fromHex, + toHex: () => toHex + }) + module.exports = __toCommonJS(src_exports) + var SHORT_TO_HEX = {} + var HEX_TO_SHORT = {} + for (let i = 0; i < 256; i++) { + let encodedByte = i.toString(16).toLowerCase() + if (encodedByte.length === 1) { + encodedByte = `0${encodedByte}` + } + SHORT_TO_HEX[i] = encodedByte + HEX_TO_SHORT[encodedByte] = i + } + function fromHex(encoded) { + if (encoded.length % 2 !== 0) { + throw new Error('Hex encoded strings must have an even number length') + } + const out = new Uint8Array(encoded.length / 2) + for (let i = 0; i < encoded.length; i += 2) { + const encodedByte = encoded.slice(i, i + 2).toLowerCase() + if (encodedByte in HEX_TO_SHORT) { + out[i / 2] = HEX_TO_SHORT[encodedByte] + } else { + throw new Error( + `Cannot decode unrecognized sequence ${encodedByte} as hexadecimal` + ) } - lastError.$metadata.attempts = attempts + 1; - lastError.$metadata.totalRetryDelay = totalRetryDelay; - throw lastError; } - attempts = retryToken.getRetryCount(); - const delay = retryToken.getRetryDelay(); - totalRetryDelay += delay; - await new Promise((resolve) => setTimeout(resolve, delay)); + return out } - } - } else { - retryStrategy = retryStrategy; - if (retryStrategy?.mode) - context.userAgent = [...context.userAgent || [], ["cfg/retry-mode", retryStrategy.mode]]; - return retryStrategy.retry(next, args); - } -}, "retryMiddleware"); -var isRetryStrategyV2 = /* @__PURE__ */ __name((retryStrategy) => typeof retryStrategy.acquireInitialRetryToken !== "undefined" && typeof retryStrategy.refreshRetryTokenForRetry !== "undefined" && typeof retryStrategy.recordSuccess !== "undefined", "isRetryStrategyV2"); -var getRetryErrorInfo = /* @__PURE__ */ __name((error) => { - const errorInfo = { - error, - errorType: getRetryErrorType(error) - }; - const retryAfterHint = getRetryAfterHint(error.$response); - if (retryAfterHint) { - errorInfo.retryAfterHint = retryAfterHint; - } - return errorInfo; -}, "getRetryErrorInfo"); -var getRetryErrorType = /* @__PURE__ */ __name((error) => { - if ((0, import_service_error_classification.isThrottlingError)(error)) - return "THROTTLING"; - if ((0, import_service_error_classification.isTransientError)(error)) - return "TRANSIENT"; - if ((0, import_service_error_classification.isServerError)(error)) - return "SERVER_ERROR"; - return "CLIENT_ERROR"; -}, "getRetryErrorType"); -var retryMiddlewareOptions = { - name: "retryMiddleware", - tags: ["RETRY"], - step: "finalizeRequest", - priority: "high", - override: true -}; -var getRetryPlugin = /* @__PURE__ */ __name((options) => ({ - applyToStack: (clientStack) => { - clientStack.add(retryMiddleware(options), retryMiddlewareOptions); - } -}), "getRetryPlugin"); -var getRetryAfterHint = /* @__PURE__ */ __name((response) => { - if (!import_protocol_http.HttpResponse.isInstance(response)) - return; - const retryAfterHeaderName = Object.keys(response.headers).find((key) => key.toLowerCase() === "retry-after"); - if (!retryAfterHeaderName) - return; - const retryAfter = response.headers[retryAfterHeaderName]; - const retryAfterSeconds = Number(retryAfter); - if (!Number.isNaN(retryAfterSeconds)) - return new Date(retryAfterSeconds * 1e3); - const retryAfterDate = new Date(retryAfter); - return retryAfterDate; -}, "getRetryAfterHint"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 36241: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.isStreamingPayload = void 0; -const stream_1 = __nccwpck_require__(12781); -const isStreamingPayload = (request) => (request === null || request === void 0 ? void 0 : request.body) instanceof stream_1.Readable || - (typeof ReadableStream !== "undefined" && (request === null || request === void 0 ? void 0 : request.body) instanceof ReadableStream); -exports.isStreamingPayload = isStreamingPayload; - - -/***/ }), - -/***/ 94572: -/***/ ((module) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - deserializerMiddleware: () => deserializerMiddleware, - deserializerMiddlewareOption: () => deserializerMiddlewareOption, - getSerdePlugin: () => getSerdePlugin, - serializerMiddleware: () => serializerMiddleware, - serializerMiddlewareOption: () => serializerMiddlewareOption -}); -module.exports = __toCommonJS(src_exports); - -// src/deserializerMiddleware.ts -var deserializerMiddleware = /* @__PURE__ */ __name((options, deserializer) => (next, context) => async (args) => { - const { response } = await next(args); - try { - const parsed = await deserializer(response, options); - return { - response, - output: parsed - }; - } catch (error) { - Object.defineProperty(error, "$response", { - value: response - }); - if (!("$metadata" in error)) { - const hint = `Deserialization error: to see the raw response, inspect the hidden field {error}.$response on this object.`; - try { - error.message += "\n " + hint; - } catch (e) { - if (!context.logger || context.logger?.constructor?.name === "NoOpLogger") { - console.warn(hint); - } else { - context.logger?.warn?.(hint); + __name(fromHex, 'fromHex') + function toHex(bytes) { + let out = '' + for (let i = 0; i < bytes.byteLength; i++) { + out += SHORT_TO_HEX[bytes[i]] } + return out } - if (typeof error.$responseBodyText !== "undefined") { - if (error.$response) { - error.$response.body = error.$responseBodyText; + __name(toHex, 'toHex') + // Annotate the CommonJS export names for ESM import in node: + + 0 && 0 + + /***/ + }, + + /***/ 14298: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) } + return to } - } - throw error; - } -}, "deserializerMiddleware"); + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -// src/serializerMiddleware.ts -var serializerMiddleware = /* @__PURE__ */ __name((options, serializer) => (next, context) => async (args) => { - const endpoint = context.endpointV2?.url && options.urlParser ? async () => options.urlParser(context.endpointV2.url) : options.endpoint; - if (!endpoint) { - throw new Error("No valid endpoint provider available."); - } - const request = await serializer(args.input, { ...options, endpoint }); - return next({ - ...args, - request - }); -}, "serializerMiddleware"); - -// src/serdePlugin.ts -var deserializerMiddlewareOption = { - name: "deserializerMiddleware", - step: "deserialize", - tags: ["DESERIALIZER"], - override: true -}; -var serializerMiddlewareOption = { - name: "serializerMiddleware", - step: "serialize", - tags: ["SERIALIZER"], - override: true -}; -function getSerdePlugin(config, serializer, deserializer) { - return { - applyToStack: (commandStack) => { - commandStack.add(deserializerMiddleware(config, deserializer), deserializerMiddlewareOption); - commandStack.add(serializerMiddleware(config, serializer), serializerMiddlewareOption); - } - }; -} -__name(getSerdePlugin, "getSerdePlugin"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 428: -/***/ ((module) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - constructStack: () => constructStack -}); -module.exports = __toCommonJS(src_exports); - -// src/MiddlewareStack.ts -var getAllAliases = /* @__PURE__ */ __name((name, aliases) => { - const _aliases = []; - if (name) { - _aliases.push(name); - } - if (aliases) { - for (const alias of aliases) { - _aliases.push(alias); - } - } - return _aliases; -}, "getAllAliases"); -var getMiddlewareNameWithAliases = /* @__PURE__ */ __name((name, aliases) => { - return `${name || "anonymous"}${aliases && aliases.length > 0 ? ` (a.k.a. ${aliases.join(",")})` : ""}`; -}, "getMiddlewareNameWithAliases"); -var constructStack = /* @__PURE__ */ __name(() => { - let absoluteEntries = []; - let relativeEntries = []; - let identifyOnResolve = false; - const entriesNameSet = /* @__PURE__ */ new Set(); - const sort = /* @__PURE__ */ __name((entries) => entries.sort( - (a, b) => stepWeights[b.step] - stepWeights[a.step] || priorityWeights[b.priority || "normal"] - priorityWeights[a.priority || "normal"] - ), "sort"); - const removeByName = /* @__PURE__ */ __name((toRemove) => { - let isRemoved = false; - const filterCb = /* @__PURE__ */ __name((entry) => { - const aliases = getAllAliases(entry.name, entry.aliases); - if (aliases.includes(toRemove)) { - isRemoved = true; - for (const alias of aliases) { - entriesNameSet.delete(alias); - } - return false; - } - return true; - }, "filterCb"); - absoluteEntries = absoluteEntries.filter(filterCb); - relativeEntries = relativeEntries.filter(filterCb); - return isRemoved; - }, "removeByName"); - const removeByReference = /* @__PURE__ */ __name((toRemove) => { - let isRemoved = false; - const filterCb = /* @__PURE__ */ __name((entry) => { - if (entry.middleware === toRemove) { - isRemoved = true; - for (const alias of getAllAliases(entry.name, entry.aliases)) { - entriesNameSet.delete(alias); - } - return false; - } - return true; - }, "filterCb"); - absoluteEntries = absoluteEntries.filter(filterCb); - relativeEntries = relativeEntries.filter(filterCb); - return isRemoved; - }, "removeByReference"); - const cloneTo = /* @__PURE__ */ __name((toStack) => { - absoluteEntries.forEach((entry) => { - toStack.add(entry.middleware, { ...entry }); - }); - relativeEntries.forEach((entry) => { - toStack.addRelativeTo(entry.middleware, { ...entry }); - }); - toStack.identifyOnResolve?.(stack.identifyOnResolve()); - return toStack; - }, "cloneTo"); - const expandRelativeMiddlewareList = /* @__PURE__ */ __name((from) => { - const expandedMiddlewareList = []; - from.before.forEach((entry) => { - if (entry.before.length === 0 && entry.after.length === 0) { - expandedMiddlewareList.push(entry); - } else { - expandedMiddlewareList.push(...expandRelativeMiddlewareList(entry)); - } - }); - expandedMiddlewareList.push(from); - from.after.reverse().forEach((entry) => { - if (entry.before.length === 0 && entry.after.length === 0) { - expandedMiddlewareList.push(entry); - } else { - expandedMiddlewareList.push(...expandRelativeMiddlewareList(entry)); - } - }); - return expandedMiddlewareList; - }, "expandRelativeMiddlewareList"); - const getMiddlewareList = /* @__PURE__ */ __name((debug = false) => { - const normalizedAbsoluteEntries = []; - const normalizedRelativeEntries = []; - const normalizedEntriesNameMap = {}; - absoluteEntries.forEach((entry) => { - const normalizedEntry = { - ...entry, - before: [], - after: [] - }; - for (const alias of getAllAliases(normalizedEntry.name, normalizedEntry.aliases)) { - normalizedEntriesNameMap[alias] = normalizedEntry; - } - normalizedAbsoluteEntries.push(normalizedEntry); - }); - relativeEntries.forEach((entry) => { - const normalizedEntry = { - ...entry, - before: [], - after: [] - }; - for (const alias of getAllAliases(normalizedEntry.name, normalizedEntry.aliases)) { - normalizedEntriesNameMap[alias] = normalizedEntry; - } - normalizedRelativeEntries.push(normalizedEntry); - }); - normalizedRelativeEntries.forEach((entry) => { - if (entry.toMiddleware) { - const toMiddleware = normalizedEntriesNameMap[entry.toMiddleware]; - if (toMiddleware === void 0) { - if (debug) { - return; + // src/index.ts + var src_exports = {} + __export(src_exports, { + getSmithyContext: () => getSmithyContext, + normalizeProvider: () => normalizeProvider + }) + module.exports = __toCommonJS(src_exports) + + // src/getSmithyContext.ts + var import_types = __nccwpck_require__(63592) + var getSmithyContext = /* @__PURE__ */ __name( + context => + context[import_types.SMITHY_CONTEXT_KEY] || + (context[import_types.SMITHY_CONTEXT_KEY] = {}), + 'getSmithyContext' + ) + + // src/normalizeProvider.ts + var normalizeProvider = /* @__PURE__ */ __name(input => { + if (typeof input === 'function') return input + const promisified = Promise.resolve(input) + return () => promisified + }, 'normalizeProvider') + // Annotate the CommonJS export names for ESM import in node: + + 0 && 0 + + /***/ + }, + + /***/ 35808: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + AdaptiveRetryStrategy: () => AdaptiveRetryStrategy, + ConfiguredRetryStrategy: () => ConfiguredRetryStrategy, + DEFAULT_MAX_ATTEMPTS: () => DEFAULT_MAX_ATTEMPTS, + DEFAULT_RETRY_DELAY_BASE: () => DEFAULT_RETRY_DELAY_BASE, + DEFAULT_RETRY_MODE: () => DEFAULT_RETRY_MODE, + DefaultRateLimiter: () => DefaultRateLimiter, + INITIAL_RETRY_TOKENS: () => INITIAL_RETRY_TOKENS, + INVOCATION_ID_HEADER: () => INVOCATION_ID_HEADER, + MAXIMUM_RETRY_DELAY: () => MAXIMUM_RETRY_DELAY, + NO_RETRY_INCREMENT: () => NO_RETRY_INCREMENT, + REQUEST_HEADER: () => REQUEST_HEADER, + RETRY_COST: () => RETRY_COST, + RETRY_MODES: () => RETRY_MODES, + StandardRetryStrategy: () => StandardRetryStrategy, + THROTTLING_RETRY_DELAY_BASE: () => THROTTLING_RETRY_DELAY_BASE, + TIMEOUT_RETRY_COST: () => TIMEOUT_RETRY_COST + }) + module.exports = __toCommonJS(src_exports) + + // src/config.ts + var RETRY_MODES = /* @__PURE__ */ (RETRY_MODES2 => { + RETRY_MODES2['STANDARD'] = 'standard' + RETRY_MODES2['ADAPTIVE'] = 'adaptive' + return RETRY_MODES2 + })(RETRY_MODES || {}) + var DEFAULT_MAX_ATTEMPTS = 3 + var DEFAULT_RETRY_MODE = 'standard' /* STANDARD */ + + // src/DefaultRateLimiter.ts + var import_service_error_classification = __nccwpck_require__(4863) + var DefaultRateLimiter = class _DefaultRateLimiter { + constructor(options) { + // Pre-set state variables + this.currentCapacity = 0 + this.enabled = false + this.lastMaxRate = 0 + this.measuredTxRate = 0 + this.requestCount = 0 + this.lastTimestamp = 0 + this.timeWindow = 0 + this.beta = options?.beta ?? 0.7 + this.minCapacity = options?.minCapacity ?? 1 + this.minFillRate = options?.minFillRate ?? 0.5 + this.scaleConstant = options?.scaleConstant ?? 0.4 + this.smooth = options?.smooth ?? 0.8 + const currentTimeInSeconds = this.getCurrentTimeInSeconds() + this.lastThrottleTime = currentTimeInSeconds + this.lastTxRateBucket = Math.floor(this.getCurrentTimeInSeconds()) + this.fillRate = this.minFillRate + this.maxCapacity = this.minCapacity + } + static { + __name(this, 'DefaultRateLimiter') + } + static { + /** + * Only used in testing. + */ + this.setTimeoutFn = setTimeout + } + getCurrentTimeInSeconds() { + return Date.now() / 1e3 + } + async getSendToken() { + return this.acquireTokenBucket(1) + } + async acquireTokenBucket(amount) { + if (!this.enabled) { + return } - throw new Error( - `${entry.toMiddleware} is not found when adding ${getMiddlewareNameWithAliases(entry.name, entry.aliases)} middleware ${entry.relation} ${entry.toMiddleware}` - ); - } - if (entry.relation === "after") { - toMiddleware.after.push(entry); - } - if (entry.relation === "before") { - toMiddleware.before.push(entry); - } - } - }); - const mainChain = sort(normalizedAbsoluteEntries).map(expandRelativeMiddlewareList).reduce( - (wholeList, expandedMiddlewareList) => { - wholeList.push(...expandedMiddlewareList); - return wholeList; - }, - [] - ); - return mainChain; - }, "getMiddlewareList"); - const stack = { - add: (middleware, options = {}) => { - const { name, override, aliases: _aliases } = options; - const entry = { - step: "initialize", - priority: "normal", - middleware, - ...options - }; - const aliases = getAllAliases(name, _aliases); - if (aliases.length > 0) { - if (aliases.some((alias) => entriesNameSet.has(alias))) { - if (!override) - throw new Error(`Duplicate middleware name '${getMiddlewareNameWithAliases(name, _aliases)}'`); - for (const alias of aliases) { - const toOverrideIndex = absoluteEntries.findIndex( - (entry2) => entry2.name === alias || entry2.aliases?.some((a) => a === alias) - ); - if (toOverrideIndex === -1) { - continue; - } - const toOverride = absoluteEntries[toOverrideIndex]; - if (toOverride.step !== entry.step || entry.priority !== toOverride.priority) { - throw new Error( - `"${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.` - ); - } - absoluteEntries.splice(toOverrideIndex, 1); + this.refillTokenBucket() + if (amount > this.currentCapacity) { + const delay = + ((amount - this.currentCapacity) / this.fillRate) * 1e3 + await new Promise(resolve => + _DefaultRateLimiter.setTimeoutFn(resolve, delay) + ) } + this.currentCapacity = this.currentCapacity - amount } - for (const alias of aliases) { - entriesNameSet.add(alias); + refillTokenBucket() { + const timestamp = this.getCurrentTimeInSeconds() + if (!this.lastTimestamp) { + this.lastTimestamp = timestamp + return + } + const fillAmount = (timestamp - this.lastTimestamp) * this.fillRate + this.currentCapacity = Math.min( + this.maxCapacity, + this.currentCapacity + fillAmount + ) + this.lastTimestamp = timestamp } - } - absoluteEntries.push(entry); - }, - addRelativeTo: (middleware, options) => { - const { name, override, aliases: _aliases } = options; - const entry = { - middleware, - ...options - }; - const aliases = getAllAliases(name, _aliases); - if (aliases.length > 0) { - if (aliases.some((alias) => entriesNameSet.has(alias))) { - if (!override) - throw new Error(`Duplicate middleware name '${getMiddlewareNameWithAliases(name, _aliases)}'`); - for (const alias of aliases) { - const toOverrideIndex = relativeEntries.findIndex( - (entry2) => entry2.name === alias || entry2.aliases?.some((a) => a === alias) - ); - if (toOverrideIndex === -1) { - continue; - } - const toOverride = relativeEntries[toOverrideIndex]; - if (toOverride.toMiddleware !== entry.toMiddleware || toOverride.relation !== entry.relation) { - throw new Error( - `"${getMiddlewareNameWithAliases(toOverride.name, toOverride.aliases)}" middleware ${toOverride.relation} "${toOverride.toMiddleware}" middleware cannot be overridden by "${getMiddlewareNameWithAliases(name, _aliases)}" middleware ${entry.relation} "${entry.toMiddleware}" middleware.` - ); - } - relativeEntries.splice(toOverrideIndex, 1); + updateClientSendingRate(response) { + let calculatedRate + this.updateMeasuredRate() + if ( + (0, import_service_error_classification.isThrottlingError)(response) + ) { + const rateToUse = !this.enabled + ? this.measuredTxRate + : Math.min(this.measuredTxRate, this.fillRate) + this.lastMaxRate = rateToUse + this.calculateTimeWindow() + this.lastThrottleTime = this.getCurrentTimeInSeconds() + calculatedRate = this.cubicThrottle(rateToUse) + this.enableTokenBucket() + } else { + this.calculateTimeWindow() + calculatedRate = this.cubicSuccess(this.getCurrentTimeInSeconds()) } + const newRate = Math.min(calculatedRate, 2 * this.measuredTxRate) + this.updateTokenBucketRate(newRate) + } + calculateTimeWindow() { + this.timeWindow = this.getPrecise( + Math.pow( + (this.lastMaxRate * (1 - this.beta)) / this.scaleConstant, + 1 / 3 + ) + ) } - for (const alias of aliases) { - entriesNameSet.add(alias); + cubicThrottle(rateToUse) { + return this.getPrecise(rateToUse * this.beta) } - } - relativeEntries.push(entry); - }, - clone: () => cloneTo(constructStack()), - use: (plugin) => { - plugin.applyToStack(stack); - }, - remove: (toRemove) => { - if (typeof toRemove === "string") - return removeByName(toRemove); - else - return removeByReference(toRemove); - }, - removeByTag: (toRemove) => { - let isRemoved = false; - const filterCb = /* @__PURE__ */ __name((entry) => { - const { tags, name, aliases: _aliases } = entry; - if (tags && tags.includes(toRemove)) { - const aliases = getAllAliases(name, _aliases); - for (const alias of aliases) { - entriesNameSet.delete(alias); - } - isRemoved = true; - return false; - } - return true; - }, "filterCb"); - absoluteEntries = absoluteEntries.filter(filterCb); - relativeEntries = relativeEntries.filter(filterCb); - return isRemoved; - }, - concat: (from) => { - const cloned = cloneTo(constructStack()); - cloned.use(from); - cloned.identifyOnResolve( - identifyOnResolve || cloned.identifyOnResolve() || (from.identifyOnResolve?.() ?? false) - ); - return cloned; - }, - applyToStack: cloneTo, - identify: () => { - return getMiddlewareList(true).map((mw) => { - const step = mw.step ?? mw.relation + " " + mw.toMiddleware; - return getMiddlewareNameWithAliases(mw.name, mw.aliases) + " - " + step; - }); - }, - identifyOnResolve(toggle) { - if (typeof toggle === "boolean") - identifyOnResolve = toggle; - return identifyOnResolve; - }, - resolve: (handler, context) => { - for (const middleware of getMiddlewareList().map((entry) => entry.middleware).reverse()) { - handler = middleware(handler, context); - } - if (identifyOnResolve) { - console.log(stack.identify()); - } - return handler; - } - }; - return stack; -}, "constructStack"); -var stepWeights = { - initialize: 5, - serialize: 4, - build: 3, - finalizeRequest: 2, - deserialize: 1 -}; -var priorityWeights = { - high: 3, - normal: 2, - low: 1 -}; -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 85650: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - loadConfig: () => loadConfig -}); -module.exports = __toCommonJS(src_exports); - -// src/configLoader.ts - - -// src/fromEnv.ts -var import_property_provider = __nccwpck_require__(51005); - -// src/getSelectorName.ts -function getSelectorName(functionString) { - try { - const constants = new Set(Array.from(functionString.match(/([A-Z_]){3,}/g) ?? [])); - constants.delete("CONFIG"); - constants.delete("CONFIG_PREFIX_SEPARATOR"); - constants.delete("ENV"); - return [...constants].join(", "); - } catch (e) { - return functionString; - } -} -__name(getSelectorName, "getSelectorName"); - -// src/fromEnv.ts -var fromEnv = /* @__PURE__ */ __name((envVarSelector, logger) => async () => { - try { - const config = envVarSelector(process.env); - if (config === void 0) { - throw new Error(); - } - return config; - } catch (e) { - throw new import_property_provider.CredentialsProviderError( - e.message || `Not found in ENV: ${getSelectorName(envVarSelector.toString())}`, - { logger } - ); - } -}, "fromEnv"); - -// src/fromSharedConfigFiles.ts - -var import_shared_ini_file_loader = __nccwpck_require__(28586); -var fromSharedConfigFiles = /* @__PURE__ */ __name((configSelector, { preferredFile = "config", ...init } = {}) => async () => { - const profile = (0, import_shared_ini_file_loader.getProfileName)(init); - const { configFile, credentialsFile } = await (0, import_shared_ini_file_loader.loadSharedConfigFiles)(init); - const profileFromCredentials = credentialsFile[profile] || {}; - const profileFromConfig = configFile[profile] || {}; - const mergedProfile = preferredFile === "config" ? { ...profileFromCredentials, ...profileFromConfig } : { ...profileFromConfig, ...profileFromCredentials }; - try { - const cfgFile = preferredFile === "config" ? configFile : credentialsFile; - const configValue = configSelector(mergedProfile, cfgFile); - if (configValue === void 0) { - throw new Error(); - } - return configValue; - } catch (e) { - throw new import_property_provider.CredentialsProviderError( - e.message || `Not found in config files w/ profile [${profile}]: ${getSelectorName(configSelector.toString())}`, - { logger: init.logger } - ); - } -}, "fromSharedConfigFiles"); - -// src/fromStatic.ts - -var isFunction = /* @__PURE__ */ __name((func) => typeof func === "function", "isFunction"); -var fromStatic = /* @__PURE__ */ __name((defaultValue) => isFunction(defaultValue) ? async () => await defaultValue() : (0, import_property_provider.fromStatic)(defaultValue), "fromStatic"); - -// src/configLoader.ts -var loadConfig = /* @__PURE__ */ __name(({ environmentVariableSelector, configFileSelector, default: defaultValue }, configuration = {}) => (0, import_property_provider.memoize)( - (0, import_property_provider.chain)( - fromEnv(environmentVariableSelector), - fromSharedConfigFiles(configFileSelector, configuration), - fromStatic(defaultValue) - ) -), "loadConfig"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 96798: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __create = Object.create; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __getProtoOf = Object.getPrototypeOf; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. - isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, - mod -)); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - DEFAULT_REQUEST_TIMEOUT: () => DEFAULT_REQUEST_TIMEOUT, - NodeHttp2Handler: () => NodeHttp2Handler, - NodeHttpHandler: () => NodeHttpHandler, - streamCollector: () => streamCollector -}); -module.exports = __toCommonJS(src_exports); - -// src/node-http-handler.ts -var import_protocol_http = __nccwpck_require__(18241); -var import_querystring_builder = __nccwpck_require__(39025); -var import_http = __nccwpck_require__(13685); -var import_https = __nccwpck_require__(95687); - -// src/constants.ts -var NODEJS_TIMEOUT_ERROR_CODES = ["ECONNRESET", "EPIPE", "ETIMEDOUT"]; - -// src/get-transformed-headers.ts -var getTransformedHeaders = /* @__PURE__ */ __name((headers) => { - const transformedHeaders = {}; - for (const name of Object.keys(headers)) { - const headerValues = headers[name]; - transformedHeaders[name] = Array.isArray(headerValues) ? headerValues.join(",") : headerValues; - } - return transformedHeaders; -}, "getTransformedHeaders"); - -// src/timing.ts -var timing = { - setTimeout: (cb, ms) => setTimeout(cb, ms), - clearTimeout: (timeoutId) => clearTimeout(timeoutId) -}; - -// src/set-connection-timeout.ts -var DEFER_EVENT_LISTENER_TIME = 1e3; -var setConnectionTimeout = /* @__PURE__ */ __name((request, reject, timeoutInMs = 0) => { - if (!timeoutInMs) { - return -1; - } - const registerTimeout = /* @__PURE__ */ __name((offset) => { - const timeoutId = timing.setTimeout(() => { - request.destroy(); - reject( - Object.assign(new Error(`Socket timed out without establishing a connection within ${timeoutInMs} ms`), { - name: "TimeoutError" - }) - ); - }, timeoutInMs - offset); - const doWithSocket = /* @__PURE__ */ __name((socket) => { - if (socket?.connecting) { - socket.on("connect", () => { - timing.clearTimeout(timeoutId); - }); - } else { - timing.clearTimeout(timeoutId); - } - }, "doWithSocket"); - if (request.socket) { - doWithSocket(request.socket); - } else { - request.on("socket", doWithSocket); - } - }, "registerTimeout"); - if (timeoutInMs < 2e3) { - registerTimeout(0); - return 0; - } - return timing.setTimeout(registerTimeout.bind(null, DEFER_EVENT_LISTENER_TIME), DEFER_EVENT_LISTENER_TIME); -}, "setConnectionTimeout"); - -// src/set-socket-keep-alive.ts -var DEFER_EVENT_LISTENER_TIME2 = 3e3; -var setSocketKeepAlive = /* @__PURE__ */ __name((request, { keepAlive, keepAliveMsecs }, deferTimeMs = DEFER_EVENT_LISTENER_TIME2) => { - if (keepAlive !== true) { - return -1; - } - const registerListener = /* @__PURE__ */ __name(() => { - if (request.socket) { - request.socket.setKeepAlive(keepAlive, keepAliveMsecs || 0); - } else { - request.on("socket", (socket) => { - socket.setKeepAlive(keepAlive, keepAliveMsecs || 0); - }); - } - }, "registerListener"); - if (deferTimeMs === 0) { - registerListener(); - return 0; - } - return timing.setTimeout(registerListener, deferTimeMs); -}, "setSocketKeepAlive"); - -// src/set-socket-timeout.ts -var DEFER_EVENT_LISTENER_TIME3 = 3e3; -var setSocketTimeout = /* @__PURE__ */ __name((request, reject, timeoutInMs = DEFAULT_REQUEST_TIMEOUT) => { - const registerTimeout = /* @__PURE__ */ __name((offset) => { - const timeout = timeoutInMs - offset; - const onTimeout = /* @__PURE__ */ __name(() => { - request.destroy(); - reject(Object.assign(new Error(`Connection timed out after ${timeoutInMs} ms`), { name: "TimeoutError" })); - }, "onTimeout"); - if (request.socket) { - request.socket.setTimeout(timeout, onTimeout); - request.on("close", () => request.socket?.removeListener("timeout", onTimeout)); - } else { - request.setTimeout(timeout, onTimeout); - } - }, "registerTimeout"); - if (0 < timeoutInMs && timeoutInMs < 6e3) { - registerTimeout(0); - return 0; - } - return timing.setTimeout( - registerTimeout.bind(null, timeoutInMs === 0 ? 0 : DEFER_EVENT_LISTENER_TIME3), - DEFER_EVENT_LISTENER_TIME3 - ); -}, "setSocketTimeout"); - -// src/write-request-body.ts -var import_stream = __nccwpck_require__(12781); -var MIN_WAIT_TIME = 6e3; -async function writeRequestBody(httpRequest, request, maxContinueTimeoutMs = MIN_WAIT_TIME) { - const headers = request.headers ?? {}; - const expect = headers["Expect"] || headers["expect"]; - let timeoutId = -1; - let sendBody = true; - if (expect === "100-continue") { - sendBody = await Promise.race([ - new Promise((resolve) => { - timeoutId = Number(timing.setTimeout(() => resolve(true), Math.max(MIN_WAIT_TIME, maxContinueTimeoutMs))); - }), - new Promise((resolve) => { - httpRequest.on("continue", () => { - timing.clearTimeout(timeoutId); - resolve(true); - }); - httpRequest.on("response", () => { - timing.clearTimeout(timeoutId); - resolve(false); - }); - httpRequest.on("error", () => { - timing.clearTimeout(timeoutId); - resolve(false); - }); - }) - ]); - } - if (sendBody) { - writeBody(httpRequest, request.body); - } -} -__name(writeRequestBody, "writeRequestBody"); -function writeBody(httpRequest, body) { - if (body instanceof import_stream.Readable) { - body.pipe(httpRequest); - return; - } - if (body) { - if (Buffer.isBuffer(body) || typeof body === "string") { - httpRequest.end(body); - return; - } - const uint8 = body; - if (typeof uint8 === "object" && uint8.buffer && typeof uint8.byteOffset === "number" && typeof uint8.byteLength === "number") { - httpRequest.end(Buffer.from(uint8.buffer, uint8.byteOffset, uint8.byteLength)); - return; - } - httpRequest.end(Buffer.from(body)); - return; - } - httpRequest.end(); -} -__name(writeBody, "writeBody"); - -// src/node-http-handler.ts -var DEFAULT_REQUEST_TIMEOUT = 0; -var NodeHttpHandler = class _NodeHttpHandler { - constructor(options) { - this.socketWarningTimestamp = 0; - // Node http handler is hard-coded to http/1.1: https://github.com/nodejs/node/blob/ff5664b83b89c55e4ab5d5f60068fb457f1f5872/lib/_http_server.js#L286 - this.metadata = { handlerProtocol: "http/1.1" }; - this.configProvider = new Promise((resolve, reject) => { - if (typeof options === "function") { - options().then((_options) => { - resolve(this.resolveDefaultConfig(_options)); - }).catch(reject); - } else { - resolve(this.resolveDefaultConfig(options)); - } - }); - } - static { - __name(this, "NodeHttpHandler"); - } - /** - * @returns the input if it is an HttpHandler of any class, - * or instantiates a new instance of this handler. - */ - static create(instanceOrOptions) { - if (typeof instanceOrOptions?.handle === "function") { - return instanceOrOptions; - } - return new _NodeHttpHandler(instanceOrOptions); - } - /** - * @internal - * - * @param agent - http(s) agent in use by the NodeHttpHandler instance. - * @param socketWarningTimestamp - last socket usage check timestamp. - * @param logger - channel for the warning. - * @returns timestamp of last emitted warning. - */ - static checkSocketUsage(agent, socketWarningTimestamp, logger = console) { - const { sockets, requests, maxSockets } = agent; - if (typeof maxSockets !== "number" || maxSockets === Infinity) { - return socketWarningTimestamp; - } - const interval = 15e3; - if (Date.now() - interval < socketWarningTimestamp) { - return socketWarningTimestamp; - } - if (sockets && requests) { - for (const origin in sockets) { - const socketsInUse = sockets[origin]?.length ?? 0; - const requestsEnqueued = requests[origin]?.length ?? 0; - if (socketsInUse >= maxSockets && requestsEnqueued >= 2 * maxSockets) { - logger?.warn?.( - `@smithy/node-http-handler:WARN - socket usage at capacity=${socketsInUse} and ${requestsEnqueued} additional requests are enqueued. -See https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html -or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.` - ); - return Date.now(); + cubicSuccess(timestamp) { + return this.getPrecise( + this.scaleConstant * + Math.pow(timestamp - this.lastThrottleTime - this.timeWindow, 3) + + this.lastMaxRate + ) } - } - } - return socketWarningTimestamp; - } - resolveDefaultConfig(options) { - const { requestTimeout, connectionTimeout, socketTimeout, socketAcquisitionWarningTimeout, httpAgent, httpsAgent } = options || {}; - const keepAlive = true; - const maxSockets = 50; - return { - connectionTimeout, - requestTimeout: requestTimeout ?? socketTimeout, - socketAcquisitionWarningTimeout, - httpAgent: (() => { - if (httpAgent instanceof import_http.Agent || typeof httpAgent?.destroy === "function") { - return httpAgent; - } - return new import_http.Agent({ keepAlive, maxSockets, ...httpAgent }); - })(), - httpsAgent: (() => { - if (httpsAgent instanceof import_https.Agent || typeof httpsAgent?.destroy === "function") { - return httpsAgent; - } - return new import_https.Agent({ keepAlive, maxSockets, ...httpsAgent }); - })(), - logger: console - }; - } - destroy() { - this.config?.httpAgent?.destroy(); - this.config?.httpsAgent?.destroy(); - } - async handle(request, { abortSignal } = {}) { - if (!this.config) { - this.config = await this.configProvider; - } - return new Promise((_resolve, _reject) => { - let writeRequestBodyPromise = void 0; - const timeouts = []; - const resolve = /* @__PURE__ */ __name(async (arg) => { - await writeRequestBodyPromise; - timeouts.forEach(timing.clearTimeout); - _resolve(arg); - }, "resolve"); - const reject = /* @__PURE__ */ __name(async (arg) => { - await writeRequestBodyPromise; - timeouts.forEach(timing.clearTimeout); - _reject(arg); - }, "reject"); - if (!this.config) { - throw new Error("Node HTTP request handler config is not resolved"); - } - if (abortSignal?.aborted) { - const abortError = new Error("Request aborted"); - abortError.name = "AbortError"; - reject(abortError); - return; - } - const isSSL = request.protocol === "https:"; - const agent = isSSL ? this.config.httpsAgent : this.config.httpAgent; - timeouts.push( - timing.setTimeout( - () => { - this.socketWarningTimestamp = _NodeHttpHandler.checkSocketUsage( - agent, - this.socketWarningTimestamp, - this.config.logger - ); - }, - this.config.socketAcquisitionWarningTimeout ?? (this.config.requestTimeout ?? 2e3) + (this.config.connectionTimeout ?? 1e3) - ) - ); - const queryString = (0, import_querystring_builder.buildQueryString)(request.query || {}); - let auth = void 0; - if (request.username != null || request.password != null) { - const username = request.username ?? ""; - const password = request.password ?? ""; - auth = `${username}:${password}`; - } - let path = request.path; - if (queryString) { - path += `?${queryString}`; - } - if (request.fragment) { - path += `#${request.fragment}`; - } - let hostname = request.hostname ?? ""; - if (hostname[0] === "[" && hostname.endsWith("]")) { - hostname = request.hostname.slice(1, -1); - } else { - hostname = request.hostname; - } - const nodeHttpsOptions = { - headers: request.headers, - host: hostname, - method: request.method, - path, - port: request.port, - agent, - auth - }; - const requestFunc = isSSL ? import_https.request : import_http.request; - const req = requestFunc(nodeHttpsOptions, (res) => { - const httpResponse = new import_protocol_http.HttpResponse({ - statusCode: res.statusCode || -1, - reason: res.statusMessage, - headers: getTransformedHeaders(res.headers), - body: res - }); - resolve({ response: httpResponse }); - }); - req.on("error", (err) => { - if (NODEJS_TIMEOUT_ERROR_CODES.includes(err.code)) { - reject(Object.assign(err, { name: "TimeoutError" })); - } else { - reject(err); - } - }); - if (abortSignal) { - const onAbort = /* @__PURE__ */ __name(() => { - req.destroy(); - const abortError = new Error("Request aborted"); - abortError.name = "AbortError"; - reject(abortError); - }, "onAbort"); - if (typeof abortSignal.addEventListener === "function") { - const signal = abortSignal; - signal.addEventListener("abort", onAbort, { once: true }); - req.once("close", () => signal.removeEventListener("abort", onAbort)); - } else { - abortSignal.onabort = onAbort; - } - } - timeouts.push(setConnectionTimeout(req, reject, this.config.connectionTimeout)); - timeouts.push(setSocketTimeout(req, reject, this.config.requestTimeout)); - const httpAgent = nodeHttpsOptions.agent; - if (typeof httpAgent === "object" && "keepAlive" in httpAgent) { - timeouts.push( - setSocketKeepAlive(req, { - // @ts-expect-error keepAlive is not public on httpAgent. - keepAlive: httpAgent.keepAlive, - // @ts-expect-error keepAliveMsecs is not public on httpAgent. - keepAliveMsecs: httpAgent.keepAliveMsecs - }) - ); - } - writeRequestBodyPromise = writeRequestBody(req, request, this.config.requestTimeout).catch((e) => { - timeouts.forEach(timing.clearTimeout); - return _reject(e); - }); - }); - } - updateHttpClientConfig(key, value) { - this.config = void 0; - this.configProvider = this.configProvider.then((config) => { - return { - ...config, - [key]: value - }; - }); - } - httpHandlerConfigs() { - return this.config ?? {}; - } -}; - -// src/node-http2-handler.ts - - -var import_http22 = __nccwpck_require__(85158); + enableTokenBucket() { + this.enabled = true + } + updateTokenBucketRate(newRate) { + this.refillTokenBucket() + this.fillRate = Math.max(newRate, this.minFillRate) + this.maxCapacity = Math.max(newRate, this.minCapacity) + this.currentCapacity = Math.min( + this.currentCapacity, + this.maxCapacity + ) + } + updateMeasuredRate() { + const t = this.getCurrentTimeInSeconds() + const timeBucket = Math.floor(t * 2) / 2 + this.requestCount++ + if (timeBucket > this.lastTxRateBucket) { + const currentRate = + this.requestCount / (timeBucket - this.lastTxRateBucket) + this.measuredTxRate = this.getPrecise( + currentRate * this.smooth + + this.measuredTxRate * (1 - this.smooth) + ) + this.requestCount = 0 + this.lastTxRateBucket = timeBucket + } + } + getPrecise(num) { + return parseFloat(num.toFixed(8)) + } + } + + // src/constants.ts + var DEFAULT_RETRY_DELAY_BASE = 100 + var MAXIMUM_RETRY_DELAY = 20 * 1e3 + var THROTTLING_RETRY_DELAY_BASE = 500 + var INITIAL_RETRY_TOKENS = 500 + var RETRY_COST = 5 + var TIMEOUT_RETRY_COST = 10 + var NO_RETRY_INCREMENT = 1 + var INVOCATION_ID_HEADER = 'amz-sdk-invocation-id' + var REQUEST_HEADER = 'amz-sdk-request' + + // src/defaultRetryBackoffStrategy.ts + var getDefaultRetryBackoffStrategy = /* @__PURE__ */ __name(() => { + let delayBase = DEFAULT_RETRY_DELAY_BASE + const computeNextBackoffDelay = /* @__PURE__ */ __name(attempts => { + return Math.floor( + Math.min( + MAXIMUM_RETRY_DELAY, + Math.random() * 2 ** attempts * delayBase + ) + ) + }, 'computeNextBackoffDelay') + const setDelayBase = /* @__PURE__ */ __name(delay => { + delayBase = delay + }, 'setDelayBase') + return { + computeNextBackoffDelay, + setDelayBase + } + }, 'getDefaultRetryBackoffStrategy') -// src/node-http2-connection-manager.ts -var import_http2 = __toESM(__nccwpck_require__(85158)); + // src/defaultRetryToken.ts + var createDefaultRetryToken = /* @__PURE__ */ __name( + ({ retryDelay, retryCount, retryCost }) => { + const getRetryCount = /* @__PURE__ */ __name( + () => retryCount, + 'getRetryCount' + ) + const getRetryDelay = /* @__PURE__ */ __name( + () => Math.min(MAXIMUM_RETRY_DELAY, retryDelay), + 'getRetryDelay' + ) + const getRetryCost = /* @__PURE__ */ __name( + () => retryCost, + 'getRetryCost' + ) + return { + getRetryCount, + getRetryDelay, + getRetryCost + } + }, + 'createDefaultRetryToken' + ) -// src/node-http2-connection-pool.ts -var NodeHttp2ConnectionPool = class { - constructor(sessions) { - this.sessions = []; - this.sessions = sessions ?? []; - } - static { - __name(this, "NodeHttp2ConnectionPool"); - } - poll() { - if (this.sessions.length > 0) { - return this.sessions.shift(); - } - } - offerLast(session) { - this.sessions.push(session); - } - contains(session) { - return this.sessions.includes(session); - } - remove(session) { - this.sessions = this.sessions.filter((s) => s !== session); - } - [Symbol.iterator]() { - return this.sessions[Symbol.iterator](); - } - destroy(connection) { - for (const session of this.sessions) { - if (session === connection) { - if (!session.destroyed) { - session.destroy(); + // src/StandardRetryStrategy.ts + var StandardRetryStrategy = class { + constructor(maxAttempts) { + this.maxAttempts = maxAttempts + this.mode = 'standard' /* STANDARD */ + this.capacity = INITIAL_RETRY_TOKENS + this.retryBackoffStrategy = getDefaultRetryBackoffStrategy() + this.maxAttemptsProvider = + typeof maxAttempts === 'function' + ? maxAttempts + : async () => maxAttempts + } + static { + __name(this, 'StandardRetryStrategy') + } + // eslint-disable-next-line @typescript-eslint/no-unused-vars + async acquireInitialRetryToken(retryTokenScope) { + return createDefaultRetryToken({ + retryDelay: DEFAULT_RETRY_DELAY_BASE, + retryCount: 0 + }) } - } - } - } -}; - -// src/node-http2-connection-manager.ts -var NodeHttp2ConnectionManager = class { - constructor(config) { - this.sessionCache = /* @__PURE__ */ new Map(); - this.config = config; - if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) { - throw new RangeError("maxConcurrency must be greater than zero."); - } - } - static { - __name(this, "NodeHttp2ConnectionManager"); - } - lease(requestContext, connectionConfiguration) { - const url = this.getUrlString(requestContext); - const existingPool = this.sessionCache.get(url); - if (existingPool) { - const existingSession = existingPool.poll(); - if (existingSession && !this.config.disableConcurrency) { - return existingSession; - } - } - const session = import_http2.default.connect(url); - if (this.config.maxConcurrency) { - session.settings({ maxConcurrentStreams: this.config.maxConcurrency }, (err) => { - if (err) { - throw new Error( - "Fail to set maxConcurrentStreams to " + this.config.maxConcurrency + "when creating new session for " + requestContext.destination.toString() - ); + async refreshRetryTokenForRetry(token, errorInfo) { + const maxAttempts = await this.getMaxAttempts() + if (this.shouldRetry(token, errorInfo, maxAttempts)) { + const errorType = errorInfo.errorType + this.retryBackoffStrategy.setDelayBase( + errorType === 'THROTTLING' + ? THROTTLING_RETRY_DELAY_BASE + : DEFAULT_RETRY_DELAY_BASE + ) + const delayFromErrorType = + this.retryBackoffStrategy.computeNextBackoffDelay( + token.getRetryCount() + ) + const retryDelay = errorInfo.retryAfterHint + ? Math.max( + errorInfo.retryAfterHint.getTime() - Date.now() || 0, + delayFromErrorType + ) + : delayFromErrorType + const capacityCost = this.getCapacityCost(errorType) + this.capacity -= capacityCost + return createDefaultRetryToken({ + retryDelay, + retryCount: token.getRetryCount() + 1, + retryCost: capacityCost + }) + } + throw new Error('No retry token available') } - }); - } - session.unref(); - const destroySessionCb = /* @__PURE__ */ __name(() => { - session.destroy(); - this.deleteSession(url, session); - }, "destroySessionCb"); - session.on("goaway", destroySessionCb); - session.on("error", destroySessionCb); - session.on("frameError", destroySessionCb); - session.on("close", () => this.deleteSession(url, session)); - if (connectionConfiguration.requestTimeout) { - session.setTimeout(connectionConfiguration.requestTimeout, destroySessionCb); - } - const connectionPool = this.sessionCache.get(url) || new NodeHttp2ConnectionPool(); - connectionPool.offerLast(session); - this.sessionCache.set(url, connectionPool); - return session; - } - /** - * Delete a session from the connection pool. - * @param authority The authority of the session to delete. - * @param session The session to delete. - */ - deleteSession(authority, session) { - const existingConnectionPool = this.sessionCache.get(authority); - if (!existingConnectionPool) { - return; - } - if (!existingConnectionPool.contains(session)) { - return; - } - existingConnectionPool.remove(session); - this.sessionCache.set(authority, existingConnectionPool); - } - release(requestContext, session) { - const cacheKey = this.getUrlString(requestContext); - this.sessionCache.get(cacheKey)?.offerLast(session); - } - destroy() { - for (const [key, connectionPool] of this.sessionCache) { - for (const session of connectionPool) { - if (!session.destroyed) { - session.destroy(); + recordSuccess(token) { + this.capacity = Math.max( + INITIAL_RETRY_TOKENS, + this.capacity + (token.getRetryCost() ?? NO_RETRY_INCREMENT) + ) + } + /** + * @returns the current available retry capacity. + * + * This number decreases when retries are executed and refills when requests or retries succeed. + */ + getCapacity() { + return this.capacity + } + async getMaxAttempts() { + try { + return await this.maxAttemptsProvider() + } catch (error) { + console.warn( + `Max attempts provider could not resolve. Using default of ${DEFAULT_MAX_ATTEMPTS}` + ) + return DEFAULT_MAX_ATTEMPTS + } + } + shouldRetry(tokenToRenew, errorInfo, maxAttempts) { + const attempts = tokenToRenew.getRetryCount() + 1 + return ( + attempts < maxAttempts && + this.capacity >= this.getCapacityCost(errorInfo.errorType) && + this.isRetryableError(errorInfo.errorType) + ) + } + getCapacityCost(errorType) { + return errorType === 'TRANSIENT' ? TIMEOUT_RETRY_COST : RETRY_COST + } + isRetryableError(errorType) { + return errorType === 'THROTTLING' || errorType === 'TRANSIENT' } - connectionPool.remove(session); - } - this.sessionCache.delete(key); - } - } - setMaxConcurrentStreams(maxConcurrentStreams) { - if (maxConcurrentStreams && maxConcurrentStreams <= 0) { - throw new RangeError("maxConcurrentStreams must be greater than zero."); - } - this.config.maxConcurrency = maxConcurrentStreams; - } - setDisableConcurrentStreams(disableConcurrentStreams) { - this.config.disableConcurrency = disableConcurrentStreams; - } - getUrlString(request) { - return request.destination.toString(); - } -}; - -// src/node-http2-handler.ts -var NodeHttp2Handler = class _NodeHttp2Handler { - constructor(options) { - this.metadata = { handlerProtocol: "h2" }; - this.connectionManager = new NodeHttp2ConnectionManager({}); - this.configProvider = new Promise((resolve, reject) => { - if (typeof options === "function") { - options().then((opts) => { - resolve(opts || {}); - }).catch(reject); - } else { - resolve(options || {}); - } - }); - } - static { - __name(this, "NodeHttp2Handler"); - } - /** - * @returns the input if it is an HttpHandler of any class, - * or instantiates a new instance of this handler. - */ - static create(instanceOrOptions) { - if (typeof instanceOrOptions?.handle === "function") { - return instanceOrOptions; - } - return new _NodeHttp2Handler(instanceOrOptions); - } - destroy() { - this.connectionManager.destroy(); - } - async handle(request, { abortSignal } = {}) { - if (!this.config) { - this.config = await this.configProvider; - this.connectionManager.setDisableConcurrentStreams(this.config.disableConcurrentStreams || false); - if (this.config.maxConcurrentStreams) { - this.connectionManager.setMaxConcurrentStreams(this.config.maxConcurrentStreams); } - } - const { requestTimeout, disableConcurrentStreams } = this.config; - return new Promise((_resolve, _reject) => { - let fulfilled = false; - let writeRequestBodyPromise = void 0; - const resolve = /* @__PURE__ */ __name(async (arg) => { - await writeRequestBodyPromise; - _resolve(arg); - }, "resolve"); - const reject = /* @__PURE__ */ __name(async (arg) => { - await writeRequestBodyPromise; - _reject(arg); - }, "reject"); - if (abortSignal?.aborted) { - fulfilled = true; - const abortError = new Error("Request aborted"); - abortError.name = "AbortError"; - reject(abortError); - return; - } - const { hostname, method, port, protocol, query } = request; - let auth = ""; - if (request.username != null || request.password != null) { - const username = request.username ?? ""; - const password = request.password ?? ""; - auth = `${username}:${password}@`; - } - const authority = `${protocol}//${auth}${hostname}${port ? `:${port}` : ""}`; - const requestContext = { destination: new URL(authority) }; - const session = this.connectionManager.lease(requestContext, { - requestTimeout: this.config?.sessionTimeout, - disableConcurrentStreams: disableConcurrentStreams || false - }); - const rejectWithDestroy = /* @__PURE__ */ __name((err) => { - if (disableConcurrentStreams) { - this.destroySession(session); - } - fulfilled = true; - reject(err); - }, "rejectWithDestroy"); - const queryString = (0, import_querystring_builder.buildQueryString)(query || {}); - let path = request.path; - if (queryString) { - path += `?${queryString}`; - } - if (request.fragment) { - path += `#${request.fragment}`; - } - const req = session.request({ - ...request.headers, - [import_http22.constants.HTTP2_HEADER_PATH]: path, - [import_http22.constants.HTTP2_HEADER_METHOD]: method - }); - session.ref(); - req.on("response", (headers) => { - const httpResponse = new import_protocol_http.HttpResponse({ - statusCode: headers[":status"] || -1, - headers: getTransformedHeaders(headers), - body: req - }); - fulfilled = true; - resolve({ response: httpResponse }); - if (disableConcurrentStreams) { - session.close(); - this.connectionManager.deleteSession(authority, session); - } - }); - if (requestTimeout) { - req.setTimeout(requestTimeout, () => { - req.close(); - const timeoutError = new Error(`Stream timed out because of no activity for ${requestTimeout} ms`); - timeoutError.name = "TimeoutError"; - rejectWithDestroy(timeoutError); - }); - } - if (abortSignal) { - const onAbort = /* @__PURE__ */ __name(() => { - req.close(); - const abortError = new Error("Request aborted"); - abortError.name = "AbortError"; - rejectWithDestroy(abortError); - }, "onAbort"); - if (typeof abortSignal.addEventListener === "function") { - const signal = abortSignal; - signal.addEventListener("abort", onAbort, { once: true }); - req.once("close", () => signal.removeEventListener("abort", onAbort)); - } else { - abortSignal.onabort = onAbort; - } - } - req.on("frameError", (type, code, id) => { - rejectWithDestroy(new Error(`Frame type id ${type} in stream id ${id} has failed with code ${code}.`)); - }); - req.on("error", rejectWithDestroy); - req.on("aborted", () => { - rejectWithDestroy( - new Error(`HTTP/2 stream is abnormally aborted in mid-communication with result code ${req.rstCode}.`) - ); - }); - req.on("close", () => { - session.unref(); - if (disableConcurrentStreams) { - session.destroy(); - } - if (!fulfilled) { - rejectWithDestroy(new Error("Unexpected error: http2 request did not get a response")); - } - }); - writeRequestBodyPromise = writeRequestBody(req, request, requestTimeout); - }); - } - updateHttpClientConfig(key, value) { - this.config = void 0; - this.configProvider = this.configProvider.then((config) => { - return { - ...config, - [key]: value - }; - }); - } - httpHandlerConfigs() { - return this.config ?? {}; - } - /** - * Destroys a session. - * @param session - the session to destroy. - */ - destroySession(session) { - if (!session.destroyed) { - session.destroy(); - } - } -}; - -// src/stream-collector/collector.ts - -var Collector = class extends import_stream.Writable { - constructor() { - super(...arguments); - this.bufferedBytes = []; - } - static { - __name(this, "Collector"); - } - _write(chunk, encoding, callback) { - this.bufferedBytes.push(chunk); - callback(); - } -}; - -// src/stream-collector/index.ts -var streamCollector = /* @__PURE__ */ __name((stream) => { - if (isReadableStreamInstance(stream)) { - return collectReadableStream(stream); - } - return new Promise((resolve, reject) => { - const collector = new Collector(); - stream.pipe(collector); - stream.on("error", (err) => { - collector.end(); - reject(err); - }); - collector.on("error", reject); - collector.on("finish", function() { - const bytes = new Uint8Array(Buffer.concat(this.bufferedBytes)); - resolve(bytes); - }); - }); -}, "streamCollector"); -var isReadableStreamInstance = /* @__PURE__ */ __name((stream) => typeof ReadableStream === "function" && stream instanceof ReadableStream, "isReadableStreamInstance"); -async function collectReadableStream(stream) { - const chunks = []; - const reader = stream.getReader(); - let isDone = false; - let length = 0; - while (!isDone) { - const { done, value } = await reader.read(); - if (value) { - chunks.push(value); - length += value.length; - } - isDone = done; - } - const collected = new Uint8Array(length); - let offset = 0; - for (const chunk of chunks) { - collected.set(chunk, offset); - offset += chunk.length; - } - return collected; -} -__name(collectReadableStream, "collectReadableStream"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 51005: -/***/ ((module) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - CredentialsProviderError: () => CredentialsProviderError, - ProviderError: () => ProviderError, - TokenProviderError: () => TokenProviderError, - chain: () => chain, - fromStatic: () => fromStatic, - memoize: () => memoize -}); -module.exports = __toCommonJS(src_exports); - -// src/ProviderError.ts -var ProviderError = class _ProviderError extends Error { - constructor(message, options = true) { - let logger; - let tryNextLink = true; - if (typeof options === "boolean") { - logger = void 0; - tryNextLink = options; - } else if (options != null && typeof options === "object") { - logger = options.logger; - tryNextLink = options.tryNextLink ?? true; - } - super(message); - this.name = "ProviderError"; - this.tryNextLink = tryNextLink; - Object.setPrototypeOf(this, _ProviderError.prototype); - logger?.debug?.(`@smithy/property-provider ${tryNextLink ? "->" : "(!)"} ${message}`); - } - static { - __name(this, "ProviderError"); - } - /** - * @deprecated use new operator. - */ - static from(error, options = true) { - return Object.assign(new this(error.message, options), error); - } -}; - -// src/CredentialsProviderError.ts -var CredentialsProviderError = class _CredentialsProviderError extends ProviderError { - /** - * @override - */ - constructor(message, options = true) { - super(message, options); - this.name = "CredentialsProviderError"; - Object.setPrototypeOf(this, _CredentialsProviderError.prototype); - } - static { - __name(this, "CredentialsProviderError"); - } -}; - -// src/TokenProviderError.ts -var TokenProviderError = class _TokenProviderError extends ProviderError { - /** - * @override - */ - constructor(message, options = true) { - super(message, options); - this.name = "TokenProviderError"; - Object.setPrototypeOf(this, _TokenProviderError.prototype); - } - static { - __name(this, "TokenProviderError"); - } -}; - -// src/chain.ts -var chain = /* @__PURE__ */ __name((...providers) => async () => { - if (providers.length === 0) { - throw new ProviderError("No providers in chain"); - } - let lastProviderError; - for (const provider of providers) { - try { - const credentials = await provider(); - return credentials; - } catch (err) { - lastProviderError = err; - if (err?.tryNextLink) { - continue; - } - throw err; - } - } - throw lastProviderError; -}, "chain"); - -// src/fromStatic.ts -var fromStatic = /* @__PURE__ */ __name((staticValue) => () => Promise.resolve(staticValue), "fromStatic"); - -// src/memoize.ts -var memoize = /* @__PURE__ */ __name((provider, isExpired, requiresRefresh) => { - let resolved; - let pending; - let hasResult; - let isConstant = false; - const coalesceProvider = /* @__PURE__ */ __name(async () => { - if (!pending) { - pending = provider(); - } - try { - resolved = await pending; - hasResult = true; - isConstant = false; - } finally { - pending = void 0; - } - return resolved; - }, "coalesceProvider"); - if (isExpired === void 0) { - return async (options) => { - if (!hasResult || options?.forceRefresh) { - resolved = await coalesceProvider(); - } - return resolved; - }; - } - return async (options) => { - if (!hasResult || options?.forceRefresh) { - resolved = await coalesceProvider(); - } - if (isConstant) { - return resolved; - } - if (requiresRefresh && !requiresRefresh(resolved)) { - isConstant = true; - return resolved; - } - if (isExpired(resolved)) { - await coalesceProvider(); - return resolved; - } - return resolved; - }; -}, "memoize"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 18241: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - Field: () => Field, - Fields: () => Fields, - HttpRequest: () => HttpRequest, - HttpResponse: () => HttpResponse, - IHttpRequest: () => import_types.HttpRequest, - getHttpHandlerExtensionConfiguration: () => getHttpHandlerExtensionConfiguration, - isValidHostname: () => isValidHostname, - resolveHttpHandlerRuntimeConfig: () => resolveHttpHandlerRuntimeConfig -}); -module.exports = __toCommonJS(src_exports); - -// src/extensions/httpExtensionConfiguration.ts -var getHttpHandlerExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => { - return { - setHttpHandler(handler) { - runtimeConfig.httpHandler = handler; - }, - httpHandler() { - return runtimeConfig.httpHandler; - }, - updateHttpClientConfig(key, value) { - runtimeConfig.httpHandler?.updateHttpClientConfig(key, value); - }, - httpHandlerConfigs() { - return runtimeConfig.httpHandler.httpHandlerConfigs(); - } - }; -}, "getHttpHandlerExtensionConfiguration"); -var resolveHttpHandlerRuntimeConfig = /* @__PURE__ */ __name((httpHandlerExtensionConfiguration) => { - return { - httpHandler: httpHandlerExtensionConfiguration.httpHandler() - }; -}, "resolveHttpHandlerRuntimeConfig"); - -// src/Field.ts -var import_types = __nccwpck_require__(63592); -var Field = class { - static { - __name(this, "Field"); - } - constructor({ name, kind = import_types.FieldPosition.HEADER, values = [] }) { - this.name = name; - this.kind = kind; - this.values = values; - } - /** - * Appends a value to the field. - * - * @param value The value to append. - */ - add(value) { - this.values.push(value); - } - /** - * Overwrite existing field values. - * - * @param values The new field values. - */ - set(values) { - this.values = values; - } - /** - * Remove all matching entries from list. - * - * @param value Value to remove. - */ - remove(value) { - this.values = this.values.filter((v) => v !== value); - } - /** - * Get comma-delimited string. - * - * @returns String representation of {@link Field}. - */ - toString() { - return this.values.map((v) => v.includes(",") || v.includes(" ") ? `"${v}"` : v).join(", "); - } - /** - * Get string values as a list - * - * @returns Values in {@link Field} as a list. - */ - get() { - return this.values; - } -}; - -// src/Fields.ts -var Fields = class { - constructor({ fields = [], encoding = "utf-8" }) { - this.entries = {}; - fields.forEach(this.setField.bind(this)); - this.encoding = encoding; - } - static { - __name(this, "Fields"); - } - /** - * Set entry for a {@link Field} name. The `name` - * attribute will be used to key the collection. - * - * @param field The {@link Field} to set. - */ - setField(field) { - this.entries[field.name.toLowerCase()] = field; - } - /** - * Retrieve {@link Field} entry by name. - * - * @param name The name of the {@link Field} entry - * to retrieve - * @returns The {@link Field} if it exists. - */ - getField(name) { - return this.entries[name.toLowerCase()]; - } - /** - * Delete entry from collection. - * - * @param name Name of the entry to delete. - */ - removeField(name) { - delete this.entries[name.toLowerCase()]; - } - /** - * Helper function for retrieving specific types of fields. - * Used to grab all headers or all trailers. - * - * @param kind {@link FieldPosition} of entries to retrieve. - * @returns The {@link Field} entries with the specified - * {@link FieldPosition}. - */ - getByType(kind) { - return Object.values(this.entries).filter((field) => field.kind === kind); - } -}; -// src/httpRequest.ts + // src/AdaptiveRetryStrategy.ts + var AdaptiveRetryStrategy = class { + constructor(maxAttemptsProvider, options) { + this.maxAttemptsProvider = maxAttemptsProvider + this.mode = 'adaptive' /* ADAPTIVE */ + const { rateLimiter } = options ?? {} + this.rateLimiter = rateLimiter ?? new DefaultRateLimiter() + this.standardRetryStrategy = new StandardRetryStrategy( + maxAttemptsProvider + ) + } + static { + __name(this, 'AdaptiveRetryStrategy') + } + async acquireInitialRetryToken(retryTokenScope) { + await this.rateLimiter.getSendToken() + return this.standardRetryStrategy.acquireInitialRetryToken( + retryTokenScope + ) + } + async refreshRetryTokenForRetry(tokenToRenew, errorInfo) { + this.rateLimiter.updateClientSendingRate(errorInfo) + return this.standardRetryStrategy.refreshRetryTokenForRetry( + tokenToRenew, + errorInfo + ) + } + recordSuccess(token) { + this.rateLimiter.updateClientSendingRate({}) + this.standardRetryStrategy.recordSuccess(token) + } + } -var HttpRequest = class _HttpRequest { - static { - __name(this, "HttpRequest"); - } - constructor(options) { - this.method = options.method || "GET"; - this.hostname = options.hostname || "localhost"; - this.port = options.port; - this.query = options.query || {}; - this.headers = options.headers || {}; - this.body = options.body; - this.protocol = options.protocol ? options.protocol.slice(-1) !== ":" ? `${options.protocol}:` : options.protocol : "https:"; - this.path = options.path ? options.path.charAt(0) !== "/" ? `/${options.path}` : options.path : "/"; - this.username = options.username; - this.password = options.password; - this.fragment = options.fragment; - } - /** - * Note: this does not deep-clone the body. - */ - static clone(request) { - const cloned = new _HttpRequest({ - ...request, - headers: { ...request.headers } - }); - if (cloned.query) { - cloned.query = cloneQuery(cloned.query); - } - return cloned; - } - /** - * This method only actually asserts that request is the interface {@link IHttpRequest}, - * and not necessarily this concrete class. Left in place for API stability. - * - * Do not call instance methods on the input of this function, and - * do not assume it has the HttpRequest prototype. - */ - static isInstance(request) { - if (!request) { - return false; - } - const req = request; - return "method" in req && "protocol" in req && "hostname" in req && "path" in req && typeof req["query"] === "object" && typeof req["headers"] === "object"; - } - /** - * @deprecated use static HttpRequest.clone(request) instead. It's not safe to call - * this method because {@link HttpRequest.isInstance} incorrectly - * asserts that IHttpRequest (interface) objects are of type HttpRequest (class). - */ - clone() { - return _HttpRequest.clone(this); - } -}; -function cloneQuery(query) { - return Object.keys(query).reduce((carry, paramName) => { - const param = query[paramName]; - return { - ...carry, - [paramName]: Array.isArray(param) ? [...param] : param - }; - }, {}); -} -__name(cloneQuery, "cloneQuery"); - -// src/httpResponse.ts -var HttpResponse = class { - static { - __name(this, "HttpResponse"); - } - constructor(options) { - this.statusCode = options.statusCode; - this.reason = options.reason; - this.headers = options.headers || {}; - this.body = options.body; - } - static isInstance(response) { - if (!response) - return false; - const resp = response; - return typeof resp.statusCode === "number" && typeof resp.headers === "object"; - } -}; - -// src/isValidHostname.ts -function isValidHostname(hostname) { - const hostPattern = /^[a-z0-9][a-z0-9\.\-]*[a-z0-9]$/; - return hostPattern.test(hostname); -} -__name(isValidHostname, "isValidHostname"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 39025: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - buildQueryString: () => buildQueryString -}); -module.exports = __toCommonJS(src_exports); -var import_util_uri_escape = __nccwpck_require__(6480); -function buildQueryString(query) { - const parts = []; - for (let key of Object.keys(query).sort()) { - const value = query[key]; - key = (0, import_util_uri_escape.escapeUri)(key); - if (Array.isArray(value)) { - for (let i = 0, iLen = value.length; i < iLen; i++) { - parts.push(`${key}=${(0, import_util_uri_escape.escapeUri)(value[i])}`); - } - } else { - let qsEntry = key; - if (value || typeof value === "string") { - qsEntry += `=${(0, import_util_uri_escape.escapeUri)(value)}`; - } - parts.push(qsEntry); - } - } - return parts.join("&"); -} -__name(buildQueryString, "buildQueryString"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 40153: -/***/ ((module) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - parseQueryString: () => parseQueryString -}); -module.exports = __toCommonJS(src_exports); -function parseQueryString(querystring) { - const query = {}; - querystring = querystring.replace(/^\?/, ""); - if (querystring) { - for (const pair of querystring.split("&")) { - let [key, value = null] = pair.split("="); - key = decodeURIComponent(key); - if (value) { - value = decodeURIComponent(value); - } - if (!(key in query)) { - query[key] = value; - } else if (Array.isArray(query[key])) { - query[key].push(value); - } else { - query[key] = [query[key], value]; + // src/ConfiguredRetryStrategy.ts + var ConfiguredRetryStrategy = class extends StandardRetryStrategy { + static { + __name(this, 'ConfiguredRetryStrategy') + } + /** + * @param maxAttempts - the maximum number of retry attempts allowed. + * e.g., if set to 3, then 4 total requests are possible. + * @param computeNextBackoffDelay - a millisecond delay for each retry or a function that takes the retry attempt + * and returns the delay. + * + * @example exponential backoff. + * ```js + * new Client({ + * retryStrategy: new ConfiguredRetryStrategy(3, (attempt) => attempt ** 2) + * }); + * ``` + * @example constant delay. + * ```js + * new Client({ + * retryStrategy: new ConfiguredRetryStrategy(3, 2000) + * }); + * ``` + */ + constructor( + maxAttempts, + computeNextBackoffDelay = DEFAULT_RETRY_DELAY_BASE + ) { + super( + typeof maxAttempts === 'function' + ? maxAttempts + : async () => maxAttempts + ) + if (typeof computeNextBackoffDelay === 'number') { + this.computeNextBackoffDelay = () => computeNextBackoffDelay + } else { + this.computeNextBackoffDelay = computeNextBackoffDelay + } + } + async refreshRetryTokenForRetry(tokenToRenew, errorInfo) { + const token = await super.refreshRetryTokenForRetry( + tokenToRenew, + errorInfo + ) + token.getRetryDelay = () => + this.computeNextBackoffDelay(token.getRetryCount()) + return token + } } - } - } - return query; -} -__name(parseQueryString, "parseQueryString"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 4863: -/***/ ((module) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - isClockSkewCorrectedError: () => isClockSkewCorrectedError, - isClockSkewError: () => isClockSkewError, - isRetryableByTrait: () => isRetryableByTrait, - isServerError: () => isServerError, - isThrottlingError: () => isThrottlingError, - isTransientError: () => isTransientError -}); -module.exports = __toCommonJS(src_exports); - -// src/constants.ts -var CLOCK_SKEW_ERROR_CODES = [ - "AuthFailure", - "InvalidSignatureException", - "RequestExpired", - "RequestInTheFuture", - "RequestTimeTooSkewed", - "SignatureDoesNotMatch" -]; -var THROTTLING_ERROR_CODES = [ - "BandwidthLimitExceeded", - "EC2ThrottledException", - "LimitExceededException", - "PriorRequestNotComplete", - "ProvisionedThroughputExceededException", - "RequestLimitExceeded", - "RequestThrottled", - "RequestThrottledException", - "SlowDown", - "ThrottledException", - "Throttling", - "ThrottlingException", - "TooManyRequestsException", - "TransactionInProgressException" - // DynamoDB -]; -var TRANSIENT_ERROR_CODES = ["TimeoutError", "RequestTimeout", "RequestTimeoutException"]; -var TRANSIENT_ERROR_STATUS_CODES = [500, 502, 503, 504]; -var NODEJS_TIMEOUT_ERROR_CODES = ["ECONNRESET", "ECONNREFUSED", "EPIPE", "ETIMEDOUT"]; - -// src/index.ts -var isRetryableByTrait = /* @__PURE__ */ __name((error) => error.$retryable !== void 0, "isRetryableByTrait"); -var isClockSkewError = /* @__PURE__ */ __name((error) => CLOCK_SKEW_ERROR_CODES.includes(error.name), "isClockSkewError"); -var isClockSkewCorrectedError = /* @__PURE__ */ __name((error) => error.$metadata?.clockSkewCorrected, "isClockSkewCorrectedError"); -var isThrottlingError = /* @__PURE__ */ __name((error) => error.$metadata?.httpStatusCode === 429 || THROTTLING_ERROR_CODES.includes(error.name) || error.$retryable?.throttling == true, "isThrottlingError"); -var isTransientError = /* @__PURE__ */ __name((error, depth = 0) => isClockSkewCorrectedError(error) || TRANSIENT_ERROR_CODES.includes(error.name) || NODEJS_TIMEOUT_ERROR_CODES.includes(error?.code || "") || TRANSIENT_ERROR_STATUS_CODES.includes(error.$metadata?.httpStatusCode || 0) || error.cause !== void 0 && depth <= 10 && isTransientError(error.cause, depth + 1), "isTransientError"); -var isServerError = /* @__PURE__ */ __name((error) => { - if (error.$metadata?.httpStatusCode !== void 0) { - const statusCode = error.$metadata.httpStatusCode; - if (500 <= statusCode && statusCode <= 599 && !isTransientError(error)) { - return true; - } - return false; - } - return false; -}, "isServerError"); -// Annotate the CommonJS export names for ESM import in node: + // Annotate the CommonJS export names for ESM import in node: -0 && (0); + 0 && 0 + /***/ + }, + /***/ 29602: /***/ (__unused_webpack_module, exports) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.ByteArrayCollector = void 0 + class ByteArrayCollector { + constructor(allocByteArray) { + this.allocByteArray = allocByteArray + this.byteLength = 0 + this.byteArrays = [] + } + push(byteArray) { + this.byteArrays.push(byteArray) + this.byteLength += byteArray.byteLength + } + flush() { + if (this.byteArrays.length === 1) { + const bytes = this.byteArrays[0] + this.reset() + return bytes + } + const aggregation = this.allocByteArray(this.byteLength) + let cursor = 0 + for (let i = 0; i < this.byteArrays.length; ++i) { + const bytes = this.byteArrays[i] + aggregation.set(bytes, cursor) + cursor += bytes.byteLength + } + this.reset() + return aggregation + } + reset() { + this.byteArrays = [] + this.byteLength = 0 + } + } + exports.ByteArrayCollector = ByteArrayCollector -/***/ }), + /***/ + }, -/***/ 14235: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + /***/ 67592: /***/ (__unused_webpack_module, exports) => { + 'use strict' -"use strict"; + Object.defineProperty(exports, '__esModule', { value: true }) + exports.ChecksumStream = void 0 + const ReadableStreamRef = + typeof ReadableStream === 'function' ? ReadableStream : function () {} + class ChecksumStream extends ReadableStreamRef {} + exports.ChecksumStream = ChecksumStream -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getHomeDir = void 0; -const os_1 = __nccwpck_require__(22037); -const path_1 = __nccwpck_require__(71017); -const homeDirCache = {}; -const getHomeDirCacheKey = () => { - if (process && process.geteuid) { - return `${process.geteuid()}`; - } - return "DEFAULT"; -}; -const getHomeDir = () => { - const { HOME, USERPROFILE, HOMEPATH, HOMEDRIVE = `C:${path_1.sep}` } = process.env; - if (HOME) - return HOME; - if (USERPROFILE) - return USERPROFILE; - if (HOMEPATH) - return `${HOMEDRIVE}${HOMEPATH}`; - const homeDirCacheKey = getHomeDirCacheKey(); - if (!homeDirCache[homeDirCacheKey]) - homeDirCache[homeDirCacheKey] = (0, os_1.homedir)(); - return homeDirCache[homeDirCacheKey]; -}; -exports.getHomeDir = getHomeDir; - - -/***/ }), - -/***/ 50193: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getSSOTokenFilepath = void 0; -const crypto_1 = __nccwpck_require__(6113); -const path_1 = __nccwpck_require__(71017); -const getHomeDir_1 = __nccwpck_require__(14235); -const getSSOTokenFilepath = (id) => { - const hasher = (0, crypto_1.createHash)("sha1"); - const cacheName = hasher.update(id).digest("hex"); - return (0, path_1.join)((0, getHomeDir_1.getHomeDir)(), ".aws", "sso", "cache", `${cacheName}.json`); -}; -exports.getSSOTokenFilepath = getSSOTokenFilepath; - - -/***/ }), - -/***/ 15040: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getSSOTokenFromFile = void 0; -const fs_1 = __nccwpck_require__(57147); -const getSSOTokenFilepath_1 = __nccwpck_require__(50193); -const { readFile } = fs_1.promises; -const getSSOTokenFromFile = async (id) => { - const ssoTokenFilepath = (0, getSSOTokenFilepath_1.getSSOTokenFilepath)(id); - const ssoTokenText = await readFile(ssoTokenFilepath, "utf8"); - return JSON.parse(ssoTokenText); -}; -exports.getSSOTokenFromFile = getSSOTokenFromFile; - - -/***/ }), - -/***/ 28586: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - CONFIG_PREFIX_SEPARATOR: () => CONFIG_PREFIX_SEPARATOR, - DEFAULT_PROFILE: () => DEFAULT_PROFILE, - ENV_PROFILE: () => ENV_PROFILE, - getProfileName: () => getProfileName, - loadSharedConfigFiles: () => loadSharedConfigFiles, - loadSsoSessionData: () => loadSsoSessionData, - parseKnownFiles: () => parseKnownFiles -}); -module.exports = __toCommonJS(src_exports); -__reExport(src_exports, __nccwpck_require__(14235), module.exports); - -// src/getProfileName.ts -var ENV_PROFILE = "AWS_PROFILE"; -var DEFAULT_PROFILE = "default"; -var getProfileName = /* @__PURE__ */ __name((init) => init.profile || process.env[ENV_PROFILE] || DEFAULT_PROFILE, "getProfileName"); - -// src/index.ts -__reExport(src_exports, __nccwpck_require__(50193), module.exports); -__reExport(src_exports, __nccwpck_require__(15040), module.exports); - -// src/loadSharedConfigFiles.ts - - -// src/getConfigData.ts -var import_types = __nccwpck_require__(63592); -var getConfigData = /* @__PURE__ */ __name((data) => Object.entries(data).filter(([key]) => { - const indexOfSeparator = key.indexOf(CONFIG_PREFIX_SEPARATOR); - if (indexOfSeparator === -1) { - return false; - } - return Object.values(import_types.IniSectionType).includes(key.substring(0, indexOfSeparator)); -}).reduce( - (acc, [key, value]) => { - const indexOfSeparator = key.indexOf(CONFIG_PREFIX_SEPARATOR); - const updatedKey = key.substring(0, indexOfSeparator) === import_types.IniSectionType.PROFILE ? key.substring(indexOfSeparator + 1) : key; - acc[updatedKey] = value; - return acc; - }, - { - // Populate default profile, if present. - ...data.default && { default: data.default } - } -), "getConfigData"); - -// src/getConfigFilepath.ts -var import_path = __nccwpck_require__(71017); -var import_getHomeDir = __nccwpck_require__(14235); -var ENV_CONFIG_PATH = "AWS_CONFIG_FILE"; -var getConfigFilepath = /* @__PURE__ */ __name(() => process.env[ENV_CONFIG_PATH] || (0, import_path.join)((0, import_getHomeDir.getHomeDir)(), ".aws", "config"), "getConfigFilepath"); - -// src/getCredentialsFilepath.ts - -var import_getHomeDir2 = __nccwpck_require__(14235); -var ENV_CREDENTIALS_PATH = "AWS_SHARED_CREDENTIALS_FILE"; -var getCredentialsFilepath = /* @__PURE__ */ __name(() => process.env[ENV_CREDENTIALS_PATH] || (0, import_path.join)((0, import_getHomeDir2.getHomeDir)(), ".aws", "credentials"), "getCredentialsFilepath"); - -// src/loadSharedConfigFiles.ts -var import_getHomeDir3 = __nccwpck_require__(14235); - -// src/parseIni.ts - -var prefixKeyRegex = /^([\w-]+)\s(["'])?([\w-@\+\.%:/]+)\2$/; -var profileNameBlockList = ["__proto__", "profile __proto__"]; -var parseIni = /* @__PURE__ */ __name((iniData) => { - const map = {}; - let currentSection; - let currentSubSection; - for (const iniLine of iniData.split(/\r?\n/)) { - const trimmedLine = iniLine.split(/(^|\s)[;#]/)[0].trim(); - const isSection = trimmedLine[0] === "[" && trimmedLine[trimmedLine.length - 1] === "]"; - if (isSection) { - currentSection = void 0; - currentSubSection = void 0; - const sectionName = trimmedLine.substring(1, trimmedLine.length - 1); - const matches = prefixKeyRegex.exec(sectionName); - if (matches) { - const [, prefix, , name] = matches; - if (Object.values(import_types.IniSectionType).includes(prefix)) { - currentSection = [prefix, name].join(CONFIG_PREFIX_SEPARATOR); + /***/ + }, + + /***/ 77733: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.ChecksumStream = void 0 + const util_base64_1 = __nccwpck_require__(44079) + const stream_1 = __nccwpck_require__(12781) + class ChecksumStream extends stream_1.Duplex { + constructor({ + expectedChecksum, + checksum, + source, + checksumSourceLocation, + base64Encoder + }) { + var _a, _b + super() + if (typeof source.pipe === 'function') { + this.source = source + } else { + throw new Error( + `@smithy/util-stream: unsupported source type ${(_b = (_a = source === null || source === void 0 ? void 0 : source.constructor) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : source} in ChecksumStream.` + ) + } + this.base64Encoder = + base64Encoder !== null && base64Encoder !== void 0 + ? base64Encoder + : util_base64_1.toBase64 + this.expectedChecksum = expectedChecksum + this.checksum = checksum + this.checksumSourceLocation = checksumSourceLocation + this.source.pipe(this) + } + _read(size) {} + _write(chunk, encoding, callback) { + try { + this.checksum.update(chunk) + this.push(chunk) + } catch (e) { + return callback(e) + } + return callback() } - } else { - currentSection = sectionName; - } - if (profileNameBlockList.includes(sectionName)) { - throw new Error(`Found invalid profile name "${sectionName}"`); - } - } else if (currentSection) { - const indexOfEqualsSign = trimmedLine.indexOf("="); - if (![0, -1].includes(indexOfEqualsSign)) { - const [name, value] = [ - trimmedLine.substring(0, indexOfEqualsSign).trim(), - trimmedLine.substring(indexOfEqualsSign + 1).trim() - ]; - if (value === "") { - currentSubSection = name; - } else { - if (currentSubSection && iniLine.trimStart() === iniLine) { - currentSubSection = void 0; + async _final(callback) { + try { + const digest = await this.checksum.digest() + const received = this.base64Encoder(digest) + if (this.expectedChecksum !== received) { + return callback( + new Error( + `Checksum mismatch: expected "${this.expectedChecksum}" but received "${received}"` + + ` in response header "${this.checksumSourceLocation}".` + ) + ) + } + } catch (e) { + return callback(e) } - map[currentSection] = map[currentSection] || {}; - const key = currentSubSection ? [currentSubSection, name].join(CONFIG_PREFIX_SEPARATOR) : name; - map[currentSection][key] = value; + this.push(null) + return callback() } } - } - } - return map; -}, "parseIni"); - -// src/loadSharedConfigFiles.ts -var import_slurpFile = __nccwpck_require__(17020); -var swallowError = /* @__PURE__ */ __name(() => ({}), "swallowError"); -var CONFIG_PREFIX_SEPARATOR = "."; -var loadSharedConfigFiles = /* @__PURE__ */ __name(async (init = {}) => { - const { filepath = getCredentialsFilepath(), configFilepath = getConfigFilepath() } = init; - const homeDir = (0, import_getHomeDir3.getHomeDir)(); - const relativeHomeDirPrefix = "~/"; - let resolvedFilepath = filepath; - if (filepath.startsWith(relativeHomeDirPrefix)) { - resolvedFilepath = (0, import_path.join)(homeDir, filepath.slice(2)); - } - let resolvedConfigFilepath = configFilepath; - if (configFilepath.startsWith(relativeHomeDirPrefix)) { - resolvedConfigFilepath = (0, import_path.join)(homeDir, configFilepath.slice(2)); - } - const parsedFiles = await Promise.all([ - (0, import_slurpFile.slurpFile)(resolvedConfigFilepath, { - ignoreCache: init.ignoreCache - }).then(parseIni).then(getConfigData).catch(swallowError), - (0, import_slurpFile.slurpFile)(resolvedFilepath, { - ignoreCache: init.ignoreCache - }).then(parseIni).catch(swallowError) - ]); - return { - configFile: parsedFiles[0], - credentialsFile: parsedFiles[1] - }; -}, "loadSharedConfigFiles"); - -// src/getSsoSessionData.ts - -var 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"); - -// src/loadSsoSessionData.ts -var import_slurpFile2 = __nccwpck_require__(17020); -var swallowError2 = /* @__PURE__ */ __name(() => ({}), "swallowError"); -var loadSsoSessionData = /* @__PURE__ */ __name(async (init = {}) => (0, import_slurpFile2.slurpFile)(init.configFilepath ?? getConfigFilepath()).then(parseIni).then(getSsoSessionData).catch(swallowError2), "loadSsoSessionData"); - -// src/mergeConfigFiles.ts -var mergeConfigFiles = /* @__PURE__ */ __name((...files) => { - const merged = {}; - for (const file of files) { - for (const [key, values] of Object.entries(file)) { - if (merged[key] !== void 0) { - Object.assign(merged[key], values); - } else { - merged[key] = values; - } - } - } - return merged; -}, "mergeConfigFiles"); + exports.ChecksumStream = ChecksumStream -// src/parseKnownFiles.ts -var parseKnownFiles = /* @__PURE__ */ __name(async (init) => { - const parsedFiles = await loadSharedConfigFiles(init); - return mergeConfigFiles(parsedFiles.configFile, parsedFiles.credentialsFile); -}, "parseKnownFiles"); -// Annotate the CommonJS export names for ESM import in node: + /***/ + }, -0 && (0); + /***/ 66982: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.createChecksumStream = void 0 + const util_base64_1 = __nccwpck_require__(44079) + const stream_type_check_1 = __nccwpck_require__(14229) + const ChecksumStream_browser_1 = __nccwpck_require__(67592) + const createChecksumStream = ({ + expectedChecksum, + checksum, + source, + checksumSourceLocation, + base64Encoder + }) => { + var _a, _b + if (!(0, stream_type_check_1.isReadableStream)(source)) { + throw new Error( + `@smithy/util-stream: unsupported source type ${(_b = (_a = source === null || source === void 0 ? void 0 : source.constructor) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : source} in ChecksumStream.` + ) + } + const encoder = + base64Encoder !== null && base64Encoder !== void 0 + ? base64Encoder + : util_base64_1.toBase64 + if (typeof TransformStream !== 'function') { + throw new Error( + '@smithy/util-stream: unable to instantiate ChecksumStream because API unavailable: ReadableStream/TransformStream.' + ) + } + const transform = new TransformStream({ + start() {}, + async transform(chunk, controller) { + checksum.update(chunk) + controller.enqueue(chunk) + }, + async flush(controller) { + const digest = await checksum.digest() + const received = encoder(digest) + if (expectedChecksum !== received) { + const error = new Error( + `Checksum mismatch: expected "${expectedChecksum}" but received "${received}"` + + ` in response header "${checksumSourceLocation}".` + ) + controller.error(error) + } else { + controller.terminate() + } + } + }) + source.pipeThrough(transform) + const readable = transform.readable + Object.setPrototypeOf( + readable, + ChecksumStream_browser_1.ChecksumStream.prototype + ) + return readable + } + exports.createChecksumStream = createChecksumStream + /***/ + }, + /***/ 2028: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.createChecksumStream = void 0 + const stream_type_check_1 = __nccwpck_require__(14229) + const ChecksumStream_1 = __nccwpck_require__(77733) + const createChecksumStream_browser_1 = __nccwpck_require__(66982) + function createChecksumStream(init) { + if ( + typeof ReadableStream === 'function' && + (0, stream_type_check_1.isReadableStream)(init.source) + ) { + return (0, createChecksumStream_browser_1.createChecksumStream)(init) + } + return new ChecksumStream_1.ChecksumStream(init) + } + exports.createChecksumStream = createChecksumStream -/***/ }), + /***/ + }, -/***/ 17020: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + /***/ 86795: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.createBufferedReadable = void 0 + const node_stream_1 = __nccwpck_require__(84492) + const ByteArrayCollector_1 = __nccwpck_require__(29602) + const createBufferedReadableStream_1 = __nccwpck_require__(47209) + const stream_type_check_1 = __nccwpck_require__(14229) + function createBufferedReadable(upstream, size, logger) { + if ((0, stream_type_check_1.isReadableStream)(upstream)) { + return (0, + createBufferedReadableStream_1.createBufferedReadableStream)( + upstream, + size, + logger + ) + } + const downstream = new node_stream_1.Readable({ read() {} }) + let streamBufferingLoggedWarning = false + let bytesSeen = 0 + const buffers = [ + '', + new ByteArrayCollector_1.ByteArrayCollector( + size => new Uint8Array(size) + ), + new ByteArrayCollector_1.ByteArrayCollector(size => + Buffer.from(new Uint8Array(size)) + ) + ] + let mode = -1 + upstream.on('data', chunk => { + const chunkMode = (0, createBufferedReadableStream_1.modeOf)( + chunk, + true + ) + if (mode !== chunkMode) { + if (mode >= 0) { + downstream.push( + (0, createBufferedReadableStream_1.flush)(buffers, mode) + ) + } + mode = chunkMode + } + if (mode === -1) { + downstream.push(chunk) + return + } + const chunkSize = (0, createBufferedReadableStream_1.sizeOf)(chunk) + bytesSeen += chunkSize + const bufferSize = (0, createBufferedReadableStream_1.sizeOf)( + buffers[mode] + ) + if (chunkSize >= size && bufferSize === 0) { + downstream.push(chunk) + } else { + const newSize = (0, createBufferedReadableStream_1.merge)( + buffers, + mode, + chunk + ) + if (!streamBufferingLoggedWarning && bytesSeen > size * 2) { + streamBufferingLoggedWarning = true + logger === null || logger === void 0 + ? void 0 + : logger.warn( + `@smithy/util-stream - stream chunk size ${chunkSize} is below threshold of ${size}, automatically buffering.` + ) + } + if (newSize >= size) { + downstream.push( + (0, createBufferedReadableStream_1.flush)(buffers, mode) + ) + } + } + }) + upstream.on('end', () => { + if (mode !== -1) { + const remainder = (0, createBufferedReadableStream_1.flush)( + buffers, + mode + ) + if ((0, createBufferedReadableStream_1.sizeOf)(remainder) > 0) { + downstream.push(remainder) + } + } + downstream.push(null) + }) + return downstream + } + exports.createBufferedReadable = createBufferedReadable -"use strict"; + /***/ + }, -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.slurpFile = void 0; -const fs_1 = __nccwpck_require__(57147); -const { readFile } = fs_1.promises; -const filePromisesHash = {}; -const slurpFile = (path, options) => { - if (!filePromisesHash[path] || (options === null || options === void 0 ? void 0 : options.ignoreCache)) { - filePromisesHash[path] = readFile(path, "utf8"); - } - return filePromisesHash[path]; -}; -exports.slurpFile = slurpFile; - - -/***/ }), - -/***/ 55499: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - SignatureV4: () => SignatureV4, - clearCredentialCache: () => clearCredentialCache, - createScope: () => createScope, - getCanonicalHeaders: () => getCanonicalHeaders, - getCanonicalQuery: () => getCanonicalQuery, - getPayloadHash: () => getPayloadHash, - getSigningKey: () => getSigningKey, - moveHeadersToQuery: () => moveHeadersToQuery, - prepareRequest: () => prepareRequest -}); -module.exports = __toCommonJS(src_exports); - -// src/SignatureV4.ts - -var import_util_middleware = __nccwpck_require__(14298); - -var import_util_utf84 = __nccwpck_require__(76749); - -// src/constants.ts -var ALGORITHM_QUERY_PARAM = "X-Amz-Algorithm"; -var CREDENTIAL_QUERY_PARAM = "X-Amz-Credential"; -var AMZ_DATE_QUERY_PARAM = "X-Amz-Date"; -var SIGNED_HEADERS_QUERY_PARAM = "X-Amz-SignedHeaders"; -var EXPIRES_QUERY_PARAM = "X-Amz-Expires"; -var SIGNATURE_QUERY_PARAM = "X-Amz-Signature"; -var TOKEN_QUERY_PARAM = "X-Amz-Security-Token"; -var AUTH_HEADER = "authorization"; -var AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase(); -var DATE_HEADER = "date"; -var GENERATED_HEADERS = [AUTH_HEADER, AMZ_DATE_HEADER, DATE_HEADER]; -var SIGNATURE_HEADER = SIGNATURE_QUERY_PARAM.toLowerCase(); -var SHA256_HEADER = "x-amz-content-sha256"; -var TOKEN_HEADER = TOKEN_QUERY_PARAM.toLowerCase(); -var ALWAYS_UNSIGNABLE_HEADERS = { - authorization: true, - "cache-control": true, - connection: true, - expect: true, - from: true, - "keep-alive": true, - "max-forwards": true, - pragma: true, - referer: true, - te: true, - trailer: true, - "transfer-encoding": true, - upgrade: true, - "user-agent": true, - "x-amzn-trace-id": true -}; -var PROXY_HEADER_PATTERN = /^proxy-/; -var SEC_HEADER_PATTERN = /^sec-/; -var ALGORITHM_IDENTIFIER = "AWS4-HMAC-SHA256"; -var EVENT_ALGORITHM_IDENTIFIER = "AWS4-HMAC-SHA256-PAYLOAD"; -var UNSIGNED_PAYLOAD = "UNSIGNED-PAYLOAD"; -var MAX_CACHE_SIZE = 50; -var KEY_TYPE_IDENTIFIER = "aws4_request"; -var MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7; - -// src/credentialDerivation.ts -var import_util_hex_encoding = __nccwpck_require__(88310); -var import_util_utf8 = __nccwpck_require__(76749); -var signingKeyCache = {}; -var cacheQueue = []; -var createScope = /* @__PURE__ */ __name((shortDate, region, service) => `${shortDate}/${region}/${service}/${KEY_TYPE_IDENTIFIER}`, "createScope"); -var getSigningKey = /* @__PURE__ */ __name(async (sha256Constructor, credentials, shortDate, region, service) => { - const credsHash = await hmac(sha256Constructor, credentials.secretAccessKey, credentials.accessKeyId); - const cacheKey = `${shortDate}:${region}:${service}:${(0, import_util_hex_encoding.toHex)(credsHash)}:${credentials.sessionToken}`; - if (cacheKey in signingKeyCache) { - return signingKeyCache[cacheKey]; - } - cacheQueue.push(cacheKey); - while (cacheQueue.length > MAX_CACHE_SIZE) { - delete signingKeyCache[cacheQueue.shift()]; - } - let key = `AWS4${credentials.secretAccessKey}`; - for (const signable of [shortDate, region, service, KEY_TYPE_IDENTIFIER]) { - key = await hmac(sha256Constructor, key, signable); - } - return signingKeyCache[cacheKey] = key; -}, "getSigningKey"); -var clearCredentialCache = /* @__PURE__ */ __name(() => { - cacheQueue.length = 0; - Object.keys(signingKeyCache).forEach((cacheKey) => { - delete signingKeyCache[cacheKey]; - }); -}, "clearCredentialCache"); -var hmac = /* @__PURE__ */ __name((ctor, secret, data) => { - const hash = new ctor(secret); - hash.update((0, import_util_utf8.toUint8Array)(data)); - return hash.digest(); -}, "hmac"); - -// src/getCanonicalHeaders.ts -var getCanonicalHeaders = /* @__PURE__ */ __name(({ headers }, unsignableHeaders, signableHeaders) => { - const canonical = {}; - for (const headerName of Object.keys(headers).sort()) { - if (headers[headerName] == void 0) { - continue; - } - const canonicalHeaderName = headerName.toLowerCase(); - if (canonicalHeaderName in ALWAYS_UNSIGNABLE_HEADERS || unsignableHeaders?.has(canonicalHeaderName) || PROXY_HEADER_PATTERN.test(canonicalHeaderName) || SEC_HEADER_PATTERN.test(canonicalHeaderName)) { - if (!signableHeaders || signableHeaders && !signableHeaders.has(canonicalHeaderName)) { - continue; + /***/ 47209: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.modeOf = + exports.sizeOf = + exports.flush = + exports.merge = + exports.createBufferedReadable = + exports.createBufferedReadableStream = + void 0 + const ByteArrayCollector_1 = __nccwpck_require__(29602) + function createBufferedReadableStream(upstream, size, logger) { + const reader = upstream.getReader() + let streamBufferingLoggedWarning = false + let bytesSeen = 0 + const buffers = [ + '', + new ByteArrayCollector_1.ByteArrayCollector( + size => new Uint8Array(size) + ) + ] + let mode = -1 + const pull = async controller => { + const { value, done } = await reader.read() + const chunk = value + if (done) { + if (mode !== -1) { + const remainder = flush(buffers, mode) + if (sizeOf(remainder) > 0) { + controller.enqueue(remainder) + } + } + controller.close() + } else { + const chunkMode = modeOf(chunk, false) + if (mode !== chunkMode) { + if (mode >= 0) { + controller.enqueue(flush(buffers, mode)) + } + mode = chunkMode + } + if (mode === -1) { + controller.enqueue(chunk) + return + } + const chunkSize = sizeOf(chunk) + bytesSeen += chunkSize + const bufferSize = sizeOf(buffers[mode]) + if (chunkSize >= size && bufferSize === 0) { + controller.enqueue(chunk) + } else { + const newSize = merge(buffers, mode, chunk) + if (!streamBufferingLoggedWarning && bytesSeen > size * 2) { + streamBufferingLoggedWarning = true + logger === null || logger === void 0 + ? void 0 + : logger.warn( + `@smithy/util-stream - stream chunk size ${chunkSize} is below threshold of ${size}, automatically buffering.` + ) + } + if (newSize >= size) { + controller.enqueue(flush(buffers, mode)) + } else { + await pull(controller) + } + } + } + } + return new ReadableStream({ + pull + }) } - } - canonical[canonicalHeaderName] = headers[headerName].trim().replace(/\s+/g, " "); - } - return canonical; -}, "getCanonicalHeaders"); - -// src/getCanonicalQuery.ts -var import_util_uri_escape = __nccwpck_require__(6480); -var getCanonicalQuery = /* @__PURE__ */ __name(({ query = {} }) => { - const keys = []; - const serialized = {}; - for (const key of Object.keys(query)) { - if (key.toLowerCase() === SIGNATURE_HEADER) { - continue; - } - const encodedKey = (0, import_util_uri_escape.escapeUri)(key); - keys.push(encodedKey); - const value = query[key]; - if (typeof value === "string") { - serialized[encodedKey] = `${encodedKey}=${(0, import_util_uri_escape.escapeUri)(value)}`; - } else if (Array.isArray(value)) { - serialized[encodedKey] = value.slice(0).reduce((encoded, value2) => encoded.concat([`${encodedKey}=${(0, import_util_uri_escape.escapeUri)(value2)}`]), []).sort().join("&"); - } - } - return keys.sort().map((key) => serialized[key]).filter((serialized2) => serialized2).join("&"); -}, "getCanonicalQuery"); + exports.createBufferedReadableStream = createBufferedReadableStream + exports.createBufferedReadable = createBufferedReadableStream + function merge(buffers, mode, chunk) { + switch (mode) { + case 0: + buffers[0] += chunk + return sizeOf(buffers[0]) + case 1: + case 2: + buffers[mode].push(chunk) + return sizeOf(buffers[mode]) + } + } + exports.merge = merge + function flush(buffers, mode) { + switch (mode) { + case 0: + const s = buffers[0] + buffers[0] = '' + return s + case 1: + case 2: + return buffers[mode].flush() + } + throw new Error( + `@smithy/util-stream - invalid index ${mode} given to flush()` + ) + } + exports.flush = flush + function sizeOf(chunk) { + var _a, _b + return (_b = + (_a = + chunk === null || chunk === void 0 ? void 0 : chunk.byteLength) !== + null && _a !== void 0 + ? _a + : chunk === null || chunk === void 0 + ? void 0 + : chunk.length) !== null && _b !== void 0 + ? _b + : 0 + } + exports.sizeOf = sizeOf + function modeOf(chunk, allowBuffer = true) { + if ( + allowBuffer && + typeof Buffer !== 'undefined' && + chunk instanceof Buffer + ) { + return 2 + } + if (chunk instanceof Uint8Array) { + return 1 + } + if (typeof chunk === 'string') { + return 0 + } + return -1 + } + exports.modeOf = modeOf -// src/getPayloadHash.ts -var import_is_array_buffer = __nccwpck_require__(25796); + /***/ + }, -var import_util_utf82 = __nccwpck_require__(76749); -var getPayloadHash = /* @__PURE__ */ __name(async ({ headers, body }, hashConstructor) => { - for (const headerName of Object.keys(headers)) { - if (headerName.toLowerCase() === SHA256_HEADER) { - return headers[headerName]; - } - } - if (body == void 0) { - return "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"; - } else if (typeof body === "string" || ArrayBuffer.isView(body) || (0, import_is_array_buffer.isArrayBuffer)(body)) { - const hashCtor = new hashConstructor(); - hashCtor.update((0, import_util_utf82.toUint8Array)(body)); - return (0, import_util_hex_encoding.toHex)(await hashCtor.digest()); - } - return UNSIGNED_PAYLOAD; -}, "getPayloadHash"); + /***/ 66508: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getAwsChunkedEncodingStream = void 0 + const stream_1 = __nccwpck_require__(12781) + const getAwsChunkedEncodingStream = (readableStream, options) => { + const { + base64Encoder, + bodyLengthChecker, + checksumAlgorithmFn, + checksumLocationName, + streamHasher + } = options + const checksumRequired = + base64Encoder !== undefined && + checksumAlgorithmFn !== undefined && + checksumLocationName !== undefined && + streamHasher !== undefined + const digest = checksumRequired + ? streamHasher(checksumAlgorithmFn, readableStream) + : undefined + const awsChunkedEncodingStream = new stream_1.Readable({ + read: () => {} + }) + readableStream.on('data', data => { + const length = bodyLengthChecker(data) || 0 + awsChunkedEncodingStream.push(`${length.toString(16)}\r\n`) + awsChunkedEncodingStream.push(data) + awsChunkedEncodingStream.push('\r\n') + }) + readableStream.on('end', async () => { + awsChunkedEncodingStream.push(`0\r\n`) + if (checksumRequired) { + const checksum = base64Encoder(await digest) + awsChunkedEncodingStream.push( + `${checksumLocationName}:${checksum}\r\n` + ) + awsChunkedEncodingStream.push(`\r\n`) + } + awsChunkedEncodingStream.push(null) + }) + return awsChunkedEncodingStream + } + exports.getAwsChunkedEncodingStream = getAwsChunkedEncodingStream -// src/HeaderFormatter.ts + /***/ + }, -var import_util_utf83 = __nccwpck_require__(76749); -var HeaderFormatter = class { - static { - __name(this, "HeaderFormatter"); - } - format(headers) { - const chunks = []; - for (const headerName of Object.keys(headers)) { - const bytes = (0, import_util_utf83.fromUtf8)(headerName); - chunks.push(Uint8Array.from([bytes.byteLength]), bytes, this.formatHeaderValue(headers[headerName])); - } - const out = new Uint8Array(chunks.reduce((carry, bytes) => carry + bytes.byteLength, 0)); - let position = 0; - for (const chunk of chunks) { - out.set(chunk, position); - position += chunk.byteLength; - } - return out; - } - formatHeaderValue(header) { - switch (header.type) { - case "boolean": - return Uint8Array.from([header.value ? 0 /* boolTrue */ : 1 /* boolFalse */]); - case "byte": - return Uint8Array.from([2 /* byte */, header.value]); - case "short": - const shortView = new DataView(new ArrayBuffer(3)); - shortView.setUint8(0, 3 /* short */); - shortView.setInt16(1, header.value, false); - return new Uint8Array(shortView.buffer); - case "integer": - const intView = new DataView(new ArrayBuffer(5)); - intView.setUint8(0, 4 /* integer */); - intView.setInt32(1, header.value, false); - return new Uint8Array(intView.buffer); - case "long": - const longBytes = new Uint8Array(9); - longBytes[0] = 5 /* long */; - longBytes.set(header.value.bytes, 1); - return longBytes; - case "binary": - const binView = new DataView(new ArrayBuffer(3 + header.value.byteLength)); - binView.setUint8(0, 6 /* byteArray */); - binView.setUint16(1, header.value.byteLength, false); - const binBytes = new Uint8Array(binView.buffer); - binBytes.set(header.value, 3); - return binBytes; - case "string": - const utf8Bytes = (0, import_util_utf83.fromUtf8)(header.value); - const strView = new DataView(new ArrayBuffer(3 + utf8Bytes.byteLength)); - strView.setUint8(0, 7 /* string */); - strView.setUint16(1, utf8Bytes.byteLength, false); - const strBytes = new Uint8Array(strView.buffer); - strBytes.set(utf8Bytes, 3); - return strBytes; - case "timestamp": - const tsBytes = new Uint8Array(9); - tsBytes[0] = 8 /* timestamp */; - tsBytes.set(Int64.fromNumber(header.value.valueOf()).bytes, 1); - return tsBytes; - case "uuid": - if (!UUID_PATTERN.test(header.value)) { - throw new Error(`Invalid UUID received: ${header.value}`); - } - const uuidBytes = new Uint8Array(17); - uuidBytes[0] = 9 /* uuid */; - uuidBytes.set((0, import_util_hex_encoding.fromHex)(header.value.replace(/\-/g, "")), 1); - return uuidBytes; - } - } -}; -var UUID_PATTERN = /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/; -var Int64 = class _Int64 { - constructor(bytes) { - this.bytes = bytes; - if (bytes.byteLength !== 8) { - throw new Error("Int64 buffers must be exactly 8 bytes"); - } - } - static { - __name(this, "Int64"); - } - static fromNumber(number) { - if (number > 9223372036854776e3 || number < -9223372036854776e3) { - throw new Error(`${number} is too large (or, if negative, too small) to represent as an Int64`); - } - const bytes = new Uint8Array(8); - for (let i = 7, remaining = Math.abs(Math.round(number)); i > -1 && remaining > 0; i--, remaining /= 256) { - bytes[i] = remaining; - } - if (number < 0) { - negate(bytes); - } - return new _Int64(bytes); - } - /** - * Called implicitly by infix arithmetic operators. - */ - valueOf() { - const bytes = this.bytes.slice(0); - const negative = bytes[0] & 128; - if (negative) { - negate(bytes); - } - return parseInt((0, import_util_hex_encoding.toHex)(bytes), 16) * (negative ? -1 : 1); - } - toString() { - return String(this.valueOf()); - } -}; -function negate(bytes) { - for (let i = 0; i < 8; i++) { - bytes[i] ^= 255; - } - for (let i = 7; i > -1; i--) { - bytes[i]++; - if (bytes[i] !== 0) - break; - } -} -__name(negate, "negate"); - -// src/headerUtil.ts -var hasHeader = /* @__PURE__ */ __name((soughtHeader, headers) => { - soughtHeader = soughtHeader.toLowerCase(); - for (const headerName of Object.keys(headers)) { - if (soughtHeader === headerName.toLowerCase()) { - return true; - } - } - return false; -}, "hasHeader"); - -// src/moveHeadersToQuery.ts -var import_protocol_http = __nccwpck_require__(18241); -var moveHeadersToQuery = /* @__PURE__ */ __name((request, options = {}) => { - const { headers, query = {} } = import_protocol_http.HttpRequest.clone(request); - for (const name of Object.keys(headers)) { - const lname = name.toLowerCase(); - if (lname.slice(0, 6) === "x-amz-" && !options.unhoistableHeaders?.has(lname) || options.hoistableHeaders?.has(lname)) { - query[name] = headers[name]; - delete headers[name]; - } - } - return { - ...request, - headers, - query - }; -}, "moveHeadersToQuery"); - -// src/prepareRequest.ts - -var prepareRequest = /* @__PURE__ */ __name((request) => { - request = import_protocol_http.HttpRequest.clone(request); - for (const headerName of Object.keys(request.headers)) { - if (GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) { - delete request.headers[headerName]; - } - } - return request; -}, "prepareRequest"); - -// src/utilDate.ts -var iso8601 = /* @__PURE__ */ __name((time) => toDate(time).toISOString().replace(/\.\d{3}Z$/, "Z"), "iso8601"); -var toDate = /* @__PURE__ */ __name((time) => { - if (typeof time === "number") { - return new Date(time * 1e3); - } - if (typeof time === "string") { - if (Number(time)) { - return new Date(Number(time) * 1e3); - } - return new Date(time); - } - return time; -}, "toDate"); - -// src/SignatureV4.ts -var SignatureV4 = class { - constructor({ - applyChecksum, - credentials, - region, - service, - sha256, - uriEscapePath = true - }) { - this.headerFormatter = new HeaderFormatter(); - this.service = service; - this.sha256 = sha256; - this.uriEscapePath = uriEscapePath; - this.applyChecksum = typeof applyChecksum === "boolean" ? applyChecksum : true; - this.regionProvider = (0, import_util_middleware.normalizeProvider)(region); - this.credentialProvider = (0, import_util_middleware.normalizeProvider)(credentials); - } - static { - __name(this, "SignatureV4"); - } - async presign(originalRequest, options = {}) { - const { - signingDate = /* @__PURE__ */ new Date(), - expiresIn = 3600, - unsignableHeaders, - unhoistableHeaders, - signableHeaders, - hoistableHeaders, - signingRegion, - signingService - } = options; - const credentials = await this.credentialProvider(); - this.validateResolvedCredentials(credentials); - const region = signingRegion ?? await this.regionProvider(); - const { longDate, shortDate } = formatDate(signingDate); - if (expiresIn > MAX_PRESIGNED_TTL) { - return Promise.reject( - "Signature version 4 presigned URLs must have an expiration date less than one week in the future" - ); - } - const scope = createScope(shortDate, region, signingService ?? this.service); - const request = moveHeadersToQuery(prepareRequest(originalRequest), { unhoistableHeaders, hoistableHeaders }); - if (credentials.sessionToken) { - request.query[TOKEN_QUERY_PARAM] = credentials.sessionToken; - } - request.query[ALGORITHM_QUERY_PARAM] = ALGORITHM_IDENTIFIER; - request.query[CREDENTIAL_QUERY_PARAM] = `${credentials.accessKeyId}/${scope}`; - request.query[AMZ_DATE_QUERY_PARAM] = longDate; - request.query[EXPIRES_QUERY_PARAM] = expiresIn.toString(10); - const canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders); - request.query[SIGNED_HEADERS_QUERY_PARAM] = getCanonicalHeaderList(canonicalHeaders); - request.query[SIGNATURE_QUERY_PARAM] = await this.getSignature( - longDate, - scope, - this.getSigningKey(credentials, region, shortDate, signingService), - this.createCanonicalRequest(request, canonicalHeaders, await getPayloadHash(originalRequest, this.sha256)) - ); - return request; - } - async sign(toSign, options) { - if (typeof toSign === "string") { - return this.signString(toSign, options); - } else if (toSign.headers && toSign.payload) { - return this.signEvent(toSign, options); - } else if (toSign.message) { - return this.signMessage(toSign, options); - } else { - return this.signRequest(toSign, options); - } - } - async signEvent({ headers, payload }, { signingDate = /* @__PURE__ */ new Date(), priorSignature, signingRegion, signingService }) { - const region = signingRegion ?? await this.regionProvider(); - const { shortDate, longDate } = formatDate(signingDate); - const scope = createScope(shortDate, region, signingService ?? this.service); - const hashedPayload = await getPayloadHash({ headers: {}, body: payload }, this.sha256); - const hash = new this.sha256(); - hash.update(headers); - const hashedHeaders = (0, import_util_hex_encoding.toHex)(await hash.digest()); - const stringToSign = [ - EVENT_ALGORITHM_IDENTIFIER, - longDate, - scope, - priorSignature, - hashedHeaders, - hashedPayload - ].join("\n"); - return this.signString(stringToSign, { signingDate, signingRegion: region, signingService }); - } - async signMessage(signableMessage, { signingDate = /* @__PURE__ */ new Date(), signingRegion, signingService }) { - const promise = this.signEvent( - { - headers: this.headerFormatter.format(signableMessage.message.headers), - payload: signableMessage.message.body - }, - { - signingDate, - signingRegion, - signingService, - priorSignature: signableMessage.priorSignature - } - ); - return promise.then((signature) => { - return { message: signableMessage.message, signature }; - }); - } - async signString(stringToSign, { signingDate = /* @__PURE__ */ new Date(), signingRegion, signingService } = {}) { - const credentials = await this.credentialProvider(); - this.validateResolvedCredentials(credentials); - const region = signingRegion ?? await this.regionProvider(); - const { shortDate } = formatDate(signingDate); - const hash = new this.sha256(await this.getSigningKey(credentials, region, shortDate, signingService)); - hash.update((0, import_util_utf84.toUint8Array)(stringToSign)); - return (0, import_util_hex_encoding.toHex)(await hash.digest()); - } - async signRequest(requestToSign, { - signingDate = /* @__PURE__ */ new Date(), - signableHeaders, - unsignableHeaders, - signingRegion, - signingService - } = {}) { - const credentials = await this.credentialProvider(); - this.validateResolvedCredentials(credentials); - const region = signingRegion ?? await this.regionProvider(); - const request = prepareRequest(requestToSign); - const { longDate, shortDate } = formatDate(signingDate); - const scope = createScope(shortDate, region, signingService ?? this.service); - request.headers[AMZ_DATE_HEADER] = longDate; - if (credentials.sessionToken) { - request.headers[TOKEN_HEADER] = credentials.sessionToken; - } - const payloadHash = await getPayloadHash(request, this.sha256); - if (!hasHeader(SHA256_HEADER, request.headers) && this.applyChecksum) { - request.headers[SHA256_HEADER] = payloadHash; - } - const canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders); - const signature = await this.getSignature( - longDate, - scope, - this.getSigningKey(credentials, region, shortDate, signingService), - this.createCanonicalRequest(request, canonicalHeaders, payloadHash) - ); - request.headers[AUTH_HEADER] = `${ALGORITHM_IDENTIFIER} Credential=${credentials.accessKeyId}/${scope}, SignedHeaders=${getCanonicalHeaderList(canonicalHeaders)}, Signature=${signature}`; - return request; - } - createCanonicalRequest(request, canonicalHeaders, payloadHash) { - const sortedHeaders = Object.keys(canonicalHeaders).sort(); - return `${request.method} -${this.getCanonicalPath(request)} -${getCanonicalQuery(request)} -${sortedHeaders.map((name) => `${name}:${canonicalHeaders[name]}`).join("\n")} + /***/ 94783: /***/ (__unused_webpack_module, exports) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.headStream = void 0 + async function headStream(stream, bytes) { + var _a + let byteLengthCounter = 0 + const chunks = [] + const reader = stream.getReader() + let isDone = false + while (!isDone) { + const { done, value } = await reader.read() + if (value) { + chunks.push(value) + byteLengthCounter += + (_a = + value === null || value === void 0 + ? void 0 + : value.byteLength) !== null && _a !== void 0 + ? _a + : 0 + } + if (byteLengthCounter >= bytes) { + break + } + isDone = done + } + reader.releaseLock() + const collected = new Uint8Array(Math.min(bytes, byteLengthCounter)) + let offset = 0 + for (const chunk of chunks) { + if (chunk.byteLength > collected.byteLength - offset) { + collected.set( + chunk.subarray(0, collected.byteLength - offset), + offset + ) + break + } else { + collected.set(chunk, offset) + } + offset += chunk.length + } + return collected + } + exports.headStream = headStream -${sortedHeaders.join(";")} -${payloadHash}`; - } - async createStringToSign(longDate, credentialScope, canonicalRequest) { - const hash = new this.sha256(); - hash.update((0, import_util_utf84.toUint8Array)(canonicalRequest)); - const hashedRequest = await hash.digest(); - return `${ALGORITHM_IDENTIFIER} -${longDate} -${credentialScope} -${(0, import_util_hex_encoding.toHex)(hashedRequest)}`; - } - getCanonicalPath({ path }) { - if (this.uriEscapePath) { - const normalizedPathSegments = []; - for (const pathSegment of path.split("/")) { - if (pathSegment?.length === 0) - continue; - if (pathSegment === ".") - continue; - if (pathSegment === "..") { - normalizedPathSegments.pop(); - } else { - normalizedPathSegments.push(pathSegment); + /***/ + }, + + /***/ 47443: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.headStream = void 0 + const stream_1 = __nccwpck_require__(12781) + const headStream_browser_1 = __nccwpck_require__(94783) + const stream_type_check_1 = __nccwpck_require__(14229) + const headStream = (stream, bytes) => { + if ((0, stream_type_check_1.isReadableStream)(stream)) { + return (0, headStream_browser_1.headStream)(stream, bytes) } + return new Promise((resolve, reject) => { + const collector = new Collector() + collector.limit = bytes + stream.pipe(collector) + stream.on('error', err => { + collector.end() + reject(err) + }) + collector.on('error', reject) + collector.on('finish', function () { + const bytes = new Uint8Array(Buffer.concat(this.buffers)) + resolve(bytes) + }) + }) } - const normalizedPath = `${path?.startsWith("/") ? "/" : ""}${normalizedPathSegments.join("/")}${normalizedPathSegments.length > 0 && path?.endsWith("/") ? "/" : ""}`; - const doubleEncoded = (0, import_util_uri_escape.escapeUri)(normalizedPath); - return doubleEncoded.replace(/%2F/g, "/"); - } - return path; - } - async getSignature(longDate, credentialScope, keyPromise, canonicalRequest) { - const stringToSign = await this.createStringToSign(longDate, credentialScope, canonicalRequest); - const hash = new this.sha256(await keyPromise); - hash.update((0, import_util_utf84.toUint8Array)(stringToSign)); - return (0, import_util_hex_encoding.toHex)(await hash.digest()); - } - getSigningKey(credentials, region, shortDate, service) { - return getSigningKey(this.sha256, credentials, shortDate, region, service || this.service); - } - validateResolvedCredentials(credentials) { - if (typeof credentials !== "object" || // @ts-expect-error: Property 'accessKeyId' does not exist on type 'object'.ts(2339) - typeof credentials.accessKeyId !== "string" || // @ts-expect-error: Property 'secretAccessKey' does not exist on type 'object'.ts(2339) - typeof credentials.secretAccessKey !== "string") { - throw new Error("Resolved credential object is not valid"); - } - } -}; -var formatDate = /* @__PURE__ */ __name((now) => { - const longDate = iso8601(now).replace(/[\-:]/g, ""); - return { - longDate, - shortDate: longDate.slice(0, 8) - }; -}, "formatDate"); -var getCanonicalHeaderList = /* @__PURE__ */ __name((headers) => Object.keys(headers).sort().join(";"), "getCanonicalHeaderList"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 21433: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - Client: () => Client, - Command: () => Command, - LazyJsonString: () => LazyJsonString, - NoOpLogger: () => NoOpLogger, - SENSITIVE_STRING: () => SENSITIVE_STRING, - ServiceException: () => ServiceException, - _json: () => _json, - collectBody: () => import_protocols.collectBody, - convertMap: () => convertMap, - createAggregatedClient: () => createAggregatedClient, - dateToUtcString: () => dateToUtcString, - decorateServiceException: () => decorateServiceException, - emitWarningIfUnsupportedVersion: () => emitWarningIfUnsupportedVersion, - expectBoolean: () => expectBoolean, - expectByte: () => expectByte, - expectFloat32: () => expectFloat32, - expectInt: () => expectInt, - expectInt32: () => expectInt32, - expectLong: () => expectLong, - expectNonNull: () => expectNonNull, - expectNumber: () => expectNumber, - expectObject: () => expectObject, - expectShort: () => expectShort, - expectString: () => expectString, - expectUnion: () => expectUnion, - extendedEncodeURIComponent: () => import_protocols.extendedEncodeURIComponent, - getArrayIfSingleItem: () => getArrayIfSingleItem, - getDefaultClientConfiguration: () => getDefaultClientConfiguration, - getDefaultExtensionConfiguration: () => getDefaultExtensionConfiguration, - getValueFromTextNode: () => getValueFromTextNode, - handleFloat: () => handleFloat, - isSerializableHeaderValue: () => isSerializableHeaderValue, - limitedParseDouble: () => limitedParseDouble, - limitedParseFloat: () => limitedParseFloat, - limitedParseFloat32: () => limitedParseFloat32, - loadConfigsForDefaultMode: () => loadConfigsForDefaultMode, - logger: () => logger, - map: () => map, - parseBoolean: () => parseBoolean, - parseEpochTimestamp: () => parseEpochTimestamp, - parseRfc3339DateTime: () => parseRfc3339DateTime, - parseRfc3339DateTimeWithOffset: () => parseRfc3339DateTimeWithOffset, - parseRfc7231DateTime: () => parseRfc7231DateTime, - quoteHeader: () => quoteHeader, - resolveDefaultRuntimeConfig: () => resolveDefaultRuntimeConfig, - resolvedPath: () => import_protocols.resolvedPath, - serializeDateTime: () => serializeDateTime, - serializeFloat: () => serializeFloat, - splitEvery: () => splitEvery, - splitHeader: () => splitHeader, - strictParseByte: () => strictParseByte, - strictParseDouble: () => strictParseDouble, - strictParseFloat: () => strictParseFloat, - strictParseFloat32: () => strictParseFloat32, - strictParseInt: () => strictParseInt, - strictParseInt32: () => strictParseInt32, - strictParseLong: () => strictParseLong, - strictParseShort: () => strictParseShort, - take: () => take, - throwDefaultError: () => throwDefaultError, - withBaseException: () => withBaseException -}); -module.exports = __toCommonJS(src_exports); - -// src/client.ts -var import_middleware_stack = __nccwpck_require__(428); -var Client = class { - constructor(config) { - this.config = config; - this.middlewareStack = (0, import_middleware_stack.constructStack)(); - } - static { - __name(this, "Client"); - } - send(command, optionsOrCb, cb) { - const options = typeof optionsOrCb !== "function" ? optionsOrCb : void 0; - const callback = typeof optionsOrCb === "function" ? optionsOrCb : cb; - const useHandlerCache = options === void 0 && this.config.cacheMiddleware === true; - let handler; - if (useHandlerCache) { - if (!this.handlers) { - this.handlers = /* @__PURE__ */ new WeakMap(); - } - const handlers = this.handlers; - if (handlers.has(command.constructor)) { - handler = handlers.get(command.constructor); - } else { - handler = command.resolveMiddleware(this.middlewareStack, this.config, options); - handlers.set(command.constructor, handler); + exports.headStream = headStream + class Collector extends stream_1.Writable { + constructor() { + super(...arguments) + this.buffers = [] + this.limit = Infinity + this.bytesBuffered = 0 + } + _write(chunk, encoding, callback) { + var _a + this.buffers.push(chunk) + this.bytesBuffered += + (_a = chunk.byteLength) !== null && _a !== void 0 ? _a : 0 + if (this.bytesBuffered >= this.limit) { + const excess = this.bytesBuffered - this.limit + const tailBuffer = this.buffers[this.buffers.length - 1] + this.buffers[this.buffers.length - 1] = tailBuffer.subarray( + 0, + tailBuffer.byteLength - excess + ) + this.emit('finish') + } + callback() + } } - } else { - delete this.handlers; - handler = command.resolveMiddleware(this.middlewareStack, this.config, options); - } - if (callback) { - handler(command).then( - (result) => callback(null, result.output), - (err) => callback(err) - ).catch( - // prevent any errors thrown in the callback from triggering an - // unhandled promise rejection - () => { - } - ); - } else { - return handler(command).then((result) => result.output); - } - } - destroy() { - this.config?.requestHandler?.destroy?.(); - delete this.handlers; - } -}; -// src/collect-stream-body.ts -var import_protocols = __nccwpck_require__(22072); + /***/ + }, + + /***/ 60530: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __reExport = (target, mod, secondTarget) => ( + __copyProps(target, mod, 'default'), + secondTarget && __copyProps(secondTarget, mod, 'default') + ) + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -// src/command.ts + // src/index.ts + var src_exports = {} + __export(src_exports, { + Uint8ArrayBlobAdapter: () => Uint8ArrayBlobAdapter + }) + module.exports = __toCommonJS(src_exports) + + // src/blob/transforms.ts + var import_util_base64 = __nccwpck_require__(44079) + var import_util_utf8 = __nccwpck_require__(76749) + function transformToString(payload, encoding = 'utf-8') { + if (encoding === 'base64') { + return (0, import_util_base64.toBase64)(payload) + } + return (0, import_util_utf8.toUtf8)(payload) + } + __name(transformToString, 'transformToString') + function transformFromString(str, encoding) { + if (encoding === 'base64') { + return Uint8ArrayBlobAdapter.mutate( + (0, import_util_base64.fromBase64)(str) + ) + } + return Uint8ArrayBlobAdapter.mutate((0, import_util_utf8.fromUtf8)(str)) + } + __name(transformFromString, 'transformFromString') -var import_types = __nccwpck_require__(63592); -var Command = class { - constructor() { - this.middlewareStack = (0, import_middleware_stack.constructStack)(); - } - static { - __name(this, "Command"); - } - /** - * Factory for Command ClassBuilder. - * @internal - */ - static classBuilder() { - return new ClassBuilder(); - } - /** - * @internal - */ - resolveMiddlewareWithContext(clientStack, configuration, options, { - middlewareFn, - clientName, - commandName, - inputFilterSensitiveLog, - outputFilterSensitiveLog, - smithyContext, - additionalContext, - CommandCtor - }) { - for (const mw of middlewareFn.bind(this)(CommandCtor, clientStack, configuration, options)) { - this.middlewareStack.use(mw); - } - const stack = clientStack.concat(this.middlewareStack); - const { logger: logger2 } = configuration; - const handlerExecutionContext = { - logger: logger2, - clientName, - commandName, - inputFilterSensitiveLog, - outputFilterSensitiveLog, - [import_types.SMITHY_CONTEXT_KEY]: { - commandInstance: this, - ...smithyContext - }, - ...additionalContext - }; - const { requestHandler } = configuration; - return stack.resolve( - (request) => requestHandler.handle(request.request, options || {}), - handlerExecutionContext - ); - } -}; -var ClassBuilder = class { - constructor() { - this._init = () => { - }; - this._ep = {}; - this._middlewareFn = () => []; - this._commandName = ""; - this._clientName = ""; - this._additionalContext = {}; - this._smithyContext = {}; - this._inputFilterSensitiveLog = (_) => _; - this._outputFilterSensitiveLog = (_) => _; - this._serializer = null; - this._deserializer = null; - } - static { - __name(this, "ClassBuilder"); - } - /** - * Optional init callback. - */ - init(cb) { - this._init = cb; - } - /** - * Set the endpoint parameter instructions. - */ - ep(endpointParameterInstructions) { - this._ep = endpointParameterInstructions; - return this; - } - /** - * Add any number of middleware. - */ - m(middlewareSupplier) { - this._middlewareFn = middlewareSupplier; - return this; - } - /** - * Set the initial handler execution context Smithy field. - */ - s(service, operation, smithyContext = {}) { - this._smithyContext = { - service, - operation, - ...smithyContext - }; - return this; - } - /** - * Set the initial handler execution context. - */ - c(additionalContext = {}) { - this._additionalContext = additionalContext; - return this; - } - /** - * Set constant string identifiers for the operation. - */ - n(clientName, commandName) { - this._clientName = clientName; - this._commandName = commandName; - return this; - } - /** - * Set the input and output sensistive log filters. - */ - f(inputFilter = (_) => _, outputFilter = (_) => _) { - this._inputFilterSensitiveLog = inputFilter; - this._outputFilterSensitiveLog = outputFilter; - return this; - } - /** - * Sets the serializer. - */ - ser(serializer) { - this._serializer = serializer; - return this; - } - /** - * Sets the deserializer. - */ - de(deserializer) { - this._deserializer = deserializer; - return this; - } - /** - * @returns a Command class with the classBuilder properties. - */ - build() { - const closure = this; - let CommandRef; - return CommandRef = class extends Command { - /** - * @public - */ - constructor(...[input]) { - super(); + // src/blob/Uint8ArrayBlobAdapter.ts + var Uint8ArrayBlobAdapter = class _Uint8ArrayBlobAdapter extends Uint8Array { + static { + __name(this, 'Uint8ArrayBlobAdapter') + } /** - * @internal + * @param source - such as a string or Stream. + * @returns a new Uint8ArrayBlobAdapter extending Uint8Array. + */ + static fromString(source, encoding = 'utf-8') { + switch (typeof source) { + case 'string': + return transformFromString(source, encoding) + default: + throw new Error( + `Unsupported conversion from ${typeof source} to Uint8ArrayBlobAdapter.` + ) + } + } + /** + * @param source - Uint8Array to be mutated. + * @returns the same Uint8Array but with prototype switched to Uint8ArrayBlobAdapter. */ - // @ts-ignore used in middlewareFn closure. - this.serialize = closure._serializer; + static mutate(source) { + Object.setPrototypeOf(source, _Uint8ArrayBlobAdapter.prototype) + return source + } /** - * @internal + * @param encoding - default 'utf-8'. + * @returns the blob as string. */ - // @ts-ignore used in middlewareFn closure. - this.deserialize = closure._deserializer; - this.input = input ?? {}; - closure._init(this); + transformToString(encoding = 'utf-8') { + return transformToString(this, encoding) + } } - static { - __name(this, "CommandRef"); + + // src/index.ts + __reExport(src_exports, __nccwpck_require__(77733), module.exports) + __reExport(src_exports, __nccwpck_require__(2028), module.exports) + __reExport(src_exports, __nccwpck_require__(86795), module.exports) + __reExport(src_exports, __nccwpck_require__(66508), module.exports) + __reExport(src_exports, __nccwpck_require__(47443), module.exports) + __reExport(src_exports, __nccwpck_require__(50914), module.exports) + __reExport(src_exports, __nccwpck_require__(48623), module.exports) + __reExport(src_exports, __nccwpck_require__(14229), module.exports) + // Annotate the CommonJS export names for ESM import in node: + + 0 && 0 + + /***/ + }, + + /***/ 89498: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.sdkStreamMixin = void 0 + const fetch_http_handler_1 = __nccwpck_require__(28509) + const util_base64_1 = __nccwpck_require__(44079) + const util_hex_encoding_1 = __nccwpck_require__(88310) + const util_utf8_1 = __nccwpck_require__(76749) + const stream_type_check_1 = __nccwpck_require__(14229) + const ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED = + 'The stream has already been transformed.' + const sdkStreamMixin = stream => { + var _a, _b + if ( + !isBlobInstance(stream) && + !(0, stream_type_check_1.isReadableStream)(stream) + ) { + 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 + throw new Error( + `Unexpected stream implementation, expect Blob or ReadableStream, got ${name}` + ) + } + let transformed = false + const transformToByteArray = async () => { + if (transformed) { + throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED) + } + transformed = true + return await (0, fetch_http_handler_1.streamCollector)(stream) + } + const blobToWebStream = blob => { + if (typeof blob.stream !== 'function') { + throw new Error( + 'Cannot transform payload Blob to web stream. Please make sure the Blob.stream() is polyfilled.\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' + ) + } + return blob.stream() + } + return Object.assign(stream, { + transformToByteArray: transformToByteArray, + transformToString: async encoding => { + const buf = await transformToByteArray() + if (encoding === 'base64') { + return (0, util_base64_1.toBase64)(buf) + } else if (encoding === 'hex') { + return (0, util_hex_encoding_1.toHex)(buf) + } else if ( + encoding === undefined || + encoding === 'utf8' || + encoding === 'utf-8' + ) { + return (0, util_utf8_1.toUtf8)(buf) + } else if (typeof TextDecoder === 'function') { + return new TextDecoder(encoding).decode(buf) + } else { + throw new Error( + 'TextDecoder is not available, please make sure polyfill is provided.' + ) + } + }, + transformToWebStream: () => { + if (transformed) { + throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED) + } + transformed = true + if (isBlobInstance(stream)) { + return blobToWebStream(stream) + } else if ((0, stream_type_check_1.isReadableStream)(stream)) { + return stream + } else { + throw new Error( + `Cannot transform payload to web stream, got ${stream}` + ) + } + } + }) } - /** - * @public - */ - static getEndpointParameterInstructions() { - return closure._ep; + exports.sdkStreamMixin = sdkStreamMixin + const isBlobInstance = stream => + typeof Blob === 'function' && stream instanceof Blob + + /***/ + }, + + /***/ 50914: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.sdkStreamMixin = void 0 + const node_http_handler_1 = __nccwpck_require__(96798) + const util_buffer_from_1 = __nccwpck_require__(18614) + const stream_1 = __nccwpck_require__(12781) + const sdk_stream_mixin_browser_1 = __nccwpck_require__(89498) + const ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED = + 'The stream has already been transformed.' + const sdkStreamMixin = stream => { + var _a, _b + if (!(stream instanceof stream_1.Readable)) { + try { + return (0, sdk_stream_mixin_browser_1.sdkStreamMixin)(stream) + } catch (e) { + 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 + throw new Error( + `Unexpected stream implementation, expect Stream.Readable instance, got ${name}` + ) + } + } + let transformed = false + const transformToByteArray = async () => { + if (transformed) { + throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED) + } + transformed = true + return await (0, node_http_handler_1.streamCollector)(stream) + } + return Object.assign(stream, { + transformToByteArray, + transformToString: async encoding => { + const buf = await transformToByteArray() + if (encoding === undefined || Buffer.isEncoding(encoding)) { + return (0, util_buffer_from_1.fromArrayBuffer)( + buf.buffer, + buf.byteOffset, + buf.byteLength + ).toString(encoding) + } else { + const decoder = new TextDecoder(encoding) + return decoder.decode(buf) + } + }, + transformToWebStream: () => { + if (transformed) { + throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED) + } + if (stream.readableFlowing !== null) { + throw new Error( + 'The stream has been consumed by other callbacks.' + ) + } + if (typeof stream_1.Readable.toWeb !== 'function') { + throw new Error( + 'Readable.toWeb() is not supported. Please ensure a polyfill is available.' + ) + } + transformed = true + return stream_1.Readable.toWeb(stream) + } + }) } - /** - * @internal - */ - resolveMiddleware(stack, configuration, options) { - return this.resolveMiddlewareWithContext(stack, configuration, options, { - CommandCtor: CommandRef, - middlewareFn: closure._middlewareFn, - clientName: closure._clientName, - commandName: closure._commandName, - inputFilterSensitiveLog: closure._inputFilterSensitiveLog, - outputFilterSensitiveLog: closure._outputFilterSensitiveLog, - smithyContext: closure._smithyContext, - additionalContext: closure._additionalContext - }); - } - }; - } -}; - -// src/constants.ts -var SENSITIVE_STRING = "***SensitiveInformation***"; - -// src/create-aggregated-client.ts -var createAggregatedClient = /* @__PURE__ */ __name((commands, Client2) => { - for (const command of Object.keys(commands)) { - const CommandCtor = commands[command]; - const methodImpl = /* @__PURE__ */ __name(async function(args, optionsOrCb, cb) { - const command2 = new CommandCtor(args); - if (typeof optionsOrCb === "function") { - this.send(command2, optionsOrCb); - } else if (typeof cb === "function") { - if (typeof optionsOrCb !== "object") - throw new Error(`Expected http options but got ${typeof optionsOrCb}`); - this.send(command2, optionsOrCb || {}, cb); - } else { - return this.send(command2, optionsOrCb); + exports.sdkStreamMixin = sdkStreamMixin + + /***/ + }, + + /***/ 58756: /***/ (__unused_webpack_module, exports) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.splitStream = void 0 + async function splitStream(stream) { + if (typeof stream.stream === 'function') { + stream = stream.stream() + } + const readableStream = stream + return readableStream.tee() } - }, "methodImpl"); - const methodName = (command[0].toLowerCase() + command.slice(1)).replace(/Command$/, ""); - Client2.prototype[methodName] = methodImpl; - } -}, "createAggregatedClient"); - -// src/parse-utils.ts -var parseBoolean = /* @__PURE__ */ __name((value) => { - switch (value) { - case "true": - return true; - case "false": - return false; - default: - throw new Error(`Unable to parse boolean value "${value}"`); - } -}, "parseBoolean"); -var expectBoolean = /* @__PURE__ */ __name((value) => { - if (value === null || value === void 0) { - return void 0; - } - if (typeof value === "number") { - if (value === 0 || value === 1) { - logger.warn(stackTraceWarning(`Expected boolean, got ${typeof value}: ${value}`)); - } - if (value === 0) { - return false; - } - if (value === 1) { - return true; - } - } - if (typeof value === "string") { - const lower = value.toLowerCase(); - if (lower === "false" || lower === "true") { - logger.warn(stackTraceWarning(`Expected boolean, got ${typeof value}: ${value}`)); - } - if (lower === "false") { - return false; - } - if (lower === "true") { - return true; - } - } - if (typeof value === "boolean") { - return value; - } - throw new TypeError(`Expected boolean, got ${typeof value}: ${value}`); -}, "expectBoolean"); -var expectNumber = /* @__PURE__ */ __name((value) => { - if (value === null || value === void 0) { - return void 0; - } - if (typeof value === "string") { - const parsed = parseFloat(value); - if (!Number.isNaN(parsed)) { - if (String(parsed) !== String(value)) { - logger.warn(stackTraceWarning(`Expected number but observed string: ${value}`)); + exports.splitStream = splitStream + + /***/ + }, + + /***/ 48623: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.splitStream = void 0 + const stream_1 = __nccwpck_require__(12781) + const splitStream_browser_1 = __nccwpck_require__(58756) + const stream_type_check_1 = __nccwpck_require__(14229) + async function splitStream(stream) { + if ( + (0, stream_type_check_1.isReadableStream)(stream) || + (0, stream_type_check_1.isBlob)(stream) + ) { + return (0, splitStream_browser_1.splitStream)(stream) + } + const stream1 = new stream_1.PassThrough() + const stream2 = new stream_1.PassThrough() + stream.pipe(stream1) + stream.pipe(stream2) + return [stream1, stream2] } - return parsed; - } - } - if (typeof value === "number") { - return value; - } - throw new TypeError(`Expected number, got ${typeof value}: ${value}`); -}, "expectNumber"); -var MAX_FLOAT = Math.ceil(2 ** 127 * (2 - 2 ** -23)); -var expectFloat32 = /* @__PURE__ */ __name((value) => { - const expected = expectNumber(value); - if (expected !== void 0 && !Number.isNaN(expected) && expected !== Infinity && expected !== -Infinity) { - if (Math.abs(expected) > MAX_FLOAT) { - throw new TypeError(`Expected 32-bit float, got ${value}`); - } - } - return expected; -}, "expectFloat32"); -var expectLong = /* @__PURE__ */ __name((value) => { - if (value === null || value === void 0) { - return void 0; - } - if (Number.isInteger(value) && !Number.isNaN(value)) { - return value; - } - throw new TypeError(`Expected integer, got ${typeof value}: ${value}`); -}, "expectLong"); -var expectInt = expectLong; -var expectInt32 = /* @__PURE__ */ __name((value) => expectSizedInt(value, 32), "expectInt32"); -var expectShort = /* @__PURE__ */ __name((value) => expectSizedInt(value, 16), "expectShort"); -var expectByte = /* @__PURE__ */ __name((value) => expectSizedInt(value, 8), "expectByte"); -var expectSizedInt = /* @__PURE__ */ __name((value, size) => { - const expected = expectLong(value); - if (expected !== void 0 && castInt(expected, size) !== expected) { - throw new TypeError(`Expected ${size}-bit integer, got ${value}`); - } - return expected; -}, "expectSizedInt"); -var castInt = /* @__PURE__ */ __name((value, size) => { - switch (size) { - case 32: - return Int32Array.of(value)[0]; - case 16: - return Int16Array.of(value)[0]; - case 8: - return Int8Array.of(value)[0]; - } -}, "castInt"); -var expectNonNull = /* @__PURE__ */ __name((value, location) => { - if (value === null || value === void 0) { - if (location) { - throw new TypeError(`Expected a non-null value for ${location}`); - } - throw new TypeError("Expected a non-null value"); - } - return value; -}, "expectNonNull"); -var expectObject = /* @__PURE__ */ __name((value) => { - if (value === null || value === void 0) { - return void 0; - } - if (typeof value === "object" && !Array.isArray(value)) { - return value; - } - const receivedType = Array.isArray(value) ? "array" : typeof value; - throw new TypeError(`Expected object, got ${receivedType}: ${value}`); -}, "expectObject"); -var expectString = /* @__PURE__ */ __name((value) => { - if (value === null || value === void 0) { - return void 0; - } - if (typeof value === "string") { - return value; - } - if (["boolean", "number", "bigint"].includes(typeof value)) { - logger.warn(stackTraceWarning(`Expected string, got ${typeof value}: ${value}`)); - return String(value); - } - throw new TypeError(`Expected string, got ${typeof value}: ${value}`); -}, "expectString"); -var expectUnion = /* @__PURE__ */ __name((value) => { - if (value === null || value === void 0) { - return void 0; - } - const asObject = expectObject(value); - const setKeys = Object.entries(asObject).filter(([, v]) => v != null).map(([k]) => k); - if (setKeys.length === 0) { - throw new TypeError(`Unions must have exactly one non-null member. None were found.`); - } - if (setKeys.length > 1) { - throw new TypeError(`Unions must have exactly one non-null member. Keys ${setKeys} were not null.`); - } - return asObject; -}, "expectUnion"); -var strictParseDouble = /* @__PURE__ */ __name((value) => { - if (typeof value == "string") { - return expectNumber(parseNumber(value)); - } - return expectNumber(value); -}, "strictParseDouble"); -var strictParseFloat = strictParseDouble; -var strictParseFloat32 = /* @__PURE__ */ __name((value) => { - if (typeof value == "string") { - return expectFloat32(parseNumber(value)); - } - return expectFloat32(value); -}, "strictParseFloat32"); -var NUMBER_REGEX = /(-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?)|(-?Infinity)|(NaN)/g; -var parseNumber = /* @__PURE__ */ __name((value) => { - const matches = value.match(NUMBER_REGEX); - if (matches === null || matches[0].length !== value.length) { - throw new TypeError(`Expected real number, got implicit NaN`); - } - return parseFloat(value); -}, "parseNumber"); -var limitedParseDouble = /* @__PURE__ */ __name((value) => { - if (typeof value == "string") { - return parseFloatString(value); - } - return expectNumber(value); -}, "limitedParseDouble"); -var handleFloat = limitedParseDouble; -var limitedParseFloat = limitedParseDouble; -var limitedParseFloat32 = /* @__PURE__ */ __name((value) => { - if (typeof value == "string") { - return parseFloatString(value); - } - return expectFloat32(value); -}, "limitedParseFloat32"); -var parseFloatString = /* @__PURE__ */ __name((value) => { - switch (value) { - case "NaN": - return NaN; - case "Infinity": - return Infinity; - case "-Infinity": - return -Infinity; - default: - throw new Error(`Unable to parse float value: ${value}`); - } -}, "parseFloatString"); -var strictParseLong = /* @__PURE__ */ __name((value) => { - if (typeof value === "string") { - return expectLong(parseNumber(value)); - } - return expectLong(value); -}, "strictParseLong"); -var strictParseInt = strictParseLong; -var strictParseInt32 = /* @__PURE__ */ __name((value) => { - if (typeof value === "string") { - return expectInt32(parseNumber(value)); - } - return expectInt32(value); -}, "strictParseInt32"); -var strictParseShort = /* @__PURE__ */ __name((value) => { - if (typeof value === "string") { - return expectShort(parseNumber(value)); - } - return expectShort(value); -}, "strictParseShort"); -var strictParseByte = /* @__PURE__ */ __name((value) => { - if (typeof value === "string") { - return expectByte(parseNumber(value)); - } - return expectByte(value); -}, "strictParseByte"); -var stackTraceWarning = /* @__PURE__ */ __name((message) => { - return String(new TypeError(message).stack || message).split("\n").slice(0, 5).filter((s) => !s.includes("stackTraceWarning")).join("\n"); -}, "stackTraceWarning"); -var logger = { - warn: console.warn -}; - -// src/date-utils.ts -var DAYS = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]; -var MONTHS = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; -function dateToUtcString(date) { - const year = date.getUTCFullYear(); - const month = date.getUTCMonth(); - const dayOfWeek = date.getUTCDay(); - const dayOfMonthInt = date.getUTCDate(); - const hoursInt = date.getUTCHours(); - const minutesInt = date.getUTCMinutes(); - const secondsInt = date.getUTCSeconds(); - const dayOfMonthString = dayOfMonthInt < 10 ? `0${dayOfMonthInt}` : `${dayOfMonthInt}`; - const hoursString = hoursInt < 10 ? `0${hoursInt}` : `${hoursInt}`; - const minutesString = minutesInt < 10 ? `0${minutesInt}` : `${minutesInt}`; - const secondsString = secondsInt < 10 ? `0${secondsInt}` : `${secondsInt}`; - return `${DAYS[dayOfWeek]}, ${dayOfMonthString} ${MONTHS[month]} ${year} ${hoursString}:${minutesString}:${secondsString} GMT`; -} -__name(dateToUtcString, "dateToUtcString"); -var RFC3339 = new RegExp(/^(\d{4})-(\d{2})-(\d{2})[tT](\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?[zZ]$/); -var parseRfc3339DateTime = /* @__PURE__ */ __name((value) => { - if (value === null || value === void 0) { - return void 0; - } - if (typeof value !== "string") { - throw new TypeError("RFC-3339 date-times must be expressed as strings"); - } - const match = RFC3339.exec(value); - if (!match) { - throw new TypeError("Invalid RFC-3339 date-time value"); - } - const [_, yearStr, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds] = match; - const year = strictParseShort(stripLeadingZeroes(yearStr)); - const month = parseDateValue(monthStr, "month", 1, 12); - const day = parseDateValue(dayStr, "day", 1, 31); - return buildDate(year, month, day, { hours, minutes, seconds, fractionalMilliseconds }); -}, "parseRfc3339DateTime"); -var RFC3339_WITH_OFFSET = new RegExp( - /^(\d{4})-(\d{2})-(\d{2})[tT](\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?(([-+]\d{2}\:\d{2})|[zZ])$/ -); -var parseRfc3339DateTimeWithOffset = /* @__PURE__ */ __name((value) => { - if (value === null || value === void 0) { - return void 0; - } - if (typeof value !== "string") { - throw new TypeError("RFC-3339 date-times must be expressed as strings"); - } - const match = RFC3339_WITH_OFFSET.exec(value); - if (!match) { - throw new TypeError("Invalid RFC-3339 date-time value"); - } - const [_, yearStr, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds, offsetStr] = match; - const year = strictParseShort(stripLeadingZeroes(yearStr)); - const month = parseDateValue(monthStr, "month", 1, 12); - const day = parseDateValue(dayStr, "day", 1, 31); - const date = buildDate(year, month, day, { hours, minutes, seconds, fractionalMilliseconds }); - if (offsetStr.toUpperCase() != "Z") { - date.setTime(date.getTime() - parseOffsetToMilliseconds(offsetStr)); - } - return date; -}, "parseRfc3339DateTimeWithOffset"); -var IMF_FIXDATE = new RegExp( - /^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d{2}) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d{1,2}):(\d{2}):(\d{2})(?:\.(\d+))? GMT$/ -); -var RFC_850_DATE = new RegExp( - /^(?:Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d{2})-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d{2}) (\d{1,2}):(\d{2}):(\d{2})(?:\.(\d+))? GMT$/ -); -var ASC_TIME = new RegExp( - /^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( [1-9]|\d{2}) (\d{1,2}):(\d{2}):(\d{2})(?:\.(\d+))? (\d{4})$/ -); -var parseRfc7231DateTime = /* @__PURE__ */ __name((value) => { - if (value === null || value === void 0) { - return void 0; - } - if (typeof value !== "string") { - throw new TypeError("RFC-7231 date-times must be expressed as strings"); - } - let match = IMF_FIXDATE.exec(value); - if (match) { - const [_, dayStr, monthStr, yearStr, hours, minutes, seconds, fractionalMilliseconds] = match; - return buildDate( - strictParseShort(stripLeadingZeroes(yearStr)), - parseMonthByShortName(monthStr), - parseDateValue(dayStr, "day", 1, 31), - { hours, minutes, seconds, fractionalMilliseconds } - ); - } - match = RFC_850_DATE.exec(value); - if (match) { - const [_, dayStr, monthStr, yearStr, hours, minutes, seconds, fractionalMilliseconds] = match; - return adjustRfc850Year( - buildDate(parseTwoDigitYear(yearStr), parseMonthByShortName(monthStr), parseDateValue(dayStr, "day", 1, 31), { - hours, - minutes, - seconds, - fractionalMilliseconds - }) - ); - } - match = ASC_TIME.exec(value); - if (match) { - const [_, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds, yearStr] = match; - return buildDate( - strictParseShort(stripLeadingZeroes(yearStr)), - parseMonthByShortName(monthStr), - parseDateValue(dayStr.trimLeft(), "day", 1, 31), - { hours, minutes, seconds, fractionalMilliseconds } - ); - } - throw new TypeError("Invalid RFC-7231 date-time value"); -}, "parseRfc7231DateTime"); -var parseEpochTimestamp = /* @__PURE__ */ __name((value) => { - if (value === null || value === void 0) { - return void 0; - } - let valueAsDouble; - if (typeof value === "number") { - valueAsDouble = value; - } else if (typeof value === "string") { - valueAsDouble = strictParseDouble(value); - } else if (typeof value === "object" && value.tag === 1) { - valueAsDouble = value.value; - } else { - throw new TypeError("Epoch timestamps must be expressed as floating point numbers or their string representation"); - } - if (Number.isNaN(valueAsDouble) || valueAsDouble === Infinity || valueAsDouble === -Infinity) { - throw new TypeError("Epoch timestamps must be valid, non-Infinite, non-NaN numerics"); - } - return new Date(Math.round(valueAsDouble * 1e3)); -}, "parseEpochTimestamp"); -var buildDate = /* @__PURE__ */ __name((year, month, day, time) => { - const adjustedMonth = month - 1; - validateDayOfMonth(year, adjustedMonth, day); - return new Date( - Date.UTC( - year, - adjustedMonth, - day, - parseDateValue(time.hours, "hour", 0, 23), - parseDateValue(time.minutes, "minute", 0, 59), - // seconds can go up to 60 for leap seconds - parseDateValue(time.seconds, "seconds", 0, 60), - parseMilliseconds(time.fractionalMilliseconds) - ) - ); -}, "buildDate"); -var parseTwoDigitYear = /* @__PURE__ */ __name((value) => { - const thisYear = (/* @__PURE__ */ new Date()).getUTCFullYear(); - const valueInThisCentury = Math.floor(thisYear / 100) * 100 + strictParseShort(stripLeadingZeroes(value)); - if (valueInThisCentury < thisYear) { - return valueInThisCentury + 100; - } - return valueInThisCentury; -}, "parseTwoDigitYear"); -var FIFTY_YEARS_IN_MILLIS = 50 * 365 * 24 * 60 * 60 * 1e3; -var adjustRfc850Year = /* @__PURE__ */ __name((input) => { - if (input.getTime() - (/* @__PURE__ */ new Date()).getTime() > FIFTY_YEARS_IN_MILLIS) { - return new Date( - Date.UTC( - input.getUTCFullYear() - 100, - input.getUTCMonth(), - input.getUTCDate(), - input.getUTCHours(), - input.getUTCMinutes(), - input.getUTCSeconds(), - input.getUTCMilliseconds() - ) - ); - } - return input; -}, "adjustRfc850Year"); -var parseMonthByShortName = /* @__PURE__ */ __name((value) => { - const monthIdx = MONTHS.indexOf(value); - if (monthIdx < 0) { - throw new TypeError(`Invalid month: ${value}`); - } - return monthIdx + 1; -}, "parseMonthByShortName"); -var DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; -var validateDayOfMonth = /* @__PURE__ */ __name((year, month, day) => { - let maxDays = DAYS_IN_MONTH[month]; - if (month === 1 && isLeapYear(year)) { - maxDays = 29; - } - if (day > maxDays) { - throw new TypeError(`Invalid day for ${MONTHS[month]} in ${year}: ${day}`); - } -}, "validateDayOfMonth"); -var isLeapYear = /* @__PURE__ */ __name((year) => { - return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); -}, "isLeapYear"); -var parseDateValue = /* @__PURE__ */ __name((value, type, lower, upper) => { - const dateVal = strictParseByte(stripLeadingZeroes(value)); - if (dateVal < lower || dateVal > upper) { - throw new TypeError(`${type} must be between ${lower} and ${upper}, inclusive`); - } - return dateVal; -}, "parseDateValue"); -var parseMilliseconds = /* @__PURE__ */ __name((value) => { - if (value === null || value === void 0) { - return 0; - } - return strictParseFloat32("0." + value) * 1e3; -}, "parseMilliseconds"); -var parseOffsetToMilliseconds = /* @__PURE__ */ __name((value) => { - const directionStr = value[0]; - let direction = 1; - if (directionStr == "+") { - direction = 1; - } else if (directionStr == "-") { - direction = -1; - } else { - throw new TypeError(`Offset direction, ${directionStr}, must be "+" or "-"`); - } - const hour = Number(value.substring(1, 3)); - const minute = Number(value.substring(4, 6)); - return direction * (hour * 60 + minute) * 60 * 1e3; -}, "parseOffsetToMilliseconds"); -var stripLeadingZeroes = /* @__PURE__ */ __name((value) => { - let idx = 0; - while (idx < value.length - 1 && value.charAt(idx) === "0") { - idx++; - } - if (idx === 0) { - return value; - } - return value.slice(idx); -}, "stripLeadingZeroes"); + exports.splitStream = splitStream -// src/exceptions.ts -var ServiceException = class _ServiceException extends Error { - static { - __name(this, "ServiceException"); - } - constructor(options) { - super(options.message); - Object.setPrototypeOf(this, Object.getPrototypeOf(this).constructor.prototype); - this.name = options.name; - this.$fault = options.$fault; - this.$metadata = options.$metadata; - } - /** - * Checks if a value is an instance of ServiceException (duck typed) - */ - static isInstance(value) { - if (!value) - return false; - const candidate = value; - return _ServiceException.prototype.isPrototypeOf(candidate) || Boolean(candidate.$fault) && Boolean(candidate.$metadata) && (candidate.$fault === "client" || candidate.$fault === "server"); - } - /** - * Custom instanceof check to support the operator for ServiceException base class - */ - static [Symbol.hasInstance](instance) { - if (!instance) - return false; - const candidate = instance; - if (this === _ServiceException) { - return _ServiceException.isInstance(instance); - } - if (_ServiceException.isInstance(instance)) { - if (candidate.name && this.name) { - return this.prototype.isPrototypeOf(instance) || candidate.name === this.name; + /***/ + }, + + /***/ 14229: /***/ (__unused_webpack_module, exports) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.isBlob = exports.isReadableStream = void 0 + const isReadableStream = stream => { + var _a + return ( + typeof ReadableStream === 'function' && + (((_a = + stream === null || stream === void 0 + ? void 0 + : stream.constructor) === null || _a === void 0 + ? void 0 + : _a.name) === ReadableStream.name || + stream instanceof ReadableStream) + ) } - return this.prototype.isPrototypeOf(instance); - } - return false; - } -}; -var decorateServiceException = /* @__PURE__ */ __name((exception, additions = {}) => { - Object.entries(additions).filter(([, v]) => v !== void 0).forEach(([k, v]) => { - if (exception[k] == void 0 || exception[k] === "") { - exception[k] = v; - } - }); - const message = exception.message || exception.Message || "UnknownError"; - exception.message = message; - delete exception.Message; - return exception; -}, "decorateServiceException"); - -// src/default-error-handler.ts -var throwDefaultError = /* @__PURE__ */ __name(({ output, parsedBody, exceptionCtor, errorCode }) => { - const $metadata = deserializeMetadata(output); - const statusCode = $metadata.httpStatusCode ? $metadata.httpStatusCode + "" : void 0; - const response = new exceptionCtor({ - name: parsedBody?.code || parsedBody?.Code || errorCode || statusCode || "UnknownError", - $fault: "client", - $metadata - }); - throw decorateServiceException(response, parsedBody); -}, "throwDefaultError"); -var withBaseException = /* @__PURE__ */ __name((ExceptionCtor) => { - return ({ output, parsedBody, errorCode }) => { - throwDefaultError({ output, parsedBody, exceptionCtor: ExceptionCtor, errorCode }); - }; -}, "withBaseException"); -var deserializeMetadata = /* @__PURE__ */ __name((output) => ({ - httpStatusCode: output.statusCode, - requestId: output.headers["x-amzn-requestid"] ?? output.headers["x-amzn-request-id"] ?? output.headers["x-amz-request-id"], - extendedRequestId: output.headers["x-amz-id-2"], - cfId: output.headers["x-amz-cf-id"] -}), "deserializeMetadata"); - -// src/defaults-mode.ts -var loadConfigsForDefaultMode = /* @__PURE__ */ __name((mode) => { - switch (mode) { - case "standard": - return { - retryMode: "standard", - connectionTimeout: 3100 - }; - case "in-region": - return { - retryMode: "standard", - connectionTimeout: 1100 - }; - case "cross-region": - return { - retryMode: "standard", - connectionTimeout: 3100 - }; - case "mobile": - return { - retryMode: "standard", - connectionTimeout: 3e4 - }; - default: - return {}; - } -}, "loadConfigsForDefaultMode"); + exports.isReadableStream = isReadableStream + const isBlob = blob => { + var _a + return ( + typeof Blob === 'function' && + (((_a = + blob === null || blob === void 0 ? void 0 : blob.constructor) === + null || _a === void 0 + ? void 0 + : _a.name) === Blob.name || + blob instanceof Blob) + ) + } + exports.isBlob = isBlob -// src/emitWarningIfUnsupportedVersion.ts -var warningEmitted = false; -var emitWarningIfUnsupportedVersion = /* @__PURE__ */ __name((version) => { - if (version && !warningEmitted && parseInt(version.substring(1, version.indexOf("."))) < 16) { - warningEmitted = true; - } -}, "emitWarningIfUnsupportedVersion"); + /***/ + }, + + /***/ 6480: /***/ module => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -// src/extended-encode-uri-component.ts + // src/index.ts + var src_exports = {} + __export(src_exports, { + escapeUri: () => escapeUri, + escapeUriPath: () => escapeUriPath + }) + module.exports = __toCommonJS(src_exports) + + // src/escape-uri.ts + var escapeUri = /* @__PURE__ */ __name( + uri => + // AWS percent-encodes some extra non-standard characters in a URI + encodeURIComponent(uri).replace(/[!'()*]/g, hexEncode), + 'escapeUri' + ) + var hexEncode = /* @__PURE__ */ __name( + c => `%${c.charCodeAt(0).toString(16).toUpperCase()}`, + 'hexEncode' + ) + // src/escape-uri-path.ts + var escapeUriPath = /* @__PURE__ */ __name( + uri => uri.split('/').map(escapeUri).join('/'), + 'escapeUriPath' + ) + // Annotate the CommonJS export names for ESM import in node: -// src/extensions/checksum.ts + 0 && 0 -var getChecksumConfiguration = /* @__PURE__ */ __name((runtimeConfig) => { - const checksumAlgorithms = []; - for (const id in import_types.AlgorithmId) { - const algorithmId = import_types.AlgorithmId[id]; - if (runtimeConfig[algorithmId] === void 0) { - continue; - } - checksumAlgorithms.push({ - algorithmId: () => algorithmId, - checksumConstructor: () => runtimeConfig[algorithmId] - }); - } - return { - addChecksumAlgorithm(algo) { - checksumAlgorithms.push(algo); + /***/ }, - checksumAlgorithms() { - return checksumAlgorithms; - } - }; -}, "getChecksumConfiguration"); -var resolveChecksumRuntimeConfig = /* @__PURE__ */ __name((clientConfig) => { - const runtimeConfig = {}; - clientConfig.checksumAlgorithms().forEach((checksumAlgorithm) => { - runtimeConfig[checksumAlgorithm.algorithmId()] = checksumAlgorithm.checksumConstructor(); - }); - return runtimeConfig; -}, "resolveChecksumRuntimeConfig"); - -// src/extensions/retry.ts -var getRetryConfiguration = /* @__PURE__ */ __name((runtimeConfig) => { - return { - setRetryStrategy(retryStrategy) { - runtimeConfig.retryStrategy = retryStrategy; - }, - retryStrategy() { - return runtimeConfig.retryStrategy; - } - }; -}, "getRetryConfiguration"); -var resolveRetryRuntimeConfig = /* @__PURE__ */ __name((retryStrategyConfiguration) => { - const runtimeConfig = {}; - runtimeConfig.retryStrategy = retryStrategyConfiguration.retryStrategy(); - return runtimeConfig; -}, "resolveRetryRuntimeConfig"); - -// src/extensions/defaultExtensionConfiguration.ts -var getDefaultExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => { - return Object.assign(getChecksumConfiguration(runtimeConfig), getRetryConfiguration(runtimeConfig)); -}, "getDefaultExtensionConfiguration"); -var getDefaultClientConfiguration = getDefaultExtensionConfiguration; -var resolveDefaultRuntimeConfig = /* @__PURE__ */ __name((config) => { - return Object.assign(resolveChecksumRuntimeConfig(config), resolveRetryRuntimeConfig(config)); -}, "resolveDefaultRuntimeConfig"); - -// src/get-array-if-single-item.ts -var getArrayIfSingleItem = /* @__PURE__ */ __name((mayBeArray) => Array.isArray(mayBeArray) ? mayBeArray : [mayBeArray], "getArrayIfSingleItem"); - -// src/get-value-from-text-node.ts -var getValueFromTextNode = /* @__PURE__ */ __name((obj) => { - const textNodeName = "#text"; - for (const key in obj) { - if (obj.hasOwnProperty(key) && obj[key][textNodeName] !== void 0) { - obj[key] = obj[key][textNodeName]; - } else if (typeof obj[key] === "object" && obj[key] !== null) { - obj[key] = getValueFromTextNode(obj[key]); - } - } - return obj; -}, "getValueFromTextNode"); -// src/is-serializable-header-value.ts -var isSerializableHeaderValue = /* @__PURE__ */ __name((value) => { - return value != null; -}, "isSerializableHeaderValue"); + /***/ 76749: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -// src/lazy-json.ts -var LazyJsonString = /* @__PURE__ */ __name(function LazyJsonString2(val) { - const str = Object.assign(new String(val), { - deserializeJSON() { - return JSON.parse(String(val)); - }, - toString() { - return String(val); - }, - toJSON() { - return String(val); - } - }); - return str; -}, "LazyJsonString"); -LazyJsonString.from = (object) => { - if (object && typeof object === "object" && (object instanceof LazyJsonString || "deserializeJSON" in object)) { - return object; - } else if (typeof object === "string" || Object.getPrototypeOf(object) === String.prototype) { - return LazyJsonString(String(object)); - } - return LazyJsonString(JSON.stringify(object)); -}; -LazyJsonString.fromObject = LazyJsonString.from; - -// src/NoOpLogger.ts -var NoOpLogger = class { - static { - __name(this, "NoOpLogger"); - } - trace() { - } - debug() { - } - info() { - } - warn() { - } - error() { - } -}; - -// src/object-mapping.ts -function map(arg0, arg1, arg2) { - let target; - let filter; - let instructions; - if (typeof arg1 === "undefined" && typeof arg2 === "undefined") { - target = {}; - instructions = arg0; - } else { - target = arg0; - if (typeof arg1 === "function") { - filter = arg1; - instructions = arg2; - return mapWithFilter(target, filter, instructions); - } else { - instructions = arg1; - } - } - for (const key of Object.keys(instructions)) { - if (!Array.isArray(instructions[key])) { - target[key] = instructions[key]; - continue; - } - applyInstruction(target, null, instructions, key); - } - return target; -} -__name(map, "map"); -var convertMap = /* @__PURE__ */ __name((target) => { - const output = {}; - for (const [k, v] of Object.entries(target || {})) { - output[k] = [, v]; - } - return output; -}, "convertMap"); -var take = /* @__PURE__ */ __name((source, instructions) => { - const out = {}; - for (const key in instructions) { - applyInstruction(out, source, instructions, key); - } - return out; -}, "take"); -var mapWithFilter = /* @__PURE__ */ __name((target, filter, instructions) => { - return map( - target, - Object.entries(instructions).reduce( - (_instructions, [key, value]) => { - if (Array.isArray(value)) { - _instructions[key] = value; - } else { - if (typeof value === "function") { - _instructions[key] = [filter, value()]; - } else { - _instructions[key] = [filter, value]; - } - } - return _instructions; - }, - {} - ) - ); -}, "mapWithFilter"); -var applyInstruction = /* @__PURE__ */ __name((target, source, instructions, targetKey) => { - if (source !== null) { - let instruction = instructions[targetKey]; - if (typeof instruction === "function") { - instruction = [, instruction]; - } - const [filter2 = nonNullish, valueFn = pass, sourceKey = targetKey] = instruction; - if (typeof filter2 === "function" && filter2(source[sourceKey]) || typeof filter2 !== "function" && !!filter2) { - target[targetKey] = valueFn(source[sourceKey]); - } - return; - } - let [filter, value] = instructions[targetKey]; - if (typeof value === "function") { - let _value; - const defaultFilterPassed = filter === void 0 && (_value = value()) != null; - const customFilterPassed = typeof filter === "function" && !!filter(void 0) || typeof filter !== "function" && !!filter; - if (defaultFilterPassed) { - target[targetKey] = _value; - } else if (customFilterPassed) { - target[targetKey] = value(); - } - } else { - const defaultFilterPassed = filter === void 0 && value != null; - const customFilterPassed = typeof filter === "function" && !!filter(value) || typeof filter !== "function" && !!filter; - if (defaultFilterPassed || customFilterPassed) { - target[targetKey] = value; - } - } -}, "applyInstruction"); -var nonNullish = /* @__PURE__ */ __name((_) => _ != null, "nonNullish"); -var pass = /* @__PURE__ */ __name((_) => _, "pass"); - -// src/quote-header.ts -function quoteHeader(part) { - if (part.includes(",") || part.includes('"')) { - part = `"${part.replace(/"/g, '\\"')}"`; - } - return part; -} -__name(quoteHeader, "quoteHeader"); + // src/index.ts + var src_exports = {} + __export(src_exports, { + fromUtf8: () => fromUtf8, + toUint8Array: () => toUint8Array, + toUtf8: () => toUtf8 + }) + module.exports = __toCommonJS(src_exports) + + // src/fromUtf8.ts + var import_util_buffer_from = __nccwpck_require__(18614) + var fromUtf8 = /* @__PURE__ */ __name(input => { + const buf = (0, import_util_buffer_from.fromString)(input, 'utf8') + return new Uint8Array( + buf.buffer, + buf.byteOffset, + buf.byteLength / Uint8Array.BYTES_PER_ELEMENT + ) + }, 'fromUtf8') -// src/resolve-path.ts + // src/toUint8Array.ts + var toUint8Array = /* @__PURE__ */ __name(data => { + if (typeof data === 'string') { + return fromUtf8(data) + } + if (ArrayBuffer.isView(data)) { + return new Uint8Array( + data.buffer, + data.byteOffset, + data.byteLength / Uint8Array.BYTES_PER_ELEMENT + ) + } + return new Uint8Array(data) + }, 'toUint8Array') + // src/toUtf8.ts -// src/ser-utils.ts -var serializeFloat = /* @__PURE__ */ __name((value) => { - if (value !== value) { - return "NaN"; - } - switch (value) { - case Infinity: - return "Infinity"; - case -Infinity: - return "-Infinity"; - default: - return value; - } -}, "serializeFloat"); -var serializeDateTime = /* @__PURE__ */ __name((date) => date.toISOString().replace(".000Z", "Z"), "serializeDateTime"); + var toUtf8 = /* @__PURE__ */ __name(input => { + if (typeof input === 'string') { + return input + } + if ( + typeof input !== 'object' || + typeof input.byteOffset !== 'number' || + typeof input.byteLength !== 'number' + ) { + throw new Error( + '@smithy/util-utf8: toUtf8 encoder function only accepts string | Uint8Array.' + ) + } + return (0, import_util_buffer_from.fromArrayBuffer)( + input.buffer, + input.byteOffset, + input.byteLength + ).toString('utf8') + }, 'toUtf8') + // Annotate the CommonJS export names for ESM import in node: -// src/serde-json.ts -var _json = /* @__PURE__ */ __name((obj) => { - if (obj == null) { - return {}; - } - if (Array.isArray(obj)) { - return obj.filter((_) => _ != null).map(_json); - } - if (typeof obj === "object") { - const target = {}; - for (const key of Object.keys(obj)) { - if (obj[key] == null) { - continue; - } - target[key] = _json(obj[key]); - } - return target; - } - return obj; -}, "_json"); + 0 && 0 -// src/split-every.ts -function splitEvery(value, delimiter, numDelimiters) { - if (numDelimiters <= 0 || !Number.isInteger(numDelimiters)) { - throw new Error("Invalid number of delimiters (" + numDelimiters + ") for splitEvery."); - } - const segments = value.split(delimiter); - if (numDelimiters === 1) { - return segments; - } - const compoundSegments = []; - let currentSegment = ""; - for (let i = 0; i < segments.length; i++) { - if (currentSegment === "") { - currentSegment = segments[i]; - } else { - currentSegment += delimiter + segments[i]; - } - if ((i + 1) % numDelimiters === 0) { - compoundSegments.push(currentSegment); - currentSegment = ""; - } - } - if (currentSegment !== "") { - compoundSegments.push(currentSegment); - } - return compoundSegments; -} -__name(splitEvery, "splitEvery"); - -// src/split-header.ts -var splitHeader = /* @__PURE__ */ __name((value) => { - const z = value.length; - const values = []; - let withinQuotes = false; - let prevChar = void 0; - let anchor = 0; - for (let i = 0; i < z; ++i) { - const char = value[i]; - switch (char) { - case `"`: - if (prevChar !== "\\") { - withinQuotes = !withinQuotes; - } - break; - case ",": - if (!withinQuotes) { - values.push(value.slice(anchor, i)); - anchor = i + 1; - } - break; - default: - } - prevChar = char; - } - values.push(value.slice(anchor)); - return values.map((v) => { - v = v.trim(); - const z2 = v.length; - if (z2 < 2) { - return v; - } - if (v[0] === `"` && v[z2 - 1] === `"`) { - v = v.slice(1, z2 - 1); - } - return v.replace(/\\"/g, '"'); - }); -}, "splitHeader"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 63592: -/***/ ((module) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - AlgorithmId: () => AlgorithmId, - EndpointURLScheme: () => EndpointURLScheme, - FieldPosition: () => FieldPosition, - HttpApiKeyAuthLocation: () => HttpApiKeyAuthLocation, - HttpAuthLocation: () => HttpAuthLocation, - IniSectionType: () => IniSectionType, - RequestHandlerProtocol: () => RequestHandlerProtocol, - SMITHY_CONTEXT_KEY: () => SMITHY_CONTEXT_KEY, - getDefaultClientConfiguration: () => getDefaultClientConfiguration, - resolveDefaultRuntimeConfig: () => resolveDefaultRuntimeConfig -}); -module.exports = __toCommonJS(src_exports); - -// src/auth/auth.ts -var HttpAuthLocation = /* @__PURE__ */ ((HttpAuthLocation2) => { - HttpAuthLocation2["HEADER"] = "header"; - HttpAuthLocation2["QUERY"] = "query"; - return HttpAuthLocation2; -})(HttpAuthLocation || {}); - -// src/auth/HttpApiKeyAuth.ts -var HttpApiKeyAuthLocation = /* @__PURE__ */ ((HttpApiKeyAuthLocation2) => { - HttpApiKeyAuthLocation2["HEADER"] = "header"; - HttpApiKeyAuthLocation2["QUERY"] = "query"; - return HttpApiKeyAuthLocation2; -})(HttpApiKeyAuthLocation || {}); - -// src/endpoint.ts -var EndpointURLScheme = /* @__PURE__ */ ((EndpointURLScheme2) => { - EndpointURLScheme2["HTTP"] = "http"; - EndpointURLScheme2["HTTPS"] = "https"; - return EndpointURLScheme2; -})(EndpointURLScheme || {}); - -// src/extensions/checksum.ts -var AlgorithmId = /* @__PURE__ */ ((AlgorithmId2) => { - AlgorithmId2["MD5"] = "md5"; - AlgorithmId2["CRC32"] = "crc32"; - AlgorithmId2["CRC32C"] = "crc32c"; - AlgorithmId2["SHA1"] = "sha1"; - AlgorithmId2["SHA256"] = "sha256"; - return AlgorithmId2; -})(AlgorithmId || {}); -var getChecksumConfiguration = /* @__PURE__ */ __name((runtimeConfig) => { - const checksumAlgorithms = []; - if (runtimeConfig.sha256 !== void 0) { - checksumAlgorithms.push({ - algorithmId: () => "sha256" /* SHA256 */, - checksumConstructor: () => runtimeConfig.sha256 - }); - } - if (runtimeConfig.md5 != void 0) { - checksumAlgorithms.push({ - algorithmId: () => "md5" /* MD5 */, - checksumConstructor: () => runtimeConfig.md5 - }); - } - return { - addChecksumAlgorithm(algo) { - checksumAlgorithms.push(algo); + /***/ }, - checksumAlgorithms() { - return checksumAlgorithms; - } - }; -}, "getChecksumConfiguration"); -var resolveChecksumRuntimeConfig = /* @__PURE__ */ __name((clientConfig) => { - const runtimeConfig = {}; - clientConfig.checksumAlgorithms().forEach((checksumAlgorithm) => { - runtimeConfig[checksumAlgorithm.algorithmId()] = checksumAlgorithm.checksumConstructor(); - }); - return runtimeConfig; -}, "resolveChecksumRuntimeConfig"); - -// src/extensions/defaultClientConfiguration.ts -var getDefaultClientConfiguration = /* @__PURE__ */ __name((runtimeConfig) => { - return getChecksumConfiguration(runtimeConfig); -}, "getDefaultClientConfiguration"); -var resolveDefaultRuntimeConfig = /* @__PURE__ */ __name((config) => { - return resolveChecksumRuntimeConfig(config); -}, "resolveDefaultRuntimeConfig"); - -// src/http.ts -var FieldPosition = /* @__PURE__ */ ((FieldPosition2) => { - FieldPosition2[FieldPosition2["HEADER"] = 0] = "HEADER"; - FieldPosition2[FieldPosition2["TRAILER"] = 1] = "TRAILER"; - return FieldPosition2; -})(FieldPosition || {}); - -// src/middleware.ts -var SMITHY_CONTEXT_KEY = "__smithy_context"; - -// src/profile.ts -var IniSectionType = /* @__PURE__ */ ((IniSectionType2) => { - IniSectionType2["PROFILE"] = "profile"; - IniSectionType2["SSO_SESSION"] = "sso-session"; - IniSectionType2["SERVICES"] = "services"; - return IniSectionType2; -})(IniSectionType || {}); - -// src/transfer.ts -var RequestHandlerProtocol = /* @__PURE__ */ ((RequestHandlerProtocol2) => { - RequestHandlerProtocol2["HTTP_0_9"] = "http/0.9"; - RequestHandlerProtocol2["HTTP_1_0"] = "http/1.0"; - RequestHandlerProtocol2["TDS_8_0"] = "tds/8.0"; - return RequestHandlerProtocol2; -})(RequestHandlerProtocol || {}); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 94769: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - parseUrl: () => parseUrl -}); -module.exports = __toCommonJS(src_exports); -var import_querystring_parser = __nccwpck_require__(40153); -var parseUrl = /* @__PURE__ */ __name((url) => { - if (typeof url === "string") { - return parseUrl(new URL(url)); - } - const { hostname, pathname, port, protocol, search } = url; - let query; - if (search) { - query = (0, import_querystring_parser.parseQueryString)(search); - } - return { - hostname, - port: port ? parseInt(port) : void 0, - protocol, - path: pathname, - query - }; -}, "parseUrl"); -// Annotate the CommonJS export names for ESM import in node: -0 && (0); + /***/ 36450: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { + value: true + }) + Object.defineProperty(exports, 'NIL', { + enumerable: true, + get: function () { + return _nil.default + } + }) + Object.defineProperty(exports, 'parse', { + enumerable: true, + get: function () { + return _parse.default + } + }) + Object.defineProperty(exports, 'stringify', { + enumerable: true, + get: function () { + return _stringify.default + } + }) + Object.defineProperty(exports, 'v1', { + enumerable: true, + get: function () { + return _v.default + } + }) + Object.defineProperty(exports, 'v3', { + enumerable: true, + get: function () { + return _v2.default + } + }) + Object.defineProperty(exports, 'v4', { + enumerable: true, + get: function () { + return _v3.default + } + }) + Object.defineProperty(exports, 'v5', { + enumerable: true, + get: function () { + return _v4.default + } + }) + Object.defineProperty(exports, 'validate', { + enumerable: true, + get: function () { + return _validate.default + } + }) + Object.defineProperty(exports, 'version', { + enumerable: true, + get: function () { + return _version.default + } + }) + var _v = _interopRequireDefault(__nccwpck_require__(49025)) + var _v2 = _interopRequireDefault(__nccwpck_require__(507)) -/***/ }), + var _v3 = _interopRequireDefault(__nccwpck_require__(8107)) -/***/ 28665: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + var _v4 = _interopRequireDefault(__nccwpck_require__(726)) -"use strict"; + var _nil = _interopRequireDefault(__nccwpck_require__(22276)) -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.fromBase64 = void 0; -const util_buffer_from_1 = __nccwpck_require__(18614); -const BASE64_REGEX = /^[A-Za-z0-9+/]*={0,2}$/; -const fromBase64 = (input) => { - if ((input.length * 3) % 4 !== 0) { - throw new TypeError(`Incorrect padding on base64 string.`); - } - if (!BASE64_REGEX.exec(input)) { - throw new TypeError(`Invalid base64 string.`); - } - const buffer = (0, util_buffer_from_1.fromString)(input, "base64"); - return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength); -}; -exports.fromBase64 = fromBase64; - - -/***/ }), - -/***/ 44079: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + var _version = _interopRequireDefault(__nccwpck_require__(59056)) -// src/index.ts -var src_exports = {}; -module.exports = __toCommonJS(src_exports); -__reExport(src_exports, __nccwpck_require__(28665), module.exports); -__reExport(src_exports, __nccwpck_require__(27995), module.exports); -// Annotate the CommonJS export names for ESM import in node: + var _validate = _interopRequireDefault(__nccwpck_require__(48383)) -0 && (0); + var _stringify = _interopRequireDefault(__nccwpck_require__(63226)) + var _parse = _interopRequireDefault(__nccwpck_require__(35432)) + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } -/***/ }), + /***/ + }, -/***/ 27995: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + /***/ 47884: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -"use strict"; + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.toBase64 = void 0; -const util_buffer_from_1 = __nccwpck_require__(18614); -const util_utf8_1 = __nccwpck_require__(76749); -const toBase64 = (_input) => { - let input; - if (typeof _input === "string") { - input = (0, util_utf8_1.fromUtf8)(_input); - } - else { - input = _input; - } - if (typeof input !== "object" || typeof input.byteOffset !== "number" || typeof input.byteLength !== "number") { - throw new Error("@smithy/util-base64: toBase64 encoder function only accepts string | Uint8Array."); - } - return (0, util_buffer_from_1.fromArrayBuffer)(input.buffer, input.byteOffset, input.byteLength).toString("base64"); -}; -exports.toBase64 = toBase64; - - -/***/ }), - -/***/ 24047: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - calculateBodyLength: () => calculateBodyLength -}); -module.exports = __toCommonJS(src_exports); - -// src/calculateBodyLength.ts -var import_fs = __nccwpck_require__(57147); -var calculateBodyLength = /* @__PURE__ */ __name((body) => { - if (!body) { - return 0; - } - if (typeof body === "string") { - return Buffer.byteLength(body); - } else if (typeof body.byteLength === "number") { - return body.byteLength; - } else if (typeof body.size === "number") { - return body.size; - } else if (typeof body.start === "number" && typeof body.end === "number") { - return body.end + 1 - body.start; - } else if (typeof body.path === "string" || Buffer.isBuffer(body.path)) { - return (0, import_fs.lstatSync)(body.path).size; - } else if (typeof body.fd === "number") { - return (0, import_fs.fstatSync)(body.fd).size; - } - throw new Error(`Body Length computation failed for ${body}`); -}, "calculateBodyLength"); -// Annotate the CommonJS export names for ESM import in node: + var _crypto = _interopRequireDefault(__nccwpck_require__(6113)) -0 && (0); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } + function md5(bytes) { + if (Array.isArray(bytes)) { + bytes = Buffer.from(bytes) + } else if (typeof bytes === 'string') { + bytes = Buffer.from(bytes, 'utf8') + } + return _crypto.default.createHash('md5').update(bytes).digest() + } -/***/ }), + var _default = md5 + exports['default'] = _default -/***/ 18614: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + /***/ + }, -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - fromArrayBuffer: () => fromArrayBuffer, - fromString: () => fromString -}); -module.exports = __toCommonJS(src_exports); -var import_is_array_buffer = __nccwpck_require__(25796); -var import_buffer = __nccwpck_require__(14300); -var fromArrayBuffer = /* @__PURE__ */ __name((input, offset = 0, length = input.byteLength - offset) => { - if (!(0, import_is_array_buffer.isArrayBuffer)(input)) { - throw new TypeError(`The "input" argument must be ArrayBuffer. Received type ${typeof input} (${input})`); - } - return import_buffer.Buffer.from(input, offset, length); -}, "fromArrayBuffer"); -var fromString = /* @__PURE__ */ __name((input, encoding) => { - if (typeof input !== "string") { - throw new TypeError(`The "input" argument must be of type string. Received type ${typeof input} (${input})`); - } - return encoding ? import_buffer.Buffer.from(input, encoding) : import_buffer.Buffer.from(input); -}, "fromString"); -// Annotate the CommonJS export names for ESM import in node: + /***/ 55785: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -0 && (0); + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 + var _crypto = _interopRequireDefault(__nccwpck_require__(6113)) + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } -/***/ }), + var _default = { + randomUUID: _crypto.default.randomUUID + } + exports['default'] = _default -/***/ 15233: -/***/ ((module) => { + /***/ + }, -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - SelectorType: () => SelectorType, - booleanSelector: () => booleanSelector, - numberSelector: () => numberSelector -}); -module.exports = __toCommonJS(src_exports); - -// src/booleanSelector.ts -var booleanSelector = /* @__PURE__ */ __name((obj, key, type) => { - if (!(key in obj)) - return void 0; - if (obj[key] === "true") - return true; - if (obj[key] === "false") - return false; - throw new Error(`Cannot load ${type} "${key}". Expected "true" or "false", got ${obj[key]}.`); -}, "booleanSelector"); - -// src/numberSelector.ts -var numberSelector = /* @__PURE__ */ __name((obj, key, type) => { - if (!(key in obj)) - return void 0; - const numberValue = parseInt(obj[key], 10); - if (Number.isNaN(numberValue)) { - throw new TypeError(`Cannot load ${type} '${key}'. Expected number, got '${obj[key]}'.`); - } - return numberValue; -}, "numberSelector"); - -// src/types.ts -var SelectorType = /* @__PURE__ */ ((SelectorType2) => { - SelectorType2["ENV"] = "env"; - SelectorType2["CONFIG"] = "shared config entry"; - return SelectorType2; -})(SelectorType || {}); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 43762: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __create = Object.create; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __getProtoOf = Object.getPrototypeOf; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. - isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, - mod -)); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - resolveDefaultsModeConfig: () => resolveDefaultsModeConfig -}); -module.exports = __toCommonJS(src_exports); - -// src/resolveDefaultsModeConfig.ts -var import_config_resolver = __nccwpck_require__(99541); -var import_node_config_provider = __nccwpck_require__(85650); -var import_property_provider = __nccwpck_require__(51005); - -// src/constants.ts -var AWS_EXECUTION_ENV = "AWS_EXECUTION_ENV"; -var AWS_REGION_ENV = "AWS_REGION"; -var AWS_DEFAULT_REGION_ENV = "AWS_DEFAULT_REGION"; -var ENV_IMDS_DISABLED = "AWS_EC2_METADATA_DISABLED"; -var DEFAULTS_MODE_OPTIONS = ["in-region", "cross-region", "mobile", "standard", "legacy"]; -var IMDS_REGION_PATH = "/latest/meta-data/placement/region"; - -// src/defaultsModeConfig.ts -var AWS_DEFAULTS_MODE_ENV = "AWS_DEFAULTS_MODE"; -var AWS_DEFAULTS_MODE_CONFIG = "defaults_mode"; -var NODE_DEFAULTS_MODE_CONFIG_OPTIONS = { - environmentVariableSelector: (env) => { - return env[AWS_DEFAULTS_MODE_ENV]; - }, - configFileSelector: (profile) => { - return profile[AWS_DEFAULTS_MODE_CONFIG]; - }, - default: "legacy" -}; - -// src/resolveDefaultsModeConfig.ts -var resolveDefaultsModeConfig = /* @__PURE__ */ __name(({ - region = (0, import_node_config_provider.loadConfig)(import_config_resolver.NODE_REGION_CONFIG_OPTIONS), - defaultsMode = (0, import_node_config_provider.loadConfig)(NODE_DEFAULTS_MODE_CONFIG_OPTIONS) -} = {}) => (0, import_property_provider.memoize)(async () => { - const mode = typeof defaultsMode === "function" ? await defaultsMode() : defaultsMode; - switch (mode?.toLowerCase()) { - case "auto": - return resolveNodeDefaultsModeAuto(region); - case "in-region": - case "cross-region": - case "mobile": - case "standard": - case "legacy": - return Promise.resolve(mode?.toLocaleLowerCase()); - case void 0: - return Promise.resolve("legacy"); - default: - throw new Error( - `Invalid parameter for "defaultsMode", expect ${DEFAULTS_MODE_OPTIONS.join(", ")}, got ${mode}` - ); - } -}), "resolveDefaultsModeConfig"); -var resolveNodeDefaultsModeAuto = /* @__PURE__ */ __name(async (clientRegion) => { - if (clientRegion) { - const resolvedRegion = typeof clientRegion === "function" ? await clientRegion() : clientRegion; - const inferredRegion = await inferPhysicalRegion(); - if (!inferredRegion) { - return "standard"; - } - if (resolvedRegion === inferredRegion) { - return "in-region"; - } else { - return "cross-region"; - } - } - return "standard"; -}, "resolveNodeDefaultsModeAuto"); -var inferPhysicalRegion = /* @__PURE__ */ __name(async () => { - if (process.env[AWS_EXECUTION_ENV] && (process.env[AWS_REGION_ENV] || process.env[AWS_DEFAULT_REGION_ENV])) { - return process.env[AWS_REGION_ENV] ?? process.env[AWS_DEFAULT_REGION_ENV]; - } - if (!process.env[ENV_IMDS_DISABLED]) { - try { - const { getInstanceMetadataEndpoint, httpRequest } = await Promise.resolve().then(() => __toESM(__nccwpck_require__(83588))); - const endpoint = await getInstanceMetadataEndpoint(); - return (await httpRequest({ ...endpoint, path: IMDS_REGION_PATH })).toString(); - } catch (e) { - } - } -}, "inferPhysicalRegion"); -// Annotate the CommonJS export names for ESM import in node: + /***/ 22276: /***/ (__unused_webpack_module, exports) => { + 'use strict' -0 && (0); + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 + var _default = '00000000-0000-0000-0000-000000000000' + exports['default'] = _default + /***/ + }, + /***/ 35432: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -/***/ }), + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 -/***/ 42178: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + var _validate = _interopRequireDefault(__nccwpck_require__(48383)) -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - EndpointCache: () => EndpointCache, - EndpointError: () => EndpointError, - customEndpointFunctions: () => customEndpointFunctions, - isIpAddress: () => isIpAddress, - isValidHostLabel: () => isValidHostLabel, - resolveEndpoint: () => resolveEndpoint -}); -module.exports = __toCommonJS(src_exports); - -// src/cache/EndpointCache.ts -var EndpointCache = class { - /** - * @param [size] - desired average maximum capacity. A buffer of 10 additional keys will be allowed - * before keys are dropped. - * @param [params] - list of params to consider as part of the cache key. - * - * If the params list is not populated, no caching will happen. - * This may be out of order depending on how the object is created and arrives to this class. - */ - constructor({ size, params }) { - this.data = /* @__PURE__ */ new Map(); - this.parameters = []; - this.capacity = size ?? 50; - if (params) { - this.parameters = params; - } - } - static { - __name(this, "EndpointCache"); - } - /** - * @param endpointParams - query for endpoint. - * @param resolver - provider of the value if not present. - * @returns endpoint corresponding to the query. - */ - get(endpointParams, resolver) { - const key = this.hash(endpointParams); - if (key === false) { - return resolver(); - } - if (!this.data.has(key)) { - if (this.data.size > this.capacity + 10) { - const keys = this.data.keys(); - let i = 0; - while (true) { - const { value, done } = keys.next(); - this.data.delete(value); - if (done || ++i > 10) { - break; - } - } - } - this.data.set(key, resolver()); - } - return this.data.get(key); - } - size() { - return this.data.size; - } - /** - * @returns cache key or false if not cachable. - */ - hash(endpointParams) { - let buffer = ""; - const { parameters } = this; - if (parameters.length === 0) { - return false; - } - for (const param of parameters) { - const val = String(endpointParams[param] ?? ""); - if (val.includes("|;")) { - return false; + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } } - buffer += val + "|;"; - } - return buffer; - } -}; - -// src/lib/isIpAddress.ts -var 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}$` -); -var isIpAddress = /* @__PURE__ */ __name((value) => IP_V4_REGEX.test(value) || value.startsWith("[") && value.endsWith("]"), "isIpAddress"); - -// src/lib/isValidHostLabel.ts -var VALID_HOST_LABEL_REGEX = new RegExp(`^(?!.*-$)(?!-)[a-zA-Z0-9-]{1,63}$`); -var isValidHostLabel = /* @__PURE__ */ __name((value, allowSubDomains = false) => { - if (!allowSubDomains) { - return VALID_HOST_LABEL_REGEX.test(value); - } - const labels = value.split("."); - for (const label of labels) { - if (!isValidHostLabel(label)) { - return false; - } - } - return true; -}, "isValidHostLabel"); -// src/utils/customEndpointFunctions.ts -var customEndpointFunctions = {}; + function parse(uuid) { + if (!(0, _validate.default)(uuid)) { + throw TypeError('Invalid UUID') + } -// src/debug/debugId.ts -var debugId = "endpoints"; + let v + const arr = new Uint8Array(16) // Parse ########-....-....-....-............ -// src/debug/toDebugString.ts -function toDebugString(input) { - if (typeof input !== "object" || input == null) { - return input; - } - if ("ref" in input) { - return `$${toDebugString(input.ref)}`; - } - if ("fn" in input) { - return `${input.fn}(${(input.argv || []).map(toDebugString).join(", ")})`; - } - return JSON.stringify(input, null, 2); -} -__name(toDebugString, "toDebugString"); - -// src/types/EndpointError.ts -var EndpointError = class extends Error { - static { - __name(this, "EndpointError"); - } - constructor(message) { - super(message); - this.name = "EndpointError"; - } -}; - -// src/lib/booleanEquals.ts -var booleanEquals = /* @__PURE__ */ __name((value1, value2) => value1 === value2, "booleanEquals"); - -// src/lib/getAttrPathList.ts -var getAttrPathList = /* @__PURE__ */ __name((path) => { - const parts = path.split("."); - const pathList = []; - for (const part of parts) { - const squareBracketIndex = part.indexOf("["); - if (squareBracketIndex !== -1) { - if (part.indexOf("]") !== part.length - 1) { - throw new EndpointError(`Path: '${path}' does not end with ']'`); - } - const arrayIndex = part.slice(squareBracketIndex + 1, -1); - if (Number.isNaN(parseInt(arrayIndex))) { - throw new EndpointError(`Invalid array index: '${arrayIndex}' in path: '${path}'`); - } - if (squareBracketIndex !== 0) { - pathList.push(part.slice(0, squareBracketIndex)); - } - pathList.push(arrayIndex); - } else { - pathList.push(part); - } - } - return pathList; -}, "getAttrPathList"); - -// src/lib/getAttr.ts -var getAttr = /* @__PURE__ */ __name((value, path) => getAttrPathList(path).reduce((acc, index) => { - if (typeof acc !== "object") { - throw new EndpointError(`Index '${index}' in '${path}' not found in '${JSON.stringify(value)}'`); - } else if (Array.isArray(acc)) { - return acc[parseInt(index)]; - } - return acc[index]; -}, value), "getAttr"); - -// src/lib/isSet.ts -var isSet = /* @__PURE__ */ __name((value) => value != null, "isSet"); - -// src/lib/not.ts -var not = /* @__PURE__ */ __name((value) => !value, "not"); - -// src/lib/parseURL.ts -var import_types3 = __nccwpck_require__(63592); -var DEFAULT_PORTS = { - [import_types3.EndpointURLScheme.HTTP]: 80, - [import_types3.EndpointURLScheme.HTTPS]: 443 -}; -var parseURL = /* @__PURE__ */ __name((value) => { - const whatwgURL = (() => { - try { - if (value instanceof URL) { - return value; - } - if (typeof value === "object" && "hostname" in value) { - const { hostname: hostname2, port, protocol: protocol2 = "", path = "", query = {} } = value; - const url = new URL(`${protocol2}//${hostname2}${port ? `:${port}` : ""}${path}`); - url.search = Object.entries(query).map(([k, v]) => `${k}=${v}`).join("&"); - return url; - } - return new URL(value); - } catch (error) { - return null; - } - })(); - if (!whatwgURL) { - console.error(`Unable to parse ${JSON.stringify(value)} as a whatwg URL.`); - return null; - } - const urlString = whatwgURL.href; - const { host, hostname, pathname, protocol, search } = whatwgURL; - if (search) { - return null; - } - const scheme = protocol.slice(0, -1); - if (!Object.values(import_types3.EndpointURLScheme).includes(scheme)) { - return null; - } - const isIp = isIpAddress(hostname); - const inputContainsDefaultPort = urlString.includes(`${host}:${DEFAULT_PORTS[scheme]}`) || typeof value === "string" && value.includes(`${host}:${DEFAULT_PORTS[scheme]}`); - const authority = `${host}${inputContainsDefaultPort ? `:${DEFAULT_PORTS[scheme]}` : ``}`; - return { - scheme, - authority, - path: pathname, - normalizedPath: pathname.endsWith("/") ? pathname : `${pathname}/`, - isIp - }; -}, "parseURL"); - -// src/lib/stringEquals.ts -var stringEquals = /* @__PURE__ */ __name((value1, value2) => value1 === value2, "stringEquals"); - -// src/lib/substring.ts -var substring = /* @__PURE__ */ __name((input, start, stop, reverse) => { - if (start >= stop || input.length < stop) { - return null; - } - if (!reverse) { - return input.substring(start, stop); - } - return input.substring(input.length - stop, input.length - start); -}, "substring"); - -// src/lib/uriEncode.ts -var uriEncode = /* @__PURE__ */ __name((value) => encodeURIComponent(value).replace(/[!*'()]/g, (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`), "uriEncode"); - -// src/utils/endpointFunctions.ts -var endpointFunctions = { - booleanEquals, - getAttr, - isSet, - isValidHostLabel, - not, - parseURL, - stringEquals, - substring, - uriEncode -}; - -// src/utils/evaluateTemplate.ts -var evaluateTemplate = /* @__PURE__ */ __name((template, options) => { - const evaluatedTemplateArr = []; - const templateContext = { - ...options.endpointParams, - ...options.referenceRecord - }; - let currentIndex = 0; - while (currentIndex < template.length) { - const openingBraceIndex = template.indexOf("{", currentIndex); - if (openingBraceIndex === -1) { - evaluatedTemplateArr.push(template.slice(currentIndex)); - break; - } - evaluatedTemplateArr.push(template.slice(currentIndex, openingBraceIndex)); - const closingBraceIndex = template.indexOf("}", openingBraceIndex); - if (closingBraceIndex === -1) { - evaluatedTemplateArr.push(template.slice(openingBraceIndex)); - break; - } - if (template[openingBraceIndex + 1] === "{" && template[closingBraceIndex + 1] === "}") { - evaluatedTemplateArr.push(template.slice(openingBraceIndex + 1, closingBraceIndex)); - currentIndex = closingBraceIndex + 2; - } - const parameterName = template.substring(openingBraceIndex + 1, closingBraceIndex); - if (parameterName.includes("#")) { - const [refName, attrName] = parameterName.split("#"); - evaluatedTemplateArr.push(getAttr(templateContext[refName], attrName)); - } else { - evaluatedTemplateArr.push(templateContext[parameterName]); - } - currentIndex = closingBraceIndex + 1; - } - return evaluatedTemplateArr.join(""); -}, "evaluateTemplate"); - -// src/utils/getReferenceValue.ts -var getReferenceValue = /* @__PURE__ */ __name(({ ref }, options) => { - const referenceRecord = { - ...options.endpointParams, - ...options.referenceRecord - }; - return referenceRecord[ref]; -}, "getReferenceValue"); - -// src/utils/evaluateExpression.ts -var evaluateExpression = /* @__PURE__ */ __name((obj, keyName, options) => { - if (typeof obj === "string") { - return evaluateTemplate(obj, options); - } else if (obj["fn"]) { - return callFunction(obj, options); - } else if (obj["ref"]) { - return getReferenceValue(obj, options); - } - throw new EndpointError(`'${keyName}': ${String(obj)} is not a string, function or reference.`); -}, "evaluateExpression"); - -// src/utils/callFunction.ts -var callFunction = /* @__PURE__ */ __name(({ fn, argv }, options) => { - const evaluatedArgs = argv.map( - (arg) => ["boolean", "number"].includes(typeof arg) ? arg : evaluateExpression(arg, "arg", options) - ); - const fnSegments = fn.split("."); - if (fnSegments[0] in customEndpointFunctions && fnSegments[1] != null) { - return customEndpointFunctions[fnSegments[0]][fnSegments[1]](...evaluatedArgs); - } - return endpointFunctions[fn](...evaluatedArgs); -}, "callFunction"); + arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24 + arr[1] = (v >>> 16) & 0xff + arr[2] = (v >>> 8) & 0xff + arr[3] = v & 0xff // Parse ........-####-....-....-............ -// src/utils/evaluateCondition.ts -var evaluateCondition = /* @__PURE__ */ __name(({ assign, ...fnArgs }, options) => { - if (assign && assign in options.referenceRecord) { - throw new EndpointError(`'${assign}' is already defined in Reference Record.`); - } - const value = callFunction(fnArgs, options); - options.logger?.debug?.(`${debugId} evaluateCondition: ${toDebugString(fnArgs)} = ${toDebugString(value)}`); - return { - result: value === "" ? true : !!value, - ...assign != null && { toAssign: { name: assign, value } } - }; -}, "evaluateCondition"); - -// src/utils/evaluateConditions.ts -var evaluateConditions = /* @__PURE__ */ __name((conditions = [], options) => { - const conditionsReferenceRecord = {}; - for (const condition of conditions) { - const { result, toAssign } = evaluateCondition(condition, { - ...options, - referenceRecord: { - ...options.referenceRecord, - ...conditionsReferenceRecord - } - }); - if (!result) { - return { result }; - } - if (toAssign) { - conditionsReferenceRecord[toAssign.name] = toAssign.value; - options.logger?.debug?.(`${debugId} assign: ${toAssign.name} := ${toDebugString(toAssign.value)}`); - } - } - return { result: true, referenceRecord: conditionsReferenceRecord }; -}, "evaluateConditions"); - -// src/utils/getEndpointHeaders.ts -var getEndpointHeaders = /* @__PURE__ */ __name((headers, options) => Object.entries(headers).reduce( - (acc, [headerKey, headerVal]) => ({ - ...acc, - [headerKey]: headerVal.map((headerValEntry) => { - const processedExpr = evaluateExpression(headerValEntry, "Header value entry", options); - if (typeof processedExpr !== "string") { - throw new EndpointError(`Header '${headerKey}' value '${processedExpr}' is not a string`); - } - return processedExpr; - }) - }), - {} -), "getEndpointHeaders"); - -// src/utils/getEndpointProperty.ts -var getEndpointProperty = /* @__PURE__ */ __name((property, options) => { - if (Array.isArray(property)) { - return property.map((propertyEntry) => getEndpointProperty(propertyEntry, options)); - } - switch (typeof property) { - case "string": - return evaluateTemplate(property, options); - case "object": - if (property === null) { - throw new EndpointError(`Unexpected endpoint property: ${property}`); - } - return getEndpointProperties(property, options); - case "boolean": - return property; - default: - throw new EndpointError(`Unexpected endpoint property type: ${typeof property}`); - } -}, "getEndpointProperty"); - -// src/utils/getEndpointProperties.ts -var getEndpointProperties = /* @__PURE__ */ __name((properties, options) => Object.entries(properties).reduce( - (acc, [propertyKey, propertyVal]) => ({ - ...acc, - [propertyKey]: getEndpointProperty(propertyVal, options) - }), - {} -), "getEndpointProperties"); - -// src/utils/getEndpointUrl.ts -var getEndpointUrl = /* @__PURE__ */ __name((endpointUrl, options) => { - const expression = evaluateExpression(endpointUrl, "Endpoint URL", options); - if (typeof expression === "string") { - try { - return new URL(expression); - } catch (error) { - console.error(`Failed to construct URL with ${expression}`, error); - throw error; - } - } - throw new EndpointError(`Endpoint URL must be a string, got ${typeof expression}`); -}, "getEndpointUrl"); - -// src/utils/evaluateEndpointRule.ts -var evaluateEndpointRule = /* @__PURE__ */ __name((endpointRule, options) => { - const { conditions, endpoint } = endpointRule; - const { result, referenceRecord } = evaluateConditions(conditions, options); - if (!result) { - return; - } - const endpointRuleOptions = { - ...options, - referenceRecord: { ...options.referenceRecord, ...referenceRecord } - }; - const { url, properties, headers } = endpoint; - options.logger?.debug?.(`${debugId} Resolving endpoint from template: ${toDebugString(endpoint)}`); - return { - ...headers != void 0 && { - headers: getEndpointHeaders(headers, endpointRuleOptions) - }, - ...properties != void 0 && { - properties: getEndpointProperties(properties, endpointRuleOptions) - }, - url: getEndpointUrl(url, endpointRuleOptions) - }; -}, "evaluateEndpointRule"); - -// src/utils/evaluateErrorRule.ts -var evaluateErrorRule = /* @__PURE__ */ __name((errorRule, options) => { - const { conditions, error } = errorRule; - const { result, referenceRecord } = evaluateConditions(conditions, options); - if (!result) { - return; - } - throw new EndpointError( - evaluateExpression(error, "Error", { - ...options, - referenceRecord: { ...options.referenceRecord, ...referenceRecord } - }) - ); -}, "evaluateErrorRule"); - -// src/utils/evaluateTreeRule.ts -var evaluateTreeRule = /* @__PURE__ */ __name((treeRule, options) => { - const { conditions, rules } = treeRule; - const { result, referenceRecord } = evaluateConditions(conditions, options); - if (!result) { - return; - } - return evaluateRules(rules, { - ...options, - referenceRecord: { ...options.referenceRecord, ...referenceRecord } - }); -}, "evaluateTreeRule"); - -// src/utils/evaluateRules.ts -var evaluateRules = /* @__PURE__ */ __name((rules, options) => { - for (const rule of rules) { - if (rule.type === "endpoint") { - const endpointOrUndefined = evaluateEndpointRule(rule, options); - if (endpointOrUndefined) { - return endpointOrUndefined; - } - } else if (rule.type === "error") { - evaluateErrorRule(rule, options); - } else if (rule.type === "tree") { - const endpointOrUndefined = evaluateTreeRule(rule, options); - if (endpointOrUndefined) { - return endpointOrUndefined; - } - } else { - throw new EndpointError(`Unknown endpoint rule: ${rule}`); - } - } - throw new EndpointError(`Rules evaluation failed`); -}, "evaluateRules"); - -// src/resolveEndpoint.ts -var resolveEndpoint = /* @__PURE__ */ __name((ruleSetObject, options) => { - const { endpointParams, logger } = options; - const { parameters, rules } = ruleSetObject; - options.logger?.debug?.(`${debugId} Initial EndpointParams: ${toDebugString(endpointParams)}`); - const paramsWithDefault = Object.entries(parameters).filter(([, v]) => v.default != null).map(([k, v]) => [k, v.default]); - if (paramsWithDefault.length > 0) { - for (const [paramKey, paramDefaultValue] of paramsWithDefault) { - endpointParams[paramKey] = endpointParams[paramKey] ?? paramDefaultValue; - } - } - const requiredParams = Object.entries(parameters).filter(([, v]) => v.required).map(([k]) => k); - for (const requiredParam of requiredParams) { - if (endpointParams[requiredParam] == null) { - throw new EndpointError(`Missing required parameter: '${requiredParam}'`); - } - } - const endpoint = evaluateRules(rules, { endpointParams, logger, referenceRecord: {} }); - options.logger?.debug?.(`${debugId} Resolved endpoint: ${toDebugString(endpoint)}`); - return endpoint; -}, "resolveEndpoint"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 88310: -/***/ ((module) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - fromHex: () => fromHex, - toHex: () => toHex -}); -module.exports = __toCommonJS(src_exports); -var SHORT_TO_HEX = {}; -var HEX_TO_SHORT = {}; -for (let i = 0; i < 256; i++) { - let encodedByte = i.toString(16).toLowerCase(); - if (encodedByte.length === 1) { - encodedByte = `0${encodedByte}`; - } - SHORT_TO_HEX[i] = encodedByte; - HEX_TO_SHORT[encodedByte] = i; -} -function fromHex(encoded) { - if (encoded.length % 2 !== 0) { - throw new Error("Hex encoded strings must have an even number length"); - } - const out = new Uint8Array(encoded.length / 2); - for (let i = 0; i < encoded.length; i += 2) { - const encodedByte = encoded.slice(i, i + 2).toLowerCase(); - if (encodedByte in HEX_TO_SHORT) { - out[i / 2] = HEX_TO_SHORT[encodedByte]; - } else { - throw new Error(`Cannot decode unrecognized sequence ${encodedByte} as hexadecimal`); - } - } - return out; -} -__name(fromHex, "fromHex"); -function toHex(bytes) { - let out = ""; - for (let i = 0; i < bytes.byteLength; i++) { - out += SHORT_TO_HEX[bytes[i]]; - } - return out; -} -__name(toHex, "toHex"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 14298: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - getSmithyContext: () => getSmithyContext, - normalizeProvider: () => normalizeProvider -}); -module.exports = __toCommonJS(src_exports); - -// src/getSmithyContext.ts -var import_types = __nccwpck_require__(63592); -var getSmithyContext = /* @__PURE__ */ __name((context) => context[import_types.SMITHY_CONTEXT_KEY] || (context[import_types.SMITHY_CONTEXT_KEY] = {}), "getSmithyContext"); - -// src/normalizeProvider.ts -var normalizeProvider = /* @__PURE__ */ __name((input) => { - if (typeof input === "function") - return input; - const promisified = Promise.resolve(input); - return () => promisified; -}, "normalizeProvider"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 35808: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - AdaptiveRetryStrategy: () => AdaptiveRetryStrategy, - ConfiguredRetryStrategy: () => ConfiguredRetryStrategy, - DEFAULT_MAX_ATTEMPTS: () => DEFAULT_MAX_ATTEMPTS, - DEFAULT_RETRY_DELAY_BASE: () => DEFAULT_RETRY_DELAY_BASE, - DEFAULT_RETRY_MODE: () => DEFAULT_RETRY_MODE, - DefaultRateLimiter: () => DefaultRateLimiter, - INITIAL_RETRY_TOKENS: () => INITIAL_RETRY_TOKENS, - INVOCATION_ID_HEADER: () => INVOCATION_ID_HEADER, - MAXIMUM_RETRY_DELAY: () => MAXIMUM_RETRY_DELAY, - NO_RETRY_INCREMENT: () => NO_RETRY_INCREMENT, - REQUEST_HEADER: () => REQUEST_HEADER, - RETRY_COST: () => RETRY_COST, - RETRY_MODES: () => RETRY_MODES, - StandardRetryStrategy: () => StandardRetryStrategy, - THROTTLING_RETRY_DELAY_BASE: () => THROTTLING_RETRY_DELAY_BASE, - TIMEOUT_RETRY_COST: () => TIMEOUT_RETRY_COST -}); -module.exports = __toCommonJS(src_exports); - -// src/config.ts -var RETRY_MODES = /* @__PURE__ */ ((RETRY_MODES2) => { - RETRY_MODES2["STANDARD"] = "standard"; - RETRY_MODES2["ADAPTIVE"] = "adaptive"; - return RETRY_MODES2; -})(RETRY_MODES || {}); -var DEFAULT_MAX_ATTEMPTS = 3; -var DEFAULT_RETRY_MODE = "standard" /* STANDARD */; - -// src/DefaultRateLimiter.ts -var import_service_error_classification = __nccwpck_require__(4863); -var DefaultRateLimiter = class _DefaultRateLimiter { - constructor(options) { - // Pre-set state variables - this.currentCapacity = 0; - this.enabled = false; - this.lastMaxRate = 0; - this.measuredTxRate = 0; - this.requestCount = 0; - this.lastTimestamp = 0; - this.timeWindow = 0; - this.beta = options?.beta ?? 0.7; - this.minCapacity = options?.minCapacity ?? 1; - this.minFillRate = options?.minFillRate ?? 0.5; - this.scaleConstant = options?.scaleConstant ?? 0.4; - this.smooth = options?.smooth ?? 0.8; - const currentTimeInSeconds = this.getCurrentTimeInSeconds(); - this.lastThrottleTime = currentTimeInSeconds; - this.lastTxRateBucket = Math.floor(this.getCurrentTimeInSeconds()); - this.fillRate = this.minFillRate; - this.maxCapacity = this.minCapacity; - } - static { - __name(this, "DefaultRateLimiter"); - } - static { - /** - * Only used in testing. - */ - this.setTimeoutFn = setTimeout; - } - getCurrentTimeInSeconds() { - return Date.now() / 1e3; - } - async getSendToken() { - return this.acquireTokenBucket(1); - } - async acquireTokenBucket(amount) { - if (!this.enabled) { - return; - } - this.refillTokenBucket(); - if (amount > this.currentCapacity) { - const delay = (amount - this.currentCapacity) / this.fillRate * 1e3; - await new Promise((resolve) => _DefaultRateLimiter.setTimeoutFn(resolve, delay)); - } - this.currentCapacity = this.currentCapacity - amount; - } - refillTokenBucket() { - const timestamp = this.getCurrentTimeInSeconds(); - if (!this.lastTimestamp) { - this.lastTimestamp = timestamp; - return; - } - const fillAmount = (timestamp - this.lastTimestamp) * this.fillRate; - this.currentCapacity = Math.min(this.maxCapacity, this.currentCapacity + fillAmount); - this.lastTimestamp = timestamp; - } - updateClientSendingRate(response) { - let calculatedRate; - this.updateMeasuredRate(); - if ((0, import_service_error_classification.isThrottlingError)(response)) { - const rateToUse = !this.enabled ? this.measuredTxRate : Math.min(this.measuredTxRate, this.fillRate); - this.lastMaxRate = rateToUse; - this.calculateTimeWindow(); - this.lastThrottleTime = this.getCurrentTimeInSeconds(); - calculatedRate = this.cubicThrottle(rateToUse); - this.enableTokenBucket(); - } else { - this.calculateTimeWindow(); - calculatedRate = this.cubicSuccess(this.getCurrentTimeInSeconds()); - } - const newRate = Math.min(calculatedRate, 2 * this.measuredTxRate); - this.updateTokenBucketRate(newRate); - } - calculateTimeWindow() { - this.timeWindow = this.getPrecise(Math.pow(this.lastMaxRate * (1 - this.beta) / this.scaleConstant, 1 / 3)); - } - cubicThrottle(rateToUse) { - return this.getPrecise(rateToUse * this.beta); - } - cubicSuccess(timestamp) { - return this.getPrecise( - this.scaleConstant * Math.pow(timestamp - this.lastThrottleTime - this.timeWindow, 3) + this.lastMaxRate - ); - } - enableTokenBucket() { - this.enabled = true; - } - updateTokenBucketRate(newRate) { - this.refillTokenBucket(); - this.fillRate = Math.max(newRate, this.minFillRate); - this.maxCapacity = Math.max(newRate, this.minCapacity); - this.currentCapacity = Math.min(this.currentCapacity, this.maxCapacity); - } - updateMeasuredRate() { - const t = this.getCurrentTimeInSeconds(); - const timeBucket = Math.floor(t * 2) / 2; - this.requestCount++; - if (timeBucket > this.lastTxRateBucket) { - const currentRate = this.requestCount / (timeBucket - this.lastTxRateBucket); - this.measuredTxRate = this.getPrecise(currentRate * this.smooth + this.measuredTxRate * (1 - this.smooth)); - this.requestCount = 0; - this.lastTxRateBucket = timeBucket; - } - } - getPrecise(num) { - return parseFloat(num.toFixed(8)); - } -}; - -// src/constants.ts -var DEFAULT_RETRY_DELAY_BASE = 100; -var MAXIMUM_RETRY_DELAY = 20 * 1e3; -var THROTTLING_RETRY_DELAY_BASE = 500; -var INITIAL_RETRY_TOKENS = 500; -var RETRY_COST = 5; -var TIMEOUT_RETRY_COST = 10; -var NO_RETRY_INCREMENT = 1; -var INVOCATION_ID_HEADER = "amz-sdk-invocation-id"; -var REQUEST_HEADER = "amz-sdk-request"; - -// src/defaultRetryBackoffStrategy.ts -var getDefaultRetryBackoffStrategy = /* @__PURE__ */ __name(() => { - let delayBase = DEFAULT_RETRY_DELAY_BASE; - const computeNextBackoffDelay = /* @__PURE__ */ __name((attempts) => { - return Math.floor(Math.min(MAXIMUM_RETRY_DELAY, Math.random() * 2 ** attempts * delayBase)); - }, "computeNextBackoffDelay"); - const setDelayBase = /* @__PURE__ */ __name((delay) => { - delayBase = delay; - }, "setDelayBase"); - return { - computeNextBackoffDelay, - setDelayBase - }; -}, "getDefaultRetryBackoffStrategy"); - -// src/defaultRetryToken.ts -var createDefaultRetryToken = /* @__PURE__ */ __name(({ - retryDelay, - retryCount, - retryCost -}) => { - const getRetryCount = /* @__PURE__ */ __name(() => retryCount, "getRetryCount"); - const getRetryDelay = /* @__PURE__ */ __name(() => Math.min(MAXIMUM_RETRY_DELAY, retryDelay), "getRetryDelay"); - const getRetryCost = /* @__PURE__ */ __name(() => retryCost, "getRetryCost"); - return { - getRetryCount, - getRetryDelay, - getRetryCost - }; -}, "createDefaultRetryToken"); - -// src/StandardRetryStrategy.ts -var StandardRetryStrategy = class { - constructor(maxAttempts) { - this.maxAttempts = maxAttempts; - this.mode = "standard" /* STANDARD */; - this.capacity = INITIAL_RETRY_TOKENS; - this.retryBackoffStrategy = getDefaultRetryBackoffStrategy(); - this.maxAttemptsProvider = typeof maxAttempts === "function" ? maxAttempts : async () => maxAttempts; - } - static { - __name(this, "StandardRetryStrategy"); - } - // eslint-disable-next-line @typescript-eslint/no-unused-vars - async acquireInitialRetryToken(retryTokenScope) { - return createDefaultRetryToken({ - retryDelay: DEFAULT_RETRY_DELAY_BASE, - retryCount: 0 - }); - } - async refreshRetryTokenForRetry(token, errorInfo) { - const maxAttempts = await this.getMaxAttempts(); - if (this.shouldRetry(token, errorInfo, maxAttempts)) { - const errorType = errorInfo.errorType; - this.retryBackoffStrategy.setDelayBase( - errorType === "THROTTLING" ? THROTTLING_RETRY_DELAY_BASE : DEFAULT_RETRY_DELAY_BASE - ); - const delayFromErrorType = this.retryBackoffStrategy.computeNextBackoffDelay(token.getRetryCount()); - const retryDelay = errorInfo.retryAfterHint ? Math.max(errorInfo.retryAfterHint.getTime() - Date.now() || 0, delayFromErrorType) : delayFromErrorType; - const capacityCost = this.getCapacityCost(errorType); - this.capacity -= capacityCost; - return createDefaultRetryToken({ - retryDelay, - retryCount: token.getRetryCount() + 1, - retryCost: capacityCost - }); - } - throw new Error("No retry token available"); - } - recordSuccess(token) { - this.capacity = Math.max(INITIAL_RETRY_TOKENS, this.capacity + (token.getRetryCost() ?? NO_RETRY_INCREMENT)); - } - /** - * @returns the current available retry capacity. - * - * This number decreases when retries are executed and refills when requests or retries succeed. - */ - getCapacity() { - return this.capacity; - } - async getMaxAttempts() { - try { - return await this.maxAttemptsProvider(); - } catch (error) { - console.warn(`Max attempts provider could not resolve. Using default of ${DEFAULT_MAX_ATTEMPTS}`); - return DEFAULT_MAX_ATTEMPTS; - } - } - shouldRetry(tokenToRenew, errorInfo, maxAttempts) { - const attempts = tokenToRenew.getRetryCount() + 1; - return attempts < maxAttempts && this.capacity >= this.getCapacityCost(errorInfo.errorType) && this.isRetryableError(errorInfo.errorType); - } - getCapacityCost(errorType) { - return errorType === "TRANSIENT" ? TIMEOUT_RETRY_COST : RETRY_COST; - } - isRetryableError(errorType) { - return errorType === "THROTTLING" || errorType === "TRANSIENT"; - } -}; - -// src/AdaptiveRetryStrategy.ts -var AdaptiveRetryStrategy = class { - constructor(maxAttemptsProvider, options) { - this.maxAttemptsProvider = maxAttemptsProvider; - this.mode = "adaptive" /* ADAPTIVE */; - const { rateLimiter } = options ?? {}; - this.rateLimiter = rateLimiter ?? new DefaultRateLimiter(); - this.standardRetryStrategy = new StandardRetryStrategy(maxAttemptsProvider); - } - static { - __name(this, "AdaptiveRetryStrategy"); - } - async acquireInitialRetryToken(retryTokenScope) { - await this.rateLimiter.getSendToken(); - return this.standardRetryStrategy.acquireInitialRetryToken(retryTokenScope); - } - async refreshRetryTokenForRetry(tokenToRenew, errorInfo) { - this.rateLimiter.updateClientSendingRate(errorInfo); - return this.standardRetryStrategy.refreshRetryTokenForRetry(tokenToRenew, errorInfo); - } - recordSuccess(token) { - this.rateLimiter.updateClientSendingRate({}); - this.standardRetryStrategy.recordSuccess(token); - } -}; + arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8 + arr[5] = v & 0xff // Parse ........-....-####-....-............ -// src/ConfiguredRetryStrategy.ts -var ConfiguredRetryStrategy = class extends StandardRetryStrategy { - static { - __name(this, "ConfiguredRetryStrategy"); - } - /** - * @param maxAttempts - the maximum number of retry attempts allowed. - * e.g., if set to 3, then 4 total requests are possible. - * @param computeNextBackoffDelay - a millisecond delay for each retry or a function that takes the retry attempt - * and returns the delay. - * - * @example exponential backoff. - * ```js - * new Client({ - * retryStrategy: new ConfiguredRetryStrategy(3, (attempt) => attempt ** 2) - * }); - * ``` - * @example constant delay. - * ```js - * new Client({ - * retryStrategy: new ConfiguredRetryStrategy(3, 2000) - * }); - * ``` - */ - constructor(maxAttempts, computeNextBackoffDelay = DEFAULT_RETRY_DELAY_BASE) { - super(typeof maxAttempts === "function" ? maxAttempts : async () => maxAttempts); - if (typeof computeNextBackoffDelay === "number") { - this.computeNextBackoffDelay = () => computeNextBackoffDelay; - } else { - this.computeNextBackoffDelay = computeNextBackoffDelay; - } - } - async refreshRetryTokenForRetry(tokenToRenew, errorInfo) { - const token = await super.refreshRetryTokenForRetry(tokenToRenew, errorInfo); - token.getRetryDelay = () => this.computeNextBackoffDelay(token.getRetryCount()); - return token; - } -}; -// Annotate the CommonJS export names for ESM import in node: + arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8 + arr[7] = v & 0xff // Parse ........-....-....-####-............ -0 && (0); + arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8 + arr[9] = v & 0xff // Parse ........-....-....-....-############ + // (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes) + arr[10] = + ((v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000) & 0xff + arr[11] = (v / 0x100000000) & 0xff + arr[12] = (v >>> 24) & 0xff + arr[13] = (v >>> 16) & 0xff + arr[14] = (v >>> 8) & 0xff + arr[15] = v & 0xff + return arr + } + var _default = parse + exports['default'] = _default -/***/ }), + /***/ + }, -/***/ 29602: -/***/ ((__unused_webpack_module, exports) => { + /***/ 90048: /***/ (__unused_webpack_module, exports) => { + 'use strict' -"use strict"; + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 + var _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 + exports['default'] = _default -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.ByteArrayCollector = void 0; -class ByteArrayCollector { - constructor(allocByteArray) { - this.allocByteArray = allocByteArray; - this.byteLength = 0; - this.byteArrays = []; - } - push(byteArray) { - this.byteArrays.push(byteArray); - this.byteLength += byteArray.byteLength; - } - flush() { - if (this.byteArrays.length === 1) { - const bytes = this.byteArrays[0]; - this.reset(); - return bytes; - } - const aggregation = this.allocByteArray(this.byteLength); - let cursor = 0; - for (let i = 0; i < this.byteArrays.length; ++i) { - const bytes = this.byteArrays[i]; - aggregation.set(bytes, cursor); - cursor += bytes.byteLength; - } - this.reset(); - return aggregation; - } - reset() { - this.byteArrays = []; - this.byteLength = 0; - } -} -exports.ByteArrayCollector = ByteArrayCollector; + /***/ + }, + /***/ 53273: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -/***/ }), + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = rng -/***/ 67592: -/***/ ((__unused_webpack_module, exports) => { + var _crypto = _interopRequireDefault(__nccwpck_require__(6113)) -"use strict"; + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.ChecksumStream = void 0; -const ReadableStreamRef = typeof ReadableStream === "function" ? ReadableStream : function () { }; -class ChecksumStream extends ReadableStreamRef { -} -exports.ChecksumStream = ChecksumStream; + const rnds8Pool = new Uint8Array(256) // # of random values to pre-allocate + let poolPtr = rnds8Pool.length -/***/ }), + function rng() { + if (poolPtr > rnds8Pool.length - 16) { + _crypto.default.randomFillSync(rnds8Pool) -/***/ 77733: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + poolPtr = 0 + } -"use strict"; + return rnds8Pool.slice(poolPtr, (poolPtr += 16)) + } -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.ChecksumStream = void 0; -const util_base64_1 = __nccwpck_require__(44079); -const stream_1 = __nccwpck_require__(12781); -class ChecksumStream extends stream_1.Duplex { - constructor({ expectedChecksum, checksum, source, checksumSourceLocation, base64Encoder, }) { - var _a, _b; - super(); - if (typeof source.pipe === "function") { - this.source = source; - } - else { - throw new Error(`@smithy/util-stream: unsupported source type ${(_b = (_a = source === null || source === void 0 ? void 0 : source.constructor) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : source} in ChecksumStream.`); - } - this.base64Encoder = base64Encoder !== null && base64Encoder !== void 0 ? base64Encoder : util_base64_1.toBase64; - this.expectedChecksum = expectedChecksum; - this.checksum = checksum; - this.checksumSourceLocation = checksumSourceLocation; - this.source.pipe(this); - } - _read(size) { } - _write(chunk, encoding, callback) { - try { - this.checksum.update(chunk); - this.push(chunk); - } - catch (e) { - return callback(e); - } - return callback(); - } - async _final(callback) { - try { - const digest = await this.checksum.digest(); - const received = this.base64Encoder(digest); - if (this.expectedChecksum !== received) { - return callback(new Error(`Checksum mismatch: expected "${this.expectedChecksum}" but received "${received}"` + - ` in response header "${this.checksumSourceLocation}".`)); - } - } - catch (e) { - return callback(e); - } - this.push(null); - return callback(); - } -} -exports.ChecksumStream = ChecksumStream; + /***/ + }, + /***/ 61195: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -/***/ }), + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 -/***/ 66982: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + var _crypto = _interopRequireDefault(__nccwpck_require__(6113)) -"use strict"; + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.createChecksumStream = void 0; -const util_base64_1 = __nccwpck_require__(44079); -const stream_type_check_1 = __nccwpck_require__(14229); -const ChecksumStream_browser_1 = __nccwpck_require__(67592); -const createChecksumStream = ({ expectedChecksum, checksum, source, checksumSourceLocation, base64Encoder, }) => { - var _a, _b; - if (!(0, stream_type_check_1.isReadableStream)(source)) { - throw new Error(`@smithy/util-stream: unsupported source type ${(_b = (_a = source === null || source === void 0 ? void 0 : source.constructor) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : source} in ChecksumStream.`); - } - const encoder = base64Encoder !== null && base64Encoder !== void 0 ? base64Encoder : util_base64_1.toBase64; - if (typeof TransformStream !== "function") { - throw new Error("@smithy/util-stream: unable to instantiate ChecksumStream because API unavailable: ReadableStream/TransformStream."); - } - const transform = new TransformStream({ - start() { }, - async transform(chunk, controller) { - checksum.update(chunk); - controller.enqueue(chunk); - }, - async flush(controller) { - const digest = await checksum.digest(); - const received = encoder(digest); - if (expectedChecksum !== received) { - const error = new Error(`Checksum mismatch: expected "${expectedChecksum}" but received "${received}"` + - ` in response header "${checksumSourceLocation}".`); - controller.error(error); - } - else { - controller.terminate(); - } - }, - }); - source.pipeThrough(transform); - const readable = transform.readable; - Object.setPrototypeOf(readable, ChecksumStream_browser_1.ChecksumStream.prototype); - return readable; -}; -exports.createChecksumStream = createChecksumStream; + function sha1(bytes) { + if (Array.isArray(bytes)) { + bytes = Buffer.from(bytes) + } else if (typeof bytes === 'string') { + bytes = Buffer.from(bytes, 'utf8') + } + return _crypto.default.createHash('sha1').update(bytes).digest() + } -/***/ }), + var _default = sha1 + exports['default'] = _default -/***/ 2028: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + /***/ + }, -"use strict"; + /***/ 63226: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.createChecksumStream = void 0; -const stream_type_check_1 = __nccwpck_require__(14229); -const ChecksumStream_1 = __nccwpck_require__(77733); -const createChecksumStream_browser_1 = __nccwpck_require__(66982); -function createChecksumStream(init) { - if (typeof ReadableStream === "function" && (0, stream_type_check_1.isReadableStream)(init.source)) { - return (0, createChecksumStream_browser_1.createChecksumStream)(init); - } - return new ChecksumStream_1.ChecksumStream(init); -} -exports.createChecksumStream = createChecksumStream; + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 + exports.unsafeStringify = unsafeStringify + var _validate = _interopRequireDefault(__nccwpck_require__(48383)) -/***/ }), + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } -/***/ 86795: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + /** + * Convert array of 16 byte values to UUID string format of the form: + * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX + */ + const byteToHex = [] + + for (let i = 0; i < 256; ++i) { + byteToHex.push((i + 0x100).toString(16).slice(1)) + } + + function unsafeStringify(arr, offset = 0) { + // Note: Be careful editing this code! It's been tuned for performance + // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434 + 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]] + ) + } -"use strict"; + function stringify(arr, offset = 0) { + const uuid = unsafeStringify(arr, offset) // Consistency check for valid UUID. If this throws, it's likely due to one + // of the following: + // - One or more input array values don't map to a hex octet (leading to + // "undefined" in the uuid) + // - Invalid input values for the RFC `version` or `variant` fields -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.createBufferedReadable = void 0; -const node_stream_1 = __nccwpck_require__(84492); -const ByteArrayCollector_1 = __nccwpck_require__(29602); -const createBufferedReadableStream_1 = __nccwpck_require__(47209); -const stream_type_check_1 = __nccwpck_require__(14229); -function createBufferedReadable(upstream, size, logger) { - if ((0, stream_type_check_1.isReadableStream)(upstream)) { - return (0, createBufferedReadableStream_1.createBufferedReadableStream)(upstream, size, logger); - } - const downstream = new node_stream_1.Readable({ read() { } }); - let streamBufferingLoggedWarning = false; - let bytesSeen = 0; - const buffers = [ - "", - new ByteArrayCollector_1.ByteArrayCollector((size) => new Uint8Array(size)), - new ByteArrayCollector_1.ByteArrayCollector((size) => Buffer.from(new Uint8Array(size))), - ]; - let mode = -1; - upstream.on("data", (chunk) => { - const chunkMode = (0, createBufferedReadableStream_1.modeOf)(chunk, true); - if (mode !== chunkMode) { - if (mode >= 0) { - downstream.push((0, createBufferedReadableStream_1.flush)(buffers, mode)); - } - mode = chunkMode; - } - if (mode === -1) { - downstream.push(chunk); - return; - } - const chunkSize = (0, createBufferedReadableStream_1.sizeOf)(chunk); - bytesSeen += chunkSize; - const bufferSize = (0, createBufferedReadableStream_1.sizeOf)(buffers[mode]); - if (chunkSize >= size && bufferSize === 0) { - downstream.push(chunk); - } - else { - const newSize = (0, createBufferedReadableStream_1.merge)(buffers, mode, chunk); - if (!streamBufferingLoggedWarning && bytesSeen > size * 2) { - streamBufferingLoggedWarning = true; - logger === null || logger === void 0 ? void 0 : logger.warn(`@smithy/util-stream - stream chunk size ${chunkSize} is below threshold of ${size}, automatically buffering.`); - } - if (newSize >= size) { - downstream.push((0, createBufferedReadableStream_1.flush)(buffers, mode)); - } - } - }); - upstream.on("end", () => { - if (mode !== -1) { - const remainder = (0, createBufferedReadableStream_1.flush)(buffers, mode); - if ((0, createBufferedReadableStream_1.sizeOf)(remainder) > 0) { - downstream.push(remainder); - } + if (!(0, _validate.default)(uuid)) { + throw TypeError('Stringified UUID is invalid') } - downstream.push(null); - }); - return downstream; -} -exports.createBufferedReadable = createBufferedReadable; + return uuid + } -/***/ }), + var _default = stringify + exports['default'] = _default -/***/ 47209: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + /***/ + }, -"use strict"; + /***/ 49025: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.modeOf = exports.sizeOf = exports.flush = exports.merge = exports.createBufferedReadable = exports.createBufferedReadableStream = void 0; -const ByteArrayCollector_1 = __nccwpck_require__(29602); -function createBufferedReadableStream(upstream, size, logger) { - const reader = upstream.getReader(); - let streamBufferingLoggedWarning = false; - let bytesSeen = 0; - const buffers = ["", new ByteArrayCollector_1.ByteArrayCollector((size) => new Uint8Array(size))]; - let mode = -1; - const pull = async (controller) => { - const { value, done } = await reader.read(); - const chunk = value; - if (done) { - if (mode !== -1) { - const remainder = flush(buffers, mode); - if (sizeOf(remainder) > 0) { - controller.enqueue(remainder); - } - } - controller.close(); - } - else { - const chunkMode = modeOf(chunk, false); - if (mode !== chunkMode) { - if (mode >= 0) { - controller.enqueue(flush(buffers, mode)); - } - mode = chunkMode; - } - if (mode === -1) { - controller.enqueue(chunk); - return; - } - const chunkSize = sizeOf(chunk); - bytesSeen += chunkSize; - const bufferSize = sizeOf(buffers[mode]); - if (chunkSize >= size && bufferSize === 0) { - controller.enqueue(chunk); - } - else { - const newSize = merge(buffers, mode, chunk); - if (!streamBufferingLoggedWarning && bytesSeen > size * 2) { - streamBufferingLoggedWarning = true; - logger === null || logger === void 0 ? void 0 : logger.warn(`@smithy/util-stream - stream chunk size ${chunkSize} is below threshold of ${size}, automatically buffering.`); - } - if (newSize >= size) { - controller.enqueue(flush(buffers, mode)); - } - else { - await pull(controller); - } - } - } - }; - return new ReadableStream({ - pull, - }); -} -exports.createBufferedReadableStream = createBufferedReadableStream; -exports.createBufferedReadable = createBufferedReadableStream; -function merge(buffers, mode, chunk) { - switch (mode) { - case 0: - buffers[0] += chunk; - return sizeOf(buffers[0]); - case 1: - case 2: - buffers[mode].push(chunk); - return sizeOf(buffers[mode]); - } -} -exports.merge = merge; -function flush(buffers, mode) { - switch (mode) { - case 0: - const s = buffers[0]; - buffers[0] = ""; - return s; - case 1: - case 2: - return buffers[mode].flush(); - } - throw new Error(`@smithy/util-stream - invalid index ${mode} given to flush()`); -} -exports.flush = flush; -function sizeOf(chunk) { - var _a, _b; - return (_b = (_a = chunk === null || chunk === void 0 ? void 0 : chunk.byteLength) !== null && _a !== void 0 ? _a : chunk === null || chunk === void 0 ? void 0 : chunk.length) !== null && _b !== void 0 ? _b : 0; -} -exports.sizeOf = sizeOf; -function modeOf(chunk, allowBuffer = true) { - if (allowBuffer && typeof Buffer !== "undefined" && chunk instanceof Buffer) { - return 2; - } - if (chunk instanceof Uint8Array) { - return 1; - } - if (typeof chunk === "string") { - return 0; - } - return -1; -} -exports.modeOf = modeOf; - - -/***/ }), - -/***/ 66508: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getAwsChunkedEncodingStream = void 0; -const stream_1 = __nccwpck_require__(12781); -const getAwsChunkedEncodingStream = (readableStream, options) => { - const { base64Encoder, bodyLengthChecker, checksumAlgorithmFn, checksumLocationName, streamHasher } = options; - const checksumRequired = base64Encoder !== undefined && - checksumAlgorithmFn !== undefined && - checksumLocationName !== undefined && - streamHasher !== undefined; - const digest = checksumRequired ? streamHasher(checksumAlgorithmFn, readableStream) : undefined; - const awsChunkedEncodingStream = new stream_1.Readable({ read: () => { } }); - readableStream.on("data", (data) => { - const length = bodyLengthChecker(data) || 0; - awsChunkedEncodingStream.push(`${length.toString(16)}\r\n`); - awsChunkedEncodingStream.push(data); - awsChunkedEncodingStream.push("\r\n"); - }); - readableStream.on("end", async () => { - awsChunkedEncodingStream.push(`0\r\n`); - if (checksumRequired) { - const checksum = base64Encoder(await digest); - awsChunkedEncodingStream.push(`${checksumLocationName}:${checksum}\r\n`); - awsChunkedEncodingStream.push(`\r\n`); - } - awsChunkedEncodingStream.push(null); - }); - return awsChunkedEncodingStream; -}; -exports.getAwsChunkedEncodingStream = getAwsChunkedEncodingStream; - - -/***/ }), - -/***/ 94783: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.headStream = void 0; -async function headStream(stream, bytes) { - var _a; - let byteLengthCounter = 0; - const chunks = []; - const reader = stream.getReader(); - let isDone = false; - while (!isDone) { - const { done, value } = await reader.read(); - if (value) { - chunks.push(value); - byteLengthCounter += (_a = value === null || value === void 0 ? void 0 : value.byteLength) !== null && _a !== void 0 ? _a : 0; - } - if (byteLengthCounter >= bytes) { - break; - } - isDone = done; - } - reader.releaseLock(); - const collected = new Uint8Array(Math.min(bytes, byteLengthCounter)); - let offset = 0; - for (const chunk of chunks) { - if (chunk.byteLength > collected.byteLength - offset) { - collected.set(chunk.subarray(0, collected.byteLength - offset), offset); - break; - } - else { - collected.set(chunk, offset); - } - offset += chunk.length; - } - return collected; -} -exports.headStream = headStream; + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 + var _rng = _interopRequireDefault(__nccwpck_require__(53273)) -/***/ }), + var _stringify = __nccwpck_require__(63226) -/***/ 47443: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } -"use strict"; + // **`v1()` - Generate time-based UUID** + // + // Inspired by https://github.com/LiosK/UUID.js + // and http://docs.python.org/library/uuid.html + let _nodeId + + let _clockseq // Previous uuid creation time + + let _lastMSecs = 0 + let _lastNSecs = 0 // See https://github.com/uuidjs/uuid for API details + + function v1(options, buf, offset) { + let i = (buf && offset) || 0 + const b = buf || new Array(16) + options = options || {} + let node = options.node || _nodeId + let clockseq = + options.clockseq !== undefined ? options.clockseq : _clockseq // node and clockseq need to be initialized to random values if they're not + // specified. We do this lazily to minimize issues related to insufficient + // system entropy. See #189 + + if (node == null || clockseq == null) { + const seedBytes = options.random || (options.rng || _rng.default)() + + if (node == null) { + // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) + node = _nodeId = [ + seedBytes[0] | 0x01, + seedBytes[1], + seedBytes[2], + seedBytes[3], + seedBytes[4], + seedBytes[5] + ] + } -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.headStream = void 0; -const stream_1 = __nccwpck_require__(12781); -const headStream_browser_1 = __nccwpck_require__(94783); -const stream_type_check_1 = __nccwpck_require__(14229); -const headStream = (stream, bytes) => { - if ((0, stream_type_check_1.isReadableStream)(stream)) { - return (0, headStream_browser_1.headStream)(stream, bytes); - } - return new Promise((resolve, reject) => { - const collector = new Collector(); - collector.limit = bytes; - stream.pipe(collector); - stream.on("error", (err) => { - collector.end(); - reject(err); - }); - collector.on("error", reject); - collector.on("finish", function () { - const bytes = new Uint8Array(Buffer.concat(this.buffers)); - resolve(bytes); - }); - }); -}; -exports.headStream = headStream; -class Collector extends stream_1.Writable { - constructor() { - super(...arguments); - this.buffers = []; - this.limit = Infinity; - this.bytesBuffered = 0; - } - _write(chunk, encoding, callback) { - var _a; - this.buffers.push(chunk); - this.bytesBuffered += (_a = chunk.byteLength) !== null && _a !== void 0 ? _a : 0; - if (this.bytesBuffered >= this.limit) { - const excess = this.bytesBuffered - this.limit; - const tailBuffer = this.buffers[this.buffers.length - 1]; - this.buffers[this.buffers.length - 1] = tailBuffer.subarray(0, tailBuffer.byteLength - excess); - this.emit("finish"); - } - callback(); - } -} - - -/***/ }), - -/***/ 60530: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - Uint8ArrayBlobAdapter: () => Uint8ArrayBlobAdapter -}); -module.exports = __toCommonJS(src_exports); - -// src/blob/transforms.ts -var import_util_base64 = __nccwpck_require__(44079); -var import_util_utf8 = __nccwpck_require__(76749); -function transformToString(payload, encoding = "utf-8") { - if (encoding === "base64") { - return (0, import_util_base64.toBase64)(payload); - } - return (0, import_util_utf8.toUtf8)(payload); -} -__name(transformToString, "transformToString"); -function transformFromString(str, encoding) { - if (encoding === "base64") { - return Uint8ArrayBlobAdapter.mutate((0, import_util_base64.fromBase64)(str)); - } - return Uint8ArrayBlobAdapter.mutate((0, import_util_utf8.fromUtf8)(str)); -} -__name(transformFromString, "transformFromString"); - -// src/blob/Uint8ArrayBlobAdapter.ts -var Uint8ArrayBlobAdapter = class _Uint8ArrayBlobAdapter extends Uint8Array { - static { - __name(this, "Uint8ArrayBlobAdapter"); - } - /** - * @param source - such as a string or Stream. - * @returns a new Uint8ArrayBlobAdapter extending Uint8Array. - */ - static fromString(source, encoding = "utf-8") { - switch (typeof source) { - case "string": - return transformFromString(source, encoding); - default: - throw new Error(`Unsupported conversion from ${typeof source} to Uint8ArrayBlobAdapter.`); - } - } - /** - * @param source - Uint8Array to be mutated. - * @returns the same Uint8Array but with prototype switched to Uint8ArrayBlobAdapter. - */ - static mutate(source) { - Object.setPrototypeOf(source, _Uint8ArrayBlobAdapter.prototype); - return source; - } - /** - * @param encoding - default 'utf-8'. - * @returns the blob as string. - */ - transformToString(encoding = "utf-8") { - return transformToString(this, encoding); - } -}; - -// src/index.ts -__reExport(src_exports, __nccwpck_require__(77733), module.exports); -__reExport(src_exports, __nccwpck_require__(2028), module.exports); -__reExport(src_exports, __nccwpck_require__(86795), module.exports); -__reExport(src_exports, __nccwpck_require__(66508), module.exports); -__reExport(src_exports, __nccwpck_require__(47443), module.exports); -__reExport(src_exports, __nccwpck_require__(50914), module.exports); -__reExport(src_exports, __nccwpck_require__(48623), module.exports); -__reExport(src_exports, __nccwpck_require__(14229), module.exports); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 89498: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.sdkStreamMixin = void 0; -const fetch_http_handler_1 = __nccwpck_require__(28509); -const util_base64_1 = __nccwpck_require__(44079); -const util_hex_encoding_1 = __nccwpck_require__(88310); -const util_utf8_1 = __nccwpck_require__(76749); -const stream_type_check_1 = __nccwpck_require__(14229); -const ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED = "The stream has already been transformed."; -const sdkStreamMixin = (stream) => { - var _a, _b; - if (!isBlobInstance(stream) && !(0, stream_type_check_1.isReadableStream)(stream)) { - 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; - throw new Error(`Unexpected stream implementation, expect Blob or ReadableStream, got ${name}`); - } - let transformed = false; - const transformToByteArray = async () => { - if (transformed) { - throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED); - } - transformed = true; - return await (0, fetch_http_handler_1.streamCollector)(stream); - }; - const blobToWebStream = (blob) => { - if (typeof blob.stream !== "function") { - throw new Error("Cannot transform payload Blob to web stream. Please make sure the Blob.stream() is polyfilled.\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"); - } - return blob.stream(); - }; - return Object.assign(stream, { - transformToByteArray: transformToByteArray, - transformToString: async (encoding) => { - const buf = await transformToByteArray(); - if (encoding === "base64") { - return (0, util_base64_1.toBase64)(buf); - } - else if (encoding === "hex") { - return (0, util_hex_encoding_1.toHex)(buf); - } - else if (encoding === undefined || encoding === "utf8" || encoding === "utf-8") { - return (0, util_utf8_1.toUtf8)(buf); - } - else if (typeof TextDecoder === "function") { - return new TextDecoder(encoding).decode(buf); - } - else { - throw new Error("TextDecoder is not available, please make sure polyfill is provided."); - } - }, - transformToWebStream: () => { - if (transformed) { - throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED); - } - transformed = true; - if (isBlobInstance(stream)) { - return blobToWebStream(stream); - } - else if ((0, stream_type_check_1.isReadableStream)(stream)) { - return stream; - } - else { - throw new Error(`Cannot transform payload to web stream, got ${stream}`); - } - }, - }); -}; -exports.sdkStreamMixin = sdkStreamMixin; -const isBlobInstance = (stream) => typeof Blob === "function" && stream instanceof Blob; + if (clockseq == null) { + // Per 4.2.2, randomize (14 bit) clockseq + clockseq = _clockseq = ((seedBytes[6] << 8) | seedBytes[7]) & 0x3fff + } + } // UUID timestamps are 100 nano-second units since the Gregorian epoch, + // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so + // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' + // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. + let msecs = options.msecs !== undefined ? options.msecs : Date.now() // Per 4.2.1.2, use count of uuid's generated during the current clock + // cycle to simulate higher resolution clock -/***/ }), + let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1 // Time since last uuid creation (in msecs) -/***/ 50914: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000 // Per 4.2.1.2, Bump clockseq on clock regression -"use strict"; + if (dt < 0 && options.clockseq === undefined) { + clockseq = (clockseq + 1) & 0x3fff + } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new + // time interval -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.sdkStreamMixin = void 0; -const node_http_handler_1 = __nccwpck_require__(96798); -const util_buffer_from_1 = __nccwpck_require__(18614); -const stream_1 = __nccwpck_require__(12781); -const sdk_stream_mixin_browser_1 = __nccwpck_require__(89498); -const ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED = "The stream has already been transformed."; -const sdkStreamMixin = (stream) => { - var _a, _b; - if (!(stream instanceof stream_1.Readable)) { - try { - return (0, sdk_stream_mixin_browser_1.sdkStreamMixin)(stream); + if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { + nsecs = 0 + } // Per 4.2.1.2 Throw error if too many uuids are requested + + if (nsecs >= 10000) { + throw new Error("uuid.v1(): Can't create more than 10M uuids/sec") } - catch (e) { - 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; - throw new Error(`Unexpected stream implementation, expect Stream.Readable instance, got ${name}`); + + _lastMSecs = msecs + _lastNSecs = nsecs + _clockseq = clockseq // Per 4.1.4 - Convert from unix epoch to Gregorian epoch + + msecs += 12219292800000 // `time_low` + + const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000 + b[i++] = (tl >>> 24) & 0xff + b[i++] = (tl >>> 16) & 0xff + b[i++] = (tl >>> 8) & 0xff + b[i++] = tl & 0xff // `time_mid` + + const tmh = ((msecs / 0x100000000) * 10000) & 0xfffffff + b[i++] = (tmh >>> 8) & 0xff + b[i++] = tmh & 0xff // `time_high_and_version` + + b[i++] = ((tmh >>> 24) & 0xf) | 0x10 // include version + + b[i++] = (tmh >>> 16) & 0xff // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) + + b[i++] = (clockseq >>> 8) | 0x80 // `clock_seq_low` + + b[i++] = clockseq & 0xff // `node` + + for (let n = 0; n < 6; ++n) { + b[i + n] = node[n] } - } - let transformed = false; - const transformToByteArray = async () => { - if (transformed) { - throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED); - } - transformed = true; - return await (0, node_http_handler_1.streamCollector)(stream); - }; - return Object.assign(stream, { - transformToByteArray, - transformToString: async (encoding) => { - const buf = await transformToByteArray(); - if (encoding === undefined || Buffer.isEncoding(encoding)) { - return (0, util_buffer_from_1.fromArrayBuffer)(buf.buffer, buf.byteOffset, buf.byteLength).toString(encoding); - } - else { - const decoder = new TextDecoder(encoding); - return decoder.decode(buf); - } - }, - transformToWebStream: () => { - if (transformed) { - throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED); - } - if (stream.readableFlowing !== null) { - throw new Error("The stream has been consumed by other callbacks."); - } - if (typeof stream_1.Readable.toWeb !== "function") { - throw new Error("Readable.toWeb() is not supported. Please ensure a polyfill is available."); - } - transformed = true; - return stream_1.Readable.toWeb(stream); - }, - }); -}; -exports.sdkStreamMixin = sdkStreamMixin; + return buf || (0, _stringify.unsafeStringify)(b) + } -/***/ }), + var _default = v1 + exports['default'] = _default -/***/ 58756: -/***/ ((__unused_webpack_module, exports) => { + /***/ + }, -"use strict"; + /***/ 507: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.splitStream = void 0; -async function splitStream(stream) { - if (typeof stream.stream === "function") { - stream = stream.stream(); - } - const readableStream = stream; - return readableStream.tee(); -} -exports.splitStream = splitStream; + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 + var _v = _interopRequireDefault(__nccwpck_require__(96265)) -/***/ }), + var _md = _interopRequireDefault(__nccwpck_require__(47884)) -/***/ 48623: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } -"use strict"; + const v3 = (0, _v.default)('v3', 0x30, _md.default) + var _default = v3 + exports['default'] = _default -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.splitStream = void 0; -const stream_1 = __nccwpck_require__(12781); -const splitStream_browser_1 = __nccwpck_require__(58756); -const stream_type_check_1 = __nccwpck_require__(14229); -async function splitStream(stream) { - if ((0, stream_type_check_1.isReadableStream)(stream) || (0, stream_type_check_1.isBlob)(stream)) { - return (0, splitStream_browser_1.splitStream)(stream); - } - const stream1 = new stream_1.PassThrough(); - const stream2 = new stream_1.PassThrough(); - stream.pipe(stream1); - stream.pipe(stream2); - return [stream1, stream2]; -} -exports.splitStream = splitStream; - - -/***/ }), - -/***/ 14229: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.isBlob = exports.isReadableStream = void 0; -const isReadableStream = (stream) => { - var _a; - return typeof ReadableStream === "function" && - (((_a = stream === null || stream === void 0 ? void 0 : stream.constructor) === null || _a === void 0 ? void 0 : _a.name) === ReadableStream.name || stream instanceof ReadableStream); -}; -exports.isReadableStream = isReadableStream; -const isBlob = (blob) => { - var _a; - return typeof Blob === "function" && (((_a = blob === null || blob === void 0 ? void 0 : blob.constructor) === null || _a === void 0 ? void 0 : _a.name) === Blob.name || blob instanceof Blob); -}; -exports.isBlob = isBlob; - - -/***/ }), - -/***/ 6480: -/***/ ((module) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - escapeUri: () => escapeUri, - escapeUriPath: () => escapeUriPath -}); -module.exports = __toCommonJS(src_exports); - -// src/escape-uri.ts -var escapeUri = /* @__PURE__ */ __name((uri) => ( - // AWS percent-encodes some extra non-standard characters in a URI - encodeURIComponent(uri).replace(/[!'()*]/g, hexEncode) -), "escapeUri"); -var hexEncode = /* @__PURE__ */ __name((c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`, "hexEncode"); - -// src/escape-uri-path.ts -var escapeUriPath = /* @__PURE__ */ __name((uri) => uri.split("/").map(escapeUri).join("/"), "escapeUriPath"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 76749: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - fromUtf8: () => fromUtf8, - toUint8Array: () => toUint8Array, - toUtf8: () => toUtf8 -}); -module.exports = __toCommonJS(src_exports); - -// src/fromUtf8.ts -var import_util_buffer_from = __nccwpck_require__(18614); -var fromUtf8 = /* @__PURE__ */ __name((input) => { - const buf = (0, import_util_buffer_from.fromString)(input, "utf8"); - return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength / Uint8Array.BYTES_PER_ELEMENT); -}, "fromUtf8"); - -// src/toUint8Array.ts -var toUint8Array = /* @__PURE__ */ __name((data) => { - if (typeof data === "string") { - return fromUtf8(data); - } - if (ArrayBuffer.isView(data)) { - return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT); - } - return new Uint8Array(data); -}, "toUint8Array"); + /***/ + }, -// src/toUtf8.ts + /***/ 96265: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -var toUtf8 = /* @__PURE__ */ __name((input) => { - if (typeof input === "string") { - return input; - } - if (typeof input !== "object" || typeof input.byteOffset !== "number" || typeof input.byteLength !== "number") { - throw new Error("@smithy/util-utf8: toUtf8 encoder function only accepts string | Uint8Array."); - } - return (0, import_util_buffer_from.fromArrayBuffer)(input.buffer, input.byteOffset, input.byteLength).toString("utf8"); -}, "toUtf8"); -// Annotate the CommonJS export names for ESM import in node: + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports.URL = exports.DNS = void 0 + exports['default'] = v35 -0 && (0); + var _stringify = __nccwpck_require__(63226) + var _parse = _interopRequireDefault(__nccwpck_require__(35432)) + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } -/***/ }), + function stringToBytes(str) { + str = unescape(encodeURIComponent(str)) // UTF8 escape -/***/ 36450: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + const bytes = [] -"use strict"; + for (let i = 0; i < str.length; ++i) { + bytes.push(str.charCodeAt(i)) + } + return bytes + } -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -Object.defineProperty(exports, "NIL", ({ - enumerable: true, - get: function () { - return _nil.default; - } -})); -Object.defineProperty(exports, "parse", ({ - enumerable: true, - get: function () { - return _parse.default; - } -})); -Object.defineProperty(exports, "stringify", ({ - enumerable: true, - get: function () { - return _stringify.default; - } -})); -Object.defineProperty(exports, "v1", ({ - enumerable: true, - get: function () { - return _v.default; - } -})); -Object.defineProperty(exports, "v3", ({ - enumerable: true, - get: function () { - return _v2.default; - } -})); -Object.defineProperty(exports, "v4", ({ - enumerable: true, - get: function () { - return _v3.default; - } -})); -Object.defineProperty(exports, "v5", ({ - enumerable: true, - get: function () { - return _v4.default; - } -})); -Object.defineProperty(exports, "validate", ({ - enumerable: true, - get: function () { - return _validate.default; - } -})); -Object.defineProperty(exports, "version", ({ - enumerable: true, - get: function () { - return _version.default; - } -})); + const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8' + exports.DNS = DNS + const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8' + exports.URL = URL + + function v35(name, version, hashfunc) { + function generateUUID(value, namespace, buf, offset) { + var _namespace + + if (typeof value === 'string') { + value = stringToBytes(value) + } + + if (typeof namespace === 'string') { + namespace = (0, _parse.default)(namespace) + } -var _v = _interopRequireDefault(__nccwpck_require__(49025)); + if ( + ((_namespace = namespace) === null || _namespace === void 0 + ? void 0 + : _namespace.length) !== 16 + ) { + throw TypeError( + 'Namespace must be array-like (16 iterable integer values, 0-255)' + ) + } // Compute hash of namespace and value, Per 4.3 + // Future: Use spread syntax when supported on all platforms, e.g. `bytes = + // hashfunc([...namespace, ... value])` + + let bytes = new Uint8Array(16 + value.length) + bytes.set(namespace) + bytes.set(value, namespace.length) + bytes = hashfunc(bytes) + bytes[6] = (bytes[6] & 0x0f) | version + bytes[8] = (bytes[8] & 0x3f) | 0x80 + + if (buf) { + offset = offset || 0 + + for (let i = 0; i < 16; ++i) { + buf[offset + i] = bytes[i] + } -var _v2 = _interopRequireDefault(__nccwpck_require__(507)); + return buf + } -var _v3 = _interopRequireDefault(__nccwpck_require__(8107)); + return (0, _stringify.unsafeStringify)(bytes) + } // Function#name is not settable on some platforms (#270) -var _v4 = _interopRequireDefault(__nccwpck_require__(726)); + try { + generateUUID.name = name // eslint-disable-next-line no-empty + } catch (err) {} // For CommonJS default export support -var _nil = _interopRequireDefault(__nccwpck_require__(22276)); + generateUUID.DNS = DNS + generateUUID.URL = URL + return generateUUID + } -var _version = _interopRequireDefault(__nccwpck_require__(59056)); + /***/ + }, -var _validate = _interopRequireDefault(__nccwpck_require__(48383)); + /***/ 8107: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -var _stringify = _interopRequireDefault(__nccwpck_require__(63226)); + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 -var _parse = _interopRequireDefault(__nccwpck_require__(35432)); + var _native = _interopRequireDefault(__nccwpck_require__(55785)) -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + var _rng = _interopRequireDefault(__nccwpck_require__(53273)) -/***/ }), + var _stringify = __nccwpck_require__(63226) -/***/ 47884: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } -"use strict"; + function v4(options, buf, offset) { + if (_native.default.randomUUID && !buf && !options) { + return _native.default.randomUUID() + } + options = options || {} -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + const rnds = options.random || (options.rng || _rng.default)() // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); + rnds[6] = (rnds[6] & 0x0f) | 0x40 + rnds[8] = (rnds[8] & 0x3f) | 0x80 // Copy bytes to buffer, if provided -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + if (buf) { + offset = offset || 0 -function md5(bytes) { - if (Array.isArray(bytes)) { - bytes = Buffer.from(bytes); - } else if (typeof bytes === 'string') { - bytes = Buffer.from(bytes, 'utf8'); - } + for (let i = 0; i < 16; ++i) { + buf[offset + i] = rnds[i] + } - return _crypto.default.createHash('md5').update(bytes).digest(); -} + return buf + } + + return (0, _stringify.unsafeStringify)(rnds) + } -var _default = md5; -exports["default"] = _default; + var _default = v4 + exports['default'] = _default -/***/ }), + /***/ + }, -/***/ 55785: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + /***/ 726: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -"use strict"; + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 + var _v = _interopRequireDefault(__nccwpck_require__(96265)) -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + var _sha = _interopRequireDefault(__nccwpck_require__(61195)) -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + const v5 = (0, _v.default)('v5', 0x50, _sha.default) + var _default = v5 + exports['default'] = _default -var _default = { - randomUUID: _crypto.default.randomUUID -}; -exports["default"] = _default; + /***/ + }, -/***/ }), + /***/ 48383: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -/***/ 22276: -/***/ ((__unused_webpack_module, exports) => { + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 -"use strict"; + var _regex = _interopRequireDefault(__nccwpck_require__(90048)) + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; -var _default = '00000000-0000-0000-0000-000000000000'; -exports["default"] = _default; + function validate(uuid) { + return typeof uuid === 'string' && _regex.default.test(uuid) + } -/***/ }), + var _default = validate + exports['default'] = _default -/***/ 35432: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + /***/ + }, -"use strict"; + /***/ 59056: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + var _validate = _interopRequireDefault(__nccwpck_require__(48383)) -var _validate = _interopRequireDefault(__nccwpck_require__(48383)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + function version(uuid) { + if (!(0, _validate.default)(uuid)) { + throw TypeError('Invalid UUID') + } -function parse(uuid) { - if (!(0, _validate.default)(uuid)) { - throw TypeError('Invalid UUID'); - } + return parseInt(uuid.slice(14, 15), 16) + } - let v; - const arr = new Uint8Array(16); // Parse ########-....-....-....-............ + var _default = version + exports['default'] = _default - arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24; - arr[1] = v >>> 16 & 0xff; - arr[2] = v >>> 8 & 0xff; - arr[3] = v & 0xff; // Parse ........-####-....-....-............ + /***/ + }, - arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8; - arr[5] = v & 0xff; // Parse ........-....-####-....-............ + /***/ 18156: /***/ module => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + NODE_REGION_CONFIG_FILE_OPTIONS: () => NODE_REGION_CONFIG_FILE_OPTIONS, + NODE_REGION_CONFIG_OPTIONS: () => NODE_REGION_CONFIG_OPTIONS, + REGION_ENV_NAME: () => REGION_ENV_NAME, + REGION_INI_NAME: () => REGION_INI_NAME, + getAwsRegionExtensionConfiguration: () => + getAwsRegionExtensionConfiguration, + resolveAwsRegionExtensionConfiguration: () => + resolveAwsRegionExtensionConfiguration, + resolveRegionConfig: () => resolveRegionConfig + }) + module.exports = __toCommonJS(src_exports) + + // src/extensions/index.ts + var getAwsRegionExtensionConfiguration = /* @__PURE__ */ __name( + runtimeConfig => { + let runtimeConfigRegion = /* @__PURE__ */ __name(async () => { + if (runtimeConfig.region === void 0) { + throw new Error('Region is missing from runtimeConfig') + } + const region = runtimeConfig.region + if (typeof region === 'string') { + return region + } + return region() + }, 'runtimeConfigRegion') + return { + setRegion(region) { + runtimeConfigRegion = region + }, + region() { + return runtimeConfigRegion + } + } + }, + 'getAwsRegionExtensionConfiguration' + ) + var resolveAwsRegionExtensionConfiguration = /* @__PURE__ */ __name( + awsRegionExtensionConfiguration => { + return { + region: awsRegionExtensionConfiguration.region() + } + }, + 'resolveAwsRegionExtensionConfiguration' + ) - arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8; - arr[7] = v & 0xff; // Parse ........-....-....-####-............ + // src/regionConfig/config.ts + var REGION_ENV_NAME = 'AWS_REGION' + var REGION_INI_NAME = 'region' + var NODE_REGION_CONFIG_OPTIONS = { + environmentVariableSelector: env => env[REGION_ENV_NAME], + configFileSelector: profile => profile[REGION_INI_NAME], + default: () => { + throw new Error('Region is missing') + } + } + var NODE_REGION_CONFIG_FILE_OPTIONS = { + preferredFile: 'credentials' + } - arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8; - arr[9] = v & 0xff; // Parse ........-....-....-....-############ - // (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes) + // src/regionConfig/isFipsRegion.ts + var isFipsRegion = /* @__PURE__ */ __name( + region => + typeof region === 'string' && + (region.startsWith('fips-') || region.endsWith('-fips')), + 'isFipsRegion' + ) - arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff; - arr[11] = v / 0x100000000 & 0xff; - arr[12] = v >>> 24 & 0xff; - arr[13] = v >>> 16 & 0xff; - arr[14] = v >>> 8 & 0xff; - arr[15] = v & 0xff; - return arr; -} + // src/regionConfig/getRealRegion.ts + var getRealRegion = /* @__PURE__ */ __name( + region => + isFipsRegion(region) + ? ['fips-aws-global', 'aws-fips'].includes(region) + ? 'us-east-1' + : region.replace(/fips-(dkr-|prod-)?|-fips/, '') + : region, + 'getRealRegion' + ) -var _default = parse; -exports["default"] = _default; + // src/regionConfig/resolveRegionConfig.ts + var resolveRegionConfig = /* @__PURE__ */ __name(input => { + const { region, useFipsEndpoint } = input + if (!region) { + throw new Error('Region is missing') + } + return { + ...input, + region: async () => { + if (typeof region === 'string') { + return getRealRegion(region) + } + const providedRegion = await region() + return getRealRegion(providedRegion) + }, + useFipsEndpoint: async () => { + const providedRegion = + typeof region === 'string' ? region : await region() + if (isFipsRegion(providedRegion)) { + return true + } + return typeof useFipsEndpoint !== 'function' + ? Promise.resolve(!!useFipsEndpoint) + : useFipsEndpoint() + } + } + }, 'resolveRegionConfig') + // Annotate the CommonJS export names for ESM import in node: -/***/ }), + 0 && 0 -/***/ 90048: -/***/ ((__unused_webpack_module, exports) => { + /***/ + }, -"use strict"; + /***/ 52843: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __create = Object.create + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __getProtoOf = Object.getPrototypeOf + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toESM = (mod, isNodeMode, target) => ( + (target = mod != null ? __create(__getProtoOf(mod)) : {}), + __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule + ? __defProp(target, 'default', { value: mod, enumerable: true }) + : target, + mod + ) + ) + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + fromSso: () => fromSso, + fromStatic: () => fromStatic, + nodeProvider: () => nodeProvider + }) + module.exports = __toCommonJS(src_exports) + // src/fromSso.ts -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; -var _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; -exports["default"] = _default; + // src/constants.ts + var EXPIRE_WINDOW_MS = 5 * 60 * 1e3 + var REFRESH_MESSAGE = `To refresh this SSO session run 'aws sso login' with the corresponding profile.` -/***/ }), + // src/getSsoOidcClient.ts + var ssoOidcClientsHash = {} + var getSsoOidcClient = /* @__PURE__ */ __name(async ssoRegion => { + const { SSOOIDCClient } = await Promise.resolve().then(() => + __toESM(__nccwpck_require__(54527)) + ) + if (ssoOidcClientsHash[ssoRegion]) { + return ssoOidcClientsHash[ssoRegion] + } + const ssoOidcClient = new SSOOIDCClient({ region: ssoRegion }) + ssoOidcClientsHash[ssoRegion] = ssoOidcClient + return ssoOidcClient + }, 'getSsoOidcClient') + + // src/getNewSsoOidcToken.ts + var getNewSsoOidcToken = /* @__PURE__ */ __name( + async (ssoToken, ssoRegion) => { + const { CreateTokenCommand } = await Promise.resolve().then(() => + __toESM(__nccwpck_require__(54527)) + ) + const ssoOidcClient = await getSsoOidcClient(ssoRegion) + return ssoOidcClient.send( + new CreateTokenCommand({ + clientId: ssoToken.clientId, + clientSecret: ssoToken.clientSecret, + refreshToken: ssoToken.refreshToken, + grantType: 'refresh_token' + }) + ) + }, + 'getNewSsoOidcToken' + ) -/***/ 53273: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + // src/validateTokenExpiry.ts + var import_property_provider = __nccwpck_require__(79721) + var validateTokenExpiry = /* @__PURE__ */ __name(token => { + if (token.expiration && token.expiration.getTime() < Date.now()) { + throw new import_property_provider.TokenProviderError( + `Token is expired. ${REFRESH_MESSAGE}`, + false + ) + } + }, 'validateTokenExpiry') -"use strict"; + // src/validateTokenKey.ts + var validateTokenKey = /* @__PURE__ */ __name( + (key, value, forRefresh = false) => { + if (typeof value === 'undefined') { + throw new import_property_provider.TokenProviderError( + `Value not present for '${key}' in SSO Token${forRefresh ? '. Cannot refresh' : ''}. ${REFRESH_MESSAGE}`, + false + ) + } + }, + 'validateTokenKey' + ) -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = rng; + // src/writeSSOTokenToFile.ts + var import_shared_ini_file_loader = __nccwpck_require__(43507) + var import_fs = __nccwpck_require__(57147) + var { writeFile } = import_fs.promises + var writeSSOTokenToFile = /* @__PURE__ */ __name((id, ssoToken) => { + const tokenFilepath = (0, + import_shared_ini_file_loader.getSSOTokenFilepath)(id) + const tokenString = JSON.stringify(ssoToken, null, 2) + return writeFile(tokenFilepath, tokenString) + }, 'writeSSOTokenToFile') + + // src/fromSso.ts + var lastRefreshAttemptTime = /* @__PURE__ */ new Date(0) + var fromSso = /* @__PURE__ */ __name( + (init = {}) => + async () => { + var _a + ;(_a = init.logger) == null + ? void 0 + : _a.debug('@aws-sdk/token-providers - fromSso') + const profiles = await (0, + import_shared_ini_file_loader.parseKnownFiles)(init) + const profileName = (0, + import_shared_ini_file_loader.getProfileName)(init) + const profile = profiles[profileName] + if (!profile) { + throw new import_property_provider.TokenProviderError( + `Profile '${profileName}' could not be found in shared credentials file.`, + false + ) + } else if (!profile['sso_session']) { + throw new import_property_provider.TokenProviderError( + `Profile '${profileName}' is missing required property 'sso_session'.` + ) + } + const ssoSessionName = profile['sso_session'] + const ssoSessions = await (0, + import_shared_ini_file_loader.loadSsoSessionData)(init) + const ssoSession = ssoSessions[ssoSessionName] + if (!ssoSession) { + throw new import_property_provider.TokenProviderError( + `Sso session '${ssoSessionName}' could not be found in shared credentials file.`, + false + ) + } + for (const ssoSessionRequiredKey of [ + 'sso_start_url', + 'sso_region' + ]) { + if (!ssoSession[ssoSessionRequiredKey]) { + throw new import_property_provider.TokenProviderError( + `Sso session '${ssoSessionName}' is missing required property '${ssoSessionRequiredKey}'.`, + false + ) + } + } + const ssoStartUrl = ssoSession['sso_start_url'] + const ssoRegion = ssoSession['sso_region'] + let ssoToken + try { + ssoToken = await (0, + import_shared_ini_file_loader.getSSOTokenFromFile)(ssoSessionName) + } catch (e) { + throw new import_property_provider.TokenProviderError( + `The SSO session token associated with profile=${profileName} was not found or is invalid. ${REFRESH_MESSAGE}`, + false + ) + } + validateTokenKey('accessToken', ssoToken.accessToken) + validateTokenKey('expiresAt', ssoToken.expiresAt) + const { accessToken, expiresAt } = ssoToken + const existingToken = { + token: accessToken, + expiration: new Date(expiresAt) + } + if ( + existingToken.expiration.getTime() - Date.now() > + EXPIRE_WINDOW_MS + ) { + return existingToken + } + if (Date.now() - lastRefreshAttemptTime.getTime() < 30 * 1e3) { + validateTokenExpiry(existingToken) + return existingToken + } + validateTokenKey('clientId', ssoToken.clientId, true) + validateTokenKey('clientSecret', ssoToken.clientSecret, true) + validateTokenKey('refreshToken', ssoToken.refreshToken, true) + try { + lastRefreshAttemptTime.setTime(Date.now()) + const newSsoOidcToken = await getNewSsoOidcToken( + ssoToken, + ssoRegion + ) + validateTokenKey('accessToken', newSsoOidcToken.accessToken) + validateTokenKey('expiresIn', newSsoOidcToken.expiresIn) + const newTokenExpiration = new Date( + Date.now() + newSsoOidcToken.expiresIn * 1e3 + ) + try { + await writeSSOTokenToFile(ssoSessionName, { + ...ssoToken, + accessToken: newSsoOidcToken.accessToken, + expiresAt: newTokenExpiration.toISOString(), + refreshToken: newSsoOidcToken.refreshToken + }) + } catch (error) {} + return { + token: newSsoOidcToken.accessToken, + expiration: newTokenExpiration + } + } catch (error) { + validateTokenExpiry(existingToken) + return existingToken + } + }, + 'fromSso' + ) -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); + // src/fromStatic.ts + + var fromStatic = /* @__PURE__ */ __name( + ({ token, logger }) => + async () => { + logger == null + ? void 0 + : logger.debug('@aws-sdk/token-providers - fromStatic') + if (!token || !token.token) { + throw new import_property_provider.TokenProviderError( + `Please pass a valid token to fromStatic`, + false + ) + } + return token + }, + 'fromStatic' + ) -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + // src/nodeProvider.ts -const rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate + var nodeProvider = /* @__PURE__ */ __name( + (init = {}) => + (0, import_property_provider.memoize)( + (0, import_property_provider.chain)(fromSso(init), async () => { + throw new import_property_provider.TokenProviderError( + 'Could not load token from any providers', + false + ) + }), + token => + token.expiration !== void 0 && + token.expiration.getTime() - Date.now() < 3e5, + token => token.expiration !== void 0 + ), + 'nodeProvider' + ) + // Annotate the CommonJS export names for ESM import in node: -let poolPtr = rnds8Pool.length; + 0 && 0 -function rng() { - if (poolPtr > rnds8Pool.length - 16) { - _crypto.default.randomFillSync(rnds8Pool); + /***/ + }, - poolPtr = 0; - } + /***/ 13350: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + ConditionObject: () => import_util_endpoints.ConditionObject, + DeprecatedObject: () => import_util_endpoints.DeprecatedObject, + EndpointError: () => import_util_endpoints.EndpointError, + EndpointObject: () => import_util_endpoints.EndpointObject, + EndpointObjectHeaders: () => + import_util_endpoints.EndpointObjectHeaders, + EndpointObjectProperties: () => + import_util_endpoints.EndpointObjectProperties, + EndpointParams: () => import_util_endpoints.EndpointParams, + EndpointResolverOptions: () => + import_util_endpoints.EndpointResolverOptions, + EndpointRuleObject: () => import_util_endpoints.EndpointRuleObject, + ErrorRuleObject: () => import_util_endpoints.ErrorRuleObject, + EvaluateOptions: () => import_util_endpoints.EvaluateOptions, + Expression: () => import_util_endpoints.Expression, + FunctionArgv: () => import_util_endpoints.FunctionArgv, + FunctionObject: () => import_util_endpoints.FunctionObject, + FunctionReturn: () => import_util_endpoints.FunctionReturn, + ParameterObject: () => import_util_endpoints.ParameterObject, + ReferenceObject: () => import_util_endpoints.ReferenceObject, + ReferenceRecord: () => import_util_endpoints.ReferenceRecord, + RuleSetObject: () => import_util_endpoints.RuleSetObject, + RuleSetRules: () => import_util_endpoints.RuleSetRules, + TreeRuleObject: () => import_util_endpoints.TreeRuleObject, + awsEndpointFunctions: () => awsEndpointFunctions, + getUserAgentPrefix: () => getUserAgentPrefix, + isIpAddress: () => import_util_endpoints.isIpAddress, + partition: () => partition, + resolveEndpoint: () => import_util_endpoints.resolveEndpoint, + setPartitionInfo: () => setPartitionInfo, + useDefaultPartitionInfo: () => useDefaultPartitionInfo + }) + module.exports = __toCommonJS(src_exports) - return rnds8Pool.slice(poolPtr, poolPtr += 16); -} + // src/aws.ts -/***/ }), + // src/lib/aws/isVirtualHostableS3Bucket.ts -/***/ 61195: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + // src/lib/isIpAddress.ts + var import_util_endpoints = __nccwpck_require__(45473) -"use strict"; + // src/lib/aws/isVirtualHostableS3Bucket.ts + var isVirtualHostableS3Bucket = /* @__PURE__ */ __name( + (value, allowSubDomains = false) => { + if (allowSubDomains) { + for (const label of value.split('.')) { + if (!isVirtualHostableS3Bucket(label)) { + return false + } + } + return true + } + if (!(0, import_util_endpoints.isValidHostLabel)(value)) { + return false + } + if (value.length < 3 || value.length > 63) { + return false + } + if (value !== value.toLowerCase()) { + return false + } + if ((0, import_util_endpoints.isIpAddress)(value)) { + return false + } + return true + }, + 'isVirtualHostableS3Bucket' + ) + // src/lib/aws/parseArn.ts + var ARN_DELIMITER = ':' + var RESOURCE_DELIMITER = '/' + var parseArn = /* @__PURE__ */ __name(value => { + const segments = value.split(ARN_DELIMITER) + if (segments.length < 6) return null + const [arn, partition2, service, region, accountId, ...resourcePath] = + segments + if ( + arn !== 'arn' || + partition2 === '' || + service === '' || + resourcePath.join(ARN_DELIMITER) === '' + ) + return null + const resourceId = resourcePath + .map(resource => resource.split(RESOURCE_DELIMITER)) + .flat() + return { + partition: partition2, + service, + region, + accountId, + resourceId + } + }, 'parseArn') -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + // src/lib/aws/partitions.json + var partitions_default = { + partitions: [ + { + id: 'aws', + outputs: { + dnsSuffix: 'amazonaws.com', + dualStackDnsSuffix: 'api.aws', + implicitGlobalRegion: 'us-east-1', + name: 'aws', + supportsDualStack: true, + supportsFIPS: true + }, + regionRegex: '^(us|eu|ap|sa|ca|me|af|il|mx)\\-\\w+\\-\\d+$', + regions: { + 'af-south-1': { + description: 'Africa (Cape Town)' + }, + 'ap-east-1': { + description: 'Asia Pacific (Hong Kong)' + }, + 'ap-northeast-1': { + description: 'Asia Pacific (Tokyo)' + }, + 'ap-northeast-2': { + description: 'Asia Pacific (Seoul)' + }, + 'ap-northeast-3': { + description: 'Asia Pacific (Osaka)' + }, + 'ap-south-1': { + description: 'Asia Pacific (Mumbai)' + }, + 'ap-south-2': { + description: 'Asia Pacific (Hyderabad)' + }, + 'ap-southeast-1': { + description: 'Asia Pacific (Singapore)' + }, + 'ap-southeast-2': { + description: 'Asia Pacific (Sydney)' + }, + 'ap-southeast-3': { + description: 'Asia Pacific (Jakarta)' + }, + 'ap-southeast-4': { + description: 'Asia Pacific (Melbourne)' + }, + 'ap-southeast-5': { + description: 'Asia Pacific (Malaysia)' + }, + 'aws-global': { + description: 'AWS Standard global region' + }, + 'ca-central-1': { + description: 'Canada (Central)' + }, + 'ca-west-1': { + description: 'Canada West (Calgary)' + }, + 'eu-central-1': { + description: 'Europe (Frankfurt)' + }, + 'eu-central-2': { + description: 'Europe (Zurich)' + }, + 'eu-north-1': { + description: 'Europe (Stockholm)' + }, + 'eu-south-1': { + description: 'Europe (Milan)' + }, + 'eu-south-2': { + description: 'Europe (Spain)' + }, + 'eu-west-1': { + description: 'Europe (Ireland)' + }, + 'eu-west-2': { + description: 'Europe (London)' + }, + 'eu-west-3': { + description: 'Europe (Paris)' + }, + 'il-central-1': { + description: 'Israel (Tel Aviv)' + }, + 'me-central-1': { + description: 'Middle East (UAE)' + }, + 'me-south-1': { + description: 'Middle East (Bahrain)' + }, + 'sa-east-1': { + description: 'South America (Sao Paulo)' + }, + 'us-east-1': { + description: 'US East (N. Virginia)' + }, + 'us-east-2': { + description: 'US East (Ohio)' + }, + 'us-west-1': { + description: 'US West (N. California)' + }, + 'us-west-2': { + description: 'US West (Oregon)' + } + } + }, + { + id: 'aws-cn', + outputs: { + dnsSuffix: 'amazonaws.com.cn', + dualStackDnsSuffix: 'api.amazonwebservices.com.cn', + implicitGlobalRegion: 'cn-northwest-1', + name: 'aws-cn', + supportsDualStack: true, + supportsFIPS: true + }, + regionRegex: '^cn\\-\\w+\\-\\d+$', + regions: { + 'aws-cn-global': { + description: 'AWS China global region' + }, + 'cn-north-1': { + description: 'China (Beijing)' + }, + 'cn-northwest-1': { + description: 'China (Ningxia)' + } + } + }, + { + id: 'aws-us-gov', + outputs: { + dnsSuffix: 'amazonaws.com', + dualStackDnsSuffix: 'api.aws', + implicitGlobalRegion: 'us-gov-west-1', + name: 'aws-us-gov', + supportsDualStack: true, + supportsFIPS: true + }, + regionRegex: '^us\\-gov\\-\\w+\\-\\d+$', + regions: { + 'aws-us-gov-global': { + description: 'AWS GovCloud (US) global region' + }, + 'us-gov-east-1': { + description: 'AWS GovCloud (US-East)' + }, + 'us-gov-west-1': { + description: 'AWS GovCloud (US-West)' + } + } + }, + { + id: 'aws-iso', + outputs: { + dnsSuffix: 'c2s.ic.gov', + dualStackDnsSuffix: 'c2s.ic.gov', + implicitGlobalRegion: 'us-iso-east-1', + name: 'aws-iso', + supportsDualStack: false, + supportsFIPS: true + }, + regionRegex: '^us\\-iso\\-\\w+\\-\\d+$', + regions: { + 'aws-iso-global': { + description: 'AWS ISO (US) global region' + }, + 'us-iso-east-1': { + description: 'US ISO East' + }, + 'us-iso-west-1': { + description: 'US ISO WEST' + } + } + }, + { + id: 'aws-iso-b', + outputs: { + dnsSuffix: 'sc2s.sgov.gov', + dualStackDnsSuffix: 'sc2s.sgov.gov', + implicitGlobalRegion: 'us-isob-east-1', + name: 'aws-iso-b', + supportsDualStack: false, + supportsFIPS: true + }, + regionRegex: '^us\\-isob\\-\\w+\\-\\d+$', + regions: { + 'aws-iso-b-global': { + description: 'AWS ISOB (US) global region' + }, + 'us-isob-east-1': { + description: 'US ISOB East (Ohio)' + } + } + }, + { + id: 'aws-iso-e', + outputs: { + dnsSuffix: 'cloud.adc-e.uk', + dualStackDnsSuffix: 'cloud.adc-e.uk', + implicitGlobalRegion: 'eu-isoe-west-1', + name: 'aws-iso-e', + supportsDualStack: false, + supportsFIPS: true + }, + regionRegex: '^eu\\-isoe\\-\\w+\\-\\d+$', + regions: { + 'eu-isoe-west-1': { + description: 'EU ISOE West' + } + } + }, + { + id: 'aws-iso-f', + outputs: { + dnsSuffix: 'csp.hci.ic.gov', + dualStackDnsSuffix: 'csp.hci.ic.gov', + implicitGlobalRegion: 'us-isof-south-1', + name: 'aws-iso-f', + supportsDualStack: false, + supportsFIPS: true + }, + regionRegex: '^us\\-isof\\-\\w+\\-\\d+$', + regions: {} + } + ], + version: '1.1' + } + + // src/lib/aws/partition.ts + var selectedPartitionsInfo = partitions_default + var selectedUserAgentPrefix = '' + var partition = /* @__PURE__ */ __name(value => { + const { partitions } = selectedPartitionsInfo + for (const partition2 of partitions) { + const { regions, outputs } = partition2 + for (const [region, regionData] of Object.entries(regions)) { + if (region === value) { + return { + ...outputs, + ...regionData + } + } + } + } + for (const partition2 of partitions) { + const { regionRegex, outputs } = partition2 + if (new RegExp(regionRegex).test(value)) { + return { + ...outputs + } + } + } + const DEFAULT_PARTITION = partitions.find( + partition2 => partition2.id === 'aws' + ) + if (!DEFAULT_PARTITION) { + throw new Error( + "Provided region was not found in the partition array or regex, and default partition with id 'aws' doesn't exist." + ) + } + return { + ...DEFAULT_PARTITION.outputs + } + }, 'partition') + var setPartitionInfo = /* @__PURE__ */ __name( + (partitionsInfo, userAgentPrefix = '') => { + selectedPartitionsInfo = partitionsInfo + selectedUserAgentPrefix = userAgentPrefix + }, + 'setPartitionInfo' + ) + var useDefaultPartitionInfo = /* @__PURE__ */ __name(() => { + setPartitionInfo(partitions_default, '') + }, 'useDefaultPartitionInfo') + var getUserAgentPrefix = /* @__PURE__ */ __name( + () => selectedUserAgentPrefix, + 'getUserAgentPrefix' + ) -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); + // src/aws.ts + var awsEndpointFunctions = { + isVirtualHostableS3Bucket, + parseArn, + partition + } + import_util_endpoints.customEndpointFunctions.aws = awsEndpointFunctions -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + // src/resolveEndpoint.ts -function sha1(bytes) { - if (Array.isArray(bytes)) { - bytes = Buffer.from(bytes); - } else if (typeof bytes === 'string') { - bytes = Buffer.from(bytes, 'utf8'); - } + // src/types/EndpointError.ts - return _crypto.default.createHash('sha1').update(bytes).digest(); -} + // src/types/EndpointRuleObject.ts -var _default = sha1; -exports["default"] = _default; + // src/types/ErrorRuleObject.ts -/***/ }), + // src/types/RuleSetObject.ts -/***/ 63226: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + // src/types/TreeRuleObject.ts -"use strict"; + // src/types/shared.ts + // Annotate the CommonJS export names for ESM import in node: -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; -exports.unsafeStringify = unsafeStringify; + 0 && 0 -var _validate = _interopRequireDefault(__nccwpck_require__(48383)); + /***/ + }, -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + /***/ 98095: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -/** - * Convert array of 16 byte values to UUID string format of the form: - * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX - */ -const byteToHex = []; - -for (let i = 0; i < 256; ++i) { - byteToHex.push((i + 0x100).toString(16).slice(1)); -} - -function unsafeStringify(arr, offset = 0) { - // Note: Be careful editing this code! It's been tuned for performance - // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434 - 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]]; -} - -function stringify(arr, offset = 0) { - const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one - // of the following: - // - One or more input array values don't map to a hex octet (leading to - // "undefined" in the uuid) - // - Invalid input values for the RFC `version` or `variant` fields - - if (!(0, _validate.default)(uuid)) { - throw TypeError('Stringified UUID is invalid'); - } + // src/index.ts + var src_exports = {} + __export(src_exports, { + UA_APP_ID_ENV_NAME: () => UA_APP_ID_ENV_NAME, + UA_APP_ID_INI_NAME: () => UA_APP_ID_INI_NAME, + crtAvailability: () => crtAvailability, + defaultUserAgent: () => defaultUserAgent + }) + module.exports = __toCommonJS(src_exports) + var import_node_config_provider = __nccwpck_require__(33461) + var import_os = __nccwpck_require__(22037) + var import_process = __nccwpck_require__(77282) - return uuid; -} + // src/crt-availability.ts + var crtAvailability = { + isCrtAvailable: false + } -var _default = stringify; -exports["default"] = _default; + // src/is-crt-available.ts + var isCrtAvailable = /* @__PURE__ */ __name(() => { + if (crtAvailability.isCrtAvailable) { + return ['md/crt-avail'] + } + return null + }, 'isCrtAvailable') + + // src/index.ts + var UA_APP_ID_ENV_NAME = 'AWS_SDK_UA_APP_ID' + var UA_APP_ID_INI_NAME = 'sdk-ua-app-id' + var defaultUserAgent = /* @__PURE__ */ __name( + ({ serviceId, clientVersion }) => { + const sections = [ + // sdk-metadata + ['aws-sdk-js', clientVersion], + // ua-metadata + ['ua', '2.0'], + // os-metadata + [`os/${(0, import_os.platform)()}`, (0, import_os.release)()], + // language-metadata + // ECMAScript edition doesn't matter in JS, so no version needed. + ['lang/js'], + ['md/nodejs', `${import_process.versions.node}`] + ] + const crtAvailable = isCrtAvailable() + if (crtAvailable) { + sections.push(crtAvailable) + } + if (serviceId) { + sections.push([`api/${serviceId}`, clientVersion]) + } + if (import_process.env.AWS_EXECUTION_ENV) { + sections.push([`exec-env/${import_process.env.AWS_EXECUTION_ENV}`]) + } + const appIdPromise = (0, import_node_config_provider.loadConfig)({ + environmentVariableSelector: env2 => env2[UA_APP_ID_ENV_NAME], + configFileSelector: profile => profile[UA_APP_ID_INI_NAME], + default: void 0 + })() + let resolvedUserAgent = void 0 + return async () => { + if (!resolvedUserAgent) { + const appId = await appIdPromise + resolvedUserAgent = appId + ? [...sections, [`app/${appId}`]] + : [...sections] + } + return resolvedUserAgent + } + }, + 'defaultUserAgent' + ) + // Annotate the CommonJS export names for ESM import in node: -/***/ }), + 0 && 0 -/***/ 49025: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + /***/ + }, -"use strict"; + /***/ 53098: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + CONFIG_USE_DUALSTACK_ENDPOINT: () => CONFIG_USE_DUALSTACK_ENDPOINT, + CONFIG_USE_FIPS_ENDPOINT: () => CONFIG_USE_FIPS_ENDPOINT, + DEFAULT_USE_DUALSTACK_ENDPOINT: () => DEFAULT_USE_DUALSTACK_ENDPOINT, + DEFAULT_USE_FIPS_ENDPOINT: () => DEFAULT_USE_FIPS_ENDPOINT, + ENV_USE_DUALSTACK_ENDPOINT: () => ENV_USE_DUALSTACK_ENDPOINT, + ENV_USE_FIPS_ENDPOINT: () => ENV_USE_FIPS_ENDPOINT, + NODE_REGION_CONFIG_FILE_OPTIONS: () => NODE_REGION_CONFIG_FILE_OPTIONS, + NODE_REGION_CONFIG_OPTIONS: () => NODE_REGION_CONFIG_OPTIONS, + NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS: () => + NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, + NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS: () => + NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, + REGION_ENV_NAME: () => REGION_ENV_NAME, + REGION_INI_NAME: () => REGION_INI_NAME, + getRegionInfo: () => getRegionInfo, + resolveCustomEndpointsConfig: () => resolveCustomEndpointsConfig, + resolveEndpointsConfig: () => resolveEndpointsConfig, + resolveRegionConfig: () => resolveRegionConfig + }) + module.exports = __toCommonJS(src_exports) + + // src/endpointsConfig/NodeUseDualstackEndpointConfigOptions.ts + var import_util_config_provider = __nccwpck_require__(83375) + var ENV_USE_DUALSTACK_ENDPOINT = 'AWS_USE_DUALSTACK_ENDPOINT' + var CONFIG_USE_DUALSTACK_ENDPOINT = 'use_dualstack_endpoint' + var DEFAULT_USE_DUALSTACK_ENDPOINT = false + var NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS = { + environmentVariableSelector: env => + (0, import_util_config_provider.booleanSelector)( + env, + ENV_USE_DUALSTACK_ENDPOINT, + import_util_config_provider.SelectorType.ENV + ), + configFileSelector: profile => + (0, import_util_config_provider.booleanSelector)( + profile, + CONFIG_USE_DUALSTACK_ENDPOINT, + import_util_config_provider.SelectorType.CONFIG + ), + default: false + } + + // src/endpointsConfig/NodeUseFipsEndpointConfigOptions.ts + + var ENV_USE_FIPS_ENDPOINT = 'AWS_USE_FIPS_ENDPOINT' + var CONFIG_USE_FIPS_ENDPOINT = 'use_fips_endpoint' + var DEFAULT_USE_FIPS_ENDPOINT = false + var NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS = { + environmentVariableSelector: env => + (0, import_util_config_provider.booleanSelector)( + env, + ENV_USE_FIPS_ENDPOINT, + import_util_config_provider.SelectorType.ENV + ), + configFileSelector: profile => + (0, import_util_config_provider.booleanSelector)( + profile, + CONFIG_USE_FIPS_ENDPOINT, + import_util_config_provider.SelectorType.CONFIG + ), + default: false + } + + // src/endpointsConfig/resolveCustomEndpointsConfig.ts + var import_util_middleware = __nccwpck_require__(2390) + var resolveCustomEndpointsConfig = /* @__PURE__ */ __name(input => { + const { endpoint, urlParser } = input + return { + ...input, + tls: input.tls ?? true, + endpoint: (0, import_util_middleware.normalizeProvider)( + typeof endpoint === 'string' ? urlParser(endpoint) : endpoint + ), + isCustomEndpoint: true, + useDualstackEndpoint: (0, import_util_middleware.normalizeProvider)( + input.useDualstackEndpoint ?? false + ) + } + }, 'resolveCustomEndpointsConfig') + // src/endpointsConfig/resolveEndpointsConfig.ts -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + // src/endpointsConfig/utils/getEndpointFromRegion.ts + var getEndpointFromRegion = /* @__PURE__ */ __name(async input => { + const { tls = true } = input + const region = await input.region() + const dnsHostRegex = new RegExp( + /^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/ + ) + if (!dnsHostRegex.test(region)) { + throw new Error('Invalid region in client config') + } + const useDualstackEndpoint = await input.useDualstackEndpoint() + const useFipsEndpoint = await input.useFipsEndpoint() + const { hostname } = + (await input.regionInfoProvider(region, { + useDualstackEndpoint, + useFipsEndpoint + })) ?? {} + if (!hostname) { + throw new Error('Cannot resolve hostname from client config') + } + return input.urlParser(`${tls ? 'https:' : 'http:'}//${hostname}`) + }, 'getEndpointFromRegion') + + // src/endpointsConfig/resolveEndpointsConfig.ts + var resolveEndpointsConfig = /* @__PURE__ */ __name(input => { + const useDualstackEndpoint = (0, + import_util_middleware.normalizeProvider)( + input.useDualstackEndpoint ?? false + ) + const { endpoint, useFipsEndpoint, urlParser } = input + return { + ...input, + tls: input.tls ?? true, + endpoint: endpoint + ? (0, import_util_middleware.normalizeProvider)( + typeof endpoint === 'string' ? urlParser(endpoint) : endpoint + ) + : () => + getEndpointFromRegion({ + ...input, + useDualstackEndpoint, + useFipsEndpoint + }), + isCustomEndpoint: !!endpoint, + useDualstackEndpoint + } + }, 'resolveEndpointsConfig') + + // src/regionConfig/config.ts + var REGION_ENV_NAME = 'AWS_REGION' + var REGION_INI_NAME = 'region' + var NODE_REGION_CONFIG_OPTIONS = { + environmentVariableSelector: env => env[REGION_ENV_NAME], + configFileSelector: profile => profile[REGION_INI_NAME], + default: () => { + throw new Error('Region is missing') + } + } + var NODE_REGION_CONFIG_FILE_OPTIONS = { + preferredFile: 'credentials' + } + + // src/regionConfig/isFipsRegion.ts + var isFipsRegion = /* @__PURE__ */ __name( + region => + typeof region === 'string' && + (region.startsWith('fips-') || region.endsWith('-fips')), + 'isFipsRegion' + ) -var _rng = _interopRequireDefault(__nccwpck_require__(53273)); + // src/regionConfig/getRealRegion.ts + var getRealRegion = /* @__PURE__ */ __name( + region => + isFipsRegion(region) + ? ['fips-aws-global', 'aws-fips'].includes(region) + ? 'us-east-1' + : region.replace(/fips-(dkr-|prod-)?|-fips/, '') + : region, + 'getRealRegion' + ) -var _stringify = __nccwpck_require__(63226); + // src/regionConfig/resolveRegionConfig.ts + var resolveRegionConfig = /* @__PURE__ */ __name(input => { + const { region, useFipsEndpoint } = input + if (!region) { + throw new Error('Region is missing') + } + return { + ...input, + region: async () => { + if (typeof region === 'string') { + return getRealRegion(region) + } + const providedRegion = await region() + return getRealRegion(providedRegion) + }, + useFipsEndpoint: async () => { + const providedRegion = + typeof region === 'string' ? region : await region() + if (isFipsRegion(providedRegion)) { + return true + } + return typeof useFipsEndpoint !== 'function' + ? Promise.resolve(!!useFipsEndpoint) + : useFipsEndpoint() + } + } + }, 'resolveRegionConfig') + + // src/regionInfo/getHostnameFromVariants.ts + var getHostnameFromVariants = /* @__PURE__ */ __name( + (variants = [], { useFipsEndpoint, useDualstackEndpoint }) => { + var _a + return (_a = variants.find( + ({ tags }) => + useFipsEndpoint === tags.includes('fips') && + useDualstackEndpoint === tags.includes('dualstack') + )) == null + ? void 0 + : _a.hostname + }, + 'getHostnameFromVariants' + ) -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + // src/regionInfo/getResolvedHostname.ts + var getResolvedHostname = /* @__PURE__ */ __name( + (resolvedRegion, { regionHostname, partitionHostname }) => + regionHostname + ? regionHostname + : partitionHostname + ? partitionHostname.replace('{region}', resolvedRegion) + : void 0, + 'getResolvedHostname' + ) -// **`v1()` - Generate time-based UUID** -// -// Inspired by https://github.com/LiosK/UUID.js -// and http://docs.python.org/library/uuid.html -let _nodeId; + // src/regionInfo/getResolvedPartition.ts + var getResolvedPartition = /* @__PURE__ */ __name( + (region, { partitionHash }) => + Object.keys(partitionHash || {}).find(key => + partitionHash[key].regions.includes(region) + ) ?? 'aws', + 'getResolvedPartition' + ) -let _clockseq; // Previous uuid creation time + // src/regionInfo/getResolvedSigningRegion.ts + var getResolvedSigningRegion = /* @__PURE__ */ __name( + (hostname, { signingRegion, regionRegex, useFipsEndpoint }) => { + if (signingRegion) { + return signingRegion + } else if (useFipsEndpoint) { + const regionRegexJs = regionRegex + .replace('\\\\', '\\') + .replace(/^\^/g, '\\.') + .replace(/\$$/g, '\\.') + const regionRegexmatchArray = hostname.match(regionRegexJs) + if (regionRegexmatchArray) { + return regionRegexmatchArray[0].slice(1, -1) + } + } + }, + 'getResolvedSigningRegion' + ) + // src/regionInfo/getRegionInfo.ts + var getRegionInfo = /* @__PURE__ */ __name( + ( + region, + { + useFipsEndpoint = false, + useDualstackEndpoint = false, + signingService, + regionHash, + partitionHash + } + ) => { + var _a, _b, _c, _d, _e + const partition = getResolvedPartition(region, { partitionHash }) + const resolvedRegion = + region in regionHash + ? region + : (((_a = partitionHash[partition]) == null + ? void 0 + : _a.endpoint) ?? region) + const hostnameOptions = { useFipsEndpoint, useDualstackEndpoint } + const regionHostname = getHostnameFromVariants( + (_b = regionHash[resolvedRegion]) == null ? void 0 : _b.variants, + hostnameOptions + ) + const partitionHostname = getHostnameFromVariants( + (_c = partitionHash[partition]) == null ? void 0 : _c.variants, + hostnameOptions + ) + const hostname = getResolvedHostname(resolvedRegion, { + regionHostname, + partitionHostname + }) + if (hostname === void 0) { + throw new Error( + `Endpoint resolution failed for: ${{ resolvedRegion, useFipsEndpoint, useDualstackEndpoint }}` + ) + } + const signingRegion = getResolvedSigningRegion(hostname, { + signingRegion: + (_d = regionHash[resolvedRegion]) == null + ? void 0 + : _d.signingRegion, + regionRegex: partitionHash[partition].regionRegex, + useFipsEndpoint + }) + return { + partition, + signingService, + hostname, + ...(signingRegion && { signingRegion }), + ...(((_e = regionHash[resolvedRegion]) == null + ? void 0 + : _e.signingService) && { + signingService: regionHash[resolvedRegion].signingService + }) + } + }, + 'getRegionInfo' + ) + // Annotate the CommonJS export names for ESM import in node: -let _lastMSecs = 0; -let _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details + 0 && 0 -function v1(options, buf, offset) { - let i = buf && offset || 0; - const b = buf || new Array(16); - options = options || {}; - let node = options.node || _nodeId; - let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not - // specified. We do this lazily to minimize issues related to insufficient - // system entropy. See #189 + /***/ + }, - if (node == null || clockseq == null) { - const seedBytes = options.random || (options.rng || _rng.default)(); + /***/ 55829: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + DefaultIdentityProviderConfig: () => DefaultIdentityProviderConfig, + EXPIRATION_MS: () => EXPIRATION_MS, + HttpApiKeyAuthSigner: () => HttpApiKeyAuthSigner, + HttpBearerAuthSigner: () => HttpBearerAuthSigner, + NoAuthSigner: () => NoAuthSigner, + RequestBuilder: () => RequestBuilder, + createIsIdentityExpiredFunction: () => createIsIdentityExpiredFunction, + createPaginator: () => createPaginator, + doesIdentityRequireRefresh: () => doesIdentityRequireRefresh, + getHttpAuthSchemeEndpointRuleSetPlugin: () => + getHttpAuthSchemeEndpointRuleSetPlugin, + getHttpAuthSchemePlugin: () => getHttpAuthSchemePlugin, + getHttpSigningPlugin: () => getHttpSigningPlugin, + getSmithyContext: () => getSmithyContext3, + httpAuthSchemeEndpointRuleSetMiddlewareOptions: () => + httpAuthSchemeEndpointRuleSetMiddlewareOptions, + httpAuthSchemeMiddleware: () => httpAuthSchemeMiddleware, + httpAuthSchemeMiddlewareOptions: () => httpAuthSchemeMiddlewareOptions, + httpSigningMiddleware: () => httpSigningMiddleware, + httpSigningMiddlewareOptions: () => httpSigningMiddlewareOptions, + isIdentityExpired: () => isIdentityExpired, + memoizeIdentityProvider: () => memoizeIdentityProvider, + normalizeProvider: () => normalizeProvider, + requestBuilder: () => requestBuilder + }) + module.exports = __toCommonJS(src_exports) + + // src/middleware-http-auth-scheme/httpAuthSchemeMiddleware.ts + var import_util_middleware = __nccwpck_require__(2390) + function convertHttpAuthSchemesToMap(httpAuthSchemes) { + const map = /* @__PURE__ */ new Map() + for (const scheme of httpAuthSchemes) { + map.set(scheme.schemeId, scheme) + } + return map + } + __name(convertHttpAuthSchemesToMap, 'convertHttpAuthSchemesToMap') + var httpAuthSchemeMiddleware = /* @__PURE__ */ __name( + (config, mwOptions) => (next, context) => async args => { + var _a + const options = config.httpAuthSchemeProvider( + await mwOptions.httpAuthSchemeParametersProvider( + config, + context, + args.input + ) + ) + const authSchemes = convertHttpAuthSchemesToMap( + config.httpAuthSchemes + ) + const smithyContext = (0, import_util_middleware.getSmithyContext)( + context + ) + const failureReasons = [] + for (const option of options) { + const scheme = authSchemes.get(option.schemeId) + if (!scheme) { + failureReasons.push( + `HttpAuthScheme \`${option.schemeId}\` was not enabled for this service.` + ) + continue + } + const identityProvider = scheme.identityProvider( + await mwOptions.identityProviderConfigProvider(config) + ) + if (!identityProvider) { + failureReasons.push( + `HttpAuthScheme \`${option.schemeId}\` did not have an IdentityProvider configured.` + ) + continue + } + const { identityProperties = {}, signingProperties = {} } = + ((_a = option.propertiesExtractor) == null + ? void 0 + : _a.call(option, config, context)) || {} + option.identityProperties = Object.assign( + option.identityProperties || {}, + identityProperties + ) + option.signingProperties = Object.assign( + option.signingProperties || {}, + signingProperties + ) + smithyContext.selectedHttpAuthScheme = { + httpAuthOption: option, + identity: await identityProvider(option.identityProperties), + signer: scheme.signer + } + break + } + if (!smithyContext.selectedHttpAuthScheme) { + throw new Error(failureReasons.join('\n')) + } + return next(args) + }, + 'httpAuthSchemeMiddleware' + ) - if (node == null) { - // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) - node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]]; - } + // src/middleware-http-auth-scheme/getHttpAuthSchemeEndpointRuleSetPlugin.ts + var import_middleware_endpoint = __nccwpck_require__(82918) + var httpAuthSchemeEndpointRuleSetMiddlewareOptions = { + step: 'serialize', + tags: ['HTTP_AUTH_SCHEME'], + name: 'httpAuthSchemeMiddleware', + override: true, + relation: 'before', + toMiddleware: import_middleware_endpoint.endpointMiddlewareOptions.name + } + var getHttpAuthSchemeEndpointRuleSetPlugin = /* @__PURE__ */ __name( + ( + config, + { httpAuthSchemeParametersProvider, identityProviderConfigProvider } + ) => ({ + applyToStack: clientStack => { + clientStack.addRelativeTo( + httpAuthSchemeMiddleware(config, { + httpAuthSchemeParametersProvider, + identityProviderConfigProvider + }), + httpAuthSchemeEndpointRuleSetMiddlewareOptions + ) + } + }), + 'getHttpAuthSchemeEndpointRuleSetPlugin' + ) - if (clockseq == null) { - // Per 4.2.2, randomize (14 bit) clockseq - clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff; - } - } // UUID timestamps are 100 nano-second units since the Gregorian epoch, - // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so - // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' - // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. + // src/middleware-http-auth-scheme/getHttpAuthSchemePlugin.ts + var import_middleware_serde = __nccwpck_require__(81238) + var httpAuthSchemeMiddlewareOptions = { + step: 'serialize', + tags: ['HTTP_AUTH_SCHEME'], + name: 'httpAuthSchemeMiddleware', + override: true, + relation: 'before', + toMiddleware: import_middleware_serde.serializerMiddlewareOption.name + } + var getHttpAuthSchemePlugin = /* @__PURE__ */ __name( + ( + config, + { httpAuthSchemeParametersProvider, identityProviderConfigProvider } + ) => ({ + applyToStack: clientStack => { + clientStack.addRelativeTo( + httpAuthSchemeMiddleware(config, { + httpAuthSchemeParametersProvider, + identityProviderConfigProvider + }), + httpAuthSchemeMiddlewareOptions + ) + } + }), + 'getHttpAuthSchemePlugin' + ) + // src/middleware-http-signing/httpSigningMiddleware.ts + var import_protocol_http = __nccwpck_require__(64418) - let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock - // cycle to simulate higher resolution clock + var defaultErrorHandler = /* @__PURE__ */ __name( + signingProperties => error => { + throw error + }, + 'defaultErrorHandler' + ) + var defaultSuccessHandler = /* @__PURE__ */ __name( + (httpResponse, signingProperties) => {}, + 'defaultSuccessHandler' + ) + var httpSigningMiddleware = /* @__PURE__ */ __name( + config => (next, context) => async args => { + if (!import_protocol_http.HttpRequest.isInstance(args.request)) { + return next(args) + } + const smithyContext = (0, import_util_middleware.getSmithyContext)( + context + ) + const scheme = smithyContext.selectedHttpAuthScheme + if (!scheme) { + throw new Error( + `No HttpAuthScheme was selected: unable to sign request` + ) + } + const { + httpAuthOption: { signingProperties = {} }, + identity, + signer + } = scheme + const output = await next({ + ...args, + request: await signer.sign( + args.request, + identity, + signingProperties + ) + }).catch( + (signer.errorHandler || defaultErrorHandler)(signingProperties) + ) + ;(signer.successHandler || defaultSuccessHandler)( + output.response, + signingProperties + ) + return output + }, + 'httpSigningMiddleware' + ) - let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs) + // src/middleware-http-signing/getHttpSigningMiddleware.ts + var import_middleware_retry = __nccwpck_require__(96039) + var httpSigningMiddlewareOptions = { + step: 'finalizeRequest', + tags: ['HTTP_SIGNING'], + name: 'httpSigningMiddleware', + aliases: ['apiKeyMiddleware', 'tokenMiddleware', 'awsAuthMiddleware'], + override: true, + relation: 'after', + toMiddleware: import_middleware_retry.retryMiddlewareOptions.name + } + var getHttpSigningPlugin = /* @__PURE__ */ __name( + config => ({ + applyToStack: clientStack => { + clientStack.addRelativeTo( + httpSigningMiddleware(config), + httpSigningMiddlewareOptions + ) + } + }), + 'getHttpSigningPlugin' + ) - const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression + // src/util-identity-and-auth/DefaultIdentityProviderConfig.ts + var _DefaultIdentityProviderConfig = class _DefaultIdentityProviderConfig { + /** + * Creates an IdentityProviderConfig with a record of scheme IDs to identity providers. + * + * @param config scheme IDs and identity providers to configure + */ + constructor(config) { + this.authSchemes = /* @__PURE__ */ new Map() + for (const [key, value] of Object.entries(config)) { + if (value !== void 0) { + this.authSchemes.set(key, value) + } + } + } + getIdentityProvider(schemeId) { + return this.authSchemes.get(schemeId) + } + } + __name(_DefaultIdentityProviderConfig, 'DefaultIdentityProviderConfig') + var DefaultIdentityProviderConfig = _DefaultIdentityProviderConfig - if (dt < 0 && options.clockseq === undefined) { - clockseq = clockseq + 1 & 0x3fff; - } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new - // time interval + // src/util-identity-and-auth/httpAuthSchemes/httpApiKeyAuth.ts + var import_types = __nccwpck_require__(55756) + var _HttpApiKeyAuthSigner = class _HttpApiKeyAuthSigner { + async sign(httpRequest, identity, signingProperties) { + if (!signingProperties) { + throw new Error( + 'request could not be signed with `apiKey` since the `name` and `in` signer properties are missing' + ) + } + if (!signingProperties.name) { + throw new Error( + 'request could not be signed with `apiKey` since the `name` signer property is missing' + ) + } + if (!signingProperties.in) { + throw new Error( + 'request could not be signed with `apiKey` since the `in` signer property is missing' + ) + } + if (!identity.apiKey) { + throw new Error( + 'request could not be signed with `apiKey` since the `apiKey` is not defined' + ) + } + const clonedRequest = + import_protocol_http.HttpRequest.clone(httpRequest) + if ( + signingProperties.in === import_types.HttpApiKeyAuthLocation.QUERY + ) { + clonedRequest.query[signingProperties.name] = identity.apiKey + } else if ( + signingProperties.in === import_types.HttpApiKeyAuthLocation.HEADER + ) { + clonedRequest.headers[signingProperties.name] = + signingProperties.scheme + ? `${signingProperties.scheme} ${identity.apiKey}` + : identity.apiKey + } else { + throw new Error( + 'request can only be signed with `apiKey` locations `query` or `header`, but found: `' + + signingProperties.in + + '`' + ) + } + return clonedRequest + } + } + __name(_HttpApiKeyAuthSigner, 'HttpApiKeyAuthSigner') + var HttpApiKeyAuthSigner = _HttpApiKeyAuthSigner - if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { - nsecs = 0; - } // Per 4.2.1.2 Throw error if too many uuids are requested + // src/util-identity-and-auth/httpAuthSchemes/httpBearerAuth.ts + var _HttpBearerAuthSigner = class _HttpBearerAuthSigner { + async sign(httpRequest, identity, signingProperties) { + const clonedRequest = + import_protocol_http.HttpRequest.clone(httpRequest) + if (!identity.token) { + throw new Error( + 'request could not be signed with `token` since the `token` is not defined' + ) + } + clonedRequest.headers['Authorization'] = `Bearer ${identity.token}` + return clonedRequest + } + } + __name(_HttpBearerAuthSigner, 'HttpBearerAuthSigner') + var HttpBearerAuthSigner = _HttpBearerAuthSigner - if (nsecs >= 10000) { - throw new Error("uuid.v1(): Can't create more than 10M uuids/sec"); - } + // src/util-identity-and-auth/httpAuthSchemes/noAuth.ts + var _NoAuthSigner = class _NoAuthSigner { + async sign(httpRequest, identity, signingProperties) { + return httpRequest + } + } + __name(_NoAuthSigner, 'NoAuthSigner') + var NoAuthSigner = _NoAuthSigner - _lastMSecs = msecs; - _lastNSecs = nsecs; - _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch + // src/util-identity-and-auth/memoizeIdentityProvider.ts + var createIsIdentityExpiredFunction = /* @__PURE__ */ __name( + expirationMs => identity => + doesIdentityRequireRefresh(identity) && + identity.expiration.getTime() - Date.now() < expirationMs, + 'createIsIdentityExpiredFunction' + ) + var EXPIRATION_MS = 3e5 + var isIdentityExpired = createIsIdentityExpiredFunction(EXPIRATION_MS) + var doesIdentityRequireRefresh = /* @__PURE__ */ __name( + identity => identity.expiration !== void 0, + 'doesIdentityRequireRefresh' + ) + var memoizeIdentityProvider = /* @__PURE__ */ __name( + (provider, isExpired, requiresRefresh) => { + if (provider === void 0) { + return void 0 + } + const normalizedProvider = + typeof provider !== 'function' + ? async () => Promise.resolve(provider) + : provider + let resolved + let pending + let hasResult + let isConstant = false + const coalesceProvider = /* @__PURE__ */ __name(async options => { + if (!pending) { + pending = normalizedProvider(options) + } + try { + resolved = await pending + hasResult = true + isConstant = false + } finally { + pending = void 0 + } + return resolved + }, 'coalesceProvider') + if (isExpired === void 0) { + return async options => { + if ( + !hasResult || + (options == null ? void 0 : options.forceRefresh) + ) { + resolved = await coalesceProvider(options) + } + return resolved + } + } + return async options => { + if ( + !hasResult || + (options == null ? void 0 : options.forceRefresh) + ) { + resolved = await coalesceProvider(options) + } + if (isConstant) { + return resolved + } + if (!requiresRefresh(resolved)) { + isConstant = true + return resolved + } + if (isExpired(resolved)) { + await coalesceProvider(options) + return resolved + } + return resolved + } + }, + 'memoizeIdentityProvider' + ) - msecs += 12219292800000; // `time_low` + // src/getSmithyContext.ts - const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; - b[i++] = tl >>> 24 & 0xff; - b[i++] = tl >>> 16 & 0xff; - b[i++] = tl >>> 8 & 0xff; - b[i++] = tl & 0xff; // `time_mid` + var getSmithyContext3 = /* @__PURE__ */ __name( + context => + context[import_types.SMITHY_CONTEXT_KEY] || + (context[import_types.SMITHY_CONTEXT_KEY] = {}), + 'getSmithyContext' + ) - const tmh = msecs / 0x100000000 * 10000 & 0xfffffff; - b[i++] = tmh >>> 8 & 0xff; - b[i++] = tmh & 0xff; // `time_high_and_version` + // src/normalizeProvider.ts + var normalizeProvider = /* @__PURE__ */ __name(input => { + if (typeof input === 'function') return input + const promisified = Promise.resolve(input) + return () => promisified + }, 'normalizeProvider') + + // src/protocols/requestBuilder.ts + + var import_smithy_client = __nccwpck_require__(63570) + function requestBuilder(input, context) { + return new RequestBuilder(input, context) + } + __name(requestBuilder, 'requestBuilder') + var _RequestBuilder = class _RequestBuilder { + constructor(input, context) { + this.input = input + this.context = context + this.query = {} + this.method = '' + this.headers = {} + this.path = '' + this.body = null + this.hostname = '' + this.resolvePathStack = [] + } + async build() { + const { + hostname, + protocol = 'https', + port, + path: basePath + } = await this.context.endpoint() + this.path = basePath + for (const resolvePath of this.resolvePathStack) { + resolvePath(this.path) + } + return new import_protocol_http.HttpRequest({ + protocol, + hostname: this.hostname || hostname, + port, + method: this.method, + path: this.path, + query: this.query, + body: this.body, + headers: this.headers + }) + } + /** + * Brevity setter for "hostname". + */ + hn(hostname) { + this.hostname = hostname + return this + } + /** + * Brevity initial builder for "basepath". + */ + bp(uriLabel) { + this.resolvePathStack.push(basePath => { + this.path = + `${(basePath == null ? void 0 : basePath.endsWith('/')) ? basePath.slice(0, -1) : basePath || ''}` + + uriLabel + }) + return this + } + /** + * Brevity incremental builder for "path". + */ + p(memberName, labelValueProvider, uriLabel, isGreedyLabel) { + this.resolvePathStack.push(path => { + this.path = (0, import_smithy_client.resolvedPath)( + path, + this.input, + memberName, + labelValueProvider, + uriLabel, + isGreedyLabel + ) + }) + return this + } + /** + * Brevity setter for "headers". + */ + h(headers) { + this.headers = headers + return this + } + /** + * Brevity setter for "query". + */ + q(query) { + this.query = query + return this + } + /** + * Brevity setter for "body". + */ + b(body) { + this.body = body + return this + } + /** + * Brevity setter for "method". + */ + m(method) { + this.method = method + return this + } + } + __name(_RequestBuilder, 'RequestBuilder') + var RequestBuilder = _RequestBuilder - b[i++] = tmh >>> 24 & 0xf | 0x10; // include version + // src/pagination/createPaginator.ts + var makePagedClientRequest = /* @__PURE__ */ __name( + async (CommandCtor, client, input, ...args) => { + return await client.send(new CommandCtor(input), ...args) + }, + 'makePagedClientRequest' + ) + function createPaginator( + ClientCtor, + CommandCtor, + inputTokenName, + outputTokenName, + pageSizeTokenName + ) { + return /* @__PURE__ */ __name(async function* paginateOperation( + config, + input, + ...additionalArguments + ) { + let token = config.startingToken || void 0 + let hasNext = true + let page + while (hasNext) { + input[inputTokenName] = token + if (pageSizeTokenName) { + input[pageSizeTokenName] = + input[pageSizeTokenName] ?? config.pageSize + } + if (config.client instanceof ClientCtor) { + page = await makePagedClientRequest( + CommandCtor, + config.client, + input, + ...additionalArguments + ) + } else { + throw new Error( + `Invalid client, expected instance of ${ClientCtor.name}` + ) + } + yield page + const prevToken = token + token = get(page, outputTokenName) + hasNext = !!( + token && + (!config.stopOnSameToken || token !== prevToken) + ) + } + return void 0 + }, 'paginateOperation') + } + __name(createPaginator, 'createPaginator') + var get = /* @__PURE__ */ __name((fromObject, path) => { + let cursor = fromObject + const pathComponents = path.split('.') + for (const step of pathComponents) { + if (!cursor || typeof cursor !== 'object') { + return void 0 + } + cursor = cursor[step] + } + return cursor + }, 'get') + // Annotate the CommonJS export names for ESM import in node: - b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) + 0 && 0 - b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low` + /***/ + }, - b[i++] = clockseq & 0xff; // `node` + /***/ 7477: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + DEFAULT_MAX_RETRIES: () => DEFAULT_MAX_RETRIES, + DEFAULT_TIMEOUT: () => DEFAULT_TIMEOUT, + ENV_CMDS_AUTH_TOKEN: () => ENV_CMDS_AUTH_TOKEN, + ENV_CMDS_FULL_URI: () => ENV_CMDS_FULL_URI, + ENV_CMDS_RELATIVE_URI: () => ENV_CMDS_RELATIVE_URI, + Endpoint: () => Endpoint, + fromContainerMetadata: () => fromContainerMetadata, + fromInstanceMetadata: () => fromInstanceMetadata, + getInstanceMetadataEndpoint: () => getInstanceMetadataEndpoint, + httpRequest: () => httpRequest, + providerConfigFromInit: () => providerConfigFromInit + }) + module.exports = __toCommonJS(src_exports) - for (let n = 0; n < 6; ++n) { - b[i + n] = node[n]; - } + // src/fromContainerMetadata.ts - return buf || (0, _stringify.unsafeStringify)(b); -} + var import_url = __nccwpck_require__(57310) -var _default = v1; -exports["default"] = _default; + // src/remoteProvider/httpRequest.ts + var import_property_provider = __nccwpck_require__(79721) + var import_buffer = __nccwpck_require__(14300) + var import_http = __nccwpck_require__(13685) + function httpRequest(options) { + return new Promise((resolve, reject) => { + var _a + const req = (0, import_http.request)({ + method: 'GET', + ...options, + // Node.js http module doesn't accept hostname with square brackets + // Refs: https://github.com/nodejs/node/issues/39738 + hostname: + (_a = options.hostname) == null + ? void 0 + : _a.replace(/^\[(.+)\]$/, '$1') + }) + req.on('error', err => { + reject( + Object.assign( + new import_property_provider.ProviderError( + 'Unable to connect to instance metadata service' + ), + err + ) + ) + req.destroy() + }) + req.on('timeout', () => { + reject( + new import_property_provider.ProviderError( + 'TimeoutError from instance metadata service' + ) + ) + req.destroy() + }) + req.on('response', res => { + const { statusCode = 400 } = res + if (statusCode < 200 || 300 <= statusCode) { + reject( + Object.assign( + new import_property_provider.ProviderError( + 'Error response received from instance metadata service' + ), + { statusCode } + ) + ) + req.destroy() + } + const chunks = [] + res.on('data', chunk => { + chunks.push(chunk) + }) + res.on('end', () => { + resolve(import_buffer.Buffer.concat(chunks)) + req.destroy() + }) + }) + req.end() + }) + } + __name(httpRequest, 'httpRequest') + + // src/remoteProvider/ImdsCredentials.ts + var isImdsCredentials = /* @__PURE__ */ __name( + arg => + Boolean(arg) && + typeof arg === 'object' && + typeof arg.AccessKeyId === 'string' && + typeof arg.SecretAccessKey === 'string' && + typeof arg.Token === 'string' && + typeof arg.Expiration === 'string', + 'isImdsCredentials' + ) + var fromImdsCredentials = /* @__PURE__ */ __name( + creds => ({ + accessKeyId: creds.AccessKeyId, + secretAccessKey: creds.SecretAccessKey, + sessionToken: creds.Token, + expiration: new Date(creds.Expiration), + ...(creds.AccountId && { accountId: creds.AccountId }) + }), + 'fromImdsCredentials' + ) -/***/ }), + // src/remoteProvider/RemoteProviderInit.ts + var DEFAULT_TIMEOUT = 1e3 + var DEFAULT_MAX_RETRIES = 0 + var providerConfigFromInit = /* @__PURE__ */ __name( + ({ maxRetries = DEFAULT_MAX_RETRIES, timeout = DEFAULT_TIMEOUT }) => ({ + maxRetries, + timeout + }), + 'providerConfigFromInit' + ) -/***/ 507: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + // src/remoteProvider/retry.ts + var retry = /* @__PURE__ */ __name((toRetry, maxRetries) => { + let promise = toRetry() + for (let i = 0; i < maxRetries; i++) { + promise = promise.catch(toRetry) + } + return promise + }, 'retry') + + // src/fromContainerMetadata.ts + var ENV_CMDS_FULL_URI = 'AWS_CONTAINER_CREDENTIALS_FULL_URI' + var ENV_CMDS_RELATIVE_URI = 'AWS_CONTAINER_CREDENTIALS_RELATIVE_URI' + var ENV_CMDS_AUTH_TOKEN = 'AWS_CONTAINER_AUTHORIZATION_TOKEN' + var fromContainerMetadata = /* @__PURE__ */ __name((init = {}) => { + const { timeout, maxRetries } = providerConfigFromInit(init) + return () => + retry(async () => { + const requestOptions = await getCmdsUri({ logger: init.logger }) + const credsResponse = JSON.parse( + await requestFromEcsImds(timeout, requestOptions) + ) + if (!isImdsCredentials(credsResponse)) { + throw new import_property_provider.CredentialsProviderError( + 'Invalid response received from instance metadata service.', + { + logger: init.logger + } + ) + } + return fromImdsCredentials(credsResponse) + }, maxRetries) + }, 'fromContainerMetadata') + var requestFromEcsImds = /* @__PURE__ */ __name( + async (timeout, options) => { + if (process.env[ENV_CMDS_AUTH_TOKEN]) { + options.headers = { + ...options.headers, + Authorization: process.env[ENV_CMDS_AUTH_TOKEN] + } + } + const buffer = await httpRequest({ + ...options, + timeout + }) + return buffer.toString() + }, + 'requestFromEcsImds' + ) + var CMDS_IP = '169.254.170.2' + var GREENGRASS_HOSTS = { + localhost: true, + '127.0.0.1': true + } + var GREENGRASS_PROTOCOLS = { + 'http:': true, + 'https:': true + } + var getCmdsUri = /* @__PURE__ */ __name(async ({ logger }) => { + if (process.env[ENV_CMDS_RELATIVE_URI]) { + return { + hostname: CMDS_IP, + path: process.env[ENV_CMDS_RELATIVE_URI] + } + } + if (process.env[ENV_CMDS_FULL_URI]) { + const parsed = (0, import_url.parse)(process.env[ENV_CMDS_FULL_URI]) + if (!parsed.hostname || !(parsed.hostname in GREENGRASS_HOSTS)) { + throw new import_property_provider.CredentialsProviderError( + `${parsed.hostname} is not a valid container metadata service hostname`, + { + tryNextLink: false, + logger + } + ) + } + if (!parsed.protocol || !(parsed.protocol in GREENGRASS_PROTOCOLS)) { + throw new import_property_provider.CredentialsProviderError( + `${parsed.protocol} is not a valid container metadata service protocol`, + { + tryNextLink: false, + logger + } + ) + } + return { + ...parsed, + port: parsed.port ? parseInt(parsed.port, 10) : void 0 + } + } + throw new import_property_provider.CredentialsProviderError( + `The container metadata credential provider cannot be used unless the ${ENV_CMDS_RELATIVE_URI} or ${ENV_CMDS_FULL_URI} environment variable is set`, + { + tryNextLink: false, + logger + } + ) + }, 'getCmdsUri') -"use strict"; + // src/fromInstanceMetadata.ts + // src/error/InstanceMetadataV1FallbackError.ts -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + var _InstanceMetadataV1FallbackError = class _InstanceMetadataV1FallbackError + extends import_property_provider.CredentialsProviderError + { + constructor(message, tryNextLink = true) { + super(message, tryNextLink) + this.tryNextLink = tryNextLink + this.name = 'InstanceMetadataV1FallbackError' + Object.setPrototypeOf( + this, + _InstanceMetadataV1FallbackError.prototype + ) + } + } + __name( + _InstanceMetadataV1FallbackError, + 'InstanceMetadataV1FallbackError' + ) + var InstanceMetadataV1FallbackError = _InstanceMetadataV1FallbackError + + // src/utils/getInstanceMetadataEndpoint.ts + var import_node_config_provider = __nccwpck_require__(33461) + var import_url_parser = __nccwpck_require__(14681) + + // src/config/Endpoint.ts + var Endpoint = /* @__PURE__ */ (Endpoint2 => { + Endpoint2['IPv4'] = 'http://169.254.169.254' + Endpoint2['IPv6'] = 'http://[fd00:ec2::254]' + return Endpoint2 + })(Endpoint || {}) + + // src/config/EndpointConfigOptions.ts + var ENV_ENDPOINT_NAME = 'AWS_EC2_METADATA_SERVICE_ENDPOINT' + var CONFIG_ENDPOINT_NAME = 'ec2_metadata_service_endpoint' + var ENDPOINT_CONFIG_OPTIONS = { + environmentVariableSelector: env => env[ENV_ENDPOINT_NAME], + configFileSelector: profile => profile[CONFIG_ENDPOINT_NAME], + default: void 0 + } + + // src/config/EndpointMode.ts + var EndpointMode = /* @__PURE__ */ (EndpointMode2 => { + EndpointMode2['IPv4'] = 'IPv4' + EndpointMode2['IPv6'] = 'IPv6' + return EndpointMode2 + })(EndpointMode || {}) + + // src/config/EndpointModeConfigOptions.ts + var ENV_ENDPOINT_MODE_NAME = 'AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE' + var CONFIG_ENDPOINT_MODE_NAME = 'ec2_metadata_service_endpoint_mode' + var ENDPOINT_MODE_CONFIG_OPTIONS = { + environmentVariableSelector: env => env[ENV_ENDPOINT_MODE_NAME], + configFileSelector: profile => profile[CONFIG_ENDPOINT_MODE_NAME], + default: 'IPv4' /* IPv4 */ + } + + // src/utils/getInstanceMetadataEndpoint.ts + var getInstanceMetadataEndpoint = /* @__PURE__ */ __name( + async () => + (0, import_url_parser.parseUrl)( + (await getFromEndpointConfig()) || + (await getFromEndpointModeConfig()) + ), + 'getInstanceMetadataEndpoint' + ) + var getFromEndpointConfig = /* @__PURE__ */ __name( + async () => + (0, import_node_config_provider.loadConfig)( + ENDPOINT_CONFIG_OPTIONS + )(), + 'getFromEndpointConfig' + ) + var getFromEndpointModeConfig = /* @__PURE__ */ __name(async () => { + const endpointMode = await (0, import_node_config_provider.loadConfig)( + ENDPOINT_MODE_CONFIG_OPTIONS + )() + switch (endpointMode) { + case 'IPv4' /* IPv4 */: + return 'http://169.254.169.254' /* IPv4 */ + case 'IPv6' /* IPv6 */: + return 'http://[fd00:ec2::254]' /* IPv6 */ + default: + throw new Error( + `Unsupported endpoint mode: ${endpointMode}. Select from ${Object.values(EndpointMode)}` + ) + } + }, 'getFromEndpointModeConfig') + + // src/utils/getExtendedInstanceMetadataCredentials.ts + var STATIC_STABILITY_REFRESH_INTERVAL_SECONDS = 5 * 60 + var STATIC_STABILITY_REFRESH_INTERVAL_JITTER_WINDOW_SECONDS = 5 * 60 + var STATIC_STABILITY_DOC_URL = + 'https://docs.aws.amazon.com/sdkref/latest/guide/feature-static-credentials.html' + var getExtendedInstanceMetadataCredentials = /* @__PURE__ */ __name( + (credentials, logger) => { + const refreshInterval = + STATIC_STABILITY_REFRESH_INTERVAL_SECONDS + + Math.floor( + Math.random() * + STATIC_STABILITY_REFRESH_INTERVAL_JITTER_WINDOW_SECONDS + ) + const newExpiration = new Date(Date.now() + refreshInterval * 1e3) + logger.warn( + `Attempting credential expiration extension due to a credential service availability issue. A refresh of these credentials will be attempted after ${new Date(newExpiration)}. +For more information, please visit: ` + STATIC_STABILITY_DOC_URL + ) + const originalExpiration = + credentials.originalExpiration ?? credentials.expiration + return { + ...credentials, + ...(originalExpiration ? { originalExpiration } : {}), + expiration: newExpiration + } + }, + 'getExtendedInstanceMetadataCredentials' + ) -var _v = _interopRequireDefault(__nccwpck_require__(96265)); + // src/utils/staticStabilityProvider.ts + var staticStabilityProvider = /* @__PURE__ */ __name( + (provider, options = {}) => { + const logger = (options == null ? void 0 : options.logger) || console + let pastCredentials + return async () => { + let credentials + try { + credentials = await provider() + if ( + credentials.expiration && + credentials.expiration.getTime() < Date.now() + ) { + credentials = getExtendedInstanceMetadataCredentials( + credentials, + logger + ) + } + } catch (e) { + if (pastCredentials) { + logger.warn('Credential renew failed: ', e) + credentials = getExtendedInstanceMetadataCredentials( + pastCredentials, + logger + ) + } else { + throw e + } + } + pastCredentials = credentials + return credentials + } + }, + 'staticStabilityProvider' + ) -var _md = _interopRequireDefault(__nccwpck_require__(47884)); + // src/fromInstanceMetadata.ts + var IMDS_PATH = '/latest/meta-data/iam/security-credentials/' + var IMDS_TOKEN_PATH = '/latest/api/token' + var AWS_EC2_METADATA_V1_DISABLED = 'AWS_EC2_METADATA_V1_DISABLED' + var PROFILE_AWS_EC2_METADATA_V1_DISABLED = 'ec2_metadata_v1_disabled' + var X_AWS_EC2_METADATA_TOKEN = 'x-aws-ec2-metadata-token' + var fromInstanceMetadata = /* @__PURE__ */ __name( + (init = {}) => + staticStabilityProvider(getInstanceMetadataProvider(init), { + logger: init.logger + }), + 'fromInstanceMetadata' + ) + var getInstanceMetadataProvider = /* @__PURE__ */ __name((init = {}) => { + let disableFetchToken = false + const { logger, profile } = init + const { timeout, maxRetries } = providerConfigFromInit(init) + const getCredentials = /* @__PURE__ */ __name( + async (maxRetries2, options) => { + var _a + const isImdsV1Fallback = + disableFetchToken || + ((_a = options.headers) == null + ? void 0 + : _a[X_AWS_EC2_METADATA_TOKEN]) == null + if (isImdsV1Fallback) { + let fallbackBlockedFromProfile = false + let fallbackBlockedFromProcessEnv = false + const configValue = await (0, + import_node_config_provider.loadConfig)( + { + environmentVariableSelector: env => { + const envValue = env[AWS_EC2_METADATA_V1_DISABLED] + fallbackBlockedFromProcessEnv = + !!envValue && envValue !== 'false' + if (envValue === void 0) { + throw new import_property_provider.CredentialsProviderError( + `${AWS_EC2_METADATA_V1_DISABLED} not set in env, checking config file next.`, + { logger: init.logger } + ) + } + return fallbackBlockedFromProcessEnv + }, + configFileSelector: profile2 => { + const profileValue = + profile2[PROFILE_AWS_EC2_METADATA_V1_DISABLED] + fallbackBlockedFromProfile = + !!profileValue && profileValue !== 'false' + return fallbackBlockedFromProfile + }, + default: false + }, + { + profile + } + )() + if (init.ec2MetadataV1Disabled || configValue) { + const causes = [] + if (init.ec2MetadataV1Disabled) + causes.push( + 'credential provider initialization (runtime option ec2MetadataV1Disabled)' + ) + if (fallbackBlockedFromProfile) + causes.push( + `config file profile (${PROFILE_AWS_EC2_METADATA_V1_DISABLED})` + ) + if (fallbackBlockedFromProcessEnv) + causes.push( + `process environment variable (${AWS_EC2_METADATA_V1_DISABLED})` + ) + throw new InstanceMetadataV1FallbackError( + `AWS EC2 Metadata v1 fallback has been blocked by AWS SDK configuration in the following: [${causes.join( + ', ' + )}].` + ) + } + } + const imdsProfile = ( + await retry(async () => { + let profile2 + try { + profile2 = await getProfile(options) + } catch (err) { + if (err.statusCode === 401) { + disableFetchToken = false + } + throw err + } + return profile2 + }, maxRetries2) + ).trim() + return retry(async () => { + let creds + try { + creds = await getCredentialsFromProfile( + imdsProfile, + options, + init + ) + } catch (err) { + if (err.statusCode === 401) { + disableFetchToken = false + } + throw err + } + return creds + }, maxRetries2) + }, + 'getCredentials' + ) + return async () => { + const endpoint = await getInstanceMetadataEndpoint() + if (disableFetchToken) { + logger == null + ? void 0 + : logger.debug( + 'AWS SDK Instance Metadata', + 'using v1 fallback (no token fetch)' + ) + return getCredentials(maxRetries, { ...endpoint, timeout }) + } else { + let token + try { + token = ( + await getMetadataToken({ ...endpoint, timeout }) + ).toString() + } catch (error) { + if ((error == null ? void 0 : error.statusCode) === 400) { + throw Object.assign(error, { + message: 'EC2 Metadata token request returned error' + }) + } else if ( + error.message === 'TimeoutError' || + [403, 404, 405].includes(error.statusCode) + ) { + disableFetchToken = true + } + logger == null + ? void 0 + : logger.debug( + 'AWS SDK Instance Metadata', + 'using v1 fallback (initial)' + ) + return getCredentials(maxRetries, { ...endpoint, timeout }) + } + return getCredentials(maxRetries, { + ...endpoint, + headers: { + [X_AWS_EC2_METADATA_TOKEN]: token + }, + timeout + }) + } + } + }, 'getInstanceMetadataProvider') + var getMetadataToken = /* @__PURE__ */ __name( + async options => + httpRequest({ + ...options, + path: IMDS_TOKEN_PATH, + method: 'PUT', + headers: { + 'x-aws-ec2-metadata-token-ttl-seconds': '21600' + } + }), + 'getMetadataToken' + ) + var getProfile = /* @__PURE__ */ __name( + async options => + (await httpRequest({ ...options, path: IMDS_PATH })).toString(), + 'getProfile' + ) + var getCredentialsFromProfile = /* @__PURE__ */ __name( + async (profile, options, init) => { + const credentialsResponse = JSON.parse( + ( + await httpRequest({ + ...options, + path: IMDS_PATH + profile + }) + ).toString() + ) + if (!isImdsCredentials(credentialsResponse)) { + throw new import_property_provider.CredentialsProviderError( + 'Invalid response received from instance metadata service.', + { + logger: init.logger + } + ) + } + return fromImdsCredentials(credentialsResponse) + }, + 'getCredentialsFromProfile' + ) + // Annotate the CommonJS export names for ESM import in node: -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + 0 && 0 -const v3 = (0, _v.default)('v3', 0x30, _md.default); -var _default = v3; -exports["default"] = _default; + /***/ + }, -/***/ }), + /***/ 82687: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -/***/ 96265: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + // src/index.ts + var src_exports = {} + __export(src_exports, { + FetchHttpHandler: () => FetchHttpHandler, + keepAliveSupport: () => keepAliveSupport, + streamCollector: () => streamCollector + }) + module.exports = __toCommonJS(src_exports) -"use strict"; + // src/fetch-http-handler.ts + var import_protocol_http = __nccwpck_require__(64418) + var import_querystring_builder = __nccwpck_require__(68031) + // src/request-timeout.ts + function requestTimeout(timeoutInMs = 0) { + return new Promise((resolve, reject) => { + if (timeoutInMs) { + setTimeout(() => { + const timeoutError = new Error( + `Request did not complete within ${timeoutInMs} ms` + ) + timeoutError.name = 'TimeoutError' + reject(timeoutError) + }, timeoutInMs) + } + }) + } + __name(requestTimeout, 'requestTimeout') -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.URL = exports.DNS = void 0; -exports["default"] = v35; + // src/fetch-http-handler.ts + var keepAliveSupport = { + supported: void 0 + } + var _FetchHttpHandler = class _FetchHttpHandler { + /** + * @returns the input if it is an HttpHandler of any class, + * or instantiates a new instance of this handler. + */ + static create(instanceOrOptions) { + if ( + typeof (instanceOrOptions == null + ? void 0 + : instanceOrOptions.handle) === 'function' + ) { + return instanceOrOptions + } + return new _FetchHttpHandler(instanceOrOptions) + } + constructor(options) { + if (typeof options === 'function') { + this.configProvider = options().then(opts => opts || {}) + } else { + this.config = options ?? {} + this.configProvider = Promise.resolve(this.config) + } + if (keepAliveSupport.supported === void 0) { + keepAliveSupport.supported = Boolean( + typeof Request !== 'undefined' && + 'keepalive' in new Request('https://[::1]') + ) + } + } + destroy() {} + async handle(request, { abortSignal } = {}) { + if (!this.config) { + this.config = await this.configProvider + } + const requestTimeoutInMs = this.config.requestTimeout + const keepAlive = this.config.keepAlive === true + const credentials = this.config.credentials + if (abortSignal == null ? void 0 : abortSignal.aborted) { + const abortError = new Error('Request aborted') + abortError.name = 'AbortError' + return Promise.reject(abortError) + } + let path = request.path + const queryString = (0, import_querystring_builder.buildQueryString)( + request.query || {} + ) + if (queryString) { + path += `?${queryString}` + } + if (request.fragment) { + path += `#${request.fragment}` + } + let auth = '' + if (request.username != null || request.password != null) { + const username = request.username ?? '' + const password = request.password ?? '' + auth = `${username}:${password}@` + } + const { port, method } = request + const url = `${request.protocol}//${auth}${request.hostname}${port ? `:${port}` : ''}${path}` + const body = + method === 'GET' || method === 'HEAD' ? void 0 : request.body + const requestOptions = { + body, + headers: new Headers(request.headers), + method, + credentials + } + if (body) { + requestOptions.duplex = 'half' + } + if (typeof AbortController !== 'undefined') { + requestOptions.signal = abortSignal + } + if (keepAliveSupport.supported) { + requestOptions.keepalive = keepAlive + } + let removeSignalEventListener = /* @__PURE__ */ __name( + () => {}, + 'removeSignalEventListener' + ) + const fetchRequest = new Request(url, requestOptions) + const raceOfPromises = [ + fetch(fetchRequest).then(response => { + const fetchHeaders = response.headers + const transformedHeaders = {} + for (const pair of fetchHeaders.entries()) { + transformedHeaders[pair[0]] = pair[1] + } + const hasReadableStream = response.body != void 0 + if (!hasReadableStream) { + return response.blob().then(body2 => ({ + response: new import_protocol_http.HttpResponse({ + headers: transformedHeaders, + reason: response.statusText, + statusCode: response.status, + body: body2 + }) + })) + } + return { + response: new import_protocol_http.HttpResponse({ + headers: transformedHeaders, + reason: response.statusText, + statusCode: response.status, + body: response.body + }) + } + }), + requestTimeout(requestTimeoutInMs) + ] + if (abortSignal) { + raceOfPromises.push( + new Promise((resolve, reject) => { + const onAbort = /* @__PURE__ */ __name(() => { + const abortError = new Error('Request aborted') + abortError.name = 'AbortError' + reject(abortError) + }, 'onAbort') + if (typeof abortSignal.addEventListener === 'function') { + const signal = abortSignal + signal.addEventListener('abort', onAbort, { once: true }) + removeSignalEventListener = /* @__PURE__ */ __name( + () => signal.removeEventListener('abort', onAbort), + 'removeSignalEventListener' + ) + } else { + abortSignal.onabort = onAbort + } + }) + ) + } + return Promise.race(raceOfPromises).finally(removeSignalEventListener) + } + updateHttpClientConfig(key, value) { + this.config = void 0 + this.configProvider = this.configProvider.then(config => { + config[key] = value + return config + }) + } + httpHandlerConfigs() { + return this.config ?? {} + } + } + __name(_FetchHttpHandler, 'FetchHttpHandler') + var FetchHttpHandler = _FetchHttpHandler + + // src/stream-collector.ts + var import_util_base64 = __nccwpck_require__(75600) + var streamCollector = /* @__PURE__ */ __name(stream => { + if (typeof Blob === 'function' && stream instanceof Blob) { + return collectBlob(stream) + } + return collectStream(stream) + }, 'streamCollector') + async function collectBlob(blob) { + const base64 = await readToBase64(blob) + const arrayBuffer = (0, import_util_base64.fromBase64)(base64) + return new Uint8Array(arrayBuffer) + } + __name(collectBlob, 'collectBlob') + async function collectStream(stream) { + const chunks = [] + const reader = stream.getReader() + let isDone = false + let length = 0 + while (!isDone) { + const { done, value } = await reader.read() + if (value) { + chunks.push(value) + length += value.length + } + isDone = done + } + const collected = new Uint8Array(length) + let offset = 0 + for (const chunk of chunks) { + collected.set(chunk, offset) + offset += chunk.length + } + return collected + } + __name(collectStream, 'collectStream') + function readToBase64(blob) { + return new Promise((resolve, reject) => { + const reader = new FileReader() + reader.onloadend = () => { + if (reader.readyState !== 2) { + return reject(new Error('Reader aborted too early')) + } + const result = reader.result ?? '' + const commaIndex = result.indexOf(',') + const dataOffset = commaIndex > -1 ? commaIndex + 1 : result.length + resolve(result.substring(dataOffset)) + } + reader.onabort = () => reject(new Error('Read aborted')) + reader.onerror = () => reject(reader.error) + reader.readAsDataURL(blob) + }) + } + __name(readToBase64, 'readToBase64') + // Annotate the CommonJS export names for ESM import in node: -var _stringify = __nccwpck_require__(63226); + 0 && 0 -var _parse = _interopRequireDefault(__nccwpck_require__(35432)); + /***/ + }, -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + /***/ 3081: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -function stringToBytes(str) { - str = unescape(encodeURIComponent(str)); // UTF8 escape + // src/index.ts + var src_exports = {} + __export(src_exports, { + Hash: () => Hash + }) + module.exports = __toCommonJS(src_exports) + var import_util_buffer_from = __nccwpck_require__(31381) + var import_util_utf8 = __nccwpck_require__(41895) + var import_buffer = __nccwpck_require__(14300) + var import_crypto = __nccwpck_require__(6113) + var _Hash = class _Hash { + constructor(algorithmIdentifier, secret) { + this.algorithmIdentifier = algorithmIdentifier + this.secret = secret + this.reset() + } + update(toHash, encoding) { + this.hash.update( + (0, import_util_utf8.toUint8Array)(castSourceData(toHash, encoding)) + ) + } + digest() { + return Promise.resolve(this.hash.digest()) + } + reset() { + this.hash = this.secret + ? (0, import_crypto.createHmac)( + this.algorithmIdentifier, + castSourceData(this.secret) + ) + : (0, import_crypto.createHash)(this.algorithmIdentifier) + } + } + __name(_Hash, 'Hash') + var Hash = _Hash + function castSourceData(toCast, encoding) { + if (import_buffer.Buffer.isBuffer(toCast)) { + return toCast + } + if (typeof toCast === 'string') { + return (0, import_util_buffer_from.fromString)(toCast, encoding) + } + if (ArrayBuffer.isView(toCast)) { + return (0, import_util_buffer_from.fromArrayBuffer)( + toCast.buffer, + toCast.byteOffset, + toCast.byteLength + ) + } + return (0, import_util_buffer_from.fromArrayBuffer)(toCast) + } + __name(castSourceData, 'castSourceData') + // Annotate the CommonJS export names for ESM import in node: - const bytes = []; + 0 && 0 - for (let i = 0; i < str.length; ++i) { - bytes.push(str.charCodeAt(i)); - } + /***/ + }, - return bytes; -} + /***/ 10780: /***/ module => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8'; -exports.DNS = DNS; -const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8'; -exports.URL = URL; + // src/index.ts + var src_exports = {} + __export(src_exports, { + isArrayBuffer: () => isArrayBuffer + }) + module.exports = __toCommonJS(src_exports) + var isArrayBuffer = /* @__PURE__ */ __name( + arg => + (typeof ArrayBuffer === 'function' && arg instanceof ArrayBuffer) || + Object.prototype.toString.call(arg) === '[object ArrayBuffer]', + 'isArrayBuffer' + ) + // Annotate the CommonJS export names for ESM import in node: -function v35(name, version, hashfunc) { - function generateUUID(value, namespace, buf, offset) { - var _namespace; + 0 && 0 - if (typeof value === 'string') { - value = stringToBytes(value); - } + /***/ + }, - if (typeof namespace === 'string') { - namespace = (0, _parse.default)(namespace); - } + /***/ 82800: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) - if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) { - throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)'); - } // Compute hash of namespace and value, Per 4.3 - // Future: Use spread syntax when supported on all platforms, e.g. `bytes = - // hashfunc([...namespace, ... value])` + // src/index.ts + var src_exports = {} + __export(src_exports, { + contentLengthMiddleware: () => contentLengthMiddleware, + contentLengthMiddlewareOptions: () => contentLengthMiddlewareOptions, + getContentLengthPlugin: () => getContentLengthPlugin + }) + module.exports = __toCommonJS(src_exports) + var import_protocol_http = __nccwpck_require__(64418) + var CONTENT_LENGTH_HEADER = 'content-length' + function contentLengthMiddleware(bodyLengthChecker) { + return next => async args => { + const request = args.request + if (import_protocol_http.HttpRequest.isInstance(request)) { + const { body, headers } = request + if ( + body && + Object.keys(headers) + .map(str => str.toLowerCase()) + .indexOf(CONTENT_LENGTH_HEADER) === -1 + ) { + try { + const length = bodyLengthChecker(body) + request.headers = { + ...request.headers, + [CONTENT_LENGTH_HEADER]: String(length) + } + } catch (error) {} + } + } + return next({ + ...args, + request + }) + } + } + __name(contentLengthMiddleware, 'contentLengthMiddleware') + var contentLengthMiddlewareOptions = { + step: 'build', + tags: ['SET_CONTENT_LENGTH', 'CONTENT_LENGTH'], + name: 'contentLengthMiddleware', + override: true + } + var getContentLengthPlugin = /* @__PURE__ */ __name( + options => ({ + applyToStack: clientStack => { + clientStack.add( + contentLengthMiddleware(options.bodyLengthChecker), + contentLengthMiddlewareOptions + ) + } + }), + 'getContentLengthPlugin' + ) + // Annotate the CommonJS export names for ESM import in node: + 0 && 0 - let bytes = new Uint8Array(16 + value.length); - bytes.set(namespace); - bytes.set(value, namespace.length); - bytes = hashfunc(bytes); - bytes[6] = bytes[6] & 0x0f | version; - bytes[8] = bytes[8] & 0x3f | 0x80; + /***/ + }, - if (buf) { - offset = offset || 0; + /***/ 31518: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getEndpointFromConfig = void 0 + const node_config_provider_1 = __nccwpck_require__(33461) + const getEndpointUrlConfig_1 = __nccwpck_require__(7574) + const getEndpointFromConfig = async serviceId => + (0, node_config_provider_1.loadConfig)( + (0, getEndpointUrlConfig_1.getEndpointUrlConfig)( + serviceId !== null && serviceId !== void 0 ? serviceId : '' + ) + )() + exports.getEndpointFromConfig = getEndpointFromConfig - for (let i = 0; i < 16; ++i) { - buf[offset + i] = bytes[i]; - } + /***/ + }, - return buf; - } + /***/ 7574: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getEndpointUrlConfig = void 0 + const shared_ini_file_loader_1 = __nccwpck_require__(43507) + const ENV_ENDPOINT_URL = 'AWS_ENDPOINT_URL' + const CONFIG_ENDPOINT_URL = 'endpoint_url' + const getEndpointUrlConfig = serviceId => ({ + environmentVariableSelector: env => { + const serviceSuffixParts = serviceId + .split(' ') + .map(w => w.toUpperCase()) + const serviceEndpointUrl = + env[[ENV_ENDPOINT_URL, ...serviceSuffixParts].join('_')] + if (serviceEndpointUrl) return serviceEndpointUrl + const endpointUrl = env[ENV_ENDPOINT_URL] + if (endpointUrl) return endpointUrl + return undefined + }, + configFileSelector: (profile, config) => { + if (config && profile.services) { + const servicesSection = + config[ + ['services', profile.services].join( + shared_ini_file_loader_1.CONFIG_PREFIX_SEPARATOR + ) + ] + if (servicesSection) { + const servicePrefixParts = serviceId + .split(' ') + .map(w => w.toLowerCase()) + const endpointUrl = + servicesSection[ + [servicePrefixParts.join('_'), CONFIG_ENDPOINT_URL].join( + shared_ini_file_loader_1.CONFIG_PREFIX_SEPARATOR + ) + ] + if (endpointUrl) return endpointUrl + } + } + const endpointUrl = profile[CONFIG_ENDPOINT_URL] + if (endpointUrl) return endpointUrl + return undefined + }, + default: undefined + }) + exports.getEndpointUrlConfig = getEndpointUrlConfig - return (0, _stringify.unsafeStringify)(bytes); - } // Function#name is not settable on some platforms (#270) + /***/ + }, + /***/ 82918: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + endpointMiddleware: () => endpointMiddleware, + endpointMiddlewareOptions: () => endpointMiddlewareOptions, + getEndpointFromInstructions: () => getEndpointFromInstructions, + getEndpointPlugin: () => getEndpointPlugin, + resolveEndpointConfig: () => resolveEndpointConfig, + resolveParams: () => resolveParams, + toEndpointV1: () => toEndpointV1 + }) + module.exports = __toCommonJS(src_exports) + + // src/service-customizations/s3.ts + var resolveParamsForS3 = /* @__PURE__ */ __name(async endpointParams => { + const bucket = + (endpointParams == null ? void 0 : endpointParams.Bucket) || '' + if (typeof endpointParams.Bucket === 'string') { + endpointParams.Bucket = bucket + .replace(/#/g, encodeURIComponent('#')) + .replace(/\?/g, encodeURIComponent('?')) + } + if (isArnBucketName(bucket)) { + if (endpointParams.ForcePathStyle === true) { + throw new Error( + 'Path-style addressing cannot be used with ARN buckets' + ) + } + } else if ( + !isDnsCompatibleBucketName(bucket) || + (bucket.indexOf('.') !== -1 && + !String(endpointParams.Endpoint).startsWith('http:')) || + bucket.toLowerCase() !== bucket || + bucket.length < 3 + ) { + endpointParams.ForcePathStyle = true + } + if (endpointParams.DisableMultiRegionAccessPoints) { + endpointParams.disableMultiRegionAccessPoints = true + endpointParams.DisableMRAP = true + } + return endpointParams + }, 'resolveParamsForS3') + var DOMAIN_PATTERN = /^[a-z0-9][a-z0-9\.\-]{1,61}[a-z0-9]$/ + var IP_ADDRESS_PATTERN = /(\d+\.){3}\d+/ + var DOTS_PATTERN = /\.\./ + var isDnsCompatibleBucketName = /* @__PURE__ */ __name( + bucketName => + DOMAIN_PATTERN.test(bucketName) && + !IP_ADDRESS_PATTERN.test(bucketName) && + !DOTS_PATTERN.test(bucketName), + 'isDnsCompatibleBucketName' + ) + var isArnBucketName = /* @__PURE__ */ __name(bucketName => { + const [arn, partition, service, , , bucket] = bucketName.split(':') + const isArn = arn === 'arn' && bucketName.split(':').length >= 6 + const isValidArn = Boolean(isArn && partition && service && bucket) + if (isArn && !isValidArn) { + throw new Error(`Invalid ARN: ${bucketName} was an invalid ARN.`) + } + return isValidArn + }, 'isArnBucketName') + + // src/adaptors/createConfigValueProvider.ts + var createConfigValueProvider = /* @__PURE__ */ __name( + (configKey, canonicalEndpointParamKey, config) => { + const configProvider = /* @__PURE__ */ __name(async () => { + const configValue = + config[configKey] ?? config[canonicalEndpointParamKey] + if (typeof configValue === 'function') { + return configValue() + } + return configValue + }, 'configProvider') + if ( + configKey === 'credentialScope' || + canonicalEndpointParamKey === 'CredentialScope' + ) { + return async () => { + const credentials = + typeof config.credentials === 'function' + ? await config.credentials() + : config.credentials + const configValue = + (credentials == null ? void 0 : credentials.credentialScope) ?? + (credentials == null ? void 0 : credentials.CredentialScope) + return configValue + } + } + if ( + configKey === 'accountId' || + canonicalEndpointParamKey === 'AccountId' + ) { + return async () => { + const credentials = + typeof config.credentials === 'function' + ? await config.credentials() + : config.credentials + const configValue = + (credentials == null ? void 0 : credentials.accountId) ?? + (credentials == null ? void 0 : credentials.AccountId) + return configValue + } + } + if ( + configKey === 'endpoint' || + canonicalEndpointParamKey === 'endpoint' + ) { + return async () => { + const endpoint = await configProvider() + if (endpoint && typeof endpoint === 'object') { + if ('url' in endpoint) { + return endpoint.url.href + } + if ('hostname' in endpoint) { + const { protocol, hostname, port, path } = endpoint + return `${protocol}//${hostname}${port ? ':' + port : ''}${path}` + } + } + return endpoint + } + } + return configProvider + }, + 'createConfigValueProvider' + ) - try { - generateUUID.name = name; // eslint-disable-next-line no-empty - } catch (err) {} // For CommonJS default export support + // src/adaptors/getEndpointFromInstructions.ts + var import_getEndpointFromConfig = __nccwpck_require__(31518) + // src/adaptors/toEndpointV1.ts + var import_url_parser = __nccwpck_require__(14681) + var toEndpointV1 = /* @__PURE__ */ __name(endpoint => { + if (typeof endpoint === 'object') { + if ('url' in endpoint) { + return (0, import_url_parser.parseUrl)(endpoint.url) + } + return endpoint + } + return (0, import_url_parser.parseUrl)(endpoint) + }, 'toEndpointV1') + + // src/adaptors/getEndpointFromInstructions.ts + var getEndpointFromInstructions = /* @__PURE__ */ __name( + async (commandInput, instructionsSupplier, clientConfig, context) => { + if (!clientConfig.endpoint) { + let endpointFromConfig + if (clientConfig.serviceConfiguredEndpoint) { + endpointFromConfig = + await clientConfig.serviceConfiguredEndpoint() + } else { + endpointFromConfig = await (0, + import_getEndpointFromConfig.getEndpointFromConfig)( + clientConfig.serviceId + ) + } + if (endpointFromConfig) { + clientConfig.endpoint = () => + Promise.resolve(toEndpointV1(endpointFromConfig)) + } + } + const endpointParams = await resolveParams( + commandInput, + instructionsSupplier, + clientConfig + ) + if (typeof clientConfig.endpointProvider !== 'function') { + throw new Error('config.endpointProvider is not set.') + } + const endpoint = clientConfig.endpointProvider( + endpointParams, + context + ) + return endpoint + }, + 'getEndpointFromInstructions' + ) + var resolveParams = /* @__PURE__ */ __name( + async (commandInput, instructionsSupplier, clientConfig) => { + var _a + const endpointParams = {} + const instructions = + ((_a = + instructionsSupplier == null + ? void 0 + : instructionsSupplier.getEndpointParameterInstructions) == null + ? void 0 + : _a.call(instructionsSupplier)) || {} + for (const [name, instruction] of Object.entries(instructions)) { + switch (instruction.type) { + case 'staticContextParams': + endpointParams[name] = instruction.value + break + case 'contextParams': + endpointParams[name] = commandInput[instruction.name] + break + case 'clientContextParams': + case 'builtInParams': + endpointParams[name] = await createConfigValueProvider( + instruction.name, + name, + clientConfig + )() + break + default: + throw new Error( + 'Unrecognized endpoint parameter instruction: ' + + JSON.stringify(instruction) + ) + } + } + if (Object.keys(instructions).length === 0) { + Object.assign(endpointParams, clientConfig) + } + if (String(clientConfig.serviceId).toLowerCase() === 's3') { + await resolveParamsForS3(endpointParams) + } + return endpointParams + }, + 'resolveParams' + ) - generateUUID.DNS = DNS; - generateUUID.URL = URL; - return generateUUID; -} + // src/endpointMiddleware.ts + var import_util_middleware = __nccwpck_require__(2390) + var endpointMiddleware = /* @__PURE__ */ __name( + ({ config, instructions }) => { + return (next, context) => async args => { + var _a, _b, _c + const endpoint = await getEndpointFromInstructions( + args.input, + { + getEndpointParameterInstructions() { + return instructions + } + }, + { ...config }, + context + ) + context.endpointV2 = endpoint + context.authSchemes = + (_a = endpoint.properties) == null ? void 0 : _a.authSchemes + const authScheme = + (_b = context.authSchemes) == null ? void 0 : _b[0] + if (authScheme) { + context['signing_region'] = authScheme.signingRegion + context['signing_service'] = authScheme.signingName + const smithyContext = (0, + import_util_middleware.getSmithyContext)(context) + const httpAuthOption = + (_c = + smithyContext == null + ? void 0 + : smithyContext.selectedHttpAuthScheme) == null + ? void 0 + : _c.httpAuthOption + if (httpAuthOption) { + httpAuthOption.signingProperties = Object.assign( + httpAuthOption.signingProperties || {}, + { + signing_region: authScheme.signingRegion, + signingRegion: authScheme.signingRegion, + signing_service: authScheme.signingName, + signingName: authScheme.signingName, + signingRegionSet: authScheme.signingRegionSet + }, + authScheme.properties + ) + } + } + return next({ + ...args + }) + } + }, + 'endpointMiddleware' + ) -/***/ }), + // src/getEndpointPlugin.ts + var import_middleware_serde = __nccwpck_require__(81238) + var endpointMiddlewareOptions = { + step: 'serialize', + tags: ['ENDPOINT_PARAMETERS', 'ENDPOINT_V2', 'ENDPOINT'], + name: 'endpointV2Middleware', + override: true, + relation: 'before', + toMiddleware: import_middleware_serde.serializerMiddlewareOption.name + } + var getEndpointPlugin = /* @__PURE__ */ __name( + (config, instructions) => ({ + applyToStack: clientStack => { + clientStack.addRelativeTo( + endpointMiddleware({ + config, + instructions + }), + endpointMiddlewareOptions + ) + } + }), + 'getEndpointPlugin' + ) -/***/ 8107: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + // src/resolveEndpointConfig.ts + + var import_getEndpointFromConfig2 = __nccwpck_require__(31518) + var resolveEndpointConfig = /* @__PURE__ */ __name(input => { + const tls = input.tls ?? true + const { endpoint } = input + const customEndpointProvider = + endpoint != null + ? async () => + toEndpointV1( + await (0, import_util_middleware.normalizeProvider)( + endpoint + )() + ) + : void 0 + const isCustomEndpoint = !!endpoint + const resolvedConfig = { + ...input, + endpoint: customEndpointProvider, + tls, + isCustomEndpoint, + useDualstackEndpoint: (0, import_util_middleware.normalizeProvider)( + input.useDualstackEndpoint ?? false + ), + useFipsEndpoint: (0, import_util_middleware.normalizeProvider)( + input.useFipsEndpoint ?? false + ) + } + let configuredEndpointPromise = void 0 + resolvedConfig.serviceConfiguredEndpoint = async () => { + if (input.serviceId && !configuredEndpointPromise) { + configuredEndpointPromise = (0, + import_getEndpointFromConfig2.getEndpointFromConfig)( + input.serviceId + ) + } + return configuredEndpointPromise + } + return resolvedConfig + }, 'resolveEndpointConfig') + // Annotate the CommonJS export names for ESM import in node: -"use strict"; + 0 && 0 + /***/ + }, -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + /***/ 96039: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + AdaptiveRetryStrategy: () => AdaptiveRetryStrategy, + CONFIG_MAX_ATTEMPTS: () => CONFIG_MAX_ATTEMPTS, + CONFIG_RETRY_MODE: () => CONFIG_RETRY_MODE, + ENV_MAX_ATTEMPTS: () => ENV_MAX_ATTEMPTS, + ENV_RETRY_MODE: () => ENV_RETRY_MODE, + NODE_MAX_ATTEMPT_CONFIG_OPTIONS: () => NODE_MAX_ATTEMPT_CONFIG_OPTIONS, + NODE_RETRY_MODE_CONFIG_OPTIONS: () => NODE_RETRY_MODE_CONFIG_OPTIONS, + StandardRetryStrategy: () => StandardRetryStrategy, + defaultDelayDecider: () => defaultDelayDecider, + defaultRetryDecider: () => defaultRetryDecider, + getOmitRetryHeadersPlugin: () => getOmitRetryHeadersPlugin, + getRetryAfterHint: () => getRetryAfterHint, + getRetryPlugin: () => getRetryPlugin, + omitRetryHeadersMiddleware: () => omitRetryHeadersMiddleware, + omitRetryHeadersMiddlewareOptions: () => + omitRetryHeadersMiddlewareOptions, + resolveRetryConfig: () => resolveRetryConfig, + retryMiddleware: () => retryMiddleware, + retryMiddlewareOptions: () => retryMiddlewareOptions + }) + module.exports = __toCommonJS(src_exports) + + // src/AdaptiveRetryStrategy.ts + + // src/StandardRetryStrategy.ts + var import_protocol_http = __nccwpck_require__(64418) + + var import_uuid = __nccwpck_require__(7761) + + // src/defaultRetryQuota.ts + var import_util_retry = __nccwpck_require__(84902) + var getDefaultRetryQuota = /* @__PURE__ */ __name( + (initialRetryTokens, options) => { + const MAX_CAPACITY = initialRetryTokens + const noRetryIncrement = + (options == null ? void 0 : options.noRetryIncrement) ?? + import_util_retry.NO_RETRY_INCREMENT + const retryCost = + (options == null ? void 0 : options.retryCost) ?? + import_util_retry.RETRY_COST + const timeoutRetryCost = + (options == null ? void 0 : options.timeoutRetryCost) ?? + import_util_retry.TIMEOUT_RETRY_COST + let availableCapacity = initialRetryTokens + const getCapacityAmount = /* @__PURE__ */ __name( + error => + error.name === 'TimeoutError' ? timeoutRetryCost : retryCost, + 'getCapacityAmount' + ) + const hasRetryTokens = /* @__PURE__ */ __name( + error => getCapacityAmount(error) <= availableCapacity, + 'hasRetryTokens' + ) + const retrieveRetryTokens = /* @__PURE__ */ __name(error => { + if (!hasRetryTokens(error)) { + throw new Error('No retry token available') + } + const capacityAmount = getCapacityAmount(error) + availableCapacity -= capacityAmount + return capacityAmount + }, 'retrieveRetryTokens') + const releaseRetryTokens = /* @__PURE__ */ __name( + capacityReleaseAmount => { + availableCapacity += capacityReleaseAmount ?? noRetryIncrement + availableCapacity = Math.min(availableCapacity, MAX_CAPACITY) + }, + 'releaseRetryTokens' + ) + return Object.freeze({ + hasRetryTokens, + retrieveRetryTokens, + releaseRetryTokens + }) + }, + 'getDefaultRetryQuota' + ) -var _native = _interopRequireDefault(__nccwpck_require__(55785)); + // src/delayDecider.ts -var _rng = _interopRequireDefault(__nccwpck_require__(53273)); + var defaultDelayDecider = /* @__PURE__ */ __name( + (delayBase, attempts) => + Math.floor( + Math.min( + import_util_retry.MAXIMUM_RETRY_DELAY, + Math.random() * 2 ** attempts * delayBase + ) + ), + 'defaultDelayDecider' + ) -var _stringify = __nccwpck_require__(63226); + // src/retryDecider.ts + var import_service_error_classification = __nccwpck_require__(6375) + var defaultRetryDecider = /* @__PURE__ */ __name(error => { + if (!error) { + return false + } + 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) + ) + }, 'defaultRetryDecider') + + // src/util.ts + var asSdkError = /* @__PURE__ */ __name(error => { + if (error instanceof Error) return error + if (error instanceof Object) return Object.assign(new Error(), error) + if (typeof error === 'string') return new Error(error) + return new Error(`AWS SDK error wrapper for ${error}`) + }, 'asSdkError') + + // src/StandardRetryStrategy.ts + var _StandardRetryStrategy = class _StandardRetryStrategy { + constructor(maxAttemptsProvider, options) { + this.maxAttemptsProvider = maxAttemptsProvider + this.mode = import_util_retry.RETRY_MODES.STANDARD + this.retryDecider = + (options == null ? void 0 : options.retryDecider) ?? + defaultRetryDecider + this.delayDecider = + (options == null ? void 0 : options.delayDecider) ?? + defaultDelayDecider + this.retryQuota = + (options == null ? void 0 : options.retryQuota) ?? + getDefaultRetryQuota(import_util_retry.INITIAL_RETRY_TOKENS) + } + shouldRetry(error, attempts, maxAttempts) { + return ( + attempts < maxAttempts && + this.retryDecider(error) && + this.retryQuota.hasRetryTokens(error) + ) + } + async getMaxAttempts() { + let maxAttempts + try { + maxAttempts = await this.maxAttemptsProvider() + } catch (error) { + maxAttempts = import_util_retry.DEFAULT_MAX_ATTEMPTS + } + return maxAttempts + } + async retry(next, args, options) { + let retryTokenAmount + let attempts = 0 + let totalDelay = 0 + const maxAttempts = await this.getMaxAttempts() + const { request } = args + if (import_protocol_http.HttpRequest.isInstance(request)) { + request.headers[import_util_retry.INVOCATION_ID_HEADER] = (0, + import_uuid.v4)() + } + while (true) { + try { + if (import_protocol_http.HttpRequest.isInstance(request)) { + request.headers[import_util_retry.REQUEST_HEADER] = + `attempt=${attempts + 1}; max=${maxAttempts}` + } + if (options == null ? void 0 : options.beforeRequest) { + await options.beforeRequest() + } + const { response, output } = await next(args) + if (options == null ? void 0 : options.afterRequest) { + options.afterRequest(response) + } + this.retryQuota.releaseRetryTokens(retryTokenAmount) + output.$metadata.attempts = attempts + 1 + output.$metadata.totalRetryDelay = totalDelay + return { response, output } + } catch (e) { + const err = asSdkError(e) + attempts++ + if (this.shouldRetry(err, attempts, maxAttempts)) { + retryTokenAmount = this.retryQuota.retrieveRetryTokens(err) + const delayFromDecider = this.delayDecider( + (0, import_service_error_classification.isThrottlingError)( + err + ) + ? import_util_retry.THROTTLING_RETRY_DELAY_BASE + : import_util_retry.DEFAULT_RETRY_DELAY_BASE, + attempts + ) + const delayFromResponse = getDelayFromRetryAfterHeader( + err.$response + ) + const delay = Math.max(delayFromResponse || 0, delayFromDecider) + totalDelay += delay + await new Promise(resolve => setTimeout(resolve, delay)) + continue + } + if (!err.$metadata) { + err.$metadata = {} + } + err.$metadata.attempts = attempts + err.$metadata.totalRetryDelay = totalDelay + throw err + } + } + } + } + __name(_StandardRetryStrategy, 'StandardRetryStrategy') + var StandardRetryStrategy = _StandardRetryStrategy + var getDelayFromRetryAfterHeader = /* @__PURE__ */ __name(response => { + if (!import_protocol_http.HttpResponse.isInstance(response)) return + const retryAfterHeaderName = Object.keys(response.headers).find( + key => key.toLowerCase() === 'retry-after' + ) + if (!retryAfterHeaderName) return + const retryAfter = response.headers[retryAfterHeaderName] + const retryAfterSeconds = Number(retryAfter) + if (!Number.isNaN(retryAfterSeconds)) return retryAfterSeconds * 1e3 + const retryAfterDate = new Date(retryAfter) + return retryAfterDate.getTime() - Date.now() + }, 'getDelayFromRetryAfterHeader') + + // src/AdaptiveRetryStrategy.ts + var _AdaptiveRetryStrategy = class _AdaptiveRetryStrategy extends StandardRetryStrategy { + constructor(maxAttemptsProvider, options) { + const { rateLimiter, ...superOptions } = options ?? {} + super(maxAttemptsProvider, superOptions) + this.rateLimiter = + rateLimiter ?? new import_util_retry.DefaultRateLimiter() + this.mode = import_util_retry.RETRY_MODES.ADAPTIVE + } + async retry(next, args) { + return super.retry(next, args, { + beforeRequest: async () => { + return this.rateLimiter.getSendToken() + }, + afterRequest: response => { + this.rateLimiter.updateClientSendingRate(response) + } + }) + } + } + __name(_AdaptiveRetryStrategy, 'AdaptiveRetryStrategy') + var AdaptiveRetryStrategy = _AdaptiveRetryStrategy -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + // src/configurations.ts + var import_util_middleware = __nccwpck_require__(2390) -function v4(options, buf, offset) { - if (_native.default.randomUUID && !buf && !options) { - return _native.default.randomUUID(); - } + var ENV_MAX_ATTEMPTS = 'AWS_MAX_ATTEMPTS' + var CONFIG_MAX_ATTEMPTS = 'max_attempts' + var NODE_MAX_ATTEMPT_CONFIG_OPTIONS = { + environmentVariableSelector: env => { + const value = env[ENV_MAX_ATTEMPTS] + if (!value) return void 0 + const maxAttempt = parseInt(value) + if (Number.isNaN(maxAttempt)) { + throw new Error( + `Environment variable ${ENV_MAX_ATTEMPTS} mast be a number, got "${value}"` + ) + } + return maxAttempt + }, + configFileSelector: profile => { + const value = profile[CONFIG_MAX_ATTEMPTS] + if (!value) return void 0 + const maxAttempt = parseInt(value) + if (Number.isNaN(maxAttempt)) { + throw new Error( + `Shared config file entry ${CONFIG_MAX_ATTEMPTS} mast be a number, got "${value}"` + ) + } + return maxAttempt + }, + default: import_util_retry.DEFAULT_MAX_ATTEMPTS + } + var resolveRetryConfig = /* @__PURE__ */ __name(input => { + const { retryStrategy } = input + const maxAttempts = (0, import_util_middleware.normalizeProvider)( + input.maxAttempts ?? import_util_retry.DEFAULT_MAX_ATTEMPTS + ) + return { + ...input, + maxAttempts, + retryStrategy: async () => { + if (retryStrategy) { + return retryStrategy + } + const retryMode = await (0, + import_util_middleware.normalizeProvider)(input.retryMode)() + if (retryMode === import_util_retry.RETRY_MODES.ADAPTIVE) { + return new import_util_retry.AdaptiveRetryStrategy(maxAttempts) + } + return new import_util_retry.StandardRetryStrategy(maxAttempts) + } + } + }, 'resolveRetryConfig') + var ENV_RETRY_MODE = 'AWS_RETRY_MODE' + var CONFIG_RETRY_MODE = 'retry_mode' + var NODE_RETRY_MODE_CONFIG_OPTIONS = { + environmentVariableSelector: env => env[ENV_RETRY_MODE], + configFileSelector: profile => profile[CONFIG_RETRY_MODE], + default: import_util_retry.DEFAULT_RETRY_MODE + } - options = options || {}; + // src/omitRetryHeadersMiddleware.ts - const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` + var omitRetryHeadersMiddleware = /* @__PURE__ */ __name( + () => next => async args => { + const { request } = args + if (import_protocol_http.HttpRequest.isInstance(request)) { + delete request.headers[import_util_retry.INVOCATION_ID_HEADER] + delete request.headers[import_util_retry.REQUEST_HEADER] + } + return next(args) + }, + 'omitRetryHeadersMiddleware' + ) + var omitRetryHeadersMiddlewareOptions = { + name: 'omitRetryHeadersMiddleware', + tags: ['RETRY', 'HEADERS', 'OMIT_RETRY_HEADERS'], + relation: 'before', + toMiddleware: 'awsAuthMiddleware', + override: true + } + var getOmitRetryHeadersPlugin = /* @__PURE__ */ __name( + options => ({ + applyToStack: clientStack => { + clientStack.addRelativeTo( + omitRetryHeadersMiddleware(), + omitRetryHeadersMiddlewareOptions + ) + } + }), + 'getOmitRetryHeadersPlugin' + ) + // src/retryMiddleware.ts - rnds[6] = rnds[6] & 0x0f | 0x40; - rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided + var import_smithy_client = __nccwpck_require__(63570) - if (buf) { - offset = offset || 0; + var import_isStreamingPayload = __nccwpck_require__(18977) + var retryMiddleware = /* @__PURE__ */ __name( + options => (next, context) => async args => { + var _a + let retryStrategy = await options.retryStrategy() + const maxAttempts = await options.maxAttempts() + if (isRetryStrategyV2(retryStrategy)) { + retryStrategy = retryStrategy + let retryToken = await retryStrategy.acquireInitialRetryToken( + context['partition_id'] + ) + let lastError = new Error() + let attempts = 0 + let totalRetryDelay = 0 + const { request } = args + const isRequest = + import_protocol_http.HttpRequest.isInstance(request) + if (isRequest) { + request.headers[import_util_retry.INVOCATION_ID_HEADER] = (0, + import_uuid.v4)() + } + while (true) { + try { + if (isRequest) { + request.headers[import_util_retry.REQUEST_HEADER] = + `attempt=${attempts + 1}; max=${maxAttempts}` + } + const { response, output } = await next(args) + retryStrategy.recordSuccess(retryToken) + output.$metadata.attempts = attempts + 1 + output.$metadata.totalRetryDelay = totalRetryDelay + return { response, output } + } catch (e) { + const retryErrorInfo = getRetryErrorInfo(e) + lastError = asSdkError(e) + if ( + isRequest && + (0, import_isStreamingPayload.isStreamingPayload)(request) + ) { + ;(_a = + context.logger instanceof import_smithy_client.NoOpLogger + ? console + : context.logger) == null + ? void 0 + : _a.warn( + 'An error was encountered in a non-retryable streaming request.' + ) + throw lastError + } + try { + retryToken = await retryStrategy.refreshRetryTokenForRetry( + retryToken, + retryErrorInfo + ) + } catch (refreshError) { + if (!lastError.$metadata) { + lastError.$metadata = {} + } + lastError.$metadata.attempts = attempts + 1 + lastError.$metadata.totalRetryDelay = totalRetryDelay + throw lastError + } + attempts = retryToken.getRetryCount() + const delay = retryToken.getRetryDelay() + totalRetryDelay += delay + await new Promise(resolve => setTimeout(resolve, delay)) + } + } + } else { + retryStrategy = retryStrategy + if (retryStrategy == null ? void 0 : retryStrategy.mode) + context.userAgent = [ + ...(context.userAgent || []), + ['cfg/retry-mode', retryStrategy.mode] + ] + return retryStrategy.retry(next, args) + } + }, + 'retryMiddleware' + ) + var isRetryStrategyV2 = /* @__PURE__ */ __name( + retryStrategy => + typeof retryStrategy.acquireInitialRetryToken !== 'undefined' && + typeof retryStrategy.refreshRetryTokenForRetry !== 'undefined' && + typeof retryStrategy.recordSuccess !== 'undefined', + 'isRetryStrategyV2' + ) + var getRetryErrorInfo = /* @__PURE__ */ __name(error => { + const errorInfo = { + error, + errorType: getRetryErrorType(error) + } + const retryAfterHint = getRetryAfterHint(error.$response) + if (retryAfterHint) { + errorInfo.retryAfterHint = retryAfterHint + } + return errorInfo + }, 'getRetryErrorInfo') + var getRetryErrorType = /* @__PURE__ */ __name(error => { + if ((0, import_service_error_classification.isThrottlingError)(error)) + return 'THROTTLING' + if ((0, import_service_error_classification.isTransientError)(error)) + return 'TRANSIENT' + if ((0, import_service_error_classification.isServerError)(error)) + return 'SERVER_ERROR' + return 'CLIENT_ERROR' + }, 'getRetryErrorType') + var retryMiddlewareOptions = { + name: 'retryMiddleware', + tags: ['RETRY'], + step: 'finalizeRequest', + priority: 'high', + override: true + } + var getRetryPlugin = /* @__PURE__ */ __name( + options => ({ + applyToStack: clientStack => { + clientStack.add(retryMiddleware(options), retryMiddlewareOptions) + } + }), + 'getRetryPlugin' + ) + var getRetryAfterHint = /* @__PURE__ */ __name(response => { + if (!import_protocol_http.HttpResponse.isInstance(response)) return + const retryAfterHeaderName = Object.keys(response.headers).find( + key => key.toLowerCase() === 'retry-after' + ) + if (!retryAfterHeaderName) return + const retryAfter = response.headers[retryAfterHeaderName] + const retryAfterSeconds = Number(retryAfter) + if (!Number.isNaN(retryAfterSeconds)) + return new Date(retryAfterSeconds * 1e3) + const retryAfterDate = new Date(retryAfter) + return retryAfterDate + }, 'getRetryAfterHint') + // Annotate the CommonJS export names for ESM import in node: + + 0 && 0 + + /***/ + }, - for (let i = 0; i < 16; ++i) { - buf[offset + i] = rnds[i]; - } + /***/ 18977: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.isStreamingPayload = void 0 + const stream_1 = __nccwpck_require__(12781) + const isStreamingPayload = request => + (request === null || request === void 0 + ? void 0 + : request.body) instanceof stream_1.Readable || + (typeof ReadableStream !== 'undefined' && + (request === null || request === void 0 + ? void 0 + : request.body) instanceof ReadableStream) + exports.isStreamingPayload = isStreamingPayload + + /***/ + }, - return buf; - } + /***/ 7761: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' - return (0, _stringify.unsafeStringify)(rnds); -} + Object.defineProperty(exports, '__esModule', { + value: true + }) + Object.defineProperty(exports, 'NIL', { + enumerable: true, + get: function () { + return _nil.default + } + }) + Object.defineProperty(exports, 'parse', { + enumerable: true, + get: function () { + return _parse.default + } + }) + Object.defineProperty(exports, 'stringify', { + enumerable: true, + get: function () { + return _stringify.default + } + }) + Object.defineProperty(exports, 'v1', { + enumerable: true, + get: function () { + return _v.default + } + }) + Object.defineProperty(exports, 'v3', { + enumerable: true, + get: function () { + return _v2.default + } + }) + Object.defineProperty(exports, 'v4', { + enumerable: true, + get: function () { + return _v3.default + } + }) + Object.defineProperty(exports, 'v5', { + enumerable: true, + get: function () { + return _v4.default + } + }) + Object.defineProperty(exports, 'validate', { + enumerable: true, + get: function () { + return _validate.default + } + }) + Object.defineProperty(exports, 'version', { + enumerable: true, + get: function () { + return _version.default + } + }) -var _default = v4; -exports["default"] = _default; + var _v = _interopRequireDefault(__nccwpck_require__(36310)) -/***/ }), + var _v2 = _interopRequireDefault(__nccwpck_require__(9465)) -/***/ 726: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + var _v3 = _interopRequireDefault(__nccwpck_require__(86001)) -"use strict"; + var _v4 = _interopRequireDefault(__nccwpck_require__(38310)) + var _nil = _interopRequireDefault(__nccwpck_require__(3436)) -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + var _version = _interopRequireDefault(__nccwpck_require__(17780)) -var _v = _interopRequireDefault(__nccwpck_require__(96265)); + var _validate = _interopRequireDefault(__nccwpck_require__(66992)) -var _sha = _interopRequireDefault(__nccwpck_require__(61195)); + var _stringify = _interopRequireDefault(__nccwpck_require__(79618)) -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + var _parse = _interopRequireDefault(__nccwpck_require__(40086)) -const v5 = (0, _v.default)('v5', 0x50, _sha.default); -var _default = v5; -exports["default"] = _default; + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } -/***/ }), + /***/ + }, -/***/ 48383: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + /***/ 11380: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -"use strict"; + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 + var _crypto = _interopRequireDefault(__nccwpck_require__(6113)) -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } -var _regex = _interopRequireDefault(__nccwpck_require__(90048)); + function md5(bytes) { + if (Array.isArray(bytes)) { + bytes = Buffer.from(bytes) + } else if (typeof bytes === 'string') { + bytes = Buffer.from(bytes, 'utf8') + } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + return _crypto.default.createHash('md5').update(bytes).digest() + } -function validate(uuid) { - return typeof uuid === 'string' && _regex.default.test(uuid); -} + var _default = md5 + exports['default'] = _default -var _default = validate; -exports["default"] = _default; + /***/ + }, -/***/ }), + /***/ 34672: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -/***/ 59056: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 -"use strict"; + var _crypto = _interopRequireDefault(__nccwpck_require__(6113)) + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + var _default = { + randomUUID: _crypto.default.randomUUID + } + exports['default'] = _default -var _validate = _interopRequireDefault(__nccwpck_require__(48383)); + /***/ + }, -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + /***/ 3436: /***/ (__unused_webpack_module, exports) => { + 'use strict' -function version(uuid) { - if (!(0, _validate.default)(uuid)) { - throw TypeError('Invalid UUID'); - } + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 + var _default = '00000000-0000-0000-0000-000000000000' + exports['default'] = _default - return parseInt(uuid.slice(14, 15), 16); -} - -var _default = version; -exports["default"] = _default; - -/***/ }), - -/***/ 18156: -/***/ ((module) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - NODE_REGION_CONFIG_FILE_OPTIONS: () => NODE_REGION_CONFIG_FILE_OPTIONS, - NODE_REGION_CONFIG_OPTIONS: () => NODE_REGION_CONFIG_OPTIONS, - REGION_ENV_NAME: () => REGION_ENV_NAME, - REGION_INI_NAME: () => REGION_INI_NAME, - getAwsRegionExtensionConfiguration: () => getAwsRegionExtensionConfiguration, - resolveAwsRegionExtensionConfiguration: () => resolveAwsRegionExtensionConfiguration, - resolveRegionConfig: () => resolveRegionConfig -}); -module.exports = __toCommonJS(src_exports); - -// src/extensions/index.ts -var getAwsRegionExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => { - let runtimeConfigRegion = /* @__PURE__ */ __name(async () => { - if (runtimeConfig.region === void 0) { - throw new Error("Region is missing from runtimeConfig"); - } - const region = runtimeConfig.region; - if (typeof region === "string") { - return region; - } - return region(); - }, "runtimeConfigRegion"); - return { - setRegion(region) { - runtimeConfigRegion = region; - }, - region() { - return runtimeConfigRegion; - } - }; -}, "getAwsRegionExtensionConfiguration"); -var resolveAwsRegionExtensionConfiguration = /* @__PURE__ */ __name((awsRegionExtensionConfiguration) => { - return { - region: awsRegionExtensionConfiguration.region() - }; -}, "resolveAwsRegionExtensionConfiguration"); - -// src/regionConfig/config.ts -var REGION_ENV_NAME = "AWS_REGION"; -var REGION_INI_NAME = "region"; -var NODE_REGION_CONFIG_OPTIONS = { - environmentVariableSelector: (env) => env[REGION_ENV_NAME], - configFileSelector: (profile) => profile[REGION_INI_NAME], - default: () => { - throw new Error("Region is missing"); - } -}; -var NODE_REGION_CONFIG_FILE_OPTIONS = { - preferredFile: "credentials" -}; - -// src/regionConfig/isFipsRegion.ts -var isFipsRegion = /* @__PURE__ */ __name((region) => typeof region === "string" && (region.startsWith("fips-") || region.endsWith("-fips")), "isFipsRegion"); - -// src/regionConfig/getRealRegion.ts -var getRealRegion = /* @__PURE__ */ __name((region) => isFipsRegion(region) ? ["fips-aws-global", "aws-fips"].includes(region) ? "us-east-1" : region.replace(/fips-(dkr-|prod-)?|-fips/, "") : region, "getRealRegion"); - -// src/regionConfig/resolveRegionConfig.ts -var resolveRegionConfig = /* @__PURE__ */ __name((input) => { - const { region, useFipsEndpoint } = input; - if (!region) { - throw new Error("Region is missing"); - } - return { - ...input, - region: async () => { - if (typeof region === "string") { - return getRealRegion(region); - } - const providedRegion = await region(); - return getRealRegion(providedRegion); + /***/ }, - useFipsEndpoint: async () => { - const providedRegion = typeof region === "string" ? region : await region(); - if (isFipsRegion(providedRegion)) { - return true; - } - return typeof useFipsEndpoint !== "function" ? Promise.resolve(!!useFipsEndpoint) : useFipsEndpoint(); - } - }; -}, "resolveRegionConfig"); -// Annotate the CommonJS export names for ESM import in node: -0 && (0); + /***/ 40086: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 + var _validate = _interopRequireDefault(__nccwpck_require__(66992)) -/***/ }), + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } -/***/ 52843: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + function parse(uuid) { + if (!(0, _validate.default)(uuid)) { + throw TypeError('Invalid UUID') + } -"use strict"; + let v + const arr = new Uint8Array(16) // Parse ########-....-....-....-............ -var __create = Object.create; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __getProtoOf = Object.getPrototypeOf; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. - isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, - mod -)); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - fromSso: () => fromSso, - fromStatic: () => fromStatic, - nodeProvider: () => nodeProvider -}); -module.exports = __toCommonJS(src_exports); - -// src/fromSso.ts - - - -// src/constants.ts -var EXPIRE_WINDOW_MS = 5 * 60 * 1e3; -var REFRESH_MESSAGE = `To refresh this SSO session run 'aws sso login' with the corresponding profile.`; - -// src/getSsoOidcClient.ts -var ssoOidcClientsHash = {}; -var getSsoOidcClient = /* @__PURE__ */ __name(async (ssoRegion) => { - const { SSOOIDCClient } = await Promise.resolve().then(() => __toESM(__nccwpck_require__(54527))); - if (ssoOidcClientsHash[ssoRegion]) { - return ssoOidcClientsHash[ssoRegion]; - } - const ssoOidcClient = new SSOOIDCClient({ region: ssoRegion }); - ssoOidcClientsHash[ssoRegion] = ssoOidcClient; - return ssoOidcClient; -}, "getSsoOidcClient"); - -// src/getNewSsoOidcToken.ts -var getNewSsoOidcToken = /* @__PURE__ */ __name(async (ssoToken, ssoRegion) => { - const { CreateTokenCommand } = await Promise.resolve().then(() => __toESM(__nccwpck_require__(54527))); - const ssoOidcClient = await getSsoOidcClient(ssoRegion); - return ssoOidcClient.send( - new CreateTokenCommand({ - clientId: ssoToken.clientId, - clientSecret: ssoToken.clientSecret, - refreshToken: ssoToken.refreshToken, - grantType: "refresh_token" - }) - ); -}, "getNewSsoOidcToken"); - -// src/validateTokenExpiry.ts -var import_property_provider = __nccwpck_require__(79721); -var validateTokenExpiry = /* @__PURE__ */ __name((token) => { - if (token.expiration && token.expiration.getTime() < Date.now()) { - throw new import_property_provider.TokenProviderError(`Token is expired. ${REFRESH_MESSAGE}`, false); - } -}, "validateTokenExpiry"); + arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24 + arr[1] = (v >>> 16) & 0xff + arr[2] = (v >>> 8) & 0xff + arr[3] = v & 0xff // Parse ........-####-....-....-............ -// src/validateTokenKey.ts + arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8 + arr[5] = v & 0xff // Parse ........-....-####-....-............ -var validateTokenKey = /* @__PURE__ */ __name((key, value, forRefresh = false) => { - if (typeof value === "undefined") { - throw new import_property_provider.TokenProviderError( - `Value not present for '${key}' in SSO Token${forRefresh ? ". Cannot refresh" : ""}. ${REFRESH_MESSAGE}`, - false - ); - } -}, "validateTokenKey"); - -// src/writeSSOTokenToFile.ts -var import_shared_ini_file_loader = __nccwpck_require__(43507); -var import_fs = __nccwpck_require__(57147); -var { writeFile } = import_fs.promises; -var writeSSOTokenToFile = /* @__PURE__ */ __name((id, ssoToken) => { - const tokenFilepath = (0, import_shared_ini_file_loader.getSSOTokenFilepath)(id); - const tokenString = JSON.stringify(ssoToken, null, 2); - return writeFile(tokenFilepath, tokenString); -}, "writeSSOTokenToFile"); - -// src/fromSso.ts -var lastRefreshAttemptTime = /* @__PURE__ */ new Date(0); -var fromSso = /* @__PURE__ */ __name((init = {}) => async () => { - var _a; - (_a = init.logger) == null ? void 0 : _a.debug("@aws-sdk/token-providers - fromSso"); - const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init); - const profileName = (0, import_shared_ini_file_loader.getProfileName)(init); - const profile = profiles[profileName]; - if (!profile) { - throw new import_property_provider.TokenProviderError(`Profile '${profileName}' could not be found in shared credentials file.`, false); - } else if (!profile["sso_session"]) { - throw new import_property_provider.TokenProviderError(`Profile '${profileName}' is missing required property 'sso_session'.`); - } - const ssoSessionName = profile["sso_session"]; - const ssoSessions = await (0, import_shared_ini_file_loader.loadSsoSessionData)(init); - const ssoSession = ssoSessions[ssoSessionName]; - if (!ssoSession) { - throw new import_property_provider.TokenProviderError( - `Sso session '${ssoSessionName}' could not be found in shared credentials file.`, - false - ); - } - for (const ssoSessionRequiredKey of ["sso_start_url", "sso_region"]) { - if (!ssoSession[ssoSessionRequiredKey]) { - throw new import_property_provider.TokenProviderError( - `Sso session '${ssoSessionName}' is missing required property '${ssoSessionRequiredKey}'.`, - false - ); - } - } - const ssoStartUrl = ssoSession["sso_start_url"]; - const ssoRegion = ssoSession["sso_region"]; - let ssoToken; - try { - ssoToken = await (0, import_shared_ini_file_loader.getSSOTokenFromFile)(ssoSessionName); - } catch (e) { - throw new import_property_provider.TokenProviderError( - `The SSO session token associated with profile=${profileName} was not found or is invalid. ${REFRESH_MESSAGE}`, - false - ); - } - validateTokenKey("accessToken", ssoToken.accessToken); - validateTokenKey("expiresAt", ssoToken.expiresAt); - const { accessToken, expiresAt } = ssoToken; - const existingToken = { token: accessToken, expiration: new Date(expiresAt) }; - if (existingToken.expiration.getTime() - Date.now() > EXPIRE_WINDOW_MS) { - return existingToken; - } - if (Date.now() - lastRefreshAttemptTime.getTime() < 30 * 1e3) { - validateTokenExpiry(existingToken); - return existingToken; - } - validateTokenKey("clientId", ssoToken.clientId, true); - validateTokenKey("clientSecret", ssoToken.clientSecret, true); - validateTokenKey("refreshToken", ssoToken.refreshToken, true); - try { - lastRefreshAttemptTime.setTime(Date.now()); - const newSsoOidcToken = await getNewSsoOidcToken(ssoToken, ssoRegion); - validateTokenKey("accessToken", newSsoOidcToken.accessToken); - validateTokenKey("expiresIn", newSsoOidcToken.expiresIn); - const newTokenExpiration = new Date(Date.now() + newSsoOidcToken.expiresIn * 1e3); - try { - await writeSSOTokenToFile(ssoSessionName, { - ...ssoToken, - accessToken: newSsoOidcToken.accessToken, - expiresAt: newTokenExpiration.toISOString(), - refreshToken: newSsoOidcToken.refreshToken - }); - } catch (error) { - } - return { - token: newSsoOidcToken.accessToken, - expiration: newTokenExpiration - }; - } catch (error) { - validateTokenExpiry(existingToken); - return existingToken; - } -}, "fromSso"); + arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8 + arr[7] = v & 0xff // Parse ........-....-....-####-............ -// src/fromStatic.ts + arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8 + arr[9] = v & 0xff // Parse ........-....-....-....-############ + // (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes) -var fromStatic = /* @__PURE__ */ __name(({ token, logger }) => async () => { - logger == null ? void 0 : logger.debug("@aws-sdk/token-providers - fromStatic"); - if (!token || !token.token) { - throw new import_property_provider.TokenProviderError(`Please pass a valid token to fromStatic`, false); - } - return token; -}, "fromStatic"); + arr[10] = + ((v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000) & 0xff + arr[11] = (v / 0x100000000) & 0xff + arr[12] = (v >>> 24) & 0xff + arr[13] = (v >>> 16) & 0xff + arr[14] = (v >>> 8) & 0xff + arr[15] = v & 0xff + return arr + } -// src/nodeProvider.ts + var _default = parse + exports['default'] = _default -var nodeProvider = /* @__PURE__ */ __name((init = {}) => (0, import_property_provider.memoize)( - (0, import_property_provider.chain)(fromSso(init), async () => { - throw new import_property_provider.TokenProviderError("Could not load token from any providers", false); - }), - (token) => token.expiration !== void 0 && token.expiration.getTime() - Date.now() < 3e5, - (token) => token.expiration !== void 0 -), "nodeProvider"); -// Annotate the CommonJS export names for ESM import in node: + /***/ + }, -0 && (0); + /***/ 3194: /***/ (__unused_webpack_module, exports) => { + 'use strict' + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 + var _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 + exports['default'] = _default + /***/ + }, -/***/ }), + /***/ 68136: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -/***/ 13350: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = rng -"use strict"; + var _crypto = _interopRequireDefault(__nccwpck_require__(6113)) -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - ConditionObject: () => import_util_endpoints.ConditionObject, - DeprecatedObject: () => import_util_endpoints.DeprecatedObject, - EndpointError: () => import_util_endpoints.EndpointError, - EndpointObject: () => import_util_endpoints.EndpointObject, - EndpointObjectHeaders: () => import_util_endpoints.EndpointObjectHeaders, - EndpointObjectProperties: () => import_util_endpoints.EndpointObjectProperties, - EndpointParams: () => import_util_endpoints.EndpointParams, - EndpointResolverOptions: () => import_util_endpoints.EndpointResolverOptions, - EndpointRuleObject: () => import_util_endpoints.EndpointRuleObject, - ErrorRuleObject: () => import_util_endpoints.ErrorRuleObject, - EvaluateOptions: () => import_util_endpoints.EvaluateOptions, - Expression: () => import_util_endpoints.Expression, - FunctionArgv: () => import_util_endpoints.FunctionArgv, - FunctionObject: () => import_util_endpoints.FunctionObject, - FunctionReturn: () => import_util_endpoints.FunctionReturn, - ParameterObject: () => import_util_endpoints.ParameterObject, - ReferenceObject: () => import_util_endpoints.ReferenceObject, - ReferenceRecord: () => import_util_endpoints.ReferenceRecord, - RuleSetObject: () => import_util_endpoints.RuleSetObject, - RuleSetRules: () => import_util_endpoints.RuleSetRules, - TreeRuleObject: () => import_util_endpoints.TreeRuleObject, - awsEndpointFunctions: () => awsEndpointFunctions, - getUserAgentPrefix: () => getUserAgentPrefix, - isIpAddress: () => import_util_endpoints.isIpAddress, - partition: () => partition, - resolveEndpoint: () => import_util_endpoints.resolveEndpoint, - setPartitionInfo: () => setPartitionInfo, - useDefaultPartitionInfo: () => useDefaultPartitionInfo -}); -module.exports = __toCommonJS(src_exports); - -// src/aws.ts - - -// src/lib/aws/isVirtualHostableS3Bucket.ts - - -// src/lib/isIpAddress.ts -var import_util_endpoints = __nccwpck_require__(45473); - -// src/lib/aws/isVirtualHostableS3Bucket.ts -var isVirtualHostableS3Bucket = /* @__PURE__ */ __name((value, allowSubDomains = false) => { - if (allowSubDomains) { - for (const label of value.split(".")) { - if (!isVirtualHostableS3Bucket(label)) { - return false; - } - } - return true; - } - if (!(0, import_util_endpoints.isValidHostLabel)(value)) { - return false; - } - if (value.length < 3 || value.length > 63) { - return false; - } - if (value !== value.toLowerCase()) { - return false; - } - if ((0, import_util_endpoints.isIpAddress)(value)) { - return false; - } - return true; -}, "isVirtualHostableS3Bucket"); - -// src/lib/aws/parseArn.ts -var ARN_DELIMITER = ":"; -var RESOURCE_DELIMITER = "/"; -var parseArn = /* @__PURE__ */ __name((value) => { - const segments = value.split(ARN_DELIMITER); - if (segments.length < 6) - return null; - const [arn, partition2, service, region, accountId, ...resourcePath] = segments; - if (arn !== "arn" || partition2 === "" || service === "" || resourcePath.join(ARN_DELIMITER) === "") - return null; - const resourceId = resourcePath.map((resource) => resource.split(RESOURCE_DELIMITER)).flat(); - return { - partition: partition2, - service, - region, - accountId, - resourceId - }; -}, "parseArn"); - -// src/lib/aws/partitions.json -var partitions_default = { - partitions: [{ - id: "aws", - outputs: { - dnsSuffix: "amazonaws.com", - dualStackDnsSuffix: "api.aws", - implicitGlobalRegion: "us-east-1", - name: "aws", - supportsDualStack: true, - supportsFIPS: true - }, - regionRegex: "^(us|eu|ap|sa|ca|me|af|il|mx)\\-\\w+\\-\\d+$", - regions: { - "af-south-1": { - description: "Africa (Cape Town)" - }, - "ap-east-1": { - description: "Asia Pacific (Hong Kong)" - }, - "ap-northeast-1": { - description: "Asia Pacific (Tokyo)" - }, - "ap-northeast-2": { - description: "Asia Pacific (Seoul)" - }, - "ap-northeast-3": { - description: "Asia Pacific (Osaka)" - }, - "ap-south-1": { - description: "Asia Pacific (Mumbai)" - }, - "ap-south-2": { - description: "Asia Pacific (Hyderabad)" - }, - "ap-southeast-1": { - description: "Asia Pacific (Singapore)" - }, - "ap-southeast-2": { - description: "Asia Pacific (Sydney)" - }, - "ap-southeast-3": { - description: "Asia Pacific (Jakarta)" - }, - "ap-southeast-4": { - description: "Asia Pacific (Melbourne)" - }, - "ap-southeast-5": { - description: "Asia Pacific (Malaysia)" - }, - "aws-global": { - description: "AWS Standard global region" - }, - "ca-central-1": { - description: "Canada (Central)" - }, - "ca-west-1": { - description: "Canada West (Calgary)" - }, - "eu-central-1": { - description: "Europe (Frankfurt)" - }, - "eu-central-2": { - description: "Europe (Zurich)" - }, - "eu-north-1": { - description: "Europe (Stockholm)" - }, - "eu-south-1": { - description: "Europe (Milan)" - }, - "eu-south-2": { - description: "Europe (Spain)" - }, - "eu-west-1": { - description: "Europe (Ireland)" - }, - "eu-west-2": { - description: "Europe (London)" - }, - "eu-west-3": { - description: "Europe (Paris)" - }, - "il-central-1": { - description: "Israel (Tel Aviv)" - }, - "me-central-1": { - description: "Middle East (UAE)" - }, - "me-south-1": { - description: "Middle East (Bahrain)" - }, - "sa-east-1": { - description: "South America (Sao Paulo)" - }, - "us-east-1": { - description: "US East (N. Virginia)" - }, - "us-east-2": { - description: "US East (Ohio)" - }, - "us-west-1": { - description: "US West (N. California)" - }, - "us-west-2": { - description: "US West (Oregon)" - } - } - }, { - id: "aws-cn", - outputs: { - dnsSuffix: "amazonaws.com.cn", - dualStackDnsSuffix: "api.amazonwebservices.com.cn", - implicitGlobalRegion: "cn-northwest-1", - name: "aws-cn", - supportsDualStack: true, - supportsFIPS: true - }, - regionRegex: "^cn\\-\\w+\\-\\d+$", - regions: { - "aws-cn-global": { - description: "AWS China global region" - }, - "cn-north-1": { - description: "China (Beijing)" - }, - "cn-northwest-1": { - description: "China (Ningxia)" - } - } - }, { - id: "aws-us-gov", - outputs: { - dnsSuffix: "amazonaws.com", - dualStackDnsSuffix: "api.aws", - implicitGlobalRegion: "us-gov-west-1", - name: "aws-us-gov", - supportsDualStack: true, - supportsFIPS: true - }, - regionRegex: "^us\\-gov\\-\\w+\\-\\d+$", - regions: { - "aws-us-gov-global": { - description: "AWS GovCloud (US) global region" - }, - "us-gov-east-1": { - description: "AWS GovCloud (US-East)" - }, - "us-gov-west-1": { - description: "AWS GovCloud (US-West)" - } - } - }, { - id: "aws-iso", - outputs: { - dnsSuffix: "c2s.ic.gov", - dualStackDnsSuffix: "c2s.ic.gov", - implicitGlobalRegion: "us-iso-east-1", - name: "aws-iso", - supportsDualStack: false, - supportsFIPS: true - }, - regionRegex: "^us\\-iso\\-\\w+\\-\\d+$", - regions: { - "aws-iso-global": { - description: "AWS ISO (US) global region" - }, - "us-iso-east-1": { - description: "US ISO East" - }, - "us-iso-west-1": { - description: "US ISO WEST" + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } } - } - }, { - id: "aws-iso-b", - outputs: { - dnsSuffix: "sc2s.sgov.gov", - dualStackDnsSuffix: "sc2s.sgov.gov", - implicitGlobalRegion: "us-isob-east-1", - name: "aws-iso-b", - supportsDualStack: false, - supportsFIPS: true - }, - regionRegex: "^us\\-isob\\-\\w+\\-\\d+$", - regions: { - "aws-iso-b-global": { - description: "AWS ISOB (US) global region" - }, - "us-isob-east-1": { - description: "US ISOB East (Ohio)" - } - } - }, { - id: "aws-iso-e", - outputs: { - dnsSuffix: "cloud.adc-e.uk", - dualStackDnsSuffix: "cloud.adc-e.uk", - implicitGlobalRegion: "eu-isoe-west-1", - name: "aws-iso-e", - supportsDualStack: false, - supportsFIPS: true - }, - regionRegex: "^eu\\-isoe\\-\\w+\\-\\d+$", - regions: { - "eu-isoe-west-1": { - description: "EU ISOE West" - } - } - }, { - id: "aws-iso-f", - outputs: { - dnsSuffix: "csp.hci.ic.gov", - dualStackDnsSuffix: "csp.hci.ic.gov", - implicitGlobalRegion: "us-isof-south-1", - name: "aws-iso-f", - supportsDualStack: false, - supportsFIPS: true - }, - regionRegex: "^us\\-isof\\-\\w+\\-\\d+$", - regions: {} - }], - version: "1.1" -}; - -// src/lib/aws/partition.ts -var selectedPartitionsInfo = partitions_default; -var selectedUserAgentPrefix = ""; -var partition = /* @__PURE__ */ __name((value) => { - const { partitions } = selectedPartitionsInfo; - for (const partition2 of partitions) { - const { regions, outputs } = partition2; - for (const [region, regionData] of Object.entries(regions)) { - if (region === value) { - return { - ...outputs, - ...regionData - }; - } - } - } - for (const partition2 of partitions) { - const { regionRegex, outputs } = partition2; - if (new RegExp(regionRegex).test(value)) { - return { - ...outputs - }; - } - } - const DEFAULT_PARTITION = partitions.find((partition2) => partition2.id === "aws"); - if (!DEFAULT_PARTITION) { - throw new Error( - "Provided region was not found in the partition array or regex, and default partition with id 'aws' doesn't exist." - ); - } - return { - ...DEFAULT_PARTITION.outputs - }; -}, "partition"); -var setPartitionInfo = /* @__PURE__ */ __name((partitionsInfo, userAgentPrefix = "") => { - selectedPartitionsInfo = partitionsInfo; - selectedUserAgentPrefix = userAgentPrefix; -}, "setPartitionInfo"); -var useDefaultPartitionInfo = /* @__PURE__ */ __name(() => { - setPartitionInfo(partitions_default, ""); -}, "useDefaultPartitionInfo"); -var getUserAgentPrefix = /* @__PURE__ */ __name(() => selectedUserAgentPrefix, "getUserAgentPrefix"); -// src/aws.ts -var awsEndpointFunctions = { - isVirtualHostableS3Bucket, - parseArn, - partition -}; -import_util_endpoints.customEndpointFunctions.aws = awsEndpointFunctions; + const rnds8Pool = new Uint8Array(256) // # of random values to pre-allocate -// src/resolveEndpoint.ts + let poolPtr = rnds8Pool.length + function rng() { + if (poolPtr > rnds8Pool.length - 16) { + _crypto.default.randomFillSync(rnds8Pool) -// src/types/EndpointError.ts + poolPtr = 0 + } + return rnds8Pool.slice(poolPtr, (poolPtr += 16)) + } -// src/types/EndpointRuleObject.ts + /***/ + }, + /***/ 46679: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -// src/types/ErrorRuleObject.ts + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 + var _crypto = _interopRequireDefault(__nccwpck_require__(6113)) -// src/types/RuleSetObject.ts + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } + function sha1(bytes) { + if (Array.isArray(bytes)) { + bytes = Buffer.from(bytes) + } else if (typeof bytes === 'string') { + bytes = Buffer.from(bytes, 'utf8') + } -// src/types/TreeRuleObject.ts + return _crypto.default.createHash('sha1').update(bytes).digest() + } + var _default = sha1 + exports['default'] = _default -// src/types/shared.ts + /***/ + }, -// Annotate the CommonJS export names for ESM import in node: + /***/ 79618: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -0 && (0); + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 + exports.unsafeStringify = unsafeStringify + var _validate = _interopRequireDefault(__nccwpck_require__(66992)) + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } -/***/ }), + /** + * Convert array of 16 byte values to UUID string format of the form: + * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX + */ + const byteToHex = [] + + for (let i = 0; i < 256; ++i) { + byteToHex.push((i + 0x100).toString(16).slice(1)) + } + + function unsafeStringify(arr, offset = 0) { + // Note: Be careful editing this code! It's been tuned for performance + // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434 + 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]] + ) + } -/***/ 98095: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + function stringify(arr, offset = 0) { + const uuid = unsafeStringify(arr, offset) // Consistency check for valid UUID. If this throws, it's likely due to one + // of the following: + // - One or more input array values don't map to a hex octet (leading to + // "undefined" in the uuid) + // - Invalid input values for the RFC `version` or `variant` fields -"use strict"; + if (!(0, _validate.default)(uuid)) { + throw TypeError('Stringified UUID is invalid') + } -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - UA_APP_ID_ENV_NAME: () => UA_APP_ID_ENV_NAME, - UA_APP_ID_INI_NAME: () => UA_APP_ID_INI_NAME, - crtAvailability: () => crtAvailability, - defaultUserAgent: () => defaultUserAgent -}); -module.exports = __toCommonJS(src_exports); -var import_node_config_provider = __nccwpck_require__(33461); -var import_os = __nccwpck_require__(22037); -var import_process = __nccwpck_require__(77282); - -// src/crt-availability.ts -var crtAvailability = { - isCrtAvailable: false -}; - -// src/is-crt-available.ts -var isCrtAvailable = /* @__PURE__ */ __name(() => { - if (crtAvailability.isCrtAvailable) { - return ["md/crt-avail"]; - } - return null; -}, "isCrtAvailable"); - -// src/index.ts -var UA_APP_ID_ENV_NAME = "AWS_SDK_UA_APP_ID"; -var UA_APP_ID_INI_NAME = "sdk-ua-app-id"; -var defaultUserAgent = /* @__PURE__ */ __name(({ serviceId, clientVersion }) => { - const sections = [ - // sdk-metadata - ["aws-sdk-js", clientVersion], - // ua-metadata - ["ua", "2.0"], - // os-metadata - [`os/${(0, import_os.platform)()}`, (0, import_os.release)()], - // language-metadata - // ECMAScript edition doesn't matter in JS, so no version needed. - ["lang/js"], - ["md/nodejs", `${import_process.versions.node}`] - ]; - const crtAvailable = isCrtAvailable(); - if (crtAvailable) { - sections.push(crtAvailable); - } - if (serviceId) { - sections.push([`api/${serviceId}`, clientVersion]); - } - if (import_process.env.AWS_EXECUTION_ENV) { - sections.push([`exec-env/${import_process.env.AWS_EXECUTION_ENV}`]); - } - const appIdPromise = (0, import_node_config_provider.loadConfig)({ - environmentVariableSelector: (env2) => env2[UA_APP_ID_ENV_NAME], - configFileSelector: (profile) => profile[UA_APP_ID_INI_NAME], - default: void 0 - })(); - let resolvedUserAgent = void 0; - return async () => { - if (!resolvedUserAgent) { - const appId = await appIdPromise; - resolvedUserAgent = appId ? [...sections, [`app/${appId}`]] : [...sections]; - } - return resolvedUserAgent; - }; -}, "defaultUserAgent"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 53098: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - CONFIG_USE_DUALSTACK_ENDPOINT: () => CONFIG_USE_DUALSTACK_ENDPOINT, - CONFIG_USE_FIPS_ENDPOINT: () => CONFIG_USE_FIPS_ENDPOINT, - DEFAULT_USE_DUALSTACK_ENDPOINT: () => DEFAULT_USE_DUALSTACK_ENDPOINT, - DEFAULT_USE_FIPS_ENDPOINT: () => DEFAULT_USE_FIPS_ENDPOINT, - ENV_USE_DUALSTACK_ENDPOINT: () => ENV_USE_DUALSTACK_ENDPOINT, - ENV_USE_FIPS_ENDPOINT: () => ENV_USE_FIPS_ENDPOINT, - NODE_REGION_CONFIG_FILE_OPTIONS: () => NODE_REGION_CONFIG_FILE_OPTIONS, - NODE_REGION_CONFIG_OPTIONS: () => NODE_REGION_CONFIG_OPTIONS, - NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS: () => NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, - NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS: () => NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, - REGION_ENV_NAME: () => REGION_ENV_NAME, - REGION_INI_NAME: () => REGION_INI_NAME, - getRegionInfo: () => getRegionInfo, - resolveCustomEndpointsConfig: () => resolveCustomEndpointsConfig, - resolveEndpointsConfig: () => resolveEndpointsConfig, - resolveRegionConfig: () => resolveRegionConfig -}); -module.exports = __toCommonJS(src_exports); - -// src/endpointsConfig/NodeUseDualstackEndpointConfigOptions.ts -var import_util_config_provider = __nccwpck_require__(83375); -var ENV_USE_DUALSTACK_ENDPOINT = "AWS_USE_DUALSTACK_ENDPOINT"; -var CONFIG_USE_DUALSTACK_ENDPOINT = "use_dualstack_endpoint"; -var DEFAULT_USE_DUALSTACK_ENDPOINT = false; -var NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS = { - environmentVariableSelector: (env) => (0, import_util_config_provider.booleanSelector)(env, ENV_USE_DUALSTACK_ENDPOINT, import_util_config_provider.SelectorType.ENV), - configFileSelector: (profile) => (0, import_util_config_provider.booleanSelector)(profile, CONFIG_USE_DUALSTACK_ENDPOINT, import_util_config_provider.SelectorType.CONFIG), - default: false -}; - -// src/endpointsConfig/NodeUseFipsEndpointConfigOptions.ts - -var ENV_USE_FIPS_ENDPOINT = "AWS_USE_FIPS_ENDPOINT"; -var CONFIG_USE_FIPS_ENDPOINT = "use_fips_endpoint"; -var DEFAULT_USE_FIPS_ENDPOINT = false; -var NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS = { - environmentVariableSelector: (env) => (0, import_util_config_provider.booleanSelector)(env, ENV_USE_FIPS_ENDPOINT, import_util_config_provider.SelectorType.ENV), - configFileSelector: (profile) => (0, import_util_config_provider.booleanSelector)(profile, CONFIG_USE_FIPS_ENDPOINT, import_util_config_provider.SelectorType.CONFIG), - default: false -}; - -// src/endpointsConfig/resolveCustomEndpointsConfig.ts -var import_util_middleware = __nccwpck_require__(2390); -var resolveCustomEndpointsConfig = /* @__PURE__ */ __name((input) => { - const { endpoint, urlParser } = input; - return { - ...input, - tls: input.tls ?? true, - endpoint: (0, import_util_middleware.normalizeProvider)(typeof endpoint === "string" ? urlParser(endpoint) : endpoint), - isCustomEndpoint: true, - useDualstackEndpoint: (0, import_util_middleware.normalizeProvider)(input.useDualstackEndpoint ?? false) - }; -}, "resolveCustomEndpointsConfig"); - -// src/endpointsConfig/resolveEndpointsConfig.ts - - -// src/endpointsConfig/utils/getEndpointFromRegion.ts -var getEndpointFromRegion = /* @__PURE__ */ __name(async (input) => { - const { tls = true } = input; - const region = await input.region(); - const dnsHostRegex = new RegExp(/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/); - if (!dnsHostRegex.test(region)) { - throw new Error("Invalid region in client config"); - } - const useDualstackEndpoint = await input.useDualstackEndpoint(); - const useFipsEndpoint = await input.useFipsEndpoint(); - const { hostname } = await input.regionInfoProvider(region, { useDualstackEndpoint, useFipsEndpoint }) ?? {}; - if (!hostname) { - throw new Error("Cannot resolve hostname from client config"); - } - return input.urlParser(`${tls ? "https:" : "http:"}//${hostname}`); -}, "getEndpointFromRegion"); - -// src/endpointsConfig/resolveEndpointsConfig.ts -var resolveEndpointsConfig = /* @__PURE__ */ __name((input) => { - const useDualstackEndpoint = (0, import_util_middleware.normalizeProvider)(input.useDualstackEndpoint ?? false); - const { endpoint, useFipsEndpoint, urlParser } = input; - return { - ...input, - tls: input.tls ?? true, - endpoint: endpoint ? (0, import_util_middleware.normalizeProvider)(typeof endpoint === "string" ? urlParser(endpoint) : endpoint) : () => getEndpointFromRegion({ ...input, useDualstackEndpoint, useFipsEndpoint }), - isCustomEndpoint: !!endpoint, - useDualstackEndpoint - }; -}, "resolveEndpointsConfig"); - -// src/regionConfig/config.ts -var REGION_ENV_NAME = "AWS_REGION"; -var REGION_INI_NAME = "region"; -var NODE_REGION_CONFIG_OPTIONS = { - environmentVariableSelector: (env) => env[REGION_ENV_NAME], - configFileSelector: (profile) => profile[REGION_INI_NAME], - default: () => { - throw new Error("Region is missing"); - } -}; -var NODE_REGION_CONFIG_FILE_OPTIONS = { - preferredFile: "credentials" -}; - -// src/regionConfig/isFipsRegion.ts -var isFipsRegion = /* @__PURE__ */ __name((region) => typeof region === "string" && (region.startsWith("fips-") || region.endsWith("-fips")), "isFipsRegion"); - -// src/regionConfig/getRealRegion.ts -var getRealRegion = /* @__PURE__ */ __name((region) => isFipsRegion(region) ? ["fips-aws-global", "aws-fips"].includes(region) ? "us-east-1" : region.replace(/fips-(dkr-|prod-)?|-fips/, "") : region, "getRealRegion"); - -// src/regionConfig/resolveRegionConfig.ts -var resolveRegionConfig = /* @__PURE__ */ __name((input) => { - const { region, useFipsEndpoint } = input; - if (!region) { - throw new Error("Region is missing"); - } - return { - ...input, - region: async () => { - if (typeof region === "string") { - return getRealRegion(region); - } - const providedRegion = await region(); - return getRealRegion(providedRegion); - }, - useFipsEndpoint: async () => { - const providedRegion = typeof region === "string" ? region : await region(); - if (isFipsRegion(providedRegion)) { - return true; + return uuid } - return typeof useFipsEndpoint !== "function" ? Promise.resolve(!!useFipsEndpoint) : useFipsEndpoint(); - } - }; -}, "resolveRegionConfig"); - -// src/regionInfo/getHostnameFromVariants.ts -var getHostnameFromVariants = /* @__PURE__ */ __name((variants = [], { useFipsEndpoint, useDualstackEndpoint }) => { - var _a; - return (_a = variants.find( - ({ tags }) => useFipsEndpoint === tags.includes("fips") && useDualstackEndpoint === tags.includes("dualstack") - )) == null ? void 0 : _a.hostname; -}, "getHostnameFromVariants"); - -// src/regionInfo/getResolvedHostname.ts -var getResolvedHostname = /* @__PURE__ */ __name((resolvedRegion, { regionHostname, partitionHostname }) => regionHostname ? regionHostname : partitionHostname ? partitionHostname.replace("{region}", resolvedRegion) : void 0, "getResolvedHostname"); - -// src/regionInfo/getResolvedPartition.ts -var getResolvedPartition = /* @__PURE__ */ __name((region, { partitionHash }) => Object.keys(partitionHash || {}).find((key) => partitionHash[key].regions.includes(region)) ?? "aws", "getResolvedPartition"); - -// src/regionInfo/getResolvedSigningRegion.ts -var getResolvedSigningRegion = /* @__PURE__ */ __name((hostname, { signingRegion, regionRegex, useFipsEndpoint }) => { - if (signingRegion) { - return signingRegion; - } else if (useFipsEndpoint) { - const regionRegexJs = regionRegex.replace("\\\\", "\\").replace(/^\^/g, "\\.").replace(/\$$/g, "\\."); - const regionRegexmatchArray = hostname.match(regionRegexJs); - if (regionRegexmatchArray) { - return regionRegexmatchArray[0].slice(1, -1); - } - } -}, "getResolvedSigningRegion"); - -// src/regionInfo/getRegionInfo.ts -var getRegionInfo = /* @__PURE__ */ __name((region, { - useFipsEndpoint = false, - useDualstackEndpoint = false, - signingService, - regionHash, - partitionHash -}) => { - var _a, _b, _c, _d, _e; - const partition = getResolvedPartition(region, { partitionHash }); - const resolvedRegion = region in regionHash ? region : ((_a = partitionHash[partition]) == null ? void 0 : _a.endpoint) ?? region; - const hostnameOptions = { useFipsEndpoint, useDualstackEndpoint }; - const regionHostname = getHostnameFromVariants((_b = regionHash[resolvedRegion]) == null ? void 0 : _b.variants, hostnameOptions); - const partitionHostname = getHostnameFromVariants((_c = partitionHash[partition]) == null ? void 0 : _c.variants, hostnameOptions); - const hostname = getResolvedHostname(resolvedRegion, { regionHostname, partitionHostname }); - if (hostname === void 0) { - throw new Error(`Endpoint resolution failed for: ${{ resolvedRegion, useFipsEndpoint, useDualstackEndpoint }}`); - } - const signingRegion = getResolvedSigningRegion(hostname, { - signingRegion: (_d = regionHash[resolvedRegion]) == null ? void 0 : _d.signingRegion, - regionRegex: partitionHash[partition].regionRegex, - useFipsEndpoint - }); - return { - partition, - signingService, - hostname, - ...signingRegion && { signingRegion }, - ...((_e = regionHash[resolvedRegion]) == null ? void 0 : _e.signingService) && { - signingService: regionHash[resolvedRegion].signingService - } - }; -}, "getRegionInfo"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); + var _default = stringify + exports['default'] = _default + /***/ + }, -/***/ }), + /***/ 36310: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -/***/ 55829: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - DefaultIdentityProviderConfig: () => DefaultIdentityProviderConfig, - EXPIRATION_MS: () => EXPIRATION_MS, - HttpApiKeyAuthSigner: () => HttpApiKeyAuthSigner, - HttpBearerAuthSigner: () => HttpBearerAuthSigner, - NoAuthSigner: () => NoAuthSigner, - RequestBuilder: () => RequestBuilder, - createIsIdentityExpiredFunction: () => createIsIdentityExpiredFunction, - createPaginator: () => createPaginator, - doesIdentityRequireRefresh: () => doesIdentityRequireRefresh, - getHttpAuthSchemeEndpointRuleSetPlugin: () => getHttpAuthSchemeEndpointRuleSetPlugin, - getHttpAuthSchemePlugin: () => getHttpAuthSchemePlugin, - getHttpSigningPlugin: () => getHttpSigningPlugin, - getSmithyContext: () => getSmithyContext3, - httpAuthSchemeEndpointRuleSetMiddlewareOptions: () => httpAuthSchemeEndpointRuleSetMiddlewareOptions, - httpAuthSchemeMiddleware: () => httpAuthSchemeMiddleware, - httpAuthSchemeMiddlewareOptions: () => httpAuthSchemeMiddlewareOptions, - httpSigningMiddleware: () => httpSigningMiddleware, - httpSigningMiddlewareOptions: () => httpSigningMiddlewareOptions, - isIdentityExpired: () => isIdentityExpired, - memoizeIdentityProvider: () => memoizeIdentityProvider, - normalizeProvider: () => normalizeProvider, - requestBuilder: () => requestBuilder -}); -module.exports = __toCommonJS(src_exports); - -// src/middleware-http-auth-scheme/httpAuthSchemeMiddleware.ts -var import_util_middleware = __nccwpck_require__(2390); -function convertHttpAuthSchemesToMap(httpAuthSchemes) { - const map = /* @__PURE__ */ new Map(); - for (const scheme of httpAuthSchemes) { - map.set(scheme.schemeId, scheme); - } - return map; -} -__name(convertHttpAuthSchemesToMap, "convertHttpAuthSchemesToMap"); -var httpAuthSchemeMiddleware = /* @__PURE__ */ __name((config, mwOptions) => (next, context) => async (args) => { - var _a; - const options = config.httpAuthSchemeProvider( - await mwOptions.httpAuthSchemeParametersProvider(config, context, args.input) - ); - const authSchemes = convertHttpAuthSchemesToMap(config.httpAuthSchemes); - const smithyContext = (0, import_util_middleware.getSmithyContext)(context); - const failureReasons = []; - for (const option of options) { - const scheme = authSchemes.get(option.schemeId); - if (!scheme) { - failureReasons.push(`HttpAuthScheme \`${option.schemeId}\` was not enabled for this service.`); - continue; - } - const identityProvider = scheme.identityProvider(await mwOptions.identityProviderConfigProvider(config)); - if (!identityProvider) { - failureReasons.push(`HttpAuthScheme \`${option.schemeId}\` did not have an IdentityProvider configured.`); - continue; - } - const { identityProperties = {}, signingProperties = {} } = ((_a = option.propertiesExtractor) == null ? void 0 : _a.call(option, config, context)) || {}; - option.identityProperties = Object.assign(option.identityProperties || {}, identityProperties); - option.signingProperties = Object.assign(option.signingProperties || {}, signingProperties); - smithyContext.selectedHttpAuthScheme = { - httpAuthOption: option, - identity: await identityProvider(option.identityProperties), - signer: scheme.signer - }; - break; - } - if (!smithyContext.selectedHttpAuthScheme) { - throw new Error(failureReasons.join("\n")); - } - return next(args); -}, "httpAuthSchemeMiddleware"); - -// src/middleware-http-auth-scheme/getHttpAuthSchemeEndpointRuleSetPlugin.ts -var import_middleware_endpoint = __nccwpck_require__(82918); -var httpAuthSchemeEndpointRuleSetMiddlewareOptions = { - step: "serialize", - tags: ["HTTP_AUTH_SCHEME"], - name: "httpAuthSchemeMiddleware", - override: true, - relation: "before", - toMiddleware: import_middleware_endpoint.endpointMiddlewareOptions.name -}; -var getHttpAuthSchemeEndpointRuleSetPlugin = /* @__PURE__ */ __name((config, { - httpAuthSchemeParametersProvider, - identityProviderConfigProvider -}) => ({ - applyToStack: (clientStack) => { - clientStack.addRelativeTo( - httpAuthSchemeMiddleware(config, { - httpAuthSchemeParametersProvider, - identityProviderConfigProvider - }), - httpAuthSchemeEndpointRuleSetMiddlewareOptions - ); - } -}), "getHttpAuthSchemeEndpointRuleSetPlugin"); - -// src/middleware-http-auth-scheme/getHttpAuthSchemePlugin.ts -var import_middleware_serde = __nccwpck_require__(81238); -var httpAuthSchemeMiddlewareOptions = { - step: "serialize", - tags: ["HTTP_AUTH_SCHEME"], - name: "httpAuthSchemeMiddleware", - override: true, - relation: "before", - toMiddleware: import_middleware_serde.serializerMiddlewareOption.name -}; -var getHttpAuthSchemePlugin = /* @__PURE__ */ __name((config, { - httpAuthSchemeParametersProvider, - identityProviderConfigProvider -}) => ({ - applyToStack: (clientStack) => { - clientStack.addRelativeTo( - httpAuthSchemeMiddleware(config, { - httpAuthSchemeParametersProvider, - identityProviderConfigProvider - }), - httpAuthSchemeMiddlewareOptions - ); - } -}), "getHttpAuthSchemePlugin"); - -// src/middleware-http-signing/httpSigningMiddleware.ts -var import_protocol_http = __nccwpck_require__(64418); - -var defaultErrorHandler = /* @__PURE__ */ __name((signingProperties) => (error) => { - throw error; -}, "defaultErrorHandler"); -var defaultSuccessHandler = /* @__PURE__ */ __name((httpResponse, signingProperties) => { -}, "defaultSuccessHandler"); -var httpSigningMiddleware = /* @__PURE__ */ __name((config) => (next, context) => async (args) => { - if (!import_protocol_http.HttpRequest.isInstance(args.request)) { - return next(args); - } - const smithyContext = (0, import_util_middleware.getSmithyContext)(context); - const scheme = smithyContext.selectedHttpAuthScheme; - if (!scheme) { - throw new Error(`No HttpAuthScheme was selected: unable to sign request`); - } - const { - httpAuthOption: { signingProperties = {} }, - identity, - signer - } = scheme; - const output = await next({ - ...args, - request: await signer.sign(args.request, identity, signingProperties) - }).catch((signer.errorHandler || defaultErrorHandler)(signingProperties)); - (signer.successHandler || defaultSuccessHandler)(output.response, signingProperties); - return output; -}, "httpSigningMiddleware"); - -// src/middleware-http-signing/getHttpSigningMiddleware.ts -var import_middleware_retry = __nccwpck_require__(96039); -var httpSigningMiddlewareOptions = { - step: "finalizeRequest", - tags: ["HTTP_SIGNING"], - name: "httpSigningMiddleware", - aliases: ["apiKeyMiddleware", "tokenMiddleware", "awsAuthMiddleware"], - override: true, - relation: "after", - toMiddleware: import_middleware_retry.retryMiddlewareOptions.name -}; -var getHttpSigningPlugin = /* @__PURE__ */ __name((config) => ({ - applyToStack: (clientStack) => { - clientStack.addRelativeTo(httpSigningMiddleware(config), httpSigningMiddlewareOptions); - } -}), "getHttpSigningPlugin"); - -// src/util-identity-and-auth/DefaultIdentityProviderConfig.ts -var _DefaultIdentityProviderConfig = class _DefaultIdentityProviderConfig { - /** - * Creates an IdentityProviderConfig with a record of scheme IDs to identity providers. - * - * @param config scheme IDs and identity providers to configure - */ - constructor(config) { - this.authSchemes = /* @__PURE__ */ new Map(); - for (const [key, value] of Object.entries(config)) { - if (value !== void 0) { - this.authSchemes.set(key, value); - } - } - } - getIdentityProvider(schemeId) { - return this.authSchemes.get(schemeId); - } -}; -__name(_DefaultIdentityProviderConfig, "DefaultIdentityProviderConfig"); -var DefaultIdentityProviderConfig = _DefaultIdentityProviderConfig; - -// src/util-identity-and-auth/httpAuthSchemes/httpApiKeyAuth.ts - -var import_types = __nccwpck_require__(55756); -var _HttpApiKeyAuthSigner = class _HttpApiKeyAuthSigner { - async sign(httpRequest, identity, signingProperties) { - if (!signingProperties) { - throw new Error( - "request could not be signed with `apiKey` since the `name` and `in` signer properties are missing" - ); - } - if (!signingProperties.name) { - throw new Error("request could not be signed with `apiKey` since the `name` signer property is missing"); - } - if (!signingProperties.in) { - throw new Error("request could not be signed with `apiKey` since the `in` signer property is missing"); - } - if (!identity.apiKey) { - throw new Error("request could not be signed with `apiKey` since the `apiKey` is not defined"); - } - const clonedRequest = import_protocol_http.HttpRequest.clone(httpRequest); - if (signingProperties.in === import_types.HttpApiKeyAuthLocation.QUERY) { - clonedRequest.query[signingProperties.name] = identity.apiKey; - } else if (signingProperties.in === import_types.HttpApiKeyAuthLocation.HEADER) { - clonedRequest.headers[signingProperties.name] = signingProperties.scheme ? `${signingProperties.scheme} ${identity.apiKey}` : identity.apiKey; - } else { - throw new Error( - "request can only be signed with `apiKey` locations `query` or `header`, but found: `" + signingProperties.in + "`" - ); - } - return clonedRequest; - } -}; -__name(_HttpApiKeyAuthSigner, "HttpApiKeyAuthSigner"); -var HttpApiKeyAuthSigner = _HttpApiKeyAuthSigner; + var _rng = _interopRequireDefault(__nccwpck_require__(68136)) -// src/util-identity-and-auth/httpAuthSchemes/httpBearerAuth.ts + var _stringify = __nccwpck_require__(79618) -var _HttpBearerAuthSigner = class _HttpBearerAuthSigner { - async sign(httpRequest, identity, signingProperties) { - const clonedRequest = import_protocol_http.HttpRequest.clone(httpRequest); - if (!identity.token) { - throw new Error("request could not be signed with `token` since the `token` is not defined"); - } - clonedRequest.headers["Authorization"] = `Bearer ${identity.token}`; - return clonedRequest; - } -}; -__name(_HttpBearerAuthSigner, "HttpBearerAuthSigner"); -var HttpBearerAuthSigner = _HttpBearerAuthSigner; - -// src/util-identity-and-auth/httpAuthSchemes/noAuth.ts -var _NoAuthSigner = class _NoAuthSigner { - async sign(httpRequest, identity, signingProperties) { - return httpRequest; - } -}; -__name(_NoAuthSigner, "NoAuthSigner"); -var NoAuthSigner = _NoAuthSigner; - -// src/util-identity-and-auth/memoizeIdentityProvider.ts -var createIsIdentityExpiredFunction = /* @__PURE__ */ __name((expirationMs) => (identity) => doesIdentityRequireRefresh(identity) && identity.expiration.getTime() - Date.now() < expirationMs, "createIsIdentityExpiredFunction"); -var EXPIRATION_MS = 3e5; -var isIdentityExpired = createIsIdentityExpiredFunction(EXPIRATION_MS); -var doesIdentityRequireRefresh = /* @__PURE__ */ __name((identity) => identity.expiration !== void 0, "doesIdentityRequireRefresh"); -var memoizeIdentityProvider = /* @__PURE__ */ __name((provider, isExpired, requiresRefresh) => { - if (provider === void 0) { - return void 0; - } - const normalizedProvider = typeof provider !== "function" ? async () => Promise.resolve(provider) : provider; - let resolved; - let pending; - let hasResult; - let isConstant = false; - const coalesceProvider = /* @__PURE__ */ __name(async (options) => { - if (!pending) { - pending = normalizedProvider(options); - } - try { - resolved = await pending; - hasResult = true; - isConstant = false; - } finally { - pending = void 0; - } - return resolved; - }, "coalesceProvider"); - if (isExpired === void 0) { - return async (options) => { - if (!hasResult || (options == null ? void 0 : options.forceRefresh)) { - resolved = await coalesceProvider(options); - } - return resolved; - }; - } - return async (options) => { - if (!hasResult || (options == null ? void 0 : options.forceRefresh)) { - resolved = await coalesceProvider(options); - } - if (isConstant) { - return resolved; - } - if (!requiresRefresh(resolved)) { - isConstant = true; - return resolved; - } - if (isExpired(resolved)) { - await coalesceProvider(options); - return resolved; - } - return resolved; - }; -}, "memoizeIdentityProvider"); - -// src/getSmithyContext.ts - -var getSmithyContext3 = /* @__PURE__ */ __name((context) => context[import_types.SMITHY_CONTEXT_KEY] || (context[import_types.SMITHY_CONTEXT_KEY] = {}), "getSmithyContext"); - -// src/normalizeProvider.ts -var normalizeProvider = /* @__PURE__ */ __name((input) => { - if (typeof input === "function") - return input; - const promisified = Promise.resolve(input); - return () => promisified; -}, "normalizeProvider"); - -// src/protocols/requestBuilder.ts - -var import_smithy_client = __nccwpck_require__(63570); -function requestBuilder(input, context) { - return new RequestBuilder(input, context); -} -__name(requestBuilder, "requestBuilder"); -var _RequestBuilder = class _RequestBuilder { - constructor(input, context) { - this.input = input; - this.context = context; - this.query = {}; - this.method = ""; - this.headers = {}; - this.path = ""; - this.body = null; - this.hostname = ""; - this.resolvePathStack = []; - } - async build() { - const { hostname, protocol = "https", port, path: basePath } = await this.context.endpoint(); - this.path = basePath; - for (const resolvePath of this.resolvePathStack) { - resolvePath(this.path); - } - return new import_protocol_http.HttpRequest({ - protocol, - hostname: this.hostname || hostname, - port, - method: this.method, - path: this.path, - query: this.query, - body: this.body, - headers: this.headers - }); - } - /** - * Brevity setter for "hostname". - */ - hn(hostname) { - this.hostname = hostname; - return this; - } - /** - * Brevity initial builder for "basepath". - */ - bp(uriLabel) { - this.resolvePathStack.push((basePath) => { - this.path = `${(basePath == null ? void 0 : basePath.endsWith("/")) ? basePath.slice(0, -1) : basePath || ""}` + uriLabel; - }); - return this; - } - /** - * Brevity incremental builder for "path". - */ - p(memberName, labelValueProvider, uriLabel, isGreedyLabel) { - this.resolvePathStack.push((path) => { - this.path = (0, import_smithy_client.resolvedPath)(path, this.input, memberName, labelValueProvider, uriLabel, isGreedyLabel); - }); - return this; - } - /** - * Brevity setter for "headers". - */ - h(headers) { - this.headers = headers; - return this; - } - /** - * Brevity setter for "query". - */ - q(query) { - this.query = query; - return this; - } - /** - * Brevity setter for "body". - */ - b(body) { - this.body = body; - return this; - } - /** - * Brevity setter for "method". - */ - m(method) { - this.method = method; - return this; - } -}; -__name(_RequestBuilder, "RequestBuilder"); -var RequestBuilder = _RequestBuilder; - -// src/pagination/createPaginator.ts -var makePagedClientRequest = /* @__PURE__ */ __name(async (CommandCtor, client, input, ...args) => { - return await client.send(new CommandCtor(input), ...args); -}, "makePagedClientRequest"); -function createPaginator(ClientCtor, CommandCtor, inputTokenName, outputTokenName, pageSizeTokenName) { - return /* @__PURE__ */ __name(async function* paginateOperation(config, input, ...additionalArguments) { - let token = config.startingToken || void 0; - let hasNext = true; - let page; - while (hasNext) { - input[inputTokenName] = token; - if (pageSizeTokenName) { - input[pageSizeTokenName] = input[pageSizeTokenName] ?? config.pageSize; - } - if (config.client instanceof ClientCtor) { - page = await makePagedClientRequest(CommandCtor, config.client, input, ...additionalArguments); - } else { - throw new Error(`Invalid client, expected instance of ${ClientCtor.name}`); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } } - yield page; - const prevToken = token; - token = get(page, outputTokenName); - hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken)); - } - return void 0; - }, "paginateOperation"); -} -__name(createPaginator, "createPaginator"); -var get = /* @__PURE__ */ __name((fromObject, path) => { - let cursor = fromObject; - const pathComponents = path.split("."); - for (const step of pathComponents) { - if (!cursor || typeof cursor !== "object") { - return void 0; - } - cursor = cursor[step]; - } - return cursor; -}, "get"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); + // **`v1()` - Generate time-based UUID** + // + // Inspired by https://github.com/LiosK/UUID.js + // and http://docs.python.org/library/uuid.html + let _nodeId + + let _clockseq // Previous uuid creation time + + let _lastMSecs = 0 + let _lastNSecs = 0 // See https://github.com/uuidjs/uuid for API details + + function v1(options, buf, offset) { + let i = (buf && offset) || 0 + const b = buf || new Array(16) + options = options || {} + let node = options.node || _nodeId + let clockseq = + options.clockseq !== undefined ? options.clockseq : _clockseq // node and clockseq need to be initialized to random values if they're not + // specified. We do this lazily to minimize issues related to insufficient + // system entropy. See #189 + + if (node == null || clockseq == null) { + const seedBytes = options.random || (options.rng || _rng.default)() + + if (node == null) { + // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) + node = _nodeId = [ + seedBytes[0] | 0x01, + seedBytes[1], + seedBytes[2], + seedBytes[3], + seedBytes[4], + seedBytes[5] + ] + } + if (clockseq == null) { + // Per 4.2.2, randomize (14 bit) clockseq + clockseq = _clockseq = ((seedBytes[6] << 8) | seedBytes[7]) & 0x3fff + } + } // UUID timestamps are 100 nano-second units since the Gregorian epoch, + // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so + // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' + // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. -/***/ }), - -/***/ 7477: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - DEFAULT_MAX_RETRIES: () => DEFAULT_MAX_RETRIES, - DEFAULT_TIMEOUT: () => DEFAULT_TIMEOUT, - ENV_CMDS_AUTH_TOKEN: () => ENV_CMDS_AUTH_TOKEN, - ENV_CMDS_FULL_URI: () => ENV_CMDS_FULL_URI, - ENV_CMDS_RELATIVE_URI: () => ENV_CMDS_RELATIVE_URI, - Endpoint: () => Endpoint, - fromContainerMetadata: () => fromContainerMetadata, - fromInstanceMetadata: () => fromInstanceMetadata, - getInstanceMetadataEndpoint: () => getInstanceMetadataEndpoint, - httpRequest: () => httpRequest, - providerConfigFromInit: () => providerConfigFromInit -}); -module.exports = __toCommonJS(src_exports); - -// src/fromContainerMetadata.ts - -var import_url = __nccwpck_require__(57310); - -// src/remoteProvider/httpRequest.ts -var import_property_provider = __nccwpck_require__(79721); -var import_buffer = __nccwpck_require__(14300); -var import_http = __nccwpck_require__(13685); -function httpRequest(options) { - return new Promise((resolve, reject) => { - var _a; - const req = (0, import_http.request)({ - method: "GET", - ...options, - // Node.js http module doesn't accept hostname with square brackets - // Refs: https://github.com/nodejs/node/issues/39738 - hostname: (_a = options.hostname) == null ? void 0 : _a.replace(/^\[(.+)\]$/, "$1") - }); - req.on("error", (err) => { - reject(Object.assign(new import_property_provider.ProviderError("Unable to connect to instance metadata service"), err)); - req.destroy(); - }); - req.on("timeout", () => { - reject(new import_property_provider.ProviderError("TimeoutError from instance metadata service")); - req.destroy(); - }); - req.on("response", (res) => { - const { statusCode = 400 } = res; - if (statusCode < 200 || 300 <= statusCode) { - reject( - Object.assign(new import_property_provider.ProviderError("Error response received from instance metadata service"), { statusCode }) - ); - req.destroy(); - } - const chunks = []; - res.on("data", (chunk) => { - chunks.push(chunk); - }); - res.on("end", () => { - resolve(import_buffer.Buffer.concat(chunks)); - req.destroy(); - }); - }); - req.end(); - }); -} -__name(httpRequest, "httpRequest"); - -// src/remoteProvider/ImdsCredentials.ts -var isImdsCredentials = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === "object" && typeof arg.AccessKeyId === "string" && typeof arg.SecretAccessKey === "string" && typeof arg.Token === "string" && typeof arg.Expiration === "string", "isImdsCredentials"); -var fromImdsCredentials = /* @__PURE__ */ __name((creds) => ({ - accessKeyId: creds.AccessKeyId, - secretAccessKey: creds.SecretAccessKey, - sessionToken: creds.Token, - expiration: new Date(creds.Expiration), - ...creds.AccountId && { accountId: creds.AccountId } -}), "fromImdsCredentials"); - -// src/remoteProvider/RemoteProviderInit.ts -var DEFAULT_TIMEOUT = 1e3; -var DEFAULT_MAX_RETRIES = 0; -var providerConfigFromInit = /* @__PURE__ */ __name(({ - maxRetries = DEFAULT_MAX_RETRIES, - timeout = DEFAULT_TIMEOUT -}) => ({ maxRetries, timeout }), "providerConfigFromInit"); - -// src/remoteProvider/retry.ts -var retry = /* @__PURE__ */ __name((toRetry, maxRetries) => { - let promise = toRetry(); - for (let i = 0; i < maxRetries; i++) { - promise = promise.catch(toRetry); - } - return promise; -}, "retry"); - -// src/fromContainerMetadata.ts -var ENV_CMDS_FULL_URI = "AWS_CONTAINER_CREDENTIALS_FULL_URI"; -var ENV_CMDS_RELATIVE_URI = "AWS_CONTAINER_CREDENTIALS_RELATIVE_URI"; -var ENV_CMDS_AUTH_TOKEN = "AWS_CONTAINER_AUTHORIZATION_TOKEN"; -var fromContainerMetadata = /* @__PURE__ */ __name((init = {}) => { - const { timeout, maxRetries } = providerConfigFromInit(init); - return () => retry(async () => { - const requestOptions = await getCmdsUri({ logger: init.logger }); - const credsResponse = JSON.parse(await requestFromEcsImds(timeout, requestOptions)); - if (!isImdsCredentials(credsResponse)) { - throw new import_property_provider.CredentialsProviderError("Invalid response received from instance metadata service.", { - logger: init.logger - }); - } - return fromImdsCredentials(credsResponse); - }, maxRetries); -}, "fromContainerMetadata"); -var requestFromEcsImds = /* @__PURE__ */ __name(async (timeout, options) => { - if (process.env[ENV_CMDS_AUTH_TOKEN]) { - options.headers = { - ...options.headers, - Authorization: process.env[ENV_CMDS_AUTH_TOKEN] - }; - } - const buffer = await httpRequest({ - ...options, - timeout - }); - return buffer.toString(); -}, "requestFromEcsImds"); -var CMDS_IP = "169.254.170.2"; -var GREENGRASS_HOSTS = { - localhost: true, - "127.0.0.1": true -}; -var GREENGRASS_PROTOCOLS = { - "http:": true, - "https:": true -}; -var getCmdsUri = /* @__PURE__ */ __name(async ({ logger }) => { - if (process.env[ENV_CMDS_RELATIVE_URI]) { - return { - hostname: CMDS_IP, - path: process.env[ENV_CMDS_RELATIVE_URI] - }; - } - if (process.env[ENV_CMDS_FULL_URI]) { - const parsed = (0, import_url.parse)(process.env[ENV_CMDS_FULL_URI]); - if (!parsed.hostname || !(parsed.hostname in GREENGRASS_HOSTS)) { - throw new import_property_provider.CredentialsProviderError(`${parsed.hostname} is not a valid container metadata service hostname`, { - tryNextLink: false, - logger - }); - } - if (!parsed.protocol || !(parsed.protocol in GREENGRASS_PROTOCOLS)) { - throw new import_property_provider.CredentialsProviderError(`${parsed.protocol} is not a valid container metadata service protocol`, { - tryNextLink: false, - logger - }); - } - return { - ...parsed, - port: parsed.port ? parseInt(parsed.port, 10) : void 0 - }; - } - throw new import_property_provider.CredentialsProviderError( - `The container metadata credential provider cannot be used unless the ${ENV_CMDS_RELATIVE_URI} or ${ENV_CMDS_FULL_URI} environment variable is set`, - { - tryNextLink: false, - logger - } - ); -}, "getCmdsUri"); + let msecs = options.msecs !== undefined ? options.msecs : Date.now() // Per 4.2.1.2, use count of uuid's generated during the current clock + // cycle to simulate higher resolution clock -// src/fromInstanceMetadata.ts + let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1 // Time since last uuid creation (in msecs) + const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000 // Per 4.2.1.2, Bump clockseq on clock regression + if (dt < 0 && options.clockseq === undefined) { + clockseq = (clockseq + 1) & 0x3fff + } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new + // time interval -// src/error/InstanceMetadataV1FallbackError.ts + if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { + nsecs = 0 + } // Per 4.2.1.2 Throw error if too many uuids are requested -var _InstanceMetadataV1FallbackError = class _InstanceMetadataV1FallbackError extends import_property_provider.CredentialsProviderError { - constructor(message, tryNextLink = true) { - super(message, tryNextLink); - this.tryNextLink = tryNextLink; - this.name = "InstanceMetadataV1FallbackError"; - Object.setPrototypeOf(this, _InstanceMetadataV1FallbackError.prototype); - } -}; -__name(_InstanceMetadataV1FallbackError, "InstanceMetadataV1FallbackError"); -var InstanceMetadataV1FallbackError = _InstanceMetadataV1FallbackError; - -// src/utils/getInstanceMetadataEndpoint.ts -var import_node_config_provider = __nccwpck_require__(33461); -var import_url_parser = __nccwpck_require__(14681); - -// src/config/Endpoint.ts -var Endpoint = /* @__PURE__ */ ((Endpoint2) => { - Endpoint2["IPv4"] = "http://169.254.169.254"; - Endpoint2["IPv6"] = "http://[fd00:ec2::254]"; - return Endpoint2; -})(Endpoint || {}); - -// src/config/EndpointConfigOptions.ts -var ENV_ENDPOINT_NAME = "AWS_EC2_METADATA_SERVICE_ENDPOINT"; -var CONFIG_ENDPOINT_NAME = "ec2_metadata_service_endpoint"; -var ENDPOINT_CONFIG_OPTIONS = { - environmentVariableSelector: (env) => env[ENV_ENDPOINT_NAME], - configFileSelector: (profile) => profile[CONFIG_ENDPOINT_NAME], - default: void 0 -}; - -// src/config/EndpointMode.ts -var EndpointMode = /* @__PURE__ */ ((EndpointMode2) => { - EndpointMode2["IPv4"] = "IPv4"; - EndpointMode2["IPv6"] = "IPv6"; - return EndpointMode2; -})(EndpointMode || {}); - -// src/config/EndpointModeConfigOptions.ts -var ENV_ENDPOINT_MODE_NAME = "AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE"; -var CONFIG_ENDPOINT_MODE_NAME = "ec2_metadata_service_endpoint_mode"; -var ENDPOINT_MODE_CONFIG_OPTIONS = { - environmentVariableSelector: (env) => env[ENV_ENDPOINT_MODE_NAME], - configFileSelector: (profile) => profile[CONFIG_ENDPOINT_MODE_NAME], - default: "IPv4" /* IPv4 */ -}; - -// src/utils/getInstanceMetadataEndpoint.ts -var getInstanceMetadataEndpoint = /* @__PURE__ */ __name(async () => (0, import_url_parser.parseUrl)(await getFromEndpointConfig() || await getFromEndpointModeConfig()), "getInstanceMetadataEndpoint"); -var getFromEndpointConfig = /* @__PURE__ */ __name(async () => (0, import_node_config_provider.loadConfig)(ENDPOINT_CONFIG_OPTIONS)(), "getFromEndpointConfig"); -var getFromEndpointModeConfig = /* @__PURE__ */ __name(async () => { - const endpointMode = await (0, import_node_config_provider.loadConfig)(ENDPOINT_MODE_CONFIG_OPTIONS)(); - switch (endpointMode) { - case "IPv4" /* IPv4 */: - return "http://169.254.169.254" /* IPv4 */; - case "IPv6" /* IPv6 */: - return "http://[fd00:ec2::254]" /* IPv6 */; - default: - throw new Error(`Unsupported endpoint mode: ${endpointMode}. Select from ${Object.values(EndpointMode)}`); - } -}, "getFromEndpointModeConfig"); - -// src/utils/getExtendedInstanceMetadataCredentials.ts -var STATIC_STABILITY_REFRESH_INTERVAL_SECONDS = 5 * 60; -var STATIC_STABILITY_REFRESH_INTERVAL_JITTER_WINDOW_SECONDS = 5 * 60; -var STATIC_STABILITY_DOC_URL = "https://docs.aws.amazon.com/sdkref/latest/guide/feature-static-credentials.html"; -var getExtendedInstanceMetadataCredentials = /* @__PURE__ */ __name((credentials, logger) => { - const refreshInterval = STATIC_STABILITY_REFRESH_INTERVAL_SECONDS + Math.floor(Math.random() * STATIC_STABILITY_REFRESH_INTERVAL_JITTER_WINDOW_SECONDS); - const newExpiration = new Date(Date.now() + refreshInterval * 1e3); - logger.warn( - `Attempting credential expiration extension due to a credential service availability issue. A refresh of these credentials will be attempted after ${new Date(newExpiration)}. -For more information, please visit: ` + STATIC_STABILITY_DOC_URL - ); - const originalExpiration = credentials.originalExpiration ?? credentials.expiration; - return { - ...credentials, - ...originalExpiration ? { originalExpiration } : {}, - expiration: newExpiration - }; -}, "getExtendedInstanceMetadataCredentials"); - -// src/utils/staticStabilityProvider.ts -var staticStabilityProvider = /* @__PURE__ */ __name((provider, options = {}) => { - const logger = (options == null ? void 0 : options.logger) || console; - let pastCredentials; - return async () => { - let credentials; - try { - credentials = await provider(); - if (credentials.expiration && credentials.expiration.getTime() < Date.now()) { - credentials = getExtendedInstanceMetadataCredentials(credentials, logger); - } - } catch (e) { - if (pastCredentials) { - logger.warn("Credential renew failed: ", e); - credentials = getExtendedInstanceMetadataCredentials(pastCredentials, logger); - } else { - throw e; - } - } - pastCredentials = credentials; - return credentials; - }; -}, "staticStabilityProvider"); - -// src/fromInstanceMetadata.ts -var IMDS_PATH = "/latest/meta-data/iam/security-credentials/"; -var IMDS_TOKEN_PATH = "/latest/api/token"; -var AWS_EC2_METADATA_V1_DISABLED = "AWS_EC2_METADATA_V1_DISABLED"; -var PROFILE_AWS_EC2_METADATA_V1_DISABLED = "ec2_metadata_v1_disabled"; -var X_AWS_EC2_METADATA_TOKEN = "x-aws-ec2-metadata-token"; -var fromInstanceMetadata = /* @__PURE__ */ __name((init = {}) => staticStabilityProvider(getInstanceMetadataProvider(init), { logger: init.logger }), "fromInstanceMetadata"); -var getInstanceMetadataProvider = /* @__PURE__ */ __name((init = {}) => { - let disableFetchToken = false; - const { logger, profile } = init; - const { timeout, maxRetries } = providerConfigFromInit(init); - const getCredentials = /* @__PURE__ */ __name(async (maxRetries2, options) => { - var _a; - const isImdsV1Fallback = disableFetchToken || ((_a = options.headers) == null ? void 0 : _a[X_AWS_EC2_METADATA_TOKEN]) == null; - if (isImdsV1Fallback) { - let fallbackBlockedFromProfile = false; - let fallbackBlockedFromProcessEnv = false; - const configValue = await (0, import_node_config_provider.loadConfig)( - { - environmentVariableSelector: (env) => { - const envValue = env[AWS_EC2_METADATA_V1_DISABLED]; - fallbackBlockedFromProcessEnv = !!envValue && envValue !== "false"; - if (envValue === void 0) { - throw new import_property_provider.CredentialsProviderError( - `${AWS_EC2_METADATA_V1_DISABLED} not set in env, checking config file next.`, - { logger: init.logger } - ); - } - return fallbackBlockedFromProcessEnv; - }, - configFileSelector: (profile2) => { - const profileValue = profile2[PROFILE_AWS_EC2_METADATA_V1_DISABLED]; - fallbackBlockedFromProfile = !!profileValue && profileValue !== "false"; - return fallbackBlockedFromProfile; - }, - default: false - }, - { - profile - } - )(); - if (init.ec2MetadataV1Disabled || configValue) { - const causes = []; - if (init.ec2MetadataV1Disabled) - causes.push("credential provider initialization (runtime option ec2MetadataV1Disabled)"); - if (fallbackBlockedFromProfile) - causes.push(`config file profile (${PROFILE_AWS_EC2_METADATA_V1_DISABLED})`); - if (fallbackBlockedFromProcessEnv) - causes.push(`process environment variable (${AWS_EC2_METADATA_V1_DISABLED})`); - throw new InstanceMetadataV1FallbackError( - `AWS EC2 Metadata v1 fallback has been blocked by AWS SDK configuration in the following: [${causes.join( - ", " - )}].` - ); - } - } - const imdsProfile = (await retry(async () => { - let profile2; - try { - profile2 = await getProfile(options); - } catch (err) { - if (err.statusCode === 401) { - disableFetchToken = false; + if (nsecs >= 10000) { + throw new Error("uuid.v1(): Can't create more than 10M uuids/sec") } - throw err; - } - return profile2; - }, maxRetries2)).trim(); - return retry(async () => { - let creds; - try { - creds = await getCredentialsFromProfile(imdsProfile, options, init); - } catch (err) { - if (err.statusCode === 401) { - disableFetchToken = false; - } - throw err; - } - return creds; - }, maxRetries2); - }, "getCredentials"); - return async () => { - const endpoint = await getInstanceMetadataEndpoint(); - if (disableFetchToken) { - logger == null ? void 0 : logger.debug("AWS SDK Instance Metadata", "using v1 fallback (no token fetch)"); - return getCredentials(maxRetries, { ...endpoint, timeout }); - } else { - let token; - try { - token = (await getMetadataToken({ ...endpoint, timeout })).toString(); - } catch (error) { - if ((error == null ? void 0 : error.statusCode) === 400) { - throw Object.assign(error, { - message: "EC2 Metadata token request returned error" - }); - } else if (error.message === "TimeoutError" || [403, 404, 405].includes(error.statusCode)) { - disableFetchToken = true; - } - logger == null ? void 0 : logger.debug("AWS SDK Instance Metadata", "using v1 fallback (initial)"); - return getCredentials(maxRetries, { ...endpoint, timeout }); - } - return getCredentials(maxRetries, { - ...endpoint, - headers: { - [X_AWS_EC2_METADATA_TOKEN]: token - }, - timeout - }); - } - }; -}, "getInstanceMetadataProvider"); -var getMetadataToken = /* @__PURE__ */ __name(async (options) => httpRequest({ - ...options, - path: IMDS_TOKEN_PATH, - method: "PUT", - headers: { - "x-aws-ec2-metadata-token-ttl-seconds": "21600" - } -}), "getMetadataToken"); -var getProfile = /* @__PURE__ */ __name(async (options) => (await httpRequest({ ...options, path: IMDS_PATH })).toString(), "getProfile"); -var getCredentialsFromProfile = /* @__PURE__ */ __name(async (profile, options, init) => { - const credentialsResponse = JSON.parse( - (await httpRequest({ - ...options, - path: IMDS_PATH + profile - })).toString() - ); - if (!isImdsCredentials(credentialsResponse)) { - throw new import_property_provider.CredentialsProviderError("Invalid response received from instance metadata service.", { - logger: init.logger - }); - } - return fromImdsCredentials(credentialsResponse); -}, "getCredentialsFromProfile"); -// Annotate the CommonJS export names for ESM import in node: -0 && (0); + _lastMSecs = msecs + _lastNSecs = nsecs + _clockseq = clockseq // Per 4.1.4 - Convert from unix epoch to Gregorian epoch + msecs += 12219292800000 // `time_low` + const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000 + b[i++] = (tl >>> 24) & 0xff + b[i++] = (tl >>> 16) & 0xff + b[i++] = (tl >>> 8) & 0xff + b[i++] = tl & 0xff // `time_mid` -/***/ }), + const tmh = ((msecs / 0x100000000) * 10000) & 0xfffffff + b[i++] = (tmh >>> 8) & 0xff + b[i++] = tmh & 0xff // `time_high_and_version` -/***/ 82687: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + b[i++] = ((tmh >>> 24) & 0xf) | 0x10 // include version -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - FetchHttpHandler: () => FetchHttpHandler, - keepAliveSupport: () => keepAliveSupport, - streamCollector: () => streamCollector -}); -module.exports = __toCommonJS(src_exports); - -// src/fetch-http-handler.ts -var import_protocol_http = __nccwpck_require__(64418); -var import_querystring_builder = __nccwpck_require__(68031); - -// src/request-timeout.ts -function requestTimeout(timeoutInMs = 0) { - return new Promise((resolve, reject) => { - if (timeoutInMs) { - setTimeout(() => { - const timeoutError = new Error(`Request did not complete within ${timeoutInMs} ms`); - timeoutError.name = "TimeoutError"; - reject(timeoutError); - }, timeoutInMs); - } - }); -} -__name(requestTimeout, "requestTimeout"); - -// src/fetch-http-handler.ts -var keepAliveSupport = { - supported: void 0 -}; -var _FetchHttpHandler = class _FetchHttpHandler { - /** - * @returns the input if it is an HttpHandler of any class, - * or instantiates a new instance of this handler. - */ - static create(instanceOrOptions) { - if (typeof (instanceOrOptions == null ? void 0 : instanceOrOptions.handle) === "function") { - return instanceOrOptions; - } - return new _FetchHttpHandler(instanceOrOptions); - } - constructor(options) { - if (typeof options === "function") { - this.configProvider = options().then((opts) => opts || {}); - } else { - this.config = options ?? {}; - this.configProvider = Promise.resolve(this.config); - } - if (keepAliveSupport.supported === void 0) { - keepAliveSupport.supported = Boolean( - typeof Request !== "undefined" && "keepalive" in new Request("https://[::1]") - ); - } - } - destroy() { - } - async handle(request, { abortSignal } = {}) { - if (!this.config) { - this.config = await this.configProvider; - } - const requestTimeoutInMs = this.config.requestTimeout; - const keepAlive = this.config.keepAlive === true; - const credentials = this.config.credentials; - if (abortSignal == null ? void 0 : abortSignal.aborted) { - const abortError = new Error("Request aborted"); - abortError.name = "AbortError"; - return Promise.reject(abortError); - } - let path = request.path; - const queryString = (0, import_querystring_builder.buildQueryString)(request.query || {}); - if (queryString) { - path += `?${queryString}`; - } - if (request.fragment) { - path += `#${request.fragment}`; - } - let auth = ""; - if (request.username != null || request.password != null) { - const username = request.username ?? ""; - const password = request.password ?? ""; - auth = `${username}:${password}@`; - } - const { port, method } = request; - const url = `${request.protocol}//${auth}${request.hostname}${port ? `:${port}` : ""}${path}`; - const body = method === "GET" || method === "HEAD" ? void 0 : request.body; - const requestOptions = { - body, - headers: new Headers(request.headers), - method, - credentials - }; - if (body) { - requestOptions.duplex = "half"; - } - if (typeof AbortController !== "undefined") { - requestOptions.signal = abortSignal; - } - if (keepAliveSupport.supported) { - requestOptions.keepalive = keepAlive; - } - let removeSignalEventListener = /* @__PURE__ */ __name(() => { - }, "removeSignalEventListener"); - const fetchRequest = new Request(url, requestOptions); - const raceOfPromises = [ - fetch(fetchRequest).then((response) => { - const fetchHeaders = response.headers; - const transformedHeaders = {}; - for (const pair of fetchHeaders.entries()) { - transformedHeaders[pair[0]] = pair[1]; - } - const hasReadableStream = response.body != void 0; - if (!hasReadableStream) { - return response.blob().then((body2) => ({ - response: new import_protocol_http.HttpResponse({ - headers: transformedHeaders, - reason: response.statusText, - statusCode: response.status, - body: body2 - }) - })); - } - return { - response: new import_protocol_http.HttpResponse({ - headers: transformedHeaders, - reason: response.statusText, - statusCode: response.status, - body: response.body - }) - }; - }), - requestTimeout(requestTimeoutInMs) - ]; - if (abortSignal) { - raceOfPromises.push( - new Promise((resolve, reject) => { - const onAbort = /* @__PURE__ */ __name(() => { - const abortError = new Error("Request aborted"); - abortError.name = "AbortError"; - reject(abortError); - }, "onAbort"); - if (typeof abortSignal.addEventListener === "function") { - const signal = abortSignal; - signal.addEventListener("abort", onAbort, { once: true }); - removeSignalEventListener = /* @__PURE__ */ __name(() => signal.removeEventListener("abort", onAbort), "removeSignalEventListener"); - } else { - abortSignal.onabort = onAbort; - } - }) - ); - } - return Promise.race(raceOfPromises).finally(removeSignalEventListener); - } - updateHttpClientConfig(key, value) { - this.config = void 0; - this.configProvider = this.configProvider.then((config) => { - config[key] = value; - return config; - }); - } - httpHandlerConfigs() { - return this.config ?? {}; - } -}; -__name(_FetchHttpHandler, "FetchHttpHandler"); -var FetchHttpHandler = _FetchHttpHandler; - -// src/stream-collector.ts -var import_util_base64 = __nccwpck_require__(75600); -var streamCollector = /* @__PURE__ */ __name((stream) => { - if (typeof Blob === "function" && stream instanceof Blob) { - return collectBlob(stream); - } - return collectStream(stream); -}, "streamCollector"); -async function collectBlob(blob) { - const base64 = await readToBase64(blob); - const arrayBuffer = (0, import_util_base64.fromBase64)(base64); - return new Uint8Array(arrayBuffer); -} -__name(collectBlob, "collectBlob"); -async function collectStream(stream) { - const chunks = []; - const reader = stream.getReader(); - let isDone = false; - let length = 0; - while (!isDone) { - const { done, value } = await reader.read(); - if (value) { - chunks.push(value); - length += value.length; - } - isDone = done; - } - const collected = new Uint8Array(length); - let offset = 0; - for (const chunk of chunks) { - collected.set(chunk, offset); - offset += chunk.length; - } - return collected; -} -__name(collectStream, "collectStream"); -function readToBase64(blob) { - return new Promise((resolve, reject) => { - const reader = new FileReader(); - reader.onloadend = () => { - if (reader.readyState !== 2) { - return reject(new Error("Reader aborted too early")); - } - const result = reader.result ?? ""; - const commaIndex = result.indexOf(","); - const dataOffset = commaIndex > -1 ? commaIndex + 1 : result.length; - resolve(result.substring(dataOffset)); - }; - reader.onabort = () => reject(new Error("Read aborted")); - reader.onerror = () => reject(reader.error); - reader.readAsDataURL(blob); - }); -} -__name(readToBase64, "readToBase64"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 3081: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - Hash: () => Hash -}); -module.exports = __toCommonJS(src_exports); -var import_util_buffer_from = __nccwpck_require__(31381); -var import_util_utf8 = __nccwpck_require__(41895); -var import_buffer = __nccwpck_require__(14300); -var import_crypto = __nccwpck_require__(6113); -var _Hash = class _Hash { - constructor(algorithmIdentifier, secret) { - this.algorithmIdentifier = algorithmIdentifier; - this.secret = secret; - this.reset(); - } - update(toHash, encoding) { - this.hash.update((0, import_util_utf8.toUint8Array)(castSourceData(toHash, encoding))); - } - digest() { - return Promise.resolve(this.hash.digest()); - } - reset() { - this.hash = this.secret ? (0, import_crypto.createHmac)(this.algorithmIdentifier, castSourceData(this.secret)) : (0, import_crypto.createHash)(this.algorithmIdentifier); - } -}; -__name(_Hash, "Hash"); -var Hash = _Hash; -function castSourceData(toCast, encoding) { - if (import_buffer.Buffer.isBuffer(toCast)) { - return toCast; - } - if (typeof toCast === "string") { - return (0, import_util_buffer_from.fromString)(toCast, encoding); - } - if (ArrayBuffer.isView(toCast)) { - return (0, import_util_buffer_from.fromArrayBuffer)(toCast.buffer, toCast.byteOffset, toCast.byteLength); - } - return (0, import_util_buffer_from.fromArrayBuffer)(toCast); -} -__name(castSourceData, "castSourceData"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 10780: -/***/ ((module) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - isArrayBuffer: () => isArrayBuffer -}); -module.exports = __toCommonJS(src_exports); -var isArrayBuffer = /* @__PURE__ */ __name((arg) => typeof ArrayBuffer === "function" && arg instanceof ArrayBuffer || Object.prototype.toString.call(arg) === "[object ArrayBuffer]", "isArrayBuffer"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 82800: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - contentLengthMiddleware: () => contentLengthMiddleware, - contentLengthMiddlewareOptions: () => contentLengthMiddlewareOptions, - getContentLengthPlugin: () => getContentLengthPlugin -}); -module.exports = __toCommonJS(src_exports); -var import_protocol_http = __nccwpck_require__(64418); -var CONTENT_LENGTH_HEADER = "content-length"; -function contentLengthMiddleware(bodyLengthChecker) { - return (next) => async (args) => { - const request = args.request; - if (import_protocol_http.HttpRequest.isInstance(request)) { - const { body, headers } = request; - if (body && Object.keys(headers).map((str) => str.toLowerCase()).indexOf(CONTENT_LENGTH_HEADER) === -1) { - try { - const length = bodyLengthChecker(body); - request.headers = { - ...request.headers, - [CONTENT_LENGTH_HEADER]: String(length) - }; - } catch (error) { + b[i++] = (tmh >>> 16) & 0xff // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) + + b[i++] = (clockseq >>> 8) | 0x80 // `clock_seq_low` + + b[i++] = clockseq & 0xff // `node` + + for (let n = 0; n < 6; ++n) { + b[i + n] = node[n] } + + return buf || (0, _stringify.unsafeStringify)(b) } - } - return next({ - ...args, - request - }); - }; -} -__name(contentLengthMiddleware, "contentLengthMiddleware"); -var contentLengthMiddlewareOptions = { - step: "build", - tags: ["SET_CONTENT_LENGTH", "CONTENT_LENGTH"], - name: "contentLengthMiddleware", - override: true -}; -var getContentLengthPlugin = /* @__PURE__ */ __name((options) => ({ - applyToStack: (clientStack) => { - clientStack.add(contentLengthMiddleware(options.bodyLengthChecker), contentLengthMiddlewareOptions); - } -}), "getContentLengthPlugin"); -// Annotate the CommonJS export names for ESM import in node: -0 && (0); + var _default = v1 + exports['default'] = _default + /***/ + }, + /***/ 9465: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -/***/ }), + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 -/***/ 31518: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + var _v = _interopRequireDefault(__nccwpck_require__(2568)) -"use strict"; + var _md = _interopRequireDefault(__nccwpck_require__(11380)) -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getEndpointFromConfig = void 0; -const node_config_provider_1 = __nccwpck_require__(33461); -const getEndpointUrlConfig_1 = __nccwpck_require__(7574); -const getEndpointFromConfig = async (serviceId) => (0, node_config_provider_1.loadConfig)((0, getEndpointUrlConfig_1.getEndpointUrlConfig)(serviceId !== null && serviceId !== void 0 ? serviceId : ""))(); -exports.getEndpointFromConfig = getEndpointFromConfig; + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } + const v3 = (0, _v.default)('v3', 0x30, _md.default) + var _default = v3 + exports['default'] = _default -/***/ }), + /***/ + }, -/***/ 7574: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + /***/ 2568: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -"use strict"; + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports.URL = exports.DNS = void 0 + exports['default'] = v35 -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getEndpointUrlConfig = void 0; -const shared_ini_file_loader_1 = __nccwpck_require__(43507); -const ENV_ENDPOINT_URL = "AWS_ENDPOINT_URL"; -const CONFIG_ENDPOINT_URL = "endpoint_url"; -const getEndpointUrlConfig = (serviceId) => ({ - environmentVariableSelector: (env) => { - const serviceSuffixParts = serviceId.split(" ").map((w) => w.toUpperCase()); - const serviceEndpointUrl = env[[ENV_ENDPOINT_URL, ...serviceSuffixParts].join("_")]; - if (serviceEndpointUrl) - return serviceEndpointUrl; - const endpointUrl = env[ENV_ENDPOINT_URL]; - if (endpointUrl) - return endpointUrl; - return undefined; - }, - configFileSelector: (profile, config) => { - if (config && profile.services) { - const servicesSection = config[["services", profile.services].join(shared_ini_file_loader_1.CONFIG_PREFIX_SEPARATOR)]; - if (servicesSection) { - const servicePrefixParts = serviceId.split(" ").map((w) => w.toLowerCase()); - const endpointUrl = servicesSection[[servicePrefixParts.join("_"), CONFIG_ENDPOINT_URL].join(shared_ini_file_loader_1.CONFIG_PREFIX_SEPARATOR)]; - if (endpointUrl) - return endpointUrl; - } - } - const endpointUrl = profile[CONFIG_ENDPOINT_URL]; - if (endpointUrl) - return endpointUrl; - return undefined; - }, - default: undefined, -}); -exports.getEndpointUrlConfig = getEndpointUrlConfig; - - -/***/ }), - -/***/ 82918: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - endpointMiddleware: () => endpointMiddleware, - endpointMiddlewareOptions: () => endpointMiddlewareOptions, - getEndpointFromInstructions: () => getEndpointFromInstructions, - getEndpointPlugin: () => getEndpointPlugin, - resolveEndpointConfig: () => resolveEndpointConfig, - resolveParams: () => resolveParams, - toEndpointV1: () => toEndpointV1 -}); -module.exports = __toCommonJS(src_exports); - -// src/service-customizations/s3.ts -var resolveParamsForS3 = /* @__PURE__ */ __name(async (endpointParams) => { - const bucket = (endpointParams == null ? void 0 : endpointParams.Bucket) || ""; - if (typeof endpointParams.Bucket === "string") { - endpointParams.Bucket = bucket.replace(/#/g, encodeURIComponent("#")).replace(/\?/g, encodeURIComponent("?")); - } - if (isArnBucketName(bucket)) { - if (endpointParams.ForcePathStyle === true) { - throw new Error("Path-style addressing cannot be used with ARN buckets"); - } - } else if (!isDnsCompatibleBucketName(bucket) || bucket.indexOf(".") !== -1 && !String(endpointParams.Endpoint).startsWith("http:") || bucket.toLowerCase() !== bucket || bucket.length < 3) { - endpointParams.ForcePathStyle = true; - } - if (endpointParams.DisableMultiRegionAccessPoints) { - endpointParams.disableMultiRegionAccessPoints = true; - endpointParams.DisableMRAP = true; - } - return endpointParams; -}, "resolveParamsForS3"); -var DOMAIN_PATTERN = /^[a-z0-9][a-z0-9\.\-]{1,61}[a-z0-9]$/; -var IP_ADDRESS_PATTERN = /(\d+\.){3}\d+/; -var DOTS_PATTERN = /\.\./; -var isDnsCompatibleBucketName = /* @__PURE__ */ __name((bucketName) => DOMAIN_PATTERN.test(bucketName) && !IP_ADDRESS_PATTERN.test(bucketName) && !DOTS_PATTERN.test(bucketName), "isDnsCompatibleBucketName"); -var isArnBucketName = /* @__PURE__ */ __name((bucketName) => { - const [arn, partition, service, , , bucket] = bucketName.split(":"); - const isArn = arn === "arn" && bucketName.split(":").length >= 6; - const isValidArn = Boolean(isArn && partition && service && bucket); - if (isArn && !isValidArn) { - throw new Error(`Invalid ARN: ${bucketName} was an invalid ARN.`); - } - return isValidArn; -}, "isArnBucketName"); - -// src/adaptors/createConfigValueProvider.ts -var createConfigValueProvider = /* @__PURE__ */ __name((configKey, canonicalEndpointParamKey, config) => { - const configProvider = /* @__PURE__ */ __name(async () => { - const configValue = config[configKey] ?? config[canonicalEndpointParamKey]; - if (typeof configValue === "function") { - return configValue(); - } - return configValue; - }, "configProvider"); - if (configKey === "credentialScope" || canonicalEndpointParamKey === "CredentialScope") { - return async () => { - const credentials = typeof config.credentials === "function" ? await config.credentials() : config.credentials; - const configValue = (credentials == null ? void 0 : credentials.credentialScope) ?? (credentials == null ? void 0 : credentials.CredentialScope); - return configValue; - }; - } - if (configKey === "accountId" || canonicalEndpointParamKey === "AccountId") { - return async () => { - const credentials = typeof config.credentials === "function" ? await config.credentials() : config.credentials; - const configValue = (credentials == null ? void 0 : credentials.accountId) ?? (credentials == null ? void 0 : credentials.AccountId); - return configValue; - }; - } - if (configKey === "endpoint" || canonicalEndpointParamKey === "endpoint") { - return async () => { - const endpoint = await configProvider(); - if (endpoint && typeof endpoint === "object") { - if ("url" in endpoint) { - return endpoint.url.href; - } - if ("hostname" in endpoint) { - const { protocol, hostname, port, path } = endpoint; - return `${protocol}//${hostname}${port ? ":" + port : ""}${path}`; - } - } - return endpoint; - }; - } - return configProvider; -}, "createConfigValueProvider"); - -// src/adaptors/getEndpointFromInstructions.ts -var import_getEndpointFromConfig = __nccwpck_require__(31518); - -// src/adaptors/toEndpointV1.ts -var import_url_parser = __nccwpck_require__(14681); -var toEndpointV1 = /* @__PURE__ */ __name((endpoint) => { - if (typeof endpoint === "object") { - if ("url" in endpoint) { - return (0, import_url_parser.parseUrl)(endpoint.url); - } - return endpoint; - } - return (0, import_url_parser.parseUrl)(endpoint); -}, "toEndpointV1"); - -// src/adaptors/getEndpointFromInstructions.ts -var getEndpointFromInstructions = /* @__PURE__ */ __name(async (commandInput, instructionsSupplier, clientConfig, context) => { - if (!clientConfig.endpoint) { - let endpointFromConfig; - if (clientConfig.serviceConfiguredEndpoint) { - endpointFromConfig = await clientConfig.serviceConfiguredEndpoint(); - } else { - endpointFromConfig = await (0, import_getEndpointFromConfig.getEndpointFromConfig)(clientConfig.serviceId); - } - if (endpointFromConfig) { - clientConfig.endpoint = () => Promise.resolve(toEndpointV1(endpointFromConfig)); - } - } - const endpointParams = await resolveParams(commandInput, instructionsSupplier, clientConfig); - if (typeof clientConfig.endpointProvider !== "function") { - throw new Error("config.endpointProvider is not set."); - } - const endpoint = clientConfig.endpointProvider(endpointParams, context); - return endpoint; -}, "getEndpointFromInstructions"); -var resolveParams = /* @__PURE__ */ __name(async (commandInput, instructionsSupplier, clientConfig) => { - var _a; - const endpointParams = {}; - const instructions = ((_a = instructionsSupplier == null ? void 0 : instructionsSupplier.getEndpointParameterInstructions) == null ? void 0 : _a.call(instructionsSupplier)) || {}; - for (const [name, instruction] of Object.entries(instructions)) { - switch (instruction.type) { - case "staticContextParams": - endpointParams[name] = instruction.value; - break; - case "contextParams": - endpointParams[name] = commandInput[instruction.name]; - break; - case "clientContextParams": - case "builtInParams": - endpointParams[name] = await createConfigValueProvider(instruction.name, name, clientConfig)(); - break; - default: - throw new Error("Unrecognized endpoint parameter instruction: " + JSON.stringify(instruction)); - } - } - if (Object.keys(instructions).length === 0) { - Object.assign(endpointParams, clientConfig); - } - if (String(clientConfig.serviceId).toLowerCase() === "s3") { - await resolveParamsForS3(endpointParams); - } - return endpointParams; -}, "resolveParams"); - -// src/endpointMiddleware.ts -var import_util_middleware = __nccwpck_require__(2390); -var endpointMiddleware = /* @__PURE__ */ __name(({ - config, - instructions -}) => { - return (next, context) => async (args) => { - var _a, _b, _c; - const endpoint = await getEndpointFromInstructions( - args.input, - { - getEndpointParameterInstructions() { - return instructions; - } - }, - { ...config }, - context - ); - context.endpointV2 = endpoint; - context.authSchemes = (_a = endpoint.properties) == null ? void 0 : _a.authSchemes; - const authScheme = (_b = context.authSchemes) == null ? void 0 : _b[0]; - if (authScheme) { - context["signing_region"] = authScheme.signingRegion; - context["signing_service"] = authScheme.signingName; - const smithyContext = (0, import_util_middleware.getSmithyContext)(context); - const httpAuthOption = (_c = smithyContext == null ? void 0 : smithyContext.selectedHttpAuthScheme) == null ? void 0 : _c.httpAuthOption; - if (httpAuthOption) { - httpAuthOption.signingProperties = Object.assign( - httpAuthOption.signingProperties || {}, - { - signing_region: authScheme.signingRegion, - signingRegion: authScheme.signingRegion, - signing_service: authScheme.signingName, - signingName: authScheme.signingName, - signingRegionSet: authScheme.signingRegionSet - }, - authScheme.properties - ); + var _stringify = __nccwpck_require__(79618) + + var _parse = _interopRequireDefault(__nccwpck_require__(40086)) + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } } - } - return next({ - ...args - }); - }; -}, "endpointMiddleware"); - -// src/getEndpointPlugin.ts -var import_middleware_serde = __nccwpck_require__(81238); -var endpointMiddlewareOptions = { - step: "serialize", - tags: ["ENDPOINT_PARAMETERS", "ENDPOINT_V2", "ENDPOINT"], - name: "endpointV2Middleware", - override: true, - relation: "before", - toMiddleware: import_middleware_serde.serializerMiddlewareOption.name -}; -var getEndpointPlugin = /* @__PURE__ */ __name((config, instructions) => ({ - applyToStack: (clientStack) => { - clientStack.addRelativeTo( - endpointMiddleware({ - config, - instructions - }), - endpointMiddlewareOptions - ); - } -}), "getEndpointPlugin"); - -// src/resolveEndpointConfig.ts - -var import_getEndpointFromConfig2 = __nccwpck_require__(31518); -var resolveEndpointConfig = /* @__PURE__ */ __name((input) => { - const tls = input.tls ?? true; - const { endpoint } = input; - const customEndpointProvider = endpoint != null ? async () => toEndpointV1(await (0, import_util_middleware.normalizeProvider)(endpoint)()) : void 0; - const isCustomEndpoint = !!endpoint; - const resolvedConfig = { - ...input, - endpoint: customEndpointProvider, - tls, - isCustomEndpoint, - useDualstackEndpoint: (0, import_util_middleware.normalizeProvider)(input.useDualstackEndpoint ?? false), - useFipsEndpoint: (0, import_util_middleware.normalizeProvider)(input.useFipsEndpoint ?? false) - }; - let configuredEndpointPromise = void 0; - resolvedConfig.serviceConfiguredEndpoint = async () => { - if (input.serviceId && !configuredEndpointPromise) { - configuredEndpointPromise = (0, import_getEndpointFromConfig2.getEndpointFromConfig)(input.serviceId); - } - return configuredEndpointPromise; - }; - return resolvedConfig; -}, "resolveEndpointConfig"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 96039: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - AdaptiveRetryStrategy: () => AdaptiveRetryStrategy, - CONFIG_MAX_ATTEMPTS: () => CONFIG_MAX_ATTEMPTS, - CONFIG_RETRY_MODE: () => CONFIG_RETRY_MODE, - ENV_MAX_ATTEMPTS: () => ENV_MAX_ATTEMPTS, - ENV_RETRY_MODE: () => ENV_RETRY_MODE, - NODE_MAX_ATTEMPT_CONFIG_OPTIONS: () => NODE_MAX_ATTEMPT_CONFIG_OPTIONS, - NODE_RETRY_MODE_CONFIG_OPTIONS: () => NODE_RETRY_MODE_CONFIG_OPTIONS, - StandardRetryStrategy: () => StandardRetryStrategy, - defaultDelayDecider: () => defaultDelayDecider, - defaultRetryDecider: () => defaultRetryDecider, - getOmitRetryHeadersPlugin: () => getOmitRetryHeadersPlugin, - getRetryAfterHint: () => getRetryAfterHint, - getRetryPlugin: () => getRetryPlugin, - omitRetryHeadersMiddleware: () => omitRetryHeadersMiddleware, - omitRetryHeadersMiddlewareOptions: () => omitRetryHeadersMiddlewareOptions, - resolveRetryConfig: () => resolveRetryConfig, - retryMiddleware: () => retryMiddleware, - retryMiddlewareOptions: () => retryMiddlewareOptions -}); -module.exports = __toCommonJS(src_exports); - -// src/AdaptiveRetryStrategy.ts - - -// src/StandardRetryStrategy.ts -var import_protocol_http = __nccwpck_require__(64418); - - -var import_uuid = __nccwpck_require__(7761); - -// src/defaultRetryQuota.ts -var import_util_retry = __nccwpck_require__(84902); -var getDefaultRetryQuota = /* @__PURE__ */ __name((initialRetryTokens, options) => { - const MAX_CAPACITY = initialRetryTokens; - const noRetryIncrement = (options == null ? void 0 : options.noRetryIncrement) ?? import_util_retry.NO_RETRY_INCREMENT; - const retryCost = (options == null ? void 0 : options.retryCost) ?? import_util_retry.RETRY_COST; - const timeoutRetryCost = (options == null ? void 0 : options.timeoutRetryCost) ?? import_util_retry.TIMEOUT_RETRY_COST; - let availableCapacity = initialRetryTokens; - const getCapacityAmount = /* @__PURE__ */ __name((error) => error.name === "TimeoutError" ? timeoutRetryCost : retryCost, "getCapacityAmount"); - const hasRetryTokens = /* @__PURE__ */ __name((error) => getCapacityAmount(error) <= availableCapacity, "hasRetryTokens"); - const retrieveRetryTokens = /* @__PURE__ */ __name((error) => { - if (!hasRetryTokens(error)) { - throw new Error("No retry token available"); - } - const capacityAmount = getCapacityAmount(error); - availableCapacity -= capacityAmount; - return capacityAmount; - }, "retrieveRetryTokens"); - const releaseRetryTokens = /* @__PURE__ */ __name((capacityReleaseAmount) => { - availableCapacity += capacityReleaseAmount ?? noRetryIncrement; - availableCapacity = Math.min(availableCapacity, MAX_CAPACITY); - }, "releaseRetryTokens"); - return Object.freeze({ - hasRetryTokens, - retrieveRetryTokens, - releaseRetryTokens - }); -}, "getDefaultRetryQuota"); - -// src/delayDecider.ts - -var defaultDelayDecider = /* @__PURE__ */ __name((delayBase, attempts) => Math.floor(Math.min(import_util_retry.MAXIMUM_RETRY_DELAY, Math.random() * 2 ** attempts * delayBase)), "defaultDelayDecider"); - -// src/retryDecider.ts -var import_service_error_classification = __nccwpck_require__(6375); -var defaultRetryDecider = /* @__PURE__ */ __name((error) => { - if (!error) { - return false; - } - 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); -}, "defaultRetryDecider"); - -// src/util.ts -var asSdkError = /* @__PURE__ */ __name((error) => { - if (error instanceof Error) - return error; - if (error instanceof Object) - return Object.assign(new Error(), error); - if (typeof error === "string") - return new Error(error); - return new Error(`AWS SDK error wrapper for ${error}`); -}, "asSdkError"); - -// src/StandardRetryStrategy.ts -var _StandardRetryStrategy = class _StandardRetryStrategy { - constructor(maxAttemptsProvider, options) { - this.maxAttemptsProvider = maxAttemptsProvider; - this.mode = import_util_retry.RETRY_MODES.STANDARD; - this.retryDecider = (options == null ? void 0 : options.retryDecider) ?? defaultRetryDecider; - this.delayDecider = (options == null ? void 0 : options.delayDecider) ?? defaultDelayDecider; - this.retryQuota = (options == null ? void 0 : options.retryQuota) ?? getDefaultRetryQuota(import_util_retry.INITIAL_RETRY_TOKENS); - } - shouldRetry(error, attempts, maxAttempts) { - return attempts < maxAttempts && this.retryDecider(error) && this.retryQuota.hasRetryTokens(error); - } - async getMaxAttempts() { - let maxAttempts; - try { - maxAttempts = await this.maxAttemptsProvider(); - } catch (error) { - maxAttempts = import_util_retry.DEFAULT_MAX_ATTEMPTS; - } - return maxAttempts; - } - async retry(next, args, options) { - let retryTokenAmount; - let attempts = 0; - let totalDelay = 0; - const maxAttempts = await this.getMaxAttempts(); - const { request } = args; - if (import_protocol_http.HttpRequest.isInstance(request)) { - request.headers[import_util_retry.INVOCATION_ID_HEADER] = (0, import_uuid.v4)(); - } - while (true) { - try { - if (import_protocol_http.HttpRequest.isInstance(request)) { - request.headers[import_util_retry.REQUEST_HEADER] = `attempt=${attempts + 1}; max=${maxAttempts}`; - } - if (options == null ? void 0 : options.beforeRequest) { - await options.beforeRequest(); - } - const { response, output } = await next(args); - if (options == null ? void 0 : options.afterRequest) { - options.afterRequest(response); - } - this.retryQuota.releaseRetryTokens(retryTokenAmount); - output.$metadata.attempts = attempts + 1; - output.$metadata.totalRetryDelay = totalDelay; - return { response, output }; - } catch (e) { - const err = asSdkError(e); - attempts++; - if (this.shouldRetry(err, attempts, maxAttempts)) { - retryTokenAmount = this.retryQuota.retrieveRetryTokens(err); - const delayFromDecider = this.delayDecider( - (0, import_service_error_classification.isThrottlingError)(err) ? import_util_retry.THROTTLING_RETRY_DELAY_BASE : import_util_retry.DEFAULT_RETRY_DELAY_BASE, - attempts - ); - const delayFromResponse = getDelayFromRetryAfterHeader(err.$response); - const delay = Math.max(delayFromResponse || 0, delayFromDecider); - totalDelay += delay; - await new Promise((resolve) => setTimeout(resolve, delay)); - continue; - } - if (!err.$metadata) { - err.$metadata = {}; - } - err.$metadata.attempts = attempts; - err.$metadata.totalRetryDelay = totalDelay; - throw err; + + function stringToBytes(str) { + str = unescape(encodeURIComponent(str)) // UTF8 escape + + const bytes = [] + + for (let i = 0; i < str.length; ++i) { + bytes.push(str.charCodeAt(i)) + } + + return bytes } - } - } -}; -__name(_StandardRetryStrategy, "StandardRetryStrategy"); -var StandardRetryStrategy = _StandardRetryStrategy; -var getDelayFromRetryAfterHeader = /* @__PURE__ */ __name((response) => { - if (!import_protocol_http.HttpResponse.isInstance(response)) - return; - const retryAfterHeaderName = Object.keys(response.headers).find((key) => key.toLowerCase() === "retry-after"); - if (!retryAfterHeaderName) - return; - const retryAfter = response.headers[retryAfterHeaderName]; - const retryAfterSeconds = Number(retryAfter); - if (!Number.isNaN(retryAfterSeconds)) - return retryAfterSeconds * 1e3; - const retryAfterDate = new Date(retryAfter); - return retryAfterDate.getTime() - Date.now(); -}, "getDelayFromRetryAfterHeader"); - -// src/AdaptiveRetryStrategy.ts -var _AdaptiveRetryStrategy = class _AdaptiveRetryStrategy extends StandardRetryStrategy { - constructor(maxAttemptsProvider, options) { - const { rateLimiter, ...superOptions } = options ?? {}; - super(maxAttemptsProvider, superOptions); - this.rateLimiter = rateLimiter ?? new import_util_retry.DefaultRateLimiter(); - this.mode = import_util_retry.RETRY_MODES.ADAPTIVE; - } - async retry(next, args) { - return super.retry(next, args, { - beforeRequest: async () => { - return this.rateLimiter.getSendToken(); - }, - afterRequest: (response) => { - this.rateLimiter.updateClientSendingRate(response); - } - }); - } -}; -__name(_AdaptiveRetryStrategy, "AdaptiveRetryStrategy"); -var AdaptiveRetryStrategy = _AdaptiveRetryStrategy; - -// src/configurations.ts -var import_util_middleware = __nccwpck_require__(2390); - -var ENV_MAX_ATTEMPTS = "AWS_MAX_ATTEMPTS"; -var CONFIG_MAX_ATTEMPTS = "max_attempts"; -var NODE_MAX_ATTEMPT_CONFIG_OPTIONS = { - environmentVariableSelector: (env) => { - const value = env[ENV_MAX_ATTEMPTS]; - if (!value) - return void 0; - const maxAttempt = parseInt(value); - if (Number.isNaN(maxAttempt)) { - throw new Error(`Environment variable ${ENV_MAX_ATTEMPTS} mast be a number, got "${value}"`); - } - return maxAttempt; - }, - configFileSelector: (profile) => { - const value = profile[CONFIG_MAX_ATTEMPTS]; - if (!value) - return void 0; - const maxAttempt = parseInt(value); - if (Number.isNaN(maxAttempt)) { - throw new Error(`Shared config file entry ${CONFIG_MAX_ATTEMPTS} mast be a number, got "${value}"`); - } - return maxAttempt; - }, - default: import_util_retry.DEFAULT_MAX_ATTEMPTS -}; -var resolveRetryConfig = /* @__PURE__ */ __name((input) => { - const { retryStrategy } = input; - const maxAttempts = (0, import_util_middleware.normalizeProvider)(input.maxAttempts ?? import_util_retry.DEFAULT_MAX_ATTEMPTS); - return { - ...input, - maxAttempts, - retryStrategy: async () => { - if (retryStrategy) { - return retryStrategy; - } - const retryMode = await (0, import_util_middleware.normalizeProvider)(input.retryMode)(); - if (retryMode === import_util_retry.RETRY_MODES.ADAPTIVE) { - return new import_util_retry.AdaptiveRetryStrategy(maxAttempts); - } - return new import_util_retry.StandardRetryStrategy(maxAttempts); - } - }; -}, "resolveRetryConfig"); -var ENV_RETRY_MODE = "AWS_RETRY_MODE"; -var CONFIG_RETRY_MODE = "retry_mode"; -var NODE_RETRY_MODE_CONFIG_OPTIONS = { - environmentVariableSelector: (env) => env[ENV_RETRY_MODE], - configFileSelector: (profile) => profile[CONFIG_RETRY_MODE], - default: import_util_retry.DEFAULT_RETRY_MODE -}; - -// src/omitRetryHeadersMiddleware.ts - - -var omitRetryHeadersMiddleware = /* @__PURE__ */ __name(() => (next) => async (args) => { - const { request } = args; - if (import_protocol_http.HttpRequest.isInstance(request)) { - delete request.headers[import_util_retry.INVOCATION_ID_HEADER]; - delete request.headers[import_util_retry.REQUEST_HEADER]; - } - return next(args); -}, "omitRetryHeadersMiddleware"); -var omitRetryHeadersMiddlewareOptions = { - name: "omitRetryHeadersMiddleware", - tags: ["RETRY", "HEADERS", "OMIT_RETRY_HEADERS"], - relation: "before", - toMiddleware: "awsAuthMiddleware", - override: true -}; -var getOmitRetryHeadersPlugin = /* @__PURE__ */ __name((options) => ({ - applyToStack: (clientStack) => { - clientStack.addRelativeTo(omitRetryHeadersMiddleware(), omitRetryHeadersMiddlewareOptions); - } -}), "getOmitRetryHeadersPlugin"); -// src/retryMiddleware.ts + const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8' + exports.DNS = DNS + const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8' + exports.URL = URL + function v35(name, version, hashfunc) { + function generateUUID(value, namespace, buf, offset) { + var _namespace + + if (typeof value === 'string') { + value = stringToBytes(value) + } -var import_smithy_client = __nccwpck_require__(63570); + if (typeof namespace === 'string') { + namespace = (0, _parse.default)(namespace) + } + if ( + ((_namespace = namespace) === null || _namespace === void 0 + ? void 0 + : _namespace.length) !== 16 + ) { + throw TypeError( + 'Namespace must be array-like (16 iterable integer values, 0-255)' + ) + } // Compute hash of namespace and value, Per 4.3 + // Future: Use spread syntax when supported on all platforms, e.g. `bytes = + // hashfunc([...namespace, ... value])` + + let bytes = new Uint8Array(16 + value.length) + bytes.set(namespace) + bytes.set(value, namespace.length) + bytes = hashfunc(bytes) + bytes[6] = (bytes[6] & 0x0f) | version + bytes[8] = (bytes[8] & 0x3f) | 0x80 + + if (buf) { + offset = offset || 0 + + for (let i = 0; i < 16; ++i) { + buf[offset + i] = bytes[i] + } -var import_isStreamingPayload = __nccwpck_require__(18977); -var retryMiddleware = /* @__PURE__ */ __name((options) => (next, context) => async (args) => { - var _a; - let retryStrategy = await options.retryStrategy(); - const maxAttempts = await options.maxAttempts(); - if (isRetryStrategyV2(retryStrategy)) { - retryStrategy = retryStrategy; - let retryToken = await retryStrategy.acquireInitialRetryToken(context["partition_id"]); - let lastError = new Error(); - let attempts = 0; - let totalRetryDelay = 0; - const { request } = args; - const isRequest = import_protocol_http.HttpRequest.isInstance(request); - if (isRequest) { - request.headers[import_util_retry.INVOCATION_ID_HEADER] = (0, import_uuid.v4)(); - } - while (true) { - try { - if (isRequest) { - request.headers[import_util_retry.REQUEST_HEADER] = `attempt=${attempts + 1}; max=${maxAttempts}`; - } - const { response, output } = await next(args); - retryStrategy.recordSuccess(retryToken); - output.$metadata.attempts = attempts + 1; - output.$metadata.totalRetryDelay = totalRetryDelay; - return { response, output }; - } catch (e) { - const retryErrorInfo = getRetryErrorInfo(e); - lastError = asSdkError(e); - if (isRequest && (0, import_isStreamingPayload.isStreamingPayload)(request)) { - (_a = context.logger instanceof import_smithy_client.NoOpLogger ? console : context.logger) == null ? void 0 : _a.warn( - "An error was encountered in a non-retryable streaming request." - ); - throw lastError; - } - try { - retryToken = await retryStrategy.refreshRetryTokenForRetry(retryToken, retryErrorInfo); - } catch (refreshError) { - if (!lastError.$metadata) { - lastError.$metadata = {}; + return buf } - lastError.$metadata.attempts = attempts + 1; - lastError.$metadata.totalRetryDelay = totalRetryDelay; - throw lastError; - } - attempts = retryToken.getRetryCount(); - const delay = retryToken.getRetryDelay(); - totalRetryDelay += delay; - await new Promise((resolve) => setTimeout(resolve, delay)); - } - } - } else { - retryStrategy = retryStrategy; - if (retryStrategy == null ? void 0 : retryStrategy.mode) - context.userAgent = [...context.userAgent || [], ["cfg/retry-mode", retryStrategy.mode]]; - return retryStrategy.retry(next, args); - } -}, "retryMiddleware"); -var isRetryStrategyV2 = /* @__PURE__ */ __name((retryStrategy) => typeof retryStrategy.acquireInitialRetryToken !== "undefined" && typeof retryStrategy.refreshRetryTokenForRetry !== "undefined" && typeof retryStrategy.recordSuccess !== "undefined", "isRetryStrategyV2"); -var getRetryErrorInfo = /* @__PURE__ */ __name((error) => { - const errorInfo = { - error, - errorType: getRetryErrorType(error) - }; - const retryAfterHint = getRetryAfterHint(error.$response); - if (retryAfterHint) { - errorInfo.retryAfterHint = retryAfterHint; - } - return errorInfo; -}, "getRetryErrorInfo"); -var getRetryErrorType = /* @__PURE__ */ __name((error) => { - if ((0, import_service_error_classification.isThrottlingError)(error)) - return "THROTTLING"; - if ((0, import_service_error_classification.isTransientError)(error)) - return "TRANSIENT"; - if ((0, import_service_error_classification.isServerError)(error)) - return "SERVER_ERROR"; - return "CLIENT_ERROR"; -}, "getRetryErrorType"); -var retryMiddlewareOptions = { - name: "retryMiddleware", - tags: ["RETRY"], - step: "finalizeRequest", - priority: "high", - override: true -}; -var getRetryPlugin = /* @__PURE__ */ __name((options) => ({ - applyToStack: (clientStack) => { - clientStack.add(retryMiddleware(options), retryMiddlewareOptions); - } -}), "getRetryPlugin"); -var getRetryAfterHint = /* @__PURE__ */ __name((response) => { - if (!import_protocol_http.HttpResponse.isInstance(response)) - return; - const retryAfterHeaderName = Object.keys(response.headers).find((key) => key.toLowerCase() === "retry-after"); - if (!retryAfterHeaderName) - return; - const retryAfter = response.headers[retryAfterHeaderName]; - const retryAfterSeconds = Number(retryAfter); - if (!Number.isNaN(retryAfterSeconds)) - return new Date(retryAfterSeconds * 1e3); - const retryAfterDate = new Date(retryAfter); - return retryAfterDate; -}, "getRetryAfterHint"); -// Annotate the CommonJS export names for ESM import in node: -0 && (0); + return (0, _stringify.unsafeStringify)(bytes) + } // Function#name is not settable on some platforms (#270) + + try { + generateUUID.name = name // eslint-disable-next-line no-empty + } catch (err) {} // For CommonJS default export support + generateUUID.DNS = DNS + generateUUID.URL = URL + return generateUUID + } + /***/ + }, -/***/ }), + /***/ 86001: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -/***/ 18977: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 -"use strict"; + var _native = _interopRequireDefault(__nccwpck_require__(34672)) -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.isStreamingPayload = void 0; -const stream_1 = __nccwpck_require__(12781); -const isStreamingPayload = (request) => (request === null || request === void 0 ? void 0 : request.body) instanceof stream_1.Readable || - (typeof ReadableStream !== "undefined" && (request === null || request === void 0 ? void 0 : request.body) instanceof ReadableStream); -exports.isStreamingPayload = isStreamingPayload; + var _rng = _interopRequireDefault(__nccwpck_require__(68136)) + var _stringify = __nccwpck_require__(79618) -/***/ }), + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } -/***/ 7761: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + function v4(options, buf, offset) { + if (_native.default.randomUUID && !buf && !options) { + return _native.default.randomUUID() + } -"use strict"; + options = options || {} + const rnds = options.random || (options.rng || _rng.default)() // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -Object.defineProperty(exports, "NIL", ({ - enumerable: true, - get: function () { - return _nil.default; - } -})); -Object.defineProperty(exports, "parse", ({ - enumerable: true, - get: function () { - return _parse.default; - } -})); -Object.defineProperty(exports, "stringify", ({ - enumerable: true, - get: function () { - return _stringify.default; - } -})); -Object.defineProperty(exports, "v1", ({ - enumerable: true, - get: function () { - return _v.default; - } -})); -Object.defineProperty(exports, "v3", ({ - enumerable: true, - get: function () { - return _v2.default; - } -})); -Object.defineProperty(exports, "v4", ({ - enumerable: true, - get: function () { - return _v3.default; - } -})); -Object.defineProperty(exports, "v5", ({ - enumerable: true, - get: function () { - return _v4.default; - } -})); -Object.defineProperty(exports, "validate", ({ - enumerable: true, - get: function () { - return _validate.default; - } -})); -Object.defineProperty(exports, "version", ({ - enumerable: true, - get: function () { - return _version.default; - } -})); + rnds[6] = (rnds[6] & 0x0f) | 0x40 + rnds[8] = (rnds[8] & 0x3f) | 0x80 // Copy bytes to buffer, if provided + + if (buf) { + offset = offset || 0 -var _v = _interopRequireDefault(__nccwpck_require__(36310)); + for (let i = 0; i < 16; ++i) { + buf[offset + i] = rnds[i] + } -var _v2 = _interopRequireDefault(__nccwpck_require__(9465)); + return buf + } -var _v3 = _interopRequireDefault(__nccwpck_require__(86001)); + return (0, _stringify.unsafeStringify)(rnds) + } -var _v4 = _interopRequireDefault(__nccwpck_require__(38310)); + var _default = v4 + exports['default'] = _default -var _nil = _interopRequireDefault(__nccwpck_require__(3436)); + /***/ + }, -var _version = _interopRequireDefault(__nccwpck_require__(17780)); + /***/ 38310: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -var _validate = _interopRequireDefault(__nccwpck_require__(66992)); + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 -var _stringify = _interopRequireDefault(__nccwpck_require__(79618)); + var _v = _interopRequireDefault(__nccwpck_require__(2568)) -var _parse = _interopRequireDefault(__nccwpck_require__(40086)); + var _sha = _interopRequireDefault(__nccwpck_require__(46679)) -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } -/***/ }), + const v5 = (0, _v.default)('v5', 0x50, _sha.default) + var _default = v5 + exports['default'] = _default -/***/ 11380: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + /***/ + }, -"use strict"; + /***/ 66992: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + var _regex = _interopRequireDefault(__nccwpck_require__(3194)) -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + function validate(uuid) { + return typeof uuid === 'string' && _regex.default.test(uuid) + } -function md5(bytes) { - if (Array.isArray(bytes)) { - bytes = Buffer.from(bytes); - } else if (typeof bytes === 'string') { - bytes = Buffer.from(bytes, 'utf8'); - } + var _default = validate + exports['default'] = _default - return _crypto.default.createHash('md5').update(bytes).digest(); -} + /***/ + }, -var _default = md5; -exports["default"] = _default; + /***/ 17780: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -/***/ }), + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 -/***/ 34672: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + var _validate = _interopRequireDefault(__nccwpck_require__(66992)) -"use strict"; + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } + function version(uuid) { + if (!(0, _validate.default)(uuid)) { + throw TypeError('Invalid UUID') + } -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + return parseInt(uuid.slice(14, 15), 16) + } -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); + var _default = version + exports['default'] = _default -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + /***/ + }, -var _default = { - randomUUID: _crypto.default.randomUUID -}; -exports["default"] = _default; + /***/ 81238: /***/ module => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -/***/ }), + // src/index.ts + var src_exports = {} + __export(src_exports, { + deserializerMiddleware: () => deserializerMiddleware, + deserializerMiddlewareOption: () => deserializerMiddlewareOption, + getSerdePlugin: () => getSerdePlugin, + serializerMiddleware: () => serializerMiddleware, + serializerMiddlewareOption: () => serializerMiddlewareOption + }) + module.exports = __toCommonJS(src_exports) + + // src/deserializerMiddleware.ts + var deserializerMiddleware = /* @__PURE__ */ __name( + (options, deserializer) => next => async args => { + const { response } = await next(args) + try { + const parsed = await deserializer(response, options) + return { + response, + output: parsed + } + } catch (error) { + Object.defineProperty(error, '$response', { + value: response + }) + if (!('$metadata' in error)) { + const hint = `Deserialization error: to see the raw response, inspect the hidden field {error}.$response on this object.` + error.message += '\n ' + hint + if (typeof error.$responseBodyText !== 'undefined') { + if (error.$response) { + error.$response.body = error.$responseBodyText + } + } + } + throw error + } + }, + 'deserializerMiddleware' + ) -/***/ 3436: -/***/ ((__unused_webpack_module, exports) => { + // src/serializerMiddleware.ts + var serializerMiddleware = /* @__PURE__ */ __name( + (options, serializer) => (next, context) => async args => { + var _a + const endpoint = + ((_a = context.endpointV2) == null ? void 0 : _a.url) && + options.urlParser + ? async () => options.urlParser(context.endpointV2.url) + : options.endpoint + if (!endpoint) { + throw new Error('No valid endpoint provider available.') + } + const request = await serializer(args.input, { ...options, endpoint }) + return next({ + ...args, + request + }) + }, + 'serializerMiddleware' + ) -"use strict"; + // src/serdePlugin.ts + var deserializerMiddlewareOption = { + name: 'deserializerMiddleware', + step: 'deserialize', + tags: ['DESERIALIZER'], + override: true + } + var serializerMiddlewareOption = { + name: 'serializerMiddleware', + step: 'serialize', + tags: ['SERIALIZER'], + override: true + } + function getSerdePlugin(config, serializer, deserializer) { + return { + applyToStack: commandStack => { + commandStack.add( + deserializerMiddleware(config, deserializer), + deserializerMiddlewareOption + ) + commandStack.add( + serializerMiddleware(config, serializer), + serializerMiddlewareOption + ) + } + } + } + __name(getSerdePlugin, 'getSerdePlugin') + // Annotate the CommonJS export names for ESM import in node: + 0 && 0 -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; -var _default = '00000000-0000-0000-0000-000000000000'; -exports["default"] = _default; + /***/ + }, -/***/ }), + /***/ 97911: /***/ module => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -/***/ 40086: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + // src/index.ts + var src_exports = {} + __export(src_exports, { + constructStack: () => constructStack + }) + module.exports = __toCommonJS(src_exports) -"use strict"; + // src/MiddlewareStack.ts + var getAllAliases = /* @__PURE__ */ __name((name, aliases) => { + const _aliases = [] + if (name) { + _aliases.push(name) + } + if (aliases) { + for (const alias of aliases) { + _aliases.push(alias) + } + } + return _aliases + }, 'getAllAliases') + var getMiddlewareNameWithAliases = /* @__PURE__ */ __name( + (name, aliases) => { + return `${name || 'anonymous'}${aliases && aliases.length > 0 ? ` (a.k.a. ${aliases.join(',')})` : ''}` + }, + 'getMiddlewareNameWithAliases' + ) + var constructStack = /* @__PURE__ */ __name(() => { + let absoluteEntries = [] + let relativeEntries = [] + let identifyOnResolve = false + const entriesNameSet = /* @__PURE__ */ new Set() + const sort = /* @__PURE__ */ __name( + entries => + entries.sort( + (a, b) => + stepWeights[b.step] - stepWeights[a.step] || + priorityWeights[b.priority || 'normal'] - + priorityWeights[a.priority || 'normal'] + ), + 'sort' + ) + const removeByName = /* @__PURE__ */ __name(toRemove => { + let isRemoved = false + const filterCb = /* @__PURE__ */ __name(entry => { + const aliases = getAllAliases(entry.name, entry.aliases) + if (aliases.includes(toRemove)) { + isRemoved = true + for (const alias of aliases) { + entriesNameSet.delete(alias) + } + return false + } + return true + }, 'filterCb') + absoluteEntries = absoluteEntries.filter(filterCb) + relativeEntries = relativeEntries.filter(filterCb) + return isRemoved + }, 'removeByName') + const removeByReference = /* @__PURE__ */ __name(toRemove => { + let isRemoved = false + const filterCb = /* @__PURE__ */ __name(entry => { + if (entry.middleware === toRemove) { + isRemoved = true + for (const alias of getAllAliases(entry.name, entry.aliases)) { + entriesNameSet.delete(alias) + } + return false + } + return true + }, 'filterCb') + absoluteEntries = absoluteEntries.filter(filterCb) + relativeEntries = relativeEntries.filter(filterCb) + return isRemoved + }, 'removeByReference') + const cloneTo = /* @__PURE__ */ __name(toStack => { + var _a + absoluteEntries.forEach(entry => { + toStack.add(entry.middleware, { ...entry }) + }) + relativeEntries.forEach(entry => { + toStack.addRelativeTo(entry.middleware, { ...entry }) + }) + ;(_a = toStack.identifyOnResolve) == null + ? void 0 + : _a.call(toStack, stack.identifyOnResolve()) + return toStack + }, 'cloneTo') + const expandRelativeMiddlewareList = /* @__PURE__ */ __name(from => { + const expandedMiddlewareList = [] + from.before.forEach(entry => { + if (entry.before.length === 0 && entry.after.length === 0) { + expandedMiddlewareList.push(entry) + } else { + expandedMiddlewareList.push( + ...expandRelativeMiddlewareList(entry) + ) + } + }) + expandedMiddlewareList.push(from) + from.after.reverse().forEach(entry => { + if (entry.before.length === 0 && entry.after.length === 0) { + expandedMiddlewareList.push(entry) + } else { + expandedMiddlewareList.push( + ...expandRelativeMiddlewareList(entry) + ) + } + }) + return expandedMiddlewareList + }, 'expandRelativeMiddlewareList') + const getMiddlewareList = /* @__PURE__ */ __name((debug = false) => { + const normalizedAbsoluteEntries = [] + const normalizedRelativeEntries = [] + const normalizedEntriesNameMap = {} + absoluteEntries.forEach(entry => { + const normalizedEntry = { + ...entry, + before: [], + after: [] + } + for (const alias of getAllAliases( + normalizedEntry.name, + normalizedEntry.aliases + )) { + normalizedEntriesNameMap[alias] = normalizedEntry + } + normalizedAbsoluteEntries.push(normalizedEntry) + }) + relativeEntries.forEach(entry => { + const normalizedEntry = { + ...entry, + before: [], + after: [] + } + for (const alias of getAllAliases( + normalizedEntry.name, + normalizedEntry.aliases + )) { + normalizedEntriesNameMap[alias] = normalizedEntry + } + normalizedRelativeEntries.push(normalizedEntry) + }) + normalizedRelativeEntries.forEach(entry => { + if (entry.toMiddleware) { + const toMiddleware = normalizedEntriesNameMap[entry.toMiddleware] + if (toMiddleware === void 0) { + if (debug) { + return + } + throw new Error( + `${entry.toMiddleware} is not found when adding ${getMiddlewareNameWithAliases(entry.name, entry.aliases)} middleware ${entry.relation} ${entry.toMiddleware}` + ) + } + if (entry.relation === 'after') { + toMiddleware.after.push(entry) + } + if (entry.relation === 'before') { + toMiddleware.before.push(entry) + } + } + }) + const mainChain = sort(normalizedAbsoluteEntries) + .map(expandRelativeMiddlewareList) + .reduce((wholeList, expandedMiddlewareList) => { + wholeList.push(...expandedMiddlewareList) + return wholeList + }, []) + return mainChain + }, 'getMiddlewareList') + const stack = { + add: (middleware, options = {}) => { + const { name, override, aliases: _aliases } = options + const entry = { + step: 'initialize', + priority: 'normal', + middleware, + ...options + } + const aliases = getAllAliases(name, _aliases) + if (aliases.length > 0) { + if (aliases.some(alias => entriesNameSet.has(alias))) { + if (!override) + throw new Error( + `Duplicate middleware name '${getMiddlewareNameWithAliases(name, _aliases)}'` + ) + for (const alias of aliases) { + const toOverrideIndex = absoluteEntries.findIndex(entry2 => { + var _a + return ( + entry2.name === alias || + ((_a = entry2.aliases) == null + ? void 0 + : _a.some(a => a === alias)) + ) + }) + if (toOverrideIndex === -1) { + continue + } + const toOverride = absoluteEntries[toOverrideIndex] + if ( + toOverride.step !== entry.step || + entry.priority !== toOverride.priority + ) { + throw new Error( + `"${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.` + ) + } + absoluteEntries.splice(toOverrideIndex, 1) + } + } + for (const alias of aliases) { + entriesNameSet.add(alias) + } + } + absoluteEntries.push(entry) + }, + addRelativeTo: (middleware, options) => { + const { name, override, aliases: _aliases } = options + const entry = { + middleware, + ...options + } + const aliases = getAllAliases(name, _aliases) + if (aliases.length > 0) { + if (aliases.some(alias => entriesNameSet.has(alias))) { + if (!override) + throw new Error( + `Duplicate middleware name '${getMiddlewareNameWithAliases(name, _aliases)}'` + ) + for (const alias of aliases) { + const toOverrideIndex = relativeEntries.findIndex(entry2 => { + var _a + return ( + entry2.name === alias || + ((_a = entry2.aliases) == null + ? void 0 + : _a.some(a => a === alias)) + ) + }) + if (toOverrideIndex === -1) { + continue + } + const toOverride = relativeEntries[toOverrideIndex] + if ( + toOverride.toMiddleware !== entry.toMiddleware || + toOverride.relation !== entry.relation + ) { + throw new Error( + `"${getMiddlewareNameWithAliases(toOverride.name, toOverride.aliases)}" middleware ${toOverride.relation} "${toOverride.toMiddleware}" middleware cannot be overridden by "${getMiddlewareNameWithAliases(name, _aliases)}" middleware ${entry.relation} "${entry.toMiddleware}" middleware.` + ) + } + relativeEntries.splice(toOverrideIndex, 1) + } + } + for (const alias of aliases) { + entriesNameSet.add(alias) + } + } + relativeEntries.push(entry) + }, + clone: () => cloneTo(constructStack()), + use: plugin => { + plugin.applyToStack(stack) + }, + remove: toRemove => { + if (typeof toRemove === 'string') return removeByName(toRemove) + else return removeByReference(toRemove) + }, + removeByTag: toRemove => { + let isRemoved = false + const filterCb = /* @__PURE__ */ __name(entry => { + const { tags, name, aliases: _aliases } = entry + if (tags && tags.includes(toRemove)) { + const aliases = getAllAliases(name, _aliases) + for (const alias of aliases) { + entriesNameSet.delete(alias) + } + isRemoved = true + return false + } + return true + }, 'filterCb') + absoluteEntries = absoluteEntries.filter(filterCb) + relativeEntries = relativeEntries.filter(filterCb) + return isRemoved + }, + concat: from => { + var _a + const cloned = cloneTo(constructStack()) + cloned.use(from) + cloned.identifyOnResolve( + identifyOnResolve || + cloned.identifyOnResolve() || + (((_a = from.identifyOnResolve) == null + ? void 0 + : _a.call(from)) ?? + false) + ) + return cloned + }, + applyToStack: cloneTo, + identify: () => { + return getMiddlewareList(true).map(mw => { + const step = mw.step ?? mw.relation + ' ' + mw.toMiddleware + return ( + getMiddlewareNameWithAliases(mw.name, mw.aliases) + ' - ' + step + ) + }) + }, + identifyOnResolve(toggle) { + if (typeof toggle === 'boolean') identifyOnResolve = toggle + return identifyOnResolve + }, + resolve: (handler, context) => { + for (const middleware of getMiddlewareList() + .map(entry => entry.middleware) + .reverse()) { + handler = middleware(handler, context) + } + if (identifyOnResolve) { + console.log(stack.identify()) + } + return handler + } + } + return stack + }, 'constructStack') + var stepWeights = { + initialize: 5, + serialize: 4, + build: 3, + finalizeRequest: 2, + deserialize: 1 + } + var priorityWeights = { + high: 3, + normal: 2, + low: 1 + } + // Annotate the CommonJS export names for ESM import in node: + 0 && 0 -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + /***/ + }, -var _validate = _interopRequireDefault(__nccwpck_require__(66992)); + /***/ 33461: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + // src/index.ts + var src_exports = {} + __export(src_exports, { + loadConfig: () => loadConfig + }) + module.exports = __toCommonJS(src_exports) -function parse(uuid) { - if (!(0, _validate.default)(uuid)) { - throw TypeError('Invalid UUID'); - } + // src/configLoader.ts - let v; - const arr = new Uint8Array(16); // Parse ########-....-....-....-............ + // src/fromEnv.ts + var import_property_provider = __nccwpck_require__(79721) - arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24; - arr[1] = v >>> 16 & 0xff; - arr[2] = v >>> 8 & 0xff; - arr[3] = v & 0xff; // Parse ........-####-....-....-............ + // src/getSelectorName.ts + function getSelectorName(functionString) { + try { + const constants = new Set( + Array.from(functionString.match(/([A-Z_]){3,}/g) ?? []) + ) + constants.delete('CONFIG') + constants.delete('CONFIG_PREFIX_SEPARATOR') + constants.delete('ENV') + return [...constants].join(', ') + } catch (e) { + return functionString + } + } + __name(getSelectorName, 'getSelectorName') + + // src/fromEnv.ts + var fromEnv = /* @__PURE__ */ __name( + (envVarSelector, logger) => async () => { + try { + const config = envVarSelector(process.env) + if (config === void 0) { + throw new Error() + } + return config + } catch (e) { + throw new import_property_provider.CredentialsProviderError( + e.message || + `Not found in ENV: ${getSelectorName(envVarSelector.toString())}`, + { logger } + ) + } + }, + 'fromEnv' + ) - arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8; - arr[5] = v & 0xff; // Parse ........-....-####-....-............ + // src/fromSharedConfigFiles.ts - arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8; - arr[7] = v & 0xff; // Parse ........-....-....-####-............ + var import_shared_ini_file_loader = __nccwpck_require__(43507) + var fromSharedConfigFiles = /* @__PURE__ */ __name( + (configSelector, { preferredFile = 'config', ...init } = {}) => + async () => { + const profile = (0, import_shared_ini_file_loader.getProfileName)( + init + ) + const { configFile, credentialsFile } = await (0, + import_shared_ini_file_loader.loadSharedConfigFiles)(init) + const profileFromCredentials = credentialsFile[profile] || {} + const profileFromConfig = configFile[profile] || {} + const mergedProfile = + preferredFile === 'config' + ? { ...profileFromCredentials, ...profileFromConfig } + : { ...profileFromConfig, ...profileFromCredentials } + try { + const cfgFile = + preferredFile === 'config' ? configFile : credentialsFile + const configValue = configSelector(mergedProfile, cfgFile) + if (configValue === void 0) { + throw new Error() + } + return configValue + } catch (e) { + throw new import_property_provider.CredentialsProviderError( + e.message || + `Not found in config files w/ profile [${profile}]: ${getSelectorName(configSelector.toString())}`, + { logger: init.logger } + ) + } + }, + 'fromSharedConfigFiles' + ) - arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8; - arr[9] = v & 0xff; // Parse ........-....-....-....-############ - // (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes) + // src/fromStatic.ts - arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff; - arr[11] = v / 0x100000000 & 0xff; - arr[12] = v >>> 24 & 0xff; - arr[13] = v >>> 16 & 0xff; - arr[14] = v >>> 8 & 0xff; - arr[15] = v & 0xff; - return arr; -} + var isFunction = /* @__PURE__ */ __name( + func => typeof func === 'function', + 'isFunction' + ) + var fromStatic = /* @__PURE__ */ __name( + defaultValue => + isFunction(defaultValue) + ? async () => await defaultValue() + : (0, import_property_provider.fromStatic)(defaultValue), + 'fromStatic' + ) -var _default = parse; -exports["default"] = _default; + // src/configLoader.ts + var loadConfig = /* @__PURE__ */ __name( + ( + { + environmentVariableSelector, + configFileSelector, + default: defaultValue + }, + configuration = {} + ) => + (0, import_property_provider.memoize)( + (0, import_property_provider.chain)( + fromEnv(environmentVariableSelector), + fromSharedConfigFiles(configFileSelector, configuration), + fromStatic(defaultValue) + ) + ), + 'loadConfig' + ) + // Annotate the CommonJS export names for ESM import in node: -/***/ }), + 0 && 0 -/***/ 3194: -/***/ ((__unused_webpack_module, exports) => { + /***/ + }, -"use strict"; + /***/ 20258: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __create = Object.create + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __getProtoOf = Object.getPrototypeOf + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toESM = (mod, isNodeMode, target) => ( + (target = mod != null ? __create(__getProtoOf(mod)) : {}), + __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule + ? __defProp(target, 'default', { value: mod, enumerable: true }) + : target, + mod + ) + ) + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + DEFAULT_REQUEST_TIMEOUT: () => DEFAULT_REQUEST_TIMEOUT, + NodeHttp2Handler: () => NodeHttp2Handler, + NodeHttpHandler: () => NodeHttpHandler, + streamCollector: () => streamCollector + }) + module.exports = __toCommonJS(src_exports) + + // src/node-http-handler.ts + var import_protocol_http = __nccwpck_require__(64418) + var import_querystring_builder = __nccwpck_require__(68031) + var import_http = __nccwpck_require__(13685) + var import_https = __nccwpck_require__(95687) + + // src/constants.ts + var NODEJS_TIMEOUT_ERROR_CODES = ['ECONNRESET', 'EPIPE', 'ETIMEDOUT'] + + // src/get-transformed-headers.ts + var getTransformedHeaders = /* @__PURE__ */ __name(headers => { + const transformedHeaders = {} + for (const name of Object.keys(headers)) { + const headerValues = headers[name] + transformedHeaders[name] = Array.isArray(headerValues) + ? headerValues.join(',') + : headerValues + } + return transformedHeaders + }, 'getTransformedHeaders') + + // src/set-connection-timeout.ts + var setConnectionTimeout = /* @__PURE__ */ __name( + (request, reject, timeoutInMs = 0) => { + if (!timeoutInMs) { + return + } + const timeoutId = setTimeout(() => { + request.destroy() + reject( + Object.assign( + new Error( + `Socket timed out without establishing a connection within ${timeoutInMs} ms` + ), + { + name: 'TimeoutError' + } + ) + ) + }, timeoutInMs) + request.on('socket', socket => { + if (socket.connecting) { + socket.on('connect', () => { + clearTimeout(timeoutId) + }) + } else { + clearTimeout(timeoutId) + } + }) + }, + 'setConnectionTimeout' + ) + // src/set-socket-keep-alive.ts + var setSocketKeepAlive = /* @__PURE__ */ __name( + (request, { keepAlive, keepAliveMsecs }) => { + if (keepAlive !== true) { + return + } + request.on('socket', socket => { + socket.setKeepAlive(keepAlive, keepAliveMsecs || 0) + }) + }, + 'setSocketKeepAlive' + ) -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; -var _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; -exports["default"] = _default; + // src/set-socket-timeout.ts + var setSocketTimeout = /* @__PURE__ */ __name( + (request, reject, timeoutInMs = 0) => { + request.setTimeout(timeoutInMs, () => { + request.destroy() + reject( + Object.assign( + new Error(`Connection timed out after ${timeoutInMs} ms`), + { name: 'TimeoutError' } + ) + ) + }) + }, + 'setSocketTimeout' + ) -/***/ }), + // src/write-request-body.ts + var import_stream = __nccwpck_require__(12781) + var MIN_WAIT_TIME = 1e3 + async function writeRequestBody( + httpRequest, + request, + maxContinueTimeoutMs = MIN_WAIT_TIME + ) { + const headers = request.headers ?? {} + const expect = headers['Expect'] || headers['expect'] + let timeoutId = -1 + let hasError = false + if (expect === '100-continue') { + await Promise.race([ + new Promise(resolve => { + timeoutId = Number( + setTimeout( + resolve, + Math.max(MIN_WAIT_TIME, maxContinueTimeoutMs) + ) + ) + }), + new Promise(resolve => { + httpRequest.on('continue', () => { + clearTimeout(timeoutId) + resolve() + }) + httpRequest.on('error', () => { + hasError = true + clearTimeout(timeoutId) + resolve() + }) + }) + ]) + } + if (!hasError) { + writeBody(httpRequest, request.body) + } + } + __name(writeRequestBody, 'writeRequestBody') + function writeBody(httpRequest, body) { + if (body instanceof import_stream.Readable) { + body.pipe(httpRequest) + return + } + if (body) { + if (Buffer.isBuffer(body) || typeof body === 'string') { + httpRequest.end(body) + return + } + const uint8 = body + if ( + typeof uint8 === 'object' && + uint8.buffer && + typeof uint8.byteOffset === 'number' && + typeof uint8.byteLength === 'number' + ) { + httpRequest.end( + Buffer.from(uint8.buffer, uint8.byteOffset, uint8.byteLength) + ) + return + } + httpRequest.end(Buffer.from(body)) + return + } + httpRequest.end() + } + __name(writeBody, 'writeBody') + + // src/node-http-handler.ts + var DEFAULT_REQUEST_TIMEOUT = 0 + var _NodeHttpHandler = class _NodeHttpHandler { + constructor(options) { + this.socketWarningTimestamp = 0 + // Node http handler is hard-coded to http/1.1: https://github.com/nodejs/node/blob/ff5664b83b89c55e4ab5d5f60068fb457f1f5872/lib/_http_server.js#L286 + this.metadata = { handlerProtocol: 'http/1.1' } + this.configProvider = new Promise((resolve, reject) => { + if (typeof options === 'function') { + options() + .then(_options => { + resolve(this.resolveDefaultConfig(_options)) + }) + .catch(reject) + } else { + resolve(this.resolveDefaultConfig(options)) + } + }) + } + /** + * @returns the input if it is an HttpHandler of any class, + * or instantiates a new instance of this handler. + */ + static create(instanceOrOptions) { + if ( + typeof (instanceOrOptions == null + ? void 0 + : instanceOrOptions.handle) === 'function' + ) { + return instanceOrOptions + } + return new _NodeHttpHandler(instanceOrOptions) + } + /** + * @internal + * + * @param agent - http(s) agent in use by the NodeHttpHandler instance. + * @returns timestamp of last emitted warning. + */ + static checkSocketUsage(agent, socketWarningTimestamp) { + var _a, _b + const { sockets, requests, maxSockets } = agent + if (typeof maxSockets !== 'number' || maxSockets === Infinity) { + return socketWarningTimestamp + } + const interval = 15e3 + if (Date.now() - interval < socketWarningTimestamp) { + return socketWarningTimestamp + } + if (sockets && requests) { + for (const origin in sockets) { + const socketsInUse = + ((_a = sockets[origin]) == null ? void 0 : _a.length) ?? 0 + const requestsEnqueued = + ((_b = requests[origin]) == null ? void 0 : _b.length) ?? 0 + if ( + socketsInUse >= maxSockets && + requestsEnqueued >= 2 * maxSockets + ) { + console.warn( + '@smithy/node-http-handler:WARN', + `socket usage at capacity=${socketsInUse} and ${requestsEnqueued} additional requests are enqueued.`, + 'See https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html', + 'or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.' + ) + return Date.now() + } + } + } + return socketWarningTimestamp + } + resolveDefaultConfig(options) { + const { + requestTimeout, + connectionTimeout, + socketTimeout, + httpAgent, + httpsAgent + } = options || {} + const keepAlive = true + const maxSockets = 50 + return { + connectionTimeout, + requestTimeout: requestTimeout ?? socketTimeout, + httpAgent: (() => { + if ( + httpAgent instanceof import_http.Agent || + typeof (httpAgent == null ? void 0 : httpAgent.destroy) === + 'function' + ) { + return httpAgent + } + return new import_http.Agent({ + keepAlive, + maxSockets, + ...httpAgent + }) + })(), + httpsAgent: (() => { + if ( + httpsAgent instanceof import_https.Agent || + typeof (httpsAgent == null ? void 0 : httpsAgent.destroy) === + 'function' + ) { + return httpsAgent + } + return new import_https.Agent({ + keepAlive, + maxSockets, + ...httpsAgent + }) + })() + } + } + destroy() { + var _a, _b, _c, _d + ;(_b = (_a = this.config) == null ? void 0 : _a.httpAgent) == null + ? void 0 + : _b.destroy() + ;(_d = (_c = this.config) == null ? void 0 : _c.httpsAgent) == null + ? void 0 + : _d.destroy() + } + async handle(request, { abortSignal } = {}) { + if (!this.config) { + this.config = await this.configProvider + } + let socketCheckTimeoutId + return new Promise((_resolve, _reject) => { + let writeRequestBodyPromise = void 0 + const resolve = /* @__PURE__ */ __name(async arg => { + await writeRequestBodyPromise + clearTimeout(socketCheckTimeoutId) + _resolve(arg) + }, 'resolve') + const reject = /* @__PURE__ */ __name(async arg => { + await writeRequestBodyPromise + _reject(arg) + }, 'reject') + if (!this.config) { + throw new Error( + 'Node HTTP request handler config is not resolved' + ) + } + if (abortSignal == null ? void 0 : abortSignal.aborted) { + const abortError = new Error('Request aborted') + abortError.name = 'AbortError' + reject(abortError) + return + } + const isSSL = request.protocol === 'https:' + const agent = isSSL ? this.config.httpsAgent : this.config.httpAgent + socketCheckTimeoutId = setTimeout( + () => { + this.socketWarningTimestamp = _NodeHttpHandler.checkSocketUsage( + agent, + this.socketWarningTimestamp + ) + }, + this.config.socketAcquisitionWarningTimeout ?? + (this.config.requestTimeout ?? 2e3) + + (this.config.connectionTimeout ?? 1e3) + ) + const queryString = (0, + import_querystring_builder.buildQueryString)(request.query || {}) + let auth = void 0 + if (request.username != null || request.password != null) { + const username = request.username ?? '' + const password = request.password ?? '' + auth = `${username}:${password}` + } + let path = request.path + if (queryString) { + path += `?${queryString}` + } + if (request.fragment) { + path += `#${request.fragment}` + } + const nodeHttpsOptions = { + headers: request.headers, + host: request.hostname, + method: request.method, + path, + port: request.port, + agent, + auth + } + const requestFunc = isSSL + ? import_https.request + : import_http.request + const req = requestFunc(nodeHttpsOptions, res => { + const httpResponse = new import_protocol_http.HttpResponse({ + statusCode: res.statusCode || -1, + reason: res.statusMessage, + headers: getTransformedHeaders(res.headers), + body: res + }) + resolve({ response: httpResponse }) + }) + req.on('error', err => { + if (NODEJS_TIMEOUT_ERROR_CODES.includes(err.code)) { + reject(Object.assign(err, { name: 'TimeoutError' })) + } else { + reject(err) + } + }) + setConnectionTimeout(req, reject, this.config.connectionTimeout) + setSocketTimeout(req, reject, this.config.requestTimeout) + if (abortSignal) { + abortSignal.onabort = () => { + req.abort() + const abortError = new Error('Request aborted') + abortError.name = 'AbortError' + reject(abortError) + } + } + const httpAgent = nodeHttpsOptions.agent + if (typeof httpAgent === 'object' && 'keepAlive' in httpAgent) { + setSocketKeepAlive(req, { + // @ts-expect-error keepAlive is not public on httpAgent. + keepAlive: httpAgent.keepAlive, + // @ts-expect-error keepAliveMsecs is not public on httpAgent. + keepAliveMsecs: httpAgent.keepAliveMsecs + }) + } + writeRequestBodyPromise = writeRequestBody( + req, + request, + this.config.requestTimeout + ).catch(_reject) + }) + } + updateHttpClientConfig(key, value) { + this.config = void 0 + this.configProvider = this.configProvider.then(config => { + return { + ...config, + [key]: value + } + }) + } + httpHandlerConfigs() { + return this.config ?? {} + } + } + __name(_NodeHttpHandler, 'NodeHttpHandler') + var NodeHttpHandler = _NodeHttpHandler -/***/ 68136: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + // src/node-http2-handler.ts -"use strict"; + var import_http22 = __nccwpck_require__(85158) + // src/node-http2-connection-manager.ts + var import_http2 = __toESM(__nccwpck_require__(85158)) -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = rng; + // src/node-http2-connection-pool.ts + var _NodeHttp2ConnectionPool = class _NodeHttp2ConnectionPool { + constructor(sessions) { + this.sessions = [] + this.sessions = sessions ?? [] + } + poll() { + if (this.sessions.length > 0) { + return this.sessions.shift() + } + } + offerLast(session) { + this.sessions.push(session) + } + contains(session) { + return this.sessions.includes(session) + } + remove(session) { + this.sessions = this.sessions.filter(s => s !== session) + } + [Symbol.iterator]() { + return this.sessions[Symbol.iterator]() + } + destroy(connection) { + for (const session of this.sessions) { + if (session === connection) { + if (!session.destroyed) { + session.destroy() + } + } + } + } + } + __name(_NodeHttp2ConnectionPool, 'NodeHttp2ConnectionPool') + var NodeHttp2ConnectionPool = _NodeHttp2ConnectionPool -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); + // src/node-http2-connection-manager.ts + var _NodeHttp2ConnectionManager = class _NodeHttp2ConnectionManager { + constructor(config) { + this.sessionCache = /* @__PURE__ */ new Map() + this.config = config + if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) { + throw new RangeError('maxConcurrency must be greater than zero.') + } + } + lease(requestContext, connectionConfiguration) { + const url = this.getUrlString(requestContext) + const existingPool = this.sessionCache.get(url) + if (existingPool) { + const existingSession = existingPool.poll() + if (existingSession && !this.config.disableConcurrency) { + return existingSession + } + } + const session = import_http2.default.connect(url) + if (this.config.maxConcurrency) { + session.settings( + { maxConcurrentStreams: this.config.maxConcurrency }, + err => { + if (err) { + throw new Error( + 'Fail to set maxConcurrentStreams to ' + + this.config.maxConcurrency + + 'when creating new session for ' + + requestContext.destination.toString() + ) + } + } + ) + } + session.unref() + const destroySessionCb = /* @__PURE__ */ __name(() => { + session.destroy() + this.deleteSession(url, session) + }, 'destroySessionCb') + session.on('goaway', destroySessionCb) + session.on('error', destroySessionCb) + session.on('frameError', destroySessionCb) + session.on('close', () => this.deleteSession(url, session)) + if (connectionConfiguration.requestTimeout) { + session.setTimeout( + connectionConfiguration.requestTimeout, + destroySessionCb + ) + } + const connectionPool = + this.sessionCache.get(url) || new NodeHttp2ConnectionPool() + connectionPool.offerLast(session) + this.sessionCache.set(url, connectionPool) + return session + } + /** + * Delete a session from the connection pool. + * @param authority The authority of the session to delete. + * @param session The session to delete. + */ + deleteSession(authority, session) { + const existingConnectionPool = this.sessionCache.get(authority) + if (!existingConnectionPool) { + return + } + if (!existingConnectionPool.contains(session)) { + return + } + existingConnectionPool.remove(session) + this.sessionCache.set(authority, existingConnectionPool) + } + release(requestContext, session) { + var _a + const cacheKey = this.getUrlString(requestContext) + ;(_a = this.sessionCache.get(cacheKey)) == null + ? void 0 + : _a.offerLast(session) + } + destroy() { + for (const [key, connectionPool] of this.sessionCache) { + for (const session of connectionPool) { + if (!session.destroyed) { + session.destroy() + } + connectionPool.remove(session) + } + this.sessionCache.delete(key) + } + } + setMaxConcurrentStreams(maxConcurrentStreams) { + if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) { + throw new RangeError( + 'maxConcurrentStreams must be greater than zero.' + ) + } + this.config.maxConcurrency = maxConcurrentStreams + } + setDisableConcurrentStreams(disableConcurrentStreams) { + this.config.disableConcurrency = disableConcurrentStreams + } + getUrlString(request) { + return request.destination.toString() + } + } + __name(_NodeHttp2ConnectionManager, 'NodeHttp2ConnectionManager') + var NodeHttp2ConnectionManager = _NodeHttp2ConnectionManager + + // src/node-http2-handler.ts + var _NodeHttp2Handler = class _NodeHttp2Handler { + constructor(options) { + this.metadata = { handlerProtocol: 'h2' } + this.connectionManager = new NodeHttp2ConnectionManager({}) + this.configProvider = new Promise((resolve, reject) => { + if (typeof options === 'function') { + options() + .then(opts => { + resolve(opts || {}) + }) + .catch(reject) + } else { + resolve(options || {}) + } + }) + } + /** + * @returns the input if it is an HttpHandler of any class, + * or instantiates a new instance of this handler. + */ + static create(instanceOrOptions) { + if ( + typeof (instanceOrOptions == null + ? void 0 + : instanceOrOptions.handle) === 'function' + ) { + return instanceOrOptions + } + return new _NodeHttp2Handler(instanceOrOptions) + } + destroy() { + this.connectionManager.destroy() + } + async handle(request, { abortSignal } = {}) { + if (!this.config) { + this.config = await this.configProvider + this.connectionManager.setDisableConcurrentStreams( + this.config.disableConcurrentStreams || false + ) + if (this.config.maxConcurrentStreams) { + this.connectionManager.setMaxConcurrentStreams( + this.config.maxConcurrentStreams + ) + } + } + const { requestTimeout, disableConcurrentStreams } = this.config + return new Promise((_resolve, _reject) => { + var _a + let fulfilled = false + let writeRequestBodyPromise = void 0 + const resolve = /* @__PURE__ */ __name(async arg => { + await writeRequestBodyPromise + _resolve(arg) + }, 'resolve') + const reject = /* @__PURE__ */ __name(async arg => { + await writeRequestBodyPromise + _reject(arg) + }, 'reject') + if (abortSignal == null ? void 0 : abortSignal.aborted) { + fulfilled = true + const abortError = new Error('Request aborted') + abortError.name = 'AbortError' + reject(abortError) + return + } + const { hostname, method, port, protocol, query } = request + let auth = '' + if (request.username != null || request.password != null) { + const username = request.username ?? '' + const password = request.password ?? '' + auth = `${username}:${password}@` + } + const authority = `${protocol}//${auth}${hostname}${port ? `:${port}` : ''}` + const requestContext = { destination: new URL(authority) } + const session = this.connectionManager.lease(requestContext, { + requestTimeout: + (_a = this.config) == null ? void 0 : _a.sessionTimeout, + disableConcurrentStreams: disableConcurrentStreams || false + }) + const rejectWithDestroy = /* @__PURE__ */ __name(err => { + if (disableConcurrentStreams) { + this.destroySession(session) + } + fulfilled = true + reject(err) + }, 'rejectWithDestroy') + const queryString = (0, + import_querystring_builder.buildQueryString)(query || {}) + let path = request.path + if (queryString) { + path += `?${queryString}` + } + if (request.fragment) { + path += `#${request.fragment}` + } + const req = session.request({ + ...request.headers, + [import_http22.constants.HTTP2_HEADER_PATH]: path, + [import_http22.constants.HTTP2_HEADER_METHOD]: method + }) + session.ref() + req.on('response', headers => { + const httpResponse = new import_protocol_http.HttpResponse({ + statusCode: headers[':status'] || -1, + headers: getTransformedHeaders(headers), + body: req + }) + fulfilled = true + resolve({ response: httpResponse }) + if (disableConcurrentStreams) { + session.close() + this.connectionManager.deleteSession(authority, session) + } + }) + if (requestTimeout) { + req.setTimeout(requestTimeout, () => { + req.close() + const timeoutError = new Error( + `Stream timed out because of no activity for ${requestTimeout} ms` + ) + timeoutError.name = 'TimeoutError' + rejectWithDestroy(timeoutError) + }) + } + if (abortSignal) { + abortSignal.onabort = () => { + req.close() + const abortError = new Error('Request aborted') + abortError.name = 'AbortError' + rejectWithDestroy(abortError) + } + } + req.on('frameError', (type, code, id) => { + rejectWithDestroy( + new Error( + `Frame type id ${type} in stream id ${id} has failed with code ${code}.` + ) + ) + }) + req.on('error', rejectWithDestroy) + req.on('aborted', () => { + rejectWithDestroy( + new Error( + `HTTP/2 stream is abnormally aborted in mid-communication with result code ${req.rstCode}.` + ) + ) + }) + req.on('close', () => { + session.unref() + if (disableConcurrentStreams) { + session.destroy() + } + if (!fulfilled) { + rejectWithDestroy( + new Error( + 'Unexpected error: http2 request did not get a response' + ) + ) + } + }) + writeRequestBodyPromise = writeRequestBody( + req, + request, + requestTimeout + ) + }) + } + updateHttpClientConfig(key, value) { + this.config = void 0 + this.configProvider = this.configProvider.then(config => { + return { + ...config, + [key]: value + } + }) + } + httpHandlerConfigs() { + return this.config ?? {} + } + /** + * Destroys a session. + * @param session The session to destroy. + */ + destroySession(session) { + if (!session.destroyed) { + session.destroy() + } + } + } + __name(_NodeHttp2Handler, 'NodeHttp2Handler') + var NodeHttp2Handler = _NodeHttp2Handler -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + // src/stream-collector/collector.ts -const rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate + var _Collector = class _Collector extends import_stream.Writable { + constructor() { + super(...arguments) + this.bufferedBytes = [] + } + _write(chunk, encoding, callback) { + this.bufferedBytes.push(chunk) + callback() + } + } + __name(_Collector, 'Collector') + var Collector = _Collector -let poolPtr = rnds8Pool.length; + // src/stream-collector/index.ts + var streamCollector = /* @__PURE__ */ __name(stream => { + if (isReadableStreamInstance(stream)) { + return collectReadableStream(stream) + } + return new Promise((resolve, reject) => { + const collector = new Collector() + stream.pipe(collector) + stream.on('error', err => { + collector.end() + reject(err) + }) + collector.on('error', reject) + collector.on('finish', function () { + const bytes = new Uint8Array(Buffer.concat(this.bufferedBytes)) + resolve(bytes) + }) + }) + }, 'streamCollector') + var isReadableStreamInstance = /* @__PURE__ */ __name( + stream => + typeof ReadableStream === 'function' && + stream instanceof ReadableStream, + 'isReadableStreamInstance' + ) + async function collectReadableStream(stream) { + const chunks = [] + const reader = stream.getReader() + let isDone = false + let length = 0 + while (!isDone) { + const { done, value } = await reader.read() + if (value) { + chunks.push(value) + length += value.length + } + isDone = done + } + const collected = new Uint8Array(length) + let offset = 0 + for (const chunk of chunks) { + collected.set(chunk, offset) + offset += chunk.length + } + return collected + } + __name(collectReadableStream, 'collectReadableStream') + // Annotate the CommonJS export names for ESM import in node: -function rng() { - if (poolPtr > rnds8Pool.length - 16) { - _crypto.default.randomFillSync(rnds8Pool); + 0 && 0 - poolPtr = 0; - } + /***/ + }, - return rnds8Pool.slice(poolPtr, poolPtr += 16); -} + /***/ 79721: /***/ module => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -/***/ }), + // src/index.ts + var src_exports = {} + __export(src_exports, { + CredentialsProviderError: () => CredentialsProviderError, + ProviderError: () => ProviderError, + TokenProviderError: () => TokenProviderError, + chain: () => chain, + fromStatic: () => fromStatic, + memoize: () => memoize + }) + module.exports = __toCommonJS(src_exports) + + // src/ProviderError.ts + var _ProviderError = class _ProviderError extends Error { + constructor(message, options = true) { + var _a + let logger + let tryNextLink = true + if (typeof options === 'boolean') { + logger = void 0 + tryNextLink = options + } else if (options != null && typeof options === 'object') { + logger = options.logger + tryNextLink = options.tryNextLink ?? true + } + super(message) + this.name = 'ProviderError' + this.tryNextLink = tryNextLink + Object.setPrototypeOf(this, _ProviderError.prototype) + ;(_a = logger == null ? void 0 : logger.debug) == null + ? void 0 + : _a.call( + logger, + `@smithy/property-provider ${tryNextLink ? '->' : '(!)'} ${message}` + ) + } + /** + * @deprecated use new operator. + */ + static from(error, options = true) { + return Object.assign(new this(error.message, options), error) + } + } + __name(_ProviderError, 'ProviderError') + var ProviderError = _ProviderError -/***/ 46679: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + // src/CredentialsProviderError.ts + var _CredentialsProviderError = class _CredentialsProviderError extends ProviderError { + /** + * @override + */ + constructor(message, options = true) { + super(message, options) + this.name = 'CredentialsProviderError' + Object.setPrototypeOf(this, _CredentialsProviderError.prototype) + } + } + __name(_CredentialsProviderError, 'CredentialsProviderError') + var CredentialsProviderError = _CredentialsProviderError -"use strict"; + // src/TokenProviderError.ts + var _TokenProviderError = class _TokenProviderError extends ProviderError { + /** + * @override + */ + constructor(message, options = true) { + super(message, options) + this.name = 'TokenProviderError' + Object.setPrototypeOf(this, _TokenProviderError.prototype) + } + } + __name(_TokenProviderError, 'TokenProviderError') + var TokenProviderError = _TokenProviderError + // src/chain.ts + var chain = /* @__PURE__ */ __name( + (...providers) => + async () => { + if (providers.length === 0) { + throw new ProviderError('No providers in chain') + } + let lastProviderError + for (const provider of providers) { + try { + const credentials = await provider() + return credentials + } catch (err) { + lastProviderError = err + if (err == null ? void 0 : err.tryNextLink) { + continue + } + throw err + } + } + throw lastProviderError + }, + 'chain' + ) -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + // src/fromStatic.ts + var fromStatic = /* @__PURE__ */ __name( + staticValue => () => Promise.resolve(staticValue), + 'fromStatic' + ) -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); + // src/memoize.ts + var memoize = /* @__PURE__ */ __name( + (provider, isExpired, requiresRefresh) => { + let resolved + let pending + let hasResult + let isConstant = false + const coalesceProvider = /* @__PURE__ */ __name(async () => { + if (!pending) { + pending = provider() + } + try { + resolved = await pending + hasResult = true + isConstant = false + } finally { + pending = void 0 + } + return resolved + }, 'coalesceProvider') + if (isExpired === void 0) { + return async options => { + if ( + !hasResult || + (options == null ? void 0 : options.forceRefresh) + ) { + resolved = await coalesceProvider() + } + return resolved + } + } + return async options => { + if ( + !hasResult || + (options == null ? void 0 : options.forceRefresh) + ) { + resolved = await coalesceProvider() + } + if (isConstant) { + return resolved + } + if (requiresRefresh && !requiresRefresh(resolved)) { + isConstant = true + return resolved + } + if (isExpired(resolved)) { + await coalesceProvider() + return resolved + } + return resolved + } + }, + 'memoize' + ) + // Annotate the CommonJS export names for ESM import in node: -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + 0 && 0 -function sha1(bytes) { - if (Array.isArray(bytes)) { - bytes = Buffer.from(bytes); - } else if (typeof bytes === 'string') { - bytes = Buffer.from(bytes, 'utf8'); - } + /***/ + }, - return _crypto.default.createHash('sha1').update(bytes).digest(); -} + /***/ 64418: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + Field: () => Field, + Fields: () => Fields, + HttpRequest: () => HttpRequest, + HttpResponse: () => HttpResponse, + IHttpRequest: () => import_types.HttpRequest, + getHttpHandlerExtensionConfiguration: () => + getHttpHandlerExtensionConfiguration, + isValidHostname: () => isValidHostname, + resolveHttpHandlerRuntimeConfig: () => resolveHttpHandlerRuntimeConfig + }) + module.exports = __toCommonJS(src_exports) -var _default = sha1; -exports["default"] = _default; + // src/extensions/httpExtensionConfiguration.ts + var getHttpHandlerExtensionConfiguration = /* @__PURE__ */ __name( + runtimeConfig => { + let httpHandler = runtimeConfig.httpHandler + return { + setHttpHandler(handler) { + httpHandler = handler + }, + httpHandler() { + return httpHandler + }, + updateHttpClientConfig(key, value) { + httpHandler.updateHttpClientConfig(key, value) + }, + httpHandlerConfigs() { + return httpHandler.httpHandlerConfigs() + } + } + }, + 'getHttpHandlerExtensionConfiguration' + ) + var resolveHttpHandlerRuntimeConfig = /* @__PURE__ */ __name( + httpHandlerExtensionConfiguration => { + return { + httpHandler: httpHandlerExtensionConfiguration.httpHandler() + } + }, + 'resolveHttpHandlerRuntimeConfig' + ) -/***/ }), + // src/Field.ts + var import_types = __nccwpck_require__(55756) + var _Field = class _Field { + constructor({ + name, + kind = import_types.FieldPosition.HEADER, + values = [] + }) { + this.name = name + this.kind = kind + this.values = values + } + /** + * Appends a value to the field. + * + * @param value The value to append. + */ + add(value) { + this.values.push(value) + } + /** + * Overwrite existing field values. + * + * @param values The new field values. + */ + set(values) { + this.values = values + } + /** + * Remove all matching entries from list. + * + * @param value Value to remove. + */ + remove(value) { + this.values = this.values.filter(v => v !== value) + } + /** + * Get comma-delimited string. + * + * @returns String representation of {@link Field}. + */ + toString() { + return this.values + .map(v => (v.includes(',') || v.includes(' ') ? `"${v}"` : v)) + .join(', ') + } + /** + * Get string values as a list + * + * @returns Values in {@link Field} as a list. + */ + get() { + return this.values + } + } + __name(_Field, 'Field') + var Field = _Field -/***/ 79618: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + // src/Fields.ts + var _Fields = class _Fields { + constructor({ fields = [], encoding = 'utf-8' }) { + this.entries = {} + fields.forEach(this.setField.bind(this)) + this.encoding = encoding + } + /** + * Set entry for a {@link Field} name. The `name` + * attribute will be used to key the collection. + * + * @param field The {@link Field} to set. + */ + setField(field) { + this.entries[field.name.toLowerCase()] = field + } + /** + * Retrieve {@link Field} entry by name. + * + * @param name The name of the {@link Field} entry + * to retrieve + * @returns The {@link Field} if it exists. + */ + getField(name) { + return this.entries[name.toLowerCase()] + } + /** + * Delete entry from collection. + * + * @param name Name of the entry to delete. + */ + removeField(name) { + delete this.entries[name.toLowerCase()] + } + /** + * Helper function for retrieving specific types of fields. + * Used to grab all headers or all trailers. + * + * @param kind {@link FieldPosition} of entries to retrieve. + * @returns The {@link Field} entries with the specified + * {@link FieldPosition}. + */ + getByType(kind) { + return Object.values(this.entries).filter( + field => field.kind === kind + ) + } + } + __name(_Fields, 'Fields') + var Fields = _Fields + + // src/httpRequest.ts + + var _HttpRequest = class _HttpRequest { + constructor(options) { + this.method = options.method || 'GET' + this.hostname = options.hostname || 'localhost' + this.port = options.port + this.query = options.query || {} + this.headers = options.headers || {} + this.body = options.body + this.protocol = options.protocol + ? options.protocol.slice(-1) !== ':' + ? `${options.protocol}:` + : options.protocol + : 'https:' + this.path = options.path + ? options.path.charAt(0) !== '/' + ? `/${options.path}` + : options.path + : '/' + this.username = options.username + this.password = options.password + this.fragment = options.fragment + } + /** + * Note: this does not deep-clone the body. + */ + static clone(request) { + const cloned = new _HttpRequest({ + ...request, + headers: { ...request.headers } + }) + if (cloned.query) { + cloned.query = cloneQuery(cloned.query) + } + return cloned + } + /** + * This method only actually asserts that request is the interface {@link IHttpRequest}, + * and not necessarily this concrete class. Left in place for API stability. + * + * Do not call instance methods on the input of this function, and + * do not assume it has the HttpRequest prototype. + */ + static isInstance(request) { + if (!request) { + return false + } + const req = request + return ( + 'method' in req && + 'protocol' in req && + 'hostname' in req && + 'path' in req && + typeof req['query'] === 'object' && + typeof req['headers'] === 'object' + ) + } + /** + * @deprecated use static HttpRequest.clone(request) instead. It's not safe to call + * this method because {@link HttpRequest.isInstance} incorrectly + * asserts that IHttpRequest (interface) objects are of type HttpRequest (class). + */ + clone() { + return _HttpRequest.clone(this) + } + } + __name(_HttpRequest, 'HttpRequest') + var HttpRequest = _HttpRequest + function cloneQuery(query) { + return Object.keys(query).reduce((carry, paramName) => { + const param = query[paramName] + return { + ...carry, + [paramName]: Array.isArray(param) ? [...param] : param + } + }, {}) + } + __name(cloneQuery, 'cloneQuery') + + // src/httpResponse.ts + var _HttpResponse = class _HttpResponse { + constructor(options) { + this.statusCode = options.statusCode + this.reason = options.reason + this.headers = options.headers || {} + this.body = options.body + } + static isInstance(response) { + if (!response) return false + const resp = response + return ( + typeof resp.statusCode === 'number' && + typeof resp.headers === 'object' + ) + } + } + __name(_HttpResponse, 'HttpResponse') + var HttpResponse = _HttpResponse -"use strict"; + // src/isValidHostname.ts + function isValidHostname(hostname) { + const hostPattern = /^[a-z0-9][a-z0-9\.\-]*[a-z0-9]$/ + return hostPattern.test(hostname) + } + __name(isValidHostname, 'isValidHostname') + // Annotate the CommonJS export names for ESM import in node: + 0 && 0 -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; -exports.unsafeStringify = unsafeStringify; + /***/ + }, -var _validate = _interopRequireDefault(__nccwpck_require__(66992)); + /***/ 68031: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + // src/index.ts + var src_exports = {} + __export(src_exports, { + buildQueryString: () => buildQueryString + }) + module.exports = __toCommonJS(src_exports) + var import_util_uri_escape = __nccwpck_require__(54197) + function buildQueryString(query) { + const parts = [] + for (let key of Object.keys(query).sort()) { + const value = query[key] + key = (0, import_util_uri_escape.escapeUri)(key) + if (Array.isArray(value)) { + for (let i = 0, iLen = value.length; i < iLen; i++) { + parts.push( + `${key}=${(0, import_util_uri_escape.escapeUri)(value[i])}` + ) + } + } else { + let qsEntry = key + if (value || typeof value === 'string') { + qsEntry += `=${(0, import_util_uri_escape.escapeUri)(value)}` + } + parts.push(qsEntry) + } + } + return parts.join('&') + } + __name(buildQueryString, 'buildQueryString') + // Annotate the CommonJS export names for ESM import in node: -/** - * Convert array of 16 byte values to UUID string format of the form: - * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX - */ -const byteToHex = []; - -for (let i = 0; i < 256; ++i) { - byteToHex.push((i + 0x100).toString(16).slice(1)); -} - -function unsafeStringify(arr, offset = 0) { - // Note: Be careful editing this code! It's been tuned for performance - // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434 - 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]]; -} - -function stringify(arr, offset = 0) { - const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one - // of the following: - // - One or more input array values don't map to a hex octet (leading to - // "undefined" in the uuid) - // - Invalid input values for the RFC `version` or `variant` fields - - if (!(0, _validate.default)(uuid)) { - throw TypeError('Stringified UUID is invalid'); - } + 0 && 0 - return uuid; -} + /***/ + }, -var _default = stringify; -exports["default"] = _default; + /***/ 4769: /***/ module => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -/***/ }), + // src/index.ts + var src_exports = {} + __export(src_exports, { + parseQueryString: () => parseQueryString + }) + module.exports = __toCommonJS(src_exports) + function parseQueryString(querystring) { + const query = {} + querystring = querystring.replace(/^\?/, '') + if (querystring) { + for (const pair of querystring.split('&')) { + let [key, value = null] = pair.split('=') + key = decodeURIComponent(key) + if (value) { + value = decodeURIComponent(value) + } + if (!(key in query)) { + query[key] = value + } else if (Array.isArray(query[key])) { + query[key].push(value) + } else { + query[key] = [query[key], value] + } + } + } + return query + } + __name(parseQueryString, 'parseQueryString') + // Annotate the CommonJS export names for ESM import in node: -/***/ 36310: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + 0 && 0 -"use strict"; + /***/ + }, + /***/ 6375: /***/ module => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + // src/index.ts + var src_exports = {} + __export(src_exports, { + isClockSkewCorrectedError: () => isClockSkewCorrectedError, + isClockSkewError: () => isClockSkewError, + isRetryableByTrait: () => isRetryableByTrait, + isServerError: () => isServerError, + isThrottlingError: () => isThrottlingError, + isTransientError: () => isTransientError + }) + module.exports = __toCommonJS(src_exports) + + // src/constants.ts + var CLOCK_SKEW_ERROR_CODES = [ + 'AuthFailure', + 'InvalidSignatureException', + 'RequestExpired', + 'RequestInTheFuture', + 'RequestTimeTooSkewed', + 'SignatureDoesNotMatch' + ] + var THROTTLING_ERROR_CODES = [ + 'BandwidthLimitExceeded', + 'EC2ThrottledException', + 'LimitExceededException', + 'PriorRequestNotComplete', + 'ProvisionedThroughputExceededException', + 'RequestLimitExceeded', + 'RequestThrottled', + 'RequestThrottledException', + 'SlowDown', + 'ThrottledException', + 'Throttling', + 'ThrottlingException', + 'TooManyRequestsException', + 'TransactionInProgressException' + // DynamoDB + ] + var TRANSIENT_ERROR_CODES = [ + 'TimeoutError', + 'RequestTimeout', + 'RequestTimeoutException' + ] + var TRANSIENT_ERROR_STATUS_CODES = [500, 502, 503, 504] + var NODEJS_TIMEOUT_ERROR_CODES = [ + 'ECONNRESET', + 'ECONNREFUSED', + 'EPIPE', + 'ETIMEDOUT' + ] -var _rng = _interopRequireDefault(__nccwpck_require__(68136)); + // src/index.ts + var isRetryableByTrait = /* @__PURE__ */ __name( + error => error.$retryable !== void 0, + 'isRetryableByTrait' + ) + var isClockSkewError = /* @__PURE__ */ __name( + error => CLOCK_SKEW_ERROR_CODES.includes(error.name), + 'isClockSkewError' + ) + var isClockSkewCorrectedError = /* @__PURE__ */ __name(error => { + var _a + return (_a = error.$metadata) == null ? void 0 : _a.clockSkewCorrected + }, 'isClockSkewCorrectedError') + var isThrottlingError = /* @__PURE__ */ __name(error => { + var _a, _b + 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 + ) + }, 'isThrottlingError') + var isTransientError = /* @__PURE__ */ __name(error => { + var _a + 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 + ) + ) + }, 'isTransientError') + var isServerError = /* @__PURE__ */ __name(error => { + var _a + if ( + ((_a = error.$metadata) == null ? void 0 : _a.httpStatusCode) !== + void 0 + ) { + const statusCode = error.$metadata.httpStatusCode + if ( + 500 <= statusCode && + statusCode <= 599 && + !isTransientError(error) + ) { + return true + } + return false + } + return false + }, 'isServerError') + // Annotate the CommonJS export names for ESM import in node: -var _stringify = __nccwpck_require__(79618); + 0 && 0 -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + /***/ + }, -// **`v1()` - Generate time-based UUID** -// -// Inspired by https://github.com/LiosK/UUID.js -// and http://docs.python.org/library/uuid.html -let _nodeId; + /***/ 68340: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getHomeDir = void 0 + const os_1 = __nccwpck_require__(22037) + const path_1 = __nccwpck_require__(71017) + const homeDirCache = {} + const getHomeDirCacheKey = () => { + if (process && process.geteuid) { + return `${process.geteuid()}` + } + return 'DEFAULT' + } + const getHomeDir = () => { + const { + HOME, + USERPROFILE, + HOMEPATH, + HOMEDRIVE = `C:${path_1.sep}` + } = process.env + if (HOME) return HOME + if (USERPROFILE) return USERPROFILE + if (HOMEPATH) return `${HOMEDRIVE}${HOMEPATH}` + const homeDirCacheKey = getHomeDirCacheKey() + if (!homeDirCache[homeDirCacheKey]) + homeDirCache[homeDirCacheKey] = (0, os_1.homedir)() + return homeDirCache[homeDirCacheKey] + } + exports.getHomeDir = getHomeDir + + /***/ + }, -let _clockseq; // Previous uuid creation time + /***/ 24740: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getSSOTokenFilepath = void 0 + const crypto_1 = __nccwpck_require__(6113) + const path_1 = __nccwpck_require__(71017) + const getHomeDir_1 = __nccwpck_require__(68340) + const getSSOTokenFilepath = id => { + const hasher = (0, crypto_1.createHash)('sha1') + const cacheName = hasher.update(id).digest('hex') + return (0, path_1.join)( + (0, getHomeDir_1.getHomeDir)(), + '.aws', + 'sso', + 'cache', + `${cacheName}.json` + ) + } + exports.getSSOTokenFilepath = getSSOTokenFilepath + /***/ + }, -let _lastMSecs = 0; -let _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details + /***/ 69678: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getSSOTokenFromFile = void 0 + const fs_1 = __nccwpck_require__(57147) + const getSSOTokenFilepath_1 = __nccwpck_require__(24740) + const { readFile } = fs_1.promises + const getSSOTokenFromFile = async id => { + const ssoTokenFilepath = (0, getSSOTokenFilepath_1.getSSOTokenFilepath)( + id + ) + const ssoTokenText = await readFile(ssoTokenFilepath, 'utf8') + return JSON.parse(ssoTokenText) + } + exports.getSSOTokenFromFile = getSSOTokenFromFile -function v1(options, buf, offset) { - let i = buf && offset || 0; - const b = buf || new Array(16); - options = options || {}; - let node = options.node || _nodeId; - let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not - // specified. We do this lazily to minimize issues related to insufficient - // system entropy. See #189 + /***/ + }, - if (node == null || clockseq == null) { - const seedBytes = options.random || (options.rng || _rng.default)(); + /***/ 43507: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __reExport = (target, mod, secondTarget) => ( + __copyProps(target, mod, 'default'), + secondTarget && __copyProps(secondTarget, mod, 'default') + ) + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + CONFIG_PREFIX_SEPARATOR: () => CONFIG_PREFIX_SEPARATOR, + DEFAULT_PROFILE: () => DEFAULT_PROFILE, + ENV_PROFILE: () => ENV_PROFILE, + getProfileName: () => getProfileName, + loadSharedConfigFiles: () => loadSharedConfigFiles, + loadSsoSessionData: () => loadSsoSessionData, + parseKnownFiles: () => parseKnownFiles + }) + module.exports = __toCommonJS(src_exports) + __reExport(src_exports, __nccwpck_require__(68340), module.exports) + + // src/getProfileName.ts + var ENV_PROFILE = 'AWS_PROFILE' + var DEFAULT_PROFILE = 'default' + var getProfileName = /* @__PURE__ */ __name( + init => init.profile || process.env[ENV_PROFILE] || DEFAULT_PROFILE, + 'getProfileName' + ) - if (node == null) { - // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) - node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]]; - } + // src/index.ts + __reExport(src_exports, __nccwpck_require__(24740), module.exports) + __reExport(src_exports, __nccwpck_require__(69678), module.exports) + + // src/loadSharedConfigFiles.ts + + // src/getConfigData.ts + var import_types = __nccwpck_require__(55756) + var getConfigData = /* @__PURE__ */ __name( + data => + Object.entries(data) + .filter(([key]) => { + const indexOfSeparator = key.indexOf(CONFIG_PREFIX_SEPARATOR) + if (indexOfSeparator === -1) { + return false + } + return Object.values(import_types.IniSectionType).includes( + key.substring(0, indexOfSeparator) + ) + }) + .reduce( + (acc, [key, value]) => { + const indexOfSeparator = key.indexOf(CONFIG_PREFIX_SEPARATOR) + const updatedKey = + key.substring(0, indexOfSeparator) === + import_types.IniSectionType.PROFILE + ? key.substring(indexOfSeparator + 1) + : key + acc[updatedKey] = value + return acc + }, + { + // Populate default profile, if present. + ...(data.default && { default: data.default }) + } + ), + 'getConfigData' + ) - if (clockseq == null) { - // Per 4.2.2, randomize (14 bit) clockseq - clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff; - } - } // UUID timestamps are 100 nano-second units since the Gregorian epoch, - // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so - // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' - // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. + // src/getConfigFilepath.ts + var import_path = __nccwpck_require__(71017) + var import_getHomeDir = __nccwpck_require__(68340) + var ENV_CONFIG_PATH = 'AWS_CONFIG_FILE' + var getConfigFilepath = /* @__PURE__ */ __name( + () => + process.env[ENV_CONFIG_PATH] || + (0, import_path.join)( + (0, import_getHomeDir.getHomeDir)(), + '.aws', + 'config' + ), + 'getConfigFilepath' + ) + // src/getCredentialsFilepath.ts + + var import_getHomeDir2 = __nccwpck_require__(68340) + var ENV_CREDENTIALS_PATH = 'AWS_SHARED_CREDENTIALS_FILE' + var getCredentialsFilepath = /* @__PURE__ */ __name( + () => + process.env[ENV_CREDENTIALS_PATH] || + (0, import_path.join)( + (0, import_getHomeDir2.getHomeDir)(), + '.aws', + 'credentials' + ), + 'getCredentialsFilepath' + ) - let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock - // cycle to simulate higher resolution clock + // src/loadSharedConfigFiles.ts + var import_getHomeDir3 = __nccwpck_require__(68340) + + // src/parseIni.ts + + var prefixKeyRegex = /^([\w-]+)\s(["'])?([\w-@\+\.%:/]+)\2$/ + var profileNameBlockList = ['__proto__', 'profile __proto__'] + var parseIni = /* @__PURE__ */ __name(iniData => { + const map = {} + let currentSection + let currentSubSection + for (const iniLine of iniData.split(/\r?\n/)) { + const trimmedLine = iniLine.split(/(^|\s)[;#]/)[0].trim() + const isSection = + trimmedLine[0] === '[' && + trimmedLine[trimmedLine.length - 1] === ']' + if (isSection) { + currentSection = void 0 + currentSubSection = void 0 + const sectionName = trimmedLine.substring(1, trimmedLine.length - 1) + const matches = prefixKeyRegex.exec(sectionName) + if (matches) { + const [, prefix, , name] = matches + if (Object.values(import_types.IniSectionType).includes(prefix)) { + currentSection = [prefix, name].join(CONFIG_PREFIX_SEPARATOR) + } + } else { + currentSection = sectionName + } + if (profileNameBlockList.includes(sectionName)) { + throw new Error(`Found invalid profile name "${sectionName}"`) + } + } else if (currentSection) { + const indexOfEqualsSign = trimmedLine.indexOf('=') + if (![0, -1].includes(indexOfEqualsSign)) { + const [name, value] = [ + trimmedLine.substring(0, indexOfEqualsSign).trim(), + trimmedLine.substring(indexOfEqualsSign + 1).trim() + ] + if (value === '') { + currentSubSection = name + } else { + if (currentSubSection && iniLine.trimStart() === iniLine) { + currentSubSection = void 0 + } + map[currentSection] = map[currentSection] || {} + const key = currentSubSection + ? [currentSubSection, name].join(CONFIG_PREFIX_SEPARATOR) + : name + map[currentSection][key] = value + } + } + } + } + return map + }, 'parseIni') + + // src/loadSharedConfigFiles.ts + var import_slurpFile = __nccwpck_require__(19155) + var swallowError = /* @__PURE__ */ __name(() => ({}), 'swallowError') + var CONFIG_PREFIX_SEPARATOR = '.' + var loadSharedConfigFiles = /* @__PURE__ */ __name(async (init = {}) => { + const { + filepath = getCredentialsFilepath(), + configFilepath = getConfigFilepath() + } = init + const homeDir = (0, import_getHomeDir3.getHomeDir)() + const relativeHomeDirPrefix = '~/' + let resolvedFilepath = filepath + if (filepath.startsWith(relativeHomeDirPrefix)) { + resolvedFilepath = (0, import_path.join)(homeDir, filepath.slice(2)) + } + let resolvedConfigFilepath = configFilepath + if (configFilepath.startsWith(relativeHomeDirPrefix)) { + resolvedConfigFilepath = (0, import_path.join)( + homeDir, + configFilepath.slice(2) + ) + } + const parsedFiles = await Promise.all([ + (0, import_slurpFile.slurpFile)(resolvedConfigFilepath, { + ignoreCache: init.ignoreCache + }) + .then(parseIni) + .then(getConfigData) + .catch(swallowError), + (0, import_slurpFile.slurpFile)(resolvedFilepath, { + ignoreCache: init.ignoreCache + }) + .then(parseIni) + .catch(swallowError) + ]) + return { + configFile: parsedFiles[0], + credentialsFile: parsedFiles[1] + } + }, 'loadSharedConfigFiles') - let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs) + // src/getSsoSessionData.ts - const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression + var 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' + ) - if (dt < 0 && options.clockseq === undefined) { - clockseq = clockseq + 1 & 0x3fff; - } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new - // time interval + // src/loadSsoSessionData.ts + var import_slurpFile2 = __nccwpck_require__(19155) + var swallowError2 = /* @__PURE__ */ __name(() => ({}), 'swallowError') + var loadSsoSessionData = /* @__PURE__ */ __name( + async (init = {}) => + (0, import_slurpFile2.slurpFile)( + init.configFilepath ?? getConfigFilepath() + ) + .then(parseIni) + .then(getSsoSessionData) + .catch(swallowError2), + 'loadSsoSessionData' + ) + // src/mergeConfigFiles.ts + var mergeConfigFiles = /* @__PURE__ */ __name((...files) => { + const merged = {} + for (const file of files) { + for (const [key, values] of Object.entries(file)) { + if (merged[key] !== void 0) { + Object.assign(merged[key], values) + } else { + merged[key] = values + } + } + } + return merged + }, 'mergeConfigFiles') - if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { - nsecs = 0; - } // Per 4.2.1.2 Throw error if too many uuids are requested + // src/parseKnownFiles.ts + var parseKnownFiles = /* @__PURE__ */ __name(async init => { + const parsedFiles = await loadSharedConfigFiles(init) + return mergeConfigFiles( + parsedFiles.configFile, + parsedFiles.credentialsFile + ) + }, 'parseKnownFiles') + // Annotate the CommonJS export names for ESM import in node: + 0 && 0 - if (nsecs >= 10000) { - throw new Error("uuid.v1(): Can't create more than 10M uuids/sec"); - } + /***/ + }, - _lastMSecs = msecs; - _lastNSecs = nsecs; - _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch + /***/ 19155: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.slurpFile = void 0 + const fs_1 = __nccwpck_require__(57147) + const { readFile } = fs_1.promises + const filePromisesHash = {} + const slurpFile = (path, options) => { + if ( + !filePromisesHash[path] || + (options === null || options === void 0 + ? void 0 + : options.ignoreCache) + ) { + filePromisesHash[path] = readFile(path, 'utf8') + } + return filePromisesHash[path] + } + exports.slurpFile = slurpFile - msecs += 12219292800000; // `time_low` + /***/ + }, - const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; - b[i++] = tl >>> 24 & 0xff; - b[i++] = tl >>> 16 & 0xff; - b[i++] = tl >>> 8 & 0xff; - b[i++] = tl & 0xff; // `time_mid` + /***/ 11528: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + SignatureV4: () => SignatureV4, + clearCredentialCache: () => clearCredentialCache, + createScope: () => createScope, + getCanonicalHeaders: () => getCanonicalHeaders, + getCanonicalQuery: () => getCanonicalQuery, + getPayloadHash: () => getPayloadHash, + getSigningKey: () => getSigningKey, + moveHeadersToQuery: () => moveHeadersToQuery, + prepareRequest: () => prepareRequest + }) + module.exports = __toCommonJS(src_exports) + + // src/SignatureV4.ts + + var import_util_middleware = __nccwpck_require__(2390) + + var import_util_utf84 = __nccwpck_require__(41895) + + // src/constants.ts + var ALGORITHM_QUERY_PARAM = 'X-Amz-Algorithm' + var CREDENTIAL_QUERY_PARAM = 'X-Amz-Credential' + var AMZ_DATE_QUERY_PARAM = 'X-Amz-Date' + var SIGNED_HEADERS_QUERY_PARAM = 'X-Amz-SignedHeaders' + var EXPIRES_QUERY_PARAM = 'X-Amz-Expires' + var SIGNATURE_QUERY_PARAM = 'X-Amz-Signature' + var TOKEN_QUERY_PARAM = 'X-Amz-Security-Token' + var AUTH_HEADER = 'authorization' + var AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase() + var DATE_HEADER = 'date' + var GENERATED_HEADERS = [AUTH_HEADER, AMZ_DATE_HEADER, DATE_HEADER] + var SIGNATURE_HEADER = SIGNATURE_QUERY_PARAM.toLowerCase() + var SHA256_HEADER = 'x-amz-content-sha256' + var TOKEN_HEADER = TOKEN_QUERY_PARAM.toLowerCase() + var ALWAYS_UNSIGNABLE_HEADERS = { + authorization: true, + 'cache-control': true, + connection: true, + expect: true, + from: true, + 'keep-alive': true, + 'max-forwards': true, + pragma: true, + referer: true, + te: true, + trailer: true, + 'transfer-encoding': true, + upgrade: true, + 'user-agent': true, + 'x-amzn-trace-id': true + } + var PROXY_HEADER_PATTERN = /^proxy-/ + var SEC_HEADER_PATTERN = /^sec-/ + var ALGORITHM_IDENTIFIER = 'AWS4-HMAC-SHA256' + var EVENT_ALGORITHM_IDENTIFIER = 'AWS4-HMAC-SHA256-PAYLOAD' + var UNSIGNED_PAYLOAD = 'UNSIGNED-PAYLOAD' + var MAX_CACHE_SIZE = 50 + var KEY_TYPE_IDENTIFIER = 'aws4_request' + var MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7 + + // src/credentialDerivation.ts + var import_util_hex_encoding = __nccwpck_require__(45364) + var import_util_utf8 = __nccwpck_require__(41895) + var signingKeyCache = {} + var cacheQueue = [] + var createScope = /* @__PURE__ */ __name( + (shortDate, region, service) => + `${shortDate}/${region}/${service}/${KEY_TYPE_IDENTIFIER}`, + 'createScope' + ) + var getSigningKey = /* @__PURE__ */ __name( + async (sha256Constructor, credentials, shortDate, region, service) => { + const credsHash = await hmac( + sha256Constructor, + credentials.secretAccessKey, + credentials.accessKeyId + ) + const cacheKey = `${shortDate}:${region}:${service}:${(0, import_util_hex_encoding.toHex)(credsHash)}:${credentials.sessionToken}` + if (cacheKey in signingKeyCache) { + return signingKeyCache[cacheKey] + } + cacheQueue.push(cacheKey) + while (cacheQueue.length > MAX_CACHE_SIZE) { + delete signingKeyCache[cacheQueue.shift()] + } + let key = `AWS4${credentials.secretAccessKey}` + for (const signable of [ + shortDate, + region, + service, + KEY_TYPE_IDENTIFIER + ]) { + key = await hmac(sha256Constructor, key, signable) + } + return (signingKeyCache[cacheKey] = key) + }, + 'getSigningKey' + ) + var clearCredentialCache = /* @__PURE__ */ __name(() => { + cacheQueue.length = 0 + Object.keys(signingKeyCache).forEach(cacheKey => { + delete signingKeyCache[cacheKey] + }) + }, 'clearCredentialCache') + var hmac = /* @__PURE__ */ __name((ctor, secret, data) => { + const hash = new ctor(secret) + hash.update((0, import_util_utf8.toUint8Array)(data)) + return hash.digest() + }, 'hmac') + + // src/getCanonicalHeaders.ts + var getCanonicalHeaders = /* @__PURE__ */ __name( + ({ headers }, unsignableHeaders, signableHeaders) => { + const canonical = {} + for (const headerName of Object.keys(headers).sort()) { + if (headers[headerName] == void 0) { + continue + } + const canonicalHeaderName = headerName.toLowerCase() + if ( + canonicalHeaderName in ALWAYS_UNSIGNABLE_HEADERS || + (unsignableHeaders == null + ? void 0 + : unsignableHeaders.has(canonicalHeaderName)) || + PROXY_HEADER_PATTERN.test(canonicalHeaderName) || + SEC_HEADER_PATTERN.test(canonicalHeaderName) + ) { + if ( + !signableHeaders || + (signableHeaders && !signableHeaders.has(canonicalHeaderName)) + ) { + continue + } + } + canonical[canonicalHeaderName] = headers[headerName] + .trim() + .replace(/\s+/g, ' ') + } + return canonical + }, + 'getCanonicalHeaders' + ) - const tmh = msecs / 0x100000000 * 10000 & 0xfffffff; - b[i++] = tmh >>> 8 & 0xff; - b[i++] = tmh & 0xff; // `time_high_and_version` + // src/getCanonicalQuery.ts + var import_util_uri_escape = __nccwpck_require__(54197) + var getCanonicalQuery = /* @__PURE__ */ __name(({ query = {} }) => { + const keys = [] + const serialized = {} + for (const key of Object.keys(query).sort()) { + if (key.toLowerCase() === SIGNATURE_HEADER) { + continue + } + keys.push(key) + const value = query[key] + if (typeof value === 'string') { + serialized[key] = + `${(0, import_util_uri_escape.escapeUri)(key)}=${(0, import_util_uri_escape.escapeUri)(value)}` + } else if (Array.isArray(value)) { + serialized[key] = value + .slice(0) + .reduce( + (encoded, value2) => + encoded.concat([ + `${(0, import_util_uri_escape.escapeUri)(key)}=${(0, import_util_uri_escape.escapeUri)(value2)}` + ]), + [] + ) + .sort() + .join('&') + } + } + return keys + .map(key => serialized[key]) + .filter(serialized2 => serialized2) + .join('&') + }, 'getCanonicalQuery') + + // src/getPayloadHash.ts + var import_is_array_buffer = __nccwpck_require__(10780) + + var import_util_utf82 = __nccwpck_require__(41895) + var getPayloadHash = /* @__PURE__ */ __name( + async ({ headers, body }, hashConstructor) => { + for (const headerName of Object.keys(headers)) { + if (headerName.toLowerCase() === SHA256_HEADER) { + return headers[headerName] + } + } + if (body == void 0) { + return 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855' + } else if ( + typeof body === 'string' || + ArrayBuffer.isView(body) || + (0, import_is_array_buffer.isArrayBuffer)(body) + ) { + const hashCtor = new hashConstructor() + hashCtor.update((0, import_util_utf82.toUint8Array)(body)) + return (0, import_util_hex_encoding.toHex)(await hashCtor.digest()) + } + return UNSIGNED_PAYLOAD + }, + 'getPayloadHash' + ) - b[i++] = tmh >>> 24 & 0xf | 0x10; // include version + // src/HeaderFormatter.ts - b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) + var import_util_utf83 = __nccwpck_require__(41895) + var _HeaderFormatter = class _HeaderFormatter { + format(headers) { + const chunks = [] + for (const headerName of Object.keys(headers)) { + const bytes = (0, import_util_utf83.fromUtf8)(headerName) + chunks.push( + Uint8Array.from([bytes.byteLength]), + bytes, + this.formatHeaderValue(headers[headerName]) + ) + } + const out = new Uint8Array( + chunks.reduce((carry, bytes) => carry + bytes.byteLength, 0) + ) + let position = 0 + for (const chunk of chunks) { + out.set(chunk, position) + position += chunk.byteLength + } + return out + } + formatHeaderValue(header) { + switch (header.type) { + case 'boolean': + return Uint8Array.from([ + header.value ? 0 /* boolTrue */ : 1 /* boolFalse */ + ]) + case 'byte': + return Uint8Array.from([2 /* byte */, header.value]) + case 'short': + const shortView = new DataView(new ArrayBuffer(3)) + shortView.setUint8(0, 3 /* short */) + shortView.setInt16(1, header.value, false) + return new Uint8Array(shortView.buffer) + case 'integer': + const intView = new DataView(new ArrayBuffer(5)) + intView.setUint8(0, 4 /* integer */) + intView.setInt32(1, header.value, false) + return new Uint8Array(intView.buffer) + case 'long': + const longBytes = new Uint8Array(9) + longBytes[0] = 5 /* long */ + longBytes.set(header.value.bytes, 1) + return longBytes + case 'binary': + const binView = new DataView( + new ArrayBuffer(3 + header.value.byteLength) + ) + binView.setUint8(0, 6 /* byteArray */) + binView.setUint16(1, header.value.byteLength, false) + const binBytes = new Uint8Array(binView.buffer) + binBytes.set(header.value, 3) + return binBytes + case 'string': + const utf8Bytes = (0, import_util_utf83.fromUtf8)(header.value) + const strView = new DataView( + new ArrayBuffer(3 + utf8Bytes.byteLength) + ) + strView.setUint8(0, 7 /* string */) + strView.setUint16(1, utf8Bytes.byteLength, false) + const strBytes = new Uint8Array(strView.buffer) + strBytes.set(utf8Bytes, 3) + return strBytes + case 'timestamp': + const tsBytes = new Uint8Array(9) + tsBytes[0] = 8 /* timestamp */ + tsBytes.set(Int64.fromNumber(header.value.valueOf()).bytes, 1) + return tsBytes + case 'uuid': + if (!UUID_PATTERN.test(header.value)) { + throw new Error(`Invalid UUID received: ${header.value}`) + } + const uuidBytes = new Uint8Array(17) + uuidBytes[0] = 9 /* uuid */ + uuidBytes.set( + (0, import_util_hex_encoding.fromHex)( + header.value.replace(/\-/g, '') + ), + 1 + ) + return uuidBytes + } + } + } + __name(_HeaderFormatter, 'HeaderFormatter') + var HeaderFormatter = _HeaderFormatter + var UUID_PATTERN = + /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/ + var _Int64 = class _Int64 { + constructor(bytes) { + this.bytes = bytes + if (bytes.byteLength !== 8) { + throw new Error('Int64 buffers must be exactly 8 bytes') + } + } + static fromNumber(number) { + if (number > 9223372036854776e3 || number < -9223372036854776e3) { + throw new Error( + `${number} is too large (or, if negative, too small) to represent as an Int64` + ) + } + const bytes = new Uint8Array(8) + for ( + let i = 7, remaining = Math.abs(Math.round(number)); + i > -1 && remaining > 0; + i--, remaining /= 256 + ) { + bytes[i] = remaining + } + if (number < 0) { + negate(bytes) + } + return new _Int64(bytes) + } + /** + * Called implicitly by infix arithmetic operators. + */ + valueOf() { + const bytes = this.bytes.slice(0) + const negative = bytes[0] & 128 + if (negative) { + negate(bytes) + } + return ( + parseInt((0, import_util_hex_encoding.toHex)(bytes), 16) * + (negative ? -1 : 1) + ) + } + toString() { + return String(this.valueOf()) + } + } + __name(_Int64, 'Int64') + var Int64 = _Int64 + function negate(bytes) { + for (let i = 0; i < 8; i++) { + bytes[i] ^= 255 + } + for (let i = 7; i > -1; i--) { + bytes[i]++ + if (bytes[i] !== 0) break + } + } + __name(negate, 'negate') - b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low` + // src/headerUtil.ts + var hasHeader = /* @__PURE__ */ __name((soughtHeader, headers) => { + soughtHeader = soughtHeader.toLowerCase() + for (const headerName of Object.keys(headers)) { + if (soughtHeader === headerName.toLowerCase()) { + return true + } + } + return false + }, 'hasHeader') + + // src/moveHeadersToQuery.ts + var import_protocol_http = __nccwpck_require__(64418) + var moveHeadersToQuery = /* @__PURE__ */ __name( + (request, options = {}) => { + var _a + const { headers, query = {} } = + import_protocol_http.HttpRequest.clone(request) + for (const name of Object.keys(headers)) { + const lname = name.toLowerCase() + if ( + lname.slice(0, 6) === 'x-amz-' && + !((_a = options.unhoistableHeaders) == null + ? void 0 + : _a.has(lname)) + ) { + query[name] = headers[name] + delete headers[name] + } + } + return { + ...request, + headers, + query + } + }, + 'moveHeadersToQuery' + ) - b[i++] = clockseq & 0xff; // `node` + // src/prepareRequest.ts - for (let n = 0; n < 6; ++n) { - b[i + n] = node[n]; - } + var prepareRequest = /* @__PURE__ */ __name(request => { + request = import_protocol_http.HttpRequest.clone(request) + for (const headerName of Object.keys(request.headers)) { + if (GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) { + delete request.headers[headerName] + } + } + return request + }, 'prepareRequest') - return buf || (0, _stringify.unsafeStringify)(b); -} + // src/utilDate.ts + var iso8601 = /* @__PURE__ */ __name( + time => + toDate(time) + .toISOString() + .replace(/\.\d{3}Z$/, 'Z'), + 'iso8601' + ) + var toDate = /* @__PURE__ */ __name(time => { + if (typeof time === 'number') { + return new Date(time * 1e3) + } + if (typeof time === 'string') { + if (Number(time)) { + return new Date(Number(time) * 1e3) + } + return new Date(time) + } + return time + }, 'toDate') + + // src/SignatureV4.ts + var _SignatureV4 = class _SignatureV4 { + constructor({ + applyChecksum, + credentials, + region, + service, + sha256, + uriEscapePath = true + }) { + this.headerFormatter = new HeaderFormatter() + this.service = service + this.sha256 = sha256 + this.uriEscapePath = uriEscapePath + this.applyChecksum = + typeof applyChecksum === 'boolean' ? applyChecksum : true + this.regionProvider = (0, import_util_middleware.normalizeProvider)( + region + ) + this.credentialProvider = (0, + import_util_middleware.normalizeProvider)(credentials) + } + async presign(originalRequest, options = {}) { + const { + signingDate = /* @__PURE__ */ new Date(), + expiresIn = 3600, + unsignableHeaders, + unhoistableHeaders, + signableHeaders, + signingRegion, + signingService + } = options + const credentials = await this.credentialProvider() + this.validateResolvedCredentials(credentials) + const region = signingRegion ?? (await this.regionProvider()) + const { longDate, shortDate } = formatDate(signingDate) + if (expiresIn > MAX_PRESIGNED_TTL) { + return Promise.reject( + 'Signature version 4 presigned URLs must have an expiration date less than one week in the future' + ) + } + const scope = createScope( + shortDate, + region, + signingService ?? this.service + ) + const request = moveHeadersToQuery(prepareRequest(originalRequest), { + unhoistableHeaders + }) + if (credentials.sessionToken) { + request.query[TOKEN_QUERY_PARAM] = credentials.sessionToken + } + request.query[ALGORITHM_QUERY_PARAM] = ALGORITHM_IDENTIFIER + request.query[CREDENTIAL_QUERY_PARAM] = + `${credentials.accessKeyId}/${scope}` + request.query[AMZ_DATE_QUERY_PARAM] = longDate + request.query[EXPIRES_QUERY_PARAM] = expiresIn.toString(10) + const canonicalHeaders = getCanonicalHeaders( + request, + unsignableHeaders, + signableHeaders + ) + request.query[SIGNED_HEADERS_QUERY_PARAM] = + getCanonicalHeaderList(canonicalHeaders) + request.query[SIGNATURE_QUERY_PARAM] = await this.getSignature( + longDate, + scope, + this.getSigningKey(credentials, region, shortDate, signingService), + this.createCanonicalRequest( + request, + canonicalHeaders, + await getPayloadHash(originalRequest, this.sha256) + ) + ) + return request + } + async sign(toSign, options) { + if (typeof toSign === 'string') { + return this.signString(toSign, options) + } else if (toSign.headers && toSign.payload) { + return this.signEvent(toSign, options) + } else if (toSign.message) { + return this.signMessage(toSign, options) + } else { + return this.signRequest(toSign, options) + } + } + async signEvent( + { headers, payload }, + { + signingDate = /* @__PURE__ */ new Date(), + priorSignature, + signingRegion, + signingService + } + ) { + const region = signingRegion ?? (await this.regionProvider()) + const { shortDate, longDate } = formatDate(signingDate) + const scope = createScope( + shortDate, + region, + signingService ?? this.service + ) + const hashedPayload = await getPayloadHash( + { headers: {}, body: payload }, + this.sha256 + ) + const hash = new this.sha256() + hash.update(headers) + const hashedHeaders = (0, import_util_hex_encoding.toHex)( + await hash.digest() + ) + const stringToSign = [ + EVENT_ALGORITHM_IDENTIFIER, + longDate, + scope, + priorSignature, + hashedHeaders, + hashedPayload + ].join('\n') + return this.signString(stringToSign, { + signingDate, + signingRegion: region, + signingService + }) + } + async signMessage( + signableMessage, + { + signingDate = /* @__PURE__ */ new Date(), + signingRegion, + signingService + } + ) { + const promise = this.signEvent( + { + headers: this.headerFormatter.format( + signableMessage.message.headers + ), + payload: signableMessage.message.body + }, + { + signingDate, + signingRegion, + signingService, + priorSignature: signableMessage.priorSignature + } + ) + return promise.then(signature => { + return { message: signableMessage.message, signature } + }) + } + async signString( + stringToSign, + { + signingDate = /* @__PURE__ */ new Date(), + signingRegion, + signingService + } = {} + ) { + const credentials = await this.credentialProvider() + this.validateResolvedCredentials(credentials) + const region = signingRegion ?? (await this.regionProvider()) + const { shortDate } = formatDate(signingDate) + const hash = new this.sha256( + await this.getSigningKey( + credentials, + region, + shortDate, + signingService + ) + ) + hash.update((0, import_util_utf84.toUint8Array)(stringToSign)) + return (0, import_util_hex_encoding.toHex)(await hash.digest()) + } + async signRequest( + requestToSign, + { + signingDate = /* @__PURE__ */ new Date(), + signableHeaders, + unsignableHeaders, + signingRegion, + signingService + } = {} + ) { + const credentials = await this.credentialProvider() + this.validateResolvedCredentials(credentials) + const region = signingRegion ?? (await this.regionProvider()) + const request = prepareRequest(requestToSign) + const { longDate, shortDate } = formatDate(signingDate) + const scope = createScope( + shortDate, + region, + signingService ?? this.service + ) + request.headers[AMZ_DATE_HEADER] = longDate + if (credentials.sessionToken) { + request.headers[TOKEN_HEADER] = credentials.sessionToken + } + const payloadHash = await getPayloadHash(request, this.sha256) + if ( + !hasHeader(SHA256_HEADER, request.headers) && + this.applyChecksum + ) { + request.headers[SHA256_HEADER] = payloadHash + } + const canonicalHeaders = getCanonicalHeaders( + request, + unsignableHeaders, + signableHeaders + ) + const signature = await this.getSignature( + longDate, + scope, + this.getSigningKey(credentials, region, shortDate, signingService), + this.createCanonicalRequest(request, canonicalHeaders, payloadHash) + ) + request.headers[AUTH_HEADER] = + `${ALGORITHM_IDENTIFIER} Credential=${credentials.accessKeyId}/${scope}, SignedHeaders=${getCanonicalHeaderList(canonicalHeaders)}, Signature=${signature}` + return request + } + createCanonicalRequest(request, canonicalHeaders, payloadHash) { + const sortedHeaders = Object.keys(canonicalHeaders).sort() + return `${request.method} +${this.getCanonicalPath(request)} +${getCanonicalQuery(request)} +${sortedHeaders.map(name => `${name}:${canonicalHeaders[name]}`).join('\n')} -var _default = v1; -exports["default"] = _default; +${sortedHeaders.join(';')} +${payloadHash}` + } + async createStringToSign(longDate, credentialScope, canonicalRequest) { + const hash = new this.sha256() + hash.update((0, import_util_utf84.toUint8Array)(canonicalRequest)) + const hashedRequest = await hash.digest() + return `${ALGORITHM_IDENTIFIER} +${longDate} +${credentialScope} +${(0, import_util_hex_encoding.toHex)(hashedRequest)}` + } + getCanonicalPath({ path }) { + if (this.uriEscapePath) { + const normalizedPathSegments = [] + for (const pathSegment of path.split('/')) { + if ((pathSegment == null ? void 0 : pathSegment.length) === 0) + continue + if (pathSegment === '.') continue + if (pathSegment === '..') { + normalizedPathSegments.pop() + } else { + normalizedPathSegments.push(pathSegment) + } + } + const normalizedPath = `${(path == null ? void 0 : path.startsWith('/')) ? '/' : ''}${normalizedPathSegments.join('/')}${normalizedPathSegments.length > 0 && (path == null ? void 0 : path.endsWith('/')) ? '/' : ''}` + const doubleEncoded = (0, import_util_uri_escape.escapeUri)( + normalizedPath + ) + return doubleEncoded.replace(/%2F/g, '/') + } + return path + } + async getSignature( + longDate, + credentialScope, + keyPromise, + canonicalRequest + ) { + const stringToSign = await this.createStringToSign( + longDate, + credentialScope, + canonicalRequest + ) + const hash = new this.sha256(await keyPromise) + hash.update((0, import_util_utf84.toUint8Array)(stringToSign)) + return (0, import_util_hex_encoding.toHex)(await hash.digest()) + } + getSigningKey(credentials, region, shortDate, service) { + return getSigningKey( + this.sha256, + credentials, + shortDate, + region, + service || this.service + ) + } + validateResolvedCredentials(credentials) { + if ( + typeof credentials !== 'object' || // @ts-expect-error: Property 'accessKeyId' does not exist on type 'object'.ts(2339) + typeof credentials.accessKeyId !== 'string' || // @ts-expect-error: Property 'secretAccessKey' does not exist on type 'object'.ts(2339) + typeof credentials.secretAccessKey !== 'string' + ) { + throw new Error('Resolved credential object is not valid') + } + } + } + __name(_SignatureV4, 'SignatureV4') + var SignatureV4 = _SignatureV4 + var formatDate = /* @__PURE__ */ __name(now => { + const longDate = iso8601(now).replace(/[\-:]/g, '') + return { + longDate, + shortDate: longDate.slice(0, 8) + } + }, 'formatDate') + var getCanonicalHeaderList = /* @__PURE__ */ __name( + headers => Object.keys(headers).sort().join(';'), + 'getCanonicalHeaderList' + ) + // Annotate the CommonJS export names for ESM import in node: -/***/ }), + 0 && 0 -/***/ 9465: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + /***/ + }, -"use strict"; + /***/ 63570: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + Client: () => Client, + Command: () => Command, + LazyJsonString: () => LazyJsonString, + NoOpLogger: () => NoOpLogger, + SENSITIVE_STRING: () => SENSITIVE_STRING, + ServiceException: () => ServiceException, + StringWrapper: () => StringWrapper, + _json: () => _json, + collectBody: () => collectBody, + convertMap: () => convertMap, + createAggregatedClient: () => createAggregatedClient, + dateToUtcString: () => dateToUtcString, + decorateServiceException: () => decorateServiceException, + emitWarningIfUnsupportedVersion: () => emitWarningIfUnsupportedVersion, + expectBoolean: () => expectBoolean, + expectByte: () => expectByte, + expectFloat32: () => expectFloat32, + expectInt: () => expectInt, + expectInt32: () => expectInt32, + expectLong: () => expectLong, + expectNonNull: () => expectNonNull, + expectNumber: () => expectNumber, + expectObject: () => expectObject, + expectShort: () => expectShort, + expectString: () => expectString, + expectUnion: () => expectUnion, + extendedEncodeURIComponent: () => extendedEncodeURIComponent, + getArrayIfSingleItem: () => getArrayIfSingleItem, + getDefaultClientConfiguration: () => getDefaultClientConfiguration, + getDefaultExtensionConfiguration: () => + getDefaultExtensionConfiguration, + getValueFromTextNode: () => getValueFromTextNode, + handleFloat: () => handleFloat, + limitedParseDouble: () => limitedParseDouble, + limitedParseFloat: () => limitedParseFloat, + limitedParseFloat32: () => limitedParseFloat32, + loadConfigsForDefaultMode: () => loadConfigsForDefaultMode, + logger: () => logger, + map: () => map, + parseBoolean: () => parseBoolean, + parseEpochTimestamp: () => parseEpochTimestamp, + parseRfc3339DateTime: () => parseRfc3339DateTime, + parseRfc3339DateTimeWithOffset: () => parseRfc3339DateTimeWithOffset, + parseRfc7231DateTime: () => parseRfc7231DateTime, + resolveDefaultRuntimeConfig: () => resolveDefaultRuntimeConfig, + resolvedPath: () => resolvedPath, + serializeDateTime: () => serializeDateTime, + serializeFloat: () => serializeFloat, + splitEvery: () => splitEvery, + strictParseByte: () => strictParseByte, + strictParseDouble: () => strictParseDouble, + strictParseFloat: () => strictParseFloat, + strictParseFloat32: () => strictParseFloat32, + strictParseInt: () => strictParseInt, + strictParseInt32: () => strictParseInt32, + strictParseLong: () => strictParseLong, + strictParseShort: () => strictParseShort, + take: () => take, + throwDefaultError: () => throwDefaultError, + withBaseException: () => withBaseException + }) + module.exports = __toCommonJS(src_exports) + + // src/NoOpLogger.ts + var _NoOpLogger = class _NoOpLogger { + trace() {} + debug() {} + info() {} + warn() {} + error() {} + } + __name(_NoOpLogger, 'NoOpLogger') + var NoOpLogger = _NoOpLogger + + // src/client.ts + var import_middleware_stack = __nccwpck_require__(97911) + var _Client = class _Client { + constructor(config) { + this.config = config + this.middlewareStack = (0, import_middleware_stack.constructStack)() + } + send(command, optionsOrCb, cb) { + const options = + typeof optionsOrCb !== 'function' ? optionsOrCb : void 0 + const callback = typeof optionsOrCb === 'function' ? optionsOrCb : cb + const useHandlerCache = + options === void 0 && this.config.cacheMiddleware === true + let handler + if (useHandlerCache) { + if (!this.handlers) { + this.handlers = /* @__PURE__ */ new WeakMap() + } + const handlers = this.handlers + if (handlers.has(command.constructor)) { + handler = handlers.get(command.constructor) + } else { + handler = command.resolveMiddleware( + this.middlewareStack, + this.config, + options + ) + handlers.set(command.constructor, handler) + } + } else { + delete this.handlers + handler = command.resolveMiddleware( + this.middlewareStack, + this.config, + options + ) + } + if (callback) { + handler(command) + .then( + result => callback(null, result.output), + err => callback(err) + ) + .catch( + // prevent any errors thrown in the callback from triggering an + // unhandled promise rejection + () => {} + ) + } else { + return handler(command).then(result => result.output) + } + } + destroy() { + var _a, _b, _c + ;(_c = + (_b = (_a = this.config) == null ? void 0 : _a.requestHandler) == + null + ? void 0 + : _b.destroy) == null + ? void 0 + : _c.call(_b) + delete this.handlers + } + } + __name(_Client, 'Client') + var Client = _Client + + // src/collect-stream-body.ts + var import_util_stream = __nccwpck_require__(96607) + var collectBody = /* @__PURE__ */ __name( + async (streamBody = new Uint8Array(), context) => { + if (streamBody instanceof Uint8Array) { + return import_util_stream.Uint8ArrayBlobAdapter.mutate(streamBody) + } + if (!streamBody) { + return import_util_stream.Uint8ArrayBlobAdapter.mutate( + new Uint8Array() + ) + } + const fromContext = context.streamCollector(streamBody) + return import_util_stream.Uint8ArrayBlobAdapter.mutate( + await fromContext + ) + }, + 'collectBody' + ) + // src/command.ts -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + var import_types = __nccwpck_require__(55756) + var _Command = class _Command { + constructor() { + this.middlewareStack = (0, import_middleware_stack.constructStack)() + } + /** + * Factory for Command ClassBuilder. + * @internal + */ + static classBuilder() { + return new ClassBuilder() + } + /** + * @internal + */ + resolveMiddlewareWithContext( + clientStack, + configuration, + options, + { + middlewareFn, + clientName, + commandName, + inputFilterSensitiveLog, + outputFilterSensitiveLog, + smithyContext, + additionalContext, + CommandCtor + } + ) { + for (const mw of middlewareFn.bind(this)( + CommandCtor, + clientStack, + configuration, + options + )) { + this.middlewareStack.use(mw) + } + const stack = clientStack.concat(this.middlewareStack) + const { logger: logger2 } = configuration + const handlerExecutionContext = { + logger: logger2, + clientName, + commandName, + inputFilterSensitiveLog, + outputFilterSensitiveLog, + [import_types.SMITHY_CONTEXT_KEY]: { + commandInstance: this, + ...smithyContext + }, + ...additionalContext + } + const { requestHandler } = configuration + return stack.resolve( + request => requestHandler.handle(request.request, options || {}), + handlerExecutionContext + ) + } + } + __name(_Command, 'Command') + var Command = _Command + var _ClassBuilder = class _ClassBuilder { + constructor() { + this._init = () => {} + this._ep = {} + this._middlewareFn = () => [] + this._commandName = '' + this._clientName = '' + this._additionalContext = {} + this._smithyContext = {} + this._inputFilterSensitiveLog = _ => _ + this._outputFilterSensitiveLog = _ => _ + this._serializer = null + this._deserializer = null + } + /** + * Optional init callback. + */ + init(cb) { + this._init = cb + } + /** + * Set the endpoint parameter instructions. + */ + ep(endpointParameterInstructions) { + this._ep = endpointParameterInstructions + return this + } + /** + * Add any number of middleware. + */ + m(middlewareSupplier) { + this._middlewareFn = middlewareSupplier + return this + } + /** + * Set the initial handler execution context Smithy field. + */ + s(service, operation, smithyContext = {}) { + this._smithyContext = { + service, + operation, + ...smithyContext + } + return this + } + /** + * Set the initial handler execution context. + */ + c(additionalContext = {}) { + this._additionalContext = additionalContext + return this + } + /** + * Set constant string identifiers for the operation. + */ + n(clientName, commandName) { + this._clientName = clientName + this._commandName = commandName + return this + } + /** + * Set the input and output sensistive log filters. + */ + f(inputFilter = _ => _, outputFilter = _ => _) { + this._inputFilterSensitiveLog = inputFilter + this._outputFilterSensitiveLog = outputFilter + return this + } + /** + * Sets the serializer. + */ + ser(serializer) { + this._serializer = serializer + return this + } + /** + * Sets the deserializer. + */ + de(deserializer) { + this._deserializer = deserializer + return this + } + /** + * @returns a Command class with the classBuilder properties. + */ + build() { + var _a + const closure = this + let CommandRef + return (CommandRef = + ((_a = class extends Command { + /** + * @public + */ + constructor(...[input]) { + super() + /** + * @internal + */ + // @ts-ignore used in middlewareFn closure. + this.serialize = closure._serializer + /** + * @internal + */ + // @ts-ignore used in middlewareFn closure. + this.deserialize = closure._deserializer + this.input = input ?? {} + closure._init(this) + } + /** + * @public + */ + static getEndpointParameterInstructions() { + return closure._ep + } + /** + * @internal + */ + resolveMiddleware(stack, configuration, options) { + return this.resolveMiddlewareWithContext( + stack, + configuration, + options, + { + CommandCtor: CommandRef, + middlewareFn: closure._middlewareFn, + clientName: closure._clientName, + commandName: closure._commandName, + inputFilterSensitiveLog: closure._inputFilterSensitiveLog, + outputFilterSensitiveLog: closure._outputFilterSensitiveLog, + smithyContext: closure._smithyContext, + additionalContext: closure._additionalContext + } + ) + } + }), + __name(_a, 'CommandRef'), + _a)) + } + } + __name(_ClassBuilder, 'ClassBuilder') + var ClassBuilder = _ClassBuilder + + // src/constants.ts + var SENSITIVE_STRING = '***SensitiveInformation***' + + // src/create-aggregated-client.ts + var createAggregatedClient = /* @__PURE__ */ __name( + (commands, Client2) => { + for (const command of Object.keys(commands)) { + const CommandCtor = commands[command] + const methodImpl = /* @__PURE__ */ __name(async function ( + args, + optionsOrCb, + cb + ) { + const command2 = new CommandCtor(args) + if (typeof optionsOrCb === 'function') { + this.send(command2, optionsOrCb) + } else if (typeof cb === 'function') { + if (typeof optionsOrCb !== 'object') + throw new Error( + `Expected http options but got ${typeof optionsOrCb}` + ) + this.send(command2, optionsOrCb || {}, cb) + } else { + return this.send(command2, optionsOrCb) + } + }, 'methodImpl') + const methodName = ( + command[0].toLowerCase() + command.slice(1) + ).replace(/Command$/, '') + Client2.prototype[methodName] = methodImpl + } + }, + 'createAggregatedClient' + ) -var _v = _interopRequireDefault(__nccwpck_require__(2568)); + // src/parse-utils.ts + var parseBoolean = /* @__PURE__ */ __name(value => { + switch (value) { + case 'true': + return true + case 'false': + return false + default: + throw new Error(`Unable to parse boolean value "${value}"`) + } + }, 'parseBoolean') + var expectBoolean = /* @__PURE__ */ __name(value => { + if (value === null || value === void 0) { + return void 0 + } + if (typeof value === 'number') { + if (value === 0 || value === 1) { + logger.warn( + stackTraceWarning( + `Expected boolean, got ${typeof value}: ${value}` + ) + ) + } + if (value === 0) { + return false + } + if (value === 1) { + return true + } + } + if (typeof value === 'string') { + const lower = value.toLowerCase() + if (lower === 'false' || lower === 'true') { + logger.warn( + stackTraceWarning( + `Expected boolean, got ${typeof value}: ${value}` + ) + ) + } + if (lower === 'false') { + return false + } + if (lower === 'true') { + return true + } + } + if (typeof value === 'boolean') { + return value + } + throw new TypeError(`Expected boolean, got ${typeof value}: ${value}`) + }, 'expectBoolean') + var expectNumber = /* @__PURE__ */ __name(value => { + if (value === null || value === void 0) { + return void 0 + } + if (typeof value === 'string') { + const parsed = parseFloat(value) + if (!Number.isNaN(parsed)) { + if (String(parsed) !== String(value)) { + logger.warn( + stackTraceWarning( + `Expected number but observed string: ${value}` + ) + ) + } + return parsed + } + } + if (typeof value === 'number') { + return value + } + throw new TypeError(`Expected number, got ${typeof value}: ${value}`) + }, 'expectNumber') + var MAX_FLOAT = Math.ceil(2 ** 127 * (2 - 2 ** -23)) + var expectFloat32 = /* @__PURE__ */ __name(value => { + const expected = expectNumber(value) + if ( + expected !== void 0 && + !Number.isNaN(expected) && + expected !== Infinity && + expected !== -Infinity + ) { + if (Math.abs(expected) > MAX_FLOAT) { + throw new TypeError(`Expected 32-bit float, got ${value}`) + } + } + return expected + }, 'expectFloat32') + var expectLong = /* @__PURE__ */ __name(value => { + if (value === null || value === void 0) { + return void 0 + } + if (Number.isInteger(value) && !Number.isNaN(value)) { + return value + } + throw new TypeError(`Expected integer, got ${typeof value}: ${value}`) + }, 'expectLong') + var expectInt = expectLong + var expectInt32 = /* @__PURE__ */ __name( + value => expectSizedInt(value, 32), + 'expectInt32' + ) + var expectShort = /* @__PURE__ */ __name( + value => expectSizedInt(value, 16), + 'expectShort' + ) + var expectByte = /* @__PURE__ */ __name( + value => expectSizedInt(value, 8), + 'expectByte' + ) + var expectSizedInt = /* @__PURE__ */ __name((value, size) => { + const expected = expectLong(value) + if (expected !== void 0 && castInt(expected, size) !== expected) { + throw new TypeError(`Expected ${size}-bit integer, got ${value}`) + } + return expected + }, 'expectSizedInt') + var castInt = /* @__PURE__ */ __name((value, size) => { + switch (size) { + case 32: + return Int32Array.of(value)[0] + case 16: + return Int16Array.of(value)[0] + case 8: + return Int8Array.of(value)[0] + } + }, 'castInt') + var expectNonNull = /* @__PURE__ */ __name((value, location) => { + if (value === null || value === void 0) { + if (location) { + throw new TypeError(`Expected a non-null value for ${location}`) + } + throw new TypeError('Expected a non-null value') + } + return value + }, 'expectNonNull') + var expectObject = /* @__PURE__ */ __name(value => { + if (value === null || value === void 0) { + return void 0 + } + if (typeof value === 'object' && !Array.isArray(value)) { + return value + } + const receivedType = Array.isArray(value) ? 'array' : typeof value + throw new TypeError(`Expected object, got ${receivedType}: ${value}`) + }, 'expectObject') + var expectString = /* @__PURE__ */ __name(value => { + if (value === null || value === void 0) { + return void 0 + } + if (typeof value === 'string') { + return value + } + if (['boolean', 'number', 'bigint'].includes(typeof value)) { + logger.warn( + stackTraceWarning(`Expected string, got ${typeof value}: ${value}`) + ) + return String(value) + } + throw new TypeError(`Expected string, got ${typeof value}: ${value}`) + }, 'expectString') + var expectUnion = /* @__PURE__ */ __name(value => { + if (value === null || value === void 0) { + return void 0 + } + const asObject = expectObject(value) + const setKeys = Object.entries(asObject) + .filter(([, v]) => v != null) + .map(([k]) => k) + if (setKeys.length === 0) { + throw new TypeError( + `Unions must have exactly one non-null member. None were found.` + ) + } + if (setKeys.length > 1) { + throw new TypeError( + `Unions must have exactly one non-null member. Keys ${setKeys} were not null.` + ) + } + return asObject + }, 'expectUnion') + var strictParseDouble = /* @__PURE__ */ __name(value => { + if (typeof value == 'string') { + return expectNumber(parseNumber(value)) + } + return expectNumber(value) + }, 'strictParseDouble') + var strictParseFloat = strictParseDouble + var strictParseFloat32 = /* @__PURE__ */ __name(value => { + if (typeof value == 'string') { + return expectFloat32(parseNumber(value)) + } + return expectFloat32(value) + }, 'strictParseFloat32') + var NUMBER_REGEX = + /(-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?)|(-?Infinity)|(NaN)/g + var parseNumber = /* @__PURE__ */ __name(value => { + const matches = value.match(NUMBER_REGEX) + if (matches === null || matches[0].length !== value.length) { + throw new TypeError(`Expected real number, got implicit NaN`) + } + return parseFloat(value) + }, 'parseNumber') + var limitedParseDouble = /* @__PURE__ */ __name(value => { + if (typeof value == 'string') { + return parseFloatString(value) + } + return expectNumber(value) + }, 'limitedParseDouble') + var handleFloat = limitedParseDouble + var limitedParseFloat = limitedParseDouble + var limitedParseFloat32 = /* @__PURE__ */ __name(value => { + if (typeof value == 'string') { + return parseFloatString(value) + } + return expectFloat32(value) + }, 'limitedParseFloat32') + var parseFloatString = /* @__PURE__ */ __name(value => { + switch (value) { + case 'NaN': + return NaN + case 'Infinity': + return Infinity + case '-Infinity': + return -Infinity + default: + throw new Error(`Unable to parse float value: ${value}`) + } + }, 'parseFloatString') + var strictParseLong = /* @__PURE__ */ __name(value => { + if (typeof value === 'string') { + return expectLong(parseNumber(value)) + } + return expectLong(value) + }, 'strictParseLong') + var strictParseInt = strictParseLong + var strictParseInt32 = /* @__PURE__ */ __name(value => { + if (typeof value === 'string') { + return expectInt32(parseNumber(value)) + } + return expectInt32(value) + }, 'strictParseInt32') + var strictParseShort = /* @__PURE__ */ __name(value => { + if (typeof value === 'string') { + return expectShort(parseNumber(value)) + } + return expectShort(value) + }, 'strictParseShort') + var strictParseByte = /* @__PURE__ */ __name(value => { + if (typeof value === 'string') { + return expectByte(parseNumber(value)) + } + return expectByte(value) + }, 'strictParseByte') + var stackTraceWarning = /* @__PURE__ */ __name(message => { + return String(new TypeError(message).stack || message) + .split('\n') + .slice(0, 5) + .filter(s => !s.includes('stackTraceWarning')) + .join('\n') + }, 'stackTraceWarning') + var logger = { + warn: console.warn + } + + // src/date-utils.ts + var DAYS = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'] + var MONTHS = [ + 'Jan', + 'Feb', + 'Mar', + 'Apr', + 'May', + 'Jun', + 'Jul', + 'Aug', + 'Sep', + 'Oct', + 'Nov', + 'Dec' + ] + function dateToUtcString(date) { + const year = date.getUTCFullYear() + const month = date.getUTCMonth() + const dayOfWeek = date.getUTCDay() + const dayOfMonthInt = date.getUTCDate() + const hoursInt = date.getUTCHours() + const minutesInt = date.getUTCMinutes() + const secondsInt = date.getUTCSeconds() + const dayOfMonthString = + dayOfMonthInt < 10 ? `0${dayOfMonthInt}` : `${dayOfMonthInt}` + const hoursString = hoursInt < 10 ? `0${hoursInt}` : `${hoursInt}` + const minutesString = + minutesInt < 10 ? `0${minutesInt}` : `${minutesInt}` + const secondsString = + secondsInt < 10 ? `0${secondsInt}` : `${secondsInt}` + return `${DAYS[dayOfWeek]}, ${dayOfMonthString} ${MONTHS[month]} ${year} ${hoursString}:${minutesString}:${secondsString} GMT` + } + __name(dateToUtcString, 'dateToUtcString') + var RFC3339 = new RegExp( + /^(\d{4})-(\d{2})-(\d{2})[tT](\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?[zZ]$/ + ) + var parseRfc3339DateTime = /* @__PURE__ */ __name(value => { + if (value === null || value === void 0) { + return void 0 + } + if (typeof value !== 'string') { + throw new TypeError( + 'RFC-3339 date-times must be expressed as strings' + ) + } + const match = RFC3339.exec(value) + if (!match) { + throw new TypeError('Invalid RFC-3339 date-time value') + } + const [ + _, + yearStr, + monthStr, + dayStr, + hours, + minutes, + seconds, + fractionalMilliseconds + ] = match + const year = strictParseShort(stripLeadingZeroes(yearStr)) + const month = parseDateValue(monthStr, 'month', 1, 12) + const day = parseDateValue(dayStr, 'day', 1, 31) + return buildDate(year, month, day, { + hours, + minutes, + seconds, + fractionalMilliseconds + }) + }, 'parseRfc3339DateTime') + var RFC3339_WITH_OFFSET = new RegExp( + /^(\d{4})-(\d{2})-(\d{2})[tT](\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?(([-+]\d{2}\:\d{2})|[zZ])$/ + ) + var parseRfc3339DateTimeWithOffset = /* @__PURE__ */ __name(value => { + if (value === null || value === void 0) { + return void 0 + } + if (typeof value !== 'string') { + throw new TypeError( + 'RFC-3339 date-times must be expressed as strings' + ) + } + const match = RFC3339_WITH_OFFSET.exec(value) + if (!match) { + throw new TypeError('Invalid RFC-3339 date-time value') + } + const [ + _, + yearStr, + monthStr, + dayStr, + hours, + minutes, + seconds, + fractionalMilliseconds, + offsetStr + ] = match + const year = strictParseShort(stripLeadingZeroes(yearStr)) + const month = parseDateValue(monthStr, 'month', 1, 12) + const day = parseDateValue(dayStr, 'day', 1, 31) + const date = buildDate(year, month, day, { + hours, + minutes, + seconds, + fractionalMilliseconds + }) + if (offsetStr.toUpperCase() != 'Z') { + date.setTime(date.getTime() - parseOffsetToMilliseconds(offsetStr)) + } + return date + }, 'parseRfc3339DateTimeWithOffset') + var IMF_FIXDATE = new RegExp( + /^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d{2}) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d{1,2}):(\d{2}):(\d{2})(?:\.(\d+))? GMT$/ + ) + var RFC_850_DATE = new RegExp( + /^(?:Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d{2})-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d{2}) (\d{1,2}):(\d{2}):(\d{2})(?:\.(\d+))? GMT$/ + ) + var ASC_TIME = new RegExp( + /^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( [1-9]|\d{2}) (\d{1,2}):(\d{2}):(\d{2})(?:\.(\d+))? (\d{4})$/ + ) + var parseRfc7231DateTime = /* @__PURE__ */ __name(value => { + if (value === null || value === void 0) { + return void 0 + } + if (typeof value !== 'string') { + throw new TypeError( + 'RFC-7231 date-times must be expressed as strings' + ) + } + let match = IMF_FIXDATE.exec(value) + if (match) { + const [ + _, + dayStr, + monthStr, + yearStr, + hours, + minutes, + seconds, + fractionalMilliseconds + ] = match + return buildDate( + strictParseShort(stripLeadingZeroes(yearStr)), + parseMonthByShortName(monthStr), + parseDateValue(dayStr, 'day', 1, 31), + { hours, minutes, seconds, fractionalMilliseconds } + ) + } + match = RFC_850_DATE.exec(value) + if (match) { + const [ + _, + dayStr, + monthStr, + yearStr, + hours, + minutes, + seconds, + fractionalMilliseconds + ] = match + return adjustRfc850Year( + buildDate( + parseTwoDigitYear(yearStr), + parseMonthByShortName(monthStr), + parseDateValue(dayStr, 'day', 1, 31), + { + hours, + minutes, + seconds, + fractionalMilliseconds + } + ) + ) + } + match = ASC_TIME.exec(value) + if (match) { + const [ + _, + monthStr, + dayStr, + hours, + minutes, + seconds, + fractionalMilliseconds, + yearStr + ] = match + return buildDate( + strictParseShort(stripLeadingZeroes(yearStr)), + parseMonthByShortName(monthStr), + parseDateValue(dayStr.trimLeft(), 'day', 1, 31), + { hours, minutes, seconds, fractionalMilliseconds } + ) + } + throw new TypeError('Invalid RFC-7231 date-time value') + }, 'parseRfc7231DateTime') + var parseEpochTimestamp = /* @__PURE__ */ __name(value => { + if (value === null || value === void 0) { + return void 0 + } + let valueAsDouble + if (typeof value === 'number') { + valueAsDouble = value + } else if (typeof value === 'string') { + valueAsDouble = strictParseDouble(value) + } else if (typeof value === 'object' && value.tag === 1) { + valueAsDouble = value.value + } else { + throw new TypeError( + 'Epoch timestamps must be expressed as floating point numbers or their string representation' + ) + } + if ( + Number.isNaN(valueAsDouble) || + valueAsDouble === Infinity || + valueAsDouble === -Infinity + ) { + throw new TypeError( + 'Epoch timestamps must be valid, non-Infinite, non-NaN numerics' + ) + } + return new Date(Math.round(valueAsDouble * 1e3)) + }, 'parseEpochTimestamp') + var buildDate = /* @__PURE__ */ __name((year, month, day, time) => { + const adjustedMonth = month - 1 + validateDayOfMonth(year, adjustedMonth, day) + return new Date( + Date.UTC( + year, + adjustedMonth, + day, + parseDateValue(time.hours, 'hour', 0, 23), + parseDateValue(time.minutes, 'minute', 0, 59), + // seconds can go up to 60 for leap seconds + parseDateValue(time.seconds, 'seconds', 0, 60), + parseMilliseconds(time.fractionalMilliseconds) + ) + ) + }, 'buildDate') + var parseTwoDigitYear = /* @__PURE__ */ __name(value => { + const thisYear = /* @__PURE__ */ new Date().getUTCFullYear() + const valueInThisCentury = + Math.floor(thisYear / 100) * 100 + + strictParseShort(stripLeadingZeroes(value)) + if (valueInThisCentury < thisYear) { + return valueInThisCentury + 100 + } + return valueInThisCentury + }, 'parseTwoDigitYear') + var FIFTY_YEARS_IN_MILLIS = 50 * 365 * 24 * 60 * 60 * 1e3 + var adjustRfc850Year = /* @__PURE__ */ __name(input => { + if ( + input.getTime() - /* @__PURE__ */ new Date().getTime() > + FIFTY_YEARS_IN_MILLIS + ) { + return new Date( + Date.UTC( + input.getUTCFullYear() - 100, + input.getUTCMonth(), + input.getUTCDate(), + input.getUTCHours(), + input.getUTCMinutes(), + input.getUTCSeconds(), + input.getUTCMilliseconds() + ) + ) + } + return input + }, 'adjustRfc850Year') + var parseMonthByShortName = /* @__PURE__ */ __name(value => { + const monthIdx = MONTHS.indexOf(value) + if (monthIdx < 0) { + throw new TypeError(`Invalid month: ${value}`) + } + return monthIdx + 1 + }, 'parseMonthByShortName') + var DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] + var validateDayOfMonth = /* @__PURE__ */ __name((year, month, day) => { + let maxDays = DAYS_IN_MONTH[month] + if (month === 1 && isLeapYear(year)) { + maxDays = 29 + } + if (day > maxDays) { + throw new TypeError( + `Invalid day for ${MONTHS[month]} in ${year}: ${day}` + ) + } + }, 'validateDayOfMonth') + var isLeapYear = /* @__PURE__ */ __name(year => { + return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0) + }, 'isLeapYear') + var parseDateValue = /* @__PURE__ */ __name( + (value, type, lower, upper) => { + const dateVal = strictParseByte(stripLeadingZeroes(value)) + if (dateVal < lower || dateVal > upper) { + throw new TypeError( + `${type} must be between ${lower} and ${upper}, inclusive` + ) + } + return dateVal + }, + 'parseDateValue' + ) + var parseMilliseconds = /* @__PURE__ */ __name(value => { + if (value === null || value === void 0) { + return 0 + } + return strictParseFloat32('0.' + value) * 1e3 + }, 'parseMilliseconds') + var parseOffsetToMilliseconds = /* @__PURE__ */ __name(value => { + const directionStr = value[0] + let direction = 1 + if (directionStr == '+') { + direction = 1 + } else if (directionStr == '-') { + direction = -1 + } else { + throw new TypeError( + `Offset direction, ${directionStr}, must be "+" or "-"` + ) + } + const hour = Number(value.substring(1, 3)) + const minute = Number(value.substring(4, 6)) + return direction * (hour * 60 + minute) * 60 * 1e3 + }, 'parseOffsetToMilliseconds') + var stripLeadingZeroes = /* @__PURE__ */ __name(value => { + let idx = 0 + while (idx < value.length - 1 && value.charAt(idx) === '0') { + idx++ + } + if (idx === 0) { + return value + } + return value.slice(idx) + }, 'stripLeadingZeroes') + + // src/exceptions.ts + var _ServiceException = class _ServiceException extends Error { + constructor(options) { + super(options.message) + Object.setPrototypeOf(this, _ServiceException.prototype) + this.name = options.name + this.$fault = options.$fault + this.$metadata = options.$metadata + } + } + __name(_ServiceException, 'ServiceException') + var ServiceException = _ServiceException + var decorateServiceException = /* @__PURE__ */ __name( + (exception, additions = {}) => { + Object.entries(additions) + .filter(([, v]) => v !== void 0) + .forEach(([k, v]) => { + if (exception[k] == void 0 || exception[k] === '') { + exception[k] = v + } + }) + const message = + exception.message || exception.Message || 'UnknownError' + exception.message = message + delete exception.Message + return exception + }, + 'decorateServiceException' + ) -var _md = _interopRequireDefault(__nccwpck_require__(11380)); + // src/default-error-handler.ts + var throwDefaultError = /* @__PURE__ */ __name( + ({ output, parsedBody, exceptionCtor, errorCode }) => { + const $metadata = deserializeMetadata(output) + const statusCode = $metadata.httpStatusCode + ? $metadata.httpStatusCode + '' + : void 0 + const response = new exceptionCtor({ + name: + (parsedBody == null ? void 0 : parsedBody.code) || + (parsedBody == null ? void 0 : parsedBody.Code) || + errorCode || + statusCode || + 'UnknownError', + $fault: 'client', + $metadata + }) + throw decorateServiceException(response, parsedBody) + }, + 'throwDefaultError' + ) + var withBaseException = /* @__PURE__ */ __name(ExceptionCtor => { + return ({ output, parsedBody, errorCode }) => { + throwDefaultError({ + output, + parsedBody, + exceptionCtor: ExceptionCtor, + errorCode + }) + } + }, 'withBaseException') + var deserializeMetadata = /* @__PURE__ */ __name( + output => ({ + httpStatusCode: output.statusCode, + requestId: + output.headers['x-amzn-requestid'] ?? + output.headers['x-amzn-request-id'] ?? + output.headers['x-amz-request-id'], + extendedRequestId: output.headers['x-amz-id-2'], + cfId: output.headers['x-amz-cf-id'] + }), + 'deserializeMetadata' + ) -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + // src/defaults-mode.ts + var loadConfigsForDefaultMode = /* @__PURE__ */ __name(mode => { + switch (mode) { + case 'standard': + return { + retryMode: 'standard', + connectionTimeout: 3100 + } + case 'in-region': + return { + retryMode: 'standard', + connectionTimeout: 1100 + } + case 'cross-region': + return { + retryMode: 'standard', + connectionTimeout: 3100 + } + case 'mobile': + return { + retryMode: 'standard', + connectionTimeout: 3e4 + } + default: + return {} + } + }, 'loadConfigsForDefaultMode') -const v3 = (0, _v.default)('v3', 0x30, _md.default); -var _default = v3; -exports["default"] = _default; + // src/emitWarningIfUnsupportedVersion.ts + var warningEmitted = false + var emitWarningIfUnsupportedVersion = /* @__PURE__ */ __name(version => { + if ( + version && + !warningEmitted && + parseInt(version.substring(1, version.indexOf('.'))) < 16 + ) { + warningEmitted = true + } + }, 'emitWarningIfUnsupportedVersion') -/***/ }), + // src/extensions/checksum.ts -/***/ 2568: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + var getChecksumConfiguration = /* @__PURE__ */ __name(runtimeConfig => { + const checksumAlgorithms = [] + for (const id in import_types.AlgorithmId) { + const algorithmId = import_types.AlgorithmId[id] + if (runtimeConfig[algorithmId] === void 0) { + continue + } + checksumAlgorithms.push({ + algorithmId: () => algorithmId, + checksumConstructor: () => runtimeConfig[algorithmId] + }) + } + return { + _checksumAlgorithms: checksumAlgorithms, + addChecksumAlgorithm(algo) { + this._checksumAlgorithms.push(algo) + }, + checksumAlgorithms() { + return this._checksumAlgorithms + } + } + }, 'getChecksumConfiguration') + var resolveChecksumRuntimeConfig = /* @__PURE__ */ __name( + clientConfig => { + const runtimeConfig = {} + clientConfig.checksumAlgorithms().forEach(checksumAlgorithm => { + runtimeConfig[checksumAlgorithm.algorithmId()] = + checksumAlgorithm.checksumConstructor() + }) + return runtimeConfig + }, + 'resolveChecksumRuntimeConfig' + ) -"use strict"; + // src/extensions/retry.ts + var getRetryConfiguration = /* @__PURE__ */ __name(runtimeConfig => { + let _retryStrategy = runtimeConfig.retryStrategy + return { + setRetryStrategy(retryStrategy) { + _retryStrategy = retryStrategy + }, + retryStrategy() { + return _retryStrategy + } + } + }, 'getRetryConfiguration') + var resolveRetryRuntimeConfig = /* @__PURE__ */ __name( + retryStrategyConfiguration => { + const runtimeConfig = {} + runtimeConfig.retryStrategy = + retryStrategyConfiguration.retryStrategy() + return runtimeConfig + }, + 'resolveRetryRuntimeConfig' + ) + // src/extensions/defaultExtensionConfiguration.ts + var getDefaultExtensionConfiguration = /* @__PURE__ */ __name( + runtimeConfig => { + return { + ...getChecksumConfiguration(runtimeConfig), + ...getRetryConfiguration(runtimeConfig) + } + }, + 'getDefaultExtensionConfiguration' + ) + var getDefaultClientConfiguration = getDefaultExtensionConfiguration + var resolveDefaultRuntimeConfig = /* @__PURE__ */ __name(config => { + return { + ...resolveChecksumRuntimeConfig(config), + ...resolveRetryRuntimeConfig(config) + } + }, 'resolveDefaultRuntimeConfig') -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.URL = exports.DNS = void 0; -exports["default"] = v35; + // src/extended-encode-uri-component.ts + function extendedEncodeURIComponent(str) { + return encodeURIComponent(str).replace(/[!'()*]/g, function (c) { + return '%' + c.charCodeAt(0).toString(16).toUpperCase() + }) + } + __name(extendedEncodeURIComponent, 'extendedEncodeURIComponent') -var _stringify = __nccwpck_require__(79618); + // src/get-array-if-single-item.ts + var getArrayIfSingleItem = /* @__PURE__ */ __name( + mayBeArray => (Array.isArray(mayBeArray) ? mayBeArray : [mayBeArray]), + 'getArrayIfSingleItem' + ) -var _parse = _interopRequireDefault(__nccwpck_require__(40086)); + // src/get-value-from-text-node.ts + var getValueFromTextNode = /* @__PURE__ */ __name(obj => { + const textNodeName = '#text' + for (const key in obj) { + if (obj.hasOwnProperty(key) && obj[key][textNodeName] !== void 0) { + obj[key] = obj[key][textNodeName] + } else if (typeof obj[key] === 'object' && obj[key] !== null) { + obj[key] = getValueFromTextNode(obj[key]) + } + } + return obj + }, 'getValueFromTextNode') + + // src/lazy-json.ts + var StringWrapper = /* @__PURE__ */ __name(function () { + const Class = Object.getPrototypeOf(this).constructor + const Constructor = Function.bind.apply(String, [null, ...arguments]) + const instance = new Constructor() + Object.setPrototypeOf(instance, Class.prototype) + return instance + }, 'StringWrapper') + StringWrapper.prototype = Object.create(String.prototype, { + constructor: { + value: StringWrapper, + enumerable: false, + writable: true, + configurable: true + } + }) + Object.setPrototypeOf(StringWrapper, String) + var _LazyJsonString = class _LazyJsonString extends StringWrapper { + deserializeJSON() { + return JSON.parse(super.toString()) + } + toJSON() { + return super.toString() + } + static fromObject(object) { + if (object instanceof _LazyJsonString) { + return object + } else if (object instanceof String || typeof object === 'string') { + return new _LazyJsonString(object) + } + return new _LazyJsonString(JSON.stringify(object)) + } + } + __name(_LazyJsonString, 'LazyJsonString') + var LazyJsonString = _LazyJsonString -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + // src/object-mapping.ts + function map(arg0, arg1, arg2) { + let target + let filter + let instructions + if (typeof arg1 === 'undefined' && typeof arg2 === 'undefined') { + target = {} + instructions = arg0 + } else { + target = arg0 + if (typeof arg1 === 'function') { + filter = arg1 + instructions = arg2 + return mapWithFilter(target, filter, instructions) + } else { + instructions = arg1 + } + } + for (const key of Object.keys(instructions)) { + if (!Array.isArray(instructions[key])) { + target[key] = instructions[key] + continue + } + applyInstruction(target, null, instructions, key) + } + return target + } + __name(map, 'map') + var convertMap = /* @__PURE__ */ __name(target => { + const output = {} + for (const [k, v] of Object.entries(target || {})) { + output[k] = [, v] + } + return output + }, 'convertMap') + var take = /* @__PURE__ */ __name((source, instructions) => { + const out = {} + for (const key in instructions) { + applyInstruction(out, source, instructions, key) + } + return out + }, 'take') + var mapWithFilter = /* @__PURE__ */ __name( + (target, filter, instructions) => { + return map( + target, + Object.entries(instructions).reduce( + (_instructions, [key, value]) => { + if (Array.isArray(value)) { + _instructions[key] = value + } else { + if (typeof value === 'function') { + _instructions[key] = [filter, value()] + } else { + _instructions[key] = [filter, value] + } + } + return _instructions + }, + {} + ) + ) + }, + 'mapWithFilter' + ) + var applyInstruction = /* @__PURE__ */ __name( + (target, source, instructions, targetKey) => { + if (source !== null) { + let instruction = instructions[targetKey] + if (typeof instruction === 'function') { + instruction = [, instruction] + } + const [ + filter2 = nonNullish, + valueFn = pass, + sourceKey = targetKey + ] = instruction + if ( + (typeof filter2 === 'function' && filter2(source[sourceKey])) || + (typeof filter2 !== 'function' && !!filter2) + ) { + target[targetKey] = valueFn(source[sourceKey]) + } + return + } + let [filter, value] = instructions[targetKey] + if (typeof value === 'function') { + let _value + const defaultFilterPassed = + filter === void 0 && (_value = value()) != null + const customFilterPassed = + (typeof filter === 'function' && !!filter(void 0)) || + (typeof filter !== 'function' && !!filter) + if (defaultFilterPassed) { + target[targetKey] = _value + } else if (customFilterPassed) { + target[targetKey] = value() + } + } else { + const defaultFilterPassed = filter === void 0 && value != null + const customFilterPassed = + (typeof filter === 'function' && !!filter(value)) || + (typeof filter !== 'function' && !!filter) + if (defaultFilterPassed || customFilterPassed) { + target[targetKey] = value + } + } + }, + 'applyInstruction' + ) + var nonNullish = /* @__PURE__ */ __name(_ => _ != null, 'nonNullish') + var pass = /* @__PURE__ */ __name(_ => _, 'pass') -function stringToBytes(str) { - str = unescape(encodeURIComponent(str)); // UTF8 escape + // src/resolve-path.ts + var resolvedPath = /* @__PURE__ */ __name( + ( + resolvedPath2, + input, + memberName, + labelValueProvider, + uriLabel, + isGreedyLabel + ) => { + if (input != null && input[memberName] !== void 0) { + const labelValue = labelValueProvider() + if (labelValue.length <= 0) { + throw new Error( + 'Empty value provided for input HTTP label: ' + memberName + '.' + ) + } + resolvedPath2 = resolvedPath2.replace( + uriLabel, + isGreedyLabel + ? labelValue + .split('/') + .map(segment => extendedEncodeURIComponent(segment)) + .join('/') + : extendedEncodeURIComponent(labelValue) + ) + } else { + throw new Error( + 'No value provided for input HTTP label: ' + memberName + '.' + ) + } + return resolvedPath2 + }, + 'resolvedPath' + ) - const bytes = []; + // src/ser-utils.ts + var serializeFloat = /* @__PURE__ */ __name(value => { + if (value !== value) { + return 'NaN' + } + switch (value) { + case Infinity: + return 'Infinity' + case -Infinity: + return '-Infinity' + default: + return value + } + }, 'serializeFloat') + var serializeDateTime = /* @__PURE__ */ __name( + date => date.toISOString().replace('.000Z', 'Z'), + 'serializeDateTime' + ) - for (let i = 0; i < str.length; ++i) { - bytes.push(str.charCodeAt(i)); - } + // src/serde-json.ts + var _json = /* @__PURE__ */ __name(obj => { + if (obj == null) { + return {} + } + if (Array.isArray(obj)) { + return obj.filter(_ => _ != null).map(_json) + } + if (typeof obj === 'object') { + const target = {} + for (const key of Object.keys(obj)) { + if (obj[key] == null) { + continue + } + target[key] = _json(obj[key]) + } + return target + } + return obj + }, '_json') - return bytes; -} + // src/split-every.ts + function splitEvery(value, delimiter, numDelimiters) { + if (numDelimiters <= 0 || !Number.isInteger(numDelimiters)) { + throw new Error( + 'Invalid number of delimiters (' + + numDelimiters + + ') for splitEvery.' + ) + } + const segments = value.split(delimiter) + if (numDelimiters === 1) { + return segments + } + const compoundSegments = [] + let currentSegment = '' + for (let i = 0; i < segments.length; i++) { + if (currentSegment === '') { + currentSegment = segments[i] + } else { + currentSegment += delimiter + segments[i] + } + if ((i + 1) % numDelimiters === 0) { + compoundSegments.push(currentSegment) + currentSegment = '' + } + } + if (currentSegment !== '') { + compoundSegments.push(currentSegment) + } + return compoundSegments + } + __name(splitEvery, 'splitEvery') + // Annotate the CommonJS export names for ESM import in node: -const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8'; -exports.DNS = DNS; -const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8'; -exports.URL = URL; + 0 && 0 -function v35(name, version, hashfunc) { - function generateUUID(value, namespace, buf, offset) { - var _namespace; + /***/ + }, - if (typeof value === 'string') { - value = stringToBytes(value); - } + /***/ 55756: /***/ module => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + AlgorithmId: () => AlgorithmId, + EndpointURLScheme: () => EndpointURLScheme, + FieldPosition: () => FieldPosition, + HttpApiKeyAuthLocation: () => HttpApiKeyAuthLocation, + HttpAuthLocation: () => HttpAuthLocation, + IniSectionType: () => IniSectionType, + RequestHandlerProtocol: () => RequestHandlerProtocol, + SMITHY_CONTEXT_KEY: () => SMITHY_CONTEXT_KEY, + getDefaultClientConfiguration: () => getDefaultClientConfiguration, + resolveDefaultRuntimeConfig: () => resolveDefaultRuntimeConfig + }) + module.exports = __toCommonJS(src_exports) + + // src/auth/auth.ts + var HttpAuthLocation = /* @__PURE__ */ (HttpAuthLocation2 => { + HttpAuthLocation2['HEADER'] = 'header' + HttpAuthLocation2['QUERY'] = 'query' + return HttpAuthLocation2 + })(HttpAuthLocation || {}) + + // src/auth/HttpApiKeyAuth.ts + var HttpApiKeyAuthLocation = /* @__PURE__ */ (HttpApiKeyAuthLocation2 => { + HttpApiKeyAuthLocation2['HEADER'] = 'header' + HttpApiKeyAuthLocation2['QUERY'] = 'query' + return HttpApiKeyAuthLocation2 + })(HttpApiKeyAuthLocation || {}) + + // src/endpoint.ts + var EndpointURLScheme = /* @__PURE__ */ (EndpointURLScheme2 => { + EndpointURLScheme2['HTTP'] = 'http' + EndpointURLScheme2['HTTPS'] = 'https' + return EndpointURLScheme2 + })(EndpointURLScheme || {}) + + // src/extensions/checksum.ts + var AlgorithmId = /* @__PURE__ */ (AlgorithmId2 => { + AlgorithmId2['MD5'] = 'md5' + AlgorithmId2['CRC32'] = 'crc32' + AlgorithmId2['CRC32C'] = 'crc32c' + AlgorithmId2['SHA1'] = 'sha1' + AlgorithmId2['SHA256'] = 'sha256' + return AlgorithmId2 + })(AlgorithmId || {}) + var getChecksumConfiguration = /* @__PURE__ */ __name(runtimeConfig => { + const checksumAlgorithms = [] + if (runtimeConfig.sha256 !== void 0) { + checksumAlgorithms.push({ + algorithmId: () => 'sha256' /* SHA256 */, + checksumConstructor: () => runtimeConfig.sha256 + }) + } + if (runtimeConfig.md5 != void 0) { + checksumAlgorithms.push({ + algorithmId: () => 'md5' /* MD5 */, + checksumConstructor: () => runtimeConfig.md5 + }) + } + return { + _checksumAlgorithms: checksumAlgorithms, + addChecksumAlgorithm(algo) { + this._checksumAlgorithms.push(algo) + }, + checksumAlgorithms() { + return this._checksumAlgorithms + } + } + }, 'getChecksumConfiguration') + var resolveChecksumRuntimeConfig = /* @__PURE__ */ __name( + clientConfig => { + const runtimeConfig = {} + clientConfig.checksumAlgorithms().forEach(checksumAlgorithm => { + runtimeConfig[checksumAlgorithm.algorithmId()] = + checksumAlgorithm.checksumConstructor() + }) + return runtimeConfig + }, + 'resolveChecksumRuntimeConfig' + ) - if (typeof namespace === 'string') { - namespace = (0, _parse.default)(namespace); - } + // src/extensions/defaultClientConfiguration.ts + var getDefaultClientConfiguration = /* @__PURE__ */ __name( + runtimeConfig => { + return { + ...getChecksumConfiguration(runtimeConfig) + } + }, + 'getDefaultClientConfiguration' + ) + var resolveDefaultRuntimeConfig = /* @__PURE__ */ __name(config => { + return { + ...resolveChecksumRuntimeConfig(config) + } + }, 'resolveDefaultRuntimeConfig') + + // src/http.ts + var FieldPosition = /* @__PURE__ */ (FieldPosition2 => { + FieldPosition2[(FieldPosition2['HEADER'] = 0)] = 'HEADER' + FieldPosition2[(FieldPosition2['TRAILER'] = 1)] = 'TRAILER' + return FieldPosition2 + })(FieldPosition || {}) + + // src/middleware.ts + var SMITHY_CONTEXT_KEY = '__smithy_context' + + // src/profile.ts + var IniSectionType = /* @__PURE__ */ (IniSectionType2 => { + IniSectionType2['PROFILE'] = 'profile' + IniSectionType2['SSO_SESSION'] = 'sso-session' + IniSectionType2['SERVICES'] = 'services' + return IniSectionType2 + })(IniSectionType || {}) + + // src/transfer.ts + var RequestHandlerProtocol = /* @__PURE__ */ (RequestHandlerProtocol2 => { + RequestHandlerProtocol2['HTTP_0_9'] = 'http/0.9' + RequestHandlerProtocol2['HTTP_1_0'] = 'http/1.0' + RequestHandlerProtocol2['TDS_8_0'] = 'tds/8.0' + return RequestHandlerProtocol2 + })(RequestHandlerProtocol || {}) + // Annotate the CommonJS export names for ESM import in node: + + 0 && 0 + + /***/ + }, - if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) { - throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)'); - } // Compute hash of namespace and value, Per 4.3 - // Future: Use spread syntax when supported on all platforms, e.g. `bytes = - // hashfunc([...namespace, ... value])` + /***/ 14681: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + // src/index.ts + var src_exports = {} + __export(src_exports, { + parseUrl: () => parseUrl + }) + module.exports = __toCommonJS(src_exports) + var import_querystring_parser = __nccwpck_require__(4769) + var parseUrl = /* @__PURE__ */ __name(url => { + if (typeof url === 'string') { + return parseUrl(new URL(url)) + } + const { hostname, pathname, port, protocol, search } = url + let query + if (search) { + query = (0, import_querystring_parser.parseQueryString)(search) + } + return { + hostname, + port: port ? parseInt(port) : void 0, + protocol, + path: pathname, + query + } + }, 'parseUrl') + // Annotate the CommonJS export names for ESM import in node: - let bytes = new Uint8Array(16 + value.length); - bytes.set(namespace); - bytes.set(value, namespace.length); - bytes = hashfunc(bytes); - bytes[6] = bytes[6] & 0x0f | version; - bytes[8] = bytes[8] & 0x3f | 0x80; + 0 && 0 - if (buf) { - offset = offset || 0; + /***/ + }, - for (let i = 0; i < 16; ++i) { - buf[offset + i] = bytes[i]; + /***/ 30305: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.fromBase64 = void 0 + const util_buffer_from_1 = __nccwpck_require__(31381) + const BASE64_REGEX = /^[A-Za-z0-9+/]*={0,2}$/ + const fromBase64 = input => { + if ((input.length * 3) % 4 !== 0) { + throw new TypeError(`Incorrect padding on base64 string.`) + } + if (!BASE64_REGEX.exec(input)) { + throw new TypeError(`Invalid base64 string.`) + } + const buffer = (0, util_buffer_from_1.fromString)(input, 'base64') + return new Uint8Array( + buffer.buffer, + buffer.byteOffset, + buffer.byteLength + ) } + exports.fromBase64 = fromBase64 - return buf; - } - - return (0, _stringify.unsafeStringify)(bytes); - } // Function#name is not settable on some platforms (#270) - - - try { - generateUUID.name = name; // eslint-disable-next-line no-empty - } catch (err) {} // For CommonJS default export support + /***/ + }, + /***/ 75600: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __reExport = (target, mod, secondTarget) => ( + __copyProps(target, mod, 'default'), + secondTarget && __copyProps(secondTarget, mod, 'default') + ) + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) - generateUUID.DNS = DNS; - generateUUID.URL = URL; - return generateUUID; -} + // src/index.ts + var src_exports = {} + module.exports = __toCommonJS(src_exports) + __reExport(src_exports, __nccwpck_require__(30305), module.exports) + __reExport(src_exports, __nccwpck_require__(74730), module.exports) + // Annotate the CommonJS export names for ESM import in node: -/***/ }), + 0 && 0 -/***/ 86001: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + /***/ + }, -"use strict"; + /***/ 74730: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.toBase64 = void 0 + const util_buffer_from_1 = __nccwpck_require__(31381) + const util_utf8_1 = __nccwpck_require__(41895) + const toBase64 = _input => { + let input + if (typeof _input === 'string') { + input = (0, util_utf8_1.fromUtf8)(_input) + } else { + input = _input + } + if ( + typeof input !== 'object' || + typeof input.byteOffset !== 'number' || + typeof input.byteLength !== 'number' + ) { + throw new Error( + '@smithy/util-base64: toBase64 encoder function only accepts string | Uint8Array.' + ) + } + return (0, util_buffer_from_1.fromArrayBuffer)( + input.buffer, + input.byteOffset, + input.byteLength + ).toString('base64') + } + exports.toBase64 = toBase64 + /***/ + }, -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + /***/ 68075: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -var _native = _interopRequireDefault(__nccwpck_require__(34672)); + // src/index.ts + var src_exports = {} + __export(src_exports, { + calculateBodyLength: () => calculateBodyLength + }) + module.exports = __toCommonJS(src_exports) + + // src/calculateBodyLength.ts + var import_fs = __nccwpck_require__(57147) + var calculateBodyLength = /* @__PURE__ */ __name(body => { + if (!body) { + return 0 + } + if (typeof body === 'string') { + return Buffer.byteLength(body) + } else if (typeof body.byteLength === 'number') { + return body.byteLength + } else if (typeof body.size === 'number') { + return body.size + } else if ( + typeof body.start === 'number' && + typeof body.end === 'number' + ) { + return body.end + 1 - body.start + } else if ( + typeof body.path === 'string' || + Buffer.isBuffer(body.path) + ) { + return (0, import_fs.lstatSync)(body.path).size + } else if (typeof body.fd === 'number') { + return (0, import_fs.fstatSync)(body.fd).size + } + throw new Error(`Body Length computation failed for ${body}`) + }, 'calculateBodyLength') + // Annotate the CommonJS export names for ESM import in node: -var _rng = _interopRequireDefault(__nccwpck_require__(68136)); + 0 && 0 -var _stringify = __nccwpck_require__(79618); + /***/ + }, -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + /***/ 31381: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -function v4(options, buf, offset) { - if (_native.default.randomUUID && !buf && !options) { - return _native.default.randomUUID(); - } + // src/index.ts + var src_exports = {} + __export(src_exports, { + fromArrayBuffer: () => fromArrayBuffer, + fromString: () => fromString + }) + module.exports = __toCommonJS(src_exports) + var import_is_array_buffer = __nccwpck_require__(10780) + var import_buffer = __nccwpck_require__(14300) + var fromArrayBuffer = /* @__PURE__ */ __name( + (input, offset = 0, length = input.byteLength - offset) => { + if (!(0, import_is_array_buffer.isArrayBuffer)(input)) { + throw new TypeError( + `The "input" argument must be ArrayBuffer. Received type ${typeof input} (${input})` + ) + } + return import_buffer.Buffer.from(input, offset, length) + }, + 'fromArrayBuffer' + ) + var fromString = /* @__PURE__ */ __name((input, encoding) => { + if (typeof input !== 'string') { + throw new TypeError( + `The "input" argument must be of type string. Received type ${typeof input} (${input})` + ) + } + return encoding + ? import_buffer.Buffer.from(input, encoding) + : import_buffer.Buffer.from(input) + }, 'fromString') + // Annotate the CommonJS export names for ESM import in node: - options = options || {}; + 0 && 0 - const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` + /***/ + }, + /***/ 83375: /***/ module => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) - rnds[6] = rnds[6] & 0x0f | 0x40; - rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided + // src/index.ts + var src_exports = {} + __export(src_exports, { + SelectorType: () => SelectorType, + booleanSelector: () => booleanSelector, + numberSelector: () => numberSelector + }) + module.exports = __toCommonJS(src_exports) - if (buf) { - offset = offset || 0; + // src/booleanSelector.ts + var booleanSelector = /* @__PURE__ */ __name((obj, key, type) => { + if (!(key in obj)) return void 0 + if (obj[key] === 'true') return true + if (obj[key] === 'false') return false + throw new Error( + `Cannot load ${type} "${key}". Expected "true" or "false", got ${obj[key]}.` + ) + }, 'booleanSelector') + + // src/numberSelector.ts + var numberSelector = /* @__PURE__ */ __name((obj, key, type) => { + if (!(key in obj)) return void 0 + const numberValue = parseInt(obj[key], 10) + if (Number.isNaN(numberValue)) { + throw new TypeError( + `Cannot load ${type} '${key}'. Expected number, got '${obj[key]}'.` + ) + } + return numberValue + }, 'numberSelector') - for (let i = 0; i < 16; ++i) { - buf[offset + i] = rnds[i]; - } + // src/types.ts + var SelectorType = /* @__PURE__ */ (SelectorType2 => { + SelectorType2['ENV'] = 'env' + SelectorType2['CONFIG'] = 'shared config entry' + return SelectorType2 + })(SelectorType || {}) + // Annotate the CommonJS export names for ESM import in node: - return buf; - } + 0 && 0 - return (0, _stringify.unsafeStringify)(rnds); -} + /***/ + }, -var _default = v4; -exports["default"] = _default; + /***/ 72429: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __create = Object.create + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __getProtoOf = Object.getPrototypeOf + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toESM = (mod, isNodeMode, target) => ( + (target = mod != null ? __create(__getProtoOf(mod)) : {}), + __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule + ? __defProp(target, 'default', { value: mod, enumerable: true }) + : target, + mod + ) + ) + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -/***/ }), + // src/index.ts + var src_exports = {} + __export(src_exports, { + resolveDefaultsModeConfig: () => resolveDefaultsModeConfig + }) + module.exports = __toCommonJS(src_exports) + + // src/resolveDefaultsModeConfig.ts + var import_config_resolver = __nccwpck_require__(53098) + var import_node_config_provider = __nccwpck_require__(33461) + var import_property_provider = __nccwpck_require__(79721) + + // src/constants.ts + var AWS_EXECUTION_ENV = 'AWS_EXECUTION_ENV' + var AWS_REGION_ENV = 'AWS_REGION' + var AWS_DEFAULT_REGION_ENV = 'AWS_DEFAULT_REGION' + var ENV_IMDS_DISABLED = 'AWS_EC2_METADATA_DISABLED' + var DEFAULTS_MODE_OPTIONS = [ + 'in-region', + 'cross-region', + 'mobile', + 'standard', + 'legacy' + ] + var IMDS_REGION_PATH = '/latest/meta-data/placement/region' + + // src/defaultsModeConfig.ts + var AWS_DEFAULTS_MODE_ENV = 'AWS_DEFAULTS_MODE' + var AWS_DEFAULTS_MODE_CONFIG = 'defaults_mode' + var NODE_DEFAULTS_MODE_CONFIG_OPTIONS = { + environmentVariableSelector: env => { + return env[AWS_DEFAULTS_MODE_ENV] + }, + configFileSelector: profile => { + return profile[AWS_DEFAULTS_MODE_CONFIG] + }, + default: 'legacy' + } -/***/ 38310: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + // src/resolveDefaultsModeConfig.ts + var resolveDefaultsModeConfig = /* @__PURE__ */ __name( + ({ + region = (0, import_node_config_provider.loadConfig)( + import_config_resolver.NODE_REGION_CONFIG_OPTIONS + ), + defaultsMode = (0, import_node_config_provider.loadConfig)( + NODE_DEFAULTS_MODE_CONFIG_OPTIONS + ) + } = {}) => + (0, import_property_provider.memoize)(async () => { + const mode = + typeof defaultsMode === 'function' + ? await defaultsMode() + : defaultsMode + switch (mode == null ? void 0 : mode.toLowerCase()) { + case 'auto': + return resolveNodeDefaultsModeAuto(region) + case 'in-region': + case 'cross-region': + case 'mobile': + case 'standard': + case 'legacy': + return Promise.resolve( + mode == null ? void 0 : mode.toLocaleLowerCase() + ) + case void 0: + return Promise.resolve('legacy') + default: + throw new Error( + `Invalid parameter for "defaultsMode", expect ${DEFAULTS_MODE_OPTIONS.join(', ')}, got ${mode}` + ) + } + }), + 'resolveDefaultsModeConfig' + ) + var resolveNodeDefaultsModeAuto = /* @__PURE__ */ __name( + async clientRegion => { + if (clientRegion) { + const resolvedRegion = + typeof clientRegion === 'function' + ? await clientRegion() + : clientRegion + const inferredRegion = await inferPhysicalRegion() + if (!inferredRegion) { + return 'standard' + } + if (resolvedRegion === inferredRegion) { + return 'in-region' + } else { + return 'cross-region' + } + } + return 'standard' + }, + 'resolveNodeDefaultsModeAuto' + ) + var inferPhysicalRegion = /* @__PURE__ */ __name(async () => { + if ( + process.env[AWS_EXECUTION_ENV] && + (process.env[AWS_REGION_ENV] || process.env[AWS_DEFAULT_REGION_ENV]) + ) { + return ( + process.env[AWS_REGION_ENV] ?? process.env[AWS_DEFAULT_REGION_ENV] + ) + } + if (!process.env[ENV_IMDS_DISABLED]) { + try { + const { getInstanceMetadataEndpoint, httpRequest } = + await Promise.resolve().then(() => + __toESM(__nccwpck_require__(7477)) + ) + const endpoint = await getInstanceMetadataEndpoint() + return ( + await httpRequest({ ...endpoint, path: IMDS_REGION_PATH }) + ).toString() + } catch (e) {} + } + }, 'inferPhysicalRegion') + // Annotate the CommonJS export names for ESM import in node: -"use strict"; + 0 && 0 + /***/ + }, -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + /***/ 45473: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -var _v = _interopRequireDefault(__nccwpck_require__(2568)); + // src/index.ts + var src_exports = {} + __export(src_exports, { + EndpointCache: () => EndpointCache, + EndpointError: () => EndpointError, + customEndpointFunctions: () => customEndpointFunctions, + isIpAddress: () => isIpAddress, + isValidHostLabel: () => isValidHostLabel, + resolveEndpoint: () => resolveEndpoint + }) + module.exports = __toCommonJS(src_exports) -var _sha = _interopRequireDefault(__nccwpck_require__(46679)); + // src/cache/EndpointCache.ts + var _EndpointCache = class _EndpointCache { + /** + * @param [size] - desired average maximum capacity. A buffer of 10 additional keys will be allowed + * before keys are dropped. + * @param [params] - list of params to consider as part of the cache key. + * + * If the params list is not populated, no caching will happen. + * This may be out of order depending on how the object is created and arrives to this class. + */ + constructor({ size, params }) { + this.data = /* @__PURE__ */ new Map() + this.parameters = [] + this.capacity = size ?? 50 + if (params) { + this.parameters = params + } + } + /** + * @param endpointParams - query for endpoint. + * @param resolver - provider of the value if not present. + * @returns endpoint corresponding to the query. + */ + get(endpointParams, resolver) { + const key = this.hash(endpointParams) + if (key === false) { + return resolver() + } + if (!this.data.has(key)) { + if (this.data.size > this.capacity + 10) { + const keys = this.data.keys() + let i = 0 + while (true) { + const { value, done } = keys.next() + this.data.delete(value) + if (done || ++i > 10) { + break + } + } + } + this.data.set(key, resolver()) + } + return this.data.get(key) + } + size() { + return this.data.size + } + /** + * @returns cache key or false if not cachable. + */ + hash(endpointParams) { + let buffer = '' + const { parameters } = this + if (parameters.length === 0) { + return false + } + for (const param of parameters) { + const val = String(endpointParams[param] ?? '') + if (val.includes('|;')) { + return false + } + buffer += val + '|;' + } + return buffer + } + } + __name(_EndpointCache, 'EndpointCache') + var EndpointCache = _EndpointCache -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + // src/lib/isIpAddress.ts + var 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}$` + ) + var isIpAddress = /* @__PURE__ */ __name( + value => + IP_V4_REGEX.test(value) || + (value.startsWith('[') && value.endsWith(']')), + 'isIpAddress' + ) -const v5 = (0, _v.default)('v5', 0x50, _sha.default); -var _default = v5; -exports["default"] = _default; + // src/lib/isValidHostLabel.ts + var VALID_HOST_LABEL_REGEX = new RegExp( + `^(?!.*-$)(?!-)[a-zA-Z0-9-]{1,63}$` + ) + var isValidHostLabel = /* @__PURE__ */ __name( + (value, allowSubDomains = false) => { + if (!allowSubDomains) { + return VALID_HOST_LABEL_REGEX.test(value) + } + const labels = value.split('.') + for (const label of labels) { + if (!isValidHostLabel(label)) { + return false + } + } + return true + }, + 'isValidHostLabel' + ) -/***/ }), + // src/utils/customEndpointFunctions.ts + var customEndpointFunctions = {} -/***/ 66992: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + // src/debug/debugId.ts + var debugId = 'endpoints' -"use strict"; + // src/debug/toDebugString.ts + function toDebugString(input) { + if (typeof input !== 'object' || input == null) { + return input + } + if ('ref' in input) { + return `$${toDebugString(input.ref)}` + } + if ('fn' in input) { + return `${input.fn}(${(input.argv || []).map(toDebugString).join(', ')})` + } + return JSON.stringify(input, null, 2) + } + __name(toDebugString, 'toDebugString') + // src/types/EndpointError.ts + var _EndpointError = class _EndpointError extends Error { + constructor(message) { + super(message) + this.name = 'EndpointError' + } + } + __name(_EndpointError, 'EndpointError') + var EndpointError = _EndpointError -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + // src/lib/booleanEquals.ts + var booleanEquals = /* @__PURE__ */ __name( + (value1, value2) => value1 === value2, + 'booleanEquals' + ) -var _regex = _interopRequireDefault(__nccwpck_require__(3194)); + // src/lib/getAttrPathList.ts + var getAttrPathList = /* @__PURE__ */ __name(path => { + const parts = path.split('.') + const pathList = [] + for (const part of parts) { + const squareBracketIndex = part.indexOf('[') + if (squareBracketIndex !== -1) { + if (part.indexOf(']') !== part.length - 1) { + throw new EndpointError(`Path: '${path}' does not end with ']'`) + } + const arrayIndex = part.slice(squareBracketIndex + 1, -1) + if (Number.isNaN(parseInt(arrayIndex))) { + throw new EndpointError( + `Invalid array index: '${arrayIndex}' in path: '${path}'` + ) + } + if (squareBracketIndex !== 0) { + pathList.push(part.slice(0, squareBracketIndex)) + } + pathList.push(arrayIndex) + } else { + pathList.push(part) + } + } + return pathList + }, 'getAttrPathList') + + // src/lib/getAttr.ts + var getAttr = /* @__PURE__ */ __name( + (value, path) => + getAttrPathList(path).reduce((acc, index) => { + if (typeof acc !== 'object') { + throw new EndpointError( + `Index '${index}' in '${path}' not found in '${JSON.stringify(value)}'` + ) + } else if (Array.isArray(acc)) { + return acc[parseInt(index)] + } + return acc[index] + }, value), + 'getAttr' + ) -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + // src/lib/isSet.ts + var isSet = /* @__PURE__ */ __name(value => value != null, 'isSet') -function validate(uuid) { - return typeof uuid === 'string' && _regex.default.test(uuid); -} + // src/lib/not.ts + var not = /* @__PURE__ */ __name(value => !value, 'not') -var _default = validate; -exports["default"] = _default; + // src/lib/parseURL.ts + var import_types3 = __nccwpck_require__(55756) + var DEFAULT_PORTS = { + [import_types3.EndpointURLScheme.HTTP]: 80, + [import_types3.EndpointURLScheme.HTTPS]: 443 + } + var parseURL = /* @__PURE__ */ __name(value => { + const whatwgURL = (() => { + try { + if (value instanceof URL) { + return value + } + if (typeof value === 'object' && 'hostname' in value) { + const { + hostname: hostname2, + port, + protocol: protocol2 = '', + path = '', + query = {} + } = value + const url = new URL( + `${protocol2}//${hostname2}${port ? `:${port}` : ''}${path}` + ) + url.search = Object.entries(query) + .map(([k, v]) => `${k}=${v}`) + .join('&') + return url + } + return new URL(value) + } catch (error) { + return null + } + })() + if (!whatwgURL) { + console.error( + `Unable to parse ${JSON.stringify(value)} as a whatwg URL.` + ) + return null + } + const urlString = whatwgURL.href + const { host, hostname, pathname, protocol, search } = whatwgURL + if (search) { + return null + } + const scheme = protocol.slice(0, -1) + if (!Object.values(import_types3.EndpointURLScheme).includes(scheme)) { + return null + } + const isIp = isIpAddress(hostname) + const inputContainsDefaultPort = + urlString.includes(`${host}:${DEFAULT_PORTS[scheme]}`) || + (typeof value === 'string' && + value.includes(`${host}:${DEFAULT_PORTS[scheme]}`)) + const authority = `${host}${inputContainsDefaultPort ? `:${DEFAULT_PORTS[scheme]}` : ``}` + return { + scheme, + authority, + path: pathname, + normalizedPath: pathname.endsWith('/') ? pathname : `${pathname}/`, + isIp + } + }, 'parseURL') + + // src/lib/stringEquals.ts + var stringEquals = /* @__PURE__ */ __name( + (value1, value2) => value1 === value2, + 'stringEquals' + ) -/***/ }), + // src/lib/substring.ts + var substring = /* @__PURE__ */ __name((input, start, stop, reverse) => { + if (start >= stop || input.length < stop) { + return null + } + if (!reverse) { + return input.substring(start, stop) + } + return input.substring(input.length - stop, input.length - start) + }, 'substring') + + // src/lib/uriEncode.ts + var uriEncode = /* @__PURE__ */ __name( + value => + encodeURIComponent(value).replace( + /[!*'()]/g, + c => `%${c.charCodeAt(0).toString(16).toUpperCase()}` + ), + 'uriEncode' + ) -/***/ 17780: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + // src/utils/endpointFunctions.ts + var endpointFunctions = { + booleanEquals, + getAttr, + isSet, + isValidHostLabel, + not, + parseURL, + stringEquals, + substring, + uriEncode + } + + // src/utils/evaluateTemplate.ts + var evaluateTemplate = /* @__PURE__ */ __name((template, options) => { + const evaluatedTemplateArr = [] + const templateContext = { + ...options.endpointParams, + ...options.referenceRecord + } + let currentIndex = 0 + while (currentIndex < template.length) { + const openingBraceIndex = template.indexOf('{', currentIndex) + if (openingBraceIndex === -1) { + evaluatedTemplateArr.push(template.slice(currentIndex)) + break + } + evaluatedTemplateArr.push( + template.slice(currentIndex, openingBraceIndex) + ) + const closingBraceIndex = template.indexOf('}', openingBraceIndex) + if (closingBraceIndex === -1) { + evaluatedTemplateArr.push(template.slice(openingBraceIndex)) + break + } + if ( + template[openingBraceIndex + 1] === '{' && + template[closingBraceIndex + 1] === '}' + ) { + evaluatedTemplateArr.push( + template.slice(openingBraceIndex + 1, closingBraceIndex) + ) + currentIndex = closingBraceIndex + 2 + } + const parameterName = template.substring( + openingBraceIndex + 1, + closingBraceIndex + ) + if (parameterName.includes('#')) { + const [refName, attrName] = parameterName.split('#') + evaluatedTemplateArr.push( + getAttr(templateContext[refName], attrName) + ) + } else { + evaluatedTemplateArr.push(templateContext[parameterName]) + } + currentIndex = closingBraceIndex + 1 + } + return evaluatedTemplateArr.join('') + }, 'evaluateTemplate') + + // src/utils/getReferenceValue.ts + var getReferenceValue = /* @__PURE__ */ __name(({ ref }, options) => { + const referenceRecord = { + ...options.endpointParams, + ...options.referenceRecord + } + return referenceRecord[ref] + }, 'getReferenceValue') + + // src/utils/evaluateExpression.ts + var evaluateExpression = /* @__PURE__ */ __name( + (obj, keyName, options) => { + if (typeof obj === 'string') { + return evaluateTemplate(obj, options) + } else if (obj['fn']) { + return callFunction(obj, options) + } else if (obj['ref']) { + return getReferenceValue(obj, options) + } + throw new EndpointError( + `'${keyName}': ${String(obj)} is not a string, function or reference.` + ) + }, + 'evaluateExpression' + ) -"use strict"; + // src/utils/callFunction.ts + var callFunction = /* @__PURE__ */ __name(({ fn, argv }, options) => { + const evaluatedArgs = argv.map(arg => + ['boolean', 'number'].includes(typeof arg) + ? arg + : evaluateExpression(arg, 'arg', options) + ) + const fnSegments = fn.split('.') + if (fnSegments[0] in customEndpointFunctions && fnSegments[1] != null) { + return customEndpointFunctions[fnSegments[0]][fnSegments[1]]( + ...evaluatedArgs + ) + } + return endpointFunctions[fn](...evaluatedArgs) + }, 'callFunction') + // src/utils/evaluateCondition.ts + var evaluateCondition = /* @__PURE__ */ __name( + ({ assign, ...fnArgs }, options) => { + var _a, _b + if (assign && assign in options.referenceRecord) { + throw new EndpointError( + `'${assign}' is already defined in Reference Record.` + ) + } + const value = callFunction(fnArgs, options) + ;(_b = (_a = options.logger) == null ? void 0 : _a.debug) == null + ? void 0 + : _b.call( + _a, + `${debugId} evaluateCondition: ${toDebugString(fnArgs)} = ${toDebugString(value)}` + ) + return { + result: value === '' ? true : !!value, + ...(assign != null && { toAssign: { name: assign, value } }) + } + }, + 'evaluateCondition' + ) -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + // src/utils/evaluateConditions.ts + var evaluateConditions = /* @__PURE__ */ __name( + (conditions = [], options) => { + var _a, _b + const conditionsReferenceRecord = {} + for (const condition of conditions) { + const { result, toAssign } = evaluateCondition(condition, { + ...options, + referenceRecord: { + ...options.referenceRecord, + ...conditionsReferenceRecord + } + }) + if (!result) { + return { result } + } + if (toAssign) { + conditionsReferenceRecord[toAssign.name] = toAssign.value + ;(_b = (_a = options.logger) == null ? void 0 : _a.debug) == null + ? void 0 + : _b.call( + _a, + `${debugId} assign: ${toAssign.name} := ${toDebugString(toAssign.value)}` + ) + } + } + return { result: true, referenceRecord: conditionsReferenceRecord } + }, + 'evaluateConditions' + ) -var _validate = _interopRequireDefault(__nccwpck_require__(66992)); + // src/utils/getEndpointHeaders.ts + var getEndpointHeaders = /* @__PURE__ */ __name( + (headers, options) => + Object.entries(headers).reduce( + (acc, [headerKey, headerVal]) => ({ + ...acc, + [headerKey]: headerVal.map(headerValEntry => { + const processedExpr = evaluateExpression( + headerValEntry, + 'Header value entry', + options + ) + if (typeof processedExpr !== 'string') { + throw new EndpointError( + `Header '${headerKey}' value '${processedExpr}' is not a string` + ) + } + return processedExpr + }) + }), + {} + ), + 'getEndpointHeaders' + ) -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + // src/utils/getEndpointProperty.ts + var getEndpointProperty = /* @__PURE__ */ __name((property, options) => { + if (Array.isArray(property)) { + return property.map(propertyEntry => + getEndpointProperty(propertyEntry, options) + ) + } + switch (typeof property) { + case 'string': + return evaluateTemplate(property, options) + case 'object': + if (property === null) { + throw new EndpointError( + `Unexpected endpoint property: ${property}` + ) + } + return getEndpointProperties(property, options) + case 'boolean': + return property + default: + throw new EndpointError( + `Unexpected endpoint property type: ${typeof property}` + ) + } + }, 'getEndpointProperty') -function version(uuid) { - if (!(0, _validate.default)(uuid)) { - throw TypeError('Invalid UUID'); - } + // src/utils/getEndpointProperties.ts + var getEndpointProperties = /* @__PURE__ */ __name( + (properties, options) => + Object.entries(properties).reduce( + (acc, [propertyKey, propertyVal]) => ({ + ...acc, + [propertyKey]: getEndpointProperty(propertyVal, options) + }), + {} + ), + 'getEndpointProperties' + ) - return parseInt(uuid.slice(14, 15), 16); -} - -var _default = version; -exports["default"] = _default; - -/***/ }), - -/***/ 81238: -/***/ ((module) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - deserializerMiddleware: () => deserializerMiddleware, - deserializerMiddlewareOption: () => deserializerMiddlewareOption, - getSerdePlugin: () => getSerdePlugin, - serializerMiddleware: () => serializerMiddleware, - serializerMiddlewareOption: () => serializerMiddlewareOption -}); -module.exports = __toCommonJS(src_exports); - -// src/deserializerMiddleware.ts -var deserializerMiddleware = /* @__PURE__ */ __name((options, deserializer) => (next) => async (args) => { - const { response } = await next(args); - try { - const parsed = await deserializer(response, options); - return { - response, - output: parsed - }; - } catch (error) { - Object.defineProperty(error, "$response", { - value: response - }); - if (!("$metadata" in error)) { - const hint = `Deserialization error: to see the raw response, inspect the hidden field {error}.$response on this object.`; - error.message += "\n " + hint; - if (typeof error.$responseBodyText !== "undefined") { - if (error.$response) { - error.$response.body = error.$responseBodyText; + // src/utils/getEndpointUrl.ts + var getEndpointUrl = /* @__PURE__ */ __name((endpointUrl, options) => { + const expression = evaluateExpression( + endpointUrl, + 'Endpoint URL', + options + ) + if (typeof expression === 'string') { + try { + return new URL(expression) + } catch (error) { + console.error(`Failed to construct URL with ${expression}`, error) + throw error + } } - } - } - throw error; - } -}, "deserializerMiddleware"); - -// src/serializerMiddleware.ts -var serializerMiddleware = /* @__PURE__ */ __name((options, serializer) => (next, context) => async (args) => { - var _a; - const endpoint = ((_a = context.endpointV2) == null ? void 0 : _a.url) && options.urlParser ? async () => options.urlParser(context.endpointV2.url) : options.endpoint; - if (!endpoint) { - throw new Error("No valid endpoint provider available."); - } - const request = await serializer(args.input, { ...options, endpoint }); - return next({ - ...args, - request - }); -}, "serializerMiddleware"); - -// src/serdePlugin.ts -var deserializerMiddlewareOption = { - name: "deserializerMiddleware", - step: "deserialize", - tags: ["DESERIALIZER"], - override: true -}; -var serializerMiddlewareOption = { - name: "serializerMiddleware", - step: "serialize", - tags: ["SERIALIZER"], - override: true -}; -function getSerdePlugin(config, serializer, deserializer) { - return { - applyToStack: (commandStack) => { - commandStack.add(deserializerMiddleware(config, deserializer), deserializerMiddlewareOption); - commandStack.add(serializerMiddleware(config, serializer), serializerMiddlewareOption); - } - }; -} -__name(getSerdePlugin, "getSerdePlugin"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 97911: -/***/ ((module) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - constructStack: () => constructStack -}); -module.exports = __toCommonJS(src_exports); - -// src/MiddlewareStack.ts -var getAllAliases = /* @__PURE__ */ __name((name, aliases) => { - const _aliases = []; - if (name) { - _aliases.push(name); - } - if (aliases) { - for (const alias of aliases) { - _aliases.push(alias); - } - } - return _aliases; -}, "getAllAliases"); -var getMiddlewareNameWithAliases = /* @__PURE__ */ __name((name, aliases) => { - return `${name || "anonymous"}${aliases && aliases.length > 0 ? ` (a.k.a. ${aliases.join(",")})` : ""}`; -}, "getMiddlewareNameWithAliases"); -var constructStack = /* @__PURE__ */ __name(() => { - let absoluteEntries = []; - let relativeEntries = []; - let identifyOnResolve = false; - const entriesNameSet = /* @__PURE__ */ new Set(); - const sort = /* @__PURE__ */ __name((entries) => entries.sort( - (a, b) => stepWeights[b.step] - stepWeights[a.step] || priorityWeights[b.priority || "normal"] - priorityWeights[a.priority || "normal"] - ), "sort"); - const removeByName = /* @__PURE__ */ __name((toRemove) => { - let isRemoved = false; - const filterCb = /* @__PURE__ */ __name((entry) => { - const aliases = getAllAliases(entry.name, entry.aliases); - if (aliases.includes(toRemove)) { - isRemoved = true; - for (const alias of aliases) { - entriesNameSet.delete(alias); - } - return false; - } - return true; - }, "filterCb"); - absoluteEntries = absoluteEntries.filter(filterCb); - relativeEntries = relativeEntries.filter(filterCb); - return isRemoved; - }, "removeByName"); - const removeByReference = /* @__PURE__ */ __name((toRemove) => { - let isRemoved = false; - const filterCb = /* @__PURE__ */ __name((entry) => { - if (entry.middleware === toRemove) { - isRemoved = true; - for (const alias of getAllAliases(entry.name, entry.aliases)) { - entriesNameSet.delete(alias); - } - return false; - } - return true; - }, "filterCb"); - absoluteEntries = absoluteEntries.filter(filterCb); - relativeEntries = relativeEntries.filter(filterCb); - return isRemoved; - }, "removeByReference"); - const cloneTo = /* @__PURE__ */ __name((toStack) => { - var _a; - absoluteEntries.forEach((entry) => { - toStack.add(entry.middleware, { ...entry }); - }); - relativeEntries.forEach((entry) => { - toStack.addRelativeTo(entry.middleware, { ...entry }); - }); - (_a = toStack.identifyOnResolve) == null ? void 0 : _a.call(toStack, stack.identifyOnResolve()); - return toStack; - }, "cloneTo"); - const expandRelativeMiddlewareList = /* @__PURE__ */ __name((from) => { - const expandedMiddlewareList = []; - from.before.forEach((entry) => { - if (entry.before.length === 0 && entry.after.length === 0) { - expandedMiddlewareList.push(entry); - } else { - expandedMiddlewareList.push(...expandRelativeMiddlewareList(entry)); - } - }); - expandedMiddlewareList.push(from); - from.after.reverse().forEach((entry) => { - if (entry.before.length === 0 && entry.after.length === 0) { - expandedMiddlewareList.push(entry); - } else { - expandedMiddlewareList.push(...expandRelativeMiddlewareList(entry)); - } - }); - return expandedMiddlewareList; - }, "expandRelativeMiddlewareList"); - const getMiddlewareList = /* @__PURE__ */ __name((debug = false) => { - const normalizedAbsoluteEntries = []; - const normalizedRelativeEntries = []; - const normalizedEntriesNameMap = {}; - absoluteEntries.forEach((entry) => { - const normalizedEntry = { - ...entry, - before: [], - after: [] - }; - for (const alias of getAllAliases(normalizedEntry.name, normalizedEntry.aliases)) { - normalizedEntriesNameMap[alias] = normalizedEntry; - } - normalizedAbsoluteEntries.push(normalizedEntry); - }); - relativeEntries.forEach((entry) => { - const normalizedEntry = { - ...entry, - before: [], - after: [] - }; - for (const alias of getAllAliases(normalizedEntry.name, normalizedEntry.aliases)) { - normalizedEntriesNameMap[alias] = normalizedEntry; - } - normalizedRelativeEntries.push(normalizedEntry); - }); - normalizedRelativeEntries.forEach((entry) => { - if (entry.toMiddleware) { - const toMiddleware = normalizedEntriesNameMap[entry.toMiddleware]; - if (toMiddleware === void 0) { - if (debug) { - return; + throw new EndpointError( + `Endpoint URL must be a string, got ${typeof expression}` + ) + }, 'getEndpointUrl') + + // src/utils/evaluateEndpointRule.ts + var evaluateEndpointRule = /* @__PURE__ */ __name( + (endpointRule, options) => { + var _a, _b + const { conditions, endpoint } = endpointRule + const { result, referenceRecord } = evaluateConditions( + conditions, + options + ) + if (!result) { + return } - throw new Error( - `${entry.toMiddleware} is not found when adding ${getMiddlewareNameWithAliases(entry.name, entry.aliases)} middleware ${entry.relation} ${entry.toMiddleware}` - ); - } - if (entry.relation === "after") { - toMiddleware.after.push(entry); - } - if (entry.relation === "before") { - toMiddleware.before.push(entry); - } - } - }); - const mainChain = sort(normalizedAbsoluteEntries).map(expandRelativeMiddlewareList).reduce( - (wholeList, expandedMiddlewareList) => { - wholeList.push(...expandedMiddlewareList); - return wholeList; - }, - [] - ); - return mainChain; - }, "getMiddlewareList"); - const stack = { - add: (middleware, options = {}) => { - const { name, override, aliases: _aliases } = options; - const entry = { - step: "initialize", - priority: "normal", - middleware, - ...options - }; - const aliases = getAllAliases(name, _aliases); - if (aliases.length > 0) { - if (aliases.some((alias) => entriesNameSet.has(alias))) { - if (!override) - throw new Error(`Duplicate middleware name '${getMiddlewareNameWithAliases(name, _aliases)}'`); - for (const alias of aliases) { - const toOverrideIndex = absoluteEntries.findIndex( - (entry2) => { - var _a; - return entry2.name === alias || ((_a = entry2.aliases) == null ? void 0 : _a.some((a) => a === alias)); - } - ); - if (toOverrideIndex === -1) { - continue; - } - const toOverride = absoluteEntries[toOverrideIndex]; - if (toOverride.step !== entry.step || entry.priority !== toOverride.priority) { - throw new Error( - `"${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.` - ); - } - absoluteEntries.splice(toOverrideIndex, 1); + const endpointRuleOptions = { + ...options, + referenceRecord: { ...options.referenceRecord, ...referenceRecord } + } + const { url, properties, headers } = endpoint + ;(_b = (_a = options.logger) == null ? void 0 : _a.debug) == null + ? void 0 + : _b.call( + _a, + `${debugId} Resolving endpoint from template: ${toDebugString(endpoint)}` + ) + return { + ...(headers != void 0 && { + headers: getEndpointHeaders(headers, endpointRuleOptions) + }), + ...(properties != void 0 && { + properties: getEndpointProperties(properties, endpointRuleOptions) + }), + url: getEndpointUrl(url, endpointRuleOptions) } + }, + 'evaluateEndpointRule' + ) + + // src/utils/evaluateErrorRule.ts + var evaluateErrorRule = /* @__PURE__ */ __name((errorRule, options) => { + const { conditions, error } = errorRule + const { result, referenceRecord } = evaluateConditions( + conditions, + options + ) + if (!result) { + return } - for (const alias of aliases) { - entriesNameSet.add(alias); + throw new EndpointError( + evaluateExpression(error, 'Error', { + ...options, + referenceRecord: { ...options.referenceRecord, ...referenceRecord } + }) + ) + }, 'evaluateErrorRule') + + // src/utils/evaluateTreeRule.ts + var evaluateTreeRule = /* @__PURE__ */ __name((treeRule, options) => { + const { conditions, rules } = treeRule + const { result, referenceRecord } = evaluateConditions( + conditions, + options + ) + if (!result) { + return } - } - absoluteEntries.push(entry); - }, - addRelativeTo: (middleware, options) => { - const { name, override, aliases: _aliases } = options; - const entry = { - middleware, - ...options - }; - const aliases = getAllAliases(name, _aliases); - if (aliases.length > 0) { - if (aliases.some((alias) => entriesNameSet.has(alias))) { - if (!override) - throw new Error(`Duplicate middleware name '${getMiddlewareNameWithAliases(name, _aliases)}'`); - for (const alias of aliases) { - const toOverrideIndex = relativeEntries.findIndex( - (entry2) => { - var _a; - return entry2.name === alias || ((_a = entry2.aliases) == null ? void 0 : _a.some((a) => a === alias)); - } - ); - if (toOverrideIndex === -1) { - continue; + return evaluateRules(rules, { + ...options, + referenceRecord: { ...options.referenceRecord, ...referenceRecord } + }) + }, 'evaluateTreeRule') + + // src/utils/evaluateRules.ts + var evaluateRules = /* @__PURE__ */ __name((rules, options) => { + for (const rule of rules) { + if (rule.type === 'endpoint') { + const endpointOrUndefined = evaluateEndpointRule(rule, options) + if (endpointOrUndefined) { + return endpointOrUndefined } - const toOverride = relativeEntries[toOverrideIndex]; - if (toOverride.toMiddleware !== entry.toMiddleware || toOverride.relation !== entry.relation) { - throw new Error( - `"${getMiddlewareNameWithAliases(toOverride.name, toOverride.aliases)}" middleware ${toOverride.relation} "${toOverride.toMiddleware}" middleware cannot be overridden by "${getMiddlewareNameWithAliases(name, _aliases)}" middleware ${entry.relation} "${entry.toMiddleware}" middleware.` - ); + } else if (rule.type === 'error') { + evaluateErrorRule(rule, options) + } else if (rule.type === 'tree') { + const endpointOrUndefined = evaluateTreeRule(rule, options) + if (endpointOrUndefined) { + return endpointOrUndefined } - relativeEntries.splice(toOverrideIndex, 1); + } else { + throw new EndpointError(`Unknown endpoint rule: ${rule}`) } } - for (const alias of aliases) { - entriesNameSet.add(alias); + throw new EndpointError(`Rules evaluation failed`) + }, 'evaluateRules') + + // src/resolveEndpoint.ts + var resolveEndpoint = /* @__PURE__ */ __name((ruleSetObject, options) => { + var _a, _b, _c, _d + const { endpointParams, logger } = options + const { parameters, rules } = ruleSetObject + ;(_b = (_a = options.logger) == null ? void 0 : _a.debug) == null + ? void 0 + : _b.call( + _a, + `${debugId} Initial EndpointParams: ${toDebugString(endpointParams)}` + ) + const paramsWithDefault = Object.entries(parameters) + .filter(([, v]) => v.default != null) + .map(([k, v]) => [k, v.default]) + if (paramsWithDefault.length > 0) { + for (const [paramKey, paramDefaultValue] of paramsWithDefault) { + endpointParams[paramKey] = + endpointParams[paramKey] ?? paramDefaultValue + } } - } - relativeEntries.push(entry); - }, - clone: () => cloneTo(constructStack()), - use: (plugin) => { - plugin.applyToStack(stack); - }, - remove: (toRemove) => { - if (typeof toRemove === "string") - return removeByName(toRemove); - else - return removeByReference(toRemove); - }, - removeByTag: (toRemove) => { - let isRemoved = false; - const filterCb = /* @__PURE__ */ __name((entry) => { - const { tags, name, aliases: _aliases } = entry; - if (tags && tags.includes(toRemove)) { - const aliases = getAllAliases(name, _aliases); - for (const alias of aliases) { - entriesNameSet.delete(alias); - } - isRemoved = true; - return false; - } - return true; - }, "filterCb"); - absoluteEntries = absoluteEntries.filter(filterCb); - relativeEntries = relativeEntries.filter(filterCb); - return isRemoved; - }, - concat: (from) => { - var _a; - const cloned = cloneTo(constructStack()); - cloned.use(from); - cloned.identifyOnResolve( - identifyOnResolve || cloned.identifyOnResolve() || (((_a = from.identifyOnResolve) == null ? void 0 : _a.call(from)) ?? false) - ); - return cloned; - }, - applyToStack: cloneTo, - identify: () => { - return getMiddlewareList(true).map((mw) => { - const step = mw.step ?? mw.relation + " " + mw.toMiddleware; - return getMiddlewareNameWithAliases(mw.name, mw.aliases) + " - " + step; - }); - }, - identifyOnResolve(toggle) { - if (typeof toggle === "boolean") - identifyOnResolve = toggle; - return identifyOnResolve; - }, - resolve: (handler, context) => { - for (const middleware of getMiddlewareList().map((entry) => entry.middleware).reverse()) { - handler = middleware(handler, context); - } - if (identifyOnResolve) { - console.log(stack.identify()); - } - return handler; - } - }; - return stack; -}, "constructStack"); -var stepWeights = { - initialize: 5, - serialize: 4, - build: 3, - finalizeRequest: 2, - deserialize: 1 -}; -var priorityWeights = { - high: 3, - normal: 2, - low: 1 -}; -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 33461: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - loadConfig: () => loadConfig -}); -module.exports = __toCommonJS(src_exports); - -// src/configLoader.ts - - -// src/fromEnv.ts -var import_property_provider = __nccwpck_require__(79721); - -// src/getSelectorName.ts -function getSelectorName(functionString) { - try { - const constants = new Set(Array.from(functionString.match(/([A-Z_]){3,}/g) ?? [])); - constants.delete("CONFIG"); - constants.delete("CONFIG_PREFIX_SEPARATOR"); - constants.delete("ENV"); - return [...constants].join(", "); - } catch (e) { - return functionString; - } -} -__name(getSelectorName, "getSelectorName"); - -// src/fromEnv.ts -var fromEnv = /* @__PURE__ */ __name((envVarSelector, logger) => async () => { - try { - const config = envVarSelector(process.env); - if (config === void 0) { - throw new Error(); - } - return config; - } catch (e) { - throw new import_property_provider.CredentialsProviderError( - e.message || `Not found in ENV: ${getSelectorName(envVarSelector.toString())}`, - { logger } - ); - } -}, "fromEnv"); - -// src/fromSharedConfigFiles.ts - -var import_shared_ini_file_loader = __nccwpck_require__(43507); -var fromSharedConfigFiles = /* @__PURE__ */ __name((configSelector, { preferredFile = "config", ...init } = {}) => async () => { - const profile = (0, import_shared_ini_file_loader.getProfileName)(init); - const { configFile, credentialsFile } = await (0, import_shared_ini_file_loader.loadSharedConfigFiles)(init); - const profileFromCredentials = credentialsFile[profile] || {}; - const profileFromConfig = configFile[profile] || {}; - const mergedProfile = preferredFile === "config" ? { ...profileFromCredentials, ...profileFromConfig } : { ...profileFromConfig, ...profileFromCredentials }; - try { - const cfgFile = preferredFile === "config" ? configFile : credentialsFile; - const configValue = configSelector(mergedProfile, cfgFile); - if (configValue === void 0) { - throw new Error(); - } - return configValue; - } catch (e) { - throw new import_property_provider.CredentialsProviderError( - e.message || `Not found in config files w/ profile [${profile}]: ${getSelectorName(configSelector.toString())}`, - { logger: init.logger } - ); - } -}, "fromSharedConfigFiles"); - -// src/fromStatic.ts - -var isFunction = /* @__PURE__ */ __name((func) => typeof func === "function", "isFunction"); -var fromStatic = /* @__PURE__ */ __name((defaultValue) => isFunction(defaultValue) ? async () => await defaultValue() : (0, import_property_provider.fromStatic)(defaultValue), "fromStatic"); - -// src/configLoader.ts -var loadConfig = /* @__PURE__ */ __name(({ environmentVariableSelector, configFileSelector, default: defaultValue }, configuration = {}) => (0, import_property_provider.memoize)( - (0, import_property_provider.chain)( - fromEnv(environmentVariableSelector), - fromSharedConfigFiles(configFileSelector, configuration), - fromStatic(defaultValue) - ) -), "loadConfig"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 20258: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __create = Object.create; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __getProtoOf = Object.getPrototypeOf; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. - isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, - mod -)); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - DEFAULT_REQUEST_TIMEOUT: () => DEFAULT_REQUEST_TIMEOUT, - NodeHttp2Handler: () => NodeHttp2Handler, - NodeHttpHandler: () => NodeHttpHandler, - streamCollector: () => streamCollector -}); -module.exports = __toCommonJS(src_exports); - -// src/node-http-handler.ts -var import_protocol_http = __nccwpck_require__(64418); -var import_querystring_builder = __nccwpck_require__(68031); -var import_http = __nccwpck_require__(13685); -var import_https = __nccwpck_require__(95687); - -// src/constants.ts -var NODEJS_TIMEOUT_ERROR_CODES = ["ECONNRESET", "EPIPE", "ETIMEDOUT"]; - -// src/get-transformed-headers.ts -var getTransformedHeaders = /* @__PURE__ */ __name((headers) => { - const transformedHeaders = {}; - for (const name of Object.keys(headers)) { - const headerValues = headers[name]; - transformedHeaders[name] = Array.isArray(headerValues) ? headerValues.join(",") : headerValues; - } - return transformedHeaders; -}, "getTransformedHeaders"); - -// src/set-connection-timeout.ts -var setConnectionTimeout = /* @__PURE__ */ __name((request, reject, timeoutInMs = 0) => { - if (!timeoutInMs) { - return; - } - const timeoutId = setTimeout(() => { - request.destroy(); - reject( - Object.assign(new Error(`Socket timed out without establishing a connection within ${timeoutInMs} ms`), { - name: "TimeoutError" - }) - ); - }, timeoutInMs); - request.on("socket", (socket) => { - if (socket.connecting) { - socket.on("connect", () => { - clearTimeout(timeoutId); - }); - } else { - clearTimeout(timeoutId); - } - }); -}, "setConnectionTimeout"); - -// src/set-socket-keep-alive.ts -var setSocketKeepAlive = /* @__PURE__ */ __name((request, { keepAlive, keepAliveMsecs }) => { - if (keepAlive !== true) { - return; - } - request.on("socket", (socket) => { - socket.setKeepAlive(keepAlive, keepAliveMsecs || 0); - }); -}, "setSocketKeepAlive"); - -// src/set-socket-timeout.ts -var setSocketTimeout = /* @__PURE__ */ __name((request, reject, timeoutInMs = 0) => { - request.setTimeout(timeoutInMs, () => { - request.destroy(); - reject(Object.assign(new Error(`Connection timed out after ${timeoutInMs} ms`), { name: "TimeoutError" })); - }); -}, "setSocketTimeout"); - -// src/write-request-body.ts -var import_stream = __nccwpck_require__(12781); -var MIN_WAIT_TIME = 1e3; -async function writeRequestBody(httpRequest, request, maxContinueTimeoutMs = MIN_WAIT_TIME) { - const headers = request.headers ?? {}; - const expect = headers["Expect"] || headers["expect"]; - let timeoutId = -1; - let hasError = false; - if (expect === "100-continue") { - await Promise.race([ - new Promise((resolve) => { - timeoutId = Number(setTimeout(resolve, Math.max(MIN_WAIT_TIME, maxContinueTimeoutMs))); - }), - new Promise((resolve) => { - httpRequest.on("continue", () => { - clearTimeout(timeoutId); - resolve(); - }); - httpRequest.on("error", () => { - hasError = true; - clearTimeout(timeoutId); - resolve(); - }); - }) - ]); - } - if (!hasError) { - writeBody(httpRequest, request.body); - } -} -__name(writeRequestBody, "writeRequestBody"); -function writeBody(httpRequest, body) { - if (body instanceof import_stream.Readable) { - body.pipe(httpRequest); - return; - } - if (body) { - if (Buffer.isBuffer(body) || typeof body === "string") { - httpRequest.end(body); - return; - } - const uint8 = body; - if (typeof uint8 === "object" && uint8.buffer && typeof uint8.byteOffset === "number" && typeof uint8.byteLength === "number") { - httpRequest.end(Buffer.from(uint8.buffer, uint8.byteOffset, uint8.byteLength)); - return; - } - httpRequest.end(Buffer.from(body)); - return; - } - httpRequest.end(); -} -__name(writeBody, "writeBody"); - -// src/node-http-handler.ts -var DEFAULT_REQUEST_TIMEOUT = 0; -var _NodeHttpHandler = class _NodeHttpHandler { - constructor(options) { - this.socketWarningTimestamp = 0; - // Node http handler is hard-coded to http/1.1: https://github.com/nodejs/node/blob/ff5664b83b89c55e4ab5d5f60068fb457f1f5872/lib/_http_server.js#L286 - this.metadata = { handlerProtocol: "http/1.1" }; - this.configProvider = new Promise((resolve, reject) => { - if (typeof options === "function") { - options().then((_options) => { - resolve(this.resolveDefaultConfig(_options)); - }).catch(reject); - } else { - resolve(this.resolveDefaultConfig(options)); - } - }); - } - /** - * @returns the input if it is an HttpHandler of any class, - * or instantiates a new instance of this handler. - */ - static create(instanceOrOptions) { - if (typeof (instanceOrOptions == null ? void 0 : instanceOrOptions.handle) === "function") { - return instanceOrOptions; - } - return new _NodeHttpHandler(instanceOrOptions); - } - /** - * @internal - * - * @param agent - http(s) agent in use by the NodeHttpHandler instance. - * @returns timestamp of last emitted warning. - */ - static checkSocketUsage(agent, socketWarningTimestamp) { - var _a, _b; - const { sockets, requests, maxSockets } = agent; - if (typeof maxSockets !== "number" || maxSockets === Infinity) { - return socketWarningTimestamp; - } - const interval = 15e3; - if (Date.now() - interval < socketWarningTimestamp) { - return socketWarningTimestamp; - } - if (sockets && requests) { - for (const origin in sockets) { - const socketsInUse = ((_a = sockets[origin]) == null ? void 0 : _a.length) ?? 0; - const requestsEnqueued = ((_b = requests[origin]) == null ? void 0 : _b.length) ?? 0; - if (socketsInUse >= maxSockets && requestsEnqueued >= 2 * maxSockets) { - console.warn( - "@smithy/node-http-handler:WARN", - `socket usage at capacity=${socketsInUse} and ${requestsEnqueued} additional requests are enqueued.`, - "See https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html", - "or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config." - ); - return Date.now(); + const requiredParams = Object.entries(parameters) + .filter(([, v]) => v.required) + .map(([k]) => k) + for (const requiredParam of requiredParams) { + if (endpointParams[requiredParam] == null) { + throw new EndpointError( + `Missing required parameter: '${requiredParam}'` + ) + } } - } - } - return socketWarningTimestamp; - } - resolveDefaultConfig(options) { - const { requestTimeout, connectionTimeout, socketTimeout, httpAgent, httpsAgent } = options || {}; - const keepAlive = true; - const maxSockets = 50; - return { - connectionTimeout, - requestTimeout: requestTimeout ?? socketTimeout, - httpAgent: (() => { - if (httpAgent instanceof import_http.Agent || typeof (httpAgent == null ? void 0 : httpAgent.destroy) === "function") { - return httpAgent; - } - return new import_http.Agent({ keepAlive, maxSockets, ...httpAgent }); - })(), - httpsAgent: (() => { - if (httpsAgent instanceof import_https.Agent || typeof (httpsAgent == null ? void 0 : httpsAgent.destroy) === "function") { - return httpsAgent; - } - return new import_https.Agent({ keepAlive, maxSockets, ...httpsAgent }); - })() - }; - } - destroy() { - var _a, _b, _c, _d; - (_b = (_a = this.config) == null ? void 0 : _a.httpAgent) == null ? void 0 : _b.destroy(); - (_d = (_c = this.config) == null ? void 0 : _c.httpsAgent) == null ? void 0 : _d.destroy(); - } - async handle(request, { abortSignal } = {}) { - if (!this.config) { - this.config = await this.configProvider; - } - let socketCheckTimeoutId; - return new Promise((_resolve, _reject) => { - let writeRequestBodyPromise = void 0; - const resolve = /* @__PURE__ */ __name(async (arg) => { - await writeRequestBodyPromise; - clearTimeout(socketCheckTimeoutId); - _resolve(arg); - }, "resolve"); - const reject = /* @__PURE__ */ __name(async (arg) => { - await writeRequestBodyPromise; - _reject(arg); - }, "reject"); - if (!this.config) { - throw new Error("Node HTTP request handler config is not resolved"); - } - if (abortSignal == null ? void 0 : abortSignal.aborted) { - const abortError = new Error("Request aborted"); - abortError.name = "AbortError"; - reject(abortError); - return; - } - const isSSL = request.protocol === "https:"; - const agent = isSSL ? this.config.httpsAgent : this.config.httpAgent; - socketCheckTimeoutId = setTimeout( - () => { - this.socketWarningTimestamp = _NodeHttpHandler.checkSocketUsage(agent, this.socketWarningTimestamp); - }, - this.config.socketAcquisitionWarningTimeout ?? (this.config.requestTimeout ?? 2e3) + (this.config.connectionTimeout ?? 1e3) - ); - const queryString = (0, import_querystring_builder.buildQueryString)(request.query || {}); - let auth = void 0; - if (request.username != null || request.password != null) { - const username = request.username ?? ""; - const password = request.password ?? ""; - auth = `${username}:${password}`; - } - let path = request.path; - if (queryString) { - path += `?${queryString}`; - } - if (request.fragment) { - path += `#${request.fragment}`; - } - const nodeHttpsOptions = { - headers: request.headers, - host: request.hostname, - method: request.method, - path, - port: request.port, - agent, - auth - }; - const requestFunc = isSSL ? import_https.request : import_http.request; - const req = requestFunc(nodeHttpsOptions, (res) => { - const httpResponse = new import_protocol_http.HttpResponse({ - statusCode: res.statusCode || -1, - reason: res.statusMessage, - headers: getTransformedHeaders(res.headers), - body: res - }); - resolve({ response: httpResponse }); - }); - req.on("error", (err) => { - if (NODEJS_TIMEOUT_ERROR_CODES.includes(err.code)) { - reject(Object.assign(err, { name: "TimeoutError" })); - } else { - reject(err); - } - }); - setConnectionTimeout(req, reject, this.config.connectionTimeout); - setSocketTimeout(req, reject, this.config.requestTimeout); - if (abortSignal) { - abortSignal.onabort = () => { - req.abort(); - const abortError = new Error("Request aborted"); - abortError.name = "AbortError"; - reject(abortError); - }; - } - const httpAgent = nodeHttpsOptions.agent; - if (typeof httpAgent === "object" && "keepAlive" in httpAgent) { - setSocketKeepAlive(req, { - // @ts-expect-error keepAlive is not public on httpAgent. - keepAlive: httpAgent.keepAlive, - // @ts-expect-error keepAliveMsecs is not public on httpAgent. - keepAliveMsecs: httpAgent.keepAliveMsecs - }); - } - writeRequestBodyPromise = writeRequestBody(req, request, this.config.requestTimeout).catch(_reject); - }); - } - updateHttpClientConfig(key, value) { - this.config = void 0; - this.configProvider = this.configProvider.then((config) => { - return { - ...config, - [key]: value - }; - }); - } - httpHandlerConfigs() { - return this.config ?? {}; - } -}; -__name(_NodeHttpHandler, "NodeHttpHandler"); -var NodeHttpHandler = _NodeHttpHandler; - -// src/node-http2-handler.ts - + const endpoint = evaluateRules(rules, { + endpointParams, + logger, + referenceRecord: {} + }) + ;(_d = (_c = options.logger) == null ? void 0 : _c.debug) == null + ? void 0 + : _d.call( + _c, + `${debugId} Resolved endpoint: ${toDebugString(endpoint)}` + ) + return endpoint + }, 'resolveEndpoint') + // Annotate the CommonJS export names for ESM import in node: -var import_http22 = __nccwpck_require__(85158); + 0 && 0 -// src/node-http2-connection-manager.ts -var import_http2 = __toESM(__nccwpck_require__(85158)); + /***/ + }, -// src/node-http2-connection-pool.ts -var _NodeHttp2ConnectionPool = class _NodeHttp2ConnectionPool { - constructor(sessions) { - this.sessions = []; - this.sessions = sessions ?? []; - } - poll() { - if (this.sessions.length > 0) { - return this.sessions.shift(); - } - } - offerLast(session) { - this.sessions.push(session); - } - contains(session) { - return this.sessions.includes(session); - } - remove(session) { - this.sessions = this.sessions.filter((s) => s !== session); - } - [Symbol.iterator]() { - return this.sessions[Symbol.iterator](); - } - destroy(connection) { - for (const session of this.sessions) { - if (session === connection) { - if (!session.destroyed) { - session.destroy(); - } - } - } - } -}; -__name(_NodeHttp2ConnectionPool, "NodeHttp2ConnectionPool"); -var NodeHttp2ConnectionPool = _NodeHttp2ConnectionPool; - -// src/node-http2-connection-manager.ts -var _NodeHttp2ConnectionManager = class _NodeHttp2ConnectionManager { - constructor(config) { - this.sessionCache = /* @__PURE__ */ new Map(); - this.config = config; - if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) { - throw new RangeError("maxConcurrency must be greater than zero."); - } - } - lease(requestContext, connectionConfiguration) { - const url = this.getUrlString(requestContext); - const existingPool = this.sessionCache.get(url); - if (existingPool) { - const existingSession = existingPool.poll(); - if (existingSession && !this.config.disableConcurrency) { - return existingSession; - } - } - const session = import_http2.default.connect(url); - if (this.config.maxConcurrency) { - session.settings({ maxConcurrentStreams: this.config.maxConcurrency }, (err) => { - if (err) { - throw new Error( - "Fail to set maxConcurrentStreams to " + this.config.maxConcurrency + "when creating new session for " + requestContext.destination.toString() - ); - } - }); - } - session.unref(); - const destroySessionCb = /* @__PURE__ */ __name(() => { - session.destroy(); - this.deleteSession(url, session); - }, "destroySessionCb"); - session.on("goaway", destroySessionCb); - session.on("error", destroySessionCb); - session.on("frameError", destroySessionCb); - session.on("close", () => this.deleteSession(url, session)); - if (connectionConfiguration.requestTimeout) { - session.setTimeout(connectionConfiguration.requestTimeout, destroySessionCb); - } - const connectionPool = this.sessionCache.get(url) || new NodeHttp2ConnectionPool(); - connectionPool.offerLast(session); - this.sessionCache.set(url, connectionPool); - return session; - } - /** - * Delete a session from the connection pool. - * @param authority The authority of the session to delete. - * @param session The session to delete. - */ - deleteSession(authority, session) { - const existingConnectionPool = this.sessionCache.get(authority); - if (!existingConnectionPool) { - return; - } - if (!existingConnectionPool.contains(session)) { - return; - } - existingConnectionPool.remove(session); - this.sessionCache.set(authority, existingConnectionPool); - } - release(requestContext, session) { - var _a; - const cacheKey = this.getUrlString(requestContext); - (_a = this.sessionCache.get(cacheKey)) == null ? void 0 : _a.offerLast(session); - } - destroy() { - for (const [key, connectionPool] of this.sessionCache) { - for (const session of connectionPool) { - if (!session.destroyed) { - session.destroy(); + /***/ 45364: /***/ module => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) } - connectionPool.remove(session); - } - this.sessionCache.delete(key); - } - } - setMaxConcurrentStreams(maxConcurrentStreams) { - if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) { - throw new RangeError("maxConcurrentStreams must be greater than zero."); - } - this.config.maxConcurrency = maxConcurrentStreams; - } - setDisableConcurrentStreams(disableConcurrentStreams) { - this.config.disableConcurrency = disableConcurrentStreams; - } - getUrlString(request) { - return request.destination.toString(); - } -}; -__name(_NodeHttp2ConnectionManager, "NodeHttp2ConnectionManager"); -var NodeHttp2ConnectionManager = _NodeHttp2ConnectionManager; - -// src/node-http2-handler.ts -var _NodeHttp2Handler = class _NodeHttp2Handler { - constructor(options) { - this.metadata = { handlerProtocol: "h2" }; - this.connectionManager = new NodeHttp2ConnectionManager({}); - this.configProvider = new Promise((resolve, reject) => { - if (typeof options === "function") { - options().then((opts) => { - resolve(opts || {}); - }).catch(reject); - } else { - resolve(options || {}); - } - }); - } - /** - * @returns the input if it is an HttpHandler of any class, - * or instantiates a new instance of this handler. - */ - static create(instanceOrOptions) { - if (typeof (instanceOrOptions == null ? void 0 : instanceOrOptions.handle) === "function") { - return instanceOrOptions; - } - return new _NodeHttp2Handler(instanceOrOptions); - } - destroy() { - this.connectionManager.destroy(); - } - async handle(request, { abortSignal } = {}) { - if (!this.config) { - this.config = await this.configProvider; - this.connectionManager.setDisableConcurrentStreams(this.config.disableConcurrentStreams || false); - if (this.config.maxConcurrentStreams) { - this.connectionManager.setMaxConcurrentStreams(this.config.maxConcurrentStreams); - } - } - const { requestTimeout, disableConcurrentStreams } = this.config; - return new Promise((_resolve, _reject) => { - var _a; - let fulfilled = false; - let writeRequestBodyPromise = void 0; - const resolve = /* @__PURE__ */ __name(async (arg) => { - await writeRequestBodyPromise; - _resolve(arg); - }, "resolve"); - const reject = /* @__PURE__ */ __name(async (arg) => { - await writeRequestBodyPromise; - _reject(arg); - }, "reject"); - if (abortSignal == null ? void 0 : abortSignal.aborted) { - fulfilled = true; - const abortError = new Error("Request aborted"); - abortError.name = "AbortError"; - reject(abortError); - return; - } - const { hostname, method, port, protocol, query } = request; - let auth = ""; - if (request.username != null || request.password != null) { - const username = request.username ?? ""; - const password = request.password ?? ""; - auth = `${username}:${password}@`; - } - const authority = `${protocol}//${auth}${hostname}${port ? `:${port}` : ""}`; - const requestContext = { destination: new URL(authority) }; - const session = this.connectionManager.lease(requestContext, { - requestTimeout: (_a = this.config) == null ? void 0 : _a.sessionTimeout, - disableConcurrentStreams: disableConcurrentStreams || false - }); - const rejectWithDestroy = /* @__PURE__ */ __name((err) => { - if (disableConcurrentStreams) { - this.destroySession(session); - } - fulfilled = true; - reject(err); - }, "rejectWithDestroy"); - const queryString = (0, import_querystring_builder.buildQueryString)(query || {}); - let path = request.path; - if (queryString) { - path += `?${queryString}`; - } - if (request.fragment) { - path += `#${request.fragment}`; - } - const req = session.request({ - ...request.headers, - [import_http22.constants.HTTP2_HEADER_PATH]: path, - [import_http22.constants.HTTP2_HEADER_METHOD]: method - }); - session.ref(); - req.on("response", (headers) => { - const httpResponse = new import_protocol_http.HttpResponse({ - statusCode: headers[":status"] || -1, - headers: getTransformedHeaders(headers), - body: req - }); - fulfilled = true; - resolve({ response: httpResponse }); - if (disableConcurrentStreams) { - session.close(); - this.connectionManager.deleteSession(authority, session); - } - }); - if (requestTimeout) { - req.setTimeout(requestTimeout, () => { - req.close(); - const timeoutError = new Error(`Stream timed out because of no activity for ${requestTimeout} ms`); - timeoutError.name = "TimeoutError"; - rejectWithDestroy(timeoutError); - }); - } - if (abortSignal) { - abortSignal.onabort = () => { - req.close(); - const abortError = new Error("Request aborted"); - abortError.name = "AbortError"; - rejectWithDestroy(abortError); - }; - } - req.on("frameError", (type, code, id) => { - rejectWithDestroy(new Error(`Frame type id ${type} in stream id ${id} has failed with code ${code}.`)); - }); - req.on("error", rejectWithDestroy); - req.on("aborted", () => { - rejectWithDestroy( - new Error(`HTTP/2 stream is abnormally aborted in mid-communication with result code ${req.rstCode}.`) - ); - }); - req.on("close", () => { - session.unref(); - if (disableConcurrentStreams) { - session.destroy(); - } - if (!fulfilled) { - rejectWithDestroy(new Error("Unexpected error: http2 request did not get a response")); - } - }); - writeRequestBodyPromise = writeRequestBody(req, request, requestTimeout); - }); - } - updateHttpClientConfig(key, value) { - this.config = void 0; - this.configProvider = this.configProvider.then((config) => { - return { - ...config, - [key]: value - }; - }); - } - httpHandlerConfigs() { - return this.config ?? {}; - } - /** - * Destroys a session. - * @param session The session to destroy. - */ - destroySession(session) { - if (!session.destroyed) { - session.destroy(); - } - } -}; -__name(_NodeHttp2Handler, "NodeHttp2Handler"); -var NodeHttp2Handler = _NodeHttp2Handler; - -// src/stream-collector/collector.ts - -var _Collector = class _Collector extends import_stream.Writable { - constructor() { - super(...arguments); - this.bufferedBytes = []; - } - _write(chunk, encoding, callback) { - this.bufferedBytes.push(chunk); - callback(); - } -}; -__name(_Collector, "Collector"); -var Collector = _Collector; - -// src/stream-collector/index.ts -var streamCollector = /* @__PURE__ */ __name((stream) => { - if (isReadableStreamInstance(stream)) { - return collectReadableStream(stream); - } - return new Promise((resolve, reject) => { - const collector = new Collector(); - stream.pipe(collector); - stream.on("error", (err) => { - collector.end(); - reject(err); - }); - collector.on("error", reject); - collector.on("finish", function() { - const bytes = new Uint8Array(Buffer.concat(this.bufferedBytes)); - resolve(bytes); - }); - }); -}, "streamCollector"); -var isReadableStreamInstance = /* @__PURE__ */ __name((stream) => typeof ReadableStream === "function" && stream instanceof ReadableStream, "isReadableStreamInstance"); -async function collectReadableStream(stream) { - const chunks = []; - const reader = stream.getReader(); - let isDone = false; - let length = 0; - while (!isDone) { - const { done, value } = await reader.read(); - if (value) { - chunks.push(value); - length += value.length; - } - isDone = done; - } - const collected = new Uint8Array(length); - let offset = 0; - for (const chunk of chunks) { - collected.set(chunk, offset); - offset += chunk.length; - } - return collected; -} -__name(collectReadableStream, "collectReadableStream"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 79721: -/***/ ((module) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - CredentialsProviderError: () => CredentialsProviderError, - ProviderError: () => ProviderError, - TokenProviderError: () => TokenProviderError, - chain: () => chain, - fromStatic: () => fromStatic, - memoize: () => memoize -}); -module.exports = __toCommonJS(src_exports); - -// src/ProviderError.ts -var _ProviderError = class _ProviderError extends Error { - constructor(message, options = true) { - var _a; - let logger; - let tryNextLink = true; - if (typeof options === "boolean") { - logger = void 0; - tryNextLink = options; - } else if (options != null && typeof options === "object") { - logger = options.logger; - tryNextLink = options.tryNextLink ?? true; - } - super(message); - this.name = "ProviderError"; - this.tryNextLink = tryNextLink; - Object.setPrototypeOf(this, _ProviderError.prototype); - (_a = logger == null ? void 0 : logger.debug) == null ? void 0 : _a.call(logger, `@smithy/property-provider ${tryNextLink ? "->" : "(!)"} ${message}`); - } - /** - * @deprecated use new operator. - */ - static from(error, options = true) { - return Object.assign(new this(error.message, options), error); - } -}; -__name(_ProviderError, "ProviderError"); -var ProviderError = _ProviderError; - -// src/CredentialsProviderError.ts -var _CredentialsProviderError = class _CredentialsProviderError extends ProviderError { - /** - * @override - */ - constructor(message, options = true) { - super(message, options); - this.name = "CredentialsProviderError"; - Object.setPrototypeOf(this, _CredentialsProviderError.prototype); - } -}; -__name(_CredentialsProviderError, "CredentialsProviderError"); -var CredentialsProviderError = _CredentialsProviderError; - -// src/TokenProviderError.ts -var _TokenProviderError = class _TokenProviderError extends ProviderError { - /** - * @override - */ - constructor(message, options = true) { - super(message, options); - this.name = "TokenProviderError"; - Object.setPrototypeOf(this, _TokenProviderError.prototype); - } -}; -__name(_TokenProviderError, "TokenProviderError"); -var TokenProviderError = _TokenProviderError; - -// src/chain.ts -var chain = /* @__PURE__ */ __name((...providers) => async () => { - if (providers.length === 0) { - throw new ProviderError("No providers in chain"); - } - let lastProviderError; - for (const provider of providers) { - try { - const credentials = await provider(); - return credentials; - } catch (err) { - lastProviderError = err; - if (err == null ? void 0 : err.tryNextLink) { - continue; - } - throw err; - } - } - throw lastProviderError; -}, "chain"); - -// src/fromStatic.ts -var fromStatic = /* @__PURE__ */ __name((staticValue) => () => Promise.resolve(staticValue), "fromStatic"); - -// src/memoize.ts -var memoize = /* @__PURE__ */ __name((provider, isExpired, requiresRefresh) => { - let resolved; - let pending; - let hasResult; - let isConstant = false; - const coalesceProvider = /* @__PURE__ */ __name(async () => { - if (!pending) { - pending = provider(); - } - try { - resolved = await pending; - hasResult = true; - isConstant = false; - } finally { - pending = void 0; - } - return resolved; - }, "coalesceProvider"); - if (isExpired === void 0) { - return async (options) => { - if (!hasResult || (options == null ? void 0 : options.forceRefresh)) { - resolved = await coalesceProvider(); - } - return resolved; - }; - } - return async (options) => { - if (!hasResult || (options == null ? void 0 : options.forceRefresh)) { - resolved = await coalesceProvider(); - } - if (isConstant) { - return resolved; - } - if (requiresRefresh && !requiresRefresh(resolved)) { - isConstant = true; - return resolved; - } - if (isExpired(resolved)) { - await coalesceProvider(); - return resolved; - } - return resolved; - }; -}, "memoize"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 64418: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - Field: () => Field, - Fields: () => Fields, - HttpRequest: () => HttpRequest, - HttpResponse: () => HttpResponse, - IHttpRequest: () => import_types.HttpRequest, - getHttpHandlerExtensionConfiguration: () => getHttpHandlerExtensionConfiguration, - isValidHostname: () => isValidHostname, - resolveHttpHandlerRuntimeConfig: () => resolveHttpHandlerRuntimeConfig -}); -module.exports = __toCommonJS(src_exports); - -// src/extensions/httpExtensionConfiguration.ts -var getHttpHandlerExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => { - let httpHandler = runtimeConfig.httpHandler; - return { - setHttpHandler(handler) { - httpHandler = handler; - }, - httpHandler() { - return httpHandler; - }, - updateHttpClientConfig(key, value) { - httpHandler.updateHttpClientConfig(key, value); - }, - httpHandlerConfigs() { - return httpHandler.httpHandlerConfigs(); - } - }; -}, "getHttpHandlerExtensionConfiguration"); -var resolveHttpHandlerRuntimeConfig = /* @__PURE__ */ __name((httpHandlerExtensionConfiguration) => { - return { - httpHandler: httpHandlerExtensionConfiguration.httpHandler() - }; -}, "resolveHttpHandlerRuntimeConfig"); - -// src/Field.ts -var import_types = __nccwpck_require__(55756); -var _Field = class _Field { - constructor({ name, kind = import_types.FieldPosition.HEADER, values = [] }) { - this.name = name; - this.kind = kind; - this.values = values; - } - /** - * Appends a value to the field. - * - * @param value The value to append. - */ - add(value) { - this.values.push(value); - } - /** - * Overwrite existing field values. - * - * @param values The new field values. - */ - set(values) { - this.values = values; - } - /** - * Remove all matching entries from list. - * - * @param value Value to remove. - */ - remove(value) { - this.values = this.values.filter((v) => v !== value); - } - /** - * Get comma-delimited string. - * - * @returns String representation of {@link Field}. - */ - toString() { - return this.values.map((v) => v.includes(",") || v.includes(" ") ? `"${v}"` : v).join(", "); - } - /** - * Get string values as a list - * - * @returns Values in {@link Field} as a list. - */ - get() { - return this.values; - } -}; -__name(_Field, "Field"); -var Field = _Field; - -// src/Fields.ts -var _Fields = class _Fields { - constructor({ fields = [], encoding = "utf-8" }) { - this.entries = {}; - fields.forEach(this.setField.bind(this)); - this.encoding = encoding; - } - /** - * Set entry for a {@link Field} name. The `name` - * attribute will be used to key the collection. - * - * @param field The {@link Field} to set. - */ - setField(field) { - this.entries[field.name.toLowerCase()] = field; - } - /** - * Retrieve {@link Field} entry by name. - * - * @param name The name of the {@link Field} entry - * to retrieve - * @returns The {@link Field} if it exists. - */ - getField(name) { - return this.entries[name.toLowerCase()]; - } - /** - * Delete entry from collection. - * - * @param name Name of the entry to delete. - */ - removeField(name) { - delete this.entries[name.toLowerCase()]; - } - /** - * Helper function for retrieving specific types of fields. - * Used to grab all headers or all trailers. - * - * @param kind {@link FieldPosition} of entries to retrieve. - * @returns The {@link Field} entries with the specified - * {@link FieldPosition}. - */ - getByType(kind) { - return Object.values(this.entries).filter((field) => field.kind === kind); - } -}; -__name(_Fields, "Fields"); -var Fields = _Fields; - -// src/httpRequest.ts - -var _HttpRequest = class _HttpRequest { - constructor(options) { - this.method = options.method || "GET"; - this.hostname = options.hostname || "localhost"; - this.port = options.port; - this.query = options.query || {}; - this.headers = options.headers || {}; - this.body = options.body; - this.protocol = options.protocol ? options.protocol.slice(-1) !== ":" ? `${options.protocol}:` : options.protocol : "https:"; - this.path = options.path ? options.path.charAt(0) !== "/" ? `/${options.path}` : options.path : "/"; - this.username = options.username; - this.password = options.password; - this.fragment = options.fragment; - } - /** - * Note: this does not deep-clone the body. - */ - static clone(request) { - const cloned = new _HttpRequest({ - ...request, - headers: { ...request.headers } - }); - if (cloned.query) { - cloned.query = cloneQuery(cloned.query); - } - return cloned; - } - /** - * This method only actually asserts that request is the interface {@link IHttpRequest}, - * and not necessarily this concrete class. Left in place for API stability. - * - * Do not call instance methods on the input of this function, and - * do not assume it has the HttpRequest prototype. - */ - static isInstance(request) { - if (!request) { - return false; - } - const req = request; - return "method" in req && "protocol" in req && "hostname" in req && "path" in req && typeof req["query"] === "object" && typeof req["headers"] === "object"; - } - /** - * @deprecated use static HttpRequest.clone(request) instead. It's not safe to call - * this method because {@link HttpRequest.isInstance} incorrectly - * asserts that IHttpRequest (interface) objects are of type HttpRequest (class). - */ - clone() { - return _HttpRequest.clone(this); - } -}; -__name(_HttpRequest, "HttpRequest"); -var HttpRequest = _HttpRequest; -function cloneQuery(query) { - return Object.keys(query).reduce((carry, paramName) => { - const param = query[paramName]; - return { - ...carry, - [paramName]: Array.isArray(param) ? [...param] : param - }; - }, {}); -} -__name(cloneQuery, "cloneQuery"); - -// src/httpResponse.ts -var _HttpResponse = class _HttpResponse { - constructor(options) { - this.statusCode = options.statusCode; - this.reason = options.reason; - this.headers = options.headers || {}; - this.body = options.body; - } - static isInstance(response) { - if (!response) - return false; - const resp = response; - return typeof resp.statusCode === "number" && typeof resp.headers === "object"; - } -}; -__name(_HttpResponse, "HttpResponse"); -var HttpResponse = _HttpResponse; - -// src/isValidHostname.ts -function isValidHostname(hostname) { - const hostPattern = /^[a-z0-9][a-z0-9\.\-]*[a-z0-9]$/; - return hostPattern.test(hostname); -} -__name(isValidHostname, "isValidHostname"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 68031: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - buildQueryString: () => buildQueryString -}); -module.exports = __toCommonJS(src_exports); -var import_util_uri_escape = __nccwpck_require__(54197); -function buildQueryString(query) { - const parts = []; - for (let key of Object.keys(query).sort()) { - const value = query[key]; - key = (0, import_util_uri_escape.escapeUri)(key); - if (Array.isArray(value)) { - for (let i = 0, iLen = value.length; i < iLen; i++) { - parts.push(`${key}=${(0, import_util_uri_escape.escapeUri)(value[i])}`); - } - } else { - let qsEntry = key; - if (value || typeof value === "string") { - qsEntry += `=${(0, import_util_uri_escape.escapeUri)(value)}`; - } - parts.push(qsEntry); - } - } - return parts.join("&"); -} -__name(buildQueryString, "buildQueryString"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 4769: -/***/ ((module) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - parseQueryString: () => parseQueryString -}); -module.exports = __toCommonJS(src_exports); -function parseQueryString(querystring) { - const query = {}; - querystring = querystring.replace(/^\?/, ""); - if (querystring) { - for (const pair of querystring.split("&")) { - let [key, value = null] = pair.split("="); - key = decodeURIComponent(key); - if (value) { - value = decodeURIComponent(value); - } - if (!(key in query)) { - query[key] = value; - } else if (Array.isArray(query[key])) { - query[key].push(value); - } else { - query[key] = [query[key], value]; + return to } - } - } - return query; -} -__name(parseQueryString, "parseQueryString"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 6375: -/***/ ((module) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - isClockSkewCorrectedError: () => isClockSkewCorrectedError, - isClockSkewError: () => isClockSkewError, - isRetryableByTrait: () => isRetryableByTrait, - isServerError: () => isServerError, - isThrottlingError: () => isThrottlingError, - isTransientError: () => isTransientError -}); -module.exports = __toCommonJS(src_exports); - -// src/constants.ts -var CLOCK_SKEW_ERROR_CODES = [ - "AuthFailure", - "InvalidSignatureException", - "RequestExpired", - "RequestInTheFuture", - "RequestTimeTooSkewed", - "SignatureDoesNotMatch" -]; -var THROTTLING_ERROR_CODES = [ - "BandwidthLimitExceeded", - "EC2ThrottledException", - "LimitExceededException", - "PriorRequestNotComplete", - "ProvisionedThroughputExceededException", - "RequestLimitExceeded", - "RequestThrottled", - "RequestThrottledException", - "SlowDown", - "ThrottledException", - "Throttling", - "ThrottlingException", - "TooManyRequestsException", - "TransactionInProgressException" - // DynamoDB -]; -var TRANSIENT_ERROR_CODES = ["TimeoutError", "RequestTimeout", "RequestTimeoutException"]; -var TRANSIENT_ERROR_STATUS_CODES = [500, 502, 503, 504]; -var NODEJS_TIMEOUT_ERROR_CODES = ["ECONNRESET", "ECONNREFUSED", "EPIPE", "ETIMEDOUT"]; - -// src/index.ts -var isRetryableByTrait = /* @__PURE__ */ __name((error) => error.$retryable !== void 0, "isRetryableByTrait"); -var isClockSkewError = /* @__PURE__ */ __name((error) => CLOCK_SKEW_ERROR_CODES.includes(error.name), "isClockSkewError"); -var isClockSkewCorrectedError = /* @__PURE__ */ __name((error) => { - var _a; - return (_a = error.$metadata) == null ? void 0 : _a.clockSkewCorrected; -}, "isClockSkewCorrectedError"); -var isThrottlingError = /* @__PURE__ */ __name((error) => { - var _a, _b; - 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; -}, "isThrottlingError"); -var isTransientError = /* @__PURE__ */ __name((error) => { - var _a; - 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); -}, "isTransientError"); -var isServerError = /* @__PURE__ */ __name((error) => { - var _a; - if (((_a = error.$metadata) == null ? void 0 : _a.httpStatusCode) !== void 0) { - const statusCode = error.$metadata.httpStatusCode; - if (500 <= statusCode && statusCode <= 599 && !isTransientError(error)) { - return true; - } - return false; - } - return false; -}, "isServerError"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 68340: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getHomeDir = void 0; -const os_1 = __nccwpck_require__(22037); -const path_1 = __nccwpck_require__(71017); -const homeDirCache = {}; -const getHomeDirCacheKey = () => { - if (process && process.geteuid) { - return `${process.geteuid()}`; - } - return "DEFAULT"; -}; -const getHomeDir = () => { - const { HOME, USERPROFILE, HOMEPATH, HOMEDRIVE = `C:${path_1.sep}` } = process.env; - if (HOME) - return HOME; - if (USERPROFILE) - return USERPROFILE; - if (HOMEPATH) - return `${HOMEDRIVE}${HOMEPATH}`; - const homeDirCacheKey = getHomeDirCacheKey(); - if (!homeDirCache[homeDirCacheKey]) - homeDirCache[homeDirCacheKey] = (0, os_1.homedir)(); - return homeDirCache[homeDirCacheKey]; -}; -exports.getHomeDir = getHomeDir; - - -/***/ }), - -/***/ 24740: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getSSOTokenFilepath = void 0; -const crypto_1 = __nccwpck_require__(6113); -const path_1 = __nccwpck_require__(71017); -const getHomeDir_1 = __nccwpck_require__(68340); -const getSSOTokenFilepath = (id) => { - const hasher = (0, crypto_1.createHash)("sha1"); - const cacheName = hasher.update(id).digest("hex"); - return (0, path_1.join)((0, getHomeDir_1.getHomeDir)(), ".aws", "sso", "cache", `${cacheName}.json`); -}; -exports.getSSOTokenFilepath = getSSOTokenFilepath; - - -/***/ }), - -/***/ 69678: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getSSOTokenFromFile = void 0; -const fs_1 = __nccwpck_require__(57147); -const getSSOTokenFilepath_1 = __nccwpck_require__(24740); -const { readFile } = fs_1.promises; -const getSSOTokenFromFile = async (id) => { - const ssoTokenFilepath = (0, getSSOTokenFilepath_1.getSSOTokenFilepath)(id); - const ssoTokenText = await readFile(ssoTokenFilepath, "utf8"); - return JSON.parse(ssoTokenText); -}; -exports.getSSOTokenFromFile = getSSOTokenFromFile; - - -/***/ }), - -/***/ 43507: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - CONFIG_PREFIX_SEPARATOR: () => CONFIG_PREFIX_SEPARATOR, - DEFAULT_PROFILE: () => DEFAULT_PROFILE, - ENV_PROFILE: () => ENV_PROFILE, - getProfileName: () => getProfileName, - loadSharedConfigFiles: () => loadSharedConfigFiles, - loadSsoSessionData: () => loadSsoSessionData, - parseKnownFiles: () => parseKnownFiles -}); -module.exports = __toCommonJS(src_exports); -__reExport(src_exports, __nccwpck_require__(68340), module.exports); - -// src/getProfileName.ts -var ENV_PROFILE = "AWS_PROFILE"; -var DEFAULT_PROFILE = "default"; -var getProfileName = /* @__PURE__ */ __name((init) => init.profile || process.env[ENV_PROFILE] || DEFAULT_PROFILE, "getProfileName"); - -// src/index.ts -__reExport(src_exports, __nccwpck_require__(24740), module.exports); -__reExport(src_exports, __nccwpck_require__(69678), module.exports); - -// src/loadSharedConfigFiles.ts - - -// src/getConfigData.ts -var import_types = __nccwpck_require__(55756); -var getConfigData = /* @__PURE__ */ __name((data) => Object.entries(data).filter(([key]) => { - const indexOfSeparator = key.indexOf(CONFIG_PREFIX_SEPARATOR); - if (indexOfSeparator === -1) { - return false; - } - return Object.values(import_types.IniSectionType).includes(key.substring(0, indexOfSeparator)); -}).reduce( - (acc, [key, value]) => { - const indexOfSeparator = key.indexOf(CONFIG_PREFIX_SEPARATOR); - const updatedKey = key.substring(0, indexOfSeparator) === import_types.IniSectionType.PROFILE ? key.substring(indexOfSeparator + 1) : key; - acc[updatedKey] = value; - return acc; - }, - { - // Populate default profile, if present. - ...data.default && { default: data.default } - } -), "getConfigData"); - -// src/getConfigFilepath.ts -var import_path = __nccwpck_require__(71017); -var import_getHomeDir = __nccwpck_require__(68340); -var ENV_CONFIG_PATH = "AWS_CONFIG_FILE"; -var getConfigFilepath = /* @__PURE__ */ __name(() => process.env[ENV_CONFIG_PATH] || (0, import_path.join)((0, import_getHomeDir.getHomeDir)(), ".aws", "config"), "getConfigFilepath"); - -// src/getCredentialsFilepath.ts - -var import_getHomeDir2 = __nccwpck_require__(68340); -var ENV_CREDENTIALS_PATH = "AWS_SHARED_CREDENTIALS_FILE"; -var getCredentialsFilepath = /* @__PURE__ */ __name(() => process.env[ENV_CREDENTIALS_PATH] || (0, import_path.join)((0, import_getHomeDir2.getHomeDir)(), ".aws", "credentials"), "getCredentialsFilepath"); - -// src/loadSharedConfigFiles.ts -var import_getHomeDir3 = __nccwpck_require__(68340); - -// src/parseIni.ts - -var prefixKeyRegex = /^([\w-]+)\s(["'])?([\w-@\+\.%:/]+)\2$/; -var profileNameBlockList = ["__proto__", "profile __proto__"]; -var parseIni = /* @__PURE__ */ __name((iniData) => { - const map = {}; - let currentSection; - let currentSubSection; - for (const iniLine of iniData.split(/\r?\n/)) { - const trimmedLine = iniLine.split(/(^|\s)[;#]/)[0].trim(); - const isSection = trimmedLine[0] === "[" && trimmedLine[trimmedLine.length - 1] === "]"; - if (isSection) { - currentSection = void 0; - currentSubSection = void 0; - const sectionName = trimmedLine.substring(1, trimmedLine.length - 1); - const matches = prefixKeyRegex.exec(sectionName); - if (matches) { - const [, prefix, , name] = matches; - if (Object.values(import_types.IniSectionType).includes(prefix)) { - currentSection = [prefix, name].join(CONFIG_PREFIX_SEPARATOR); - } - } else { - currentSection = sectionName; - } - if (profileNameBlockList.includes(sectionName)) { - throw new Error(`Found invalid profile name "${sectionName}"`); - } - } else if (currentSection) { - const indexOfEqualsSign = trimmedLine.indexOf("="); - if (![0, -1].includes(indexOfEqualsSign)) { - const [name, value] = [ - trimmedLine.substring(0, indexOfEqualsSign).trim(), - trimmedLine.substring(indexOfEqualsSign + 1).trim() - ]; - if (value === "") { - currentSubSection = name; - } else { - if (currentSubSection && iniLine.trimStart() === iniLine) { - currentSubSection = void 0; + // src/index.ts + var src_exports = {} + __export(src_exports, { + fromHex: () => fromHex, + toHex: () => toHex + }) + module.exports = __toCommonJS(src_exports) + var SHORT_TO_HEX = {} + var HEX_TO_SHORT = {} + for (let i = 0; i < 256; i++) { + let encodedByte = i.toString(16).toLowerCase() + if (encodedByte.length === 1) { + encodedByte = `0${encodedByte}` + } + SHORT_TO_HEX[i] = encodedByte + HEX_TO_SHORT[encodedByte] = i + } + function fromHex(encoded) { + if (encoded.length % 2 !== 0) { + throw new Error('Hex encoded strings must have an even number length') + } + const out = new Uint8Array(encoded.length / 2) + for (let i = 0; i < encoded.length; i += 2) { + const encodedByte = encoded.slice(i, i + 2).toLowerCase() + if (encodedByte in HEX_TO_SHORT) { + out[i / 2] = HEX_TO_SHORT[encodedByte] + } else { + throw new Error( + `Cannot decode unrecognized sequence ${encodedByte} as hexadecimal` + ) } - map[currentSection] = map[currentSection] || {}; - const key = currentSubSection ? [currentSubSection, name].join(CONFIG_PREFIX_SEPARATOR) : name; - map[currentSection][key] = value; } + return out } - } - } - return map; -}, "parseIni"); - -// src/loadSharedConfigFiles.ts -var import_slurpFile = __nccwpck_require__(19155); -var swallowError = /* @__PURE__ */ __name(() => ({}), "swallowError"); -var CONFIG_PREFIX_SEPARATOR = "."; -var loadSharedConfigFiles = /* @__PURE__ */ __name(async (init = {}) => { - const { filepath = getCredentialsFilepath(), configFilepath = getConfigFilepath() } = init; - const homeDir = (0, import_getHomeDir3.getHomeDir)(); - const relativeHomeDirPrefix = "~/"; - let resolvedFilepath = filepath; - if (filepath.startsWith(relativeHomeDirPrefix)) { - resolvedFilepath = (0, import_path.join)(homeDir, filepath.slice(2)); - } - let resolvedConfigFilepath = configFilepath; - if (configFilepath.startsWith(relativeHomeDirPrefix)) { - resolvedConfigFilepath = (0, import_path.join)(homeDir, configFilepath.slice(2)); - } - const parsedFiles = await Promise.all([ - (0, import_slurpFile.slurpFile)(resolvedConfigFilepath, { - ignoreCache: init.ignoreCache - }).then(parseIni).then(getConfigData).catch(swallowError), - (0, import_slurpFile.slurpFile)(resolvedFilepath, { - ignoreCache: init.ignoreCache - }).then(parseIni).catch(swallowError) - ]); - return { - configFile: parsedFiles[0], - credentialsFile: parsedFiles[1] - }; -}, "loadSharedConfigFiles"); - -// src/getSsoSessionData.ts - -var 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"); - -// src/loadSsoSessionData.ts -var import_slurpFile2 = __nccwpck_require__(19155); -var swallowError2 = /* @__PURE__ */ __name(() => ({}), "swallowError"); -var loadSsoSessionData = /* @__PURE__ */ __name(async (init = {}) => (0, import_slurpFile2.slurpFile)(init.configFilepath ?? getConfigFilepath()).then(parseIni).then(getSsoSessionData).catch(swallowError2), "loadSsoSessionData"); - -// src/mergeConfigFiles.ts -var mergeConfigFiles = /* @__PURE__ */ __name((...files) => { - const merged = {}; - for (const file of files) { - for (const [key, values] of Object.entries(file)) { - if (merged[key] !== void 0) { - Object.assign(merged[key], values); - } else { - merged[key] = values; + __name(fromHex, 'fromHex') + function toHex(bytes) { + let out = '' + for (let i = 0; i < bytes.byteLength; i++) { + out += SHORT_TO_HEX[bytes[i]] + } + return out } - } - } - return merged; -}, "mergeConfigFiles"); - -// src/parseKnownFiles.ts -var parseKnownFiles = /* @__PURE__ */ __name(async (init) => { - const parsedFiles = await loadSharedConfigFiles(init); - return mergeConfigFiles(parsedFiles.configFile, parsedFiles.credentialsFile); -}, "parseKnownFiles"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); + __name(toHex, 'toHex') + // Annotate the CommonJS export names for ESM import in node: + 0 && 0 + /***/ + }, -/***/ }), - -/***/ 19155: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + /***/ 2390: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -"use strict"; + // src/index.ts + var src_exports = {} + __export(src_exports, { + getSmithyContext: () => getSmithyContext, + normalizeProvider: () => normalizeProvider + }) + module.exports = __toCommonJS(src_exports) + + // src/getSmithyContext.ts + var import_types = __nccwpck_require__(55756) + var getSmithyContext = /* @__PURE__ */ __name( + context => + context[import_types.SMITHY_CONTEXT_KEY] || + (context[import_types.SMITHY_CONTEXT_KEY] = {}), + 'getSmithyContext' + ) -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.slurpFile = void 0; -const fs_1 = __nccwpck_require__(57147); -const { readFile } = fs_1.promises; -const filePromisesHash = {}; -const slurpFile = (path, options) => { - if (!filePromisesHash[path] || (options === null || options === void 0 ? void 0 : options.ignoreCache)) { - filePromisesHash[path] = readFile(path, "utf8"); - } - return filePromisesHash[path]; -}; -exports.slurpFile = slurpFile; - - -/***/ }), - -/***/ 11528: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - SignatureV4: () => SignatureV4, - clearCredentialCache: () => clearCredentialCache, - createScope: () => createScope, - getCanonicalHeaders: () => getCanonicalHeaders, - getCanonicalQuery: () => getCanonicalQuery, - getPayloadHash: () => getPayloadHash, - getSigningKey: () => getSigningKey, - moveHeadersToQuery: () => moveHeadersToQuery, - prepareRequest: () => prepareRequest -}); -module.exports = __toCommonJS(src_exports); - -// src/SignatureV4.ts - -var import_util_middleware = __nccwpck_require__(2390); - -var import_util_utf84 = __nccwpck_require__(41895); - -// src/constants.ts -var ALGORITHM_QUERY_PARAM = "X-Amz-Algorithm"; -var CREDENTIAL_QUERY_PARAM = "X-Amz-Credential"; -var AMZ_DATE_QUERY_PARAM = "X-Amz-Date"; -var SIGNED_HEADERS_QUERY_PARAM = "X-Amz-SignedHeaders"; -var EXPIRES_QUERY_PARAM = "X-Amz-Expires"; -var SIGNATURE_QUERY_PARAM = "X-Amz-Signature"; -var TOKEN_QUERY_PARAM = "X-Amz-Security-Token"; -var AUTH_HEADER = "authorization"; -var AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase(); -var DATE_HEADER = "date"; -var GENERATED_HEADERS = [AUTH_HEADER, AMZ_DATE_HEADER, DATE_HEADER]; -var SIGNATURE_HEADER = SIGNATURE_QUERY_PARAM.toLowerCase(); -var SHA256_HEADER = "x-amz-content-sha256"; -var TOKEN_HEADER = TOKEN_QUERY_PARAM.toLowerCase(); -var ALWAYS_UNSIGNABLE_HEADERS = { - authorization: true, - "cache-control": true, - connection: true, - expect: true, - from: true, - "keep-alive": true, - "max-forwards": true, - pragma: true, - referer: true, - te: true, - trailer: true, - "transfer-encoding": true, - upgrade: true, - "user-agent": true, - "x-amzn-trace-id": true -}; -var PROXY_HEADER_PATTERN = /^proxy-/; -var SEC_HEADER_PATTERN = /^sec-/; -var ALGORITHM_IDENTIFIER = "AWS4-HMAC-SHA256"; -var EVENT_ALGORITHM_IDENTIFIER = "AWS4-HMAC-SHA256-PAYLOAD"; -var UNSIGNED_PAYLOAD = "UNSIGNED-PAYLOAD"; -var MAX_CACHE_SIZE = 50; -var KEY_TYPE_IDENTIFIER = "aws4_request"; -var MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7; - -// src/credentialDerivation.ts -var import_util_hex_encoding = __nccwpck_require__(45364); -var import_util_utf8 = __nccwpck_require__(41895); -var signingKeyCache = {}; -var cacheQueue = []; -var createScope = /* @__PURE__ */ __name((shortDate, region, service) => `${shortDate}/${region}/${service}/${KEY_TYPE_IDENTIFIER}`, "createScope"); -var getSigningKey = /* @__PURE__ */ __name(async (sha256Constructor, credentials, shortDate, region, service) => { - const credsHash = await hmac(sha256Constructor, credentials.secretAccessKey, credentials.accessKeyId); - const cacheKey = `${shortDate}:${region}:${service}:${(0, import_util_hex_encoding.toHex)(credsHash)}:${credentials.sessionToken}`; - if (cacheKey in signingKeyCache) { - return signingKeyCache[cacheKey]; - } - cacheQueue.push(cacheKey); - while (cacheQueue.length > MAX_CACHE_SIZE) { - delete signingKeyCache[cacheQueue.shift()]; - } - let key = `AWS4${credentials.secretAccessKey}`; - for (const signable of [shortDate, region, service, KEY_TYPE_IDENTIFIER]) { - key = await hmac(sha256Constructor, key, signable); - } - return signingKeyCache[cacheKey] = key; -}, "getSigningKey"); -var clearCredentialCache = /* @__PURE__ */ __name(() => { - cacheQueue.length = 0; - Object.keys(signingKeyCache).forEach((cacheKey) => { - delete signingKeyCache[cacheKey]; - }); -}, "clearCredentialCache"); -var hmac = /* @__PURE__ */ __name((ctor, secret, data) => { - const hash = new ctor(secret); - hash.update((0, import_util_utf8.toUint8Array)(data)); - return hash.digest(); -}, "hmac"); - -// src/getCanonicalHeaders.ts -var getCanonicalHeaders = /* @__PURE__ */ __name(({ headers }, unsignableHeaders, signableHeaders) => { - const canonical = {}; - for (const headerName of Object.keys(headers).sort()) { - if (headers[headerName] == void 0) { - continue; - } - const canonicalHeaderName = headerName.toLowerCase(); - if (canonicalHeaderName in ALWAYS_UNSIGNABLE_HEADERS || (unsignableHeaders == null ? void 0 : unsignableHeaders.has(canonicalHeaderName)) || PROXY_HEADER_PATTERN.test(canonicalHeaderName) || SEC_HEADER_PATTERN.test(canonicalHeaderName)) { - if (!signableHeaders || signableHeaders && !signableHeaders.has(canonicalHeaderName)) { - continue; - } - } - canonical[canonicalHeaderName] = headers[headerName].trim().replace(/\s+/g, " "); - } - return canonical; -}, "getCanonicalHeaders"); - -// src/getCanonicalQuery.ts -var import_util_uri_escape = __nccwpck_require__(54197); -var getCanonicalQuery = /* @__PURE__ */ __name(({ query = {} }) => { - const keys = []; - const serialized = {}; - for (const key of Object.keys(query).sort()) { - if (key.toLowerCase() === SIGNATURE_HEADER) { - continue; - } - keys.push(key); - const value = query[key]; - if (typeof value === "string") { - serialized[key] = `${(0, import_util_uri_escape.escapeUri)(key)}=${(0, import_util_uri_escape.escapeUri)(value)}`; - } else if (Array.isArray(value)) { - serialized[key] = value.slice(0).reduce( - (encoded, value2) => encoded.concat([`${(0, import_util_uri_escape.escapeUri)(key)}=${(0, import_util_uri_escape.escapeUri)(value2)}`]), - [] - ).sort().join("&"); - } - } - return keys.map((key) => serialized[key]).filter((serialized2) => serialized2).join("&"); -}, "getCanonicalQuery"); + // src/normalizeProvider.ts + var normalizeProvider = /* @__PURE__ */ __name(input => { + if (typeof input === 'function') return input + const promisified = Promise.resolve(input) + return () => promisified + }, 'normalizeProvider') + // Annotate the CommonJS export names for ESM import in node: -// src/getPayloadHash.ts -var import_is_array_buffer = __nccwpck_require__(10780); + 0 && 0 -var import_util_utf82 = __nccwpck_require__(41895); -var getPayloadHash = /* @__PURE__ */ __name(async ({ headers, body }, hashConstructor) => { - for (const headerName of Object.keys(headers)) { - if (headerName.toLowerCase() === SHA256_HEADER) { - return headers[headerName]; - } - } - if (body == void 0) { - return "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"; - } else if (typeof body === "string" || ArrayBuffer.isView(body) || (0, import_is_array_buffer.isArrayBuffer)(body)) { - const hashCtor = new hashConstructor(); - hashCtor.update((0, import_util_utf82.toUint8Array)(body)); - return (0, import_util_hex_encoding.toHex)(await hashCtor.digest()); - } - return UNSIGNED_PAYLOAD; -}, "getPayloadHash"); - -// src/HeaderFormatter.ts - -var import_util_utf83 = __nccwpck_require__(41895); -var _HeaderFormatter = class _HeaderFormatter { - format(headers) { - const chunks = []; - for (const headerName of Object.keys(headers)) { - const bytes = (0, import_util_utf83.fromUtf8)(headerName); - chunks.push(Uint8Array.from([bytes.byteLength]), bytes, this.formatHeaderValue(headers[headerName])); - } - const out = new Uint8Array(chunks.reduce((carry, bytes) => carry + bytes.byteLength, 0)); - let position = 0; - for (const chunk of chunks) { - out.set(chunk, position); - position += chunk.byteLength; - } - return out; - } - formatHeaderValue(header) { - switch (header.type) { - case "boolean": - return Uint8Array.from([header.value ? 0 /* boolTrue */ : 1 /* boolFalse */]); - case "byte": - return Uint8Array.from([2 /* byte */, header.value]); - case "short": - const shortView = new DataView(new ArrayBuffer(3)); - shortView.setUint8(0, 3 /* short */); - shortView.setInt16(1, header.value, false); - return new Uint8Array(shortView.buffer); - case "integer": - const intView = new DataView(new ArrayBuffer(5)); - intView.setUint8(0, 4 /* integer */); - intView.setInt32(1, header.value, false); - return new Uint8Array(intView.buffer); - case "long": - const longBytes = new Uint8Array(9); - longBytes[0] = 5 /* long */; - longBytes.set(header.value.bytes, 1); - return longBytes; - case "binary": - const binView = new DataView(new ArrayBuffer(3 + header.value.byteLength)); - binView.setUint8(0, 6 /* byteArray */); - binView.setUint16(1, header.value.byteLength, false); - const binBytes = new Uint8Array(binView.buffer); - binBytes.set(header.value, 3); - return binBytes; - case "string": - const utf8Bytes = (0, import_util_utf83.fromUtf8)(header.value); - const strView = new DataView(new ArrayBuffer(3 + utf8Bytes.byteLength)); - strView.setUint8(0, 7 /* string */); - strView.setUint16(1, utf8Bytes.byteLength, false); - const strBytes = new Uint8Array(strView.buffer); - strBytes.set(utf8Bytes, 3); - return strBytes; - case "timestamp": - const tsBytes = new Uint8Array(9); - tsBytes[0] = 8 /* timestamp */; - tsBytes.set(Int64.fromNumber(header.value.valueOf()).bytes, 1); - return tsBytes; - case "uuid": - if (!UUID_PATTERN.test(header.value)) { - throw new Error(`Invalid UUID received: ${header.value}`); - } - const uuidBytes = new Uint8Array(17); - uuidBytes[0] = 9 /* uuid */; - uuidBytes.set((0, import_util_hex_encoding.fromHex)(header.value.replace(/\-/g, "")), 1); - return uuidBytes; - } - } -}; -__name(_HeaderFormatter, "HeaderFormatter"); -var HeaderFormatter = _HeaderFormatter; -var UUID_PATTERN = /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/; -var _Int64 = class _Int64 { - constructor(bytes) { - this.bytes = bytes; - if (bytes.byteLength !== 8) { - throw new Error("Int64 buffers must be exactly 8 bytes"); - } - } - static fromNumber(number) { - if (number > 9223372036854776e3 || number < -9223372036854776e3) { - throw new Error(`${number} is too large (or, if negative, too small) to represent as an Int64`); - } - const bytes = new Uint8Array(8); - for (let i = 7, remaining = Math.abs(Math.round(number)); i > -1 && remaining > 0; i--, remaining /= 256) { - bytes[i] = remaining; - } - if (number < 0) { - negate(bytes); - } - return new _Int64(bytes); - } - /** - * Called implicitly by infix arithmetic operators. - */ - valueOf() { - const bytes = this.bytes.slice(0); - const negative = bytes[0] & 128; - if (negative) { - negate(bytes); - } - return parseInt((0, import_util_hex_encoding.toHex)(bytes), 16) * (negative ? -1 : 1); - } - toString() { - return String(this.valueOf()); - } -}; -__name(_Int64, "Int64"); -var Int64 = _Int64; -function negate(bytes) { - for (let i = 0; i < 8; i++) { - bytes[i] ^= 255; - } - for (let i = 7; i > -1; i--) { - bytes[i]++; - if (bytes[i] !== 0) - break; - } -} -__name(negate, "negate"); - -// src/headerUtil.ts -var hasHeader = /* @__PURE__ */ __name((soughtHeader, headers) => { - soughtHeader = soughtHeader.toLowerCase(); - for (const headerName of Object.keys(headers)) { - if (soughtHeader === headerName.toLowerCase()) { - return true; - } - } - return false; -}, "hasHeader"); - -// src/moveHeadersToQuery.ts -var import_protocol_http = __nccwpck_require__(64418); -var moveHeadersToQuery = /* @__PURE__ */ __name((request, options = {}) => { - var _a; - const { headers, query = {} } = import_protocol_http.HttpRequest.clone(request); - for (const name of Object.keys(headers)) { - const lname = name.toLowerCase(); - if (lname.slice(0, 6) === "x-amz-" && !((_a = options.unhoistableHeaders) == null ? void 0 : _a.has(lname))) { - query[name] = headers[name]; - delete headers[name]; - } - } - return { - ...request, - headers, - query - }; -}, "moveHeadersToQuery"); - -// src/prepareRequest.ts - -var prepareRequest = /* @__PURE__ */ __name((request) => { - request = import_protocol_http.HttpRequest.clone(request); - for (const headerName of Object.keys(request.headers)) { - if (GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) { - delete request.headers[headerName]; - } - } - return request; -}, "prepareRequest"); - -// src/utilDate.ts -var iso8601 = /* @__PURE__ */ __name((time) => toDate(time).toISOString().replace(/\.\d{3}Z$/, "Z"), "iso8601"); -var toDate = /* @__PURE__ */ __name((time) => { - if (typeof time === "number") { - return new Date(time * 1e3); - } - if (typeof time === "string") { - if (Number(time)) { - return new Date(Number(time) * 1e3); - } - return new Date(time); - } - return time; -}, "toDate"); - -// src/SignatureV4.ts -var _SignatureV4 = class _SignatureV4 { - constructor({ - applyChecksum, - credentials, - region, - service, - sha256, - uriEscapePath = true - }) { - this.headerFormatter = new HeaderFormatter(); - this.service = service; - this.sha256 = sha256; - this.uriEscapePath = uriEscapePath; - this.applyChecksum = typeof applyChecksum === "boolean" ? applyChecksum : true; - this.regionProvider = (0, import_util_middleware.normalizeProvider)(region); - this.credentialProvider = (0, import_util_middleware.normalizeProvider)(credentials); - } - async presign(originalRequest, options = {}) { - const { - signingDate = /* @__PURE__ */ new Date(), - expiresIn = 3600, - unsignableHeaders, - unhoistableHeaders, - signableHeaders, - signingRegion, - signingService - } = options; - const credentials = await this.credentialProvider(); - this.validateResolvedCredentials(credentials); - const region = signingRegion ?? await this.regionProvider(); - const { longDate, shortDate } = formatDate(signingDate); - if (expiresIn > MAX_PRESIGNED_TTL) { - return Promise.reject( - "Signature version 4 presigned URLs must have an expiration date less than one week in the future" - ); - } - const scope = createScope(shortDate, region, signingService ?? this.service); - const request = moveHeadersToQuery(prepareRequest(originalRequest), { unhoistableHeaders }); - if (credentials.sessionToken) { - request.query[TOKEN_QUERY_PARAM] = credentials.sessionToken; - } - request.query[ALGORITHM_QUERY_PARAM] = ALGORITHM_IDENTIFIER; - request.query[CREDENTIAL_QUERY_PARAM] = `${credentials.accessKeyId}/${scope}`; - request.query[AMZ_DATE_QUERY_PARAM] = longDate; - request.query[EXPIRES_QUERY_PARAM] = expiresIn.toString(10); - const canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders); - request.query[SIGNED_HEADERS_QUERY_PARAM] = getCanonicalHeaderList(canonicalHeaders); - request.query[SIGNATURE_QUERY_PARAM] = await this.getSignature( - longDate, - scope, - this.getSigningKey(credentials, region, shortDate, signingService), - this.createCanonicalRequest(request, canonicalHeaders, await getPayloadHash(originalRequest, this.sha256)) - ); - return request; - } - async sign(toSign, options) { - if (typeof toSign === "string") { - return this.signString(toSign, options); - } else if (toSign.headers && toSign.payload) { - return this.signEvent(toSign, options); - } else if (toSign.message) { - return this.signMessage(toSign, options); - } else { - return this.signRequest(toSign, options); - } - } - async signEvent({ headers, payload }, { signingDate = /* @__PURE__ */ new Date(), priorSignature, signingRegion, signingService }) { - const region = signingRegion ?? await this.regionProvider(); - const { shortDate, longDate } = formatDate(signingDate); - const scope = createScope(shortDate, region, signingService ?? this.service); - const hashedPayload = await getPayloadHash({ headers: {}, body: payload }, this.sha256); - const hash = new this.sha256(); - hash.update(headers); - const hashedHeaders = (0, import_util_hex_encoding.toHex)(await hash.digest()); - const stringToSign = [ - EVENT_ALGORITHM_IDENTIFIER, - longDate, - scope, - priorSignature, - hashedHeaders, - hashedPayload - ].join("\n"); - return this.signString(stringToSign, { signingDate, signingRegion: region, signingService }); - } - async signMessage(signableMessage, { signingDate = /* @__PURE__ */ new Date(), signingRegion, signingService }) { - const promise = this.signEvent( - { - headers: this.headerFormatter.format(signableMessage.message.headers), - payload: signableMessage.message.body - }, - { - signingDate, - signingRegion, - signingService, - priorSignature: signableMessage.priorSignature - } - ); - return promise.then((signature) => { - return { message: signableMessage.message, signature }; - }); - } - async signString(stringToSign, { signingDate = /* @__PURE__ */ new Date(), signingRegion, signingService } = {}) { - const credentials = await this.credentialProvider(); - this.validateResolvedCredentials(credentials); - const region = signingRegion ?? await this.regionProvider(); - const { shortDate } = formatDate(signingDate); - const hash = new this.sha256(await this.getSigningKey(credentials, region, shortDate, signingService)); - hash.update((0, import_util_utf84.toUint8Array)(stringToSign)); - return (0, import_util_hex_encoding.toHex)(await hash.digest()); - } - async signRequest(requestToSign, { - signingDate = /* @__PURE__ */ new Date(), - signableHeaders, - unsignableHeaders, - signingRegion, - signingService - } = {}) { - const credentials = await this.credentialProvider(); - this.validateResolvedCredentials(credentials); - const region = signingRegion ?? await this.regionProvider(); - const request = prepareRequest(requestToSign); - const { longDate, shortDate } = formatDate(signingDate); - const scope = createScope(shortDate, region, signingService ?? this.service); - request.headers[AMZ_DATE_HEADER] = longDate; - if (credentials.sessionToken) { - request.headers[TOKEN_HEADER] = credentials.sessionToken; - } - const payloadHash = await getPayloadHash(request, this.sha256); - if (!hasHeader(SHA256_HEADER, request.headers) && this.applyChecksum) { - request.headers[SHA256_HEADER] = payloadHash; - } - const canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders); - const signature = await this.getSignature( - longDate, - scope, - this.getSigningKey(credentials, region, shortDate, signingService), - this.createCanonicalRequest(request, canonicalHeaders, payloadHash) - ); - request.headers[AUTH_HEADER] = `${ALGORITHM_IDENTIFIER} Credential=${credentials.accessKeyId}/${scope}, SignedHeaders=${getCanonicalHeaderList(canonicalHeaders)}, Signature=${signature}`; - return request; - } - createCanonicalRequest(request, canonicalHeaders, payloadHash) { - const sortedHeaders = Object.keys(canonicalHeaders).sort(); - return `${request.method} -${this.getCanonicalPath(request)} -${getCanonicalQuery(request)} -${sortedHeaders.map((name) => `${name}:${canonicalHeaders[name]}`).join("\n")} + /***/ + }, -${sortedHeaders.join(";")} -${payloadHash}`; - } - async createStringToSign(longDate, credentialScope, canonicalRequest) { - const hash = new this.sha256(); - hash.update((0, import_util_utf84.toUint8Array)(canonicalRequest)); - const hashedRequest = await hash.digest(); - return `${ALGORITHM_IDENTIFIER} -${longDate} -${credentialScope} -${(0, import_util_hex_encoding.toHex)(hashedRequest)}`; - } - getCanonicalPath({ path }) { - if (this.uriEscapePath) { - const normalizedPathSegments = []; - for (const pathSegment of path.split("/")) { - if ((pathSegment == null ? void 0 : pathSegment.length) === 0) - continue; - if (pathSegment === ".") - continue; - if (pathSegment === "..") { - normalizedPathSegments.pop(); - } else { - normalizedPathSegments.push(pathSegment); + /***/ 84902: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) } - } - const normalizedPath = `${(path == null ? void 0 : path.startsWith("/")) ? "/" : ""}${normalizedPathSegments.join("/")}${normalizedPathSegments.length > 0 && (path == null ? void 0 : path.endsWith("/")) ? "/" : ""}`; - const doubleEncoded = (0, import_util_uri_escape.escapeUri)(normalizedPath); - return doubleEncoded.replace(/%2F/g, "/"); - } - return path; - } - async getSignature(longDate, credentialScope, keyPromise, canonicalRequest) { - const stringToSign = await this.createStringToSign(longDate, credentialScope, canonicalRequest); - const hash = new this.sha256(await keyPromise); - hash.update((0, import_util_utf84.toUint8Array)(stringToSign)); - return (0, import_util_hex_encoding.toHex)(await hash.digest()); - } - getSigningKey(credentials, region, shortDate, service) { - return getSigningKey(this.sha256, credentials, shortDate, region, service || this.service); - } - validateResolvedCredentials(credentials) { - if (typeof credentials !== "object" || // @ts-expect-error: Property 'accessKeyId' does not exist on type 'object'.ts(2339) - typeof credentials.accessKeyId !== "string" || // @ts-expect-error: Property 'secretAccessKey' does not exist on type 'object'.ts(2339) - typeof credentials.secretAccessKey !== "string") { - throw new Error("Resolved credential object is not valid"); - } - } -}; -__name(_SignatureV4, "SignatureV4"); -var SignatureV4 = _SignatureV4; -var formatDate = /* @__PURE__ */ __name((now) => { - const longDate = iso8601(now).replace(/[\-:]/g, ""); - return { - longDate, - shortDate: longDate.slice(0, 8) - }; -}, "formatDate"); -var getCanonicalHeaderList = /* @__PURE__ */ __name((headers) => Object.keys(headers).sort().join(";"), "getCanonicalHeaderList"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 63570: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - Client: () => Client, - Command: () => Command, - LazyJsonString: () => LazyJsonString, - NoOpLogger: () => NoOpLogger, - SENSITIVE_STRING: () => SENSITIVE_STRING, - ServiceException: () => ServiceException, - StringWrapper: () => StringWrapper, - _json: () => _json, - collectBody: () => collectBody, - convertMap: () => convertMap, - createAggregatedClient: () => createAggregatedClient, - dateToUtcString: () => dateToUtcString, - decorateServiceException: () => decorateServiceException, - emitWarningIfUnsupportedVersion: () => emitWarningIfUnsupportedVersion, - expectBoolean: () => expectBoolean, - expectByte: () => expectByte, - expectFloat32: () => expectFloat32, - expectInt: () => expectInt, - expectInt32: () => expectInt32, - expectLong: () => expectLong, - expectNonNull: () => expectNonNull, - expectNumber: () => expectNumber, - expectObject: () => expectObject, - expectShort: () => expectShort, - expectString: () => expectString, - expectUnion: () => expectUnion, - extendedEncodeURIComponent: () => extendedEncodeURIComponent, - getArrayIfSingleItem: () => getArrayIfSingleItem, - getDefaultClientConfiguration: () => getDefaultClientConfiguration, - getDefaultExtensionConfiguration: () => getDefaultExtensionConfiguration, - getValueFromTextNode: () => getValueFromTextNode, - handleFloat: () => handleFloat, - limitedParseDouble: () => limitedParseDouble, - limitedParseFloat: () => limitedParseFloat, - limitedParseFloat32: () => limitedParseFloat32, - loadConfigsForDefaultMode: () => loadConfigsForDefaultMode, - logger: () => logger, - map: () => map, - parseBoolean: () => parseBoolean, - parseEpochTimestamp: () => parseEpochTimestamp, - parseRfc3339DateTime: () => parseRfc3339DateTime, - parseRfc3339DateTimeWithOffset: () => parseRfc3339DateTimeWithOffset, - parseRfc7231DateTime: () => parseRfc7231DateTime, - resolveDefaultRuntimeConfig: () => resolveDefaultRuntimeConfig, - resolvedPath: () => resolvedPath, - serializeDateTime: () => serializeDateTime, - serializeFloat: () => serializeFloat, - splitEvery: () => splitEvery, - strictParseByte: () => strictParseByte, - strictParseDouble: () => strictParseDouble, - strictParseFloat: () => strictParseFloat, - strictParseFloat32: () => strictParseFloat32, - strictParseInt: () => strictParseInt, - strictParseInt32: () => strictParseInt32, - strictParseLong: () => strictParseLong, - strictParseShort: () => strictParseShort, - take: () => take, - throwDefaultError: () => throwDefaultError, - withBaseException: () => withBaseException -}); -module.exports = __toCommonJS(src_exports); - -// src/NoOpLogger.ts -var _NoOpLogger = class _NoOpLogger { - trace() { - } - debug() { - } - info() { - } - warn() { - } - error() { - } -}; -__name(_NoOpLogger, "NoOpLogger"); -var NoOpLogger = _NoOpLogger; - -// src/client.ts -var import_middleware_stack = __nccwpck_require__(97911); -var _Client = class _Client { - constructor(config) { - this.config = config; - this.middlewareStack = (0, import_middleware_stack.constructStack)(); - } - send(command, optionsOrCb, cb) { - const options = typeof optionsOrCb !== "function" ? optionsOrCb : void 0; - const callback = typeof optionsOrCb === "function" ? optionsOrCb : cb; - const useHandlerCache = options === void 0 && this.config.cacheMiddleware === true; - let handler; - if (useHandlerCache) { - if (!this.handlers) { - this.handlers = /* @__PURE__ */ new WeakMap(); - } - const handlers = this.handlers; - if (handlers.has(command.constructor)) { - handler = handlers.get(command.constructor); - } else { - handler = command.resolveMiddleware(this.middlewareStack, this.config, options); - handlers.set(command.constructor, handler); - } - } else { - delete this.handlers; - handler = command.resolveMiddleware(this.middlewareStack, this.config, options); - } - if (callback) { - handler(command).then( - (result) => callback(null, result.output), - (err) => callback(err) - ).catch( - // prevent any errors thrown in the callback from triggering an - // unhandled promise rejection - () => { - } - ); - } else { - return handler(command).then((result) => result.output); - } - } - destroy() { - var _a, _b, _c; - (_c = (_b = (_a = this.config) == null ? void 0 : _a.requestHandler) == null ? void 0 : _b.destroy) == null ? void 0 : _c.call(_b); - delete this.handlers; - } -}; -__name(_Client, "Client"); -var Client = _Client; - -// src/collect-stream-body.ts -var import_util_stream = __nccwpck_require__(96607); -var collectBody = /* @__PURE__ */ __name(async (streamBody = new Uint8Array(), context) => { - if (streamBody instanceof Uint8Array) { - return import_util_stream.Uint8ArrayBlobAdapter.mutate(streamBody); - } - if (!streamBody) { - return import_util_stream.Uint8ArrayBlobAdapter.mutate(new Uint8Array()); - } - const fromContext = context.streamCollector(streamBody); - return import_util_stream.Uint8ArrayBlobAdapter.mutate(await fromContext); -}, "collectBody"); + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + AdaptiveRetryStrategy: () => AdaptiveRetryStrategy, + ConfiguredRetryStrategy: () => ConfiguredRetryStrategy, + DEFAULT_MAX_ATTEMPTS: () => DEFAULT_MAX_ATTEMPTS, + DEFAULT_RETRY_DELAY_BASE: () => DEFAULT_RETRY_DELAY_BASE, + DEFAULT_RETRY_MODE: () => DEFAULT_RETRY_MODE, + DefaultRateLimiter: () => DefaultRateLimiter, + INITIAL_RETRY_TOKENS: () => INITIAL_RETRY_TOKENS, + INVOCATION_ID_HEADER: () => INVOCATION_ID_HEADER, + MAXIMUM_RETRY_DELAY: () => MAXIMUM_RETRY_DELAY, + NO_RETRY_INCREMENT: () => NO_RETRY_INCREMENT, + REQUEST_HEADER: () => REQUEST_HEADER, + RETRY_COST: () => RETRY_COST, + RETRY_MODES: () => RETRY_MODES, + StandardRetryStrategy: () => StandardRetryStrategy, + THROTTLING_RETRY_DELAY_BASE: () => THROTTLING_RETRY_DELAY_BASE, + TIMEOUT_RETRY_COST: () => TIMEOUT_RETRY_COST + }) + module.exports = __toCommonJS(src_exports) + + // src/config.ts + var RETRY_MODES = /* @__PURE__ */ (RETRY_MODES2 => { + RETRY_MODES2['STANDARD'] = 'standard' + RETRY_MODES2['ADAPTIVE'] = 'adaptive' + return RETRY_MODES2 + })(RETRY_MODES || {}) + var DEFAULT_MAX_ATTEMPTS = 3 + var DEFAULT_RETRY_MODE = 'standard' /* STANDARD */ + + // src/DefaultRateLimiter.ts + var import_service_error_classification = __nccwpck_require__(6375) + var _DefaultRateLimiter = class _DefaultRateLimiter { + constructor(options) { + // Pre-set state variables + this.currentCapacity = 0 + this.enabled = false + this.lastMaxRate = 0 + this.measuredTxRate = 0 + this.requestCount = 0 + this.lastTimestamp = 0 + this.timeWindow = 0 + this.beta = (options == null ? void 0 : options.beta) ?? 0.7 + this.minCapacity = + (options == null ? void 0 : options.minCapacity) ?? 1 + this.minFillRate = + (options == null ? void 0 : options.minFillRate) ?? 0.5 + this.scaleConstant = + (options == null ? void 0 : options.scaleConstant) ?? 0.4 + this.smooth = (options == null ? void 0 : options.smooth) ?? 0.8 + const currentTimeInSeconds = this.getCurrentTimeInSeconds() + this.lastThrottleTime = currentTimeInSeconds + this.lastTxRateBucket = Math.floor(this.getCurrentTimeInSeconds()) + this.fillRate = this.minFillRate + this.maxCapacity = this.minCapacity + } + getCurrentTimeInSeconds() { + return Date.now() / 1e3 + } + async getSendToken() { + return this.acquireTokenBucket(1) + } + async acquireTokenBucket(amount) { + if (!this.enabled) { + return + } + this.refillTokenBucket() + if (amount > this.currentCapacity) { + const delay = + ((amount - this.currentCapacity) / this.fillRate) * 1e3 + await new Promise(resolve => setTimeout(resolve, delay)) + } + this.currentCapacity = this.currentCapacity - amount + } + refillTokenBucket() { + const timestamp = this.getCurrentTimeInSeconds() + if (!this.lastTimestamp) { + this.lastTimestamp = timestamp + return + } + const fillAmount = (timestamp - this.lastTimestamp) * this.fillRate + this.currentCapacity = Math.min( + this.maxCapacity, + this.currentCapacity + fillAmount + ) + this.lastTimestamp = timestamp + } + updateClientSendingRate(response) { + let calculatedRate + this.updateMeasuredRate() + if ( + (0, import_service_error_classification.isThrottlingError)(response) + ) { + const rateToUse = !this.enabled + ? this.measuredTxRate + : Math.min(this.measuredTxRate, this.fillRate) + this.lastMaxRate = rateToUse + this.calculateTimeWindow() + this.lastThrottleTime = this.getCurrentTimeInSeconds() + calculatedRate = this.cubicThrottle(rateToUse) + this.enableTokenBucket() + } else { + this.calculateTimeWindow() + calculatedRate = this.cubicSuccess(this.getCurrentTimeInSeconds()) + } + const newRate = Math.min(calculatedRate, 2 * this.measuredTxRate) + this.updateTokenBucketRate(newRate) + } + calculateTimeWindow() { + this.timeWindow = this.getPrecise( + Math.pow( + (this.lastMaxRate * (1 - this.beta)) / this.scaleConstant, + 1 / 3 + ) + ) + } + cubicThrottle(rateToUse) { + return this.getPrecise(rateToUse * this.beta) + } + cubicSuccess(timestamp) { + return this.getPrecise( + this.scaleConstant * + Math.pow(timestamp - this.lastThrottleTime - this.timeWindow, 3) + + this.lastMaxRate + ) + } + enableTokenBucket() { + this.enabled = true + } + updateTokenBucketRate(newRate) { + this.refillTokenBucket() + this.fillRate = Math.max(newRate, this.minFillRate) + this.maxCapacity = Math.max(newRate, this.minCapacity) + this.currentCapacity = Math.min( + this.currentCapacity, + this.maxCapacity + ) + } + updateMeasuredRate() { + const t = this.getCurrentTimeInSeconds() + const timeBucket = Math.floor(t * 2) / 2 + this.requestCount++ + if (timeBucket > this.lastTxRateBucket) { + const currentRate = + this.requestCount / (timeBucket - this.lastTxRateBucket) + this.measuredTxRate = this.getPrecise( + currentRate * this.smooth + + this.measuredTxRate * (1 - this.smooth) + ) + this.requestCount = 0 + this.lastTxRateBucket = timeBucket + } + } + getPrecise(num) { + return parseFloat(num.toFixed(8)) + } + } + __name(_DefaultRateLimiter, 'DefaultRateLimiter') + var DefaultRateLimiter = _DefaultRateLimiter + + // src/constants.ts + var DEFAULT_RETRY_DELAY_BASE = 100 + var MAXIMUM_RETRY_DELAY = 20 * 1e3 + var THROTTLING_RETRY_DELAY_BASE = 500 + var INITIAL_RETRY_TOKENS = 500 + var RETRY_COST = 5 + var TIMEOUT_RETRY_COST = 10 + var NO_RETRY_INCREMENT = 1 + var INVOCATION_ID_HEADER = 'amz-sdk-invocation-id' + var REQUEST_HEADER = 'amz-sdk-request' + + // src/defaultRetryBackoffStrategy.ts + var getDefaultRetryBackoffStrategy = /* @__PURE__ */ __name(() => { + let delayBase = DEFAULT_RETRY_DELAY_BASE + const computeNextBackoffDelay = /* @__PURE__ */ __name(attempts => { + return Math.floor( + Math.min( + MAXIMUM_RETRY_DELAY, + Math.random() * 2 ** attempts * delayBase + ) + ) + }, 'computeNextBackoffDelay') + const setDelayBase = /* @__PURE__ */ __name(delay => { + delayBase = delay + }, 'setDelayBase') + return { + computeNextBackoffDelay, + setDelayBase + } + }, 'getDefaultRetryBackoffStrategy') -// src/command.ts + // src/defaultRetryToken.ts + var createDefaultRetryToken = /* @__PURE__ */ __name( + ({ retryDelay, retryCount, retryCost }) => { + const getRetryCount = /* @__PURE__ */ __name( + () => retryCount, + 'getRetryCount' + ) + const getRetryDelay = /* @__PURE__ */ __name( + () => Math.min(MAXIMUM_RETRY_DELAY, retryDelay), + 'getRetryDelay' + ) + const getRetryCost = /* @__PURE__ */ __name( + () => retryCost, + 'getRetryCost' + ) + return { + getRetryCount, + getRetryDelay, + getRetryCost + } + }, + 'createDefaultRetryToken' + ) -var import_types = __nccwpck_require__(55756); -var _Command = class _Command { - constructor() { - this.middlewareStack = (0, import_middleware_stack.constructStack)(); - } - /** - * Factory for Command ClassBuilder. - * @internal - */ - static classBuilder() { - return new ClassBuilder(); - } - /** - * @internal - */ - resolveMiddlewareWithContext(clientStack, configuration, options, { - middlewareFn, - clientName, - commandName, - inputFilterSensitiveLog, - outputFilterSensitiveLog, - smithyContext, - additionalContext, - CommandCtor - }) { - for (const mw of middlewareFn.bind(this)(CommandCtor, clientStack, configuration, options)) { - this.middlewareStack.use(mw); - } - const stack = clientStack.concat(this.middlewareStack); - const { logger: logger2 } = configuration; - const handlerExecutionContext = { - logger: logger2, - clientName, - commandName, - inputFilterSensitiveLog, - outputFilterSensitiveLog, - [import_types.SMITHY_CONTEXT_KEY]: { - commandInstance: this, - ...smithyContext - }, - ...additionalContext - }; - const { requestHandler } = configuration; - return stack.resolve( - (request) => requestHandler.handle(request.request, options || {}), - handlerExecutionContext - ); - } -}; -__name(_Command, "Command"); -var Command = _Command; -var _ClassBuilder = class _ClassBuilder { - constructor() { - this._init = () => { - }; - this._ep = {}; - this._middlewareFn = () => []; - this._commandName = ""; - this._clientName = ""; - this._additionalContext = {}; - this._smithyContext = {}; - this._inputFilterSensitiveLog = (_) => _; - this._outputFilterSensitiveLog = (_) => _; - this._serializer = null; - this._deserializer = null; - } - /** - * Optional init callback. - */ - init(cb) { - this._init = cb; - } - /** - * Set the endpoint parameter instructions. - */ - ep(endpointParameterInstructions) { - this._ep = endpointParameterInstructions; - return this; - } - /** - * Add any number of middleware. - */ - m(middlewareSupplier) { - this._middlewareFn = middlewareSupplier; - return this; - } - /** - * Set the initial handler execution context Smithy field. - */ - s(service, operation, smithyContext = {}) { - this._smithyContext = { - service, - operation, - ...smithyContext - }; - return this; - } - /** - * Set the initial handler execution context. - */ - c(additionalContext = {}) { - this._additionalContext = additionalContext; - return this; - } - /** - * Set constant string identifiers for the operation. - */ - n(clientName, commandName) { - this._clientName = clientName; - this._commandName = commandName; - return this; - } - /** - * Set the input and output sensistive log filters. - */ - f(inputFilter = (_) => _, outputFilter = (_) => _) { - this._inputFilterSensitiveLog = inputFilter; - this._outputFilterSensitiveLog = outputFilter; - return this; - } - /** - * Sets the serializer. - */ - ser(serializer) { - this._serializer = serializer; - return this; - } - /** - * Sets the deserializer. - */ - de(deserializer) { - this._deserializer = deserializer; - return this; - } - /** - * @returns a Command class with the classBuilder properties. - */ - build() { - var _a; - const closure = this; - let CommandRef; - return CommandRef = (_a = class extends Command { - /** - * @public - */ - constructor(...[input]) { - super(); - /** - * @internal - */ - // @ts-ignore used in middlewareFn closure. - this.serialize = closure._serializer; + // src/StandardRetryStrategy.ts + var _StandardRetryStrategy = class _StandardRetryStrategy { + constructor(maxAttempts) { + this.maxAttempts = maxAttempts + this.mode = 'standard' /* STANDARD */ + this.capacity = INITIAL_RETRY_TOKENS + this.retryBackoffStrategy = getDefaultRetryBackoffStrategy() + this.maxAttemptsProvider = + typeof maxAttempts === 'function' + ? maxAttempts + : async () => maxAttempts + } + // eslint-disable-next-line @typescript-eslint/no-unused-vars + async acquireInitialRetryToken(retryTokenScope) { + return createDefaultRetryToken({ + retryDelay: DEFAULT_RETRY_DELAY_BASE, + retryCount: 0 + }) + } + async refreshRetryTokenForRetry(token, errorInfo) { + const maxAttempts = await this.getMaxAttempts() + if (this.shouldRetry(token, errorInfo, maxAttempts)) { + const errorType = errorInfo.errorType + this.retryBackoffStrategy.setDelayBase( + errorType === 'THROTTLING' + ? THROTTLING_RETRY_DELAY_BASE + : DEFAULT_RETRY_DELAY_BASE + ) + const delayFromErrorType = + this.retryBackoffStrategy.computeNextBackoffDelay( + token.getRetryCount() + ) + const retryDelay = errorInfo.retryAfterHint + ? Math.max( + errorInfo.retryAfterHint.getTime() - Date.now() || 0, + delayFromErrorType + ) + : delayFromErrorType + const capacityCost = this.getCapacityCost(errorType) + this.capacity -= capacityCost + return createDefaultRetryToken({ + retryDelay, + retryCount: token.getRetryCount() + 1, + retryCost: capacityCost + }) + } + throw new Error('No retry token available') + } + recordSuccess(token) { + this.capacity = Math.max( + INITIAL_RETRY_TOKENS, + this.capacity + (token.getRetryCost() ?? NO_RETRY_INCREMENT) + ) + } /** - * @internal + * @returns the current available retry capacity. + * + * This number decreases when retries are executed and refills when requests or retries succeed. */ - // @ts-ignore used in middlewareFn closure. - this.deserialize = closure._deserializer; - this.input = input ?? {}; - closure._init(this); - } - /** - * @public - */ - static getEndpointParameterInstructions() { - return closure._ep; - } - /** - * @internal - */ - resolveMiddleware(stack, configuration, options) { - return this.resolveMiddlewareWithContext(stack, configuration, options, { - CommandCtor: CommandRef, - middlewareFn: closure._middlewareFn, - clientName: closure._clientName, - commandName: closure._commandName, - inputFilterSensitiveLog: closure._inputFilterSensitiveLog, - outputFilterSensitiveLog: closure._outputFilterSensitiveLog, - smithyContext: closure._smithyContext, - additionalContext: closure._additionalContext - }); - } - }, __name(_a, "CommandRef"), _a); - } -}; -__name(_ClassBuilder, "ClassBuilder"); -var ClassBuilder = _ClassBuilder; - -// src/constants.ts -var SENSITIVE_STRING = "***SensitiveInformation***"; - -// src/create-aggregated-client.ts -var createAggregatedClient = /* @__PURE__ */ __name((commands, Client2) => { - for (const command of Object.keys(commands)) { - const CommandCtor = commands[command]; - const methodImpl = /* @__PURE__ */ __name(async function(args, optionsOrCb, cb) { - const command2 = new CommandCtor(args); - if (typeof optionsOrCb === "function") { - this.send(command2, optionsOrCb); - } else if (typeof cb === "function") { - if (typeof optionsOrCb !== "object") - throw new Error(`Expected http options but got ${typeof optionsOrCb}`); - this.send(command2, optionsOrCb || {}, cb); - } else { - return this.send(command2, optionsOrCb); + getCapacity() { + return this.capacity + } + async getMaxAttempts() { + try { + return await this.maxAttemptsProvider() + } catch (error) { + console.warn( + `Max attempts provider could not resolve. Using default of ${DEFAULT_MAX_ATTEMPTS}` + ) + return DEFAULT_MAX_ATTEMPTS + } + } + shouldRetry(tokenToRenew, errorInfo, maxAttempts) { + const attempts = tokenToRenew.getRetryCount() + 1 + return ( + attempts < maxAttempts && + this.capacity >= this.getCapacityCost(errorInfo.errorType) && + this.isRetryableError(errorInfo.errorType) + ) + } + getCapacityCost(errorType) { + return errorType === 'TRANSIENT' ? TIMEOUT_RETRY_COST : RETRY_COST + } + isRetryableError(errorType) { + return errorType === 'THROTTLING' || errorType === 'TRANSIENT' + } } - }, "methodImpl"); - const methodName = (command[0].toLowerCase() + command.slice(1)).replace(/Command$/, ""); - Client2.prototype[methodName] = methodImpl; - } -}, "createAggregatedClient"); - -// src/parse-utils.ts -var parseBoolean = /* @__PURE__ */ __name((value) => { - switch (value) { - case "true": - return true; - case "false": - return false; - default: - throw new Error(`Unable to parse boolean value "${value}"`); - } -}, "parseBoolean"); -var expectBoolean = /* @__PURE__ */ __name((value) => { - if (value === null || value === void 0) { - return void 0; - } - if (typeof value === "number") { - if (value === 0 || value === 1) { - logger.warn(stackTraceWarning(`Expected boolean, got ${typeof value}: ${value}`)); - } - if (value === 0) { - return false; - } - if (value === 1) { - return true; - } - } - if (typeof value === "string") { - const lower = value.toLowerCase(); - if (lower === "false" || lower === "true") { - logger.warn(stackTraceWarning(`Expected boolean, got ${typeof value}: ${value}`)); - } - if (lower === "false") { - return false; - } - if (lower === "true") { - return true; - } - } - if (typeof value === "boolean") { - return value; - } - throw new TypeError(`Expected boolean, got ${typeof value}: ${value}`); -}, "expectBoolean"); -var expectNumber = /* @__PURE__ */ __name((value) => { - if (value === null || value === void 0) { - return void 0; - } - if (typeof value === "string") { - const parsed = parseFloat(value); - if (!Number.isNaN(parsed)) { - if (String(parsed) !== String(value)) { - logger.warn(stackTraceWarning(`Expected number but observed string: ${value}`)); + __name(_StandardRetryStrategy, 'StandardRetryStrategy') + var StandardRetryStrategy = _StandardRetryStrategy + + // src/AdaptiveRetryStrategy.ts + var _AdaptiveRetryStrategy = class _AdaptiveRetryStrategy { + constructor(maxAttemptsProvider, options) { + this.maxAttemptsProvider = maxAttemptsProvider + this.mode = 'adaptive' /* ADAPTIVE */ + const { rateLimiter } = options ?? {} + this.rateLimiter = rateLimiter ?? new DefaultRateLimiter() + this.standardRetryStrategy = new StandardRetryStrategy( + maxAttemptsProvider + ) + } + async acquireInitialRetryToken(retryTokenScope) { + await this.rateLimiter.getSendToken() + return this.standardRetryStrategy.acquireInitialRetryToken( + retryTokenScope + ) + } + async refreshRetryTokenForRetry(tokenToRenew, errorInfo) { + this.rateLimiter.updateClientSendingRate(errorInfo) + return this.standardRetryStrategy.refreshRetryTokenForRetry( + tokenToRenew, + errorInfo + ) + } + recordSuccess(token) { + this.rateLimiter.updateClientSendingRate({}) + this.standardRetryStrategy.recordSuccess(token) + } } - return parsed; - } - } - if (typeof value === "number") { - return value; - } - throw new TypeError(`Expected number, got ${typeof value}: ${value}`); -}, "expectNumber"); -var MAX_FLOAT = Math.ceil(2 ** 127 * (2 - 2 ** -23)); -var expectFloat32 = /* @__PURE__ */ __name((value) => { - const expected = expectNumber(value); - if (expected !== void 0 && !Number.isNaN(expected) && expected !== Infinity && expected !== -Infinity) { - if (Math.abs(expected) > MAX_FLOAT) { - throw new TypeError(`Expected 32-bit float, got ${value}`); - } - } - return expected; -}, "expectFloat32"); -var expectLong = /* @__PURE__ */ __name((value) => { - if (value === null || value === void 0) { - return void 0; - } - if (Number.isInteger(value) && !Number.isNaN(value)) { - return value; - } - throw new TypeError(`Expected integer, got ${typeof value}: ${value}`); -}, "expectLong"); -var expectInt = expectLong; -var expectInt32 = /* @__PURE__ */ __name((value) => expectSizedInt(value, 32), "expectInt32"); -var expectShort = /* @__PURE__ */ __name((value) => expectSizedInt(value, 16), "expectShort"); -var expectByte = /* @__PURE__ */ __name((value) => expectSizedInt(value, 8), "expectByte"); -var expectSizedInt = /* @__PURE__ */ __name((value, size) => { - const expected = expectLong(value); - if (expected !== void 0 && castInt(expected, size) !== expected) { - throw new TypeError(`Expected ${size}-bit integer, got ${value}`); - } - return expected; -}, "expectSizedInt"); -var castInt = /* @__PURE__ */ __name((value, size) => { - switch (size) { - case 32: - return Int32Array.of(value)[0]; - case 16: - return Int16Array.of(value)[0]; - case 8: - return Int8Array.of(value)[0]; - } -}, "castInt"); -var expectNonNull = /* @__PURE__ */ __name((value, location) => { - if (value === null || value === void 0) { - if (location) { - throw new TypeError(`Expected a non-null value for ${location}`); - } - throw new TypeError("Expected a non-null value"); - } - return value; -}, "expectNonNull"); -var expectObject = /* @__PURE__ */ __name((value) => { - if (value === null || value === void 0) { - return void 0; - } - if (typeof value === "object" && !Array.isArray(value)) { - return value; - } - const receivedType = Array.isArray(value) ? "array" : typeof value; - throw new TypeError(`Expected object, got ${receivedType}: ${value}`); -}, "expectObject"); -var expectString = /* @__PURE__ */ __name((value) => { - if (value === null || value === void 0) { - return void 0; - } - if (typeof value === "string") { - return value; - } - if (["boolean", "number", "bigint"].includes(typeof value)) { - logger.warn(stackTraceWarning(`Expected string, got ${typeof value}: ${value}`)); - return String(value); - } - throw new TypeError(`Expected string, got ${typeof value}: ${value}`); -}, "expectString"); -var expectUnion = /* @__PURE__ */ __name((value) => { - if (value === null || value === void 0) { - return void 0; - } - const asObject = expectObject(value); - const setKeys = Object.entries(asObject).filter(([, v]) => v != null).map(([k]) => k); - if (setKeys.length === 0) { - throw new TypeError(`Unions must have exactly one non-null member. None were found.`); - } - if (setKeys.length > 1) { - throw new TypeError(`Unions must have exactly one non-null member. Keys ${setKeys} were not null.`); - } - return asObject; -}, "expectUnion"); -var strictParseDouble = /* @__PURE__ */ __name((value) => { - if (typeof value == "string") { - return expectNumber(parseNumber(value)); - } - return expectNumber(value); -}, "strictParseDouble"); -var strictParseFloat = strictParseDouble; -var strictParseFloat32 = /* @__PURE__ */ __name((value) => { - if (typeof value == "string") { - return expectFloat32(parseNumber(value)); - } - return expectFloat32(value); -}, "strictParseFloat32"); -var NUMBER_REGEX = /(-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?)|(-?Infinity)|(NaN)/g; -var parseNumber = /* @__PURE__ */ __name((value) => { - const matches = value.match(NUMBER_REGEX); - if (matches === null || matches[0].length !== value.length) { - throw new TypeError(`Expected real number, got implicit NaN`); - } - return parseFloat(value); -}, "parseNumber"); -var limitedParseDouble = /* @__PURE__ */ __name((value) => { - if (typeof value == "string") { - return parseFloatString(value); - } - return expectNumber(value); -}, "limitedParseDouble"); -var handleFloat = limitedParseDouble; -var limitedParseFloat = limitedParseDouble; -var limitedParseFloat32 = /* @__PURE__ */ __name((value) => { - if (typeof value == "string") { - return parseFloatString(value); - } - return expectFloat32(value); -}, "limitedParseFloat32"); -var parseFloatString = /* @__PURE__ */ __name((value) => { - switch (value) { - case "NaN": - return NaN; - case "Infinity": - return Infinity; - case "-Infinity": - return -Infinity; - default: - throw new Error(`Unable to parse float value: ${value}`); - } -}, "parseFloatString"); -var strictParseLong = /* @__PURE__ */ __name((value) => { - if (typeof value === "string") { - return expectLong(parseNumber(value)); - } - return expectLong(value); -}, "strictParseLong"); -var strictParseInt = strictParseLong; -var strictParseInt32 = /* @__PURE__ */ __name((value) => { - if (typeof value === "string") { - return expectInt32(parseNumber(value)); - } - return expectInt32(value); -}, "strictParseInt32"); -var strictParseShort = /* @__PURE__ */ __name((value) => { - if (typeof value === "string") { - return expectShort(parseNumber(value)); - } - return expectShort(value); -}, "strictParseShort"); -var strictParseByte = /* @__PURE__ */ __name((value) => { - if (typeof value === "string") { - return expectByte(parseNumber(value)); - } - return expectByte(value); -}, "strictParseByte"); -var stackTraceWarning = /* @__PURE__ */ __name((message) => { - return String(new TypeError(message).stack || message).split("\n").slice(0, 5).filter((s) => !s.includes("stackTraceWarning")).join("\n"); -}, "stackTraceWarning"); -var logger = { - warn: console.warn -}; - -// src/date-utils.ts -var DAYS = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]; -var MONTHS = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; -function dateToUtcString(date) { - const year = date.getUTCFullYear(); - const month = date.getUTCMonth(); - const dayOfWeek = date.getUTCDay(); - const dayOfMonthInt = date.getUTCDate(); - const hoursInt = date.getUTCHours(); - const minutesInt = date.getUTCMinutes(); - const secondsInt = date.getUTCSeconds(); - const dayOfMonthString = dayOfMonthInt < 10 ? `0${dayOfMonthInt}` : `${dayOfMonthInt}`; - const hoursString = hoursInt < 10 ? `0${hoursInt}` : `${hoursInt}`; - const minutesString = minutesInt < 10 ? `0${minutesInt}` : `${minutesInt}`; - const secondsString = secondsInt < 10 ? `0${secondsInt}` : `${secondsInt}`; - return `${DAYS[dayOfWeek]}, ${dayOfMonthString} ${MONTHS[month]} ${year} ${hoursString}:${minutesString}:${secondsString} GMT`; -} -__name(dateToUtcString, "dateToUtcString"); -var RFC3339 = new RegExp(/^(\d{4})-(\d{2})-(\d{2})[tT](\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?[zZ]$/); -var parseRfc3339DateTime = /* @__PURE__ */ __name((value) => { - if (value === null || value === void 0) { - return void 0; - } - if (typeof value !== "string") { - throw new TypeError("RFC-3339 date-times must be expressed as strings"); - } - const match = RFC3339.exec(value); - if (!match) { - throw new TypeError("Invalid RFC-3339 date-time value"); - } - const [_, yearStr, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds] = match; - const year = strictParseShort(stripLeadingZeroes(yearStr)); - const month = parseDateValue(monthStr, "month", 1, 12); - const day = parseDateValue(dayStr, "day", 1, 31); - return buildDate(year, month, day, { hours, minutes, seconds, fractionalMilliseconds }); -}, "parseRfc3339DateTime"); -var RFC3339_WITH_OFFSET = new RegExp( - /^(\d{4})-(\d{2})-(\d{2})[tT](\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?(([-+]\d{2}\:\d{2})|[zZ])$/ -); -var parseRfc3339DateTimeWithOffset = /* @__PURE__ */ __name((value) => { - if (value === null || value === void 0) { - return void 0; - } - if (typeof value !== "string") { - throw new TypeError("RFC-3339 date-times must be expressed as strings"); - } - const match = RFC3339_WITH_OFFSET.exec(value); - if (!match) { - throw new TypeError("Invalid RFC-3339 date-time value"); - } - const [_, yearStr, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds, offsetStr] = match; - const year = strictParseShort(stripLeadingZeroes(yearStr)); - const month = parseDateValue(monthStr, "month", 1, 12); - const day = parseDateValue(dayStr, "day", 1, 31); - const date = buildDate(year, month, day, { hours, minutes, seconds, fractionalMilliseconds }); - if (offsetStr.toUpperCase() != "Z") { - date.setTime(date.getTime() - parseOffsetToMilliseconds(offsetStr)); - } - return date; -}, "parseRfc3339DateTimeWithOffset"); -var IMF_FIXDATE = new RegExp( - /^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d{2}) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d{1,2}):(\d{2}):(\d{2})(?:\.(\d+))? GMT$/ -); -var RFC_850_DATE = new RegExp( - /^(?:Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d{2})-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d{2}) (\d{1,2}):(\d{2}):(\d{2})(?:\.(\d+))? GMT$/ -); -var ASC_TIME = new RegExp( - /^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( [1-9]|\d{2}) (\d{1,2}):(\d{2}):(\d{2})(?:\.(\d+))? (\d{4})$/ -); -var parseRfc7231DateTime = /* @__PURE__ */ __name((value) => { - if (value === null || value === void 0) { - return void 0; - } - if (typeof value !== "string") { - throw new TypeError("RFC-7231 date-times must be expressed as strings"); - } - let match = IMF_FIXDATE.exec(value); - if (match) { - const [_, dayStr, monthStr, yearStr, hours, minutes, seconds, fractionalMilliseconds] = match; - return buildDate( - strictParseShort(stripLeadingZeroes(yearStr)), - parseMonthByShortName(monthStr), - parseDateValue(dayStr, "day", 1, 31), - { hours, minutes, seconds, fractionalMilliseconds } - ); - } - match = RFC_850_DATE.exec(value); - if (match) { - const [_, dayStr, monthStr, yearStr, hours, minutes, seconds, fractionalMilliseconds] = match; - return adjustRfc850Year( - buildDate(parseTwoDigitYear(yearStr), parseMonthByShortName(monthStr), parseDateValue(dayStr, "day", 1, 31), { - hours, - minutes, - seconds, - fractionalMilliseconds - }) - ); - } - match = ASC_TIME.exec(value); - if (match) { - const [_, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds, yearStr] = match; - return buildDate( - strictParseShort(stripLeadingZeroes(yearStr)), - parseMonthByShortName(monthStr), - parseDateValue(dayStr.trimLeft(), "day", 1, 31), - { hours, minutes, seconds, fractionalMilliseconds } - ); - } - throw new TypeError("Invalid RFC-7231 date-time value"); -}, "parseRfc7231DateTime"); -var parseEpochTimestamp = /* @__PURE__ */ __name((value) => { - if (value === null || value === void 0) { - return void 0; - } - let valueAsDouble; - if (typeof value === "number") { - valueAsDouble = value; - } else if (typeof value === "string") { - valueAsDouble = strictParseDouble(value); - } else if (typeof value === "object" && value.tag === 1) { - valueAsDouble = value.value; - } else { - throw new TypeError("Epoch timestamps must be expressed as floating point numbers or their string representation"); - } - if (Number.isNaN(valueAsDouble) || valueAsDouble === Infinity || valueAsDouble === -Infinity) { - throw new TypeError("Epoch timestamps must be valid, non-Infinite, non-NaN numerics"); - } - return new Date(Math.round(valueAsDouble * 1e3)); -}, "parseEpochTimestamp"); -var buildDate = /* @__PURE__ */ __name((year, month, day, time) => { - const adjustedMonth = month - 1; - validateDayOfMonth(year, adjustedMonth, day); - return new Date( - Date.UTC( - year, - adjustedMonth, - day, - parseDateValue(time.hours, "hour", 0, 23), - parseDateValue(time.minutes, "minute", 0, 59), - // seconds can go up to 60 for leap seconds - parseDateValue(time.seconds, "seconds", 0, 60), - parseMilliseconds(time.fractionalMilliseconds) - ) - ); -}, "buildDate"); -var parseTwoDigitYear = /* @__PURE__ */ __name((value) => { - const thisYear = (/* @__PURE__ */ new Date()).getUTCFullYear(); - const valueInThisCentury = Math.floor(thisYear / 100) * 100 + strictParseShort(stripLeadingZeroes(value)); - if (valueInThisCentury < thisYear) { - return valueInThisCentury + 100; - } - return valueInThisCentury; -}, "parseTwoDigitYear"); -var FIFTY_YEARS_IN_MILLIS = 50 * 365 * 24 * 60 * 60 * 1e3; -var adjustRfc850Year = /* @__PURE__ */ __name((input) => { - if (input.getTime() - (/* @__PURE__ */ new Date()).getTime() > FIFTY_YEARS_IN_MILLIS) { - return new Date( - Date.UTC( - input.getUTCFullYear() - 100, - input.getUTCMonth(), - input.getUTCDate(), - input.getUTCHours(), - input.getUTCMinutes(), - input.getUTCSeconds(), - input.getUTCMilliseconds() - ) - ); - } - return input; -}, "adjustRfc850Year"); -var parseMonthByShortName = /* @__PURE__ */ __name((value) => { - const monthIdx = MONTHS.indexOf(value); - if (monthIdx < 0) { - throw new TypeError(`Invalid month: ${value}`); - } - return monthIdx + 1; -}, "parseMonthByShortName"); -var DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; -var validateDayOfMonth = /* @__PURE__ */ __name((year, month, day) => { - let maxDays = DAYS_IN_MONTH[month]; - if (month === 1 && isLeapYear(year)) { - maxDays = 29; - } - if (day > maxDays) { - throw new TypeError(`Invalid day for ${MONTHS[month]} in ${year}: ${day}`); - } -}, "validateDayOfMonth"); -var isLeapYear = /* @__PURE__ */ __name((year) => { - return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); -}, "isLeapYear"); -var parseDateValue = /* @__PURE__ */ __name((value, type, lower, upper) => { - const dateVal = strictParseByte(stripLeadingZeroes(value)); - if (dateVal < lower || dateVal > upper) { - throw new TypeError(`${type} must be between ${lower} and ${upper}, inclusive`); - } - return dateVal; -}, "parseDateValue"); -var parseMilliseconds = /* @__PURE__ */ __name((value) => { - if (value === null || value === void 0) { - return 0; - } - return strictParseFloat32("0." + value) * 1e3; -}, "parseMilliseconds"); -var parseOffsetToMilliseconds = /* @__PURE__ */ __name((value) => { - const directionStr = value[0]; - let direction = 1; - if (directionStr == "+") { - direction = 1; - } else if (directionStr == "-") { - direction = -1; - } else { - throw new TypeError(`Offset direction, ${directionStr}, must be "+" or "-"`); - } - const hour = Number(value.substring(1, 3)); - const minute = Number(value.substring(4, 6)); - return direction * (hour * 60 + minute) * 60 * 1e3; -}, "parseOffsetToMilliseconds"); -var stripLeadingZeroes = /* @__PURE__ */ __name((value) => { - let idx = 0; - while (idx < value.length - 1 && value.charAt(idx) === "0") { - idx++; - } - if (idx === 0) { - return value; - } - return value.slice(idx); -}, "stripLeadingZeroes"); - -// src/exceptions.ts -var _ServiceException = class _ServiceException extends Error { - constructor(options) { - super(options.message); - Object.setPrototypeOf(this, _ServiceException.prototype); - this.name = options.name; - this.$fault = options.$fault; - this.$metadata = options.$metadata; - } -}; -__name(_ServiceException, "ServiceException"); -var ServiceException = _ServiceException; -var decorateServiceException = /* @__PURE__ */ __name((exception, additions = {}) => { - Object.entries(additions).filter(([, v]) => v !== void 0).forEach(([k, v]) => { - if (exception[k] == void 0 || exception[k] === "") { - exception[k] = v; - } - }); - const message = exception.message || exception.Message || "UnknownError"; - exception.message = message; - delete exception.Message; - return exception; -}, "decorateServiceException"); - -// src/default-error-handler.ts -var throwDefaultError = /* @__PURE__ */ __name(({ output, parsedBody, exceptionCtor, errorCode }) => { - const $metadata = deserializeMetadata(output); - const statusCode = $metadata.httpStatusCode ? $metadata.httpStatusCode + "" : void 0; - const response = new exceptionCtor({ - name: (parsedBody == null ? void 0 : parsedBody.code) || (parsedBody == null ? void 0 : parsedBody.Code) || errorCode || statusCode || "UnknownError", - $fault: "client", - $metadata - }); - throw decorateServiceException(response, parsedBody); -}, "throwDefaultError"); -var withBaseException = /* @__PURE__ */ __name((ExceptionCtor) => { - return ({ output, parsedBody, errorCode }) => { - throwDefaultError({ output, parsedBody, exceptionCtor: ExceptionCtor, errorCode }); - }; -}, "withBaseException"); -var deserializeMetadata = /* @__PURE__ */ __name((output) => ({ - httpStatusCode: output.statusCode, - requestId: output.headers["x-amzn-requestid"] ?? output.headers["x-amzn-request-id"] ?? output.headers["x-amz-request-id"], - extendedRequestId: output.headers["x-amz-id-2"], - cfId: output.headers["x-amz-cf-id"] -}), "deserializeMetadata"); - -// src/defaults-mode.ts -var loadConfigsForDefaultMode = /* @__PURE__ */ __name((mode) => { - switch (mode) { - case "standard": - return { - retryMode: "standard", - connectionTimeout: 3100 - }; - case "in-region": - return { - retryMode: "standard", - connectionTimeout: 1100 - }; - case "cross-region": - return { - retryMode: "standard", - connectionTimeout: 3100 - }; - case "mobile": - return { - retryMode: "standard", - connectionTimeout: 3e4 - }; - default: - return {}; - } -}, "loadConfigsForDefaultMode"); + __name(_AdaptiveRetryStrategy, 'AdaptiveRetryStrategy') + var AdaptiveRetryStrategy = _AdaptiveRetryStrategy + + // src/ConfiguredRetryStrategy.ts + var _ConfiguredRetryStrategy = class _ConfiguredRetryStrategy extends StandardRetryStrategy { + /** + * @param maxAttempts - the maximum number of retry attempts allowed. + * e.g., if set to 3, then 4 total requests are possible. + * @param computeNextBackoffDelay - a millisecond delay for each retry or a function that takes the retry attempt + * and returns the delay. + * + * @example exponential backoff. + * ```js + * new Client({ + * retryStrategy: new ConfiguredRetryStrategy(3, (attempt) => attempt ** 2) + * }); + * ``` + * @example constant delay. + * ```js + * new Client({ + * retryStrategy: new ConfiguredRetryStrategy(3, 2000) + * }); + * ``` + */ + constructor( + maxAttempts, + computeNextBackoffDelay = DEFAULT_RETRY_DELAY_BASE + ) { + super( + typeof maxAttempts === 'function' + ? maxAttempts + : async () => maxAttempts + ) + if (typeof computeNextBackoffDelay === 'number') { + this.computeNextBackoffDelay = () => computeNextBackoffDelay + } else { + this.computeNextBackoffDelay = computeNextBackoffDelay + } + } + async refreshRetryTokenForRetry(tokenToRenew, errorInfo) { + const token = await super.refreshRetryTokenForRetry( + tokenToRenew, + errorInfo + ) + token.getRetryDelay = () => + this.computeNextBackoffDelay(token.getRetryCount()) + return token + } + } + __name(_ConfiguredRetryStrategy, 'ConfiguredRetryStrategy') + var ConfiguredRetryStrategy = _ConfiguredRetryStrategy + // Annotate the CommonJS export names for ESM import in node: -// src/emitWarningIfUnsupportedVersion.ts -var warningEmitted = false; -var emitWarningIfUnsupportedVersion = /* @__PURE__ */ __name((version) => { - if (version && !warningEmitted && parseInt(version.substring(1, version.indexOf("."))) < 16) { - warningEmitted = true; - } -}, "emitWarningIfUnsupportedVersion"); + 0 && 0 -// src/extensions/checksum.ts + /***/ + }, -var getChecksumConfiguration = /* @__PURE__ */ __name((runtimeConfig) => { - const checksumAlgorithms = []; - for (const id in import_types.AlgorithmId) { - const algorithmId = import_types.AlgorithmId[id]; - if (runtimeConfig[algorithmId] === void 0) { - continue; - } - checksumAlgorithms.push({ - algorithmId: () => algorithmId, - checksumConstructor: () => runtimeConfig[algorithmId] - }); - } - return { - _checksumAlgorithms: checksumAlgorithms, - addChecksumAlgorithm(algo) { - this._checksumAlgorithms.push(algo); + /***/ 23636: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getAwsChunkedEncodingStream = void 0 + const stream_1 = __nccwpck_require__(12781) + const getAwsChunkedEncodingStream = (readableStream, options) => { + const { + base64Encoder, + bodyLengthChecker, + checksumAlgorithmFn, + checksumLocationName, + streamHasher + } = options + const checksumRequired = + base64Encoder !== undefined && + checksumAlgorithmFn !== undefined && + checksumLocationName !== undefined && + streamHasher !== undefined + const digest = checksumRequired + ? streamHasher(checksumAlgorithmFn, readableStream) + : undefined + const awsChunkedEncodingStream = new stream_1.Readable({ + read: () => {} + }) + readableStream.on('data', data => { + const length = bodyLengthChecker(data) || 0 + awsChunkedEncodingStream.push(`${length.toString(16)}\r\n`) + awsChunkedEncodingStream.push(data) + awsChunkedEncodingStream.push('\r\n') + }) + readableStream.on('end', async () => { + awsChunkedEncodingStream.push(`0\r\n`) + if (checksumRequired) { + const checksum = base64Encoder(await digest) + awsChunkedEncodingStream.push( + `${checksumLocationName}:${checksum}\r\n` + ) + awsChunkedEncodingStream.push(`\r\n`) + } + awsChunkedEncodingStream.push(null) + }) + return awsChunkedEncodingStream + } + exports.getAwsChunkedEncodingStream = getAwsChunkedEncodingStream + + /***/ }, - checksumAlgorithms() { - return this._checksumAlgorithms; - } - }; -}, "getChecksumConfiguration"); -var resolveChecksumRuntimeConfig = /* @__PURE__ */ __name((clientConfig) => { - const runtimeConfig = {}; - clientConfig.checksumAlgorithms().forEach((checksumAlgorithm) => { - runtimeConfig[checksumAlgorithm.algorithmId()] = checksumAlgorithm.checksumConstructor(); - }); - return runtimeConfig; -}, "resolveChecksumRuntimeConfig"); - -// src/extensions/retry.ts -var getRetryConfiguration = /* @__PURE__ */ __name((runtimeConfig) => { - let _retryStrategy = runtimeConfig.retryStrategy; - return { - setRetryStrategy(retryStrategy) { - _retryStrategy = retryStrategy; - }, - retryStrategy() { - return _retryStrategy; - } - }; -}, "getRetryConfiguration"); -var resolveRetryRuntimeConfig = /* @__PURE__ */ __name((retryStrategyConfiguration) => { - const runtimeConfig = {}; - runtimeConfig.retryStrategy = retryStrategyConfiguration.retryStrategy(); - return runtimeConfig; -}, "resolveRetryRuntimeConfig"); - -// src/extensions/defaultExtensionConfiguration.ts -var getDefaultExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => { - return { - ...getChecksumConfiguration(runtimeConfig), - ...getRetryConfiguration(runtimeConfig) - }; -}, "getDefaultExtensionConfiguration"); -var getDefaultClientConfiguration = getDefaultExtensionConfiguration; -var resolveDefaultRuntimeConfig = /* @__PURE__ */ __name((config) => { - return { - ...resolveChecksumRuntimeConfig(config), - ...resolveRetryRuntimeConfig(config) - }; -}, "resolveDefaultRuntimeConfig"); - -// src/extended-encode-uri-component.ts -function extendedEncodeURIComponent(str) { - return encodeURIComponent(str).replace(/[!'()*]/g, function(c) { - return "%" + c.charCodeAt(0).toString(16).toUpperCase(); - }); -} -__name(extendedEncodeURIComponent, "extendedEncodeURIComponent"); - -// src/get-array-if-single-item.ts -var getArrayIfSingleItem = /* @__PURE__ */ __name((mayBeArray) => Array.isArray(mayBeArray) ? mayBeArray : [mayBeArray], "getArrayIfSingleItem"); - -// src/get-value-from-text-node.ts -var getValueFromTextNode = /* @__PURE__ */ __name((obj) => { - const textNodeName = "#text"; - for (const key in obj) { - if (obj.hasOwnProperty(key) && obj[key][textNodeName] !== void 0) { - obj[key] = obj[key][textNodeName]; - } else if (typeof obj[key] === "object" && obj[key] !== null) { - obj[key] = getValueFromTextNode(obj[key]); - } - } - return obj; -}, "getValueFromTextNode"); - -// src/lazy-json.ts -var StringWrapper = /* @__PURE__ */ __name(function() { - const Class = Object.getPrototypeOf(this).constructor; - const Constructor = Function.bind.apply(String, [null, ...arguments]); - const instance = new Constructor(); - Object.setPrototypeOf(instance, Class.prototype); - return instance; -}, "StringWrapper"); -StringWrapper.prototype = Object.create(String.prototype, { - constructor: { - value: StringWrapper, - enumerable: false, - writable: true, - configurable: true - } -}); -Object.setPrototypeOf(StringWrapper, String); -var _LazyJsonString = class _LazyJsonString extends StringWrapper { - deserializeJSON() { - return JSON.parse(super.toString()); - } - toJSON() { - return super.toString(); - } - static fromObject(object) { - if (object instanceof _LazyJsonString) { - return object; - } else if (object instanceof String || typeof object === "string") { - return new _LazyJsonString(object); - } - return new _LazyJsonString(JSON.stringify(object)); - } -}; -__name(_LazyJsonString, "LazyJsonString"); -var LazyJsonString = _LazyJsonString; - -// src/object-mapping.ts -function map(arg0, arg1, arg2) { - let target; - let filter; - let instructions; - if (typeof arg1 === "undefined" && typeof arg2 === "undefined") { - target = {}; - instructions = arg0; - } else { - target = arg0; - if (typeof arg1 === "function") { - filter = arg1; - instructions = arg2; - return mapWithFilter(target, filter, instructions); - } else { - instructions = arg1; - } - } - for (const key of Object.keys(instructions)) { - if (!Array.isArray(instructions[key])) { - target[key] = instructions[key]; - continue; - } - applyInstruction(target, null, instructions, key); - } - return target; -} -__name(map, "map"); -var convertMap = /* @__PURE__ */ __name((target) => { - const output = {}; - for (const [k, v] of Object.entries(target || {})) { - output[k] = [, v]; - } - return output; -}, "convertMap"); -var take = /* @__PURE__ */ __name((source, instructions) => { - const out = {}; - for (const key in instructions) { - applyInstruction(out, source, instructions, key); - } - return out; -}, "take"); -var mapWithFilter = /* @__PURE__ */ __name((target, filter, instructions) => { - return map( - target, - Object.entries(instructions).reduce( - (_instructions, [key, value]) => { - if (Array.isArray(value)) { - _instructions[key] = value; - } else { - if (typeof value === "function") { - _instructions[key] = [filter, value()]; + + /***/ 56711: /***/ (__unused_webpack_module, exports) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.headStream = void 0 + async function headStream(stream, bytes) { + var _a + let byteLengthCounter = 0 + const chunks = [] + const reader = stream.getReader() + let isDone = false + while (!isDone) { + const { done, value } = await reader.read() + if (value) { + chunks.push(value) + byteLengthCounter += + (_a = + value === null || value === void 0 + ? void 0 + : value.byteLength) !== null && _a !== void 0 + ? _a + : 0 + } + if (byteLengthCounter >= bytes) { + break + } + isDone = done + } + reader.releaseLock() + const collected = new Uint8Array(Math.min(bytes, byteLengthCounter)) + let offset = 0 + for (const chunk of chunks) { + if (chunk.byteLength > collected.byteLength - offset) { + collected.set( + chunk.subarray(0, collected.byteLength - offset), + offset + ) + break } else { - _instructions[key] = [filter, value]; - } - } - return _instructions; - }, - {} - ) - ); -}, "mapWithFilter"); -var applyInstruction = /* @__PURE__ */ __name((target, source, instructions, targetKey) => { - if (source !== null) { - let instruction = instructions[targetKey]; - if (typeof instruction === "function") { - instruction = [, instruction]; - } - const [filter2 = nonNullish, valueFn = pass, sourceKey = targetKey] = instruction; - if (typeof filter2 === "function" && filter2(source[sourceKey]) || typeof filter2 !== "function" && !!filter2) { - target[targetKey] = valueFn(source[sourceKey]); - } - return; - } - let [filter, value] = instructions[targetKey]; - if (typeof value === "function") { - let _value; - const defaultFilterPassed = filter === void 0 && (_value = value()) != null; - const customFilterPassed = typeof filter === "function" && !!filter(void 0) || typeof filter !== "function" && !!filter; - if (defaultFilterPassed) { - target[targetKey] = _value; - } else if (customFilterPassed) { - target[targetKey] = value(); - } - } else { - const defaultFilterPassed = filter === void 0 && value != null; - const customFilterPassed = typeof filter === "function" && !!filter(value) || typeof filter !== "function" && !!filter; - if (defaultFilterPassed || customFilterPassed) { - target[targetKey] = value; - } - } -}, "applyInstruction"); -var nonNullish = /* @__PURE__ */ __name((_) => _ != null, "nonNullish"); -var pass = /* @__PURE__ */ __name((_) => _, "pass"); - -// src/resolve-path.ts -var resolvedPath = /* @__PURE__ */ __name((resolvedPath2, input, memberName, labelValueProvider, uriLabel, isGreedyLabel) => { - if (input != null && input[memberName] !== void 0) { - const labelValue = labelValueProvider(); - if (labelValue.length <= 0) { - throw new Error("Empty value provided for input HTTP label: " + memberName + "."); - } - resolvedPath2 = resolvedPath2.replace( - uriLabel, - isGreedyLabel ? labelValue.split("/").map((segment) => extendedEncodeURIComponent(segment)).join("/") : extendedEncodeURIComponent(labelValue) - ); - } else { - throw new Error("No value provided for input HTTP label: " + memberName + "."); - } - return resolvedPath2; -}, "resolvedPath"); + collected.set(chunk, offset) + } + offset += chunk.length + } + return collected + } + exports.headStream = headStream -// src/ser-utils.ts -var serializeFloat = /* @__PURE__ */ __name((value) => { - if (value !== value) { - return "NaN"; - } - switch (value) { - case Infinity: - return "Infinity"; - case -Infinity: - return "-Infinity"; - default: - return value; - } -}, "serializeFloat"); -var serializeDateTime = /* @__PURE__ */ __name((date) => date.toISOString().replace(".000Z", "Z"), "serializeDateTime"); + /***/ + }, -// src/serde-json.ts -var _json = /* @__PURE__ */ __name((obj) => { - if (obj == null) { - return {}; - } - if (Array.isArray(obj)) { - return obj.filter((_) => _ != null).map(_json); - } - if (typeof obj === "object") { - const target = {}; - for (const key of Object.keys(obj)) { - if (obj[key] == null) { - continue; + /***/ 6708: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.headStream = void 0 + const stream_1 = __nccwpck_require__(12781) + const headStream_browser_1 = __nccwpck_require__(56711) + const stream_type_check_1 = __nccwpck_require__(57578) + const headStream = (stream, bytes) => { + if ((0, stream_type_check_1.isReadableStream)(stream)) { + return (0, headStream_browser_1.headStream)(stream, bytes) + } + return new Promise((resolve, reject) => { + const collector = new Collector() + collector.limit = bytes + stream.pipe(collector) + stream.on('error', err => { + collector.end() + reject(err) + }) + collector.on('error', reject) + collector.on('finish', function () { + const bytes = new Uint8Array(Buffer.concat(this.buffers)) + resolve(bytes) + }) + }) + } + exports.headStream = headStream + class Collector extends stream_1.Writable { + constructor() { + super(...arguments) + this.buffers = [] + this.limit = Infinity + this.bytesBuffered = 0 + } + _write(chunk, encoding, callback) { + var _a + this.buffers.push(chunk) + this.bytesBuffered += + (_a = chunk.byteLength) !== null && _a !== void 0 ? _a : 0 + if (this.bytesBuffered >= this.limit) { + const excess = this.bytesBuffered - this.limit + const tailBuffer = this.buffers[this.buffers.length - 1] + this.buffers[this.buffers.length - 1] = tailBuffer.subarray( + 0, + tailBuffer.byteLength - excess + ) + this.emit('finish') + } + callback() + } } - target[key] = _json(obj[key]); - } - return target; - } - return obj; -}, "_json"); -// src/split-every.ts -function splitEvery(value, delimiter, numDelimiters) { - if (numDelimiters <= 0 || !Number.isInteger(numDelimiters)) { - throw new Error("Invalid number of delimiters (" + numDelimiters + ") for splitEvery."); - } - const segments = value.split(delimiter); - if (numDelimiters === 1) { - return segments; - } - const compoundSegments = []; - let currentSegment = ""; - for (let i = 0; i < segments.length; i++) { - if (currentSegment === "") { - currentSegment = segments[i]; - } else { - currentSegment += delimiter + segments[i]; - } - if ((i + 1) % numDelimiters === 0) { - compoundSegments.push(currentSegment); - currentSegment = ""; - } - } - if (currentSegment !== "") { - compoundSegments.push(currentSegment); - } - return compoundSegments; -} -__name(splitEvery, "splitEvery"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 55756: -/***/ ((module) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - AlgorithmId: () => AlgorithmId, - EndpointURLScheme: () => EndpointURLScheme, - FieldPosition: () => FieldPosition, - HttpApiKeyAuthLocation: () => HttpApiKeyAuthLocation, - HttpAuthLocation: () => HttpAuthLocation, - IniSectionType: () => IniSectionType, - RequestHandlerProtocol: () => RequestHandlerProtocol, - SMITHY_CONTEXT_KEY: () => SMITHY_CONTEXT_KEY, - getDefaultClientConfiguration: () => getDefaultClientConfiguration, - resolveDefaultRuntimeConfig: () => resolveDefaultRuntimeConfig -}); -module.exports = __toCommonJS(src_exports); - -// src/auth/auth.ts -var HttpAuthLocation = /* @__PURE__ */ ((HttpAuthLocation2) => { - HttpAuthLocation2["HEADER"] = "header"; - HttpAuthLocation2["QUERY"] = "query"; - return HttpAuthLocation2; -})(HttpAuthLocation || {}); - -// src/auth/HttpApiKeyAuth.ts -var HttpApiKeyAuthLocation = /* @__PURE__ */ ((HttpApiKeyAuthLocation2) => { - HttpApiKeyAuthLocation2["HEADER"] = "header"; - HttpApiKeyAuthLocation2["QUERY"] = "query"; - return HttpApiKeyAuthLocation2; -})(HttpApiKeyAuthLocation || {}); - -// src/endpoint.ts -var EndpointURLScheme = /* @__PURE__ */ ((EndpointURLScheme2) => { - EndpointURLScheme2["HTTP"] = "http"; - EndpointURLScheme2["HTTPS"] = "https"; - return EndpointURLScheme2; -})(EndpointURLScheme || {}); - -// src/extensions/checksum.ts -var AlgorithmId = /* @__PURE__ */ ((AlgorithmId2) => { - AlgorithmId2["MD5"] = "md5"; - AlgorithmId2["CRC32"] = "crc32"; - AlgorithmId2["CRC32C"] = "crc32c"; - AlgorithmId2["SHA1"] = "sha1"; - AlgorithmId2["SHA256"] = "sha256"; - return AlgorithmId2; -})(AlgorithmId || {}); -var getChecksumConfiguration = /* @__PURE__ */ __name((runtimeConfig) => { - const checksumAlgorithms = []; - if (runtimeConfig.sha256 !== void 0) { - checksumAlgorithms.push({ - algorithmId: () => "sha256" /* SHA256 */, - checksumConstructor: () => runtimeConfig.sha256 - }); - } - if (runtimeConfig.md5 != void 0) { - checksumAlgorithms.push({ - algorithmId: () => "md5" /* MD5 */, - checksumConstructor: () => runtimeConfig.md5 - }); - } - return { - _checksumAlgorithms: checksumAlgorithms, - addChecksumAlgorithm(algo) { - this._checksumAlgorithms.push(algo); + /***/ }, - checksumAlgorithms() { - return this._checksumAlgorithms; - } - }; -}, "getChecksumConfiguration"); -var resolveChecksumRuntimeConfig = /* @__PURE__ */ __name((clientConfig) => { - const runtimeConfig = {}; - clientConfig.checksumAlgorithms().forEach((checksumAlgorithm) => { - runtimeConfig[checksumAlgorithm.algorithmId()] = checksumAlgorithm.checksumConstructor(); - }); - return runtimeConfig; -}, "resolveChecksumRuntimeConfig"); - -// src/extensions/defaultClientConfiguration.ts -var getDefaultClientConfiguration = /* @__PURE__ */ __name((runtimeConfig) => { - return { - ...getChecksumConfiguration(runtimeConfig) - }; -}, "getDefaultClientConfiguration"); -var resolveDefaultRuntimeConfig = /* @__PURE__ */ __name((config) => { - return { - ...resolveChecksumRuntimeConfig(config) - }; -}, "resolveDefaultRuntimeConfig"); - -// src/http.ts -var FieldPosition = /* @__PURE__ */ ((FieldPosition2) => { - FieldPosition2[FieldPosition2["HEADER"] = 0] = "HEADER"; - FieldPosition2[FieldPosition2["TRAILER"] = 1] = "TRAILER"; - return FieldPosition2; -})(FieldPosition || {}); - -// src/middleware.ts -var SMITHY_CONTEXT_KEY = "__smithy_context"; - -// src/profile.ts -var IniSectionType = /* @__PURE__ */ ((IniSectionType2) => { - IniSectionType2["PROFILE"] = "profile"; - IniSectionType2["SSO_SESSION"] = "sso-session"; - IniSectionType2["SERVICES"] = "services"; - return IniSectionType2; -})(IniSectionType || {}); - -// src/transfer.ts -var RequestHandlerProtocol = /* @__PURE__ */ ((RequestHandlerProtocol2) => { - RequestHandlerProtocol2["HTTP_0_9"] = "http/0.9"; - RequestHandlerProtocol2["HTTP_1_0"] = "http/1.0"; - RequestHandlerProtocol2["TDS_8_0"] = "tds/8.0"; - return RequestHandlerProtocol2; -})(RequestHandlerProtocol || {}); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 14681: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - parseUrl: () => parseUrl -}); -module.exports = __toCommonJS(src_exports); -var import_querystring_parser = __nccwpck_require__(4769); -var parseUrl = /* @__PURE__ */ __name((url) => { - if (typeof url === "string") { - return parseUrl(new URL(url)); - } - const { hostname, pathname, port, protocol, search } = url; - let query; - if (search) { - query = (0, import_querystring_parser.parseQueryString)(search); - } - return { - hostname, - port: port ? parseInt(port) : void 0, - protocol, - path: pathname, - query - }; -}, "parseUrl"); -// Annotate the CommonJS export names for ESM import in node: -0 && (0); + /***/ 96607: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __reExport = (target, mod, secondTarget) => ( + __copyProps(target, mod, 'default'), + secondTarget && __copyProps(secondTarget, mod, 'default') + ) + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + // src/index.ts + var src_exports = {} + __export(src_exports, { + Uint8ArrayBlobAdapter: () => Uint8ArrayBlobAdapter + }) + module.exports = __toCommonJS(src_exports) + + // src/blob/transforms.ts + var import_util_base64 = __nccwpck_require__(75600) + var import_util_utf8 = __nccwpck_require__(41895) + function transformToString(payload, encoding = 'utf-8') { + if (encoding === 'base64') { + return (0, import_util_base64.toBase64)(payload) + } + return (0, import_util_utf8.toUtf8)(payload) + } + __name(transformToString, 'transformToString') + function transformFromString(str, encoding) { + if (encoding === 'base64') { + return Uint8ArrayBlobAdapter.mutate( + (0, import_util_base64.fromBase64)(str) + ) + } + return Uint8ArrayBlobAdapter.mutate((0, import_util_utf8.fromUtf8)(str)) + } + __name(transformFromString, 'transformFromString') + // src/blob/Uint8ArrayBlobAdapter.ts + var _Uint8ArrayBlobAdapter = class _Uint8ArrayBlobAdapter extends Uint8Array { + /** + * @param source - such as a string or Stream. + * @returns a new Uint8ArrayBlobAdapter extending Uint8Array. + */ + static fromString(source, encoding = 'utf-8') { + switch (typeof source) { + case 'string': + return transformFromString(source, encoding) + default: + throw new Error( + `Unsupported conversion from ${typeof source} to Uint8ArrayBlobAdapter.` + ) + } + } + /** + * @param source - Uint8Array to be mutated. + * @returns the same Uint8Array but with prototype switched to Uint8ArrayBlobAdapter. + */ + static mutate(source) { + Object.setPrototypeOf(source, _Uint8ArrayBlobAdapter.prototype) + return source + } + /** + * @param encoding - default 'utf-8'. + * @returns the blob as string. + */ + transformToString(encoding = 'utf-8') { + return transformToString(this, encoding) + } + } + __name(_Uint8ArrayBlobAdapter, 'Uint8ArrayBlobAdapter') + var Uint8ArrayBlobAdapter = _Uint8ArrayBlobAdapter -/***/ }), + // src/index.ts + __reExport(src_exports, __nccwpck_require__(23636), module.exports) + __reExport(src_exports, __nccwpck_require__(4515), module.exports) + __reExport(src_exports, __nccwpck_require__(88321), module.exports) + __reExport(src_exports, __nccwpck_require__(6708), module.exports) + __reExport(src_exports, __nccwpck_require__(57578), module.exports) + // Annotate the CommonJS export names for ESM import in node: -/***/ 30305: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + 0 && 0 -"use strict"; + /***/ + }, -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.fromBase64 = void 0; -const util_buffer_from_1 = __nccwpck_require__(31381); -const BASE64_REGEX = /^[A-Za-z0-9+/]*={0,2}$/; -const fromBase64 = (input) => { - if ((input.length * 3) % 4 !== 0) { - throw new TypeError(`Incorrect padding on base64 string.`); - } - if (!BASE64_REGEX.exec(input)) { - throw new TypeError(`Invalid base64 string.`); - } - const buffer = (0, util_buffer_from_1.fromString)(input, "base64"); - return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength); -}; -exports.fromBase64 = fromBase64; - - -/***/ }), - -/***/ 75600: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + /***/ 12942: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.sdkStreamMixin = void 0 + const fetch_http_handler_1 = __nccwpck_require__(82687) + const util_base64_1 = __nccwpck_require__(75600) + const util_hex_encoding_1 = __nccwpck_require__(45364) + const util_utf8_1 = __nccwpck_require__(41895) + const stream_type_check_1 = __nccwpck_require__(57578) + const ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED = + 'The stream has already been transformed.' + const sdkStreamMixin = stream => { + var _a, _b + if ( + !isBlobInstance(stream) && + !(0, stream_type_check_1.isReadableStream)(stream) + ) { + 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 + throw new Error( + `Unexpected stream implementation, expect Blob or ReadableStream, got ${name}` + ) + } + let transformed = false + const transformToByteArray = async () => { + if (transformed) { + throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED) + } + transformed = true + return await (0, fetch_http_handler_1.streamCollector)(stream) + } + const blobToWebStream = blob => { + if (typeof blob.stream !== 'function') { + throw new Error( + 'Cannot transform payload Blob to web stream. Please make sure the Blob.stream() is polyfilled.\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' + ) + } + return blob.stream() + } + return Object.assign(stream, { + transformToByteArray: transformToByteArray, + transformToString: async encoding => { + const buf = await transformToByteArray() + if (encoding === 'base64') { + return (0, util_base64_1.toBase64)(buf) + } else if (encoding === 'hex') { + return (0, util_hex_encoding_1.toHex)(buf) + } else if ( + encoding === undefined || + encoding === 'utf8' || + encoding === 'utf-8' + ) { + return (0, util_utf8_1.toUtf8)(buf) + } else if (typeof TextDecoder === 'function') { + return new TextDecoder(encoding).decode(buf) + } else { + throw new Error( + 'TextDecoder is not available, please make sure polyfill is provided.' + ) + } + }, + transformToWebStream: () => { + if (transformed) { + throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED) + } + transformed = true + if (isBlobInstance(stream)) { + return blobToWebStream(stream) + } else if ((0, stream_type_check_1.isReadableStream)(stream)) { + return stream + } else { + throw new Error( + `Cannot transform payload to web stream, got ${stream}` + ) + } + } + }) + } + exports.sdkStreamMixin = sdkStreamMixin + const isBlobInstance = stream => + typeof Blob === 'function' && stream instanceof Blob -// src/index.ts -var src_exports = {}; -module.exports = __toCommonJS(src_exports); -__reExport(src_exports, __nccwpck_require__(30305), module.exports); -__reExport(src_exports, __nccwpck_require__(74730), module.exports); -// Annotate the CommonJS export names for ESM import in node: + /***/ + }, -0 && (0); + /***/ 4515: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.sdkStreamMixin = void 0 + const node_http_handler_1 = __nccwpck_require__(6123) + const util_buffer_from_1 = __nccwpck_require__(31381) + const stream_1 = __nccwpck_require__(12781) + const util_1 = __nccwpck_require__(73837) + const sdk_stream_mixin_browser_1 = __nccwpck_require__(12942) + const ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED = + 'The stream has already been transformed.' + const sdkStreamMixin = stream => { + var _a, _b + if (!(stream instanceof stream_1.Readable)) { + try { + return (0, sdk_stream_mixin_browser_1.sdkStreamMixin)(stream) + } catch (e) { + 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 + throw new Error( + `Unexpected stream implementation, expect Stream.Readable instance, got ${name}` + ) + } + } + let transformed = false + const transformToByteArray = async () => { + if (transformed) { + throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED) + } + transformed = true + return await (0, node_http_handler_1.streamCollector)(stream) + } + return Object.assign(stream, { + transformToByteArray, + transformToString: async encoding => { + const buf = await transformToByteArray() + if (encoding === undefined || Buffer.isEncoding(encoding)) { + return (0, util_buffer_from_1.fromArrayBuffer)( + buf.buffer, + buf.byteOffset, + buf.byteLength + ).toString(encoding) + } else { + const decoder = new util_1.TextDecoder(encoding) + return decoder.decode(buf) + } + }, + transformToWebStream: () => { + if (transformed) { + throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED) + } + if (stream.readableFlowing !== null) { + throw new Error( + 'The stream has been consumed by other callbacks.' + ) + } + if (typeof stream_1.Readable.toWeb !== 'function') { + throw new Error( + 'Readable.toWeb() is not supported. Please make sure you are using Node.js >= 17.0.0, or polyfill is available.' + ) + } + transformed = true + return stream_1.Readable.toWeb(stream) + } + }) + } + exports.sdkStreamMixin = sdkStreamMixin + /***/ + }, + /***/ 64693: /***/ (__unused_webpack_module, exports) => { + 'use strict' -/***/ }), + Object.defineProperty(exports, '__esModule', { value: true }) + exports.splitStream = void 0 + async function splitStream(stream) { + if (typeof stream.stream === 'function') { + stream = stream.stream() + } + const readableStream = stream + return readableStream.tee() + } + exports.splitStream = splitStream -/***/ 74730: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + /***/ + }, -"use strict"; + /***/ 88321: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.splitStream = void 0 + const stream_1 = __nccwpck_require__(12781) + const splitStream_browser_1 = __nccwpck_require__(64693) + const stream_type_check_1 = __nccwpck_require__(57578) + async function splitStream(stream) { + if ((0, stream_type_check_1.isReadableStream)(stream)) { + return (0, splitStream_browser_1.splitStream)(stream) + } + const stream1 = new stream_1.PassThrough() + const stream2 = new stream_1.PassThrough() + stream.pipe(stream1) + stream.pipe(stream2) + return [stream1, stream2] + } + exports.splitStream = splitStream + + /***/ + }, -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.toBase64 = void 0; -const util_buffer_from_1 = __nccwpck_require__(31381); -const util_utf8_1 = __nccwpck_require__(41895); -const toBase64 = (_input) => { - let input; - if (typeof _input === "string") { - input = (0, util_utf8_1.fromUtf8)(_input); - } - else { - input = _input; - } - if (typeof input !== "object" || typeof input.byteOffset !== "number" || typeof input.byteLength !== "number") { - throw new Error("@smithy/util-base64: toBase64 encoder function only accepts string | Uint8Array."); - } - return (0, util_buffer_from_1.fromArrayBuffer)(input.buffer, input.byteOffset, input.byteLength).toString("base64"); -}; -exports.toBase64 = toBase64; - - -/***/ }), - -/***/ 68075: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - calculateBodyLength: () => calculateBodyLength -}); -module.exports = __toCommonJS(src_exports); - -// src/calculateBodyLength.ts -var import_fs = __nccwpck_require__(57147); -var calculateBodyLength = /* @__PURE__ */ __name((body) => { - if (!body) { - return 0; - } - if (typeof body === "string") { - return Buffer.byteLength(body); - } else if (typeof body.byteLength === "number") { - return body.byteLength; - } else if (typeof body.size === "number") { - return body.size; - } else if (typeof body.start === "number" && typeof body.end === "number") { - return body.end + 1 - body.start; - } else if (typeof body.path === "string" || Buffer.isBuffer(body.path)) { - return (0, import_fs.lstatSync)(body.path).size; - } else if (typeof body.fd === "number") { - return (0, import_fs.fstatSync)(body.fd).size; - } - throw new Error(`Body Length computation failed for ${body}`); -}, "calculateBodyLength"); -// Annotate the CommonJS export names for ESM import in node: + /***/ 57578: /***/ (__unused_webpack_module, exports) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.isReadableStream = void 0 + const isReadableStream = stream => { + var _a + return ( + typeof ReadableStream === 'function' && + (((_a = + stream === null || stream === void 0 + ? void 0 + : stream.constructor) === null || _a === void 0 + ? void 0 + : _a.name) === ReadableStream.name || + stream instanceof ReadableStream) + ) + } + exports.isReadableStream = isReadableStream + + /***/ + }, + + /***/ 6123: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __create = Object.create + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __getProtoOf = Object.getPrototypeOf + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toESM = (mod, isNodeMode, target) => ( + (target = mod != null ? __create(__getProtoOf(mod)) : {}), + __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule + ? __defProp(target, 'default', { value: mod, enumerable: true }) + : target, + mod + ) + ) + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + + // src/index.ts + var src_exports = {} + __export(src_exports, { + DEFAULT_REQUEST_TIMEOUT: () => DEFAULT_REQUEST_TIMEOUT, + NodeHttp2Handler: () => NodeHttp2Handler, + NodeHttpHandler: () => NodeHttpHandler, + streamCollector: () => streamCollector + }) + module.exports = __toCommonJS(src_exports) + + // src/node-http-handler.ts + var import_protocol_http = __nccwpck_require__(64418) + var import_querystring_builder = __nccwpck_require__(68031) + var import_http = __nccwpck_require__(13685) + var import_https = __nccwpck_require__(95687) + + // src/constants.ts + var NODEJS_TIMEOUT_ERROR_CODES = ['ECONNRESET', 'EPIPE', 'ETIMEDOUT'] + + // src/get-transformed-headers.ts + var getTransformedHeaders = /* @__PURE__ */ __name(headers => { + const transformedHeaders = {} + for (const name of Object.keys(headers)) { + const headerValues = headers[name] + transformedHeaders[name] = Array.isArray(headerValues) + ? headerValues.join(',') + : headerValues + } + return transformedHeaders + }, 'getTransformedHeaders') + + // src/set-connection-timeout.ts + var DEFER_EVENT_LISTENER_TIME = 1e3 + var setConnectionTimeout = /* @__PURE__ */ __name( + (request, reject, timeoutInMs = 0) => { + if (!timeoutInMs) { + return -1 + } + const registerTimeout = /* @__PURE__ */ __name(offset => { + const timeoutId = setTimeout(() => { + request.destroy() + reject( + Object.assign( + new Error( + `Socket timed out without establishing a connection within ${timeoutInMs} ms` + ), + { + name: 'TimeoutError' + } + ) + ) + }, timeoutInMs - offset) + const doWithSocket = /* @__PURE__ */ __name(socket => { + if (socket == null ? void 0 : socket.connecting) { + socket.on('connect', () => { + clearTimeout(timeoutId) + }) + } else { + clearTimeout(timeoutId) + } + }, 'doWithSocket') + if (request.socket) { + doWithSocket(request.socket) + } else { + request.on('socket', doWithSocket) + } + }, 'registerTimeout') + if (timeoutInMs < 2e3) { + registerTimeout(0) + return 0 + } + return setTimeout( + registerTimeout.bind(null, DEFER_EVENT_LISTENER_TIME), + DEFER_EVENT_LISTENER_TIME + ) + }, + 'setConnectionTimeout' + ) + + // src/set-socket-keep-alive.ts + var DEFER_EVENT_LISTENER_TIME2 = 3e3 + var setSocketKeepAlive = /* @__PURE__ */ __name( + ( + request, + { keepAlive, keepAliveMsecs }, + deferTimeMs = DEFER_EVENT_LISTENER_TIME2 + ) => { + if (keepAlive !== true) { + return -1 + } + const registerListener = /* @__PURE__ */ __name(() => { + if (request.socket) { + request.socket.setKeepAlive(keepAlive, keepAliveMsecs || 0) + } else { + request.on('socket', socket => { + socket.setKeepAlive(keepAlive, keepAliveMsecs || 0) + }) + } + }, 'registerListener') + if (deferTimeMs === 0) { + registerListener() + return 0 + } + return setTimeout(registerListener, deferTimeMs) + }, + 'setSocketKeepAlive' + ) -0 && (0); + // src/set-socket-timeout.ts + var DEFER_EVENT_LISTENER_TIME3 = 3e3 + var setSocketTimeout = /* @__PURE__ */ __name( + (request, reject, timeoutInMs = 0) => { + const registerTimeout = /* @__PURE__ */ __name(offset => { + request.setTimeout(timeoutInMs - offset, () => { + request.destroy() + reject( + Object.assign( + new Error(`Connection timed out after ${timeoutInMs} ms`), + { name: 'TimeoutError' } + ) + ) + }) + }, 'registerTimeout') + if (0 < timeoutInMs && timeoutInMs < 6e3) { + registerTimeout(0) + return 0 + } + return setTimeout( + registerTimeout.bind( + null, + timeoutInMs === 0 ? 0 : DEFER_EVENT_LISTENER_TIME3 + ), + DEFER_EVENT_LISTENER_TIME3 + ) + }, + 'setSocketTimeout' + ) + // src/write-request-body.ts + var import_stream = __nccwpck_require__(12781) + var MIN_WAIT_TIME = 1e3 + async function writeRequestBody( + httpRequest, + request, + maxContinueTimeoutMs = MIN_WAIT_TIME + ) { + const headers = request.headers ?? {} + const expect = headers['Expect'] || headers['expect'] + let timeoutId = -1 + let hasError = false + if (expect === '100-continue') { + await Promise.race([ + new Promise(resolve => { + timeoutId = Number( + setTimeout( + resolve, + Math.max(MIN_WAIT_TIME, maxContinueTimeoutMs) + ) + ) + }), + new Promise(resolve => { + httpRequest.on('continue', () => { + clearTimeout(timeoutId) + resolve() + }) + httpRequest.on('error', () => { + hasError = true + clearTimeout(timeoutId) + resolve() + }) + }) + ]) + } + if (!hasError) { + writeBody(httpRequest, request.body) + } + } + __name(writeRequestBody, 'writeRequestBody') + function writeBody(httpRequest, body) { + if (body instanceof import_stream.Readable) { + body.pipe(httpRequest) + return + } + if (body) { + if (Buffer.isBuffer(body) || typeof body === 'string') { + httpRequest.end(body) + return + } + const uint8 = body + if ( + typeof uint8 === 'object' && + uint8.buffer && + typeof uint8.byteOffset === 'number' && + typeof uint8.byteLength === 'number' + ) { + httpRequest.end( + Buffer.from(uint8.buffer, uint8.byteOffset, uint8.byteLength) + ) + return + } + httpRequest.end(Buffer.from(body)) + return + } + httpRequest.end() + } + __name(writeBody, 'writeBody') + + // src/node-http-handler.ts + var DEFAULT_REQUEST_TIMEOUT = 0 + var _NodeHttpHandler = class _NodeHttpHandler { + constructor(options) { + this.socketWarningTimestamp = 0 + // Node http handler is hard-coded to http/1.1: https://github.com/nodejs/node/blob/ff5664b83b89c55e4ab5d5f60068fb457f1f5872/lib/_http_server.js#L286 + this.metadata = { handlerProtocol: 'http/1.1' } + this.configProvider = new Promise((resolve, reject) => { + if (typeof options === 'function') { + options() + .then(_options => { + resolve(this.resolveDefaultConfig(_options)) + }) + .catch(reject) + } else { + resolve(this.resolveDefaultConfig(options)) + } + }) + } + /** + * @returns the input if it is an HttpHandler of any class, + * or instantiates a new instance of this handler. + */ + static create(instanceOrOptions) { + if ( + typeof (instanceOrOptions == null + ? void 0 + : instanceOrOptions.handle) === 'function' + ) { + return instanceOrOptions + } + return new _NodeHttpHandler(instanceOrOptions) + } + /** + * @internal + * + * @param agent - http(s) agent in use by the NodeHttpHandler instance. + * @param socketWarningTimestamp - last socket usage check timestamp. + * @param logger - channel for the warning. + * @returns timestamp of last emitted warning. + */ + static checkSocketUsage( + agent, + socketWarningTimestamp, + logger = console + ) { + var _a, _b, _c + const { sockets, requests, maxSockets } = agent + if (typeof maxSockets !== 'number' || maxSockets === Infinity) { + return socketWarningTimestamp + } + const interval = 15e3 + if (Date.now() - interval < socketWarningTimestamp) { + return socketWarningTimestamp + } + if (sockets && requests) { + for (const origin in sockets) { + const socketsInUse = + ((_a = sockets[origin]) == null ? void 0 : _a.length) ?? 0 + const requestsEnqueued = + ((_b = requests[origin]) == null ? void 0 : _b.length) ?? 0 + if ( + socketsInUse >= maxSockets && + requestsEnqueued >= 2 * maxSockets + ) { + ;(_c = logger == null ? void 0 : logger.warn) == null + ? void 0 + : _c.call( + logger, + `@smithy/node-http-handler:WARN - socket usage at capacity=${socketsInUse} and ${requestsEnqueued} additional requests are enqueued. +See https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html +or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.` + ) + return Date.now() + } + } + } + return socketWarningTimestamp + } + resolveDefaultConfig(options) { + const { + requestTimeout, + connectionTimeout, + socketTimeout, + httpAgent, + httpsAgent + } = options || {} + const keepAlive = true + const maxSockets = 50 + return { + connectionTimeout, + requestTimeout: requestTimeout ?? socketTimeout, + httpAgent: (() => { + if ( + httpAgent instanceof import_http.Agent || + typeof (httpAgent == null ? void 0 : httpAgent.destroy) === + 'function' + ) { + return httpAgent + } + return new import_http.Agent({ + keepAlive, + maxSockets, + ...httpAgent + }) + })(), + httpsAgent: (() => { + if ( + httpsAgent instanceof import_https.Agent || + typeof (httpsAgent == null ? void 0 : httpsAgent.destroy) === + 'function' + ) { + return httpsAgent + } + return new import_https.Agent({ + keepAlive, + maxSockets, + ...httpsAgent + }) + })(), + logger: console + } + } + destroy() { + var _a, _b, _c, _d + ;(_b = (_a = this.config) == null ? void 0 : _a.httpAgent) == null + ? void 0 + : _b.destroy() + ;(_d = (_c = this.config) == null ? void 0 : _c.httpsAgent) == null + ? void 0 + : _d.destroy() + } + async handle(request, { abortSignal } = {}) { + if (!this.config) { + this.config = await this.configProvider + } + return new Promise((_resolve, _reject) => { + let writeRequestBodyPromise = void 0 + const timeouts = [] + const resolve = /* @__PURE__ */ __name(async arg => { + await writeRequestBodyPromise + timeouts.forEach(clearTimeout) + _resolve(arg) + }, 'resolve') + const reject = /* @__PURE__ */ __name(async arg => { + await writeRequestBodyPromise + timeouts.forEach(clearTimeout) + _reject(arg) + }, 'reject') + if (!this.config) { + throw new Error( + 'Node HTTP request handler config is not resolved' + ) + } + if (abortSignal == null ? void 0 : abortSignal.aborted) { + const abortError = new Error('Request aborted') + abortError.name = 'AbortError' + reject(abortError) + return + } + const isSSL = request.protocol === 'https:' + const agent = isSSL ? this.config.httpsAgent : this.config.httpAgent + timeouts.push( + setTimeout( + () => { + this.socketWarningTimestamp = + _NodeHttpHandler.checkSocketUsage( + agent, + this.socketWarningTimestamp, + this.config.logger + ) + }, + this.config.socketAcquisitionWarningTimeout ?? + (this.config.requestTimeout ?? 2e3) + + (this.config.connectionTimeout ?? 1e3) + ) + ) + const queryString = (0, + import_querystring_builder.buildQueryString)(request.query || {}) + let auth = void 0 + if (request.username != null || request.password != null) { + const username = request.username ?? '' + const password = request.password ?? '' + auth = `${username}:${password}` + } + let path = request.path + if (queryString) { + path += `?${queryString}` + } + if (request.fragment) { + path += `#${request.fragment}` + } + const nodeHttpsOptions = { + headers: request.headers, + host: request.hostname, + method: request.method, + path, + port: request.port, + agent, + auth + } + const requestFunc = isSSL + ? import_https.request + : import_http.request + const req = requestFunc(nodeHttpsOptions, res => { + const httpResponse = new import_protocol_http.HttpResponse({ + statusCode: res.statusCode || -1, + reason: res.statusMessage, + headers: getTransformedHeaders(res.headers), + body: res + }) + resolve({ response: httpResponse }) + }) + req.on('error', err => { + if (NODEJS_TIMEOUT_ERROR_CODES.includes(err.code)) { + reject(Object.assign(err, { name: 'TimeoutError' })) + } else { + reject(err) + } + }) + if (abortSignal) { + const onAbort = /* @__PURE__ */ __name(() => { + req.destroy() + const abortError = new Error('Request aborted') + abortError.name = 'AbortError' + reject(abortError) + }, 'onAbort') + if (typeof abortSignal.addEventListener === 'function') { + const signal = abortSignal + signal.addEventListener('abort', onAbort, { once: true }) + req.once('close', () => + signal.removeEventListener('abort', onAbort) + ) + } else { + abortSignal.onabort = onAbort + } + } + timeouts.push( + setConnectionTimeout(req, reject, this.config.connectionTimeout) + ) + timeouts.push( + setSocketTimeout(req, reject, this.config.requestTimeout) + ) + const httpAgent = nodeHttpsOptions.agent + if (typeof httpAgent === 'object' && 'keepAlive' in httpAgent) { + timeouts.push( + setSocketKeepAlive(req, { + // @ts-expect-error keepAlive is not public on httpAgent. + keepAlive: httpAgent.keepAlive, + // @ts-expect-error keepAliveMsecs is not public on httpAgent. + keepAliveMsecs: httpAgent.keepAliveMsecs + }) + ) + } + writeRequestBodyPromise = writeRequestBody( + req, + request, + this.config.requestTimeout + ).catch(e => { + timeouts.forEach(clearTimeout) + return _reject(e) + }) + }) + } + updateHttpClientConfig(key, value) { + this.config = void 0 + this.configProvider = this.configProvider.then(config => { + return { + ...config, + [key]: value + } + }) + } + httpHandlerConfigs() { + return this.config ?? {} + } + } + __name(_NodeHttpHandler, 'NodeHttpHandler') + var NodeHttpHandler = _NodeHttpHandler + // src/node-http2-handler.ts -/***/ }), + var import_http22 = __nccwpck_require__(85158) -/***/ 31381: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + // src/node-http2-connection-manager.ts + var import_http2 = __toESM(__nccwpck_require__(85158)) -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - fromArrayBuffer: () => fromArrayBuffer, - fromString: () => fromString -}); -module.exports = __toCommonJS(src_exports); -var import_is_array_buffer = __nccwpck_require__(10780); -var import_buffer = __nccwpck_require__(14300); -var fromArrayBuffer = /* @__PURE__ */ __name((input, offset = 0, length = input.byteLength - offset) => { - if (!(0, import_is_array_buffer.isArrayBuffer)(input)) { - throw new TypeError(`The "input" argument must be ArrayBuffer. Received type ${typeof input} (${input})`); - } - return import_buffer.Buffer.from(input, offset, length); -}, "fromArrayBuffer"); -var fromString = /* @__PURE__ */ __name((input, encoding) => { - if (typeof input !== "string") { - throw new TypeError(`The "input" argument must be of type string. Received type ${typeof input} (${input})`); - } - return encoding ? import_buffer.Buffer.from(input, encoding) : import_buffer.Buffer.from(input); -}, "fromString"); -// Annotate the CommonJS export names for ESM import in node: + // src/node-http2-connection-pool.ts + var _NodeHttp2ConnectionPool = class _NodeHttp2ConnectionPool { + constructor(sessions) { + this.sessions = [] + this.sessions = sessions ?? [] + } + poll() { + if (this.sessions.length > 0) { + return this.sessions.shift() + } + } + offerLast(session) { + this.sessions.push(session) + } + contains(session) { + return this.sessions.includes(session) + } + remove(session) { + this.sessions = this.sessions.filter(s => s !== session) + } + [Symbol.iterator]() { + return this.sessions[Symbol.iterator]() + } + destroy(connection) { + for (const session of this.sessions) { + if (session === connection) { + if (!session.destroyed) { + session.destroy() + } + } + } + } + } + __name(_NodeHttp2ConnectionPool, 'NodeHttp2ConnectionPool') + var NodeHttp2ConnectionPool = _NodeHttp2ConnectionPool -0 && (0); + // src/node-http2-connection-manager.ts + var _NodeHttp2ConnectionManager = class _NodeHttp2ConnectionManager { + constructor(config) { + this.sessionCache = /* @__PURE__ */ new Map() + this.config = config + if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) { + throw new RangeError('maxConcurrency must be greater than zero.') + } + } + lease(requestContext, connectionConfiguration) { + const url = this.getUrlString(requestContext) + const existingPool = this.sessionCache.get(url) + if (existingPool) { + const existingSession = existingPool.poll() + if (existingSession && !this.config.disableConcurrency) { + return existingSession + } + } + const session = import_http2.default.connect(url) + if (this.config.maxConcurrency) { + session.settings( + { maxConcurrentStreams: this.config.maxConcurrency }, + err => { + if (err) { + throw new Error( + 'Fail to set maxConcurrentStreams to ' + + this.config.maxConcurrency + + 'when creating new session for ' + + requestContext.destination.toString() + ) + } + } + ) + } + session.unref() + const destroySessionCb = /* @__PURE__ */ __name(() => { + session.destroy() + this.deleteSession(url, session) + }, 'destroySessionCb') + session.on('goaway', destroySessionCb) + session.on('error', destroySessionCb) + session.on('frameError', destroySessionCb) + session.on('close', () => this.deleteSession(url, session)) + if (connectionConfiguration.requestTimeout) { + session.setTimeout( + connectionConfiguration.requestTimeout, + destroySessionCb + ) + } + const connectionPool = + this.sessionCache.get(url) || new NodeHttp2ConnectionPool() + connectionPool.offerLast(session) + this.sessionCache.set(url, connectionPool) + return session + } + /** + * Delete a session from the connection pool. + * @param authority The authority of the session to delete. + * @param session The session to delete. + */ + deleteSession(authority, session) { + const existingConnectionPool = this.sessionCache.get(authority) + if (!existingConnectionPool) { + return + } + if (!existingConnectionPool.contains(session)) { + return + } + existingConnectionPool.remove(session) + this.sessionCache.set(authority, existingConnectionPool) + } + release(requestContext, session) { + var _a + const cacheKey = this.getUrlString(requestContext) + ;(_a = this.sessionCache.get(cacheKey)) == null + ? void 0 + : _a.offerLast(session) + } + destroy() { + for (const [key, connectionPool] of this.sessionCache) { + for (const session of connectionPool) { + if (!session.destroyed) { + session.destroy() + } + connectionPool.remove(session) + } + this.sessionCache.delete(key) + } + } + setMaxConcurrentStreams(maxConcurrentStreams) { + if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) { + throw new RangeError( + 'maxConcurrentStreams must be greater than zero.' + ) + } + this.config.maxConcurrency = maxConcurrentStreams + } + setDisableConcurrentStreams(disableConcurrentStreams) { + this.config.disableConcurrency = disableConcurrentStreams + } + getUrlString(request) { + return request.destination.toString() + } + } + __name(_NodeHttp2ConnectionManager, 'NodeHttp2ConnectionManager') + var NodeHttp2ConnectionManager = _NodeHttp2ConnectionManager + + // src/node-http2-handler.ts + var _NodeHttp2Handler = class _NodeHttp2Handler { + constructor(options) { + this.metadata = { handlerProtocol: 'h2' } + this.connectionManager = new NodeHttp2ConnectionManager({}) + this.configProvider = new Promise((resolve, reject) => { + if (typeof options === 'function') { + options() + .then(opts => { + resolve(opts || {}) + }) + .catch(reject) + } else { + resolve(options || {}) + } + }) + } + /** + * @returns the input if it is an HttpHandler of any class, + * or instantiates a new instance of this handler. + */ + static create(instanceOrOptions) { + if ( + typeof (instanceOrOptions == null + ? void 0 + : instanceOrOptions.handle) === 'function' + ) { + return instanceOrOptions + } + return new _NodeHttp2Handler(instanceOrOptions) + } + destroy() { + this.connectionManager.destroy() + } + async handle(request, { abortSignal } = {}) { + if (!this.config) { + this.config = await this.configProvider + this.connectionManager.setDisableConcurrentStreams( + this.config.disableConcurrentStreams || false + ) + if (this.config.maxConcurrentStreams) { + this.connectionManager.setMaxConcurrentStreams( + this.config.maxConcurrentStreams + ) + } + } + const { requestTimeout, disableConcurrentStreams } = this.config + return new Promise((_resolve, _reject) => { + var _a + let fulfilled = false + let writeRequestBodyPromise = void 0 + const resolve = /* @__PURE__ */ __name(async arg => { + await writeRequestBodyPromise + _resolve(arg) + }, 'resolve') + const reject = /* @__PURE__ */ __name(async arg => { + await writeRequestBodyPromise + _reject(arg) + }, 'reject') + if (abortSignal == null ? void 0 : abortSignal.aborted) { + fulfilled = true + const abortError = new Error('Request aborted') + abortError.name = 'AbortError' + reject(abortError) + return + } + const { hostname, method, port, protocol, query } = request + let auth = '' + if (request.username != null || request.password != null) { + const username = request.username ?? '' + const password = request.password ?? '' + auth = `${username}:${password}@` + } + const authority = `${protocol}//${auth}${hostname}${port ? `:${port}` : ''}` + const requestContext = { destination: new URL(authority) } + const session = this.connectionManager.lease(requestContext, { + requestTimeout: + (_a = this.config) == null ? void 0 : _a.sessionTimeout, + disableConcurrentStreams: disableConcurrentStreams || false + }) + const rejectWithDestroy = /* @__PURE__ */ __name(err => { + if (disableConcurrentStreams) { + this.destroySession(session) + } + fulfilled = true + reject(err) + }, 'rejectWithDestroy') + const queryString = (0, + import_querystring_builder.buildQueryString)(query || {}) + let path = request.path + if (queryString) { + path += `?${queryString}` + } + if (request.fragment) { + path += `#${request.fragment}` + } + const req = session.request({ + ...request.headers, + [import_http22.constants.HTTP2_HEADER_PATH]: path, + [import_http22.constants.HTTP2_HEADER_METHOD]: method + }) + session.ref() + req.on('response', headers => { + const httpResponse = new import_protocol_http.HttpResponse({ + statusCode: headers[':status'] || -1, + headers: getTransformedHeaders(headers), + body: req + }) + fulfilled = true + resolve({ response: httpResponse }) + if (disableConcurrentStreams) { + session.close() + this.connectionManager.deleteSession(authority, session) + } + }) + if (requestTimeout) { + req.setTimeout(requestTimeout, () => { + req.close() + const timeoutError = new Error( + `Stream timed out because of no activity for ${requestTimeout} ms` + ) + timeoutError.name = 'TimeoutError' + rejectWithDestroy(timeoutError) + }) + } + if (abortSignal) { + const onAbort = /* @__PURE__ */ __name(() => { + req.close() + const abortError = new Error('Request aborted') + abortError.name = 'AbortError' + rejectWithDestroy(abortError) + }, 'onAbort') + if (typeof abortSignal.addEventListener === 'function') { + const signal = abortSignal + signal.addEventListener('abort', onAbort, { once: true }) + req.once('close', () => + signal.removeEventListener('abort', onAbort) + ) + } else { + abortSignal.onabort = onAbort + } + } + req.on('frameError', (type, code, id) => { + rejectWithDestroy( + new Error( + `Frame type id ${type} in stream id ${id} has failed with code ${code}.` + ) + ) + }) + req.on('error', rejectWithDestroy) + req.on('aborted', () => { + rejectWithDestroy( + new Error( + `HTTP/2 stream is abnormally aborted in mid-communication with result code ${req.rstCode}.` + ) + ) + }) + req.on('close', () => { + session.unref() + if (disableConcurrentStreams) { + session.destroy() + } + if (!fulfilled) { + rejectWithDestroy( + new Error( + 'Unexpected error: http2 request did not get a response' + ) + ) + } + }) + writeRequestBodyPromise = writeRequestBody( + req, + request, + requestTimeout + ) + }) + } + updateHttpClientConfig(key, value) { + this.config = void 0 + this.configProvider = this.configProvider.then(config => { + return { + ...config, + [key]: value + } + }) + } + httpHandlerConfigs() { + return this.config ?? {} + } + /** + * Destroys a session. + * @param session The session to destroy. + */ + destroySession(session) { + if (!session.destroyed) { + session.destroy() + } + } + } + __name(_NodeHttp2Handler, 'NodeHttp2Handler') + var NodeHttp2Handler = _NodeHttp2Handler + // src/stream-collector/collector.ts + var _Collector = class _Collector extends import_stream.Writable { + constructor() { + super(...arguments) + this.bufferedBytes = [] + } + _write(chunk, encoding, callback) { + this.bufferedBytes.push(chunk) + callback() + } + } + __name(_Collector, 'Collector') + var Collector = _Collector -/***/ }), + // src/stream-collector/index.ts + var streamCollector = /* @__PURE__ */ __name(stream => { + if (isReadableStreamInstance(stream)) { + return collectReadableStream(stream) + } + return new Promise((resolve, reject) => { + const collector = new Collector() + stream.pipe(collector) + stream.on('error', err => { + collector.end() + reject(err) + }) + collector.on('error', reject) + collector.on('finish', function () { + const bytes = new Uint8Array(Buffer.concat(this.bufferedBytes)) + resolve(bytes) + }) + }) + }, 'streamCollector') + var isReadableStreamInstance = /* @__PURE__ */ __name( + stream => + typeof ReadableStream === 'function' && + stream instanceof ReadableStream, + 'isReadableStreamInstance' + ) + async function collectReadableStream(stream) { + const chunks = [] + const reader = stream.getReader() + let isDone = false + let length = 0 + while (!isDone) { + const { done, value } = await reader.read() + if (value) { + chunks.push(value) + length += value.length + } + isDone = done + } + const collected = new Uint8Array(length) + let offset = 0 + for (const chunk of chunks) { + collected.set(chunk, offset) + offset += chunk.length + } + return collected + } + __name(collectReadableStream, 'collectReadableStream') + // Annotate the CommonJS export names for ESM import in node: -/***/ 83375: -/***/ ((module) => { + 0 && 0 -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - SelectorType: () => SelectorType, - booleanSelector: () => booleanSelector, - numberSelector: () => numberSelector -}); -module.exports = __toCommonJS(src_exports); - -// src/booleanSelector.ts -var booleanSelector = /* @__PURE__ */ __name((obj, key, type) => { - if (!(key in obj)) - return void 0; - if (obj[key] === "true") - return true; - if (obj[key] === "false") - return false; - throw new Error(`Cannot load ${type} "${key}". Expected "true" or "false", got ${obj[key]}.`); -}, "booleanSelector"); - -// src/numberSelector.ts -var numberSelector = /* @__PURE__ */ __name((obj, key, type) => { - if (!(key in obj)) - return void 0; - const numberValue = parseInt(obj[key], 10); - if (Number.isNaN(numberValue)) { - throw new TypeError(`Cannot load ${type} '${key}'. Expected number, got '${obj[key]}'.`); - } - return numberValue; -}, "numberSelector"); - -// src/types.ts -var SelectorType = /* @__PURE__ */ ((SelectorType2) => { - SelectorType2["ENV"] = "env"; - SelectorType2["CONFIG"] = "shared config entry"; - return SelectorType2; -})(SelectorType || {}); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 72429: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __create = Object.create; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __getProtoOf = Object.getPrototypeOf; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. - isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, - mod -)); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - resolveDefaultsModeConfig: () => resolveDefaultsModeConfig -}); -module.exports = __toCommonJS(src_exports); - -// src/resolveDefaultsModeConfig.ts -var import_config_resolver = __nccwpck_require__(53098); -var import_node_config_provider = __nccwpck_require__(33461); -var import_property_provider = __nccwpck_require__(79721); - -// src/constants.ts -var AWS_EXECUTION_ENV = "AWS_EXECUTION_ENV"; -var AWS_REGION_ENV = "AWS_REGION"; -var AWS_DEFAULT_REGION_ENV = "AWS_DEFAULT_REGION"; -var ENV_IMDS_DISABLED = "AWS_EC2_METADATA_DISABLED"; -var DEFAULTS_MODE_OPTIONS = ["in-region", "cross-region", "mobile", "standard", "legacy"]; -var IMDS_REGION_PATH = "/latest/meta-data/placement/region"; - -// src/defaultsModeConfig.ts -var AWS_DEFAULTS_MODE_ENV = "AWS_DEFAULTS_MODE"; -var AWS_DEFAULTS_MODE_CONFIG = "defaults_mode"; -var NODE_DEFAULTS_MODE_CONFIG_OPTIONS = { - environmentVariableSelector: (env) => { - return env[AWS_DEFAULTS_MODE_ENV]; - }, - configFileSelector: (profile) => { - return profile[AWS_DEFAULTS_MODE_CONFIG]; - }, - default: "legacy" -}; - -// src/resolveDefaultsModeConfig.ts -var resolveDefaultsModeConfig = /* @__PURE__ */ __name(({ - region = (0, import_node_config_provider.loadConfig)(import_config_resolver.NODE_REGION_CONFIG_OPTIONS), - defaultsMode = (0, import_node_config_provider.loadConfig)(NODE_DEFAULTS_MODE_CONFIG_OPTIONS) -} = {}) => (0, import_property_provider.memoize)(async () => { - const mode = typeof defaultsMode === "function" ? await defaultsMode() : defaultsMode; - switch (mode == null ? void 0 : mode.toLowerCase()) { - case "auto": - return resolveNodeDefaultsModeAuto(region); - case "in-region": - case "cross-region": - case "mobile": - case "standard": - case "legacy": - return Promise.resolve(mode == null ? void 0 : mode.toLocaleLowerCase()); - case void 0: - return Promise.resolve("legacy"); - default: - throw new Error( - `Invalid parameter for "defaultsMode", expect ${DEFAULTS_MODE_OPTIONS.join(", ")}, got ${mode}` - ); - } -}), "resolveDefaultsModeConfig"); -var resolveNodeDefaultsModeAuto = /* @__PURE__ */ __name(async (clientRegion) => { - if (clientRegion) { - const resolvedRegion = typeof clientRegion === "function" ? await clientRegion() : clientRegion; - const inferredRegion = await inferPhysicalRegion(); - if (!inferredRegion) { - return "standard"; - } - if (resolvedRegion === inferredRegion) { - return "in-region"; - } else { - return "cross-region"; - } - } - return "standard"; -}, "resolveNodeDefaultsModeAuto"); -var inferPhysicalRegion = /* @__PURE__ */ __name(async () => { - if (process.env[AWS_EXECUTION_ENV] && (process.env[AWS_REGION_ENV] || process.env[AWS_DEFAULT_REGION_ENV])) { - return process.env[AWS_REGION_ENV] ?? process.env[AWS_DEFAULT_REGION_ENV]; - } - if (!process.env[ENV_IMDS_DISABLED]) { - try { - const { getInstanceMetadataEndpoint, httpRequest } = await Promise.resolve().then(() => __toESM(__nccwpck_require__(7477))); - const endpoint = await getInstanceMetadataEndpoint(); - return (await httpRequest({ ...endpoint, path: IMDS_REGION_PATH })).toString(); - } catch (e) { - } - } -}, "inferPhysicalRegion"); -// Annotate the CommonJS export names for ESM import in node: + /***/ + }, -0 && (0); + /***/ 54197: /***/ module => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) + // src/index.ts + var src_exports = {} + __export(src_exports, { + escapeUri: () => escapeUri, + escapeUriPath: () => escapeUriPath + }) + module.exports = __toCommonJS(src_exports) + + // src/escape-uri.ts + var escapeUri = /* @__PURE__ */ __name( + uri => + // AWS percent-encodes some extra non-standard characters in a URI + encodeURIComponent(uri).replace(/[!'()*]/g, hexEncode), + 'escapeUri' + ) + var hexEncode = /* @__PURE__ */ __name( + c => `%${c.charCodeAt(0).toString(16).toUpperCase()}`, + 'hexEncode' + ) + // src/escape-uri-path.ts + var escapeUriPath = /* @__PURE__ */ __name( + uri => uri.split('/').map(escapeUri).join('/'), + 'escapeUriPath' + ) + // Annotate the CommonJS export names for ESM import in node: -/***/ }), + 0 && 0 -/***/ 45473: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + /***/ + }, -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - EndpointCache: () => EndpointCache, - EndpointError: () => EndpointError, - customEndpointFunctions: () => customEndpointFunctions, - isIpAddress: () => isIpAddress, - isValidHostLabel: () => isValidHostLabel, - resolveEndpoint: () => resolveEndpoint -}); -module.exports = __toCommonJS(src_exports); - -// src/cache/EndpointCache.ts -var _EndpointCache = class _EndpointCache { - /** - * @param [size] - desired average maximum capacity. A buffer of 10 additional keys will be allowed - * before keys are dropped. - * @param [params] - list of params to consider as part of the cache key. - * - * If the params list is not populated, no caching will happen. - * This may be out of order depending on how the object is created and arrives to this class. - */ - constructor({ size, params }) { - this.data = /* @__PURE__ */ new Map(); - this.parameters = []; - this.capacity = size ?? 50; - if (params) { - this.parameters = params; - } - } - /** - * @param endpointParams - query for endpoint. - * @param resolver - provider of the value if not present. - * @returns endpoint corresponding to the query. - */ - get(endpointParams, resolver) { - const key = this.hash(endpointParams); - if (key === false) { - return resolver(); - } - if (!this.data.has(key)) { - if (this.data.size > this.capacity + 10) { - const keys = this.data.keys(); - let i = 0; - while (true) { - const { value, done } = keys.next(); - this.data.delete(value); - if (done || ++i > 10) { - break; - } + /***/ 41895: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) } + return to } - this.data.set(key, resolver()); - } - return this.data.get(key); - } - size() { - return this.data.size; - } - /** - * @returns cache key or false if not cachable. - */ - hash(endpointParams) { - let buffer = ""; - const { parameters } = this; - if (parameters.length === 0) { - return false; - } - for (const param of parameters) { - const val = String(endpointParams[param] ?? ""); - if (val.includes("|;")) { - return false; - } - buffer += val + "|;"; - } - return buffer; - } -}; -__name(_EndpointCache, "EndpointCache"); -var EndpointCache = _EndpointCache; - -// src/lib/isIpAddress.ts -var 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}$` -); -var isIpAddress = /* @__PURE__ */ __name((value) => IP_V4_REGEX.test(value) || value.startsWith("[") && value.endsWith("]"), "isIpAddress"); - -// src/lib/isValidHostLabel.ts -var VALID_HOST_LABEL_REGEX = new RegExp(`^(?!.*-$)(?!-)[a-zA-Z0-9-]{1,63}$`); -var isValidHostLabel = /* @__PURE__ */ __name((value, allowSubDomains = false) => { - if (!allowSubDomains) { - return VALID_HOST_LABEL_REGEX.test(value); - } - const labels = value.split("."); - for (const label of labels) { - if (!isValidHostLabel(label)) { - return false; - } - } - return true; -}, "isValidHostLabel"); + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -// src/utils/customEndpointFunctions.ts -var customEndpointFunctions = {}; + // src/index.ts + var src_exports = {} + __export(src_exports, { + fromUtf8: () => fromUtf8, + toUint8Array: () => toUint8Array, + toUtf8: () => toUtf8 + }) + module.exports = __toCommonJS(src_exports) + + // src/fromUtf8.ts + var import_util_buffer_from = __nccwpck_require__(31381) + var fromUtf8 = /* @__PURE__ */ __name(input => { + const buf = (0, import_util_buffer_from.fromString)(input, 'utf8') + return new Uint8Array( + buf.buffer, + buf.byteOffset, + buf.byteLength / Uint8Array.BYTES_PER_ELEMENT + ) + }, 'fromUtf8') -// src/debug/debugId.ts -var debugId = "endpoints"; + // src/toUint8Array.ts + var toUint8Array = /* @__PURE__ */ __name(data => { + if (typeof data === 'string') { + return fromUtf8(data) + } + if (ArrayBuffer.isView(data)) { + return new Uint8Array( + data.buffer, + data.byteOffset, + data.byteLength / Uint8Array.BYTES_PER_ELEMENT + ) + } + return new Uint8Array(data) + }, 'toUint8Array') -// src/debug/toDebugString.ts -function toDebugString(input) { - if (typeof input !== "object" || input == null) { - return input; - } - if ("ref" in input) { - return `$${toDebugString(input.ref)}`; - } - if ("fn" in input) { - return `${input.fn}(${(input.argv || []).map(toDebugString).join(", ")})`; - } - return JSON.stringify(input, null, 2); -} -__name(toDebugString, "toDebugString"); - -// src/types/EndpointError.ts -var _EndpointError = class _EndpointError extends Error { - constructor(message) { - super(message); - this.name = "EndpointError"; - } -}; -__name(_EndpointError, "EndpointError"); -var EndpointError = _EndpointError; - -// src/lib/booleanEquals.ts -var booleanEquals = /* @__PURE__ */ __name((value1, value2) => value1 === value2, "booleanEquals"); - -// src/lib/getAttrPathList.ts -var getAttrPathList = /* @__PURE__ */ __name((path) => { - const parts = path.split("."); - const pathList = []; - for (const part of parts) { - const squareBracketIndex = part.indexOf("["); - if (squareBracketIndex !== -1) { - if (part.indexOf("]") !== part.length - 1) { - throw new EndpointError(`Path: '${path}' does not end with ']'`); - } - const arrayIndex = part.slice(squareBracketIndex + 1, -1); - if (Number.isNaN(parseInt(arrayIndex))) { - throw new EndpointError(`Invalid array index: '${arrayIndex}' in path: '${path}'`); - } - if (squareBracketIndex !== 0) { - pathList.push(part.slice(0, squareBracketIndex)); - } - pathList.push(arrayIndex); - } else { - pathList.push(part); - } - } - return pathList; -}, "getAttrPathList"); - -// src/lib/getAttr.ts -var getAttr = /* @__PURE__ */ __name((value, path) => getAttrPathList(path).reduce((acc, index) => { - if (typeof acc !== "object") { - throw new EndpointError(`Index '${index}' in '${path}' not found in '${JSON.stringify(value)}'`); - } else if (Array.isArray(acc)) { - return acc[parseInt(index)]; - } - return acc[index]; -}, value), "getAttr"); - -// src/lib/isSet.ts -var isSet = /* @__PURE__ */ __name((value) => value != null, "isSet"); - -// src/lib/not.ts -var not = /* @__PURE__ */ __name((value) => !value, "not"); - -// src/lib/parseURL.ts -var import_types3 = __nccwpck_require__(55756); -var DEFAULT_PORTS = { - [import_types3.EndpointURLScheme.HTTP]: 80, - [import_types3.EndpointURLScheme.HTTPS]: 443 -}; -var parseURL = /* @__PURE__ */ __name((value) => { - const whatwgURL = (() => { - try { - if (value instanceof URL) { - return value; - } - if (typeof value === "object" && "hostname" in value) { - const { hostname: hostname2, port, protocol: protocol2 = "", path = "", query = {} } = value; - const url = new URL(`${protocol2}//${hostname2}${port ? `:${port}` : ""}${path}`); - url.search = Object.entries(query).map(([k, v]) => `${k}=${v}`).join("&"); - return url; - } - return new URL(value); - } catch (error) { - return null; - } - })(); - if (!whatwgURL) { - console.error(`Unable to parse ${JSON.stringify(value)} as a whatwg URL.`); - return null; - } - const urlString = whatwgURL.href; - const { host, hostname, pathname, protocol, search } = whatwgURL; - if (search) { - return null; - } - const scheme = protocol.slice(0, -1); - if (!Object.values(import_types3.EndpointURLScheme).includes(scheme)) { - return null; - } - const isIp = isIpAddress(hostname); - const inputContainsDefaultPort = urlString.includes(`${host}:${DEFAULT_PORTS[scheme]}`) || typeof value === "string" && value.includes(`${host}:${DEFAULT_PORTS[scheme]}`); - const authority = `${host}${inputContainsDefaultPort ? `:${DEFAULT_PORTS[scheme]}` : ``}`; - return { - scheme, - authority, - path: pathname, - normalizedPath: pathname.endsWith("/") ? pathname : `${pathname}/`, - isIp - }; -}, "parseURL"); - -// src/lib/stringEquals.ts -var stringEquals = /* @__PURE__ */ __name((value1, value2) => value1 === value2, "stringEquals"); - -// src/lib/substring.ts -var substring = /* @__PURE__ */ __name((input, start, stop, reverse) => { - if (start >= stop || input.length < stop) { - return null; - } - if (!reverse) { - return input.substring(start, stop); - } - return input.substring(input.length - stop, input.length - start); -}, "substring"); - -// src/lib/uriEncode.ts -var uriEncode = /* @__PURE__ */ __name((value) => encodeURIComponent(value).replace(/[!*'()]/g, (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`), "uriEncode"); - -// src/utils/endpointFunctions.ts -var endpointFunctions = { - booleanEquals, - getAttr, - isSet, - isValidHostLabel, - not, - parseURL, - stringEquals, - substring, - uriEncode -}; - -// src/utils/evaluateTemplate.ts -var evaluateTemplate = /* @__PURE__ */ __name((template, options) => { - const evaluatedTemplateArr = []; - const templateContext = { - ...options.endpointParams, - ...options.referenceRecord - }; - let currentIndex = 0; - while (currentIndex < template.length) { - const openingBraceIndex = template.indexOf("{", currentIndex); - if (openingBraceIndex === -1) { - evaluatedTemplateArr.push(template.slice(currentIndex)); - break; - } - evaluatedTemplateArr.push(template.slice(currentIndex, openingBraceIndex)); - const closingBraceIndex = template.indexOf("}", openingBraceIndex); - if (closingBraceIndex === -1) { - evaluatedTemplateArr.push(template.slice(openingBraceIndex)); - break; - } - if (template[openingBraceIndex + 1] === "{" && template[closingBraceIndex + 1] === "}") { - evaluatedTemplateArr.push(template.slice(openingBraceIndex + 1, closingBraceIndex)); - currentIndex = closingBraceIndex + 2; - } - const parameterName = template.substring(openingBraceIndex + 1, closingBraceIndex); - if (parameterName.includes("#")) { - const [refName, attrName] = parameterName.split("#"); - evaluatedTemplateArr.push(getAttr(templateContext[refName], attrName)); - } else { - evaluatedTemplateArr.push(templateContext[parameterName]); - } - currentIndex = closingBraceIndex + 1; - } - return evaluatedTemplateArr.join(""); -}, "evaluateTemplate"); - -// src/utils/getReferenceValue.ts -var getReferenceValue = /* @__PURE__ */ __name(({ ref }, options) => { - const referenceRecord = { - ...options.endpointParams, - ...options.referenceRecord - }; - return referenceRecord[ref]; -}, "getReferenceValue"); - -// src/utils/evaluateExpression.ts -var evaluateExpression = /* @__PURE__ */ __name((obj, keyName, options) => { - if (typeof obj === "string") { - return evaluateTemplate(obj, options); - } else if (obj["fn"]) { - return callFunction(obj, options); - } else if (obj["ref"]) { - return getReferenceValue(obj, options); - } - throw new EndpointError(`'${keyName}': ${String(obj)} is not a string, function or reference.`); -}, "evaluateExpression"); - -// src/utils/callFunction.ts -var callFunction = /* @__PURE__ */ __name(({ fn, argv }, options) => { - const evaluatedArgs = argv.map( - (arg) => ["boolean", "number"].includes(typeof arg) ? arg : evaluateExpression(arg, "arg", options) - ); - const fnSegments = fn.split("."); - if (fnSegments[0] in customEndpointFunctions && fnSegments[1] != null) { - return customEndpointFunctions[fnSegments[0]][fnSegments[1]](...evaluatedArgs); - } - return endpointFunctions[fn](...evaluatedArgs); -}, "callFunction"); - -// src/utils/evaluateCondition.ts -var evaluateCondition = /* @__PURE__ */ __name(({ assign, ...fnArgs }, options) => { - var _a, _b; - if (assign && assign in options.referenceRecord) { - throw new EndpointError(`'${assign}' is already defined in Reference Record.`); - } - const value = callFunction(fnArgs, options); - (_b = (_a = options.logger) == null ? void 0 : _a.debug) == null ? void 0 : _b.call(_a, `${debugId} evaluateCondition: ${toDebugString(fnArgs)} = ${toDebugString(value)}`); - return { - result: value === "" ? true : !!value, - ...assign != null && { toAssign: { name: assign, value } } - }; -}, "evaluateCondition"); - -// src/utils/evaluateConditions.ts -var evaluateConditions = /* @__PURE__ */ __name((conditions = [], options) => { - var _a, _b; - const conditionsReferenceRecord = {}; - for (const condition of conditions) { - const { result, toAssign } = evaluateCondition(condition, { - ...options, - referenceRecord: { - ...options.referenceRecord, - ...conditionsReferenceRecord - } - }); - if (!result) { - return { result }; - } - if (toAssign) { - conditionsReferenceRecord[toAssign.name] = toAssign.value; - (_b = (_a = options.logger) == null ? void 0 : _a.debug) == null ? void 0 : _b.call(_a, `${debugId} assign: ${toAssign.name} := ${toDebugString(toAssign.value)}`); - } - } - return { result: true, referenceRecord: conditionsReferenceRecord }; -}, "evaluateConditions"); - -// src/utils/getEndpointHeaders.ts -var getEndpointHeaders = /* @__PURE__ */ __name((headers, options) => Object.entries(headers).reduce( - (acc, [headerKey, headerVal]) => ({ - ...acc, - [headerKey]: headerVal.map((headerValEntry) => { - const processedExpr = evaluateExpression(headerValEntry, "Header value entry", options); - if (typeof processedExpr !== "string") { - throw new EndpointError(`Header '${headerKey}' value '${processedExpr}' is not a string`); - } - return processedExpr; - }) - }), - {} -), "getEndpointHeaders"); - -// src/utils/getEndpointProperty.ts -var getEndpointProperty = /* @__PURE__ */ __name((property, options) => { - if (Array.isArray(property)) { - return property.map((propertyEntry) => getEndpointProperty(propertyEntry, options)); - } - switch (typeof property) { - case "string": - return evaluateTemplate(property, options); - case "object": - if (property === null) { - throw new EndpointError(`Unexpected endpoint property: ${property}`); - } - return getEndpointProperties(property, options); - case "boolean": - return property; - default: - throw new EndpointError(`Unexpected endpoint property type: ${typeof property}`); - } -}, "getEndpointProperty"); - -// src/utils/getEndpointProperties.ts -var getEndpointProperties = /* @__PURE__ */ __name((properties, options) => Object.entries(properties).reduce( - (acc, [propertyKey, propertyVal]) => ({ - ...acc, - [propertyKey]: getEndpointProperty(propertyVal, options) - }), - {} -), "getEndpointProperties"); - -// src/utils/getEndpointUrl.ts -var getEndpointUrl = /* @__PURE__ */ __name((endpointUrl, options) => { - const expression = evaluateExpression(endpointUrl, "Endpoint URL", options); - if (typeof expression === "string") { - try { - return new URL(expression); - } catch (error) { - console.error(`Failed to construct URL with ${expression}`, error); - throw error; - } - } - throw new EndpointError(`Endpoint URL must be a string, got ${typeof expression}`); -}, "getEndpointUrl"); - -// src/utils/evaluateEndpointRule.ts -var evaluateEndpointRule = /* @__PURE__ */ __name((endpointRule, options) => { - var _a, _b; - const { conditions, endpoint } = endpointRule; - const { result, referenceRecord } = evaluateConditions(conditions, options); - if (!result) { - return; - } - const endpointRuleOptions = { - ...options, - referenceRecord: { ...options.referenceRecord, ...referenceRecord } - }; - const { url, properties, headers } = endpoint; - (_b = (_a = options.logger) == null ? void 0 : _a.debug) == null ? void 0 : _b.call(_a, `${debugId} Resolving endpoint from template: ${toDebugString(endpoint)}`); - return { - ...headers != void 0 && { - headers: getEndpointHeaders(headers, endpointRuleOptions) - }, - ...properties != void 0 && { - properties: getEndpointProperties(properties, endpointRuleOptions) - }, - url: getEndpointUrl(url, endpointRuleOptions) - }; -}, "evaluateEndpointRule"); - -// src/utils/evaluateErrorRule.ts -var evaluateErrorRule = /* @__PURE__ */ __name((errorRule, options) => { - const { conditions, error } = errorRule; - const { result, referenceRecord } = evaluateConditions(conditions, options); - if (!result) { - return; - } - throw new EndpointError( - evaluateExpression(error, "Error", { - ...options, - referenceRecord: { ...options.referenceRecord, ...referenceRecord } - }) - ); -}, "evaluateErrorRule"); - -// src/utils/evaluateTreeRule.ts -var evaluateTreeRule = /* @__PURE__ */ __name((treeRule, options) => { - const { conditions, rules } = treeRule; - const { result, referenceRecord } = evaluateConditions(conditions, options); - if (!result) { - return; - } - return evaluateRules(rules, { - ...options, - referenceRecord: { ...options.referenceRecord, ...referenceRecord } - }); -}, "evaluateTreeRule"); - -// src/utils/evaluateRules.ts -var evaluateRules = /* @__PURE__ */ __name((rules, options) => { - for (const rule of rules) { - if (rule.type === "endpoint") { - const endpointOrUndefined = evaluateEndpointRule(rule, options); - if (endpointOrUndefined) { - return endpointOrUndefined; - } - } else if (rule.type === "error") { - evaluateErrorRule(rule, options); - } else if (rule.type === "tree") { - const endpointOrUndefined = evaluateTreeRule(rule, options); - if (endpointOrUndefined) { - return endpointOrUndefined; - } - } else { - throw new EndpointError(`Unknown endpoint rule: ${rule}`); - } - } - throw new EndpointError(`Rules evaluation failed`); -}, "evaluateRules"); - -// src/resolveEndpoint.ts -var resolveEndpoint = /* @__PURE__ */ __name((ruleSetObject, options) => { - var _a, _b, _c, _d; - const { endpointParams, logger } = options; - const { parameters, rules } = ruleSetObject; - (_b = (_a = options.logger) == null ? void 0 : _a.debug) == null ? void 0 : _b.call(_a, `${debugId} Initial EndpointParams: ${toDebugString(endpointParams)}`); - const paramsWithDefault = Object.entries(parameters).filter(([, v]) => v.default != null).map(([k, v]) => [k, v.default]); - if (paramsWithDefault.length > 0) { - for (const [paramKey, paramDefaultValue] of paramsWithDefault) { - endpointParams[paramKey] = endpointParams[paramKey] ?? paramDefaultValue; - } - } - const requiredParams = Object.entries(parameters).filter(([, v]) => v.required).map(([k]) => k); - for (const requiredParam of requiredParams) { - if (endpointParams[requiredParam] == null) { - throw new EndpointError(`Missing required parameter: '${requiredParam}'`); - } - } - const endpoint = evaluateRules(rules, { endpointParams, logger, referenceRecord: {} }); - (_d = (_c = options.logger) == null ? void 0 : _c.debug) == null ? void 0 : _d.call(_c, `${debugId} Resolved endpoint: ${toDebugString(endpoint)}`); - return endpoint; -}, "resolveEndpoint"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 45364: -/***/ ((module) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - fromHex: () => fromHex, - toHex: () => toHex -}); -module.exports = __toCommonJS(src_exports); -var SHORT_TO_HEX = {}; -var HEX_TO_SHORT = {}; -for (let i = 0; i < 256; i++) { - let encodedByte = i.toString(16).toLowerCase(); - if (encodedByte.length === 1) { - encodedByte = `0${encodedByte}`; - } - SHORT_TO_HEX[i] = encodedByte; - HEX_TO_SHORT[encodedByte] = i; -} -function fromHex(encoded) { - if (encoded.length % 2 !== 0) { - throw new Error("Hex encoded strings must have an even number length"); - } - const out = new Uint8Array(encoded.length / 2); - for (let i = 0; i < encoded.length; i += 2) { - const encodedByte = encoded.slice(i, i + 2).toLowerCase(); - if (encodedByte in HEX_TO_SHORT) { - out[i / 2] = HEX_TO_SHORT[encodedByte]; - } else { - throw new Error(`Cannot decode unrecognized sequence ${encodedByte} as hexadecimal`); - } - } - return out; -} -__name(fromHex, "fromHex"); -function toHex(bytes) { - let out = ""; - for (let i = 0; i < bytes.byteLength; i++) { - out += SHORT_TO_HEX[bytes[i]]; - } - return out; -} -__name(toHex, "toHex"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 2390: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - getSmithyContext: () => getSmithyContext, - normalizeProvider: () => normalizeProvider -}); -module.exports = __toCommonJS(src_exports); - -// src/getSmithyContext.ts -var import_types = __nccwpck_require__(55756); -var getSmithyContext = /* @__PURE__ */ __name((context) => context[import_types.SMITHY_CONTEXT_KEY] || (context[import_types.SMITHY_CONTEXT_KEY] = {}), "getSmithyContext"); - -// src/normalizeProvider.ts -var normalizeProvider = /* @__PURE__ */ __name((input) => { - if (typeof input === "function") - return input; - const promisified = Promise.resolve(input); - return () => promisified; -}, "normalizeProvider"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 84902: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - AdaptiveRetryStrategy: () => AdaptiveRetryStrategy, - ConfiguredRetryStrategy: () => ConfiguredRetryStrategy, - DEFAULT_MAX_ATTEMPTS: () => DEFAULT_MAX_ATTEMPTS, - DEFAULT_RETRY_DELAY_BASE: () => DEFAULT_RETRY_DELAY_BASE, - DEFAULT_RETRY_MODE: () => DEFAULT_RETRY_MODE, - DefaultRateLimiter: () => DefaultRateLimiter, - INITIAL_RETRY_TOKENS: () => INITIAL_RETRY_TOKENS, - INVOCATION_ID_HEADER: () => INVOCATION_ID_HEADER, - MAXIMUM_RETRY_DELAY: () => MAXIMUM_RETRY_DELAY, - NO_RETRY_INCREMENT: () => NO_RETRY_INCREMENT, - REQUEST_HEADER: () => REQUEST_HEADER, - RETRY_COST: () => RETRY_COST, - RETRY_MODES: () => RETRY_MODES, - StandardRetryStrategy: () => StandardRetryStrategy, - THROTTLING_RETRY_DELAY_BASE: () => THROTTLING_RETRY_DELAY_BASE, - TIMEOUT_RETRY_COST: () => TIMEOUT_RETRY_COST -}); -module.exports = __toCommonJS(src_exports); - -// src/config.ts -var RETRY_MODES = /* @__PURE__ */ ((RETRY_MODES2) => { - RETRY_MODES2["STANDARD"] = "standard"; - RETRY_MODES2["ADAPTIVE"] = "adaptive"; - return RETRY_MODES2; -})(RETRY_MODES || {}); -var DEFAULT_MAX_ATTEMPTS = 3; -var DEFAULT_RETRY_MODE = "standard" /* STANDARD */; - -// src/DefaultRateLimiter.ts -var import_service_error_classification = __nccwpck_require__(6375); -var _DefaultRateLimiter = class _DefaultRateLimiter { - constructor(options) { - // Pre-set state variables - this.currentCapacity = 0; - this.enabled = false; - this.lastMaxRate = 0; - this.measuredTxRate = 0; - this.requestCount = 0; - this.lastTimestamp = 0; - this.timeWindow = 0; - this.beta = (options == null ? void 0 : options.beta) ?? 0.7; - this.minCapacity = (options == null ? void 0 : options.minCapacity) ?? 1; - this.minFillRate = (options == null ? void 0 : options.minFillRate) ?? 0.5; - this.scaleConstant = (options == null ? void 0 : options.scaleConstant) ?? 0.4; - this.smooth = (options == null ? void 0 : options.smooth) ?? 0.8; - const currentTimeInSeconds = this.getCurrentTimeInSeconds(); - this.lastThrottleTime = currentTimeInSeconds; - this.lastTxRateBucket = Math.floor(this.getCurrentTimeInSeconds()); - this.fillRate = this.minFillRate; - this.maxCapacity = this.minCapacity; - } - getCurrentTimeInSeconds() { - return Date.now() / 1e3; - } - async getSendToken() { - return this.acquireTokenBucket(1); - } - async acquireTokenBucket(amount) { - if (!this.enabled) { - return; - } - this.refillTokenBucket(); - if (amount > this.currentCapacity) { - const delay = (amount - this.currentCapacity) / this.fillRate * 1e3; - await new Promise((resolve) => setTimeout(resolve, delay)); - } - this.currentCapacity = this.currentCapacity - amount; - } - refillTokenBucket() { - const timestamp = this.getCurrentTimeInSeconds(); - if (!this.lastTimestamp) { - this.lastTimestamp = timestamp; - return; - } - const fillAmount = (timestamp - this.lastTimestamp) * this.fillRate; - this.currentCapacity = Math.min(this.maxCapacity, this.currentCapacity + fillAmount); - this.lastTimestamp = timestamp; - } - updateClientSendingRate(response) { - let calculatedRate; - this.updateMeasuredRate(); - if ((0, import_service_error_classification.isThrottlingError)(response)) { - const rateToUse = !this.enabled ? this.measuredTxRate : Math.min(this.measuredTxRate, this.fillRate); - this.lastMaxRate = rateToUse; - this.calculateTimeWindow(); - this.lastThrottleTime = this.getCurrentTimeInSeconds(); - calculatedRate = this.cubicThrottle(rateToUse); - this.enableTokenBucket(); - } else { - this.calculateTimeWindow(); - calculatedRate = this.cubicSuccess(this.getCurrentTimeInSeconds()); - } - const newRate = Math.min(calculatedRate, 2 * this.measuredTxRate); - this.updateTokenBucketRate(newRate); - } - calculateTimeWindow() { - this.timeWindow = this.getPrecise(Math.pow(this.lastMaxRate * (1 - this.beta) / this.scaleConstant, 1 / 3)); - } - cubicThrottle(rateToUse) { - return this.getPrecise(rateToUse * this.beta); - } - cubicSuccess(timestamp) { - return this.getPrecise( - this.scaleConstant * Math.pow(timestamp - this.lastThrottleTime - this.timeWindow, 3) + this.lastMaxRate - ); - } - enableTokenBucket() { - this.enabled = true; - } - updateTokenBucketRate(newRate) { - this.refillTokenBucket(); - this.fillRate = Math.max(newRate, this.minFillRate); - this.maxCapacity = Math.max(newRate, this.minCapacity); - this.currentCapacity = Math.min(this.currentCapacity, this.maxCapacity); - } - updateMeasuredRate() { - const t = this.getCurrentTimeInSeconds(); - const timeBucket = Math.floor(t * 2) / 2; - this.requestCount++; - if (timeBucket > this.lastTxRateBucket) { - const currentRate = this.requestCount / (timeBucket - this.lastTxRateBucket); - this.measuredTxRate = this.getPrecise(currentRate * this.smooth + this.measuredTxRate * (1 - this.smooth)); - this.requestCount = 0; - this.lastTxRateBucket = timeBucket; - } - } - getPrecise(num) { - return parseFloat(num.toFixed(8)); - } -}; -__name(_DefaultRateLimiter, "DefaultRateLimiter"); -var DefaultRateLimiter = _DefaultRateLimiter; - -// src/constants.ts -var DEFAULT_RETRY_DELAY_BASE = 100; -var MAXIMUM_RETRY_DELAY = 20 * 1e3; -var THROTTLING_RETRY_DELAY_BASE = 500; -var INITIAL_RETRY_TOKENS = 500; -var RETRY_COST = 5; -var TIMEOUT_RETRY_COST = 10; -var NO_RETRY_INCREMENT = 1; -var INVOCATION_ID_HEADER = "amz-sdk-invocation-id"; -var REQUEST_HEADER = "amz-sdk-request"; - -// src/defaultRetryBackoffStrategy.ts -var getDefaultRetryBackoffStrategy = /* @__PURE__ */ __name(() => { - let delayBase = DEFAULT_RETRY_DELAY_BASE; - const computeNextBackoffDelay = /* @__PURE__ */ __name((attempts) => { - return Math.floor(Math.min(MAXIMUM_RETRY_DELAY, Math.random() * 2 ** attempts * delayBase)); - }, "computeNextBackoffDelay"); - const setDelayBase = /* @__PURE__ */ __name((delay) => { - delayBase = delay; - }, "setDelayBase"); - return { - computeNextBackoffDelay, - setDelayBase - }; -}, "getDefaultRetryBackoffStrategy"); - -// src/defaultRetryToken.ts -var createDefaultRetryToken = /* @__PURE__ */ __name(({ - retryDelay, - retryCount, - retryCost -}) => { - const getRetryCount = /* @__PURE__ */ __name(() => retryCount, "getRetryCount"); - const getRetryDelay = /* @__PURE__ */ __name(() => Math.min(MAXIMUM_RETRY_DELAY, retryDelay), "getRetryDelay"); - const getRetryCost = /* @__PURE__ */ __name(() => retryCost, "getRetryCost"); - return { - getRetryCount, - getRetryDelay, - getRetryCost - }; -}, "createDefaultRetryToken"); - -// src/StandardRetryStrategy.ts -var _StandardRetryStrategy = class _StandardRetryStrategy { - constructor(maxAttempts) { - this.maxAttempts = maxAttempts; - this.mode = "standard" /* STANDARD */; - this.capacity = INITIAL_RETRY_TOKENS; - this.retryBackoffStrategy = getDefaultRetryBackoffStrategy(); - this.maxAttemptsProvider = typeof maxAttempts === "function" ? maxAttempts : async () => maxAttempts; - } - // eslint-disable-next-line @typescript-eslint/no-unused-vars - async acquireInitialRetryToken(retryTokenScope) { - return createDefaultRetryToken({ - retryDelay: DEFAULT_RETRY_DELAY_BASE, - retryCount: 0 - }); - } - async refreshRetryTokenForRetry(token, errorInfo) { - const maxAttempts = await this.getMaxAttempts(); - if (this.shouldRetry(token, errorInfo, maxAttempts)) { - const errorType = errorInfo.errorType; - this.retryBackoffStrategy.setDelayBase( - errorType === "THROTTLING" ? THROTTLING_RETRY_DELAY_BASE : DEFAULT_RETRY_DELAY_BASE - ); - const delayFromErrorType = this.retryBackoffStrategy.computeNextBackoffDelay(token.getRetryCount()); - const retryDelay = errorInfo.retryAfterHint ? Math.max(errorInfo.retryAfterHint.getTime() - Date.now() || 0, delayFromErrorType) : delayFromErrorType; - const capacityCost = this.getCapacityCost(errorType); - this.capacity -= capacityCost; - return createDefaultRetryToken({ - retryDelay, - retryCount: token.getRetryCount() + 1, - retryCost: capacityCost - }); - } - throw new Error("No retry token available"); - } - recordSuccess(token) { - this.capacity = Math.max(INITIAL_RETRY_TOKENS, this.capacity + (token.getRetryCost() ?? NO_RETRY_INCREMENT)); - } - /** - * @returns the current available retry capacity. - * - * This number decreases when retries are executed and refills when requests or retries succeed. - */ - getCapacity() { - return this.capacity; - } - async getMaxAttempts() { - try { - return await this.maxAttemptsProvider(); - } catch (error) { - console.warn(`Max attempts provider could not resolve. Using default of ${DEFAULT_MAX_ATTEMPTS}`); - return DEFAULT_MAX_ATTEMPTS; - } - } - shouldRetry(tokenToRenew, errorInfo, maxAttempts) { - const attempts = tokenToRenew.getRetryCount() + 1; - return attempts < maxAttempts && this.capacity >= this.getCapacityCost(errorInfo.errorType) && this.isRetryableError(errorInfo.errorType); - } - getCapacityCost(errorType) { - return errorType === "TRANSIENT" ? TIMEOUT_RETRY_COST : RETRY_COST; - } - isRetryableError(errorType) { - return errorType === "THROTTLING" || errorType === "TRANSIENT"; - } -}; -__name(_StandardRetryStrategy, "StandardRetryStrategy"); -var StandardRetryStrategy = _StandardRetryStrategy; - -// src/AdaptiveRetryStrategy.ts -var _AdaptiveRetryStrategy = class _AdaptiveRetryStrategy { - constructor(maxAttemptsProvider, options) { - this.maxAttemptsProvider = maxAttemptsProvider; - this.mode = "adaptive" /* ADAPTIVE */; - const { rateLimiter } = options ?? {}; - this.rateLimiter = rateLimiter ?? new DefaultRateLimiter(); - this.standardRetryStrategy = new StandardRetryStrategy(maxAttemptsProvider); - } - async acquireInitialRetryToken(retryTokenScope) { - await this.rateLimiter.getSendToken(); - return this.standardRetryStrategy.acquireInitialRetryToken(retryTokenScope); - } - async refreshRetryTokenForRetry(tokenToRenew, errorInfo) { - this.rateLimiter.updateClientSendingRate(errorInfo); - return this.standardRetryStrategy.refreshRetryTokenForRetry(tokenToRenew, errorInfo); - } - recordSuccess(token) { - this.rateLimiter.updateClientSendingRate({}); - this.standardRetryStrategy.recordSuccess(token); - } -}; -__name(_AdaptiveRetryStrategy, "AdaptiveRetryStrategy"); -var AdaptiveRetryStrategy = _AdaptiveRetryStrategy; - -// src/ConfiguredRetryStrategy.ts -var _ConfiguredRetryStrategy = class _ConfiguredRetryStrategy extends StandardRetryStrategy { - /** - * @param maxAttempts - the maximum number of retry attempts allowed. - * e.g., if set to 3, then 4 total requests are possible. - * @param computeNextBackoffDelay - a millisecond delay for each retry or a function that takes the retry attempt - * and returns the delay. - * - * @example exponential backoff. - * ```js - * new Client({ - * retryStrategy: new ConfiguredRetryStrategy(3, (attempt) => attempt ** 2) - * }); - * ``` - * @example constant delay. - * ```js - * new Client({ - * retryStrategy: new ConfiguredRetryStrategy(3, 2000) - * }); - * ``` - */ - constructor(maxAttempts, computeNextBackoffDelay = DEFAULT_RETRY_DELAY_BASE) { - super(typeof maxAttempts === "function" ? maxAttempts : async () => maxAttempts); - if (typeof computeNextBackoffDelay === "number") { - this.computeNextBackoffDelay = () => computeNextBackoffDelay; - } else { - this.computeNextBackoffDelay = computeNextBackoffDelay; - } - } - async refreshRetryTokenForRetry(tokenToRenew, errorInfo) { - const token = await super.refreshRetryTokenForRetry(tokenToRenew, errorInfo); - token.getRetryDelay = () => this.computeNextBackoffDelay(token.getRetryCount()); - return token; - } -}; -__name(_ConfiguredRetryStrategy, "ConfiguredRetryStrategy"); -var ConfiguredRetryStrategy = _ConfiguredRetryStrategy; -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 23636: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getAwsChunkedEncodingStream = void 0; -const stream_1 = __nccwpck_require__(12781); -const getAwsChunkedEncodingStream = (readableStream, options) => { - const { base64Encoder, bodyLengthChecker, checksumAlgorithmFn, checksumLocationName, streamHasher } = options; - const checksumRequired = base64Encoder !== undefined && - checksumAlgorithmFn !== undefined && - checksumLocationName !== undefined && - streamHasher !== undefined; - const digest = checksumRequired ? streamHasher(checksumAlgorithmFn, readableStream) : undefined; - const awsChunkedEncodingStream = new stream_1.Readable({ read: () => { } }); - readableStream.on("data", (data) => { - const length = bodyLengthChecker(data) || 0; - awsChunkedEncodingStream.push(`${length.toString(16)}\r\n`); - awsChunkedEncodingStream.push(data); - awsChunkedEncodingStream.push("\r\n"); - }); - readableStream.on("end", async () => { - awsChunkedEncodingStream.push(`0\r\n`); - if (checksumRequired) { - const checksum = base64Encoder(await digest); - awsChunkedEncodingStream.push(`${checksumLocationName}:${checksum}\r\n`); - awsChunkedEncodingStream.push(`\r\n`); - } - awsChunkedEncodingStream.push(null); - }); - return awsChunkedEncodingStream; -}; -exports.getAwsChunkedEncodingStream = getAwsChunkedEncodingStream; - - -/***/ }), - -/***/ 56711: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.headStream = void 0; -async function headStream(stream, bytes) { - var _a; - let byteLengthCounter = 0; - const chunks = []; - const reader = stream.getReader(); - let isDone = false; - while (!isDone) { - const { done, value } = await reader.read(); - if (value) { - chunks.push(value); - byteLengthCounter += (_a = value === null || value === void 0 ? void 0 : value.byteLength) !== null && _a !== void 0 ? _a : 0; - } - if (byteLengthCounter >= bytes) { - break; - } - isDone = done; - } - reader.releaseLock(); - const collected = new Uint8Array(Math.min(bytes, byteLengthCounter)); - let offset = 0; - for (const chunk of chunks) { - if (chunk.byteLength > collected.byteLength - offset) { - collected.set(chunk.subarray(0, collected.byteLength - offset), offset); - break; - } - else { - collected.set(chunk, offset); - } - offset += chunk.length; - } - return collected; -} -exports.headStream = headStream; + // src/toUtf8.ts + var toUtf8 = /* @__PURE__ */ __name(input => { + if (typeof input === 'string') { + return input + } + if ( + typeof input !== 'object' || + typeof input.byteOffset !== 'number' || + typeof input.byteLength !== 'number' + ) { + throw new Error( + '@smithy/util-utf8: toUtf8 encoder function only accepts string | Uint8Array.' + ) + } + return (0, import_util_buffer_from.fromArrayBuffer)( + input.buffer, + input.byteOffset, + input.byteLength + ).toString('utf8') + }, 'toUtf8') + // Annotate the CommonJS export names for ESM import in node: -/***/ }), + 0 && 0 -/***/ 6708: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + /***/ + }, -"use strict"; + /***/ 78011: /***/ module => { + var __defProp = Object.defineProperty + var __getOwnPropDesc = Object.getOwnPropertyDescriptor + var __getOwnPropNames = Object.getOwnPropertyNames + var __hasOwnProp = Object.prototype.hasOwnProperty + var __name = (target, value) => + __defProp(target, 'name', { value, configurable: true }) + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }) + } + var __copyProps = (to, from, except, desc) => { + if ((from && typeof from === 'object') || typeof from === 'function') { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: + !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }) + } + return to + } + var __toCommonJS = mod => + __copyProps(__defProp({}, '__esModule', { value: true }), mod) -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.headStream = void 0; -const stream_1 = __nccwpck_require__(12781); -const headStream_browser_1 = __nccwpck_require__(56711); -const stream_type_check_1 = __nccwpck_require__(57578); -const headStream = (stream, bytes) => { - if ((0, stream_type_check_1.isReadableStream)(stream)) { - return (0, headStream_browser_1.headStream)(stream, bytes); - } - return new Promise((resolve, reject) => { - const collector = new Collector(); - collector.limit = bytes; - stream.pipe(collector); - stream.on("error", (err) => { - collector.end(); - reject(err); - }); - collector.on("error", reject); - collector.on("finish", function () { - const bytes = new Uint8Array(Buffer.concat(this.buffers)); - resolve(bytes); - }); - }); -}; -exports.headStream = headStream; -class Collector extends stream_1.Writable { - constructor() { - super(...arguments); - this.buffers = []; - this.limit = Infinity; - this.bytesBuffered = 0; - } - _write(chunk, encoding, callback) { - var _a; - this.buffers.push(chunk); - this.bytesBuffered += (_a = chunk.byteLength) !== null && _a !== void 0 ? _a : 0; - if (this.bytesBuffered >= this.limit) { - const excess = this.bytesBuffered - this.limit; - const tailBuffer = this.buffers[this.buffers.length - 1]; - this.buffers[this.buffers.length - 1] = tailBuffer.subarray(0, tailBuffer.byteLength - excess); - this.emit("finish"); - } - callback(); - } -} - - -/***/ }), - -/***/ 96607: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - Uint8ArrayBlobAdapter: () => Uint8ArrayBlobAdapter -}); -module.exports = __toCommonJS(src_exports); - -// src/blob/transforms.ts -var import_util_base64 = __nccwpck_require__(75600); -var import_util_utf8 = __nccwpck_require__(41895); -function transformToString(payload, encoding = "utf-8") { - if (encoding === "base64") { - return (0, import_util_base64.toBase64)(payload); - } - return (0, import_util_utf8.toUtf8)(payload); -} -__name(transformToString, "transformToString"); -function transformFromString(str, encoding) { - if (encoding === "base64") { - return Uint8ArrayBlobAdapter.mutate((0, import_util_base64.fromBase64)(str)); - } - return Uint8ArrayBlobAdapter.mutate((0, import_util_utf8.fromUtf8)(str)); -} -__name(transformFromString, "transformFromString"); - -// src/blob/Uint8ArrayBlobAdapter.ts -var _Uint8ArrayBlobAdapter = class _Uint8ArrayBlobAdapter extends Uint8Array { - /** - * @param source - such as a string or Stream. - * @returns a new Uint8ArrayBlobAdapter extending Uint8Array. - */ - static fromString(source, encoding = "utf-8") { - switch (typeof source) { - case "string": - return transformFromString(source, encoding); - default: - throw new Error(`Unsupported conversion from ${typeof source} to Uint8ArrayBlobAdapter.`); - } - } - /** - * @param source - Uint8Array to be mutated. - * @returns the same Uint8Array but with prototype switched to Uint8ArrayBlobAdapter. - */ - static mutate(source) { - Object.setPrototypeOf(source, _Uint8ArrayBlobAdapter.prototype); - return source; - } - /** - * @param encoding - default 'utf-8'. - * @returns the blob as string. - */ - transformToString(encoding = "utf-8") { - return transformToString(this, encoding); - } -}; -__name(_Uint8ArrayBlobAdapter, "Uint8ArrayBlobAdapter"); -var Uint8ArrayBlobAdapter = _Uint8ArrayBlobAdapter; - -// src/index.ts -__reExport(src_exports, __nccwpck_require__(23636), module.exports); -__reExport(src_exports, __nccwpck_require__(4515), module.exports); -__reExport(src_exports, __nccwpck_require__(88321), module.exports); -__reExport(src_exports, __nccwpck_require__(6708), module.exports); -__reExport(src_exports, __nccwpck_require__(57578), module.exports); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 12942: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.sdkStreamMixin = void 0; -const fetch_http_handler_1 = __nccwpck_require__(82687); -const util_base64_1 = __nccwpck_require__(75600); -const util_hex_encoding_1 = __nccwpck_require__(45364); -const util_utf8_1 = __nccwpck_require__(41895); -const stream_type_check_1 = __nccwpck_require__(57578); -const ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED = "The stream has already been transformed."; -const sdkStreamMixin = (stream) => { - var _a, _b; - if (!isBlobInstance(stream) && !(0, stream_type_check_1.isReadableStream)(stream)) { - 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; - throw new Error(`Unexpected stream implementation, expect Blob or ReadableStream, got ${name}`); - } - let transformed = false; - const transformToByteArray = async () => { - if (transformed) { - throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED); - } - transformed = true; - return await (0, fetch_http_handler_1.streamCollector)(stream); - }; - const blobToWebStream = (blob) => { - if (typeof blob.stream !== "function") { - throw new Error("Cannot transform payload Blob to web stream. Please make sure the Blob.stream() is polyfilled.\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"); - } - return blob.stream(); - }; - return Object.assign(stream, { - transformToByteArray: transformToByteArray, - transformToString: async (encoding) => { - const buf = await transformToByteArray(); - if (encoding === "base64") { - return (0, util_base64_1.toBase64)(buf); - } - else if (encoding === "hex") { - return (0, util_hex_encoding_1.toHex)(buf); - } - else if (encoding === undefined || encoding === "utf8" || encoding === "utf-8") { - return (0, util_utf8_1.toUtf8)(buf); - } - else if (typeof TextDecoder === "function") { - return new TextDecoder(encoding).decode(buf); - } - else { - throw new Error("TextDecoder is not available, please make sure polyfill is provided."); - } + // src/index.ts + var src_exports = {} + __export(src_exports, { + WaiterState: () => WaiterState, + checkExceptions: () => checkExceptions, + createWaiter: () => createWaiter, + waiterServiceDefaults: () => waiterServiceDefaults + }) + module.exports = __toCommonJS(src_exports) + + // src/utils/sleep.ts + var sleep = /* @__PURE__ */ __name(seconds => { + return new Promise(resolve => setTimeout(resolve, seconds * 1e3)) + }, 'sleep') + + // src/waiter.ts + var waiterServiceDefaults = { + minDelay: 2, + maxDelay: 120 + } + var WaiterState = /* @__PURE__ */ (WaiterState2 => { + WaiterState2['ABORTED'] = 'ABORTED' + WaiterState2['FAILURE'] = 'FAILURE' + WaiterState2['SUCCESS'] = 'SUCCESS' + WaiterState2['RETRY'] = 'RETRY' + WaiterState2['TIMEOUT'] = 'TIMEOUT' + return WaiterState2 + })(WaiterState || {}) + var checkExceptions = /* @__PURE__ */ __name(result => { + if (result.state === 'ABORTED' /* ABORTED */) { + const abortError = new Error( + `${JSON.stringify({ + ...result, + reason: 'Request was aborted' + })}` + ) + abortError.name = 'AbortError' + throw abortError + } else if (result.state === 'TIMEOUT' /* TIMEOUT */) { + const timeoutError = new Error( + `${JSON.stringify({ + ...result, + reason: 'Waiter has timed out' + })}` + ) + timeoutError.name = 'TimeoutError' + throw timeoutError + } else if (result.state !== 'SUCCESS' /* SUCCESS */) { + throw new Error(`${JSON.stringify(result)}`) + } + return result + }, 'checkExceptions') + + // src/poller.ts + var exponentialBackoffWithJitter = /* @__PURE__ */ __name( + (minDelay, maxDelay, attemptCeiling, attempt) => { + if (attempt > attemptCeiling) return maxDelay + const delay = minDelay * 2 ** (attempt - 1) + return randomInRange(minDelay, delay) }, - transformToWebStream: () => { - if (transformed) { - throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED); - } - transformed = true; - if (isBlobInstance(stream)) { - return blobToWebStream(stream); + 'exponentialBackoffWithJitter' + ) + var randomInRange = /* @__PURE__ */ __name( + (min, max) => min + Math.random() * (max - min), + 'randomInRange' + ) + var runPolling = /* @__PURE__ */ __name( + async ( + { + minDelay, + maxDelay, + maxWaitTime, + abortController, + client, + abortSignal + }, + input, + acceptorChecks + ) => { + var _a + const { state, reason } = await acceptorChecks(client, input) + if (state !== 'RETRY' /* RETRY */) { + return { state, reason } + } + let currentAttempt = 1 + const waitUntil = Date.now() + maxWaitTime * 1e3 + const attemptCeiling = Math.log(maxDelay / minDelay) / Math.log(2) + 1 + while (true) { + if ( + ((_a = + abortController == null ? void 0 : abortController.signal) == + null + ? void 0 + : _a.aborted) || + (abortSignal == null ? void 0 : abortSignal.aborted) + ) { + return { state: 'ABORTED' /* ABORTED */ } } - else if ((0, stream_type_check_1.isReadableStream)(stream)) { - return stream; + const delay = exponentialBackoffWithJitter( + minDelay, + maxDelay, + attemptCeiling, + currentAttempt + ) + if (Date.now() + delay * 1e3 > waitUntil) { + return { state: 'TIMEOUT' /* TIMEOUT */ } } - else { - throw new Error(`Cannot transform payload to web stream, got ${stream}`); + await sleep(delay) + const { state: state2, reason: reason2 } = await acceptorChecks( + client, + input + ) + if (state2 !== 'RETRY' /* RETRY */) { + return { state: state2, reason: reason2 } } + currentAttempt += 1 + } }, - }); -}; -exports.sdkStreamMixin = sdkStreamMixin; -const isBlobInstance = (stream) => typeof Blob === "function" && stream instanceof Blob; + 'runPolling' + ) + // src/utils/validate.ts + var validateWaiterOptions = /* @__PURE__ */ __name(options => { + if (options.maxWaitTime < 1) { + throw new Error( + `WaiterConfiguration.maxWaitTime must be greater than 0` + ) + } else if (options.minDelay < 1) { + throw new Error(`WaiterConfiguration.minDelay must be greater than 0`) + } else if (options.maxDelay < 1) { + throw new Error(`WaiterConfiguration.maxDelay must be greater than 0`) + } else if (options.maxWaitTime <= options.minDelay) { + throw new Error( + `WaiterConfiguration.maxWaitTime [${options.maxWaitTime}] must be greater than WaiterConfiguration.minDelay [${options.minDelay}] for this waiter` + ) + } else if (options.maxDelay < options.minDelay) { + throw new Error( + `WaiterConfiguration.maxDelay [${options.maxDelay}] must be greater than WaiterConfiguration.minDelay [${options.minDelay}] for this waiter` + ) + } + }, 'validateWaiterOptions') -/***/ }), + // src/createWaiter.ts + var abortTimeout = /* @__PURE__ */ __name(async abortSignal => { + return new Promise(resolve => { + const onAbort = /* @__PURE__ */ __name( + () => resolve({ state: 'ABORTED' /* ABORTED */ }), + 'onAbort' + ) + if (typeof abortSignal.addEventListener === 'function') { + abortSignal.addEventListener('abort', onAbort) + } else { + abortSignal.onabort = onAbort + } + }) + }, 'abortTimeout') + var createWaiter = /* @__PURE__ */ __name( + async (options, input, acceptorChecks) => { + const params = { + ...waiterServiceDefaults, + ...options + } + validateWaiterOptions(params) + const exitConditions = [runPolling(params, input, acceptorChecks)] + if (options.abortController) { + exitConditions.push(abortTimeout(options.abortController.signal)) + } + if (options.abortSignal) { + exitConditions.push(abortTimeout(options.abortSignal)) + } + return Promise.race(exitConditions) + }, + 'createWaiter' + ) + // Annotate the CommonJS export names for ESM import in node: -/***/ 4515: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + 0 && 0 -"use strict"; + /***/ + }, -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.sdkStreamMixin = void 0; -const node_http_handler_1 = __nccwpck_require__(6123); -const util_buffer_from_1 = __nccwpck_require__(31381); -const stream_1 = __nccwpck_require__(12781); -const util_1 = __nccwpck_require__(73837); -const sdk_stream_mixin_browser_1 = __nccwpck_require__(12942); -const ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED = "The stream has already been transformed."; -const sdkStreamMixin = (stream) => { - var _a, _b; - if (!(stream instanceof stream_1.Readable)) { - try { - return (0, sdk_stream_mixin_browser_1.sdkStreamMixin)(stream); - } - catch (e) { - 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; - throw new Error(`Unexpected stream implementation, expect Stream.Readable instance, got ${name}`); - } - } - let transformed = false; - const transformToByteArray = async () => { - if (transformed) { - throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED); - } - transformed = true; - return await (0, node_http_handler_1.streamCollector)(stream); - }; - return Object.assign(stream, { - transformToByteArray, - transformToString: async (encoding) => { - const buf = await transformToByteArray(); - if (encoding === undefined || Buffer.isEncoding(encoding)) { - return (0, util_buffer_from_1.fromArrayBuffer)(buf.buffer, buf.byteOffset, buf.byteLength).toString(encoding); + /***/ 49690: /***/ function ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) { + 'use strict' + + var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod } + } + const events_1 = __nccwpck_require__(82361) + const debug_1 = __importDefault(__nccwpck_require__(38237)) + const promisify_1 = __importDefault(__nccwpck_require__(66570)) + const debug = debug_1.default('agent-base') + function isAgent(v) { + return Boolean(v) && typeof v.addRequest === 'function' + } + function isSecureEndpoint() { + const { stack } = new Error() + if (typeof stack !== 'string') return false + return stack + .split('\n') + .some( + l => + l.indexOf('(https.js:') !== -1 || l.indexOf('node:https:') !== -1 + ) + } + function createAgent(callback, opts) { + return new createAgent.Agent(callback, opts) + } + ;(function (createAgent) { + /** + * Base `http.Agent` implementation. + * No pooling/keep-alive is implemented by default. + * + * @param {Function} callback + * @api public + */ + class Agent extends events_1.EventEmitter { + constructor(callback, _opts) { + super() + let opts = _opts + if (typeof callback === 'function') { + this.callback = callback + } else if (callback) { + opts = callback } - else { - const decoder = new util_1.TextDecoder(encoding); - return decoder.decode(buf); + // Timeout for the socket to be returned from the callback + this.timeout = null + if (opts && typeof opts.timeout === 'number') { + this.timeout = opts.timeout } - }, - transformToWebStream: () => { - if (transformed) { - throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED); + // These aren't actually used by `agent-base`, but are required + // for the TypeScript definition files in `@types/node` :/ + this.maxFreeSockets = 1 + this.maxSockets = 1 + this.maxTotalSockets = Infinity + this.sockets = {} + this.freeSockets = {} + this.requests = {} + this.options = {} + } + get defaultPort() { + if (typeof this.explicitDefaultPort === 'number') { + return this.explicitDefaultPort } - if (stream.readableFlowing !== null) { - throw new Error("The stream has been consumed by other callbacks."); + return isSecureEndpoint() ? 443 : 80 + } + set defaultPort(v) { + this.explicitDefaultPort = v + } + get protocol() { + if (typeof this.explicitProtocol === 'string') { + return this.explicitProtocol } - if (typeof stream_1.Readable.toWeb !== "function") { - throw new Error("Readable.toWeb() is not supported. Please make sure you are using Node.js >= 17.0.0, or polyfill is available."); + return isSecureEndpoint() ? 'https:' : 'http:' + } + set protocol(v) { + this.explicitProtocol = v + } + callback(req, opts, fn) { + throw new Error( + '"agent-base" has no default implementation, you must subclass and override `callback()`' + ) + } + /** + * Called by node-core's "_http_client.js" module when creating + * a new HTTP request with this Agent instance. + * + * @api public + */ + addRequest(req, _opts) { + const opts = Object.assign({}, _opts) + if (typeof opts.secureEndpoint !== 'boolean') { + opts.secureEndpoint = isSecureEndpoint() } - transformed = true; - return stream_1.Readable.toWeb(stream); - }, - }); -}; -exports.sdkStreamMixin = sdkStreamMixin; + if (opts.host == null) { + opts.host = 'localhost' + } + if (opts.port == null) { + opts.port = opts.secureEndpoint ? 443 : 80 + } + if (opts.protocol == null) { + opts.protocol = opts.secureEndpoint ? 'https:' : 'http:' + } + if (opts.host && opts.path) { + // If both a `host` and `path` are specified then it's most + // likely the result of a `url.parse()` call... we need to + // remove the `path` portion so that `net.connect()` doesn't + // attempt to open that as a unix socket file. + delete opts.path + } + delete opts.agent + delete opts.hostname + delete opts._defaultAgent + delete opts.defaultPort + delete opts.createConnection + // Hint to use "Connection: close" + // XXX: non-documented `http` module API :( + req._last = true + req.shouldKeepAlive = false + let timedOut = false + let timeoutId = null + const timeoutMs = opts.timeout || this.timeout + const onerror = err => { + if (req._hadError) return + req.emit('error', err) + // For Safety. Some additional errors might fire later on + // and we need to make sure we don't double-fire the error event. + req._hadError = true + } + const ontimeout = () => { + timeoutId = null + timedOut = true + const err = new Error( + `A "socket" was not created for HTTP request before ${timeoutMs}ms` + ) + err.code = 'ETIMEOUT' + onerror(err) + } + const callbackError = err => { + if (timedOut) return + if (timeoutId !== null) { + clearTimeout(timeoutId) + timeoutId = null + } + onerror(err) + } + const onsocket = socket => { + if (timedOut) return + if (timeoutId != null) { + clearTimeout(timeoutId) + timeoutId = null + } + if (isAgent(socket)) { + // `socket` is actually an `http.Agent` instance, so + // relinquish responsibility for this `req` to the Agent + // from here on + debug( + 'Callback returned another Agent instance %o', + socket.constructor.name + ) + socket.addRequest(req, opts) + return + } + if (socket) { + socket.once('free', () => { + this.freeSocket(socket, opts) + }) + req.onSocket(socket) + return + } + const err = new Error( + `no Duplex stream was returned to agent-base for \`${req.method} ${req.path}\`` + ) + onerror(err) + } + if (typeof this.callback !== 'function') { + onerror(new Error('`callback` is not defined')) + return + } + if (!this.promisifiedCallback) { + if (this.callback.length >= 3) { + debug('Converting legacy callback function to promise') + this.promisifiedCallback = promisify_1.default(this.callback) + } else { + this.promisifiedCallback = this.callback + } + } + if (typeof timeoutMs === 'number' && timeoutMs > 0) { + timeoutId = setTimeout(ontimeout, timeoutMs) + } + if ('port' in opts && typeof opts.port !== 'number') { + opts.port = Number(opts.port) + } + try { + debug( + 'Resolving socket for %o request: %o', + opts.protocol, + `${req.method} ${req.path}` + ) + Promise.resolve(this.promisifiedCallback(req, opts)).then( + onsocket, + callbackError + ) + } catch (err) { + Promise.reject(err).catch(callbackError) + } + } + freeSocket(socket, opts) { + debug('Freeing socket %o %o', socket.constructor.name, opts) + socket.destroy() + } + destroy() { + debug('Destroying agent %o', this.constructor.name) + } + } + createAgent.Agent = Agent + // So that `instanceof` works correctly + createAgent.prototype = createAgent.Agent.prototype + })(createAgent || (createAgent = {})) + module.exports = createAgent + //# sourceMappingURL=index.js.map + + /***/ + }, + + /***/ 66570: /***/ (__unused_webpack_module, exports) => { + 'use strict' + Object.defineProperty(exports, '__esModule', { value: true }) + function promisify(fn) { + return function (req, opts) { + return new Promise((resolve, reject) => { + fn.call(this, req, opts, (err, rtn) => { + if (err) { + reject(err) + } else { + resolve(rtn) + } + }) + }) + } + } + exports['default'] = promisify + //# sourceMappingURL=promisify.js.map -/***/ }), + /***/ + }, -/***/ 64693: -/***/ ((__unused_webpack_module, exports) => { + /***/ 28222: /***/ (module, exports, __nccwpck_require__) => { + /* eslint-env browser */ -"use strict"; + /** + * This is the web browser implementation of `debug()`. + */ -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.splitStream = void 0; -async function splitStream(stream) { - if (typeof stream.stream === "function") { - stream = stream.stream(); - } - const readableStream = stream; - return readableStream.tee(); -} -exports.splitStream = splitStream; + exports.formatArgs = formatArgs + exports.save = save + exports.load = load + exports.useColors = useColors + exports.storage = localstorage() + exports.destroy = (() => { + let warned = false + + return () => { + if (!warned) { + warned = true + console.warn( + 'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.' + ) + } + } + })() + /** + * Colors. + */ -/***/ }), + exports.colors = [ + '#0000CC', + '#0000FF', + '#0033CC', + '#0033FF', + '#0066CC', + '#0066FF', + '#0099CC', + '#0099FF', + '#00CC00', + '#00CC33', + '#00CC66', + '#00CC99', + '#00CCCC', + '#00CCFF', + '#3300CC', + '#3300FF', + '#3333CC', + '#3333FF', + '#3366CC', + '#3366FF', + '#3399CC', + '#3399FF', + '#33CC00', + '#33CC33', + '#33CC66', + '#33CC99', + '#33CCCC', + '#33CCFF', + '#6600CC', + '#6600FF', + '#6633CC', + '#6633FF', + '#66CC00', + '#66CC33', + '#9900CC', + '#9900FF', + '#9933CC', + '#9933FF', + '#99CC00', + '#99CC33', + '#CC0000', + '#CC0033', + '#CC0066', + '#CC0099', + '#CC00CC', + '#CC00FF', + '#CC3300', + '#CC3333', + '#CC3366', + '#CC3399', + '#CC33CC', + '#CC33FF', + '#CC6600', + '#CC6633', + '#CC9900', + '#CC9933', + '#CCCC00', + '#CCCC33', + '#FF0000', + '#FF0033', + '#FF0066', + '#FF0099', + '#FF00CC', + '#FF00FF', + '#FF3300', + '#FF3333', + '#FF3366', + '#FF3399', + '#FF33CC', + '#FF33FF', + '#FF6600', + '#FF6633', + '#FF9900', + '#FF9933', + '#FFCC00', + '#FFCC33' + ] -/***/ 88321: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + /** + * Currently only WebKit-based Web Inspectors, Firefox >= v31, + * and the Firebug extension (any Firefox version) are known + * to support "%c" CSS customizations. + * + * TODO: add a `localStorage` variable to explicitly enable/disable colors + */ -"use strict"; + // eslint-disable-next-line complexity + function useColors() { + // NB: In an Electron preload script, document will be defined but not fully + // initialized. Since we know we're in Chrome, we'll just detect this case + // explicitly + if ( + typeof window !== 'undefined' && + window.process && + (window.process.type === 'renderer' || window.process.__nwjs) + ) { + return true + } -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.splitStream = void 0; -const stream_1 = __nccwpck_require__(12781); -const splitStream_browser_1 = __nccwpck_require__(64693); -const stream_type_check_1 = __nccwpck_require__(57578); -async function splitStream(stream) { - if ((0, stream_type_check_1.isReadableStream)(stream)) { - return (0, splitStream_browser_1.splitStream)(stream); - } - const stream1 = new stream_1.PassThrough(); - const stream2 = new stream_1.PassThrough(); - stream.pipe(stream1); - stream.pipe(stream2); - return [stream1, stream2]; -} -exports.splitStream = splitStream; - - -/***/ }), - -/***/ 57578: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.isReadableStream = void 0; -const isReadableStream = (stream) => { - var _a; - return typeof ReadableStream === "function" && - (((_a = stream === null || stream === void 0 ? void 0 : stream.constructor) === null || _a === void 0 ? void 0 : _a.name) === ReadableStream.name || stream instanceof ReadableStream); -}; -exports.isReadableStream = isReadableStream; - - -/***/ }), - -/***/ 6123: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __create = Object.create; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __getProtoOf = Object.getPrototypeOf; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. - isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, - mod -)); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - DEFAULT_REQUEST_TIMEOUT: () => DEFAULT_REQUEST_TIMEOUT, - NodeHttp2Handler: () => NodeHttp2Handler, - NodeHttpHandler: () => NodeHttpHandler, - streamCollector: () => streamCollector -}); -module.exports = __toCommonJS(src_exports); - -// src/node-http-handler.ts -var import_protocol_http = __nccwpck_require__(64418); -var import_querystring_builder = __nccwpck_require__(68031); -var import_http = __nccwpck_require__(13685); -var import_https = __nccwpck_require__(95687); - -// src/constants.ts -var NODEJS_TIMEOUT_ERROR_CODES = ["ECONNRESET", "EPIPE", "ETIMEDOUT"]; - -// src/get-transformed-headers.ts -var getTransformedHeaders = /* @__PURE__ */ __name((headers) => { - const transformedHeaders = {}; - for (const name of Object.keys(headers)) { - const headerValues = headers[name]; - transformedHeaders[name] = Array.isArray(headerValues) ? headerValues.join(",") : headerValues; - } - return transformedHeaders; -}, "getTransformedHeaders"); - -// src/set-connection-timeout.ts -var DEFER_EVENT_LISTENER_TIME = 1e3; -var setConnectionTimeout = /* @__PURE__ */ __name((request, reject, timeoutInMs = 0) => { - if (!timeoutInMs) { - return -1; - } - const registerTimeout = /* @__PURE__ */ __name((offset) => { - const timeoutId = setTimeout(() => { - request.destroy(); - reject( - Object.assign(new Error(`Socket timed out without establishing a connection within ${timeoutInMs} ms`), { - name: "TimeoutError" - }) - ); - }, timeoutInMs - offset); - const doWithSocket = /* @__PURE__ */ __name((socket) => { - if (socket == null ? void 0 : socket.connecting) { - socket.on("connect", () => { - clearTimeout(timeoutId); - }); - } else { - clearTimeout(timeoutId); - } - }, "doWithSocket"); - if (request.socket) { - doWithSocket(request.socket); - } else { - request.on("socket", doWithSocket); - } - }, "registerTimeout"); - if (timeoutInMs < 2e3) { - registerTimeout(0); - return 0; - } - return setTimeout(registerTimeout.bind(null, DEFER_EVENT_LISTENER_TIME), DEFER_EVENT_LISTENER_TIME); -}, "setConnectionTimeout"); - -// src/set-socket-keep-alive.ts -var DEFER_EVENT_LISTENER_TIME2 = 3e3; -var setSocketKeepAlive = /* @__PURE__ */ __name((request, { keepAlive, keepAliveMsecs }, deferTimeMs = DEFER_EVENT_LISTENER_TIME2) => { - if (keepAlive !== true) { - return -1; - } - const registerListener = /* @__PURE__ */ __name(() => { - if (request.socket) { - request.socket.setKeepAlive(keepAlive, keepAliveMsecs || 0); - } else { - request.on("socket", (socket) => { - socket.setKeepAlive(keepAlive, keepAliveMsecs || 0); - }); - } - }, "registerListener"); - if (deferTimeMs === 0) { - registerListener(); - return 0; - } - return setTimeout(registerListener, deferTimeMs); -}, "setSocketKeepAlive"); - -// src/set-socket-timeout.ts -var DEFER_EVENT_LISTENER_TIME3 = 3e3; -var setSocketTimeout = /* @__PURE__ */ __name((request, reject, timeoutInMs = 0) => { - const registerTimeout = /* @__PURE__ */ __name((offset) => { - request.setTimeout(timeoutInMs - offset, () => { - request.destroy(); - reject(Object.assign(new Error(`Connection timed out after ${timeoutInMs} ms`), { name: "TimeoutError" })); - }); - }, "registerTimeout"); - if (0 < timeoutInMs && timeoutInMs < 6e3) { - registerTimeout(0); - return 0; - } - return setTimeout( - registerTimeout.bind(null, timeoutInMs === 0 ? 0 : DEFER_EVENT_LISTENER_TIME3), - DEFER_EVENT_LISTENER_TIME3 - ); -}, "setSocketTimeout"); - -// src/write-request-body.ts -var import_stream = __nccwpck_require__(12781); -var MIN_WAIT_TIME = 1e3; -async function writeRequestBody(httpRequest, request, maxContinueTimeoutMs = MIN_WAIT_TIME) { - const headers = request.headers ?? {}; - const expect = headers["Expect"] || headers["expect"]; - let timeoutId = -1; - let hasError = false; - if (expect === "100-continue") { - await Promise.race([ - new Promise((resolve) => { - timeoutId = Number(setTimeout(resolve, Math.max(MIN_WAIT_TIME, maxContinueTimeoutMs))); - }), - new Promise((resolve) => { - httpRequest.on("continue", () => { - clearTimeout(timeoutId); - resolve(); - }); - httpRequest.on("error", () => { - hasError = true; - clearTimeout(timeoutId); - resolve(); - }); - }) - ]); - } - if (!hasError) { - writeBody(httpRequest, request.body); - } -} -__name(writeRequestBody, "writeRequestBody"); -function writeBody(httpRequest, body) { - if (body instanceof import_stream.Readable) { - body.pipe(httpRequest); - return; - } - if (body) { - if (Buffer.isBuffer(body) || typeof body === "string") { - httpRequest.end(body); - return; - } - const uint8 = body; - if (typeof uint8 === "object" && uint8.buffer && typeof uint8.byteOffset === "number" && typeof uint8.byteLength === "number") { - httpRequest.end(Buffer.from(uint8.buffer, uint8.byteOffset, uint8.byteLength)); - return; - } - httpRequest.end(Buffer.from(body)); - return; - } - httpRequest.end(); -} -__name(writeBody, "writeBody"); - -// src/node-http-handler.ts -var DEFAULT_REQUEST_TIMEOUT = 0; -var _NodeHttpHandler = class _NodeHttpHandler { - constructor(options) { - this.socketWarningTimestamp = 0; - // Node http handler is hard-coded to http/1.1: https://github.com/nodejs/node/blob/ff5664b83b89c55e4ab5d5f60068fb457f1f5872/lib/_http_server.js#L286 - this.metadata = { handlerProtocol: "http/1.1" }; - this.configProvider = new Promise((resolve, reject) => { - if (typeof options === "function") { - options().then((_options) => { - resolve(this.resolveDefaultConfig(_options)); - }).catch(reject); - } else { - resolve(this.resolveDefaultConfig(options)); + // Internet Explorer and Edge do not support colors. + if ( + typeof navigator !== 'undefined' && + navigator.userAgent && + navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/) + ) { + return false + } + + let m + + // Is webkit? http://stackoverflow.com/a/16459606/376773 + // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 + return ( + (typeof document !== 'undefined' && + document.documentElement && + document.documentElement.style && + document.documentElement.style.WebkitAppearance) || + // Is firebug? http://stackoverflow.com/a/398120/376773 + (typeof window !== 'undefined' && + window.console && + (window.console.firebug || + (window.console.exception && window.console.table))) || + // Is firefox >= v31? + // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages + (typeof navigator !== 'undefined' && + navigator.userAgent && + (m = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && + parseInt(m[1], 10) >= 31) || + // Double check webkit in userAgent just in case we are in a worker + (typeof navigator !== 'undefined' && + navigator.userAgent && + navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)) + ) } - }); - } - /** - * @returns the input if it is an HttpHandler of any class, - * or instantiates a new instance of this handler. - */ - static create(instanceOrOptions) { - if (typeof (instanceOrOptions == null ? void 0 : instanceOrOptions.handle) === "function") { - return instanceOrOptions; - } - return new _NodeHttpHandler(instanceOrOptions); - } - /** - * @internal - * - * @param agent - http(s) agent in use by the NodeHttpHandler instance. - * @param socketWarningTimestamp - last socket usage check timestamp. - * @param logger - channel for the warning. - * @returns timestamp of last emitted warning. - */ - static checkSocketUsage(agent, socketWarningTimestamp, logger = console) { - var _a, _b, _c; - const { sockets, requests, maxSockets } = agent; - if (typeof maxSockets !== "number" || maxSockets === Infinity) { - return socketWarningTimestamp; - } - const interval = 15e3; - if (Date.now() - interval < socketWarningTimestamp) { - return socketWarningTimestamp; - } - if (sockets && requests) { - for (const origin in sockets) { - const socketsInUse = ((_a = sockets[origin]) == null ? void 0 : _a.length) ?? 0; - const requestsEnqueued = ((_b = requests[origin]) == null ? void 0 : _b.length) ?? 0; - if (socketsInUse >= maxSockets && requestsEnqueued >= 2 * maxSockets) { - (_c = logger == null ? void 0 : logger.warn) == null ? void 0 : _c.call( - logger, - `@smithy/node-http-handler:WARN - socket usage at capacity=${socketsInUse} and ${requestsEnqueued} additional requests are enqueued. -See https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html -or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.` - ); - return Date.now(); + + /** + * Colorize log arguments if enabled. + * + * @api public + */ + + function formatArgs(args) { + args[0] = + (this.useColors ? '%c' : '') + + this.namespace + + (this.useColors ? ' %c' : ' ') + + args[0] + + (this.useColors ? '%c ' : ' ') + + '+' + + module.exports.humanize(this.diff) + + if (!this.useColors) { + return } - } - } - return socketWarningTimestamp; - } - resolveDefaultConfig(options) { - const { requestTimeout, connectionTimeout, socketTimeout, httpAgent, httpsAgent } = options || {}; - const keepAlive = true; - const maxSockets = 50; - return { - connectionTimeout, - requestTimeout: requestTimeout ?? socketTimeout, - httpAgent: (() => { - if (httpAgent instanceof import_http.Agent || typeof (httpAgent == null ? void 0 : httpAgent.destroy) === "function") { - return httpAgent; - } - return new import_http.Agent({ keepAlive, maxSockets, ...httpAgent }); - })(), - httpsAgent: (() => { - if (httpsAgent instanceof import_https.Agent || typeof (httpsAgent == null ? void 0 : httpsAgent.destroy) === "function") { - return httpsAgent; - } - return new import_https.Agent({ keepAlive, maxSockets, ...httpsAgent }); - })(), - logger: console - }; - } - destroy() { - var _a, _b, _c, _d; - (_b = (_a = this.config) == null ? void 0 : _a.httpAgent) == null ? void 0 : _b.destroy(); - (_d = (_c = this.config) == null ? void 0 : _c.httpsAgent) == null ? void 0 : _d.destroy(); - } - async handle(request, { abortSignal } = {}) { - if (!this.config) { - this.config = await this.configProvider; - } - return new Promise((_resolve, _reject) => { - let writeRequestBodyPromise = void 0; - const timeouts = []; - const resolve = /* @__PURE__ */ __name(async (arg) => { - await writeRequestBodyPromise; - timeouts.forEach(clearTimeout); - _resolve(arg); - }, "resolve"); - const reject = /* @__PURE__ */ __name(async (arg) => { - await writeRequestBodyPromise; - timeouts.forEach(clearTimeout); - _reject(arg); - }, "reject"); - if (!this.config) { - throw new Error("Node HTTP request handler config is not resolved"); - } - if (abortSignal == null ? void 0 : abortSignal.aborted) { - const abortError = new Error("Request aborted"); - abortError.name = "AbortError"; - reject(abortError); - return; - } - const isSSL = request.protocol === "https:"; - const agent = isSSL ? this.config.httpsAgent : this.config.httpAgent; - timeouts.push( - setTimeout( - () => { - this.socketWarningTimestamp = _NodeHttpHandler.checkSocketUsage( - agent, - this.socketWarningTimestamp, - this.config.logger - ); - }, - this.config.socketAcquisitionWarningTimeout ?? (this.config.requestTimeout ?? 2e3) + (this.config.connectionTimeout ?? 1e3) - ) - ); - const queryString = (0, import_querystring_builder.buildQueryString)(request.query || {}); - let auth = void 0; - if (request.username != null || request.password != null) { - const username = request.username ?? ""; - const password = request.password ?? ""; - auth = `${username}:${password}`; - } - let path = request.path; - if (queryString) { - path += `?${queryString}`; - } - if (request.fragment) { - path += `#${request.fragment}`; - } - const nodeHttpsOptions = { - headers: request.headers, - host: request.hostname, - method: request.method, - path, - port: request.port, - agent, - auth - }; - const requestFunc = isSSL ? import_https.request : import_http.request; - const req = requestFunc(nodeHttpsOptions, (res) => { - const httpResponse = new import_protocol_http.HttpResponse({ - statusCode: res.statusCode || -1, - reason: res.statusMessage, - headers: getTransformedHeaders(res.headers), - body: res - }); - resolve({ response: httpResponse }); - }); - req.on("error", (err) => { - if (NODEJS_TIMEOUT_ERROR_CODES.includes(err.code)) { - reject(Object.assign(err, { name: "TimeoutError" })); - } else { - reject(err); - } - }); - if (abortSignal) { - const onAbort = /* @__PURE__ */ __name(() => { - req.destroy(); - const abortError = new Error("Request aborted"); - abortError.name = "AbortError"; - reject(abortError); - }, "onAbort"); - if (typeof abortSignal.addEventListener === "function") { - const signal = abortSignal; - signal.addEventListener("abort", onAbort, { once: true }); - req.once("close", () => signal.removeEventListener("abort", onAbort)); - } else { - abortSignal.onabort = onAbort; - } - } - timeouts.push(setConnectionTimeout(req, reject, this.config.connectionTimeout)); - timeouts.push(setSocketTimeout(req, reject, this.config.requestTimeout)); - const httpAgent = nodeHttpsOptions.agent; - if (typeof httpAgent === "object" && "keepAlive" in httpAgent) { - timeouts.push( - setSocketKeepAlive(req, { - // @ts-expect-error keepAlive is not public on httpAgent. - keepAlive: httpAgent.keepAlive, - // @ts-expect-error keepAliveMsecs is not public on httpAgent. - keepAliveMsecs: httpAgent.keepAliveMsecs - }) - ); - } - writeRequestBodyPromise = writeRequestBody(req, request, this.config.requestTimeout).catch((e) => { - timeouts.forEach(clearTimeout); - return _reject(e); - }); - }); - } - updateHttpClientConfig(key, value) { - this.config = void 0; - this.configProvider = this.configProvider.then((config) => { - return { - ...config, - [key]: value - }; - }); - } - httpHandlerConfigs() { - return this.config ?? {}; - } -}; -__name(_NodeHttpHandler, "NodeHttpHandler"); -var NodeHttpHandler = _NodeHttpHandler; -// src/node-http2-handler.ts + const c = 'color: ' + this.color + args.splice(1, 0, c, 'color: inherit') + // The final "%c" is somewhat tricky, because there could be other + // arguments passed either before or after the %c, so we need to + // figure out the correct index to insert the CSS into + let index = 0 + let lastC = 0 + args[0].replace(/%[a-zA-Z%]/g, match => { + if (match === '%%') { + return + } + index++ + if (match === '%c') { + // We only are interested in the *last* %c + // (the user may have provided their own) + lastC = index + } + }) -var import_http22 = __nccwpck_require__(85158); + args.splice(lastC, 0, c) + } -// src/node-http2-connection-manager.ts -var import_http2 = __toESM(__nccwpck_require__(85158)); + /** + * Invokes `console.debug()` when available. + * No-op when `console.debug` is not a "function". + * If `console.debug` is not available, falls back + * to `console.log`. + * + * @api public + */ + exports.log = console.debug || console.log || (() => {}) -// src/node-http2-connection-pool.ts -var _NodeHttp2ConnectionPool = class _NodeHttp2ConnectionPool { - constructor(sessions) { - this.sessions = []; - this.sessions = sessions ?? []; - } - poll() { - if (this.sessions.length > 0) { - return this.sessions.shift(); - } - } - offerLast(session) { - this.sessions.push(session); - } - contains(session) { - return this.sessions.includes(session); - } - remove(session) { - this.sessions = this.sessions.filter((s) => s !== session); - } - [Symbol.iterator]() { - return this.sessions[Symbol.iterator](); - } - destroy(connection) { - for (const session of this.sessions) { - if (session === connection) { - if (!session.destroyed) { - session.destroy(); + /** + * Save `namespaces`. + * + * @param {String} namespaces + * @api private + */ + function save(namespaces) { + try { + if (namespaces) { + exports.storage.setItem('debug', namespaces) + } else { + exports.storage.removeItem('debug') + } + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? } } - } - } -}; -__name(_NodeHttp2ConnectionPool, "NodeHttp2ConnectionPool"); -var NodeHttp2ConnectionPool = _NodeHttp2ConnectionPool; - -// src/node-http2-connection-manager.ts -var _NodeHttp2ConnectionManager = class _NodeHttp2ConnectionManager { - constructor(config) { - this.sessionCache = /* @__PURE__ */ new Map(); - this.config = config; - if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) { - throw new RangeError("maxConcurrency must be greater than zero."); - } - } - lease(requestContext, connectionConfiguration) { - const url = this.getUrlString(requestContext); - const existingPool = this.sessionCache.get(url); - if (existingPool) { - const existingSession = existingPool.poll(); - if (existingSession && !this.config.disableConcurrency) { - return existingSession; - } - } - const session = import_http2.default.connect(url); - if (this.config.maxConcurrency) { - session.settings({ maxConcurrentStreams: this.config.maxConcurrency }, (err) => { - if (err) { - throw new Error( - "Fail to set maxConcurrentStreams to " + this.config.maxConcurrency + "when creating new session for " + requestContext.destination.toString() - ); + + /** + * Load `namespaces`. + * + * @return {String} returns the previously persisted debug modes + * @api private + */ + function load() { + let r + try { + r = exports.storage.getItem('debug') + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? } - }); - } - session.unref(); - const destroySessionCb = /* @__PURE__ */ __name(() => { - session.destroy(); - this.deleteSession(url, session); - }, "destroySessionCb"); - session.on("goaway", destroySessionCb); - session.on("error", destroySessionCb); - session.on("frameError", destroySessionCb); - session.on("close", () => this.deleteSession(url, session)); - if (connectionConfiguration.requestTimeout) { - session.setTimeout(connectionConfiguration.requestTimeout, destroySessionCb); - } - const connectionPool = this.sessionCache.get(url) || new NodeHttp2ConnectionPool(); - connectionPool.offerLast(session); - this.sessionCache.set(url, connectionPool); - return session; - } - /** - * Delete a session from the connection pool. - * @param authority The authority of the session to delete. - * @param session The session to delete. - */ - deleteSession(authority, session) { - const existingConnectionPool = this.sessionCache.get(authority); - if (!existingConnectionPool) { - return; - } - if (!existingConnectionPool.contains(session)) { - return; - } - existingConnectionPool.remove(session); - this.sessionCache.set(authority, existingConnectionPool); - } - release(requestContext, session) { - var _a; - const cacheKey = this.getUrlString(requestContext); - (_a = this.sessionCache.get(cacheKey)) == null ? void 0 : _a.offerLast(session); - } - destroy() { - for (const [key, connectionPool] of this.sessionCache) { - for (const session of connectionPool) { - if (!session.destroyed) { - session.destroy(); + + // If debug isn't set in LS, and we're in Electron, try to load $DEBUG + if (!r && typeof process !== 'undefined' && 'env' in process) { + r = process.env.DEBUG } - connectionPool.remove(session); - } - this.sessionCache.delete(key); - } - } - setMaxConcurrentStreams(maxConcurrentStreams) { - if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) { - throw new RangeError("maxConcurrentStreams must be greater than zero."); - } - this.config.maxConcurrency = maxConcurrentStreams; - } - setDisableConcurrentStreams(disableConcurrentStreams) { - this.config.disableConcurrency = disableConcurrentStreams; - } - getUrlString(request) { - return request.destination.toString(); - } -}; -__name(_NodeHttp2ConnectionManager, "NodeHttp2ConnectionManager"); -var NodeHttp2ConnectionManager = _NodeHttp2ConnectionManager; - -// src/node-http2-handler.ts -var _NodeHttp2Handler = class _NodeHttp2Handler { - constructor(options) { - this.metadata = { handlerProtocol: "h2" }; - this.connectionManager = new NodeHttp2ConnectionManager({}); - this.configProvider = new Promise((resolve, reject) => { - if (typeof options === "function") { - options().then((opts) => { - resolve(opts || {}); - }).catch(reject); - } else { - resolve(options || {}); - } - }); - } - /** - * @returns the input if it is an HttpHandler of any class, - * or instantiates a new instance of this handler. - */ - static create(instanceOrOptions) { - if (typeof (instanceOrOptions == null ? void 0 : instanceOrOptions.handle) === "function") { - return instanceOrOptions; - } - return new _NodeHttp2Handler(instanceOrOptions); - } - destroy() { - this.connectionManager.destroy(); - } - async handle(request, { abortSignal } = {}) { - if (!this.config) { - this.config = await this.configProvider; - this.connectionManager.setDisableConcurrentStreams(this.config.disableConcurrentStreams || false); - if (this.config.maxConcurrentStreams) { - this.connectionManager.setMaxConcurrentStreams(this.config.maxConcurrentStreams); + + return r } - } - const { requestTimeout, disableConcurrentStreams } = this.config; - return new Promise((_resolve, _reject) => { - var _a; - let fulfilled = false; - let writeRequestBodyPromise = void 0; - const resolve = /* @__PURE__ */ __name(async (arg) => { - await writeRequestBodyPromise; - _resolve(arg); - }, "resolve"); - const reject = /* @__PURE__ */ __name(async (arg) => { - await writeRequestBodyPromise; - _reject(arg); - }, "reject"); - if (abortSignal == null ? void 0 : abortSignal.aborted) { - fulfilled = true; - const abortError = new Error("Request aborted"); - abortError.name = "AbortError"; - reject(abortError); - return; - } - const { hostname, method, port, protocol, query } = request; - let auth = ""; - if (request.username != null || request.password != null) { - const username = request.username ?? ""; - const password = request.password ?? ""; - auth = `${username}:${password}@`; - } - const authority = `${protocol}//${auth}${hostname}${port ? `:${port}` : ""}`; - const requestContext = { destination: new URL(authority) }; - const session = this.connectionManager.lease(requestContext, { - requestTimeout: (_a = this.config) == null ? void 0 : _a.sessionTimeout, - disableConcurrentStreams: disableConcurrentStreams || false - }); - const rejectWithDestroy = /* @__PURE__ */ __name((err) => { - if (disableConcurrentStreams) { - this.destroySession(session); - } - fulfilled = true; - reject(err); - }, "rejectWithDestroy"); - const queryString = (0, import_querystring_builder.buildQueryString)(query || {}); - let path = request.path; - if (queryString) { - path += `?${queryString}`; - } - if (request.fragment) { - path += `#${request.fragment}`; - } - const req = session.request({ - ...request.headers, - [import_http22.constants.HTTP2_HEADER_PATH]: path, - [import_http22.constants.HTTP2_HEADER_METHOD]: method - }); - session.ref(); - req.on("response", (headers) => { - const httpResponse = new import_protocol_http.HttpResponse({ - statusCode: headers[":status"] || -1, - headers: getTransformedHeaders(headers), - body: req - }); - fulfilled = true; - resolve({ response: httpResponse }); - if (disableConcurrentStreams) { - session.close(); - this.connectionManager.deleteSession(authority, session); - } - }); - if (requestTimeout) { - req.setTimeout(requestTimeout, () => { - req.close(); - const timeoutError = new Error(`Stream timed out because of no activity for ${requestTimeout} ms`); - timeoutError.name = "TimeoutError"; - rejectWithDestroy(timeoutError); - }); - } - if (abortSignal) { - const onAbort = /* @__PURE__ */ __name(() => { - req.close(); - const abortError = new Error("Request aborted"); - abortError.name = "AbortError"; - rejectWithDestroy(abortError); - }, "onAbort"); - if (typeof abortSignal.addEventListener === "function") { - const signal = abortSignal; - signal.addEventListener("abort", onAbort, { once: true }); - req.once("close", () => signal.removeEventListener("abort", onAbort)); - } else { - abortSignal.onabort = onAbort; - } - } - req.on("frameError", (type, code, id) => { - rejectWithDestroy(new Error(`Frame type id ${type} in stream id ${id} has failed with code ${code}.`)); - }); - req.on("error", rejectWithDestroy); - req.on("aborted", () => { - rejectWithDestroy( - new Error(`HTTP/2 stream is abnormally aborted in mid-communication with result code ${req.rstCode}.`) - ); - }); - req.on("close", () => { - session.unref(); - if (disableConcurrentStreams) { - session.destroy(); - } - if (!fulfilled) { - rejectWithDestroy(new Error("Unexpected error: http2 request did not get a response")); - } - }); - writeRequestBodyPromise = writeRequestBody(req, request, requestTimeout); - }); - } - updateHttpClientConfig(key, value) { - this.config = void 0; - this.configProvider = this.configProvider.then((config) => { - return { - ...config, - [key]: value - }; - }); - } - httpHandlerConfigs() { - return this.config ?? {}; - } - /** - * Destroys a session. - * @param session The session to destroy. - */ - destroySession(session) { - if (!session.destroyed) { - session.destroy(); - } - } -}; -__name(_NodeHttp2Handler, "NodeHttp2Handler"); -var NodeHttp2Handler = _NodeHttp2Handler; -// src/stream-collector/collector.ts + /** + * Localstorage attempts to return the localstorage. + * + * This is necessary because safari throws + * when a user disables cookies/localstorage + * and you attempt to access it. + * + * @return {LocalStorage} + * @api private + */ -var _Collector = class _Collector extends import_stream.Writable { - constructor() { - super(...arguments); - this.bufferedBytes = []; - } - _write(chunk, encoding, callback) { - this.bufferedBytes.push(chunk); - callback(); - } -}; -__name(_Collector, "Collector"); -var Collector = _Collector; - -// src/stream-collector/index.ts -var streamCollector = /* @__PURE__ */ __name((stream) => { - if (isReadableStreamInstance(stream)) { - return collectReadableStream(stream); - } - return new Promise((resolve, reject) => { - const collector = new Collector(); - stream.pipe(collector); - stream.on("error", (err) => { - collector.end(); - reject(err); - }); - collector.on("error", reject); - collector.on("finish", function() { - const bytes = new Uint8Array(Buffer.concat(this.bufferedBytes)); - resolve(bytes); - }); - }); -}, "streamCollector"); -var isReadableStreamInstance = /* @__PURE__ */ __name((stream) => typeof ReadableStream === "function" && stream instanceof ReadableStream, "isReadableStreamInstance"); -async function collectReadableStream(stream) { - const chunks = []; - const reader = stream.getReader(); - let isDone = false; - let length = 0; - while (!isDone) { - const { done, value } = await reader.read(); - if (value) { - chunks.push(value); - length += value.length; - } - isDone = done; - } - const collected = new Uint8Array(length); - let offset = 0; - for (const chunk of chunks) { - collected.set(chunk, offset); - offset += chunk.length; - } - return collected; -} -__name(collectReadableStream, "collectReadableStream"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 54197: -/***/ ((module) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - escapeUri: () => escapeUri, - escapeUriPath: () => escapeUriPath -}); -module.exports = __toCommonJS(src_exports); - -// src/escape-uri.ts -var escapeUri = /* @__PURE__ */ __name((uri) => ( - // AWS percent-encodes some extra non-standard characters in a URI - encodeURIComponent(uri).replace(/[!'()*]/g, hexEncode) -), "escapeUri"); -var hexEncode = /* @__PURE__ */ __name((c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`, "hexEncode"); - -// src/escape-uri-path.ts -var escapeUriPath = /* @__PURE__ */ __name((uri) => uri.split("/").map(escapeUri).join("/"), "escapeUriPath"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 41895: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - fromUtf8: () => fromUtf8, - toUint8Array: () => toUint8Array, - toUtf8: () => toUtf8 -}); -module.exports = __toCommonJS(src_exports); - -// src/fromUtf8.ts -var import_util_buffer_from = __nccwpck_require__(31381); -var fromUtf8 = /* @__PURE__ */ __name((input) => { - const buf = (0, import_util_buffer_from.fromString)(input, "utf8"); - return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength / Uint8Array.BYTES_PER_ELEMENT); -}, "fromUtf8"); - -// src/toUint8Array.ts -var toUint8Array = /* @__PURE__ */ __name((data) => { - if (typeof data === "string") { - return fromUtf8(data); - } - if (ArrayBuffer.isView(data)) { - return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT); - } - return new Uint8Array(data); -}, "toUint8Array"); + function localstorage() { + try { + // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context + // The Browser also has localStorage in the global context. + return localStorage + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? + } + } -// src/toUtf8.ts + module.exports = __nccwpck_require__(46243)(exports) -var toUtf8 = /* @__PURE__ */ __name((input) => { - if (typeof input === "string") { - return input; - } - if (typeof input !== "object" || typeof input.byteOffset !== "number" || typeof input.byteLength !== "number") { - throw new Error("@smithy/util-utf8: toUtf8 encoder function only accepts string | Uint8Array."); - } - return (0, import_util_buffer_from.fromArrayBuffer)(input.buffer, input.byteOffset, input.byteLength).toString("utf8"); -}, "toUtf8"); -// Annotate the CommonJS export names for ESM import in node: + const { formatters } = module.exports -0 && (0); + /** + * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. + */ + formatters.j = function (v) { + try { + return JSON.stringify(v) + } catch (error) { + return '[UnexpectedJSONParseError]: ' + error.message + } + } + /***/ + }, -/***/ }), + /***/ 46243: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + /** + * This is the common logic for both the Node.js and web browser + * implementations of `debug()`. + */ -/***/ 78011: -/***/ ((module) => { + function setup(env) { + createDebug.debug = createDebug + createDebug.default = createDebug + createDebug.coerce = coerce + createDebug.disable = disable + createDebug.enable = enable + createDebug.enabled = enabled + createDebug.humanize = __nccwpck_require__(80900) + createDebug.destroy = destroy + + Object.keys(env).forEach(key => { + createDebug[key] = env[key] + }) -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - WaiterState: () => WaiterState, - checkExceptions: () => checkExceptions, - createWaiter: () => createWaiter, - waiterServiceDefaults: () => waiterServiceDefaults -}); -module.exports = __toCommonJS(src_exports); - -// src/utils/sleep.ts -var sleep = /* @__PURE__ */ __name((seconds) => { - return new Promise((resolve) => setTimeout(resolve, seconds * 1e3)); -}, "sleep"); - -// src/waiter.ts -var waiterServiceDefaults = { - minDelay: 2, - maxDelay: 120 -}; -var WaiterState = /* @__PURE__ */ ((WaiterState2) => { - WaiterState2["ABORTED"] = "ABORTED"; - WaiterState2["FAILURE"] = "FAILURE"; - WaiterState2["SUCCESS"] = "SUCCESS"; - WaiterState2["RETRY"] = "RETRY"; - WaiterState2["TIMEOUT"] = "TIMEOUT"; - return WaiterState2; -})(WaiterState || {}); -var checkExceptions = /* @__PURE__ */ __name((result) => { - if (result.state === "ABORTED" /* ABORTED */) { - const abortError = new Error( - `${JSON.stringify({ - ...result, - reason: "Request was aborted" - })}` - ); - abortError.name = "AbortError"; - throw abortError; - } else if (result.state === "TIMEOUT" /* TIMEOUT */) { - const timeoutError = new Error( - `${JSON.stringify({ - ...result, - reason: "Waiter has timed out" - })}` - ); - timeoutError.name = "TimeoutError"; - throw timeoutError; - } else if (result.state !== "SUCCESS" /* SUCCESS */) { - throw new Error(`${JSON.stringify(result)}`); - } - return result; -}, "checkExceptions"); - -// src/poller.ts -var exponentialBackoffWithJitter = /* @__PURE__ */ __name((minDelay, maxDelay, attemptCeiling, attempt) => { - if (attempt > attemptCeiling) - return maxDelay; - const delay = minDelay * 2 ** (attempt - 1); - return randomInRange(minDelay, delay); -}, "exponentialBackoffWithJitter"); -var randomInRange = /* @__PURE__ */ __name((min, max) => min + Math.random() * (max - min), "randomInRange"); -var runPolling = /* @__PURE__ */ __name(async ({ minDelay, maxDelay, maxWaitTime, abortController, client, abortSignal }, input, acceptorChecks) => { - var _a; - const { state, reason } = await acceptorChecks(client, input); - if (state !== "RETRY" /* RETRY */) { - return { state, reason }; - } - let currentAttempt = 1; - const waitUntil = Date.now() + maxWaitTime * 1e3; - const attemptCeiling = Math.log(maxDelay / minDelay) / Math.log(2) + 1; - while (true) { - if (((_a = abortController == null ? void 0 : abortController.signal) == null ? void 0 : _a.aborted) || (abortSignal == null ? void 0 : abortSignal.aborted)) { - return { state: "ABORTED" /* ABORTED */ }; - } - const delay = exponentialBackoffWithJitter(minDelay, maxDelay, attemptCeiling, currentAttempt); - if (Date.now() + delay * 1e3 > waitUntil) { - return { state: "TIMEOUT" /* TIMEOUT */ }; - } - await sleep(delay); - const { state: state2, reason: reason2 } = await acceptorChecks(client, input); - if (state2 !== "RETRY" /* RETRY */) { - return { state: state2, reason: reason2 }; - } - currentAttempt += 1; - } -}, "runPolling"); - -// src/utils/validate.ts -var validateWaiterOptions = /* @__PURE__ */ __name((options) => { - if (options.maxWaitTime < 1) { - throw new Error(`WaiterConfiguration.maxWaitTime must be greater than 0`); - } else if (options.minDelay < 1) { - throw new Error(`WaiterConfiguration.minDelay must be greater than 0`); - } else if (options.maxDelay < 1) { - throw new Error(`WaiterConfiguration.maxDelay must be greater than 0`); - } else if (options.maxWaitTime <= options.minDelay) { - throw new Error( - `WaiterConfiguration.maxWaitTime [${options.maxWaitTime}] must be greater than WaiterConfiguration.minDelay [${options.minDelay}] for this waiter` - ); - } else if (options.maxDelay < options.minDelay) { - throw new Error( - `WaiterConfiguration.maxDelay [${options.maxDelay}] must be greater than WaiterConfiguration.minDelay [${options.minDelay}] for this waiter` - ); - } -}, "validateWaiterOptions"); - -// src/createWaiter.ts -var abortTimeout = /* @__PURE__ */ __name(async (abortSignal) => { - return new Promise((resolve) => { - const onAbort = /* @__PURE__ */ __name(() => resolve({ state: "ABORTED" /* ABORTED */ }), "onAbort"); - if (typeof abortSignal.addEventListener === "function") { - abortSignal.addEventListener("abort", onAbort); - } else { - abortSignal.onabort = onAbort; - } - }); -}, "abortTimeout"); -var createWaiter = /* @__PURE__ */ __name(async (options, input, acceptorChecks) => { - const params = { - ...waiterServiceDefaults, - ...options - }; - validateWaiterOptions(params); - const exitConditions = [runPolling(params, input, acceptorChecks)]; - if (options.abortController) { - exitConditions.push(abortTimeout(options.abortController.signal)); - } - if (options.abortSignal) { - exitConditions.push(abortTimeout(options.abortSignal)); - } - return Promise.race(exitConditions); -}, "createWaiter"); -// Annotate the CommonJS export names for ESM import in node: - -0 && (0); - - - -/***/ }), - -/***/ 49690: -/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) { - -"use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -const events_1 = __nccwpck_require__(82361); -const debug_1 = __importDefault(__nccwpck_require__(38237)); -const promisify_1 = __importDefault(__nccwpck_require__(66570)); -const debug = debug_1.default('agent-base'); -function isAgent(v) { - return Boolean(v) && typeof v.addRequest === 'function'; -} -function isSecureEndpoint() { - const { stack } = new Error(); - if (typeof stack !== 'string') - return false; - return stack.split('\n').some(l => l.indexOf('(https.js:') !== -1 || l.indexOf('node:https:') !== -1); -} -function createAgent(callback, opts) { - return new createAgent.Agent(callback, opts); -} -(function (createAgent) { - /** - * Base `http.Agent` implementation. - * No pooling/keep-alive is implemented by default. - * - * @param {Function} callback - * @api public - */ - class Agent extends events_1.EventEmitter { - constructor(callback, _opts) { - super(); - let opts = _opts; - if (typeof callback === 'function') { - this.callback = callback; - } - else if (callback) { - opts = callback; - } - // Timeout for the socket to be returned from the callback - this.timeout = null; - if (opts && typeof opts.timeout === 'number') { - this.timeout = opts.timeout; - } - // These aren't actually used by `agent-base`, but are required - // for the TypeScript definition files in `@types/node` :/ - this.maxFreeSockets = 1; - this.maxSockets = 1; - this.maxTotalSockets = Infinity; - this.sockets = {}; - this.freeSockets = {}; - this.requests = {}; - this.options = {}; - } - get defaultPort() { - if (typeof this.explicitDefaultPort === 'number') { - return this.explicitDefaultPort; - } - return isSecureEndpoint() ? 443 : 80; - } - set defaultPort(v) { - this.explicitDefaultPort = v; - } - get protocol() { - if (typeof this.explicitProtocol === 'string') { - return this.explicitProtocol; - } - return isSecureEndpoint() ? 'https:' : 'http:'; - } - set protocol(v) { - this.explicitProtocol = v; - } - callback(req, opts, fn) { - throw new Error('"agent-base" has no default implementation, you must subclass and override `callback()`'); + /** + * The currently active debug mode names, and names to skip. + */ + + createDebug.names = [] + createDebug.skips = [] + + /** + * Map of special "%n" handling functions, for the debug "format" argument. + * + * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N". + */ + createDebug.formatters = {} + + /** + * Selects a color for a debug namespace + * @param {String} namespace The namespace string for the debug instance to be colored + * @return {Number|String} An ANSI color code for the given namespace + * @api private + */ + function selectColor(namespace) { + let hash = 0 + + for (let i = 0; i < namespace.length; i++) { + hash = (hash << 5) - hash + namespace.charCodeAt(i) + hash |= 0 // Convert to 32bit integer + } + + return createDebug.colors[Math.abs(hash) % createDebug.colors.length] } + createDebug.selectColor = selectColor + /** - * Called by node-core's "_http_client.js" module when creating - * a new HTTP request with this Agent instance. + * Create a debugger with the given `namespace`. * + * @param {String} namespace + * @return {Function} * @api public */ - addRequest(req, _opts) { - const opts = Object.assign({}, _opts); - if (typeof opts.secureEndpoint !== 'boolean') { - opts.secureEndpoint = isSecureEndpoint(); - } - if (opts.host == null) { - opts.host = 'localhost'; - } - if (opts.port == null) { - opts.port = opts.secureEndpoint ? 443 : 80; - } - if (opts.protocol == null) { - opts.protocol = opts.secureEndpoint ? 'https:' : 'http:'; - } - if (opts.host && opts.path) { - // If both a `host` and `path` are specified then it's most - // likely the result of a `url.parse()` call... we need to - // remove the `path` portion so that `net.connect()` doesn't - // attempt to open that as a unix socket file. - delete opts.path; - } - delete opts.agent; - delete opts.hostname; - delete opts._defaultAgent; - delete opts.defaultPort; - delete opts.createConnection; - // Hint to use "Connection: close" - // XXX: non-documented `http` module API :( - req._last = true; - req.shouldKeepAlive = false; - let timedOut = false; - let timeoutId = null; - const timeoutMs = opts.timeout || this.timeout; - const onerror = (err) => { - if (req._hadError) - return; - req.emit('error', err); - // For Safety. Some additional errors might fire later on - // and we need to make sure we don't double-fire the error event. - req._hadError = true; - }; - const ontimeout = () => { - timeoutId = null; - timedOut = true; - const err = new Error(`A "socket" was not created for HTTP request before ${timeoutMs}ms`); - err.code = 'ETIMEOUT'; - onerror(err); - }; - const callbackError = (err) => { - if (timedOut) - return; - if (timeoutId !== null) { - clearTimeout(timeoutId); - timeoutId = null; - } - onerror(err); - }; - const onsocket = (socket) => { - if (timedOut) - return; - if (timeoutId != null) { - clearTimeout(timeoutId); - timeoutId = null; - } - if (isAgent(socket)) { - // `socket` is actually an `http.Agent` instance, so - // relinquish responsibility for this `req` to the Agent - // from here on - debug('Callback returned another Agent instance %o', socket.constructor.name); - socket.addRequest(req, opts); - return; - } - if (socket) { - socket.once('free', () => { - this.freeSocket(socket, opts); - }); - req.onSocket(socket); - return; - } - const err = new Error(`no Duplex stream was returned to agent-base for \`${req.method} ${req.path}\``); - onerror(err); - }; - if (typeof this.callback !== 'function') { - onerror(new Error('`callback` is not defined')); - return; - } - if (!this.promisifiedCallback) { - if (this.callback.length >= 3) { - debug('Converting legacy callback function to promise'); - this.promisifiedCallback = promisify_1.default(this.callback); - } - else { - this.promisifiedCallback = this.callback; - } - } - if (typeof timeoutMs === 'number' && timeoutMs > 0) { - timeoutId = setTimeout(ontimeout, timeoutMs); - } - if ('port' in opts && typeof opts.port !== 'number') { - opts.port = Number(opts.port); + function createDebug(namespace) { + let prevTime + let enableOverride = null + let namespacesCache + let enabledCache + + function debug(...args) { + // Disabled? + if (!debug.enabled) { + return } - try { - debug('Resolving socket for %o request: %o', opts.protocol, `${req.method} ${req.path}`); - Promise.resolve(this.promisifiedCallback(req, opts)).then(onsocket, callbackError); + + const self = debug + + // Set `diff` timestamp + const curr = Number(new Date()) + const ms = curr - (prevTime || curr) + self.diff = ms + self.prev = prevTime + self.curr = curr + prevTime = curr + + args[0] = createDebug.coerce(args[0]) + + if (typeof args[0] !== 'string') { + // Anything else let's inspect with %O + args.unshift('%O') } - catch (err) { - Promise.reject(err).catch(callbackError); + + // Apply any `formatters` transformations + let index = 0 + args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { + // If we encounter an escaped % then don't increase the array index + if (match === '%%') { + return '%' + } + index++ + const formatter = createDebug.formatters[format] + if (typeof formatter === 'function') { + const val = args[index] + match = formatter.call(self, val) + + // Now we need to remove `args[index]` since it's inlined in the `format` + args.splice(index, 1) + index-- + } + return match + }) + + // Apply env-specific formatting (colors, etc.) + createDebug.formatArgs.call(self, args) + + const logFn = self.log || createDebug.log + logFn.apply(self, args) + } + + debug.namespace = namespace + debug.useColors = createDebug.useColors() + debug.color = createDebug.selectColor(namespace) + debug.extend = extend + debug.destroy = createDebug.destroy // XXX Temporary. Will be removed in the next major release. + + Object.defineProperty(debug, 'enabled', { + enumerable: true, + configurable: false, + get: () => { + if (enableOverride !== null) { + return enableOverride + } + if (namespacesCache !== createDebug.namespaces) { + namespacesCache = createDebug.namespaces + enabledCache = createDebug.enabled(namespace) + } + + return enabledCache + }, + set: v => { + enableOverride = v } + }) + + // Env-specific initialization logic for debug instances + if (typeof createDebug.init === 'function') { + createDebug.init(debug) + } + + return debug } - freeSocket(socket, opts) { - debug('Freeing socket %o %o', socket.constructor.name, opts); - socket.destroy(); - } - destroy() { - debug('Destroying agent %o', this.constructor.name); + + function extend(namespace, delimiter) { + const newDebug = createDebug( + this.namespace + + (typeof delimiter === 'undefined' ? ':' : delimiter) + + namespace + ) + newDebug.log = this.log + return newDebug } - } - createAgent.Agent = Agent; - // So that `instanceof` works correctly - createAgent.prototype = createAgent.Agent.prototype; -})(createAgent || (createAgent = {})); -module.exports = createAgent; -//# sourceMappingURL=index.js.map -/***/ }), + /** + * Enables a debug mode by namespaces. This can include modes + * separated by a colon and wildcards. + * + * @param {String} namespaces + * @api public + */ + function enable(namespaces) { + createDebug.save(namespaces) + createDebug.namespaces = namespaces + + createDebug.names = [] + createDebug.skips = [] + + let i + const split = ( + typeof namespaces === 'string' ? namespaces : '' + ).split(/[\s,]+/) + const len = split.length + + for (i = 0; i < len; i++) { + if (!split[i]) { + // ignore empty strings + continue + } -/***/ 66570: -/***/ ((__unused_webpack_module, exports) => { + namespaces = split[i].replace(/\*/g, '.*?') -"use strict"; + if (namespaces[0] === '-') { + createDebug.skips.push( + new RegExp('^' + namespaces.slice(1) + '$') + ) + } else { + createDebug.names.push(new RegExp('^' + namespaces + '$')) + } + } + } -Object.defineProperty(exports, "__esModule", ({ value: true })); -function promisify(fn) { - return function (req, opts) { - return new Promise((resolve, reject) => { - fn.call(this, req, opts, (err, rtn) => { - if (err) { - reject(err); - } - else { - resolve(rtn); - } - }); - }); - }; -} -exports["default"] = promisify; -//# sourceMappingURL=promisify.js.map + /** + * Disable debug output. + * + * @return {String} namespaces + * @api public + */ + function disable() { + const namespaces = [ + ...createDebug.names.map(toNamespace), + ...createDebug.skips + .map(toNamespace) + .map(namespace => '-' + namespace) + ].join(',') + createDebug.enable('') + return namespaces + } -/***/ }), + /** + * Returns true if the given mode name is enabled, false otherwise. + * + * @param {String} name + * @return {Boolean} + * @api public + */ + function enabled(name) { + if (name[name.length - 1] === '*') { + return true + } -/***/ 28222: -/***/ ((module, exports, __nccwpck_require__) => { + let i + let len -/* eslint-env browser */ + for (i = 0, len = createDebug.skips.length; i < len; i++) { + if (createDebug.skips[i].test(name)) { + return false + } + } -/** - * This is the web browser implementation of `debug()`. - */ + for (i = 0, len = createDebug.names.length; i < len; i++) { + if (createDebug.names[i].test(name)) { + return true + } + } -exports.formatArgs = formatArgs; -exports.save = save; -exports.load = load; -exports.useColors = useColors; -exports.storage = localstorage(); -exports.destroy = (() => { - let warned = false; - - return () => { - if (!warned) { - warned = true; - console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); - } - }; -})(); - -/** - * Colors. - */ + return false + } -exports.colors = [ - '#0000CC', - '#0000FF', - '#0033CC', - '#0033FF', - '#0066CC', - '#0066FF', - '#0099CC', - '#0099FF', - '#00CC00', - '#00CC33', - '#00CC66', - '#00CC99', - '#00CCCC', - '#00CCFF', - '#3300CC', - '#3300FF', - '#3333CC', - '#3333FF', - '#3366CC', - '#3366FF', - '#3399CC', - '#3399FF', - '#33CC00', - '#33CC33', - '#33CC66', - '#33CC99', - '#33CCCC', - '#33CCFF', - '#6600CC', - '#6600FF', - '#6633CC', - '#6633FF', - '#66CC00', - '#66CC33', - '#9900CC', - '#9900FF', - '#9933CC', - '#9933FF', - '#99CC00', - '#99CC33', - '#CC0000', - '#CC0033', - '#CC0066', - '#CC0099', - '#CC00CC', - '#CC00FF', - '#CC3300', - '#CC3333', - '#CC3366', - '#CC3399', - '#CC33CC', - '#CC33FF', - '#CC6600', - '#CC6633', - '#CC9900', - '#CC9933', - '#CCCC00', - '#CCCC33', - '#FF0000', - '#FF0033', - '#FF0066', - '#FF0099', - '#FF00CC', - '#FF00FF', - '#FF3300', - '#FF3333', - '#FF3366', - '#FF3399', - '#FF33CC', - '#FF33FF', - '#FF6600', - '#FF6633', - '#FF9900', - '#FF9933', - '#FFCC00', - '#FFCC33' -]; - -/** - * Currently only WebKit-based Web Inspectors, Firefox >= v31, - * and the Firebug extension (any Firefox version) are known - * to support "%c" CSS customizations. - * - * TODO: add a `localStorage` variable to explicitly enable/disable colors - */ + /** + * Convert regexp to namespace + * + * @param {RegExp} regxep + * @return {String} namespace + * @api private + */ + function toNamespace(regexp) { + return regexp + .toString() + .substring(2, regexp.toString().length - 2) + .replace(/\.\*\?$/, '*') + } -// eslint-disable-next-line complexity -function useColors() { - // NB: In an Electron preload script, document will be defined but not fully - // initialized. Since we know we're in Chrome, we'll just detect this case - // explicitly - if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) { - return true; - } - - // Internet Explorer and Edge do not support colors. - if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { - return false; - } - - let m; - - // Is webkit? http://stackoverflow.com/a/16459606/376773 - // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 - return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) || - // Is firebug? http://stackoverflow.com/a/398120/376773 - (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) || - // Is firefox >= v31? - // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages - (typeof navigator !== 'undefined' && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && parseInt(m[1], 10) >= 31) || - // Double check webkit in userAgent just in case we are in a worker - (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); -} - -/** - * Colorize log arguments if enabled. - * - * @api public - */ + /** + * Coerce `val`. + * + * @param {Mixed} val + * @return {Mixed} + * @api private + */ + function coerce(val) { + if (val instanceof Error) { + return val.stack || val.message + } + return val + } -function formatArgs(args) { - args[0] = (this.useColors ? '%c' : '') + - this.namespace + - (this.useColors ? ' %c' : ' ') + - args[0] + - (this.useColors ? '%c ' : ' ') + - '+' + module.exports.humanize(this.diff); - - if (!this.useColors) { - return; - } - - const c = 'color: ' + this.color; - args.splice(1, 0, c, 'color: inherit'); - - // The final "%c" is somewhat tricky, because there could be other - // arguments passed either before or after the %c, so we need to - // figure out the correct index to insert the CSS into - let index = 0; - let lastC = 0; - args[0].replace(/%[a-zA-Z%]/g, match => { - if (match === '%%') { - return; - } - index++; - if (match === '%c') { - // We only are interested in the *last* %c - // (the user may have provided their own) - lastC = index; - } - }); - - args.splice(lastC, 0, c); -} - -/** - * Invokes `console.debug()` when available. - * No-op when `console.debug` is not a "function". - * If `console.debug` is not available, falls back - * to `console.log`. - * - * @api public - */ -exports.log = console.debug || console.log || (() => {}); + /** + * XXX DO NOT USE. This is a temporary stub function. + * XXX It WILL be removed in the next major release. + */ + function destroy() { + console.warn( + 'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.' + ) + } -/** - * Save `namespaces`. - * - * @param {String} namespaces - * @api private - */ -function save(namespaces) { - try { - if (namespaces) { - exports.storage.setItem('debug', namespaces); - } else { - exports.storage.removeItem('debug'); - } - } catch (error) { - // Swallow - // XXX (@Qix-) should we be logging these? - } -} - -/** - * Load `namespaces`. - * - * @return {String} returns the previously persisted debug modes - * @api private - */ -function load() { - let r; - try { - r = exports.storage.getItem('debug'); - } catch (error) { - // Swallow - // XXX (@Qix-) should we be logging these? - } - - // If debug isn't set in LS, and we're in Electron, try to load $DEBUG - if (!r && typeof process !== 'undefined' && 'env' in process) { - r = process.env.DEBUG; - } - - return r; -} - -/** - * Localstorage attempts to return the localstorage. - * - * This is necessary because safari throws - * when a user disables cookies/localstorage - * and you attempt to access it. - * - * @return {LocalStorage} - * @api private - */ + createDebug.enable(createDebug.load()) -function localstorage() { - try { - // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context - // The Browser also has localStorage in the global context. - return localStorage; - } catch (error) { - // Swallow - // XXX (@Qix-) should we be logging these? - } -} + return createDebug + } -module.exports = __nccwpck_require__(46243)(exports); + module.exports = setup -const {formatters} = module.exports; + /***/ + }, -/** - * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. - */ + /***/ 38237: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + /** + * Detect Electron renderer / nwjs process, which is node, but we should + * treat as a browser. + */ -formatters.j = function (v) { - try { - return JSON.stringify(v); - } catch (error) { - return '[UnexpectedJSONParseError]: ' + error.message; - } -}; + if ( + typeof process === 'undefined' || + process.type === 'renderer' || + process.browser === true || + process.__nwjs + ) { + module.exports = __nccwpck_require__(28222) + } else { + module.exports = __nccwpck_require__(35332) + } + /***/ + }, -/***/ }), + /***/ 35332: /***/ (module, exports, __nccwpck_require__) => { + /** + * Module dependencies. + */ -/***/ 46243: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + const tty = __nccwpck_require__(76224) + const util = __nccwpck_require__(73837) + /** + * This is the Node.js implementation of `debug()`. + */ -/** - * This is the common logic for both the Node.js and web browser - * implementations of `debug()`. - */ + exports.init = init + exports.log = log + exports.formatArgs = formatArgs + exports.save = save + exports.load = load + exports.useColors = useColors + exports.destroy = util.deprecate( + () => {}, + 'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.' + ) -function setup(env) { - createDebug.debug = createDebug; - createDebug.default = createDebug; - createDebug.coerce = coerce; - createDebug.disable = disable; - createDebug.enable = enable; - createDebug.enabled = enabled; - createDebug.humanize = __nccwpck_require__(80900); - createDebug.destroy = destroy; - - Object.keys(env).forEach(key => { - createDebug[key] = env[key]; - }); - - /** - * The currently active debug mode names, and names to skip. - */ - - createDebug.names = []; - createDebug.skips = []; - - /** - * Map of special "%n" handling functions, for the debug "format" argument. - * - * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N". - */ - createDebug.formatters = {}; - - /** - * Selects a color for a debug namespace - * @param {String} namespace The namespace string for the debug instance to be colored - * @return {Number|String} An ANSI color code for the given namespace - * @api private - */ - function selectColor(namespace) { - let hash = 0; - - for (let i = 0; i < namespace.length; i++) { - hash = ((hash << 5) - hash) + namespace.charCodeAt(i); - hash |= 0; // Convert to 32bit integer - } - - return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; - } - createDebug.selectColor = selectColor; - - /** - * Create a debugger with the given `namespace`. - * - * @param {String} namespace - * @return {Function} - * @api public - */ - function createDebug(namespace) { - let prevTime; - let enableOverride = null; - let namespacesCache; - let enabledCache; - - function debug(...args) { - // Disabled? - if (!debug.enabled) { - return; - } - - const self = debug; - - // Set `diff` timestamp - const curr = Number(new Date()); - const ms = curr - (prevTime || curr); - self.diff = ms; - self.prev = prevTime; - self.curr = curr; - prevTime = curr; - - args[0] = createDebug.coerce(args[0]); - - if (typeof args[0] !== 'string') { - // Anything else let's inspect with %O - args.unshift('%O'); - } - - // Apply any `formatters` transformations - let index = 0; - args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { - // If we encounter an escaped % then don't increase the array index - if (match === '%%') { - return '%'; - } - index++; - const formatter = createDebug.formatters[format]; - if (typeof formatter === 'function') { - const val = args[index]; - match = formatter.call(self, val); - - // Now we need to remove `args[index]` since it's inlined in the `format` - args.splice(index, 1); - index--; - } - return match; - }); - - // Apply env-specific formatting (colors, etc.) - createDebug.formatArgs.call(self, args); - - const logFn = self.log || createDebug.log; - logFn.apply(self, args); - } - - debug.namespace = namespace; - debug.useColors = createDebug.useColors(); - debug.color = createDebug.selectColor(namespace); - debug.extend = extend; - debug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release. - - Object.defineProperty(debug, 'enabled', { - enumerable: true, - configurable: false, - get: () => { - if (enableOverride !== null) { - return enableOverride; - } - if (namespacesCache !== createDebug.namespaces) { - namespacesCache = createDebug.namespaces; - enabledCache = createDebug.enabled(namespace); - } - - return enabledCache; - }, - set: v => { - enableOverride = v; - } - }); - - // Env-specific initialization logic for debug instances - if (typeof createDebug.init === 'function') { - createDebug.init(debug); - } - - return debug; - } - - function extend(namespace, delimiter) { - const newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace); - newDebug.log = this.log; - return newDebug; - } - - /** - * Enables a debug mode by namespaces. This can include modes - * separated by a colon and wildcards. - * - * @param {String} namespaces - * @api public - */ - function enable(namespaces) { - createDebug.save(namespaces); - createDebug.namespaces = namespaces; - - createDebug.names = []; - createDebug.skips = []; - - let i; - const split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/); - const len = split.length; - - for (i = 0; i < len; i++) { - if (!split[i]) { - // ignore empty strings - continue; - } - - namespaces = split[i].replace(/\*/g, '.*?'); - - if (namespaces[0] === '-') { - createDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$')); - } else { - createDebug.names.push(new RegExp('^' + namespaces + '$')); - } - } - } - - /** - * Disable debug output. - * - * @return {String} namespaces - * @api public - */ - function disable() { - const namespaces = [ - ...createDebug.names.map(toNamespace), - ...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace) - ].join(','); - createDebug.enable(''); - return namespaces; - } - - /** - * Returns true if the given mode name is enabled, false otherwise. - * - * @param {String} name - * @return {Boolean} - * @api public - */ - function enabled(name) { - if (name[name.length - 1] === '*') { - return true; - } - - let i; - let len; - - for (i = 0, len = createDebug.skips.length; i < len; i++) { - if (createDebug.skips[i].test(name)) { - return false; - } - } - - for (i = 0, len = createDebug.names.length; i < len; i++) { - if (createDebug.names[i].test(name)) { - return true; - } - } - - return false; - } - - /** - * Convert regexp to namespace - * - * @param {RegExp} regxep - * @return {String} namespace - * @api private - */ - function toNamespace(regexp) { - return regexp.toString() - .substring(2, regexp.toString().length - 2) - .replace(/\.\*\?$/, '*'); - } - - /** - * Coerce `val`. - * - * @param {Mixed} val - * @return {Mixed} - * @api private - */ - function coerce(val) { - if (val instanceof Error) { - return val.stack || val.message; - } - return val; - } - - /** - * XXX DO NOT USE. This is a temporary stub function. - * XXX It WILL be removed in the next major release. - */ - function destroy() { - console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); - } - - createDebug.enable(createDebug.load()); - - return createDebug; -} - -module.exports = setup; - - -/***/ }), - -/***/ 38237: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -/** - * Detect Electron renderer / nwjs process, which is node, but we should - * treat as a browser. - */ + /** + * Colors. + */ -if (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) { - module.exports = __nccwpck_require__(28222); -} else { - module.exports = __nccwpck_require__(35332); -} + exports.colors = [6, 2, 3, 4, 5, 1] + try { + // Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json) + // eslint-disable-next-line import/no-extraneous-dependencies + const supportsColor = __nccwpck_require__(59318) -/***/ }), + if ( + supportsColor && + (supportsColor.stderr || supportsColor).level >= 2 + ) { + exports.colors = [ + 20, 21, 26, 27, 32, 33, 38, 39, 40, 41, 42, 43, 44, 45, 56, 57, 62, + 63, 68, 69, 74, 75, 76, 77, 78, 79, 80, 81, 92, 93, 98, 99, 112, + 113, 128, 129, 134, 135, 148, 149, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 178, 179, 184, 185, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 214, 215, 220, 221 + ] + } + } catch (error) { + // Swallow - we only care if `supports-color` is available; it doesn't have to be. + } -/***/ 35332: -/***/ ((module, exports, __nccwpck_require__) => { + /** + * Build up the default `inspectOpts` object from the environment variables. + * + * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js + */ -/** - * Module dependencies. - */ + exports.inspectOpts = Object.keys(process.env) + .filter(key => { + return /^debug_/i.test(key) + }) + .reduce((obj, key) => { + // Camel-case + const prop = key + .substring(6) + .toLowerCase() + .replace(/_([a-z])/g, (_, k) => { + return k.toUpperCase() + }) -const tty = __nccwpck_require__(76224); -const util = __nccwpck_require__(73837); + // Coerce string value into JS value + let val = process.env[key] + if (/^(yes|on|true|enabled)$/i.test(val)) { + val = true + } else if (/^(no|off|false|disabled)$/i.test(val)) { + val = false + } else if (val === 'null') { + val = null + } else { + val = Number(val) + } -/** - * This is the Node.js implementation of `debug()`. - */ + obj[prop] = val + return obj + }, {}) -exports.init = init; -exports.log = log; -exports.formatArgs = formatArgs; -exports.save = save; -exports.load = load; -exports.useColors = useColors; -exports.destroy = util.deprecate( - () => {}, - 'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.' -); - -/** - * Colors. - */ + /** + * Is stdout a TTY? Colored output is enabled when `true`. + */ -exports.colors = [6, 2, 3, 4, 5, 1]; - -try { - // Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json) - // eslint-disable-next-line import/no-extraneous-dependencies - const supportsColor = __nccwpck_require__(59318); - - if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) { - exports.colors = [ - 20, - 21, - 26, - 27, - 32, - 33, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 56, - 57, - 62, - 63, - 68, - 69, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 92, - 93, - 98, - 99, - 112, - 113, - 128, - 129, - 134, - 135, - 148, - 149, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 178, - 179, - 184, - 185, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 214, - 215, - 220, - 221 - ]; - } -} catch (error) { - // Swallow - we only care if `supports-color` is available; it doesn't have to be. -} - -/** - * Build up the default `inspectOpts` object from the environment variables. - * - * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js - */ + function useColors() { + return 'colors' in exports.inspectOpts + ? Boolean(exports.inspectOpts.colors) + : tty.isatty(process.stderr.fd) + } -exports.inspectOpts = Object.keys(process.env).filter(key => { - return /^debug_/i.test(key); -}).reduce((obj, key) => { - // Camel-case - const prop = key - .substring(6) - .toLowerCase() - .replace(/_([a-z])/g, (_, k) => { - return k.toUpperCase(); - }); - - // Coerce string value into JS value - let val = process.env[key]; - if (/^(yes|on|true|enabled)$/i.test(val)) { - val = true; - } else if (/^(no|off|false|disabled)$/i.test(val)) { - val = false; - } else if (val === 'null') { - val = null; - } else { - val = Number(val); - } - - obj[prop] = val; - return obj; -}, {}); - -/** - * Is stdout a TTY? Colored output is enabled when `true`. - */ + /** + * Adds ANSI color escape codes if enabled. + * + * @api public + */ -function useColors() { - return 'colors' in exports.inspectOpts ? - Boolean(exports.inspectOpts.colors) : - tty.isatty(process.stderr.fd); -} + function formatArgs(args) { + const { namespace: name, useColors } = this -/** - * Adds ANSI color escape codes if enabled. - * - * @api public - */ + if (useColors) { + const c = this.color + const colorCode = '\u001B[3' + (c < 8 ? c : '8;5;' + c) + const prefix = ` ${colorCode};1m${name} \u001B[0m` -function formatArgs(args) { - const {namespace: name, useColors} = this; - - if (useColors) { - const c = this.color; - const colorCode = '\u001B[3' + (c < 8 ? c : '8;5;' + c); - const prefix = ` ${colorCode};1m${name} \u001B[0m`; - - args[0] = prefix + args[0].split('\n').join('\n' + prefix); - args.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\u001B[0m'); - } else { - args[0] = getDate() + name + ' ' + args[0]; - } -} - -function getDate() { - if (exports.inspectOpts.hideDate) { - return ''; - } - return new Date().toISOString() + ' '; -} - -/** - * Invokes `util.formatWithOptions()` with the specified arguments and writes to stderr. - */ + args[0] = prefix + args[0].split('\n').join('\n' + prefix) + args.push( + colorCode + 'm+' + module.exports.humanize(this.diff) + '\u001B[0m' + ) + } else { + args[0] = getDate() + name + ' ' + args[0] + } + } -function log(...args) { - return process.stderr.write(util.formatWithOptions(exports.inspectOpts, ...args) + '\n'); -} + function getDate() { + if (exports.inspectOpts.hideDate) { + return '' + } + return new Date().toISOString() + ' ' + } -/** - * Save `namespaces`. - * - * @param {String} namespaces - * @api private - */ -function save(namespaces) { - if (namespaces) { - process.env.DEBUG = namespaces; - } else { - // If you set a process.env field to null or undefined, it gets cast to the - // string 'null' or 'undefined'. Just delete instead. - delete process.env.DEBUG; - } -} - -/** - * Load `namespaces`. - * - * @return {String} returns the previously persisted debug modes - * @api private - */ + /** + * Invokes `util.formatWithOptions()` with the specified arguments and writes to stderr. + */ -function load() { - return process.env.DEBUG; -} + function log(...args) { + return process.stderr.write( + util.formatWithOptions(exports.inspectOpts, ...args) + '\n' + ) + } -/** - * Init logic for `debug` instances. - * - * Create a new `inspectOpts` object in case `useColors` is set - * differently for a particular `debug` instance. - */ + /** + * Save `namespaces`. + * + * @param {String} namespaces + * @api private + */ + function save(namespaces) { + if (namespaces) { + process.env.DEBUG = namespaces + } else { + // If you set a process.env field to null or undefined, it gets cast to the + // string 'null' or 'undefined'. Just delete instead. + delete process.env.DEBUG + } + } -function init(debug) { - debug.inspectOpts = {}; + /** + * Load `namespaces`. + * + * @return {String} returns the previously persisted debug modes + * @api private + */ - const keys = Object.keys(exports.inspectOpts); - for (let i = 0; i < keys.length; i++) { - debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; - } -} + function load() { + return process.env.DEBUG + } -module.exports = __nccwpck_require__(46243)(exports); + /** + * Init logic for `debug` instances. + * + * Create a new `inspectOpts` object in case `useColors` is set + * differently for a particular `debug` instance. + */ -const {formatters} = module.exports; + function init(debug) { + debug.inspectOpts = {} -/** - * Map %o to `util.inspect()`, all on a single line. - */ + const keys = Object.keys(exports.inspectOpts) + for (let i = 0; i < keys.length; i++) { + debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]] + } + } -formatters.o = function (v) { - this.inspectOpts.colors = this.useColors; - return util.inspect(v, this.inspectOpts) - .split('\n') - .map(str => str.trim()) - .join(' '); -}; + module.exports = __nccwpck_require__(46243)(exports) -/** - * Map %O to `util.inspect()`, allowing multiple lines if needed. - */ + const { formatters } = module.exports -formatters.O = function (v) { - this.inspectOpts.colors = this.useColors; - return util.inspect(v, this.inspectOpts); -}; + /** + * Map %o to `util.inspect()`, all on a single line. + */ + formatters.o = function (v) { + this.inspectOpts.colors = this.useColors + return util + .inspect(v, this.inspectOpts) + .split('\n') + .map(str => str.trim()) + .join(' ') + } -/***/ }), + /** + * Map %O to `util.inspect()`, allowing multiple lines if needed. + */ -/***/ 12603: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + formatters.O = function (v) { + this.inspectOpts.colors = this.useColors + return util.inspect(v, this.inspectOpts) + } -"use strict"; + /***/ + }, + /***/ 12603: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' -const validator = __nccwpck_require__(61739); -const XMLParser = __nccwpck_require__(42380); -const XMLBuilder = __nccwpck_require__(80660); + const validator = __nccwpck_require__(61739) + const XMLParser = __nccwpck_require__(42380) + const XMLBuilder = __nccwpck_require__(80660) -module.exports = { - XMLParser: XMLParser, - XMLValidator: validator, - XMLBuilder: XMLBuilder -} + module.exports = { + XMLParser: XMLParser, + XMLValidator: validator, + XMLBuilder: XMLBuilder + } -/***/ }), + /***/ + }, -/***/ 38280: -/***/ ((__unused_webpack_module, exports) => { + /***/ 38280: /***/ (__unused_webpack_module, exports) => { + 'use strict' + + const 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' + const nameChar = + nameStartChar + '\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040' + const nameRegexp = '[' + nameStartChar + '][' + nameChar + ']*' + const regexName = new RegExp('^' + nameRegexp + '$') + + const getAllMatches = function (string, regex) { + const matches = [] + let match = regex.exec(string) + while (match) { + const allmatches = [] + allmatches.startIndex = regex.lastIndex - match[0].length + const len = match.length + for (let index = 0; index < len; index++) { + allmatches.push(match[index]) + } + matches.push(allmatches) + match = regex.exec(string) + } + return matches + } -"use strict"; + const isName = function (string) { + const match = regexName.exec(string) + return !(match === null || typeof match === 'undefined') + } + exports.isExist = function (v) { + return typeof v !== 'undefined' + } -const 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'; -const nameChar = nameStartChar + '\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040'; -const nameRegexp = '[' + nameStartChar + '][' + nameChar + ']*' -const regexName = new RegExp('^' + nameRegexp + '$'); + exports.isEmptyObject = function (obj) { + return Object.keys(obj).length === 0 + } -const getAllMatches = function(string, regex) { - const matches = []; - let match = regex.exec(string); - while (match) { - const allmatches = []; - allmatches.startIndex = regex.lastIndex - match[0].length; - const len = match.length; - for (let index = 0; index < len; index++) { - allmatches.push(match[index]); - } - matches.push(allmatches); - match = regex.exec(string); - } - return matches; -}; - -const isName = function(string) { - const match = regexName.exec(string); - return !(match === null || typeof match === 'undefined'); -}; - -exports.isExist = function(v) { - return typeof v !== 'undefined'; -}; - -exports.isEmptyObject = function(obj) { - return Object.keys(obj).length === 0; -}; - -/** - * Copy all the properties of a into b. - * @param {*} target - * @param {*} a - */ -exports.merge = function(target, a, arrayMode) { - if (a) { - const keys = Object.keys(a); // will return an array of own properties - const len = keys.length; //don't make it inline - for (let i = 0; i < len; i++) { - if (arrayMode === 'strict') { - target[keys[i]] = [ a[keys[i]] ]; - } else { - target[keys[i]] = a[keys[i]]; + /** + * Copy all the properties of a into b. + * @param {*} target + * @param {*} a + */ + exports.merge = function (target, a, arrayMode) { + if (a) { + const keys = Object.keys(a) // will return an array of own properties + const len = keys.length //don't make it inline + for (let i = 0; i < len; i++) { + if (arrayMode === 'strict') { + target[keys[i]] = [a[keys[i]]] + } else { + target[keys[i]] = a[keys[i]] + } + } + } } - } - } -}; -/* exports.merge =function (b,a){ + /* exports.merge =function (b,a){ return Object.assign(b,a); } */ -exports.getValue = function(v) { - if (exports.isExist(v)) { - return v; - } else { - return ''; - } -}; + exports.getValue = function (v) { + if (exports.isExist(v)) { + return v + } else { + return '' + } + } + + // const fakeCall = function(a) {return a;}; + // const fakeCallNoReturn = function() {}; -// const fakeCall = function(a) {return a;}; -// const fakeCallNoReturn = function() {}; + exports.isName = isName + exports.getAllMatches = getAllMatches + exports.nameRegexp = nameRegexp -exports.isName = isName; -exports.getAllMatches = getAllMatches; -exports.nameRegexp = nameRegexp; + /***/ + }, + /***/ 61739: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -/***/ }), + const util = __nccwpck_require__(38280) -/***/ 61739: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + const defaultOptions = { + allowBooleanAttributes: false, //A tag can have attributes without any value + unpairedTags: [] + } -"use strict"; + //const tagsPattern = new RegExp("<\\/?([\\w:\\-_\.]+)\\s*\/?>","g"); + exports.validate = function (xmlData, options) { + options = Object.assign({}, defaultOptions, options) + //xmlData = xmlData.replace(/(\r\n|\n|\r)/gm,"");//make it single line + //xmlData = xmlData.replace(/(^\s*<\?xml.*?\?>)/g,"");//Remove XML starting tag + //xmlData = xmlData.replace(/()/g,"");//Remove DOCTYPE + const tags = [] + let tagFound = false -const util = __nccwpck_require__(38280); + //indicates that the root tag has been closed (aka. depth 0 has been reached) + let reachedRoot = false -const defaultOptions = { - allowBooleanAttributes: false, //A tag can have attributes without any value - unpairedTags: [] -}; + if (xmlData[0] === '\ufeff') { + // check for byte order mark (BOM) + xmlData = xmlData.substr(1) + } -//const tagsPattern = new RegExp("<\\/?([\\w:\\-_\.]+)\\s*\/?>","g"); -exports.validate = function (xmlData, options) { - options = Object.assign({}, defaultOptions, options); + for (let i = 0; i < xmlData.length; i++) { + if (xmlData[i] === '<' && xmlData[i + 1] === '?') { + i += 2 + i = readPI(xmlData, i) + if (i.err) return i + } else if (xmlData[i] === '<') { + //starting of tag + //read until you reach to '>' avoiding any '>' in attribute value + let tagStartPos = i + i++ - //xmlData = xmlData.replace(/(\r\n|\n|\r)/gm,"");//make it single line - //xmlData = xmlData.replace(/(^\s*<\?xml.*?\?>)/g,"");//Remove XML starting tag - //xmlData = xmlData.replace(/()/g,"");//Remove DOCTYPE - const tags = []; - let tagFound = false; + if (xmlData[i] === '!') { + i = readCommentAndCDATA(xmlData, i) + continue + } else { + let closingTag = false + if (xmlData[i] === '/') { + //closing tag + closingTag = true + i++ + } + //read tagname + let tagName = '' + for ( + ; + i < xmlData.length && + xmlData[i] !== '>' && + xmlData[i] !== ' ' && + xmlData[i] !== '\t' && + xmlData[i] !== '\n' && + xmlData[i] !== '\r'; + i++ + ) { + tagName += xmlData[i] + } + tagName = tagName.trim() + //console.log(tagName); + + if (tagName[tagName.length - 1] === '/') { + //self closing tag without attributes + tagName = tagName.substring(0, tagName.length - 1) + //continue; + i-- + } + if (!validateTagName(tagName)) { + let msg + if (tagName.trim().length === 0) { + msg = "Invalid space after '<'." + } else { + msg = "Tag '" + tagName + "' is an invalid name." + } + return getErrorObject( + 'InvalidTag', + msg, + getLineNumberForPosition(xmlData, i) + ) + } - //indicates that the root tag has been closed (aka. depth 0 has been reached) - let reachedRoot = false; + const result = readAttributeStr(xmlData, i) + if (result === false) { + return getErrorObject( + 'InvalidAttr', + "Attributes for '" + tagName + "' have open quote.", + getLineNumberForPosition(xmlData, i) + ) + } + let attrStr = result.value + i = result.index + + if (attrStr[attrStr.length - 1] === '/') { + //self closing tag + const attrStrStart = i - attrStr.length + attrStr = attrStr.substring(0, attrStr.length - 1) + const isValid = validateAttributeString(attrStr, options) + if (isValid === true) { + tagFound = true + //continue; //text may presents after self closing tag + } else { + //the result from the nested function returns the position of the error within the attribute + //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 + //this gives us the absolute index in the entire xml, which we can use to find the line at last + return getErrorObject( + isValid.err.code, + isValid.err.msg, + getLineNumberForPosition( + xmlData, + attrStrStart + isValid.err.line + ) + ) + } + } else if (closingTag) { + if (!result.tagClosed) { + return getErrorObject( + 'InvalidTag', + "Closing tag '" + + tagName + + "' doesn't have proper closing.", + getLineNumberForPosition(xmlData, i) + ) + } else if (attrStr.trim().length > 0) { + return getErrorObject( + 'InvalidTag', + "Closing tag '" + + tagName + + "' can't have attributes or invalid starting.", + getLineNumberForPosition(xmlData, tagStartPos) + ) + } else if (tags.length === 0) { + return getErrorObject( + 'InvalidTag', + "Closing tag '" + tagName + "' has not been opened.", + getLineNumberForPosition(xmlData, tagStartPos) + ) + } else { + const otg = tags.pop() + if (tagName !== otg.tagName) { + let openPos = getLineNumberForPosition( + xmlData, + otg.tagStartPos + ) + return getErrorObject( + 'InvalidTag', + "Expected closing tag '" + + otg.tagName + + "' (opened in line " + + openPos.line + + ', col ' + + openPos.col + + ") instead of closing tag '" + + tagName + + "'.", + getLineNumberForPosition(xmlData, tagStartPos) + ) + } + + //when there are no more tags, we reached the root level. + if (tags.length == 0) { + reachedRoot = true + } + } + } else { + const isValid = validateAttributeString(attrStr, options) + if (isValid !== true) { + //the result from the nested function returns the position of the error within the attribute + //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 + //this gives us the absolute index in the entire xml, which we can use to find the line at last + return getErrorObject( + isValid.err.code, + isValid.err.msg, + getLineNumberForPosition( + xmlData, + i - attrStr.length + isValid.err.line + ) + ) + } - if (xmlData[0] === '\ufeff') { - // check for byte order mark (BOM) - xmlData = xmlData.substr(1); - } - - for (let i = 0; i < xmlData.length; i++) { - - if (xmlData[i] === '<' && xmlData[i+1] === '?') { - i+=2; - i = readPI(xmlData,i); - if (i.err) return i; - }else if (xmlData[i] === '<') { - //starting of tag - //read until you reach to '>' avoiding any '>' in attribute value - let tagStartPos = i; - i++; - - if (xmlData[i] === '!') { - i = readCommentAndCDATA(xmlData, i); - continue; - } else { - let closingTag = false; - if (xmlData[i] === '/') { - //closing tag - closingTag = true; - i++; - } - //read tagname - let tagName = ''; - for (; i < xmlData.length && - xmlData[i] !== '>' && - xmlData[i] !== ' ' && - xmlData[i] !== '\t' && - xmlData[i] !== '\n' && - xmlData[i] !== '\r'; i++ - ) { - tagName += xmlData[i]; - } - tagName = tagName.trim(); - //console.log(tagName); + //if the root level has been reached before ... + if (reachedRoot === true) { + return getErrorObject( + 'InvalidXml', + 'Multiple possible root nodes found.', + getLineNumberForPosition(xmlData, i) + ) + } else if (options.unpairedTags.indexOf(tagName) !== -1) { + //don't push into stack + } else { + tags.push({ tagName, tagStartPos }) + } + tagFound = true + } - if (tagName[tagName.length - 1] === '/') { - //self closing tag without attributes - tagName = tagName.substring(0, tagName.length - 1); - //continue; - i--; - } - if (!validateTagName(tagName)) { - let msg; - if (tagName.trim().length === 0) { - msg = "Invalid space after '<'."; + //skip tag text value + //It may include comments and CDATA value + for (i++; i < xmlData.length; i++) { + if (xmlData[i] === '<') { + if (xmlData[i + 1] === '!') { + //comment or CADATA + i++ + i = readCommentAndCDATA(xmlData, i) + continue + } else if (xmlData[i + 1] === '?') { + i = readPI(xmlData, ++i) + if (i.err) return i + } else { + break + } + } else if (xmlData[i] === '&') { + const afterAmp = validateAmpersand(xmlData, i) + if (afterAmp == -1) + return getErrorObject( + 'InvalidChar', + "char '&' is not expected.", + getLineNumberForPosition(xmlData, i) + ) + i = afterAmp + } else { + if (reachedRoot === true && !isWhiteSpace(xmlData[i])) { + return getErrorObject( + 'InvalidXml', + 'Extra text at the end', + getLineNumberForPosition(xmlData, i) + ) + } + } + } //end of reading tag text value + if (xmlData[i] === '<') { + i-- + } + } } else { - msg = "Tag '"+tagName+"' is an invalid name."; + if (isWhiteSpace(xmlData[i])) { + continue + } + return getErrorObject( + 'InvalidChar', + "char '" + xmlData[i] + "' is not expected.", + getLineNumberForPosition(xmlData, i) + ) } - return getErrorObject('InvalidTag', msg, getLineNumberForPosition(xmlData, i)); } - const result = readAttributeStr(xmlData, i); - if (result === false) { - return getErrorObject('InvalidAttr', "Attributes for '"+tagName+"' have open quote.", getLineNumberForPosition(xmlData, i)); - } - let attrStr = result.value; - i = result.index; - - if (attrStr[attrStr.length - 1] === '/') { - //self closing tag - const attrStrStart = i - attrStr.length; - attrStr = attrStr.substring(0, attrStr.length - 1); - const isValid = validateAttributeString(attrStr, options); - if (isValid === true) { - tagFound = true; - //continue; //text may presents after self closing tag - } else { - //the result from the nested function returns the position of the error within the attribute - //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 - //this gives us the absolute index in the entire xml, which we can use to find the line at last - return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, attrStrStart + isValid.err.line)); - } - } else if (closingTag) { - if (!result.tagClosed) { - return getErrorObject('InvalidTag', "Closing tag '"+tagName+"' doesn't have proper closing.", getLineNumberForPosition(xmlData, i)); - } else if (attrStr.trim().length > 0) { - return getErrorObject('InvalidTag', "Closing tag '"+tagName+"' can't have attributes or invalid starting.", getLineNumberForPosition(xmlData, tagStartPos)); - } else if (tags.length === 0) { - return getErrorObject('InvalidTag', "Closing tag '"+tagName+"' has not been opened.", getLineNumberForPosition(xmlData, tagStartPos)); - } else { - const otg = tags.pop(); - if (tagName !== otg.tagName) { - let openPos = getLineNumberForPosition(xmlData, otg.tagStartPos); - return getErrorObject('InvalidTag', - "Expected closing tag '"+otg.tagName+"' (opened in line "+openPos.line+", col "+openPos.col+") instead of closing tag '"+tagName+"'.", - getLineNumberForPosition(xmlData, tagStartPos)); + if (!tagFound) { + return getErrorObject('InvalidXml', 'Start tag expected.', 1) + } else if (tags.length == 1) { + return getErrorObject( + 'InvalidTag', + "Unclosed tag '" + tags[0].tagName + "'.", + getLineNumberForPosition(xmlData, tags[0].tagStartPos) + ) + } else if (tags.length > 0) { + return getErrorObject( + 'InvalidXml', + "Invalid '" + + JSON.stringify( + tags.map(t => t.tagName), + null, + 4 + ).replace(/\r?\n/g, '') + + "' found.", + { line: 1, col: 1 } + ) + } + + return true + } + + function isWhiteSpace(char) { + return char === ' ' || char === '\t' || char === '\n' || char === '\r' + } + /** + * Read Processing insstructions and skip + * @param {*} xmlData + * @param {*} i + */ + function readPI(xmlData, i) { + const start = i + for (; i < xmlData.length; i++) { + if (xmlData[i] == '?' || xmlData[i] == ' ') { + //tagname + const tagname = xmlData.substr(start, i - start) + if (i > 5 && tagname === 'xml') { + return getErrorObject( + 'InvalidXml', + 'XML declaration allowed only at the start of the document.', + getLineNumberForPosition(xmlData, i) + ) + } else if (xmlData[i] == '?' && xmlData[i + 1] == '>') { + //check if valid attribut string + i++ + break + } else { + continue } + } + } + return i + } - //when there are no more tags, we reached the root level. - if (tags.length == 0) { - reachedRoot = true; + function readCommentAndCDATA(xmlData, i) { + if ( + xmlData.length > i + 5 && + xmlData[i + 1] === '-' && + xmlData[i + 2] === '-' + ) { + //comment + for (i += 3; i < xmlData.length; i++) { + if ( + xmlData[i] === '-' && + xmlData[i + 1] === '-' && + xmlData[i + 2] === '>' + ) { + i += 2 + break } } - } else { - const isValid = validateAttributeString(attrStr, options); - if (isValid !== true) { - //the result from the nested function returns the position of the error within the attribute - //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 - //this gives us the absolute index in the entire xml, which we can use to find the line at last - return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, i - attrStr.length + isValid.err.line)); - } - - //if the root level has been reached before ... - if (reachedRoot === true) { - return getErrorObject('InvalidXml', 'Multiple possible root nodes found.', getLineNumberForPosition(xmlData, i)); - } else if(options.unpairedTags.indexOf(tagName) !== -1){ - //don't push into stack - } else { - tags.push({tagName, tagStartPos}); + } else if ( + xmlData.length > i + 8 && + xmlData[i + 1] === 'D' && + xmlData[i + 2] === 'O' && + xmlData[i + 3] === 'C' && + xmlData[i + 4] === 'T' && + xmlData[i + 5] === 'Y' && + xmlData[i + 6] === 'P' && + xmlData[i + 7] === 'E' + ) { + let angleBracketsCount = 1 + for (i += 8; i < xmlData.length; i++) { + if (xmlData[i] === '<') { + angleBracketsCount++ + } else if (xmlData[i] === '>') { + angleBracketsCount-- + if (angleBracketsCount === 0) { + break + } + } + } + } else if ( + xmlData.length > i + 9 && + xmlData[i + 1] === '[' && + xmlData[i + 2] === 'C' && + xmlData[i + 3] === 'D' && + xmlData[i + 4] === 'A' && + xmlData[i + 5] === 'T' && + xmlData[i + 6] === 'A' && + xmlData[i + 7] === '[' + ) { + for (i += 8; i < xmlData.length; i++) { + if ( + xmlData[i] === ']' && + xmlData[i + 1] === ']' && + xmlData[i + 2] === '>' + ) { + i += 2 + break + } } - tagFound = true; } - //skip tag text value - //It may include comments and CDATA value - for (i++; i < xmlData.length; i++) { - if (xmlData[i] === '<') { - if (xmlData[i + 1] === '!') { - //comment or CADATA - i++; - i = readCommentAndCDATA(xmlData, i); - continue; - } else if (xmlData[i+1] === '?') { - i = readPI(xmlData, ++i); - if (i.err) return i; - } else{ - break; - } - } else if (xmlData[i] === '&') { - const afterAmp = validateAmpersand(xmlData, i); - if (afterAmp == -1) - return getErrorObject('InvalidChar', "char '&' is not expected.", getLineNumberForPosition(xmlData, i)); - i = afterAmp; - }else{ - if (reachedRoot === true && !isWhiteSpace(xmlData[i])) { - return getErrorObject('InvalidXml', "Extra text at the end", getLineNumberForPosition(xmlData, i)); - } - } - } //end of reading tag text value - if (xmlData[i] === '<') { - i--; - } - } - } else { - if ( isWhiteSpace(xmlData[i])) { - continue; - } - return getErrorObject('InvalidChar', "char '"+xmlData[i]+"' is not expected.", getLineNumberForPosition(xmlData, i)); - } - } + return i + } - if (!tagFound) { - return getErrorObject('InvalidXml', 'Start tag expected.', 1); - }else if (tags.length == 1) { - return getErrorObject('InvalidTag', "Unclosed tag '"+tags[0].tagName+"'.", getLineNumberForPosition(xmlData, tags[0].tagStartPos)); - }else if (tags.length > 0) { - return getErrorObject('InvalidXml', "Invalid '"+ - JSON.stringify(tags.map(t => t.tagName), null, 4).replace(/\r?\n/g, '')+ - "' found.", {line: 1, col: 1}); - } + const doubleQuote = '"' + const singleQuote = "'" - return true; -}; + /** + * Keep reading xmlData until '<' is found outside the attribute value. + * @param {string} xmlData + * @param {number} i + */ + function readAttributeStr(xmlData, i) { + let attrStr = '' + let startChar = '' + let tagClosed = false + for (; i < xmlData.length; i++) { + if (xmlData[i] === doubleQuote || xmlData[i] === singleQuote) { + if (startChar === '') { + startChar = xmlData[i] + } else if (startChar !== xmlData[i]) { + //if vaue is enclosed with double quote then single quotes are allowed inside the value and vice versa + } else { + startChar = '' + } + } else if (xmlData[i] === '>') { + if (startChar === '') { + tagClosed = true + break + } + } + attrStr += xmlData[i] + } + if (startChar !== '') { + return false + } -function isWhiteSpace(char){ - return char === ' ' || char === '\t' || char === '\n' || char === '\r'; -} -/** - * Read Processing insstructions and skip - * @param {*} xmlData - * @param {*} i - */ -function readPI(xmlData, i) { - const start = i; - for (; i < xmlData.length; i++) { - if (xmlData[i] == '?' || xmlData[i] == ' ') { - //tagname - const tagname = xmlData.substr(start, i - start); - if (i > 5 && tagname === 'xml') { - return getErrorObject('InvalidXml', 'XML declaration allowed only at the start of the document.', getLineNumberForPosition(xmlData, i)); - } else if (xmlData[i] == '?' && xmlData[i + 1] == '>') { - //check if valid attribut string - i++; - break; - } else { - continue; + return { + value: attrStr, + index: i, + tagClosed: tagClosed + } } - } - } - return i; -} -function readCommentAndCDATA(xmlData, i) { - if (xmlData.length > i + 5 && xmlData[i + 1] === '-' && xmlData[i + 2] === '-') { - //comment - for (i += 3; i < xmlData.length; i++) { - if (xmlData[i] === '-' && xmlData[i + 1] === '-' && xmlData[i + 2] === '>') { - i += 2; - break; - } - } - } else if ( - xmlData.length > i + 8 && - xmlData[i + 1] === 'D' && - xmlData[i + 2] === 'O' && - xmlData[i + 3] === 'C' && - xmlData[i + 4] === 'T' && - xmlData[i + 5] === 'Y' && - xmlData[i + 6] === 'P' && - xmlData[i + 7] === 'E' - ) { - let angleBracketsCount = 1; - for (i += 8; i < xmlData.length; i++) { - if (xmlData[i] === '<') { - angleBracketsCount++; - } else if (xmlData[i] === '>') { - angleBracketsCount--; - if (angleBracketsCount === 0) { - break; + /** + * Select all the attributes whether valid or invalid. + */ + const validAttrStrRegxp = new RegExp( + '(\\s*)([^\\s=]+)(\\s*=)?(\\s*([\'"])(([\\s\\S])*?)\\5)?', + 'g' + ) + + //attr, ="sd", a="amit's", a="sd"b="saf", ab cd="" + + function validateAttributeString(attrStr, options) { + //console.log("start:"+attrStr+":end"); + + //if(attrStr.trim().length === 0) return true; //empty string + + const matches = util.getAllMatches(attrStr, validAttrStrRegxp) + const attrNames = {} + + for (let i = 0; i < matches.length; i++) { + if (matches[i][1].length === 0) { + //nospace before attribute name: a="sd"b="saf" + return getErrorObject( + 'InvalidAttr', + "Attribute '" + matches[i][2] + "' has no space in starting.", + getPositionFromMatch(matches[i]) + ) + } else if ( + matches[i][3] !== undefined && + matches[i][4] === undefined + ) { + return getErrorObject( + 'InvalidAttr', + "Attribute '" + matches[i][2] + "' is without value.", + getPositionFromMatch(matches[i]) + ) + } else if ( + matches[i][3] === undefined && + !options.allowBooleanAttributes + ) { + //independent attribute: ab + return getErrorObject( + 'InvalidAttr', + "boolean attribute '" + matches[i][2] + "' is not allowed.", + getPositionFromMatch(matches[i]) + ) + } + /* else if(matches[i][6] === undefined){//attribute without value: ab= + return { err: { code:"InvalidAttr",msg:"attribute " + matches[i][2] + " has no value assigned."}}; + } */ + const attrName = matches[i][2] + if (!validateAttrName(attrName)) { + return getErrorObject( + 'InvalidAttr', + "Attribute '" + attrName + "' is an invalid name.", + getPositionFromMatch(matches[i]) + ) + } + if (!attrNames.hasOwnProperty(attrName)) { + //check for duplicate attribute. + attrNames[attrName] = 1 + } else { + return getErrorObject( + 'InvalidAttr', + "Attribute '" + attrName + "' is repeated.", + getPositionFromMatch(matches[i]) + ) + } } + + return true } - } - } else if ( - xmlData.length > i + 9 && - xmlData[i + 1] === '[' && - xmlData[i + 2] === 'C' && - xmlData[i + 3] === 'D' && - xmlData[i + 4] === 'A' && - xmlData[i + 5] === 'T' && - xmlData[i + 6] === 'A' && - xmlData[i + 7] === '[' - ) { - for (i += 8; i < xmlData.length; i++) { - if (xmlData[i] === ']' && xmlData[i + 1] === ']' && xmlData[i + 2] === '>') { - i += 2; - break; - } - } - } - return i; -} + function validateNumberAmpersand(xmlData, i) { + let re = /\d/ + if (xmlData[i] === 'x') { + i++ + re = /[\da-fA-F]/ + } + for (; i < xmlData.length; i++) { + if (xmlData[i] === ';') return i + if (!xmlData[i].match(re)) break + } + return -1 + } -const doubleQuote = '"'; -const singleQuote = "'"; + function validateAmpersand(xmlData, i) { + // https://www.w3.org/TR/xml/#dt-charref + i++ + if (xmlData[i] === ';') return -1 + if (xmlData[i] === '#') { + i++ + return validateNumberAmpersand(xmlData, i) + } + let count = 0 + for (; i < xmlData.length; i++, count++) { + if (xmlData[i].match(/\w/) && count < 20) continue + if (xmlData[i] === ';') break + return -1 + } + return i + } -/** - * Keep reading xmlData until '<' is found outside the attribute value. - * @param {string} xmlData - * @param {number} i - */ -function readAttributeStr(xmlData, i) { - let attrStr = ''; - let startChar = ''; - let tagClosed = false; - for (; i < xmlData.length; i++) { - if (xmlData[i] === doubleQuote || xmlData[i] === singleQuote) { - if (startChar === '') { - startChar = xmlData[i]; - } else if (startChar !== xmlData[i]) { - //if vaue is enclosed with double quote then single quotes are allowed inside the value and vice versa - } else { - startChar = ''; + function getErrorObject(code, message, lineNumber) { + return { + err: { + code: code, + msg: message, + line: lineNumber.line || lineNumber, + col: lineNumber.col + } + } } - } else if (xmlData[i] === '>') { - if (startChar === '') { - tagClosed = true; - break; + + function validateAttrName(attrName) { + return util.isName(attrName) } - } - attrStr += xmlData[i]; - } - if (startChar !== '') { - return false; - } - return { - value: attrStr, - index: i, - tagClosed: tagClosed - }; -} + // const startsWithXML = /^xml/i; -/** - * Select all the attributes whether valid or invalid. - */ -const validAttrStrRegxp = new RegExp('(\\s*)([^\\s=]+)(\\s*=)?(\\s*([\'"])(([\\s\\S])*?)\\5)?', 'g'); + function validateTagName(tagname) { + return util.isName(tagname) /* && !tagname.match(startsWithXML) */ + } -//attr, ="sd", a="amit's", a="sd"b="saf", ab cd="" + //this function returns the line number for the character at the given index + function getLineNumberForPosition(xmlData, index) { + const lines = xmlData.substring(0, index).split(/\r?\n/) + return { + line: lines.length, -function validateAttributeString(attrStr, options) { - //console.log("start:"+attrStr+":end"); + // column number is last line's length + 1, because column numbering starts at 1: + col: lines[lines.length - 1].length + 1 + } + } - //if(attrStr.trim().length === 0) return true; //empty string + //this function returns the position of the first character of match within attrStr + function getPositionFromMatch(match) { + return match.startIndex + match[1].length + } - const matches = util.getAllMatches(attrStr, validAttrStrRegxp); - const attrNames = {}; + /***/ + }, - for (let i = 0; i < matches.length; i++) { - if (matches[i][1].length === 0) { - //nospace before attribute name: a="sd"b="saf" - return getErrorObject('InvalidAttr', "Attribute '"+matches[i][2]+"' has no space in starting.", getPositionFromMatch(matches[i])) - } else if (matches[i][3] !== undefined && matches[i][4] === undefined) { - return getErrorObject('InvalidAttr', "Attribute '"+matches[i][2]+"' is without value.", getPositionFromMatch(matches[i])); - } else if (matches[i][3] === undefined && !options.allowBooleanAttributes) { - //independent attribute: ab - return getErrorObject('InvalidAttr', "boolean attribute '"+matches[i][2]+"' is not allowed.", getPositionFromMatch(matches[i])); - } - /* else if(matches[i][6] === undefined){//attribute without value: ab= - return { err: { code:"InvalidAttr",msg:"attribute " + matches[i][2] + " has no value assigned."}}; - } */ - const attrName = matches[i][2]; - if (!validateAttrName(attrName)) { - return getErrorObject('InvalidAttr', "Attribute '"+attrName+"' is an invalid name.", getPositionFromMatch(matches[i])); - } - if (!attrNames.hasOwnProperty(attrName)) { - //check for duplicate attribute. - attrNames[attrName] = 1; - } else { - return getErrorObject('InvalidAttr', "Attribute '"+attrName+"' is repeated.", getPositionFromMatch(matches[i])); - } - } + /***/ 80660: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + //parse Empty Node as self closing node + const buildFromOrderedJs = __nccwpck_require__(72462) + + const defaultOptions = { + attributeNamePrefix: '@_', + attributesGroupName: false, + textNodeName: '#text', + ignoreAttributes: true, + cdataPropName: false, + format: false, + indentBy: ' ', + suppressEmptyNode: false, + suppressUnpairedNode: true, + suppressBooleanAttributes: true, + tagValueProcessor: function (key, a) { + return a + }, + attributeValueProcessor: function (attrName, a) { + return a + }, + preserveOrder: false, + commentPropName: false, + unpairedTags: [], + entities: [ + { regex: new RegExp('&', 'g'), val: '&' }, //it must be on top + { regex: new RegExp('>', 'g'), val: '>' }, + { regex: new RegExp('<', 'g'), val: '<' }, + { regex: new RegExp("\'", 'g'), val: ''' }, + { regex: new RegExp('"', 'g'), val: '"' } + ], + processEntities: true, + stopNodes: [], + // transformTagName: false, + // transformAttributeName: false, + oneListGroup: false + } + + function Builder(options) { + this.options = Object.assign({}, defaultOptions, options) + if (this.options.ignoreAttributes || this.options.attributesGroupName) { + this.isAttribute = function (/*a*/) { + return false + } + } else { + this.attrPrefixLen = this.options.attributeNamePrefix.length + this.isAttribute = isAttribute + } - return true; -} + this.processTextOrObjNode = processTextOrObjNode -function validateNumberAmpersand(xmlData, i) { - let re = /\d/; - if (xmlData[i] === 'x') { - i++; - re = /[\da-fA-F]/; - } - for (; i < xmlData.length; i++) { - if (xmlData[i] === ';') - return i; - if (!xmlData[i].match(re)) - break; - } - return -1; -} - -function validateAmpersand(xmlData, i) { - // https://www.w3.org/TR/xml/#dt-charref - i++; - if (xmlData[i] === ';') - return -1; - if (xmlData[i] === '#') { - i++; - return validateNumberAmpersand(xmlData, i); - } - let count = 0; - for (; i < xmlData.length; i++, count++) { - if (xmlData[i].match(/\w/) && count < 20) - continue; - if (xmlData[i] === ';') - break; - return -1; - } - return i; -} - -function getErrorObject(code, message, lineNumber) { - return { - err: { - code: code, - msg: message, - line: lineNumber.line || lineNumber, - col: lineNumber.col, - }, - }; -} - -function validateAttrName(attrName) { - return util.isName(attrName); -} - -// const startsWithXML = /^xml/i; - -function validateTagName(tagname) { - return util.isName(tagname) /* && !tagname.match(startsWithXML) */; -} - -//this function returns the line number for the character at the given index -function getLineNumberForPosition(xmlData, index) { - const lines = xmlData.substring(0, index).split(/\r?\n/); - return { - line: lines.length, - - // column number is last line's length + 1, because column numbering starts at 1: - col: lines[lines.length - 1].length + 1 - }; -} - -//this function returns the position of the first character of match within attrStr -function getPositionFromMatch(match) { - return match.startIndex + match[1].length; -} - - -/***/ }), - -/***/ 80660: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -//parse Empty Node as self closing node -const buildFromOrderedJs = __nccwpck_require__(72462); - -const defaultOptions = { - attributeNamePrefix: '@_', - attributesGroupName: false, - textNodeName: '#text', - ignoreAttributes: true, - cdataPropName: false, - format: false, - indentBy: ' ', - suppressEmptyNode: false, - suppressUnpairedNode: true, - suppressBooleanAttributes: true, - tagValueProcessor: function(key, a) { - return a; - }, - attributeValueProcessor: function(attrName, a) { - return a; - }, - preserveOrder: false, - commentPropName: false, - unpairedTags: [], - entities: [ - { regex: new RegExp("&", "g"), val: "&" },//it must be on top - { regex: new RegExp(">", "g"), val: ">" }, - { regex: new RegExp("<", "g"), val: "<" }, - { regex: new RegExp("\'", "g"), val: "'" }, - { regex: new RegExp("\"", "g"), val: """ } - ], - processEntities: true, - stopNodes: [], - // transformTagName: false, - // transformAttributeName: false, - oneListGroup: false -}; - -function Builder(options) { - this.options = Object.assign({}, defaultOptions, options); - if (this.options.ignoreAttributes || this.options.attributesGroupName) { - this.isAttribute = function(/*a*/) { - return false; - }; - } else { - this.attrPrefixLen = this.options.attributeNamePrefix.length; - this.isAttribute = isAttribute; - } + if (this.options.format) { + this.indentate = indentate + this.tagEndChar = '>\n' + this.newLine = '\n' + } else { + this.indentate = function () { + return '' + } + this.tagEndChar = '>' + this.newLine = '' + } + } - this.processTextOrObjNode = processTextOrObjNode - - if (this.options.format) { - this.indentate = indentate; - this.tagEndChar = '>\n'; - this.newLine = '\n'; - } else { - this.indentate = function() { - return ''; - }; - this.tagEndChar = '>'; - this.newLine = ''; - } -} + Builder.prototype.build = function (jObj) { + if (this.options.preserveOrder) { + return buildFromOrderedJs(jObj, this.options) + } else { + if ( + Array.isArray(jObj) && + this.options.arrayNodeName && + this.options.arrayNodeName.length > 1 + ) { + jObj = { + [this.options.arrayNodeName]: jObj + } + } + return this.j2x(jObj, 0).val + } + } + + Builder.prototype.j2x = function (jObj, level) { + let attrStr = '' + let val = '' + for (let key in jObj) { + if (!Object.prototype.hasOwnProperty.call(jObj, key)) continue + if (typeof jObj[key] === 'undefined') { + // supress undefined node only if it is not an attribute + if (this.isAttribute(key)) { + val += '' + } + } else if (jObj[key] === null) { + // null attribute should be ignored by the attribute list, but should not cause the tag closing + if (this.isAttribute(key)) { + val += '' + } else if (key[0] === '?') { + val += this.indentate(level) + '<' + key + '?' + this.tagEndChar + } else { + val += this.indentate(level) + '<' + key + '/' + this.tagEndChar + } + // val += this.indentate(level) + '<' + key + '/' + this.tagEndChar; + } else if (jObj[key] instanceof Date) { + val += this.buildTextValNode(jObj[key], key, '', level) + } else if (typeof jObj[key] !== 'object') { + //premitive type + const attr = this.isAttribute(key) + if (attr) { + attrStr += this.buildAttrPairStr(attr, '' + jObj[key]) + } else { + //tag value + if (key === this.options.textNodeName) { + let newval = this.options.tagValueProcessor(key, '' + jObj[key]) + val += this.replaceEntitiesValue(newval) + } else { + val += this.buildTextValNode(jObj[key], key, '', level) + } + } + } else if (Array.isArray(jObj[key])) { + //repeated nodes + const arrLen = jObj[key].length + let listTagVal = '' + let listTagAttr = '' + for (let j = 0; j < arrLen; j++) { + const item = jObj[key][j] + if (typeof item === 'undefined') { + // supress undefined node + } else if (item === null) { + if (key[0] === '?') + val += + this.indentate(level) + '<' + key + '?' + this.tagEndChar + else + val += + this.indentate(level) + '<' + key + '/' + this.tagEndChar + // val += this.indentate(level) + '<' + key + '/' + this.tagEndChar; + } else if (typeof item === 'object') { + if (this.options.oneListGroup) { + const result = this.j2x(item, level + 1) + listTagVal += result.val + if ( + this.options.attributesGroupName && + item.hasOwnProperty(this.options.attributesGroupName) + ) { + listTagAttr += result.attrStr + } + } else { + listTagVal += this.processTextOrObjNode(item, key, level) + } + } else { + if (this.options.oneListGroup) { + let textValue = this.options.tagValueProcessor(key, item) + textValue = this.replaceEntitiesValue(textValue) + listTagVal += textValue + } else { + listTagVal += this.buildTextValNode(item, key, '', level) + } + } + } + if (this.options.oneListGroup) { + listTagVal = this.buildObjectNode( + listTagVal, + key, + listTagAttr, + level + ) + } + val += listTagVal + } else { + //nested node + if ( + this.options.attributesGroupName && + key === this.options.attributesGroupName + ) { + const Ks = Object.keys(jObj[key]) + const L = Ks.length + for (let j = 0; j < L; j++) { + attrStr += this.buildAttrPairStr(Ks[j], '' + jObj[key][Ks[j]]) + } + } else { + val += this.processTextOrObjNode(jObj[key], key, level) + } + } + } + return { attrStr: attrStr, val: val } + } -Builder.prototype.build = function(jObj) { - if(this.options.preserveOrder){ - return buildFromOrderedJs(jObj, this.options); - }else { - if(Array.isArray(jObj) && this.options.arrayNodeName && this.options.arrayNodeName.length > 1){ - jObj = { - [this.options.arrayNodeName] : jObj + Builder.prototype.buildAttrPairStr = function (attrName, val) { + val = this.options.attributeValueProcessor(attrName, '' + val) + val = this.replaceEntitiesValue(val) + if (this.options.suppressBooleanAttributes && val === 'true') { + return ' ' + attrName + } else return ' ' + attrName + '="' + val + '"' } - } - return this.j2x(jObj, 0).val; - } -}; - -Builder.prototype.j2x = function(jObj, level) { - let attrStr = ''; - let val = ''; - for (let key in jObj) { - if(!Object.prototype.hasOwnProperty.call(jObj, key)) continue; - if (typeof jObj[key] === 'undefined') { - // supress undefined node only if it is not an attribute - if (this.isAttribute(key)) { - val += ''; - } - } else if (jObj[key] === null) { - // null attribute should be ignored by the attribute list, but should not cause the tag closing - if (this.isAttribute(key)) { - val += ''; - } else if (key[0] === '?') { - val += this.indentate(level) + '<' + key + '?' + this.tagEndChar; - } else { - val += this.indentate(level) + '<' + key + '/' + this.tagEndChar; - } - // val += this.indentate(level) + '<' + key + '/' + this.tagEndChar; - } else if (jObj[key] instanceof Date) { - val += this.buildTextValNode(jObj[key], key, '', level); - } else if (typeof jObj[key] !== 'object') { - //premitive type - const attr = this.isAttribute(key); - if (attr) { - attrStr += this.buildAttrPairStr(attr, '' + jObj[key]); - }else { - //tag value - if (key === this.options.textNodeName) { - let newval = this.options.tagValueProcessor(key, '' + jObj[key]); - val += this.replaceEntitiesValue(newval); + + function processTextOrObjNode(object, key, level) { + const result = this.j2x(object, level + 1) + if ( + object[this.options.textNodeName] !== undefined && + Object.keys(object).length === 1 + ) { + return this.buildTextValNode( + object[this.options.textNodeName], + key, + result.attrStr, + level + ) } else { - val += this.buildTextValNode(jObj[key], key, '', level); - } - } - } else if (Array.isArray(jObj[key])) { - //repeated nodes - const arrLen = jObj[key].length; - let listTagVal = ""; - let listTagAttr = ""; - for (let j = 0; j < arrLen; j++) { - const item = jObj[key][j]; - if (typeof item === 'undefined') { - // supress undefined node - } else if (item === null) { - if(key[0] === "?") val += this.indentate(level) + '<' + key + '?' + this.tagEndChar; - else val += this.indentate(level) + '<' + key + '/' + this.tagEndChar; - // val += this.indentate(level) + '<' + key + '/' + this.tagEndChar; - } else if (typeof item === 'object') { - if(this.options.oneListGroup){ - const result = this.j2x(item, level + 1); - listTagVal += result.val; - if (this.options.attributesGroupName && item.hasOwnProperty(this.options.attributesGroupName)) { - listTagAttr += result.attrStr - } - }else{ - listTagVal += this.processTextOrObjNode(item, key, level) + return this.buildObjectNode(result.val, key, result.attrStr, level) + } + } + + Builder.prototype.buildObjectNode = function (val, key, attrStr, level) { + if (val === '') { + if (key[0] === '?') + return ( + this.indentate(level) + + '<' + + key + + attrStr + + '?' + + this.tagEndChar + ) + else { + return ( + this.indentate(level) + + '<' + + key + + attrStr + + this.closeTag(key) + + this.tagEndChar + ) } } else { - if (this.options.oneListGroup) { - let textValue = this.options.tagValueProcessor(key, item); - textValue = this.replaceEntitiesValue(textValue); - listTagVal += textValue; + let tagEndExp = '' + + val + + tagEndExp + ) + } else if ( + this.options.commentPropName !== false && + key === this.options.commentPropName && + piClosingChar.length === 0 + ) { + return this.indentate(level) + `` + this.newLine } else { - listTagVal += this.buildTextValNode(item, key, '', level); + return ( + this.indentate(level) + + '<' + + key + + attrStr + + piClosingChar + + this.tagEndChar + + val + + this.indentate(level) + + tagEndExp + ) } } } - if(this.options.oneListGroup){ - listTagVal = this.buildObjectNode(listTagVal, key, listTagAttr, level); - } - val += listTagVal; - } else { - //nested node - if (this.options.attributesGroupName && key === this.options.attributesGroupName) { - const Ks = Object.keys(jObj[key]); - const L = Ks.length; - for (let j = 0; j < L; j++) { - attrStr += this.buildAttrPairStr(Ks[j], '' + jObj[key][Ks[j]]); + + Builder.prototype.closeTag = function (key) { + let closeTag = '' + if (this.options.unpairedTags.indexOf(key) !== -1) { + //unpaired + if (!this.options.suppressUnpairedNode) closeTag = '/' + } else if (this.options.suppressEmptyNode) { + //empty + closeTag = '/' + } else { + closeTag = `>' + val + tagEndExp ); - } else if (this.options.commentPropName !== false && key === this.options.commentPropName && piClosingChar.length === 0) { - return this.indentate(level) + `` + this.newLine; - }else { - return ( - this.indentate(level) + '<' + key + attrStr + piClosingChar + this.tagEndChar + - val + - this.indentate(level) + tagEndExp ); - } - } -} - -Builder.prototype.closeTag = function(key){ - let closeTag = ""; - if(this.options.unpairedTags.indexOf(key) !== -1){ //unpaired - if(!this.options.suppressUnpairedNode) closeTag = "/" - }else if(this.options.suppressEmptyNode){ //empty - closeTag = "/"; - }else{ - closeTag = `>` + this.newLine; - }else if (this.options.commentPropName !== false && key === this.options.commentPropName) { - return this.indentate(level) + `` + this.newLine; - }else if(key[0] === "?") {//PI tag - return this.indentate(level) + '<' + key + attrStr+ '?' + this.tagEndChar; - }else{ - let textValue = this.options.tagValueProcessor(key, val); - textValue = this.replaceEntitiesValue(textValue); - - if( textValue === ''){ - return this.indentate(level) + '<' + key + attrStr + this.closeTag(key) + this.tagEndChar; - }else{ - return this.indentate(level) + '<' + key + attrStr + '>' + - textValue + - '` + this.newLine + } else if ( + this.options.commentPropName !== false && + key === this.options.commentPropName + ) { + return this.indentate(level) + `` + this.newLine + } else if (key[0] === '?') { + //PI tag + return ( + this.indentate(level) + '<' + key + attrStr + '?' + this.tagEndChar + ) + } else { + let textValue = this.options.tagValueProcessor(key, val) + textValue = this.replaceEntitiesValue(textValue) + + if (textValue === '') { + return ( + this.indentate(level) + + '<' + + key + + attrStr + + this.closeTag(key) + + this.tagEndChar + ) + } else { + return ( + this.indentate(level) + + '<' + + key + + attrStr + + '>' + + textValue + + ' 0 && this.options.processEntities){ - for (let i=0; i 0 && this.options.processEntities) { + for (let i = 0; i < this.options.entities.length; i++) { + const entity = this.options.entities[i] + textValue = textValue.replace(entity.regex, entity.val) + } + } + return textValue + } -module.exports = Builder; + function indentate(level) { + return this.options.indentBy.repeat(level) + } + function isAttribute(name /*, options*/) { + if ( + name.startsWith(this.options.attributeNamePrefix) && + name !== this.options.textNodeName + ) { + return name.substr(this.attrPrefixLen) + } else { + return false + } + } -/***/ }), + module.exports = Builder -/***/ 72462: -/***/ ((module) => { + /***/ + }, -const EOL = "\n"; + /***/ 72462: /***/ module => { + const EOL = '\n' -/** - * - * @param {array} jArray - * @param {any} options - * @returns - */ -function toXml(jArray, options) { - let indentation = ""; - if (options.format && options.indentBy.length > 0) { - indentation = EOL; - } - return arrToStr(jArray, options, "", indentation); -} + /** + * + * @param {array} jArray + * @param {any} options + * @returns + */ + function toXml(jArray, options) { + let indentation = '' + if (options.format && options.indentBy.length > 0) { + indentation = EOL + } + return arrToStr(jArray, options, '', indentation) + } -function arrToStr(arr, options, jPath, indentation) { - let xmlStr = ""; - let isPreviousElementTag = false; + function arrToStr(arr, options, jPath, indentation) { + let xmlStr = '' + let isPreviousElementTag = false - for (let i = 0; i < arr.length; i++) { - const tagObj = arr[i]; - const tagName = propName(tagObj); - if(tagName === undefined) continue; + for (let i = 0; i < arr.length; i++) { + const tagObj = arr[i] + const tagName = propName(tagObj) + if (tagName === undefined) continue - let newJPath = ""; - if (jPath.length === 0) newJPath = tagName - else newJPath = `${jPath}.${tagName}`; + let newJPath = '' + if (jPath.length === 0) newJPath = tagName + else newJPath = `${jPath}.${tagName}` - if (tagName === options.textNodeName) { - let tagText = tagObj[tagName]; + if (tagName === options.textNodeName) { + let tagText = tagObj[tagName] if (!isStopNode(newJPath, options)) { - tagText = options.tagValueProcessor(tagName, tagText); - tagText = replaceEntitiesValue(tagText, options); + tagText = options.tagValueProcessor(tagName, tagText) + tagText = replaceEntitiesValue(tagText, options) } if (isPreviousElementTag) { - xmlStr += indentation; + xmlStr += indentation } - xmlStr += tagText; - isPreviousElementTag = false; - continue; - } else if (tagName === options.cdataPropName) { + xmlStr += tagText + isPreviousElementTag = false + continue + } else if (tagName === options.cdataPropName) { if (isPreviousElementTag) { - xmlStr += indentation; - } - xmlStr += ``; - isPreviousElementTag = false; - continue; - } else if (tagName === options.commentPropName) { - xmlStr += indentation + ``; - isPreviousElementTag = true; - continue; - } else if (tagName[0] === "?") { - const attStr = attr_to_str(tagObj[":@"], options); - const tempInd = tagName === "?xml" ? "" : indentation; - let piTextNodeName = tagObj[tagName][0][options.textNodeName]; - piTextNodeName = piTextNodeName.length !== 0 ? " " + piTextNodeName : ""; //remove extra spacing - xmlStr += tempInd + `<${tagName}${piTextNodeName}${attStr}?>`; - isPreviousElementTag = true; - continue; - } - let newIdentation = indentation; - if (newIdentation !== "") { - newIdentation += options.indentBy; - } - const attStr = attr_to_str(tagObj[":@"], options); - const tagStart = indentation + `<${tagName}${attStr}`; - const tagValue = arrToStr(tagObj[tagName], options, newJPath, newIdentation); - if (options.unpairedTags.indexOf(tagName) !== -1) { - if (options.suppressUnpairedNode) xmlStr += tagStart + ">"; - else xmlStr += tagStart + "/>"; - } else if ((!tagValue || tagValue.length === 0) && options.suppressEmptyNode) { - xmlStr += tagStart + "/>"; - } else if (tagValue && tagValue.endsWith(">")) { - xmlStr += tagStart + `>${tagValue}${indentation}`; - } else { - xmlStr += tagStart + ">"; - if (tagValue && indentation !== "" && (tagValue.includes("/>") || tagValue.includes("` + isPreviousElementTag = false + continue + } else if (tagName === options.commentPropName) { + xmlStr += + indentation + `` + isPreviousElementTag = true + continue + } else if (tagName[0] === '?') { + const attStr = attr_to_str(tagObj[':@'], options) + const tempInd = tagName === '?xml' ? '' : indentation + let piTextNodeName = tagObj[tagName][0][options.textNodeName] + piTextNodeName = + piTextNodeName.length !== 0 ? ' ' + piTextNodeName : '' //remove extra spacing + xmlStr += tempInd + `<${tagName}${piTextNodeName}${attStr}?>` + isPreviousElementTag = true + continue + } + let newIdentation = indentation + if (newIdentation !== '') { + newIdentation += options.indentBy + } + const attStr = attr_to_str(tagObj[':@'], options) + const tagStart = indentation + `<${tagName}${attStr}` + const tagValue = arrToStr( + tagObj[tagName], + options, + newJPath, + newIdentation + ) + if (options.unpairedTags.indexOf(tagName) !== -1) { + if (options.suppressUnpairedNode) xmlStr += tagStart + '>' + else xmlStr += tagStart + '/>' + } else if ( + (!tagValue || tagValue.length === 0) && + options.suppressEmptyNode + ) { + xmlStr += tagStart + '/>' + } else if (tagValue && tagValue.endsWith('>')) { + xmlStr += tagStart + `>${tagValue}${indentation}` + } else { + xmlStr += tagStart + '>' + if ( + tagValue && + indentation !== '' && + (tagValue.includes('/>') || tagValue.includes('`; + xmlStr += `` + } + isPreviousElementTag = true } - isPreviousElementTag = true; - } - return xmlStr; -} + return xmlStr + } -function propName(obj) { - const keys = Object.keys(obj); - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; - if(!obj.hasOwnProperty(key)) continue; - if (key !== ":@") return key; - } -} - -function attr_to_str(attrMap, options) { - let attrStr = ""; - if (attrMap && !options.ignoreAttributes) { - for (let attr in attrMap) { - if(!attrMap.hasOwnProperty(attr)) continue; - let attrVal = options.attributeValueProcessor(attr, attrMap[attr]); - attrVal = replaceEntitiesValue(attrVal, options); + function propName(obj) { + const keys = Object.keys(obj) + for (let i = 0; i < keys.length; i++) { + const key = keys[i] + if (!obj.hasOwnProperty(key)) continue + if (key !== ':@') return key + } + } + + function attr_to_str(attrMap, options) { + let attrStr = '' + if (attrMap && !options.ignoreAttributes) { + for (let attr in attrMap) { + if (!attrMap.hasOwnProperty(attr)) continue + let attrVal = options.attributeValueProcessor(attr, attrMap[attr]) + attrVal = replaceEntitiesValue(attrVal, options) if (attrVal === true && options.suppressBooleanAttributes) { - attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}`; + attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}` } else { - attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}="${attrVal}"`; + attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}="${attrVal}"` } + } } - } - return attrStr; -} - -function isStopNode(jPath, options) { - jPath = jPath.substr(0, jPath.length - options.textNodeName.length - 1); - let tagName = jPath.substr(jPath.lastIndexOf(".") + 1); - for (let index in options.stopNodes) { - if (options.stopNodes[index] === jPath || options.stopNodes[index] === "*." + tagName) return true; - } - return false; -} + return attrStr + } -function replaceEntitiesValue(textValue, options) { - if (textValue && textValue.length > 0 && options.processEntities) { - for (let i = 0; i < options.entities.length; i++) { - const entity = options.entities[i]; - textValue = textValue.replace(entity.regex, entity.val); + function isStopNode(jPath, options) { + jPath = jPath.substr(0, jPath.length - options.textNodeName.length - 1) + let tagName = jPath.substr(jPath.lastIndexOf('.') + 1) + for (let index in options.stopNodes) { + if ( + options.stopNodes[index] === jPath || + options.stopNodes[index] === '*.' + tagName + ) + return true } - } - return textValue; -} -module.exports = toXml; - + return false + } -/***/ }), + function replaceEntitiesValue(textValue, options) { + if (textValue && textValue.length > 0 && options.processEntities) { + for (let i = 0; i < options.entities.length; i++) { + const entity = options.entities[i] + textValue = textValue.replace(entity.regex, entity.val) + } + } + return textValue + } + module.exports = toXml -/***/ 6072: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + /***/ + }, -const util = __nccwpck_require__(38280); + /***/ 6072: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + const util = __nccwpck_require__(38280) -//TODO: handle comments -function readDocType(xmlData, i){ - - const entities = {}; - if( xmlData[i + 3] === 'O' && - xmlData[i + 4] === 'C' && - xmlData[i + 5] === 'T' && - xmlData[i + 6] === 'Y' && - xmlData[i + 7] === 'P' && - xmlData[i + 8] === 'E') - { - i = i+9; - let angleBracketsCount = 1; - let hasBody = false, comment = false; - let exp = ""; - for(;i') { //Read tag content - if(comment){ - if( xmlData[i - 1] === "-" && xmlData[i - 2] === "-"){ - comment = false; - angleBracketsCount--; - } - }else{ - angleBracketsCount--; - } - if (angleBracketsCount === 0) { - break; + //TODO: handle comments + function readDocType(xmlData, i) { + const entities = {} + if ( + xmlData[i + 3] === 'O' && + xmlData[i + 4] === 'C' && + xmlData[i + 5] === 'T' && + xmlData[i + 6] === 'Y' && + xmlData[i + 7] === 'P' && + xmlData[i + 8] === 'E' + ) { + i = i + 9 + let angleBracketsCount = 1 + let hasBody = false, + comment = false + let exp = '' + for (; i < xmlData.length; i++) { + if (xmlData[i] === '<' && !comment) { + //Determine the tag type + if (hasBody && isEntity(xmlData, i)) { + i += 7 + ;[entityName, val, i] = readEntityExp(xmlData, i + 1) + if (val.indexOf('&') === -1) + //Parameter entities are not supported + entities[validateEntityName(entityName)] = { + regx: RegExp(`&${entityName};`, 'g'), + val: val + } + } else if (hasBody && isElement(xmlData, i)) + i += 8 //Not supported + else if (hasBody && isAttlist(xmlData, i)) + i += 8 //Not supported + else if (hasBody && isNotation(xmlData, i)) + i += 9 //Not supported + else if (isComment) comment = true + else throw new Error('Invalid DOCTYPE') + + angleBracketsCount++ + exp = '' + } else if (xmlData[i] === '>') { + //Read tag content + if (comment) { + if (xmlData[i - 1] === '-' && xmlData[i - 2] === '-') { + comment = false + angleBracketsCount-- } - }else if( xmlData[i] === '['){ - hasBody = true; - }else{ - exp += xmlData[i]; + } else { + angleBracketsCount-- + } + if (angleBracketsCount === 0) { + break + } + } else if (xmlData[i] === '[') { + hasBody = true + } else { + exp += xmlData[i] } + } + if (angleBracketsCount !== 0) { + throw new Error(`Unclosed DOCTYPE`) + } + } else { + throw new Error(`Invalid Tag instead of DOCTYPE`) } - if(angleBracketsCount !== 0){ - throw new Error(`Unclosed DOCTYPE`); - } - }else{ - throw new Error(`Invalid Tag instead of DOCTYPE`); - } - return {entities, i}; -} + return { entities, i } + } -function readEntityExp(xmlData,i){ - //External entities are not supported - // + function readEntityExp(xmlData, i) { + //External entities are not supported + // - //Parameter entities are not supported - // + //Parameter entities are not supported + // - //Internal entities are supported - // - - //read EntityName - let entityName = ""; - for (; i < xmlData.length && (xmlData[i] !== "'" && xmlData[i] !== '"' ); i++) { - // if(xmlData[i] === " ") continue; - // else - entityName += xmlData[i]; - } - entityName = entityName.trim(); - if(entityName.indexOf(" ") !== -1) throw new Error("External entites are not supported"); - - //read Entity Value - const startChar = xmlData[i++]; - let val = "" - for (; i < xmlData.length && xmlData[i] !== startChar ; i++) { - val += xmlData[i]; - } - return [entityName, val, i]; -} - -function isComment(xmlData, i){ - if(xmlData[i+1] === '!' && - xmlData[i+2] === '-' && - xmlData[i+3] === '-') return true - return false -} -function isEntity(xmlData, i){ - if(xmlData[i+1] === '!' && - xmlData[i+2] === 'E' && - xmlData[i+3] === 'N' && - xmlData[i+4] === 'T' && - xmlData[i+5] === 'I' && - xmlData[i+6] === 'T' && - xmlData[i+7] === 'Y') return true - return false -} -function isElement(xmlData, i){ - if(xmlData[i+1] === '!' && - xmlData[i+2] === 'E' && - xmlData[i+3] === 'L' && - xmlData[i+4] === 'E' && - xmlData[i+5] === 'M' && - xmlData[i+6] === 'E' && - xmlData[i+7] === 'N' && - xmlData[i+8] === 'T') return true - return false -} - -function isAttlist(xmlData, i){ - if(xmlData[i+1] === '!' && - xmlData[i+2] === 'A' && - xmlData[i+3] === 'T' && - xmlData[i+4] === 'T' && - xmlData[i+5] === 'L' && - xmlData[i+6] === 'I' && - xmlData[i+7] === 'S' && - xmlData[i+8] === 'T') return true - return false -} -function isNotation(xmlData, i){ - if(xmlData[i+1] === '!' && - xmlData[i+2] === 'N' && - xmlData[i+3] === 'O' && - xmlData[i+4] === 'T' && - xmlData[i+5] === 'A' && - xmlData[i+6] === 'T' && - xmlData[i+7] === 'I' && - xmlData[i+8] === 'O' && - xmlData[i+9] === 'N') return true - return false -} - -function validateEntityName(name){ - if (util.isName(name)) - return name; - else - throw new Error(`Invalid entity name ${name}`); -} - -module.exports = readDocType; - - -/***/ }), - -/***/ 86993: -/***/ ((__unused_webpack_module, exports) => { - - -const defaultOptions = { - preserveOrder: false, - attributeNamePrefix: '@_', - attributesGroupName: false, - textNodeName: '#text', - ignoreAttributes: true, - removeNSPrefix: false, // remove NS from tag name or attribute name if true - allowBooleanAttributes: false, //a tag can have attributes without any value - //ignoreRootElement : false, - parseTagValue: true, - parseAttributeValue: false, - trimValues: true, //Trim string values of tag and attributes - cdataPropName: false, - numberParseOptions: { - hex: true, - leadingZeros: true, - eNotation: true - }, - tagValueProcessor: function(tagName, val) { - return val; - }, - attributeValueProcessor: function(attrName, val) { - return val; - }, - stopNodes: [], //nested tags will not be parsed even for errors - alwaysCreateTextNode: false, - isArray: () => false, - commentPropName: false, - unpairedTags: [], - processEntities: true, - htmlEntities: false, - ignoreDeclaration: false, - ignorePiTags: false, - transformTagName: false, - transformAttributeName: false, - updateTag: function(tagName, jPath, attrs){ - return tagName - }, - // skipEmptyListItem: false -}; - -const buildOptions = function(options) { - return Object.assign({}, defaultOptions, options); -}; - -exports.buildOptions = buildOptions; -exports.defaultOptions = defaultOptions; - -/***/ }), - -/***/ 25832: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -///@ts-check - -const util = __nccwpck_require__(38280); -const xmlNode = __nccwpck_require__(7462); -const readDocType = __nccwpck_require__(6072); -const toNumber = __nccwpck_require__(14526); - -// const regx = -// '<((!\\[CDATA\\[([\\s\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\/)(NAME)\\s*>))([^<]*)' -// .replace(/NAME/g, util.nameRegexp); - -//const tagsRegx = new RegExp("<(\\/?[\\w:\\-\._]+)([^>]*)>(\\s*"+cdataRegx+")*([^<]+)?","g"); -//const tagsRegx = new RegExp("<(\\/?)((\\w*:)?([\\w:\\-\._]+))([^>]*)>([^<]*)("+cdataRegx+"([^<]*))*([^<]+)?","g"); - -class OrderedObjParser{ - constructor(options){ - this.options = options; - this.currentNode = null; - this.tagsNodeStack = []; - this.docTypeEntities = {}; - this.lastEntities = { - "apos" : { regex: /&(apos|#39|#x27);/g, val : "'"}, - "gt" : { regex: /&(gt|#62|#x3E);/g, val : ">"}, - "lt" : { regex: /&(lt|#60|#x3C);/g, val : "<"}, - "quot" : { regex: /&(quot|#34|#x22);/g, val : "\""}, - }; - this.ampEntity = { regex: /&(amp|#38|#x26);/g, val : "&"}; - this.htmlEntities = { - "space": { regex: /&(nbsp|#160);/g, val: " " }, - // "lt" : { regex: /&(lt|#60);/g, val: "<" }, - // "gt" : { regex: /&(gt|#62);/g, val: ">" }, - // "amp" : { regex: /&(amp|#38);/g, val: "&" }, - // "quot" : { regex: /&(quot|#34);/g, val: "\"" }, - // "apos" : { regex: /&(apos|#39);/g, val: "'" }, - "cent" : { regex: /&(cent|#162);/g, val: "¢" }, - "pound" : { regex: /&(pound|#163);/g, val: "£" }, - "yen" : { regex: /&(yen|#165);/g, val: "¥" }, - "euro" : { regex: /&(euro|#8364);/g, val: "€" }, - "copyright" : { regex: /&(copy|#169);/g, val: "©" }, - "reg" : { regex: /&(reg|#174);/g, val: "®" }, - "inr" : { regex: /&(inr|#8377);/g, val: "₹" }, - "num_dec": { regex: /&#([0-9]{1,7});/g, val : (_, str) => String.fromCharCode(Number.parseInt(str, 10)) }, - "num_hex": { regex: /&#x([0-9a-fA-F]{1,6});/g, val : (_, str) => String.fromCharCode(Number.parseInt(str, 16)) }, - }; - this.addExternalEntities = addExternalEntities; - this.parseXml = parseXml; - this.parseTextData = parseTextData; - this.resolveNameSpace = resolveNameSpace; - this.buildAttributesMap = buildAttributesMap; - this.isItStopNode = isItStopNode; - this.replaceEntitiesValue = replaceEntitiesValue; - this.readStopNodeData = readStopNodeData; - this.saveTextToParentTag = saveTextToParentTag; - this.addChild = addChild; - } + //Internal entities are supported + // -} + //read EntityName + let entityName = '' + for ( + ; + i < xmlData.length && xmlData[i] !== "'" && xmlData[i] !== '"'; + i++ + ) { + // if(xmlData[i] === " ") continue; + // else + entityName += xmlData[i] + } + entityName = entityName.trim() + if (entityName.indexOf(' ') !== -1) + throw new Error('External entites are not supported') -function addExternalEntities(externalEntities){ - const entKeys = Object.keys(externalEntities); - for (let i = 0; i < entKeys.length; i++) { - const ent = entKeys[i]; - this.lastEntities[ent] = { - regex: new RegExp("&"+ent+";","g"), - val : externalEntities[ent] - } - } -} - -/** - * @param {string} val - * @param {string} tagName - * @param {string} jPath - * @param {boolean} dontTrim - * @param {boolean} hasAttributes - * @param {boolean} isLeafNode - * @param {boolean} escapeEntities - */ -function parseTextData(val, tagName, jPath, dontTrim, hasAttributes, isLeafNode, escapeEntities) { - if (val !== undefined) { - if (this.options.trimValues && !dontTrim) { - val = val.trim(); - } - if(val.length > 0){ - if(!escapeEntities) val = this.replaceEntitiesValue(val); - - const newval = this.options.tagValueProcessor(tagName, val, jPath, hasAttributes, isLeafNode); - if(newval === null || newval === undefined){ - //don't parse - return val; - }else if(typeof newval !== typeof val || newval !== val){ - //overwrite - return newval; - }else if(this.options.trimValues){ - return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions); - }else{ - const trimmedVal = val.trim(); - if(trimmedVal === val){ - return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions); - }else{ - return val; + //read Entity Value + const startChar = xmlData[i++] + let val = '' + for (; i < xmlData.length && xmlData[i] !== startChar; i++) { + val += xmlData[i] } + return [entityName, val, i] } - } - } -} - -function resolveNameSpace(tagname) { - if (this.options.removeNSPrefix) { - const tags = tagname.split(':'); - const prefix = tagname.charAt(0) === '/' ? '/' : ''; - if (tags[0] === 'xmlns') { - return ''; - } - if (tags.length === 2) { - tagname = prefix + tags[1]; - } - } - return tagname; -} - -//TODO: change regex to capture NS -//const attrsRegx = new RegExp("([\\w\\-\\.\\:]+)\\s*=\\s*(['\"])((.|\n)*?)\\2","gm"); -const attrsRegx = new RegExp('([^\\s=]+)\\s*(=\\s*([\'"])([\\s\\S]*?)\\3)?', 'gm'); - -function buildAttributesMap(attrStr, jPath, tagName) { - if (!this.options.ignoreAttributes && typeof attrStr === 'string') { - // attrStr = attrStr.replace(/\r?\n/g, ' '); - //attrStr = attrStr || attrStr.trim(); - - const matches = util.getAllMatches(attrStr, attrsRegx); - const len = matches.length; //don't make it inline - const attrs = {}; - for (let i = 0; i < len; i++) { - const attrName = this.resolveNameSpace(matches[i][1]); - let oldVal = matches[i][4]; - let aName = this.options.attributeNamePrefix + attrName; - if (attrName.length) { - if (this.options.transformAttributeName) { - aName = this.options.transformAttributeName(aName); - } - if(aName === "__proto__") aName = "#__proto__"; - if (oldVal !== undefined) { - if (this.options.trimValues) { - oldVal = oldVal.trim(); - } - oldVal = this.replaceEntitiesValue(oldVal); - const newVal = this.options.attributeValueProcessor(attrName, oldVal, jPath); - if(newVal === null || newVal === undefined){ - //don't parse - attrs[aName] = oldVal; - }else if(typeof newVal !== typeof oldVal || newVal !== oldVal){ - //overwrite - attrs[aName] = newVal; - }else{ - //parse - attrs[aName] = parseValue( - oldVal, - this.options.parseAttributeValue, - this.options.numberParseOptions - ); - } - } else if (this.options.allowBooleanAttributes) { - attrs[aName] = true; + + function isComment(xmlData, i) { + if ( + xmlData[i + 1] === '!' && + xmlData[i + 2] === '-' && + xmlData[i + 3] === '-' + ) + return true + return false + } + function isEntity(xmlData, i) { + if ( + xmlData[i + 1] === '!' && + xmlData[i + 2] === 'E' && + xmlData[i + 3] === 'N' && + xmlData[i + 4] === 'T' && + xmlData[i + 5] === 'I' && + xmlData[i + 6] === 'T' && + xmlData[i + 7] === 'Y' + ) + return true + return false + } + function isElement(xmlData, i) { + if ( + xmlData[i + 1] === '!' && + xmlData[i + 2] === 'E' && + xmlData[i + 3] === 'L' && + xmlData[i + 4] === 'E' && + xmlData[i + 5] === 'M' && + xmlData[i + 6] === 'E' && + xmlData[i + 7] === 'N' && + xmlData[i + 8] === 'T' + ) + return true + return false + } + + function isAttlist(xmlData, i) { + if ( + xmlData[i + 1] === '!' && + xmlData[i + 2] === 'A' && + xmlData[i + 3] === 'T' && + xmlData[i + 4] === 'T' && + xmlData[i + 5] === 'L' && + xmlData[i + 6] === 'I' && + xmlData[i + 7] === 'S' && + xmlData[i + 8] === 'T' + ) + return true + return false + } + function isNotation(xmlData, i) { + if ( + xmlData[i + 1] === '!' && + xmlData[i + 2] === 'N' && + xmlData[i + 3] === 'O' && + xmlData[i + 4] === 'T' && + xmlData[i + 5] === 'A' && + xmlData[i + 6] === 'T' && + xmlData[i + 7] === 'I' && + xmlData[i + 8] === 'O' && + xmlData[i + 9] === 'N' + ) + return true + return false + } + + function validateEntityName(name) { + if (util.isName(name)) return name + else throw new Error(`Invalid entity name ${name}`) + } + + module.exports = readDocType + + /***/ + }, + + /***/ 86993: /***/ (__unused_webpack_module, exports) => { + const defaultOptions = { + preserveOrder: false, + attributeNamePrefix: '@_', + attributesGroupName: false, + textNodeName: '#text', + ignoreAttributes: true, + removeNSPrefix: false, // remove NS from tag name or attribute name if true + allowBooleanAttributes: false, //a tag can have attributes without any value + //ignoreRootElement : false, + parseTagValue: true, + parseAttributeValue: false, + trimValues: true, //Trim string values of tag and attributes + cdataPropName: false, + numberParseOptions: { + hex: true, + leadingZeros: true, + eNotation: true + }, + tagValueProcessor: function (tagName, val) { + return val + }, + attributeValueProcessor: function (attrName, val) { + return val + }, + stopNodes: [], //nested tags will not be parsed even for errors + alwaysCreateTextNode: false, + isArray: () => false, + commentPropName: false, + unpairedTags: [], + processEntities: true, + htmlEntities: false, + ignoreDeclaration: false, + ignorePiTags: false, + transformTagName: false, + transformAttributeName: false, + updateTag: function (tagName, jPath, attrs) { + return tagName } + // skipEmptyListItem: false } - } - if (!Object.keys(attrs).length) { - return; - } - if (this.options.attributesGroupName) { - const attrCollection = {}; - attrCollection[this.options.attributesGroupName] = attrs; - return attrCollection; - } - return attrs - } -} -const parseXml = function(xmlData) { - xmlData = xmlData.replace(/\r\n?/g, "\n"); //TODO: remove this line - const xmlObj = new xmlNode('!xml'); - let currentNode = xmlObj; - let textData = ""; - let jPath = ""; - for(let i=0; i< xmlData.length; i++){//for each char in XML data - const ch = xmlData[i]; - if(ch === '<'){ - // const nextIndex = i+1; - // const _2ndChar = xmlData[nextIndex]; - if( xmlData[i+1] === '/') {//Closing Tag - const closeIndex = findClosingIndex(xmlData, ">", i, "Closing Tag is not closed.") - let tagName = xmlData.substring(i+2,closeIndex).trim(); + const buildOptions = function (options) { + return Object.assign({}, defaultOptions, options) + } + + exports.buildOptions = buildOptions + exports.defaultOptions = defaultOptions + + /***/ + }, - if(this.options.removeNSPrefix){ - const colonIndex = tagName.indexOf(":"); - if(colonIndex !== -1){ - tagName = tagName.substr(colonIndex+1); + /***/ 25832: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + ///@ts-check + + const util = __nccwpck_require__(38280) + const xmlNode = __nccwpck_require__(7462) + const readDocType = __nccwpck_require__(6072) + const toNumber = __nccwpck_require__(14526) + + // const regx = + // '<((!\\[CDATA\\[([\\s\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\/)(NAME)\\s*>))([^<]*)' + // .replace(/NAME/g, util.nameRegexp); + + //const tagsRegx = new RegExp("<(\\/?[\\w:\\-\._]+)([^>]*)>(\\s*"+cdataRegx+")*([^<]+)?","g"); + //const tagsRegx = new RegExp("<(\\/?)((\\w*:)?([\\w:\\-\._]+))([^>]*)>([^<]*)("+cdataRegx+"([^<]*))*([^<]+)?","g"); + + class OrderedObjParser { + constructor(options) { + this.options = options + this.currentNode = null + this.tagsNodeStack = [] + this.docTypeEntities = {} + this.lastEntities = { + apos: { regex: /&(apos|#39|#x27);/g, val: "'" }, + gt: { regex: /&(gt|#62|#x3E);/g, val: '>' }, + lt: { regex: /&(lt|#60|#x3C);/g, val: '<' }, + quot: { regex: /&(quot|#34|#x22);/g, val: '"' } + } + this.ampEntity = { regex: /&(amp|#38|#x26);/g, val: '&' } + this.htmlEntities = { + space: { regex: /&(nbsp|#160);/g, val: ' ' }, + // "lt" : { regex: /&(lt|#60);/g, val: "<" }, + // "gt" : { regex: /&(gt|#62);/g, val: ">" }, + // "amp" : { regex: /&(amp|#38);/g, val: "&" }, + // "quot" : { regex: /&(quot|#34);/g, val: "\"" }, + // "apos" : { regex: /&(apos|#39);/g, val: "'" }, + cent: { regex: /&(cent|#162);/g, val: '¢' }, + pound: { regex: /&(pound|#163);/g, val: '£' }, + yen: { regex: /&(yen|#165);/g, val: '¥' }, + euro: { regex: /&(euro|#8364);/g, val: '€' }, + copyright: { regex: /&(copy|#169);/g, val: '©' }, + reg: { regex: /&(reg|#174);/g, val: '®' }, + inr: { regex: /&(inr|#8377);/g, val: '₹' }, + num_dec: { + regex: /&#([0-9]{1,7});/g, + val: (_, str) => String.fromCharCode(Number.parseInt(str, 10)) + }, + num_hex: { + regex: /&#x([0-9a-fA-F]{1,6});/g, + val: (_, str) => String.fromCharCode(Number.parseInt(str, 16)) + } + } + this.addExternalEntities = addExternalEntities + this.parseXml = parseXml + this.parseTextData = parseTextData + this.resolveNameSpace = resolveNameSpace + this.buildAttributesMap = buildAttributesMap + this.isItStopNode = isItStopNode + this.replaceEntitiesValue = replaceEntitiesValue + this.readStopNodeData = readStopNodeData + this.saveTextToParentTag = saveTextToParentTag + this.addChild = addChild + } + } + + function addExternalEntities(externalEntities) { + const entKeys = Object.keys(externalEntities) + for (let i = 0; i < entKeys.length; i++) { + const ent = entKeys[i] + this.lastEntities[ent] = { + regex: new RegExp('&' + ent + ';', 'g'), + val: externalEntities[ent] } } + } - if(this.options.transformTagName) { - tagName = this.options.transformTagName(tagName); + /** + * @param {string} val + * @param {string} tagName + * @param {string} jPath + * @param {boolean} dontTrim + * @param {boolean} hasAttributes + * @param {boolean} isLeafNode + * @param {boolean} escapeEntities + */ + function parseTextData( + val, + tagName, + jPath, + dontTrim, + hasAttributes, + isLeafNode, + escapeEntities + ) { + if (val !== undefined) { + if (this.options.trimValues && !dontTrim) { + val = val.trim() + } + if (val.length > 0) { + if (!escapeEntities) val = this.replaceEntitiesValue(val) + + const newval = this.options.tagValueProcessor( + tagName, + val, + jPath, + hasAttributes, + isLeafNode + ) + if (newval === null || newval === undefined) { + //don't parse + return val + } else if (typeof newval !== typeof val || newval !== val) { + //overwrite + return newval + } else if (this.options.trimValues) { + return parseValue( + val, + this.options.parseTagValue, + this.options.numberParseOptions + ) + } else { + const trimmedVal = val.trim() + if (trimmedVal === val) { + return parseValue( + val, + this.options.parseTagValue, + this.options.numberParseOptions + ) + } else { + return val + } + } + } } + } - if(currentNode){ - textData = this.saveTextToParentTag(textData, currentNode, jPath); + function resolveNameSpace(tagname) { + if (this.options.removeNSPrefix) { + const tags = tagname.split(':') + const prefix = tagname.charAt(0) === '/' ? '/' : '' + if (tags[0] === 'xmlns') { + return '' + } + if (tags.length === 2) { + tagname = prefix + tags[1] + } } + return tagname + } - //check if last tag of nested tag was unpaired tag - const lastTagName = jPath.substring(jPath.lastIndexOf(".")+1); - if(tagName && this.options.unpairedTags.indexOf(tagName) !== -1 ){ - throw new Error(`Unpaired tag can not be used as closing tag: `); - } - let propIndex = 0 - if(lastTagName && this.options.unpairedTags.indexOf(lastTagName) !== -1 ){ - propIndex = jPath.lastIndexOf('.', jPath.lastIndexOf('.')-1) - this.tagsNodeStack.pop(); - }else{ - propIndex = jPath.lastIndexOf("."); - } - jPath = jPath.substring(0, propIndex); + //TODO: change regex to capture NS + //const attrsRegx = new RegExp("([\\w\\-\\.\\:]+)\\s*=\\s*(['\"])((.|\n)*?)\\2","gm"); + const attrsRegx = new RegExp( + '([^\\s=]+)\\s*(=\\s*([\'"])([\\s\\S]*?)\\3)?', + 'gm' + ) + + function buildAttributesMap(attrStr, jPath, tagName) { + if (!this.options.ignoreAttributes && typeof attrStr === 'string') { + // attrStr = attrStr.replace(/\r?\n/g, ' '); + //attrStr = attrStr || attrStr.trim(); + + const matches = util.getAllMatches(attrStr, attrsRegx) + const len = matches.length //don't make it inline + const attrs = {} + for (let i = 0; i < len; i++) { + const attrName = this.resolveNameSpace(matches[i][1]) + let oldVal = matches[i][4] + let aName = this.options.attributeNamePrefix + attrName + if (attrName.length) { + if (this.options.transformAttributeName) { + aName = this.options.transformAttributeName(aName) + } + if (aName === '__proto__') aName = '#__proto__' + if (oldVal !== undefined) { + if (this.options.trimValues) { + oldVal = oldVal.trim() + } + oldVal = this.replaceEntitiesValue(oldVal) + const newVal = this.options.attributeValueProcessor( + attrName, + oldVal, + jPath + ) + if (newVal === null || newVal === undefined) { + //don't parse + attrs[aName] = oldVal + } else if ( + typeof newVal !== typeof oldVal || + newVal !== oldVal + ) { + //overwrite + attrs[aName] = newVal + } else { + //parse + attrs[aName] = parseValue( + oldVal, + this.options.parseAttributeValue, + this.options.numberParseOptions + ) + } + } else if (this.options.allowBooleanAttributes) { + attrs[aName] = true + } + } + } + if (!Object.keys(attrs).length) { + return + } + if (this.options.attributesGroupName) { + const attrCollection = {} + attrCollection[this.options.attributesGroupName] = attrs + return attrCollection + } + return attrs + } + } + + const parseXml = function (xmlData) { + xmlData = xmlData.replace(/\r\n?/g, '\n') //TODO: remove this line + const xmlObj = new xmlNode('!xml') + let currentNode = xmlObj + let textData = '' + let jPath = '' + for (let i = 0; i < xmlData.length; i++) { + //for each char in XML data + const ch = xmlData[i] + if (ch === '<') { + // const nextIndex = i+1; + // const _2ndChar = xmlData[nextIndex]; + if (xmlData[i + 1] === '/') { + //Closing Tag + const closeIndex = findClosingIndex( + xmlData, + '>', + i, + 'Closing Tag is not closed.' + ) + let tagName = xmlData.substring(i + 2, closeIndex).trim() + + if (this.options.removeNSPrefix) { + const colonIndex = tagName.indexOf(':') + if (colonIndex !== -1) { + tagName = tagName.substr(colonIndex + 1) + } + } + + if (this.options.transformTagName) { + tagName = this.options.transformTagName(tagName) + } + + if (currentNode) { + textData = this.saveTextToParentTag( + textData, + currentNode, + jPath + ) + } + + //check if last tag of nested tag was unpaired tag + const lastTagName = jPath.substring(jPath.lastIndexOf('.') + 1) + if ( + tagName && + this.options.unpairedTags.indexOf(tagName) !== -1 + ) { + throw new Error( + `Unpaired tag can not be used as closing tag: ` + ) + } + let propIndex = 0 + if ( + lastTagName && + this.options.unpairedTags.indexOf(lastTagName) !== -1 + ) { + propIndex = jPath.lastIndexOf('.', jPath.lastIndexOf('.') - 1) + this.tagsNodeStack.pop() + } else { + propIndex = jPath.lastIndexOf('.') + } + jPath = jPath.substring(0, propIndex) + + currentNode = this.tagsNodeStack.pop() //avoid recursion, set the parent tag scope + textData = '' + i = closeIndex + } else if (xmlData[i + 1] === '?') { + let tagData = readTagExp(xmlData, i, false, '?>') + if (!tagData) throw new Error('Pi Tag is not closed.') + + textData = this.saveTextToParentTag(textData, currentNode, jPath) + if ( + (this.options.ignoreDeclaration && + tagData.tagName === '?xml') || + this.options.ignorePiTags + ) { + } else { + const childNode = new xmlNode(tagData.tagName) + childNode.add(this.options.textNodeName, '') + + if ( + tagData.tagName !== tagData.tagExp && + tagData.attrExpPresent + ) { + childNode[':@'] = this.buildAttributesMap( + tagData.tagExp, + jPath, + tagData.tagName + ) + } + this.addChild(currentNode, childNode, jPath) + } + + i = tagData.closeIndex + 1 + } else if (xmlData.substr(i + 1, 3) === '!--') { + const endIndex = findClosingIndex( + xmlData, + '-->', + i + 4, + 'Comment is not closed.' + ) + if (this.options.commentPropName) { + const comment = xmlData.substring(i + 4, endIndex - 2) + + textData = this.saveTextToParentTag( + textData, + currentNode, + jPath + ) + + currentNode.add(this.options.commentPropName, [ + { [this.options.textNodeName]: comment } + ]) + } + i = endIndex + } else if (xmlData.substr(i + 1, 2) === '!D') { + const result = readDocType(xmlData, i) + this.docTypeEntities = result.entities + i = result.i + } else if (xmlData.substr(i + 1, 2) === '![') { + const closeIndex = + findClosingIndex(xmlData, ']]>', i, 'CDATA is not closed.') - 2 + const tagExp = xmlData.substring(i + 9, closeIndex) + + textData = this.saveTextToParentTag(textData, currentNode, jPath) + + let val = this.parseTextData( + tagExp, + currentNode.tagname, + jPath, + true, + false, + true, + true + ) + if (val == undefined) val = '' + + //cdata should be set even if it is 0 length string + if (this.options.cdataPropName) { + currentNode.add(this.options.cdataPropName, [ + { [this.options.textNodeName]: tagExp } + ]) + } else { + currentNode.add(this.options.textNodeName, val) + } + + i = closeIndex + 2 + } else { + //Opening tag + let result = readTagExp(xmlData, i, this.options.removeNSPrefix) + let tagName = result.tagName + const rawTagName = result.rawTagName + let tagExp = result.tagExp + let attrExpPresent = result.attrExpPresent + let closeIndex = result.closeIndex + + if (this.options.transformTagName) { + tagName = this.options.transformTagName(tagName) + } + + //save text as child node + if (currentNode && textData) { + if (currentNode.tagname !== '!xml') { + //when nested tag is found + textData = this.saveTextToParentTag( + textData, + currentNode, + jPath, + false + ) + } + } + + //check if last tag was unpaired tag + const lastTag = currentNode + if ( + lastTag && + this.options.unpairedTags.indexOf(lastTag.tagname) !== -1 + ) { + currentNode = this.tagsNodeStack.pop() + jPath = jPath.substring(0, jPath.lastIndexOf('.')) + } + if (tagName !== xmlObj.tagname) { + jPath += jPath ? '.' + tagName : tagName + } + if (this.isItStopNode(this.options.stopNodes, jPath, tagName)) { + let tagContent = '' + //self-closing tag + if ( + tagExp.length > 0 && + tagExp.lastIndexOf('/') === tagExp.length - 1 + ) { + if (tagName[tagName.length - 1] === '/') { + //remove trailing '/' + tagName = tagName.substr(0, tagName.length - 1) + jPath = jPath.substr(0, jPath.length - 1) + tagExp = tagName + } else { + tagExp = tagExp.substr(0, tagExp.length - 1) + } + i = result.closeIndex + } + //unpaired tag + else if (this.options.unpairedTags.indexOf(tagName) !== -1) { + i = result.closeIndex + } + //normal tag + else { + //read until closing tag is found + const result = this.readStopNodeData( + xmlData, + rawTagName, + closeIndex + 1 + ) + if (!result) + throw new Error(`Unexpected end of ${rawTagName}`) + i = result.i + tagContent = result.tagContent + } + + const childNode = new xmlNode(tagName) + if (tagName !== tagExp && attrExpPresent) { + childNode[':@'] = this.buildAttributesMap( + tagExp, + jPath, + tagName + ) + } + if (tagContent) { + tagContent = this.parseTextData( + tagContent, + tagName, + jPath, + true, + attrExpPresent, + true, + true + ) + } - currentNode = this.tagsNodeStack.pop();//avoid recursion, set the parent tag scope - textData = ""; - i = closeIndex; - } else if( xmlData[i+1] === '?') { + jPath = jPath.substr(0, jPath.lastIndexOf('.')) + childNode.add(this.options.textNodeName, tagContent) - let tagData = readTagExp(xmlData,i, false, "?>"); - if(!tagData) throw new Error("Pi Tag is not closed."); - - textData = this.saveTextToParentTag(textData, currentNode, jPath); - if( (this.options.ignoreDeclaration && tagData.tagName === "?xml") || this.options.ignorePiTags){ - - }else{ - - const childNode = new xmlNode(tagData.tagName); - childNode.add(this.options.textNodeName, ""); - - if(tagData.tagName !== tagData.tagExp && tagData.attrExpPresent){ - childNode[":@"] = this.buildAttributesMap(tagData.tagExp, jPath, tagData.tagName); + this.addChild(currentNode, childNode, jPath) + } else { + //selfClosing tag + if ( + tagExp.length > 0 && + tagExp.lastIndexOf('/') === tagExp.length - 1 + ) { + if (tagName[tagName.length - 1] === '/') { + //remove trailing '/' + tagName = tagName.substr(0, tagName.length - 1) + jPath = jPath.substr(0, jPath.length - 1) + tagExp = tagName + } else { + tagExp = tagExp.substr(0, tagExp.length - 1) + } + + if (this.options.transformTagName) { + tagName = this.options.transformTagName(tagName) + } + + const childNode = new xmlNode(tagName) + if (tagName !== tagExp && attrExpPresent) { + childNode[':@'] = this.buildAttributesMap( + tagExp, + jPath, + tagName + ) + } + this.addChild(currentNode, childNode, jPath) + jPath = jPath.substr(0, jPath.lastIndexOf('.')) + } + //opening tag + else { + const childNode = new xmlNode(tagName) + this.tagsNodeStack.push(currentNode) + + if (tagName !== tagExp && attrExpPresent) { + childNode[':@'] = this.buildAttributesMap( + tagExp, + jPath, + tagName + ) + } + this.addChild(currentNode, childNode, jPath) + currentNode = childNode + } + textData = '' + i = closeIndex + } + } + } else { + textData += xmlData[i] } - this.addChild(currentNode, childNode, jPath) + } + return xmlObj.child + } + function addChild(currentNode, childNode, jPath) { + const result = this.options.updateTag( + childNode.tagname, + jPath, + childNode[':@'] + ) + if (result === false) { + } else if (typeof result === 'string') { + childNode.tagname = result + currentNode.addChild(childNode) + } else { + currentNode.addChild(childNode) } - - - i = tagData.closeIndex + 1; - } else if(xmlData.substr(i + 1, 3) === '!--') { - const endIndex = findClosingIndex(xmlData, "-->", i+4, "Comment is not closed.") - if(this.options.commentPropName){ - const comment = xmlData.substring(i + 4, endIndex - 2); - - textData = this.saveTextToParentTag(textData, currentNode, jPath); - - currentNode.add(this.options.commentPropName, [ { [this.options.textNodeName] : comment } ]); - } - i = endIndex; - } else if( xmlData.substr(i + 1, 2) === '!D') { - const result = readDocType(xmlData, i); - this.docTypeEntities = result.entities; - i = result.i; - }else if(xmlData.substr(i + 1, 2) === '![') { - const closeIndex = findClosingIndex(xmlData, "]]>", i, "CDATA is not closed.") - 2; - const tagExp = xmlData.substring(i + 9,closeIndex); - - textData = this.saveTextToParentTag(textData, currentNode, jPath); - - let val = this.parseTextData(tagExp, currentNode.tagname, jPath, true, false, true, true); - if(val == undefined) val = ""; - - //cdata should be set even if it is 0 length string - if(this.options.cdataPropName){ - currentNode.add(this.options.cdataPropName, [ { [this.options.textNodeName] : tagExp } ]); - }else{ - currentNode.add(this.options.textNodeName, val); - } - - i = closeIndex + 2; - }else {//Opening tag - let result = readTagExp(xmlData,i, this.options.removeNSPrefix); - let tagName= result.tagName; - const rawTagName = result.rawTagName; - let tagExp = result.tagExp; - let attrExpPresent = result.attrExpPresent; - let closeIndex = result.closeIndex; - - if (this.options.transformTagName) { - tagName = this.options.transformTagName(tagName); - } - - //save text as child node - if (currentNode && textData) { - if(currentNode.tagname !== '!xml'){ - //when nested tag is found - textData = this.saveTextToParentTag(textData, currentNode, jPath, false); + } + + const replaceEntitiesValue = function (val) { + if (this.options.processEntities) { + for (let entityName in this.docTypeEntities) { + const entity = this.docTypeEntities[entityName] + val = val.replace(entity.regx, entity.val) } - } + for (let entityName in this.lastEntities) { + const entity = this.lastEntities[entityName] + val = val.replace(entity.regex, entity.val) + } + if (this.options.htmlEntities) { + for (let entityName in this.htmlEntities) { + const entity = this.htmlEntities[entityName] + val = val.replace(entity.regex, entity.val) + } + } + val = val.replace(this.ampEntity.regex, this.ampEntity.val) + } + return val + } + function saveTextToParentTag(textData, currentNode, jPath, isLeafNode) { + if (textData) { + //store previously collected data as textNode + if (isLeafNode === undefined) + isLeafNode = Object.keys(currentNode.child).length === 0 + + textData = this.parseTextData( + textData, + currentNode.tagname, + jPath, + false, + currentNode[':@'] + ? Object.keys(currentNode[':@']).length !== 0 + : false, + isLeafNode + ) - //check if last tag was unpaired tag - const lastTag = currentNode; - if(lastTag && this.options.unpairedTags.indexOf(lastTag.tagname) !== -1 ){ - currentNode = this.tagsNodeStack.pop(); - jPath = jPath.substring(0, jPath.lastIndexOf(".")); - } - if(tagName !== xmlObj.tagname){ - jPath += jPath ? "." + tagName : tagName; - } - if (this.isItStopNode(this.options.stopNodes, jPath, tagName)) { - let tagContent = ""; - //self-closing tag - if(tagExp.length > 0 && tagExp.lastIndexOf("/") === tagExp.length - 1){ - if(tagName[tagName.length - 1] === "/"){ //remove trailing '/' - tagName = tagName.substr(0, tagName.length - 1); - jPath = jPath.substr(0, jPath.length - 1); - tagExp = tagName; - }else{ - tagExp = tagExp.substr(0, tagExp.length - 1); - } - i = result.closeIndex; - } - //unpaired tag - else if(this.options.unpairedTags.indexOf(tagName) !== -1){ - - i = result.closeIndex; - } - //normal tag - else{ - //read until closing tag is found - const result = this.readStopNodeData(xmlData, rawTagName, closeIndex + 1); - if(!result) throw new Error(`Unexpected end of ${rawTagName}`); - i = result.i; - tagContent = result.tagContent; - } - - const childNode = new xmlNode(tagName); - if(tagName !== tagExp && attrExpPresent){ - childNode[":@"] = this.buildAttributesMap(tagExp, jPath, tagName); - } - if(tagContent) { - tagContent = this.parseTextData(tagContent, tagName, jPath, true, attrExpPresent, true, true); - } - - jPath = jPath.substr(0, jPath.lastIndexOf(".")); - childNode.add(this.options.textNodeName, tagContent); - - this.addChild(currentNode, childNode, jPath) - }else{ - //selfClosing tag - if(tagExp.length > 0 && tagExp.lastIndexOf("/") === tagExp.length - 1){ - if(tagName[tagName.length - 1] === "/"){ //remove trailing '/' - tagName = tagName.substr(0, tagName.length - 1); - jPath = jPath.substr(0, jPath.length - 1); - tagExp = tagName; - }else{ - tagExp = tagExp.substr(0, tagExp.length - 1); - } - - if(this.options.transformTagName) { - tagName = this.options.transformTagName(tagName); - } - - const childNode = new xmlNode(tagName); - if(tagName !== tagExp && attrExpPresent){ - childNode[":@"] = this.buildAttributesMap(tagExp, jPath, tagName); - } - this.addChild(currentNode, childNode, jPath) - jPath = jPath.substr(0, jPath.lastIndexOf(".")); - } - //opening tag - else{ - const childNode = new xmlNode( tagName); - this.tagsNodeStack.push(currentNode); - - if(tagName !== tagExp && attrExpPresent){ - childNode[":@"] = this.buildAttributesMap(tagExp, jPath, tagName); - } - this.addChild(currentNode, childNode, jPath) - currentNode = childNode; - } - textData = ""; - i = closeIndex; - } - } - }else{ - textData += xmlData[i]; - } - } - return xmlObj.child; -} - -function addChild(currentNode, childNode, jPath){ - const result = this.options.updateTag(childNode.tagname, jPath, childNode[":@"]) - if(result === false){ - }else if(typeof result === "string"){ - childNode.tagname = result - currentNode.addChild(childNode); - }else{ - currentNode.addChild(childNode); - } -} + if (textData !== undefined && textData !== '') + currentNode.add(this.options.textNodeName, textData) + textData = '' + } + return textData + } -const replaceEntitiesValue = function(val){ + //TODO: use jPath to simplify the logic + /** + * + * @param {string[]} stopNodes + * @param {string} jPath + * @param {string} currentTagName + */ + function isItStopNode(stopNodes, jPath, currentTagName) { + const allNodesExp = '*.' + currentTagName + for (const stopNodePath in stopNodes) { + const stopNodeExp = stopNodes[stopNodePath] + if (allNodesExp === stopNodeExp || jPath === stopNodeExp) return true + } + return false + } - if(this.options.processEntities){ - for(let entityName in this.docTypeEntities){ - const entity = this.docTypeEntities[entityName]; - val = val.replace( entity.regx, entity.val); - } - for(let entityName in this.lastEntities){ - const entity = this.lastEntities[entityName]; - val = val.replace( entity.regex, entity.val); - } - if(this.options.htmlEntities){ - for(let entityName in this.htmlEntities){ - const entity = this.htmlEntities[entityName]; - val = val.replace( entity.regex, entity.val); + /** + * Returns the tag Expression and where it is ending handling single-double quotes situation + * @param {string} xmlData + * @param {number} i starting index + * @returns + */ + function tagExpWithClosingIndex(xmlData, i, closingChar = '>') { + let attrBoundary + let tagExp = '' + for (let index = i; index < xmlData.length; index++) { + let ch = xmlData[index] + if (attrBoundary) { + if (ch === attrBoundary) attrBoundary = '' //reset + } else if (ch === '"' || ch === "'") { + attrBoundary = ch + } else if (ch === closingChar[0]) { + if (closingChar[1]) { + if (xmlData[index + 1] === closingChar[1]) { + return { + data: tagExp, + index: index + } + } + } else { + return { + data: tagExp, + index: index + } + } + } else if (ch === '\t') { + ch = ' ' + } + tagExp += ch + } } - } - val = val.replace( this.ampEntity.regex, this.ampEntity.val); - } - return val; -} -function saveTextToParentTag(textData, currentNode, jPath, isLeafNode) { - if (textData) { //store previously collected data as textNode - if(isLeafNode === undefined) isLeafNode = Object.keys(currentNode.child).length === 0 - - textData = this.parseTextData(textData, - currentNode.tagname, - jPath, - false, - currentNode[":@"] ? Object.keys(currentNode[":@"]).length !== 0 : false, - isLeafNode); - - if (textData !== undefined && textData !== "") - currentNode.add(this.options.textNodeName, textData); - textData = ""; - } - return textData; -} - -//TODO: use jPath to simplify the logic -/** - * - * @param {string[]} stopNodes - * @param {string} jPath - * @param {string} currentTagName - */ -function isItStopNode(stopNodes, jPath, currentTagName){ - const allNodesExp = "*." + currentTagName; - for (const stopNodePath in stopNodes) { - const stopNodeExp = stopNodes[stopNodePath]; - if( allNodesExp === stopNodeExp || jPath === stopNodeExp ) return true; - } - return false; -} - -/** - * Returns the tag Expression and where it is ending handling single-double quotes situation - * @param {string} xmlData - * @param {number} i starting index - * @returns - */ -function tagExpWithClosingIndex(xmlData, i, closingChar = ">"){ - let attrBoundary; - let tagExp = ""; - for (let index = i; index < xmlData.length; index++) { - let ch = xmlData[index]; - if (attrBoundary) { - if (ch === attrBoundary) attrBoundary = "";//reset - } else if (ch === '"' || ch === "'") { - attrBoundary = ch; - } else if (ch === closingChar[0]) { - if(closingChar[1]){ - if(xmlData[index + 1] === closingChar[1]){ - return { - data: tagExp, - index: index + + function findClosingIndex(xmlData, str, i, errMsg) { + const closingIndex = xmlData.indexOf(str, i) + if (closingIndex === -1) { + throw new Error(errMsg) + } else { + return closingIndex + str.length - 1 + } + } + + function readTagExp(xmlData, i, removeNSPrefix, closingChar = '>') { + const result = tagExpWithClosingIndex(xmlData, i + 1, closingChar) + if (!result) return + let tagExp = result.data + const closeIndex = result.index + const separatorIndex = tagExp.search(/\s/) + let tagName = tagExp + let attrExpPresent = true + if (separatorIndex !== -1) { + //separate tag name and attributes expression + tagName = tagExp.substring(0, separatorIndex) + tagExp = tagExp.substring(separatorIndex + 1).trimStart() + } + + const rawTagName = tagName + if (removeNSPrefix) { + const colonIndex = tagName.indexOf(':') + if (colonIndex !== -1) { + tagName = tagName.substr(colonIndex + 1) + attrExpPresent = tagName !== result.data.substr(colonIndex + 1) } } - }else{ + return { - data: tagExp, - index: index + tagName: tagName, + tagExp: tagExp, + closeIndex: closeIndex, + attrExpPresent: attrExpPresent, + rawTagName: rawTagName } } - } else if (ch === '\t') { - ch = " " - } - tagExp += ch; - } -} - -function findClosingIndex(xmlData, str, i, errMsg){ - const closingIndex = xmlData.indexOf(str, i); - if(closingIndex === -1){ - throw new Error(errMsg) - }else{ - return closingIndex + str.length - 1; - } -} - -function readTagExp(xmlData,i, removeNSPrefix, closingChar = ">"){ - const result = tagExpWithClosingIndex(xmlData, i+1, closingChar); - if(!result) return; - let tagExp = result.data; - const closeIndex = result.index; - const separatorIndex = tagExp.search(/\s/); - let tagName = tagExp; - let attrExpPresent = true; - if(separatorIndex !== -1){//separate tag name and attributes expression - tagName = tagExp.substring(0, separatorIndex); - tagExp = tagExp.substring(separatorIndex + 1).trimStart(); - } - - const rawTagName = tagName; - if(removeNSPrefix){ - const colonIndex = tagName.indexOf(":"); - if(colonIndex !== -1){ - tagName = tagName.substr(colonIndex+1); - attrExpPresent = tagName !== result.data.substr(colonIndex + 1); - } - } + /** + * find paired tag for a stop node + * @param {string} xmlData + * @param {string} tagName + * @param {number} i + */ + function readStopNodeData(xmlData, tagName, i) { + const startIndex = i + // Starting at 1 since we already have an open tag + let openTagCount = 1 - return { - tagName: tagName, - tagExp: tagExp, - closeIndex: closeIndex, - attrExpPresent: attrExpPresent, - rawTagName: rawTagName, - } -} -/** - * find paired tag for a stop node - * @param {string} xmlData - * @param {string} tagName - * @param {number} i - */ -function readStopNodeData(xmlData, tagName, i){ - const startIndex = i; - // Starting at 1 since we already have an open tag - let openTagCount = 1; - - for (; i < xmlData.length; i++) { - if( xmlData[i] === "<"){ - if (xmlData[i+1] === "/") {//close tag - const closeIndex = findClosingIndex(xmlData, ">", i, `${tagName} is not closed`); - let closeTagName = xmlData.substring(i+2,closeIndex).trim(); - if(closeTagName === tagName){ - openTagCount--; - if (openTagCount === 0) { - return { - tagContent: xmlData.substring(startIndex, i), - i : closeIndex + for (; i < xmlData.length; i++) { + if (xmlData[i] === '<') { + if (xmlData[i + 1] === '/') { + //close tag + const closeIndex = findClosingIndex( + xmlData, + '>', + i, + `${tagName} is not closed` + ) + let closeTagName = xmlData.substring(i + 2, closeIndex).trim() + if (closeTagName === tagName) { + openTagCount-- + if (openTagCount === 0) { + return { + tagContent: xmlData.substring(startIndex, i), + i: closeIndex + } + } + } + i = closeIndex + } else if (xmlData[i + 1] === '?') { + const closeIndex = findClosingIndex( + xmlData, + '?>', + i + 1, + 'StopNode is not closed.' + ) + i = closeIndex + } else if (xmlData.substr(i + 1, 3) === '!--') { + const closeIndex = findClosingIndex( + xmlData, + '-->', + i + 3, + 'StopNode is not closed.' + ) + i = closeIndex + } else if (xmlData.substr(i + 1, 2) === '![') { + const closeIndex = + findClosingIndex(xmlData, ']]>', i, 'StopNode is not closed.') - + 2 + i = closeIndex + } else { + const tagData = readTagExp(xmlData, i, '>') + + if (tagData) { + const openTagName = tagData && tagData.tagName + if ( + openTagName === tagName && + tagData.tagExp[tagData.tagExp.length - 1] !== '/' + ) { + openTagCount++ + } + i = tagData.closeIndex } } } - i=closeIndex; - } else if(xmlData[i+1] === '?') { - const closeIndex = findClosingIndex(xmlData, "?>", i+1, "StopNode is not closed.") - i=closeIndex; - } else if(xmlData.substr(i + 1, 3) === '!--') { - const closeIndex = findClosingIndex(xmlData, "-->", i+3, "StopNode is not closed.") - i=closeIndex; - } else if(xmlData.substr(i + 1, 2) === '![') { - const closeIndex = findClosingIndex(xmlData, "]]>", i, "StopNode is not closed.") - 2; - i=closeIndex; - } else { - const tagData = readTagExp(xmlData, i, '>') + } //end for loop + } - if (tagData) { - const openTagName = tagData && tagData.tagName; - if (openTagName === tagName && tagData.tagExp[tagData.tagExp.length-1] !== "/") { - openTagCount++; - } - i=tagData.closeIndex; + function parseValue(val, shouldParse, options) { + if (shouldParse && typeof val === 'string') { + //console.log(options) + const newval = val.trim() + if (newval === 'true') return true + else if (newval === 'false') return false + else return toNumber(val, options) + } else { + if (util.isExist(val)) { + return val + } else { + return '' } } } - }//end for loop -} - -function parseValue(val, shouldParse, options) { - if (shouldParse && typeof val === 'string') { - //console.log(options) - const newval = val.trim(); - if(newval === 'true' ) return true; - else if(newval === 'false' ) return false; - else return toNumber(val, options); - } else { - if (util.isExist(val)) { - return val; - } else { - return ''; - } - } -} - - -module.exports = OrderedObjParser; + module.exports = OrderedObjParser -/***/ }), - -/***/ 42380: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + /***/ + }, -const { buildOptions} = __nccwpck_require__(86993); -const OrderedObjParser = __nccwpck_require__(25832); -const { prettify} = __nccwpck_require__(42882); -const validator = __nccwpck_require__(61739); + /***/ 42380: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + const { buildOptions } = __nccwpck_require__(86993) + const OrderedObjParser = __nccwpck_require__(25832) + const { prettify } = __nccwpck_require__(42882) + const validator = __nccwpck_require__(61739) + + class XMLParser { + constructor(options) { + this.externalEntities = {} + this.options = buildOptions(options) + } + /** + * Parse XML dats to JS object + * @param {string|Buffer} xmlData + * @param {boolean|Object} validationOption + */ + parse(xmlData, validationOption) { + if (typeof xmlData === 'string') { + } else if (xmlData.toString) { + xmlData = xmlData.toString() + } else { + throw new Error('XML data is accepted in String or Bytes[] form.') + } + if (validationOption) { + if (validationOption === true) validationOption = {} //validate with default options -class XMLParser{ - - constructor(options){ - this.externalEntities = {}; - this.options = buildOptions(options); - - } - /** - * Parse XML dats to JS object - * @param {string|Buffer} xmlData - * @param {boolean|Object} validationOption - */ - parse(xmlData,validationOption){ - if(typeof xmlData === "string"){ - }else if( xmlData.toString){ - xmlData = xmlData.toString(); - }else{ - throw new Error("XML data is accepted in String or Bytes[] form.") - } - if( validationOption){ - if(validationOption === true) validationOption = {}; //validate with default options - - const result = validator.validate(xmlData, validationOption); + const result = validator.validate(xmlData, validationOption) if (result !== true) { - throw Error( `${result.err.msg}:${result.err.line}:${result.err.col}` ) + throw Error( + `${result.err.msg}:${result.err.line}:${result.err.col}` + ) } } - const orderedObjParser = new OrderedObjParser(this.options); - orderedObjParser.addExternalEntities(this.externalEntities); - const orderedResult = orderedObjParser.parseXml(xmlData); - if(this.options.preserveOrder || orderedResult === undefined) return orderedResult; - else return prettify(orderedResult, this.options); - } + const orderedObjParser = new OrderedObjParser(this.options) + orderedObjParser.addExternalEntities(this.externalEntities) + const orderedResult = orderedObjParser.parseXml(xmlData) + if (this.options.preserveOrder || orderedResult === undefined) + return orderedResult + else return prettify(orderedResult, this.options) + } - /** - * Add Entity which is not by default supported by this library - * @param {string} key - * @param {string} value - */ - addEntity(key, value){ - if(value.indexOf("&") !== -1){ + /** + * Add Entity which is not by default supported by this library + * @param {string} key + * @param {string} value + */ + addEntity(key, value) { + if (value.indexOf('&') !== -1) { throw new Error("Entity value can't have '&'") - }else if(key.indexOf("&") !== -1 || key.indexOf(";") !== -1){ - throw new Error("An entity must be set without '&' and ';'. Eg. use '#xD' for ' '") - }else if(value === "&"){ - throw new Error("An entity with value '&' is not permitted"); - }else{ - this.externalEntities[key] = value; + } else if (key.indexOf('&') !== -1 || key.indexOf(';') !== -1) { + throw new Error( + "An entity must be set without '&' and ';'. Eg. use '#xD' for ' '" + ) + } else if (value === '&') { + throw new Error("An entity with value '&' is not permitted") + } else { + this.externalEntities[key] = value + } } - } -} + } -module.exports = XMLParser; + module.exports = XMLParser -/***/ }), + /***/ + }, -/***/ 42882: -/***/ ((__unused_webpack_module, exports) => { + /***/ 42882: /***/ (__unused_webpack_module, exports) => { + 'use strict' -"use strict"; + /** + * + * @param {array} node + * @param {any} options + * @returns + */ + function prettify(node, options) { + return compress(node, options) + } + /** + * + * @param {array} arr + * @param {object} options + * @param {string} jPath + * @returns object + */ + function compress(arr, options, jPath) { + let text + const compressedObj = {} + for (let i = 0; i < arr.length; i++) { + const tagObj = arr[i] + const property = propName(tagObj) + let newJpath = '' + if (jPath === undefined) newJpath = property + else newJpath = jPath + '.' + property + + if (property === options.textNodeName) { + if (text === undefined) text = tagObj[property] + else text += '' + tagObj[property] + } else if (property === undefined) { + continue + } else if (tagObj[property]) { + let val = compress(tagObj[property], options, newJpath) + const isLeaf = isLeafTag(val, options) + + if (tagObj[':@']) { + assignAttributes(val, tagObj[':@'], newJpath, options) + } else if ( + Object.keys(val).length === 1 && + val[options.textNodeName] !== undefined && + !options.alwaysCreateTextNode + ) { + val = val[options.textNodeName] + } else if (Object.keys(val).length === 0) { + if (options.alwaysCreateTextNode) val[options.textNodeName] = '' + else val = '' + } -/** - * - * @param {array} node - * @param {any} options - * @returns - */ -function prettify(node, options){ - return compress( node, options); -} - -/** - * - * @param {array} arr - * @param {object} options - * @param {string} jPath - * @returns object - */ -function compress(arr, options, jPath){ - let text; - const compressedObj = {}; - for (let i = 0; i < arr.length; i++) { - const tagObj = arr[i]; - const property = propName(tagObj); - let newJpath = ""; - if(jPath === undefined) newJpath = property; - else newJpath = jPath + "." + property; - - if(property === options.textNodeName){ - if(text === undefined) text = tagObj[property]; - else text += "" + tagObj[property]; - }else if(property === undefined){ - continue; - }else if(tagObj[property]){ - - let val = compress(tagObj[property], options, newJpath); - const isLeaf = isLeafTag(val, options); - - if(tagObj[":@"]){ - assignAttributes( val, tagObj[":@"], newJpath, options); - }else if(Object.keys(val).length === 1 && val[options.textNodeName] !== undefined && !options.alwaysCreateTextNode){ - val = val[options.textNodeName]; - }else if(Object.keys(val).length === 0){ - if(options.alwaysCreateTextNode) val[options.textNodeName] = ""; - else val = ""; - } - - if(compressedObj[property] !== undefined && compressedObj.hasOwnProperty(property)) { - if(!Array.isArray(compressedObj[property])) { - compressedObj[property] = [ compressedObj[property] ]; - } - compressedObj[property].push(val); - }else{ - //TODO: if a node is not an array, then check if it should be an array - //also determine if it is a leaf node - if (options.isArray(property, newJpath, isLeaf )) { - compressedObj[property] = [val]; - }else{ - compressedObj[property] = val; + if ( + compressedObj[property] !== undefined && + compressedObj.hasOwnProperty(property) + ) { + if (!Array.isArray(compressedObj[property])) { + compressedObj[property] = [compressedObj[property]] + } + compressedObj[property].push(val) + } else { + //TODO: if a node is not an array, then check if it should be an array + //also determine if it is a leaf node + if (options.isArray(property, newJpath, isLeaf)) { + compressedObj[property] = [val] + } else { + compressedObj[property] = val + } + } + } } + // if(text && text.length > 0) compressedObj[options.textNodeName] = text; + if (typeof text === 'string') { + if (text.length > 0) compressedObj[options.textNodeName] = text + } else if (text !== undefined) + compressedObj[options.textNodeName] = text + return compressedObj } - } - - } - // if(text && text.length > 0) compressedObj[options.textNodeName] = text; - if(typeof text === "string"){ - if(text.length > 0) compressedObj[options.textNodeName] = text; - }else if(text !== undefined) compressedObj[options.textNodeName] = text; - return compressedObj; -} - -function propName(obj){ - const keys = Object.keys(obj); - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; - if(key !== ":@") return key; - } -} - -function assignAttributes(obj, attrMap, jpath, options){ - if (attrMap) { - const keys = Object.keys(attrMap); - const len = keys.length; //don't make it inline - for (let i = 0; i < len; i++) { - const atrrName = keys[i]; - if (options.isArray(atrrName, jpath + "." + atrrName, true, true)) { - obj[atrrName] = [ attrMap[atrrName] ]; - } else { - obj[atrrName] = attrMap[atrrName]; + + function propName(obj) { + const keys = Object.keys(obj) + for (let i = 0; i < keys.length; i++) { + const key = keys[i] + if (key !== ':@') return key + } } - } - } -} - -function isLeafTag(obj, options){ - const { textNodeName } = options; - const propCount = Object.keys(obj).length; - - if (propCount === 0) { - return true; - } - if ( - propCount === 1 && - (obj[textNodeName] || typeof obj[textNodeName] === "boolean" || obj[textNodeName] === 0) - ) { - return true; - } + function assignAttributes(obj, attrMap, jpath, options) { + if (attrMap) { + const keys = Object.keys(attrMap) + const len = keys.length //don't make it inline + for (let i = 0; i < len; i++) { + const atrrName = keys[i] + if (options.isArray(atrrName, jpath + '.' + atrrName, true, true)) { + obj[atrrName] = [attrMap[atrrName]] + } else { + obj[atrrName] = attrMap[atrrName] + } + } + } + } - return false; -} -exports.prettify = prettify; + function isLeafTag(obj, options) { + const { textNodeName } = options + const propCount = Object.keys(obj).length + if (propCount === 0) { + return true + } -/***/ }), + if ( + propCount === 1 && + (obj[textNodeName] || + typeof obj[textNodeName] === 'boolean' || + obj[textNodeName] === 0) + ) { + return true + } -/***/ 7462: -/***/ ((module) => { + return false + } + exports.prettify = prettify -"use strict"; + /***/ + }, + /***/ 7462: /***/ module => { + 'use strict' -class XmlNode{ - constructor(tagname) { - this.tagname = tagname; - this.child = []; //nested tags, text, cdata, comments in order - this[":@"] = {}; //attributes map - } - add(key,val){ - // this.child.push( {name : key, val: val, isCdata: isCdata }); - if(key === "__proto__") key = "#__proto__"; - this.child.push( {[key]: val }); - } - addChild(node) { - if(node.tagname === "__proto__") node.tagname = "#__proto__"; - if(node[":@"] && Object.keys(node[":@"]).length > 0){ - this.child.push( { [node.tagname]: node.child, [":@"]: node[":@"] }); - }else{ - this.child.push( { [node.tagname]: node.child }); - } - }; -}; - - -module.exports = XmlNode; - -/***/ }), - -/***/ 31621: -/***/ ((module) => { - -"use strict"; - - -module.exports = (flag, argv = process.argv) => { - const prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--'); - const position = argv.indexOf(prefix + flag); - const terminatorPosition = argv.indexOf('--'); - return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition); -}; - - -/***/ }), - -/***/ 15098: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -const net_1 = __importDefault(__nccwpck_require__(41808)); -const tls_1 = __importDefault(__nccwpck_require__(24404)); -const url_1 = __importDefault(__nccwpck_require__(57310)); -const assert_1 = __importDefault(__nccwpck_require__(39491)); -const debug_1 = __importDefault(__nccwpck_require__(38237)); -const agent_base_1 = __nccwpck_require__(49690); -const parse_proxy_response_1 = __importDefault(__nccwpck_require__(595)); -const debug = debug_1.default('https-proxy-agent:agent'); -/** - * The `HttpsProxyAgent` implements an HTTP Agent subclass that connects to - * the specified "HTTP(s) proxy server" in order to proxy HTTPS requests. - * - * Outgoing HTTP requests are first tunneled through the proxy server using the - * `CONNECT` HTTP request method to establish a connection to the proxy server, - * and then the proxy server connects to the destination target and issues the - * HTTP request from the proxy server. - * - * `https:` requests have their socket connection upgraded to TLS once - * the connection to the proxy server has been established. - * - * @api public - */ -class HttpsProxyAgent extends agent_base_1.Agent { - constructor(_opts) { - let opts; - if (typeof _opts === 'string') { - opts = url_1.default.parse(_opts); - } - else { - opts = _opts; - } - if (!opts) { - throw new Error('an HTTP(S) proxy server `host` and `port` must be specified!'); - } - debug('creating new HttpsProxyAgent instance: %o', opts); - super(opts); - const proxy = Object.assign({}, opts); - // If `true`, then connect to the proxy server over TLS. - // Defaults to `false`. - this.secureProxy = opts.secureProxy || isHTTPS(proxy.protocol); - // Prefer `hostname` over `host`, and set the `port` if needed. - proxy.host = proxy.hostname || proxy.host; - if (typeof proxy.port === 'string') { - proxy.port = parseInt(proxy.port, 10); - } - if (!proxy.port && proxy.host) { - proxy.port = this.secureProxy ? 443 : 80; - } - // ALPN is supported by Node.js >= v5. - // attempt to negotiate http/1.1 for proxy servers that support http/2 - if (this.secureProxy && !('ALPNProtocols' in proxy)) { - proxy.ALPNProtocols = ['http 1.1']; - } - if (proxy.host && proxy.path) { + class XmlNode { + constructor(tagname) { + this.tagname = tagname + this.child = [] //nested tags, text, cdata, comments in order + this[':@'] = {} //attributes map + } + add(key, val) { + // this.child.push( {name : key, val: val, isCdata: isCdata }); + if (key === '__proto__') key = '#__proto__' + this.child.push({ [key]: val }) + } + addChild(node) { + if (node.tagname === '__proto__') node.tagname = '#__proto__' + if (node[':@'] && Object.keys(node[':@']).length > 0) { + this.child.push({ [node.tagname]: node.child, [':@']: node[':@'] }) + } else { + this.child.push({ [node.tagname]: node.child }) + } + } + } + + module.exports = XmlNode + + /***/ + }, + + /***/ 31621: /***/ module => { + 'use strict' + + module.exports = (flag, argv = process.argv) => { + const prefix = flag.startsWith('-') + ? '' + : flag.length === 1 + ? '-' + : '--' + const position = argv.indexOf(prefix + flag) + const terminatorPosition = argv.indexOf('--') + return ( + position !== -1 && + (terminatorPosition === -1 || position < terminatorPosition) + ) + } + + /***/ + }, + + /***/ 15098: /***/ function ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) { + 'use strict' + + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step( + (generator = generator.apply(thisArg, _arguments || [])).next() + ) + }) + } + var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod } + } + Object.defineProperty(exports, '__esModule', { value: true }) + const net_1 = __importDefault(__nccwpck_require__(41808)) + const tls_1 = __importDefault(__nccwpck_require__(24404)) + const url_1 = __importDefault(__nccwpck_require__(57310)) + const assert_1 = __importDefault(__nccwpck_require__(39491)) + const debug_1 = __importDefault(__nccwpck_require__(38237)) + const agent_base_1 = __nccwpck_require__(49690) + const parse_proxy_response_1 = __importDefault(__nccwpck_require__(595)) + const debug = debug_1.default('https-proxy-agent:agent') + /** + * The `HttpsProxyAgent` implements an HTTP Agent subclass that connects to + * the specified "HTTP(s) proxy server" in order to proxy HTTPS requests. + * + * Outgoing HTTP requests are first tunneled through the proxy server using the + * `CONNECT` HTTP request method to establish a connection to the proxy server, + * and then the proxy server connects to the destination target and issues the + * HTTP request from the proxy server. + * + * `https:` requests have their socket connection upgraded to TLS once + * the connection to the proxy server has been established. + * + * @api public + */ + class HttpsProxyAgent extends agent_base_1.Agent { + constructor(_opts) { + let opts + if (typeof _opts === 'string') { + opts = url_1.default.parse(_opts) + } else { + opts = _opts + } + if (!opts) { + throw new Error( + 'an HTTP(S) proxy server `host` and `port` must be specified!' + ) + } + debug('creating new HttpsProxyAgent instance: %o', opts) + super(opts) + const proxy = Object.assign({}, opts) + // If `true`, then connect to the proxy server over TLS. + // Defaults to `false`. + this.secureProxy = opts.secureProxy || isHTTPS(proxy.protocol) + // Prefer `hostname` over `host`, and set the `port` if needed. + proxy.host = proxy.hostname || proxy.host + if (typeof proxy.port === 'string') { + proxy.port = parseInt(proxy.port, 10) + } + if (!proxy.port && proxy.host) { + proxy.port = this.secureProxy ? 443 : 80 + } + // ALPN is supported by Node.js >= v5. + // attempt to negotiate http/1.1 for proxy servers that support http/2 + if (this.secureProxy && !('ALPNProtocols' in proxy)) { + proxy.ALPNProtocols = ['http 1.1'] + } + if (proxy.host && proxy.path) { // If both a `host` and `path` are specified then it's most likely // the result of a `url.parse()` call... we need to remove the // `path` portion so that `net.connect()` doesn't attempt to open // that as a Unix socket file. - delete proxy.path; - delete proxy.pathname; + delete proxy.path + delete proxy.pathname + } + this.proxy = proxy } - this.proxy = proxy; - } - /** - * Called when the node-core HTTP client library is creating a - * new HTTP request. - * - * @api protected - */ - callback(req, opts) { - return __awaiter(this, void 0, void 0, function* () { - const { proxy, secureProxy } = this; + /** + * Called when the node-core HTTP client library is creating a + * new HTTP request. + * + * @api protected + */ + callback(req, opts) { + return __awaiter(this, void 0, void 0, function* () { + const { proxy, secureProxy } = this // Create a socket connection to the proxy server. - let socket; + let socket if (secureProxy) { - debug('Creating `tls.Socket`: %o', proxy); - socket = tls_1.default.connect(proxy); - } - else { - debug('Creating `net.Socket`: %o', proxy); - socket = net_1.default.connect(proxy); + debug('Creating `tls.Socket`: %o', proxy) + socket = tls_1.default.connect(proxy) + } else { + debug('Creating `net.Socket`: %o', proxy) + socket = net_1.default.connect(proxy) } - const headers = Object.assign({}, proxy.headers); - const hostname = `${opts.host}:${opts.port}`; - let payload = `CONNECT ${hostname} HTTP/1.1\r\n`; + const headers = Object.assign({}, proxy.headers) + const hostname = `${opts.host}:${opts.port}` + let payload = `CONNECT ${hostname} HTTP/1.1\r\n` // Inject the `Proxy-Authorization` header if necessary. if (proxy.auth) { - headers['Proxy-Authorization'] = `Basic ${Buffer.from(proxy.auth).toString('base64')}`; + headers['Proxy-Authorization'] = + `Basic ${Buffer.from(proxy.auth).toString('base64')}` } // The `Host` header should only include the port // number when it is not the default port. - let { host, port, secureEndpoint } = opts; + let { host, port, secureEndpoint } = opts if (!isDefaultPort(port, secureEndpoint)) { - host += `:${port}`; + host += `:${port}` } - headers.Host = host; - headers.Connection = 'close'; + headers.Host = host + headers.Connection = 'close' for (const name of Object.keys(headers)) { - payload += `${name}: ${headers[name]}\r\n`; + payload += `${name}: ${headers[name]}\r\n` } - const proxyResponsePromise = parse_proxy_response_1.default(socket); - socket.write(`${payload}\r\n`); - const { statusCode, buffered } = yield proxyResponsePromise; + const proxyResponsePromise = parse_proxy_response_1.default(socket) + socket.write(`${payload}\r\n`) + const { statusCode, buffered } = yield proxyResponsePromise if (statusCode === 200) { - req.once('socket', resume); - if (opts.secureEndpoint) { - // The proxy is connecting to a TLS server, so upgrade - // this socket connection to a TLS connection. - debug('Upgrading socket connection to TLS'); - const servername = opts.servername || opts.host; - return tls_1.default.connect(Object.assign(Object.assign({}, omit(opts, 'host', 'hostname', 'path', 'port')), { socket, - servername })); - } - return socket; + req.once('socket', resume) + if (opts.secureEndpoint) { + // The proxy is connecting to a TLS server, so upgrade + // this socket connection to a TLS connection. + debug('Upgrading socket connection to TLS') + const servername = opts.servername || opts.host + return tls_1.default.connect( + Object.assign( + Object.assign( + {}, + omit(opts, 'host', 'hostname', 'path', 'port') + ), + { socket, servername } + ) + ) + } + return socket } // Some other status code that's not 200... need to re-play the HTTP // header "data" events onto the socket once the HTTP machinery is @@ -69628,1462 +90558,1645 @@ class HttpsProxyAgent extends agent_base_1.Agent { // sensitive data). // // See: https://hackerone.com/reports/541502 - socket.destroy(); - const fakeSocket = new net_1.default.Socket({ writable: false }); - fakeSocket.readable = true; + socket.destroy() + const fakeSocket = new net_1.default.Socket({ writable: false }) + fakeSocket.readable = true // Need to wait for the "socket" event to re-play the "data" events. - req.once('socket', (s) => { - debug('replaying proxy buffer for failed request'); - assert_1.default(s.listenerCount('data') > 0); - // Replay the "buffered" Buffer onto the fake `socket`, since at - // this point the HTTP module machinery has been hooked up for - // the user. - s.push(buffered); - s.push(null); - }); - return fakeSocket; - }); - } -} -exports["default"] = HttpsProxyAgent; -function resume(socket) { - socket.resume(); -} -function isDefaultPort(port, secure) { - return Boolean((!secure && port === 80) || (secure && port === 443)); -} -function isHTTPS(protocol) { - return typeof protocol === 'string' ? /^https:?$/i.test(protocol) : false; -} -function omit(obj, ...keys) { - const ret = {}; - let key; - for (key in obj) { - if (!keys.includes(key)) { - ret[key] = obj[key]; + req.once('socket', s => { + debug('replaying proxy buffer for failed request') + assert_1.default(s.listenerCount('data') > 0) + // Replay the "buffered" Buffer onto the fake `socket`, since at + // this point the HTTP module machinery has been hooked up for + // the user. + s.push(buffered) + s.push(null) + }) + return fakeSocket + }) } - } - return ret; -} -//# sourceMappingURL=agent.js.map - -/***/ }), - -/***/ 77219: -/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) { - -"use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -const agent_1 = __importDefault(__nccwpck_require__(15098)); -function createHttpsProxyAgent(opts) { - return new agent_1.default(opts); -} -(function (createHttpsProxyAgent) { - createHttpsProxyAgent.HttpsProxyAgent = agent_1.default; - createHttpsProxyAgent.prototype = agent_1.default.prototype; -})(createHttpsProxyAgent || (createHttpsProxyAgent = {})); -module.exports = createHttpsProxyAgent; -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ 595: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -const debug_1 = __importDefault(__nccwpck_require__(38237)); -const debug = debug_1.default('https-proxy-agent:parse-proxy-response'); -function parseProxyResponse(socket) { - return new Promise((resolve, reject) => { - // we need to buffer any HTTP traffic that happens with the proxy before we get - // the CONNECT response, so that if the response is anything other than an "200" - // response code, then we can re-play the "data" events on the socket once the - // HTTP parser is hooked up... - let buffersLength = 0; - const buffers = []; - function read() { - const b = socket.read(); - if (b) - ondata(b); - else - socket.once('readable', read); - } - function cleanup() { - socket.removeListener('end', onend); - socket.removeListener('error', onerror); - socket.removeListener('close', onclose); - socket.removeListener('readable', read); - } - function onclose(err) { - debug('onclose had error %o', err); - } - function onend() { - debug('onend'); - } - function onerror(err) { - cleanup(); - debug('onerror %o', err); - reject(err); - } - function ondata(b) { - buffers.push(b); - buffersLength += b.length; - const buffered = Buffer.concat(buffers, buffersLength); - const endOfHeaders = buffered.indexOf('\r\n\r\n'); - if (endOfHeaders === -1) { - // keep buffering - debug('have not received end of HTTP headers yet...'); - read(); - return; - } - const firstLine = buffered.toString('ascii', 0, buffered.indexOf('\r\n')); - const statusCode = +firstLine.split(' ')[1]; - debug('got proxy server response: %o', firstLine); - resolve({ - statusCode, - buffered - }); + } + exports['default'] = HttpsProxyAgent + function resume(socket) { + socket.resume() + } + function isDefaultPort(port, secure) { + return Boolean((!secure && port === 80) || (secure && port === 443)) + } + function isHTTPS(protocol) { + return typeof protocol === 'string' + ? /^https:?$/i.test(protocol) + : false + } + function omit(obj, ...keys) { + const ret = {} + let key + for (key in obj) { + if (!keys.includes(key)) { + ret[key] = obj[key] + } } - socket.on('error', onerror); - socket.on('close', onclose); - socket.on('end', onend); - read(); - }); -} -exports["default"] = parseProxyResponse; -//# sourceMappingURL=parse-proxy-response.js.map - -/***/ }), + return ret + } + //# sourceMappingURL=agent.js.map -/***/ 21917: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + /***/ + }, -"use strict"; + /***/ 77219: /***/ function ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) { + 'use strict' + var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod } + } + const agent_1 = __importDefault(__nccwpck_require__(15098)) + function createHttpsProxyAgent(opts) { + return new agent_1.default(opts) + } + ;(function (createHttpsProxyAgent) { + createHttpsProxyAgent.HttpsProxyAgent = agent_1.default + createHttpsProxyAgent.prototype = agent_1.default.prototype + })(createHttpsProxyAgent || (createHttpsProxyAgent = {})) + module.exports = createHttpsProxyAgent + //# sourceMappingURL=index.js.map + /***/ + }, -var loader = __nccwpck_require__(51161); -var dumper = __nccwpck_require__(68866); + /***/ 595: /***/ function ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) { + 'use strict' + var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod } + } + Object.defineProperty(exports, '__esModule', { value: true }) + const debug_1 = __importDefault(__nccwpck_require__(38237)) + const debug = debug_1.default('https-proxy-agent:parse-proxy-response') + function parseProxyResponse(socket) { + return new Promise((resolve, reject) => { + // we need to buffer any HTTP traffic that happens with the proxy before we get + // the CONNECT response, so that if the response is anything other than an "200" + // response code, then we can re-play the "data" events on the socket once the + // HTTP parser is hooked up... + let buffersLength = 0 + const buffers = [] + function read() { + const b = socket.read() + if (b) ondata(b) + else socket.once('readable', read) + } + function cleanup() { + socket.removeListener('end', onend) + socket.removeListener('error', onerror) + socket.removeListener('close', onclose) + socket.removeListener('readable', read) + } + function onclose(err) { + debug('onclose had error %o', err) + } + function onend() { + debug('onend') + } + function onerror(err) { + cleanup() + debug('onerror %o', err) + reject(err) + } + function ondata(b) { + buffers.push(b) + buffersLength += b.length + const buffered = Buffer.concat(buffers, buffersLength) + const endOfHeaders = buffered.indexOf('\r\n\r\n') + if (endOfHeaders === -1) { + // keep buffering + debug('have not received end of HTTP headers yet...') + read() + return + } + const firstLine = buffered.toString( + 'ascii', + 0, + buffered.indexOf('\r\n') + ) + const statusCode = +firstLine.split(' ')[1] + debug('got proxy server response: %o', firstLine) + resolve({ + statusCode, + buffered + }) + } + socket.on('error', onerror) + socket.on('close', onclose) + socket.on('end', onend) + read() + }) + } + exports['default'] = parseProxyResponse + //# sourceMappingURL=parse-proxy-response.js.map -function renamed(from, to) { - return function () { - throw new Error('Function yaml.' + from + ' is removed in js-yaml 4. ' + - 'Use yaml.' + to + ' instead, which is now safe by default.'); - }; -} + /***/ + }, + /***/ 21917: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' -module.exports.Type = __nccwpck_require__(6073); -module.exports.Schema = __nccwpck_require__(21082); -module.exports.FAILSAFE_SCHEMA = __nccwpck_require__(28562); -module.exports.JSON_SCHEMA = __nccwpck_require__(1035); -module.exports.CORE_SCHEMA = __nccwpck_require__(12011); -module.exports.DEFAULT_SCHEMA = __nccwpck_require__(18759); -module.exports.load = loader.load; -module.exports.loadAll = loader.loadAll; -module.exports.dump = dumper.dump; -module.exports.YAMLException = __nccwpck_require__(68179); + var loader = __nccwpck_require__(51161) + var dumper = __nccwpck_require__(68866) -// Re-export all types in case user wants to create custom schema -module.exports.types = { - binary: __nccwpck_require__(77900), - float: __nccwpck_require__(42705), - map: __nccwpck_require__(86150), - null: __nccwpck_require__(20721), - pairs: __nccwpck_require__(96860), - set: __nccwpck_require__(79548), - timestamp: __nccwpck_require__(99212), - bool: __nccwpck_require__(64993), - int: __nccwpck_require__(11615), - merge: __nccwpck_require__(86104), - omap: __nccwpck_require__(19046), - seq: __nccwpck_require__(67283), - str: __nccwpck_require__(23619) -}; + function renamed(from, to) { + return function () { + throw new Error( + 'Function yaml.' + + from + + ' is removed in js-yaml 4. ' + + 'Use yaml.' + + to + + ' instead, which is now safe by default.' + ) + } + } -// Removed functions from JS-YAML 3.0.x -module.exports.safeLoad = renamed('safeLoad', 'load'); -module.exports.safeLoadAll = renamed('safeLoadAll', 'loadAll'); -module.exports.safeDump = renamed('safeDump', 'dump'); + module.exports.Type = __nccwpck_require__(6073) + module.exports.Schema = __nccwpck_require__(21082) + module.exports.FAILSAFE_SCHEMA = __nccwpck_require__(28562) + module.exports.JSON_SCHEMA = __nccwpck_require__(1035) + module.exports.CORE_SCHEMA = __nccwpck_require__(12011) + module.exports.DEFAULT_SCHEMA = __nccwpck_require__(18759) + module.exports.load = loader.load + module.exports.loadAll = loader.loadAll + module.exports.dump = dumper.dump + module.exports.YAMLException = __nccwpck_require__(68179) + + // Re-export all types in case user wants to create custom schema + module.exports.types = { + binary: __nccwpck_require__(77900), + float: __nccwpck_require__(42705), + map: __nccwpck_require__(86150), + null: __nccwpck_require__(20721), + pairs: __nccwpck_require__(96860), + set: __nccwpck_require__(79548), + timestamp: __nccwpck_require__(99212), + bool: __nccwpck_require__(64993), + int: __nccwpck_require__(11615), + merge: __nccwpck_require__(86104), + omap: __nccwpck_require__(19046), + seq: __nccwpck_require__(67283), + str: __nccwpck_require__(23619) + } + + // Removed functions from JS-YAML 3.0.x + module.exports.safeLoad = renamed('safeLoad', 'load') + module.exports.safeLoadAll = renamed('safeLoadAll', 'loadAll') + module.exports.safeDump = renamed('safeDump', 'dump') + + /***/ + }, + /***/ 26829: /***/ module => { + 'use strict' -/***/ }), + function isNothing(subject) { + return typeof subject === 'undefined' || subject === null + } -/***/ 26829: -/***/ ((module) => { + function isObject(subject) { + return typeof subject === 'object' && subject !== null + } -"use strict"; + function toArray(sequence) { + if (Array.isArray(sequence)) return sequence + else if (isNothing(sequence)) return [] + return [sequence] + } + function extend(target, source) { + var index, length, key, sourceKeys -function isNothing(subject) { - return (typeof subject === 'undefined') || (subject === null); -} + if (source) { + sourceKeys = Object.keys(source) + for ( + index = 0, length = sourceKeys.length; + index < length; + index += 1 + ) { + key = sourceKeys[index] + target[key] = source[key] + } + } -function isObject(subject) { - return (typeof subject === 'object') && (subject !== null); -} + return target + } + function repeat(string, count) { + var result = '', + cycle -function toArray(sequence) { - if (Array.isArray(sequence)) return sequence; - else if (isNothing(sequence)) return []; + for (cycle = 0; cycle < count; cycle += 1) { + result += string + } - return [ sequence ]; -} + return result + } + function isNegativeZero(number) { + return number === 0 && Number.NEGATIVE_INFINITY === 1 / number + } -function extend(target, source) { - var index, length, key, sourceKeys; + module.exports.isNothing = isNothing + module.exports.isObject = isObject + module.exports.toArray = toArray + module.exports.repeat = repeat + module.exports.isNegativeZero = isNegativeZero + module.exports.extend = extend - if (source) { - sourceKeys = Object.keys(source); + /***/ + }, - for (index = 0, length = sourceKeys.length; index < length; index += 1) { - key = sourceKeys[index]; - target[key] = source[key]; - } - } + /***/ 68866: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + /*eslint-disable no-use-before-define*/ + + var common = __nccwpck_require__(26829) + var YAMLException = __nccwpck_require__(68179) + var DEFAULT_SCHEMA = __nccwpck_require__(18759) + + var _toString = Object.prototype.toString + var _hasOwnProperty = Object.prototype.hasOwnProperty + + var CHAR_BOM = 0xfeff + var CHAR_TAB = 0x09 /* Tab */ + var CHAR_LINE_FEED = 0x0a /* LF */ + var CHAR_CARRIAGE_RETURN = 0x0d /* CR */ + var CHAR_SPACE = 0x20 /* Space */ + var CHAR_EXCLAMATION = 0x21 /* ! */ + var CHAR_DOUBLE_QUOTE = 0x22 /* " */ + var CHAR_SHARP = 0x23 /* # */ + var CHAR_PERCENT = 0x25 /* % */ + var CHAR_AMPERSAND = 0x26 /* & */ + var CHAR_SINGLE_QUOTE = 0x27 /* ' */ + var CHAR_ASTERISK = 0x2a /* * */ + var CHAR_COMMA = 0x2c /* , */ + var CHAR_MINUS = 0x2d /* - */ + var CHAR_COLON = 0x3a /* : */ + var CHAR_EQUALS = 0x3d /* = */ + var CHAR_GREATER_THAN = 0x3e /* > */ + var CHAR_QUESTION = 0x3f /* ? */ + var CHAR_COMMERCIAL_AT = 0x40 /* @ */ + var CHAR_LEFT_SQUARE_BRACKET = 0x5b /* [ */ + var CHAR_RIGHT_SQUARE_BRACKET = 0x5d /* ] */ + var CHAR_GRAVE_ACCENT = 0x60 /* ` */ + var CHAR_LEFT_CURLY_BRACKET = 0x7b /* { */ + var CHAR_VERTICAL_LINE = 0x7c /* | */ + var CHAR_RIGHT_CURLY_BRACKET = 0x7d /* } */ + + var ESCAPE_SEQUENCES = {} + + ESCAPE_SEQUENCES[0x00] = '\\0' + ESCAPE_SEQUENCES[0x07] = '\\a' + ESCAPE_SEQUENCES[0x08] = '\\b' + ESCAPE_SEQUENCES[0x09] = '\\t' + ESCAPE_SEQUENCES[0x0a] = '\\n' + ESCAPE_SEQUENCES[0x0b] = '\\v' + ESCAPE_SEQUENCES[0x0c] = '\\f' + ESCAPE_SEQUENCES[0x0d] = '\\r' + ESCAPE_SEQUENCES[0x1b] = '\\e' + ESCAPE_SEQUENCES[0x22] = '\\"' + ESCAPE_SEQUENCES[0x5c] = '\\\\' + ESCAPE_SEQUENCES[0x85] = '\\N' + ESCAPE_SEQUENCES[0xa0] = '\\_' + ESCAPE_SEQUENCES[0x2028] = '\\L' + ESCAPE_SEQUENCES[0x2029] = '\\P' + + var DEPRECATED_BOOLEANS_SYNTAX = [ + 'y', + 'Y', + 'yes', + 'Yes', + 'YES', + 'on', + 'On', + 'ON', + 'n', + 'N', + 'no', + 'No', + 'NO', + 'off', + 'Off', + 'OFF' + ] - return target; -} + var DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/ + function compileStyleMap(schema, map) { + var result, keys, index, length, tag, style, type -function repeat(string, count) { - var result = '', cycle; + if (map === null) return {} - for (cycle = 0; cycle < count; cycle += 1) { - result += string; - } + result = {} + keys = Object.keys(map) - return result; -} - - -function isNegativeZero(number) { - return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number); -} - - -module.exports.isNothing = isNothing; -module.exports.isObject = isObject; -module.exports.toArray = toArray; -module.exports.repeat = repeat; -module.exports.isNegativeZero = isNegativeZero; -module.exports.extend = extend; - - -/***/ }), - -/***/ 68866: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - - -/*eslint-disable no-use-before-define*/ - -var common = __nccwpck_require__(26829); -var YAMLException = __nccwpck_require__(68179); -var DEFAULT_SCHEMA = __nccwpck_require__(18759); - -var _toString = Object.prototype.toString; -var _hasOwnProperty = Object.prototype.hasOwnProperty; - -var CHAR_BOM = 0xFEFF; -var CHAR_TAB = 0x09; /* Tab */ -var CHAR_LINE_FEED = 0x0A; /* LF */ -var CHAR_CARRIAGE_RETURN = 0x0D; /* CR */ -var CHAR_SPACE = 0x20; /* Space */ -var CHAR_EXCLAMATION = 0x21; /* ! */ -var CHAR_DOUBLE_QUOTE = 0x22; /* " */ -var CHAR_SHARP = 0x23; /* # */ -var CHAR_PERCENT = 0x25; /* % */ -var CHAR_AMPERSAND = 0x26; /* & */ -var CHAR_SINGLE_QUOTE = 0x27; /* ' */ -var CHAR_ASTERISK = 0x2A; /* * */ -var CHAR_COMMA = 0x2C; /* , */ -var CHAR_MINUS = 0x2D; /* - */ -var CHAR_COLON = 0x3A; /* : */ -var CHAR_EQUALS = 0x3D; /* = */ -var CHAR_GREATER_THAN = 0x3E; /* > */ -var CHAR_QUESTION = 0x3F; /* ? */ -var CHAR_COMMERCIAL_AT = 0x40; /* @ */ -var CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */ -var CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */ -var CHAR_GRAVE_ACCENT = 0x60; /* ` */ -var CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */ -var CHAR_VERTICAL_LINE = 0x7C; /* | */ -var CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */ - -var ESCAPE_SEQUENCES = {}; - -ESCAPE_SEQUENCES[0x00] = '\\0'; -ESCAPE_SEQUENCES[0x07] = '\\a'; -ESCAPE_SEQUENCES[0x08] = '\\b'; -ESCAPE_SEQUENCES[0x09] = '\\t'; -ESCAPE_SEQUENCES[0x0A] = '\\n'; -ESCAPE_SEQUENCES[0x0B] = '\\v'; -ESCAPE_SEQUENCES[0x0C] = '\\f'; -ESCAPE_SEQUENCES[0x0D] = '\\r'; -ESCAPE_SEQUENCES[0x1B] = '\\e'; -ESCAPE_SEQUENCES[0x22] = '\\"'; -ESCAPE_SEQUENCES[0x5C] = '\\\\'; -ESCAPE_SEQUENCES[0x85] = '\\N'; -ESCAPE_SEQUENCES[0xA0] = '\\_'; -ESCAPE_SEQUENCES[0x2028] = '\\L'; -ESCAPE_SEQUENCES[0x2029] = '\\P'; - -var DEPRECATED_BOOLEANS_SYNTAX = [ - 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON', - 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF' -]; - -var DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/; - -function compileStyleMap(schema, map) { - var result, keys, index, length, tag, style, type; - - if (map === null) return {}; - - result = {}; - keys = Object.keys(map); - - for (index = 0, length = keys.length; index < length; index += 1) { - tag = keys[index]; - style = String(map[tag]); - - if (tag.slice(0, 2) === '!!') { - tag = 'tag:yaml.org,2002:' + tag.slice(2); - } - type = schema.compiledTypeMap['fallback'][tag]; + for (index = 0, length = keys.length; index < length; index += 1) { + tag = keys[index] + style = String(map[tag]) - if (type && _hasOwnProperty.call(type.styleAliases, style)) { - style = type.styleAliases[style]; - } + if (tag.slice(0, 2) === '!!') { + tag = 'tag:yaml.org,2002:' + tag.slice(2) + } + type = schema.compiledTypeMap['fallback'][tag] - result[tag] = style; - } + if (type && _hasOwnProperty.call(type.styleAliases, style)) { + style = type.styleAliases[style] + } - return result; -} - -function encodeHex(character) { - var string, handle, length; - - string = character.toString(16).toUpperCase(); - - if (character <= 0xFF) { - handle = 'x'; - length = 2; - } else if (character <= 0xFFFF) { - handle = 'u'; - length = 4; - } else if (character <= 0xFFFFFFFF) { - handle = 'U'; - length = 8; - } else { - throw new YAMLException('code point within a string may not be greater than 0xFFFFFFFF'); - } + result[tag] = style + } - return '\\' + handle + common.repeat('0', length - string.length) + string; -} - - -var QUOTING_TYPE_SINGLE = 1, - QUOTING_TYPE_DOUBLE = 2; - -function State(options) { - this.schema = options['schema'] || DEFAULT_SCHEMA; - this.indent = Math.max(1, (options['indent'] || 2)); - this.noArrayIndent = options['noArrayIndent'] || false; - this.skipInvalid = options['skipInvalid'] || false; - this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']); - this.styleMap = compileStyleMap(this.schema, options['styles'] || null); - this.sortKeys = options['sortKeys'] || false; - this.lineWidth = options['lineWidth'] || 80; - this.noRefs = options['noRefs'] || false; - this.noCompatMode = options['noCompatMode'] || false; - this.condenseFlow = options['condenseFlow'] || false; - this.quotingType = options['quotingType'] === '"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE; - this.forceQuotes = options['forceQuotes'] || false; - this.replacer = typeof options['replacer'] === 'function' ? options['replacer'] : null; - - this.implicitTypes = this.schema.compiledImplicit; - this.explicitTypes = this.schema.compiledExplicit; - - this.tag = null; - this.result = ''; - - this.duplicates = []; - this.usedDuplicates = null; -} - -// Indents every line in a string. Empty lines (\n only) are not indented. -function indentString(string, spaces) { - var ind = common.repeat(' ', spaces), - position = 0, - next = -1, - result = '', - line, - length = string.length; - - while (position < length) { - next = string.indexOf('\n', position); - if (next === -1) { - line = string.slice(position); - position = length; - } else { - line = string.slice(position, next + 1); - position = next + 1; - } + return result + } - if (line.length && line !== '\n') result += ind; + function encodeHex(character) { + var string, handle, length - result += line; - } + string = character.toString(16).toUpperCase() - return result; -} + if (character <= 0xff) { + handle = 'x' + length = 2 + } else if (character <= 0xffff) { + handle = 'u' + length = 4 + } else if (character <= 0xffffffff) { + handle = 'U' + length = 8 + } else { + throw new YAMLException( + 'code point within a string may not be greater than 0xFFFFFFFF' + ) + } -function generateNextLine(state, level) { - return '\n' + common.repeat(' ', state.indent * level); -} + return ( + '\\' + handle + common.repeat('0', length - string.length) + string + ) + } -function testImplicitResolving(state, str) { - var index, length, type; + var QUOTING_TYPE_SINGLE = 1, + QUOTING_TYPE_DOUBLE = 2 + + function State(options) { + this.schema = options['schema'] || DEFAULT_SCHEMA + this.indent = Math.max(1, options['indent'] || 2) + this.noArrayIndent = options['noArrayIndent'] || false + this.skipInvalid = options['skipInvalid'] || false + this.flowLevel = common.isNothing(options['flowLevel']) + ? -1 + : options['flowLevel'] + this.styleMap = compileStyleMap(this.schema, options['styles'] || null) + this.sortKeys = options['sortKeys'] || false + this.lineWidth = options['lineWidth'] || 80 + this.noRefs = options['noRefs'] || false + this.noCompatMode = options['noCompatMode'] || false + this.condenseFlow = options['condenseFlow'] || false + this.quotingType = + options['quotingType'] === '"' + ? QUOTING_TYPE_DOUBLE + : QUOTING_TYPE_SINGLE + this.forceQuotes = options['forceQuotes'] || false + this.replacer = + typeof options['replacer'] === 'function' ? options['replacer'] : null + + this.implicitTypes = this.schema.compiledImplicit + this.explicitTypes = this.schema.compiledExplicit + + this.tag = null + this.result = '' + + this.duplicates = [] + this.usedDuplicates = null + } + + // Indents every line in a string. Empty lines (\n only) are not indented. + function indentString(string, spaces) { + var ind = common.repeat(' ', spaces), + position = 0, + next = -1, + result = '', + line, + length = string.length + + while (position < length) { + next = string.indexOf('\n', position) + if (next === -1) { + line = string.slice(position) + position = length + } else { + line = string.slice(position, next + 1) + position = next + 1 + } - for (index = 0, length = state.implicitTypes.length; index < length; index += 1) { - type = state.implicitTypes[index]; + if (line.length && line !== '\n') result += ind - if (type.resolve(str)) { - return true; - } - } + result += line + } - return false; -} - -// [33] s-white ::= s-space | s-tab -function isWhitespace(c) { - return c === CHAR_SPACE || c === CHAR_TAB; -} - -// Returns true if the character can be printed without escaping. -// From YAML 1.2: "any allowed characters known to be non-printable -// should also be escaped. [However,] This isn’t mandatory" -// Derived from nb-char - \t - #x85 - #xA0 - #x2028 - #x2029. -function isPrintable(c) { - return (0x00020 <= c && c <= 0x00007E) - || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029) - || ((0x0E000 <= c && c <= 0x00FFFD) && c !== CHAR_BOM) - || (0x10000 <= c && c <= 0x10FFFF); -} - -// [34] ns-char ::= nb-char - s-white -// [27] nb-char ::= c-printable - b-char - c-byte-order-mark -// [26] b-char ::= b-line-feed | b-carriage-return -// Including s-white (for some reason, examples doesn't match specs in this aspect) -// ns-char ::= c-printable - b-line-feed - b-carriage-return - c-byte-order-mark -function isNsCharOrWhitespace(c) { - return isPrintable(c) - && c !== CHAR_BOM - // - b-char - && c !== CHAR_CARRIAGE_RETURN - && c !== CHAR_LINE_FEED; -} - -// [127] ns-plain-safe(c) ::= c = flow-out ⇒ ns-plain-safe-out -// c = flow-in ⇒ ns-plain-safe-in -// c = block-key ⇒ ns-plain-safe-out -// c = flow-key ⇒ ns-plain-safe-in -// [128] ns-plain-safe-out ::= ns-char -// [129] ns-plain-safe-in ::= ns-char - c-flow-indicator -// [130] ns-plain-char(c) ::= ( ns-plain-safe(c) - “:” - “#” ) -// | ( /* An ns-char preceding */ “#” ) -// | ( “:” /* Followed by an ns-plain-safe(c) */ ) -function isPlainSafe(c, prev, inblock) { - var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c); - var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c); - return ( - // ns-plain-safe - inblock ? // c = flow-in - cIsNsCharOrWhitespace - : cIsNsCharOrWhitespace - // - c-flow-indicator - && c !== CHAR_COMMA - && c !== CHAR_LEFT_SQUARE_BRACKET - && c !== CHAR_RIGHT_SQUARE_BRACKET - && c !== CHAR_LEFT_CURLY_BRACKET - && c !== CHAR_RIGHT_CURLY_BRACKET - ) - // ns-plain-char - && c !== CHAR_SHARP // false on '#' - && !(prev === CHAR_COLON && !cIsNsChar) // false on ': ' - || (isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP) // change to true on '[^ ]#' - || (prev === CHAR_COLON && cIsNsChar); // change to true on ':[^ ]' -} - -// Simplified test for values allowed as the first character in plain style. -function isPlainSafeFirst(c) { - // Uses a subset of ns-char - c-indicator - // where ns-char = nb-char - s-white. - // No support of ( ( “?” | “:” | “-” ) /* Followed by an ns-plain-safe(c)) */ ) part - return isPrintable(c) && c !== CHAR_BOM - && !isWhitespace(c) // - s-white - // - (c-indicator ::= - // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}” - && c !== CHAR_MINUS - && c !== CHAR_QUESTION - && c !== CHAR_COLON - && c !== CHAR_COMMA - && c !== CHAR_LEFT_SQUARE_BRACKET - && c !== CHAR_RIGHT_SQUARE_BRACKET - && c !== CHAR_LEFT_CURLY_BRACKET - && c !== CHAR_RIGHT_CURLY_BRACKET - // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “"” - && c !== CHAR_SHARP - && c !== CHAR_AMPERSAND - && c !== CHAR_ASTERISK - && c !== CHAR_EXCLAMATION - && c !== CHAR_VERTICAL_LINE - && c !== CHAR_EQUALS - && c !== CHAR_GREATER_THAN - && c !== CHAR_SINGLE_QUOTE - && c !== CHAR_DOUBLE_QUOTE - // | “%” | “@” | “`”) - && c !== CHAR_PERCENT - && c !== CHAR_COMMERCIAL_AT - && c !== CHAR_GRAVE_ACCENT; -} - -// Simplified test for values allowed as the last character in plain style. -function isPlainSafeLast(c) { - // just not whitespace or colon, it will be checked to be plain character later - return !isWhitespace(c) && c !== CHAR_COLON; -} - -// Same as 'string'.codePointAt(pos), but works in older browsers. -function codePointAt(string, pos) { - var first = string.charCodeAt(pos), second; - if (first >= 0xD800 && first <= 0xDBFF && pos + 1 < string.length) { - second = string.charCodeAt(pos + 1); - if (second >= 0xDC00 && second <= 0xDFFF) { - // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae - return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000; - } - } - return first; -} - -// Determines whether block indentation indicator is required. -function needIndentIndicator(string) { - var leadingSpaceRe = /^\n* /; - return leadingSpaceRe.test(string); -} - -var STYLE_PLAIN = 1, - STYLE_SINGLE = 2, - STYLE_LITERAL = 3, - STYLE_FOLDED = 4, - STYLE_DOUBLE = 5; - -// Determines which scalar styles are possible and returns the preferred style. -// lineWidth = -1 => no limit. -// Pre-conditions: str.length > 0. -// Post-conditions: -// STYLE_PLAIN or STYLE_SINGLE => no \n are in the string. -// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1). -// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1). -function chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, - testAmbiguousType, quotingType, forceQuotes, inblock) { - - var i; - var char = 0; - var prevChar = null; - var hasLineBreak = false; - var hasFoldableLine = false; // only checked if shouldTrackWidth - var shouldTrackWidth = lineWidth !== -1; - var previousLineBreak = -1; // count the first line correctly - var plain = isPlainSafeFirst(codePointAt(string, 0)) - && isPlainSafeLast(codePointAt(string, string.length - 1)); - - if (singleLineOnly || forceQuotes) { - // Case: no block styles. - // Check for disallowed characters to rule out plain and single. - for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) { - char = codePointAt(string, i); - if (!isPrintable(char)) { - return STYLE_DOUBLE; - } - plain = plain && isPlainSafe(char, prevChar, inblock); - prevChar = char; - } - } else { - // Case: block styles permitted. - for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) { - char = codePointAt(string, i); - if (char === CHAR_LINE_FEED) { - hasLineBreak = true; - // Check if any line can be folded. - if (shouldTrackWidth) { - hasFoldableLine = hasFoldableLine || - // Foldable line = too long, and not more-indented. - (i - previousLineBreak - 1 > lineWidth && - string[previousLineBreak + 1] !== ' '); - previousLineBreak = i; - } - } else if (!isPrintable(char)) { - return STYLE_DOUBLE; - } - plain = plain && isPlainSafe(char, prevChar, inblock); - prevChar = char; - } - // in case the end is missing a \n - hasFoldableLine = hasFoldableLine || (shouldTrackWidth && - (i - previousLineBreak - 1 > lineWidth && - string[previousLineBreak + 1] !== ' ')); - } - // Although every style can represent \n without escaping, prefer block styles - // for multiline, since they're more readable and they don't add empty lines. - // Also prefer folding a super-long line. - if (!hasLineBreak && !hasFoldableLine) { - // Strings interpretable as another type have to be quoted; - // e.g. the string 'true' vs. the boolean true. - if (plain && !forceQuotes && !testAmbiguousType(string)) { - return STYLE_PLAIN; - } - return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE; - } - // Edge case: block indentation indicator can only have one digit. - if (indentPerLevel > 9 && needIndentIndicator(string)) { - return STYLE_DOUBLE; - } - // At this point we know block styles are valid. - // Prefer literal style unless we want to fold. - if (!forceQuotes) { - return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL; - } - return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE; -} - -// Note: line breaking/folding is implemented for only the folded style. -// NB. We drop the last trailing newline (if any) of a returned block scalar -// since the dumper adds its own newline. This always works: -// • No ending newline => unaffected; already using strip "-" chomping. -// • Ending newline => removed then restored. -// Importantly, this keeps the "+" chomp indicator from gaining an extra line. -function writeScalar(state, string, level, iskey, inblock) { - state.dump = (function () { - if (string.length === 0) { - return state.quotingType === QUOTING_TYPE_DOUBLE ? '""' : "''"; - } - if (!state.noCompatMode) { - if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) { - return state.quotingType === QUOTING_TYPE_DOUBLE ? ('"' + string + '"') : ("'" + string + "'"); + return result } - } - - var indent = state.indent * Math.max(1, level); // no 0-indent scalars - // As indentation gets deeper, let the width decrease monotonically - // to the lower bound min(state.lineWidth, 40). - // Note that this implies - // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound. - // state.lineWidth > 40 + state.indent: width decreases until the lower bound. - // This behaves better than a constant minimum width which disallows narrower options, - // or an indent threshold which causes the width to suddenly increase. - var lineWidth = state.lineWidth === -1 - ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent); - - // Without knowing if keys are implicit/explicit, assume implicit for safety. - var singleLineOnly = iskey - // No block styles in flow mode. - || (state.flowLevel > -1 && level >= state.flowLevel); - function testAmbiguity(string) { - return testImplicitResolving(state, string); - } - switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth, - testAmbiguity, state.quotingType, state.forceQuotes && !iskey, inblock)) { - - case STYLE_PLAIN: - return string; - case STYLE_SINGLE: - return "'" + string.replace(/'/g, "''") + "'"; - case STYLE_LITERAL: - return '|' + blockHeader(string, state.indent) - + dropEndingNewline(indentString(string, indent)); - case STYLE_FOLDED: - return '>' + blockHeader(string, state.indent) - + dropEndingNewline(indentString(foldString(string, lineWidth), indent)); - case STYLE_DOUBLE: - return '"' + escapeString(string, lineWidth) + '"'; - default: - throw new YAMLException('impossible error: invalid scalar style'); - } - }()); -} - -// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9. -function blockHeader(string, indentPerLevel) { - var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : ''; - - // note the special case: the string '\n' counts as a "trailing" empty line. - var clip = string[string.length - 1] === '\n'; - var keep = clip && (string[string.length - 2] === '\n' || string === '\n'); - var chomp = keep ? '+' : (clip ? '' : '-'); - - return indentIndicator + chomp + '\n'; -} - -// (See the note for writeScalar.) -function dropEndingNewline(string) { - return string[string.length - 1] === '\n' ? string.slice(0, -1) : string; -} - -// Note: a long line without a suitable break point will exceed the width limit. -// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0. -function foldString(string, width) { - // In folded style, $k$ consecutive newlines output as $k+1$ newlines— - // unless they're before or after a more-indented line, or at the very - // beginning or end, in which case $k$ maps to $k$. - // Therefore, parse each chunk as newline(s) followed by a content line. - var lineRe = /(\n+)([^\n]*)/g; - - // first line (possibly an empty line) - var result = (function () { - var nextLF = string.indexOf('\n'); - nextLF = nextLF !== -1 ? nextLF : string.length; - lineRe.lastIndex = nextLF; - return foldLine(string.slice(0, nextLF), width); - }()); - // If we haven't reached the first content line yet, don't add an extra \n. - var prevMoreIndented = string[0] === '\n' || string[0] === ' '; - var moreIndented; - - // rest of the lines - var match; - while ((match = lineRe.exec(string))) { - var prefix = match[1], line = match[2]; - moreIndented = (line[0] === ' '); - result += prefix - + (!prevMoreIndented && !moreIndented && line !== '' - ? '\n' : '') - + foldLine(line, width); - prevMoreIndented = moreIndented; - } + function generateNextLine(state, level) { + return '\n' + common.repeat(' ', state.indent * level) + } - return result; -} - -// Greedy line breaking. -// Picks the longest line under the limit each time, -// otherwise settles for the shortest line over the limit. -// NB. More-indented lines *cannot* be folded, as that would add an extra \n. -function foldLine(line, width) { - if (line === '' || line[0] === ' ') return line; - - // Since a more-indented line adds a \n, breaks can't be followed by a space. - var breakRe = / [^ ]/g; // note: the match index will always be <= length-2. - var match; - // start is an inclusive index. end, curr, and next are exclusive. - var start = 0, end, curr = 0, next = 0; - var result = ''; - - // Invariants: 0 <= start <= length-1. - // 0 <= curr <= next <= max(0, length-2). curr - start <= width. - // Inside the loop: - // A match implies length >= 2, so curr and next are <= length-2. - while ((match = breakRe.exec(line))) { - next = match.index; - // maintain invariant: curr - start <= width - if (next - start > width) { - end = (curr > start) ? curr : next; // derive end <= length-2 - result += '\n' + line.slice(start, end); - // skip the space that was output as \n - start = end + 1; // derive start <= length-1 - } - curr = next; - } + function testImplicitResolving(state, str) { + var index, length, type - // By the invariants, start <= length-1, so there is something left over. - // It is either the whole string or a part starting from non-whitespace. - result += '\n'; - // Insert a break if the remainder is too long and there is a break available. - if (line.length - start > width && curr > start) { - result += line.slice(start, curr) + '\n' + line.slice(curr + 1); - } else { - result += line.slice(start); - } + for ( + index = 0, length = state.implicitTypes.length; + index < length; + index += 1 + ) { + type = state.implicitTypes[index] - return result.slice(1); // drop extra \n joiner -} + if (type.resolve(str)) { + return true + } + } -// Escapes a double-quoted string. -function escapeString(string) { - var result = ''; - var char = 0; - var escapeSeq; + return false + } - for (var i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) { - char = codePointAt(string, i); - escapeSeq = ESCAPE_SEQUENCES[char]; + // [33] s-white ::= s-space | s-tab + function isWhitespace(c) { + return c === CHAR_SPACE || c === CHAR_TAB + } - if (!escapeSeq && isPrintable(char)) { - result += string[i]; - if (char >= 0x10000) result += string[i + 1]; - } else { - result += escapeSeq || encodeHex(char); - } - } + // Returns true if the character can be printed without escaping. + // From YAML 1.2: "any allowed characters known to be non-printable + // should also be escaped. [However,] This isn’t mandatory" + // Derived from nb-char - \t - #x85 - #xA0 - #x2028 - #x2029. + function isPrintable(c) { + return ( + (0x00020 <= c && c <= 0x00007e) || + (0x000a1 <= c && c <= 0x00d7ff && c !== 0x2028 && c !== 0x2029) || + (0x0e000 <= c && c <= 0x00fffd && c !== CHAR_BOM) || + (0x10000 <= c && c <= 0x10ffff) + ) + } - return result; -} + // [34] ns-char ::= nb-char - s-white + // [27] nb-char ::= c-printable - b-char - c-byte-order-mark + // [26] b-char ::= b-line-feed | b-carriage-return + // Including s-white (for some reason, examples doesn't match specs in this aspect) + // ns-char ::= c-printable - b-line-feed - b-carriage-return - c-byte-order-mark + function isNsCharOrWhitespace(c) { + return ( + isPrintable(c) && + c !== CHAR_BOM && + // - b-char + c !== CHAR_CARRIAGE_RETURN && + c !== CHAR_LINE_FEED + ) + } -function writeFlowSequence(state, level, object) { - var _result = '', - _tag = state.tag, - index, - length, - value; + // [127] ns-plain-safe(c) ::= c = flow-out ⇒ ns-plain-safe-out + // c = flow-in ⇒ ns-plain-safe-in + // c = block-key ⇒ ns-plain-safe-out + // c = flow-key ⇒ ns-plain-safe-in + // [128] ns-plain-safe-out ::= ns-char + // [129] ns-plain-safe-in ::= ns-char - c-flow-indicator + // [130] ns-plain-char(c) ::= ( ns-plain-safe(c) - “:” - “#” ) + // | ( /* An ns-char preceding */ “#” ) + // | ( “:” /* Followed by an ns-plain-safe(c) */ ) + function isPlainSafe(c, prev, inblock) { + var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c) + var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c) + return ( + // ns-plain-safe + ((inblock // c = flow-in + ? cIsNsCharOrWhitespace + : cIsNsCharOrWhitespace && + // - c-flow-indicator + c !== CHAR_COMMA && + c !== CHAR_LEFT_SQUARE_BRACKET && + c !== CHAR_RIGHT_SQUARE_BRACKET && + c !== CHAR_LEFT_CURLY_BRACKET && + c !== CHAR_RIGHT_CURLY_BRACKET) && + // ns-plain-char + c !== CHAR_SHARP && // false on '#' + !(prev === CHAR_COLON && !cIsNsChar)) || // false on ': ' + (isNsCharOrWhitespace(prev) && + !isWhitespace(prev) && + c === CHAR_SHARP) || // change to true on '[^ ]#' + (prev === CHAR_COLON && cIsNsChar) + ) // change to true on ':[^ ]' + } + + // Simplified test for values allowed as the first character in plain style. + function isPlainSafeFirst(c) { + // Uses a subset of ns-char - c-indicator + // where ns-char = nb-char - s-white. + // No support of ( ( “?” | “:” | “-” ) /* Followed by an ns-plain-safe(c)) */ ) part + return ( + isPrintable(c) && + c !== CHAR_BOM && + !isWhitespace(c) && // - s-white + // - (c-indicator ::= + // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}” + c !== CHAR_MINUS && + c !== CHAR_QUESTION && + c !== CHAR_COLON && + c !== CHAR_COMMA && + c !== CHAR_LEFT_SQUARE_BRACKET && + c !== CHAR_RIGHT_SQUARE_BRACKET && + c !== CHAR_LEFT_CURLY_BRACKET && + c !== CHAR_RIGHT_CURLY_BRACKET && + // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “"” + c !== CHAR_SHARP && + c !== CHAR_AMPERSAND && + c !== CHAR_ASTERISK && + c !== CHAR_EXCLAMATION && + c !== CHAR_VERTICAL_LINE && + c !== CHAR_EQUALS && + c !== CHAR_GREATER_THAN && + c !== CHAR_SINGLE_QUOTE && + c !== CHAR_DOUBLE_QUOTE && + // | “%” | “@” | “`”) + c !== CHAR_PERCENT && + c !== CHAR_COMMERCIAL_AT && + c !== CHAR_GRAVE_ACCENT + ) + } - for (index = 0, length = object.length; index < length; index += 1) { - value = object[index]; + // Simplified test for values allowed as the last character in plain style. + function isPlainSafeLast(c) { + // just not whitespace or colon, it will be checked to be plain character later + return !isWhitespace(c) && c !== CHAR_COLON + } - if (state.replacer) { - value = state.replacer.call(object, String(index), value); - } + // Same as 'string'.codePointAt(pos), but works in older browsers. + function codePointAt(string, pos) { + var first = string.charCodeAt(pos), + second + if (first >= 0xd800 && first <= 0xdbff && pos + 1 < string.length) { + second = string.charCodeAt(pos + 1) + if (second >= 0xdc00 && second <= 0xdfff) { + // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae + return (first - 0xd800) * 0x400 + second - 0xdc00 + 0x10000 + } + } + return first + } + + // Determines whether block indentation indicator is required. + function needIndentIndicator(string) { + var leadingSpaceRe = /^\n* / + return leadingSpaceRe.test(string) + } + + var STYLE_PLAIN = 1, + STYLE_SINGLE = 2, + STYLE_LITERAL = 3, + STYLE_FOLDED = 4, + STYLE_DOUBLE = 5 + + // Determines which scalar styles are possible and returns the preferred style. + // lineWidth = -1 => no limit. + // Pre-conditions: str.length > 0. + // Post-conditions: + // STYLE_PLAIN or STYLE_SINGLE => no \n are in the string. + // STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1). + // STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1). + function chooseScalarStyle( + string, + singleLineOnly, + indentPerLevel, + lineWidth, + testAmbiguousType, + quotingType, + forceQuotes, + inblock + ) { + var i + var char = 0 + var prevChar = null + var hasLineBreak = false + var hasFoldableLine = false // only checked if shouldTrackWidth + var shouldTrackWidth = lineWidth !== -1 + var previousLineBreak = -1 // count the first line correctly + var plain = + isPlainSafeFirst(codePointAt(string, 0)) && + isPlainSafeLast(codePointAt(string, string.length - 1)) + + if (singleLineOnly || forceQuotes) { + // Case: no block styles. + // Check for disallowed characters to rule out plain and single. + for (i = 0; i < string.length; char >= 0x10000 ? (i += 2) : i++) { + char = codePointAt(string, i) + if (!isPrintable(char)) { + return STYLE_DOUBLE + } + plain = plain && isPlainSafe(char, prevChar, inblock) + prevChar = char + } + } else { + // Case: block styles permitted. + for (i = 0; i < string.length; char >= 0x10000 ? (i += 2) : i++) { + char = codePointAt(string, i) + if (char === CHAR_LINE_FEED) { + hasLineBreak = true + // Check if any line can be folded. + if (shouldTrackWidth) { + hasFoldableLine = + hasFoldableLine || + // Foldable line = too long, and not more-indented. + (i - previousLineBreak - 1 > lineWidth && + string[previousLineBreak + 1] !== ' ') + previousLineBreak = i + } + } else if (!isPrintable(char)) { + return STYLE_DOUBLE + } + plain = plain && isPlainSafe(char, prevChar, inblock) + prevChar = char + } + // in case the end is missing a \n + hasFoldableLine = + hasFoldableLine || + (shouldTrackWidth && + i - previousLineBreak - 1 > lineWidth && + string[previousLineBreak + 1] !== ' ') + } + // Although every style can represent \n without escaping, prefer block styles + // for multiline, since they're more readable and they don't add empty lines. + // Also prefer folding a super-long line. + if (!hasLineBreak && !hasFoldableLine) { + // Strings interpretable as another type have to be quoted; + // e.g. the string 'true' vs. the boolean true. + if (plain && !forceQuotes && !testAmbiguousType(string)) { + return STYLE_PLAIN + } + return quotingType === QUOTING_TYPE_DOUBLE + ? STYLE_DOUBLE + : STYLE_SINGLE + } + // Edge case: block indentation indicator can only have one digit. + if (indentPerLevel > 9 && needIndentIndicator(string)) { + return STYLE_DOUBLE + } + // At this point we know block styles are valid. + // Prefer literal style unless we want to fold. + if (!forceQuotes) { + return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL + } + return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE + } + + // Note: line breaking/folding is implemented for only the folded style. + // NB. We drop the last trailing newline (if any) of a returned block scalar + // since the dumper adds its own newline. This always works: + // • No ending newline => unaffected; already using strip "-" chomping. + // • Ending newline => removed then restored. + // Importantly, this keeps the "+" chomp indicator from gaining an extra line. + function writeScalar(state, string, level, iskey, inblock) { + state.dump = (function () { + if (string.length === 0) { + return state.quotingType === QUOTING_TYPE_DOUBLE ? '""' : "''" + } + if (!state.noCompatMode) { + if ( + DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || + DEPRECATED_BASE60_SYNTAX.test(string) + ) { + return state.quotingType === QUOTING_TYPE_DOUBLE + ? '"' + string + '"' + : "'" + string + "'" + } + } - // Write only valid elements, put null instead of invalid elements. - if (writeNode(state, level, value, false, false) || - (typeof value === 'undefined' && - writeNode(state, level, null, false, false))) { + var indent = state.indent * Math.max(1, level) // no 0-indent scalars + // As indentation gets deeper, let the width decrease monotonically + // to the lower bound min(state.lineWidth, 40). + // Note that this implies + // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound. + // state.lineWidth > 40 + state.indent: width decreases until the lower bound. + // This behaves better than a constant minimum width which disallows narrower options, + // or an indent threshold which causes the width to suddenly increase. + var lineWidth = + state.lineWidth === -1 + ? -1 + : Math.max( + Math.min(state.lineWidth, 40), + state.lineWidth - indent + ) + + // Without knowing if keys are implicit/explicit, assume implicit for safety. + var singleLineOnly = + iskey || + // No block styles in flow mode. + (state.flowLevel > -1 && level >= state.flowLevel) + function testAmbiguity(string) { + return testImplicitResolving(state, string) + } - if (_result !== '') _result += ',' + (!state.condenseFlow ? ' ' : ''); - _result += state.dump; - } - } + switch ( + chooseScalarStyle( + string, + singleLineOnly, + state.indent, + lineWidth, + testAmbiguity, + state.quotingType, + state.forceQuotes && !iskey, + inblock + ) + ) { + case STYLE_PLAIN: + return string + case STYLE_SINGLE: + return "'" + string.replace(/'/g, "''") + "'" + case STYLE_LITERAL: + return ( + '|' + + blockHeader(string, state.indent) + + dropEndingNewline(indentString(string, indent)) + ) + case STYLE_FOLDED: + return ( + '>' + + blockHeader(string, state.indent) + + dropEndingNewline( + indentString(foldString(string, lineWidth), indent) + ) + ) + case STYLE_DOUBLE: + return '"' + escapeString(string, lineWidth) + '"' + default: + throw new YAMLException('impossible error: invalid scalar style') + } + })() + } + + // Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9. + function blockHeader(string, indentPerLevel) { + var indentIndicator = needIndentIndicator(string) + ? String(indentPerLevel) + : '' + + // note the special case: the string '\n' counts as a "trailing" empty line. + var clip = string[string.length - 1] === '\n' + var keep = + clip && (string[string.length - 2] === '\n' || string === '\n') + var chomp = keep ? '+' : clip ? '' : '-' + + return indentIndicator + chomp + '\n' + } + + // (See the note for writeScalar.) + function dropEndingNewline(string) { + return string[string.length - 1] === '\n' ? string.slice(0, -1) : string + } + + // Note: a long line without a suitable break point will exceed the width limit. + // Pre-conditions: every char in str isPrintable, str.length > 0, width > 0. + function foldString(string, width) { + // In folded style, $k$ consecutive newlines output as $k+1$ newlines— + // unless they're before or after a more-indented line, or at the very + // beginning or end, in which case $k$ maps to $k$. + // Therefore, parse each chunk as newline(s) followed by a content line. + var lineRe = /(\n+)([^\n]*)/g + + // first line (possibly an empty line) + var result = (function () { + var nextLF = string.indexOf('\n') + nextLF = nextLF !== -1 ? nextLF : string.length + lineRe.lastIndex = nextLF + return foldLine(string.slice(0, nextLF), width) + })() + // If we haven't reached the first content line yet, don't add an extra \n. + var prevMoreIndented = string[0] === '\n' || string[0] === ' ' + var moreIndented + + // rest of the lines + var match + while ((match = lineRe.exec(string))) { + var prefix = match[1], + line = match[2] + moreIndented = line[0] === ' ' + result += + prefix + + (!prevMoreIndented && !moreIndented && line !== '' ? '\n' : '') + + foldLine(line, width) + prevMoreIndented = moreIndented + } + + return result + } + + // Greedy line breaking. + // Picks the longest line under the limit each time, + // otherwise settles for the shortest line over the limit. + // NB. More-indented lines *cannot* be folded, as that would add an extra \n. + function foldLine(line, width) { + if (line === '' || line[0] === ' ') return line + + // Since a more-indented line adds a \n, breaks can't be followed by a space. + var breakRe = / [^ ]/g // note: the match index will always be <= length-2. + var match + // start is an inclusive index. end, curr, and next are exclusive. + var start = 0, + end, + curr = 0, + next = 0 + var result = '' + + // Invariants: 0 <= start <= length-1. + // 0 <= curr <= next <= max(0, length-2). curr - start <= width. + // Inside the loop: + // A match implies length >= 2, so curr and next are <= length-2. + while ((match = breakRe.exec(line))) { + next = match.index + // maintain invariant: curr - start <= width + if (next - start > width) { + end = curr > start ? curr : next // derive end <= length-2 + result += '\n' + line.slice(start, end) + // skip the space that was output as \n + start = end + 1 // derive start <= length-1 + } + curr = next + } - state.tag = _tag; - state.dump = '[' + _result + ']'; -} + // By the invariants, start <= length-1, so there is something left over. + // It is either the whole string or a part starting from non-whitespace. + result += '\n' + // Insert a break if the remainder is too long and there is a break available. + if (line.length - start > width && curr > start) { + result += line.slice(start, curr) + '\n' + line.slice(curr + 1) + } else { + result += line.slice(start) + } -function writeBlockSequence(state, level, object, compact) { - var _result = '', - _tag = state.tag, - index, - length, - value; + return result.slice(1) // drop extra \n joiner + } - for (index = 0, length = object.length; index < length; index += 1) { - value = object[index]; + // Escapes a double-quoted string. + function escapeString(string) { + var result = '' + var char = 0 + var escapeSeq - if (state.replacer) { - value = state.replacer.call(object, String(index), value); - } + for (var i = 0; i < string.length; char >= 0x10000 ? (i += 2) : i++) { + char = codePointAt(string, i) + escapeSeq = ESCAPE_SEQUENCES[char] - // Write only valid elements, put null instead of invalid elements. - if (writeNode(state, level + 1, value, true, true, false, true) || - (typeof value === 'undefined' && - writeNode(state, level + 1, null, true, true, false, true))) { + if (!escapeSeq && isPrintable(char)) { + result += string[i] + if (char >= 0x10000) result += string[i + 1] + } else { + result += escapeSeq || encodeHex(char) + } + } - if (!compact || _result !== '') { - _result += generateNextLine(state, level); + return result } - if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { - _result += '-'; - } else { - _result += '- '; - } + function writeFlowSequence(state, level, object) { + var _result = '', + _tag = state.tag, + index, + length, + value - _result += state.dump; - } - } + for (index = 0, length = object.length; index < length; index += 1) { + value = object[index] - state.tag = _tag; - state.dump = _result || '[]'; // Empty sequence if no valid values. -} + if (state.replacer) { + value = state.replacer.call(object, String(index), value) + } + + // Write only valid elements, put null instead of invalid elements. + if ( + writeNode(state, level, value, false, false) || + (typeof value === 'undefined' && + writeNode(state, level, null, false, false)) + ) { + if (_result !== '') + _result += ',' + (!state.condenseFlow ? ' ' : '') + _result += state.dump + } + } -function writeFlowMapping(state, level, object) { - var _result = '', - _tag = state.tag, - objectKeyList = Object.keys(object), - index, - length, - objectKey, - objectValue, - pairBuffer; + state.tag = _tag + state.dump = '[' + _result + ']' + } - for (index = 0, length = objectKeyList.length; index < length; index += 1) { + function writeBlockSequence(state, level, object, compact) { + var _result = '', + _tag = state.tag, + index, + length, + value - pairBuffer = ''; - if (_result !== '') pairBuffer += ', '; + for (index = 0, length = object.length; index < length; index += 1) { + value = object[index] - if (state.condenseFlow) pairBuffer += '"'; + if (state.replacer) { + value = state.replacer.call(object, String(index), value) + } - objectKey = objectKeyList[index]; - objectValue = object[objectKey]; + // Write only valid elements, put null instead of invalid elements. + if ( + writeNode(state, level + 1, value, true, true, false, true) || + (typeof value === 'undefined' && + writeNode(state, level + 1, null, true, true, false, true)) + ) { + if (!compact || _result !== '') { + _result += generateNextLine(state, level) + } - if (state.replacer) { - objectValue = state.replacer.call(object, objectKey, objectValue); - } + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + _result += '-' + } else { + _result += '- ' + } - if (!writeNode(state, level, objectKey, false, false)) { - continue; // Skip this pair because of invalid key; - } + _result += state.dump + } + } - if (state.dump.length > 1024) pairBuffer += '? '; + state.tag = _tag + state.dump = _result || '[]' // Empty sequence if no valid values. + } - pairBuffer += state.dump + (state.condenseFlow ? '"' : '') + ':' + (state.condenseFlow ? '' : ' '); + function writeFlowMapping(state, level, object) { + var _result = '', + _tag = state.tag, + objectKeyList = Object.keys(object), + index, + length, + objectKey, + objectValue, + pairBuffer - if (!writeNode(state, level, objectValue, false, false)) { - continue; // Skip this pair because of invalid value. - } + for ( + index = 0, length = objectKeyList.length; + index < length; + index += 1 + ) { + pairBuffer = '' + if (_result !== '') pairBuffer += ', ' - pairBuffer += state.dump; + if (state.condenseFlow) pairBuffer += '"' - // Both key and value are valid. - _result += pairBuffer; - } + objectKey = objectKeyList[index] + objectValue = object[objectKey] - state.tag = _tag; - state.dump = '{' + _result + '}'; -} - -function writeBlockMapping(state, level, object, compact) { - var _result = '', - _tag = state.tag, - objectKeyList = Object.keys(object), - index, - length, - objectKey, - objectValue, - explicitPair, - pairBuffer; - - // Allow sorting keys so that the output file is deterministic - if (state.sortKeys === true) { - // Default sorting - objectKeyList.sort(); - } else if (typeof state.sortKeys === 'function') { - // Custom sort function - objectKeyList.sort(state.sortKeys); - } else if (state.sortKeys) { - // Something is wrong - throw new YAMLException('sortKeys must be a boolean or a function'); - } + if (state.replacer) { + objectValue = state.replacer.call(object, objectKey, objectValue) + } - for (index = 0, length = objectKeyList.length; index < length; index += 1) { - pairBuffer = ''; + if (!writeNode(state, level, objectKey, false, false)) { + continue // Skip this pair because of invalid key; + } - if (!compact || _result !== '') { - pairBuffer += generateNextLine(state, level); - } + if (state.dump.length > 1024) pairBuffer += '? ' - objectKey = objectKeyList[index]; - objectValue = object[objectKey]; + pairBuffer += + state.dump + + (state.condenseFlow ? '"' : '') + + ':' + + (state.condenseFlow ? '' : ' ') - if (state.replacer) { - objectValue = state.replacer.call(object, objectKey, objectValue); - } + if (!writeNode(state, level, objectValue, false, false)) { + continue // Skip this pair because of invalid value. + } - if (!writeNode(state, level + 1, objectKey, true, true, true)) { - continue; // Skip this pair because of invalid key. - } + pairBuffer += state.dump - explicitPair = (state.tag !== null && state.tag !== '?') || - (state.dump && state.dump.length > 1024); + // Both key and value are valid. + _result += pairBuffer + } - if (explicitPair) { - if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { - pairBuffer += '?'; - } else { - pairBuffer += '? '; + state.tag = _tag + state.dump = '{' + _result + '}' } - } - pairBuffer += state.dump; + function writeBlockMapping(state, level, object, compact) { + var _result = '', + _tag = state.tag, + objectKeyList = Object.keys(object), + index, + length, + objectKey, + objectValue, + explicitPair, + pairBuffer - if (explicitPair) { - pairBuffer += generateNextLine(state, level); - } + // Allow sorting keys so that the output file is deterministic + if (state.sortKeys === true) { + // Default sorting + objectKeyList.sort() + } else if (typeof state.sortKeys === 'function') { + // Custom sort function + objectKeyList.sort(state.sortKeys) + } else if (state.sortKeys) { + // Something is wrong + throw new YAMLException('sortKeys must be a boolean or a function') + } - if (!writeNode(state, level + 1, objectValue, true, explicitPair)) { - continue; // Skip this pair because of invalid value. - } + for ( + index = 0, length = objectKeyList.length; + index < length; + index += 1 + ) { + pairBuffer = '' - if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { - pairBuffer += ':'; - } else { - pairBuffer += ': '; - } + if (!compact || _result !== '') { + pairBuffer += generateNextLine(state, level) + } - pairBuffer += state.dump; + objectKey = objectKeyList[index] + objectValue = object[objectKey] - // Both key and value are valid. - _result += pairBuffer; - } + if (state.replacer) { + objectValue = state.replacer.call(object, objectKey, objectValue) + } - state.tag = _tag; - state.dump = _result || '{}'; // Empty mapping if no valid pairs. -} + if (!writeNode(state, level + 1, objectKey, true, true, true)) { + continue // Skip this pair because of invalid key. + } -function detectType(state, object, explicit) { - var _result, typeList, index, length, type, style; + explicitPair = + (state.tag !== null && state.tag !== '?') || + (state.dump && state.dump.length > 1024) - typeList = explicit ? state.explicitTypes : state.implicitTypes; + if (explicitPair) { + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + pairBuffer += '?' + } else { + pairBuffer += '? ' + } + } - for (index = 0, length = typeList.length; index < length; index += 1) { - type = typeList[index]; + pairBuffer += state.dump - if ((type.instanceOf || type.predicate) && - (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) && - (!type.predicate || type.predicate(object))) { + if (explicitPair) { + pairBuffer += generateNextLine(state, level) + } - if (explicit) { - if (type.multi && type.representName) { - state.tag = type.representName(object); - } else { - state.tag = type.tag; - } - } else { - state.tag = '?'; - } + if (!writeNode(state, level + 1, objectValue, true, explicitPair)) { + continue // Skip this pair because of invalid value. + } + + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + pairBuffer += ':' + } else { + pairBuffer += ': ' + } - if (type.represent) { - style = state.styleMap[type.tag] || type.defaultStyle; + pairBuffer += state.dump - if (_toString.call(type.represent) === '[object Function]') { - _result = type.represent(object, style); - } else if (_hasOwnProperty.call(type.represent, style)) { - _result = type.represent[style](object, style); - } else { - throw new YAMLException('!<' + type.tag + '> tag resolver accepts not "' + style + '" style'); + // Both key and value are valid. + _result += pairBuffer } - state.dump = _result; + state.tag = _tag + state.dump = _result || '{}' // Empty mapping if no valid pairs. } - return true; - } - } - - return false; -} - -// Serializes `object` and writes it to global `result`. -// Returns true on success, or false on invalid object. -// -function writeNode(state, level, object, block, compact, iskey, isblockseq) { - state.tag = null; - state.dump = object; + function detectType(state, object, explicit) { + var _result, typeList, index, length, type, style - if (!detectType(state, object, false)) { - detectType(state, object, true); - } + typeList = explicit ? state.explicitTypes : state.implicitTypes - var type = _toString.call(state.dump); - var inblock = block; - var tagStr; + for (index = 0, length = typeList.length; index < length; index += 1) { + type = typeList[index] - if (block) { - block = (state.flowLevel < 0 || state.flowLevel > level); - } + if ( + (type.instanceOf || type.predicate) && + (!type.instanceOf || + (typeof object === 'object' && + object instanceof type.instanceOf)) && + (!type.predicate || type.predicate(object)) + ) { + if (explicit) { + if (type.multi && type.representName) { + state.tag = type.representName(object) + } else { + state.tag = type.tag + } + } else { + state.tag = '?' + } - var objectOrArray = type === '[object Object]' || type === '[object Array]', - duplicateIndex, - duplicate; + if (type.represent) { + style = state.styleMap[type.tag] || type.defaultStyle - if (objectOrArray) { - duplicateIndex = state.duplicates.indexOf(object); - duplicate = duplicateIndex !== -1; - } + if (_toString.call(type.represent) === '[object Function]') { + _result = type.represent(object, style) + } else if (_hasOwnProperty.call(type.represent, style)) { + _result = type.represent[style](object, style) + } else { + throw new YAMLException( + '!<' + + type.tag + + '> tag resolver accepts not "' + + style + + '" style' + ) + } - if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) { - compact = false; - } + state.dump = _result + } - if (duplicate && state.usedDuplicates[duplicateIndex]) { - state.dump = '*ref_' + duplicateIndex; - } else { - if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) { - state.usedDuplicates[duplicateIndex] = true; - } - if (type === '[object Object]') { - if (block && (Object.keys(state.dump).length !== 0)) { - writeBlockMapping(state, level, state.dump, compact); - if (duplicate) { - state.dump = '&ref_' + duplicateIndex + state.dump; - } - } else { - writeFlowMapping(state, level, state.dump); - if (duplicate) { - state.dump = '&ref_' + duplicateIndex + ' ' + state.dump; - } - } - } else if (type === '[object Array]') { - if (block && (state.dump.length !== 0)) { - if (state.noArrayIndent && !isblockseq && level > 0) { - writeBlockSequence(state, level - 1, state.dump, compact); - } else { - writeBlockSequence(state, level, state.dump, compact); - } - if (duplicate) { - state.dump = '&ref_' + duplicateIndex + state.dump; - } - } else { - writeFlowSequence(state, level, state.dump); - if (duplicate) { - state.dump = '&ref_' + duplicateIndex + ' ' + state.dump; + return true + } } - } - } else if (type === '[object String]') { - if (state.tag !== '?') { - writeScalar(state, state.dump, level, iskey, inblock); - } - } else if (type === '[object Undefined]') { - return false; - } else { - if (state.skipInvalid) return false; - throw new YAMLException('unacceptable kind of an object to dump ' + type); - } - if (state.tag !== null && state.tag !== '?') { - // Need to encode all characters except those allowed by the spec: - // - // [35] ns-dec-digit ::= [#x30-#x39] /* 0-9 */ - // [36] ns-hex-digit ::= ns-dec-digit - // | [#x41-#x46] /* A-F */ | [#x61-#x66] /* a-f */ - // [37] ns-ascii-letter ::= [#x41-#x5A] /* A-Z */ | [#x61-#x7A] /* a-z */ - // [38] ns-word-char ::= ns-dec-digit | ns-ascii-letter | “-” - // [39] ns-uri-char ::= “%” ns-hex-digit ns-hex-digit | ns-word-char | “#” - // | “;” | “/” | “?” | “:” | “@” | “&” | “=” | “+” | “$” | “,” - // | “_” | “.” | “!” | “~” | “*” | “'” | “(” | “)” | “[” | “]” - // - // Also need to encode '!' because it has special meaning (end of tag prefix). - // - tagStr = encodeURI( - state.tag[0] === '!' ? state.tag.slice(1) : state.tag - ).replace(/!/g, '%21'); - - if (state.tag[0] === '!') { - tagStr = '!' + tagStr; - } else if (tagStr.slice(0, 18) === 'tag:yaml.org,2002:') { - tagStr = '!!' + tagStr.slice(18); - } else { - tagStr = '!<' + tagStr + '>'; + return false } - state.dump = tagStr + ' ' + state.dump; - } - } - - return true; -} - -function getDuplicateReferences(object, state) { - var objects = [], - duplicatesIndexes = [], - index, - length; + // Serializes `object` and writes it to global `result`. + // Returns true on success, or false on invalid object. + // + function writeNode( + state, + level, + object, + block, + compact, + iskey, + isblockseq + ) { + state.tag = null + state.dump = object - inspectNode(object, objects, duplicatesIndexes); + if (!detectType(state, object, false)) { + detectType(state, object, true) + } - for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) { - state.duplicates.push(objects[duplicatesIndexes[index]]); - } - state.usedDuplicates = new Array(length); -} + var type = _toString.call(state.dump) + var inblock = block + var tagStr -function inspectNode(object, objects, duplicatesIndexes) { - var objectKeyList, - index, - length; + if (block) { + block = state.flowLevel < 0 || state.flowLevel > level + } - if (object !== null && typeof object === 'object') { - index = objects.indexOf(object); - if (index !== -1) { - if (duplicatesIndexes.indexOf(index) === -1) { - duplicatesIndexes.push(index); - } - } else { - objects.push(object); + var objectOrArray = + type === '[object Object]' || type === '[object Array]', + duplicateIndex, + duplicate - if (Array.isArray(object)) { - for (index = 0, length = object.length; index < length; index += 1) { - inspectNode(object[index], objects, duplicatesIndexes); + if (objectOrArray) { + duplicateIndex = state.duplicates.indexOf(object) + duplicate = duplicateIndex !== -1 } - } else { - objectKeyList = Object.keys(object); - for (index = 0, length = objectKeyList.length; index < length; index += 1) { - inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes); + if ( + (state.tag !== null && state.tag !== '?') || + duplicate || + (state.indent !== 2 && level > 0) + ) { + compact = false } - } - } - } -} -function dump(input, options) { - options = options || {}; + if (duplicate && state.usedDuplicates[duplicateIndex]) { + state.dump = '*ref_' + duplicateIndex + } else { + if ( + objectOrArray && + duplicate && + !state.usedDuplicates[duplicateIndex] + ) { + state.usedDuplicates[duplicateIndex] = true + } + if (type === '[object Object]') { + if (block && Object.keys(state.dump).length !== 0) { + writeBlockMapping(state, level, state.dump, compact) + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + state.dump + } + } else { + writeFlowMapping(state, level, state.dump) + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + ' ' + state.dump + } + } + } else if (type === '[object Array]') { + if (block && state.dump.length !== 0) { + if (state.noArrayIndent && !isblockseq && level > 0) { + writeBlockSequence(state, level - 1, state.dump, compact) + } else { + writeBlockSequence(state, level, state.dump, compact) + } + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + state.dump + } + } else { + writeFlowSequence(state, level, state.dump) + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + ' ' + state.dump + } + } + } else if (type === '[object String]') { + if (state.tag !== '?') { + writeScalar(state, state.dump, level, iskey, inblock) + } + } else if (type === '[object Undefined]') { + return false + } else { + if (state.skipInvalid) return false + throw new YAMLException( + 'unacceptable kind of an object to dump ' + type + ) + } + + if (state.tag !== null && state.tag !== '?') { + // Need to encode all characters except those allowed by the spec: + // + // [35] ns-dec-digit ::= [#x30-#x39] /* 0-9 */ + // [36] ns-hex-digit ::= ns-dec-digit + // | [#x41-#x46] /* A-F */ | [#x61-#x66] /* a-f */ + // [37] ns-ascii-letter ::= [#x41-#x5A] /* A-Z */ | [#x61-#x7A] /* a-z */ + // [38] ns-word-char ::= ns-dec-digit | ns-ascii-letter | “-” + // [39] ns-uri-char ::= “%” ns-hex-digit ns-hex-digit | ns-word-char | “#” + // | “;” | “/” | “?” | “:” | “@” | “&” | “=” | “+” | “$” | “,” + // | “_” | “.” | “!” | “~” | “*” | “'” | “(” | “)” | “[” | “]” + // + // Also need to encode '!' because it has special meaning (end of tag prefix). + // + tagStr = encodeURI( + state.tag[0] === '!' ? state.tag.slice(1) : state.tag + ).replace(/!/g, '%21') + + if (state.tag[0] === '!') { + tagStr = '!' + tagStr + } else if (tagStr.slice(0, 18) === 'tag:yaml.org,2002:') { + tagStr = '!!' + tagStr.slice(18) + } else { + tagStr = '!<' + tagStr + '>' + } - var state = new State(options); + state.dump = tagStr + ' ' + state.dump + } + } - if (!state.noRefs) getDuplicateReferences(input, state); + return true + } - var value = input; + function getDuplicateReferences(object, state) { + var objects = [], + duplicatesIndexes = [], + index, + length - if (state.replacer) { - value = state.replacer.call({ '': value }, '', value); - } + inspectNode(object, objects, duplicatesIndexes) - if (writeNode(state, 0, value, true, true)) return state.dump + '\n'; + for ( + index = 0, length = duplicatesIndexes.length; + index < length; + index += 1 + ) { + state.duplicates.push(objects[duplicatesIndexes[index]]) + } + state.usedDuplicates = new Array(length) + } - return ''; -} + function inspectNode(object, objects, duplicatesIndexes) { + var objectKeyList, index, length -module.exports.dump = dump; + if (object !== null && typeof object === 'object') { + index = objects.indexOf(object) + if (index !== -1) { + if (duplicatesIndexes.indexOf(index) === -1) { + duplicatesIndexes.push(index) + } + } else { + objects.push(object) + + if (Array.isArray(object)) { + for ( + index = 0, length = object.length; + index < length; + index += 1 + ) { + inspectNode(object[index], objects, duplicatesIndexes) + } + } else { + objectKeyList = Object.keys(object) + + for ( + index = 0, length = objectKeyList.length; + index < length; + index += 1 + ) { + inspectNode( + object[objectKeyList[index]], + objects, + duplicatesIndexes + ) + } + } + } + } + } + function dump(input, options) { + options = options || {} -/***/ }), + var state = new State(options) -/***/ 68179: -/***/ ((module) => { + if (!state.noRefs) getDuplicateReferences(input, state) -"use strict"; -// YAML error class. http://stackoverflow.com/questions/8458984 -// + var value = input + if (state.replacer) { + value = state.replacer.call({ '': value }, '', value) + } + if (writeNode(state, 0, value, true, true)) return state.dump + '\n' -function formatError(exception, compact) { - var where = '', message = exception.reason || '(unknown reason)'; + return '' + } - if (!exception.mark) return message; + module.exports.dump = dump - if (exception.mark.name) { - where += 'in "' + exception.mark.name + '" '; - } + /***/ + }, - where += '(' + (exception.mark.line + 1) + ':' + (exception.mark.column + 1) + ')'; + /***/ 68179: /***/ module => { + 'use strict' + // YAML error class. http://stackoverflow.com/questions/8458984 + // - if (!compact && exception.mark.snippet) { - where += '\n\n' + exception.mark.snippet; - } + function formatError(exception, compact) { + var where = '', + message = exception.reason || '(unknown reason)' - return message + ' ' + where; -} + if (!exception.mark) return message + if (exception.mark.name) { + where += 'in "' + exception.mark.name + '" ' + } -function YAMLException(reason, mark) { - // Super constructor - Error.call(this); + where += + '(' + + (exception.mark.line + 1) + + ':' + + (exception.mark.column + 1) + + ')' - this.name = 'YAMLException'; - this.reason = reason; - this.mark = mark; - this.message = formatError(this, false); + if (!compact && exception.mark.snippet) { + where += '\n\n' + exception.mark.snippet + } - // Include stack trace in error object - if (Error.captureStackTrace) { - // Chrome and NodeJS - Error.captureStackTrace(this, this.constructor); - } else { - // FF, IE 10+ and Safari 6+. Fallback for others - this.stack = (new Error()).stack || ''; - } -} + return message + ' ' + where + } + function YAMLException(reason, mark) { + // Super constructor + Error.call(this) -// Inherit from Error -YAMLException.prototype = Object.create(Error.prototype); -YAMLException.prototype.constructor = YAMLException; + this.name = 'YAMLException' + this.reason = reason + this.mark = mark + this.message = formatError(this, false) + // Include stack trace in error object + if (Error.captureStackTrace) { + // Chrome and NodeJS + Error.captureStackTrace(this, this.constructor) + } else { + // FF, IE 10+ and Safari 6+. Fallback for others + this.stack = new Error().stack || '' + } + } -YAMLException.prototype.toString = function toString(compact) { - return this.name + ': ' + formatError(this, compact); -}; + // Inherit from Error + YAMLException.prototype = Object.create(Error.prototype) + YAMLException.prototype.constructor = YAMLException + YAMLException.prototype.toString = function toString(compact) { + return this.name + ': ' + formatError(this, compact) + } -module.exports = YAMLException; + module.exports = YAMLException + /***/ + }, -/***/ }), + /***/ 51161: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' -/***/ 51161: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + /*eslint-disable max-len,no-use-before-define*/ -"use strict"; + var common = __nccwpck_require__(26829) + var YAMLException = __nccwpck_require__(68179) + var makeSnippet = __nccwpck_require__(96975) + var DEFAULT_SCHEMA = __nccwpck_require__(18759) + var _hasOwnProperty = Object.prototype.hasOwnProperty -/*eslint-disable max-len,no-use-before-define*/ + var CONTEXT_FLOW_IN = 1 + var CONTEXT_FLOW_OUT = 2 + var CONTEXT_BLOCK_IN = 3 + var CONTEXT_BLOCK_OUT = 4 -var common = __nccwpck_require__(26829); -var YAMLException = __nccwpck_require__(68179); -var makeSnippet = __nccwpck_require__(96975); -var DEFAULT_SCHEMA = __nccwpck_require__(18759); + var CHOMPING_CLIP = 1 + var CHOMPING_STRIP = 2 + var CHOMPING_KEEP = 3 + var PATTERN_NON_PRINTABLE = + /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/ + var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/ + var PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/ + var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i + var PATTERN_TAG_URI = + /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i -var _hasOwnProperty = Object.prototype.hasOwnProperty; + function _class(obj) { + return Object.prototype.toString.call(obj) + } + function is_EOL(c) { + return c === 0x0a /* LF */ || c === 0x0d /* CR */ + } -var CONTEXT_FLOW_IN = 1; -var CONTEXT_FLOW_OUT = 2; -var CONTEXT_BLOCK_IN = 3; -var CONTEXT_BLOCK_OUT = 4; + function is_WHITE_SPACE(c) { + return c === 0x09 /* Tab */ || c === 0x20 /* Space */ + } + function is_WS_OR_EOL(c) { + return ( + c === 0x09 /* Tab */ || + c === 0x20 /* Space */ || + c === 0x0a /* LF */ || + c === 0x0d /* CR */ + ) + } -var CHOMPING_CLIP = 1; -var CHOMPING_STRIP = 2; -var CHOMPING_KEEP = 3; + function is_FLOW_INDICATOR(c) { + return ( + c === 0x2c /* , */ || + c === 0x5b /* [ */ || + c === 0x5d /* ] */ || + c === 0x7b /* { */ || + c === 0x7d /* } */ + ) + } + function fromHexCode(c) { + var lc -var PATTERN_NON_PRINTABLE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; -var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/; -var PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/; -var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i; -var PATTERN_TAG_URI = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i; + if (0x30 /* 0 */ <= c && c <= 0x39 /* 9 */) { + return c - 0x30 + } + /*eslint-disable no-bitwise*/ + lc = c | 0x20 -function _class(obj) { return Object.prototype.toString.call(obj); } + if (0x61 /* a */ <= lc && lc <= 0x66 /* f */) { + return lc - 0x61 + 10 + } -function is_EOL(c) { - return (c === 0x0A/* LF */) || (c === 0x0D/* CR */); -} + return -1 + } -function is_WHITE_SPACE(c) { - return (c === 0x09/* Tab */) || (c === 0x20/* Space */); -} + function escapedHexLen(c) { + if (c === 0x78 /* x */) { + return 2 + } + if (c === 0x75 /* u */) { + return 4 + } + if (c === 0x55 /* U */) { + return 8 + } + return 0 + } -function is_WS_OR_EOL(c) { - return (c === 0x09/* Tab */) || - (c === 0x20/* Space */) || - (c === 0x0A/* LF */) || - (c === 0x0D/* CR */); -} + function fromDecimalCode(c) { + if (0x30 /* 0 */ <= c && c <= 0x39 /* 9 */) { + return c - 0x30 + } + + return -1 + } + + function simpleEscapeSequence(c) { + /* eslint-disable indent */ + return c === 0x30 /* 0 */ + ? '\x00' + : c === 0x61 /* a */ + ? '\x07' + : c === 0x62 /* b */ + ? '\x08' + : c === 0x74 /* t */ + ? '\x09' + : c === 0x09 /* Tab */ + ? '\x09' + : c === 0x6e /* n */ + ? '\x0A' + : c === 0x76 /* v */ + ? '\x0B' + : c === 0x66 /* f */ + ? '\x0C' + : c === 0x72 /* r */ + ? '\x0D' + : c === 0x65 /* e */ + ? '\x1B' + : c === 0x20 /* Space */ + ? ' ' + : c === 0x22 /* " */ + ? '\x22' + : c === 0x2f /* / */ + ? '/' + : c === 0x5c /* \ */ + ? '\x5C' + : c === 0x4e /* N */ + ? '\x85' + : c === 0x5f /* _ */ + ? '\xA0' + : c === 0x4c /* L */ + ? '\u2028' + : c === 0x50 /* P */ + ? '\u2029' + : '' + } + + function charFromCodepoint(c) { + if (c <= 0xffff) { + return String.fromCharCode(c) + } + // Encode UTF-16 surrogate pair + // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF + return String.fromCharCode( + ((c - 0x010000) >> 10) + 0xd800, + ((c - 0x010000) & 0x03ff) + 0xdc00 + ) + } -function is_FLOW_INDICATOR(c) { - return c === 0x2C/* , */ || - c === 0x5B/* [ */ || - c === 0x5D/* ] */ || - c === 0x7B/* { */ || - c === 0x7D/* } */; -} + var simpleEscapeCheck = new Array(256) // integer, for fast access + var simpleEscapeMap = new Array(256) + for (var i = 0; i < 256; i++) { + simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0 + simpleEscapeMap[i] = simpleEscapeSequence(i) + } -function fromHexCode(c) { - var lc; + function State(input, options) { + this.input = input - if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) { - return c - 0x30; - } + this.filename = options['filename'] || null + this.schema = options['schema'] || DEFAULT_SCHEMA + this.onWarning = options['onWarning'] || null + // (Hidden) Remove? makes the loader to expect YAML 1.1 documents + // if such documents have no explicit %YAML directive + this.legacy = options['legacy'] || false - /*eslint-disable no-bitwise*/ - lc = c | 0x20; + this.json = options['json'] || false + this.listener = options['listener'] || null - if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) { - return lc - 0x61 + 10; - } + this.implicitTypes = this.schema.compiledImplicit + this.typeMap = this.schema.compiledTypeMap - return -1; -} + this.length = input.length + this.position = 0 + this.line = 0 + this.lineStart = 0 + this.lineIndent = 0 -function escapedHexLen(c) { - if (c === 0x78/* x */) { return 2; } - if (c === 0x75/* u */) { return 4; } - if (c === 0x55/* U */) { return 8; } - return 0; -} + // position of first leading tab in the current line, + // used to make sure there are no tabs in the indentation + this.firstTabInLine = -1 -function fromDecimalCode(c) { - if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) { - return c - 0x30; - } + this.documents = [] - return -1; -} - -function simpleEscapeSequence(c) { - /* eslint-disable indent */ - return (c === 0x30/* 0 */) ? '\x00' : - (c === 0x61/* a */) ? '\x07' : - (c === 0x62/* b */) ? '\x08' : - (c === 0x74/* t */) ? '\x09' : - (c === 0x09/* Tab */) ? '\x09' : - (c === 0x6E/* n */) ? '\x0A' : - (c === 0x76/* v */) ? '\x0B' : - (c === 0x66/* f */) ? '\x0C' : - (c === 0x72/* r */) ? '\x0D' : - (c === 0x65/* e */) ? '\x1B' : - (c === 0x20/* Space */) ? ' ' : - (c === 0x22/* " */) ? '\x22' : - (c === 0x2F/* / */) ? '/' : - (c === 0x5C/* \ */) ? '\x5C' : - (c === 0x4E/* N */) ? '\x85' : - (c === 0x5F/* _ */) ? '\xA0' : - (c === 0x4C/* L */) ? '\u2028' : - (c === 0x50/* P */) ? '\u2029' : ''; -} - -function charFromCodepoint(c) { - if (c <= 0xFFFF) { - return String.fromCharCode(c); - } - // Encode UTF-16 surrogate pair - // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF - return String.fromCharCode( - ((c - 0x010000) >> 10) + 0xD800, - ((c - 0x010000) & 0x03FF) + 0xDC00 - ); -} - -var simpleEscapeCheck = new Array(256); // integer, for fast access -var simpleEscapeMap = new Array(256); -for (var i = 0; i < 256; i++) { - simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0; - simpleEscapeMap[i] = simpleEscapeSequence(i); -} - - -function State(input, options) { - this.input = input; - - this.filename = options['filename'] || null; - this.schema = options['schema'] || DEFAULT_SCHEMA; - this.onWarning = options['onWarning'] || null; - // (Hidden) Remove? makes the loader to expect YAML 1.1 documents - // if such documents have no explicit %YAML directive - this.legacy = options['legacy'] || false; - - this.json = options['json'] || false; - this.listener = options['listener'] || null; - - this.implicitTypes = this.schema.compiledImplicit; - this.typeMap = this.schema.compiledTypeMap; - - this.length = input.length; - this.position = 0; - this.line = 0; - this.lineStart = 0; - this.lineIndent = 0; - - // position of first leading tab in the current line, - // used to make sure there are no tabs in the indentation - this.firstTabInLine = -1; - - this.documents = []; - - /* + /* this.version; this.checkLineBreaks; this.tagMap; @@ -71092,28747 +92205,32091 @@ function State(input, options) { this.anchor; this.kind; this.result;*/ + } -} - - -function generateError(state, message) { - var mark = { - name: state.filename, - buffer: state.input.slice(0, -1), // omit trailing \0 - position: state.position, - line: state.line, - column: state.position - state.lineStart - }; - - mark.snippet = makeSnippet(mark); - - return new YAMLException(message, mark); -} - -function throwError(state, message) { - throw generateError(state, message); -} - -function throwWarning(state, message) { - if (state.onWarning) { - state.onWarning.call(null, generateError(state, message)); - } -} - - -var directiveHandlers = { - - YAML: function handleYamlDirective(state, name, args) { - - var match, major, minor; - - if (state.version !== null) { - throwError(state, 'duplication of %YAML directive'); - } - - if (args.length !== 1) { - throwError(state, 'YAML directive accepts exactly one argument'); - } - - match = /^([0-9]+)\.([0-9]+)$/.exec(args[0]); - - if (match === null) { - throwError(state, 'ill-formed argument of the YAML directive'); - } - - major = parseInt(match[1], 10); - minor = parseInt(match[2], 10); - - if (major !== 1) { - throwError(state, 'unacceptable YAML version of the document'); - } - - state.version = args[0]; - state.checkLineBreaks = (minor < 2); + function generateError(state, message) { + var mark = { + name: state.filename, + buffer: state.input.slice(0, -1), // omit trailing \0 + position: state.position, + line: state.line, + column: state.position - state.lineStart + } - if (minor !== 1 && minor !== 2) { - throwWarning(state, 'unsupported YAML version of the document'); - } - }, + mark.snippet = makeSnippet(mark) - TAG: function handleTagDirective(state, name, args) { + return new YAMLException(message, mark) + } - var handle, prefix; + function throwError(state, message) { + throw generateError(state, message) + } - if (args.length !== 2) { - throwError(state, 'TAG directive accepts exactly two arguments'); - } + function throwWarning(state, message) { + if (state.onWarning) { + state.onWarning.call(null, generateError(state, message)) + } + } - handle = args[0]; - prefix = args[1]; + var directiveHandlers = { + YAML: function handleYamlDirective(state, name, args) { + var match, major, minor - if (!PATTERN_TAG_HANDLE.test(handle)) { - throwError(state, 'ill-formed tag handle (first argument) of the TAG directive'); - } + if (state.version !== null) { + throwError(state, 'duplication of %YAML directive') + } - if (_hasOwnProperty.call(state.tagMap, handle)) { - throwError(state, 'there is a previously declared suffix for "' + handle + '" tag handle'); - } + if (args.length !== 1) { + throwError(state, 'YAML directive accepts exactly one argument') + } - if (!PATTERN_TAG_URI.test(prefix)) { - throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive'); - } + match = /^([0-9]+)\.([0-9]+)$/.exec(args[0]) - try { - prefix = decodeURIComponent(prefix); - } catch (err) { - throwError(state, 'tag prefix is malformed: ' + prefix); - } + if (match === null) { + throwError(state, 'ill-formed argument of the YAML directive') + } - state.tagMap[handle] = prefix; - } -}; + major = parseInt(match[1], 10) + minor = parseInt(match[2], 10) + if (major !== 1) { + throwError(state, 'unacceptable YAML version of the document') + } -function captureSegment(state, start, end, checkJson) { - var _position, _length, _character, _result; + state.version = args[0] + state.checkLineBreaks = minor < 2 - if (start < end) { - _result = state.input.slice(start, end); + if (minor !== 1 && minor !== 2) { + throwWarning(state, 'unsupported YAML version of the document') + } + }, - if (checkJson) { - for (_position = 0, _length = _result.length; _position < _length; _position += 1) { - _character = _result.charCodeAt(_position); - if (!(_character === 0x09 || - (0x20 <= _character && _character <= 0x10FFFF))) { - throwError(state, 'expected valid JSON character'); - } - } - } else if (PATTERN_NON_PRINTABLE.test(_result)) { - throwError(state, 'the stream contains non-printable characters'); - } + TAG: function handleTagDirective(state, name, args) { + var handle, prefix - state.result += _result; - } -} + if (args.length !== 2) { + throwError(state, 'TAG directive accepts exactly two arguments') + } -function mergeMappings(state, destination, source, overridableKeys) { - var sourceKeys, key, index, quantity; + handle = args[0] + prefix = args[1] - if (!common.isObject(source)) { - throwError(state, 'cannot merge mappings; the provided source object is unacceptable'); - } + if (!PATTERN_TAG_HANDLE.test(handle)) { + throwError( + state, + 'ill-formed tag handle (first argument) of the TAG directive' + ) + } - sourceKeys = Object.keys(source); + if (_hasOwnProperty.call(state.tagMap, handle)) { + throwError( + state, + 'there is a previously declared suffix for "' + + handle + + '" tag handle' + ) + } - for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) { - key = sourceKeys[index]; + if (!PATTERN_TAG_URI.test(prefix)) { + throwError( + state, + 'ill-formed tag prefix (second argument) of the TAG directive' + ) + } - if (!_hasOwnProperty.call(destination, key)) { - destination[key] = source[key]; - overridableKeys[key] = true; - } - } -} + try { + prefix = decodeURIComponent(prefix) + } catch (err) { + throwError(state, 'tag prefix is malformed: ' + prefix) + } -function storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, - startLine, startLineStart, startPos) { + state.tagMap[handle] = prefix + } + } - var index, quantity; + function captureSegment(state, start, end, checkJson) { + var _position, _length, _character, _result - // The output is a plain object here, so keys can only be strings. - // We need to convert keyNode to a string, but doing so can hang the process - // (deeply nested arrays that explode exponentially using aliases). - if (Array.isArray(keyNode)) { - keyNode = Array.prototype.slice.call(keyNode); + if (start < end) { + _result = state.input.slice(start, end) - for (index = 0, quantity = keyNode.length; index < quantity; index += 1) { - if (Array.isArray(keyNode[index])) { - throwError(state, 'nested arrays are not supported inside keys'); - } + if (checkJson) { + for ( + _position = 0, _length = _result.length; + _position < _length; + _position += 1 + ) { + _character = _result.charCodeAt(_position) + if ( + !( + _character === 0x09 || + (0x20 <= _character && _character <= 0x10ffff) + ) + ) { + throwError(state, 'expected valid JSON character') + } + } + } else if (PATTERN_NON_PRINTABLE.test(_result)) { + throwError(state, 'the stream contains non-printable characters') + } - if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') { - keyNode[index] = '[object Object]'; + state.result += _result + } } - } - } - // Avoid code execution in load() via toString property - // (still use its own toString for arrays, timestamps, - // and whatever user schema extensions happen to have @@toStringTag) - if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') { - keyNode = '[object Object]'; - } + function mergeMappings(state, destination, source, overridableKeys) { + var sourceKeys, key, index, quantity + if (!common.isObject(source)) { + throwError( + state, + 'cannot merge mappings; the provided source object is unacceptable' + ) + } - keyNode = String(keyNode); + sourceKeys = Object.keys(source) - if (_result === null) { - _result = {}; - } + for ( + index = 0, quantity = sourceKeys.length; + index < quantity; + index += 1 + ) { + key = sourceKeys[index] - if (keyTag === 'tag:yaml.org,2002:merge') { - if (Array.isArray(valueNode)) { - for (index = 0, quantity = valueNode.length; index < quantity; index += 1) { - mergeMappings(state, _result, valueNode[index], overridableKeys); + if (!_hasOwnProperty.call(destination, key)) { + destination[key] = source[key] + overridableKeys[key] = true + } + } } - } else { - mergeMappings(state, _result, valueNode, overridableKeys); - } - } else { - if (!state.json && - !_hasOwnProperty.call(overridableKeys, keyNode) && - _hasOwnProperty.call(_result, keyNode)) { - state.line = startLine || state.line; - state.lineStart = startLineStart || state.lineStart; - state.position = startPos || state.position; - throwError(state, 'duplicated mapping key'); - } - // used for this specific key only because Object.defineProperty is slow - if (keyNode === '__proto__') { - Object.defineProperty(_result, keyNode, { - configurable: true, - enumerable: true, - writable: true, - value: valueNode - }); - } else { - _result[keyNode] = valueNode; - } - delete overridableKeys[keyNode]; - } + function storeMappingPair( + state, + _result, + overridableKeys, + keyTag, + keyNode, + valueNode, + startLine, + startLineStart, + startPos + ) { + var index, quantity + + // The output is a plain object here, so keys can only be strings. + // We need to convert keyNode to a string, but doing so can hang the process + // (deeply nested arrays that explode exponentially using aliases). + if (Array.isArray(keyNode)) { + keyNode = Array.prototype.slice.call(keyNode) + + for ( + index = 0, quantity = keyNode.length; + index < quantity; + index += 1 + ) { + if (Array.isArray(keyNode[index])) { + throwError(state, 'nested arrays are not supported inside keys') + } - return _result; -} + if ( + typeof keyNode === 'object' && + _class(keyNode[index]) === '[object Object]' + ) { + keyNode[index] = '[object Object]' + } + } + } -function readLineBreak(state) { - var ch; + // Avoid code execution in load() via toString property + // (still use its own toString for arrays, timestamps, + // and whatever user schema extensions happen to have @@toStringTag) + if ( + typeof keyNode === 'object' && + _class(keyNode) === '[object Object]' + ) { + keyNode = '[object Object]' + } - ch = state.input.charCodeAt(state.position); + keyNode = String(keyNode) - if (ch === 0x0A/* LF */) { - state.position++; - } else if (ch === 0x0D/* CR */) { - state.position++; - if (state.input.charCodeAt(state.position) === 0x0A/* LF */) { - state.position++; - } - } else { - throwError(state, 'a line break is expected'); - } + if (_result === null) { + _result = {} + } - state.line += 1; - state.lineStart = state.position; - state.firstTabInLine = -1; -} + if (keyTag === 'tag:yaml.org,2002:merge') { + if (Array.isArray(valueNode)) { + for ( + index = 0, quantity = valueNode.length; + index < quantity; + index += 1 + ) { + mergeMappings(state, _result, valueNode[index], overridableKeys) + } + } else { + mergeMappings(state, _result, valueNode, overridableKeys) + } + } else { + if ( + !state.json && + !_hasOwnProperty.call(overridableKeys, keyNode) && + _hasOwnProperty.call(_result, keyNode) + ) { + state.line = startLine || state.line + state.lineStart = startLineStart || state.lineStart + state.position = startPos || state.position + throwError(state, 'duplicated mapping key') + } -function skipSeparationSpace(state, allowComments, checkIndent) { - var lineBreaks = 0, - ch = state.input.charCodeAt(state.position); + // used for this specific key only because Object.defineProperty is slow + if (keyNode === '__proto__') { + Object.defineProperty(_result, keyNode, { + configurable: true, + enumerable: true, + writable: true, + value: valueNode + }) + } else { + _result[keyNode] = valueNode + } + delete overridableKeys[keyNode] + } - while (ch !== 0) { - while (is_WHITE_SPACE(ch)) { - if (ch === 0x09/* Tab */ && state.firstTabInLine === -1) { - state.firstTabInLine = state.position; + return _result } - ch = state.input.charCodeAt(++state.position); - } - if (allowComments && ch === 0x23/* # */) { - do { - ch = state.input.charCodeAt(++state.position); - } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0); - } + function readLineBreak(state) { + var ch - if (is_EOL(ch)) { - readLineBreak(state); + ch = state.input.charCodeAt(state.position) - ch = state.input.charCodeAt(state.position); - lineBreaks++; - state.lineIndent = 0; + if (ch === 0x0a /* LF */) { + state.position++ + } else if (ch === 0x0d /* CR */) { + state.position++ + if (state.input.charCodeAt(state.position) === 0x0a /* LF */) { + state.position++ + } + } else { + throwError(state, 'a line break is expected') + } - while (ch === 0x20/* Space */) { - state.lineIndent++; - ch = state.input.charCodeAt(++state.position); + state.line += 1 + state.lineStart = state.position + state.firstTabInLine = -1 } - } else { - break; - } - } - if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) { - throwWarning(state, 'deficient indentation'); - } - - return lineBreaks; -} + function skipSeparationSpace(state, allowComments, checkIndent) { + var lineBreaks = 0, + ch = state.input.charCodeAt(state.position) -function testDocumentSeparator(state) { - var _position = state.position, - ch; + while (ch !== 0) { + while (is_WHITE_SPACE(ch)) { + if (ch === 0x09 /* Tab */ && state.firstTabInLine === -1) { + state.firstTabInLine = state.position + } + ch = state.input.charCodeAt(++state.position) + } - ch = state.input.charCodeAt(_position); + if (allowComments && ch === 0x23 /* # */) { + do { + ch = state.input.charCodeAt(++state.position) + } while (ch !== 0x0a /* LF */ && ch !== 0x0d /* CR */ && ch !== 0) + } - // Condition state.position === state.lineStart is tested - // in parent on each call, for efficiency. No needs to test here again. - if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) && - ch === state.input.charCodeAt(_position + 1) && - ch === state.input.charCodeAt(_position + 2)) { + if (is_EOL(ch)) { + readLineBreak(state) - _position += 3; + ch = state.input.charCodeAt(state.position) + lineBreaks++ + state.lineIndent = 0 - ch = state.input.charCodeAt(_position); + while (ch === 0x20 /* Space */) { + state.lineIndent++ + ch = state.input.charCodeAt(++state.position) + } + } else { + break + } + } - if (ch === 0 || is_WS_OR_EOL(ch)) { - return true; - } - } + if ( + checkIndent !== -1 && + lineBreaks !== 0 && + state.lineIndent < checkIndent + ) { + throwWarning(state, 'deficient indentation') + } - return false; -} + return lineBreaks + } -function writeFoldedLines(state, count) { - if (count === 1) { - state.result += ' '; - } else if (count > 1) { - state.result += common.repeat('\n', count - 1); - } -} - - -function readPlainScalar(state, nodeIndent, withinFlowCollection) { - var preceding, - following, - captureStart, - captureEnd, - hasPendingContent, - _line, - _lineStart, - _lineIndent, - _kind = state.kind, - _result = state.result, - ch; - - ch = state.input.charCodeAt(state.position); - - if (is_WS_OR_EOL(ch) || - is_FLOW_INDICATOR(ch) || - ch === 0x23/* # */ || - ch === 0x26/* & */ || - ch === 0x2A/* * */ || - ch === 0x21/* ! */ || - ch === 0x7C/* | */ || - ch === 0x3E/* > */ || - ch === 0x27/* ' */ || - ch === 0x22/* " */ || - ch === 0x25/* % */ || - ch === 0x40/* @ */ || - ch === 0x60/* ` */) { - return false; - } + function testDocumentSeparator(state) { + var _position = state.position, + ch - if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) { - following = state.input.charCodeAt(state.position + 1); + ch = state.input.charCodeAt(_position) - if (is_WS_OR_EOL(following) || - withinFlowCollection && is_FLOW_INDICATOR(following)) { - return false; - } - } + // Condition state.position === state.lineStart is tested + // in parent on each call, for efficiency. No needs to test here again. + if ( + (ch === 0x2d /* - */ || ch === 0x2e) /* . */ && + ch === state.input.charCodeAt(_position + 1) && + ch === state.input.charCodeAt(_position + 2) + ) { + _position += 3 - state.kind = 'scalar'; - state.result = ''; - captureStart = captureEnd = state.position; - hasPendingContent = false; + ch = state.input.charCodeAt(_position) - while (ch !== 0) { - if (ch === 0x3A/* : */) { - following = state.input.charCodeAt(state.position + 1); + if (ch === 0 || is_WS_OR_EOL(ch)) { + return true + } + } - if (is_WS_OR_EOL(following) || - withinFlowCollection && is_FLOW_INDICATOR(following)) { - break; + return false } - } else if (ch === 0x23/* # */) { - preceding = state.input.charCodeAt(state.position - 1); - - if (is_WS_OR_EOL(preceding)) { - break; + function writeFoldedLines(state, count) { + if (count === 1) { + state.result += ' ' + } else if (count > 1) { + state.result += common.repeat('\n', count - 1) + } } - } else if ((state.position === state.lineStart && testDocumentSeparator(state)) || - withinFlowCollection && is_FLOW_INDICATOR(ch)) { - break; + function readPlainScalar(state, nodeIndent, withinFlowCollection) { + var preceding, + following, + captureStart, + captureEnd, + hasPendingContent, + _line, + _lineStart, + _lineIndent, + _kind = state.kind, + _result = state.result, + ch - } else if (is_EOL(ch)) { - _line = state.line; - _lineStart = state.lineStart; - _lineIndent = state.lineIndent; - skipSeparationSpace(state, false, -1); + ch = state.input.charCodeAt(state.position) - if (state.lineIndent >= nodeIndent) { - hasPendingContent = true; - ch = state.input.charCodeAt(state.position); - continue; - } else { - state.position = captureEnd; - state.line = _line; - state.lineStart = _lineStart; - state.lineIndent = _lineIndent; - break; - } - } + if ( + is_WS_OR_EOL(ch) || + is_FLOW_INDICATOR(ch) || + ch === 0x23 /* # */ || + ch === 0x26 /* & */ || + ch === 0x2a /* * */ || + ch === 0x21 /* ! */ || + ch === 0x7c /* | */ || + ch === 0x3e /* > */ || + ch === 0x27 /* ' */ || + ch === 0x22 /* " */ || + ch === 0x25 /* % */ || + ch === 0x40 /* @ */ || + ch === 0x60 /* ` */ + ) { + return false + } - if (hasPendingContent) { - captureSegment(state, captureStart, captureEnd, false); - writeFoldedLines(state, state.line - _line); - captureStart = captureEnd = state.position; - hasPendingContent = false; - } + if (ch === 0x3f /* ? */ || ch === 0x2d /* - */) { + following = state.input.charCodeAt(state.position + 1) - if (!is_WHITE_SPACE(ch)) { - captureEnd = state.position + 1; - } + if ( + is_WS_OR_EOL(following) || + (withinFlowCollection && is_FLOW_INDICATOR(following)) + ) { + return false + } + } - ch = state.input.charCodeAt(++state.position); - } + state.kind = 'scalar' + state.result = '' + captureStart = captureEnd = state.position + hasPendingContent = false - captureSegment(state, captureStart, captureEnd, false); + while (ch !== 0) { + if (ch === 0x3a /* : */) { + following = state.input.charCodeAt(state.position + 1) - if (state.result) { - return true; - } + if ( + is_WS_OR_EOL(following) || + (withinFlowCollection && is_FLOW_INDICATOR(following)) + ) { + break + } + } else if (ch === 0x23 /* # */) { + preceding = state.input.charCodeAt(state.position - 1) - state.kind = _kind; - state.result = _result; - return false; -} + if (is_WS_OR_EOL(preceding)) { + break + } + } else if ( + (state.position === state.lineStart && + testDocumentSeparator(state)) || + (withinFlowCollection && is_FLOW_INDICATOR(ch)) + ) { + break + } else if (is_EOL(ch)) { + _line = state.line + _lineStart = state.lineStart + _lineIndent = state.lineIndent + skipSeparationSpace(state, false, -1) + + if (state.lineIndent >= nodeIndent) { + hasPendingContent = true + ch = state.input.charCodeAt(state.position) + continue + } else { + state.position = captureEnd + state.line = _line + state.lineStart = _lineStart + state.lineIndent = _lineIndent + break + } + } -function readSingleQuotedScalar(state, nodeIndent) { - var ch, - captureStart, captureEnd; + if (hasPendingContent) { + captureSegment(state, captureStart, captureEnd, false) + writeFoldedLines(state, state.line - _line) + captureStart = captureEnd = state.position + hasPendingContent = false + } - ch = state.input.charCodeAt(state.position); + if (!is_WHITE_SPACE(ch)) { + captureEnd = state.position + 1 + } - if (ch !== 0x27/* ' */) { - return false; - } + ch = state.input.charCodeAt(++state.position) + } - state.kind = 'scalar'; - state.result = ''; - state.position++; - captureStart = captureEnd = state.position; + captureSegment(state, captureStart, captureEnd, false) - while ((ch = state.input.charCodeAt(state.position)) !== 0) { - if (ch === 0x27/* ' */) { - captureSegment(state, captureStart, state.position, true); - ch = state.input.charCodeAt(++state.position); + if (state.result) { + return true + } - if (ch === 0x27/* ' */) { - captureStart = state.position; - state.position++; - captureEnd = state.position; - } else { - return true; + state.kind = _kind + state.result = _result + return false } - } else if (is_EOL(ch)) { - captureSegment(state, captureStart, captureEnd, true); - writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); - captureStart = captureEnd = state.position; + function readSingleQuotedScalar(state, nodeIndent) { + var ch, captureStart, captureEnd - } else if (state.position === state.lineStart && testDocumentSeparator(state)) { - throwError(state, 'unexpected end of the document within a single quoted scalar'); + ch = state.input.charCodeAt(state.position) - } else { - state.position++; - captureEnd = state.position; - } - } + if (ch !== 0x27 /* ' */) { + return false + } + + state.kind = 'scalar' + state.result = '' + state.position++ + captureStart = captureEnd = state.position + + while ((ch = state.input.charCodeAt(state.position)) !== 0) { + if (ch === 0x27 /* ' */) { + captureSegment(state, captureStart, state.position, true) + ch = state.input.charCodeAt(++state.position) + + if (ch === 0x27 /* ' */) { + captureStart = state.position + state.position++ + captureEnd = state.position + } else { + return true + } + } else if (is_EOL(ch)) { + captureSegment(state, captureStart, captureEnd, true) + writeFoldedLines( + state, + skipSeparationSpace(state, false, nodeIndent) + ) + captureStart = captureEnd = state.position + } else if ( + state.position === state.lineStart && + testDocumentSeparator(state) + ) { + throwError( + state, + 'unexpected end of the document within a single quoted scalar' + ) + } else { + state.position++ + captureEnd = state.position + } + } - throwError(state, 'unexpected end of the stream within a single quoted scalar'); -} + throwError( + state, + 'unexpected end of the stream within a single quoted scalar' + ) + } -function readDoubleQuotedScalar(state, nodeIndent) { - var captureStart, - captureEnd, - hexLength, - hexResult, - tmp, - ch; + function readDoubleQuotedScalar(state, nodeIndent) { + var captureStart, captureEnd, hexLength, hexResult, tmp, ch - ch = state.input.charCodeAt(state.position); + ch = state.input.charCodeAt(state.position) - if (ch !== 0x22/* " */) { - return false; - } + if (ch !== 0x22 /* " */) { + return false + } - state.kind = 'scalar'; - state.result = ''; - state.position++; - captureStart = captureEnd = state.position; + state.kind = 'scalar' + state.result = '' + state.position++ + captureStart = captureEnd = state.position - while ((ch = state.input.charCodeAt(state.position)) !== 0) { - if (ch === 0x22/* " */) { - captureSegment(state, captureStart, state.position, true); - state.position++; - return true; + while ((ch = state.input.charCodeAt(state.position)) !== 0) { + if (ch === 0x22 /* " */) { + captureSegment(state, captureStart, state.position, true) + state.position++ + return true + } else if (ch === 0x5c /* \ */) { + captureSegment(state, captureStart, state.position, true) + ch = state.input.charCodeAt(++state.position) - } else if (ch === 0x5C/* \ */) { - captureSegment(state, captureStart, state.position, true); - ch = state.input.charCodeAt(++state.position); + if (is_EOL(ch)) { + skipSeparationSpace(state, false, nodeIndent) - if (is_EOL(ch)) { - skipSeparationSpace(state, false, nodeIndent); + // TODO: rework to inline fn with no type cast? + } else if (ch < 256 && simpleEscapeCheck[ch]) { + state.result += simpleEscapeMap[ch] + state.position++ + } else if ((tmp = escapedHexLen(ch)) > 0) { + hexLength = tmp + hexResult = 0 - // TODO: rework to inline fn with no type cast? - } else if (ch < 256 && simpleEscapeCheck[ch]) { - state.result += simpleEscapeMap[ch]; - state.position++; + for (; hexLength > 0; hexLength--) { + ch = state.input.charCodeAt(++state.position) - } else if ((tmp = escapedHexLen(ch)) > 0) { - hexLength = tmp; - hexResult = 0; + if ((tmp = fromHexCode(ch)) >= 0) { + hexResult = (hexResult << 4) + tmp + } else { + throwError(state, 'expected hexadecimal character') + } + } - for (; hexLength > 0; hexLength--) { - ch = state.input.charCodeAt(++state.position); + state.result += charFromCodepoint(hexResult) - if ((tmp = fromHexCode(ch)) >= 0) { - hexResult = (hexResult << 4) + tmp; + state.position++ + } else { + throwError(state, 'unknown escape sequence') + } + captureStart = captureEnd = state.position + } else if (is_EOL(ch)) { + captureSegment(state, captureStart, captureEnd, true) + writeFoldedLines( + state, + skipSeparationSpace(state, false, nodeIndent) + ) + captureStart = captureEnd = state.position + } else if ( + state.position === state.lineStart && + testDocumentSeparator(state) + ) { + throwError( + state, + 'unexpected end of the document within a double quoted scalar' + ) } else { - throwError(state, 'expected hexadecimal character'); + state.position++ + captureEnd = state.position } } - state.result += charFromCodepoint(hexResult); - - state.position++; - - } else { - throwError(state, 'unknown escape sequence'); + throwError( + state, + 'unexpected end of the stream within a double quoted scalar' + ) } - captureStart = captureEnd = state.position; - - } else if (is_EOL(ch)) { - captureSegment(state, captureStart, captureEnd, true); - writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); - captureStart = captureEnd = state.position; + function readFlowCollection(state, nodeIndent) { + var readNext = true, + _line, + _lineStart, + _pos, + _tag = state.tag, + _result, + _anchor = state.anchor, + following, + terminator, + isPair, + isExplicitPair, + isMapping, + overridableKeys = Object.create(null), + keyNode, + keyTag, + valueNode, + ch + + ch = state.input.charCodeAt(state.position) + + if (ch === 0x5b /* [ */) { + terminator = 0x5d /* ] */ + isMapping = false + _result = [] + } else if (ch === 0x7b /* { */) { + terminator = 0x7d /* } */ + isMapping = true + _result = {} + } else { + return false + } - } else if (state.position === state.lineStart && testDocumentSeparator(state)) { - throwError(state, 'unexpected end of the document within a double quoted scalar'); + if (state.anchor !== null) { + state.anchorMap[state.anchor] = _result + } - } else { - state.position++; - captureEnd = state.position; - } - } + ch = state.input.charCodeAt(++state.position) - throwError(state, 'unexpected end of the stream within a double quoted scalar'); -} - -function readFlowCollection(state, nodeIndent) { - var readNext = true, - _line, - _lineStart, - _pos, - _tag = state.tag, - _result, - _anchor = state.anchor, - following, - terminator, - isPair, - isExplicitPair, - isMapping, - overridableKeys = Object.create(null), - keyNode, - keyTag, - valueNode, - ch; - - ch = state.input.charCodeAt(state.position); - - if (ch === 0x5B/* [ */) { - terminator = 0x5D;/* ] */ - isMapping = false; - _result = []; - } else if (ch === 0x7B/* { */) { - terminator = 0x7D;/* } */ - isMapping = true; - _result = {}; - } else { - return false; - } + while (ch !== 0) { + skipSeparationSpace(state, true, nodeIndent) - if (state.anchor !== null) { - state.anchorMap[state.anchor] = _result; - } + ch = state.input.charCodeAt(state.position) - ch = state.input.charCodeAt(++state.position); - - while (ch !== 0) { - skipSeparationSpace(state, true, nodeIndent); - - ch = state.input.charCodeAt(state.position); - - if (ch === terminator) { - state.position++; - state.tag = _tag; - state.anchor = _anchor; - state.kind = isMapping ? 'mapping' : 'sequence'; - state.result = _result; - return true; - } else if (!readNext) { - throwError(state, 'missed comma between flow collection entries'); - } else if (ch === 0x2C/* , */) { - // "flow collection entries can never be completely empty", as per YAML 1.2, section 7.4 - throwError(state, "expected the node content, but found ','"); - } + if (ch === terminator) { + state.position++ + state.tag = _tag + state.anchor = _anchor + state.kind = isMapping ? 'mapping' : 'sequence' + state.result = _result + return true + } else if (!readNext) { + throwError(state, 'missed comma between flow collection entries') + } else if (ch === 0x2c /* , */) { + // "flow collection entries can never be completely empty", as per YAML 1.2, section 7.4 + throwError(state, "expected the node content, but found ','") + } - keyTag = keyNode = valueNode = null; - isPair = isExplicitPair = false; + keyTag = keyNode = valueNode = null + isPair = isExplicitPair = false - if (ch === 0x3F/* ? */) { - following = state.input.charCodeAt(state.position + 1); + if (ch === 0x3f /* ? */) { + following = state.input.charCodeAt(state.position + 1) - if (is_WS_OR_EOL(following)) { - isPair = isExplicitPair = true; - state.position++; - skipSeparationSpace(state, true, nodeIndent); - } - } + if (is_WS_OR_EOL(following)) { + isPair = isExplicitPair = true + state.position++ + skipSeparationSpace(state, true, nodeIndent) + } + } - _line = state.line; // Save the current line. - _lineStart = state.lineStart; - _pos = state.position; - composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); - keyTag = state.tag; - keyNode = state.result; - skipSeparationSpace(state, true, nodeIndent); - - ch = state.input.charCodeAt(state.position); - - if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) { - isPair = true; - ch = state.input.charCodeAt(++state.position); - skipSeparationSpace(state, true, nodeIndent); - composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); - valueNode = state.result; - } + _line = state.line // Save the current line. + _lineStart = state.lineStart + _pos = state.position + composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true) + keyTag = state.tag + keyNode = state.result + skipSeparationSpace(state, true, nodeIndent) + + ch = state.input.charCodeAt(state.position) + + if ((isExplicitPair || state.line === _line) && ch === 0x3a /* : */) { + isPair = true + ch = state.input.charCodeAt(++state.position) + skipSeparationSpace(state, true, nodeIndent) + composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true) + valueNode = state.result + } - if (isMapping) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos); - } else if (isPair) { - _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos)); - } else { - _result.push(keyNode); - } + if (isMapping) { + storeMappingPair( + state, + _result, + overridableKeys, + keyTag, + keyNode, + valueNode, + _line, + _lineStart, + _pos + ) + } else if (isPair) { + _result.push( + storeMappingPair( + state, + null, + overridableKeys, + keyTag, + keyNode, + valueNode, + _line, + _lineStart, + _pos + ) + ) + } else { + _result.push(keyNode) + } - skipSeparationSpace(state, true, nodeIndent); + skipSeparationSpace(state, true, nodeIndent) - ch = state.input.charCodeAt(state.position); + ch = state.input.charCodeAt(state.position) - if (ch === 0x2C/* , */) { - readNext = true; - ch = state.input.charCodeAt(++state.position); - } else { - readNext = false; - } - } + if (ch === 0x2c /* , */) { + readNext = true + ch = state.input.charCodeAt(++state.position) + } else { + readNext = false + } + } - throwError(state, 'unexpected end of the stream within a flow collection'); -} - -function readBlockScalar(state, nodeIndent) { - var captureStart, - folding, - chomping = CHOMPING_CLIP, - didReadContent = false, - detectedIndent = false, - textIndent = nodeIndent, - emptyLines = 0, - atMoreIndented = false, - tmp, - ch; - - ch = state.input.charCodeAt(state.position); - - if (ch === 0x7C/* | */) { - folding = false; - } else if (ch === 0x3E/* > */) { - folding = true; - } else { - return false; - } + throwError( + state, + 'unexpected end of the stream within a flow collection' + ) + } - state.kind = 'scalar'; - state.result = ''; + function readBlockScalar(state, nodeIndent) { + var captureStart, + folding, + chomping = CHOMPING_CLIP, + didReadContent = false, + detectedIndent = false, + textIndent = nodeIndent, + emptyLines = 0, + atMoreIndented = false, + tmp, + ch + + ch = state.input.charCodeAt(state.position) + + if (ch === 0x7c /* | */) { + folding = false + } else if (ch === 0x3e /* > */) { + folding = true + } else { + return false + } - while (ch !== 0) { - ch = state.input.charCodeAt(++state.position); + state.kind = 'scalar' + state.result = '' - if (ch === 0x2B/* + */ || ch === 0x2D/* - */) { - if (CHOMPING_CLIP === chomping) { - chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP; - } else { - throwError(state, 'repeat of a chomping mode identifier'); - } + while (ch !== 0) { + ch = state.input.charCodeAt(++state.position) - } else if ((tmp = fromDecimalCode(ch)) >= 0) { - if (tmp === 0) { - throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one'); - } else if (!detectedIndent) { - textIndent = nodeIndent + tmp - 1; - detectedIndent = true; - } else { - throwError(state, 'repeat of an indentation width identifier'); - } + if (ch === 0x2b /* + */ || ch === 0x2d /* - */) { + if (CHOMPING_CLIP === chomping) { + chomping = ch === 0x2b /* + */ ? CHOMPING_KEEP : CHOMPING_STRIP + } else { + throwError(state, 'repeat of a chomping mode identifier') + } + } else if ((tmp = fromDecimalCode(ch)) >= 0) { + if (tmp === 0) { + throwError( + state, + 'bad explicit indentation width of a block scalar; it cannot be less than one' + ) + } else if (!detectedIndent) { + textIndent = nodeIndent + tmp - 1 + detectedIndent = true + } else { + throwError(state, 'repeat of an indentation width identifier') + } + } else { + break + } + } - } else { - break; - } - } + if (is_WHITE_SPACE(ch)) { + do { + ch = state.input.charCodeAt(++state.position) + } while (is_WHITE_SPACE(ch)) - if (is_WHITE_SPACE(ch)) { - do { ch = state.input.charCodeAt(++state.position); } - while (is_WHITE_SPACE(ch)); + if (ch === 0x23 /* # */) { + do { + ch = state.input.charCodeAt(++state.position) + } while (!is_EOL(ch) && ch !== 0) + } + } - if (ch === 0x23/* # */) { - do { ch = state.input.charCodeAt(++state.position); } - while (!is_EOL(ch) && (ch !== 0)); - } - } + while (ch !== 0) { + readLineBreak(state) + state.lineIndent = 0 - while (ch !== 0) { - readLineBreak(state); - state.lineIndent = 0; + ch = state.input.charCodeAt(state.position) - ch = state.input.charCodeAt(state.position); + while ( + (!detectedIndent || state.lineIndent < textIndent) && + ch === 0x20 /* Space */ + ) { + state.lineIndent++ + ch = state.input.charCodeAt(++state.position) + } - while ((!detectedIndent || state.lineIndent < textIndent) && - (ch === 0x20/* Space */)) { - state.lineIndent++; - ch = state.input.charCodeAt(++state.position); - } + if (!detectedIndent && state.lineIndent > textIndent) { + textIndent = state.lineIndent + } - if (!detectedIndent && state.lineIndent > textIndent) { - textIndent = state.lineIndent; - } + if (is_EOL(ch)) { + emptyLines++ + continue + } - if (is_EOL(ch)) { - emptyLines++; - continue; - } + // End of the scalar. + if (state.lineIndent < textIndent) { + // Perform the chomping. + if (chomping === CHOMPING_KEEP) { + state.result += common.repeat( + '\n', + didReadContent ? 1 + emptyLines : emptyLines + ) + } else if (chomping === CHOMPING_CLIP) { + if (didReadContent) { + // i.e. only if the scalar is not empty. + state.result += '\n' + } + } - // End of the scalar. - if (state.lineIndent < textIndent) { + // Break this `while` cycle and go to the funciton's epilogue. + break + } - // Perform the chomping. - if (chomping === CHOMPING_KEEP) { - state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); - } else if (chomping === CHOMPING_CLIP) { - if (didReadContent) { // i.e. only if the scalar is not empty. - state.result += '\n'; - } - } + // Folded style: use fancy rules to handle line breaks. + if (folding) { + // Lines starting with white space characters (more-indented lines) are not folded. + if (is_WHITE_SPACE(ch)) { + atMoreIndented = true + // except for the first content line (cf. Example 8.1) + state.result += common.repeat( + '\n', + didReadContent ? 1 + emptyLines : emptyLines + ) + + // End of more-indented block. + } else if (atMoreIndented) { + atMoreIndented = false + state.result += common.repeat('\n', emptyLines + 1) + + // Just one line break - perceive as the same line. + } else if (emptyLines === 0) { + if (didReadContent) { + // i.e. only if we have already read some scalar content. + state.result += ' ' + } - // Break this `while` cycle and go to the funciton's epilogue. - break; - } + // Several line breaks - perceive as different lines. + } else { + state.result += common.repeat('\n', emptyLines) + } - // Folded style: use fancy rules to handle line breaks. - if (folding) { + // Literal style: just add exact number of line breaks between content lines. + } else { + // Keep all line breaks except the header line break. + state.result += common.repeat( + '\n', + didReadContent ? 1 + emptyLines : emptyLines + ) + } - // Lines starting with white space characters (more-indented lines) are not folded. - if (is_WHITE_SPACE(ch)) { - atMoreIndented = true; - // except for the first content line (cf. Example 8.1) - state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); + didReadContent = true + detectedIndent = true + emptyLines = 0 + captureStart = state.position - // End of more-indented block. - } else if (atMoreIndented) { - atMoreIndented = false; - state.result += common.repeat('\n', emptyLines + 1); + while (!is_EOL(ch) && ch !== 0) { + ch = state.input.charCodeAt(++state.position) + } - // Just one line break - perceive as the same line. - } else if (emptyLines === 0) { - if (didReadContent) { // i.e. only if we have already read some scalar content. - state.result += ' '; + captureSegment(state, captureStart, state.position, false) } - // Several line breaks - perceive as different lines. - } else { - state.result += common.repeat('\n', emptyLines); + return true } - // Literal style: just add exact number of line breaks between content lines. - } else { - // Keep all line breaks except the header line break. - state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); - } - - didReadContent = true; - detectedIndent = true; - emptyLines = 0; - captureStart = state.position; + function readBlockSequence(state, nodeIndent) { + var _line, + _tag = state.tag, + _anchor = state.anchor, + _result = [], + following, + detected = false, + ch - while (!is_EOL(ch) && (ch !== 0)) { - ch = state.input.charCodeAt(++state.position); - } + // there is a leading tab before this token, so it can't be a block sequence/mapping; + // it can still be flow sequence/mapping or a scalar + if (state.firstTabInLine !== -1) return false - captureSegment(state, captureStart, state.position, false); - } + if (state.anchor !== null) { + state.anchorMap[state.anchor] = _result + } - return true; -} + ch = state.input.charCodeAt(state.position) -function readBlockSequence(state, nodeIndent) { - var _line, - _tag = state.tag, - _anchor = state.anchor, - _result = [], - following, - detected = false, - ch; + while (ch !== 0) { + if (state.firstTabInLine !== -1) { + state.position = state.firstTabInLine + throwError(state, 'tab characters must not be used in indentation') + } - // there is a leading tab before this token, so it can't be a block sequence/mapping; - // it can still be flow sequence/mapping or a scalar - if (state.firstTabInLine !== -1) return false; + if (ch !== 0x2d /* - */) { + break + } - if (state.anchor !== null) { - state.anchorMap[state.anchor] = _result; - } + following = state.input.charCodeAt(state.position + 1) - ch = state.input.charCodeAt(state.position); + if (!is_WS_OR_EOL(following)) { + break + } - while (ch !== 0) { - if (state.firstTabInLine !== -1) { - state.position = state.firstTabInLine; - throwError(state, 'tab characters must not be used in indentation'); - } + detected = true + state.position++ - if (ch !== 0x2D/* - */) { - break; - } + if (skipSeparationSpace(state, true, -1)) { + if (state.lineIndent <= nodeIndent) { + _result.push(null) + ch = state.input.charCodeAt(state.position) + continue + } + } - following = state.input.charCodeAt(state.position + 1); + _line = state.line + composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true) + _result.push(state.result) + skipSeparationSpace(state, true, -1) - if (!is_WS_OR_EOL(following)) { - break; - } + ch = state.input.charCodeAt(state.position) - detected = true; - state.position++; + if ( + (state.line === _line || state.lineIndent > nodeIndent) && + ch !== 0 + ) { + throwError(state, 'bad indentation of a sequence entry') + } else if (state.lineIndent < nodeIndent) { + break + } + } - if (skipSeparationSpace(state, true, -1)) { - if (state.lineIndent <= nodeIndent) { - _result.push(null); - ch = state.input.charCodeAt(state.position); - continue; + if (detected) { + state.tag = _tag + state.anchor = _anchor + state.kind = 'sequence' + state.result = _result + return true + } + return false } - } - _line = state.line; - composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true); - _result.push(state.result); - skipSeparationSpace(state, true, -1); + function readBlockMapping(state, nodeIndent, flowIndent) { + var following, + allowCompact, + _line, + _keyLine, + _keyLineStart, + _keyPos, + _tag = state.tag, + _anchor = state.anchor, + _result = {}, + overridableKeys = Object.create(null), + keyTag = null, + keyNode = null, + valueNode = null, + atExplicitKey = false, + detected = false, + ch + + // there is a leading tab before this token, so it can't be a block sequence/mapping; + // it can still be flow sequence/mapping or a scalar + if (state.firstTabInLine !== -1) return false - ch = state.input.charCodeAt(state.position); + if (state.anchor !== null) { + state.anchorMap[state.anchor] = _result + } - if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) { - throwError(state, 'bad indentation of a sequence entry'); - } else if (state.lineIndent < nodeIndent) { - break; - } - } + ch = state.input.charCodeAt(state.position) - if (detected) { - state.tag = _tag; - state.anchor = _anchor; - state.kind = 'sequence'; - state.result = _result; - return true; - } - return false; -} - -function readBlockMapping(state, nodeIndent, flowIndent) { - var following, - allowCompact, - _line, - _keyLine, - _keyLineStart, - _keyPos, - _tag = state.tag, - _anchor = state.anchor, - _result = {}, - overridableKeys = Object.create(null), - keyTag = null, - keyNode = null, - valueNode = null, - atExplicitKey = false, - detected = false, - ch; - - // there is a leading tab before this token, so it can't be a block sequence/mapping; - // it can still be flow sequence/mapping or a scalar - if (state.firstTabInLine !== -1) return false; - - if (state.anchor !== null) { - state.anchorMap[state.anchor] = _result; - } + while (ch !== 0) { + if (!atExplicitKey && state.firstTabInLine !== -1) { + state.position = state.firstTabInLine + throwError(state, 'tab characters must not be used in indentation') + } - ch = state.input.charCodeAt(state.position); + following = state.input.charCodeAt(state.position + 1) + _line = state.line // Save the current line. - while (ch !== 0) { - if (!atExplicitKey && state.firstTabInLine !== -1) { - state.position = state.firstTabInLine; - throwError(state, 'tab characters must not be used in indentation'); - } + // + // Explicit notation case. There are two separate blocks: + // first for the key (denoted by "?") and second for the value (denoted by ":") + // + if ( + (ch === 0x3f /* ? */ || ch === 0x3a) /* : */ && + is_WS_OR_EOL(following) + ) { + if (ch === 0x3f /* ? */) { + if (atExplicitKey) { + storeMappingPair( + state, + _result, + overridableKeys, + keyTag, + keyNode, + null, + _keyLine, + _keyLineStart, + _keyPos + ) + keyTag = keyNode = valueNode = null + } - following = state.input.charCodeAt(state.position + 1); - _line = state.line; // Save the current line. + detected = true + atExplicitKey = true + allowCompact = true + } else if (atExplicitKey) { + // i.e. 0x3A/* : */ === character after the explicit key. + atExplicitKey = false + allowCompact = true + } else { + throwError( + state, + 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line' + ) + } - // - // Explicit notation case. There are two separate blocks: - // first for the key (denoted by "?") and second for the value (denoted by ":") - // - if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) { + state.position += 1 + ch = following - if (ch === 0x3F/* ? */) { - if (atExplicitKey) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); - keyTag = keyNode = valueNode = null; - } + // + // Implicit notation case. Flow-style node as the key first, then ":", and the value. + // + } else { + _keyLine = state.line + _keyLineStart = state.lineStart + _keyPos = state.position + + if ( + !composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true) + ) { + // Neither implicit nor explicit notation. + // Reading is done. Go to the epilogue. + break + } - detected = true; - atExplicitKey = true; - allowCompact = true; + if (state.line === _line) { + ch = state.input.charCodeAt(state.position) - } else if (atExplicitKey) { - // i.e. 0x3A/* : */ === character after the explicit key. - atExplicitKey = false; - allowCompact = true; + while (is_WHITE_SPACE(ch)) { + ch = state.input.charCodeAt(++state.position) + } - } else { - throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line'); - } + if (ch === 0x3a /* : */) { + ch = state.input.charCodeAt(++state.position) - state.position += 1; - ch = following; + if (!is_WS_OR_EOL(ch)) { + throwError( + state, + 'a whitespace character is expected after the key-value separator within a block mapping' + ) + } - // - // Implicit notation case. Flow-style node as the key first, then ":", and the value. - // - } else { - _keyLine = state.line; - _keyLineStart = state.lineStart; - _keyPos = state.position; + if (atExplicitKey) { + storeMappingPair( + state, + _result, + overridableKeys, + keyTag, + keyNode, + null, + _keyLine, + _keyLineStart, + _keyPos + ) + keyTag = keyNode = valueNode = null + } - if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) { - // Neither implicit nor explicit notation. - // Reading is done. Go to the epilogue. - break; - } + detected = true + atExplicitKey = false + allowCompact = false + keyTag = state.tag + keyNode = state.result + } else if (detected) { + throwError( + state, + 'can not read an implicit mapping pair; a colon is missed' + ) + } else { + state.tag = _tag + state.anchor = _anchor + return true // Keep the result of `composeNode`. + } + } else if (detected) { + throwError( + state, + 'can not read a block mapping entry; a multiline key may not be an implicit key' + ) + } else { + state.tag = _tag + state.anchor = _anchor + return true // Keep the result of `composeNode`. + } + } - if (state.line === _line) { - ch = state.input.charCodeAt(state.position); + // + // Common reading code for both explicit and implicit notations. + // + if (state.line === _line || state.lineIndent > nodeIndent) { + if (atExplicitKey) { + _keyLine = state.line + _keyLineStart = state.lineStart + _keyPos = state.position + } - while (is_WHITE_SPACE(ch)) { - ch = state.input.charCodeAt(++state.position); - } + if ( + composeNode( + state, + nodeIndent, + CONTEXT_BLOCK_OUT, + true, + allowCompact + ) + ) { + if (atExplicitKey) { + keyNode = state.result + } else { + valueNode = state.result + } + } - if (ch === 0x3A/* : */) { - ch = state.input.charCodeAt(++state.position); + if (!atExplicitKey) { + storeMappingPair( + state, + _result, + overridableKeys, + keyTag, + keyNode, + valueNode, + _keyLine, + _keyLineStart, + _keyPos + ) + keyTag = keyNode = valueNode = null + } - if (!is_WS_OR_EOL(ch)) { - throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping'); + skipSeparationSpace(state, true, -1) + ch = state.input.charCodeAt(state.position) } - if (atExplicitKey) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); - keyTag = keyNode = valueNode = null; + if ( + (state.line === _line || state.lineIndent > nodeIndent) && + ch !== 0 + ) { + throwError(state, 'bad indentation of a mapping entry') + } else if (state.lineIndent < nodeIndent) { + break } + } - detected = true; - atExplicitKey = false; - allowCompact = false; - keyTag = state.tag; - keyNode = state.result; - - } else if (detected) { - throwError(state, 'can not read an implicit mapping pair; a colon is missed'); + // + // Epilogue. + // - } else { - state.tag = _tag; - state.anchor = _anchor; - return true; // Keep the result of `composeNode`. + // Special case: last mapping's node contains only the key in explicit notation. + if (atExplicitKey) { + storeMappingPair( + state, + _result, + overridableKeys, + keyTag, + keyNode, + null, + _keyLine, + _keyLineStart, + _keyPos + ) } - } else if (detected) { - throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key'); + // Expose the resulting mapping. + if (detected) { + state.tag = _tag + state.anchor = _anchor + state.kind = 'mapping' + state.result = _result + } - } else { - state.tag = _tag; - state.anchor = _anchor; - return true; // Keep the result of `composeNode`. + return detected } - } - // - // Common reading code for both explicit and implicit notations. - // - if (state.line === _line || state.lineIndent > nodeIndent) { - if (atExplicitKey) { - _keyLine = state.line; - _keyLineStart = state.lineStart; - _keyPos = state.position; - } + function readTagProperty(state) { + var _position, + isVerbatim = false, + isNamed = false, + tagHandle, + tagName, + ch - if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) { - if (atExplicitKey) { - keyNode = state.result; - } else { - valueNode = state.result; - } - } + ch = state.input.charCodeAt(state.position) - if (!atExplicitKey) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos); - keyTag = keyNode = valueNode = null; - } + if (ch !== 0x21 /* ! */) return false - skipSeparationSpace(state, true, -1); - ch = state.input.charCodeAt(state.position); - } + if (state.tag !== null) { + throwError(state, 'duplication of a tag property') + } - if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) { - throwError(state, 'bad indentation of a mapping entry'); - } else if (state.lineIndent < nodeIndent) { - break; - } - } + ch = state.input.charCodeAt(++state.position) - // - // Epilogue. - // + if (ch === 0x3c /* < */) { + isVerbatim = true + ch = state.input.charCodeAt(++state.position) + } else if (ch === 0x21 /* ! */) { + isNamed = true + tagHandle = '!!' + ch = state.input.charCodeAt(++state.position) + } else { + tagHandle = '!' + } - // Special case: last mapping's node contains only the key in explicit notation. - if (atExplicitKey) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); - } + _position = state.position - // Expose the resulting mapping. - if (detected) { - state.tag = _tag; - state.anchor = _anchor; - state.kind = 'mapping'; - state.result = _result; - } + if (isVerbatim) { + do { + ch = state.input.charCodeAt(++state.position) + } while (ch !== 0 && ch !== 0x3e /* > */) - return detected; -} + if (state.position < state.length) { + tagName = state.input.slice(_position, state.position) + ch = state.input.charCodeAt(++state.position) + } else { + throwError( + state, + 'unexpected end of the stream within a verbatim tag' + ) + } + } else { + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + if (ch === 0x21 /* ! */) { + if (!isNamed) { + tagHandle = state.input.slice(_position - 1, state.position + 1) + + if (!PATTERN_TAG_HANDLE.test(tagHandle)) { + throwError( + state, + 'named tag handle cannot contain such characters' + ) + } -function readTagProperty(state) { - var _position, - isVerbatim = false, - isNamed = false, - tagHandle, - tagName, - ch; + isNamed = true + _position = state.position + 1 + } else { + throwError(state, 'tag suffix cannot contain exclamation marks') + } + } - ch = state.input.charCodeAt(state.position); + ch = state.input.charCodeAt(++state.position) + } - if (ch !== 0x21/* ! */) return false; + tagName = state.input.slice(_position, state.position) - if (state.tag !== null) { - throwError(state, 'duplication of a tag property'); - } + if (PATTERN_FLOW_INDICATORS.test(tagName)) { + throwError( + state, + 'tag suffix cannot contain flow indicator characters' + ) + } + } - ch = state.input.charCodeAt(++state.position); + if (tagName && !PATTERN_TAG_URI.test(tagName)) { + throwError( + state, + 'tag name cannot contain such characters: ' + tagName + ) + } - if (ch === 0x3C/* < */) { - isVerbatim = true; - ch = state.input.charCodeAt(++state.position); + try { + tagName = decodeURIComponent(tagName) + } catch (err) { + throwError(state, 'tag name is malformed: ' + tagName) + } - } else if (ch === 0x21/* ! */) { - isNamed = true; - tagHandle = '!!'; - ch = state.input.charCodeAt(++state.position); + if (isVerbatim) { + state.tag = tagName + } else if (_hasOwnProperty.call(state.tagMap, tagHandle)) { + state.tag = state.tagMap[tagHandle] + tagName + } else if (tagHandle === '!') { + state.tag = '!' + tagName + } else if (tagHandle === '!!') { + state.tag = 'tag:yaml.org,2002:' + tagName + } else { + throwError(state, 'undeclared tag handle "' + tagHandle + '"') + } - } else { - tagHandle = '!'; - } + return true + } - _position = state.position; + function readAnchorProperty(state) { + var _position, ch - if (isVerbatim) { - do { ch = state.input.charCodeAt(++state.position); } - while (ch !== 0 && ch !== 0x3E/* > */); + ch = state.input.charCodeAt(state.position) - if (state.position < state.length) { - tagName = state.input.slice(_position, state.position); - ch = state.input.charCodeAt(++state.position); - } else { - throwError(state, 'unexpected end of the stream within a verbatim tag'); - } - } else { - while (ch !== 0 && !is_WS_OR_EOL(ch)) { + if (ch !== 0x26 /* & */) return false - if (ch === 0x21/* ! */) { - if (!isNamed) { - tagHandle = state.input.slice(_position - 1, state.position + 1); + if (state.anchor !== null) { + throwError(state, 'duplication of an anchor property') + } - if (!PATTERN_TAG_HANDLE.test(tagHandle)) { - throwError(state, 'named tag handle cannot contain such characters'); - } + ch = state.input.charCodeAt(++state.position) + _position = state.position - isNamed = true; - _position = state.position + 1; - } else { - throwError(state, 'tag suffix cannot contain exclamation marks'); + while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { + ch = state.input.charCodeAt(++state.position) } - } - ch = state.input.charCodeAt(++state.position); - } + if (state.position === _position) { + throwError( + state, + 'name of an anchor node must contain at least one character' + ) + } - tagName = state.input.slice(_position, state.position); + state.anchor = state.input.slice(_position, state.position) + return true + } - if (PATTERN_FLOW_INDICATORS.test(tagName)) { - throwError(state, 'tag suffix cannot contain flow indicator characters'); - } - } + function readAlias(state) { + var _position, alias, ch - if (tagName && !PATTERN_TAG_URI.test(tagName)) { - throwError(state, 'tag name cannot contain such characters: ' + tagName); - } + ch = state.input.charCodeAt(state.position) - try { - tagName = decodeURIComponent(tagName); - } catch (err) { - throwError(state, 'tag name is malformed: ' + tagName); - } + if (ch !== 0x2a /* * */) return false - if (isVerbatim) { - state.tag = tagName; + ch = state.input.charCodeAt(++state.position) + _position = state.position - } else if (_hasOwnProperty.call(state.tagMap, tagHandle)) { - state.tag = state.tagMap[tagHandle] + tagName; + while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { + ch = state.input.charCodeAt(++state.position) + } - } else if (tagHandle === '!') { - state.tag = '!' + tagName; + if (state.position === _position) { + throwError( + state, + 'name of an alias node must contain at least one character' + ) + } - } else if (tagHandle === '!!') { - state.tag = 'tag:yaml.org,2002:' + tagName; + alias = state.input.slice(_position, state.position) - } else { - throwError(state, 'undeclared tag handle "' + tagHandle + '"'); - } + if (!_hasOwnProperty.call(state.anchorMap, alias)) { + throwError(state, 'unidentified alias "' + alias + '"') + } - return true; -} + state.result = state.anchorMap[alias] + skipSeparationSpace(state, true, -1) + return true + } -function readAnchorProperty(state) { - var _position, - ch; + function composeNode( + state, + parentIndent, + nodeContext, + allowToSeek, + allowCompact + ) { + var allowBlockStyles, + allowBlockScalars, + allowBlockCollections, + indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this parentIndent) { + indentStatus = 1 + } else if (state.lineIndent === parentIndent) { + indentStatus = 0 + } else if (state.lineIndent < parentIndent) { + indentStatus = -1 + } + } + } - ch = state.input.charCodeAt(state.position); + if (indentStatus === 1) { + while (readTagProperty(state) || readAnchorProperty(state)) { + if (skipSeparationSpace(state, true, -1)) { + atNewLine = true + allowBlockCollections = allowBlockStyles - if (ch !== 0x26/* & */) return false; + if (state.lineIndent > parentIndent) { + indentStatus = 1 + } else if (state.lineIndent === parentIndent) { + indentStatus = 0 + } else if (state.lineIndent < parentIndent) { + indentStatus = -1 + } + } else { + allowBlockCollections = false + } + } + } - if (state.anchor !== null) { - throwError(state, 'duplication of an anchor property'); - } + if (allowBlockCollections) { + allowBlockCollections = atNewLine || allowCompact + } - ch = state.input.charCodeAt(++state.position); - _position = state.position; + if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) { + if ( + CONTEXT_FLOW_IN === nodeContext || + CONTEXT_FLOW_OUT === nodeContext + ) { + flowIndent = parentIndent + } else { + flowIndent = parentIndent + 1 + } - while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { - ch = state.input.charCodeAt(++state.position); - } + blockIndent = state.position - state.lineStart - if (state.position === _position) { - throwError(state, 'name of an anchor node must contain at least one character'); - } + if (indentStatus === 1) { + if ( + (allowBlockCollections && + (readBlockSequence(state, blockIndent) || + readBlockMapping(state, blockIndent, flowIndent))) || + readFlowCollection(state, flowIndent) + ) { + hasContent = true + } else { + if ( + (allowBlockScalars && readBlockScalar(state, flowIndent)) || + readSingleQuotedScalar(state, flowIndent) || + readDoubleQuotedScalar(state, flowIndent) + ) { + hasContent = true + } else if (readAlias(state)) { + hasContent = true + + if (state.tag !== null || state.anchor !== null) { + throwError(state, 'alias node should not have any properties') + } + } else if ( + readPlainScalar( + state, + flowIndent, + CONTEXT_FLOW_IN === nodeContext + ) + ) { + hasContent = true + + if (state.tag === null) { + state.tag = '?' + } + } - state.anchor = state.input.slice(_position, state.position); - return true; -} + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result + } + } + } else if (indentStatus === 0) { + // Special case: block sequences are allowed to have same indentation level as the parent. + // http://www.yaml.org/spec/1.2/spec.html#id2799784 + hasContent = + allowBlockCollections && readBlockSequence(state, blockIndent) + } + } -function readAlias(state) { - var _position, alias, - ch; + if (state.tag === null) { + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result + } + } else if (state.tag === '?') { + // Implicit resolving is not allowed for non-scalar types, and '?' + // non-specific tag is only automatically assigned to plain scalars. + // + // We only need to check kind conformity in case user explicitly assigns '?' + // tag, for example like this: "! [0]" + // + if (state.result !== null && state.kind !== 'scalar') { + throwError( + state, + 'unacceptable node kind for ! tag; it should be "scalar", not "' + + state.kind + + '"' + ) + } - ch = state.input.charCodeAt(state.position); + for ( + typeIndex = 0, typeQuantity = state.implicitTypes.length; + typeIndex < typeQuantity; + typeIndex += 1 + ) { + type = state.implicitTypes[typeIndex] + + if (type.resolve(state.result)) { + // `state.result` updated in resolver if matched + state.result = type.construct(state.result) + state.tag = type.tag + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result + } + break + } + } + } else if (state.tag !== '!') { + if ( + _hasOwnProperty.call( + state.typeMap[state.kind || 'fallback'], + state.tag + ) + ) { + type = state.typeMap[state.kind || 'fallback'][state.tag] + } else { + // looking for multi type + type = null + typeList = state.typeMap.multi[state.kind || 'fallback'] + + for ( + typeIndex = 0, typeQuantity = typeList.length; + typeIndex < typeQuantity; + typeIndex += 1 + ) { + if ( + state.tag.slice(0, typeList[typeIndex].tag.length) === + typeList[typeIndex].tag + ) { + type = typeList[typeIndex] + break + } + } + } - if (ch !== 0x2A/* * */) return false; + if (!type) { + throwError(state, 'unknown tag !<' + state.tag + '>') + } - ch = state.input.charCodeAt(++state.position); - _position = state.position; + if (state.result !== null && type.kind !== state.kind) { + throwError( + state, + 'unacceptable node kind for !<' + + state.tag + + '> tag; it should be "' + + type.kind + + '", not "' + + state.kind + + '"' + ) + } - while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { - ch = state.input.charCodeAt(++state.position); - } + if (!type.resolve(state.result, state.tag)) { + // `state.result` updated in resolver if matched + throwError( + state, + 'cannot resolve a node with !<' + state.tag + '> explicit tag' + ) + } else { + state.result = type.construct(state.result, state.tag) + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result + } + } + } - if (state.position === _position) { - throwError(state, 'name of an alias node must contain at least one character'); - } + if (state.listener !== null) { + state.listener('close', state) + } + return state.tag !== null || state.anchor !== null || hasContent + } - alias = state.input.slice(_position, state.position); + function readDocument(state) { + var documentStart = state.position, + _position, + directiveName, + directiveArgs, + hasDirectives = false, + ch - if (!_hasOwnProperty.call(state.anchorMap, alias)) { - throwError(state, 'unidentified alias "' + alias + '"'); - } + state.version = null + state.checkLineBreaks = state.legacy + state.tagMap = Object.create(null) + state.anchorMap = Object.create(null) - state.result = state.anchorMap[alias]; - skipSeparationSpace(state, true, -1); - return true; -} - -function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) { - var allowBlockStyles, - allowBlockScalars, - allowBlockCollections, - indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this 0 || ch !== 0x25 /* % */) { + break + } - if (allowToSeek) { - if (skipSeparationSpace(state, true, -1)) { - atNewLine = true; + hasDirectives = true + ch = state.input.charCodeAt(++state.position) + _position = state.position - if (state.lineIndent > parentIndent) { - indentStatus = 1; - } else if (state.lineIndent === parentIndent) { - indentStatus = 0; - } else if (state.lineIndent < parentIndent) { - indentStatus = -1; - } - } - } + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + ch = state.input.charCodeAt(++state.position) + } - if (indentStatus === 1) { - while (readTagProperty(state) || readAnchorProperty(state)) { - if (skipSeparationSpace(state, true, -1)) { - atNewLine = true; - allowBlockCollections = allowBlockStyles; + directiveName = state.input.slice(_position, state.position) + directiveArgs = [] - if (state.lineIndent > parentIndent) { - indentStatus = 1; - } else if (state.lineIndent === parentIndent) { - indentStatus = 0; - } else if (state.lineIndent < parentIndent) { - indentStatus = -1; - } - } else { - allowBlockCollections = false; - } - } - } + if (directiveName.length < 1) { + throwError( + state, + 'directive name must not be less than one character in length' + ) + } - if (allowBlockCollections) { - allowBlockCollections = atNewLine || allowCompact; - } + while (ch !== 0) { + while (is_WHITE_SPACE(ch)) { + ch = state.input.charCodeAt(++state.position) + } - if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) { - if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) { - flowIndent = parentIndent; - } else { - flowIndent = parentIndent + 1; - } + if (ch === 0x23 /* # */) { + do { + ch = state.input.charCodeAt(++state.position) + } while (ch !== 0 && !is_EOL(ch)) + break + } - blockIndent = state.position - state.lineStart; + if (is_EOL(ch)) break - if (indentStatus === 1) { - if (allowBlockCollections && - (readBlockSequence(state, blockIndent) || - readBlockMapping(state, blockIndent, flowIndent)) || - readFlowCollection(state, flowIndent)) { - hasContent = true; - } else { - if ((allowBlockScalars && readBlockScalar(state, flowIndent)) || - readSingleQuotedScalar(state, flowIndent) || - readDoubleQuotedScalar(state, flowIndent)) { - hasContent = true; + _position = state.position - } else if (readAlias(state)) { - hasContent = true; + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + ch = state.input.charCodeAt(++state.position) + } - if (state.tag !== null || state.anchor !== null) { - throwError(state, 'alias node should not have any properties'); + directiveArgs.push(state.input.slice(_position, state.position)) } - } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) { - hasContent = true; + if (ch !== 0) readLineBreak(state) - if (state.tag === null) { - state.tag = '?'; + if (_hasOwnProperty.call(directiveHandlers, directiveName)) { + directiveHandlers[directiveName]( + state, + directiveName, + directiveArgs + ) + } else { + throwWarning( + state, + 'unknown document directive "' + directiveName + '"' + ) } } - if (state.anchor !== null) { - state.anchorMap[state.anchor] = state.result; + skipSeparationSpace(state, true, -1) + + if ( + state.lineIndent === 0 && + state.input.charCodeAt(state.position) === 0x2d /* - */ && + state.input.charCodeAt(state.position + 1) === 0x2d /* - */ && + state.input.charCodeAt(state.position + 2) === 0x2d /* - */ + ) { + state.position += 3 + skipSeparationSpace(state, true, -1) + } else if (hasDirectives) { + throwError(state, 'directives end mark is expected') } - } - } else if (indentStatus === 0) { - // Special case: block sequences are allowed to have same indentation level as the parent. - // http://www.yaml.org/spec/1.2/spec.html#id2799784 - hasContent = allowBlockCollections && readBlockSequence(state, blockIndent); - } - } - if (state.tag === null) { - if (state.anchor !== null) { - state.anchorMap[state.anchor] = state.result; - } + composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true) + skipSeparationSpace(state, true, -1) - } else if (state.tag === '?') { - // Implicit resolving is not allowed for non-scalar types, and '?' - // non-specific tag is only automatically assigned to plain scalars. - // - // We only need to check kind conformity in case user explicitly assigns '?' - // tag, for example like this: "! [0]" - // - if (state.result !== null && state.kind !== 'scalar') { - throwError(state, 'unacceptable node kind for ! tag; it should be "scalar", not "' + state.kind + '"'); - } + if ( + state.checkLineBreaks && + PATTERN_NON_ASCII_LINE_BREAKS.test( + state.input.slice(documentStart, state.position) + ) + ) { + throwWarning( + state, + 'non-ASCII line breaks are interpreted as content' + ) + } - for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) { - type = state.implicitTypes[typeIndex]; + state.documents.push(state.result) - if (type.resolve(state.result)) { // `state.result` updated in resolver if matched - state.result = type.construct(state.result); - state.tag = type.tag; - if (state.anchor !== null) { - state.anchorMap[state.anchor] = state.result; + if ( + state.position === state.lineStart && + testDocumentSeparator(state) + ) { + if (state.input.charCodeAt(state.position) === 0x2e /* . */) { + state.position += 3 + skipSeparationSpace(state, true, -1) + } + return } - break; - } - } - } else if (state.tag !== '!') { - if (_hasOwnProperty.call(state.typeMap[state.kind || 'fallback'], state.tag)) { - type = state.typeMap[state.kind || 'fallback'][state.tag]; - } else { - // looking for multi type - type = null; - typeList = state.typeMap.multi[state.kind || 'fallback']; - for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) { - if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) { - type = typeList[typeIndex]; - break; + if (state.position < state.length - 1) { + throwError( + state, + 'end of the stream or a document separator is expected' + ) + } else { + return } } - } - - if (!type) { - throwError(state, 'unknown tag !<' + state.tag + '>'); - } - if (state.result !== null && type.kind !== state.kind) { - throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be "' + type.kind + '", not "' + state.kind + '"'); - } + function loadDocuments(input, options) { + input = String(input) + options = options || {} - if (!type.resolve(state.result, state.tag)) { // `state.result` updated in resolver if matched - throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag'); - } else { - state.result = type.construct(state.result, state.tag); - if (state.anchor !== null) { - state.anchorMap[state.anchor] = state.result; - } - } - } + if (input.length !== 0) { + // Add tailing `\n` if not exists + if ( + input.charCodeAt(input.length - 1) !== 0x0a /* LF */ && + input.charCodeAt(input.length - 1) !== 0x0d /* CR */ + ) { + input += '\n' + } - if (state.listener !== null) { - state.listener('close', state); - } - return state.tag !== null || state.anchor !== null || hasContent; -} + // Strip BOM + if (input.charCodeAt(0) === 0xfeff) { + input = input.slice(1) + } + } -function readDocument(state) { - var documentStart = state.position, - _position, - directiveName, - directiveArgs, - hasDirectives = false, - ch; + var state = new State(input, options) - state.version = null; - state.checkLineBreaks = state.legacy; - state.tagMap = Object.create(null); - state.anchorMap = Object.create(null); + var nullpos = input.indexOf('\0') - while ((ch = state.input.charCodeAt(state.position)) !== 0) { - skipSeparationSpace(state, true, -1); + if (nullpos !== -1) { + state.position = nullpos + throwError(state, 'null byte is not allowed in input') + } - ch = state.input.charCodeAt(state.position); + // Use 0 as string terminator. That significantly simplifies bounds check. + state.input += '\0' - if (state.lineIndent > 0 || ch !== 0x25/* % */) { - break; - } + while (state.input.charCodeAt(state.position) === 0x20 /* Space */) { + state.lineIndent += 1 + state.position += 1 + } - hasDirectives = true; - ch = state.input.charCodeAt(++state.position); - _position = state.position; + while (state.position < state.length - 1) { + readDocument(state) + } - while (ch !== 0 && !is_WS_OR_EOL(ch)) { - ch = state.input.charCodeAt(++state.position); - } + return state.documents + } - directiveName = state.input.slice(_position, state.position); - directiveArgs = []; + function loadAll(input, iterator, options) { + if ( + iterator !== null && + typeof iterator === 'object' && + typeof options === 'undefined' + ) { + options = iterator + iterator = null + } - if (directiveName.length < 1) { - throwError(state, 'directive name must not be less than one character in length'); - } + var documents = loadDocuments(input, options) - while (ch !== 0) { - while (is_WHITE_SPACE(ch)) { - ch = state.input.charCodeAt(++state.position); - } + if (typeof iterator !== 'function') { + return documents + } - if (ch === 0x23/* # */) { - do { ch = state.input.charCodeAt(++state.position); } - while (ch !== 0 && !is_EOL(ch)); - break; + for ( + var index = 0, length = documents.length; + index < length; + index += 1 + ) { + iterator(documents[index]) + } } - if (is_EOL(ch)) break; - - _position = state.position; + function load(input, options) { + var documents = loadDocuments(input, options) - while (ch !== 0 && !is_WS_OR_EOL(ch)) { - ch = state.input.charCodeAt(++state.position); + if (documents.length === 0) { + /*eslint-disable no-undefined*/ + return undefined + } else if (documents.length === 1) { + return documents[0] + } + throw new YAMLException( + 'expected a single document in the stream, but found more' + ) } - directiveArgs.push(state.input.slice(_position, state.position)); - } - - if (ch !== 0) readLineBreak(state); + module.exports.loadAll = loadAll + module.exports.load = load - if (_hasOwnProperty.call(directiveHandlers, directiveName)) { - directiveHandlers[directiveName](state, directiveName, directiveArgs); - } else { - throwWarning(state, 'unknown document directive "' + directiveName + '"'); - } - } + /***/ + }, - skipSeparationSpace(state, true, -1); + /***/ 21082: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' - if (state.lineIndent === 0 && - state.input.charCodeAt(state.position) === 0x2D/* - */ && - state.input.charCodeAt(state.position + 1) === 0x2D/* - */ && - state.input.charCodeAt(state.position + 2) === 0x2D/* - */) { - state.position += 3; - skipSeparationSpace(state, true, -1); + /*eslint-disable max-len*/ - } else if (hasDirectives) { - throwError(state, 'directives end mark is expected'); - } + var YAMLException = __nccwpck_require__(68179) + var Type = __nccwpck_require__(6073) - composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true); - skipSeparationSpace(state, true, -1); + function compileList(schema, name) { + var result = [] - if (state.checkLineBreaks && - PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) { - throwWarning(state, 'non-ASCII line breaks are interpreted as content'); - } + schema[name].forEach(function (currentType) { + var newIndex = result.length - state.documents.push(state.result); + result.forEach(function (previousType, previousIndex) { + if ( + previousType.tag === currentType.tag && + previousType.kind === currentType.kind && + previousType.multi === currentType.multi + ) { + newIndex = previousIndex + } + }) - if (state.position === state.lineStart && testDocumentSeparator(state)) { + result[newIndex] = currentType + }) - if (state.input.charCodeAt(state.position) === 0x2E/* . */) { - state.position += 3; - skipSeparationSpace(state, true, -1); - } - return; - } + return result + } - if (state.position < (state.length - 1)) { - throwError(state, 'end of the stream or a document separator is expected'); - } else { - return; - } -} + function compileMap(/* lists... */) { + var result = { + scalar: {}, + sequence: {}, + mapping: {}, + fallback: {}, + multi: { + scalar: [], + sequence: [], + mapping: [], + fallback: [] + } + }, + index, + length + function collectType(type) { + if (type.multi) { + result.multi[type.kind].push(type) + result.multi['fallback'].push(type) + } else { + result[type.kind][type.tag] = result['fallback'][type.tag] = type + } + } -function loadDocuments(input, options) { - input = String(input); - options = options || {}; + for (index = 0, length = arguments.length; index < length; index += 1) { + arguments[index].forEach(collectType) + } + return result + } - if (input.length !== 0) { + function Schema(definition) { + return this.extend(definition) + } - // Add tailing `\n` if not exists - if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ && - input.charCodeAt(input.length - 1) !== 0x0D/* CR */) { - input += '\n'; - } + Schema.prototype.extend = function extend(definition) { + var implicit = [] + var explicit = [] - // Strip BOM - if (input.charCodeAt(0) === 0xFEFF) { - input = input.slice(1); - } - } + if (definition instanceof Type) { + // Schema.extend(type) + explicit.push(definition) + } else if (Array.isArray(definition)) { + // Schema.extend([ type1, type2, ... ]) + explicit = explicit.concat(definition) + } else if ( + definition && + (Array.isArray(definition.implicit) || + Array.isArray(definition.explicit)) + ) { + // Schema.extend({ explicit: [ type1, type2, ... ], implicit: [ type1, type2, ... ] }) + if (definition.implicit) + implicit = implicit.concat(definition.implicit) + if (definition.explicit) + explicit = explicit.concat(definition.explicit) + } else { + throw new YAMLException( + 'Schema.extend argument should be a Type, [ Type ], ' + + 'or a schema definition ({ implicit: [...], explicit: [...] })' + ) + } - var state = new State(input, options); + implicit.forEach(function (type) { + if (!(type instanceof Type)) { + throw new YAMLException( + 'Specified list of YAML types (or a single Type object) contains a non-Type object.' + ) + } - var nullpos = input.indexOf('\0'); + if (type.loadKind && type.loadKind !== 'scalar') { + throw new YAMLException( + 'There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.' + ) + } - if (nullpos !== -1) { - state.position = nullpos; - throwError(state, 'null byte is not allowed in input'); - } + if (type.multi) { + throw new YAMLException( + 'There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.' + ) + } + }) - // Use 0 as string terminator. That significantly simplifies bounds check. - state.input += '\0'; + explicit.forEach(function (type) { + if (!(type instanceof Type)) { + throw new YAMLException( + 'Specified list of YAML types (or a single Type object) contains a non-Type object.' + ) + } + }) - while (state.input.charCodeAt(state.position) === 0x20/* Space */) { - state.lineIndent += 1; - state.position += 1; - } + var result = Object.create(Schema.prototype) - while (state.position < (state.length - 1)) { - readDocument(state); - } + result.implicit = (this.implicit || []).concat(implicit) + result.explicit = (this.explicit || []).concat(explicit) - return state.documents; -} + result.compiledImplicit = compileList(result, 'implicit') + result.compiledExplicit = compileList(result, 'explicit') + result.compiledTypeMap = compileMap( + result.compiledImplicit, + result.compiledExplicit + ) + return result + } -function loadAll(input, iterator, options) { - if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') { - options = iterator; - iterator = null; - } + module.exports = Schema - var documents = loadDocuments(input, options); + /***/ + }, - if (typeof iterator !== 'function') { - return documents; - } + /***/ 12011: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + // Standard YAML's Core schema. + // http://www.yaml.org/spec/1.2/spec.html#id2804923 + // + // NOTE: JS-YAML does not support schema-specific tag resolution restrictions. + // So, Core schema has no distinctions from JSON schema is JS-YAML. - for (var index = 0, length = documents.length; index < length; index += 1) { - iterator(documents[index]); - } -} + module.exports = __nccwpck_require__(1035) + /***/ + }, -function load(input, options) { - var documents = loadDocuments(input, options); + /***/ 18759: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + // JS-YAML's default schema for `safeLoad` function. + // It is not described in the YAML specification. + // + // This schema is based on standard YAML's Core schema and includes most of + // extra types described at YAML tag repository. (http://yaml.org/type/) + + module.exports = __nccwpck_require__(12011).extend({ + implicit: [__nccwpck_require__(99212), __nccwpck_require__(86104)], + explicit: [ + __nccwpck_require__(77900), + __nccwpck_require__(19046), + __nccwpck_require__(96860), + __nccwpck_require__(79548) + ] + }) - if (documents.length === 0) { - /*eslint-disable no-undefined*/ - return undefined; - } else if (documents.length === 1) { - return documents[0]; - } - throw new YAMLException('expected a single document in the stream, but found more'); -} + /***/ + }, + /***/ 28562: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + // Standard YAML's Failsafe schema. + // http://www.yaml.org/spec/1.2/spec.html#id2802346 + + var Schema = __nccwpck_require__(21082) + + module.exports = new Schema({ + explicit: [ + __nccwpck_require__(23619), + __nccwpck_require__(67283), + __nccwpck_require__(86150) + ] + }) -module.exports.loadAll = loadAll; -module.exports.load = load; + /***/ + }, + /***/ 1035: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + // Standard YAML's JSON schema. + // http://www.yaml.org/spec/1.2/spec.html#id2803231 + // + // NOTE: JS-YAML does not support schema-specific tag resolution restrictions. + // So, this schema is not such strict as defined in the YAML specification. + // It allows numbers in binary notaion, use `Null` and `NULL` as `null`, etc. + + module.exports = __nccwpck_require__(28562).extend({ + implicit: [ + __nccwpck_require__(20721), + __nccwpck_require__(64993), + __nccwpck_require__(11615), + __nccwpck_require__(42705) + ] + }) -/***/ }), + /***/ + }, -/***/ 21082: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + /***/ 96975: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' -"use strict"; + var common = __nccwpck_require__(26829) + // get snippet for a single line, respecting maxLength + function getLine(buffer, lineStart, lineEnd, position, maxLineLength) { + var head = '' + var tail = '' + var maxHalfLength = Math.floor(maxLineLength / 2) - 1 -/*eslint-disable max-len*/ + if (position - lineStart > maxHalfLength) { + head = ' ... ' + lineStart = position - maxHalfLength + head.length + } -var YAMLException = __nccwpck_require__(68179); -var Type = __nccwpck_require__(6073); + if (lineEnd - position > maxHalfLength) { + tail = ' ...' + lineEnd = position + maxHalfLength - tail.length + } + return { + str: + head + buffer.slice(lineStart, lineEnd).replace(/\t/g, '→') + tail, + pos: position - lineStart + head.length // relative position + } + } -function compileList(schema, name) { - var result = []; + function padStart(string, max) { + return common.repeat(' ', max - string.length) + string + } - schema[name].forEach(function (currentType) { - var newIndex = result.length; + function makeSnippet(mark, options) { + options = Object.create(options || null) - result.forEach(function (previousType, previousIndex) { - if (previousType.tag === currentType.tag && - previousType.kind === currentType.kind && - previousType.multi === currentType.multi) { + if (!mark.buffer) return null - newIndex = previousIndex; - } - }); + if (!options.maxLength) options.maxLength = 79 + if (typeof options.indent !== 'number') options.indent = 1 + if (typeof options.linesBefore !== 'number') options.linesBefore = 3 + if (typeof options.linesAfter !== 'number') options.linesAfter = 2 - result[newIndex] = currentType; - }); + var re = /\r?\n|\r|\0/g + var lineStarts = [0] + var lineEnds = [] + var match + var foundLineNo = -1 - return result; -} + while ((match = re.exec(mark.buffer))) { + lineEnds.push(match.index) + lineStarts.push(match.index + match[0].length) + if (mark.position <= match.index && foundLineNo < 0) { + foundLineNo = lineStarts.length - 2 + } + } -function compileMap(/* lists... */) { - var result = { - scalar: {}, - sequence: {}, - mapping: {}, - fallback: {}, - multi: { - scalar: [], - sequence: [], - mapping: [], - fallback: [] + if (foundLineNo < 0) foundLineNo = lineStarts.length - 1 + + var result = '', + i, + line + var lineNoLength = Math.min( + mark.line + options.linesAfter, + lineEnds.length + ).toString().length + var maxLineLength = + options.maxLength - (options.indent + lineNoLength + 3) + + for (i = 1; i <= options.linesBefore; i++) { + if (foundLineNo - i < 0) break + line = getLine( + mark.buffer, + lineStarts[foundLineNo - i], + lineEnds[foundLineNo - i], + mark.position - + (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]), + maxLineLength + ) + result = + common.repeat(' ', options.indent) + + padStart((mark.line - i + 1).toString(), lineNoLength) + + ' | ' + + line.str + + '\n' + + result + } + + line = getLine( + mark.buffer, + lineStarts[foundLineNo], + lineEnds[foundLineNo], + mark.position, + maxLineLength + ) + result += + common.repeat(' ', options.indent) + + padStart((mark.line + 1).toString(), lineNoLength) + + ' | ' + + line.str + + '\n' + result += + common.repeat('-', options.indent + lineNoLength + 3 + line.pos) + + '^' + + '\n' + + for (i = 1; i <= options.linesAfter; i++) { + if (foundLineNo + i >= lineEnds.length) break + line = getLine( + mark.buffer, + lineStarts[foundLineNo + i], + lineEnds[foundLineNo + i], + mark.position - + (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]), + maxLineLength + ) + result += + common.repeat(' ', options.indent) + + padStart((mark.line + i + 1).toString(), lineNoLength) + + ' | ' + + line.str + + '\n' } - }, index, length; - function collectType(type) { - if (type.multi) { - result.multi[type.kind].push(type); - result.multi['fallback'].push(type); - } else { - result[type.kind][type.tag] = result['fallback'][type.tag] = type; - } - } + return result.replace(/\n$/, '') + } - for (index = 0, length = arguments.length; index < length; index += 1) { - arguments[index].forEach(collectType); - } - return result; -} + module.exports = makeSnippet + /***/ + }, -function Schema(definition) { - return this.extend(definition); -} + /***/ 6073: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var YAMLException = __nccwpck_require__(68179) + + var TYPE_CONSTRUCTOR_OPTIONS = [ + 'kind', + 'multi', + 'resolve', + 'construct', + 'instanceOf', + 'predicate', + 'represent', + 'representName', + 'defaultStyle', + 'styleAliases' + ] + var YAML_NODE_KINDS = ['scalar', 'sequence', 'mapping'] -Schema.prototype.extend = function extend(definition) { - var implicit = []; - var explicit = []; + function compileStyleAliases(map) { + var result = {} - if (definition instanceof Type) { - // Schema.extend(type) - explicit.push(definition); + if (map !== null) { + Object.keys(map).forEach(function (style) { + map[style].forEach(function (alias) { + result[String(alias)] = style + }) + }) + } - } else if (Array.isArray(definition)) { - // Schema.extend([ type1, type2, ... ]) - explicit = explicit.concat(definition); + return result + } - } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) { - // Schema.extend({ explicit: [ type1, type2, ... ], implicit: [ type1, type2, ... ] }) - if (definition.implicit) implicit = implicit.concat(definition.implicit); - if (definition.explicit) explicit = explicit.concat(definition.explicit); + function Type(tag, options) { + options = options || {} - } else { - throw new YAMLException('Schema.extend argument should be a Type, [ Type ], ' + - 'or a schema definition ({ implicit: [...], explicit: [...] })'); - } + Object.keys(options).forEach(function (name) { + if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) { + throw new YAMLException( + 'Unknown option "' + + name + + '" is met in definition of "' + + tag + + '" YAML type.' + ) + } + }) - implicit.forEach(function (type) { - if (!(type instanceof Type)) { - throw new YAMLException('Specified list of YAML types (or a single Type object) contains a non-Type object.'); - } + // TODO: Add tag format check. + this.options = options // keep original options in case user wants to extend this type later + this.tag = tag + this.kind = options['kind'] || null + this.resolve = + options['resolve'] || + function () { + return true + } + this.construct = + options['construct'] || + function (data) { + return data + } + this.instanceOf = options['instanceOf'] || null + this.predicate = options['predicate'] || null + this.represent = options['represent'] || null + this.representName = options['representName'] || null + this.defaultStyle = options['defaultStyle'] || null + this.multi = options['multi'] || false + this.styleAliases = compileStyleAliases(options['styleAliases'] || null) + + if (YAML_NODE_KINDS.indexOf(this.kind) === -1) { + throw new YAMLException( + 'Unknown kind "' + + this.kind + + '" is specified for "' + + tag + + '" YAML type.' + ) + } + } - if (type.loadKind && type.loadKind !== 'scalar') { - throw new YAMLException('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.'); - } + module.exports = Type - if (type.multi) { - throw new YAMLException('There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.'); - } - }); + /***/ + }, - explicit.forEach(function (type) { - if (!(type instanceof Type)) { - throw new YAMLException('Specified list of YAML types (or a single Type object) contains a non-Type object.'); - } - }); + /***/ 77900: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' - var result = Object.create(Schema.prototype); + /*eslint-disable no-bitwise*/ - result.implicit = (this.implicit || []).concat(implicit); - result.explicit = (this.explicit || []).concat(explicit); + var Type = __nccwpck_require__(6073) - result.compiledImplicit = compileList(result, 'implicit'); - result.compiledExplicit = compileList(result, 'explicit'); - result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit); + // [ 64, 65, 66 ] -> [ padding, CR, LF ] + var BASE64_MAP = + 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r' - return result; -}; + function resolveYamlBinary(data) { + if (data === null) return false + var code, + idx, + bitlen = 0, + max = data.length, + map = BASE64_MAP -module.exports = Schema; + // Convert one by one. + for (idx = 0; idx < max; idx++) { + code = map.indexOf(data.charAt(idx)) + // Skip CR/LF + if (code > 64) continue -/***/ }), + // Fail on illegal characters + if (code < 0) return false -/***/ 12011: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + bitlen += 6 + } -"use strict"; -// Standard YAML's Core schema. -// http://www.yaml.org/spec/1.2/spec.html#id2804923 -// -// NOTE: JS-YAML does not support schema-specific tag resolution restrictions. -// So, Core schema has no distinctions from JSON schema is JS-YAML. + // If there are any bits left, source was corrupted + return bitlen % 8 === 0 + } + function constructYamlBinary(data) { + var idx, + tailbits, + input = data.replace(/[\r\n=]/g, ''), // remove CR/LF & padding to simplify scan + max = input.length, + map = BASE64_MAP, + bits = 0, + result = [] + // Collect by 6*4 bits (3 bytes) + for (idx = 0; idx < max; idx++) { + if (idx % 4 === 0 && idx) { + result.push((bits >> 16) & 0xff) + result.push((bits >> 8) & 0xff) + result.push(bits & 0xff) + } + bits = (bits << 6) | map.indexOf(input.charAt(idx)) + } -module.exports = __nccwpck_require__(1035); + // Dump tail + tailbits = (max % 4) * 6 -/***/ }), + if (tailbits === 0) { + result.push((bits >> 16) & 0xff) + result.push((bits >> 8) & 0xff) + result.push(bits & 0xff) + } else if (tailbits === 18) { + result.push((bits >> 10) & 0xff) + result.push((bits >> 2) & 0xff) + } else if (tailbits === 12) { + result.push((bits >> 4) & 0xff) + } -/***/ 18759: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + return new Uint8Array(result) + } -"use strict"; -// JS-YAML's default schema for `safeLoad` function. -// It is not described in the YAML specification. -// -// This schema is based on standard YAML's Core schema and includes most of -// extra types described at YAML tag repository. (http://yaml.org/type/) + function representYamlBinary(object /*, style*/) { + var result = '', + bits = 0, + idx, + tail, + max = object.length, + map = BASE64_MAP + // Convert every three bytes to 4 ASCII characters. + for (idx = 0; idx < max; idx++) { + if (idx % 3 === 0 && idx) { + result += map[(bits >> 18) & 0x3f] + result += map[(bits >> 12) & 0x3f] + result += map[(bits >> 6) & 0x3f] + result += map[bits & 0x3f] + } + bits = (bits << 8) + object[idx] + } + // Dump tail -module.exports = (__nccwpck_require__(12011).extend)({ - implicit: [ - __nccwpck_require__(99212), - __nccwpck_require__(86104) - ], - explicit: [ - __nccwpck_require__(77900), - __nccwpck_require__(19046), - __nccwpck_require__(96860), - __nccwpck_require__(79548) - ] -}); + tail = max % 3 + if (tail === 0) { + result += map[(bits >> 18) & 0x3f] + result += map[(bits >> 12) & 0x3f] + result += map[(bits >> 6) & 0x3f] + result += map[bits & 0x3f] + } else if (tail === 2) { + result += map[(bits >> 10) & 0x3f] + result += map[(bits >> 4) & 0x3f] + result += map[(bits << 2) & 0x3f] + result += map[64] + } else if (tail === 1) { + result += map[(bits >> 2) & 0x3f] + result += map[(bits << 4) & 0x3f] + result += map[64] + result += map[64] + } -/***/ }), + return result + } -/***/ 28562: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + function isBinary(obj) { + return Object.prototype.toString.call(obj) === '[object Uint8Array]' + } -"use strict"; -// Standard YAML's Failsafe schema. -// http://www.yaml.org/spec/1.2/spec.html#id2802346 + module.exports = new Type('tag:yaml.org,2002:binary', { + kind: 'scalar', + resolve: resolveYamlBinary, + construct: constructYamlBinary, + predicate: isBinary, + represent: representYamlBinary + }) + /***/ + }, + /***/ 64993: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + var Type = __nccwpck_require__(6073) + function resolveYamlBoolean(data) { + if (data === null) return false -var Schema = __nccwpck_require__(21082); + var max = data.length + return ( + (max === 4 && + (data === 'true' || data === 'True' || data === 'TRUE')) || + (max === 5 && + (data === 'false' || data === 'False' || data === 'FALSE')) + ) + } -module.exports = new Schema({ - explicit: [ - __nccwpck_require__(23619), - __nccwpck_require__(67283), - __nccwpck_require__(86150) - ] -}); + function constructYamlBoolean(data) { + return data === 'true' || data === 'True' || data === 'TRUE' + } + function isBoolean(object) { + return Object.prototype.toString.call(object) === '[object Boolean]' + } -/***/ }), + module.exports = new Type('tag:yaml.org,2002:bool', { + kind: 'scalar', + resolve: resolveYamlBoolean, + construct: constructYamlBoolean, + predicate: isBoolean, + represent: { + lowercase: function (object) { + return object ? 'true' : 'false' + }, + uppercase: function (object) { + return object ? 'TRUE' : 'FALSE' + }, + camelcase: function (object) { + return object ? 'True' : 'False' + } + }, + defaultStyle: 'lowercase' + }) -/***/ 1035: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + /***/ + }, -"use strict"; -// Standard YAML's JSON schema. -// http://www.yaml.org/spec/1.2/spec.html#id2803231 -// -// NOTE: JS-YAML does not support schema-specific tag resolution restrictions. -// So, this schema is not such strict as defined in the YAML specification. -// It allows numbers in binary notaion, use `Null` and `NULL` as `null`, etc. + /***/ 42705: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var common = __nccwpck_require__(26829) + var Type = __nccwpck_require__(6073) + + var YAML_FLOAT_PATTERN = new RegExp( + // 2.5e4, 2.5 and integers + '^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' + + // .2e4, .2 + // special case, seems not from spec + '|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' + + // .inf + '|[-+]?\\.(?:inf|Inf|INF)' + + // .nan + '|\\.(?:nan|NaN|NAN))$' + ) + function resolveYamlFloat(data) { + if (data === null) return false + if ( + !YAML_FLOAT_PATTERN.test(data) || + // Quick hack to not allow integers end with `_` + // Probably should update regexp & check speed + data[data.length - 1] === '_' + ) { + return false + } + return true + } + function constructYamlFloat(data) { + var value, sign -module.exports = (__nccwpck_require__(28562).extend)({ - implicit: [ - __nccwpck_require__(20721), - __nccwpck_require__(64993), - __nccwpck_require__(11615), - __nccwpck_require__(42705) - ] -}); + value = data.replace(/_/g, '').toLowerCase() + sign = value[0] === '-' ? -1 : 1 + if ('+-'.indexOf(value[0]) >= 0) { + value = value.slice(1) + } -/***/ }), + if (value === '.inf') { + return sign === 1 + ? Number.POSITIVE_INFINITY + : Number.NEGATIVE_INFINITY + } else if (value === '.nan') { + return NaN + } + return sign * parseFloat(value, 10) + } -/***/ 96975: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/ -"use strict"; + function representYamlFloat(object, style) { + var res + if (isNaN(object)) { + switch (style) { + case 'lowercase': + return '.nan' + case 'uppercase': + return '.NAN' + case 'camelcase': + return '.NaN' + } + } else if (Number.POSITIVE_INFINITY === object) { + switch (style) { + case 'lowercase': + return '.inf' + case 'uppercase': + return '.INF' + case 'camelcase': + return '.Inf' + } + } else if (Number.NEGATIVE_INFINITY === object) { + switch (style) { + case 'lowercase': + return '-.inf' + case 'uppercase': + return '-.INF' + case 'camelcase': + return '-.Inf' + } + } else if (common.isNegativeZero(object)) { + return '-0.0' + } + res = object.toString(10) -var common = __nccwpck_require__(26829); + // JS stringifier can build scientific format without dots: 5e-100, + // while YAML requres dot: 5.e-100. Fix it with simple hack + return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res + } -// get snippet for a single line, respecting maxLength -function getLine(buffer, lineStart, lineEnd, position, maxLineLength) { - var head = ''; - var tail = ''; - var maxHalfLength = Math.floor(maxLineLength / 2) - 1; + function isFloat(object) { + return ( + Object.prototype.toString.call(object) === '[object Number]' && + (object % 1 !== 0 || common.isNegativeZero(object)) + ) + } - if (position - lineStart > maxHalfLength) { - head = ' ... '; - lineStart = position - maxHalfLength + head.length; - } + module.exports = new Type('tag:yaml.org,2002:float', { + kind: 'scalar', + resolve: resolveYamlFloat, + construct: constructYamlFloat, + predicate: isFloat, + represent: representYamlFloat, + defaultStyle: 'lowercase' + }) - if (lineEnd - position > maxHalfLength) { - tail = ' ...'; - lineEnd = position + maxHalfLength - tail.length; - } + /***/ + }, - return { - str: head + buffer.slice(lineStart, lineEnd).replace(/\t/g, '→') + tail, - pos: position - lineStart + head.length // relative position - }; -} + /***/ 11615: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var common = __nccwpck_require__(26829) + var Type = __nccwpck_require__(6073) + + function isHexCode(c) { + return ( + (0x30 /* 0 */ <= c && c <= 0x39) /* 9 */ || + (0x41 /* A */ <= c && c <= 0x46) /* F */ || + (0x61 /* a */ <= c && c <= 0x66) /* f */ + ) + } + function isOctCode(c) { + return 0x30 /* 0 */ <= c && c <= 0x37 /* 7 */ + } -function padStart(string, max) { - return common.repeat(' ', max - string.length) + string; -} + function isDecCode(c) { + return 0x30 /* 0 */ <= c && c <= 0x39 /* 9 */ + } + function resolveYamlInteger(data) { + if (data === null) return false -function makeSnippet(mark, options) { - options = Object.create(options || null); + var max = data.length, + index = 0, + hasDigits = false, + ch - if (!mark.buffer) return null; + if (!max) return false - if (!options.maxLength) options.maxLength = 79; - if (typeof options.indent !== 'number') options.indent = 1; - if (typeof options.linesBefore !== 'number') options.linesBefore = 3; - if (typeof options.linesAfter !== 'number') options.linesAfter = 2; + ch = data[index] - var re = /\r?\n|\r|\0/g; - var lineStarts = [ 0 ]; - var lineEnds = []; - var match; - var foundLineNo = -1; + // sign + if (ch === '-' || ch === '+') { + ch = data[++index] + } - while ((match = re.exec(mark.buffer))) { - lineEnds.push(match.index); - lineStarts.push(match.index + match[0].length); + if (ch === '0') { + // 0 + if (index + 1 === max) return true + ch = data[++index] - if (mark.position <= match.index && foundLineNo < 0) { - foundLineNo = lineStarts.length - 2; - } - } + // base 2, base 8, base 16 - if (foundLineNo < 0) foundLineNo = lineStarts.length - 1; - - var result = '', i, line; - var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length; - var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3); - - for (i = 1; i <= options.linesBefore; i++) { - if (foundLineNo - i < 0) break; - line = getLine( - mark.buffer, - lineStarts[foundLineNo - i], - lineEnds[foundLineNo - i], - mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]), - maxLineLength - ); - result = common.repeat(' ', options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) + - ' | ' + line.str + '\n' + result; - } + if (ch === 'b') { + // base 2 + index++ - line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength); - result += common.repeat(' ', options.indent) + padStart((mark.line + 1).toString(), lineNoLength) + - ' | ' + line.str + '\n'; - result += common.repeat('-', options.indent + lineNoLength + 3 + line.pos) + '^' + '\n'; - - for (i = 1; i <= options.linesAfter; i++) { - if (foundLineNo + i >= lineEnds.length) break; - line = getLine( - mark.buffer, - lineStarts[foundLineNo + i], - lineEnds[foundLineNo + i], - mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]), - maxLineLength - ); - result += common.repeat(' ', options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) + - ' | ' + line.str + '\n'; - } + for (; index < max; index++) { + ch = data[index] + if (ch === '_') continue + if (ch !== '0' && ch !== '1') return false + hasDigits = true + } + return hasDigits && ch !== '_' + } - return result.replace(/\n$/, ''); -} + if (ch === 'x') { + // base 16 + index++ + for (; index < max; index++) { + ch = data[index] + if (ch === '_') continue + if (!isHexCode(data.charCodeAt(index))) return false + hasDigits = true + } + return hasDigits && ch !== '_' + } -module.exports = makeSnippet; + if (ch === 'o') { + // base 8 + index++ + for (; index < max; index++) { + ch = data[index] + if (ch === '_') continue + if (!isOctCode(data.charCodeAt(index))) return false + hasDigits = true + } + return hasDigits && ch !== '_' + } + } -/***/ }), + // base 10 (except 0) -/***/ 6073: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + // value should not start with `_`; + if (ch === '_') return false -"use strict"; + for (; index < max; index++) { + ch = data[index] + if (ch === '_') continue + if (!isDecCode(data.charCodeAt(index))) { + return false + } + hasDigits = true + } + // Should have digits and should not end with `_` + if (!hasDigits || ch === '_') return false -var YAMLException = __nccwpck_require__(68179); + return true + } -var TYPE_CONSTRUCTOR_OPTIONS = [ - 'kind', - 'multi', - 'resolve', - 'construct', - 'instanceOf', - 'predicate', - 'represent', - 'representName', - 'defaultStyle', - 'styleAliases' -]; + function constructYamlInteger(data) { + var value = data, + sign = 1, + ch -var YAML_NODE_KINDS = [ - 'scalar', - 'sequence', - 'mapping' -]; + if (value.indexOf('_') !== -1) { + value = value.replace(/_/g, '') + } -function compileStyleAliases(map) { - var result = {}; + ch = value[0] - if (map !== null) { - Object.keys(map).forEach(function (style) { - map[style].forEach(function (alias) { - result[String(alias)] = style; - }); - }); - } + if (ch === '-' || ch === '+') { + if (ch === '-') sign = -1 + value = value.slice(1) + ch = value[0] + } - return result; -} + if (value === '0') return 0 -function Type(tag, options) { - options = options || {}; + if (ch === '0') { + if (value[1] === 'b') return sign * parseInt(value.slice(2), 2) + if (value[1] === 'x') return sign * parseInt(value.slice(2), 16) + if (value[1] === 'o') return sign * parseInt(value.slice(2), 8) + } - Object.keys(options).forEach(function (name) { - if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) { - throw new YAMLException('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.'); - } - }); - - // TODO: Add tag format check. - this.options = options; // keep original options in case user wants to extend this type later - this.tag = tag; - this.kind = options['kind'] || null; - this.resolve = options['resolve'] || function () { return true; }; - this.construct = options['construct'] || function (data) { return data; }; - this.instanceOf = options['instanceOf'] || null; - this.predicate = options['predicate'] || null; - this.represent = options['represent'] || null; - this.representName = options['representName'] || null; - this.defaultStyle = options['defaultStyle'] || null; - this.multi = options['multi'] || false; - this.styleAliases = compileStyleAliases(options['styleAliases'] || null); - - if (YAML_NODE_KINDS.indexOf(this.kind) === -1) { - throw new YAMLException('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.'); - } -} + return sign * parseInt(value, 10) + } -module.exports = Type; + function isInteger(object) { + return ( + Object.prototype.toString.call(object) === '[object Number]' && + object % 1 === 0 && + !common.isNegativeZero(object) + ) + } + module.exports = new Type('tag:yaml.org,2002:int', { + kind: 'scalar', + resolve: resolveYamlInteger, + construct: constructYamlInteger, + predicate: isInteger, + represent: { + binary: function (obj) { + return obj >= 0 + ? '0b' + obj.toString(2) + : '-0b' + obj.toString(2).slice(1) + }, + octal: function (obj) { + return obj >= 0 + ? '0o' + obj.toString(8) + : '-0o' + obj.toString(8).slice(1) + }, + decimal: function (obj) { + return obj.toString(10) + }, + /* eslint-disable max-len */ + hexadecimal: function (obj) { + return obj >= 0 + ? '0x' + obj.toString(16).toUpperCase() + : '-0x' + obj.toString(16).toUpperCase().slice(1) + } + }, + defaultStyle: 'decimal', + styleAliases: { + binary: [2, 'bin'], + octal: [8, 'oct'], + decimal: [10, 'dec'], + hexadecimal: [16, 'hex'] + } + }) -/***/ }), + /***/ + }, -/***/ 77900: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + /***/ 86150: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' -"use strict"; + var Type = __nccwpck_require__(6073) + module.exports = new Type('tag:yaml.org,2002:map', { + kind: 'mapping', + construct: function (data) { + return data !== null ? data : {} + } + }) -/*eslint-disable no-bitwise*/ + /***/ + }, + /***/ 86104: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' -var Type = __nccwpck_require__(6073); + var Type = __nccwpck_require__(6073) + function resolveYamlMerge(data) { + return data === '<<' || data === null + } -// [ 64, 65, 66 ] -> [ padding, CR, LF ] -var BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r'; + module.exports = new Type('tag:yaml.org,2002:merge', { + kind: 'scalar', + resolve: resolveYamlMerge + }) + /***/ + }, -function resolveYamlBinary(data) { - if (data === null) return false; + /***/ 20721: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' - var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP; + var Type = __nccwpck_require__(6073) - // Convert one by one. - for (idx = 0; idx < max; idx++) { - code = map.indexOf(data.charAt(idx)); + function resolveYamlNull(data) { + if (data === null) return true - // Skip CR/LF - if (code > 64) continue; + var max = data.length - // Fail on illegal characters - if (code < 0) return false; + return ( + (max === 1 && data === '~') || + (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL')) + ) + } - bitlen += 6; - } + function constructYamlNull() { + return null + } - // If there are any bits left, source was corrupted - return (bitlen % 8) === 0; -} - -function constructYamlBinary(data) { - var idx, tailbits, - input = data.replace(/[\r\n=]/g, ''), // remove CR/LF & padding to simplify scan - max = input.length, - map = BASE64_MAP, - bits = 0, - result = []; - - // Collect by 6*4 bits (3 bytes) - - for (idx = 0; idx < max; idx++) { - if ((idx % 4 === 0) && idx) { - result.push((bits >> 16) & 0xFF); - result.push((bits >> 8) & 0xFF); - result.push(bits & 0xFF); - } + function isNull(object) { + return object === null + } - bits = (bits << 6) | map.indexOf(input.charAt(idx)); - } + module.exports = new Type('tag:yaml.org,2002:null', { + kind: 'scalar', + resolve: resolveYamlNull, + construct: constructYamlNull, + predicate: isNull, + represent: { + canonical: function () { + return '~' + }, + lowercase: function () { + return 'null' + }, + uppercase: function () { + return 'NULL' + }, + camelcase: function () { + return 'Null' + }, + empty: function () { + return '' + } + }, + defaultStyle: 'lowercase' + }) - // Dump tail + /***/ + }, - tailbits = (max % 4) * 6; + /***/ 19046: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' - if (tailbits === 0) { - result.push((bits >> 16) & 0xFF); - result.push((bits >> 8) & 0xFF); - result.push(bits & 0xFF); - } else if (tailbits === 18) { - result.push((bits >> 10) & 0xFF); - result.push((bits >> 2) & 0xFF); - } else if (tailbits === 12) { - result.push((bits >> 4) & 0xFF); - } + var Type = __nccwpck_require__(6073) - return new Uint8Array(result); -} + var _hasOwnProperty = Object.prototype.hasOwnProperty + var _toString = Object.prototype.toString -function representYamlBinary(object /*, style*/) { - var result = '', bits = 0, idx, tail, - max = object.length, - map = BASE64_MAP; + function resolveYamlOmap(data) { + if (data === null) return true - // Convert every three bytes to 4 ASCII characters. + var objectKeys = [], + index, + length, + pair, + pairKey, + pairHasKey, + object = data - for (idx = 0; idx < max; idx++) { - if ((idx % 3 === 0) && idx) { - result += map[(bits >> 18) & 0x3F]; - result += map[(bits >> 12) & 0x3F]; - result += map[(bits >> 6) & 0x3F]; - result += map[bits & 0x3F]; - } + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index] + pairHasKey = false - bits = (bits << 8) + object[idx]; - } + if (_toString.call(pair) !== '[object Object]') return false - // Dump tail - - tail = max % 3; - - if (tail === 0) { - result += map[(bits >> 18) & 0x3F]; - result += map[(bits >> 12) & 0x3F]; - result += map[(bits >> 6) & 0x3F]; - result += map[bits & 0x3F]; - } else if (tail === 2) { - result += map[(bits >> 10) & 0x3F]; - result += map[(bits >> 4) & 0x3F]; - result += map[(bits << 2) & 0x3F]; - result += map[64]; - } else if (tail === 1) { - result += map[(bits >> 2) & 0x3F]; - result += map[(bits << 4) & 0x3F]; - result += map[64]; - result += map[64]; - } + for (pairKey in pair) { + if (_hasOwnProperty.call(pair, pairKey)) { + if (!pairHasKey) pairHasKey = true + else return false + } + } - return result; -} + if (!pairHasKey) return false -function isBinary(obj) { - return Object.prototype.toString.call(obj) === '[object Uint8Array]'; -} + if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey) + else return false + } -module.exports = new Type('tag:yaml.org,2002:binary', { - kind: 'scalar', - resolve: resolveYamlBinary, - construct: constructYamlBinary, - predicate: isBinary, - represent: representYamlBinary -}); + return true + } + function constructYamlOmap(data) { + return data !== null ? data : [] + } -/***/ }), + module.exports = new Type('tag:yaml.org,2002:omap', { + kind: 'sequence', + resolve: resolveYamlOmap, + construct: constructYamlOmap + }) -/***/ 64993: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + /***/ + }, -"use strict"; + /***/ 96860: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + var Type = __nccwpck_require__(6073) -var Type = __nccwpck_require__(6073); + var _toString = Object.prototype.toString -function resolveYamlBoolean(data) { - if (data === null) return false; + function resolveYamlPairs(data) { + if (data === null) return true - var max = data.length; + var index, + length, + pair, + keys, + result, + object = data - return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) || - (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE')); -} + result = new Array(object.length) -function constructYamlBoolean(data) { - return data === 'true' || - data === 'True' || - data === 'TRUE'; -} + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index] -function isBoolean(object) { - return Object.prototype.toString.call(object) === '[object Boolean]'; -} + if (_toString.call(pair) !== '[object Object]') return false -module.exports = new Type('tag:yaml.org,2002:bool', { - kind: 'scalar', - resolve: resolveYamlBoolean, - construct: constructYamlBoolean, - predicate: isBoolean, - represent: { - lowercase: function (object) { return object ? 'true' : 'false'; }, - uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; }, - camelcase: function (object) { return object ? 'True' : 'False'; } - }, - defaultStyle: 'lowercase' -}); + keys = Object.keys(pair) + if (keys.length !== 1) return false -/***/ }), + result[index] = [keys[0], pair[keys[0]]] + } -/***/ 42705: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + return true + } -"use strict"; + function constructYamlPairs(data) { + if (data === null) return [] + var index, + length, + pair, + keys, + result, + object = data -var common = __nccwpck_require__(26829); -var Type = __nccwpck_require__(6073); + result = new Array(object.length) -var YAML_FLOAT_PATTERN = new RegExp( - // 2.5e4, 2.5 and integers - '^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' + - // .2e4, .2 - // special case, seems not from spec - '|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' + - // .inf - '|[-+]?\\.(?:inf|Inf|INF)' + - // .nan - '|\\.(?:nan|NaN|NAN))$'); + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index] -function resolveYamlFloat(data) { - if (data === null) return false; + keys = Object.keys(pair) - if (!YAML_FLOAT_PATTERN.test(data) || - // Quick hack to not allow integers end with `_` - // Probably should update regexp & check speed - data[data.length - 1] === '_') { - return false; - } + result[index] = [keys[0], pair[keys[0]]] + } - return true; -} + return result + } -function constructYamlFloat(data) { - var value, sign; + module.exports = new Type('tag:yaml.org,2002:pairs', { + kind: 'sequence', + resolve: resolveYamlPairs, + construct: constructYamlPairs + }) - value = data.replace(/_/g, '').toLowerCase(); - sign = value[0] === '-' ? -1 : 1; + /***/ + }, - if ('+-'.indexOf(value[0]) >= 0) { - value = value.slice(1); - } + /***/ 67283: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' - if (value === '.inf') { - return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY; + var Type = __nccwpck_require__(6073) - } else if (value === '.nan') { - return NaN; - } - return sign * parseFloat(value, 10); -} + module.exports = new Type('tag:yaml.org,2002:seq', { + kind: 'sequence', + construct: function (data) { + return data !== null ? data : [] + } + }) + /***/ + }, -var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/; + /***/ 79548: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' -function representYamlFloat(object, style) { - var res; + var Type = __nccwpck_require__(6073) - if (isNaN(object)) { - switch (style) { - case 'lowercase': return '.nan'; - case 'uppercase': return '.NAN'; - case 'camelcase': return '.NaN'; - } - } else if (Number.POSITIVE_INFINITY === object) { - switch (style) { - case 'lowercase': return '.inf'; - case 'uppercase': return '.INF'; - case 'camelcase': return '.Inf'; - } - } else if (Number.NEGATIVE_INFINITY === object) { - switch (style) { - case 'lowercase': return '-.inf'; - case 'uppercase': return '-.INF'; - case 'camelcase': return '-.Inf'; - } - } else if (common.isNegativeZero(object)) { - return '-0.0'; - } + var _hasOwnProperty = Object.prototype.hasOwnProperty - res = object.toString(10); + function resolveYamlSet(data) { + if (data === null) return true - // JS stringifier can build scientific format without dots: 5e-100, - // while YAML requres dot: 5.e-100. Fix it with simple hack + var key, + object = data - return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res; -} + for (key in object) { + if (_hasOwnProperty.call(object, key)) { + if (object[key] !== null) return false + } + } -function isFloat(object) { - return (Object.prototype.toString.call(object) === '[object Number]') && - (object % 1 !== 0 || common.isNegativeZero(object)); -} + return true + } -module.exports = new Type('tag:yaml.org,2002:float', { - kind: 'scalar', - resolve: resolveYamlFloat, - construct: constructYamlFloat, - predicate: isFloat, - represent: representYamlFloat, - defaultStyle: 'lowercase' -}); + function constructYamlSet(data) { + return data !== null ? data : {} + } + module.exports = new Type('tag:yaml.org,2002:set', { + kind: 'mapping', + resolve: resolveYamlSet, + construct: constructYamlSet + }) -/***/ }), + /***/ + }, -/***/ 11615: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + /***/ 23619: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' -"use strict"; + var Type = __nccwpck_require__(6073) + module.exports = new Type('tag:yaml.org,2002:str', { + kind: 'scalar', + construct: function (data) { + return data !== null ? data : '' + } + }) -var common = __nccwpck_require__(26829); -var Type = __nccwpck_require__(6073); + /***/ + }, -function isHexCode(c) { - return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) || - ((0x41/* A */ <= c) && (c <= 0x46/* F */)) || - ((0x61/* a */ <= c) && (c <= 0x66/* f */)); -} + /***/ 99212: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + var Type = __nccwpck_require__(6073) + + var YAML_DATE_REGEXP = new RegExp( + '^([0-9][0-9][0-9][0-9])' + // [1] year + '-([0-9][0-9])' + // [2] month + '-([0-9][0-9])$' + ) // [3] day + + var YAML_TIMESTAMP_REGEXP = new RegExp( + '^([0-9][0-9][0-9][0-9])' + // [1] year + '-([0-9][0-9]?)' + // [2] month + '-([0-9][0-9]?)' + // [3] day + '(?:[Tt]|[ \\t]+)' + // ... + '([0-9][0-9]?)' + // [4] hour + ':([0-9][0-9])' + // [5] minute + ':([0-9][0-9])' + // [6] second + '(?:\\.([0-9]*))?' + // [7] fraction + '(?:[ \\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour + '(?::([0-9][0-9]))?))?$' + ) // [11] tz_minute + + function resolveYamlTimestamp(data) { + if (data === null) return false + if (YAML_DATE_REGEXP.exec(data) !== null) return true + if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true + return false + } -function isOctCode(c) { - return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */)); -} + function constructYamlTimestamp(data) { + var match, + year, + month, + day, + hour, + minute, + second, + fraction = 0, + delta = null, + tz_hour, + tz_minute, + date -function isDecCode(c) { - return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)); -} + match = YAML_DATE_REGEXP.exec(data) + if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data) -function resolveYamlInteger(data) { - if (data === null) return false; + if (match === null) throw new Error('Date resolve error') - var max = data.length, - index = 0, - hasDigits = false, - ch; + // match: [1] year [2] month [3] day - if (!max) return false; + year = +match[1] + month = +match[2] - 1 // JS month starts with 0 + day = +match[3] - ch = data[index]; + if (!match[4]) { + // no hour + return new Date(Date.UTC(year, month, day)) + } - // sign - if (ch === '-' || ch === '+') { - ch = data[++index]; - } + // match: [4] hour [5] minute [6] second [7] fraction - if (ch === '0') { - // 0 - if (index + 1 === max) return true; - ch = data[++index]; + hour = +match[4] + minute = +match[5] + second = +match[6] - // base 2, base 8, base 16 + if (match[7]) { + fraction = match[7].slice(0, 3) + while (fraction.length < 3) { + // milli-seconds + fraction += '0' + } + fraction = +fraction + } - if (ch === 'b') { - // base 2 - index++; + // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute - for (; index < max; index++) { - ch = data[index]; - if (ch === '_') continue; - if (ch !== '0' && ch !== '1') return false; - hasDigits = true; - } - return hasDigits && ch !== '_'; - } + if (match[9]) { + tz_hour = +match[10] + tz_minute = +(match[11] || 0) + delta = (tz_hour * 60 + tz_minute) * 60000 // delta in mili-seconds + if (match[9] === '-') delta = -delta + } + date = new Date( + Date.UTC(year, month, day, hour, minute, second, fraction) + ) - if (ch === 'x') { - // base 16 - index++; + if (delta) date.setTime(date.getTime() - delta) - for (; index < max; index++) { - ch = data[index]; - if (ch === '_') continue; - if (!isHexCode(data.charCodeAt(index))) return false; - hasDigits = true; + return date } - return hasDigits && ch !== '_'; - } - - - if (ch === 'o') { - // base 8 - index++; - for (; index < max; index++) { - ch = data[index]; - if (ch === '_') continue; - if (!isOctCode(data.charCodeAt(index))) return false; - hasDigits = true; + function representYamlTimestamp(object /*, style*/) { + return object.toISOString() } - return hasDigits && ch !== '_'; - } - } - // base 10 (except 0) + module.exports = new Type('tag:yaml.org,2002:timestamp', { + kind: 'scalar', + resolve: resolveYamlTimestamp, + construct: constructYamlTimestamp, + instanceOf: Date, + represent: representYamlTimestamp + }) - // value should not start with `_`; - if (ch === '_') return false; + /***/ + }, - for (; index < max; index++) { - ch = data[index]; - if (ch === '_') continue; - if (!isDecCode(data.charCodeAt(index))) { - return false; - } - hasDigits = true; - } + /***/ 80900: /***/ module => { + /** + * Helpers. + */ - // Should have digits and should not end with `_` - if (!hasDigits || ch === '_') return false; + var s = 1000 + var m = s * 60 + var h = m * 60 + var d = h * 24 + var w = d * 7 + var y = d * 365.25 - return true; -} + /** + * Parse or format the given `val`. + * + * Options: + * + * - `long` verbose formatting [false] + * + * @param {String|Number} val + * @param {Object} [options] + * @throws {Error} throw an error if val is not a non-empty string or a number + * @return {String|Number} + * @api public + */ -function constructYamlInteger(data) { - var value = data, sign = 1, ch; + module.exports = function (val, options) { + options = options || {} + var type = typeof val + if (type === 'string' && val.length > 0) { + return parse(val) + } else if (type === 'number' && isFinite(val)) { + return options.long ? fmtLong(val) : fmtShort(val) + } + throw new Error( + 'val is not a non-empty string or a valid number. val=' + + JSON.stringify(val) + ) + } - if (value.indexOf('_') !== -1) { - value = value.replace(/_/g, ''); - } + /** + * Parse the given `str` and return milliseconds. + * + * @param {String} str + * @return {Number} + * @api private + */ + + function parse(str) { + str = String(str) + if (str.length > 100) { + return + } + var match = + /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec( + str + ) + if (!match) { + return + } + var n = parseFloat(match[1]) + var type = (match[2] || 'ms').toLowerCase() + switch (type) { + case 'years': + case 'year': + case 'yrs': + case 'yr': + case 'y': + return n * y + case 'weeks': + case 'week': + case 'w': + return n * w + case 'days': + case 'day': + case 'd': + return n * d + case 'hours': + case 'hour': + case 'hrs': + case 'hr': + case 'h': + return n * h + case 'minutes': + case 'minute': + case 'mins': + case 'min': + case 'm': + return n * m + case 'seconds': + case 'second': + case 'secs': + case 'sec': + case 's': + return n * s + case 'milliseconds': + case 'millisecond': + case 'msecs': + case 'msec': + case 'ms': + return n + default: + return undefined + } + } - ch = value[0]; + /** + * Short format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ - if (ch === '-' || ch === '+') { - if (ch === '-') sign = -1; - value = value.slice(1); - ch = value[0]; - } + function fmtShort(ms) { + var msAbs = Math.abs(ms) + if (msAbs >= d) { + return Math.round(ms / d) + 'd' + } + if (msAbs >= h) { + return Math.round(ms / h) + 'h' + } + if (msAbs >= m) { + return Math.round(ms / m) + 'm' + } + if (msAbs >= s) { + return Math.round(ms / s) + 's' + } + return ms + 'ms' + } - if (value === '0') return 0; + /** + * Long format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ - if (ch === '0') { - if (value[1] === 'b') return sign * parseInt(value.slice(2), 2); - if (value[1] === 'x') return sign * parseInt(value.slice(2), 16); - if (value[1] === 'o') return sign * parseInt(value.slice(2), 8); - } + function fmtLong(ms) { + var msAbs = Math.abs(ms) + if (msAbs >= d) { + return plural(ms, msAbs, d, 'day') + } + if (msAbs >= h) { + return plural(ms, msAbs, h, 'hour') + } + if (msAbs >= m) { + return plural(ms, msAbs, m, 'minute') + } + if (msAbs >= s) { + return plural(ms, msAbs, s, 'second') + } + return ms + ' ms' + } - return sign * parseInt(value, 10); -} - -function isInteger(object) { - return (Object.prototype.toString.call(object)) === '[object Number]' && - (object % 1 === 0 && !common.isNegativeZero(object)); -} - -module.exports = new Type('tag:yaml.org,2002:int', { - kind: 'scalar', - resolve: resolveYamlInteger, - construct: constructYamlInteger, - predicate: isInteger, - represent: { - binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); }, - octal: function (obj) { return obj >= 0 ? '0o' + obj.toString(8) : '-0o' + obj.toString(8).slice(1); }, - decimal: function (obj) { return obj.toString(10); }, - /* eslint-disable max-len */ - hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); } - }, - defaultStyle: 'decimal', - styleAliases: { - binary: [ 2, 'bin' ], - octal: [ 8, 'oct' ], - decimal: [ 10, 'dec' ], - hexadecimal: [ 16, 'hex' ] - } -}); + /** + * Pluralization helper. + */ + function plural(ms, msAbs, n, name) { + var isPlural = msAbs >= n * 1.5 + return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '') + } -/***/ }), + /***/ + }, -/***/ 86150: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + /***/ 14526: /***/ module => { + const hexRegex = /^[-+]?0x[a-fA-F0-9]+$/ + const numRegex = + /^([\-\+])?(0*)(\.[0-9]+([eE]\-?[0-9]+)?|[0-9]+(\.[0-9]+([eE]\-?[0-9]+)?)?)$/ + // const octRegex = /0x[a-z0-9]+/; + // const binRegex = /0x[a-z0-9]+/; + + //polyfill + if (!Number.parseInt && window.parseInt) { + Number.parseInt = window.parseInt + } + if (!Number.parseFloat && window.parseFloat) { + Number.parseFloat = window.parseFloat + } + + const consider = { + hex: true, + leadingZeros: true, + decimalPoint: '\.', + eNotation: true + //skipLike: /regex/ + } + + function toNumber(str, options = {}) { + // const options = Object.assign({}, consider); + // if(opt.leadingZeros === false){ + // options.leadingZeros = false; + // }else if(opt.hex === false){ + // options.hex = false; + // } + + options = Object.assign({}, consider, options) + if (!str || typeof str !== 'string') return str + + let trimmedStr = str.trim() + // if(trimmedStr === "0.0") return 0; + // else if(trimmedStr === "+0.0") return 0; + // else if(trimmedStr === "-0.0") return -0; + + if (options.skipLike !== undefined && options.skipLike.test(trimmedStr)) + return str + else if (options.hex && hexRegex.test(trimmedStr)) { + return Number.parseInt(trimmedStr, 16) + // } else if (options.parseOct && octRegex.test(str)) { + // return Number.parseInt(val, 8); + // }else if (options.parseBin && binRegex.test(str)) { + // return Number.parseInt(val, 2); + } else { + //separate negative sign, leading zeros, and rest number + const match = numRegex.exec(trimmedStr) + if (match) { + const sign = match[1] + const leadingZeros = match[2] + let numTrimmedByZeros = trimZeros(match[3]) //complete num without leading zeros + //trim ending zeros for floating number -"use strict"; + const eNotation = match[4] || match[6] + if ( + !options.leadingZeros && + leadingZeros.length > 0 && + sign && + trimmedStr[2] !== '.' + ) + return str //-0123 + else if ( + !options.leadingZeros && + leadingZeros.length > 0 && + !sign && + trimmedStr[1] !== '.' + ) + return str //0123 + else { + //no leading zeros or leading zeros are allowed + const num = Number(trimmedStr) + const numStr = '' + num + if (numStr.search(/[eE]/) !== -1) { + //given number is long and parsed to eNotation + if (options.eNotation) return num + else return str + } else if (eNotation) { + //given number has enotation + if (options.eNotation) return num + else return str + } else if (trimmedStr.indexOf('.') !== -1) { + //floating number + // const decimalPart = match[5].substr(1); + // const intPart = trimmedStr.substr(0,trimmedStr.indexOf(".")); + + // const p = numStr.indexOf("."); + // const givenIntPart = numStr.substr(0,p); + // const givenDecPart = numStr.substr(p+1); + if (numStr === '0' && numTrimmedByZeros === '') + return num //0.0 + else if (numStr === numTrimmedByZeros) + return num //0.456. 0.79000 + else if (sign && numStr === '-' + numTrimmedByZeros) return num + else return str + } + if (leadingZeros) { + // if(numTrimmedByZeros === numStr){ + // if(options.leadingZeros) return num; + // else return str; + // }else return str; + if (numTrimmedByZeros === numStr) return num + else if (sign + numTrimmedByZeros === numStr) return num + else return str + } -var Type = __nccwpck_require__(6073); + if (trimmedStr === numStr) return num + else if (trimmedStr === sign + numStr) return num + // else{ + // //number with +/- sign + // trimmedStr.test(/[-+][0-9]); -module.exports = new Type('tag:yaml.org,2002:map', { - kind: 'mapping', - construct: function (data) { return data !== null ? data : {}; } -}); + // } + return str + } + // else if(!eNotation && trimmedStr && trimmedStr !== Number(trimmedStr) ) return str; + } else { + //non-numeric string + return str + } + } + } + /** + * + * @param {string} numStr without leading zeros + * @returns + */ + function trimZeros(numStr) { + if (numStr && numStr.indexOf('.') !== -1) { + //float + numStr = numStr.replace(/0+$/, '') //remove ending zeros + if (numStr === '.') numStr = '0' + else if (numStr[0] === '.') numStr = '0' + numStr + else if (numStr[numStr.length - 1] === '.') + numStr = numStr.substr(0, numStr.length - 1) + return numStr + } + return numStr + } + module.exports = toNumber -/***/ }), + /***/ + }, -/***/ 86104: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + /***/ 59318: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' -"use strict"; + const os = __nccwpck_require__(22037) + const tty = __nccwpck_require__(76224) + const hasFlag = __nccwpck_require__(31621) + const { env } = process -var Type = __nccwpck_require__(6073); + let forceColor + if ( + hasFlag('no-color') || + hasFlag('no-colors') || + hasFlag('color=false') || + hasFlag('color=never') + ) { + forceColor = 0 + } else if ( + hasFlag('color') || + hasFlag('colors') || + hasFlag('color=true') || + hasFlag('color=always') + ) { + forceColor = 1 + } -function resolveYamlMerge(data) { - return data === '<<' || data === null; -} + if ('FORCE_COLOR' in env) { + if (env.FORCE_COLOR === 'true') { + forceColor = 1 + } else if (env.FORCE_COLOR === 'false') { + forceColor = 0 + } else { + forceColor = + env.FORCE_COLOR.length === 0 + ? 1 + : Math.min(parseInt(env.FORCE_COLOR, 10), 3) + } + } -module.exports = new Type('tag:yaml.org,2002:merge', { - kind: 'scalar', - resolve: resolveYamlMerge -}); + function translateLevel(level) { + if (level === 0) { + return false + } + return { + level, + hasBasic: true, + has256: level >= 2, + has16m: level >= 3 + } + } -/***/ }), + function supportsColor(haveStream, streamIsTTY) { + if (forceColor === 0) { + return 0 + } -/***/ 20721: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + if ( + hasFlag('color=16m') || + hasFlag('color=full') || + hasFlag('color=truecolor') + ) { + return 3 + } -"use strict"; + if (hasFlag('color=256')) { + return 2 + } + if (haveStream && !streamIsTTY && forceColor === undefined) { + return 0 + } -var Type = __nccwpck_require__(6073); + const min = forceColor || 0 -function resolveYamlNull(data) { - if (data === null) return true; + if (env.TERM === 'dumb') { + return min + } - var max = data.length; + if (process.platform === 'win32') { + // Windows 10 build 10586 is the first Windows release that supports 256 colors. + // Windows 10 build 14931 is the first release that supports 16m/TrueColor. + const osRelease = os.release().split('.') + if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) { + return Number(osRelease[2]) >= 14931 ? 3 : 2 + } - return (max === 1 && data === '~') || - (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL')); -} + return 1 + } -function constructYamlNull() { - return null; -} + if ('CI' in env) { + if ( + [ + 'TRAVIS', + 'CIRCLECI', + 'APPVEYOR', + 'GITLAB_CI', + 'GITHUB_ACTIONS', + 'BUILDKITE' + ].some(sign => sign in env) || + env.CI_NAME === 'codeship' + ) { + return 1 + } -function isNull(object) { - return object === null; -} + return min + } -module.exports = new Type('tag:yaml.org,2002:null', { - kind: 'scalar', - resolve: resolveYamlNull, - construct: constructYamlNull, - predicate: isNull, - represent: { - canonical: function () { return '~'; }, - lowercase: function () { return 'null'; }, - uppercase: function () { return 'NULL'; }, - camelcase: function () { return 'Null'; }, - empty: function () { return ''; } - }, - defaultStyle: 'lowercase' -}); + if ('TEAMCITY_VERSION' in env) { + return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) + ? 1 + : 0 + } + if (env.COLORTERM === 'truecolor') { + return 3 + } -/***/ }), + if ('TERM_PROGRAM' in env) { + const version = parseInt( + (env.TERM_PROGRAM_VERSION || '').split('.')[0], + 10 + ) -/***/ 19046: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + switch (env.TERM_PROGRAM) { + case 'iTerm.app': + return version >= 3 ? 3 : 2 + case 'Apple_Terminal': + return 2 + // No default + } + } -"use strict"; + if (/-256(color)?$/i.test(env.TERM)) { + return 2 + } + if ( + /^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test( + env.TERM + ) + ) { + return 1 + } -var Type = __nccwpck_require__(6073); + if ('COLORTERM' in env) { + return 1 + } -var _hasOwnProperty = Object.prototype.hasOwnProperty; -var _toString = Object.prototype.toString; + return min + } -function resolveYamlOmap(data) { - if (data === null) return true; + function getSupportLevel(stream) { + const level = supportsColor(stream, stream && stream.isTTY) + return translateLevel(level) + } - var objectKeys = [], index, length, pair, pairKey, pairHasKey, - object = data; + module.exports = { + supportsColor: getSupportLevel, + stdout: translateLevel(supportsColor(true, tty.isatty(1))), + stderr: translateLevel(supportsColor(true, tty.isatty(2))) + } - for (index = 0, length = object.length; index < length; index += 1) { - pair = object[index]; - pairHasKey = false; + /***/ + }, - if (_toString.call(pair) !== '[object Object]') return false; + /***/ 4351: /***/ module => { + /****************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ + /* global global, define, Symbol, Reflect, Promise, SuppressedError, Iterator */ + var __extends + var __assign + var __rest + var __decorate + var __param + var __esDecorate + var __runInitializers + var __propKey + var __setFunctionName + var __metadata + var __awaiter + var __generator + var __exportStar + var __values + var __read + var __spread + var __spreadArrays + var __spreadArray + var __await + var __asyncGenerator + var __asyncDelegator + var __asyncValues + var __makeTemplateObject + var __importStar + var __importDefault + var __classPrivateFieldGet + var __classPrivateFieldSet + var __classPrivateFieldIn + var __createBinding + var __addDisposableResource + var __disposeResources + ;(function (factory) { + var root = + typeof global === 'object' + ? global + : typeof self === 'object' + ? self + : typeof this === 'object' + ? this + : {} + if (typeof define === 'function' && define.amd) { + define('tslib', ['exports'], function (exports) { + factory(createExporter(root, createExporter(exports))) + }) + } else if (true && typeof module.exports === 'object') { + factory(createExporter(root, createExporter(module.exports))) + } else { + factory(createExporter(root)) + } + function createExporter(exports, previous) { + if (exports !== root) { + if (typeof Object.create === 'function') { + Object.defineProperty(exports, '__esModule', { value: true }) + } else { + exports.__esModule = true + } + } + return function (id, v) { + return (exports[id] = previous ? previous(id, v) : v) + } + } + })(function (exporter) { + var extendStatics = + Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && + function (d, b) { + d.__proto__ = b + }) || + function (d, b) { + for (var p in b) + if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] + } - for (pairKey in pair) { - if (_hasOwnProperty.call(pair, pairKey)) { - if (!pairHasKey) pairHasKey = true; - else return false; - } - } + __extends = function (d, b) { + if (typeof b !== 'function' && b !== null) + throw new TypeError( + 'Class extends value ' + + String(b) + + ' is not a constructor or null' + ) + extendStatics(d, b) + function __() { + this.constructor = d + } + d.prototype = + b === null + ? Object.create(b) + : ((__.prototype = b.prototype), new __()) + } + + __assign = + Object.assign || + function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i] + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p] + } + return t + } - if (!pairHasKey) return false; + __rest = function (s, e) { + var t = {} + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p] + if (s != null && typeof Object.getOwnPropertySymbols === 'function') + for ( + var i = 0, p = Object.getOwnPropertySymbols(s); + i < p.length; + i++ + ) { + if ( + e.indexOf(p[i]) < 0 && + Object.prototype.propertyIsEnumerable.call(s, p[i]) + ) + t[p[i]] = s[p[i]] + } + return t + } + + __decorate = function (decorators, target, key, desc) { + var c = arguments.length, + r = + c < 3 + ? target + : desc === null + ? (desc = Object.getOwnPropertyDescriptor(target, key)) + : desc, + d + if ( + typeof Reflect === 'object' && + typeof Reflect.decorate === 'function' + ) + r = Reflect.decorate(decorators, target, key, desc) + else + for (var i = decorators.length - 1; i >= 0; i--) + if ((d = decorators[i])) + r = + (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || + r + return (c > 3 && r && Object.defineProperty(target, key, r), r) + } + + __param = function (paramIndex, decorator) { + return function (target, key) { + decorator(target, key, paramIndex) + } + } - if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey); - else return false; - } + __esDecorate = function ( + ctor, + descriptorIn, + decorators, + contextIn, + initializers, + extraInitializers + ) { + function accept(f) { + if (f !== void 0 && typeof f !== 'function') + throw new TypeError('Function expected') + return f + } + var kind = contextIn.kind, + key = + kind === 'getter' ? 'get' : kind === 'setter' ? 'set' : 'value' + var target = + !descriptorIn && ctor + ? contextIn['static'] + ? ctor + : ctor.prototype + : null + var descriptor = + descriptorIn || + (target + ? Object.getOwnPropertyDescriptor(target, contextIn.name) + : {}) + var _, + done = false + for (var i = decorators.length - 1; i >= 0; i--) { + var context = {} + for (var p in contextIn) + context[p] = p === 'access' ? {} : contextIn[p] + for (var p in contextIn.access) + context.access[p] = contextIn.access[p] + context.addInitializer = function (f) { + if (done) + throw new TypeError( + 'Cannot add initializers after decoration has completed' + ) + extraInitializers.push(accept(f || null)) + } + var result = (0, decorators[i])( + kind === 'accessor' + ? { get: descriptor.get, set: descriptor.set } + : descriptor[key], + context + ) + if (kind === 'accessor') { + if (result === void 0) continue + if (result === null || typeof result !== 'object') + throw new TypeError('Object expected') + if ((_ = accept(result.get))) descriptor.get = _ + if ((_ = accept(result.set))) descriptor.set = _ + if ((_ = accept(result.init))) initializers.unshift(_) + } else if ((_ = accept(result))) { + if (kind === 'field') initializers.unshift(_) + else descriptor[key] = _ + } + } + if (target) Object.defineProperty(target, contextIn.name, descriptor) + done = true + } - return true; -} + __runInitializers = function (thisArg, initializers, value) { + var useValue = arguments.length > 2 + for (var i = 0; i < initializers.length; i++) { + value = useValue + ? initializers[i].call(thisArg, value) + : initializers[i].call(thisArg) + } + return useValue ? value : void 0 + } -function constructYamlOmap(data) { - return data !== null ? data : []; -} + __propKey = function (x) { + return typeof x === 'symbol' ? x : ''.concat(x) + } -module.exports = new Type('tag:yaml.org,2002:omap', { - kind: 'sequence', - resolve: resolveYamlOmap, - construct: constructYamlOmap -}); + __setFunctionName = function (f, name, prefix) { + if (typeof name === 'symbol') + name = name.description ? '['.concat(name.description, ']') : '' + return Object.defineProperty(f, 'name', { + configurable: true, + value: prefix ? ''.concat(prefix, ' ', name) : name + }) + } + __metadata = function (metadataKey, metadataValue) { + if ( + typeof Reflect === 'object' && + typeof Reflect.metadata === 'function' + ) + return Reflect.metadata(metadataKey, metadataValue) + } -/***/ }), + __awaiter = function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step( + (generator = generator.apply(thisArg, _arguments || [])).next() + ) + }) + } -/***/ 96860: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + __generator = function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g = Object.create( + (typeof Iterator === 'function' ? Iterator : Object).prototype + ) + return ( + (g.next = verb(0)), + (g['throw'] = verb(1)), + (g['return'] = verb(2)), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while ((g && ((g = 0), op[0] && (_ = 0)), _)) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } -"use strict"; + __exportStar = function (m, o) { + for (var p in m) + if (p !== 'default' && !Object.prototype.hasOwnProperty.call(o, p)) + __createBinding(o, m, p) + } + + __createBinding = Object.create + ? function (o, m, k, k2) { + if (k2 === undefined) k2 = k + var desc = Object.getOwnPropertyDescriptor(m, k) + if ( + !desc || + ('get' in desc + ? !m.__esModule + : desc.writable || desc.configurable) + ) { + desc = { + enumerable: true, + get: function () { + return m[k] + } + } + } + Object.defineProperty(o, k2, desc) + } + : function (o, m, k, k2) { + if (k2 === undefined) k2 = k + o[k2] = m[k] + } + __values = function (o) { + var s = typeof Symbol === 'function' && Symbol.iterator, + m = s && o[s], + i = 0 + if (m) return m.call(o) + if (o && typeof o.length === 'number') + return { + next: function () { + if (o && i >= o.length) o = void 0 + return { value: o && o[i++], done: !o } + } + } + throw new TypeError( + s ? 'Object is not iterable.' : 'Symbol.iterator is not defined.' + ) + } -var Type = __nccwpck_require__(6073); + __read = function (o, n) { + var m = typeof Symbol === 'function' && o[Symbol.iterator] + if (!m) return o + var i = m.call(o), + r, + ar = [], + e + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) + ar.push(r.value) + } catch (error) { + e = { error: error } + } finally { + try { + if (r && !r.done && (m = i['return'])) m.call(i) + } finally { + if (e) throw e.error + } + } + return ar + } -var _toString = Object.prototype.toString; + /** @deprecated */ + __spread = function () { + for (var ar = [], i = 0; i < arguments.length; i++) + ar = ar.concat(__read(arguments[i])) + return ar + } -function resolveYamlPairs(data) { - if (data === null) return true; + /** @deprecated */ + __spreadArrays = function () { + for (var s = 0, i = 0, il = arguments.length; i < il; i++) + s += arguments[i].length + for (var r = Array(s), k = 0, i = 0; i < il; i++) + for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) + r[k] = a[j] + return r + } - var index, length, pair, keys, result, - object = data; + __spreadArray = function (to, from, pack) { + if (pack || arguments.length === 2) + for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i) + ar[i] = from[i] + } + } + return to.concat(ar || Array.prototype.slice.call(from)) + } + + __await = function (v) { + return this instanceof __await ? ((this.v = v), this) : new __await(v) + } + + __asyncGenerator = function (thisArg, _arguments, generator) { + if (!Symbol.asyncIterator) + throw new TypeError('Symbol.asyncIterator is not defined.') + var g = generator.apply(thisArg, _arguments || []), + i, + q = [] + return ( + (i = Object.create( + (typeof AsyncIterator === 'function' ? AsyncIterator : Object) + .prototype + )), + verb('next'), + verb('throw'), + verb('return', awaitReturn), + (i[Symbol.asyncIterator] = function () { + return this + }), + i + ) + function awaitReturn(f) { + return function (v) { + return Promise.resolve(v).then(f, reject) + } + } + function verb(n, f) { + if (g[n]) { + i[n] = function (v) { + return new Promise(function (a, b) { + q.push([n, v, a, b]) > 1 || resume(n, v) + }) + } + if (f) i[n] = f(i[n]) + } + } + function resume(n, v) { + try { + step(g[n](v)) + } catch (e) { + settle(q[0][3], e) + } + } + function step(r) { + r.value instanceof __await + ? Promise.resolve(r.value.v).then(fulfill, reject) + : settle(q[0][2], r) + } + function fulfill(value) { + resume('next', value) + } + function reject(value) { + resume('throw', value) + } + function settle(f, v) { + if ((f(v), q.shift(), q.length)) resume(q[0][0], q[0][1]) + } + } - result = new Array(object.length); + __asyncDelegator = function (o) { + var i, p + return ( + (i = {}), + verb('next'), + verb('throw', function (e) { + throw e + }), + verb('return'), + (i[Symbol.iterator] = function () { + return this + }), + i + ) + function verb(n, f) { + i[n] = o[n] + ? function (v) { + return (p = !p) + ? { value: __await(o[n](v)), done: false } + : f + ? f(v) + : v + } + : f + } + } - for (index = 0, length = object.length; index < length; index += 1) { - pair = object[index]; + __asyncValues = function (o) { + if (!Symbol.asyncIterator) + throw new TypeError('Symbol.asyncIterator is not defined.') + var m = o[Symbol.asyncIterator], + i + return m + ? m.call(o) + : ((o = + typeof __values === 'function' + ? __values(o) + : o[Symbol.iterator]()), + (i = {}), + verb('next'), + verb('throw'), + verb('return'), + (i[Symbol.asyncIterator] = function () { + return this + }), + i) + function verb(n) { + i[n] = + o[n] && + function (v) { + return new Promise(function (resolve, reject) { + ;((v = o[n](v)), settle(resolve, reject, v.done, v.value)) + }) + } + } + function settle(resolve, reject, d, v) { + Promise.resolve(v).then(function (v) { + resolve({ value: v, done: d }) + }, reject) + } + } - if (_toString.call(pair) !== '[object Object]') return false; + __makeTemplateObject = function (cooked, raw) { + if (Object.defineProperty) { + Object.defineProperty(cooked, 'raw', { value: raw }) + } else { + cooked.raw = raw + } + return cooked + } - keys = Object.keys(pair); + var __setModuleDefault = Object.create + ? function (o, v) { + Object.defineProperty(o, 'default', { + enumerable: true, + value: v + }) + } + : function (o, v) { + o['default'] = v + } - if (keys.length !== 1) return false; + __importStar = function (mod) { + if (mod && mod.__esModule) return mod + var result = {} + if (mod != null) + for (var k in mod) + if ( + k !== 'default' && + Object.prototype.hasOwnProperty.call(mod, k) + ) + __createBinding(result, mod, k) + __setModuleDefault(result, mod) + return result + } - result[index] = [ keys[0], pair[keys[0]] ]; - } + __importDefault = function (mod) { + return mod && mod.__esModule ? mod : { default: mod } + } - return true; -} + __classPrivateFieldGet = function (receiver, state, kind, f) { + if (kind === 'a' && !f) + throw new TypeError('Private accessor was defined without a getter') + if ( + typeof state === 'function' + ? receiver !== state || !f + : !state.has(receiver) + ) + throw new TypeError( + 'Cannot read private member from an object whose class did not declare it' + ) + return kind === 'm' + ? f + : kind === 'a' + ? f.call(receiver) + : f + ? f.value + : state.get(receiver) + } + + __classPrivateFieldSet = function (receiver, state, value, kind, f) { + if (kind === 'm') + throw new TypeError('Private method is not writable') + if (kind === 'a' && !f) + throw new TypeError('Private accessor was defined without a setter') + if ( + typeof state === 'function' + ? receiver !== state || !f + : !state.has(receiver) + ) + throw new TypeError( + 'Cannot write private member to an object whose class did not declare it' + ) + return ( + kind === 'a' + ? f.call(receiver, value) + : f + ? (f.value = value) + : state.set(receiver, value), + value + ) + } -function constructYamlPairs(data) { - if (data === null) return []; + __classPrivateFieldIn = function (state, receiver) { + if ( + receiver === null || + (typeof receiver !== 'object' && typeof receiver !== 'function') + ) + throw new TypeError("Cannot use 'in' operator on non-object") + return typeof state === 'function' + ? receiver === state + : state.has(receiver) + } + + __addDisposableResource = function (env, value, async) { + if (value !== null && value !== void 0) { + if (typeof value !== 'object' && typeof value !== 'function') + throw new TypeError('Object expected.') + var dispose, inner + if (async) { + if (!Symbol.asyncDispose) + throw new TypeError('Symbol.asyncDispose is not defined.') + dispose = value[Symbol.asyncDispose] + } + if (dispose === void 0) { + if (!Symbol.dispose) + throw new TypeError('Symbol.dispose is not defined.') + dispose = value[Symbol.dispose] + if (async) inner = dispose + } + if (typeof dispose !== 'function') + throw new TypeError('Object not disposable.') + if (inner) + dispose = function () { + try { + inner.call(this) + } catch (e) { + return Promise.reject(e) + } + } + env.stack.push({ value: value, dispose: dispose, async: async }) + } else if (async) { + env.stack.push({ async: true }) + } + return value + } + + var _SuppressedError = + typeof SuppressedError === 'function' + ? SuppressedError + : function (error, suppressed, message) { + var e = new Error(message) + return ( + (e.name = 'SuppressedError'), + (e.error = error), + (e.suppressed = suppressed), + e + ) + } - var index, length, pair, keys, result, - object = data; + __disposeResources = function (env) { + function fail(e) { + env.error = env.hasError + ? new _SuppressedError( + e, + env.error, + 'An error was suppressed during disposal.' + ) + : e + env.hasError = true + } + var r, + s = 0 + function next() { + while ((r = env.stack.pop())) { + try { + if (!r.async && s === 1) + return ( + (s = 0), + env.stack.push(r), + Promise.resolve().then(next) + ) + if (r.dispose) { + var result = r.dispose.call(r.value) + if (r.async) + return ( + (s |= 2), + Promise.resolve(result).then(next, function (e) { + fail(e) + return next() + }) + ) + } else s |= 1 + } catch (e) { + fail(e) + } + } + if (s === 1) + return env.hasError + ? Promise.reject(env.error) + : Promise.resolve() + if (env.hasError) throw env.error + } + return next() + } + + exporter('__extends', __extends) + exporter('__assign', __assign) + exporter('__rest', __rest) + exporter('__decorate', __decorate) + exporter('__param', __param) + exporter('__esDecorate', __esDecorate) + exporter('__runInitializers', __runInitializers) + exporter('__propKey', __propKey) + exporter('__setFunctionName', __setFunctionName) + exporter('__metadata', __metadata) + exporter('__awaiter', __awaiter) + exporter('__generator', __generator) + exporter('__exportStar', __exportStar) + exporter('__createBinding', __createBinding) + exporter('__values', __values) + exporter('__read', __read) + exporter('__spread', __spread) + exporter('__spreadArrays', __spreadArrays) + exporter('__spreadArray', __spreadArray) + exporter('__await', __await) + exporter('__asyncGenerator', __asyncGenerator) + exporter('__asyncDelegator', __asyncDelegator) + exporter('__asyncValues', __asyncValues) + exporter('__makeTemplateObject', __makeTemplateObject) + exporter('__importStar', __importStar) + exporter('__importDefault', __importDefault) + exporter('__classPrivateFieldGet', __classPrivateFieldGet) + exporter('__classPrivateFieldSet', __classPrivateFieldSet) + exporter('__classPrivateFieldIn', __classPrivateFieldIn) + exporter('__addDisposableResource', __addDisposableResource) + exporter('__disposeResources', __disposeResources) + }) - result = new Array(object.length); + /***/ + }, - for (index = 0, length = object.length; index < length; index += 1) { - pair = object[index]; + /***/ 74294: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + module.exports = __nccwpck_require__(54219) - keys = Object.keys(pair); + /***/ + }, - result[index] = [ keys[0], pair[keys[0]] ]; - } + /***/ 54219: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + var net = __nccwpck_require__(41808) + var tls = __nccwpck_require__(24404) + var http = __nccwpck_require__(13685) + var https = __nccwpck_require__(95687) + var events = __nccwpck_require__(82361) + var assert = __nccwpck_require__(39491) + var util = __nccwpck_require__(73837) + + exports.httpOverHttp = httpOverHttp + exports.httpsOverHttp = httpsOverHttp + exports.httpOverHttps = httpOverHttps + exports.httpsOverHttps = httpsOverHttps + + function httpOverHttp(options) { + var agent = new TunnelingAgent(options) + agent.request = http.request + return agent + } + + function httpsOverHttp(options) { + var agent = new TunnelingAgent(options) + agent.request = http.request + agent.createSocket = createSecureSocket + agent.defaultPort = 443 + return agent + } + + function httpOverHttps(options) { + var agent = new TunnelingAgent(options) + agent.request = https.request + return agent + } + + function httpsOverHttps(options) { + var agent = new TunnelingAgent(options) + agent.request = https.request + agent.createSocket = createSecureSocket + agent.defaultPort = 443 + return agent + } + + function TunnelingAgent(options) { + var self = this + self.options = options || {} + self.proxyOptions = self.options.proxy || {} + self.maxSockets = + self.options.maxSockets || http.Agent.defaultMaxSockets + self.requests = [] + self.sockets = [] + + self.on('free', function onFree(socket, host, port, localAddress) { + var options = toOptions(host, port, localAddress) + for (var i = 0, len = self.requests.length; i < len; ++i) { + var pending = self.requests[i] + if ( + pending.host === options.host && + pending.port === options.port + ) { + // Detect the request to connect same origin server, + // reuse the connection. + self.requests.splice(i, 1) + pending.request.onSocket(socket) + return + } + } + socket.destroy() + self.removeSocket(socket) + }) + } + util.inherits(TunnelingAgent, events.EventEmitter) - return result; -} + TunnelingAgent.prototype.addRequest = function addRequest( + req, + host, + port, + localAddress + ) { + var self = this + var options = mergeOptions( + { request: req }, + self.options, + toOptions(host, port, localAddress) + ) -module.exports = new Type('tag:yaml.org,2002:pairs', { - kind: 'sequence', - resolve: resolveYamlPairs, - construct: constructYamlPairs -}); + if (self.sockets.length >= this.maxSockets) { + // We are over limit so we'll add it to the queue. + self.requests.push(options) + return + } + // If we are under maxSockets create a new one. + self.createSocket(options, function (socket) { + socket.on('free', onFree) + socket.on('close', onCloseOrRemove) + socket.on('agentRemove', onCloseOrRemove) + req.onSocket(socket) -/***/ }), + function onFree() { + self.emit('free', socket, options) + } -/***/ 67283: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + function onCloseOrRemove(err) { + self.removeSocket(socket) + socket.removeListener('free', onFree) + socket.removeListener('close', onCloseOrRemove) + socket.removeListener('agentRemove', onCloseOrRemove) + } + }) + } -"use strict"; + TunnelingAgent.prototype.createSocket = function createSocket( + options, + cb + ) { + var self = this + var placeholder = {} + self.sockets.push(placeholder) + + var connectOptions = mergeOptions({}, self.proxyOptions, { + method: 'CONNECT', + path: options.host + ':' + options.port, + agent: false, + headers: { + host: options.host + ':' + options.port + } + }) + if (options.localAddress) { + connectOptions.localAddress = options.localAddress + } + if (connectOptions.proxyAuth) { + connectOptions.headers = connectOptions.headers || {} + connectOptions.headers['Proxy-Authorization'] = + 'Basic ' + new Buffer(connectOptions.proxyAuth).toString('base64') + } + debug('making CONNECT request') + var connectReq = self.request(connectOptions) + connectReq.useChunkedEncodingByDefault = false // for v0.6 + connectReq.once('response', onResponse) // for v0.6 + connectReq.once('upgrade', onUpgrade) // for v0.6 + connectReq.once('connect', onConnect) // for v0.7 or later + connectReq.once('error', onError) + connectReq.end() -var Type = __nccwpck_require__(6073); + function onResponse(res) { + // Very hacky. This is necessary to avoid http-parser leaks. + res.upgrade = true + } -module.exports = new Type('tag:yaml.org,2002:seq', { - kind: 'sequence', - construct: function (data) { return data !== null ? data : []; } -}); + function onUpgrade(res, socket, head) { + // Hacky. + process.nextTick(function () { + onConnect(res, socket, head) + }) + } + function onConnect(res, socket, head) { + connectReq.removeAllListeners() + socket.removeAllListeners() -/***/ }), + if (res.statusCode !== 200) { + debug( + 'tunneling socket could not be established, statusCode=%d', + res.statusCode + ) + socket.destroy() + var error = new Error( + 'tunneling socket could not be established, ' + + 'statusCode=' + + res.statusCode + ) + error.code = 'ECONNRESET' + options.request.emit('error', error) + self.removeSocket(placeholder) + return + } + if (head.length > 0) { + debug('got illegal response body from proxy') + socket.destroy() + var error = new Error('got illegal response body from proxy') + error.code = 'ECONNRESET' + options.request.emit('error', error) + self.removeSocket(placeholder) + return + } + debug('tunneling connection has established') + self.sockets[self.sockets.indexOf(placeholder)] = socket + return cb(socket) + } -/***/ 79548: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + function onError(cause) { + connectReq.removeAllListeners() -"use strict"; + debug( + 'tunneling socket could not be established, cause=%s\n', + cause.message, + cause.stack + ) + var error = new Error( + 'tunneling socket could not be established, ' + + 'cause=' + + cause.message + ) + error.code = 'ECONNRESET' + options.request.emit('error', error) + self.removeSocket(placeholder) + } + } + TunnelingAgent.prototype.removeSocket = function removeSocket(socket) { + var pos = this.sockets.indexOf(socket) + if (pos === -1) { + return + } + this.sockets.splice(pos, 1) -var Type = __nccwpck_require__(6073); + var pending = this.requests.shift() + if (pending) { + // If we have pending requests and a socket gets closed a new one + // needs to be created to take over in the pool for the one that closed. + this.createSocket(pending, function (socket) { + pending.request.onSocket(socket) + }) + } + } -var _hasOwnProperty = Object.prototype.hasOwnProperty; + function createSecureSocket(options, cb) { + var self = this + TunnelingAgent.prototype.createSocket.call( + self, + options, + function (socket) { + var hostHeader = options.request.getHeader('host') + var tlsOptions = mergeOptions({}, self.options, { + socket: socket, + servername: hostHeader + ? hostHeader.replace(/:.*$/, '') + : options.host + }) -function resolveYamlSet(data) { - if (data === null) return true; + // 0 is dummy port for v0.6 + var secureSocket = tls.connect(0, tlsOptions) + self.sockets[self.sockets.indexOf(socket)] = secureSocket + cb(secureSocket) + } + ) + } - var key, object = data; + function toOptions(host, port, localAddress) { + if (typeof host === 'string') { + // since v0.10 + return { + host: host, + port: port, + localAddress: localAddress + } + } + return host // for v0.11 or later + } - for (key in object) { - if (_hasOwnProperty.call(object, key)) { - if (object[key] !== null) return false; - } - } + function mergeOptions(target) { + for (var i = 1, len = arguments.length; i < len; ++i) { + var overrides = arguments[i] + if (typeof overrides === 'object') { + var keys = Object.keys(overrides) + for (var j = 0, keyLen = keys.length; j < keyLen; ++j) { + var k = keys[j] + if (overrides[k] !== undefined) { + target[k] = overrides[k] + } + } + } + } + return target + } - return true; -} + var debug + if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) { + debug = function () { + var args = Array.prototype.slice.call(arguments) + if (typeof args[0] === 'string') { + args[0] = 'TUNNEL: ' + args[0] + } else { + args.unshift('TUNNEL:') + } + console.error.apply(console, args) + } + } else { + debug = function () {} + } + exports.debug = debug // for test -function constructYamlSet(data) { - return data !== null ? data : {}; -} + /***/ + }, -module.exports = new Type('tag:yaml.org,2002:set', { - kind: 'mapping', - resolve: resolveYamlSet, - construct: constructYamlSet -}); + /***/ 41773: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + const Client = __nccwpck_require__(33598) + const Dispatcher = __nccwpck_require__(60412) + const errors = __nccwpck_require__(48045) + const Pool = __nccwpck_require__(4634) + const BalancedPool = __nccwpck_require__(37931) + const Agent = __nccwpck_require__(7890) + const util = __nccwpck_require__(83983) + const { InvalidArgumentError } = errors + const api = __nccwpck_require__(44059) + const buildConnector = __nccwpck_require__(82067) + const MockClient = __nccwpck_require__(58687) + const MockAgent = __nccwpck_require__(66771) + const MockPool = __nccwpck_require__(26193) + const mockErrors = __nccwpck_require__(50888) + const ProxyAgent = __nccwpck_require__(97858) + const RetryHandler = __nccwpck_require__(82286) + const { getGlobalDispatcher, setGlobalDispatcher } = + __nccwpck_require__(21892) + const DecoratorHandler = __nccwpck_require__(46930) + const RedirectHandler = __nccwpck_require__(72860) + const createRedirectInterceptor = __nccwpck_require__(38861) + + let hasCrypto + try { + __nccwpck_require__(6113) + hasCrypto = true + } catch { + hasCrypto = false + } + + Object.assign(Dispatcher.prototype, api) + + module.exports.Dispatcher = Dispatcher + module.exports.Client = Client + module.exports.Pool = Pool + module.exports.BalancedPool = BalancedPool + module.exports.Agent = Agent + module.exports.ProxyAgent = ProxyAgent + module.exports.RetryHandler = RetryHandler + + module.exports.DecoratorHandler = DecoratorHandler + module.exports.RedirectHandler = RedirectHandler + module.exports.createRedirectInterceptor = createRedirectInterceptor + + module.exports.buildConnector = buildConnector + module.exports.errors = errors + + function makeDispatcher(fn) { + return (url, opts, handler) => { + if (typeof opts === 'function') { + handler = opts + opts = null + } + if ( + !url || + (typeof url !== 'string' && + typeof url !== 'object' && + !(url instanceof URL)) + ) { + throw new InvalidArgumentError('invalid url') + } -/***/ }), + if (opts != null && typeof opts !== 'object') { + throw new InvalidArgumentError('invalid opts') + } -/***/ 23619: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + if (opts && opts.path != null) { + if (typeof opts.path !== 'string') { + throw new InvalidArgumentError('invalid opts.path') + } -"use strict"; + let path = opts.path + if (!opts.path.startsWith('/')) { + path = `/${path}` + } + url = new URL(util.parseOrigin(url).origin + path) + } else { + if (!opts) { + opts = typeof url === 'object' ? url : {} + } -var Type = __nccwpck_require__(6073); + url = util.parseURL(url) + } -module.exports = new Type('tag:yaml.org,2002:str', { - kind: 'scalar', - construct: function (data) { return data !== null ? data : ''; } -}); + const { agent, dispatcher = getGlobalDispatcher() } = opts + if (agent) { + throw new InvalidArgumentError( + 'unsupported opts.agent. Did you mean opts.client?' + ) + } -/***/ }), + return fn.call( + dispatcher, + { + ...opts, + origin: url.origin, + path: url.search ? `${url.pathname}${url.search}` : url.pathname, + method: opts.method || (opts.body ? 'PUT' : 'GET') + }, + handler + ) + } + } -/***/ 99212: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + module.exports.setGlobalDispatcher = setGlobalDispatcher + module.exports.getGlobalDispatcher = getGlobalDispatcher -"use strict"; + if ( + util.nodeMajor > 16 || + (util.nodeMajor === 16 && util.nodeMinor >= 8) + ) { + let fetchImpl = null + module.exports.fetch = async function fetch(resource) { + if (!fetchImpl) { + fetchImpl = __nccwpck_require__(74881).fetch + } + try { + return await fetchImpl(...arguments) + } catch (err) { + if (typeof err === 'object') { + Error.captureStackTrace(err, this) + } -var Type = __nccwpck_require__(6073); + throw err + } + } + module.exports.Headers = __nccwpck_require__(10554).Headers + module.exports.Response = __nccwpck_require__(27823).Response + module.exports.Request = __nccwpck_require__(48359).Request + module.exports.FormData = __nccwpck_require__(72015).FormData + module.exports.File = __nccwpck_require__(78511).File + module.exports.FileReader = __nccwpck_require__(1446).FileReader -var YAML_DATE_REGEXP = new RegExp( - '^([0-9][0-9][0-9][0-9])' + // [1] year - '-([0-9][0-9])' + // [2] month - '-([0-9][0-9])$'); // [3] day + const { setGlobalOrigin, getGlobalOrigin } = __nccwpck_require__(71246) -var YAML_TIMESTAMP_REGEXP = new RegExp( - '^([0-9][0-9][0-9][0-9])' + // [1] year - '-([0-9][0-9]?)' + // [2] month - '-([0-9][0-9]?)' + // [3] day - '(?:[Tt]|[ \\t]+)' + // ... - '([0-9][0-9]?)' + // [4] hour - ':([0-9][0-9])' + // [5] minute - ':([0-9][0-9])' + // [6] second - '(?:\\.([0-9]*))?' + // [7] fraction - '(?:[ \\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour - '(?::([0-9][0-9]))?))?$'); // [11] tz_minute + module.exports.setGlobalOrigin = setGlobalOrigin + module.exports.getGlobalOrigin = getGlobalOrigin -function resolveYamlTimestamp(data) { - if (data === null) return false; - if (YAML_DATE_REGEXP.exec(data) !== null) return true; - if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true; - return false; -} + const { CacheStorage } = __nccwpck_require__(37907) + const { kConstruct } = __nccwpck_require__(29174) -function constructYamlTimestamp(data) { - var match, year, month, day, hour, minute, second, fraction = 0, - delta = null, tz_hour, tz_minute, date; + // Cache & CacheStorage are tightly coupled with fetch. Even if it may run + // in an older version of Node, it doesn't have any use without fetch. + module.exports.caches = new CacheStorage(kConstruct) + } - match = YAML_DATE_REGEXP.exec(data); - if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data); + if (util.nodeMajor >= 16) { + const { deleteCookie, getCookies, getSetCookies, setCookie } = + __nccwpck_require__(41724) - if (match === null) throw new Error('Date resolve error'); + module.exports.deleteCookie = deleteCookie + module.exports.getCookies = getCookies + module.exports.getSetCookies = getSetCookies + module.exports.setCookie = setCookie - // match: [1] year [2] month [3] day + const { parseMIMEType, serializeAMimeType } = __nccwpck_require__(685) - year = +(match[1]); - month = +(match[2]) - 1; // JS month starts with 0 - day = +(match[3]); + module.exports.parseMIMEType = parseMIMEType + module.exports.serializeAMimeType = serializeAMimeType + } - if (!match[4]) { // no hour - return new Date(Date.UTC(year, month, day)); - } + if (util.nodeMajor >= 18 && hasCrypto) { + const { WebSocket } = __nccwpck_require__(54284) - // match: [4] hour [5] minute [6] second [7] fraction + module.exports.WebSocket = WebSocket + } - hour = +(match[4]); - minute = +(match[5]); - second = +(match[6]); + module.exports.request = makeDispatcher(api.request) + module.exports.stream = makeDispatcher(api.stream) + module.exports.pipeline = makeDispatcher(api.pipeline) + module.exports.connect = makeDispatcher(api.connect) + module.exports.upgrade = makeDispatcher(api.upgrade) - if (match[7]) { - fraction = match[7].slice(0, 3); - while (fraction.length < 3) { // milli-seconds - fraction += '0'; - } - fraction = +fraction; - } + module.exports.MockClient = MockClient + module.exports.MockPool = MockPool + module.exports.MockAgent = MockAgent + module.exports.mockErrors = mockErrors - // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute + /***/ + }, - if (match[9]) { - tz_hour = +(match[10]); - tz_minute = +(match[11] || 0); - delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds - if (match[9] === '-') delta = -delta; - } + /***/ 7890: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + const { InvalidArgumentError } = __nccwpck_require__(48045) + const { kClients, kRunning, kClose, kDestroy, kDispatch, kInterceptors } = + __nccwpck_require__(72785) + const DispatcherBase = __nccwpck_require__(74839) + const Pool = __nccwpck_require__(4634) + const Client = __nccwpck_require__(33598) + const util = __nccwpck_require__(83983) + const createRedirectInterceptor = __nccwpck_require__(38861) + const { WeakRef, FinalizationRegistry } = __nccwpck_require__(56436)() + + const kOnConnect = Symbol('onConnect') + const kOnDisconnect = Symbol('onDisconnect') + const kOnConnectionError = Symbol('onConnectionError') + const kMaxRedirections = Symbol('maxRedirections') + const kOnDrain = Symbol('onDrain') + const kFactory = Symbol('factory') + const kFinalizer = Symbol('finalizer') + const kOptions = Symbol('options') + + function defaultFactory(origin, opts) { + return opts && opts.connections === 1 + ? new Client(origin, opts) + : new Pool(origin, opts) + } + + class Agent extends DispatcherBase { + constructor({ + factory = defaultFactory, + maxRedirections = 0, + connect, + ...options + } = {}) { + super() + + if (typeof factory !== 'function') { + throw new InvalidArgumentError('factory must be a function.') + } - date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction)); + if ( + connect != null && + typeof connect !== 'function' && + typeof connect !== 'object' + ) { + throw new InvalidArgumentError( + 'connect must be a function or an object' + ) + } - if (delta) date.setTime(date.getTime() - delta); + if (!Number.isInteger(maxRedirections) || maxRedirections < 0) { + throw new InvalidArgumentError( + 'maxRedirections must be a positive number' + ) + } - return date; -} + if (connect && typeof connect !== 'function') { + connect = { ...connect } + } -function representYamlTimestamp(object /*, style*/) { - return object.toISOString(); -} + this[kInterceptors] = + options.interceptors && + options.interceptors.Agent && + Array.isArray(options.interceptors.Agent) + ? options.interceptors.Agent + : [createRedirectInterceptor({ maxRedirections })] + + this[kOptions] = { ...util.deepClone(options), connect } + this[kOptions].interceptors = options.interceptors + ? { ...options.interceptors } + : undefined + this[kMaxRedirections] = maxRedirections + this[kFactory] = factory + this[kClients] = new Map() + this[kFinalizer] = new FinalizationRegistry( + /* istanbul ignore next: gc is undeterministic */ key => { + const ref = this[kClients].get(key) + if (ref !== undefined && ref.deref() === undefined) { + this[kClients].delete(key) + } + } + ) -module.exports = new Type('tag:yaml.org,2002:timestamp', { - kind: 'scalar', - resolve: resolveYamlTimestamp, - construct: constructYamlTimestamp, - instanceOf: Date, - represent: representYamlTimestamp -}); + const agent = this + this[kOnDrain] = (origin, targets) => { + agent.emit('drain', origin, [agent, ...targets]) + } -/***/ }), + this[kOnConnect] = (origin, targets) => { + agent.emit('connect', origin, [agent, ...targets]) + } -/***/ 80900: -/***/ ((module) => { + this[kOnDisconnect] = (origin, targets, err) => { + agent.emit('disconnect', origin, [agent, ...targets], err) + } -/** - * Helpers. - */ + this[kOnConnectionError] = (origin, targets, err) => { + agent.emit('connectionError', origin, [agent, ...targets], err) + } + } -var s = 1000; -var m = s * 60; -var h = m * 60; -var d = h * 24; -var w = d * 7; -var y = d * 365.25; - -/** - * Parse or format the given `val`. - * - * Options: - * - * - `long` verbose formatting [false] - * - * @param {String|Number} val - * @param {Object} [options] - * @throws {Error} throw an error if val is not a non-empty string or a number - * @return {String|Number} - * @api public - */ + get [kRunning]() { + let ret = 0 + for (const ref of this[kClients].values()) { + const client = ref.deref() + /* istanbul ignore next: gc is undeterministic */ + if (client) { + ret += client[kRunning] + } + } + return ret + } -module.exports = function (val, options) { - options = options || {}; - var type = typeof val; - if (type === 'string' && val.length > 0) { - return parse(val); - } else if (type === 'number' && isFinite(val)) { - return options.long ? fmtLong(val) : fmtShort(val); - } - throw new Error( - 'val is not a non-empty string or a valid number. val=' + - JSON.stringify(val) - ); -}; - -/** - * Parse the given `str` and return milliseconds. - * - * @param {String} str - * @return {Number} - * @api private - */ + [kDispatch](opts, handler) { + let key + if ( + opts.origin && + (typeof opts.origin === 'string' || opts.origin instanceof URL) + ) { + key = String(opts.origin) + } else { + throw new InvalidArgumentError( + 'opts.origin must be a non-empty string or URL.' + ) + } -function parse(str) { - str = String(str); - if (str.length > 100) { - return; - } - var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec( - str - ); - if (!match) { - return; - } - var n = parseFloat(match[1]); - var type = (match[2] || 'ms').toLowerCase(); - switch (type) { - case 'years': - case 'year': - case 'yrs': - case 'yr': - case 'y': - return n * y; - case 'weeks': - case 'week': - case 'w': - return n * w; - case 'days': - case 'day': - case 'd': - return n * d; - case 'hours': - case 'hour': - case 'hrs': - case 'hr': - case 'h': - return n * h; - case 'minutes': - case 'minute': - case 'mins': - case 'min': - case 'm': - return n * m; - case 'seconds': - case 'second': - case 'secs': - case 'sec': - case 's': - return n * s; - case 'milliseconds': - case 'millisecond': - case 'msecs': - case 'msec': - case 'ms': - return n; - default: - return undefined; - } -} - -/** - * Short format for `ms`. - * - * @param {Number} ms - * @return {String} - * @api private - */ + const ref = this[kClients].get(key) -function fmtShort(ms) { - var msAbs = Math.abs(ms); - if (msAbs >= d) { - return Math.round(ms / d) + 'd'; - } - if (msAbs >= h) { - return Math.round(ms / h) + 'h'; - } - if (msAbs >= m) { - return Math.round(ms / m) + 'm'; - } - if (msAbs >= s) { - return Math.round(ms / s) + 's'; - } - return ms + 'ms'; -} - -/** - * Long format for `ms`. - * - * @param {Number} ms - * @return {String} - * @api private - */ + let dispatcher = ref ? ref.deref() : null + if (!dispatcher) { + dispatcher = this[kFactory](opts.origin, this[kOptions]) + .on('drain', this[kOnDrain]) + .on('connect', this[kOnConnect]) + .on('disconnect', this[kOnDisconnect]) + .on('connectionError', this[kOnConnectionError]) -function fmtLong(ms) { - var msAbs = Math.abs(ms); - if (msAbs >= d) { - return plural(ms, msAbs, d, 'day'); - } - if (msAbs >= h) { - return plural(ms, msAbs, h, 'hour'); - } - if (msAbs >= m) { - return plural(ms, msAbs, m, 'minute'); - } - if (msAbs >= s) { - return plural(ms, msAbs, s, 'second'); - } - return ms + ' ms'; -} + this[kClients].set(key, new WeakRef(dispatcher)) + this[kFinalizer].register(dispatcher, key) + } -/** - * Pluralization helper. - */ + return dispatcher.dispatch(opts, handler) + } -function plural(ms, msAbs, n, name) { - var isPlural = msAbs >= n * 1.5; - return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : ''); -} - - -/***/ }), - -/***/ 14526: -/***/ ((module) => { - -const hexRegex = /^[-+]?0x[a-fA-F0-9]+$/; -const numRegex = /^([\-\+])?(0*)(\.[0-9]+([eE]\-?[0-9]+)?|[0-9]+(\.[0-9]+([eE]\-?[0-9]+)?)?)$/; -// const octRegex = /0x[a-z0-9]+/; -// const binRegex = /0x[a-z0-9]+/; - - -//polyfill -if (!Number.parseInt && window.parseInt) { - Number.parseInt = window.parseInt; -} -if (!Number.parseFloat && window.parseFloat) { - Number.parseFloat = window.parseFloat; -} - - -const consider = { - hex : true, - leadingZeros: true, - decimalPoint: "\.", - eNotation: true - //skipLike: /regex/ -}; - -function toNumber(str, options = {}){ - // const options = Object.assign({}, consider); - // if(opt.leadingZeros === false){ - // options.leadingZeros = false; - // }else if(opt.hex === false){ - // options.hex = false; - // } - - options = Object.assign({}, consider, options ); - if(!str || typeof str !== "string" ) return str; - - let trimmedStr = str.trim(); - // if(trimmedStr === "0.0") return 0; - // else if(trimmedStr === "+0.0") return 0; - // else if(trimmedStr === "-0.0") return -0; - - if(options.skipLike !== undefined && options.skipLike.test(trimmedStr)) return str; - else if (options.hex && hexRegex.test(trimmedStr)) { - return Number.parseInt(trimmedStr, 16); - // } else if (options.parseOct && octRegex.test(str)) { - // return Number.parseInt(val, 8); - // }else if (options.parseBin && binRegex.test(str)) { - // return Number.parseInt(val, 2); - }else{ - //separate negative sign, leading zeros, and rest number - const match = numRegex.exec(trimmedStr); - if(match){ - const sign = match[1]; - const leadingZeros = match[2]; - let numTrimmedByZeros = trimZeros(match[3]); //complete num without leading zeros - //trim ending zeros for floating number - - const eNotation = match[4] || match[6]; - if(!options.leadingZeros && leadingZeros.length > 0 && sign && trimmedStr[2] !== ".") return str; //-0123 - else if(!options.leadingZeros && leadingZeros.length > 0 && !sign && trimmedStr[1] !== ".") return str; //0123 - else{//no leading zeros or leading zeros are allowed - const num = Number(trimmedStr); - const numStr = "" + num; - if(numStr.search(/[eE]/) !== -1){ //given number is long and parsed to eNotation - if(options.eNotation) return num; - else return str; - }else if(eNotation){ //given number has enotation - if(options.eNotation) return num; - else return str; - }else if(trimmedStr.indexOf(".") !== -1){ //floating number - // const decimalPart = match[5].substr(1); - // const intPart = trimmedStr.substr(0,trimmedStr.indexOf(".")); - - - // const p = numStr.indexOf("."); - // const givenIntPart = numStr.substr(0,p); - // const givenDecPart = numStr.substr(p+1); - if(numStr === "0" && (numTrimmedByZeros === "") ) return num; //0.0 - else if(numStr === numTrimmedByZeros) return num; //0.456. 0.79000 - else if( sign && numStr === "-"+numTrimmedByZeros) return num; - else return str; - } - - if(leadingZeros){ - // if(numTrimmedByZeros === numStr){ - // if(options.leadingZeros) return num; - // else return str; - // }else return str; - if(numTrimmedByZeros === numStr) return num; - else if(sign+numTrimmedByZeros === numStr) return num; - else return str; - } + async [kClose]() { + const closePromises = [] + for (const ref of this[kClients].values()) { + const client = ref.deref() + /* istanbul ignore else: gc is undeterministic */ + if (client) { + closePromises.push(client.close()) + } + } - if(trimmedStr === numStr) return num; - else if(trimmedStr === sign+numStr) return num; - // else{ - // //number with +/- sign - // trimmedStr.test(/[-+][0-9]); + await Promise.all(closePromises) + } - // } - return str; + async [kDestroy](err) { + const destroyPromises = [] + for (const ref of this[kClients].values()) { + const client = ref.deref() + /* istanbul ignore else: gc is undeterministic */ + if (client) { + destroyPromises.push(client.destroy(err)) } - // else if(!eNotation && trimmedStr && trimmedStr !== Number(trimmedStr) ) return str; - - }else{ //non-numeric string - return str; - } - } -} + } -/** - * - * @param {string} numStr without leading zeros - * @returns - */ -function trimZeros(numStr){ - if(numStr && numStr.indexOf(".") !== -1){//float - numStr = numStr.replace(/0+$/, ""); //remove ending zeros - if(numStr === ".") numStr = "0"; - else if(numStr[0] === ".") numStr = "0"+numStr; - else if(numStr[numStr.length-1] === ".") numStr = numStr.substr(0,numStr.length-1); - return numStr; - } - return numStr; -} -module.exports = toNumber - - -/***/ }), - -/***/ 59318: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -const os = __nccwpck_require__(22037); -const tty = __nccwpck_require__(76224); -const hasFlag = __nccwpck_require__(31621); - -const {env} = process; - -let forceColor; -if (hasFlag('no-color') || - hasFlag('no-colors') || - hasFlag('color=false') || - hasFlag('color=never')) { - forceColor = 0; -} else if (hasFlag('color') || - hasFlag('colors') || - hasFlag('color=true') || - hasFlag('color=always')) { - forceColor = 1; -} - -if ('FORCE_COLOR' in env) { - if (env.FORCE_COLOR === 'true') { - forceColor = 1; - } else if (env.FORCE_COLOR === 'false') { - forceColor = 0; - } else { - forceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3); - } -} - -function translateLevel(level) { - if (level === 0) { - return false; - } - - return { - level, - hasBasic: true, - has256: level >= 2, - has16m: level >= 3 - }; -} - -function supportsColor(haveStream, streamIsTTY) { - if (forceColor === 0) { - return 0; - } - - if (hasFlag('color=16m') || - hasFlag('color=full') || - hasFlag('color=truecolor')) { - return 3; - } - - if (hasFlag('color=256')) { - return 2; - } - - if (haveStream && !streamIsTTY && forceColor === undefined) { - return 0; - } - - const min = forceColor || 0; - - if (env.TERM === 'dumb') { - return min; - } - - if (process.platform === 'win32') { - // Windows 10 build 10586 is the first Windows release that supports 256 colors. - // Windows 10 build 14931 is the first release that supports 16m/TrueColor. - const osRelease = os.release().split('.'); - if ( - Number(osRelease[0]) >= 10 && - Number(osRelease[2]) >= 10586 - ) { - return Number(osRelease[2]) >= 14931 ? 3 : 2; - } - - return 1; - } - - if ('CI' in env) { - if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env) || env.CI_NAME === 'codeship') { - return 1; - } - - return min; - } - - if ('TEAMCITY_VERSION' in env) { - return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; - } - - if (env.COLORTERM === 'truecolor') { - return 3; - } - - if ('TERM_PROGRAM' in env) { - const version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10); - - switch (env.TERM_PROGRAM) { - case 'iTerm.app': - return version >= 3 ? 3 : 2; - case 'Apple_Terminal': - return 2; - // No default - } - } - - if (/-256(color)?$/i.test(env.TERM)) { - return 2; - } - - if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { - return 1; - } - - if ('COLORTERM' in env) { - return 1; - } - - return min; -} - -function getSupportLevel(stream) { - const level = supportsColor(stream, stream && stream.isTTY); - return translateLevel(level); -} - -module.exports = { - supportsColor: getSupportLevel, - stdout: translateLevel(supportsColor(true, tty.isatty(1))), - stderr: translateLevel(supportsColor(true, tty.isatty(2))) -}; - - -/***/ }), - -/***/ 4351: -/***/ ((module) => { - -/****************************************************************************** -Copyright (c) Microsoft Corporation. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */ -/* global global, define, Symbol, Reflect, Promise, SuppressedError, Iterator */ -var __extends; -var __assign; -var __rest; -var __decorate; -var __param; -var __esDecorate; -var __runInitializers; -var __propKey; -var __setFunctionName; -var __metadata; -var __awaiter; -var __generator; -var __exportStar; -var __values; -var __read; -var __spread; -var __spreadArrays; -var __spreadArray; -var __await; -var __asyncGenerator; -var __asyncDelegator; -var __asyncValues; -var __makeTemplateObject; -var __importStar; -var __importDefault; -var __classPrivateFieldGet; -var __classPrivateFieldSet; -var __classPrivateFieldIn; -var __createBinding; -var __addDisposableResource; -var __disposeResources; -(function (factory) { - var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {}; - if (typeof define === "function" && define.amd) { - define("tslib", ["exports"], function (exports) { factory(createExporter(root, createExporter(exports))); }); - } - else if ( true && typeof module.exports === "object") { - factory(createExporter(root, createExporter(module.exports))); - } - else { - factory(createExporter(root)); - } - function createExporter(exports, previous) { - if (exports !== root) { - if (typeof Object.create === "function") { - Object.defineProperty(exports, "__esModule", { value: true }); - } - else { - exports.__esModule = true; - } - } - return function (id, v) { return exports[id] = previous ? previous(id, v) : v; }; - } -}) -(function (exporter) { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - - __extends = function (d, b) { - if (typeof b !== "function" && b !== null) - throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - }; - - __rest = function (s, e) { - var t = {}; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) - t[p] = s[p]; - if (s != null && typeof Object.getOwnPropertySymbols === "function") - for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { - if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) - t[p[i]] = s[p[i]]; - } - return t; - }; - - __decorate = function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; - }; - - __param = function (paramIndex, decorator) { - return function (target, key) { decorator(target, key, paramIndex); } - }; - - __esDecorate = function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) { - function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; } - var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value"; - var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null; - var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {}); - var _, done = false; - for (var i = decorators.length - 1; i >= 0; i--) { - var context = {}; - for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p]; - for (var p in contextIn.access) context.access[p] = contextIn.access[p]; - context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); }; - var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context); - if (kind === "accessor") { - if (result === void 0) continue; - if (result === null || typeof result !== "object") throw new TypeError("Object expected"); - if (_ = accept(result.get)) descriptor.get = _; - if (_ = accept(result.set)) descriptor.set = _; - if (_ = accept(result.init)) initializers.unshift(_); - } - else if (_ = accept(result)) { - if (kind === "field") initializers.unshift(_); - else descriptor[key] = _; - } - } - if (target) Object.defineProperty(target, contextIn.name, descriptor); - done = true; - }; - - __runInitializers = function (thisArg, initializers, value) { - var useValue = arguments.length > 2; - for (var i = 0; i < initializers.length; i++) { - value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg); - } - return useValue ? value : void 0; - }; - - __propKey = function (x) { - return typeof x === "symbol" ? x : "".concat(x); - }; - - __setFunctionName = function (f, name, prefix) { - if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; - return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); - }; - - __metadata = function (metadataKey, metadataValue) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); - }; - - __awaiter = function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - - __generator = function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); - return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } - }; - - __exportStar = function(m, o) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p); - }; - - __createBinding = Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); - }) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; - }); - - __values = function (o) { - var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; - if (m) return m.call(o); - if (o && typeof o.length === "number") return { - next: function () { - if (o && i >= o.length) o = void 0; - return { value: o && o[i++], done: !o }; - } - }; - throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); - }; - - __read = function (o, n) { - var m = typeof Symbol === "function" && o[Symbol.iterator]; - if (!m) return o; - var i = m.call(o), r, ar = [], e; - try { - while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); - } - catch (error) { e = { error: error }; } - finally { - try { - if (r && !r.done && (m = i["return"])) m.call(i); - } - finally { if (e) throw e.error; } - } - return ar; - }; - - /** @deprecated */ - __spread = function () { - for (var ar = [], i = 0; i < arguments.length; i++) - ar = ar.concat(__read(arguments[i])); - return ar; - }; - - /** @deprecated */ - __spreadArrays = function () { - for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; - for (var r = Array(s), k = 0, i = 0; i < il; i++) - for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) - r[k] = a[j]; - return r; - }; - - __spreadArray = function (to, from, pack) { - if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { - if (ar || !(i in from)) { - if (!ar) ar = Array.prototype.slice.call(from, 0, i); - ar[i] = from[i]; - } - } - return to.concat(ar || Array.prototype.slice.call(from)); - }; - - __await = function (v) { - return this instanceof __await ? (this.v = v, this) : new __await(v); - }; - - __asyncGenerator = function (thisArg, _arguments, generator) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var g = generator.apply(thisArg, _arguments || []), i, q = []; - return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i; - function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; } - function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } } - function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } - function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } - function fulfill(value) { resume("next", value); } - function reject(value) { resume("throw", value); } - function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } - }; - - __asyncDelegator = function (o) { - var i, p; - return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; - function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; } - }; - - __asyncValues = function (o) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var m = o[Symbol.asyncIterator], i; - return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); - function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } - function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } - }; - - __makeTemplateObject = function (cooked, raw) { - if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } - return cooked; - }; - - var __setModuleDefault = Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); - }) : function(o, v) { - o["default"] = v; - }; - - __importStar = function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; - }; - - __importDefault = function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; - }; - - __classPrivateFieldGet = function (receiver, state, kind, f) { - if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); - if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); - return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); - }; - - __classPrivateFieldSet = function (receiver, state, value, kind, f) { - if (kind === "m") throw new TypeError("Private method is not writable"); - if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); - if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); - return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; - }; - - __classPrivateFieldIn = function (state, receiver) { - if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function")) throw new TypeError("Cannot use 'in' operator on non-object"); - return typeof state === "function" ? receiver === state : state.has(receiver); - }; - - __addDisposableResource = function (env, value, async) { - if (value !== null && value !== void 0) { - if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected."); - var dispose, inner; - if (async) { - if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined."); - dispose = value[Symbol.asyncDispose]; - } - if (dispose === void 0) { - if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined."); - dispose = value[Symbol.dispose]; - if (async) inner = dispose; - } - if (typeof dispose !== "function") throw new TypeError("Object not disposable."); - if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } }; - env.stack.push({ value: value, dispose: dispose, async: async }); - } - else if (async) { - env.stack.push({ async: true }); - } - return value; - }; - - var _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) { - var e = new Error(message); - return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e; - }; - - __disposeResources = function (env) { - function fail(e) { - env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e; - env.hasError = true; - } - var r, s = 0; - function next() { - while (r = env.stack.pop()) { - try { - if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next); - if (r.dispose) { - var result = r.dispose.call(r.value); - if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); }); - } - else s |= 1; - } - catch (e) { - fail(e); - } - } - if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve(); - if (env.hasError) throw env.error; - } - return next(); - }; - - exporter("__extends", __extends); - exporter("__assign", __assign); - exporter("__rest", __rest); - exporter("__decorate", __decorate); - exporter("__param", __param); - exporter("__esDecorate", __esDecorate); - exporter("__runInitializers", __runInitializers); - exporter("__propKey", __propKey); - exporter("__setFunctionName", __setFunctionName); - exporter("__metadata", __metadata); - exporter("__awaiter", __awaiter); - exporter("__generator", __generator); - exporter("__exportStar", __exportStar); - exporter("__createBinding", __createBinding); - exporter("__values", __values); - exporter("__read", __read); - exporter("__spread", __spread); - exporter("__spreadArrays", __spreadArrays); - exporter("__spreadArray", __spreadArray); - exporter("__await", __await); - exporter("__asyncGenerator", __asyncGenerator); - exporter("__asyncDelegator", __asyncDelegator); - exporter("__asyncValues", __asyncValues); - exporter("__makeTemplateObject", __makeTemplateObject); - exporter("__importStar", __importStar); - exporter("__importDefault", __importDefault); - exporter("__classPrivateFieldGet", __classPrivateFieldGet); - exporter("__classPrivateFieldSet", __classPrivateFieldSet); - exporter("__classPrivateFieldIn", __classPrivateFieldIn); - exporter("__addDisposableResource", __addDisposableResource); - exporter("__disposeResources", __disposeResources); -}); - - -/***/ }), - -/***/ 74294: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -module.exports = __nccwpck_require__(54219); - - -/***/ }), - -/***/ 54219: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -var net = __nccwpck_require__(41808); -var tls = __nccwpck_require__(24404); -var http = __nccwpck_require__(13685); -var https = __nccwpck_require__(95687); -var events = __nccwpck_require__(82361); -var assert = __nccwpck_require__(39491); -var util = __nccwpck_require__(73837); - - -exports.httpOverHttp = httpOverHttp; -exports.httpsOverHttp = httpsOverHttp; -exports.httpOverHttps = httpOverHttps; -exports.httpsOverHttps = httpsOverHttps; - - -function httpOverHttp(options) { - var agent = new TunnelingAgent(options); - agent.request = http.request; - return agent; -} - -function httpsOverHttp(options) { - var agent = new TunnelingAgent(options); - agent.request = http.request; - agent.createSocket = createSecureSocket; - agent.defaultPort = 443; - return agent; -} - -function httpOverHttps(options) { - var agent = new TunnelingAgent(options); - agent.request = https.request; - return agent; -} - -function httpsOverHttps(options) { - var agent = new TunnelingAgent(options); - agent.request = https.request; - agent.createSocket = createSecureSocket; - agent.defaultPort = 443; - return agent; -} - - -function TunnelingAgent(options) { - var self = this; - self.options = options || {}; - self.proxyOptions = self.options.proxy || {}; - self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets; - self.requests = []; - self.sockets = []; - - self.on('free', function onFree(socket, host, port, localAddress) { - var options = toOptions(host, port, localAddress); - for (var i = 0, len = self.requests.length; i < len; ++i) { - var pending = self.requests[i]; - if (pending.host === options.host && pending.port === options.port) { - // Detect the request to connect same origin server, - // reuse the connection. - self.requests.splice(i, 1); - pending.request.onSocket(socket); - return; + await Promise.all(destroyPromises) + } } - } - socket.destroy(); - self.removeSocket(socket); - }); -} -util.inherits(TunnelingAgent, events.EventEmitter); - -TunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) { - var self = this; - var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress)); - - if (self.sockets.length >= this.maxSockets) { - // We are over limit so we'll add it to the queue. - self.requests.push(options); - return; - } - // If we are under maxSockets create a new one. - self.createSocket(options, function(socket) { - socket.on('free', onFree); - socket.on('close', onCloseOrRemove); - socket.on('agentRemove', onCloseOrRemove); - req.onSocket(socket); - - function onFree() { - self.emit('free', socket, options); - } + module.exports = Agent - function onCloseOrRemove(err) { - self.removeSocket(socket); - socket.removeListener('free', onFree); - socket.removeListener('close', onCloseOrRemove); - socket.removeListener('agentRemove', onCloseOrRemove); - } - }); -}; - -TunnelingAgent.prototype.createSocket = function createSocket(options, cb) { - var self = this; - var placeholder = {}; - self.sockets.push(placeholder); - - var connectOptions = mergeOptions({}, self.proxyOptions, { - method: 'CONNECT', - path: options.host + ':' + options.port, - agent: false, - headers: { - host: options.host + ':' + options.port - } - }); - if (options.localAddress) { - connectOptions.localAddress = options.localAddress; - } - if (connectOptions.proxyAuth) { - connectOptions.headers = connectOptions.headers || {}; - connectOptions.headers['Proxy-Authorization'] = 'Basic ' + - new Buffer(connectOptions.proxyAuth).toString('base64'); - } + /***/ + }, - debug('making CONNECT request'); - var connectReq = self.request(connectOptions); - connectReq.useChunkedEncodingByDefault = false; // for v0.6 - connectReq.once('response', onResponse); // for v0.6 - connectReq.once('upgrade', onUpgrade); // for v0.6 - connectReq.once('connect', onConnect); // for v0.7 or later - connectReq.once('error', onError); - connectReq.end(); - - function onResponse(res) { - // Very hacky. This is necessary to avoid http-parser leaks. - res.upgrade = true; - } + /***/ 7032: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + const { addAbortListener } = __nccwpck_require__(83983) + const { RequestAbortedError } = __nccwpck_require__(48045) - function onUpgrade(res, socket, head) { - // Hacky. - process.nextTick(function() { - onConnect(res, socket, head); - }); - } + const kListener = Symbol('kListener') + const kSignal = Symbol('kSignal') - function onConnect(res, socket, head) { - connectReq.removeAllListeners(); - socket.removeAllListeners(); - - if (res.statusCode !== 200) { - debug('tunneling socket could not be established, statusCode=%d', - res.statusCode); - socket.destroy(); - var error = new Error('tunneling socket could not be established, ' + - 'statusCode=' + res.statusCode); - error.code = 'ECONNRESET'; - options.request.emit('error', error); - self.removeSocket(placeholder); - return; - } - if (head.length > 0) { - debug('got illegal response body from proxy'); - socket.destroy(); - var error = new Error('got illegal response body from proxy'); - error.code = 'ECONNRESET'; - options.request.emit('error', error); - self.removeSocket(placeholder); - return; - } - debug('tunneling connection has established'); - self.sockets[self.sockets.indexOf(placeholder)] = socket; - return cb(socket); - } + function abort(self) { + if (self.abort) { + self.abort() + } else { + self.onError(new RequestAbortedError()) + } + } - function onError(cause) { - connectReq.removeAllListeners(); + function addSignal(self, signal) { + self[kSignal] = null + self[kListener] = null - debug('tunneling socket could not be established, cause=%s\n', - cause.message, cause.stack); - var error = new Error('tunneling socket could not be established, ' + - 'cause=' + cause.message); - error.code = 'ECONNRESET'; - options.request.emit('error', error); - self.removeSocket(placeholder); - } -}; + if (!signal) { + return + } -TunnelingAgent.prototype.removeSocket = function removeSocket(socket) { - var pos = this.sockets.indexOf(socket) - if (pos === -1) { - return; - } - this.sockets.splice(pos, 1); - - var pending = this.requests.shift(); - if (pending) { - // If we have pending requests and a socket gets closed a new one - // needs to be created to take over in the pool for the one that closed. - this.createSocket(pending, function(socket) { - pending.request.onSocket(socket); - }); - } -}; - -function createSecureSocket(options, cb) { - var self = this; - TunnelingAgent.prototype.createSocket.call(self, options, function(socket) { - var hostHeader = options.request.getHeader('host'); - var tlsOptions = mergeOptions({}, self.options, { - socket: socket, - servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host - }); - - // 0 is dummy port for v0.6 - var secureSocket = tls.connect(0, tlsOptions); - self.sockets[self.sockets.indexOf(socket)] = secureSocket; - cb(secureSocket); - }); -} - - -function toOptions(host, port, localAddress) { - if (typeof host === 'string') { // since v0.10 - return { - host: host, - port: port, - localAddress: localAddress - }; - } - return host; // for v0.11 or later -} + if (signal.aborted) { + abort(self) + return + } -function mergeOptions(target) { - for (var i = 1, len = arguments.length; i < len; ++i) { - var overrides = arguments[i]; - if (typeof overrides === 'object') { - var keys = Object.keys(overrides); - for (var j = 0, keyLen = keys.length; j < keyLen; ++j) { - var k = keys[j]; - if (overrides[k] !== undefined) { - target[k] = overrides[k]; + self[kSignal] = signal + self[kListener] = () => { + abort(self) } - } - } - } - return target; -} - - -var debug; -if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) { - debug = function() { - var args = Array.prototype.slice.call(arguments); - if (typeof args[0] === 'string') { - args[0] = 'TUNNEL: ' + args[0]; - } else { - args.unshift('TUNNEL:'); - } - console.error.apply(console, args); - } -} else { - debug = function() {}; -} -exports.debug = debug; // for test - - -/***/ }), - -/***/ 41773: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - - -const Client = __nccwpck_require__(33598) -const Dispatcher = __nccwpck_require__(60412) -const errors = __nccwpck_require__(48045) -const Pool = __nccwpck_require__(4634) -const BalancedPool = __nccwpck_require__(37931) -const Agent = __nccwpck_require__(7890) -const util = __nccwpck_require__(83983) -const { InvalidArgumentError } = errors -const api = __nccwpck_require__(44059) -const buildConnector = __nccwpck_require__(82067) -const MockClient = __nccwpck_require__(58687) -const MockAgent = __nccwpck_require__(66771) -const MockPool = __nccwpck_require__(26193) -const mockErrors = __nccwpck_require__(50888) -const ProxyAgent = __nccwpck_require__(97858) -const RetryHandler = __nccwpck_require__(82286) -const { getGlobalDispatcher, setGlobalDispatcher } = __nccwpck_require__(21892) -const DecoratorHandler = __nccwpck_require__(46930) -const RedirectHandler = __nccwpck_require__(72860) -const createRedirectInterceptor = __nccwpck_require__(38861) - -let hasCrypto -try { - __nccwpck_require__(6113) - hasCrypto = true -} catch { - hasCrypto = false -} - -Object.assign(Dispatcher.prototype, api) - -module.exports.Dispatcher = Dispatcher -module.exports.Client = Client -module.exports.Pool = Pool -module.exports.BalancedPool = BalancedPool -module.exports.Agent = Agent -module.exports.ProxyAgent = ProxyAgent -module.exports.RetryHandler = RetryHandler - -module.exports.DecoratorHandler = DecoratorHandler -module.exports.RedirectHandler = RedirectHandler -module.exports.createRedirectInterceptor = createRedirectInterceptor - -module.exports.buildConnector = buildConnector -module.exports.errors = errors - -function makeDispatcher (fn) { - return (url, opts, handler) => { - if (typeof opts === 'function') { - handler = opts - opts = null - } - if (!url || (typeof url !== 'string' && typeof url !== 'object' && !(url instanceof URL))) { - throw new InvalidArgumentError('invalid url') - } + addAbortListener(self[kSignal], self[kListener]) + } - if (opts != null && typeof opts !== 'object') { - throw new InvalidArgumentError('invalid opts') - } + function removeSignal(self) { + if (!self[kSignal]) { + return + } - if (opts && opts.path != null) { - if (typeof opts.path !== 'string') { - throw new InvalidArgumentError('invalid opts.path') - } + if ('removeEventListener' in self[kSignal]) { + self[kSignal].removeEventListener('abort', self[kListener]) + } else { + self[kSignal].removeListener('abort', self[kListener]) + } - let path = opts.path - if (!opts.path.startsWith('/')) { - path = `/${path}` + self[kSignal] = null + self[kListener] = null } - url = new URL(util.parseOrigin(url).origin + path) - } else { - if (!opts) { - opts = typeof url === 'object' ? url : {} + module.exports = { + addSignal, + removeSignal } - url = util.parseURL(url) - } - - const { agent, dispatcher = getGlobalDispatcher() } = opts - - if (agent) { - throw new InvalidArgumentError('unsupported opts.agent. Did you mean opts.client?') - } + /***/ + }, - return fn.call(dispatcher, { - ...opts, - origin: url.origin, - path: url.search ? `${url.pathname}${url.search}` : url.pathname, - method: opts.method || (opts.body ? 'PUT' : 'GET') - }, handler) - } -} + /***/ 29744: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + const { AsyncResource } = __nccwpck_require__(50852) + const { InvalidArgumentError, RequestAbortedError, SocketError } = + __nccwpck_require__(48045) + const util = __nccwpck_require__(83983) + const { addSignal, removeSignal } = __nccwpck_require__(7032) + + class ConnectHandler extends AsyncResource { + constructor(opts, callback) { + if (!opts || typeof opts !== 'object') { + throw new InvalidArgumentError('invalid opts') + } -module.exports.setGlobalDispatcher = setGlobalDispatcher -module.exports.getGlobalDispatcher = getGlobalDispatcher + if (typeof callback !== 'function') { + throw new InvalidArgumentError('invalid callback') + } -if (util.nodeMajor > 16 || (util.nodeMajor === 16 && util.nodeMinor >= 8)) { - let fetchImpl = null - module.exports.fetch = async function fetch (resource) { - if (!fetchImpl) { - fetchImpl = (__nccwpck_require__(74881).fetch) - } + const { signal, opaque, responseHeaders } = opts - try { - return await fetchImpl(...arguments) - } catch (err) { - if (typeof err === 'object') { - Error.captureStackTrace(err, this) - } + if ( + signal && + typeof signal.on !== 'function' && + typeof signal.addEventListener !== 'function' + ) { + throw new InvalidArgumentError( + 'signal must be an EventEmitter or EventTarget' + ) + } - throw err - } - } - module.exports.Headers = __nccwpck_require__(10554).Headers - module.exports.Response = __nccwpck_require__(27823).Response - module.exports.Request = __nccwpck_require__(48359).Request - module.exports.FormData = __nccwpck_require__(72015).FormData - module.exports.File = __nccwpck_require__(78511).File - module.exports.FileReader = __nccwpck_require__(1446).FileReader + super('UNDICI_CONNECT') - const { setGlobalOrigin, getGlobalOrigin } = __nccwpck_require__(71246) + this.opaque = opaque || null + this.responseHeaders = responseHeaders || null + this.callback = callback + this.abort = null - module.exports.setGlobalOrigin = setGlobalOrigin - module.exports.getGlobalOrigin = getGlobalOrigin + addSignal(this, signal) + } - const { CacheStorage } = __nccwpck_require__(37907) - const { kConstruct } = __nccwpck_require__(29174) + onConnect(abort, context) { + if (!this.callback) { + throw new RequestAbortedError() + } - // Cache & CacheStorage are tightly coupled with fetch. Even if it may run - // in an older version of Node, it doesn't have any use without fetch. - module.exports.caches = new CacheStorage(kConstruct) -} + this.abort = abort + this.context = context + } -if (util.nodeMajor >= 16) { - const { deleteCookie, getCookies, getSetCookies, setCookie } = __nccwpck_require__(41724) + onHeaders() { + throw new SocketError('bad connect', null) + } - module.exports.deleteCookie = deleteCookie - module.exports.getCookies = getCookies - module.exports.getSetCookies = getSetCookies - module.exports.setCookie = setCookie + onUpgrade(statusCode, rawHeaders, socket) { + const { callback, opaque, context } = this - const { parseMIMEType, serializeAMimeType } = __nccwpck_require__(685) + removeSignal(this) - module.exports.parseMIMEType = parseMIMEType - module.exports.serializeAMimeType = serializeAMimeType -} + this.callback = null -if (util.nodeMajor >= 18 && hasCrypto) { - const { WebSocket } = __nccwpck_require__(54284) + let headers = rawHeaders + // Indicates is an HTTP2Session + if (headers != null) { + headers = + this.responseHeaders === 'raw' + ? util.parseRawHeaders(rawHeaders) + : util.parseHeaders(rawHeaders) + } - module.exports.WebSocket = WebSocket -} + this.runInAsyncScope(callback, null, null, { + statusCode, + headers, + socket, + opaque, + context + }) + } -module.exports.request = makeDispatcher(api.request) -module.exports.stream = makeDispatcher(api.stream) -module.exports.pipeline = makeDispatcher(api.pipeline) -module.exports.connect = makeDispatcher(api.connect) -module.exports.upgrade = makeDispatcher(api.upgrade) + onError(err) { + const { callback, opaque } = this -module.exports.MockClient = MockClient -module.exports.MockPool = MockPool -module.exports.MockAgent = MockAgent -module.exports.mockErrors = mockErrors + removeSignal(this) + if (callback) { + this.callback = null + queueMicrotask(() => { + this.runInAsyncScope(callback, null, err, { opaque }) + }) + } + } + } -/***/ }), + function connect(opts, callback) { + if (callback === undefined) { + return new Promise((resolve, reject) => { + connect.call(this, opts, (err, data) => { + return err ? reject(err) : resolve(data) + }) + }) + } -/***/ 7890: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + try { + const connectHandler = new ConnectHandler(opts, callback) + this.dispatch({ ...opts, method: 'CONNECT' }, connectHandler) + } catch (err) { + if (typeof callback !== 'function') { + throw err + } + const opaque = opts && opts.opaque + queueMicrotask(() => callback(err, { opaque })) + } + } -"use strict"; + module.exports = connect + /***/ + }, -const { InvalidArgumentError } = __nccwpck_require__(48045) -const { kClients, kRunning, kClose, kDestroy, kDispatch, kInterceptors } = __nccwpck_require__(72785) -const DispatcherBase = __nccwpck_require__(74839) -const Pool = __nccwpck_require__(4634) -const Client = __nccwpck_require__(33598) -const util = __nccwpck_require__(83983) -const createRedirectInterceptor = __nccwpck_require__(38861) -const { WeakRef, FinalizationRegistry } = __nccwpck_require__(56436)() + /***/ 28752: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' -const kOnConnect = Symbol('onConnect') -const kOnDisconnect = Symbol('onDisconnect') -const kOnConnectionError = Symbol('onConnectionError') -const kMaxRedirections = Symbol('maxRedirections') -const kOnDrain = Symbol('onDrain') -const kFactory = Symbol('factory') -const kFinalizer = Symbol('finalizer') -const kOptions = Symbol('options') + const { Readable, Duplex, PassThrough } = __nccwpck_require__(12781) + const { + InvalidArgumentError, + InvalidReturnValueError, + RequestAbortedError + } = __nccwpck_require__(48045) + const util = __nccwpck_require__(83983) + const { AsyncResource } = __nccwpck_require__(50852) + const { addSignal, removeSignal } = __nccwpck_require__(7032) + const assert = __nccwpck_require__(39491) -function defaultFactory (origin, opts) { - return opts && opts.connections === 1 - ? new Client(origin, opts) - : new Pool(origin, opts) -} + const kResume = Symbol('resume') -class Agent extends DispatcherBase { - constructor ({ factory = defaultFactory, maxRedirections = 0, connect, ...options } = {}) { - super() + class PipelineRequest extends Readable { + constructor() { + super({ autoDestroy: true }) - if (typeof factory !== 'function') { - throw new InvalidArgumentError('factory must be a function.') - } + this[kResume] = null + } - if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') { - throw new InvalidArgumentError('connect must be a function or an object') - } + _read() { + const { [kResume]: resume } = this - if (!Number.isInteger(maxRedirections) || maxRedirections < 0) { - throw new InvalidArgumentError('maxRedirections must be a positive number') - } + if (resume) { + this[kResume] = null + resume() + } + } - if (connect && typeof connect !== 'function') { - connect = { ...connect } - } + _destroy(err, callback) { + this._read() - this[kInterceptors] = options.interceptors && options.interceptors.Agent && Array.isArray(options.interceptors.Agent) - ? options.interceptors.Agent - : [createRedirectInterceptor({ maxRedirections })] - - this[kOptions] = { ...util.deepClone(options), connect } - this[kOptions].interceptors = options.interceptors - ? { ...options.interceptors } - : undefined - this[kMaxRedirections] = maxRedirections - this[kFactory] = factory - this[kClients] = new Map() - this[kFinalizer] = new FinalizationRegistry(/* istanbul ignore next: gc is undeterministic */ key => { - const ref = this[kClients].get(key) - if (ref !== undefined && ref.deref() === undefined) { - this[kClients].delete(key) + callback(err) + } } - }) - - const agent = this - - this[kOnDrain] = (origin, targets) => { - agent.emit('drain', origin, [agent, ...targets]) - } - this[kOnConnect] = (origin, targets) => { - agent.emit('connect', origin, [agent, ...targets]) - } + class PipelineResponse extends Readable { + constructor(resume) { + super({ autoDestroy: true }) + this[kResume] = resume + } - this[kOnDisconnect] = (origin, targets, err) => { - agent.emit('disconnect', origin, [agent, ...targets], err) - } + _read() { + this[kResume]() + } - this[kOnConnectionError] = (origin, targets, err) => { - agent.emit('connectionError', origin, [agent, ...targets], err) - } - } + _destroy(err, callback) { + if (!err && !this._readableState.endEmitted) { + err = new RequestAbortedError() + } - get [kRunning] () { - let ret = 0 - for (const ref of this[kClients].values()) { - const client = ref.deref() - /* istanbul ignore next: gc is undeterministic */ - if (client) { - ret += client[kRunning] + callback(err) + } } - } - return ret - } - [kDispatch] (opts, handler) { - let key - if (opts.origin && (typeof opts.origin === 'string' || opts.origin instanceof URL)) { - key = String(opts.origin) - } else { - throw new InvalidArgumentError('opts.origin must be a non-empty string or URL.') - } + class PipelineHandler extends AsyncResource { + constructor(opts, handler) { + if (!opts || typeof opts !== 'object') { + throw new InvalidArgumentError('invalid opts') + } - const ref = this[kClients].get(key) + if (typeof handler !== 'function') { + throw new InvalidArgumentError('invalid handler') + } - let dispatcher = ref ? ref.deref() : null - if (!dispatcher) { - dispatcher = this[kFactory](opts.origin, this[kOptions]) - .on('drain', this[kOnDrain]) - .on('connect', this[kOnConnect]) - .on('disconnect', this[kOnDisconnect]) - .on('connectionError', this[kOnConnectionError]) + const { signal, method, opaque, onInfo, responseHeaders } = opts - this[kClients].set(key, new WeakRef(dispatcher)) - this[kFinalizer].register(dispatcher, key) - } + if ( + signal && + typeof signal.on !== 'function' && + typeof signal.addEventListener !== 'function' + ) { + throw new InvalidArgumentError( + 'signal must be an EventEmitter or EventTarget' + ) + } - return dispatcher.dispatch(opts, handler) - } + if (method === 'CONNECT') { + throw new InvalidArgumentError('invalid method') + } - async [kClose] () { - const closePromises = [] - for (const ref of this[kClients].values()) { - const client = ref.deref() - /* istanbul ignore else: gc is undeterministic */ - if (client) { - closePromises.push(client.close()) - } - } + if (onInfo && typeof onInfo !== 'function') { + throw new InvalidArgumentError('invalid onInfo callback') + } - await Promise.all(closePromises) - } + super('UNDICI_PIPELINE') - async [kDestroy] (err) { - const destroyPromises = [] - for (const ref of this[kClients].values()) { - const client = ref.deref() - /* istanbul ignore else: gc is undeterministic */ - if (client) { - destroyPromises.push(client.destroy(err)) - } - } + this.opaque = opaque || null + this.responseHeaders = responseHeaders || null + this.handler = handler + this.abort = null + this.context = null + this.onInfo = onInfo || null - await Promise.all(destroyPromises) - } -} + this.req = new PipelineRequest().on('error', util.nop) -module.exports = Agent + this.ret = new Duplex({ + readableObjectMode: opts.objectMode, + autoDestroy: true, + read: () => { + const { body } = this + if (body && body.resume) { + body.resume() + } + }, + write: (chunk, encoding, callback) => { + const { req } = this -/***/ }), + if (req.push(chunk, encoding) || req._readableState.destroyed) { + callback() + } else { + req[kResume] = callback + } + }, + destroy: (err, callback) => { + const { body, req, res, ret, abort } = this -/***/ 7032: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + if (!err && !ret._readableState.endEmitted) { + err = new RequestAbortedError() + } -const { addAbortListener } = __nccwpck_require__(83983) -const { RequestAbortedError } = __nccwpck_require__(48045) + if (abort && err) { + abort() + } -const kListener = Symbol('kListener') -const kSignal = Symbol('kSignal') + util.destroy(body, err) + util.destroy(req, err) + util.destroy(res, err) -function abort (self) { - if (self.abort) { - self.abort() - } else { - self.onError(new RequestAbortedError()) - } -} + removeSignal(this) -function addSignal (self, signal) { - self[kSignal] = null - self[kListener] = null + callback(err) + } + }).on('prefinish', () => { + const { req } = this - if (!signal) { - return - } + // Node < 15 does not call _final in same tick. + req.push(null) + }) - if (signal.aborted) { - abort(self) - return - } + this.res = null - self[kSignal] = signal - self[kListener] = () => { - abort(self) - } + addSignal(this, signal) + } - addAbortListener(self[kSignal], self[kListener]) -} + onConnect(abort, context) { + const { ret, res } = this -function removeSignal (self) { - if (!self[kSignal]) { - return - } + assert(!res, 'pipeline cannot be retried') - if ('removeEventListener' in self[kSignal]) { - self[kSignal].removeEventListener('abort', self[kListener]) - } else { - self[kSignal].removeListener('abort', self[kListener]) - } + if (ret.destroyed) { + throw new RequestAbortedError() + } - self[kSignal] = null - self[kListener] = null -} + this.abort = abort + this.context = context + } -module.exports = { - addSignal, - removeSignal -} + onHeaders(statusCode, rawHeaders, resume) { + const { opaque, handler, context } = this + if (statusCode < 200) { + if (this.onInfo) { + const headers = + this.responseHeaders === 'raw' + ? util.parseRawHeaders(rawHeaders) + : util.parseHeaders(rawHeaders) + this.onInfo({ statusCode, headers }) + } + return + } -/***/ }), + this.res = new PipelineResponse(resume) + + let body + try { + this.handler = null + const headers = + this.responseHeaders === 'raw' + ? util.parseRawHeaders(rawHeaders) + : util.parseHeaders(rawHeaders) + body = this.runInAsyncScope(handler, null, { + statusCode, + headers, + opaque, + body: this.res, + context + }) + } catch (err) { + this.res.on('error', util.nop) + throw err + } -/***/ 29744: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + if (!body || typeof body.on !== 'function') { + throw new InvalidReturnValueError('expected Readable') + } -"use strict"; + body + .on('data', chunk => { + const { ret, body } = this + if (!ret.push(chunk) && body.pause) { + body.pause() + } + }) + .on('error', err => { + const { ret } = this -const { AsyncResource } = __nccwpck_require__(50852) -const { InvalidArgumentError, RequestAbortedError, SocketError } = __nccwpck_require__(48045) -const util = __nccwpck_require__(83983) -const { addSignal, removeSignal } = __nccwpck_require__(7032) + util.destroy(ret, err) + }) + .on('end', () => { + const { ret } = this -class ConnectHandler extends AsyncResource { - constructor (opts, callback) { - if (!opts || typeof opts !== 'object') { - throw new InvalidArgumentError('invalid opts') - } + ret.push(null) + }) + .on('close', () => { + const { ret } = this - if (typeof callback !== 'function') { - throw new InvalidArgumentError('invalid callback') - } + if (!ret._readableState.ended) { + util.destroy(ret, new RequestAbortedError()) + } + }) - const { signal, opaque, responseHeaders } = opts + this.body = body + } - if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') { - throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget') - } + onData(chunk) { + const { res } = this + return res.push(chunk) + } - super('UNDICI_CONNECT') + onComplete(trailers) { + const { res } = this + res.push(null) + } - this.opaque = opaque || null - this.responseHeaders = responseHeaders || null - this.callback = callback - this.abort = null + onError(err) { + const { ret } = this + this.handler = null + util.destroy(ret, err) + } + } - addSignal(this, signal) - } + function pipeline(opts, handler) { + try { + const pipelineHandler = new PipelineHandler(opts, handler) + this.dispatch({ ...opts, body: pipelineHandler.req }, pipelineHandler) + return pipelineHandler.ret + } catch (err) { + return new PassThrough().destroy(err) + } + } - onConnect (abort, context) { - if (!this.callback) { - throw new RequestAbortedError() - } + module.exports = pipeline - this.abort = abort - this.context = context - } + /***/ + }, - onHeaders () { - throw new SocketError('bad connect', null) - } + /***/ 55448: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + const Readable = __nccwpck_require__(73858) + const { InvalidArgumentError, RequestAbortedError } = + __nccwpck_require__(48045) + const util = __nccwpck_require__(83983) + const { getResolveErrorBodyCallback } = __nccwpck_require__(77474) + const { AsyncResource } = __nccwpck_require__(50852) + const { addSignal, removeSignal } = __nccwpck_require__(7032) + + class RequestHandler extends AsyncResource { + constructor(opts, callback) { + if (!opts || typeof opts !== 'object') { + throw new InvalidArgumentError('invalid opts') + } - onUpgrade (statusCode, rawHeaders, socket) { - const { callback, opaque, context } = this + const { + signal, + method, + opaque, + body, + onInfo, + responseHeaders, + throwOnError, + highWaterMark + } = opts + + try { + if (typeof callback !== 'function') { + throw new InvalidArgumentError('invalid callback') + } - removeSignal(this) + if ( + highWaterMark && + (typeof highWaterMark !== 'number' || highWaterMark < 0) + ) { + throw new InvalidArgumentError('invalid highWaterMark') + } - this.callback = null + if ( + signal && + typeof signal.on !== 'function' && + typeof signal.addEventListener !== 'function' + ) { + throw new InvalidArgumentError( + 'signal must be an EventEmitter or EventTarget' + ) + } - let headers = rawHeaders - // Indicates is an HTTP2Session - if (headers != null) { - headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders) - } + if (method === 'CONNECT') { + throw new InvalidArgumentError('invalid method') + } - this.runInAsyncScope(callback, null, null, { - statusCode, - headers, - socket, - opaque, - context - }) - } + if (onInfo && typeof onInfo !== 'function') { + throw new InvalidArgumentError('invalid onInfo callback') + } - onError (err) { - const { callback, opaque } = this + super('UNDICI_REQUEST') + } catch (err) { + if (util.isStream(body)) { + util.destroy(body.on('error', util.nop), err) + } + throw err + } - removeSignal(this) + this.responseHeaders = responseHeaders || null + this.opaque = opaque || null + this.callback = callback + this.res = null + this.abort = null + this.body = body + this.trailers = {} + this.context = null + this.onInfo = onInfo || null + this.throwOnError = throwOnError + this.highWaterMark = highWaterMark + + if (util.isStream(body)) { + body.on('error', err => { + this.onError(err) + }) + } - if (callback) { - this.callback = null - queueMicrotask(() => { - this.runInAsyncScope(callback, null, err, { opaque }) - }) - } - } -} + addSignal(this, signal) + } -function connect (opts, callback) { - if (callback === undefined) { - return new Promise((resolve, reject) => { - connect.call(this, opts, (err, data) => { - return err ? reject(err) : resolve(data) - }) - }) - } + onConnect(abort, context) { + if (!this.callback) { + throw new RequestAbortedError() + } - try { - const connectHandler = new ConnectHandler(opts, callback) - this.dispatch({ ...opts, method: 'CONNECT' }, connectHandler) - } catch (err) { - if (typeof callback !== 'function') { - throw err - } - const opaque = opts && opts.opaque - queueMicrotask(() => callback(err, { opaque })) - } -} + this.abort = abort + this.context = context + } -module.exports = connect + onHeaders(statusCode, rawHeaders, resume, statusMessage) { + const { + callback, + opaque, + abort, + context, + responseHeaders, + highWaterMark + } = this + const headers = + responseHeaders === 'raw' + ? util.parseRawHeaders(rawHeaders) + : util.parseHeaders(rawHeaders) -/***/ }), + if (statusCode < 200) { + if (this.onInfo) { + this.onInfo({ statusCode, headers }) + } + return + } -/***/ 28752: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + const parsedHeaders = + responseHeaders === 'raw' ? util.parseHeaders(rawHeaders) : headers + const contentType = parsedHeaders['content-type'] + const body = new Readable({ + resume, + abort, + contentType, + highWaterMark + }) -"use strict"; + this.callback = null + this.res = body + if (callback !== null) { + if (this.throwOnError && statusCode >= 400) { + this.runInAsyncScope(getResolveErrorBodyCallback, null, { + callback, + body, + contentType, + statusCode, + statusMessage, + headers + }) + } else { + this.runInAsyncScope(callback, null, null, { + statusCode, + headers, + trailers: this.trailers, + opaque, + body, + context + }) + } + } + } + onData(chunk) { + const { res } = this + return res.push(chunk) + } -const { - Readable, - Duplex, - PassThrough -} = __nccwpck_require__(12781) -const { - InvalidArgumentError, - InvalidReturnValueError, - RequestAbortedError -} = __nccwpck_require__(48045) -const util = __nccwpck_require__(83983) -const { AsyncResource } = __nccwpck_require__(50852) -const { addSignal, removeSignal } = __nccwpck_require__(7032) -const assert = __nccwpck_require__(39491) + onComplete(trailers) { + const { res } = this -const kResume = Symbol('resume') + removeSignal(this) -class PipelineRequest extends Readable { - constructor () { - super({ autoDestroy: true }) + util.parseHeaders(trailers, this.trailers) - this[kResume] = null - } + res.push(null) + } - _read () { - const { [kResume]: resume } = this + onError(err) { + const { res, callback, body, opaque } = this - if (resume) { - this[kResume] = null - resume() - } - } + removeSignal(this) - _destroy (err, callback) { - this._read() + if (callback) { + // TODO: Does this need queueMicrotask? + this.callback = null + queueMicrotask(() => { + this.runInAsyncScope(callback, null, err, { opaque }) + }) + } - callback(err) - } -} + if (res) { + this.res = null + // Ensure all queued handlers are invoked before destroying res. + queueMicrotask(() => { + util.destroy(res, err) + }) + } -class PipelineResponse extends Readable { - constructor (resume) { - super({ autoDestroy: true }) - this[kResume] = resume - } + if (body) { + this.body = null + util.destroy(body, err) + } + } + } - _read () { - this[kResume]() - } + function request(opts, callback) { + if (callback === undefined) { + return new Promise((resolve, reject) => { + request.call(this, opts, (err, data) => { + return err ? reject(err) : resolve(data) + }) + }) + } - _destroy (err, callback) { - if (!err && !this._readableState.endEmitted) { - err = new RequestAbortedError() - } + try { + this.dispatch(opts, new RequestHandler(opts, callback)) + } catch (err) { + if (typeof callback !== 'function') { + throw err + } + const opaque = opts && opts.opaque + queueMicrotask(() => callback(err, { opaque })) + } + } - callback(err) - } -} + module.exports = request + module.exports.RequestHandler = RequestHandler -class PipelineHandler extends AsyncResource { - constructor (opts, handler) { - if (!opts || typeof opts !== 'object') { - throw new InvalidArgumentError('invalid opts') - } + /***/ + }, - if (typeof handler !== 'function') { - throw new InvalidArgumentError('invalid handler') - } + /***/ 75395: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' - const { signal, method, opaque, onInfo, responseHeaders } = opts + const { finished, PassThrough } = __nccwpck_require__(12781) + const { + InvalidArgumentError, + InvalidReturnValueError, + RequestAbortedError + } = __nccwpck_require__(48045) + const util = __nccwpck_require__(83983) + const { getResolveErrorBodyCallback } = __nccwpck_require__(77474) + const { AsyncResource } = __nccwpck_require__(50852) + const { addSignal, removeSignal } = __nccwpck_require__(7032) + + class StreamHandler extends AsyncResource { + constructor(opts, factory, callback) { + if (!opts || typeof opts !== 'object') { + throw new InvalidArgumentError('invalid opts') + } - if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') { - throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget') - } + const { + signal, + method, + opaque, + body, + onInfo, + responseHeaders, + throwOnError + } = opts + + try { + if (typeof callback !== 'function') { + throw new InvalidArgumentError('invalid callback') + } - if (method === 'CONNECT') { - throw new InvalidArgumentError('invalid method') - } + if (typeof factory !== 'function') { + throw new InvalidArgumentError('invalid factory') + } - if (onInfo && typeof onInfo !== 'function') { - throw new InvalidArgumentError('invalid onInfo callback') - } + if ( + signal && + typeof signal.on !== 'function' && + typeof signal.addEventListener !== 'function' + ) { + throw new InvalidArgumentError( + 'signal must be an EventEmitter or EventTarget' + ) + } - super('UNDICI_PIPELINE') + if (method === 'CONNECT') { + throw new InvalidArgumentError('invalid method') + } - this.opaque = opaque || null - this.responseHeaders = responseHeaders || null - this.handler = handler - this.abort = null - this.context = null - this.onInfo = onInfo || null + if (onInfo && typeof onInfo !== 'function') { + throw new InvalidArgumentError('invalid onInfo callback') + } - this.req = new PipelineRequest().on('error', util.nop) + super('UNDICI_STREAM') + } catch (err) { + if (util.isStream(body)) { + util.destroy(body.on('error', util.nop), err) + } + throw err + } - this.ret = new Duplex({ - readableObjectMode: opts.objectMode, - autoDestroy: true, - read: () => { - const { body } = this + this.responseHeaders = responseHeaders || null + this.opaque = opaque || null + this.factory = factory + this.callback = callback + this.res = null + this.abort = null + this.context = null + this.trailers = null + this.body = body + this.onInfo = onInfo || null + this.throwOnError = throwOnError || false + + if (util.isStream(body)) { + body.on('error', err => { + this.onError(err) + }) + } - if (body && body.resume) { - body.resume() + addSignal(this, signal) } - }, - write: (chunk, encoding, callback) => { - const { req } = this - if (req.push(chunk, encoding) || req._readableState.destroyed) { - callback() - } else { - req[kResume] = callback - } - }, - destroy: (err, callback) => { - const { body, req, res, ret, abort } = this + onConnect(abort, context) { + if (!this.callback) { + throw new RequestAbortedError() + } - if (!err && !ret._readableState.endEmitted) { - err = new RequestAbortedError() + this.abort = abort + this.context = context } - if (abort && err) { - abort() - } + onHeaders(statusCode, rawHeaders, resume, statusMessage) { + const { factory, opaque, context, callback, responseHeaders } = this - util.destroy(body, err) - util.destroy(req, err) - util.destroy(res, err) + const headers = + responseHeaders === 'raw' + ? util.parseRawHeaders(rawHeaders) + : util.parseHeaders(rawHeaders) - removeSignal(this) + if (statusCode < 200) { + if (this.onInfo) { + this.onInfo({ statusCode, headers }) + } + return + } - callback(err) - } - }).on('prefinish', () => { - const { req } = this + this.factory = null + + let res + + if (this.throwOnError && statusCode >= 400) { + const parsedHeaders = + responseHeaders === 'raw' + ? util.parseHeaders(rawHeaders) + : headers + const contentType = parsedHeaders['content-type'] + res = new PassThrough() + + this.callback = null + this.runInAsyncScope(getResolveErrorBodyCallback, null, { + callback, + body: res, + contentType, + statusCode, + statusMessage, + headers + }) + } else { + if (factory === null) { + return + } - // Node < 15 does not call _final in same tick. - req.push(null) - }) + res = this.runInAsyncScope(factory, null, { + statusCode, + headers, + opaque, + context + }) - this.res = null + if ( + !res || + typeof res.write !== 'function' || + typeof res.end !== 'function' || + typeof res.on !== 'function' + ) { + throw new InvalidReturnValueError('expected Writable') + } - addSignal(this, signal) - } + // TODO: Avoid finished. It registers an unnecessary amount of listeners. + finished(res, { readable: false }, err => { + const { callback, res, opaque, trailers, abort } = this - onConnect (abort, context) { - const { ret, res } = this + this.res = null + if (err || !res.readable) { + util.destroy(res, err) + } - assert(!res, 'pipeline cannot be retried') + this.callback = null + this.runInAsyncScope(callback, null, err || null, { + opaque, + trailers + }) - if (ret.destroyed) { - throw new RequestAbortedError() - } + if (err) { + abort() + } + }) + } - this.abort = abort - this.context = context - } + res.on('drain', resume) - onHeaders (statusCode, rawHeaders, resume) { - const { opaque, handler, context } = this + this.res = res - if (statusCode < 200) { - if (this.onInfo) { - const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders) - this.onInfo({ statusCode, headers }) - } - return - } + const needDrain = + res.writableNeedDrain !== undefined + ? res.writableNeedDrain + : res._writableState && res._writableState.needDrain - this.res = new PipelineResponse(resume) + return needDrain !== true + } - let body - try { - this.handler = null - const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders) - body = this.runInAsyncScope(handler, null, { - statusCode, - headers, - opaque, - body: this.res, - context - }) - } catch (err) { - this.res.on('error', util.nop) - throw err - } + onData(chunk) { + const { res } = this - if (!body || typeof body.on !== 'function') { - throw new InvalidReturnValueError('expected Readable') - } + return res ? res.write(chunk) : true + } - body - .on('data', (chunk) => { - const { ret, body } = this + onComplete(trailers) { + const { res } = this - if (!ret.push(chunk) && body.pause) { - body.pause() - } - }) - .on('error', (err) => { - const { ret } = this + removeSignal(this) - util.destroy(ret, err) - }) - .on('end', () => { - const { ret } = this + if (!res) { + return + } - ret.push(null) - }) - .on('close', () => { - const { ret } = this + this.trailers = util.parseHeaders(trailers) - if (!ret._readableState.ended) { - util.destroy(ret, new RequestAbortedError()) + res.end() } - }) - this.body = body - } + onError(err) { + const { res, callback, opaque, body } = this - onData (chunk) { - const { res } = this - return res.push(chunk) - } + removeSignal(this) - onComplete (trailers) { - const { res } = this - res.push(null) - } + this.factory = null - onError (err) { - const { ret } = this - this.handler = null - util.destroy(ret, err) - } -} - -function pipeline (opts, handler) { - try { - const pipelineHandler = new PipelineHandler(opts, handler) - this.dispatch({ ...opts, body: pipelineHandler.req }, pipelineHandler) - return pipelineHandler.ret - } catch (err) { - return new PassThrough().destroy(err) - } -} + if (res) { + this.res = null + util.destroy(res, err) + } else if (callback) { + this.callback = null + queueMicrotask(() => { + this.runInAsyncScope(callback, null, err, { opaque }) + }) + } -module.exports = pipeline + if (body) { + this.body = null + util.destroy(body, err) + } + } + } + function stream(opts, factory, callback) { + if (callback === undefined) { + return new Promise((resolve, reject) => { + stream.call(this, opts, factory, (err, data) => { + return err ? reject(err) : resolve(data) + }) + }) + } -/***/ }), + try { + this.dispatch(opts, new StreamHandler(opts, factory, callback)) + } catch (err) { + if (typeof callback !== 'function') { + throw err + } + const opaque = opts && opts.opaque + queueMicrotask(() => callback(err, { opaque })) + } + } -/***/ 55448: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + module.exports = stream -"use strict"; + /***/ + }, + /***/ 36923: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + const { InvalidArgumentError, RequestAbortedError, SocketError } = + __nccwpck_require__(48045) + const { AsyncResource } = __nccwpck_require__(50852) + const util = __nccwpck_require__(83983) + const { addSignal, removeSignal } = __nccwpck_require__(7032) + const assert = __nccwpck_require__(39491) + + class UpgradeHandler extends AsyncResource { + constructor(opts, callback) { + if (!opts || typeof opts !== 'object') { + throw new InvalidArgumentError('invalid opts') + } -const Readable = __nccwpck_require__(73858) -const { - InvalidArgumentError, - RequestAbortedError -} = __nccwpck_require__(48045) -const util = __nccwpck_require__(83983) -const { getResolveErrorBodyCallback } = __nccwpck_require__(77474) -const { AsyncResource } = __nccwpck_require__(50852) -const { addSignal, removeSignal } = __nccwpck_require__(7032) + if (typeof callback !== 'function') { + throw new InvalidArgumentError('invalid callback') + } -class RequestHandler extends AsyncResource { - constructor (opts, callback) { - if (!opts || typeof opts !== 'object') { - throw new InvalidArgumentError('invalid opts') - } + const { signal, opaque, responseHeaders } = opts - const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError, highWaterMark } = opts + if ( + signal && + typeof signal.on !== 'function' && + typeof signal.addEventListener !== 'function' + ) { + throw new InvalidArgumentError( + 'signal must be an EventEmitter or EventTarget' + ) + } - try { - if (typeof callback !== 'function') { - throw new InvalidArgumentError('invalid callback') - } + super('UNDICI_UPGRADE') - if (highWaterMark && (typeof highWaterMark !== 'number' || highWaterMark < 0)) { - throw new InvalidArgumentError('invalid highWaterMark') - } + this.responseHeaders = responseHeaders || null + this.opaque = opaque || null + this.callback = callback + this.abort = null + this.context = null - if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') { - throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget') - } + addSignal(this, signal) + } - if (method === 'CONNECT') { - throw new InvalidArgumentError('invalid method') - } + onConnect(abort, context) { + if (!this.callback) { + throw new RequestAbortedError() + } - if (onInfo && typeof onInfo !== 'function') { - throw new InvalidArgumentError('invalid onInfo callback') - } + this.abort = abort + this.context = null + } - super('UNDICI_REQUEST') - } catch (err) { - if (util.isStream(body)) { - util.destroy(body.on('error', util.nop), err) - } - throw err - } + onHeaders() { + throw new SocketError('bad upgrade', null) + } - this.responseHeaders = responseHeaders || null - this.opaque = opaque || null - this.callback = callback - this.res = null - this.abort = null - this.body = body - this.trailers = {} - this.context = null - this.onInfo = onInfo || null - this.throwOnError = throwOnError - this.highWaterMark = highWaterMark - - if (util.isStream(body)) { - body.on('error', (err) => { - this.onError(err) - }) - } + onUpgrade(statusCode, rawHeaders, socket) { + const { callback, opaque, context } = this - addSignal(this, signal) - } + assert.strictEqual(statusCode, 101) - onConnect (abort, context) { - if (!this.callback) { - throw new RequestAbortedError() - } + removeSignal(this) - this.abort = abort - this.context = context - } + this.callback = null + const headers = + this.responseHeaders === 'raw' + ? util.parseRawHeaders(rawHeaders) + : util.parseHeaders(rawHeaders) + this.runInAsyncScope(callback, null, null, { + headers, + socket, + opaque, + context + }) + } - onHeaders (statusCode, rawHeaders, resume, statusMessage) { - const { callback, opaque, abort, context, responseHeaders, highWaterMark } = this + onError(err) { + const { callback, opaque } = this - const headers = responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders) + removeSignal(this) - if (statusCode < 200) { - if (this.onInfo) { - this.onInfo({ statusCode, headers }) + if (callback) { + this.callback = null + queueMicrotask(() => { + this.runInAsyncScope(callback, null, err, { opaque }) + }) + } + } } - return - } - const parsedHeaders = responseHeaders === 'raw' ? util.parseHeaders(rawHeaders) : headers - const contentType = parsedHeaders['content-type'] - const body = new Readable({ resume, abort, contentType, highWaterMark }) + function upgrade(opts, callback) { + if (callback === undefined) { + return new Promise((resolve, reject) => { + upgrade.call(this, opts, (err, data) => { + return err ? reject(err) : resolve(data) + }) + }) + } - this.callback = null - this.res = body - if (callback !== null) { - if (this.throwOnError && statusCode >= 400) { - this.runInAsyncScope(getResolveErrorBodyCallback, null, - { callback, body, contentType, statusCode, statusMessage, headers } - ) - } else { - this.runInAsyncScope(callback, null, null, { - statusCode, - headers, - trailers: this.trailers, - opaque, - body, - context - }) + try { + const upgradeHandler = new UpgradeHandler(opts, callback) + this.dispatch( + { + ...opts, + method: opts.method || 'GET', + upgrade: opts.protocol || 'Websocket' + }, + upgradeHandler + ) + } catch (err) { + if (typeof callback !== 'function') { + throw err + } + const opaque = opts && opts.opaque + queueMicrotask(() => callback(err, { opaque })) + } } - } - } - - onData (chunk) { - const { res } = this - return res.push(chunk) - } - - onComplete (trailers) { - const { res } = this - removeSignal(this) + module.exports = upgrade - util.parseHeaders(trailers, this.trailers) - - res.push(null) - } + /***/ + }, - onError (err) { - const { res, callback, body, opaque } = this + /***/ 44059: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' - removeSignal(this) + module.exports.request = __nccwpck_require__(55448) + module.exports.stream = __nccwpck_require__(75395) + module.exports.pipeline = __nccwpck_require__(28752) + module.exports.upgrade = __nccwpck_require__(36923) + module.exports.connect = __nccwpck_require__(29744) - if (callback) { - // TODO: Does this need queueMicrotask? - this.callback = null - queueMicrotask(() => { - this.runInAsyncScope(callback, null, err, { opaque }) - }) - } + /***/ + }, - if (res) { - this.res = null - // Ensure all queued handlers are invoked before destroying res. - queueMicrotask(() => { - util.destroy(res, err) - }) - } + /***/ 73858: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + // Ported from https://github.com/nodejs/undici/pull/907 + + const assert = __nccwpck_require__(39491) + const { Readable } = __nccwpck_require__(12781) + const { RequestAbortedError, NotSupportedError, InvalidArgumentError } = + __nccwpck_require__(48045) + const util = __nccwpck_require__(83983) + const { ReadableStreamFrom, toUSVString } = __nccwpck_require__(83983) + + let Blob + + const kConsume = Symbol('kConsume') + const kReading = Symbol('kReading') + const kBody = Symbol('kBody') + const kAbort = Symbol('abort') + const kContentType = Symbol('kContentType') + + const noop = () => {} + + module.exports = class BodyReadable extends Readable { + constructor({ + resume, + abort, + contentType = '', + highWaterMark = 64 * 1024 // Same as nodejs fs streams. + }) { + super({ + autoDestroy: true, + read: resume, + highWaterMark + }) - if (body) { - this.body = null - util.destroy(body, err) - } - } -} + this._readableState.dataEmitted = false -function request (opts, callback) { - if (callback === undefined) { - return new Promise((resolve, reject) => { - request.call(this, opts, (err, data) => { - return err ? reject(err) : resolve(data) - }) - }) - } + this[kAbort] = abort + this[kConsume] = null + this[kBody] = null + this[kContentType] = contentType - try { - this.dispatch(opts, new RequestHandler(opts, callback)) - } catch (err) { - if (typeof callback !== 'function') { - throw err - } - const opaque = opts && opts.opaque - queueMicrotask(() => callback(err, { opaque })) - } -} + // Is stream being consumed through Readable API? + // This is an optimization so that we avoid checking + // for 'data' and 'readable' listeners in the hot path + // inside push(). + this[kReading] = false + } -module.exports = request -module.exports.RequestHandler = RequestHandler + destroy(err) { + if (this.destroyed) { + // Node < 16 + return this + } + if (!err && !this._readableState.endEmitted) { + err = new RequestAbortedError() + } -/***/ }), + if (err) { + this[kAbort]() + } -/***/ 75395: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + return super.destroy(err) + } -"use strict"; + emit(ev, ...args) { + if (ev === 'data') { + // Node < 16.7 + this._readableState.dataEmitted = true + } else if (ev === 'error') { + // Node < 16 + this._readableState.errorEmitted = true + } + return super.emit(ev, ...args) + } + on(ev, ...args) { + if (ev === 'data' || ev === 'readable') { + this[kReading] = true + } + return super.on(ev, ...args) + } -const { finished, PassThrough } = __nccwpck_require__(12781) -const { - InvalidArgumentError, - InvalidReturnValueError, - RequestAbortedError -} = __nccwpck_require__(48045) -const util = __nccwpck_require__(83983) -const { getResolveErrorBodyCallback } = __nccwpck_require__(77474) -const { AsyncResource } = __nccwpck_require__(50852) -const { addSignal, removeSignal } = __nccwpck_require__(7032) + addListener(ev, ...args) { + return this.on(ev, ...args) + } -class StreamHandler extends AsyncResource { - constructor (opts, factory, callback) { - if (!opts || typeof opts !== 'object') { - throw new InvalidArgumentError('invalid opts') - } + off(ev, ...args) { + const ret = super.off(ev, ...args) + if (ev === 'data' || ev === 'readable') { + this[kReading] = + this.listenerCount('data') > 0 || + this.listenerCount('readable') > 0 + } + return ret + } - const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError } = opts + removeListener(ev, ...args) { + return this.off(ev, ...args) + } - try { - if (typeof callback !== 'function') { - throw new InvalidArgumentError('invalid callback') - } + push(chunk) { + if (this[kConsume] && chunk !== null && this.readableLength === 0) { + consumePush(this[kConsume], chunk) + return this[kReading] ? super.push(chunk) : true + } + return super.push(chunk) + } - if (typeof factory !== 'function') { - throw new InvalidArgumentError('invalid factory') - } + // https://fetch.spec.whatwg.org/#dom-body-text + async text() { + return consume(this, 'text') + } - if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') { - throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget') - } + // https://fetch.spec.whatwg.org/#dom-body-json + async json() { + return consume(this, 'json') + } - if (method === 'CONNECT') { - throw new InvalidArgumentError('invalid method') - } + // https://fetch.spec.whatwg.org/#dom-body-blob + async blob() { + return consume(this, 'blob') + } - if (onInfo && typeof onInfo !== 'function') { - throw new InvalidArgumentError('invalid onInfo callback') - } + // https://fetch.spec.whatwg.org/#dom-body-arraybuffer + async arrayBuffer() { + return consume(this, 'arrayBuffer') + } - super('UNDICI_STREAM') - } catch (err) { - if (util.isStream(body)) { - util.destroy(body.on('error', util.nop), err) - } - throw err - } + // https://fetch.spec.whatwg.org/#dom-body-formdata + async formData() { + // TODO: Implement. + throw new NotSupportedError() + } - this.responseHeaders = responseHeaders || null - this.opaque = opaque || null - this.factory = factory - this.callback = callback - this.res = null - this.abort = null - this.context = null - this.trailers = null - this.body = body - this.onInfo = onInfo || null - this.throwOnError = throwOnError || false - - if (util.isStream(body)) { - body.on('error', (err) => { - this.onError(err) - }) - } + // https://fetch.spec.whatwg.org/#dom-body-bodyused + get bodyUsed() { + return util.isDisturbed(this) + } - addSignal(this, signal) - } + // https://fetch.spec.whatwg.org/#dom-body-body + get body() { + if (!this[kBody]) { + this[kBody] = ReadableStreamFrom(this) + if (this[kConsume]) { + // TODO: Is this the best way to force a lock? + this[kBody].getReader() // Ensure stream is locked. + assert(this[kBody].locked) + } + } + return this[kBody] + } - onConnect (abort, context) { - if (!this.callback) { - throw new RequestAbortedError() - } + dump(opts) { + let limit = opts && Number.isFinite(opts.limit) ? opts.limit : 262144 + const signal = opts && opts.signal - this.abort = abort - this.context = context - } + if (signal) { + try { + if (typeof signal !== 'object' || !('aborted' in signal)) { + throw new InvalidArgumentError('signal must be an AbortSignal') + } + util.throwIfAborted(signal) + } catch (err) { + return Promise.reject(err) + } + } - onHeaders (statusCode, rawHeaders, resume, statusMessage) { - const { factory, opaque, context, callback, responseHeaders } = this + if (this.closed) { + return Promise.resolve(null) + } - const headers = responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders) + return new Promise((resolve, reject) => { + const signalListenerCleanup = signal + ? util.addAbortListener(signal, () => { + this.destroy() + }) + : noop + + this.on('close', function () { + signalListenerCleanup() + if (signal && signal.aborted) { + reject( + signal.reason || + Object.assign(new Error('The operation was aborted'), { + name: 'AbortError' + }) + ) + } else { + resolve(null) + } + }) + .on('error', noop) + .on('data', function (chunk) { + limit -= chunk.length + if (limit <= 0) { + this.destroy() + } + }) + .resume() + }) + } + } - if (statusCode < 200) { - if (this.onInfo) { - this.onInfo({ statusCode, headers }) + // https://streams.spec.whatwg.org/#readablestream-locked + function isLocked(self) { + // Consume is an implicit lock. + return (self[kBody] && self[kBody].locked === true) || self[kConsume] } - return - } - this.factory = null + // https://fetch.spec.whatwg.org/#body-unusable + function isUnusable(self) { + return util.isDisturbed(self) || isLocked(self) + } - let res + async function consume(stream, type) { + if (isUnusable(stream)) { + throw new TypeError('unusable') + } - if (this.throwOnError && statusCode >= 400) { - const parsedHeaders = responseHeaders === 'raw' ? util.parseHeaders(rawHeaders) : headers - const contentType = parsedHeaders['content-type'] - res = new PassThrough() + assert(!stream[kConsume]) - this.callback = null - this.runInAsyncScope(getResolveErrorBodyCallback, null, - { callback, body: res, contentType, statusCode, statusMessage, headers } - ) - } else { - if (factory === null) { - return - } + return new Promise((resolve, reject) => { + stream[kConsume] = { + type, + stream, + resolve, + reject, + length: 0, + body: [] + } - res = this.runInAsyncScope(factory, null, { - statusCode, - headers, - opaque, - context - }) + stream + .on('error', function (err) { + consumeFinish(this[kConsume], err) + }) + .on('close', function () { + if (this[kConsume].body !== null) { + consumeFinish(this[kConsume], new RequestAbortedError()) + } + }) - if ( - !res || - typeof res.write !== 'function' || - typeof res.end !== 'function' || - typeof res.on !== 'function' - ) { - throw new InvalidReturnValueError('expected Writable') + process.nextTick(consumeStart, stream[kConsume]) + }) } - // TODO: Avoid finished. It registers an unnecessary amount of listeners. - finished(res, { readable: false }, (err) => { - const { callback, res, opaque, trailers, abort } = this - - this.res = null - if (err || !res.readable) { - util.destroy(res, err) + function consumeStart(consume) { + if (consume.body === null) { + return } - this.callback = null - this.runInAsyncScope(callback, null, err || null, { opaque, trailers }) + const { _readableState: state } = consume.stream - if (err) { - abort() + for (const chunk of state.buffer) { + consumePush(consume, chunk) } - }) - } - - res.on('drain', resume) - this.res = res + if (state.endEmitted) { + consumeEnd(this[kConsume]) + } else { + consume.stream.on('end', function () { + consumeEnd(this[kConsume]) + }) + } - const needDrain = res.writableNeedDrain !== undefined - ? res.writableNeedDrain - : res._writableState && res._writableState.needDrain + consume.stream.resume() - return needDrain !== true - } + while (consume.stream.read() != null) { + // Loop + } + } - onData (chunk) { - const { res } = this + function consumeEnd(consume) { + const { type, body, resolve, stream, length } = consume - return res ? res.write(chunk) : true - } + try { + if (type === 'text') { + resolve(toUSVString(Buffer.concat(body))) + } else if (type === 'json') { + resolve(JSON.parse(Buffer.concat(body))) + } else if (type === 'arrayBuffer') { + const dst = new Uint8Array(length) + + let pos = 0 + for (const buf of body) { + dst.set(buf, pos) + pos += buf.byteLength + } - onComplete (trailers) { - const { res } = this + resolve(dst.buffer) + } else if (type === 'blob') { + if (!Blob) { + Blob = __nccwpck_require__(14300).Blob + } + resolve(new Blob(body, { type: stream[kContentType] })) + } - removeSignal(this) + consumeFinish(consume) + } catch (err) { + stream.destroy(err) + } + } - if (!res) { - return - } + function consumePush(consume, chunk) { + consume.length += chunk.length + consume.body.push(chunk) + } - this.trailers = util.parseHeaders(trailers) + function consumeFinish(consume, err) { + if (consume.body === null) { + return + } - res.end() - } + if (err) { + consume.reject(err) + } else { + consume.resolve() + } - onError (err) { - const { res, callback, opaque, body } = this + consume.type = null + consume.stream = null + consume.resolve = null + consume.reject = null + consume.length = 0 + consume.body = null + } - removeSignal(this) + /***/ + }, - this.factory = null + /***/ 77474: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + const assert = __nccwpck_require__(39491) + const { ResponseStatusCodeError } = __nccwpck_require__(48045) + const { toUSVString } = __nccwpck_require__(83983) + + async function getResolveErrorBodyCallback({ + callback, + body, + contentType, + statusCode, + statusMessage, + headers + }) { + assert(body) + + let chunks = [] + let limit = 0 + + for await (const chunk of body) { + chunks.push(chunk) + limit += chunk.length + if (limit > 128 * 1024) { + chunks = null + break + } + } - if (res) { - this.res = null - util.destroy(res, err) - } else if (callback) { - this.callback = null - queueMicrotask(() => { - this.runInAsyncScope(callback, null, err, { opaque }) - }) - } + if (statusCode === 204 || !contentType || !chunks) { + process.nextTick( + callback, + new ResponseStatusCodeError( + `Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, + statusCode, + headers + ) + ) + return + } - if (body) { - this.body = null - util.destroy(body, err) - } - } -} + try { + if (contentType.startsWith('application/json')) { + const payload = JSON.parse(toUSVString(Buffer.concat(chunks))) + process.nextTick( + callback, + new ResponseStatusCodeError( + `Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, + statusCode, + headers, + payload + ) + ) + return + } -function stream (opts, factory, callback) { - if (callback === undefined) { - return new Promise((resolve, reject) => { - stream.call(this, opts, factory, (err, data) => { - return err ? reject(err) : resolve(data) - }) - }) - } + if (contentType.startsWith('text/')) { + const payload = toUSVString(Buffer.concat(chunks)) + process.nextTick( + callback, + new ResponseStatusCodeError( + `Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, + statusCode, + headers, + payload + ) + ) + return + } + } catch (err) { + // Process in a fallback if error + } - try { - this.dispatch(opts, new StreamHandler(opts, factory, callback)) - } catch (err) { - if (typeof callback !== 'function') { - throw err - } - const opaque = opts && opts.opaque - queueMicrotask(() => callback(err, { opaque })) - } -} + process.nextTick( + callback, + new ResponseStatusCodeError( + `Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, + statusCode, + headers + ) + ) + } -module.exports = stream + module.exports = { getResolveErrorBodyCallback } + /***/ + }, -/***/ }), + /***/ 37931: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' -/***/ 36923: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + const { BalancedPoolMissingUpstreamError, InvalidArgumentError } = + __nccwpck_require__(48045) + const { + PoolBase, + kClients, + kNeedDrain, + kAddClient, + kRemoveClient, + kGetDispatcher + } = __nccwpck_require__(73198) + const Pool = __nccwpck_require__(4634) + const { kUrl, kInterceptors } = __nccwpck_require__(72785) + const { parseOrigin } = __nccwpck_require__(83983) + const kFactory = Symbol('factory') + + const kOptions = Symbol('options') + const kGreatestCommonDivisor = Symbol('kGreatestCommonDivisor') + const kCurrentWeight = Symbol('kCurrentWeight') + const kIndex = Symbol('kIndex') + const kWeight = Symbol('kWeight') + const kMaxWeightPerServer = Symbol('kMaxWeightPerServer') + const kErrorPenalty = Symbol('kErrorPenalty') + + function getGreatestCommonDivisor(a, b) { + if (b === 0) return a + return getGreatestCommonDivisor(b, a % b) + } + + function defaultFactory(origin, opts) { + return new Pool(origin, opts) + } + + class BalancedPool extends PoolBase { + constructor( + upstreams = [], + { factory = defaultFactory, ...opts } = {} + ) { + super() -"use strict"; + this[kOptions] = opts + this[kIndex] = -1 + this[kCurrentWeight] = 0 + this[kMaxWeightPerServer] = this[kOptions].maxWeightPerServer || 100 + this[kErrorPenalty] = this[kOptions].errorPenalty || 15 -const { InvalidArgumentError, RequestAbortedError, SocketError } = __nccwpck_require__(48045) -const { AsyncResource } = __nccwpck_require__(50852) -const util = __nccwpck_require__(83983) -const { addSignal, removeSignal } = __nccwpck_require__(7032) -const assert = __nccwpck_require__(39491) + if (!Array.isArray(upstreams)) { + upstreams = [upstreams] + } -class UpgradeHandler extends AsyncResource { - constructor (opts, callback) { - if (!opts || typeof opts !== 'object') { - throw new InvalidArgumentError('invalid opts') - } + if (typeof factory !== 'function') { + throw new InvalidArgumentError('factory must be a function.') + } - if (typeof callback !== 'function') { - throw new InvalidArgumentError('invalid callback') - } + this[kInterceptors] = + opts.interceptors && + opts.interceptors.BalancedPool && + Array.isArray(opts.interceptors.BalancedPool) + ? opts.interceptors.BalancedPool + : [] + this[kFactory] = factory - const { signal, opaque, responseHeaders } = opts + for (const upstream of upstreams) { + this.addUpstream(upstream) + } + this._updateBalancedPoolStats() + } - if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') { - throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget') - } + addUpstream(upstream) { + const upstreamOrigin = parseOrigin(upstream).origin - super('UNDICI_UPGRADE') + if ( + this[kClients].find( + pool => + pool[kUrl].origin === upstreamOrigin && + pool.closed !== true && + pool.destroyed !== true + ) + ) { + return this + } + const pool = this[kFactory]( + upstreamOrigin, + Object.assign({}, this[kOptions]) + ) - this.responseHeaders = responseHeaders || null - this.opaque = opaque || null - this.callback = callback - this.abort = null - this.context = null + this[kAddClient](pool) + pool.on('connect', () => { + pool[kWeight] = Math.min( + this[kMaxWeightPerServer], + pool[kWeight] + this[kErrorPenalty] + ) + }) - addSignal(this, signal) - } + pool.on('connectionError', () => { + pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty]) + this._updateBalancedPoolStats() + }) - onConnect (abort, context) { - if (!this.callback) { - throw new RequestAbortedError() - } + pool.on('disconnect', (...args) => { + const err = args[2] + if (err && err.code === 'UND_ERR_SOCKET') { + // decrease the weight of the pool. + pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty]) + this._updateBalancedPoolStats() + } + }) - this.abort = abort - this.context = null - } + for (const client of this[kClients]) { + client[kWeight] = this[kMaxWeightPerServer] + } - onHeaders () { - throw new SocketError('bad upgrade', null) - } + this._updateBalancedPoolStats() - onUpgrade (statusCode, rawHeaders, socket) { - const { callback, opaque, context } = this + return this + } - assert.strictEqual(statusCode, 101) + _updateBalancedPoolStats() { + this[kGreatestCommonDivisor] = this[kClients] + .map(p => p[kWeight]) + .reduce(getGreatestCommonDivisor, 0) + } - removeSignal(this) + removeUpstream(upstream) { + const upstreamOrigin = parseOrigin(upstream).origin - this.callback = null - const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders) - this.runInAsyncScope(callback, null, null, { - headers, - socket, - opaque, - context - }) - } + const pool = this[kClients].find( + pool => + pool[kUrl].origin === upstreamOrigin && + pool.closed !== true && + pool.destroyed !== true + ) - onError (err) { - const { callback, opaque } = this + if (pool) { + this[kRemoveClient](pool) + } - removeSignal(this) + return this + } - if (callback) { - this.callback = null - queueMicrotask(() => { - this.runInAsyncScope(callback, null, err, { opaque }) - }) - } - } -} + get upstreams() { + return this[kClients] + .filter( + dispatcher => + dispatcher.closed !== true && dispatcher.destroyed !== true + ) + .map(p => p[kUrl].origin) + } -function upgrade (opts, callback) { - if (callback === undefined) { - return new Promise((resolve, reject) => { - upgrade.call(this, opts, (err, data) => { - return err ? reject(err) : resolve(data) - }) - }) - } + [kGetDispatcher]() { + // We validate that pools is greater than 0, + // otherwise we would have to wait until an upstream + // is added, which might never happen. + if (this[kClients].length === 0) { + throw new BalancedPoolMissingUpstreamError() + } - try { - const upgradeHandler = new UpgradeHandler(opts, callback) - this.dispatch({ - ...opts, - method: opts.method || 'GET', - upgrade: opts.protocol || 'Websocket' - }, upgradeHandler) - } catch (err) { - if (typeof callback !== 'function') { - throw err - } - const opaque = opts && opts.opaque - queueMicrotask(() => callback(err, { opaque })) - } -} + const dispatcher = this[kClients].find( + dispatcher => + !dispatcher[kNeedDrain] && + dispatcher.closed !== true && + dispatcher.destroyed !== true + ) -module.exports = upgrade + if (!dispatcher) { + return + } + const allClientsBusy = this[kClients] + .map(pool => pool[kNeedDrain]) + .reduce((a, b) => a && b, true) -/***/ }), + if (allClientsBusy) { + return + } -/***/ 44059: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + let counter = 0 -"use strict"; + let maxWeightIndex = this[kClients].findIndex( + pool => !pool[kNeedDrain] + ) + while (counter++ < this[kClients].length) { + this[kIndex] = (this[kIndex] + 1) % this[kClients].length + const pool = this[kClients][this[kIndex]] -module.exports.request = __nccwpck_require__(55448) -module.exports.stream = __nccwpck_require__(75395) -module.exports.pipeline = __nccwpck_require__(28752) -module.exports.upgrade = __nccwpck_require__(36923) -module.exports.connect = __nccwpck_require__(29744) + // find pool index with the largest weight + if ( + pool[kWeight] > this[kClients][maxWeightIndex][kWeight] && + !pool[kNeedDrain] + ) { + maxWeightIndex = this[kIndex] + } + // decrease the current weight every `this[kClients].length`. + if (this[kIndex] === 0) { + // Set the current weight to the next lower weight. + this[kCurrentWeight] = + this[kCurrentWeight] - this[kGreatestCommonDivisor] -/***/ }), + if (this[kCurrentWeight] <= 0) { + this[kCurrentWeight] = this[kMaxWeightPerServer] + } + } + if (pool[kWeight] >= this[kCurrentWeight] && !pool[kNeedDrain]) { + return pool + } + } -/***/ 73858: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + this[kCurrentWeight] = this[kClients][maxWeightIndex][kWeight] + this[kIndex] = maxWeightIndex + return this[kClients][maxWeightIndex] + } + } -"use strict"; -// Ported from https://github.com/nodejs/undici/pull/907 + module.exports = BalancedPool + /***/ + }, + /***/ 66101: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + const { kConstruct } = __nccwpck_require__(29174) + const { urlEquals, fieldValues: getFieldValues } = + __nccwpck_require__(82396) + const { kEnumerableProperty, isDisturbed } = __nccwpck_require__(83983) + const { kHeadersList } = __nccwpck_require__(72785) + const { webidl } = __nccwpck_require__(21744) + const { Response, cloneResponse } = __nccwpck_require__(27823) + const { Request } = __nccwpck_require__(48359) + const { kState, kHeaders, kGuard, kRealm } = __nccwpck_require__(15861) + const { fetching } = __nccwpck_require__(74881) + const { urlIsHttpHttpsScheme, createDeferredPromise, readAllBytes } = + __nccwpck_require__(52538) + const assert = __nccwpck_require__(39491) + const { getGlobalDispatcher } = __nccwpck_require__(21892) -const assert = __nccwpck_require__(39491) -const { Readable } = __nccwpck_require__(12781) -const { RequestAbortedError, NotSupportedError, InvalidArgumentError } = __nccwpck_require__(48045) -const util = __nccwpck_require__(83983) -const { ReadableStreamFrom, toUSVString } = __nccwpck_require__(83983) + /** + * @see https://w3c.github.io/ServiceWorker/#dfn-cache-batch-operation + * @typedef {Object} CacheBatchOperation + * @property {'delete' | 'put'} type + * @property {any} request + * @property {any} response + * @property {import('../../types/cache').CacheQueryOptions} options + */ -let Blob + /** + * @see https://w3c.github.io/ServiceWorker/#dfn-request-response-list + * @typedef {[any, any][]} requestResponseList + */ -const kConsume = Symbol('kConsume') -const kReading = Symbol('kReading') -const kBody = Symbol('kBody') -const kAbort = Symbol('abort') -const kContentType = Symbol('kContentType') + class Cache { + /** + * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-request-response-list + * @type {requestResponseList} + */ + #relevantRequestResponseList -const noop = () => {} + constructor() { + if (arguments[0] !== kConstruct) { + webidl.illegalConstructor() + } -module.exports = class BodyReadable extends Readable { - constructor ({ - resume, - abort, - contentType = '', - highWaterMark = 64 * 1024 // Same as nodejs fs streams. - }) { - super({ - autoDestroy: true, - read: resume, - highWaterMark - }) + this.#relevantRequestResponseList = arguments[1] + } - this._readableState.dataEmitted = false + async match(request, options = {}) { + webidl.brandCheck(this, Cache) + webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.match' }) - this[kAbort] = abort - this[kConsume] = null - this[kBody] = null - this[kContentType] = contentType + request = webidl.converters.RequestInfo(request) + options = webidl.converters.CacheQueryOptions(options) - // Is stream being consumed through Readable API? - // This is an optimization so that we avoid checking - // for 'data' and 'readable' listeners in the hot path - // inside push(). - this[kReading] = false - } + const p = await this.matchAll(request, options) - destroy (err) { - if (this.destroyed) { - // Node < 16 - return this - } + if (p.length === 0) { + return + } - if (!err && !this._readableState.endEmitted) { - err = new RequestAbortedError() - } + return p[0] + } - if (err) { - this[kAbort]() - } + async matchAll(request = undefined, options = {}) { + webidl.brandCheck(this, Cache) - return super.destroy(err) - } + if (request !== undefined) + request = webidl.converters.RequestInfo(request) + options = webidl.converters.CacheQueryOptions(options) - emit (ev, ...args) { - if (ev === 'data') { - // Node < 16.7 - this._readableState.dataEmitted = true - } else if (ev === 'error') { - // Node < 16 - this._readableState.errorEmitted = true - } - return super.emit(ev, ...args) - } + // 1. + let r = null - on (ev, ...args) { - if (ev === 'data' || ev === 'readable') { - this[kReading] = true - } - return super.on(ev, ...args) - } + // 2. + if (request !== undefined) { + if (request instanceof Request) { + // 2.1.1 + r = request[kState] + + // 2.1.2 + if (r.method !== 'GET' && !options.ignoreMethod) { + return [] + } + } else if (typeof request === 'string') { + // 2.2.1 + r = new Request(request)[kState] + } + } - addListener (ev, ...args) { - return this.on(ev, ...args) - } + // 5. + // 5.1 + const responses = [] - off (ev, ...args) { - const ret = super.off(ev, ...args) - if (ev === 'data' || ev === 'readable') { - this[kReading] = ( - this.listenerCount('data') > 0 || - this.listenerCount('readable') > 0 - ) - } - return ret - } + // 5.2 + if (request === undefined) { + // 5.2.1 + for (const requestResponse of this.#relevantRequestResponseList) { + responses.push(requestResponse[1]) + } + } else { + // 5.3 + // 5.3.1 + const requestResponses = this.#queryCache(r, options) - removeListener (ev, ...args) { - return this.off(ev, ...args) - } + // 5.3.2 + for (const requestResponse of requestResponses) { + responses.push(requestResponse[1]) + } + } - push (chunk) { - if (this[kConsume] && chunk !== null && this.readableLength === 0) { - consumePush(this[kConsume], chunk) - return this[kReading] ? super.push(chunk) : true - } - return super.push(chunk) - } + // 5.4 + // We don't implement CORs so we don't need to loop over the responses, yay! - // https://fetch.spec.whatwg.org/#dom-body-text - async text () { - return consume(this, 'text') - } + // 5.5.1 + const responseList = [] - // https://fetch.spec.whatwg.org/#dom-body-json - async json () { - return consume(this, 'json') - } + // 5.5.2 + for (const response of responses) { + // 5.5.2.1 + const responseObject = new Response(response.body?.source ?? null) + const body = responseObject[kState].body + responseObject[kState] = response + responseObject[kState].body = body + responseObject[kHeaders][kHeadersList] = response.headersList + responseObject[kHeaders][kGuard] = 'immutable' - // https://fetch.spec.whatwg.org/#dom-body-blob - async blob () { - return consume(this, 'blob') - } + responseList.push(responseObject) + } - // https://fetch.spec.whatwg.org/#dom-body-arraybuffer - async arrayBuffer () { - return consume(this, 'arrayBuffer') - } + // 6. + return Object.freeze(responseList) + } - // https://fetch.spec.whatwg.org/#dom-body-formdata - async formData () { - // TODO: Implement. - throw new NotSupportedError() - } + async add(request) { + webidl.brandCheck(this, Cache) + webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.add' }) - // https://fetch.spec.whatwg.org/#dom-body-bodyused - get bodyUsed () { - return util.isDisturbed(this) - } + request = webidl.converters.RequestInfo(request) - // https://fetch.spec.whatwg.org/#dom-body-body - get body () { - if (!this[kBody]) { - this[kBody] = ReadableStreamFrom(this) - if (this[kConsume]) { - // TODO: Is this the best way to force a lock? - this[kBody].getReader() // Ensure stream is locked. - assert(this[kBody].locked) - } - } - return this[kBody] - } + // 1. + const requests = [request] - dump (opts) { - let limit = opts && Number.isFinite(opts.limit) ? opts.limit : 262144 - const signal = opts && opts.signal + // 2. + const responseArrayPromise = this.addAll(requests) - if (signal) { - try { - if (typeof signal !== 'object' || !('aborted' in signal)) { - throw new InvalidArgumentError('signal must be an AbortSignal') + // 3. + return await responseArrayPromise } - util.throwIfAborted(signal) - } catch (err) { - return Promise.reject(err) - } - } - if (this.closed) { - return Promise.resolve(null) - } + async addAll(requests) { + webidl.brandCheck(this, Cache) + webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.addAll' }) - return new Promise((resolve, reject) => { - const signalListenerCleanup = signal - ? util.addAbortListener(signal, () => { - this.destroy() - }) - : noop + requests = webidl.converters['sequence'](requests) - this - .on('close', function () { - signalListenerCleanup() - if (signal && signal.aborted) { - reject(signal.reason || Object.assign(new Error('The operation was aborted'), { name: 'AbortError' })) - } else { - resolve(null) - } - }) - .on('error', noop) - .on('data', function (chunk) { - limit -= chunk.length - if (limit <= 0) { - this.destroy() - } - }) - .resume() - }) - } -} - -// https://streams.spec.whatwg.org/#readablestream-locked -function isLocked (self) { - // Consume is an implicit lock. - return (self[kBody] && self[kBody].locked === true) || self[kConsume] -} - -// https://fetch.spec.whatwg.org/#body-unusable -function isUnusable (self) { - return util.isDisturbed(self) || isLocked(self) -} - -async function consume (stream, type) { - if (isUnusable(stream)) { - throw new TypeError('unusable') - } + // 1. + const responsePromises = [] - assert(!stream[kConsume]) + // 2. + const requestList = [] - return new Promise((resolve, reject) => { - stream[kConsume] = { - type, - stream, - resolve, - reject, - length: 0, - body: [] - } + // 3. + for (const request of requests) { + if (typeof request === 'string') { + continue + } - stream - .on('error', function (err) { - consumeFinish(this[kConsume], err) - }) - .on('close', function () { - if (this[kConsume].body !== null) { - consumeFinish(this[kConsume], new RequestAbortedError()) - } - }) + // 3.1 + const r = request[kState] - process.nextTick(consumeStart, stream[kConsume]) - }) -} + // 3.2 + if (!urlIsHttpHttpsScheme(r.url) || r.method !== 'GET') { + throw webidl.errors.exception({ + header: 'Cache.addAll', + message: 'Expected http/s scheme when method is not GET.' + }) + } + } -function consumeStart (consume) { - if (consume.body === null) { - return - } + // 4. + /** @type {ReturnType[]} */ + const fetchControllers = [] - const { _readableState: state } = consume.stream + // 5. + for (const request of requests) { + // 5.1 + const r = new Request(request)[kState] - for (const chunk of state.buffer) { - consumePush(consume, chunk) - } + // 5.2 + if (!urlIsHttpHttpsScheme(r.url)) { + throw webidl.errors.exception({ + header: 'Cache.addAll', + message: 'Expected http/s scheme.' + }) + } - if (state.endEmitted) { - consumeEnd(this[kConsume]) - } else { - consume.stream.on('end', function () { - consumeEnd(this[kConsume]) - }) - } + // 5.4 + r.initiator = 'fetch' + r.destination = 'subresource' + + // 5.5 + requestList.push(r) + + // 5.6 + const responsePromise = createDeferredPromise() + + // 5.7 + fetchControllers.push( + fetching({ + request: r, + dispatcher: getGlobalDispatcher(), + processResponse(response) { + // 1. + if ( + response.type === 'error' || + response.status === 206 || + response.status < 200 || + response.status > 299 + ) { + responsePromise.reject( + webidl.errors.exception({ + header: 'Cache.addAll', + message: + 'Received an invalid status code or the request failed.' + }) + ) + } else if (response.headersList.contains('vary')) { + // 2. + // 2.1 + const fieldValues = getFieldValues( + response.headersList.get('vary') + ) + + // 2.2 + for (const fieldValue of fieldValues) { + // 2.2.1 + if (fieldValue === '*') { + responsePromise.reject( + webidl.errors.exception({ + header: 'Cache.addAll', + message: 'invalid vary field value' + }) + ) + + for (const controller of fetchControllers) { + controller.abort() + } - consume.stream.resume() + return + } + } + } + }, + processResponseEndOfBody(response) { + // 1. + if (response.aborted) { + responsePromise.reject( + new DOMException('aborted', 'AbortError') + ) + return + } + + // 2. + responsePromise.resolve(response) + } + }) + ) - while (consume.stream.read() != null) { - // Loop - } -} + // 5.8 + responsePromises.push(responsePromise.promise) + } -function consumeEnd (consume) { - const { type, body, resolve, stream, length } = consume + // 6. + const p = Promise.all(responsePromises) - try { - if (type === 'text') { - resolve(toUSVString(Buffer.concat(body))) - } else if (type === 'json') { - resolve(JSON.parse(Buffer.concat(body))) - } else if (type === 'arrayBuffer') { - const dst = new Uint8Array(length) + // 7. + const responses = await p - let pos = 0 - for (const buf of body) { - dst.set(buf, pos) - pos += buf.byteLength - } + // 7.1 + const operations = [] - resolve(dst.buffer) - } else if (type === 'blob') { - if (!Blob) { - Blob = (__nccwpck_require__(14300).Blob) - } - resolve(new Blob(body, { type: stream[kContentType] })) - } + // 7.2 + let index = 0 - consumeFinish(consume) - } catch (err) { - stream.destroy(err) - } -} + // 7.3 + for (const response of responses) { + // 7.3.1 + /** @type {CacheBatchOperation} */ + const operation = { + type: 'put', // 7.3.2 + request: requestList[index], // 7.3.3 + response // 7.3.4 + } -function consumePush (consume, chunk) { - consume.length += chunk.length - consume.body.push(chunk) -} + operations.push(operation) // 7.3.5 -function consumeFinish (consume, err) { - if (consume.body === null) { - return - } + index++ // 7.3.6 + } - if (err) { - consume.reject(err) - } else { - consume.resolve() - } + // 7.5 + const cacheJobPromise = createDeferredPromise() - consume.type = null - consume.stream = null - consume.resolve = null - consume.reject = null - consume.length = 0 - consume.body = null -} + // 7.6.1 + let errorData = null + // 7.6.2 + try { + this.#batchCacheOperations(operations) + } catch (e) { + errorData = e + } -/***/ }), + // 7.6.3 + queueMicrotask(() => { + // 7.6.3.1 + if (errorData === null) { + cacheJobPromise.resolve(undefined) + } else { + // 7.6.3.2 + cacheJobPromise.reject(errorData) + } + }) -/***/ 77474: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + // 7.7 + return cacheJobPromise.promise + } -const assert = __nccwpck_require__(39491) -const { - ResponseStatusCodeError -} = __nccwpck_require__(48045) -const { toUSVString } = __nccwpck_require__(83983) + async put(request, response) { + webidl.brandCheck(this, Cache) + webidl.argumentLengthCheck(arguments, 2, { header: 'Cache.put' }) -async function getResolveErrorBodyCallback ({ callback, body, contentType, statusCode, statusMessage, headers }) { - assert(body) + request = webidl.converters.RequestInfo(request) + response = webidl.converters.Response(response) - let chunks = [] - let limit = 0 + // 1. + let innerRequest = null - for await (const chunk of body) { - chunks.push(chunk) - limit += chunk.length - if (limit > 128 * 1024) { - chunks = null - break - } - } + // 2. + if (request instanceof Request) { + innerRequest = request[kState] + } else { + // 3. + innerRequest = new Request(request)[kState] + } - if (statusCode === 204 || !contentType || !chunks) { - process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers)) - return - } + // 4. + if ( + !urlIsHttpHttpsScheme(innerRequest.url) || + innerRequest.method !== 'GET' + ) { + throw webidl.errors.exception({ + header: 'Cache.put', + message: 'Expected an http/s scheme when method is not GET' + }) + } - try { - if (contentType.startsWith('application/json')) { - const payload = JSON.parse(toUSVString(Buffer.concat(chunks))) - process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload)) - return - } + // 5. + const innerResponse = response[kState] - if (contentType.startsWith('text/')) { - const payload = toUSVString(Buffer.concat(chunks)) - process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload)) - return - } - } catch (err) { - // Process in a fallback if error - } + // 6. + if (innerResponse.status === 206) { + throw webidl.errors.exception({ + header: 'Cache.put', + message: 'Got 206 status' + }) + } - process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers)) -} + // 7. + if (innerResponse.headersList.contains('vary')) { + // 7.1. + const fieldValues = getFieldValues( + innerResponse.headersList.get('vary') + ) -module.exports = { getResolveErrorBodyCallback } + // 7.2. + for (const fieldValue of fieldValues) { + // 7.2.1 + if (fieldValue === '*') { + throw webidl.errors.exception({ + header: 'Cache.put', + message: 'Got * vary field value' + }) + } + } + } + // 8. + if ( + innerResponse.body && + (isDisturbed(innerResponse.body.stream) || + innerResponse.body.stream.locked) + ) { + throw webidl.errors.exception({ + header: 'Cache.put', + message: 'Response body is locked or disturbed' + }) + } -/***/ }), + // 9. + const clonedResponse = cloneResponse(innerResponse) -/***/ 37931: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + // 10. + const bodyReadPromise = createDeferredPromise() -"use strict"; + // 11. + if (innerResponse.body != null) { + // 11.1 + const stream = innerResponse.body.stream + // 11.2 + const reader = stream.getReader() -const { - BalancedPoolMissingUpstreamError, - InvalidArgumentError -} = __nccwpck_require__(48045) -const { - PoolBase, - kClients, - kNeedDrain, - kAddClient, - kRemoveClient, - kGetDispatcher -} = __nccwpck_require__(73198) -const Pool = __nccwpck_require__(4634) -const { kUrl, kInterceptors } = __nccwpck_require__(72785) -const { parseOrigin } = __nccwpck_require__(83983) -const kFactory = Symbol('factory') + // 11.3 + readAllBytes(reader).then( + bodyReadPromise.resolve, + bodyReadPromise.reject + ) + } else { + bodyReadPromise.resolve(undefined) + } -const kOptions = Symbol('options') -const kGreatestCommonDivisor = Symbol('kGreatestCommonDivisor') -const kCurrentWeight = Symbol('kCurrentWeight') -const kIndex = Symbol('kIndex') -const kWeight = Symbol('kWeight') -const kMaxWeightPerServer = Symbol('kMaxWeightPerServer') -const kErrorPenalty = Symbol('kErrorPenalty') + // 12. + /** @type {CacheBatchOperation[]} */ + const operations = [] -function getGreatestCommonDivisor (a, b) { - if (b === 0) return a - return getGreatestCommonDivisor(b, a % b) -} + // 13. + /** @type {CacheBatchOperation} */ + const operation = { + type: 'put', // 14. + request: innerRequest, // 15. + response: clonedResponse // 16. + } -function defaultFactory (origin, opts) { - return new Pool(origin, opts) -} + // 17. + operations.push(operation) -class BalancedPool extends PoolBase { - constructor (upstreams = [], { factory = defaultFactory, ...opts } = {}) { - super() + // 19. + const bytes = await bodyReadPromise.promise - this[kOptions] = opts - this[kIndex] = -1 - this[kCurrentWeight] = 0 + if (clonedResponse.body != null) { + clonedResponse.body.source = bytes + } - this[kMaxWeightPerServer] = this[kOptions].maxWeightPerServer || 100 - this[kErrorPenalty] = this[kOptions].errorPenalty || 15 + // 19.1 + const cacheJobPromise = createDeferredPromise() - if (!Array.isArray(upstreams)) { - upstreams = [upstreams] - } + // 19.2.1 + let errorData = null - if (typeof factory !== 'function') { - throw new InvalidArgumentError('factory must be a function.') - } + // 19.2.2 + try { + this.#batchCacheOperations(operations) + } catch (e) { + errorData = e + } - this[kInterceptors] = opts.interceptors && opts.interceptors.BalancedPool && Array.isArray(opts.interceptors.BalancedPool) - ? opts.interceptors.BalancedPool - : [] - this[kFactory] = factory + // 19.2.3 + queueMicrotask(() => { + // 19.2.3.1 + if (errorData === null) { + cacheJobPromise.resolve() + } else { + // 19.2.3.2 + cacheJobPromise.reject(errorData) + } + }) - for (const upstream of upstreams) { - this.addUpstream(upstream) - } - this._updateBalancedPoolStats() - } + return cacheJobPromise.promise + } - addUpstream (upstream) { - const upstreamOrigin = parseOrigin(upstream).origin + async delete(request, options = {}) { + webidl.brandCheck(this, Cache) + webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.delete' }) - if (this[kClients].find((pool) => ( - pool[kUrl].origin === upstreamOrigin && - pool.closed !== true && - pool.destroyed !== true - ))) { - return this - } - const pool = this[kFactory](upstreamOrigin, Object.assign({}, this[kOptions])) + request = webidl.converters.RequestInfo(request) + options = webidl.converters.CacheQueryOptions(options) - this[kAddClient](pool) - pool.on('connect', () => { - pool[kWeight] = Math.min(this[kMaxWeightPerServer], pool[kWeight] + this[kErrorPenalty]) - }) + /** + * @type {Request} + */ + let r = null - pool.on('connectionError', () => { - pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty]) - this._updateBalancedPoolStats() - }) + if (request instanceof Request) { + r = request[kState] - pool.on('disconnect', (...args) => { - const err = args[2] - if (err && err.code === 'UND_ERR_SOCKET') { - // decrease the weight of the pool. - pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty]) - this._updateBalancedPoolStats() - } - }) + if (r.method !== 'GET' && !options.ignoreMethod) { + return false + } + } else { + assert(typeof request === 'string') - for (const client of this[kClients]) { - client[kWeight] = this[kMaxWeightPerServer] - } + r = new Request(request)[kState] + } - this._updateBalancedPoolStats() + /** @type {CacheBatchOperation[]} */ + const operations = [] - return this - } + /** @type {CacheBatchOperation} */ + const operation = { + type: 'delete', + request: r, + options + } - _updateBalancedPoolStats () { - this[kGreatestCommonDivisor] = this[kClients].map(p => p[kWeight]).reduce(getGreatestCommonDivisor, 0) - } + operations.push(operation) - removeUpstream (upstream) { - const upstreamOrigin = parseOrigin(upstream).origin + const cacheJobPromise = createDeferredPromise() - const pool = this[kClients].find((pool) => ( - pool[kUrl].origin === upstreamOrigin && - pool.closed !== true && - pool.destroyed !== true - )) + let errorData = null + let requestResponses - if (pool) { - this[kRemoveClient](pool) - } + try { + requestResponses = this.#batchCacheOperations(operations) + } catch (e) { + errorData = e + } - return this - } + queueMicrotask(() => { + if (errorData === null) { + cacheJobPromise.resolve(!!requestResponses?.length) + } else { + cacheJobPromise.reject(errorData) + } + }) - get upstreams () { - return this[kClients] - .filter(dispatcher => dispatcher.closed !== true && dispatcher.destroyed !== true) - .map((p) => p[kUrl].origin) - } + return cacheJobPromise.promise + } - [kGetDispatcher] () { - // We validate that pools is greater than 0, - // otherwise we would have to wait until an upstream - // is added, which might never happen. - if (this[kClients].length === 0) { - throw new BalancedPoolMissingUpstreamError() - } + /** + * @see https://w3c.github.io/ServiceWorker/#dom-cache-keys + * @param {any} request + * @param {import('../../types/cache').CacheQueryOptions} options + * @returns {readonly Request[]} + */ + async keys(request = undefined, options = {}) { + webidl.brandCheck(this, Cache) - const dispatcher = this[kClients].find(dispatcher => ( - !dispatcher[kNeedDrain] && - dispatcher.closed !== true && - dispatcher.destroyed !== true - )) + if (request !== undefined) + request = webidl.converters.RequestInfo(request) + options = webidl.converters.CacheQueryOptions(options) - if (!dispatcher) { - return - } + // 1. + let r = null - const allClientsBusy = this[kClients].map(pool => pool[kNeedDrain]).reduce((a, b) => a && b, true) + // 2. + if (request !== undefined) { + // 2.1 + if (request instanceof Request) { + // 2.1.1 + r = request[kState] - if (allClientsBusy) { - return - } + // 2.1.2 + if (r.method !== 'GET' && !options.ignoreMethod) { + return [] + } + } else if (typeof request === 'string') { + // 2.2 + r = new Request(request)[kState] + } + } - let counter = 0 + // 4. + const promise = createDeferredPromise() - let maxWeightIndex = this[kClients].findIndex(pool => !pool[kNeedDrain]) + // 5. + // 5.1 + const requests = [] - while (counter++ < this[kClients].length) { - this[kIndex] = (this[kIndex] + 1) % this[kClients].length - const pool = this[kClients][this[kIndex]] + // 5.2 + if (request === undefined) { + // 5.2.1 + for (const requestResponse of this.#relevantRequestResponseList) { + // 5.2.1.1 + requests.push(requestResponse[0]) + } + } else { + // 5.3 + // 5.3.1 + const requestResponses = this.#queryCache(r, options) + + // 5.3.2 + for (const requestResponse of requestResponses) { + // 5.3.2.1 + requests.push(requestResponse[0]) + } + } - // find pool index with the largest weight - if (pool[kWeight] > this[kClients][maxWeightIndex][kWeight] && !pool[kNeedDrain]) { - maxWeightIndex = this[kIndex] - } + // 5.4 + queueMicrotask(() => { + // 5.4.1 + const requestList = [] + + // 5.4.2 + for (const request of requests) { + const requestObject = new Request('https://a') + requestObject[kState] = request + requestObject[kHeaders][kHeadersList] = request.headersList + requestObject[kHeaders][kGuard] = 'immutable' + requestObject[kRealm] = request.client + + // 5.4.2.1 + requestList.push(requestObject) + } - // decrease the current weight every `this[kClients].length`. - if (this[kIndex] === 0) { - // Set the current weight to the next lower weight. - this[kCurrentWeight] = this[kCurrentWeight] - this[kGreatestCommonDivisor] + // 5.4.3 + promise.resolve(Object.freeze(requestList)) + }) - if (this[kCurrentWeight] <= 0) { - this[kCurrentWeight] = this[kMaxWeightPerServer] + return promise.promise } - } - if (pool[kWeight] >= this[kCurrentWeight] && (!pool[kNeedDrain])) { - return pool - } - } - - this[kCurrentWeight] = this[kClients][maxWeightIndex][kWeight] - this[kIndex] = maxWeightIndex - return this[kClients][maxWeightIndex] - } -} -module.exports = BalancedPool + /** + * @see https://w3c.github.io/ServiceWorker/#batch-cache-operations-algorithm + * @param {CacheBatchOperation[]} operations + * @returns {requestResponseList} + */ + #batchCacheOperations(operations) { + // 1. + const cache = this.#relevantRequestResponseList + // 2. + const backupCache = [...cache] + + // 3. + const addedItems = [] + + // 4.1 + const resultList = [] + + try { + // 4.2 + for (const operation of operations) { + // 4.2.1 + if (operation.type !== 'delete' && operation.type !== 'put') { + throw webidl.errors.exception({ + header: 'Cache.#batchCacheOperations', + message: 'operation type does not match "delete" or "put"' + }) + } -/***/ }), + // 4.2.2 + if (operation.type === 'delete' && operation.response != null) { + throw webidl.errors.exception({ + header: 'Cache.#batchCacheOperations', + message: + 'delete operation should not have an associated response' + }) + } -/***/ 66101: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + // 4.2.3 + if ( + this.#queryCache( + operation.request, + operation.options, + addedItems + ).length + ) { + throw new DOMException('???', 'InvalidStateError') + } -"use strict"; + // 4.2.4 + let requestResponses + // 4.2.5 + if (operation.type === 'delete') { + // 4.2.5.1 + requestResponses = this.#queryCache( + operation.request, + operation.options + ) -const { kConstruct } = __nccwpck_require__(29174) -const { urlEquals, fieldValues: getFieldValues } = __nccwpck_require__(82396) -const { kEnumerableProperty, isDisturbed } = __nccwpck_require__(83983) -const { kHeadersList } = __nccwpck_require__(72785) -const { webidl } = __nccwpck_require__(21744) -const { Response, cloneResponse } = __nccwpck_require__(27823) -const { Request } = __nccwpck_require__(48359) -const { kState, kHeaders, kGuard, kRealm } = __nccwpck_require__(15861) -const { fetching } = __nccwpck_require__(74881) -const { urlIsHttpHttpsScheme, createDeferredPromise, readAllBytes } = __nccwpck_require__(52538) -const assert = __nccwpck_require__(39491) -const { getGlobalDispatcher } = __nccwpck_require__(21892) + // TODO: the spec is wrong, this is needed to pass WPTs + if (requestResponses.length === 0) { + return [] + } -/** - * @see https://w3c.github.io/ServiceWorker/#dfn-cache-batch-operation - * @typedef {Object} CacheBatchOperation - * @property {'delete' | 'put'} type - * @property {any} request - * @property {any} response - * @property {import('../../types/cache').CacheQueryOptions} options - */ + // 4.2.5.2 + for (const requestResponse of requestResponses) { + const idx = cache.indexOf(requestResponse) + assert(idx !== -1) -/** - * @see https://w3c.github.io/ServiceWorker/#dfn-request-response-list - * @typedef {[any, any][]} requestResponseList - */ + // 4.2.5.2.1 + cache.splice(idx, 1) + } + } else if (operation.type === 'put') { + // 4.2.6 + // 4.2.6.1 + if (operation.response == null) { + throw webidl.errors.exception({ + header: 'Cache.#batchCacheOperations', + message: 'put operation should have an associated response' + }) + } -class Cache { - /** - * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-request-response-list - * @type {requestResponseList} - */ - #relevantRequestResponseList + // 4.2.6.2 + const r = operation.request - constructor () { - if (arguments[0] !== kConstruct) { - webidl.illegalConstructor() - } + // 4.2.6.3 + if (!urlIsHttpHttpsScheme(r.url)) { + throw webidl.errors.exception({ + header: 'Cache.#batchCacheOperations', + message: 'expected http or https scheme' + }) + } - this.#relevantRequestResponseList = arguments[1] - } + // 4.2.6.4 + if (r.method !== 'GET') { + throw webidl.errors.exception({ + header: 'Cache.#batchCacheOperations', + message: 'not get method' + }) + } - async match (request, options = {}) { - webidl.brandCheck(this, Cache) - webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.match' }) + // 4.2.6.5 + if (operation.options != null) { + throw webidl.errors.exception({ + header: 'Cache.#batchCacheOperations', + message: 'options must not be defined' + }) + } - request = webidl.converters.RequestInfo(request) - options = webidl.converters.CacheQueryOptions(options) + // 4.2.6.6 + requestResponses = this.#queryCache(operation.request) - const p = await this.matchAll(request, options) + // 4.2.6.7 + for (const requestResponse of requestResponses) { + const idx = cache.indexOf(requestResponse) + assert(idx !== -1) - if (p.length === 0) { - return - } + // 4.2.6.7.1 + cache.splice(idx, 1) + } - return p[0] - } + // 4.2.6.8 + cache.push([operation.request, operation.response]) - async matchAll (request = undefined, options = {}) { - webidl.brandCheck(this, Cache) + // 4.2.6.10 + addedItems.push([operation.request, operation.response]) + } - if (request !== undefined) request = webidl.converters.RequestInfo(request) - options = webidl.converters.CacheQueryOptions(options) + // 4.2.7 + resultList.push([operation.request, operation.response]) + } - // 1. - let r = null + // 4.3 + return resultList + } catch (e) { + // 5. + // 5.1 + this.#relevantRequestResponseList.length = 0 - // 2. - if (request !== undefined) { - if (request instanceof Request) { - // 2.1.1 - r = request[kState] + // 5.2 + this.#relevantRequestResponseList = backupCache - // 2.1.2 - if (r.method !== 'GET' && !options.ignoreMethod) { - return [] + // 5.3 + throw e + } } - } else if (typeof request === 'string') { - // 2.2.1 - r = new Request(request)[kState] - } - } - // 5. - // 5.1 - const responses = [] + /** + * @see https://w3c.github.io/ServiceWorker/#query-cache + * @param {any} requestQuery + * @param {import('../../types/cache').CacheQueryOptions} options + * @param {requestResponseList} targetStorage + * @returns {requestResponseList} + */ + #queryCache(requestQuery, options, targetStorage) { + /** @type {requestResponseList} */ + const resultList = [] + + const storage = targetStorage ?? this.#relevantRequestResponseList + + for (const requestResponse of storage) { + const [cachedRequest, cachedResponse] = requestResponse + if ( + this.#requestMatchesCachedItem( + requestQuery, + cachedRequest, + cachedResponse, + options + ) + ) { + resultList.push(requestResponse) + } + } - // 5.2 - if (request === undefined) { - // 5.2.1 - for (const requestResponse of this.#relevantRequestResponseList) { - responses.push(requestResponse[1]) - } - } else { // 5.3 - // 5.3.1 - const requestResponses = this.#queryCache(r, options) + return resultList + } - // 5.3.2 - for (const requestResponse of requestResponses) { - responses.push(requestResponse[1]) - } - } + /** + * @see https://w3c.github.io/ServiceWorker/#request-matches-cached-item-algorithm + * @param {any} requestQuery + * @param {any} request + * @param {any | null} response + * @param {import('../../types/cache').CacheQueryOptions | undefined} options + * @returns {boolean} + */ + #requestMatchesCachedItem( + requestQuery, + request, + response = null, + options + ) { + // if (options?.ignoreMethod === false && request.method === 'GET') { + // return false + // } - // 5.4 - // We don't implement CORs so we don't need to loop over the responses, yay! + const queryURL = new URL(requestQuery.url) - // 5.5.1 - const responseList = [] + const cachedURL = new URL(request.url) - // 5.5.2 - for (const response of responses) { - // 5.5.2.1 - const responseObject = new Response(response.body?.source ?? null) - const body = responseObject[kState].body - responseObject[kState] = response - responseObject[kState].body = body - responseObject[kHeaders][kHeadersList] = response.headersList - responseObject[kHeaders][kGuard] = 'immutable' + if (options?.ignoreSearch) { + cachedURL.search = '' - responseList.push(responseObject) - } + queryURL.search = '' + } - // 6. - return Object.freeze(responseList) - } + if (!urlEquals(queryURL, cachedURL, true)) { + return false + } - async add (request) { - webidl.brandCheck(this, Cache) - webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.add' }) + if ( + response == null || + options?.ignoreVary || + !response.headersList.contains('vary') + ) { + return true + } - request = webidl.converters.RequestInfo(request) + const fieldValues = getFieldValues(response.headersList.get('vary')) - // 1. - const requests = [request] + for (const fieldValue of fieldValues) { + if (fieldValue === '*') { + return false + } - // 2. - const responseArrayPromise = this.addAll(requests) + const requestValue = request.headersList.get(fieldValue) + const queryValue = requestQuery.headersList.get(fieldValue) - // 3. - return await responseArrayPromise - } + // If one has the header and the other doesn't, or one has + // a different value than the other, return false + if (requestValue !== queryValue) { + return false + } + } + + return true + } + } - async addAll (requests) { - webidl.brandCheck(this, Cache) - webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.addAll' }) + Object.defineProperties(Cache.prototype, { + [Symbol.toStringTag]: { + value: 'Cache', + configurable: true + }, + match: kEnumerableProperty, + matchAll: kEnumerableProperty, + add: kEnumerableProperty, + addAll: kEnumerableProperty, + put: kEnumerableProperty, + delete: kEnumerableProperty, + keys: kEnumerableProperty + }) - requests = webidl.converters['sequence'](requests) + const cacheQueryOptionConverters = [ + { + key: 'ignoreSearch', + converter: webidl.converters.boolean, + defaultValue: false + }, + { + key: 'ignoreMethod', + converter: webidl.converters.boolean, + defaultValue: false + }, + { + key: 'ignoreVary', + converter: webidl.converters.boolean, + defaultValue: false + } + ] - // 1. - const responsePromises = [] + webidl.converters.CacheQueryOptions = webidl.dictionaryConverter( + cacheQueryOptionConverters + ) - // 2. - const requestList = [] + webidl.converters.MultiCacheQueryOptions = webidl.dictionaryConverter([ + ...cacheQueryOptionConverters, + { + key: 'cacheName', + converter: webidl.converters.DOMString + } + ]) - // 3. - for (const request of requests) { - if (typeof request === 'string') { - continue - } + webidl.converters.Response = webidl.interfaceConverter(Response) - // 3.1 - const r = request[kState] + webidl.converters['sequence'] = webidl.sequenceConverter( + webidl.converters.RequestInfo + ) - // 3.2 - if (!urlIsHttpHttpsScheme(r.url) || r.method !== 'GET') { - throw webidl.errors.exception({ - header: 'Cache.addAll', - message: 'Expected http/s scheme when method is not GET.' - }) + module.exports = { + Cache } - } - // 4. - /** @type {ReturnType[]} */ - const fetchControllers = [] + /***/ + }, + + /***/ 37907: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' - // 5. - for (const request of requests) { - // 5.1 - const r = new Request(request)[kState] + const { kConstruct } = __nccwpck_require__(29174) + const { Cache } = __nccwpck_require__(66101) + const { webidl } = __nccwpck_require__(21744) + const { kEnumerableProperty } = __nccwpck_require__(83983) - // 5.2 - if (!urlIsHttpHttpsScheme(r.url)) { - throw webidl.errors.exception({ - header: 'Cache.addAll', - message: 'Expected http/s scheme.' - }) - } + class CacheStorage { + /** + * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-name-to-cache-map + * @type {Map 299) { - responsePromise.reject(webidl.errors.exception({ - header: 'Cache.addAll', - message: 'Received an invalid status code or the request failed.' - })) - } else if (response.headersList.contains('vary')) { // 2. - // 2.1 - const fieldValues = getFieldValues(response.headersList.get('vary')) - + if (options.cacheName != null) { + // 1.1.1.1 + if (this.#caches.has(options.cacheName)) { + // 1.1.1.1.1 + const cacheList = this.#caches.get(options.cacheName) + const cache = new Cache(kConstruct, cacheList) + + return await cache.match(request, options) + } + } else { + // 2. // 2.2 - for (const fieldValue of fieldValues) { - // 2.2.1 - if (fieldValue === '*') { - responsePromise.reject(webidl.errors.exception({ - header: 'Cache.addAll', - message: 'invalid vary field value' - })) + for (const cacheList of this.#caches.values()) { + const cache = new Cache(kConstruct, cacheList) - for (const controller of fetchControllers) { - controller.abort() - } + // 2.2.1.2 + const response = await cache.match(request, options) - return + if (response !== undefined) { + return response } } } - }, - processResponseEndOfBody (response) { - // 1. - if (response.aborted) { - responsePromise.reject(new DOMException('aborted', 'AbortError')) - return - } - - // 2. - responsePromise.resolve(response) } - })) - - // 5.8 - responsePromises.push(responsePromise.promise) - } - - // 6. - const p = Promise.all(responsePromises) - - // 7. - const responses = await p - - // 7.1 - const operations = [] - // 7.2 - let index = 0 - - // 7.3 - for (const response of responses) { - // 7.3.1 - /** @type {CacheBatchOperation} */ - const operation = { - type: 'put', // 7.3.2 - request: requestList[index], // 7.3.3 - response // 7.3.4 - } + /** + * @see https://w3c.github.io/ServiceWorker/#cache-storage-has + * @param {string} cacheName + * @returns {Promise} + */ + async has(cacheName) { + webidl.brandCheck(this, CacheStorage) + webidl.argumentLengthCheck(arguments, 1, { + header: 'CacheStorage.has' + }) - operations.push(operation) // 7.3.5 + cacheName = webidl.converters.DOMString(cacheName) - index++ // 7.3.6 - } + // 2.1.1 + // 2.2 + return this.#caches.has(cacheName) + } - // 7.5 - const cacheJobPromise = createDeferredPromise() + /** + * @see https://w3c.github.io/ServiceWorker/#dom-cachestorage-open + * @param {string} cacheName + * @returns {Promise} + */ + async open(cacheName) { + webidl.brandCheck(this, CacheStorage) + webidl.argumentLengthCheck(arguments, 1, { + header: 'CacheStorage.open' + }) - // 7.6.1 - let errorData = null + cacheName = webidl.converters.DOMString(cacheName) - // 7.6.2 - try { - this.#batchCacheOperations(operations) - } catch (e) { - errorData = e - } + // 2.1 + if (this.#caches.has(cacheName)) { + // await caches.open('v1') !== await caches.open('v1') - // 7.6.3 - queueMicrotask(() => { - // 7.6.3.1 - if (errorData === null) { - cacheJobPromise.resolve(undefined) - } else { - // 7.6.3.2 - cacheJobPromise.reject(errorData) - } - }) + // 2.1.1 + const cache = this.#caches.get(cacheName) - // 7.7 - return cacheJobPromise.promise - } + // 2.1.1.1 + return new Cache(kConstruct, cache) + } - async put (request, response) { - webidl.brandCheck(this, Cache) - webidl.argumentLengthCheck(arguments, 2, { header: 'Cache.put' }) + // 2.2 + const cache = [] - request = webidl.converters.RequestInfo(request) - response = webidl.converters.Response(response) + // 2.3 + this.#caches.set(cacheName, cache) - // 1. - let innerRequest = null + // 2.4 + return new Cache(kConstruct, cache) + } - // 2. - if (request instanceof Request) { - innerRequest = request[kState] - } else { // 3. - innerRequest = new Request(request)[kState] - } + /** + * @see https://w3c.github.io/ServiceWorker/#cache-storage-delete + * @param {string} cacheName + * @returns {Promise} + */ + async delete(cacheName) { + webidl.brandCheck(this, CacheStorage) + webidl.argumentLengthCheck(arguments, 1, { + header: 'CacheStorage.delete' + }) - // 4. - if (!urlIsHttpHttpsScheme(innerRequest.url) || innerRequest.method !== 'GET') { - throw webidl.errors.exception({ - header: 'Cache.put', - message: 'Expected an http/s scheme when method is not GET' - }) - } + cacheName = webidl.converters.DOMString(cacheName) - // 5. - const innerResponse = response[kState] + return this.#caches.delete(cacheName) + } - // 6. - if (innerResponse.status === 206) { - throw webidl.errors.exception({ - header: 'Cache.put', - message: 'Got 206 status' - }) - } + /** + * @see https://w3c.github.io/ServiceWorker/#cache-storage-keys + * @returns {string[]} + */ + async keys() { + webidl.brandCheck(this, CacheStorage) - // 7. - if (innerResponse.headersList.contains('vary')) { - // 7.1. - const fieldValues = getFieldValues(innerResponse.headersList.get('vary')) + // 2.1 + const keys = this.#caches.keys() - // 7.2. - for (const fieldValue of fieldValues) { - // 7.2.1 - if (fieldValue === '*') { - throw webidl.errors.exception({ - header: 'Cache.put', - message: 'Got * vary field value' - }) + // 2.2 + return [...keys] } } - } - // 8. - if (innerResponse.body && (isDisturbed(innerResponse.body.stream) || innerResponse.body.stream.locked)) { - throw webidl.errors.exception({ - header: 'Cache.put', - message: 'Response body is locked or disturbed' + Object.defineProperties(CacheStorage.prototype, { + [Symbol.toStringTag]: { + value: 'CacheStorage', + configurable: true + }, + match: kEnumerableProperty, + has: kEnumerableProperty, + open: kEnumerableProperty, + delete: kEnumerableProperty, + keys: kEnumerableProperty }) - } - - // 9. - const clonedResponse = cloneResponse(innerResponse) - - // 10. - const bodyReadPromise = createDeferredPromise() - - // 11. - if (innerResponse.body != null) { - // 11.1 - const stream = innerResponse.body.stream - - // 11.2 - const reader = stream.getReader() - - // 11.3 - readAllBytes(reader).then(bodyReadPromise.resolve, bodyReadPromise.reject) - } else { - bodyReadPromise.resolve(undefined) - } - - // 12. - /** @type {CacheBatchOperation[]} */ - const operations = [] - // 13. - /** @type {CacheBatchOperation} */ - const operation = { - type: 'put', // 14. - request: innerRequest, // 15. - response: clonedResponse // 16. - } - - // 17. - operations.push(operation) - - // 19. - const bytes = await bodyReadPromise.promise - - if (clonedResponse.body != null) { - clonedResponse.body.source = bytes - } - - // 19.1 - const cacheJobPromise = createDeferredPromise() + module.exports = { + CacheStorage + } - // 19.2.1 - let errorData = null + /***/ + }, - // 19.2.2 - try { - this.#batchCacheOperations(operations) - } catch (e) { - errorData = e - } + /***/ 29174: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' - // 19.2.3 - queueMicrotask(() => { - // 19.2.3.1 - if (errorData === null) { - cacheJobPromise.resolve() - } else { // 19.2.3.2 - cacheJobPromise.reject(errorData) + module.exports = { + kConstruct: __nccwpck_require__(72785).kConstruct } - }) - return cacheJobPromise.promise - } + /***/ + }, - async delete (request, options = {}) { - webidl.brandCheck(this, Cache) - webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.delete' }) + /***/ 82396: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' - request = webidl.converters.RequestInfo(request) - options = webidl.converters.CacheQueryOptions(options) + const assert = __nccwpck_require__(39491) + const { URLSerializer } = __nccwpck_require__(685) + const { isValidHeaderName } = __nccwpck_require__(52538) - /** - * @type {Request} - */ - let r = null + /** + * @see https://url.spec.whatwg.org/#concept-url-equals + * @param {URL} A + * @param {URL} B + * @param {boolean | undefined} excludeFragment + * @returns {boolean} + */ + function urlEquals(A, B, excludeFragment = false) { + const serializedA = URLSerializer(A, excludeFragment) - if (request instanceof Request) { - r = request[kState] + const serializedB = URLSerializer(B, excludeFragment) - if (r.method !== 'GET' && !options.ignoreMethod) { - return false + return serializedA === serializedB } - } else { - assert(typeof request === 'string') - - r = new Request(request)[kState] - } - /** @type {CacheBatchOperation[]} */ - const operations = [] + /** + * @see https://github.com/chromium/chromium/blob/694d20d134cb553d8d89e5500b9148012b1ba299/content/browser/cache_storage/cache_storage_cache.cc#L260-L262 + * @param {string} header + */ + function fieldValues(header) { + assert(header !== null) - /** @type {CacheBatchOperation} */ - const operation = { - type: 'delete', - request: r, - options - } + const values = [] - operations.push(operation) + for (let value of header.split(',')) { + value = value.trim() - const cacheJobPromise = createDeferredPromise() + if (!value.length) { + continue + } else if (!isValidHeaderName(value)) { + continue + } - let errorData = null - let requestResponses + values.push(value) + } - try { - requestResponses = this.#batchCacheOperations(operations) - } catch (e) { - errorData = e - } + return values + } - queueMicrotask(() => { - if (errorData === null) { - cacheJobPromise.resolve(!!requestResponses?.length) - } else { - cacheJobPromise.reject(errorData) + module.exports = { + urlEquals, + fieldValues } - }) - return cacheJobPromise.promise - } + /***/ + }, - /** - * @see https://w3c.github.io/ServiceWorker/#dom-cache-keys - * @param {any} request - * @param {import('../../types/cache').CacheQueryOptions} options - * @returns {readonly Request[]} - */ - async keys (request = undefined, options = {}) { - webidl.brandCheck(this, Cache) - - if (request !== undefined) request = webidl.converters.RequestInfo(request) - options = webidl.converters.CacheQueryOptions(options) - - // 1. - let r = null - - // 2. - if (request !== undefined) { - // 2.1 - if (request instanceof Request) { - // 2.1.1 - r = request[kState] - - // 2.1.2 - if (r.method !== 'GET' && !options.ignoreMethod) { - return [] - } - } else if (typeof request === 'string') { // 2.2 - r = new Request(request)[kState] + /***/ 33598: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + // @ts-check + + /* global WebAssembly */ + + const assert = __nccwpck_require__(39491) + const net = __nccwpck_require__(41808) + const http = __nccwpck_require__(13685) + const { pipeline } = __nccwpck_require__(12781) + const util = __nccwpck_require__(83983) + const timers = __nccwpck_require__(29459) + const Request = __nccwpck_require__(62905) + const DispatcherBase = __nccwpck_require__(74839) + const { + RequestContentLengthMismatchError, + ResponseContentLengthMismatchError, + InvalidArgumentError, + RequestAbortedError, + HeadersTimeoutError, + HeadersOverflowError, + SocketError, + InformationalError, + BodyTimeoutError, + HTTPParserError, + ResponseExceededMaxSizeError, + ClientDestroyedError + } = __nccwpck_require__(48045) + const buildConnector = __nccwpck_require__(82067) + const { + kUrl, + kReset, + kServerName, + kClient, + kBusy, + kParser, + kConnect, + kBlocking, + kResuming, + kRunning, + kPending, + kSize, + kWriting, + kQueue, + kConnected, + kConnecting, + kNeedDrain, + kNoRef, + kKeepAliveDefaultTimeout, + kHostHeader, + kPendingIdx, + kRunningIdx, + kError, + kPipelining, + kSocket, + kKeepAliveTimeoutValue, + kMaxHeadersSize, + kKeepAliveMaxTimeout, + kKeepAliveTimeoutThreshold, + kHeadersTimeout, + kBodyTimeout, + kStrictContentLength, + kConnector, + kMaxRedirections, + kMaxRequests, + kCounter, + kClose, + kDestroy, + kDispatch, + kInterceptors, + kLocalAddress, + kMaxResponseSize, + kHTTPConnVersion, + // HTTP2 + kHost, + kHTTP2Session, + kHTTP2SessionState, + kHTTP2BuildRequest, + kHTTP2CopyHeaders, + kHTTP1BuildRequest + } = __nccwpck_require__(72785) + + /** @type {import('http2')} */ + let http2 + try { + http2 = __nccwpck_require__(85158) + } catch { + // @ts-ignore + http2 = { constants: {} } } - } - // 4. - const promise = createDeferredPromise() - - // 5. - // 5.1 - const requests = [] + const { + constants: { + HTTP2_HEADER_AUTHORITY, + HTTP2_HEADER_METHOD, + HTTP2_HEADER_PATH, + HTTP2_HEADER_SCHEME, + HTTP2_HEADER_CONTENT_LENGTH, + HTTP2_HEADER_EXPECT, + HTTP2_HEADER_STATUS + } + } = http2 - // 5.2 - if (request === undefined) { - // 5.2.1 - for (const requestResponse of this.#relevantRequestResponseList) { - // 5.2.1.1 - requests.push(requestResponse[0]) - } - } else { // 5.3 - // 5.3.1 - const requestResponses = this.#queryCache(r, options) + // Experimental + let h2ExperimentalWarned = false - // 5.3.2 - for (const requestResponse of requestResponses) { - // 5.3.2.1 - requests.push(requestResponse[0]) - } - } + const FastBuffer = Buffer[Symbol.species] - // 5.4 - queueMicrotask(() => { - // 5.4.1 - const requestList = [] + const kClosedResolve = Symbol('kClosedResolve') - // 5.4.2 - for (const request of requests) { - const requestObject = new Request('https://a') - requestObject[kState] = request - requestObject[kHeaders][kHeadersList] = request.headersList - requestObject[kHeaders][kGuard] = 'immutable' - requestObject[kRealm] = request.client + const channels = {} - // 5.4.2.1 - requestList.push(requestObject) + try { + const diagnosticsChannel = __nccwpck_require__(67643) + channels.sendHeaders = diagnosticsChannel.channel( + 'undici:client:sendHeaders' + ) + channels.beforeConnect = diagnosticsChannel.channel( + 'undici:client:beforeConnect' + ) + channels.connectError = diagnosticsChannel.channel( + 'undici:client:connectError' + ) + channels.connected = diagnosticsChannel.channel( + 'undici:client:connected' + ) + } catch { + channels.sendHeaders = { hasSubscribers: false } + channels.beforeConnect = { hasSubscribers: false } + channels.connectError = { hasSubscribers: false } + channels.connected = { hasSubscribers: false } } - // 5.4.3 - promise.resolve(Object.freeze(requestList)) - }) + /** + * @type {import('../types/client').default} + */ + class Client extends DispatcherBase { + /** + * + * @param {string|URL} url + * @param {import('../types/client').Client.Options} options + */ + constructor( + url, + { + interceptors, + maxHeaderSize, + headersTimeout, + socketTimeout, + requestTimeout, + connectTimeout, + bodyTimeout, + idleTimeout, + keepAlive, + keepAliveTimeout, + maxKeepAliveTimeout, + keepAliveMaxTimeout, + keepAliveTimeoutThreshold, + socketPath, + pipelining, + tls, + strictContentLength, + maxCachedSessions, + maxRedirections, + connect, + maxRequestsPerClient, + localAddress, + maxResponseSize, + autoSelectFamily, + autoSelectFamilyAttemptTimeout, + // h2 + allowH2, + maxConcurrentStreams + } = {} + ) { + super() - return promise.promise - } + if (keepAlive !== undefined) { + throw new InvalidArgumentError( + 'unsupported keepAlive, use pipelining=0 instead' + ) + } - /** - * @see https://w3c.github.io/ServiceWorker/#batch-cache-operations-algorithm - * @param {CacheBatchOperation[]} operations - * @returns {requestResponseList} - */ - #batchCacheOperations (operations) { - // 1. - const cache = this.#relevantRequestResponseList - - // 2. - const backupCache = [...cache] - - // 3. - const addedItems = [] - - // 4.1 - const resultList = [] - - try { - // 4.2 - for (const operation of operations) { - // 4.2.1 - if (operation.type !== 'delete' && operation.type !== 'put') { - throw webidl.errors.exception({ - header: 'Cache.#batchCacheOperations', - message: 'operation type does not match "delete" or "put"' - }) - } + if (socketTimeout !== undefined) { + throw new InvalidArgumentError( + 'unsupported socketTimeout, use headersTimeout & bodyTimeout instead' + ) + } - // 4.2.2 - if (operation.type === 'delete' && operation.response != null) { - throw webidl.errors.exception({ - header: 'Cache.#batchCacheOperations', - message: 'delete operation should not have an associated response' - }) - } + if (requestTimeout !== undefined) { + throw new InvalidArgumentError( + 'unsupported requestTimeout, use headersTimeout & bodyTimeout instead' + ) + } - // 4.2.3 - if (this.#queryCache(operation.request, operation.options, addedItems).length) { - throw new DOMException('???', 'InvalidStateError') - } + if (idleTimeout !== undefined) { + throw new InvalidArgumentError( + 'unsupported idleTimeout, use keepAliveTimeout instead' + ) + } - // 4.2.4 - let requestResponses + if (maxKeepAliveTimeout !== undefined) { + throw new InvalidArgumentError( + 'unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead' + ) + } - // 4.2.5 - if (operation.type === 'delete') { - // 4.2.5.1 - requestResponses = this.#queryCache(operation.request, operation.options) + if (maxHeaderSize != null && !Number.isFinite(maxHeaderSize)) { + throw new InvalidArgumentError('invalid maxHeaderSize') + } - // TODO: the spec is wrong, this is needed to pass WPTs - if (requestResponses.length === 0) { - return [] + if (socketPath != null && typeof socketPath !== 'string') { + throw new InvalidArgumentError('invalid socketPath') } - // 4.2.5.2 - for (const requestResponse of requestResponses) { - const idx = cache.indexOf(requestResponse) - assert(idx !== -1) + if ( + connectTimeout != null && + (!Number.isFinite(connectTimeout) || connectTimeout < 0) + ) { + throw new InvalidArgumentError('invalid connectTimeout') + } - // 4.2.5.2.1 - cache.splice(idx, 1) + if ( + keepAliveTimeout != null && + (!Number.isFinite(keepAliveTimeout) || keepAliveTimeout <= 0) + ) { + throw new InvalidArgumentError('invalid keepAliveTimeout') } - } else if (operation.type === 'put') { // 4.2.6 - // 4.2.6.1 - if (operation.response == null) { - throw webidl.errors.exception({ - header: 'Cache.#batchCacheOperations', - message: 'put operation should have an associated response' - }) + + if ( + keepAliveMaxTimeout != null && + (!Number.isFinite(keepAliveMaxTimeout) || keepAliveMaxTimeout <= 0) + ) { + throw new InvalidArgumentError('invalid keepAliveMaxTimeout') } - // 4.2.6.2 - const r = operation.request + if ( + keepAliveTimeoutThreshold != null && + !Number.isFinite(keepAliveTimeoutThreshold) + ) { + throw new InvalidArgumentError('invalid keepAliveTimeoutThreshold') + } - // 4.2.6.3 - if (!urlIsHttpHttpsScheme(r.url)) { - throw webidl.errors.exception({ - header: 'Cache.#batchCacheOperations', - message: 'expected http or https scheme' - }) + if ( + headersTimeout != null && + (!Number.isInteger(headersTimeout) || headersTimeout < 0) + ) { + throw new InvalidArgumentError( + 'headersTimeout must be a positive integer or zero' + ) } - // 4.2.6.4 - if (r.method !== 'GET') { - throw webidl.errors.exception({ - header: 'Cache.#batchCacheOperations', - message: 'not get method' - }) + if ( + bodyTimeout != null && + (!Number.isInteger(bodyTimeout) || bodyTimeout < 0) + ) { + throw new InvalidArgumentError( + 'bodyTimeout must be a positive integer or zero' + ) } - // 4.2.6.5 - if (operation.options != null) { - throw webidl.errors.exception({ - header: 'Cache.#batchCacheOperations', - message: 'options must not be defined' - }) + if ( + connect != null && + typeof connect !== 'function' && + typeof connect !== 'object' + ) { + throw new InvalidArgumentError( + 'connect must be a function or an object' + ) } - // 4.2.6.6 - requestResponses = this.#queryCache(operation.request) + if ( + maxRedirections != null && + (!Number.isInteger(maxRedirections) || maxRedirections < 0) + ) { + throw new InvalidArgumentError( + 'maxRedirections must be a positive number' + ) + } - // 4.2.6.7 - for (const requestResponse of requestResponses) { - const idx = cache.indexOf(requestResponse) - assert(idx !== -1) + if ( + maxRequestsPerClient != null && + (!Number.isInteger(maxRequestsPerClient) || + maxRequestsPerClient < 0) + ) { + throw new InvalidArgumentError( + 'maxRequestsPerClient must be a positive number' + ) + } - // 4.2.6.7.1 - cache.splice(idx, 1) + if ( + localAddress != null && + (typeof localAddress !== 'string' || net.isIP(localAddress) === 0) + ) { + throw new InvalidArgumentError( + 'localAddress must be valid string IP address' + ) } - // 4.2.6.8 - cache.push([operation.request, operation.response]) + if ( + maxResponseSize != null && + (!Number.isInteger(maxResponseSize) || maxResponseSize < -1) + ) { + throw new InvalidArgumentError( + 'maxResponseSize must be a positive number' + ) + } - // 4.2.6.10 - addedItems.push([operation.request, operation.response]) - } + if ( + autoSelectFamilyAttemptTimeout != null && + (!Number.isInteger(autoSelectFamilyAttemptTimeout) || + autoSelectFamilyAttemptTimeout < -1) + ) { + throw new InvalidArgumentError( + 'autoSelectFamilyAttemptTimeout must be a positive number' + ) + } - // 4.2.7 - resultList.push([operation.request, operation.response]) - } + // h2 + if (allowH2 != null && typeof allowH2 !== 'boolean') { + throw new InvalidArgumentError( + 'allowH2 must be a valid boolean value' + ) + } - // 4.3 - return resultList - } catch (e) { // 5. - // 5.1 - this.#relevantRequestResponseList.length = 0 + if ( + maxConcurrentStreams != null && + (typeof maxConcurrentStreams !== 'number' || + maxConcurrentStreams < 1) + ) { + throw new InvalidArgumentError( + 'maxConcurrentStreams must be a possitive integer, greater than 0' + ) + } - // 5.2 - this.#relevantRequestResponseList = backupCache + if (typeof connect !== 'function') { + connect = buildConnector({ + ...tls, + maxCachedSessions, + allowH2, + socketPath, + timeout: connectTimeout, + ...(util.nodeHasAutoSelectFamily && autoSelectFamily + ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } + : undefined), + ...connect + }) + } - // 5.3 - throw e - } - } + this[kInterceptors] = + interceptors && + interceptors.Client && + Array.isArray(interceptors.Client) + ? interceptors.Client + : [createRedirectInterceptor({ maxRedirections })] + this[kUrl] = util.parseOrigin(url) + this[kConnector] = connect + this[kSocket] = null + this[kPipelining] = pipelining != null ? pipelining : 1 + this[kMaxHeadersSize] = maxHeaderSize || http.maxHeaderSize + this[kKeepAliveDefaultTimeout] = + keepAliveTimeout == null ? 4e3 : keepAliveTimeout + this[kKeepAliveMaxTimeout] = + keepAliveMaxTimeout == null ? 600e3 : keepAliveMaxTimeout + this[kKeepAliveTimeoutThreshold] = + keepAliveTimeoutThreshold == null ? 1e3 : keepAliveTimeoutThreshold + this[kKeepAliveTimeoutValue] = this[kKeepAliveDefaultTimeout] + this[kServerName] = null + this[kLocalAddress] = localAddress != null ? localAddress : null + this[kResuming] = 0 // 0, idle, 1, scheduled, 2 resuming + this[kNeedDrain] = 0 // 0, idle, 1, scheduled, 2 resuming + this[kHostHeader] = + `host: ${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ''}\r\n` + this[kBodyTimeout] = bodyTimeout != null ? bodyTimeout : 300e3 + this[kHeadersTimeout] = + headersTimeout != null ? headersTimeout : 300e3 + this[kStrictContentLength] = + strictContentLength == null ? true : strictContentLength + this[kMaxRedirections] = maxRedirections + this[kMaxRequests] = maxRequestsPerClient + this[kClosedResolve] = null + this[kMaxResponseSize] = maxResponseSize > -1 ? maxResponseSize : -1 + this[kHTTPConnVersion] = 'h1' + + // HTTP/2 + this[kHTTP2Session] = null + this[kHTTP2SessionState] = !allowH2 + ? null + : { + // streams: null, // Fixed queue of streams - For future support of `push` + openStreams: 0, // Keep track of them to decide wether or not unref the session + maxConcurrentStreams: + maxConcurrentStreams != null ? maxConcurrentStreams : 100 // Max peerConcurrentStreams for a Node h2 server + } + this[kHost] = + `${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ''}` - /** - * @see https://w3c.github.io/ServiceWorker/#query-cache - * @param {any} requestQuery - * @param {import('../../types/cache').CacheQueryOptions} options - * @param {requestResponseList} targetStorage - * @returns {requestResponseList} - */ - #queryCache (requestQuery, options, targetStorage) { - /** @type {requestResponseList} */ - const resultList = [] + // kQueue is built up of 3 sections separated by + // the kRunningIdx and kPendingIdx indices. + // | complete | running | pending | + // ^ kRunningIdx ^ kPendingIdx ^ kQueue.length + // kRunningIdx points to the first running element. + // kPendingIdx points to the first pending element. + // This implements a fast queue with an amortized + // time of O(1). - const storage = targetStorage ?? this.#relevantRequestResponseList + this[kQueue] = [] + this[kRunningIdx] = 0 + this[kPendingIdx] = 0 + } - for (const requestResponse of storage) { - const [cachedRequest, cachedResponse] = requestResponse - if (this.#requestMatchesCachedItem(requestQuery, cachedRequest, cachedResponse, options)) { - resultList.push(requestResponse) - } - } + get pipelining() { + return this[kPipelining] + } - return resultList - } + set pipelining(value) { + this[kPipelining] = value + resume(this, true) + } - /** - * @see https://w3c.github.io/ServiceWorker/#request-matches-cached-item-algorithm - * @param {any} requestQuery - * @param {any} request - * @param {any | null} response - * @param {import('../../types/cache').CacheQueryOptions | undefined} options - * @returns {boolean} - */ - #requestMatchesCachedItem (requestQuery, request, response = null, options) { - // if (options?.ignoreMethod === false && request.method === 'GET') { - // return false - // } + get [kPending]() { + return this[kQueue].length - this[kPendingIdx] + } - const queryURL = new URL(requestQuery.url) + get [kRunning]() { + return this[kPendingIdx] - this[kRunningIdx] + } - const cachedURL = new URL(request.url) + get [kSize]() { + return this[kQueue].length - this[kRunningIdx] + } - if (options?.ignoreSearch) { - cachedURL.search = '' + get [kConnected]() { + return ( + !!this[kSocket] && !this[kConnecting] && !this[kSocket].destroyed + ) + } - queryURL.search = '' - } + get [kBusy]() { + const socket = this[kSocket] + return ( + (socket && + (socket[kReset] || socket[kWriting] || socket[kBlocking])) || + this[kSize] >= (this[kPipelining] || 1) || + this[kPending] > 0 + ) + } - if (!urlEquals(queryURL, cachedURL, true)) { - return false - } + /* istanbul ignore: only used for test */ + [kConnect](cb) { + connect(this) + this.once('connect', cb) + } - if ( - response == null || - options?.ignoreVary || - !response.headersList.contains('vary') - ) { - return true - } + [kDispatch](opts, handler) { + const origin = opts.origin || this[kUrl].origin - const fieldValues = getFieldValues(response.headersList.get('vary')) + const request = + this[kHTTPConnVersion] === 'h2' + ? Request[kHTTP2BuildRequest](origin, opts, handler) + : Request[kHTTP1BuildRequest](origin, opts, handler) - for (const fieldValue of fieldValues) { - if (fieldValue === '*') { - return false - } + this[kQueue].push(request) + if (this[kResuming]) { + // Do nothing. + } else if ( + util.bodyLength(request.body) == null && + util.isIterable(request.body) + ) { + // Wait a tick in case stream/iterator is ended in the same tick. + this[kResuming] = 1 + process.nextTick(resume, this) + } else { + resume(this, true) + } - const requestValue = request.headersList.get(fieldValue) - const queryValue = requestQuery.headersList.get(fieldValue) + if (this[kResuming] && this[kNeedDrain] !== 2 && this[kBusy]) { + this[kNeedDrain] = 2 + } - // If one has the header and the other doesn't, or one has - // a different value than the other, return false - if (requestValue !== queryValue) { - return false - } - } + return this[kNeedDrain] < 2 + } - return true - } -} - -Object.defineProperties(Cache.prototype, { - [Symbol.toStringTag]: { - value: 'Cache', - configurable: true - }, - match: kEnumerableProperty, - matchAll: kEnumerableProperty, - add: kEnumerableProperty, - addAll: kEnumerableProperty, - put: kEnumerableProperty, - delete: kEnumerableProperty, - keys: kEnumerableProperty -}) - -const cacheQueryOptionConverters = [ - { - key: 'ignoreSearch', - converter: webidl.converters.boolean, - defaultValue: false - }, - { - key: 'ignoreMethod', - converter: webidl.converters.boolean, - defaultValue: false - }, - { - key: 'ignoreVary', - converter: webidl.converters.boolean, - defaultValue: false - } -] + async [kClose]() { + // TODO: for H2 we need to gracefully flush the remaining enqueued + // request and close each stream. + return new Promise(resolve => { + if (!this[kSize]) { + resolve(null) + } else { + this[kClosedResolve] = resolve + } + }) + } -webidl.converters.CacheQueryOptions = webidl.dictionaryConverter(cacheQueryOptionConverters) + async [kDestroy](err) { + return new Promise(resolve => { + const requests = this[kQueue].splice(this[kPendingIdx]) + for (let i = 0; i < requests.length; i++) { + const request = requests[i] + errorRequest(this, request, err) + } -webidl.converters.MultiCacheQueryOptions = webidl.dictionaryConverter([ - ...cacheQueryOptionConverters, - { - key: 'cacheName', - converter: webidl.converters.DOMString - } -]) + const callback = () => { + if (this[kClosedResolve]) { + // TODO (fix): Should we error here with ClientDestroyedError? + this[kClosedResolve]() + this[kClosedResolve] = null + } + resolve() + } -webidl.converters.Response = webidl.interfaceConverter(Response) + if (this[kHTTP2Session] != null) { + util.destroy(this[kHTTP2Session], err) + this[kHTTP2Session] = null + this[kHTTP2SessionState] = null + } -webidl.converters['sequence'] = webidl.sequenceConverter( - webidl.converters.RequestInfo -) + if (!this[kSocket]) { + queueMicrotask(callback) + } else { + util.destroy(this[kSocket].on('close', callback), err) + } -module.exports = { - Cache -} + resume(this) + }) + } + } + function onHttp2SessionError(err) { + assert(err.code !== 'ERR_TLS_CERT_ALTNAME_INVALID') -/***/ }), + this[kSocket][kError] = err -/***/ 37907: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + onError(this[kClient], err) + } -"use strict"; + function onHttp2FrameError(type, code, id) { + const err = new InformationalError( + `HTTP/2: "frameError" received - type ${type}, code ${code}` + ) + if (id === 0) { + this[kSocket][kError] = err + onError(this[kClient], err) + } + } -const { kConstruct } = __nccwpck_require__(29174) -const { Cache } = __nccwpck_require__(66101) -const { webidl } = __nccwpck_require__(21744) -const { kEnumerableProperty } = __nccwpck_require__(83983) + function onHttp2SessionEnd() { + util.destroy(this, new SocketError('other side closed')) + util.destroy(this[kSocket], new SocketError('other side closed')) + } -class CacheStorage { - /** - * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-name-to-cache-map - * @type {Map 0) { + // Fail head of pipeline. + const request = client[kQueue][client[kRunningIdx]] + client[kQueue][client[kRunningIdx]++] = null - request = webidl.converters.RequestInfo(request) - options = webidl.converters.MultiCacheQueryOptions(options) + errorRequest(client, request, err) + } - // 1. - if (options.cacheName != null) { - // 1.1.1.1 - if (this.#caches.has(options.cacheName)) { - // 1.1.1.1.1 - const cacheList = this.#caches.get(options.cacheName) - const cache = new Cache(kConstruct, cacheList) + client[kPendingIdx] = client[kRunningIdx] - return await cache.match(request, options) - } - } else { // 2. - // 2.2 - for (const cacheList of this.#caches.values()) { - const cache = new Cache(kConstruct, cacheList) + assert(client[kRunning] === 0) - // 2.2.1.2 - const response = await cache.match(request, options) + client.emit('disconnect', client[kUrl], [client], err) - if (response !== undefined) { - return response - } + resume(client) } - } - } - /** - * @see https://w3c.github.io/ServiceWorker/#cache-storage-has - * @param {string} cacheName - * @returns {Promise} - */ - async has (cacheName) { - webidl.brandCheck(this, CacheStorage) - webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.has' }) + const constants = __nccwpck_require__(30953) + const createRedirectInterceptor = __nccwpck_require__(38861) + const EMPTY_BUF = Buffer.alloc(0) - cacheName = webidl.converters.DOMString(cacheName) + async function lazyllhttp() { + const llhttpWasmData = process.env.JEST_WORKER_ID + ? __nccwpck_require__(61145) + : undefined - // 2.1.1 - // 2.2 - return this.#caches.has(cacheName) - } + let mod + try { + mod = await WebAssembly.compile( + Buffer.from(__nccwpck_require__(95627), 'base64') + ) + } catch (e) { + /* istanbul ignore next */ + + // We could check if the error was caused by the simd option not + // being enabled, but the occurring of this other error + // * https://github.com/emscripten-core/emscripten/issues/11495 + // got me to remove that check to avoid breaking Node 12. + mod = await WebAssembly.compile( + Buffer.from(llhttpWasmData || __nccwpck_require__(61145), 'base64') + ) + } - /** - * @see https://w3c.github.io/ServiceWorker/#dom-cachestorage-open - * @param {string} cacheName - * @returns {Promise} - */ - async open (cacheName) { - webidl.brandCheck(this, CacheStorage) - webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.open' }) + return await WebAssembly.instantiate(mod, { + env: { + /* eslint-disable camelcase */ - cacheName = webidl.converters.DOMString(cacheName) + wasm_on_url: (p, at, len) => { + /* istanbul ignore next */ + return 0 + }, + wasm_on_status: (p, at, len) => { + assert.strictEqual(currentParser.ptr, p) + const start = at - currentBufferPtr + currentBufferRef.byteOffset + return ( + currentParser.onStatus( + new FastBuffer(currentBufferRef.buffer, start, len) + ) || 0 + ) + }, + wasm_on_message_begin: p => { + assert.strictEqual(currentParser.ptr, p) + return currentParser.onMessageBegin() || 0 + }, + wasm_on_header_field: (p, at, len) => { + assert.strictEqual(currentParser.ptr, p) + const start = at - currentBufferPtr + currentBufferRef.byteOffset + return ( + currentParser.onHeaderField( + new FastBuffer(currentBufferRef.buffer, start, len) + ) || 0 + ) + }, + wasm_on_header_value: (p, at, len) => { + assert.strictEqual(currentParser.ptr, p) + const start = at - currentBufferPtr + currentBufferRef.byteOffset + return ( + currentParser.onHeaderValue( + new FastBuffer(currentBufferRef.buffer, start, len) + ) || 0 + ) + }, + wasm_on_headers_complete: ( + p, + statusCode, + upgrade, + shouldKeepAlive + ) => { + assert.strictEqual(currentParser.ptr, p) + return ( + currentParser.onHeadersComplete( + statusCode, + Boolean(upgrade), + Boolean(shouldKeepAlive) + ) || 0 + ) + }, + wasm_on_body: (p, at, len) => { + assert.strictEqual(currentParser.ptr, p) + const start = at - currentBufferPtr + currentBufferRef.byteOffset + return ( + currentParser.onBody( + new FastBuffer(currentBufferRef.buffer, start, len) + ) || 0 + ) + }, + wasm_on_message_complete: p => { + assert.strictEqual(currentParser.ptr, p) + return currentParser.onMessageComplete() || 0 + } - // 2.1 - if (this.#caches.has(cacheName)) { - // await caches.open('v1') !== await caches.open('v1') + /* eslint-enable camelcase */ + } + }) + } - // 2.1.1 - const cache = this.#caches.get(cacheName) + let llhttpInstance = null + let llhttpPromise = lazyllhttp() + llhttpPromise.catch() - // 2.1.1.1 - return new Cache(kConstruct, cache) - } + let currentParser = null + let currentBufferRef = null + let currentBufferSize = 0 + let currentBufferPtr = null - // 2.2 - const cache = [] + const TIMEOUT_HEADERS = 1 + const TIMEOUT_BODY = 2 + const TIMEOUT_IDLE = 3 - // 2.3 - this.#caches.set(cacheName, cache) + class Parser { + constructor(client, socket, { exports }) { + assert( + Number.isFinite(client[kMaxHeadersSize]) && + client[kMaxHeadersSize] > 0 + ) - // 2.4 - return new Cache(kConstruct, cache) - } + this.llhttp = exports + this.ptr = this.llhttp.llhttp_alloc(constants.TYPE.RESPONSE) + this.client = client + this.socket = socket + this.timeout = null + this.timeoutValue = null + this.timeoutType = null + this.statusCode = null + this.statusText = '' + this.upgrade = false + this.headers = [] + this.headersSize = 0 + this.headersMaxSize = client[kMaxHeadersSize] + this.shouldKeepAlive = false + this.paused = false + this.resume = this.resume.bind(this) + + this.bytesRead = 0 + + this.keepAlive = '' + this.contentLength = '' + this.connection = '' + this.maxResponseSize = client[kMaxResponseSize] + } + + setTimeout(value, type) { + this.timeoutType = type + if (value !== this.timeoutValue) { + timers.clearTimeout(this.timeout) + if (value) { + this.timeout = timers.setTimeout(onParserTimeout, value, this) + // istanbul ignore else: only for jest + if (this.timeout.unref) { + this.timeout.unref() + } + } else { + this.timeout = null + } + this.timeoutValue = value + } else if (this.timeout) { + // istanbul ignore else: only for jest + if (this.timeout.refresh) { + this.timeout.refresh() + } + } + } - /** - * @see https://w3c.github.io/ServiceWorker/#cache-storage-delete - * @param {string} cacheName - * @returns {Promise} - */ - async delete (cacheName) { - webidl.brandCheck(this, CacheStorage) - webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.delete' }) + resume() { + if (this.socket.destroyed || !this.paused) { + return + } - cacheName = webidl.converters.DOMString(cacheName) + assert(this.ptr != null) + assert(currentParser == null) - return this.#caches.delete(cacheName) - } + this.llhttp.llhttp_resume(this.ptr) - /** - * @see https://w3c.github.io/ServiceWorker/#cache-storage-keys - * @returns {string[]} - */ - async keys () { - webidl.brandCheck(this, CacheStorage) + assert(this.timeoutType === TIMEOUT_BODY) + if (this.timeout) { + // istanbul ignore else: only for jest + if (this.timeout.refresh) { + this.timeout.refresh() + } + } - // 2.1 - const keys = this.#caches.keys() + this.paused = false + this.execute(this.socket.read() || EMPTY_BUF) // Flush parser. + this.readMore() + } - // 2.2 - return [...keys] - } -} + readMore() { + while (!this.paused && this.ptr) { + const chunk = this.socket.read() + if (chunk === null) { + break + } + this.execute(chunk) + } + } -Object.defineProperties(CacheStorage.prototype, { - [Symbol.toStringTag]: { - value: 'CacheStorage', - configurable: true - }, - match: kEnumerableProperty, - has: kEnumerableProperty, - open: kEnumerableProperty, - delete: kEnumerableProperty, - keys: kEnumerableProperty -}) + execute(data) { + assert(this.ptr != null) + assert(currentParser == null) + assert(!this.paused) -module.exports = { - CacheStorage -} + const { socket, llhttp } = this + if (data.length > currentBufferSize) { + if (currentBufferPtr) { + llhttp.free(currentBufferPtr) + } + currentBufferSize = Math.ceil(data.length / 4096) * 4096 + currentBufferPtr = llhttp.malloc(currentBufferSize) + } -/***/ }), + new Uint8Array( + llhttp.memory.buffer, + currentBufferPtr, + currentBufferSize + ).set(data) -/***/ 29174: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + // Call `execute` on the wasm parser. + // We pass the `llhttp_parser` pointer address, the pointer address of buffer view data, + // and finally the length of bytes to parse. + // The return value is an error code or `constants.ERROR.OK`. + try { + let ret -"use strict"; + try { + currentBufferRef = data + currentParser = this + ret = llhttp.llhttp_execute( + this.ptr, + currentBufferPtr, + data.length + ) + /* eslint-disable-next-line no-useless-catch */ + } catch (err) { + /* istanbul ignore next: difficult to make a test case for */ + throw err + } finally { + currentParser = null + currentBufferRef = null + } + const offset = + llhttp.llhttp_get_error_pos(this.ptr) - currentBufferPtr + + if (ret === constants.ERROR.PAUSED_UPGRADE) { + this.onUpgrade(data.slice(offset)) + } else if (ret === constants.ERROR.PAUSED) { + this.paused = true + socket.unshift(data.slice(offset)) + } else if (ret !== constants.ERROR.OK) { + const ptr = llhttp.llhttp_get_error_reason(this.ptr) + let message = '' + /* istanbul ignore else: difficult to make a test case for */ + if (ptr) { + const len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0) + message = + 'Response does not match the HTTP/1.1 protocol (' + + Buffer.from(llhttp.memory.buffer, ptr, len).toString() + + ')' + } + throw new HTTPParserError( + message, + constants.ERROR[ret], + data.slice(offset) + ) + } + } catch (err) { + util.destroy(socket, err) + } + } -module.exports = { - kConstruct: (__nccwpck_require__(72785).kConstruct) -} + destroy() { + assert(this.ptr != null) + assert(currentParser == null) + this.llhttp.llhttp_free(this.ptr) + this.ptr = null -/***/ }), + timers.clearTimeout(this.timeout) + this.timeout = null + this.timeoutValue = null + this.timeoutType = null -/***/ 82396: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + this.paused = false + } -"use strict"; + onStatus(buf) { + this.statusText = buf.toString() + } + onMessageBegin() { + const { socket, client } = this -const assert = __nccwpck_require__(39491) -const { URLSerializer } = __nccwpck_require__(685) -const { isValidHeaderName } = __nccwpck_require__(52538) + /* istanbul ignore next: difficult to make a test case for */ + if (socket.destroyed) { + return -1 + } -/** - * @see https://url.spec.whatwg.org/#concept-url-equals - * @param {URL} A - * @param {URL} B - * @param {boolean | undefined} excludeFragment - * @returns {boolean} - */ -function urlEquals (A, B, excludeFragment = false) { - const serializedA = URLSerializer(A, excludeFragment) + const request = client[kQueue][client[kRunningIdx]] + if (!request) { + return -1 + } + } - const serializedB = URLSerializer(B, excludeFragment) + onHeaderField(buf) { + const len = this.headers.length - return serializedA === serializedB -} + if ((len & 1) === 0) { + this.headers.push(buf) + } else { + this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf]) + } -/** - * @see https://github.com/chromium/chromium/blob/694d20d134cb553d8d89e5500b9148012b1ba299/content/browser/cache_storage/cache_storage_cache.cc#L260-L262 - * @param {string} header - */ -function fieldValues (header) { - assert(header !== null) + this.trackHeader(buf.length) + } - const values = [] + onHeaderValue(buf) { + let len = this.headers.length - for (let value of header.split(',')) { - value = value.trim() + if ((len & 1) === 1) { + this.headers.push(buf) + len += 1 + } else { + this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf]) + } - if (!value.length) { - continue - } else if (!isValidHeaderName(value)) { - continue - } + const key = this.headers[len - 2] + if ( + key.length === 10 && + key.toString().toLowerCase() === 'keep-alive' + ) { + this.keepAlive += buf.toString() + } else if ( + key.length === 10 && + key.toString().toLowerCase() === 'connection' + ) { + this.connection += buf.toString() + } else if ( + key.length === 14 && + key.toString().toLowerCase() === 'content-length' + ) { + this.contentLength += buf.toString() + } - values.push(value) - } + this.trackHeader(buf.length) + } - return values -} - -module.exports = { - urlEquals, - fieldValues -} - - -/***/ }), - -/***/ 33598: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; -// @ts-check - - - -/* global WebAssembly */ - -const assert = __nccwpck_require__(39491) -const net = __nccwpck_require__(41808) -const http = __nccwpck_require__(13685) -const { pipeline } = __nccwpck_require__(12781) -const util = __nccwpck_require__(83983) -const timers = __nccwpck_require__(29459) -const Request = __nccwpck_require__(62905) -const DispatcherBase = __nccwpck_require__(74839) -const { - RequestContentLengthMismatchError, - ResponseContentLengthMismatchError, - InvalidArgumentError, - RequestAbortedError, - HeadersTimeoutError, - HeadersOverflowError, - SocketError, - InformationalError, - BodyTimeoutError, - HTTPParserError, - ResponseExceededMaxSizeError, - ClientDestroyedError -} = __nccwpck_require__(48045) -const buildConnector = __nccwpck_require__(82067) -const { - kUrl, - kReset, - kServerName, - kClient, - kBusy, - kParser, - kConnect, - kBlocking, - kResuming, - kRunning, - kPending, - kSize, - kWriting, - kQueue, - kConnected, - kConnecting, - kNeedDrain, - kNoRef, - kKeepAliveDefaultTimeout, - kHostHeader, - kPendingIdx, - kRunningIdx, - kError, - kPipelining, - kSocket, - kKeepAliveTimeoutValue, - kMaxHeadersSize, - kKeepAliveMaxTimeout, - kKeepAliveTimeoutThreshold, - kHeadersTimeout, - kBodyTimeout, - kStrictContentLength, - kConnector, - kMaxRedirections, - kMaxRequests, - kCounter, - kClose, - kDestroy, - kDispatch, - kInterceptors, - kLocalAddress, - kMaxResponseSize, - kHTTPConnVersion, - // HTTP2 - kHost, - kHTTP2Session, - kHTTP2SessionState, - kHTTP2BuildRequest, - kHTTP2CopyHeaders, - kHTTP1BuildRequest -} = __nccwpck_require__(72785) - -/** @type {import('http2')} */ -let http2 -try { - http2 = __nccwpck_require__(85158) -} catch { - // @ts-ignore - http2 = { constants: {} } -} - -const { - constants: { - HTTP2_HEADER_AUTHORITY, - HTTP2_HEADER_METHOD, - HTTP2_HEADER_PATH, - HTTP2_HEADER_SCHEME, - HTTP2_HEADER_CONTENT_LENGTH, - HTTP2_HEADER_EXPECT, - HTTP2_HEADER_STATUS - } -} = http2 + trackHeader(len) { + this.headersSize += len + if (this.headersSize >= this.headersMaxSize) { + util.destroy(this.socket, new HeadersOverflowError()) + } + } -// Experimental -let h2ExperimentalWarned = false + onUpgrade(head) { + const { upgrade, client, socket, headers, statusCode } = this -const FastBuffer = Buffer[Symbol.species] + assert(upgrade) -const kClosedResolve = Symbol('kClosedResolve') + const request = client[kQueue][client[kRunningIdx]] + assert(request) + + assert(!socket.destroyed) + assert(socket === client[kSocket]) + assert(!this.paused) + assert(request.upgrade || request.method === 'CONNECT') + + this.statusCode = null + this.statusText = '' + this.shouldKeepAlive = null + + assert(this.headers.length % 2 === 0) + this.headers = [] + this.headersSize = 0 + + socket.unshift(head) + + socket[kParser].destroy() + socket[kParser] = null + + socket[kClient] = null + socket[kError] = null + socket + .removeListener('error', onSocketError) + .removeListener('readable', onSocketReadable) + .removeListener('end', onSocketEnd) + .removeListener('close', onSocketClose) + + client[kSocket] = null + client[kQueue][client[kRunningIdx]++] = null + client.emit( + 'disconnect', + client[kUrl], + [client], + new InformationalError('upgrade') + ) -const channels = {} + try { + request.onUpgrade(statusCode, headers, socket) + } catch (err) { + util.destroy(socket, err) + } -try { - const diagnosticsChannel = __nccwpck_require__(67643) - channels.sendHeaders = diagnosticsChannel.channel('undici:client:sendHeaders') - channels.beforeConnect = diagnosticsChannel.channel('undici:client:beforeConnect') - channels.connectError = diagnosticsChannel.channel('undici:client:connectError') - channels.connected = diagnosticsChannel.channel('undici:client:connected') -} catch { - channels.sendHeaders = { hasSubscribers: false } - channels.beforeConnect = { hasSubscribers: false } - channels.connectError = { hasSubscribers: false } - channels.connected = { hasSubscribers: false } -} + resume(client) + } -/** - * @type {import('../types/client').default} - */ -class Client extends DispatcherBase { - /** - * - * @param {string|URL} url - * @param {import('../types/client').Client.Options} options - */ - constructor (url, { - interceptors, - maxHeaderSize, - headersTimeout, - socketTimeout, - requestTimeout, - connectTimeout, - bodyTimeout, - idleTimeout, - keepAlive, - keepAliveTimeout, - maxKeepAliveTimeout, - keepAliveMaxTimeout, - keepAliveTimeoutThreshold, - socketPath, - pipelining, - tls, - strictContentLength, - maxCachedSessions, - maxRedirections, - connect, - maxRequestsPerClient, - localAddress, - maxResponseSize, - autoSelectFamily, - autoSelectFamilyAttemptTimeout, - // h2 - allowH2, - maxConcurrentStreams - } = {}) { - super() - - if (keepAlive !== undefined) { - throw new InvalidArgumentError('unsupported keepAlive, use pipelining=0 instead') - } + onHeadersComplete(statusCode, upgrade, shouldKeepAlive) { + const { client, socket, headers, statusText } = this - if (socketTimeout !== undefined) { - throw new InvalidArgumentError('unsupported socketTimeout, use headersTimeout & bodyTimeout instead') - } + /* istanbul ignore next: difficult to make a test case for */ + if (socket.destroyed) { + return -1 + } - if (requestTimeout !== undefined) { - throw new InvalidArgumentError('unsupported requestTimeout, use headersTimeout & bodyTimeout instead') - } + const request = client[kQueue][client[kRunningIdx]] - if (idleTimeout !== undefined) { - throw new InvalidArgumentError('unsupported idleTimeout, use keepAliveTimeout instead') - } + /* istanbul ignore next: difficult to make a test case for */ + if (!request) { + return -1 + } - if (maxKeepAliveTimeout !== undefined) { - throw new InvalidArgumentError('unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead') - } + assert(!this.upgrade) + assert(this.statusCode < 200) - if (maxHeaderSize != null && !Number.isFinite(maxHeaderSize)) { - throw new InvalidArgumentError('invalid maxHeaderSize') - } + if (statusCode === 100) { + util.destroy( + socket, + new SocketError('bad response', util.getSocketInfo(socket)) + ) + return -1 + } - if (socketPath != null && typeof socketPath !== 'string') { - throw new InvalidArgumentError('invalid socketPath') - } + /* this can only happen if server is misbehaving */ + if (upgrade && !request.upgrade) { + util.destroy( + socket, + new SocketError('bad upgrade', util.getSocketInfo(socket)) + ) + return -1 + } - if (connectTimeout != null && (!Number.isFinite(connectTimeout) || connectTimeout < 0)) { - throw new InvalidArgumentError('invalid connectTimeout') - } + assert.strictEqual(this.timeoutType, TIMEOUT_HEADERS) + + this.statusCode = statusCode + this.shouldKeepAlive = + shouldKeepAlive || + // Override llhttp value which does not allow keepAlive for HEAD. + (request.method === 'HEAD' && + !socket[kReset] && + this.connection.toLowerCase() === 'keep-alive') + + if (this.statusCode >= 200) { + const bodyTimeout = + request.bodyTimeout != null + ? request.bodyTimeout + : client[kBodyTimeout] + this.setTimeout(bodyTimeout, TIMEOUT_BODY) + } else if (this.timeout) { + // istanbul ignore else: only for jest + if (this.timeout.refresh) { + this.timeout.refresh() + } + } - if (keepAliveTimeout != null && (!Number.isFinite(keepAliveTimeout) || keepAliveTimeout <= 0)) { - throw new InvalidArgumentError('invalid keepAliveTimeout') - } + if (request.method === 'CONNECT') { + assert(client[kRunning] === 1) + this.upgrade = true + return 2 + } - if (keepAliveMaxTimeout != null && (!Number.isFinite(keepAliveMaxTimeout) || keepAliveMaxTimeout <= 0)) { - throw new InvalidArgumentError('invalid keepAliveMaxTimeout') - } + if (upgrade) { + assert(client[kRunning] === 1) + this.upgrade = true + return 2 + } - if (keepAliveTimeoutThreshold != null && !Number.isFinite(keepAliveTimeoutThreshold)) { - throw new InvalidArgumentError('invalid keepAliveTimeoutThreshold') - } + assert(this.headers.length % 2 === 0) + this.headers = [] + this.headersSize = 0 + + if (this.shouldKeepAlive && client[kPipelining]) { + const keepAliveTimeout = this.keepAlive + ? util.parseKeepAliveTimeout(this.keepAlive) + : null + + if (keepAliveTimeout != null) { + const timeout = Math.min( + keepAliveTimeout - client[kKeepAliveTimeoutThreshold], + client[kKeepAliveMaxTimeout] + ) + if (timeout <= 0) { + socket[kReset] = true + } else { + client[kKeepAliveTimeoutValue] = timeout + } + } else { + client[kKeepAliveTimeoutValue] = client[kKeepAliveDefaultTimeout] + } + } else { + // Stop more requests from being dispatched. + socket[kReset] = true + } - if (headersTimeout != null && (!Number.isInteger(headersTimeout) || headersTimeout < 0)) { - throw new InvalidArgumentError('headersTimeout must be a positive integer or zero') - } + const pause = + request.onHeaders(statusCode, headers, this.resume, statusText) === + false - if (bodyTimeout != null && (!Number.isInteger(bodyTimeout) || bodyTimeout < 0)) { - throw new InvalidArgumentError('bodyTimeout must be a positive integer or zero') - } + if (request.aborted) { + return -1 + } - if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') { - throw new InvalidArgumentError('connect must be a function or an object') - } + if (request.method === 'HEAD') { + return 1 + } - if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) { - throw new InvalidArgumentError('maxRedirections must be a positive number') - } + if (statusCode < 200) { + return 1 + } - if (maxRequestsPerClient != null && (!Number.isInteger(maxRequestsPerClient) || maxRequestsPerClient < 0)) { - throw new InvalidArgumentError('maxRequestsPerClient must be a positive number') - } + if (socket[kBlocking]) { + socket[kBlocking] = false + resume(client) + } - if (localAddress != null && (typeof localAddress !== 'string' || net.isIP(localAddress) === 0)) { - throw new InvalidArgumentError('localAddress must be valid string IP address') - } + return pause ? constants.ERROR.PAUSED : 0 + } - if (maxResponseSize != null && (!Number.isInteger(maxResponseSize) || maxResponseSize < -1)) { - throw new InvalidArgumentError('maxResponseSize must be a positive number') - } + onBody(buf) { + const { client, socket, statusCode, maxResponseSize } = this - if ( - autoSelectFamilyAttemptTimeout != null && - (!Number.isInteger(autoSelectFamilyAttemptTimeout) || autoSelectFamilyAttemptTimeout < -1) - ) { - throw new InvalidArgumentError('autoSelectFamilyAttemptTimeout must be a positive number') - } + if (socket.destroyed) { + return -1 + } - // h2 - if (allowH2 != null && typeof allowH2 !== 'boolean') { - throw new InvalidArgumentError('allowH2 must be a valid boolean value') - } + const request = client[kQueue][client[kRunningIdx]] + assert(request) - if (maxConcurrentStreams != null && (typeof maxConcurrentStreams !== 'number' || maxConcurrentStreams < 1)) { - throw new InvalidArgumentError('maxConcurrentStreams must be a possitive integer, greater than 0') - } + assert.strictEqual(this.timeoutType, TIMEOUT_BODY) + if (this.timeout) { + // istanbul ignore else: only for jest + if (this.timeout.refresh) { + this.timeout.refresh() + } + } - if (typeof connect !== 'function') { - connect = buildConnector({ - ...tls, - maxCachedSessions, - allowH2, - socketPath, - timeout: connectTimeout, - ...(util.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : undefined), - ...connect - }) - } + assert(statusCode >= 200) - this[kInterceptors] = interceptors && interceptors.Client && Array.isArray(interceptors.Client) - ? interceptors.Client - : [createRedirectInterceptor({ maxRedirections })] - this[kUrl] = util.parseOrigin(url) - this[kConnector] = connect - this[kSocket] = null - this[kPipelining] = pipelining != null ? pipelining : 1 - this[kMaxHeadersSize] = maxHeaderSize || http.maxHeaderSize - this[kKeepAliveDefaultTimeout] = keepAliveTimeout == null ? 4e3 : keepAliveTimeout - this[kKeepAliveMaxTimeout] = keepAliveMaxTimeout == null ? 600e3 : keepAliveMaxTimeout - this[kKeepAliveTimeoutThreshold] = keepAliveTimeoutThreshold == null ? 1e3 : keepAliveTimeoutThreshold - this[kKeepAliveTimeoutValue] = this[kKeepAliveDefaultTimeout] - this[kServerName] = null - this[kLocalAddress] = localAddress != null ? localAddress : null - this[kResuming] = 0 // 0, idle, 1, scheduled, 2 resuming - this[kNeedDrain] = 0 // 0, idle, 1, scheduled, 2 resuming - this[kHostHeader] = `host: ${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ''}\r\n` - this[kBodyTimeout] = bodyTimeout != null ? bodyTimeout : 300e3 - this[kHeadersTimeout] = headersTimeout != null ? headersTimeout : 300e3 - this[kStrictContentLength] = strictContentLength == null ? true : strictContentLength - this[kMaxRedirections] = maxRedirections - this[kMaxRequests] = maxRequestsPerClient - this[kClosedResolve] = null - this[kMaxResponseSize] = maxResponseSize > -1 ? maxResponseSize : -1 - this[kHTTPConnVersion] = 'h1' - - // HTTP/2 - this[kHTTP2Session] = null - this[kHTTP2SessionState] = !allowH2 - ? null - : { - // streams: null, // Fixed queue of streams - For future support of `push` - openStreams: 0, // Keep track of them to decide wether or not unref the session - maxConcurrentStreams: maxConcurrentStreams != null ? maxConcurrentStreams : 100 // Max peerConcurrentStreams for a Node h2 server - } - this[kHost] = `${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ''}` - - // kQueue is built up of 3 sections separated by - // the kRunningIdx and kPendingIdx indices. - // | complete | running | pending | - // ^ kRunningIdx ^ kPendingIdx ^ kQueue.length - // kRunningIdx points to the first running element. - // kPendingIdx points to the first pending element. - // This implements a fast queue with an amortized - // time of O(1). - - this[kQueue] = [] - this[kRunningIdx] = 0 - this[kPendingIdx] = 0 - } + if ( + maxResponseSize > -1 && + this.bytesRead + buf.length > maxResponseSize + ) { + util.destroy(socket, new ResponseExceededMaxSizeError()) + return -1 + } - get pipelining () { - return this[kPipelining] - } + this.bytesRead += buf.length - set pipelining (value) { - this[kPipelining] = value - resume(this, true) - } + if (request.onData(buf) === false) { + return constants.ERROR.PAUSED + } + } - get [kPending] () { - return this[kQueue].length - this[kPendingIdx] - } + onMessageComplete() { + const { + client, + socket, + statusCode, + upgrade, + headers, + contentLength, + bytesRead, + shouldKeepAlive + } = this - get [kRunning] () { - return this[kPendingIdx] - this[kRunningIdx] - } + if (socket.destroyed && (!statusCode || shouldKeepAlive)) { + return -1 + } - get [kSize] () { - return this[kQueue].length - this[kRunningIdx] - } + if (upgrade) { + return + } - get [kConnected] () { - return !!this[kSocket] && !this[kConnecting] && !this[kSocket].destroyed - } + const request = client[kQueue][client[kRunningIdx]] + assert(request) - get [kBusy] () { - const socket = this[kSocket] - return ( - (socket && (socket[kReset] || socket[kWriting] || socket[kBlocking])) || - (this[kSize] >= (this[kPipelining] || 1)) || - this[kPending] > 0 - ) - } + assert(statusCode >= 100) - /* istanbul ignore: only used for test */ - [kConnect] (cb) { - connect(this) - this.once('connect', cb) - } + this.statusCode = null + this.statusText = '' + this.bytesRead = 0 + this.contentLength = '' + this.keepAlive = '' + this.connection = '' - [kDispatch] (opts, handler) { - const origin = opts.origin || this[kUrl].origin - - const request = this[kHTTPConnVersion] === 'h2' - ? Request[kHTTP2BuildRequest](origin, opts, handler) - : Request[kHTTP1BuildRequest](origin, opts, handler) - - this[kQueue].push(request) - if (this[kResuming]) { - // Do nothing. - } else if (util.bodyLength(request.body) == null && util.isIterable(request.body)) { - // Wait a tick in case stream/iterator is ended in the same tick. - this[kResuming] = 1 - process.nextTick(resume, this) - } else { - resume(this, true) - } + assert(this.headers.length % 2 === 0) + this.headers = [] + this.headersSize = 0 - if (this[kResuming] && this[kNeedDrain] !== 2 && this[kBusy]) { - this[kNeedDrain] = 2 - } + if (statusCode < 200) { + return + } - return this[kNeedDrain] < 2 - } + /* istanbul ignore next: should be handled by llhttp? */ + if ( + request.method !== 'HEAD' && + contentLength && + bytesRead !== parseInt(contentLength, 10) + ) { + util.destroy(socket, new ResponseContentLengthMismatchError()) + return -1 + } - async [kClose] () { - // TODO: for H2 we need to gracefully flush the remaining enqueued - // request and close each stream. - return new Promise((resolve) => { - if (!this[kSize]) { - resolve(null) - } else { - this[kClosedResolve] = resolve + request.onComplete(headers) + + client[kQueue][client[kRunningIdx]++] = null + + if (socket[kWriting]) { + assert.strictEqual(client[kRunning], 0) + // Response completed before request. + util.destroy(socket, new InformationalError('reset')) + return constants.ERROR.PAUSED + } else if (!shouldKeepAlive) { + util.destroy(socket, new InformationalError('reset')) + return constants.ERROR.PAUSED + } else if (socket[kReset] && client[kRunning] === 0) { + // Destroy socket once all requests have completed. + // The request at the tail of the pipeline is the one + // that requested reset and no further requests should + // have been queued since then. + util.destroy(socket, new InformationalError('reset')) + return constants.ERROR.PAUSED + } else if (client[kPipelining] === 1) { + // We must wait a full event loop cycle to reuse this socket to make sure + // that non-spec compliant servers are not closing the connection even if they + // said they won't. + setImmediate(resume, client) + } else { + resume(client) + } + } } - }) - } - async [kDestroy] (err) { - return new Promise((resolve) => { - const requests = this[kQueue].splice(this[kPendingIdx]) - for (let i = 0; i < requests.length; i++) { - const request = requests[i] - errorRequest(this, request, err) - } + function onParserTimeout(parser) { + const { socket, timeoutType, client } = parser - const callback = () => { - if (this[kClosedResolve]) { - // TODO (fix): Should we error here with ClientDestroyedError? - this[kClosedResolve]() - this[kClosedResolve] = null + /* istanbul ignore else */ + if (timeoutType === TIMEOUT_HEADERS) { + if ( + !socket[kWriting] || + socket.writableNeedDrain || + client[kRunning] > 1 + ) { + assert(!parser.paused, 'cannot be paused while waiting for headers') + util.destroy(socket, new HeadersTimeoutError()) + } + } else if (timeoutType === TIMEOUT_BODY) { + if (!parser.paused) { + util.destroy(socket, new BodyTimeoutError()) + } + } else if (timeoutType === TIMEOUT_IDLE) { + assert(client[kRunning] === 0 && client[kKeepAliveTimeoutValue]) + util.destroy(socket, new InformationalError('socket idle timeout')) } - resolve() } - if (this[kHTTP2Session] != null) { - util.destroy(this[kHTTP2Session], err) - this[kHTTP2Session] = null - this[kHTTP2SessionState] = null + function onSocketReadable() { + const { [kParser]: parser } = this + if (parser) { + parser.readMore() + } } - if (!this[kSocket]) { - queueMicrotask(callback) - } else { - util.destroy(this[kSocket].on('close', callback), err) - } + function onSocketError(err) { + const { [kClient]: client, [kParser]: parser } = this - resume(this) - }) - } -} + assert(err.code !== 'ERR_TLS_CERT_ALTNAME_INVALID') -function onHttp2SessionError (err) { - assert(err.code !== 'ERR_TLS_CERT_ALTNAME_INVALID') + if (client[kHTTPConnVersion] !== 'h2') { + // On Mac OS, we get an ECONNRESET even if there is a full body to be forwarded + // to the user. + if ( + err.code === 'ECONNRESET' && + parser.statusCode && + !parser.shouldKeepAlive + ) { + // We treat all incoming data so for as a valid response. + parser.onMessageComplete() + return + } + } - this[kSocket][kError] = err + this[kError] = err - onError(this[kClient], err) -} + onError(this[kClient], err) + } -function onHttp2FrameError (type, code, id) { - const err = new InformationalError(`HTTP/2: "frameError" received - type ${type}, code ${code}`) + function onError(client, err) { + if ( + client[kRunning] === 0 && + err.code !== 'UND_ERR_INFO' && + err.code !== 'UND_ERR_SOCKET' + ) { + // Error is not caused by running request and not a recoverable + // socket error. - if (id === 0) { - this[kSocket][kError] = err - onError(this[kClient], err) - } -} - -function onHttp2SessionEnd () { - util.destroy(this, new SocketError('other side closed')) - util.destroy(this[kSocket], new SocketError('other side closed')) -} - -function onHTTP2GoAway (code) { - const client = this[kClient] - const err = new InformationalError(`HTTP/2: "GOAWAY" frame received with code ${code}`) - client[kSocket] = null - client[kHTTP2Session] = null - - if (client.destroyed) { - assert(this[kPending] === 0) - - // Fail entire queue. - const requests = client[kQueue].splice(client[kRunningIdx]) - for (let i = 0; i < requests.length; i++) { - const request = requests[i] - errorRequest(this, request, err) - } - } else if (client[kRunning] > 0) { - // Fail head of pipeline. - const request = client[kQueue][client[kRunningIdx]] - client[kQueue][client[kRunningIdx]++] = null + assert(client[kPendingIdx] === client[kRunningIdx]) - errorRequest(client, request, err) - } + const requests = client[kQueue].splice(client[kRunningIdx]) + for (let i = 0; i < requests.length; i++) { + const request = requests[i] + errorRequest(client, request, err) + } + assert(client[kSize] === 0) + } + } - client[kPendingIdx] = client[kRunningIdx] + function onSocketEnd() { + const { [kParser]: parser, [kClient]: client } = this - assert(client[kRunning] === 0) + if (client[kHTTPConnVersion] !== 'h2') { + if (parser.statusCode && !parser.shouldKeepAlive) { + // We treat all incoming data so far as a valid response. + parser.onMessageComplete() + return + } + } - client.emit('disconnect', - client[kUrl], - [client], - err - ) + util.destroy( + this, + new SocketError('other side closed', util.getSocketInfo(this)) + ) + } - resume(client) -} + function onSocketClose() { + const { [kClient]: client, [kParser]: parser } = this -const constants = __nccwpck_require__(30953) -const createRedirectInterceptor = __nccwpck_require__(38861) -const EMPTY_BUF = Buffer.alloc(0) + if (client[kHTTPConnVersion] === 'h1' && parser) { + if (!this[kError] && parser.statusCode && !parser.shouldKeepAlive) { + // We treat all incoming data so far as a valid response. + parser.onMessageComplete() + } -async function lazyllhttp () { - const llhttpWasmData = process.env.JEST_WORKER_ID ? __nccwpck_require__(61145) : undefined + this[kParser].destroy() + this[kParser] = null + } - let mod - try { - mod = await WebAssembly.compile(Buffer.from(__nccwpck_require__(95627), 'base64')) - } catch (e) { - /* istanbul ignore next */ + const err = + this[kError] || new SocketError('closed', util.getSocketInfo(this)) - // We could check if the error was caused by the simd option not - // being enabled, but the occurring of this other error - // * https://github.com/emscripten-core/emscripten/issues/11495 - // got me to remove that check to avoid breaking Node 12. - mod = await WebAssembly.compile(Buffer.from(llhttpWasmData || __nccwpck_require__(61145), 'base64')) - } + client[kSocket] = null - return await WebAssembly.instantiate(mod, { - env: { - /* eslint-disable camelcase */ + if (client.destroyed) { + assert(client[kPending] === 0) - wasm_on_url: (p, at, len) => { - /* istanbul ignore next */ - return 0 - }, - wasm_on_status: (p, at, len) => { - assert.strictEqual(currentParser.ptr, p) - const start = at - currentBufferPtr + currentBufferRef.byteOffset - return currentParser.onStatus(new FastBuffer(currentBufferRef.buffer, start, len)) || 0 - }, - wasm_on_message_begin: (p) => { - assert.strictEqual(currentParser.ptr, p) - return currentParser.onMessageBegin() || 0 - }, - wasm_on_header_field: (p, at, len) => { - assert.strictEqual(currentParser.ptr, p) - const start = at - currentBufferPtr + currentBufferRef.byteOffset - return currentParser.onHeaderField(new FastBuffer(currentBufferRef.buffer, start, len)) || 0 - }, - wasm_on_header_value: (p, at, len) => { - assert.strictEqual(currentParser.ptr, p) - const start = at - currentBufferPtr + currentBufferRef.byteOffset - return currentParser.onHeaderValue(new FastBuffer(currentBufferRef.buffer, start, len)) || 0 - }, - wasm_on_headers_complete: (p, statusCode, upgrade, shouldKeepAlive) => { - assert.strictEqual(currentParser.ptr, p) - return currentParser.onHeadersComplete(statusCode, Boolean(upgrade), Boolean(shouldKeepAlive)) || 0 - }, - wasm_on_body: (p, at, len) => { - assert.strictEqual(currentParser.ptr, p) - const start = at - currentBufferPtr + currentBufferRef.byteOffset - return currentParser.onBody(new FastBuffer(currentBufferRef.buffer, start, len)) || 0 - }, - wasm_on_message_complete: (p) => { - assert.strictEqual(currentParser.ptr, p) - return currentParser.onMessageComplete() || 0 - } - - /* eslint-enable camelcase */ - } - }) -} - -let llhttpInstance = null -let llhttpPromise = lazyllhttp() -llhttpPromise.catch() - -let currentParser = null -let currentBufferRef = null -let currentBufferSize = 0 -let currentBufferPtr = null - -const TIMEOUT_HEADERS = 1 -const TIMEOUT_BODY = 2 -const TIMEOUT_IDLE = 3 - -class Parser { - constructor (client, socket, { exports }) { - assert(Number.isFinite(client[kMaxHeadersSize]) && client[kMaxHeadersSize] > 0) - - this.llhttp = exports - this.ptr = this.llhttp.llhttp_alloc(constants.TYPE.RESPONSE) - this.client = client - this.socket = socket - this.timeout = null - this.timeoutValue = null - this.timeoutType = null - this.statusCode = null - this.statusText = '' - this.upgrade = false - this.headers = [] - this.headersSize = 0 - this.headersMaxSize = client[kMaxHeadersSize] - this.shouldKeepAlive = false - this.paused = false - this.resume = this.resume.bind(this) - - this.bytesRead = 0 - - this.keepAlive = '' - this.contentLength = '' - this.connection = '' - this.maxResponseSize = client[kMaxResponseSize] - } + // Fail entire queue. + const requests = client[kQueue].splice(client[kRunningIdx]) + for (let i = 0; i < requests.length; i++) { + const request = requests[i] + errorRequest(client, request, err) + } + } else if (client[kRunning] > 0 && err.code !== 'UND_ERR_INFO') { + // Fail head of pipeline. + const request = client[kQueue][client[kRunningIdx]] + client[kQueue][client[kRunningIdx]++] = null - setTimeout (value, type) { - this.timeoutType = type - if (value !== this.timeoutValue) { - timers.clearTimeout(this.timeout) - if (value) { - this.timeout = timers.setTimeout(onParserTimeout, value, this) - // istanbul ignore else: only for jest - if (this.timeout.unref) { - this.timeout.unref() + errorRequest(client, request, err) } - } else { - this.timeout = null - } - this.timeoutValue = value - } else if (this.timeout) { - // istanbul ignore else: only for jest - if (this.timeout.refresh) { - this.timeout.refresh() - } - } - } - resume () { - if (this.socket.destroyed || !this.paused) { - return - } + client[kPendingIdx] = client[kRunningIdx] - assert(this.ptr != null) - assert(currentParser == null) + assert(client[kRunning] === 0) - this.llhttp.llhttp_resume(this.ptr) + client.emit('disconnect', client[kUrl], [client], err) - assert(this.timeoutType === TIMEOUT_BODY) - if (this.timeout) { - // istanbul ignore else: only for jest - if (this.timeout.refresh) { - this.timeout.refresh() + resume(client) } - } - this.paused = false - this.execute(this.socket.read() || EMPTY_BUF) // Flush parser. - this.readMore() - } + async function connect(client) { + assert(!client[kConnecting]) + assert(!client[kSocket]) - readMore () { - while (!this.paused && this.ptr) { - const chunk = this.socket.read() - if (chunk === null) { - break - } - this.execute(chunk) - } - } + let { host, hostname, protocol, port } = client[kUrl] - execute (data) { - assert(this.ptr != null) - assert(currentParser == null) - assert(!this.paused) + // Resolve ipv6 + if (hostname[0] === '[') { + const idx = hostname.indexOf(']') - const { socket, llhttp } = this + assert(idx !== -1) + const ip = hostname.substring(1, idx) - if (data.length > currentBufferSize) { - if (currentBufferPtr) { - llhttp.free(currentBufferPtr) - } - currentBufferSize = Math.ceil(data.length / 4096) * 4096 - currentBufferPtr = llhttp.malloc(currentBufferSize) - } + assert(net.isIP(ip)) + hostname = ip + } - new Uint8Array(llhttp.memory.buffer, currentBufferPtr, currentBufferSize).set(data) + client[kConnecting] = true - // Call `execute` on the wasm parser. - // We pass the `llhttp_parser` pointer address, the pointer address of buffer view data, - // and finally the length of bytes to parse. - // The return value is an error code or `constants.ERROR.OK`. - try { - let ret + if (channels.beforeConnect.hasSubscribers) { + channels.beforeConnect.publish({ + connectParams: { + host, + hostname, + protocol, + port, + servername: client[kServerName], + localAddress: client[kLocalAddress] + }, + connector: client[kConnector] + }) + } - try { - currentBufferRef = data - currentParser = this - ret = llhttp.llhttp_execute(this.ptr, currentBufferPtr, data.length) - /* eslint-disable-next-line no-useless-catch */ - } catch (err) { - /* istanbul ignore next: difficult to make a test case for */ - throw err - } finally { - currentParser = null - currentBufferRef = null - } - - const offset = llhttp.llhttp_get_error_pos(this.ptr) - currentBufferPtr - - if (ret === constants.ERROR.PAUSED_UPGRADE) { - this.onUpgrade(data.slice(offset)) - } else if (ret === constants.ERROR.PAUSED) { - this.paused = true - socket.unshift(data.slice(offset)) - } else if (ret !== constants.ERROR.OK) { - const ptr = llhttp.llhttp_get_error_reason(this.ptr) - let message = '' - /* istanbul ignore else: difficult to make a test case for */ - if (ptr) { - const len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0) - message = - 'Response does not match the HTTP/1.1 protocol (' + - Buffer.from(llhttp.memory.buffer, ptr, len).toString() + - ')' - } - throw new HTTPParserError(message, constants.ERROR[ret], data.slice(offset)) - } - } catch (err) { - util.destroy(socket, err) - } - } + try { + const socket = await new Promise((resolve, reject) => { + client[kConnector]( + { + host, + hostname, + protocol, + port, + servername: client[kServerName], + localAddress: client[kLocalAddress] + }, + (err, socket) => { + if (err) { + reject(err) + } else { + resolve(socket) + } + } + ) + }) + + if (client.destroyed) { + util.destroy( + socket.on('error', () => {}), + new ClientDestroyedError() + ) + return + } - destroy () { - assert(this.ptr != null) - assert(currentParser == null) + client[kConnecting] = false - this.llhttp.llhttp_free(this.ptr) - this.ptr = null + assert(socket) - timers.clearTimeout(this.timeout) - this.timeout = null - this.timeoutValue = null - this.timeoutType = null + const isH2 = socket.alpnProtocol === 'h2' + if (isH2) { + if (!h2ExperimentalWarned) { + h2ExperimentalWarned = true + process.emitWarning( + 'H2 support is experimental, expect them to change at any time.', + { + code: 'UNDICI-H2' + } + ) + } - this.paused = false - } + const session = http2.connect(client[kUrl], { + createConnection: () => socket, + peerMaxConcurrentStreams: + client[kHTTP2SessionState].maxConcurrentStreams + }) - onStatus (buf) { - this.statusText = buf.toString() - } + client[kHTTPConnVersion] = 'h2' + session[kClient] = client + session[kSocket] = socket + session.on('error', onHttp2SessionError) + session.on('frameError', onHttp2FrameError) + session.on('end', onHttp2SessionEnd) + session.on('goaway', onHTTP2GoAway) + session.on('close', onSocketClose) + session.unref() + + client[kHTTP2Session] = session + socket[kHTTP2Session] = session + } else { + if (!llhttpInstance) { + llhttpInstance = await llhttpPromise + llhttpPromise = null + } - onMessageBegin () { - const { socket, client } = this + socket[kNoRef] = false + socket[kWriting] = false + socket[kReset] = false + socket[kBlocking] = false + socket[kParser] = new Parser(client, socket, llhttpInstance) + } - /* istanbul ignore next: difficult to make a test case for */ - if (socket.destroyed) { - return -1 - } + socket[kCounter] = 0 + socket[kMaxRequests] = client[kMaxRequests] + socket[kClient] = client + socket[kError] = null + + socket + .on('error', onSocketError) + .on('readable', onSocketReadable) + .on('end', onSocketEnd) + .on('close', onSocketClose) + + client[kSocket] = socket + + if (channels.connected.hasSubscribers) { + channels.connected.publish({ + connectParams: { + host, + hostname, + protocol, + port, + servername: client[kServerName], + localAddress: client[kLocalAddress] + }, + connector: client[kConnector], + socket + }) + } + client.emit('connect', client[kUrl], [client]) + } catch (err) { + if (client.destroyed) { + return + } - const request = client[kQueue][client[kRunningIdx]] - if (!request) { - return -1 - } - } + client[kConnecting] = false + + if (channels.connectError.hasSubscribers) { + channels.connectError.publish({ + connectParams: { + host, + hostname, + protocol, + port, + servername: client[kServerName], + localAddress: client[kLocalAddress] + }, + connector: client[kConnector], + error: err + }) + } - onHeaderField (buf) { - const len = this.headers.length + if (err.code === 'ERR_TLS_CERT_ALTNAME_INVALID') { + assert(client[kRunning] === 0) + while ( + client[kPending] > 0 && + client[kQueue][client[kPendingIdx]].servername === + client[kServerName] + ) { + const request = client[kQueue][client[kPendingIdx]++] + errorRequest(client, request, err) + } + } else { + onError(client, err) + } - if ((len & 1) === 0) { - this.headers.push(buf) - } else { - this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf]) - } + client.emit('connectionError', client[kUrl], [client], err) + } - this.trackHeader(buf.length) - } + resume(client) + } - onHeaderValue (buf) { - let len = this.headers.length + function emitDrain(client) { + client[kNeedDrain] = 0 + client.emit('drain', client[kUrl], [client]) + } - if ((len & 1) === 1) { - this.headers.push(buf) - len += 1 - } else { - this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf]) - } + function resume(client, sync) { + if (client[kResuming] === 2) { + return + } - const key = this.headers[len - 2] - if (key.length === 10 && key.toString().toLowerCase() === 'keep-alive') { - this.keepAlive += buf.toString() - } else if (key.length === 10 && key.toString().toLowerCase() === 'connection') { - this.connection += buf.toString() - } else if (key.length === 14 && key.toString().toLowerCase() === 'content-length') { - this.contentLength += buf.toString() - } + client[kResuming] = 2 - this.trackHeader(buf.length) - } + _resume(client, sync) + client[kResuming] = 0 - trackHeader (len) { - this.headersSize += len - if (this.headersSize >= this.headersMaxSize) { - util.destroy(this.socket, new HeadersOverflowError()) - } - } + if (client[kRunningIdx] > 256) { + client[kQueue].splice(0, client[kRunningIdx]) + client[kPendingIdx] -= client[kRunningIdx] + client[kRunningIdx] = 0 + } + } - onUpgrade (head) { - const { upgrade, client, socket, headers, statusCode } = this + function _resume(client, sync) { + while (true) { + if (client.destroyed) { + assert(client[kPending] === 0) + return + } - assert(upgrade) + if (client[kClosedResolve] && !client[kSize]) { + client[kClosedResolve]() + client[kClosedResolve] = null + return + } - const request = client[kQueue][client[kRunningIdx]] - assert(request) + const socket = client[kSocket] - assert(!socket.destroyed) - assert(socket === client[kSocket]) - assert(!this.paused) - assert(request.upgrade || request.method === 'CONNECT') + if (socket && !socket.destroyed && socket.alpnProtocol !== 'h2') { + if (client[kSize] === 0) { + if (!socket[kNoRef] && socket.unref) { + socket.unref() + socket[kNoRef] = true + } + } else if (socket[kNoRef] && socket.ref) { + socket.ref() + socket[kNoRef] = false + } - this.statusCode = null - this.statusText = '' - this.shouldKeepAlive = null + if (client[kSize] === 0) { + if (socket[kParser].timeoutType !== TIMEOUT_IDLE) { + socket[kParser].setTimeout( + client[kKeepAliveTimeoutValue], + TIMEOUT_IDLE + ) + } + } else if ( + client[kRunning] > 0 && + socket[kParser].statusCode < 200 + ) { + if (socket[kParser].timeoutType !== TIMEOUT_HEADERS) { + const request = client[kQueue][client[kRunningIdx]] + const headersTimeout = + request.headersTimeout != null + ? request.headersTimeout + : client[kHeadersTimeout] + socket[kParser].setTimeout(headersTimeout, TIMEOUT_HEADERS) + } + } + } - assert(this.headers.length % 2 === 0) - this.headers = [] - this.headersSize = 0 + if (client[kBusy]) { + client[kNeedDrain] = 2 + } else if (client[kNeedDrain] === 2) { + if (sync) { + client[kNeedDrain] = 1 + process.nextTick(emitDrain, client) + } else { + emitDrain(client) + } + continue + } - socket.unshift(head) + if (client[kPending] === 0) { + return + } - socket[kParser].destroy() - socket[kParser] = null + if (client[kRunning] >= (client[kPipelining] || 1)) { + return + } - socket[kClient] = null - socket[kError] = null - socket - .removeListener('error', onSocketError) - .removeListener('readable', onSocketReadable) - .removeListener('end', onSocketEnd) - .removeListener('close', onSocketClose) + const request = client[kQueue][client[kPendingIdx]] - client[kSocket] = null - client[kQueue][client[kRunningIdx]++] = null - client.emit('disconnect', client[kUrl], [client], new InformationalError('upgrade')) + if ( + client[kUrl].protocol === 'https:' && + client[kServerName] !== request.servername + ) { + if (client[kRunning] > 0) { + return + } - try { - request.onUpgrade(statusCode, headers, socket) - } catch (err) { - util.destroy(socket, err) - } + client[kServerName] = request.servername - resume(client) - } + if (socket && socket.servername !== request.servername) { + util.destroy(socket, new InformationalError('servername changed')) + return + } + } - onHeadersComplete (statusCode, upgrade, shouldKeepAlive) { - const { client, socket, headers, statusText } = this + if (client[kConnecting]) { + return + } - /* istanbul ignore next: difficult to make a test case for */ - if (socket.destroyed) { - return -1 - } + if (!socket && !client[kHTTP2Session]) { + connect(client) + return + } - const request = client[kQueue][client[kRunningIdx]] + if ( + socket.destroyed || + socket[kWriting] || + socket[kReset] || + socket[kBlocking] + ) { + return + } - /* istanbul ignore next: difficult to make a test case for */ - if (!request) { - return -1 - } + if (client[kRunning] > 0 && !request.idempotent) { + // Non-idempotent request cannot be retried. + // Ensure that no other requests are inflight and + // could cause failure. + return + } - assert(!this.upgrade) - assert(this.statusCode < 200) + if ( + client[kRunning] > 0 && + (request.upgrade || request.method === 'CONNECT') + ) { + // Don't dispatch an upgrade until all preceding requests have completed. + // A misbehaving server might upgrade the connection before all pipelined + // request has completed. + return + } - if (statusCode === 100) { - util.destroy(socket, new SocketError('bad response', util.getSocketInfo(socket))) - return -1 - } + if ( + client[kRunning] > 0 && + util.bodyLength(request.body) !== 0 && + (util.isStream(request.body) || util.isAsyncIterable(request.body)) + ) { + // Request with stream or iterator body can error while other requests + // are inflight and indirectly error those as well. + // Ensure this doesn't happen by waiting for inflight + // to complete before dispatching. + + // Request with stream or iterator body cannot be retried. + // Ensure that no other requests are inflight and + // could cause failure. + return + } - /* this can only happen if server is misbehaving */ - if (upgrade && !request.upgrade) { - util.destroy(socket, new SocketError('bad upgrade', util.getSocketInfo(socket))) - return -1 - } + if (!request.aborted && write(client, request)) { + client[kPendingIdx]++ + } else { + client[kQueue].splice(client[kPendingIdx], 1) + } + } + } - assert.strictEqual(this.timeoutType, TIMEOUT_HEADERS) - - this.statusCode = statusCode - this.shouldKeepAlive = ( - shouldKeepAlive || - // Override llhttp value which does not allow keepAlive for HEAD. - (request.method === 'HEAD' && !socket[kReset] && this.connection.toLowerCase() === 'keep-alive') - ) - - if (this.statusCode >= 200) { - const bodyTimeout = request.bodyTimeout != null - ? request.bodyTimeout - : client[kBodyTimeout] - this.setTimeout(bodyTimeout, TIMEOUT_BODY) - } else if (this.timeout) { - // istanbul ignore else: only for jest - if (this.timeout.refresh) { - this.timeout.refresh() + // https://www.rfc-editor.org/rfc/rfc7230#section-3.3.2 + function shouldSendContentLength(method) { + return ( + method !== 'GET' && + method !== 'HEAD' && + method !== 'OPTIONS' && + method !== 'TRACE' && + method !== 'CONNECT' + ) } - } - if (request.method === 'CONNECT') { - assert(client[kRunning] === 1) - this.upgrade = true - return 2 - } + function write(client, request) { + if (client[kHTTPConnVersion] === 'h2') { + writeH2(client, client[kHTTP2Session], request) + return + } - if (upgrade) { - assert(client[kRunning] === 1) - this.upgrade = true - return 2 - } + const { body, method, path, host, upgrade, headers, blocking, reset } = + request - assert(this.headers.length % 2 === 0) - this.headers = [] - this.headersSize = 0 + // https://tools.ietf.org/html/rfc7231#section-4.3.1 + // https://tools.ietf.org/html/rfc7231#section-4.3.2 + // https://tools.ietf.org/html/rfc7231#section-4.3.5 - if (this.shouldKeepAlive && client[kPipelining]) { - const keepAliveTimeout = this.keepAlive ? util.parseKeepAliveTimeout(this.keepAlive) : null + // Sending a payload body on a request that does not + // expect it can cause undefined behavior on some + // servers and corrupt connection state. Do not + // re-use the connection for further requests. - if (keepAliveTimeout != null) { - const timeout = Math.min( - keepAliveTimeout - client[kKeepAliveTimeoutThreshold], - client[kKeepAliveMaxTimeout] - ) - if (timeout <= 0) { - socket[kReset] = true - } else { - client[kKeepAliveTimeoutValue] = timeout + const expectsPayload = + method === 'PUT' || method === 'POST' || method === 'PATCH' + + if (body && typeof body.read === 'function') { + // Try to read EOF in order to get length. + body.read(0) } - } else { - client[kKeepAliveTimeoutValue] = client[kKeepAliveDefaultTimeout] - } - } else { - // Stop more requests from being dispatched. - socket[kReset] = true - } - const pause = request.onHeaders(statusCode, headers, this.resume, statusText) === false + const bodyLength = util.bodyLength(body) - if (request.aborted) { - return -1 - } + let contentLength = bodyLength - if (request.method === 'HEAD') { - return 1 - } + if (contentLength === null) { + contentLength = request.contentLength + } - if (statusCode < 200) { - return 1 - } + if (contentLength === 0 && !expectsPayload) { + // https://tools.ietf.org/html/rfc7230#section-3.3.2 + // A user agent SHOULD NOT send a Content-Length header field when + // the request message does not contain a payload body and the method + // semantics do not anticipate such a body. - if (socket[kBlocking]) { - socket[kBlocking] = false - resume(client) - } + contentLength = null + } - return pause ? constants.ERROR.PAUSED : 0 - } + // https://github.com/nodejs/undici/issues/2046 + // A user agent may send a Content-Length header with 0 value, this should be allowed. + if ( + shouldSendContentLength(method) && + contentLength > 0 && + request.contentLength !== null && + request.contentLength !== contentLength + ) { + if (client[kStrictContentLength]) { + errorRequest( + client, + request, + new RequestContentLengthMismatchError() + ) + return false + } - onBody (buf) { - const { client, socket, statusCode, maxResponseSize } = this + process.emitWarning(new RequestContentLengthMismatchError()) + } - if (socket.destroyed) { - return -1 - } + const socket = client[kSocket] + + try { + request.onConnect(err => { + if (request.aborted || request.completed) { + return + } + + errorRequest(client, request, err || new RequestAbortedError()) + + util.destroy(socket, new InformationalError('aborted')) + }) + } catch (err) { + errorRequest(client, request, err) + } + + if (request.aborted) { + return false + } + + if (method === 'HEAD') { + // https://github.com/mcollina/undici/issues/258 + // Close after a HEAD request to interop with misbehaving servers + // that may send a body in the response. + + socket[kReset] = true + } - const request = client[kQueue][client[kRunningIdx]] - assert(request) + if (upgrade || method === 'CONNECT') { + // On CONNECT or upgrade, block pipeline from dispatching further + // requests on this connection. - assert.strictEqual(this.timeoutType, TIMEOUT_BODY) - if (this.timeout) { - // istanbul ignore else: only for jest - if (this.timeout.refresh) { - this.timeout.refresh() - } - } + socket[kReset] = true + } - assert(statusCode >= 200) + if (reset != null) { + socket[kReset] = reset + } - if (maxResponseSize > -1 && this.bytesRead + buf.length > maxResponseSize) { - util.destroy(socket, new ResponseExceededMaxSizeError()) - return -1 - } + if ( + client[kMaxRequests] && + socket[kCounter]++ >= client[kMaxRequests] + ) { + socket[kReset] = true + } - this.bytesRead += buf.length + if (blocking) { + socket[kBlocking] = true + } - if (request.onData(buf) === false) { - return constants.ERROR.PAUSED - } - } + let header = `${method} ${path} HTTP/1.1\r\n` - onMessageComplete () { - const { client, socket, statusCode, upgrade, headers, contentLength, bytesRead, shouldKeepAlive } = this + if (typeof host === 'string') { + header += `host: ${host}\r\n` + } else { + header += client[kHostHeader] + } - if (socket.destroyed && (!statusCode || shouldKeepAlive)) { - return -1 - } + if (upgrade) { + header += `connection: upgrade\r\nupgrade: ${upgrade}\r\n` + } else if (client[kPipelining] && !socket[kReset]) { + header += 'connection: keep-alive\r\n' + } else { + header += 'connection: close\r\n' + } - if (upgrade) { - return - } + if (headers) { + header += headers + } - const request = client[kQueue][client[kRunningIdx]] - assert(request) + if (channels.sendHeaders.hasSubscribers) { + channels.sendHeaders.publish({ request, headers: header, socket }) + } - assert(statusCode >= 100) + /* istanbul ignore else: assertion */ + if (!body || bodyLength === 0) { + if (contentLength === 0) { + socket.write(`${header}content-length: 0\r\n\r\n`, 'latin1') + } else { + assert( + contentLength === null, + 'no body must not have content length' + ) + socket.write(`${header}\r\n`, 'latin1') + } + request.onRequestSent() + } else if (util.isBuffer(body)) { + assert( + contentLength === body.byteLength, + 'buffer body must have content length' + ) - this.statusCode = null - this.statusText = '' - this.bytesRead = 0 - this.contentLength = '' - this.keepAlive = '' - this.connection = '' + socket.cork() + socket.write( + `${header}content-length: ${contentLength}\r\n\r\n`, + 'latin1' + ) + socket.write(body) + socket.uncork() + request.onBodySent(body) + request.onRequestSent() + if (!expectsPayload) { + socket[kReset] = true + } + } else if (util.isBlobLike(body)) { + if (typeof body.stream === 'function') { + writeIterable({ + body: body.stream(), + client, + request, + socket, + contentLength, + header, + expectsPayload + }) + } else { + writeBlob({ + body, + client, + request, + socket, + contentLength, + header, + expectsPayload + }) + } + } else if (util.isStream(body)) { + writeStream({ + body, + client, + request, + socket, + contentLength, + header, + expectsPayload + }) + } else if (util.isIterable(body)) { + writeIterable({ + body, + client, + request, + socket, + contentLength, + header, + expectsPayload + }) + } else { + assert(false) + } - assert(this.headers.length % 2 === 0) - this.headers = [] - this.headersSize = 0 + return true + } - if (statusCode < 200) { - return - } + function writeH2(client, session, request) { + const { + body, + method, + path, + host, + upgrade, + expectContinue, + signal, + headers: reqHeaders + } = request + + let headers + if (typeof reqHeaders === 'string') + headers = Request[kHTTP2CopyHeaders](reqHeaders.trim()) + else headers = reqHeaders + + if (upgrade) { + errorRequest( + client, + request, + new Error('Upgrade not supported for H2') + ) + return false + } - /* istanbul ignore next: should be handled by llhttp? */ - if (request.method !== 'HEAD' && contentLength && bytesRead !== parseInt(contentLength, 10)) { - util.destroy(socket, new ResponseContentLengthMismatchError()) - return -1 - } + try { + // TODO(HTTP/2): Should we call onConnect immediately or on stream ready event? + request.onConnect(err => { + if (request.aborted || request.completed) { + return + } - request.onComplete(headers) - - client[kQueue][client[kRunningIdx]++] = null - - if (socket[kWriting]) { - assert.strictEqual(client[kRunning], 0) - // Response completed before request. - util.destroy(socket, new InformationalError('reset')) - return constants.ERROR.PAUSED - } else if (!shouldKeepAlive) { - util.destroy(socket, new InformationalError('reset')) - return constants.ERROR.PAUSED - } else if (socket[kReset] && client[kRunning] === 0) { - // Destroy socket once all requests have completed. - // The request at the tail of the pipeline is the one - // that requested reset and no further requests should - // have been queued since then. - util.destroy(socket, new InformationalError('reset')) - return constants.ERROR.PAUSED - } else if (client[kPipelining] === 1) { - // We must wait a full event loop cycle to reuse this socket to make sure - // that non-spec compliant servers are not closing the connection even if they - // said they won't. - setImmediate(resume, client) - } else { - resume(client) - } - } -} + errorRequest(client, request, err || new RequestAbortedError()) + }) + } catch (err) { + errorRequest(client, request, err) + } -function onParserTimeout (parser) { - const { socket, timeoutType, client } = parser + if (request.aborted) { + return false + } - /* istanbul ignore else */ - if (timeoutType === TIMEOUT_HEADERS) { - if (!socket[kWriting] || socket.writableNeedDrain || client[kRunning] > 1) { - assert(!parser.paused, 'cannot be paused while waiting for headers') - util.destroy(socket, new HeadersTimeoutError()) - } - } else if (timeoutType === TIMEOUT_BODY) { - if (!parser.paused) { - util.destroy(socket, new BodyTimeoutError()) - } - } else if (timeoutType === TIMEOUT_IDLE) { - assert(client[kRunning] === 0 && client[kKeepAliveTimeoutValue]) - util.destroy(socket, new InformationalError('socket idle timeout')) - } -} + /** @type {import('node:http2').ClientHttp2Stream} */ + let stream + const h2State = client[kHTTP2SessionState] -function onSocketReadable () { - const { [kParser]: parser } = this - if (parser) { - parser.readMore() - } -} + headers[HTTP2_HEADER_AUTHORITY] = host || client[kHost] + headers[HTTP2_HEADER_METHOD] = method -function onSocketError (err) { - const { [kClient]: client, [kParser]: parser } = this + if (method === 'CONNECT') { + session.ref() + // we are already connected, streams are pending, first request + // will create a new stream. We trigger a request to create the stream and wait until + // `ready` event is triggered + // We disabled endStream to allow the user to write to the stream + stream = session.request(headers, { endStream: false, signal }) - assert(err.code !== 'ERR_TLS_CERT_ALTNAME_INVALID') + if (stream.id && !stream.pending) { + request.onUpgrade(null, null, stream) + ++h2State.openStreams + } else { + stream.once('ready', () => { + request.onUpgrade(null, null, stream) + ++h2State.openStreams + }) + } - if (client[kHTTPConnVersion] !== 'h2') { - // On Mac OS, we get an ECONNRESET even if there is a full body to be forwarded - // to the user. - if (err.code === 'ECONNRESET' && parser.statusCode && !parser.shouldKeepAlive) { - // We treat all incoming data so for as a valid response. - parser.onMessageComplete() - return - } - } + stream.once('close', () => { + h2State.openStreams -= 1 + // TODO(HTTP/2): unref only if current streams count is 0 + if (h2State.openStreams === 0) session.unref() + }) - this[kError] = err + return true + } - onError(this[kClient], err) -} + // https://tools.ietf.org/html/rfc7540#section-8.3 + // :path and :scheme headers must be omited when sending CONNECT -function onError (client, err) { - if ( - client[kRunning] === 0 && - err.code !== 'UND_ERR_INFO' && - err.code !== 'UND_ERR_SOCKET' - ) { - // Error is not caused by running request and not a recoverable - // socket error. + headers[HTTP2_HEADER_PATH] = path + headers[HTTP2_HEADER_SCHEME] = 'https' - assert(client[kPendingIdx] === client[kRunningIdx]) + // https://tools.ietf.org/html/rfc7231#section-4.3.1 + // https://tools.ietf.org/html/rfc7231#section-4.3.2 + // https://tools.ietf.org/html/rfc7231#section-4.3.5 - const requests = client[kQueue].splice(client[kRunningIdx]) - for (let i = 0; i < requests.length; i++) { - const request = requests[i] - errorRequest(client, request, err) - } - assert(client[kSize] === 0) - } -} + // Sending a payload body on a request that does not + // expect it can cause undefined behavior on some + // servers and corrupt connection state. Do not + // re-use the connection for further requests. -function onSocketEnd () { - const { [kParser]: parser, [kClient]: client } = this + const expectsPayload = + method === 'PUT' || method === 'POST' || method === 'PATCH' - if (client[kHTTPConnVersion] !== 'h2') { - if (parser.statusCode && !parser.shouldKeepAlive) { - // We treat all incoming data so far as a valid response. - parser.onMessageComplete() - return - } - } + if (body && typeof body.read === 'function') { + // Try to read EOF in order to get length. + body.read(0) + } - util.destroy(this, new SocketError('other side closed', util.getSocketInfo(this))) -} + let contentLength = util.bodyLength(body) -function onSocketClose () { - const { [kClient]: client, [kParser]: parser } = this + if (contentLength == null) { + contentLength = request.contentLength + } - if (client[kHTTPConnVersion] === 'h1' && parser) { - if (!this[kError] && parser.statusCode && !parser.shouldKeepAlive) { - // We treat all incoming data so far as a valid response. - parser.onMessageComplete() - } + if (contentLength === 0 || !expectsPayload) { + // https://tools.ietf.org/html/rfc7230#section-3.3.2 + // A user agent SHOULD NOT send a Content-Length header field when + // the request message does not contain a payload body and the method + // semantics do not anticipate such a body. - this[kParser].destroy() - this[kParser] = null - } + contentLength = null + } - const err = this[kError] || new SocketError('closed', util.getSocketInfo(this)) + // https://github.com/nodejs/undici/issues/2046 + // A user agent may send a Content-Length header with 0 value, this should be allowed. + if ( + shouldSendContentLength(method) && + contentLength > 0 && + request.contentLength != null && + request.contentLength !== contentLength + ) { + if (client[kStrictContentLength]) { + errorRequest( + client, + request, + new RequestContentLengthMismatchError() + ) + return false + } - client[kSocket] = null + process.emitWarning(new RequestContentLengthMismatchError()) + } - if (client.destroyed) { - assert(client[kPending] === 0) + if (contentLength != null) { + assert(body, 'no body must not have content length') + headers[HTTP2_HEADER_CONTENT_LENGTH] = `${contentLength}` + } - // Fail entire queue. - const requests = client[kQueue].splice(client[kRunningIdx]) - for (let i = 0; i < requests.length; i++) { - const request = requests[i] - errorRequest(client, request, err) - } - } else if (client[kRunning] > 0 && err.code !== 'UND_ERR_INFO') { - // Fail head of pipeline. - const request = client[kQueue][client[kRunningIdx]] - client[kQueue][client[kRunningIdx]++] = null + session.ref() - errorRequest(client, request, err) - } + const shouldEndStream = method === 'GET' || method === 'HEAD' + if (expectContinue) { + headers[HTTP2_HEADER_EXPECT] = '100-continue' + stream = session.request(headers, { + endStream: shouldEndStream, + signal + }) - client[kPendingIdx] = client[kRunningIdx] + stream.once('continue', writeBodyH2) + } else { + stream = session.request(headers, { + endStream: shouldEndStream, + signal + }) + writeBodyH2() + } - assert(client[kRunning] === 0) + // Increment counter as we have new several streams open + ++h2State.openStreams - client.emit('disconnect', client[kUrl], [client], err) + stream.once('response', headers => { + const { [HTTP2_HEADER_STATUS]: statusCode, ...realHeaders } = headers - resume(client) -} + if ( + request.onHeaders( + Number(statusCode), + realHeaders, + stream.resume.bind(stream), + '' + ) === false + ) { + stream.pause() + } + }) -async function connect (client) { - assert(!client[kConnecting]) - assert(!client[kSocket]) + stream.once('end', () => { + request.onComplete([]) + }) - let { host, hostname, protocol, port } = client[kUrl] + stream.on('data', chunk => { + if (request.onData(chunk) === false) { + stream.pause() + } + }) - // Resolve ipv6 - if (hostname[0] === '[') { - const idx = hostname.indexOf(']') + stream.once('close', () => { + h2State.openStreams -= 1 + // TODO(HTTP/2): unref only if current streams count is 0 + if (h2State.openStreams === 0) { + session.unref() + } + }) - assert(idx !== -1) - const ip = hostname.substring(1, idx) + stream.once('error', function (err) { + if ( + client[kHTTP2Session] && + !client[kHTTP2Session].destroyed && + !this.closed && + !this.destroyed + ) { + h2State.streams -= 1 + util.destroy(stream, err) + } + }) - assert(net.isIP(ip)) - hostname = ip - } + stream.once('frameError', (type, code) => { + const err = new InformationalError( + `HTTP/2: "frameError" received - type ${type}, code ${code}` + ) + errorRequest(client, request, err) - client[kConnecting] = true + if ( + client[kHTTP2Session] && + !client[kHTTP2Session].destroyed && + !this.closed && + !this.destroyed + ) { + h2State.streams -= 1 + util.destroy(stream, err) + } + }) - if (channels.beforeConnect.hasSubscribers) { - channels.beforeConnect.publish({ - connectParams: { - host, - hostname, - protocol, - port, - servername: client[kServerName], - localAddress: client[kLocalAddress] - }, - connector: client[kConnector] - }) - } + // stream.on('aborted', () => { + // // TODO(HTTP/2): Support aborted + // }) - try { - const socket = await new Promise((resolve, reject) => { - client[kConnector]({ - host, - hostname, - protocol, - port, - servername: client[kServerName], - localAddress: client[kLocalAddress] - }, (err, socket) => { - if (err) { - reject(err) - } else { - resolve(socket) - } - }) - }) + // stream.on('timeout', () => { + // // TODO(HTTP/2): Support timeout + // }) - if (client.destroyed) { - util.destroy(socket.on('error', () => {}), new ClientDestroyedError()) - return - } + // stream.on('push', headers => { + // // TODO(HTTP/2): Suppor push + // }) - client[kConnecting] = false + // stream.on('trailers', headers => { + // // TODO(HTTP/2): Support trailers + // }) - assert(socket) + return true - const isH2 = socket.alpnProtocol === 'h2' - if (isH2) { - if (!h2ExperimentalWarned) { - h2ExperimentalWarned = true - process.emitWarning('H2 support is experimental, expect them to change at any time.', { - code: 'UNDICI-H2' - }) + function writeBodyH2() { + /* istanbul ignore else: assertion */ + if (!body) { + request.onRequestSent() + } else if (util.isBuffer(body)) { + assert( + contentLength === body.byteLength, + 'buffer body must have content length' + ) + stream.cork() + stream.write(body) + stream.uncork() + stream.end() + request.onBodySent(body) + request.onRequestSent() + } else if (util.isBlobLike(body)) { + if (typeof body.stream === 'function') { + writeIterable({ + client, + request, + contentLength, + h2stream: stream, + expectsPayload, + body: body.stream(), + socket: client[kSocket], + header: '' + }) + } else { + writeBlob({ + body, + client, + request, + contentLength, + expectsPayload, + h2stream: stream, + header: '', + socket: client[kSocket] + }) + } + } else if (util.isStream(body)) { + writeStream({ + body, + client, + request, + contentLength, + expectsPayload, + socket: client[kSocket], + h2stream: stream, + header: '' + }) + } else if (util.isIterable(body)) { + writeIterable({ + body, + client, + request, + contentLength, + expectsPayload, + header: '', + h2stream: stream, + socket: client[kSocket] + }) + } else { + assert(false) + } + } } - const session = http2.connect(client[kUrl], { - createConnection: () => socket, - peerMaxConcurrentStreams: client[kHTTP2SessionState].maxConcurrentStreams - }) - - client[kHTTPConnVersion] = 'h2' - session[kClient] = client - session[kSocket] = socket - session.on('error', onHttp2SessionError) - session.on('frameError', onHttp2FrameError) - session.on('end', onHttp2SessionEnd) - session.on('goaway', onHTTP2GoAway) - session.on('close', onSocketClose) - session.unref() - - client[kHTTP2Session] = session - socket[kHTTP2Session] = session - } else { - if (!llhttpInstance) { - llhttpInstance = await llhttpPromise - llhttpPromise = null - } - - socket[kNoRef] = false - socket[kWriting] = false - socket[kReset] = false - socket[kBlocking] = false - socket[kParser] = new Parser(client, socket, llhttpInstance) - } + function writeStream({ + h2stream, + body, + client, + request, + socket, + contentLength, + header, + expectsPayload + }) { + assert( + contentLength !== 0 || client[kRunning] === 0, + 'stream body cannot be pipelined' + ) - socket[kCounter] = 0 - socket[kMaxRequests] = client[kMaxRequests] - socket[kClient] = client - socket[kError] = null + if (client[kHTTPConnVersion] === 'h2') { + // For HTTP/2, is enough to pipe the stream + const pipe = pipeline(body, h2stream, err => { + if (err) { + util.destroy(body, err) + util.destroy(h2stream, err) + } else { + request.onRequestSent() + } + }) - socket - .on('error', onSocketError) - .on('readable', onSocketReadable) - .on('end', onSocketEnd) - .on('close', onSocketClose) + pipe.on('data', onPipeData) + pipe.once('end', () => { + pipe.removeListener('data', onPipeData) + util.destroy(pipe) + }) - client[kSocket] = socket + function onPipeData(chunk) { + request.onBodySent(chunk) + } - if (channels.connected.hasSubscribers) { - channels.connected.publish({ - connectParams: { - host, - hostname, - protocol, - port, - servername: client[kServerName], - localAddress: client[kLocalAddress] - }, - connector: client[kConnector], - socket - }) - } - client.emit('connect', client[kUrl], [client]) - } catch (err) { - if (client.destroyed) { - return - } + return + } - client[kConnecting] = false + let finished = false - if (channels.connectError.hasSubscribers) { - channels.connectError.publish({ - connectParams: { - host, - hostname, - protocol, - port, - servername: client[kServerName], - localAddress: client[kLocalAddress] - }, - connector: client[kConnector], - error: err - }) - } + const writer = new AsyncWriter({ + socket, + request, + contentLength, + client, + expectsPayload, + header + }) - if (err.code === 'ERR_TLS_CERT_ALTNAME_INVALID') { - assert(client[kRunning] === 0) - while (client[kPending] > 0 && client[kQueue][client[kPendingIdx]].servername === client[kServerName]) { - const request = client[kQueue][client[kPendingIdx]++] - errorRequest(client, request, err) - } - } else { - onError(client, err) - } + const onData = function (chunk) { + if (finished) { + return + } - client.emit('connectionError', client[kUrl], [client], err) - } + try { + if (!writer.write(chunk) && this.pause) { + this.pause() + } + } catch (err) { + util.destroy(this, err) + } + } + const onDrain = function () { + if (finished) { + return + } - resume(client) -} + if (body.resume) { + body.resume() + } + } + const onAbort = function () { + if (finished) { + return + } + const err = new RequestAbortedError() + queueMicrotask(() => onFinished(err)) + } + const onFinished = function (err) { + if (finished) { + return + } -function emitDrain (client) { - client[kNeedDrain] = 0 - client.emit('drain', client[kUrl], [client]) -} + finished = true -function resume (client, sync) { - if (client[kResuming] === 2) { - return - } + assert( + socket.destroyed || (socket[kWriting] && client[kRunning] <= 1) + ) - client[kResuming] = 2 + socket.off('drain', onDrain).off('error', onFinished) - _resume(client, sync) - client[kResuming] = 0 + body + .removeListener('data', onData) + .removeListener('end', onFinished) + .removeListener('error', onFinished) + .removeListener('close', onAbort) - if (client[kRunningIdx] > 256) { - client[kQueue].splice(0, client[kRunningIdx]) - client[kPendingIdx] -= client[kRunningIdx] - client[kRunningIdx] = 0 - } -} + if (!err) { + try { + writer.end() + } catch (er) { + err = er + } + } -function _resume (client, sync) { - while (true) { - if (client.destroyed) { - assert(client[kPending] === 0) - return - } + writer.destroy(err) - if (client[kClosedResolve] && !client[kSize]) { - client[kClosedResolve]() - client[kClosedResolve] = null - return - } + if (err && (err.code !== 'UND_ERR_INFO' || err.message !== 'reset')) { + util.destroy(body, err) + } else { + util.destroy(body) + } + } - const socket = client[kSocket] + body + .on('data', onData) + .on('end', onFinished) + .on('error', onFinished) + .on('close', onAbort) - if (socket && !socket.destroyed && socket.alpnProtocol !== 'h2') { - if (client[kSize] === 0) { - if (!socket[kNoRef] && socket.unref) { - socket.unref() - socket[kNoRef] = true + if (body.resume) { + body.resume() } - } else if (socket[kNoRef] && socket.ref) { - socket.ref() - socket[kNoRef] = false - } - if (client[kSize] === 0) { - if (socket[kParser].timeoutType !== TIMEOUT_IDLE) { - socket[kParser].setTimeout(client[kKeepAliveTimeoutValue], TIMEOUT_IDLE) - } - } else if (client[kRunning] > 0 && socket[kParser].statusCode < 200) { - if (socket[kParser].timeoutType !== TIMEOUT_HEADERS) { - const request = client[kQueue][client[kRunningIdx]] - const headersTimeout = request.headersTimeout != null - ? request.headersTimeout - : client[kHeadersTimeout] - socket[kParser].setTimeout(headersTimeout, TIMEOUT_HEADERS) - } + socket.on('drain', onDrain).on('error', onFinished) } - } - if (client[kBusy]) { - client[kNeedDrain] = 2 - } else if (client[kNeedDrain] === 2) { - if (sync) { - client[kNeedDrain] = 1 - process.nextTick(emitDrain, client) - } else { - emitDrain(client) - } - continue - } + async function writeBlob({ + h2stream, + body, + client, + request, + socket, + contentLength, + header, + expectsPayload + }) { + assert( + contentLength === body.size, + 'blob body must have content length' + ) - if (client[kPending] === 0) { - return - } + const isH2 = client[kHTTPConnVersion] === 'h2' + try { + if (contentLength != null && contentLength !== body.size) { + throw new RequestContentLengthMismatchError() + } - if (client[kRunning] >= (client[kPipelining] || 1)) { - return - } + const buffer = Buffer.from(await body.arrayBuffer()) - const request = client[kQueue][client[kPendingIdx]] + if (isH2) { + h2stream.cork() + h2stream.write(buffer) + h2stream.uncork() + } else { + socket.cork() + socket.write( + `${header}content-length: ${contentLength}\r\n\r\n`, + 'latin1' + ) + socket.write(buffer) + socket.uncork() + } - if (client[kUrl].protocol === 'https:' && client[kServerName] !== request.servername) { - if (client[kRunning] > 0) { - return - } + request.onBodySent(buffer) + request.onRequestSent() - client[kServerName] = request.servername + if (!expectsPayload) { + socket[kReset] = true + } - if (socket && socket.servername !== request.servername) { - util.destroy(socket, new InformationalError('servername changed')) - return + resume(client) + } catch (err) { + util.destroy(isH2 ? h2stream : socket, err) + } } - } - if (client[kConnecting]) { - return - } + async function writeIterable({ + h2stream, + body, + client, + request, + socket, + contentLength, + header, + expectsPayload + }) { + assert( + contentLength !== 0 || client[kRunning] === 0, + 'iterator body cannot be pipelined' + ) - if (!socket && !client[kHTTP2Session]) { - connect(client) - return - } + let callback = null + function onDrain() { + if (callback) { + const cb = callback + callback = null + cb() + } + } - if (socket.destroyed || socket[kWriting] || socket[kReset] || socket[kBlocking]) { - return - } + const waitForDrain = () => + new Promise((resolve, reject) => { + assert(callback === null) - if (client[kRunning] > 0 && !request.idempotent) { - // Non-idempotent request cannot be retried. - // Ensure that no other requests are inflight and - // could cause failure. - return - } + if (socket[kError]) { + reject(socket[kError]) + } else { + callback = resolve + } + }) - if (client[kRunning] > 0 && (request.upgrade || request.method === 'CONNECT')) { - // Don't dispatch an upgrade until all preceding requests have completed. - // A misbehaving server might upgrade the connection before all pipelined - // request has completed. - return - } + if (client[kHTTPConnVersion] === 'h2') { + h2stream.on('close', onDrain).on('drain', onDrain) - if (client[kRunning] > 0 && util.bodyLength(request.body) !== 0 && - (util.isStream(request.body) || util.isAsyncIterable(request.body))) { - // Request with stream or iterator body can error while other requests - // are inflight and indirectly error those as well. - // Ensure this doesn't happen by waiting for inflight - // to complete before dispatching. - - // Request with stream or iterator body cannot be retried. - // Ensure that no other requests are inflight and - // could cause failure. - return - } + try { + // It's up to the user to somehow abort the async iterable. + for await (const chunk of body) { + if (socket[kError]) { + throw socket[kError] + } - if (!request.aborted && write(client, request)) { - client[kPendingIdx]++ - } else { - client[kQueue].splice(client[kPendingIdx], 1) - } - } -} + const res = h2stream.write(chunk) + request.onBodySent(chunk) + if (!res) { + await waitForDrain() + } + } + } catch (err) { + h2stream.destroy(err) + } finally { + request.onRequestSent() + h2stream.end() + h2stream.off('close', onDrain).off('drain', onDrain) + } -// https://www.rfc-editor.org/rfc/rfc7230#section-3.3.2 -function shouldSendContentLength (method) { - return method !== 'GET' && method !== 'HEAD' && method !== 'OPTIONS' && method !== 'TRACE' && method !== 'CONNECT' -} + return + } -function write (client, request) { - if (client[kHTTPConnVersion] === 'h2') { - writeH2(client, client[kHTTP2Session], request) - return - } + socket.on('close', onDrain).on('drain', onDrain) + + const writer = new AsyncWriter({ + socket, + request, + contentLength, + client, + expectsPayload, + header + }) + try { + // It's up to the user to somehow abort the async iterable. + for await (const chunk of body) { + if (socket[kError]) { + throw socket[kError] + } - const { body, method, path, host, upgrade, headers, blocking, reset } = request + if (!writer.write(chunk)) { + await waitForDrain() + } + } - // https://tools.ietf.org/html/rfc7231#section-4.3.1 - // https://tools.ietf.org/html/rfc7231#section-4.3.2 - // https://tools.ietf.org/html/rfc7231#section-4.3.5 + writer.end() + } catch (err) { + writer.destroy(err) + } finally { + socket.off('close', onDrain).off('drain', onDrain) + } + } - // Sending a payload body on a request that does not - // expect it can cause undefined behavior on some - // servers and corrupt connection state. Do not - // re-use the connection for further requests. + class AsyncWriter { + constructor({ + socket, + request, + contentLength, + client, + expectsPayload, + header + }) { + this.socket = socket + this.request = request + this.contentLength = contentLength + this.client = client + this.bytesWritten = 0 + this.expectsPayload = expectsPayload + this.header = header + + socket[kWriting] = true + } + + write(chunk) { + const { + socket, + request, + contentLength, + client, + bytesWritten, + expectsPayload, + header + } = this + + if (socket[kError]) { + throw socket[kError] + } - const expectsPayload = ( - method === 'PUT' || - method === 'POST' || - method === 'PATCH' - ) + if (socket.destroyed) { + return false + } - if (body && typeof body.read === 'function') { - // Try to read EOF in order to get length. - body.read(0) - } + const len = Buffer.byteLength(chunk) + if (!len) { + return true + } - const bodyLength = util.bodyLength(body) + // We should defer writing chunks. + if (contentLength !== null && bytesWritten + len > contentLength) { + if (client[kStrictContentLength]) { + throw new RequestContentLengthMismatchError() + } - let contentLength = bodyLength + process.emitWarning(new RequestContentLengthMismatchError()) + } - if (contentLength === null) { - contentLength = request.contentLength - } + socket.cork() - if (contentLength === 0 && !expectsPayload) { - // https://tools.ietf.org/html/rfc7230#section-3.3.2 - // A user agent SHOULD NOT send a Content-Length header field when - // the request message does not contain a payload body and the method - // semantics do not anticipate such a body. + if (bytesWritten === 0) { + if (!expectsPayload) { + socket[kReset] = true + } - contentLength = null - } + if (contentLength === null) { + socket.write(`${header}transfer-encoding: chunked\r\n`, 'latin1') + } else { + socket.write( + `${header}content-length: ${contentLength}\r\n\r\n`, + 'latin1' + ) + } + } - // https://github.com/nodejs/undici/issues/2046 - // A user agent may send a Content-Length header with 0 value, this should be allowed. - if (shouldSendContentLength(method) && contentLength > 0 && request.contentLength !== null && request.contentLength !== contentLength) { - if (client[kStrictContentLength]) { - errorRequest(client, request, new RequestContentLengthMismatchError()) - return false - } + if (contentLength === null) { + socket.write(`\r\n${len.toString(16)}\r\n`, 'latin1') + } - process.emitWarning(new RequestContentLengthMismatchError()) - } + this.bytesWritten += len - const socket = client[kSocket] + const ret = socket.write(chunk) - try { - request.onConnect((err) => { - if (request.aborted || request.completed) { - return - } + socket.uncork() - errorRequest(client, request, err || new RequestAbortedError()) + request.onBodySent(chunk) - util.destroy(socket, new InformationalError('aborted')) - }) - } catch (err) { - errorRequest(client, request, err) - } + if (!ret) { + if ( + socket[kParser].timeout && + socket[kParser].timeoutType === TIMEOUT_HEADERS + ) { + // istanbul ignore else: only for jest + if (socket[kParser].timeout.refresh) { + socket[kParser].timeout.refresh() + } + } + } - if (request.aborted) { - return false - } + return ret + } - if (method === 'HEAD') { - // https://github.com/mcollina/undici/issues/258 - // Close after a HEAD request to interop with misbehaving servers - // that may send a body in the response. + end() { + const { + socket, + contentLength, + client, + bytesWritten, + expectsPayload, + header, + request + } = this + request.onRequestSent() - socket[kReset] = true - } + socket[kWriting] = false - if (upgrade || method === 'CONNECT') { - // On CONNECT or upgrade, block pipeline from dispatching further - // requests on this connection. + if (socket[kError]) { + throw socket[kError] + } - socket[kReset] = true - } + if (socket.destroyed) { + return + } - if (reset != null) { - socket[kReset] = reset - } + if (bytesWritten === 0) { + if (expectsPayload) { + // https://tools.ietf.org/html/rfc7230#section-3.3.2 + // A user agent SHOULD send a Content-Length in a request message when + // no Transfer-Encoding is sent and the request method defines a meaning + // for an enclosed payload body. - if (client[kMaxRequests] && socket[kCounter]++ >= client[kMaxRequests]) { - socket[kReset] = true - } + socket.write(`${header}content-length: 0\r\n\r\n`, 'latin1') + } else { + socket.write(`${header}\r\n`, 'latin1') + } + } else if (contentLength === null) { + socket.write('\r\n0\r\n\r\n', 'latin1') + } - if (blocking) { - socket[kBlocking] = true - } + if (contentLength !== null && bytesWritten !== contentLength) { + if (client[kStrictContentLength]) { + throw new RequestContentLengthMismatchError() + } else { + process.emitWarning(new RequestContentLengthMismatchError()) + } + } - let header = `${method} ${path} HTTP/1.1\r\n` + if ( + socket[kParser].timeout && + socket[kParser].timeoutType === TIMEOUT_HEADERS + ) { + // istanbul ignore else: only for jest + if (socket[kParser].timeout.refresh) { + socket[kParser].timeout.refresh() + } + } - if (typeof host === 'string') { - header += `host: ${host}\r\n` - } else { - header += client[kHostHeader] - } + resume(client) + } - if (upgrade) { - header += `connection: upgrade\r\nupgrade: ${upgrade}\r\n` - } else if (client[kPipelining] && !socket[kReset]) { - header += 'connection: keep-alive\r\n' - } else { - header += 'connection: close\r\n' - } + destroy(err) { + const { socket, client } = this - if (headers) { - header += headers - } + socket[kWriting] = false - if (channels.sendHeaders.hasSubscribers) { - channels.sendHeaders.publish({ request, headers: header, socket }) - } + if (err) { + assert( + client[kRunning] <= 1, + 'pipeline should only contain this request' + ) + util.destroy(socket, err) + } + } + } - /* istanbul ignore else: assertion */ - if (!body || bodyLength === 0) { - if (contentLength === 0) { - socket.write(`${header}content-length: 0\r\n\r\n`, 'latin1') - } else { - assert(contentLength === null, 'no body must not have content length') - socket.write(`${header}\r\n`, 'latin1') - } - request.onRequestSent() - } else if (util.isBuffer(body)) { - assert(contentLength === body.byteLength, 'buffer body must have content length') - - socket.cork() - socket.write(`${header}content-length: ${contentLength}\r\n\r\n`, 'latin1') - socket.write(body) - socket.uncork() - request.onBodySent(body) - request.onRequestSent() - if (!expectsPayload) { - socket[kReset] = true - } - } else if (util.isBlobLike(body)) { - if (typeof body.stream === 'function') { - writeIterable({ body: body.stream(), client, request, socket, contentLength, header, expectsPayload }) - } else { - writeBlob({ body, client, request, socket, contentLength, header, expectsPayload }) - } - } else if (util.isStream(body)) { - writeStream({ body, client, request, socket, contentLength, header, expectsPayload }) - } else if (util.isIterable(body)) { - writeIterable({ body, client, request, socket, contentLength, header, expectsPayload }) - } else { - assert(false) - } + function errorRequest(client, request, err) { + try { + request.onError(err) + assert(request.aborted) + } catch (err) { + client.emit('error', err) + } + } - return true -} + module.exports = Client -function writeH2 (client, session, request) { - const { body, method, path, host, upgrade, expectContinue, signal, headers: reqHeaders } = request + /***/ + }, - let headers - if (typeof reqHeaders === 'string') headers = Request[kHTTP2CopyHeaders](reqHeaders.trim()) - else headers = reqHeaders + /***/ 56436: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' - if (upgrade) { - errorRequest(client, request, new Error('Upgrade not supported for H2')) - return false - } + /* istanbul ignore file: only for Node 12 */ - try { - // TODO(HTTP/2): Should we call onConnect immediately or on stream ready event? - request.onConnect((err) => { - if (request.aborted || request.completed) { - return - } + const { kConnected, kSize } = __nccwpck_require__(72785) - errorRequest(client, request, err || new RequestAbortedError()) - }) - } catch (err) { - errorRequest(client, request, err) - } + class CompatWeakRef { + constructor(value) { + this.value = value + } - if (request.aborted) { - return false - } + deref() { + return this.value[kConnected] === 0 && this.value[kSize] === 0 + ? undefined + : this.value + } + } - /** @type {import('node:http2').ClientHttp2Stream} */ - let stream - const h2State = client[kHTTP2SessionState] - - headers[HTTP2_HEADER_AUTHORITY] = host || client[kHost] - headers[HTTP2_HEADER_METHOD] = method - - if (method === 'CONNECT') { - session.ref() - // we are already connected, streams are pending, first request - // will create a new stream. We trigger a request to create the stream and wait until - // `ready` event is triggered - // We disabled endStream to allow the user to write to the stream - stream = session.request(headers, { endStream: false, signal }) - - if (stream.id && !stream.pending) { - request.onUpgrade(null, null, stream) - ++h2State.openStreams - } else { - stream.once('ready', () => { - request.onUpgrade(null, null, stream) - ++h2State.openStreams - }) - } + class CompatFinalizer { + constructor(finalizer) { + this.finalizer = finalizer + } - stream.once('close', () => { - h2State.openStreams -= 1 - // TODO(HTTP/2): unref only if current streams count is 0 - if (h2State.openStreams === 0) session.unref() - }) + register(dispatcher, key) { + if (dispatcher.on) { + dispatcher.on('disconnect', () => { + if (dispatcher[kConnected] === 0 && dispatcher[kSize] === 0) { + this.finalizer(key) + } + }) + } + } + } - return true - } + module.exports = function () { + // FIXME: remove workaround when the Node bug is fixed + // https://github.com/nodejs/node/issues/49344#issuecomment-1741776308 + if (process.env.NODE_V8_COVERAGE) { + return { + WeakRef: CompatWeakRef, + FinalizationRegistry: CompatFinalizer + } + } + return { + WeakRef: global.WeakRef || CompatWeakRef, + FinalizationRegistry: global.FinalizationRegistry || CompatFinalizer + } + } - // https://tools.ietf.org/html/rfc7540#section-8.3 - // :path and :scheme headers must be omited when sending CONNECT + /***/ + }, - headers[HTTP2_HEADER_PATH] = path - headers[HTTP2_HEADER_SCHEME] = 'https' + /***/ 20663: /***/ module => { + 'use strict' - // https://tools.ietf.org/html/rfc7231#section-4.3.1 - // https://tools.ietf.org/html/rfc7231#section-4.3.2 - // https://tools.ietf.org/html/rfc7231#section-4.3.5 + // https://wicg.github.io/cookie-store/#cookie-maximum-attribute-value-size + const maxAttributeValueSize = 1024 - // Sending a payload body on a request that does not - // expect it can cause undefined behavior on some - // servers and corrupt connection state. Do not - // re-use the connection for further requests. + // https://wicg.github.io/cookie-store/#cookie-maximum-name-value-pair-size + const maxNameValuePairSize = 4096 - const expectsPayload = ( - method === 'PUT' || - method === 'POST' || - method === 'PATCH' - ) + module.exports = { + maxAttributeValueSize, + maxNameValuePairSize + } - if (body && typeof body.read === 'function') { - // Try to read EOF in order to get length. - body.read(0) - } + /***/ + }, - let contentLength = util.bodyLength(body) + /***/ 41724: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' - if (contentLength == null) { - contentLength = request.contentLength - } + const { parseSetCookie } = __nccwpck_require__(24408) + const { stringify, getHeadersList } = __nccwpck_require__(43121) + const { webidl } = __nccwpck_require__(21744) + const { Headers } = __nccwpck_require__(10554) - if (contentLength === 0 || !expectsPayload) { - // https://tools.ietf.org/html/rfc7230#section-3.3.2 - // A user agent SHOULD NOT send a Content-Length header field when - // the request message does not contain a payload body and the method - // semantics do not anticipate such a body. + /** + * @typedef {Object} Cookie + * @property {string} name + * @property {string} value + * @property {Date|number|undefined} expires + * @property {number|undefined} maxAge + * @property {string|undefined} domain + * @property {string|undefined} path + * @property {boolean|undefined} secure + * @property {boolean|undefined} httpOnly + * @property {'Strict'|'Lax'|'None'} sameSite + * @property {string[]} unparsed + */ - contentLength = null - } + /** + * @param {Headers} headers + * @returns {Record} + */ + function getCookies(headers) { + webidl.argumentLengthCheck(arguments, 1, { header: 'getCookies' }) - // https://github.com/nodejs/undici/issues/2046 - // A user agent may send a Content-Length header with 0 value, this should be allowed. - if (shouldSendContentLength(method) && contentLength > 0 && request.contentLength != null && request.contentLength !== contentLength) { - if (client[kStrictContentLength]) { - errorRequest(client, request, new RequestContentLengthMismatchError()) - return false - } + webidl.brandCheck(headers, Headers, { strict: false }) - process.emitWarning(new RequestContentLengthMismatchError()) - } + const cookie = headers.get('cookie') + const out = {} - if (contentLength != null) { - assert(body, 'no body must not have content length') - headers[HTTP2_HEADER_CONTENT_LENGTH] = `${contentLength}` - } + if (!cookie) { + return out + } - session.ref() + for (const piece of cookie.split(';')) { + const [name, ...value] = piece.split('=') - const shouldEndStream = method === 'GET' || method === 'HEAD' - if (expectContinue) { - headers[HTTP2_HEADER_EXPECT] = '100-continue' - stream = session.request(headers, { endStream: shouldEndStream, signal }) + out[name.trim()] = value.join('=') + } - stream.once('continue', writeBodyH2) - } else { - stream = session.request(headers, { - endStream: shouldEndStream, - signal - }) - writeBodyH2() - } + return out + } - // Increment counter as we have new several streams open - ++h2State.openStreams + /** + * @param {Headers} headers + * @param {string} name + * @param {{ path?: string, domain?: string }|undefined} attributes + * @returns {void} + */ + function deleteCookie(headers, name, attributes) { + webidl.argumentLengthCheck(arguments, 2, { header: 'deleteCookie' }) - stream.once('response', headers => { - const { [HTTP2_HEADER_STATUS]: statusCode, ...realHeaders } = headers + webidl.brandCheck(headers, Headers, { strict: false }) - if (request.onHeaders(Number(statusCode), realHeaders, stream.resume.bind(stream), '') === false) { - stream.pause() - } - }) + name = webidl.converters.DOMString(name) + attributes = webidl.converters.DeleteCookieAttributes(attributes) - stream.once('end', () => { - request.onComplete([]) - }) + // Matches behavior of + // https://github.com/denoland/deno_std/blob/63827b16330b82489a04614027c33b7904e08be5/http/cookie.ts#L278 + setCookie(headers, { + name, + value: '', + expires: new Date(0), + ...attributes + }) + } - stream.on('data', (chunk) => { - if (request.onData(chunk) === false) { - stream.pause() - } - }) + /** + * @param {Headers} headers + * @returns {Cookie[]} + */ + function getSetCookies(headers) { + webidl.argumentLengthCheck(arguments, 1, { header: 'getSetCookies' }) - stream.once('close', () => { - h2State.openStreams -= 1 - // TODO(HTTP/2): unref only if current streams count is 0 - if (h2State.openStreams === 0) { - session.unref() - } - }) + webidl.brandCheck(headers, Headers, { strict: false }) - stream.once('error', function (err) { - if (client[kHTTP2Session] && !client[kHTTP2Session].destroyed && !this.closed && !this.destroyed) { - h2State.streams -= 1 - util.destroy(stream, err) - } - }) + const cookies = getHeadersList(headers).cookies - stream.once('frameError', (type, code) => { - const err = new InformationalError(`HTTP/2: "frameError" received - type ${type}, code ${code}`) - errorRequest(client, request, err) + if (!cookies) { + return [] + } - if (client[kHTTP2Session] && !client[kHTTP2Session].destroyed && !this.closed && !this.destroyed) { - h2State.streams -= 1 - util.destroy(stream, err) - } - }) - - // stream.on('aborted', () => { - // // TODO(HTTP/2): Support aborted - // }) - - // stream.on('timeout', () => { - // // TODO(HTTP/2): Support timeout - // }) - - // stream.on('push', headers => { - // // TODO(HTTP/2): Suppor push - // }) - - // stream.on('trailers', headers => { - // // TODO(HTTP/2): Support trailers - // }) - - return true - - function writeBodyH2 () { - /* istanbul ignore else: assertion */ - if (!body) { - request.onRequestSent() - } else if (util.isBuffer(body)) { - assert(contentLength === body.byteLength, 'buffer body must have content length') - stream.cork() - stream.write(body) - stream.uncork() - stream.end() - request.onBodySent(body) - request.onRequestSent() - } else if (util.isBlobLike(body)) { - if (typeof body.stream === 'function') { - writeIterable({ - client, - request, - contentLength, - h2stream: stream, - expectsPayload, - body: body.stream(), - socket: client[kSocket], - header: '' - }) - } else { - writeBlob({ - body, - client, - request, - contentLength, - expectsPayload, - h2stream: stream, - header: '', - socket: client[kSocket] - }) + // In older versions of undici, cookies is a list of name:value. + return cookies.map(pair => + parseSetCookie(Array.isArray(pair) ? pair[1] : pair) + ) } - } else if (util.isStream(body)) { - writeStream({ - body, - client, - request, - contentLength, - expectsPayload, - socket: client[kSocket], - h2stream: stream, - header: '' - }) - } else if (util.isIterable(body)) { - writeIterable({ - body, - client, - request, - contentLength, - expectsPayload, - header: '', - h2stream: stream, - socket: client[kSocket] - }) - } else { - assert(false) - } - } -} -function writeStream ({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) { - assert(contentLength !== 0 || client[kRunning] === 0, 'stream body cannot be pipelined') + /** + * @param {Headers} headers + * @param {Cookie} cookie + * @returns {void} + */ + function setCookie(headers, cookie) { + webidl.argumentLengthCheck(arguments, 2, { header: 'setCookie' }) - if (client[kHTTPConnVersion] === 'h2') { - // For HTTP/2, is enough to pipe the stream - const pipe = pipeline( - body, - h2stream, - (err) => { - if (err) { - util.destroy(body, err) - util.destroy(h2stream, err) - } else { - request.onRequestSent() - } - } - ) + webidl.brandCheck(headers, Headers, { strict: false }) - pipe.on('data', onPipeData) - pipe.once('end', () => { - pipe.removeListener('data', onPipeData) - util.destroy(pipe) - }) + cookie = webidl.converters.Cookie(cookie) - function onPipeData (chunk) { - request.onBodySent(chunk) - } + const str = stringify(cookie) - return - } + if (str) { + headers.append('Set-Cookie', stringify(cookie)) + } + } - let finished = false + webidl.converters.DeleteCookieAttributes = webidl.dictionaryConverter([ + { + converter: webidl.nullableConverter(webidl.converters.DOMString), + key: 'path', + defaultValue: null + }, + { + converter: webidl.nullableConverter(webidl.converters.DOMString), + key: 'domain', + defaultValue: null + } + ]) - const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header }) + webidl.converters.Cookie = webidl.dictionaryConverter([ + { + converter: webidl.converters.DOMString, + key: 'name' + }, + { + converter: webidl.converters.DOMString, + key: 'value' + }, + { + converter: webidl.nullableConverter(value => { + if (typeof value === 'number') { + return webidl.converters['unsigned long long'](value) + } - const onData = function (chunk) { - if (finished) { - return - } + return new Date(value) + }), + key: 'expires', + defaultValue: null + }, + { + converter: webidl.nullableConverter(webidl.converters['long long']), + key: 'maxAge', + defaultValue: null + }, + { + converter: webidl.nullableConverter(webidl.converters.DOMString), + key: 'domain', + defaultValue: null + }, + { + converter: webidl.nullableConverter(webidl.converters.DOMString), + key: 'path', + defaultValue: null + }, + { + converter: webidl.nullableConverter(webidl.converters.boolean), + key: 'secure', + defaultValue: null + }, + { + converter: webidl.nullableConverter(webidl.converters.boolean), + key: 'httpOnly', + defaultValue: null + }, + { + converter: webidl.converters.USVString, + key: 'sameSite', + allowedValues: ['Strict', 'Lax', 'None'] + }, + { + converter: webidl.sequenceConverter(webidl.converters.DOMString), + key: 'unparsed', + defaultValue: [] + } + ]) - try { - if (!writer.write(chunk) && this.pause) { - this.pause() + module.exports = { + getCookies, + deleteCookie, + getSetCookies, + setCookie } - } catch (err) { - util.destroy(this, err) - } - } - const onDrain = function () { - if (finished) { - return - } - - if (body.resume) { - body.resume() - } - } - const onAbort = function () { - if (finished) { - return - } - const err = new RequestAbortedError() - queueMicrotask(() => onFinished(err)) - } - const onFinished = function (err) { - if (finished) { - return - } - finished = true + /***/ + }, - assert(socket.destroyed || (socket[kWriting] && client[kRunning] <= 1)) + /***/ 24408: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' - socket - .off('drain', onDrain) - .off('error', onFinished) + const { maxNameValuePairSize, maxAttributeValueSize } = + __nccwpck_require__(20663) + const { isCTLExcludingHtab } = __nccwpck_require__(43121) + const { collectASequenceOfCodePointsFast } = __nccwpck_require__(685) + const assert = __nccwpck_require__(39491) - body - .removeListener('data', onData) - .removeListener('end', onFinished) - .removeListener('error', onFinished) - .removeListener('close', onAbort) + /** + * @description Parses the field-value attributes of a set-cookie header string. + * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4 + * @param {string} header + * @returns if the header is invalid, null will be returned + */ + function parseSetCookie(header) { + // 1. If the set-cookie-string contains a %x00-08 / %x0A-1F / %x7F + // character (CTL characters excluding HTAB): Abort these steps and + // ignore the set-cookie-string entirely. + if (isCTLExcludingHtab(header)) { + return null + } + + let nameValuePair = '' + let unparsedAttributes = '' + let name = '' + let value = '' + + // 2. If the set-cookie-string contains a %x3B (";") character: + if (header.includes(';')) { + // 1. The name-value-pair string consists of the characters up to, + // but not including, the first %x3B (";"), and the unparsed- + // attributes consist of the remainder of the set-cookie-string + // (including the %x3B (";") in question). + const position = { position: 0 } + + nameValuePair = collectASequenceOfCodePointsFast( + ';', + header, + position + ) + unparsedAttributes = header.slice(position.position) + } else { + // Otherwise: - if (!err) { - try { - writer.end() - } catch (er) { - err = er - } - } + // 1. The name-value-pair string consists of all the characters + // contained in the set-cookie-string, and the unparsed- + // attributes is the empty string. + nameValuePair = header + } - writer.destroy(err) + // 3. If the name-value-pair string lacks a %x3D ("=") character, then + // the name string is empty, and the value string is the value of + // name-value-pair. + if (!nameValuePair.includes('=')) { + value = nameValuePair + } else { + // Otherwise, the name string consists of the characters up to, but + // not including, the first %x3D ("=") character, and the (possibly + // empty) value string consists of the characters after the first + // %x3D ("=") character. + const position = { position: 0 } + name = collectASequenceOfCodePointsFast('=', nameValuePair, position) + value = nameValuePair.slice(position.position + 1) + } - if (err && (err.code !== 'UND_ERR_INFO' || err.message !== 'reset')) { - util.destroy(body, err) - } else { - util.destroy(body) - } - } + // 4. Remove any leading or trailing WSP characters from the name + // string and the value string. + name = name.trim() + value = value.trim() - body - .on('data', onData) - .on('end', onFinished) - .on('error', onFinished) - .on('close', onAbort) + // 5. If the sum of the lengths of the name string and the value string + // is more than 4096 octets, abort these steps and ignore the set- + // cookie-string entirely. + if (name.length + value.length > maxNameValuePairSize) { + return null + } - if (body.resume) { - body.resume() - } + // 6. The cookie-name is the name string, and the cookie-value is the + // value string. + return { + name, + value, + ...parseUnparsedAttributes(unparsedAttributes) + } + } - socket - .on('drain', onDrain) - .on('error', onFinished) -} + /** + * Parses the remaining attributes of a set-cookie header + * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4 + * @param {string} unparsedAttributes + * @param {[Object.]={}} cookieAttributeList + */ + function parseUnparsedAttributes( + unparsedAttributes, + cookieAttributeList = {} + ) { + // 1. If the unparsed-attributes string is empty, skip the rest of + // these steps. + if (unparsedAttributes.length === 0) { + return cookieAttributeList + } + + // 2. Discard the first character of the unparsed-attributes (which + // will be a %x3B (";") character). + assert(unparsedAttributes[0] === ';') + unparsedAttributes = unparsedAttributes.slice(1) + + let cookieAv = '' + + // 3. If the remaining unparsed-attributes contains a %x3B (";") + // character: + if (unparsedAttributes.includes(';')) { + // 1. Consume the characters of the unparsed-attributes up to, but + // not including, the first %x3B (";") character. + cookieAv = collectASequenceOfCodePointsFast(';', unparsedAttributes, { + position: 0 + }) + unparsedAttributes = unparsedAttributes.slice(cookieAv.length) + } else { + // Otherwise: -async function writeBlob ({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) { - assert(contentLength === body.size, 'blob body must have content length') + // 1. Consume the remainder of the unparsed-attributes. + cookieAv = unparsedAttributes + unparsedAttributes = '' + } - const isH2 = client[kHTTPConnVersion] === 'h2' - try { - if (contentLength != null && contentLength !== body.size) { - throw new RequestContentLengthMismatchError() - } + // Let the cookie-av string be the characters consumed in this step. - const buffer = Buffer.from(await body.arrayBuffer()) - - if (isH2) { - h2stream.cork() - h2stream.write(buffer) - h2stream.uncork() - } else { - socket.cork() - socket.write(`${header}content-length: ${contentLength}\r\n\r\n`, 'latin1') - socket.write(buffer) - socket.uncork() - } + let attributeName = '' + let attributeValue = '' - request.onBodySent(buffer) - request.onRequestSent() + // 4. If the cookie-av string contains a %x3D ("=") character: + if (cookieAv.includes('=')) { + // 1. The (possibly empty) attribute-name string consists of the + // characters up to, but not including, the first %x3D ("=") + // character, and the (possibly empty) attribute-value string + // consists of the characters after the first %x3D ("=") + // character. + const position = { position: 0 } - if (!expectsPayload) { - socket[kReset] = true - } + attributeName = collectASequenceOfCodePointsFast( + '=', + cookieAv, + position + ) + attributeValue = cookieAv.slice(position.position + 1) + } else { + // Otherwise: - resume(client) - } catch (err) { - util.destroy(isH2 ? h2stream : socket, err) - } -} + // 1. The attribute-name string consists of the entire cookie-av + // string, and the attribute-value string is empty. + attributeName = cookieAv + } -async function writeIterable ({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) { - assert(contentLength !== 0 || client[kRunning] === 0, 'iterator body cannot be pipelined') + // 5. Remove any leading or trailing WSP characters from the attribute- + // name string and the attribute-value string. + attributeName = attributeName.trim() + attributeValue = attributeValue.trim() - let callback = null - function onDrain () { - if (callback) { - const cb = callback - callback = null - cb() - } - } + // 6. If the attribute-value is longer than 1024 octets, ignore the + // cookie-av string and return to Step 1 of this algorithm. + if (attributeValue.length > maxAttributeValueSize) { + return parseUnparsedAttributes( + unparsedAttributes, + cookieAttributeList + ) + } - const waitForDrain = () => new Promise((resolve, reject) => { - assert(callback === null) + // 7. Process the attribute-name and attribute-value according to the + // requirements in the following subsections. (Notice that + // attributes with unrecognized attribute-names are ignored.) + const attributeNameLowercase = attributeName.toLowerCase() + + // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.1 + // If the attribute-name case-insensitively matches the string + // "Expires", the user agent MUST process the cookie-av as follows. + if (attributeNameLowercase === 'expires') { + // 1. Let the expiry-time be the result of parsing the attribute-value + // as cookie-date (see Section 5.1.1). + const expiryTime = new Date(attributeValue) + + // 2. If the attribute-value failed to parse as a cookie date, ignore + // the cookie-av. + + cookieAttributeList.expires = expiryTime + } else if (attributeNameLowercase === 'max-age') { + // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.2 + // If the attribute-name case-insensitively matches the string "Max- + // Age", the user agent MUST process the cookie-av as follows. + + // 1. If the first character of the attribute-value is not a DIGIT or a + // "-" character, ignore the cookie-av. + const charCode = attributeValue.charCodeAt(0) + + if ((charCode < 48 || charCode > 57) && attributeValue[0] !== '-') { + return parseUnparsedAttributes( + unparsedAttributes, + cookieAttributeList + ) + } - if (socket[kError]) { - reject(socket[kError]) - } else { - callback = resolve - } - }) + // 2. If the remainder of attribute-value contains a non-DIGIT + // character, ignore the cookie-av. + if (!/^\d+$/.test(attributeValue)) { + return parseUnparsedAttributes( + unparsedAttributes, + cookieAttributeList + ) + } - if (client[kHTTPConnVersion] === 'h2') { - h2stream - .on('close', onDrain) - .on('drain', onDrain) + // 3. Let delta-seconds be the attribute-value converted to an integer. + const deltaSeconds = Number(attributeValue) + + // 4. Let cookie-age-limit be the maximum age of the cookie (which + // SHOULD be 400 days or less, see Section 4.1.2.2). + + // 5. Set delta-seconds to the smaller of its present value and cookie- + // age-limit. + // deltaSeconds = Math.min(deltaSeconds * 1000, maxExpiresMs) + + // 6. If delta-seconds is less than or equal to zero (0), let expiry- + // time be the earliest representable date and time. Otherwise, let + // the expiry-time be the current date and time plus delta-seconds + // seconds. + // const expiryTime = deltaSeconds <= 0 ? Date.now() : Date.now() + deltaSeconds + + // 7. Append an attribute to the cookie-attribute-list with an + // attribute-name of Max-Age and an attribute-value of expiry-time. + cookieAttributeList.maxAge = deltaSeconds + } else if (attributeNameLowercase === 'domain') { + // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.3 + // If the attribute-name case-insensitively matches the string "Domain", + // the user agent MUST process the cookie-av as follows. + + // 1. Let cookie-domain be the attribute-value. + let cookieDomain = attributeValue + + // 2. If cookie-domain starts with %x2E ("."), let cookie-domain be + // cookie-domain without its leading %x2E ("."). + if (cookieDomain[0] === '.') { + cookieDomain = cookieDomain.slice(1) + } - try { - // It's up to the user to somehow abort the async iterable. - for await (const chunk of body) { - if (socket[kError]) { - throw socket[kError] - } + // 3. Convert the cookie-domain to lower case. + cookieDomain = cookieDomain.toLowerCase() + + // 4. Append an attribute to the cookie-attribute-list with an + // attribute-name of Domain and an attribute-value of cookie-domain. + cookieAttributeList.domain = cookieDomain + } else if (attributeNameLowercase === 'path') { + // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.4 + // If the attribute-name case-insensitively matches the string "Path", + // the user agent MUST process the cookie-av as follows. + + // 1. If the attribute-value is empty or if the first character of the + // attribute-value is not %x2F ("/"): + let cookiePath = '' + if (attributeValue.length === 0 || attributeValue[0] !== '/') { + // 1. Let cookie-path be the default-path. + cookiePath = '/' + } else { + // Otherwise: - const res = h2stream.write(chunk) - request.onBodySent(chunk) - if (!res) { - await waitForDrain() - } - } - } catch (err) { - h2stream.destroy(err) - } finally { - request.onRequestSent() - h2stream.end() - h2stream - .off('close', onDrain) - .off('drain', onDrain) - } + // 1. Let cookie-path be the attribute-value. + cookiePath = attributeValue + } - return - } + // 2. Append an attribute to the cookie-attribute-list with an + // attribute-name of Path and an attribute-value of cookie-path. + cookieAttributeList.path = cookiePath + } else if (attributeNameLowercase === 'secure') { + // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.5 + // If the attribute-name case-insensitively matches the string "Secure", + // the user agent MUST append an attribute to the cookie-attribute-list + // with an attribute-name of Secure and an empty attribute-value. + + cookieAttributeList.secure = true + } else if (attributeNameLowercase === 'httponly') { + // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.6 + // If the attribute-name case-insensitively matches the string + // "HttpOnly", the user agent MUST append an attribute to the cookie- + // attribute-list with an attribute-name of HttpOnly and an empty + // attribute-value. + + cookieAttributeList.httpOnly = true + } else if (attributeNameLowercase === 'samesite') { + // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.7 + // If the attribute-name case-insensitively matches the string + // "SameSite", the user agent MUST process the cookie-av as follows: + + // 1. Let enforcement be "Default". + let enforcement = 'Default' + + const attributeValueLowercase = attributeValue.toLowerCase() + // 2. If cookie-av's attribute-value is a case-insensitive match for + // "None", set enforcement to "None". + if (attributeValueLowercase.includes('none')) { + enforcement = 'None' + } - socket - .on('close', onDrain) - .on('drain', onDrain) + // 3. If cookie-av's attribute-value is a case-insensitive match for + // "Strict", set enforcement to "Strict". + if (attributeValueLowercase.includes('strict')) { + enforcement = 'Strict' + } - const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header }) - try { - // It's up to the user to somehow abort the async iterable. - for await (const chunk of body) { - if (socket[kError]) { - throw socket[kError] - } + // 4. If cookie-av's attribute-value is a case-insensitive match for + // "Lax", set enforcement to "Lax". + if (attributeValueLowercase.includes('lax')) { + enforcement = 'Lax' + } - if (!writer.write(chunk)) { - await waitForDrain() - } - } + // 5. Append an attribute to the cookie-attribute-list with an + // attribute-name of "SameSite" and an attribute-value of + // enforcement. + cookieAttributeList.sameSite = enforcement + } else { + cookieAttributeList.unparsed ??= [] - writer.end() - } catch (err) { - writer.destroy(err) - } finally { - socket - .off('close', onDrain) - .off('drain', onDrain) - } -} - -class AsyncWriter { - constructor ({ socket, request, contentLength, client, expectsPayload, header }) { - this.socket = socket - this.request = request - this.contentLength = contentLength - this.client = client - this.bytesWritten = 0 - this.expectsPayload = expectsPayload - this.header = header - - socket[kWriting] = true - } + cookieAttributeList.unparsed.push( + `${attributeName}=${attributeValue}` + ) + } - write (chunk) { - const { socket, request, contentLength, client, bytesWritten, expectsPayload, header } = this + // 8. Return to Step 1 of this algorithm. + return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList) + } - if (socket[kError]) { - throw socket[kError] - } + module.exports = { + parseSetCookie, + parseUnparsedAttributes + } - if (socket.destroyed) { - return false - } + /***/ + }, - const len = Buffer.byteLength(chunk) - if (!len) { - return true - } + /***/ 43121: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' - // We should defer writing chunks. - if (contentLength !== null && bytesWritten + len > contentLength) { - if (client[kStrictContentLength]) { - throw new RequestContentLengthMismatchError() - } + const assert = __nccwpck_require__(39491) + const { kHeadersList } = __nccwpck_require__(72785) - process.emitWarning(new RequestContentLengthMismatchError()) - } + function isCTLExcludingHtab(value) { + if (value.length === 0) { + return false + } - socket.cork() + for (const char of value) { + const code = char.charCodeAt(0) - if (bytesWritten === 0) { - if (!expectsPayload) { - socket[kReset] = true + if ( + code >= 0x00 || + code <= 0x08 || + code >= 0x0a || + code <= 0x1f || + code === 0x7f + ) { + return false + } + } } - if (contentLength === null) { - socket.write(`${header}transfer-encoding: chunked\r\n`, 'latin1') - } else { - socket.write(`${header}content-length: ${contentLength}\r\n\r\n`, 'latin1') - } - } + /** + CHAR = + token = 1* + separators = "(" | ")" | "<" | ">" | "@" + | "," | ";" | ":" | "\" | <"> + | "/" | "[" | "]" | "?" | "=" + | "{" | "}" | SP | HT + * @param {string} name + */ + function validateCookieName(name) { + for (const char of name) { + const code = char.charCodeAt(0) - if (contentLength === null) { - socket.write(`\r\n${len.toString(16)}\r\n`, 'latin1') - } + if ( + code <= 0x20 || + code > 0x7f || + char === '(' || + char === ')' || + char === '>' || + char === '<' || + char === '@' || + char === ',' || + char === ';' || + char === ':' || + char === '\\' || + char === '"' || + char === '/' || + char === '[' || + char === ']' || + char === '?' || + char === '=' || + char === '{' || + char === '}' + ) { + throw new Error('Invalid cookie name') + } + } + } - this.bytesWritten += len + /** + cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE ) + cookie-octet = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E + ; US-ASCII characters excluding CTLs, + ; whitespace DQUOTE, comma, semicolon, + ; and backslash + * @param {string} value + */ + function validateCookieValue(value) { + for (const char of value) { + const code = char.charCodeAt(0) - const ret = socket.write(chunk) + if ( + code < 0x21 || // exclude CTLs (0-31) + code === 0x22 || + code === 0x2c || + code === 0x3b || + code === 0x5c || + code > 0x7e // non-ascii + ) { + throw new Error('Invalid header value') + } + } + } - socket.uncork() + /** + * path-value = + * @param {string} path + */ + function validateCookiePath(path) { + for (const char of path) { + const code = char.charCodeAt(0) - request.onBodySent(chunk) + if (code < 0x21 || char === ';') { + throw new Error('Invalid cookie path') + } + } + } - if (!ret) { - if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) { - // istanbul ignore else: only for jest - if (socket[kParser].timeout.refresh) { - socket[kParser].timeout.refresh() + /** + * I have no idea why these values aren't allowed to be honest, + * but Deno tests these. - Khafra + * @param {string} domain + */ + function validateCookieDomain(domain) { + if ( + domain.startsWith('-') || + domain.endsWith('.') || + domain.endsWith('-') + ) { + throw new Error('Invalid cookie domain') } } - } - return ret - } + /** + * @see https://www.rfc-editor.org/rfc/rfc7231#section-7.1.1.1 + * @param {number|Date} date + IMF-fixdate = day-name "," SP date1 SP time-of-day SP GMT + ; fixed length/zone/capitalization subset of the format + ; see Section 3.3 of [RFC5322] - end () { - const { socket, contentLength, client, bytesWritten, expectsPayload, header, request } = this - request.onRequestSent() + day-name = %x4D.6F.6E ; "Mon", case-sensitive + / %x54.75.65 ; "Tue", case-sensitive + / %x57.65.64 ; "Wed", case-sensitive + / %x54.68.75 ; "Thu", case-sensitive + / %x46.72.69 ; "Fri", case-sensitive + / %x53.61.74 ; "Sat", case-sensitive + / %x53.75.6E ; "Sun", case-sensitive + date1 = day SP month SP year + ; e.g., 02 Jun 1982 - socket[kWriting] = false + day = 2DIGIT + month = %x4A.61.6E ; "Jan", case-sensitive + / %x46.65.62 ; "Feb", case-sensitive + / %x4D.61.72 ; "Mar", case-sensitive + / %x41.70.72 ; "Apr", case-sensitive + / %x4D.61.79 ; "May", case-sensitive + / %x4A.75.6E ; "Jun", case-sensitive + / %x4A.75.6C ; "Jul", case-sensitive + / %x41.75.67 ; "Aug", case-sensitive + / %x53.65.70 ; "Sep", case-sensitive + / %x4F.63.74 ; "Oct", case-sensitive + / %x4E.6F.76 ; "Nov", case-sensitive + / %x44.65.63 ; "Dec", case-sensitive + year = 4DIGIT - if (socket[kError]) { - throw socket[kError] - } + GMT = %x47.4D.54 ; "GMT", case-sensitive - if (socket.destroyed) { - return - } + time-of-day = hour ":" minute ":" second + ; 00:00:00 - 23:59:60 (leap second) - if (bytesWritten === 0) { - if (expectsPayload) { - // https://tools.ietf.org/html/rfc7230#section-3.3.2 - // A user agent SHOULD send a Content-Length in a request message when - // no Transfer-Encoding is sent and the request method defines a meaning - // for an enclosed payload body. + hour = 2DIGIT + minute = 2DIGIT + second = 2DIGIT + */ + function toIMFDate(date) { + if (typeof date === 'number') { + date = new Date(date) + } + + const days = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'] + + const months = [ + 'Jan', + 'Feb', + 'Mar', + 'Apr', + 'May', + 'Jun', + 'Jul', + 'Aug', + 'Sep', + 'Oct', + 'Nov', + 'Dec' + ] - socket.write(`${header}content-length: 0\r\n\r\n`, 'latin1') - } else { - socket.write(`${header}\r\n`, 'latin1') - } - } else if (contentLength === null) { - socket.write('\r\n0\r\n\r\n', 'latin1') - } + const dayName = days[date.getUTCDay()] + const day = date.getUTCDate().toString().padStart(2, '0') + const month = months[date.getUTCMonth()] + const year = date.getUTCFullYear() + const hour = date.getUTCHours().toString().padStart(2, '0') + const minute = date.getUTCMinutes().toString().padStart(2, '0') + const second = date.getUTCSeconds().toString().padStart(2, '0') - if (contentLength !== null && bytesWritten !== contentLength) { - if (client[kStrictContentLength]) { - throw new RequestContentLengthMismatchError() - } else { - process.emitWarning(new RequestContentLengthMismatchError()) + return `${dayName}, ${day} ${month} ${year} ${hour}:${minute}:${second} GMT` } - } - if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) { - // istanbul ignore else: only for jest - if (socket[kParser].timeout.refresh) { - socket[kParser].timeout.refresh() + /** + max-age-av = "Max-Age=" non-zero-digit *DIGIT + ; In practice, both expires-av and max-age-av + ; are limited to dates representable by the + ; user agent. + * @param {number} maxAge + */ + function validateCookieMaxAge(maxAge) { + if (maxAge < 0) { + throw new Error('Invalid cookie max-age') + } } - } - resume(client) - } + /** + * @see https://www.rfc-editor.org/rfc/rfc6265#section-4.1.1 + * @param {import('./index').Cookie} cookie + */ + function stringify(cookie) { + if (cookie.name.length === 0) { + return null + } - destroy (err) { - const { socket, client } = this + validateCookieName(cookie.name) + validateCookieValue(cookie.value) - socket[kWriting] = false + const out = [`${cookie.name}=${cookie.value}`] - if (err) { - assert(client[kRunning] <= 1, 'pipeline should only contain this request') - util.destroy(socket, err) - } - } -} - -function errorRequest (client, request, err) { - try { - request.onError(err) - assert(request.aborted) - } catch (err) { - client.emit('error', err) - } -} + // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.1 + // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.2 + if (cookie.name.startsWith('__Secure-')) { + cookie.secure = true + } -module.exports = Client + if (cookie.name.startsWith('__Host-')) { + cookie.secure = true + cookie.domain = null + cookie.path = '/' + } + if (cookie.secure) { + out.push('Secure') + } -/***/ }), + if (cookie.httpOnly) { + out.push('HttpOnly') + } -/***/ 56436: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + if (typeof cookie.maxAge === 'number') { + validateCookieMaxAge(cookie.maxAge) + out.push(`Max-Age=${cookie.maxAge}`) + } -"use strict"; + if (cookie.domain) { + validateCookieDomain(cookie.domain) + out.push(`Domain=${cookie.domain}`) + } + if (cookie.path) { + validateCookiePath(cookie.path) + out.push(`Path=${cookie.path}`) + } -/* istanbul ignore file: only for Node 12 */ + if (cookie.expires && cookie.expires.toString() !== 'Invalid Date') { + out.push(`Expires=${toIMFDate(cookie.expires)}`) + } -const { kConnected, kSize } = __nccwpck_require__(72785) + if (cookie.sameSite) { + out.push(`SameSite=${cookie.sameSite}`) + } -class CompatWeakRef { - constructor (value) { - this.value = value - } + for (const part of cookie.unparsed) { + if (!part.includes('=')) { + throw new Error('Invalid unparsed') + } - deref () { - return this.value[kConnected] === 0 && this.value[kSize] === 0 - ? undefined - : this.value - } -} + const [key, ...value] = part.split('=') -class CompatFinalizer { - constructor (finalizer) { - this.finalizer = finalizer - } + out.push(`${key.trim()}=${value.join('=')}`) + } + + return out.join('; ') + } - register (dispatcher, key) { - if (dispatcher.on) { - dispatcher.on('disconnect', () => { - if (dispatcher[kConnected] === 0 && dispatcher[kSize] === 0) { - this.finalizer(key) + let kHeadersListNode + + function getHeadersList(headers) { + if (headers[kHeadersList]) { + return headers[kHeadersList] } - }) - } - } -} - -module.exports = function () { - // FIXME: remove workaround when the Node bug is fixed - // https://github.com/nodejs/node/issues/49344#issuecomment-1741776308 - if (process.env.NODE_V8_COVERAGE) { - return { - WeakRef: CompatWeakRef, - FinalizationRegistry: CompatFinalizer - } - } - return { - WeakRef: global.WeakRef || CompatWeakRef, - FinalizationRegistry: global.FinalizationRegistry || CompatFinalizer - } -} + if (!kHeadersListNode) { + kHeadersListNode = Object.getOwnPropertySymbols(headers).find( + symbol => symbol.description === 'headers list' + ) -/***/ }), + assert(kHeadersListNode, 'Headers cannot be parsed') + } -/***/ 20663: -/***/ ((module) => { + const headersList = headers[kHeadersListNode] + assert(headersList) -"use strict"; + return headersList + } + module.exports = { + isCTLExcludingHtab, + stringify, + getHeadersList + } -// https://wicg.github.io/cookie-store/#cookie-maximum-attribute-value-size -const maxAttributeValueSize = 1024 + /***/ + }, -// https://wicg.github.io/cookie-store/#cookie-maximum-name-value-pair-size -const maxNameValuePairSize = 4096 + /***/ 82067: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + const net = __nccwpck_require__(41808) + const assert = __nccwpck_require__(39491) + const util = __nccwpck_require__(83983) + const { InvalidArgumentError, ConnectTimeoutError } = + __nccwpck_require__(48045) + + let tls // include tls conditionally since it is not always available + + // TODO: session re-use does not wait for the first + // connection to resolve the session and might therefore + // resolve the same servername multiple times even when + // re-use is enabled. + + let SessionCache + // FIXME: remove workaround when the Node bug is fixed + // https://github.com/nodejs/node/issues/49344#issuecomment-1741776308 + if (global.FinalizationRegistry && !process.env.NODE_V8_COVERAGE) { + SessionCache = class WeakSessionCache { + constructor(maxCachedSessions) { + this._maxCachedSessions = maxCachedSessions + this._sessionCache = new Map() + this._sessionRegistry = new global.FinalizationRegistry(key => { + if (this._sessionCache.size < this._maxCachedSessions) { + return + } -module.exports = { - maxAttributeValueSize, - maxNameValuePairSize -} + const ref = this._sessionCache.get(key) + if (ref !== undefined && ref.deref() === undefined) { + this._sessionCache.delete(key) + } + }) + } + get(sessionKey) { + const ref = this._sessionCache.get(sessionKey) + return ref ? ref.deref() : null + } -/***/ }), + set(sessionKey, session) { + if (this._maxCachedSessions === 0) { + return + } -/***/ 41724: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + this._sessionCache.set(sessionKey, new WeakRef(session)) + this._sessionRegistry.register(session, sessionKey) + } + } + } else { + SessionCache = class SimpleSessionCache { + constructor(maxCachedSessions) { + this._maxCachedSessions = maxCachedSessions + this._sessionCache = new Map() + } -"use strict"; + get(sessionKey) { + return this._sessionCache.get(sessionKey) + } + set(sessionKey, session) { + if (this._maxCachedSessions === 0) { + return + } -const { parseSetCookie } = __nccwpck_require__(24408) -const { stringify, getHeadersList } = __nccwpck_require__(43121) -const { webidl } = __nccwpck_require__(21744) -const { Headers } = __nccwpck_require__(10554) + if (this._sessionCache.size >= this._maxCachedSessions) { + // remove the oldest session + const { value: oldestKey } = this._sessionCache.keys().next() + this._sessionCache.delete(oldestKey) + } -/** - * @typedef {Object} Cookie - * @property {string} name - * @property {string} value - * @property {Date|number|undefined} expires - * @property {number|undefined} maxAge - * @property {string|undefined} domain - * @property {string|undefined} path - * @property {boolean|undefined} secure - * @property {boolean|undefined} httpOnly - * @property {'Strict'|'Lax'|'None'} sameSite - * @property {string[]} unparsed - */ + this._sessionCache.set(sessionKey, session) + } + } + } -/** - * @param {Headers} headers - * @returns {Record} - */ -function getCookies (headers) { - webidl.argumentLengthCheck(arguments, 1, { header: 'getCookies' }) + function buildConnector({ + allowH2, + maxCachedSessions, + socketPath, + timeout, + ...opts + }) { + if ( + maxCachedSessions != null && + (!Number.isInteger(maxCachedSessions) || maxCachedSessions < 0) + ) { + throw new InvalidArgumentError( + 'maxCachedSessions must be a positive integer or zero' + ) + } - webidl.brandCheck(headers, Headers, { strict: false }) + const options = { path: socketPath, ...opts } + const sessionCache = new SessionCache( + maxCachedSessions == null ? 100 : maxCachedSessions + ) + timeout = timeout == null ? 10e3 : timeout + allowH2 = allowH2 != null ? allowH2 : false + return function connect( + { + hostname, + host, + protocol, + port, + servername, + localAddress, + httpSocket + }, + callback + ) { + let socket + if (protocol === 'https:') { + if (!tls) { + tls = __nccwpck_require__(24404) + } + servername = + servername || + options.servername || + util.getServerName(host) || + null + + const sessionKey = servername || hostname + const session = sessionCache.get(sessionKey) || null + + assert(sessionKey) + + socket = tls.connect({ + highWaterMark: 16384, // TLS in node can't have bigger HWM anyway... + ...options, + servername, + session, + localAddress, + // TODO(HTTP/2): Add support for h2c + ALPNProtocols: allowH2 ? ['http/1.1', 'h2'] : ['http/1.1'], + socket: httpSocket, // upgrade socket connection + port: port || 443, + host: hostname + }) - const cookie = headers.get('cookie') - const out = {} + socket.on('session', function (session) { + // TODO (fix): Can a session become invalid once established? Don't think so? + sessionCache.set(sessionKey, session) + }) + } else { + assert(!httpSocket, 'httpSocket can only be sent on TLS update') + socket = net.connect({ + highWaterMark: 64 * 1024, // Same as nodejs fs streams. + ...options, + localAddress, + port: port || 80, + host: hostname + }) + } - if (!cookie) { - return out - } + // Set TCP keep alive options on the socket here instead of in connect() for the case of assigning the socket + if (options.keepAlive == null || options.keepAlive) { + const keepAliveInitialDelay = + options.keepAliveInitialDelay === undefined + ? 60e3 + : options.keepAliveInitialDelay + socket.setKeepAlive(true, keepAliveInitialDelay) + } - for (const piece of cookie.split(';')) { - const [name, ...value] = piece.split('=') + const cancelTimeout = setupTimeout( + () => onConnectTimeout(socket), + timeout + ) - out[name.trim()] = value.join('=') - } + socket + .setNoDelay(true) + .once( + protocol === 'https:' ? 'secureConnect' : 'connect', + function () { + cancelTimeout() + + if (callback) { + const cb = callback + callback = null + cb(null, this) + } + } + ) + .on('error', function (err) { + cancelTimeout() - return out -} + if (callback) { + const cb = callback + callback = null + cb(err) + } + }) -/** - * @param {Headers} headers - * @param {string} name - * @param {{ path?: string, domain?: string }|undefined} attributes - * @returns {void} - */ -function deleteCookie (headers, name, attributes) { - webidl.argumentLengthCheck(arguments, 2, { header: 'deleteCookie' }) - - webidl.brandCheck(headers, Headers, { strict: false }) - - name = webidl.converters.DOMString(name) - attributes = webidl.converters.DeleteCookieAttributes(attributes) - - // Matches behavior of - // https://github.com/denoland/deno_std/blob/63827b16330b82489a04614027c33b7904e08be5/http/cookie.ts#L278 - setCookie(headers, { - name, - value: '', - expires: new Date(0), - ...attributes - }) -} - -/** - * @param {Headers} headers - * @returns {Cookie[]} - */ -function getSetCookies (headers) { - webidl.argumentLengthCheck(arguments, 1, { header: 'getSetCookies' }) + return socket + } + } - webidl.brandCheck(headers, Headers, { strict: false }) + function setupTimeout(onConnectTimeout, timeout) { + if (!timeout) { + return () => {} + } - const cookies = getHeadersList(headers).cookies + let s1 = null + let s2 = null + const timeoutId = setTimeout(() => { + // setImmediate is added to make sure that we priotorise socket error events over timeouts + s1 = setImmediate(() => { + if (process.platform === 'win32') { + // Windows needs an extra setImmediate probably due to implementation differences in the socket logic + s2 = setImmediate(() => onConnectTimeout()) + } else { + onConnectTimeout() + } + }) + }, timeout) + return () => { + clearTimeout(timeoutId) + clearImmediate(s1) + clearImmediate(s2) + } + } - if (!cookies) { - return [] - } + function onConnectTimeout(socket) { + util.destroy(socket, new ConnectTimeoutError()) + } - // In older versions of undici, cookies is a list of name:value. - return cookies.map((pair) => parseSetCookie(Array.isArray(pair) ? pair[1] : pair)) -} + module.exports = buildConnector -/** - * @param {Headers} headers - * @param {Cookie} cookie - * @returns {void} - */ -function setCookie (headers, cookie) { - webidl.argumentLengthCheck(arguments, 2, { header: 'setCookie' }) + /***/ + }, - webidl.brandCheck(headers, Headers, { strict: false }) + /***/ 14462: /***/ module => { + 'use strict' + + /** @type {Record} */ + const headerNameLowerCasedRecord = {} + + // https://developer.mozilla.org/docs/Web/HTTP/Headers + const wellknownHeaderNames = [ + 'Accept', + 'Accept-Encoding', + 'Accept-Language', + 'Accept-Ranges', + 'Access-Control-Allow-Credentials', + 'Access-Control-Allow-Headers', + 'Access-Control-Allow-Methods', + 'Access-Control-Allow-Origin', + 'Access-Control-Expose-Headers', + 'Access-Control-Max-Age', + 'Access-Control-Request-Headers', + 'Access-Control-Request-Method', + 'Age', + 'Allow', + 'Alt-Svc', + 'Alt-Used', + 'Authorization', + 'Cache-Control', + 'Clear-Site-Data', + 'Connection', + 'Content-Disposition', + 'Content-Encoding', + 'Content-Language', + 'Content-Length', + 'Content-Location', + 'Content-Range', + 'Content-Security-Policy', + 'Content-Security-Policy-Report-Only', + 'Content-Type', + 'Cookie', + 'Cross-Origin-Embedder-Policy', + 'Cross-Origin-Opener-Policy', + 'Cross-Origin-Resource-Policy', + 'Date', + 'Device-Memory', + 'Downlink', + 'ECT', + 'ETag', + 'Expect', + 'Expect-CT', + 'Expires', + 'Forwarded', + 'From', + 'Host', + 'If-Match', + 'If-Modified-Since', + 'If-None-Match', + 'If-Range', + 'If-Unmodified-Since', + 'Keep-Alive', + 'Last-Modified', + 'Link', + 'Location', + 'Max-Forwards', + 'Origin', + 'Permissions-Policy', + 'Pragma', + 'Proxy-Authenticate', + 'Proxy-Authorization', + 'RTT', + 'Range', + 'Referer', + 'Referrer-Policy', + 'Refresh', + 'Retry-After', + 'Sec-WebSocket-Accept', + 'Sec-WebSocket-Extensions', + 'Sec-WebSocket-Key', + 'Sec-WebSocket-Protocol', + 'Sec-WebSocket-Version', + 'Server', + 'Server-Timing', + 'Service-Worker-Allowed', + 'Service-Worker-Navigation-Preload', + 'Set-Cookie', + 'SourceMap', + 'Strict-Transport-Security', + 'Supports-Loading-Mode', + 'TE', + 'Timing-Allow-Origin', + 'Trailer', + 'Transfer-Encoding', + 'Upgrade', + 'Upgrade-Insecure-Requests', + 'User-Agent', + 'Vary', + 'Via', + 'WWW-Authenticate', + 'X-Content-Type-Options', + 'X-DNS-Prefetch-Control', + 'X-Frame-Options', + 'X-Permitted-Cross-Domain-Policies', + 'X-Powered-By', + 'X-Requested-With', + 'X-XSS-Protection' + ] - cookie = webidl.converters.Cookie(cookie) + for (let i = 0; i < wellknownHeaderNames.length; ++i) { + const key = wellknownHeaderNames[i] + const lowerCasedKey = key.toLowerCase() + headerNameLowerCasedRecord[key] = headerNameLowerCasedRecord[ + lowerCasedKey + ] = lowerCasedKey + } - const str = stringify(cookie) + // Note: object prototypes should not be able to be referenced. e.g. `Object#hasOwnProperty`. + Object.setPrototypeOf(headerNameLowerCasedRecord, null) - if (str) { - headers.append('Set-Cookie', stringify(cookie)) - } -} - -webidl.converters.DeleteCookieAttributes = webidl.dictionaryConverter([ - { - converter: webidl.nullableConverter(webidl.converters.DOMString), - key: 'path', - defaultValue: null - }, - { - converter: webidl.nullableConverter(webidl.converters.DOMString), - key: 'domain', - defaultValue: null - } -]) - -webidl.converters.Cookie = webidl.dictionaryConverter([ - { - converter: webidl.converters.DOMString, - key: 'name' - }, - { - converter: webidl.converters.DOMString, - key: 'value' - }, - { - converter: webidl.nullableConverter((value) => { - if (typeof value === 'number') { - return webidl.converters['unsigned long long'](value) - } - - return new Date(value) - }), - key: 'expires', - defaultValue: null - }, - { - converter: webidl.nullableConverter(webidl.converters['long long']), - key: 'maxAge', - defaultValue: null - }, - { - converter: webidl.nullableConverter(webidl.converters.DOMString), - key: 'domain', - defaultValue: null - }, - { - converter: webidl.nullableConverter(webidl.converters.DOMString), - key: 'path', - defaultValue: null - }, - { - converter: webidl.nullableConverter(webidl.converters.boolean), - key: 'secure', - defaultValue: null - }, - { - converter: webidl.nullableConverter(webidl.converters.boolean), - key: 'httpOnly', - defaultValue: null - }, - { - converter: webidl.converters.USVString, - key: 'sameSite', - allowedValues: ['Strict', 'Lax', 'None'] - }, - { - converter: webidl.sequenceConverter(webidl.converters.DOMString), - key: 'unparsed', - defaultValue: [] - } -]) + module.exports = { + wellknownHeaderNames, + headerNameLowerCasedRecord + } -module.exports = { - getCookies, - deleteCookie, - getSetCookies, - setCookie -} + /***/ + }, + /***/ 48045: /***/ module => { + 'use strict' -/***/ }), + class UndiciError extends Error { + constructor(message) { + super(message) + this.name = 'UndiciError' + this.code = 'UND_ERR' + } + } -/***/ 24408: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + class ConnectTimeoutError extends UndiciError { + constructor(message) { + super(message) + Error.captureStackTrace(this, ConnectTimeoutError) + this.name = 'ConnectTimeoutError' + this.message = message || 'Connect Timeout Error' + this.code = 'UND_ERR_CONNECT_TIMEOUT' + } + } -"use strict"; + class HeadersTimeoutError extends UndiciError { + constructor(message) { + super(message) + Error.captureStackTrace(this, HeadersTimeoutError) + this.name = 'HeadersTimeoutError' + this.message = message || 'Headers Timeout Error' + this.code = 'UND_ERR_HEADERS_TIMEOUT' + } + } + class HeadersOverflowError extends UndiciError { + constructor(message) { + super(message) + Error.captureStackTrace(this, HeadersOverflowError) + this.name = 'HeadersOverflowError' + this.message = message || 'Headers Overflow Error' + this.code = 'UND_ERR_HEADERS_OVERFLOW' + } + } -const { maxNameValuePairSize, maxAttributeValueSize } = __nccwpck_require__(20663) -const { isCTLExcludingHtab } = __nccwpck_require__(43121) -const { collectASequenceOfCodePointsFast } = __nccwpck_require__(685) -const assert = __nccwpck_require__(39491) + class BodyTimeoutError extends UndiciError { + constructor(message) { + super(message) + Error.captureStackTrace(this, BodyTimeoutError) + this.name = 'BodyTimeoutError' + this.message = message || 'Body Timeout Error' + this.code = 'UND_ERR_BODY_TIMEOUT' + } + } -/** - * @description Parses the field-value attributes of a set-cookie header string. - * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4 - * @param {string} header - * @returns if the header is invalid, null will be returned - */ -function parseSetCookie (header) { - // 1. If the set-cookie-string contains a %x00-08 / %x0A-1F / %x7F - // character (CTL characters excluding HTAB): Abort these steps and - // ignore the set-cookie-string entirely. - if (isCTLExcludingHtab(header)) { - return null - } + class ResponseStatusCodeError extends UndiciError { + constructor(message, statusCode, headers, body) { + super(message) + Error.captureStackTrace(this, ResponseStatusCodeError) + this.name = 'ResponseStatusCodeError' + this.message = message || 'Response Status Code Error' + this.code = 'UND_ERR_RESPONSE_STATUS_CODE' + this.body = body + this.status = statusCode + this.statusCode = statusCode + this.headers = headers + } + } - let nameValuePair = '' - let unparsedAttributes = '' - let name = '' - let value = '' - - // 2. If the set-cookie-string contains a %x3B (";") character: - if (header.includes(';')) { - // 1. The name-value-pair string consists of the characters up to, - // but not including, the first %x3B (";"), and the unparsed- - // attributes consist of the remainder of the set-cookie-string - // (including the %x3B (";") in question). - const position = { position: 0 } - - nameValuePair = collectASequenceOfCodePointsFast(';', header, position) - unparsedAttributes = header.slice(position.position) - } else { - // Otherwise: - - // 1. The name-value-pair string consists of all the characters - // contained in the set-cookie-string, and the unparsed- - // attributes is the empty string. - nameValuePair = header - } + class InvalidArgumentError extends UndiciError { + constructor(message) { + super(message) + Error.captureStackTrace(this, InvalidArgumentError) + this.name = 'InvalidArgumentError' + this.message = message || 'Invalid Argument Error' + this.code = 'UND_ERR_INVALID_ARG' + } + } - // 3. If the name-value-pair string lacks a %x3D ("=") character, then - // the name string is empty, and the value string is the value of - // name-value-pair. - if (!nameValuePair.includes('=')) { - value = nameValuePair - } else { - // Otherwise, the name string consists of the characters up to, but - // not including, the first %x3D ("=") character, and the (possibly - // empty) value string consists of the characters after the first - // %x3D ("=") character. - const position = { position: 0 } - name = collectASequenceOfCodePointsFast( - '=', - nameValuePair, - position - ) - value = nameValuePair.slice(position.position + 1) - } + class InvalidReturnValueError extends UndiciError { + constructor(message) { + super(message) + Error.captureStackTrace(this, InvalidReturnValueError) + this.name = 'InvalidReturnValueError' + this.message = message || 'Invalid Return Value Error' + this.code = 'UND_ERR_INVALID_RETURN_VALUE' + } + } - // 4. Remove any leading or trailing WSP characters from the name - // string and the value string. - name = name.trim() - value = value.trim() + class RequestAbortedError extends UndiciError { + constructor(message) { + super(message) + Error.captureStackTrace(this, RequestAbortedError) + this.name = 'AbortError' + this.message = message || 'Request aborted' + this.code = 'UND_ERR_ABORTED' + } + } - // 5. If the sum of the lengths of the name string and the value string - // is more than 4096 octets, abort these steps and ignore the set- - // cookie-string entirely. - if (name.length + value.length > maxNameValuePairSize) { - return null - } + class InformationalError extends UndiciError { + constructor(message) { + super(message) + Error.captureStackTrace(this, InformationalError) + this.name = 'InformationalError' + this.message = message || 'Request information' + this.code = 'UND_ERR_INFO' + } + } - // 6. The cookie-name is the name string, and the cookie-value is the - // value string. - return { - name, value, ...parseUnparsedAttributes(unparsedAttributes) - } -} + class RequestContentLengthMismatchError extends UndiciError { + constructor(message) { + super(message) + Error.captureStackTrace(this, RequestContentLengthMismatchError) + this.name = 'RequestContentLengthMismatchError' + this.message = + message || + 'Request body length does not match content-length header' + this.code = 'UND_ERR_REQ_CONTENT_LENGTH_MISMATCH' + } + } -/** - * Parses the remaining attributes of a set-cookie header - * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4 - * @param {string} unparsedAttributes - * @param {[Object.]={}} cookieAttributeList - */ -function parseUnparsedAttributes (unparsedAttributes, cookieAttributeList = {}) { - // 1. If the unparsed-attributes string is empty, skip the rest of - // these steps. - if (unparsedAttributes.length === 0) { - return cookieAttributeList - } + class ResponseContentLengthMismatchError extends UndiciError { + constructor(message) { + super(message) + Error.captureStackTrace(this, ResponseContentLengthMismatchError) + this.name = 'ResponseContentLengthMismatchError' + this.message = + message || + 'Response body length does not match content-length header' + this.code = 'UND_ERR_RES_CONTENT_LENGTH_MISMATCH' + } + } - // 2. Discard the first character of the unparsed-attributes (which - // will be a %x3B (";") character). - assert(unparsedAttributes[0] === ';') - unparsedAttributes = unparsedAttributes.slice(1) - - let cookieAv = '' - - // 3. If the remaining unparsed-attributes contains a %x3B (";") - // character: - if (unparsedAttributes.includes(';')) { - // 1. Consume the characters of the unparsed-attributes up to, but - // not including, the first %x3B (";") character. - cookieAv = collectASequenceOfCodePointsFast( - ';', - unparsedAttributes, - { position: 0 } - ) - unparsedAttributes = unparsedAttributes.slice(cookieAv.length) - } else { - // Otherwise: - - // 1. Consume the remainder of the unparsed-attributes. - cookieAv = unparsedAttributes - unparsedAttributes = '' - } + class ClientDestroyedError extends UndiciError { + constructor(message) { + super(message) + Error.captureStackTrace(this, ClientDestroyedError) + this.name = 'ClientDestroyedError' + this.message = message || 'The client is destroyed' + this.code = 'UND_ERR_DESTROYED' + } + } - // Let the cookie-av string be the characters consumed in this step. - - let attributeName = '' - let attributeValue = '' - - // 4. If the cookie-av string contains a %x3D ("=") character: - if (cookieAv.includes('=')) { - // 1. The (possibly empty) attribute-name string consists of the - // characters up to, but not including, the first %x3D ("=") - // character, and the (possibly empty) attribute-value string - // consists of the characters after the first %x3D ("=") - // character. - const position = { position: 0 } - - attributeName = collectASequenceOfCodePointsFast( - '=', - cookieAv, - position - ) - attributeValue = cookieAv.slice(position.position + 1) - } else { - // Otherwise: - - // 1. The attribute-name string consists of the entire cookie-av - // string, and the attribute-value string is empty. - attributeName = cookieAv - } + class ClientClosedError extends UndiciError { + constructor(message) { + super(message) + Error.captureStackTrace(this, ClientClosedError) + this.name = 'ClientClosedError' + this.message = message || 'The client is closed' + this.code = 'UND_ERR_CLOSED' + } + } + + class SocketError extends UndiciError { + constructor(message, socket) { + super(message) + Error.captureStackTrace(this, SocketError) + this.name = 'SocketError' + this.message = message || 'Socket error' + this.code = 'UND_ERR_SOCKET' + this.socket = socket + } + } + + class NotSupportedError extends UndiciError { + constructor(message) { + super(message) + Error.captureStackTrace(this, NotSupportedError) + this.name = 'NotSupportedError' + this.message = message || 'Not supported error' + this.code = 'UND_ERR_NOT_SUPPORTED' + } + } - // 5. Remove any leading or trailing WSP characters from the attribute- - // name string and the attribute-value string. - attributeName = attributeName.trim() - attributeValue = attributeValue.trim() + class BalancedPoolMissingUpstreamError extends UndiciError { + constructor(message) { + super(message) + Error.captureStackTrace(this, NotSupportedError) + this.name = 'MissingUpstreamError' + this.message = + message || 'No upstream has been added to the BalancedPool' + this.code = 'UND_ERR_BPL_MISSING_UPSTREAM' + } + } - // 6. If the attribute-value is longer than 1024 octets, ignore the - // cookie-av string and return to Step 1 of this algorithm. - if (attributeValue.length > maxAttributeValueSize) { - return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList) - } + class HTTPParserError extends Error { + constructor(message, code, data) { + super(message) + Error.captureStackTrace(this, HTTPParserError) + this.name = 'HTTPParserError' + this.code = code ? `HPE_${code}` : undefined + this.data = data ? data.toString() : undefined + } + } - // 7. Process the attribute-name and attribute-value according to the - // requirements in the following subsections. (Notice that - // attributes with unrecognized attribute-names are ignored.) - const attributeNameLowercase = attributeName.toLowerCase() - - // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.1 - // If the attribute-name case-insensitively matches the string - // "Expires", the user agent MUST process the cookie-av as follows. - if (attributeNameLowercase === 'expires') { - // 1. Let the expiry-time be the result of parsing the attribute-value - // as cookie-date (see Section 5.1.1). - const expiryTime = new Date(attributeValue) - - // 2. If the attribute-value failed to parse as a cookie date, ignore - // the cookie-av. - - cookieAttributeList.expires = expiryTime - } else if (attributeNameLowercase === 'max-age') { - // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.2 - // If the attribute-name case-insensitively matches the string "Max- - // Age", the user agent MUST process the cookie-av as follows. - - // 1. If the first character of the attribute-value is not a DIGIT or a - // "-" character, ignore the cookie-av. - const charCode = attributeValue.charCodeAt(0) - - if ((charCode < 48 || charCode > 57) && attributeValue[0] !== '-') { - return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList) - } + class ResponseExceededMaxSizeError extends UndiciError { + constructor(message) { + super(message) + Error.captureStackTrace(this, ResponseExceededMaxSizeError) + this.name = 'ResponseExceededMaxSizeError' + this.message = message || 'Response content exceeded max size' + this.code = 'UND_ERR_RES_EXCEEDED_MAX_SIZE' + } + } - // 2. If the remainder of attribute-value contains a non-DIGIT - // character, ignore the cookie-av. - if (!/^\d+$/.test(attributeValue)) { - return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList) - } + class RequestRetryError extends UndiciError { + constructor(message, code, { headers, data }) { + super(message) + Error.captureStackTrace(this, RequestRetryError) + this.name = 'RequestRetryError' + this.message = message || 'Request retry error' + this.code = 'UND_ERR_REQ_RETRY' + this.statusCode = code + this.data = data + this.headers = headers + } + } - // 3. Let delta-seconds be the attribute-value converted to an integer. - const deltaSeconds = Number(attributeValue) - - // 4. Let cookie-age-limit be the maximum age of the cookie (which - // SHOULD be 400 days or less, see Section 4.1.2.2). - - // 5. Set delta-seconds to the smaller of its present value and cookie- - // age-limit. - // deltaSeconds = Math.min(deltaSeconds * 1000, maxExpiresMs) - - // 6. If delta-seconds is less than or equal to zero (0), let expiry- - // time be the earliest representable date and time. Otherwise, let - // the expiry-time be the current date and time plus delta-seconds - // seconds. - // const expiryTime = deltaSeconds <= 0 ? Date.now() : Date.now() + deltaSeconds - - // 7. Append an attribute to the cookie-attribute-list with an - // attribute-name of Max-Age and an attribute-value of expiry-time. - cookieAttributeList.maxAge = deltaSeconds - } else if (attributeNameLowercase === 'domain') { - // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.3 - // If the attribute-name case-insensitively matches the string "Domain", - // the user agent MUST process the cookie-av as follows. - - // 1. Let cookie-domain be the attribute-value. - let cookieDomain = attributeValue - - // 2. If cookie-domain starts with %x2E ("."), let cookie-domain be - // cookie-domain without its leading %x2E ("."). - if (cookieDomain[0] === '.') { - cookieDomain = cookieDomain.slice(1) - } + module.exports = { + HTTPParserError, + UndiciError, + HeadersTimeoutError, + HeadersOverflowError, + BodyTimeoutError, + RequestContentLengthMismatchError, + ConnectTimeoutError, + ResponseStatusCodeError, + InvalidArgumentError, + InvalidReturnValueError, + RequestAbortedError, + ClientDestroyedError, + ClientClosedError, + InformationalError, + SocketError, + NotSupportedError, + ResponseContentLengthMismatchError, + BalancedPoolMissingUpstreamError, + ResponseExceededMaxSizeError, + RequestRetryError + } - // 3. Convert the cookie-domain to lower case. - cookieDomain = cookieDomain.toLowerCase() - - // 4. Append an attribute to the cookie-attribute-list with an - // attribute-name of Domain and an attribute-value of cookie-domain. - cookieAttributeList.domain = cookieDomain - } else if (attributeNameLowercase === 'path') { - // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.4 - // If the attribute-name case-insensitively matches the string "Path", - // the user agent MUST process the cookie-av as follows. - - // 1. If the attribute-value is empty or if the first character of the - // attribute-value is not %x2F ("/"): - let cookiePath = '' - if (attributeValue.length === 0 || attributeValue[0] !== '/') { - // 1. Let cookie-path be the default-path. - cookiePath = '/' - } else { - // Otherwise: - - // 1. Let cookie-path be the attribute-value. - cookiePath = attributeValue - } + /***/ + }, - // 2. Append an attribute to the cookie-attribute-list with an - // attribute-name of Path and an attribute-value of cookie-path. - cookieAttributeList.path = cookiePath - } else if (attributeNameLowercase === 'secure') { - // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.5 - // If the attribute-name case-insensitively matches the string "Secure", - // the user agent MUST append an attribute to the cookie-attribute-list - // with an attribute-name of Secure and an empty attribute-value. - - cookieAttributeList.secure = true - } else if (attributeNameLowercase === 'httponly') { - // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.6 - // If the attribute-name case-insensitively matches the string - // "HttpOnly", the user agent MUST append an attribute to the cookie- - // attribute-list with an attribute-name of HttpOnly and an empty - // attribute-value. - - cookieAttributeList.httpOnly = true - } else if (attributeNameLowercase === 'samesite') { - // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.7 - // If the attribute-name case-insensitively matches the string - // "SameSite", the user agent MUST process the cookie-av as follows: - - // 1. Let enforcement be "Default". - let enforcement = 'Default' - - const attributeValueLowercase = attributeValue.toLowerCase() - // 2. If cookie-av's attribute-value is a case-insensitive match for - // "None", set enforcement to "None". - if (attributeValueLowercase.includes('none')) { - enforcement = 'None' - } + /***/ 62905: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' - // 3. If cookie-av's attribute-value is a case-insensitive match for - // "Strict", set enforcement to "Strict". - if (attributeValueLowercase.includes('strict')) { - enforcement = 'Strict' - } + const { InvalidArgumentError, NotSupportedError } = + __nccwpck_require__(48045) + const assert = __nccwpck_require__(39491) + const { kHTTP2BuildRequest, kHTTP2CopyHeaders, kHTTP1BuildRequest } = + __nccwpck_require__(72785) + const util = __nccwpck_require__(83983) - // 4. If cookie-av's attribute-value is a case-insensitive match for - // "Lax", set enforcement to "Lax". - if (attributeValueLowercase.includes('lax')) { - enforcement = 'Lax' - } + // tokenRegExp and headerCharRegex have been lifted from + // https://github.com/nodejs/node/blob/main/lib/_http_common.js - // 5. Append an attribute to the cookie-attribute-list with an - // attribute-name of "SameSite" and an attribute-value of - // enforcement. - cookieAttributeList.sameSite = enforcement - } else { - cookieAttributeList.unparsed ??= [] + /** + * Verifies that the given val is a valid HTTP token + * per the rules defined in RFC 7230 + * See https://tools.ietf.org/html/rfc7230#section-3.2.6 + */ + const tokenRegExp = /^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/ - cookieAttributeList.unparsed.push(`${attributeName}=${attributeValue}`) - } + /** + * Matches if val contains an invalid field-vchar + * field-value = *( field-content / obs-fold ) + * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ] + * field-vchar = VCHAR / obs-text + */ + const headerCharRegex = /[^\t\x20-\x7e\x80-\xff]/ - // 8. Return to Step 1 of this algorithm. - return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList) -} + // Verifies that a given path is valid does not contain control chars \x00 to \x20 + const invalidPathRegex = /[^\u0021-\u00ff]/ -module.exports = { - parseSetCookie, - parseUnparsedAttributes -} + const kHandler = Symbol('handler') + const channels = {} -/***/ }), + let extractBody -/***/ 43121: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + try { + const diagnosticsChannel = __nccwpck_require__(67643) + channels.create = diagnosticsChannel.channel('undici:request:create') + channels.bodySent = diagnosticsChannel.channel( + 'undici:request:bodySent' + ) + channels.headers = diagnosticsChannel.channel('undici:request:headers') + channels.trailers = diagnosticsChannel.channel( + 'undici:request:trailers' + ) + channels.error = diagnosticsChannel.channel('undici:request:error') + } catch { + channels.create = { hasSubscribers: false } + channels.bodySent = { hasSubscribers: false } + channels.headers = { hasSubscribers: false } + channels.trailers = { hasSubscribers: false } + channels.error = { hasSubscribers: false } + } + + class Request { + constructor( + origin, + { + path, + method, + body, + headers, + query, + idempotent, + blocking, + upgrade, + headersTimeout, + bodyTimeout, + reset, + throwOnError, + expectContinue + }, + handler + ) { + if (typeof path !== 'string') { + throw new InvalidArgumentError('path must be a string') + } else if ( + path[0] !== '/' && + !(path.startsWith('http://') || path.startsWith('https://')) && + method !== 'CONNECT' + ) { + throw new InvalidArgumentError( + 'path must be an absolute URL or start with a slash' + ) + } else if (invalidPathRegex.exec(path) !== null) { + throw new InvalidArgumentError('invalid request path') + } -"use strict"; + if (typeof method !== 'string') { + throw new InvalidArgumentError('method must be a string') + } else if (tokenRegExp.exec(method) === null) { + throw new InvalidArgumentError('invalid request method') + } + if (upgrade && typeof upgrade !== 'string') { + throw new InvalidArgumentError('upgrade must be a string') + } -const assert = __nccwpck_require__(39491) -const { kHeadersList } = __nccwpck_require__(72785) + if ( + headersTimeout != null && + (!Number.isFinite(headersTimeout) || headersTimeout < 0) + ) { + throw new InvalidArgumentError('invalid headersTimeout') + } -function isCTLExcludingHtab (value) { - if (value.length === 0) { - return false - } + if ( + bodyTimeout != null && + (!Number.isFinite(bodyTimeout) || bodyTimeout < 0) + ) { + throw new InvalidArgumentError('invalid bodyTimeout') + } - for (const char of value) { - const code = char.charCodeAt(0) + if (reset != null && typeof reset !== 'boolean') { + throw new InvalidArgumentError('invalid reset') + } - if ( - (code >= 0x00 || code <= 0x08) || - (code >= 0x0A || code <= 0x1F) || - code === 0x7F - ) { - return false - } - } -} + if (expectContinue != null && typeof expectContinue !== 'boolean') { + throw new InvalidArgumentError('invalid expectContinue') + } -/** - CHAR = - token = 1* - separators = "(" | ")" | "<" | ">" | "@" - | "," | ";" | ":" | "\" | <"> - | "/" | "[" | "]" | "?" | "=" - | "{" | "}" | SP | HT - * @param {string} name - */ -function validateCookieName (name) { - for (const char of name) { - const code = char.charCodeAt(0) - - if ( - (code <= 0x20 || code > 0x7F) || - char === '(' || - char === ')' || - char === '>' || - char === '<' || - char === '@' || - char === ',' || - char === ';' || - char === ':' || - char === '\\' || - char === '"' || - char === '/' || - char === '[' || - char === ']' || - char === '?' || - char === '=' || - char === '{' || - char === '}' - ) { - throw new Error('Invalid cookie name') - } - } -} + this.headersTimeout = headersTimeout -/** - cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE ) - cookie-octet = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E - ; US-ASCII characters excluding CTLs, - ; whitespace DQUOTE, comma, semicolon, - ; and backslash - * @param {string} value - */ -function validateCookieValue (value) { - for (const char of value) { - const code = char.charCodeAt(0) - - if ( - code < 0x21 || // exclude CTLs (0-31) - code === 0x22 || - code === 0x2C || - code === 0x3B || - code === 0x5C || - code > 0x7E // non-ascii - ) { - throw new Error('Invalid header value') - } - } -} + this.bodyTimeout = bodyTimeout -/** - * path-value = - * @param {string} path - */ -function validateCookiePath (path) { - for (const char of path) { - const code = char.charCodeAt(0) + this.throwOnError = throwOnError === true - if (code < 0x21 || char === ';') { - throw new Error('Invalid cookie path') - } - } -} + this.method = method -/** - * I have no idea why these values aren't allowed to be honest, - * but Deno tests these. - Khafra - * @param {string} domain - */ -function validateCookieDomain (domain) { - if ( - domain.startsWith('-') || - domain.endsWith('.') || - domain.endsWith('-') - ) { - throw new Error('Invalid cookie domain') - } -} + this.abort = null -/** - * @see https://www.rfc-editor.org/rfc/rfc7231#section-7.1.1.1 - * @param {number|Date} date - IMF-fixdate = day-name "," SP date1 SP time-of-day SP GMT - ; fixed length/zone/capitalization subset of the format - ; see Section 3.3 of [RFC5322] + if (body == null) { + this.body = null + } else if (util.isStream(body)) { + this.body = body - day-name = %x4D.6F.6E ; "Mon", case-sensitive - / %x54.75.65 ; "Tue", case-sensitive - / %x57.65.64 ; "Wed", case-sensitive - / %x54.68.75 ; "Thu", case-sensitive - / %x46.72.69 ; "Fri", case-sensitive - / %x53.61.74 ; "Sat", case-sensitive - / %x53.75.6E ; "Sun", case-sensitive - date1 = day SP month SP year - ; e.g., 02 Jun 1982 + const rState = this.body._readableState + if (!rState || !rState.autoDestroy) { + this.endHandler = function autoDestroy() { + util.destroy(this) + } + this.body.on('end', this.endHandler) + } - day = 2DIGIT - month = %x4A.61.6E ; "Jan", case-sensitive - / %x46.65.62 ; "Feb", case-sensitive - / %x4D.61.72 ; "Mar", case-sensitive - / %x41.70.72 ; "Apr", case-sensitive - / %x4D.61.79 ; "May", case-sensitive - / %x4A.75.6E ; "Jun", case-sensitive - / %x4A.75.6C ; "Jul", case-sensitive - / %x41.75.67 ; "Aug", case-sensitive - / %x53.65.70 ; "Sep", case-sensitive - / %x4F.63.74 ; "Oct", case-sensitive - / %x4E.6F.76 ; "Nov", case-sensitive - / %x44.65.63 ; "Dec", case-sensitive - year = 4DIGIT + this.errorHandler = err => { + if (this.abort) { + this.abort(err) + } else { + this.error = err + } + } + this.body.on('error', this.errorHandler) + } else if (util.isBuffer(body)) { + this.body = body.byteLength ? body : null + } else if (ArrayBuffer.isView(body)) { + this.body = body.buffer.byteLength + ? Buffer.from(body.buffer, body.byteOffset, body.byteLength) + : null + } else if (body instanceof ArrayBuffer) { + this.body = body.byteLength ? Buffer.from(body) : null + } else if (typeof body === 'string') { + this.body = body.length ? Buffer.from(body) : null + } else if ( + util.isFormDataLike(body) || + util.isIterable(body) || + util.isBlobLike(body) + ) { + this.body = body + } else { + throw new InvalidArgumentError( + 'body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable' + ) + } - GMT = %x47.4D.54 ; "GMT", case-sensitive + this.completed = false - time-of-day = hour ":" minute ":" second - ; 00:00:00 - 23:59:60 (leap second) + this.aborted = false - hour = 2DIGIT - minute = 2DIGIT - second = 2DIGIT - */ -function toIMFDate (date) { - if (typeof date === 'number') { - date = new Date(date) - } + this.upgrade = upgrade || null - const days = [ - 'Sun', 'Mon', 'Tue', 'Wed', - 'Thu', 'Fri', 'Sat' - ] + this.path = query ? util.buildURL(path, query) : path - const months = [ - 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', - 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' - ] + this.origin = origin - const dayName = days[date.getUTCDay()] - const day = date.getUTCDate().toString().padStart(2, '0') - const month = months[date.getUTCMonth()] - const year = date.getUTCFullYear() - const hour = date.getUTCHours().toString().padStart(2, '0') - const minute = date.getUTCMinutes().toString().padStart(2, '0') - const second = date.getUTCSeconds().toString().padStart(2, '0') + this.idempotent = + idempotent == null + ? method === 'HEAD' || method === 'GET' + : idempotent - return `${dayName}, ${day} ${month} ${year} ${hour}:${minute}:${second} GMT` -} + this.blocking = blocking == null ? false : blocking -/** - max-age-av = "Max-Age=" non-zero-digit *DIGIT - ; In practice, both expires-av and max-age-av - ; are limited to dates representable by the - ; user agent. - * @param {number} maxAge - */ -function validateCookieMaxAge (maxAge) { - if (maxAge < 0) { - throw new Error('Invalid cookie max-age') - } -} + this.reset = reset == null ? null : reset -/** - * @see https://www.rfc-editor.org/rfc/rfc6265#section-4.1.1 - * @param {import('./index').Cookie} cookie - */ -function stringify (cookie) { - if (cookie.name.length === 0) { - return null - } + this.host = null - validateCookieName(cookie.name) - validateCookieValue(cookie.value) + this.contentLength = null - const out = [`${cookie.name}=${cookie.value}`] + this.contentType = null - // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.1 - // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.2 - if (cookie.name.startsWith('__Secure-')) { - cookie.secure = true - } + this.headers = '' - if (cookie.name.startsWith('__Host-')) { - cookie.secure = true - cookie.domain = null - cookie.path = '/' - } + // Only for H2 + this.expectContinue = expectContinue != null ? expectContinue : false - if (cookie.secure) { - out.push('Secure') - } + if (Array.isArray(headers)) { + if (headers.length % 2 !== 0) { + throw new InvalidArgumentError('headers array must be even') + } + for (let i = 0; i < headers.length; i += 2) { + processHeader(this, headers[i], headers[i + 1]) + } + } else if (headers && typeof headers === 'object') { + const keys = Object.keys(headers) + for (let i = 0; i < keys.length; i++) { + const key = keys[i] + processHeader(this, key, headers[key]) + } + } else if (headers != null) { + throw new InvalidArgumentError( + 'headers must be an object or an array' + ) + } - if (cookie.httpOnly) { - out.push('HttpOnly') - } + if (util.isFormDataLike(this.body)) { + if ( + util.nodeMajor < 16 || + (util.nodeMajor === 16 && util.nodeMinor < 8) + ) { + throw new InvalidArgumentError( + 'Form-Data bodies are only supported in node v16.8 and newer.' + ) + } - if (typeof cookie.maxAge === 'number') { - validateCookieMaxAge(cookie.maxAge) - out.push(`Max-Age=${cookie.maxAge}`) - } + if (!extractBody) { + extractBody = __nccwpck_require__(41472).extractBody + } - if (cookie.domain) { - validateCookieDomain(cookie.domain) - out.push(`Domain=${cookie.domain}`) - } + const [bodyStream, contentType] = extractBody(body) + if (this.contentType == null) { + this.contentType = contentType + this.headers += `content-type: ${contentType}\r\n` + } + this.body = bodyStream.stream + this.contentLength = bodyStream.length + } else if ( + util.isBlobLike(body) && + this.contentType == null && + body.type + ) { + this.contentType = body.type + this.headers += `content-type: ${body.type}\r\n` + } - if (cookie.path) { - validateCookiePath(cookie.path) - out.push(`Path=${cookie.path}`) - } + util.validateHandler(handler, method, upgrade) - if (cookie.expires && cookie.expires.toString() !== 'Invalid Date') { - out.push(`Expires=${toIMFDate(cookie.expires)}`) - } + this.servername = util.getServerName(this.host) - if (cookie.sameSite) { - out.push(`SameSite=${cookie.sameSite}`) - } + this[kHandler] = handler - for (const part of cookie.unparsed) { - if (!part.includes('=')) { - throw new Error('Invalid unparsed') - } + if (channels.create.hasSubscribers) { + channels.create.publish({ request: this }) + } + } - const [key, ...value] = part.split('=') + onBodySent(chunk) { + if (this[kHandler].onBodySent) { + try { + return this[kHandler].onBodySent(chunk) + } catch (err) { + this.abort(err) + } + } + } - out.push(`${key.trim()}=${value.join('=')}`) - } + onRequestSent() { + if (channels.bodySent.hasSubscribers) { + channels.bodySent.publish({ request: this }) + } - return out.join('; ') -} + if (this[kHandler].onRequestSent) { + try { + return this[kHandler].onRequestSent() + } catch (err) { + this.abort(err) + } + } + } -let kHeadersListNode + onConnect(abort) { + assert(!this.aborted) + assert(!this.completed) -function getHeadersList (headers) { - if (headers[kHeadersList]) { - return headers[kHeadersList] - } + if (this.error) { + abort(this.error) + } else { + this.abort = abort + return this[kHandler].onConnect(abort) + } + } - if (!kHeadersListNode) { - kHeadersListNode = Object.getOwnPropertySymbols(headers).find( - (symbol) => symbol.description === 'headers list' - ) + onHeaders(statusCode, headers, resume, statusText) { + assert(!this.aborted) + assert(!this.completed) - assert(kHeadersListNode, 'Headers cannot be parsed') - } + if (channels.headers.hasSubscribers) { + channels.headers.publish({ + request: this, + response: { statusCode, headers, statusText } + }) + } - const headersList = headers[kHeadersListNode] - assert(headersList) + try { + return this[kHandler].onHeaders( + statusCode, + headers, + resume, + statusText + ) + } catch (err) { + this.abort(err) + } + } - return headersList -} + onData(chunk) { + assert(!this.aborted) + assert(!this.completed) -module.exports = { - isCTLExcludingHtab, - stringify, - getHeadersList -} + try { + return this[kHandler].onData(chunk) + } catch (err) { + this.abort(err) + return false + } + } + onUpgrade(statusCode, headers, socket) { + assert(!this.aborted) + assert(!this.completed) -/***/ }), + return this[kHandler].onUpgrade(statusCode, headers, socket) + } -/***/ 82067: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + onComplete(trailers) { + this.onFinally() -"use strict"; + assert(!this.aborted) + this.completed = true + if (channels.trailers.hasSubscribers) { + channels.trailers.publish({ request: this, trailers }) + } -const net = __nccwpck_require__(41808) -const assert = __nccwpck_require__(39491) -const util = __nccwpck_require__(83983) -const { InvalidArgumentError, ConnectTimeoutError } = __nccwpck_require__(48045) + try { + return this[kHandler].onComplete(trailers) + } catch (err) { + // TODO (fix): This might be a bad idea? + this.onError(err) + } + } -let tls // include tls conditionally since it is not always available + onError(error) { + this.onFinally() -// TODO: session re-use does not wait for the first -// connection to resolve the session and might therefore -// resolve the same servername multiple times even when -// re-use is enabled. + if (channels.error.hasSubscribers) { + channels.error.publish({ request: this, error }) + } -let SessionCache -// FIXME: remove workaround when the Node bug is fixed -// https://github.com/nodejs/node/issues/49344#issuecomment-1741776308 -if (global.FinalizationRegistry && !process.env.NODE_V8_COVERAGE) { - SessionCache = class WeakSessionCache { - constructor (maxCachedSessions) { - this._maxCachedSessions = maxCachedSessions - this._sessionCache = new Map() - this._sessionRegistry = new global.FinalizationRegistry((key) => { - if (this._sessionCache.size < this._maxCachedSessions) { - return - } + if (this.aborted) { + return + } + this.aborted = true - const ref = this._sessionCache.get(key) - if (ref !== undefined && ref.deref() === undefined) { - this._sessionCache.delete(key) + return this[kHandler].onError(error) } - }) - } - get (sessionKey) { - const ref = this._sessionCache.get(sessionKey) - return ref ? ref.deref() : null - } + onFinally() { + if (this.errorHandler) { + this.body.off('error', this.errorHandler) + this.errorHandler = null + } - set (sessionKey, session) { - if (this._maxCachedSessions === 0) { - return - } + if (this.endHandler) { + this.body.off('end', this.endHandler) + this.endHandler = null + } + } - this._sessionCache.set(sessionKey, new WeakRef(session)) - this._sessionRegistry.register(session, sessionKey) - } - } -} else { - SessionCache = class SimpleSessionCache { - constructor (maxCachedSessions) { - this._maxCachedSessions = maxCachedSessions - this._sessionCache = new Map() - } + // TODO: adjust to support H2 + addHeader(key, value) { + processHeader(this, key, value) + return this + } - get (sessionKey) { - return this._sessionCache.get(sessionKey) - } + static [kHTTP1BuildRequest](origin, opts, handler) { + // TODO: Migrate header parsing here, to make Requests + // HTTP agnostic + return new Request(origin, opts, handler) + } - set (sessionKey, session) { - if (this._maxCachedSessions === 0) { - return - } + static [kHTTP2BuildRequest](origin, opts, handler) { + const headers = opts.headers + opts = { ...opts, headers: null } - if (this._sessionCache.size >= this._maxCachedSessions) { - // remove the oldest session - const { value: oldestKey } = this._sessionCache.keys().next() - this._sessionCache.delete(oldestKey) - } + const request = new Request(origin, opts, handler) - this._sessionCache.set(sessionKey, session) - } - } -} + request.headers = {} -function buildConnector ({ allowH2, maxCachedSessions, socketPath, timeout, ...opts }) { - if (maxCachedSessions != null && (!Number.isInteger(maxCachedSessions) || maxCachedSessions < 0)) { - throw new InvalidArgumentError('maxCachedSessions must be a positive integer or zero') - } + if (Array.isArray(headers)) { + if (headers.length % 2 !== 0) { + throw new InvalidArgumentError('headers array must be even') + } + for (let i = 0; i < headers.length; i += 2) { + processHeader(request, headers[i], headers[i + 1], true) + } + } else if (headers && typeof headers === 'object') { + const keys = Object.keys(headers) + for (let i = 0; i < keys.length; i++) { + const key = keys[i] + processHeader(request, key, headers[key], true) + } + } else if (headers != null) { + throw new InvalidArgumentError( + 'headers must be an object or an array' + ) + } - const options = { path: socketPath, ...opts } - const sessionCache = new SessionCache(maxCachedSessions == null ? 100 : maxCachedSessions) - timeout = timeout == null ? 10e3 : timeout - allowH2 = allowH2 != null ? allowH2 : false - return function connect ({ hostname, host, protocol, port, servername, localAddress, httpSocket }, callback) { - let socket - if (protocol === 'https:') { - if (!tls) { - tls = __nccwpck_require__(24404) - } - servername = servername || options.servername || util.getServerName(host) || null - - const sessionKey = servername || hostname - const session = sessionCache.get(sessionKey) || null - - assert(sessionKey) - - socket = tls.connect({ - highWaterMark: 16384, // TLS in node can't have bigger HWM anyway... - ...options, - servername, - session, - localAddress, - // TODO(HTTP/2): Add support for h2c - ALPNProtocols: allowH2 ? ['http/1.1', 'h2'] : ['http/1.1'], - socket: httpSocket, // upgrade socket connection - port: port || 443, - host: hostname - }) + return request + } - socket - .on('session', function (session) { - // TODO (fix): Can a session become invalid once established? Don't think so? - sessionCache.set(sessionKey, session) - }) - } else { - assert(!httpSocket, 'httpSocket can only be sent on TLS update') - socket = net.connect({ - highWaterMark: 64 * 1024, // Same as nodejs fs streams. - ...options, - localAddress, - port: port || 80, - host: hostname - }) - } + static [kHTTP2CopyHeaders](raw) { + const rawHeaders = raw.split('\r\n') + const headers = {} - // Set TCP keep alive options on the socket here instead of in connect() for the case of assigning the socket - if (options.keepAlive == null || options.keepAlive) { - const keepAliveInitialDelay = options.keepAliveInitialDelay === undefined ? 60e3 : options.keepAliveInitialDelay - socket.setKeepAlive(true, keepAliveInitialDelay) - } + for (const header of rawHeaders) { + const [key, value] = header.split(': ') - const cancelTimeout = setupTimeout(() => onConnectTimeout(socket), timeout) + if (value == null || value.length === 0) continue - socket - .setNoDelay(true) - .once(protocol === 'https:' ? 'secureConnect' : 'connect', function () { - cancelTimeout() + if (headers[key]) headers[key] += `,${value}` + else headers[key] = value + } - if (callback) { - const cb = callback - callback = null - cb(null, this) + return headers } - }) - .on('error', function (err) { - cancelTimeout() + } - if (callback) { - const cb = callback - callback = null - cb(err) + function processHeaderValue(key, val, skipAppend) { + if (val && typeof val === 'object') { + throw new InvalidArgumentError(`invalid ${key} header`) } - }) - return socket - } -} + val = val != null ? `${val}` : '' -function setupTimeout (onConnectTimeout, timeout) { - if (!timeout) { - return () => {} - } + if (headerCharRegex.exec(val) !== null) { + throw new InvalidArgumentError(`invalid ${key} header`) + } - let s1 = null - let s2 = null - const timeoutId = setTimeout(() => { - // setImmediate is added to make sure that we priotorise socket error events over timeouts - s1 = setImmediate(() => { - if (process.platform === 'win32') { - // Windows needs an extra setImmediate probably due to implementation differences in the socket logic - s2 = setImmediate(() => onConnectTimeout()) - } else { - onConnectTimeout() + return skipAppend ? val : `${key}: ${val}\r\n` + } + + function processHeader(request, key, val, skipAppend = false) { + if (val && typeof val === 'object' && !Array.isArray(val)) { + throw new InvalidArgumentError(`invalid ${key} header`) + } else if (val === undefined) { + return + } + + if ( + request.host === null && + key.length === 4 && + key.toLowerCase() === 'host' + ) { + if (headerCharRegex.exec(val) !== null) { + throw new InvalidArgumentError(`invalid ${key} header`) + } + // Consumed by Client + request.host = val + } else if ( + request.contentLength === null && + key.length === 14 && + key.toLowerCase() === 'content-length' + ) { + request.contentLength = parseInt(val, 10) + if (!Number.isFinite(request.contentLength)) { + throw new InvalidArgumentError('invalid content-length header') + } + } else if ( + request.contentType === null && + key.length === 12 && + key.toLowerCase() === 'content-type' + ) { + request.contentType = val + if (skipAppend) + request.headers[key] = processHeaderValue(key, val, skipAppend) + else request.headers += processHeaderValue(key, val) + } else if ( + key.length === 17 && + key.toLowerCase() === 'transfer-encoding' + ) { + throw new InvalidArgumentError('invalid transfer-encoding header') + } else if (key.length === 10 && key.toLowerCase() === 'connection') { + const value = typeof val === 'string' ? val.toLowerCase() : null + if (value !== 'close' && value !== 'keep-alive') { + throw new InvalidArgumentError('invalid connection header') + } else if (value === 'close') { + request.reset = true + } + } else if (key.length === 10 && key.toLowerCase() === 'keep-alive') { + throw new InvalidArgumentError('invalid keep-alive header') + } else if (key.length === 7 && key.toLowerCase() === 'upgrade') { + throw new InvalidArgumentError('invalid upgrade header') + } else if (key.length === 6 && key.toLowerCase() === 'expect') { + throw new NotSupportedError('expect header not supported') + } else if (tokenRegExp.exec(key) === null) { + throw new InvalidArgumentError('invalid header key') + } else { + if (Array.isArray(val)) { + for (let i = 0; i < val.length; i++) { + if (skipAppend) { + if (request.headers[key]) + request.headers[key] += + `,${processHeaderValue(key, val[i], skipAppend)}` + else + request.headers[key] = processHeaderValue( + key, + val[i], + skipAppend + ) + } else { + request.headers += processHeaderValue(key, val[i]) + } + } + } else { + if (skipAppend) + request.headers[key] = processHeaderValue(key, val, skipAppend) + else request.headers += processHeaderValue(key, val) + } + } } - }) - }, timeout) - return () => { - clearTimeout(timeoutId) - clearImmediate(s1) - clearImmediate(s2) - } -} - -function onConnectTimeout (socket) { - util.destroy(socket, new ConnectTimeoutError()) -} - -module.exports = buildConnector - - -/***/ }), - -/***/ 14462: -/***/ ((module) => { - -"use strict"; - - -/** @type {Record} */ -const headerNameLowerCasedRecord = {} - -// https://developer.mozilla.org/docs/Web/HTTP/Headers -const wellknownHeaderNames = [ - 'Accept', - 'Accept-Encoding', - 'Accept-Language', - 'Accept-Ranges', - 'Access-Control-Allow-Credentials', - 'Access-Control-Allow-Headers', - 'Access-Control-Allow-Methods', - 'Access-Control-Allow-Origin', - 'Access-Control-Expose-Headers', - 'Access-Control-Max-Age', - 'Access-Control-Request-Headers', - 'Access-Control-Request-Method', - 'Age', - 'Allow', - 'Alt-Svc', - 'Alt-Used', - 'Authorization', - 'Cache-Control', - 'Clear-Site-Data', - 'Connection', - 'Content-Disposition', - 'Content-Encoding', - 'Content-Language', - 'Content-Length', - 'Content-Location', - 'Content-Range', - 'Content-Security-Policy', - 'Content-Security-Policy-Report-Only', - 'Content-Type', - 'Cookie', - 'Cross-Origin-Embedder-Policy', - 'Cross-Origin-Opener-Policy', - 'Cross-Origin-Resource-Policy', - 'Date', - 'Device-Memory', - 'Downlink', - 'ECT', - 'ETag', - 'Expect', - 'Expect-CT', - 'Expires', - 'Forwarded', - 'From', - 'Host', - 'If-Match', - 'If-Modified-Since', - 'If-None-Match', - 'If-Range', - 'If-Unmodified-Since', - 'Keep-Alive', - 'Last-Modified', - 'Link', - 'Location', - 'Max-Forwards', - 'Origin', - 'Permissions-Policy', - 'Pragma', - 'Proxy-Authenticate', - 'Proxy-Authorization', - 'RTT', - 'Range', - 'Referer', - 'Referrer-Policy', - 'Refresh', - 'Retry-After', - 'Sec-WebSocket-Accept', - 'Sec-WebSocket-Extensions', - 'Sec-WebSocket-Key', - 'Sec-WebSocket-Protocol', - 'Sec-WebSocket-Version', - 'Server', - 'Server-Timing', - 'Service-Worker-Allowed', - 'Service-Worker-Navigation-Preload', - 'Set-Cookie', - 'SourceMap', - 'Strict-Transport-Security', - 'Supports-Loading-Mode', - 'TE', - 'Timing-Allow-Origin', - 'Trailer', - 'Transfer-Encoding', - 'Upgrade', - 'Upgrade-Insecure-Requests', - 'User-Agent', - 'Vary', - 'Via', - 'WWW-Authenticate', - 'X-Content-Type-Options', - 'X-DNS-Prefetch-Control', - 'X-Frame-Options', - 'X-Permitted-Cross-Domain-Policies', - 'X-Powered-By', - 'X-Requested-With', - 'X-XSS-Protection' -] - -for (let i = 0; i < wellknownHeaderNames.length; ++i) { - const key = wellknownHeaderNames[i] - const lowerCasedKey = key.toLowerCase() - headerNameLowerCasedRecord[key] = headerNameLowerCasedRecord[lowerCasedKey] = - lowerCasedKey -} - -// Note: object prototypes should not be able to be referenced. e.g. `Object#hasOwnProperty`. -Object.setPrototypeOf(headerNameLowerCasedRecord, null) - -module.exports = { - wellknownHeaderNames, - headerNameLowerCasedRecord -} - - -/***/ }), - -/***/ 48045: -/***/ ((module) => { - -"use strict"; - - -class UndiciError extends Error { - constructor (message) { - super(message) - this.name = 'UndiciError' - this.code = 'UND_ERR' - } -} - -class ConnectTimeoutError extends UndiciError { - constructor (message) { - super(message) - Error.captureStackTrace(this, ConnectTimeoutError) - this.name = 'ConnectTimeoutError' - this.message = message || 'Connect Timeout Error' - this.code = 'UND_ERR_CONNECT_TIMEOUT' - } -} - -class HeadersTimeoutError extends UndiciError { - constructor (message) { - super(message) - Error.captureStackTrace(this, HeadersTimeoutError) - this.name = 'HeadersTimeoutError' - this.message = message || 'Headers Timeout Error' - this.code = 'UND_ERR_HEADERS_TIMEOUT' - } -} - -class HeadersOverflowError extends UndiciError { - constructor (message) { - super(message) - Error.captureStackTrace(this, HeadersOverflowError) - this.name = 'HeadersOverflowError' - this.message = message || 'Headers Overflow Error' - this.code = 'UND_ERR_HEADERS_OVERFLOW' - } -} - -class BodyTimeoutError extends UndiciError { - constructor (message) { - super(message) - Error.captureStackTrace(this, BodyTimeoutError) - this.name = 'BodyTimeoutError' - this.message = message || 'Body Timeout Error' - this.code = 'UND_ERR_BODY_TIMEOUT' - } -} - -class ResponseStatusCodeError extends UndiciError { - constructor (message, statusCode, headers, body) { - super(message) - Error.captureStackTrace(this, ResponseStatusCodeError) - this.name = 'ResponseStatusCodeError' - this.message = message || 'Response Status Code Error' - this.code = 'UND_ERR_RESPONSE_STATUS_CODE' - this.body = body - this.status = statusCode - this.statusCode = statusCode - this.headers = headers - } -} - -class InvalidArgumentError extends UndiciError { - constructor (message) { - super(message) - Error.captureStackTrace(this, InvalidArgumentError) - this.name = 'InvalidArgumentError' - this.message = message || 'Invalid Argument Error' - this.code = 'UND_ERR_INVALID_ARG' - } -} - -class InvalidReturnValueError extends UndiciError { - constructor (message) { - super(message) - Error.captureStackTrace(this, InvalidReturnValueError) - this.name = 'InvalidReturnValueError' - this.message = message || 'Invalid Return Value Error' - this.code = 'UND_ERR_INVALID_RETURN_VALUE' - } -} - -class RequestAbortedError extends UndiciError { - constructor (message) { - super(message) - Error.captureStackTrace(this, RequestAbortedError) - this.name = 'AbortError' - this.message = message || 'Request aborted' - this.code = 'UND_ERR_ABORTED' - } -} - -class InformationalError extends UndiciError { - constructor (message) { - super(message) - Error.captureStackTrace(this, InformationalError) - this.name = 'InformationalError' - this.message = message || 'Request information' - this.code = 'UND_ERR_INFO' - } -} - -class RequestContentLengthMismatchError extends UndiciError { - constructor (message) { - super(message) - Error.captureStackTrace(this, RequestContentLengthMismatchError) - this.name = 'RequestContentLengthMismatchError' - this.message = message || 'Request body length does not match content-length header' - this.code = 'UND_ERR_REQ_CONTENT_LENGTH_MISMATCH' - } -} - -class ResponseContentLengthMismatchError extends UndiciError { - constructor (message) { - super(message) - Error.captureStackTrace(this, ResponseContentLengthMismatchError) - this.name = 'ResponseContentLengthMismatchError' - this.message = message || 'Response body length does not match content-length header' - this.code = 'UND_ERR_RES_CONTENT_LENGTH_MISMATCH' - } -} - -class ClientDestroyedError extends UndiciError { - constructor (message) { - super(message) - Error.captureStackTrace(this, ClientDestroyedError) - this.name = 'ClientDestroyedError' - this.message = message || 'The client is destroyed' - this.code = 'UND_ERR_DESTROYED' - } -} - -class ClientClosedError extends UndiciError { - constructor (message) { - super(message) - Error.captureStackTrace(this, ClientClosedError) - this.name = 'ClientClosedError' - this.message = message || 'The client is closed' - this.code = 'UND_ERR_CLOSED' - } -} - -class SocketError extends UndiciError { - constructor (message, socket) { - super(message) - Error.captureStackTrace(this, SocketError) - this.name = 'SocketError' - this.message = message || 'Socket error' - this.code = 'UND_ERR_SOCKET' - this.socket = socket - } -} - -class NotSupportedError extends UndiciError { - constructor (message) { - super(message) - Error.captureStackTrace(this, NotSupportedError) - this.name = 'NotSupportedError' - this.message = message || 'Not supported error' - this.code = 'UND_ERR_NOT_SUPPORTED' - } -} - -class BalancedPoolMissingUpstreamError extends UndiciError { - constructor (message) { - super(message) - Error.captureStackTrace(this, NotSupportedError) - this.name = 'MissingUpstreamError' - this.message = message || 'No upstream has been added to the BalancedPool' - this.code = 'UND_ERR_BPL_MISSING_UPSTREAM' - } -} - -class HTTPParserError extends Error { - constructor (message, code, data) { - super(message) - Error.captureStackTrace(this, HTTPParserError) - this.name = 'HTTPParserError' - this.code = code ? `HPE_${code}` : undefined - this.data = data ? data.toString() : undefined - } -} - -class ResponseExceededMaxSizeError extends UndiciError { - constructor (message) { - super(message) - Error.captureStackTrace(this, ResponseExceededMaxSizeError) - this.name = 'ResponseExceededMaxSizeError' - this.message = message || 'Response content exceeded max size' - this.code = 'UND_ERR_RES_EXCEEDED_MAX_SIZE' - } -} - -class RequestRetryError extends UndiciError { - constructor (message, code, { headers, data }) { - super(message) - Error.captureStackTrace(this, RequestRetryError) - this.name = 'RequestRetryError' - this.message = message || 'Request retry error' - this.code = 'UND_ERR_REQ_RETRY' - this.statusCode = code - this.data = data - this.headers = headers - } -} - -module.exports = { - HTTPParserError, - UndiciError, - HeadersTimeoutError, - HeadersOverflowError, - BodyTimeoutError, - RequestContentLengthMismatchError, - ConnectTimeoutError, - ResponseStatusCodeError, - InvalidArgumentError, - InvalidReturnValueError, - RequestAbortedError, - ClientDestroyedError, - ClientClosedError, - InformationalError, - SocketError, - NotSupportedError, - ResponseContentLengthMismatchError, - BalancedPoolMissingUpstreamError, - ResponseExceededMaxSizeError, - RequestRetryError -} - - -/***/ }), - -/***/ 62905: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - - -const { - InvalidArgumentError, - NotSupportedError -} = __nccwpck_require__(48045) -const assert = __nccwpck_require__(39491) -const { kHTTP2BuildRequest, kHTTP2CopyHeaders, kHTTP1BuildRequest } = __nccwpck_require__(72785) -const util = __nccwpck_require__(83983) - -// tokenRegExp and headerCharRegex have been lifted from -// https://github.com/nodejs/node/blob/main/lib/_http_common.js - -/** - * Verifies that the given val is a valid HTTP token - * per the rules defined in RFC 7230 - * See https://tools.ietf.org/html/rfc7230#section-3.2.6 - */ -const tokenRegExp = /^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/ -/** - * Matches if val contains an invalid field-vchar - * field-value = *( field-content / obs-fold ) - * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ] - * field-vchar = VCHAR / obs-text - */ -const headerCharRegex = /[^\t\x20-\x7e\x80-\xff]/ - -// Verifies that a given path is valid does not contain control chars \x00 to \x20 -const invalidPathRegex = /[^\u0021-\u00ff]/ - -const kHandler = Symbol('handler') - -const channels = {} - -let extractBody - -try { - const diagnosticsChannel = __nccwpck_require__(67643) - channels.create = diagnosticsChannel.channel('undici:request:create') - channels.bodySent = diagnosticsChannel.channel('undici:request:bodySent') - channels.headers = diagnosticsChannel.channel('undici:request:headers') - channels.trailers = diagnosticsChannel.channel('undici:request:trailers') - channels.error = diagnosticsChannel.channel('undici:request:error') -} catch { - channels.create = { hasSubscribers: false } - channels.bodySent = { hasSubscribers: false } - channels.headers = { hasSubscribers: false } - channels.trailers = { hasSubscribers: false } - channels.error = { hasSubscribers: false } -} - -class Request { - constructor (origin, { - path, - method, - body, - headers, - query, - idempotent, - blocking, - upgrade, - headersTimeout, - bodyTimeout, - reset, - throwOnError, - expectContinue - }, handler) { - if (typeof path !== 'string') { - throw new InvalidArgumentError('path must be a string') - } else if ( - path[0] !== '/' && - !(path.startsWith('http://') || path.startsWith('https://')) && - method !== 'CONNECT' - ) { - throw new InvalidArgumentError('path must be an absolute URL or start with a slash') - } else if (invalidPathRegex.exec(path) !== null) { - throw new InvalidArgumentError('invalid request path') - } + module.exports = Request - if (typeof method !== 'string') { - throw new InvalidArgumentError('method must be a string') - } else if (tokenRegExp.exec(method) === null) { - throw new InvalidArgumentError('invalid request method') - } + /***/ + }, - if (upgrade && typeof upgrade !== 'string') { - throw new InvalidArgumentError('upgrade must be a string') - } + /***/ 72785: /***/ module => { + module.exports = { + kClose: Symbol('close'), + kDestroy: Symbol('destroy'), + kDispatch: Symbol('dispatch'), + kUrl: Symbol('url'), + kWriting: Symbol('writing'), + kResuming: Symbol('resuming'), + kQueue: Symbol('queue'), + kConnect: Symbol('connect'), + kConnecting: Symbol('connecting'), + kHeadersList: Symbol('headers list'), + kKeepAliveDefaultTimeout: Symbol('default keep alive timeout'), + kKeepAliveMaxTimeout: Symbol('max keep alive timeout'), + kKeepAliveTimeoutThreshold: Symbol('keep alive timeout threshold'), + kKeepAliveTimeoutValue: Symbol('keep alive timeout'), + kKeepAlive: Symbol('keep alive'), + kHeadersTimeout: Symbol('headers timeout'), + kBodyTimeout: Symbol('body timeout'), + kServerName: Symbol('server name'), + kLocalAddress: Symbol('local address'), + kHost: Symbol('host'), + kNoRef: Symbol('no ref'), + kBodyUsed: Symbol('used'), + kRunning: Symbol('running'), + kBlocking: Symbol('blocking'), + kPending: Symbol('pending'), + kSize: Symbol('size'), + kBusy: Symbol('busy'), + kQueued: Symbol('queued'), + kFree: Symbol('free'), + kConnected: Symbol('connected'), + kClosed: Symbol('closed'), + kNeedDrain: Symbol('need drain'), + kReset: Symbol('reset'), + kDestroyed: Symbol.for('nodejs.stream.destroyed'), + kMaxHeadersSize: Symbol('max headers size'), + kRunningIdx: Symbol('running index'), + kPendingIdx: Symbol('pending index'), + kError: Symbol('error'), + kClients: Symbol('clients'), + kClient: Symbol('client'), + kParser: Symbol('parser'), + kOnDestroyed: Symbol('destroy callbacks'), + kPipelining: Symbol('pipelining'), + kSocket: Symbol('socket'), + kHostHeader: Symbol('host header'), + kConnector: Symbol('connector'), + kStrictContentLength: Symbol('strict content length'), + kMaxRedirections: Symbol('maxRedirections'), + kMaxRequests: Symbol('maxRequestsPerClient'), + kProxy: Symbol('proxy agent options'), + kCounter: Symbol('socket request counter'), + kInterceptors: Symbol('dispatch interceptors'), + kMaxResponseSize: Symbol('max response size'), + kHTTP2Session: Symbol('http2Session'), + kHTTP2SessionState: Symbol('http2Session state'), + kHTTP2BuildRequest: Symbol('http2 build request'), + kHTTP1BuildRequest: Symbol('http1 build request'), + kHTTP2CopyHeaders: Symbol('http2 copy headers'), + kHTTPConnVersion: Symbol('http connection version'), + kRetryHandlerDefaultRetry: Symbol('retry agent default retry'), + kConstruct: Symbol('constructable') + } + + /***/ + }, - if (headersTimeout != null && (!Number.isFinite(headersTimeout) || headersTimeout < 0)) { - throw new InvalidArgumentError('invalid headersTimeout') - } + /***/ 83983: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + const assert = __nccwpck_require__(39491) + const { kDestroyed, kBodyUsed } = __nccwpck_require__(72785) + const { IncomingMessage } = __nccwpck_require__(13685) + const stream = __nccwpck_require__(12781) + const net = __nccwpck_require__(41808) + const { InvalidArgumentError } = __nccwpck_require__(48045) + const { Blob } = __nccwpck_require__(14300) + const nodeUtil = __nccwpck_require__(73837) + const { stringify } = __nccwpck_require__(63477) + const { headerNameLowerCasedRecord } = __nccwpck_require__(14462) + + const [nodeMajor, nodeMinor] = process.versions.node + .split('.') + .map(v => Number(v)) + + function nop() {} + + function isStream(obj) { + return ( + obj && + typeof obj === 'object' && + typeof obj.pipe === 'function' && + typeof obj.on === 'function' + ) + } - if (bodyTimeout != null && (!Number.isFinite(bodyTimeout) || bodyTimeout < 0)) { - throw new InvalidArgumentError('invalid bodyTimeout') - } + // based on https://github.com/node-fetch/fetch-blob/blob/8ab587d34080de94140b54f07168451e7d0b655e/index.js#L229-L241 (MIT License) + function isBlobLike(object) { + return ( + (Blob && object instanceof Blob) || + (object && + typeof object === 'object' && + (typeof object.stream === 'function' || + typeof object.arrayBuffer === 'function') && + /^(Blob|File)$/.test(object[Symbol.toStringTag])) + ) + } - if (reset != null && typeof reset !== 'boolean') { - throw new InvalidArgumentError('invalid reset') - } + function buildURL(url, queryParams) { + if (url.includes('?') || url.includes('#')) { + throw new Error( + 'Query params cannot be passed when url already contains "?" or "#".' + ) + } - if (expectContinue != null && typeof expectContinue !== 'boolean') { - throw new InvalidArgumentError('invalid expectContinue') - } + const stringified = stringify(queryParams) - this.headersTimeout = headersTimeout + if (stringified) { + url += '?' + stringified + } - this.bodyTimeout = bodyTimeout + return url + } - this.throwOnError = throwOnError === true + function parseURL(url) { + if (typeof url === 'string') { + url = new URL(url) - this.method = method + if (!/^https?:/.test(url.origin || url.protocol)) { + throw new InvalidArgumentError( + 'Invalid URL protocol: the URL must start with `http:` or `https:`.' + ) + } - this.abort = null + return url + } - if (body == null) { - this.body = null - } else if (util.isStream(body)) { - this.body = body + if (!url || typeof url !== 'object') { + throw new InvalidArgumentError( + 'Invalid URL: The URL argument must be a non-null object.' + ) + } - const rState = this.body._readableState - if (!rState || !rState.autoDestroy) { - this.endHandler = function autoDestroy () { - util.destroy(this) + if (!/^https?:/.test(url.origin || url.protocol)) { + throw new InvalidArgumentError( + 'Invalid URL protocol: the URL must start with `http:` or `https:`.' + ) } - this.body.on('end', this.endHandler) - } - this.errorHandler = err => { - if (this.abort) { - this.abort(err) - } else { - this.error = err - } - } - this.body.on('error', this.errorHandler) - } else if (util.isBuffer(body)) { - this.body = body.byteLength ? body : null - } else if (ArrayBuffer.isView(body)) { - this.body = body.buffer.byteLength ? Buffer.from(body.buffer, body.byteOffset, body.byteLength) : null - } else if (body instanceof ArrayBuffer) { - this.body = body.byteLength ? Buffer.from(body) : null - } else if (typeof body === 'string') { - this.body = body.length ? Buffer.from(body) : null - } else if (util.isFormDataLike(body) || util.isIterable(body) || util.isBlobLike(body)) { - this.body = body - } else { - throw new InvalidArgumentError('body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable') - } + if (!(url instanceof URL)) { + if ( + url.port != null && + url.port !== '' && + !Number.isFinite(parseInt(url.port)) + ) { + throw new InvalidArgumentError( + 'Invalid URL: port must be a valid integer or a string representation of an integer.' + ) + } - this.completed = false + if (url.path != null && typeof url.path !== 'string') { + throw new InvalidArgumentError( + 'Invalid URL path: the path must be a string or null/undefined.' + ) + } - this.aborted = false + if (url.pathname != null && typeof url.pathname !== 'string') { + throw new InvalidArgumentError( + 'Invalid URL pathname: the pathname must be a string or null/undefined.' + ) + } - this.upgrade = upgrade || null + if (url.hostname != null && typeof url.hostname !== 'string') { + throw new InvalidArgumentError( + 'Invalid URL hostname: the hostname must be a string or null/undefined.' + ) + } - this.path = query ? util.buildURL(path, query) : path + if (url.origin != null && typeof url.origin !== 'string') { + throw new InvalidArgumentError( + 'Invalid URL origin: the origin must be a string or null/undefined.' + ) + } - this.origin = origin + const port = + url.port != null ? url.port : url.protocol === 'https:' ? 443 : 80 + let origin = + url.origin != null + ? url.origin + : `${url.protocol}//${url.hostname}:${port}` + let path = + url.path != null + ? url.path + : `${url.pathname || ''}${url.search || ''}` + + if (origin.endsWith('/')) { + origin = origin.substring(0, origin.length - 1) + } - this.idempotent = idempotent == null - ? method === 'HEAD' || method === 'GET' - : idempotent + if (path && !path.startsWith('/')) { + path = `/${path}` + } + // new URL(path, origin) is unsafe when `path` contains an absolute URL + // From https://developer.mozilla.org/en-US/docs/Web/API/URL/URL: + // If first parameter is a relative URL, second param is required, and will be used as the base URL. + // If first parameter is an absolute URL, a given second param will be ignored. + url = new URL(origin + path) + } - this.blocking = blocking == null ? false : blocking + return url + } - this.reset = reset == null ? null : reset + function parseOrigin(url) { + url = parseURL(url) - this.host = null + if (url.pathname !== '/' || url.search || url.hash) { + throw new InvalidArgumentError('invalid url') + } - this.contentLength = null + return url + } - this.contentType = null + function getHostname(host) { + if (host[0] === '[') { + const idx = host.indexOf(']') - this.headers = '' + assert(idx !== -1) + return host.substring(1, idx) + } - // Only for H2 - this.expectContinue = expectContinue != null ? expectContinue : false + const idx = host.indexOf(':') + if (idx === -1) return host - if (Array.isArray(headers)) { - if (headers.length % 2 !== 0) { - throw new InvalidArgumentError('headers array must be even') + return host.substring(0, idx) } - for (let i = 0; i < headers.length; i += 2) { - processHeader(this, headers[i], headers[i + 1]) - } - } else if (headers && typeof headers === 'object') { - const keys = Object.keys(headers) - for (let i = 0; i < keys.length; i++) { - const key = keys[i] - processHeader(this, key, headers[key]) - } - } else if (headers != null) { - throw new InvalidArgumentError('headers must be an object or an array') - } - if (util.isFormDataLike(this.body)) { - if (util.nodeMajor < 16 || (util.nodeMajor === 16 && util.nodeMinor < 8)) { - throw new InvalidArgumentError('Form-Data bodies are only supported in node v16.8 and newer.') - } + // IP addresses are not valid server names per RFC6066 + // > Currently, the only server names supported are DNS hostnames + function getServerName(host) { + if (!host) { + return null + } - if (!extractBody) { - extractBody = (__nccwpck_require__(41472).extractBody) - } + assert.strictEqual(typeof host, 'string') + + const servername = getHostname(host) + if (net.isIP(servername)) { + return '' + } - const [bodyStream, contentType] = extractBody(body) - if (this.contentType == null) { - this.contentType = contentType - this.headers += `content-type: ${contentType}\r\n` + return servername } - this.body = bodyStream.stream - this.contentLength = bodyStream.length - } else if (util.isBlobLike(body) && this.contentType == null && body.type) { - this.contentType = body.type - this.headers += `content-type: ${body.type}\r\n` - } - util.validateHandler(handler, method, upgrade) + function deepClone(obj) { + return JSON.parse(JSON.stringify(obj)) + } - this.servername = util.getServerName(this.host) + function isAsyncIterable(obj) { + return !!( + obj != null && typeof obj[Symbol.asyncIterator] === 'function' + ) + } - this[kHandler] = handler + function isIterable(obj) { + return !!( + obj != null && + (typeof obj[Symbol.iterator] === 'function' || + typeof obj[Symbol.asyncIterator] === 'function') + ) + } - if (channels.create.hasSubscribers) { - channels.create.publish({ request: this }) - } - } + function bodyLength(body) { + if (body == null) { + return 0 + } else if (isStream(body)) { + const state = body._readableState + return state && + state.objectMode === false && + state.ended === true && + Number.isFinite(state.length) + ? state.length + : null + } else if (isBlobLike(body)) { + return body.size != null ? body.size : null + } else if (isBuffer(body)) { + return body.byteLength + } - onBodySent (chunk) { - if (this[kHandler].onBodySent) { - try { - return this[kHandler].onBodySent(chunk) - } catch (err) { - this.abort(err) + return null } - } - } - - onRequestSent () { - if (channels.bodySent.hasSubscribers) { - channels.bodySent.publish({ request: this }) - } - if (this[kHandler].onRequestSent) { - try { - return this[kHandler].onRequestSent() - } catch (err) { - this.abort(err) + function isDestroyed(stream) { + return !stream || !!(stream.destroyed || stream[kDestroyed]) } - } - } - onConnect (abort) { - assert(!this.aborted) - assert(!this.completed) + function isReadableAborted(stream) { + const state = stream && stream._readableState + return isDestroyed(stream) && state && !state.endEmitted + } - if (this.error) { - abort(this.error) - } else { - this.abort = abort - return this[kHandler].onConnect(abort) - } - } + function destroy(stream, err) { + if (stream == null || !isStream(stream) || isDestroyed(stream)) { + return + } - onHeaders (statusCode, headers, resume, statusText) { - assert(!this.aborted) - assert(!this.completed) + if (typeof stream.destroy === 'function') { + if (Object.getPrototypeOf(stream).constructor === IncomingMessage) { + // See: https://github.com/nodejs/node/pull/38505/files + stream.socket = null + } - if (channels.headers.hasSubscribers) { - channels.headers.publish({ request: this, response: { statusCode, headers, statusText } }) - } + stream.destroy(err) + } else if (err) { + process.nextTick( + (stream, err) => { + stream.emit('error', err) + }, + stream, + err + ) + } - try { - return this[kHandler].onHeaders(statusCode, headers, resume, statusText) - } catch (err) { - this.abort(err) - } - } + if (stream.destroyed !== true) { + stream[kDestroyed] = true + } + } - onData (chunk) { - assert(!this.aborted) - assert(!this.completed) + const KEEPALIVE_TIMEOUT_EXPR = /timeout=(\d+)/ + function parseKeepAliveTimeout(val) { + const m = val.toString().match(KEEPALIVE_TIMEOUT_EXPR) + return m ? parseInt(m[1], 10) * 1000 : null + } - try { - return this[kHandler].onData(chunk) - } catch (err) { - this.abort(err) - return false - } - } + /** + * Retrieves a header name and returns its lowercase value. + * @param {string | Buffer} value Header name + * @returns {string} + */ + function headerNameToString(value) { + return headerNameLowerCasedRecord[value] || value.toLowerCase() + } - onUpgrade (statusCode, headers, socket) { - assert(!this.aborted) - assert(!this.completed) + function parseHeaders(headers, obj = {}) { + // For H2 support + if (!Array.isArray(headers)) return headers - return this[kHandler].onUpgrade(statusCode, headers, socket) - } + for (let i = 0; i < headers.length; i += 2) { + const key = headers[i].toString().toLowerCase() + let val = obj[key] - onComplete (trailers) { - this.onFinally() + if (!val) { + if (Array.isArray(headers[i + 1])) { + obj[key] = headers[i + 1].map(x => x.toString('utf8')) + } else { + obj[key] = headers[i + 1].toString('utf8') + } + } else { + if (!Array.isArray(val)) { + val = [val] + obj[key] = val + } + val.push(headers[i + 1].toString('utf8')) + } + } - assert(!this.aborted) + // See https://github.com/nodejs/node/pull/46528 + if ('content-length' in obj && 'content-disposition' in obj) { + obj['content-disposition'] = Buffer.from( + obj['content-disposition'] + ).toString('latin1') + } - this.completed = true - if (channels.trailers.hasSubscribers) { - channels.trailers.publish({ request: this, trailers }) - } + return obj + } - try { - return this[kHandler].onComplete(trailers) - } catch (err) { - // TODO (fix): This might be a bad idea? - this.onError(err) - } - } + function parseRawHeaders(headers) { + const ret = [] + let hasContentLength = false + let contentDispositionIdx = -1 - onError (error) { - this.onFinally() + for (let n = 0; n < headers.length; n += 2) { + const key = headers[n + 0].toString() + const val = headers[n + 1].toString('utf8') - if (channels.error.hasSubscribers) { - channels.error.publish({ request: this, error }) - } + if ( + key.length === 14 && + (key === 'content-length' || key.toLowerCase() === 'content-length') + ) { + ret.push(key, val) + hasContentLength = true + } else if ( + key.length === 19 && + (key === 'content-disposition' || + key.toLowerCase() === 'content-disposition') + ) { + contentDispositionIdx = ret.push(key, val) - 1 + } else { + ret.push(key, val) + } + } - if (this.aborted) { - return - } - this.aborted = true + // See https://github.com/nodejs/node/pull/46528 + if (hasContentLength && contentDispositionIdx !== -1) { + ret[contentDispositionIdx] = Buffer.from( + ret[contentDispositionIdx] + ).toString('latin1') + } - return this[kHandler].onError(error) - } + return ret + } - onFinally () { - if (this.errorHandler) { - this.body.off('error', this.errorHandler) - this.errorHandler = null - } + function isBuffer(buffer) { + // See, https://github.com/mcollina/undici/pull/319 + return buffer instanceof Uint8Array || Buffer.isBuffer(buffer) + } - if (this.endHandler) { - this.body.off('end', this.endHandler) - this.endHandler = null - } - } + function validateHandler(handler, method, upgrade) { + if (!handler || typeof handler !== 'object') { + throw new InvalidArgumentError('handler must be an object') + } - // TODO: adjust to support H2 - addHeader (key, value) { - processHeader(this, key, value) - return this - } + if (typeof handler.onConnect !== 'function') { + throw new InvalidArgumentError('invalid onConnect method') + } - static [kHTTP1BuildRequest] (origin, opts, handler) { - // TODO: Migrate header parsing here, to make Requests - // HTTP agnostic - return new Request(origin, opts, handler) - } + if (typeof handler.onError !== 'function') { + throw new InvalidArgumentError('invalid onError method') + } - static [kHTTP2BuildRequest] (origin, opts, handler) { - const headers = opts.headers - opts = { ...opts, headers: null } + if ( + typeof handler.onBodySent !== 'function' && + handler.onBodySent !== undefined + ) { + throw new InvalidArgumentError('invalid onBodySent method') + } - const request = new Request(origin, opts, handler) + if (upgrade || method === 'CONNECT') { + if (typeof handler.onUpgrade !== 'function') { + throw new InvalidArgumentError('invalid onUpgrade method') + } + } else { + if (typeof handler.onHeaders !== 'function') { + throw new InvalidArgumentError('invalid onHeaders method') + } - request.headers = {} + if (typeof handler.onData !== 'function') { + throw new InvalidArgumentError('invalid onData method') + } - if (Array.isArray(headers)) { - if (headers.length % 2 !== 0) { - throw new InvalidArgumentError('headers array must be even') - } - for (let i = 0; i < headers.length; i += 2) { - processHeader(request, headers[i], headers[i + 1], true) - } - } else if (headers && typeof headers === 'object') { - const keys = Object.keys(headers) - for (let i = 0; i < keys.length; i++) { - const key = keys[i] - processHeader(request, key, headers[key], true) + if (typeof handler.onComplete !== 'function') { + throw new InvalidArgumentError('invalid onComplete method') + } + } } - } else if (headers != null) { - throw new InvalidArgumentError('headers must be an object or an array') - } - - return request - } - static [kHTTP2CopyHeaders] (raw) { - const rawHeaders = raw.split('\r\n') - const headers = {} - - for (const header of rawHeaders) { - const [key, value] = header.split(': ') + // A body is disturbed if it has been read from and it cannot + // be re-used without losing state or data. + function isDisturbed(body) { + return !!( + body && + (stream.isDisturbed + ? stream.isDisturbed(body) || body[kBodyUsed] // TODO (fix): Why is body[kBodyUsed] needed? + : body[kBodyUsed] || + body.readableDidRead || + (body._readableState && body._readableState.dataEmitted) || + isReadableAborted(body)) + ) + } - if (value == null || value.length === 0) continue + function isErrored(body) { + return !!( + body && + (stream.isErrored + ? stream.isErrored(body) + : /state: 'errored'/.test(nodeUtil.inspect(body))) + ) + } - if (headers[key]) headers[key] += `,${value}` - else headers[key] = value - } + function isReadable(body) { + return !!( + body && + (stream.isReadable + ? stream.isReadable(body) + : /state: 'readable'/.test(nodeUtil.inspect(body))) + ) + } - return headers - } -} + function getSocketInfo(socket) { + return { + localAddress: socket.localAddress, + localPort: socket.localPort, + remoteAddress: socket.remoteAddress, + remotePort: socket.remotePort, + remoteFamily: socket.remoteFamily, + timeout: socket.timeout, + bytesWritten: socket.bytesWritten, + bytesRead: socket.bytesRead + } + } -function processHeaderValue (key, val, skipAppend) { - if (val && typeof val === 'object') { - throw new InvalidArgumentError(`invalid ${key} header`) - } + async function* convertIterableToBuffer(iterable) { + for await (const chunk of iterable) { + yield Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk) + } + } - val = val != null ? `${val}` : '' + let ReadableStream + function ReadableStreamFrom(iterable) { + if (!ReadableStream) { + ReadableStream = __nccwpck_require__(35356).ReadableStream + } - if (headerCharRegex.exec(val) !== null) { - throw new InvalidArgumentError(`invalid ${key} header`) - } + if (ReadableStream.from) { + return ReadableStream.from(convertIterableToBuffer(iterable)) + } - return skipAppend ? val : `${key}: ${val}\r\n` -} + let iterator + return new ReadableStream( + { + async start() { + iterator = iterable[Symbol.asyncIterator]() + }, + async pull(controller) { + const { done, value } = await iterator.next() + if (done) { + queueMicrotask(() => { + controller.close() + }) + } else { + const buf = Buffer.isBuffer(value) ? value : Buffer.from(value) + controller.enqueue(new Uint8Array(buf)) + } + return controller.desiredSize > 0 + }, + async cancel(reason) { + await iterator.return() + } + }, + 0 + ) + } -function processHeader (request, key, val, skipAppend = false) { - if (val && (typeof val === 'object' && !Array.isArray(val))) { - throw new InvalidArgumentError(`invalid ${key} header`) - } else if (val === undefined) { - return - } + // The chunk should be a FormData instance and contains + // all the required methods. + function isFormDataLike(object) { + return ( + object && + typeof object === 'object' && + typeof object.append === 'function' && + typeof object.delete === 'function' && + typeof object.get === 'function' && + typeof object.getAll === 'function' && + typeof object.has === 'function' && + typeof object.set === 'function' && + object[Symbol.toStringTag] === 'FormData' + ) + } - if ( - request.host === null && - key.length === 4 && - key.toLowerCase() === 'host' - ) { - if (headerCharRegex.exec(val) !== null) { - throw new InvalidArgumentError(`invalid ${key} header`) - } - // Consumed by Client - request.host = val - } else if ( - request.contentLength === null && - key.length === 14 && - key.toLowerCase() === 'content-length' - ) { - request.contentLength = parseInt(val, 10) - if (!Number.isFinite(request.contentLength)) { - throw new InvalidArgumentError('invalid content-length header') - } - } else if ( - request.contentType === null && - key.length === 12 && - key.toLowerCase() === 'content-type' - ) { - request.contentType = val - if (skipAppend) request.headers[key] = processHeaderValue(key, val, skipAppend) - else request.headers += processHeaderValue(key, val) - } else if ( - key.length === 17 && - key.toLowerCase() === 'transfer-encoding' - ) { - throw new InvalidArgumentError('invalid transfer-encoding header') - } else if ( - key.length === 10 && - key.toLowerCase() === 'connection' - ) { - const value = typeof val === 'string' ? val.toLowerCase() : null - if (value !== 'close' && value !== 'keep-alive') { - throw new InvalidArgumentError('invalid connection header') - } else if (value === 'close') { - request.reset = true - } - } else if ( - key.length === 10 && - key.toLowerCase() === 'keep-alive' - ) { - throw new InvalidArgumentError('invalid keep-alive header') - } else if ( - key.length === 7 && - key.toLowerCase() === 'upgrade' - ) { - throw new InvalidArgumentError('invalid upgrade header') - } else if ( - key.length === 6 && - key.toLowerCase() === 'expect' - ) { - throw new NotSupportedError('expect header not supported') - } else if (tokenRegExp.exec(key) === null) { - throw new InvalidArgumentError('invalid header key') - } else { - if (Array.isArray(val)) { - for (let i = 0; i < val.length; i++) { - if (skipAppend) { - if (request.headers[key]) request.headers[key] += `,${processHeaderValue(key, val[i], skipAppend)}` - else request.headers[key] = processHeaderValue(key, val[i], skipAppend) + function throwIfAborted(signal) { + if (!signal) { + return + } + if (typeof signal.throwIfAborted === 'function') { + signal.throwIfAborted() } else { - request.headers += processHeaderValue(key, val[i]) + if (signal.aborted) { + // DOMException not available < v17.0.0 + const err = new Error('The operation was aborted') + err.name = 'AbortError' + throw err + } } } - } else { - if (skipAppend) request.headers[key] = processHeaderValue(key, val, skipAppend) - else request.headers += processHeaderValue(key, val) - } - } -} - -module.exports = Request - - -/***/ }), - -/***/ 72785: -/***/ ((module) => { - -module.exports = { - kClose: Symbol('close'), - kDestroy: Symbol('destroy'), - kDispatch: Symbol('dispatch'), - kUrl: Symbol('url'), - kWriting: Symbol('writing'), - kResuming: Symbol('resuming'), - kQueue: Symbol('queue'), - kConnect: Symbol('connect'), - kConnecting: Symbol('connecting'), - kHeadersList: Symbol('headers list'), - kKeepAliveDefaultTimeout: Symbol('default keep alive timeout'), - kKeepAliveMaxTimeout: Symbol('max keep alive timeout'), - kKeepAliveTimeoutThreshold: Symbol('keep alive timeout threshold'), - kKeepAliveTimeoutValue: Symbol('keep alive timeout'), - kKeepAlive: Symbol('keep alive'), - kHeadersTimeout: Symbol('headers timeout'), - kBodyTimeout: Symbol('body timeout'), - kServerName: Symbol('server name'), - kLocalAddress: Symbol('local address'), - kHost: Symbol('host'), - kNoRef: Symbol('no ref'), - kBodyUsed: Symbol('used'), - kRunning: Symbol('running'), - kBlocking: Symbol('blocking'), - kPending: Symbol('pending'), - kSize: Symbol('size'), - kBusy: Symbol('busy'), - kQueued: Symbol('queued'), - kFree: Symbol('free'), - kConnected: Symbol('connected'), - kClosed: Symbol('closed'), - kNeedDrain: Symbol('need drain'), - kReset: Symbol('reset'), - kDestroyed: Symbol.for('nodejs.stream.destroyed'), - kMaxHeadersSize: Symbol('max headers size'), - kRunningIdx: Symbol('running index'), - kPendingIdx: Symbol('pending index'), - kError: Symbol('error'), - kClients: Symbol('clients'), - kClient: Symbol('client'), - kParser: Symbol('parser'), - kOnDestroyed: Symbol('destroy callbacks'), - kPipelining: Symbol('pipelining'), - kSocket: Symbol('socket'), - kHostHeader: Symbol('host header'), - kConnector: Symbol('connector'), - kStrictContentLength: Symbol('strict content length'), - kMaxRedirections: Symbol('maxRedirections'), - kMaxRequests: Symbol('maxRequestsPerClient'), - kProxy: Symbol('proxy agent options'), - kCounter: Symbol('socket request counter'), - kInterceptors: Symbol('dispatch interceptors'), - kMaxResponseSize: Symbol('max response size'), - kHTTP2Session: Symbol('http2Session'), - kHTTP2SessionState: Symbol('http2Session state'), - kHTTP2BuildRequest: Symbol('http2 build request'), - kHTTP1BuildRequest: Symbol('http1 build request'), - kHTTP2CopyHeaders: Symbol('http2 copy headers'), - kHTTPConnVersion: Symbol('http connection version'), - kRetryHandlerDefaultRetry: Symbol('retry agent default retry'), - kConstruct: Symbol('constructable') -} - - -/***/ }), - -/***/ 83983: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - - -const assert = __nccwpck_require__(39491) -const { kDestroyed, kBodyUsed } = __nccwpck_require__(72785) -const { IncomingMessage } = __nccwpck_require__(13685) -const stream = __nccwpck_require__(12781) -const net = __nccwpck_require__(41808) -const { InvalidArgumentError } = __nccwpck_require__(48045) -const { Blob } = __nccwpck_require__(14300) -const nodeUtil = __nccwpck_require__(73837) -const { stringify } = __nccwpck_require__(63477) -const { headerNameLowerCasedRecord } = __nccwpck_require__(14462) - -const [nodeMajor, nodeMinor] = process.versions.node.split('.').map(v => Number(v)) - -function nop () {} - -function isStream (obj) { - return obj && typeof obj === 'object' && typeof obj.pipe === 'function' && typeof obj.on === 'function' -} - -// based on https://github.com/node-fetch/fetch-blob/blob/8ab587d34080de94140b54f07168451e7d0b655e/index.js#L229-L241 (MIT License) -function isBlobLike (object) { - return (Blob && object instanceof Blob) || ( - object && - typeof object === 'object' && - (typeof object.stream === 'function' || - typeof object.arrayBuffer === 'function') && - /^(Blob|File)$/.test(object[Symbol.toStringTag]) - ) -} - -function buildURL (url, queryParams) { - if (url.includes('?') || url.includes('#')) { - throw new Error('Query params cannot be passed when url already contains "?" or "#".') - } - - const stringified = stringify(queryParams) - - if (stringified) { - url += '?' + stringified - } - - return url -} - -function parseURL (url) { - if (typeof url === 'string') { - url = new URL(url) - if (!/^https?:/.test(url.origin || url.protocol)) { - throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.') - } - - return url - } - - if (!url || typeof url !== 'object') { - throw new InvalidArgumentError('Invalid URL: The URL argument must be a non-null object.') - } - - if (!/^https?:/.test(url.origin || url.protocol)) { - throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.') - } + function addAbortListener(signal, listener) { + if ('addEventListener' in signal) { + signal.addEventListener('abort', listener, { once: true }) + return () => signal.removeEventListener('abort', listener) + } + signal.addListener('abort', listener) + return () => signal.removeListener('abort', listener) + } - if (!(url instanceof URL)) { - if (url.port != null && url.port !== '' && !Number.isFinite(parseInt(url.port))) { - throw new InvalidArgumentError('Invalid URL: port must be a valid integer or a string representation of an integer.') - } + const hasToWellFormed = !!String.prototype.toWellFormed - if (url.path != null && typeof url.path !== 'string') { - throw new InvalidArgumentError('Invalid URL path: the path must be a string or null/undefined.') - } + /** + * @param {string} val + */ + function toUSVString(val) { + if (hasToWellFormed) { + return `${val}`.toWellFormed() + } else if (nodeUtil.toUSVString) { + return nodeUtil.toUSVString(val) + } - if (url.pathname != null && typeof url.pathname !== 'string') { - throw new InvalidArgumentError('Invalid URL pathname: the pathname must be a string or null/undefined.') - } + return `${val}` + } - if (url.hostname != null && typeof url.hostname !== 'string') { - throw new InvalidArgumentError('Invalid URL hostname: the hostname must be a string or null/undefined.') - } + // Parsed accordingly to RFC 9110 + // https://www.rfc-editor.org/rfc/rfc9110#field.content-range + function parseRangeHeader(range) { + if (range == null || range === '') + return { start: 0, end: null, size: null } - if (url.origin != null && typeof url.origin !== 'string') { - throw new InvalidArgumentError('Invalid URL origin: the origin must be a string or null/undefined.') - } + const m = range ? range.match(/^bytes (\d+)-(\d+)\/(\d+)?$/) : null + return m + ? { + start: parseInt(m[1]), + end: m[2] ? parseInt(m[2]) : null, + size: m[3] ? parseInt(m[3]) : null + } + : null + } + + const kEnumerableProperty = Object.create(null) + kEnumerableProperty.enumerable = true + + module.exports = { + kEnumerableProperty, + nop, + isDisturbed, + isErrored, + isReadable, + toUSVString, + isReadableAborted, + isBlobLike, + parseOrigin, + parseURL, + getServerName, + isStream, + isIterable, + isAsyncIterable, + isDestroyed, + headerNameToString, + parseRawHeaders, + parseHeaders, + parseKeepAliveTimeout, + destroy, + bodyLength, + deepClone, + ReadableStreamFrom, + isBuffer, + validateHandler, + getSocketInfo, + isFormDataLike, + buildURL, + throwIfAborted, + addAbortListener, + parseRangeHeader, + nodeMajor, + nodeMinor, + nodeHasAutoSelectFamily: + nodeMajor > 18 || (nodeMajor === 18 && nodeMinor >= 13), + safeHTTPMethods: ['GET', 'HEAD', 'OPTIONS', 'TRACE'] + } + + /***/ + }, - const port = url.port != null - ? url.port - : (url.protocol === 'https:' ? 443 : 80) - let origin = url.origin != null - ? url.origin - : `${url.protocol}//${url.hostname}:${port}` - let path = url.path != null - ? url.path - : `${url.pathname || ''}${url.search || ''}` - - if (origin.endsWith('/')) { - origin = origin.substring(0, origin.length - 1) - } + /***/ 74839: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' - if (path && !path.startsWith('/')) { - path = `/${path}` - } - // new URL(path, origin) is unsafe when `path` contains an absolute URL - // From https://developer.mozilla.org/en-US/docs/Web/API/URL/URL: - // If first parameter is a relative URL, second param is required, and will be used as the base URL. - // If first parameter is an absolute URL, a given second param will be ignored. - url = new URL(origin + path) - } + const Dispatcher = __nccwpck_require__(60412) + const { ClientDestroyedError, ClientClosedError, InvalidArgumentError } = + __nccwpck_require__(48045) + const { kDestroy, kClose, kDispatch, kInterceptors } = + __nccwpck_require__(72785) - return url -} + const kDestroyed = Symbol('destroyed') + const kClosed = Symbol('closed') + const kOnDestroyed = Symbol('onDestroyed') + const kOnClosed = Symbol('onClosed') + const kInterceptedDispatch = Symbol('Intercepted Dispatch') -function parseOrigin (url) { - url = parseURL(url) + class DispatcherBase extends Dispatcher { + constructor() { + super() - if (url.pathname !== '/' || url.search || url.hash) { - throw new InvalidArgumentError('invalid url') - } + this[kDestroyed] = false + this[kOnDestroyed] = null + this[kClosed] = false + this[kOnClosed] = [] + } - return url -} + get destroyed() { + return this[kDestroyed] + } -function getHostname (host) { - if (host[0] === '[') { - const idx = host.indexOf(']') + get closed() { + return this[kClosed] + } - assert(idx !== -1) - return host.substring(1, idx) - } + get interceptors() { + return this[kInterceptors] + } - const idx = host.indexOf(':') - if (idx === -1) return host + set interceptors(newInterceptors) { + if (newInterceptors) { + for (let i = newInterceptors.length - 1; i >= 0; i--) { + const interceptor = this[kInterceptors][i] + if (typeof interceptor !== 'function') { + throw new InvalidArgumentError( + 'interceptor must be an function' + ) + } + } + } - return host.substring(0, idx) -} + this[kInterceptors] = newInterceptors + } -// IP addresses are not valid server names per RFC6066 -// > Currently, the only server names supported are DNS hostnames -function getServerName (host) { - if (!host) { - return null - } + close(callback) { + if (callback === undefined) { + return new Promise((resolve, reject) => { + this.close((err, data) => { + return err ? reject(err) : resolve(data) + }) + }) + } - assert.strictEqual(typeof host, 'string') + if (typeof callback !== 'function') { + throw new InvalidArgumentError('invalid callback') + } - const servername = getHostname(host) - if (net.isIP(servername)) { - return '' - } + if (this[kDestroyed]) { + queueMicrotask(() => callback(new ClientDestroyedError(), null)) + return + } - return servername -} - -function deepClone (obj) { - return JSON.parse(JSON.stringify(obj)) -} - -function isAsyncIterable (obj) { - return !!(obj != null && typeof obj[Symbol.asyncIterator] === 'function') -} - -function isIterable (obj) { - return !!(obj != null && (typeof obj[Symbol.iterator] === 'function' || typeof obj[Symbol.asyncIterator] === 'function')) -} - -function bodyLength (body) { - if (body == null) { - return 0 - } else if (isStream(body)) { - const state = body._readableState - return state && state.objectMode === false && state.ended === true && Number.isFinite(state.length) - ? state.length - : null - } else if (isBlobLike(body)) { - return body.size != null ? body.size : null - } else if (isBuffer(body)) { - return body.byteLength - } + if (this[kClosed]) { + if (this[kOnClosed]) { + this[kOnClosed].push(callback) + } else { + queueMicrotask(() => callback(null, null)) + } + return + } - return null -} + this[kClosed] = true + this[kOnClosed].push(callback) -function isDestroyed (stream) { - return !stream || !!(stream.destroyed || stream[kDestroyed]) -} + const onClosed = () => { + const callbacks = this[kOnClosed] + this[kOnClosed] = null + for (let i = 0; i < callbacks.length; i++) { + callbacks[i](null, null) + } + } -function isReadableAborted (stream) { - const state = stream && stream._readableState - return isDestroyed(stream) && state && !state.endEmitted -} + // Should not error. + this[kClose]() + .then(() => this.destroy()) + .then(() => { + queueMicrotask(onClosed) + }) + } -function destroy (stream, err) { - if (stream == null || !isStream(stream) || isDestroyed(stream)) { - return - } + destroy(err, callback) { + if (typeof err === 'function') { + callback = err + err = null + } - if (typeof stream.destroy === 'function') { - if (Object.getPrototypeOf(stream).constructor === IncomingMessage) { - // See: https://github.com/nodejs/node/pull/38505/files - stream.socket = null - } + if (callback === undefined) { + return new Promise((resolve, reject) => { + this.destroy(err, (err, data) => { + return err + ? /* istanbul ignore next: should never error */ reject(err) + : resolve(data) + }) + }) + } - stream.destroy(err) - } else if (err) { - process.nextTick((stream, err) => { - stream.emit('error', err) - }, stream, err) - } + if (typeof callback !== 'function') { + throw new InvalidArgumentError('invalid callback') + } - if (stream.destroyed !== true) { - stream[kDestroyed] = true - } -} - -const KEEPALIVE_TIMEOUT_EXPR = /timeout=(\d+)/ -function parseKeepAliveTimeout (val) { - const m = val.toString().match(KEEPALIVE_TIMEOUT_EXPR) - return m ? parseInt(m[1], 10) * 1000 : null -} - -/** - * Retrieves a header name and returns its lowercase value. - * @param {string | Buffer} value Header name - * @returns {string} - */ -function headerNameToString (value) { - return headerNameLowerCasedRecord[value] || value.toLowerCase() -} + if (this[kDestroyed]) { + if (this[kOnDestroyed]) { + this[kOnDestroyed].push(callback) + } else { + queueMicrotask(() => callback(null, null)) + } + return + } -function parseHeaders (headers, obj = {}) { - // For H2 support - if (!Array.isArray(headers)) return headers + if (!err) { + err = new ClientDestroyedError() + } - for (let i = 0; i < headers.length; i += 2) { - const key = headers[i].toString().toLowerCase() - let val = obj[key] + this[kDestroyed] = true + this[kOnDestroyed] = this[kOnDestroyed] || [] + this[kOnDestroyed].push(callback) - if (!val) { - if (Array.isArray(headers[i + 1])) { - obj[key] = headers[i + 1].map(x => x.toString('utf8')) - } else { - obj[key] = headers[i + 1].toString('utf8') - } - } else { - if (!Array.isArray(val)) { - val = [val] - obj[key] = val - } - val.push(headers[i + 1].toString('utf8')) - } - } + const onDestroyed = () => { + const callbacks = this[kOnDestroyed] + this[kOnDestroyed] = null + for (let i = 0; i < callbacks.length; i++) { + callbacks[i](null, null) + } + } - // See https://github.com/nodejs/node/pull/46528 - if ('content-length' in obj && 'content-disposition' in obj) { - obj['content-disposition'] = Buffer.from(obj['content-disposition']).toString('latin1') - } + // Should not error. + this[kDestroy](err).then(() => { + queueMicrotask(onDestroyed) + }) + } - return obj -} - -function parseRawHeaders (headers) { - const ret = [] - let hasContentLength = false - let contentDispositionIdx = -1 - - for (let n = 0; n < headers.length; n += 2) { - const key = headers[n + 0].toString() - const val = headers[n + 1].toString('utf8') - - if (key.length === 14 && (key === 'content-length' || key.toLowerCase() === 'content-length')) { - ret.push(key, val) - hasContentLength = true - } else if (key.length === 19 && (key === 'content-disposition' || key.toLowerCase() === 'content-disposition')) { - contentDispositionIdx = ret.push(key, val) - 1 - } else { - ret.push(key, val) - } - } + [kInterceptedDispatch](opts, handler) { + if (!this[kInterceptors] || this[kInterceptors].length === 0) { + this[kInterceptedDispatch] = this[kDispatch] + return this[kDispatch](opts, handler) + } - // See https://github.com/nodejs/node/pull/46528 - if (hasContentLength && contentDispositionIdx !== -1) { - ret[contentDispositionIdx] = Buffer.from(ret[contentDispositionIdx]).toString('latin1') - } + let dispatch = this[kDispatch].bind(this) + for (let i = this[kInterceptors].length - 1; i >= 0; i--) { + dispatch = this[kInterceptors][i](dispatch) + } + this[kInterceptedDispatch] = dispatch + return dispatch(opts, handler) + } - return ret -} + dispatch(opts, handler) { + if (!handler || typeof handler !== 'object') { + throw new InvalidArgumentError('handler must be an object') + } -function isBuffer (buffer) { - // See, https://github.com/mcollina/undici/pull/319 - return buffer instanceof Uint8Array || Buffer.isBuffer(buffer) -} + try { + if (!opts || typeof opts !== 'object') { + throw new InvalidArgumentError('opts must be an object.') + } -function validateHandler (handler, method, upgrade) { - if (!handler || typeof handler !== 'object') { - throw new InvalidArgumentError('handler must be an object') - } + if (this[kDestroyed] || this[kOnDestroyed]) { + throw new ClientDestroyedError() + } - if (typeof handler.onConnect !== 'function') { - throw new InvalidArgumentError('invalid onConnect method') - } + if (this[kClosed]) { + throw new ClientClosedError() + } - if (typeof handler.onError !== 'function') { - throw new InvalidArgumentError('invalid onError method') - } + return this[kInterceptedDispatch](opts, handler) + } catch (err) { + if (typeof handler.onError !== 'function') { + throw new InvalidArgumentError('invalid onError method') + } - if (typeof handler.onBodySent !== 'function' && handler.onBodySent !== undefined) { - throw new InvalidArgumentError('invalid onBodySent method') - } + handler.onError(err) - if (upgrade || method === 'CONNECT') { - if (typeof handler.onUpgrade !== 'function') { - throw new InvalidArgumentError('invalid onUpgrade method') - } - } else { - if (typeof handler.onHeaders !== 'function') { - throw new InvalidArgumentError('invalid onHeaders method') - } + return false + } + } + } - if (typeof handler.onData !== 'function') { - throw new InvalidArgumentError('invalid onData method') - } + module.exports = DispatcherBase - if (typeof handler.onComplete !== 'function') { - throw new InvalidArgumentError('invalid onComplete method') - } - } -} - -// A body is disturbed if it has been read from and it cannot -// be re-used without losing state or data. -function isDisturbed (body) { - return !!(body && ( - stream.isDisturbed - ? stream.isDisturbed(body) || body[kBodyUsed] // TODO (fix): Why is body[kBodyUsed] needed? - : body[kBodyUsed] || - body.readableDidRead || - (body._readableState && body._readableState.dataEmitted) || - isReadableAborted(body) - )) -} - -function isErrored (body) { - return !!(body && ( - stream.isErrored - ? stream.isErrored(body) - : /state: 'errored'/.test(nodeUtil.inspect(body) - ))) -} - -function isReadable (body) { - return !!(body && ( - stream.isReadable - ? stream.isReadable(body) - : /state: 'readable'/.test(nodeUtil.inspect(body) - ))) -} - -function getSocketInfo (socket) { - return { - localAddress: socket.localAddress, - localPort: socket.localPort, - remoteAddress: socket.remoteAddress, - remotePort: socket.remotePort, - remoteFamily: socket.remoteFamily, - timeout: socket.timeout, - bytesWritten: socket.bytesWritten, - bytesRead: socket.bytesRead - } -} + /***/ + }, -async function * convertIterableToBuffer (iterable) { - for await (const chunk of iterable) { - yield Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk) - } -} + /***/ 60412: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' -let ReadableStream -function ReadableStreamFrom (iterable) { - if (!ReadableStream) { - ReadableStream = (__nccwpck_require__(35356).ReadableStream) - } + const EventEmitter = __nccwpck_require__(82361) - if (ReadableStream.from) { - return ReadableStream.from(convertIterableToBuffer(iterable)) - } + class Dispatcher extends EventEmitter { + dispatch() { + throw new Error('not implemented') + } - let iterator - return new ReadableStream( - { - async start () { - iterator = iterable[Symbol.asyncIterator]() - }, - async pull (controller) { - const { done, value } = await iterator.next() - if (done) { - queueMicrotask(() => { - controller.close() - }) - } else { - const buf = Buffer.isBuffer(value) ? value : Buffer.from(value) - controller.enqueue(new Uint8Array(buf)) - } - return controller.desiredSize > 0 - }, - async cancel (reason) { - await iterator.return() - } - }, - 0 - ) -} - -// The chunk should be a FormData instance and contains -// all the required methods. -function isFormDataLike (object) { - return ( - object && - typeof object === 'object' && - typeof object.append === 'function' && - typeof object.delete === 'function' && - typeof object.get === 'function' && - typeof object.getAll === 'function' && - typeof object.has === 'function' && - typeof object.set === 'function' && - object[Symbol.toStringTag] === 'FormData' - ) -} - -function throwIfAborted (signal) { - if (!signal) { return } - if (typeof signal.throwIfAborted === 'function') { - signal.throwIfAborted() - } else { - if (signal.aborted) { - // DOMException not available < v17.0.0 - const err = new Error('The operation was aborted') - err.name = 'AbortError' - throw err - } - } -} + close() { + throw new Error('not implemented') + } -function addAbortListener (signal, listener) { - if ('addEventListener' in signal) { - signal.addEventListener('abort', listener, { once: true }) - return () => signal.removeEventListener('abort', listener) - } - signal.addListener('abort', listener) - return () => signal.removeListener('abort', listener) -} + destroy() { + throw new Error('not implemented') + } + } -const hasToWellFormed = !!String.prototype.toWellFormed + module.exports = Dispatcher -/** - * @param {string} val - */ -function toUSVString (val) { - if (hasToWellFormed) { - return `${val}`.toWellFormed() - } else if (nodeUtil.toUSVString) { - return nodeUtil.toUSVString(val) - } + /***/ + }, - return `${val}` -} - -// Parsed accordingly to RFC 9110 -// https://www.rfc-editor.org/rfc/rfc9110#field.content-range -function parseRangeHeader (range) { - if (range == null || range === '') return { start: 0, end: null, size: null } - - const m = range ? range.match(/^bytes (\d+)-(\d+)\/(\d+)?$/) : null - return m - ? { - start: parseInt(m[1]), - end: m[2] ? parseInt(m[2]) : null, - size: m[3] ? parseInt(m[3]) : null - } - : null -} - -const kEnumerableProperty = Object.create(null) -kEnumerableProperty.enumerable = true - -module.exports = { - kEnumerableProperty, - nop, - isDisturbed, - isErrored, - isReadable, - toUSVString, - isReadableAborted, - isBlobLike, - parseOrigin, - parseURL, - getServerName, - isStream, - isIterable, - isAsyncIterable, - isDestroyed, - headerNameToString, - parseRawHeaders, - parseHeaders, - parseKeepAliveTimeout, - destroy, - bodyLength, - deepClone, - ReadableStreamFrom, - isBuffer, - validateHandler, - getSocketInfo, - isFormDataLike, - buildURL, - throwIfAborted, - addAbortListener, - parseRangeHeader, - nodeMajor, - nodeMinor, - nodeHasAutoSelectFamily: nodeMajor > 18 || (nodeMajor === 18 && nodeMinor >= 13), - safeHTTPMethods: ['GET', 'HEAD', 'OPTIONS', 'TRACE'] -} - - -/***/ }), - -/***/ 74839: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - - -const Dispatcher = __nccwpck_require__(60412) -const { - ClientDestroyedError, - ClientClosedError, - InvalidArgumentError -} = __nccwpck_require__(48045) -const { kDestroy, kClose, kDispatch, kInterceptors } = __nccwpck_require__(72785) - -const kDestroyed = Symbol('destroyed') -const kClosed = Symbol('closed') -const kOnDestroyed = Symbol('onDestroyed') -const kOnClosed = Symbol('onClosed') -const kInterceptedDispatch = Symbol('Intercepted Dispatch') - -class DispatcherBase extends Dispatcher { - constructor () { - super() - - this[kDestroyed] = false - this[kOnDestroyed] = null - this[kClosed] = false - this[kOnClosed] = [] - } + /***/ 41472: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' - get destroyed () { - return this[kDestroyed] - } + const Busboy = __nccwpck_require__(50727) + const util = __nccwpck_require__(83983) + const { + ReadableStreamFrom, + isBlobLike, + isReadableStreamLike, + readableStreamClose, + createDeferredPromise, + fullyReadBody + } = __nccwpck_require__(52538) + const { FormData } = __nccwpck_require__(72015) + const { kState } = __nccwpck_require__(15861) + const { webidl } = __nccwpck_require__(21744) + const { DOMException, structuredClone } = __nccwpck_require__(41037) + const { Blob, File: NativeFile } = __nccwpck_require__(14300) + const { kBodyUsed } = __nccwpck_require__(72785) + const assert = __nccwpck_require__(39491) + const { isErrored } = __nccwpck_require__(83983) + const { isUint8Array, isArrayBuffer } = __nccwpck_require__(29830) + const { File: UndiciFile } = __nccwpck_require__(78511) + const { parseMIMEType, serializeAMimeType } = __nccwpck_require__(685) + + let random + try { + const crypto = __nccwpck_require__(6005) + random = max => crypto.randomInt(0, max) + } catch { + random = max => Math.floor(Math.random(max)) + } - get closed () { - return this[kClosed] - } + let ReadableStream = globalThis.ReadableStream - get interceptors () { - return this[kInterceptors] - } + /** @type {globalThis['File']} */ + const File = NativeFile ?? UndiciFile + const textEncoder = new TextEncoder() + const textDecoder = new TextDecoder() - set interceptors (newInterceptors) { - if (newInterceptors) { - for (let i = newInterceptors.length - 1; i >= 0; i--) { - const interceptor = this[kInterceptors][i] - if (typeof interceptor !== 'function') { - throw new InvalidArgumentError('interceptor must be an function') + // https://fetch.spec.whatwg.org/#concept-bodyinit-extract + function extractBody(object, keepalive = false) { + if (!ReadableStream) { + ReadableStream = __nccwpck_require__(35356).ReadableStream } - } - } - - this[kInterceptors] = newInterceptors - } - close (callback) { - if (callback === undefined) { - return new Promise((resolve, reject) => { - this.close((err, data) => { - return err ? reject(err) : resolve(data) - }) - }) - } + // 1. Let stream be null. + let stream = null - if (typeof callback !== 'function') { - throw new InvalidArgumentError('invalid callback') - } + // 2. If object is a ReadableStream object, then set stream to object. + if (object instanceof ReadableStream) { + stream = object + } else if (isBlobLike(object)) { + // 3. Otherwise, if object is a Blob object, set stream to the + // result of running object’s get stream. + stream = object.stream() + } else { + // 4. Otherwise, set stream to a new ReadableStream object, and set + // up stream. + stream = new ReadableStream({ + async pull(controller) { + controller.enqueue( + typeof source === 'string' ? textEncoder.encode(source) : source + ) + queueMicrotask(() => readableStreamClose(controller)) + }, + start() {}, + type: undefined + }) + } - if (this[kDestroyed]) { - queueMicrotask(() => callback(new ClientDestroyedError(), null)) - return - } + // 5. Assert: stream is a ReadableStream object. + assert(isReadableStreamLike(stream)) - if (this[kClosed]) { - if (this[kOnClosed]) { - this[kOnClosed].push(callback) - } else { - queueMicrotask(() => callback(null, null)) - } - return - } + // 6. Let action be null. + let action = null - this[kClosed] = true - this[kOnClosed].push(callback) + // 7. Let source be null. + let source = null - const onClosed = () => { - const callbacks = this[kOnClosed] - this[kOnClosed] = null - for (let i = 0; i < callbacks.length; i++) { - callbacks[i](null, null) - } - } + // 8. Let length be null. + let length = null - // Should not error. - this[kClose]() - .then(() => this.destroy()) - .then(() => { - queueMicrotask(onClosed) - }) - } + // 9. Let type be null. + let type = null - destroy (err, callback) { - if (typeof err === 'function') { - callback = err - err = null - } + // 10. Switch on object: + if (typeof object === 'string') { + // Set source to the UTF-8 encoding of object. + // Note: setting source to a Uint8Array here breaks some mocking assumptions. + source = object - if (callback === undefined) { - return new Promise((resolve, reject) => { - this.destroy(err, (err, data) => { - return err ? /* istanbul ignore next: should never error */ reject(err) : resolve(data) - }) - }) - } + // Set type to `text/plain;charset=UTF-8`. + type = 'text/plain;charset=UTF-8' + } else if (object instanceof URLSearchParams) { + // URLSearchParams - if (typeof callback !== 'function') { - throw new InvalidArgumentError('invalid callback') - } + // spec says to run application/x-www-form-urlencoded on body.list + // this is implemented in Node.js as apart of an URLSearchParams instance toString method + // See: https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L490 + // and https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L1100 - if (this[kDestroyed]) { - if (this[kOnDestroyed]) { - this[kOnDestroyed].push(callback) - } else { - queueMicrotask(() => callback(null, null)) - } - return - } + // Set source to the result of running the application/x-www-form-urlencoded serializer with object’s list. + source = object.toString() - if (!err) { - err = new ClientDestroyedError() - } + // Set type to `application/x-www-form-urlencoded;charset=UTF-8`. + type = 'application/x-www-form-urlencoded;charset=UTF-8' + } else if (isArrayBuffer(object)) { + // BufferSource/ArrayBuffer - this[kDestroyed] = true - this[kOnDestroyed] = this[kOnDestroyed] || [] - this[kOnDestroyed].push(callback) + // Set source to a copy of the bytes held by object. + source = new Uint8Array(object.slice()) + } else if (ArrayBuffer.isView(object)) { + // BufferSource/ArrayBufferView - const onDestroyed = () => { - const callbacks = this[kOnDestroyed] - this[kOnDestroyed] = null - for (let i = 0; i < callbacks.length; i++) { - callbacks[i](null, null) - } - } + // Set source to a copy of the bytes held by object. + source = new Uint8Array( + object.buffer.slice( + object.byteOffset, + object.byteOffset + object.byteLength + ) + ) + } else if (util.isFormDataLike(object)) { + const boundary = `----formdata-undici-0${`${random(1e11)}`.padStart(11, '0')}` + const prefix = `--${boundary}\r\nContent-Disposition: form-data` + + /*! formdata-polyfill. MIT License. Jimmy Wärting */ + const escape = str => + str.replace(/\n/g, '%0A').replace(/\r/g, '%0D').replace(/"/g, '%22') + const normalizeLinefeeds = value => value.replace(/\r?\n|\r/g, '\r\n') + + // Set action to this step: run the multipart/form-data + // encoding algorithm, with object’s entry list and UTF-8. + // - This ensures that the body is immutable and can't be changed afterwords + // - That the content-length is calculated in advance. + // - And that all parts are pre-encoded and ready to be sent. + + const blobParts = [] + const rn = new Uint8Array([13, 10]) // '\r\n' + length = 0 + let hasUnknownSizeValue = false + + for (const [name, value] of object) { + if (typeof value === 'string') { + const chunk = textEncoder.encode( + prefix + + `; name="${escape(normalizeLinefeeds(name))}"` + + `\r\n\r\n${normalizeLinefeeds(value)}\r\n` + ) + blobParts.push(chunk) + length += chunk.byteLength + } else { + const chunk = textEncoder.encode( + `${prefix}; name="${escape(normalizeLinefeeds(name))}"` + + (value.name ? `; filename="${escape(value.name)}"` : '') + + '\r\n' + + `Content-Type: ${ + value.type || 'application/octet-stream' + }\r\n\r\n` + ) + blobParts.push(chunk, value, rn) + if (typeof value.size === 'number') { + length += chunk.byteLength + value.size + rn.byteLength + } else { + hasUnknownSizeValue = true + } + } + } - // Should not error. - this[kDestroy](err).then(() => { - queueMicrotask(onDestroyed) - }) - } + const chunk = textEncoder.encode(`--${boundary}--`) + blobParts.push(chunk) + length += chunk.byteLength + if (hasUnknownSizeValue) { + length = null + } - [kInterceptedDispatch] (opts, handler) { - if (!this[kInterceptors] || this[kInterceptors].length === 0) { - this[kInterceptedDispatch] = this[kDispatch] - return this[kDispatch](opts, handler) - } + // Set source to object. + source = object - let dispatch = this[kDispatch].bind(this) - for (let i = this[kInterceptors].length - 1; i >= 0; i--) { - dispatch = this[kInterceptors][i](dispatch) - } - this[kInterceptedDispatch] = dispatch - return dispatch(opts, handler) - } + action = async function* () { + for (const part of blobParts) { + if (part.stream) { + yield* part.stream() + } else { + yield part + } + } + } - dispatch (opts, handler) { - if (!handler || typeof handler !== 'object') { - throw new InvalidArgumentError('handler must be an object') - } + // Set type to `multipart/form-data; boundary=`, + // followed by the multipart/form-data boundary string generated + // by the multipart/form-data encoding algorithm. + type = 'multipart/form-data; boundary=' + boundary + } else if (isBlobLike(object)) { + // Blob - try { - if (!opts || typeof opts !== 'object') { - throw new InvalidArgumentError('opts must be an object.') - } + // Set source to object. + source = object - if (this[kDestroyed] || this[kOnDestroyed]) { - throw new ClientDestroyedError() - } + // Set length to object’s size. + length = object.size - if (this[kClosed]) { - throw new ClientClosedError() - } + // If object’s type attribute is not the empty byte sequence, set + // type to its value. + if (object.type) { + type = object.type + } + } else if (typeof object[Symbol.asyncIterator] === 'function') { + // If keepalive is true, then throw a TypeError. + if (keepalive) { + throw new TypeError('keepalive') + } - return this[kInterceptedDispatch](opts, handler) - } catch (err) { - if (typeof handler.onError !== 'function') { - throw new InvalidArgumentError('invalid onError method') - } + // If object is disturbed or locked, then throw a TypeError. + if (util.isDisturbed(object) || object.locked) { + throw new TypeError( + 'Response body object should not be disturbed or locked' + ) + } - handler.onError(err) + stream = + object instanceof ReadableStream + ? object + : ReadableStreamFrom(object) + } - return false - } - } -} + // 11. If source is a byte sequence, then set action to a + // step that returns source and length to source’s length. + if (typeof source === 'string' || util.isBuffer(source)) { + length = Buffer.byteLength(source) + } -module.exports = DispatcherBase + // 12. If action is non-null, then run these steps in in parallel: + if (action != null) { + // Run action. + let iterator + stream = new ReadableStream({ + async start() { + iterator = action(object)[Symbol.asyncIterator]() + }, + async pull(controller) { + const { value, done } = await iterator.next() + if (done) { + // When running action is done, close stream. + queueMicrotask(() => { + controller.close() + }) + } else { + // Whenever one or more bytes are available and stream is not errored, + // enqueue a Uint8Array wrapping an ArrayBuffer containing the available + // bytes into stream. + if (!isErrored(stream)) { + controller.enqueue(new Uint8Array(value)) + } + } + return controller.desiredSize > 0 + }, + async cancel(reason) { + await iterator.return() + }, + type: undefined + }) + } + // 13. Let body be a body whose stream is stream, source is source, + // and length is length. + const body = { stream, source, length } -/***/ }), + // 14. Return (body, type). + return [body, type] + } -/***/ 60412: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + // https://fetch.spec.whatwg.org/#bodyinit-safely-extract + function safelyExtractBody(object, keepalive = false) { + if (!ReadableStream) { + // istanbul ignore next + ReadableStream = __nccwpck_require__(35356).ReadableStream + } -"use strict"; + // To safely extract a body and a `Content-Type` value from + // a byte sequence or BodyInit object object, run these steps: + // 1. If object is a ReadableStream object, then: + if (object instanceof ReadableStream) { + // Assert: object is neither disturbed nor locked. + // istanbul ignore next + assert( + !util.isDisturbed(object), + 'The body has already been consumed.' + ) + // istanbul ignore next + assert(!object.locked, 'The stream is locked.') + } -const EventEmitter = __nccwpck_require__(82361) + // 2. Return the results of extracting object. + return extractBody(object, keepalive) + } -class Dispatcher extends EventEmitter { - dispatch () { - throw new Error('not implemented') - } + function cloneBody(body) { + // To clone a body body, run these steps: - close () { - throw new Error('not implemented') - } + // https://fetch.spec.whatwg.org/#concept-body-clone - destroy () { - throw new Error('not implemented') - } -} - -module.exports = Dispatcher - - -/***/ }), - -/***/ 41472: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - - -const Busboy = __nccwpck_require__(50727) -const util = __nccwpck_require__(83983) -const { - ReadableStreamFrom, - isBlobLike, - isReadableStreamLike, - readableStreamClose, - createDeferredPromise, - fullyReadBody -} = __nccwpck_require__(52538) -const { FormData } = __nccwpck_require__(72015) -const { kState } = __nccwpck_require__(15861) -const { webidl } = __nccwpck_require__(21744) -const { DOMException, structuredClone } = __nccwpck_require__(41037) -const { Blob, File: NativeFile } = __nccwpck_require__(14300) -const { kBodyUsed } = __nccwpck_require__(72785) -const assert = __nccwpck_require__(39491) -const { isErrored } = __nccwpck_require__(83983) -const { isUint8Array, isArrayBuffer } = __nccwpck_require__(29830) -const { File: UndiciFile } = __nccwpck_require__(78511) -const { parseMIMEType, serializeAMimeType } = __nccwpck_require__(685) - -let random -try { - const crypto = __nccwpck_require__(6005) - random = (max) => crypto.randomInt(0, max) -} catch { - random = (max) => Math.floor(Math.random(max)) -} - -let ReadableStream = globalThis.ReadableStream - -/** @type {globalThis['File']} */ -const File = NativeFile ?? UndiciFile -const textEncoder = new TextEncoder() -const textDecoder = new TextDecoder() - -// https://fetch.spec.whatwg.org/#concept-bodyinit-extract -function extractBody (object, keepalive = false) { - if (!ReadableStream) { - ReadableStream = (__nccwpck_require__(35356).ReadableStream) - } + // 1. Let « out1, out2 » be the result of teeing body’s stream. + const [out1, out2] = body.stream.tee() + const out2Clone = structuredClone(out2, { transfer: [out2] }) + // This, for whatever reasons, unrefs out2Clone which allows + // the process to exit by itself. + const [, finalClone] = out2Clone.tee() - // 1. Let stream be null. - let stream = null - - // 2. If object is a ReadableStream object, then set stream to object. - if (object instanceof ReadableStream) { - stream = object - } else if (isBlobLike(object)) { - // 3. Otherwise, if object is a Blob object, set stream to the - // result of running object’s get stream. - stream = object.stream() - } else { - // 4. Otherwise, set stream to a new ReadableStream object, and set - // up stream. - stream = new ReadableStream({ - async pull (controller) { - controller.enqueue( - typeof source === 'string' ? textEncoder.encode(source) : source - ) - queueMicrotask(() => readableStreamClose(controller)) - }, - start () {}, - type: undefined - }) - } + // 2. Set body’s stream to out1. + body.stream = out1 - // 5. Assert: stream is a ReadableStream object. - assert(isReadableStreamLike(stream)) - - // 6. Let action be null. - let action = null - - // 7. Let source be null. - let source = null - - // 8. Let length be null. - let length = null - - // 9. Let type be null. - let type = null - - // 10. Switch on object: - if (typeof object === 'string') { - // Set source to the UTF-8 encoding of object. - // Note: setting source to a Uint8Array here breaks some mocking assumptions. - source = object - - // Set type to `text/plain;charset=UTF-8`. - type = 'text/plain;charset=UTF-8' - } else if (object instanceof URLSearchParams) { - // URLSearchParams - - // spec says to run application/x-www-form-urlencoded on body.list - // this is implemented in Node.js as apart of an URLSearchParams instance toString method - // See: https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L490 - // and https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L1100 - - // Set source to the result of running the application/x-www-form-urlencoded serializer with object’s list. - source = object.toString() - - // Set type to `application/x-www-form-urlencoded;charset=UTF-8`. - type = 'application/x-www-form-urlencoded;charset=UTF-8' - } else if (isArrayBuffer(object)) { - // BufferSource/ArrayBuffer - - // Set source to a copy of the bytes held by object. - source = new Uint8Array(object.slice()) - } else if (ArrayBuffer.isView(object)) { - // BufferSource/ArrayBufferView - - // Set source to a copy of the bytes held by object. - source = new Uint8Array(object.buffer.slice(object.byteOffset, object.byteOffset + object.byteLength)) - } else if (util.isFormDataLike(object)) { - const boundary = `----formdata-undici-0${`${random(1e11)}`.padStart(11, '0')}` - const prefix = `--${boundary}\r\nContent-Disposition: form-data` - - /*! formdata-polyfill. MIT License. Jimmy Wärting */ - const escape = (str) => - str.replace(/\n/g, '%0A').replace(/\r/g, '%0D').replace(/"/g, '%22') - const normalizeLinefeeds = (value) => value.replace(/\r?\n|\r/g, '\r\n') - - // Set action to this step: run the multipart/form-data - // encoding algorithm, with object’s entry list and UTF-8. - // - This ensures that the body is immutable and can't be changed afterwords - // - That the content-length is calculated in advance. - // - And that all parts are pre-encoded and ready to be sent. - - const blobParts = [] - const rn = new Uint8Array([13, 10]) // '\r\n' - length = 0 - let hasUnknownSizeValue = false - - for (const [name, value] of object) { - if (typeof value === 'string') { - const chunk = textEncoder.encode(prefix + - `; name="${escape(normalizeLinefeeds(name))}"` + - `\r\n\r\n${normalizeLinefeeds(value)}\r\n`) - blobParts.push(chunk) - length += chunk.byteLength - } else { - const chunk = textEncoder.encode(`${prefix}; name="${escape(normalizeLinefeeds(name))}"` + - (value.name ? `; filename="${escape(value.name)}"` : '') + '\r\n' + - `Content-Type: ${ - value.type || 'application/octet-stream' - }\r\n\r\n`) - blobParts.push(chunk, value, rn) - if (typeof value.size === 'number') { - length += chunk.byteLength + value.size + rn.byteLength - } else { - hasUnknownSizeValue = true + // 3. Return a body whose stream is out2 and other members are copied from body. + return { + stream: finalClone, + length: body.length, + source: body.source } } - } - const chunk = textEncoder.encode(`--${boundary}--`) - blobParts.push(chunk) - length += chunk.byteLength - if (hasUnknownSizeValue) { - length = null - } + async function* consumeBody(body) { + if (body) { + if (isUint8Array(body)) { + yield body + } else { + const stream = body.stream - // Set source to object. - source = object + if (util.isDisturbed(stream)) { + throw new TypeError('The body has already been consumed.') + } - action = async function * () { - for (const part of blobParts) { - if (part.stream) { - yield * part.stream() - } else { - yield part + if (stream.locked) { + throw new TypeError('The stream is locked.') + } + + // Compat. + stream[kBodyUsed] = true + + yield* stream + } } } - } - // Set type to `multipart/form-data; boundary=`, - // followed by the multipart/form-data boundary string generated - // by the multipart/form-data encoding algorithm. - type = 'multipart/form-data; boundary=' + boundary - } else if (isBlobLike(object)) { - // Blob + function throwIfAborted(state) { + if (state.aborted) { + throw new DOMException('The operation was aborted.', 'AbortError') + } + } - // Set source to object. - source = object + function bodyMixinMethods(instance) { + const methods = { + blob() { + // The blob() method steps are to return the result of + // running consume body with this and the following step + // given a byte sequence bytes: return a Blob whose + // contents are bytes and whose type attribute is this’s + // MIME type. + return specConsumeBody( + this, + bytes => { + let mimeType = bodyMimeType(this) - // Set length to object’s size. - length = object.size + if (mimeType === 'failure') { + mimeType = '' + } else if (mimeType) { + mimeType = serializeAMimeType(mimeType) + } - // If object’s type attribute is not the empty byte sequence, set - // type to its value. - if (object.type) { - type = object.type - } - } else if (typeof object[Symbol.asyncIterator] === 'function') { - // If keepalive is true, then throw a TypeError. - if (keepalive) { - throw new TypeError('keepalive') - } + // Return a Blob whose contents are bytes and type attribute + // is mimeType. + return new Blob([bytes], { type: mimeType }) + }, + instance + ) + }, - // If object is disturbed or locked, then throw a TypeError. - if (util.isDisturbed(object) || object.locked) { - throw new TypeError( - 'Response body object should not be disturbed or locked' - ) - } + arrayBuffer() { + // The arrayBuffer() method steps are to return the result + // of running consume body with this and the following step + // given a byte sequence bytes: return a new ArrayBuffer + // whose contents are bytes. + return specConsumeBody( + this, + bytes => { + return new Uint8Array(bytes).buffer + }, + instance + ) + }, - stream = - object instanceof ReadableStream ? object : ReadableStreamFrom(object) - } + text() { + // The text() method steps are to return the result of running + // consume body with this and UTF-8 decode. + return specConsumeBody(this, utf8DecodeBytes, instance) + }, - // 11. If source is a byte sequence, then set action to a - // step that returns source and length to source’s length. - if (typeof source === 'string' || util.isBuffer(source)) { - length = Buffer.byteLength(source) - } + json() { + // The json() method steps are to return the result of running + // consume body with this and parse JSON from bytes. + return specConsumeBody(this, parseJSONFromBytes, instance) + }, - // 12. If action is non-null, then run these steps in in parallel: - if (action != null) { - // Run action. - let iterator - stream = new ReadableStream({ - async start () { - iterator = action(object)[Symbol.asyncIterator]() - }, - async pull (controller) { - const { value, done } = await iterator.next() - if (done) { - // When running action is done, close stream. - queueMicrotask(() => { - controller.close() - }) - } else { - // Whenever one or more bytes are available and stream is not errored, - // enqueue a Uint8Array wrapping an ArrayBuffer containing the available - // bytes into stream. - if (!isErrored(stream)) { - controller.enqueue(new Uint8Array(value)) - } - } - return controller.desiredSize > 0 - }, - async cancel (reason) { - await iterator.return() - }, - type: undefined - }) - } + async formData() { + webidl.brandCheck(this, instance) - // 13. Let body be a body whose stream is stream, source is source, - // and length is length. - const body = { stream, source, length } + throwIfAborted(this[kState]) - // 14. Return (body, type). - return [body, type] -} + const contentType = this.headers.get('Content-Type') -// https://fetch.spec.whatwg.org/#bodyinit-safely-extract -function safelyExtractBody (object, keepalive = false) { - if (!ReadableStream) { - // istanbul ignore next - ReadableStream = (__nccwpck_require__(35356).ReadableStream) - } + // If mimeType’s essence is "multipart/form-data", then: + if (/multipart\/form-data/.test(contentType)) { + const headers = {} + for (const [key, value] of this.headers) + headers[key.toLowerCase()] = value - // To safely extract a body and a `Content-Type` value from - // a byte sequence or BodyInit object object, run these steps: + const responseFormData = new FormData() - // 1. If object is a ReadableStream object, then: - if (object instanceof ReadableStream) { - // Assert: object is neither disturbed nor locked. - // istanbul ignore next - assert(!util.isDisturbed(object), 'The body has already been consumed.') - // istanbul ignore next - assert(!object.locked, 'The stream is locked.') - } + let busboy - // 2. Return the results of extracting object. - return extractBody(object, keepalive) -} + try { + busboy = new Busboy({ + headers, + preservePath: true + }) + } catch (err) { + throw new DOMException(`${err}`, 'AbortError') + } -function cloneBody (body) { - // To clone a body body, run these steps: + busboy.on('field', (name, value) => { + responseFormData.append(name, value) + }) + busboy.on('file', (name, value, filename, encoding, mimeType) => { + const chunks = [] + + if ( + encoding === 'base64' || + encoding.toLowerCase() === 'base64' + ) { + let base64chunk = '' + + value.on('data', chunk => { + base64chunk += chunk.toString().replace(/[\r\n]/gm, '') + + const end = base64chunk.length - (base64chunk.length % 4) + chunks.push( + Buffer.from(base64chunk.slice(0, end), 'base64') + ) + + base64chunk = base64chunk.slice(end) + }) + value.on('end', () => { + chunks.push(Buffer.from(base64chunk, 'base64')) + responseFormData.append( + name, + new File(chunks, filename, { type: mimeType }) + ) + }) + } else { + value.on('data', chunk => { + chunks.push(chunk) + }) + value.on('end', () => { + responseFormData.append( + name, + new File(chunks, filename, { type: mimeType }) + ) + }) + } + }) - // https://fetch.spec.whatwg.org/#concept-body-clone + const busboyResolve = new Promise((resolve, reject) => { + busboy.on('finish', resolve) + busboy.on('error', err => reject(new TypeError(err))) + }) - // 1. Let « out1, out2 » be the result of teeing body’s stream. - const [out1, out2] = body.stream.tee() - const out2Clone = structuredClone(out2, { transfer: [out2] }) - // This, for whatever reasons, unrefs out2Clone which allows - // the process to exit by itself. - const [, finalClone] = out2Clone.tee() + if (this.body !== null) + for await (const chunk of consumeBody(this[kState].body)) + busboy.write(chunk) + busboy.end() + await busboyResolve + + return responseFormData + } else if (/application\/x-www-form-urlencoded/.test(contentType)) { + // Otherwise, if mimeType’s essence is "application/x-www-form-urlencoded", then: + + // 1. Let entries be the result of parsing bytes. + let entries + try { + let text = '' + // application/x-www-form-urlencoded parser will keep the BOM. + // https://url.spec.whatwg.org/#concept-urlencoded-parser + // Note that streaming decoder is stateful and cannot be reused + const streamingDecoder = new TextDecoder('utf-8', { + ignoreBOM: true + }) + + for await (const chunk of consumeBody(this[kState].body)) { + if (!isUint8Array(chunk)) { + throw new TypeError('Expected Uint8Array chunk') + } + text += streamingDecoder.decode(chunk, { stream: true }) + } + text += streamingDecoder.decode() + entries = new URLSearchParams(text) + } catch (err) { + // istanbul ignore next: Unclear when new URLSearchParams can fail on a string. + // 2. If entries is failure, then throw a TypeError. + throw Object.assign(new TypeError(), { cause: err }) + } - // 2. Set body’s stream to out1. - body.stream = out1 + // 3. Return a new FormData object whose entries are entries. + const formData = new FormData() + for (const [name, value] of entries) { + formData.append(name, value) + } + return formData + } else { + // Wait a tick before checking if the request has been aborted. + // Otherwise, a TypeError can be thrown when an AbortError should. + await Promise.resolve() - // 3. Return a body whose stream is out2 and other members are copied from body. - return { - stream: finalClone, - length: body.length, - source: body.source - } -} + throwIfAborted(this[kState]) -async function * consumeBody (body) { - if (body) { - if (isUint8Array(body)) { - yield body - } else { - const stream = body.stream + // Otherwise, throw a TypeError. + throw webidl.errors.exception({ + header: `${instance.name}.formData`, + message: 'Could not parse content as FormData.' + }) + } + } + } - if (util.isDisturbed(stream)) { - throw new TypeError('The body has already been consumed.') + return methods } - if (stream.locked) { - throw new TypeError('The stream is locked.') + function mixinBody(prototype) { + Object.assign(prototype.prototype, bodyMixinMethods(prototype)) } - // Compat. - stream[kBodyUsed] = true + /** + * @see https://fetch.spec.whatwg.org/#concept-body-consume-body + * @param {Response|Request} object + * @param {(value: unknown) => unknown} convertBytesToJSValue + * @param {Response|Request} instance + */ + async function specConsumeBody(object, convertBytesToJSValue, instance) { + webidl.brandCheck(object, instance) - yield * stream - } - } -} + throwIfAborted(object[kState]) -function throwIfAborted (state) { - if (state.aborted) { - throw new DOMException('The operation was aborted.', 'AbortError') - } -} + // 1. If object is unusable, then return a promise rejected + // with a TypeError. + if (bodyUnusable(object[kState].body)) { + throw new TypeError('Body is unusable') + } -function bodyMixinMethods (instance) { - const methods = { - blob () { - // The blob() method steps are to return the result of - // running consume body with this and the following step - // given a byte sequence bytes: return a Blob whose - // contents are bytes and whose type attribute is this’s - // MIME type. - return specConsumeBody(this, (bytes) => { - let mimeType = bodyMimeType(this) + // 2. Let promise be a new promise. + const promise = createDeferredPromise() - if (mimeType === 'failure') { - mimeType = '' - } else if (mimeType) { - mimeType = serializeAMimeType(mimeType) + // 3. Let errorSteps given error be to reject promise with error. + const errorSteps = error => promise.reject(error) + + // 4. Let successSteps given a byte sequence data be to resolve + // promise with the result of running convertBytesToJSValue + // with data. If that threw an exception, then run errorSteps + // with that exception. + const successSteps = data => { + try { + promise.resolve(convertBytesToJSValue(data)) + } catch (e) { + errorSteps(e) + } } - // Return a Blob whose contents are bytes and type attribute - // is mimeType. - return new Blob([bytes], { type: mimeType }) - }, instance) - }, + // 5. If object’s body is null, then run successSteps with an + // empty byte sequence. + if (object[kState].body == null) { + successSteps(new Uint8Array()) + return promise.promise + } - arrayBuffer () { - // The arrayBuffer() method steps are to return the result - // of running consume body with this and the following step - // given a byte sequence bytes: return a new ArrayBuffer - // whose contents are bytes. - return specConsumeBody(this, (bytes) => { - return new Uint8Array(bytes).buffer - }, instance) - }, + // 6. Otherwise, fully read object’s body given successSteps, + // errorSteps, and object’s relevant global object. + await fullyReadBody(object[kState].body, successSteps, errorSteps) - text () { - // The text() method steps are to return the result of running - // consume body with this and UTF-8 decode. - return specConsumeBody(this, utf8DecodeBytes, instance) - }, + // 7. Return promise. + return promise.promise + } - json () { - // The json() method steps are to return the result of running - // consume body with this and parse JSON from bytes. - return specConsumeBody(this, parseJSONFromBytes, instance) - }, + // https://fetch.spec.whatwg.org/#body-unusable + function bodyUnusable(body) { + // An object including the Body interface mixin is + // said to be unusable if its body is non-null and + // its body’s stream is disturbed or locked. + return ( + body != null && (body.stream.locked || util.isDisturbed(body.stream)) + ) + } - async formData () { - webidl.brandCheck(this, instance) + /** + * @see https://encoding.spec.whatwg.org/#utf-8-decode + * @param {Buffer} buffer + */ + function utf8DecodeBytes(buffer) { + if (buffer.length === 0) { + return '' + } - throwIfAborted(this[kState]) + // 1. Let buffer be the result of peeking three bytes from + // ioQueue, converted to a byte sequence. - const contentType = this.headers.get('Content-Type') + // 2. If buffer is 0xEF 0xBB 0xBF, then read three + // bytes from ioQueue. (Do nothing with those bytes.) + if (buffer[0] === 0xef && buffer[1] === 0xbb && buffer[2] === 0xbf) { + buffer = buffer.subarray(3) + } - // If mimeType’s essence is "multipart/form-data", then: - if (/multipart\/form-data/.test(contentType)) { - const headers = {} - for (const [key, value] of this.headers) headers[key.toLowerCase()] = value + // 3. Process a queue with an instance of UTF-8’s + // decoder, ioQueue, output, and "replacement". + const output = textDecoder.decode(buffer) - const responseFormData = new FormData() + // 4. Return output. + return output + } - let busboy + /** + * @see https://infra.spec.whatwg.org/#parse-json-bytes-to-a-javascript-value + * @param {Uint8Array} bytes + */ + function parseJSONFromBytes(bytes) { + return JSON.parse(utf8DecodeBytes(bytes)) + } - try { - busboy = new Busboy({ - headers, - preservePath: true - }) - } catch (err) { - throw new DOMException(`${err}`, 'AbortError') - } + /** + * @see https://fetch.spec.whatwg.org/#concept-body-mime-type + * @param {import('./response').Response|import('./request').Request} object + */ + function bodyMimeType(object) { + const { headersList } = object[kState] + const contentType = headersList.get('content-type') - busboy.on('field', (name, value) => { - responseFormData.append(name, value) - }) - busboy.on('file', (name, value, filename, encoding, mimeType) => { - const chunks = [] + if (contentType === null) { + return 'failure' + } - if (encoding === 'base64' || encoding.toLowerCase() === 'base64') { - let base64chunk = '' + return parseMIMEType(contentType) + } - value.on('data', (chunk) => { - base64chunk += chunk.toString().replace(/[\r\n]/gm, '') + module.exports = { + extractBody, + safelyExtractBody, + cloneBody, + mixinBody + } - const end = base64chunk.length - base64chunk.length % 4 - chunks.push(Buffer.from(base64chunk.slice(0, end), 'base64')) + /***/ + }, - base64chunk = base64chunk.slice(end) - }) - value.on('end', () => { - chunks.push(Buffer.from(base64chunk, 'base64')) - responseFormData.append(name, new File(chunks, filename, { type: mimeType })) - }) - } else { - value.on('data', (chunk) => { - chunks.push(chunk) - }) - value.on('end', () => { - responseFormData.append(name, new File(chunks, filename, { type: mimeType })) - }) - } - }) + /***/ 41037: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + const { MessageChannel, receiveMessageOnPort } = + __nccwpck_require__(71267) + + const corsSafeListedMethods = ['GET', 'HEAD', 'POST'] + const corsSafeListedMethodsSet = new Set(corsSafeListedMethods) + + const nullBodyStatus = [101, 204, 205, 304] + + const redirectStatus = [301, 302, 303, 307, 308] + const redirectStatusSet = new Set(redirectStatus) + + // https://fetch.spec.whatwg.org/#block-bad-port + const badPorts = [ + '1', + '7', + '9', + '11', + '13', + '15', + '17', + '19', + '20', + '21', + '22', + '23', + '25', + '37', + '42', + '43', + '53', + '69', + '77', + '79', + '87', + '95', + '101', + '102', + '103', + '104', + '109', + '110', + '111', + '113', + '115', + '117', + '119', + '123', + '135', + '137', + '139', + '143', + '161', + '179', + '389', + '427', + '465', + '512', + '513', + '514', + '515', + '526', + '530', + '531', + '532', + '540', + '548', + '554', + '556', + '563', + '587', + '601', + '636', + '989', + '990', + '993', + '995', + '1719', + '1720', + '1723', + '2049', + '3659', + '4045', + '5060', + '5061', + '6000', + '6566', + '6665', + '6666', + '6667', + '6668', + '6669', + '6697', + '10080' + ] - const busboyResolve = new Promise((resolve, reject) => { - busboy.on('finish', resolve) - busboy.on('error', (err) => reject(new TypeError(err))) - }) + const badPortsSet = new Set(badPorts) + + // https://w3c.github.io/webappsec-referrer-policy/#referrer-policies + const referrerPolicy = [ + '', + 'no-referrer', + 'no-referrer-when-downgrade', + 'same-origin', + 'origin', + 'strict-origin', + 'origin-when-cross-origin', + 'strict-origin-when-cross-origin', + 'unsafe-url' + ] + const referrerPolicySet = new Set(referrerPolicy) - if (this.body !== null) for await (const chunk of consumeBody(this[kState].body)) busboy.write(chunk) - busboy.end() - await busboyResolve + const requestRedirect = ['follow', 'manual', 'error'] - return responseFormData - } else if (/application\/x-www-form-urlencoded/.test(contentType)) { - // Otherwise, if mimeType’s essence is "application/x-www-form-urlencoded", then: + const safeMethods = ['GET', 'HEAD', 'OPTIONS', 'TRACE'] + const safeMethodsSet = new Set(safeMethods) - // 1. Let entries be the result of parsing bytes. - let entries - try { - let text = '' - // application/x-www-form-urlencoded parser will keep the BOM. - // https://url.spec.whatwg.org/#concept-urlencoded-parser - // Note that streaming decoder is stateful and cannot be reused - const streamingDecoder = new TextDecoder('utf-8', { ignoreBOM: true }) + const requestMode = ['navigate', 'same-origin', 'no-cors', 'cors'] - for await (const chunk of consumeBody(this[kState].body)) { - if (!isUint8Array(chunk)) { - throw new TypeError('Expected Uint8Array chunk') - } - text += streamingDecoder.decode(chunk, { stream: true }) - } - text += streamingDecoder.decode() - entries = new URLSearchParams(text) - } catch (err) { - // istanbul ignore next: Unclear when new URLSearchParams can fail on a string. - // 2. If entries is failure, then throw a TypeError. - throw Object.assign(new TypeError(), { cause: err }) - } + const requestCredentials = ['omit', 'same-origin', 'include'] - // 3. Return a new FormData object whose entries are entries. - const formData = new FormData() - for (const [name, value] of entries) { - formData.append(name, value) - } - return formData - } else { - // Wait a tick before checking if the request has been aborted. - // Otherwise, a TypeError can be thrown when an AbortError should. - await Promise.resolve() + const requestCache = [ + 'default', + 'no-store', + 'reload', + 'no-cache', + 'force-cache', + 'only-if-cached' + ] - throwIfAborted(this[kState]) + // https://fetch.spec.whatwg.org/#request-body-header-name + const requestBodyHeader = [ + 'content-encoding', + 'content-language', + 'content-location', + 'content-type', + // See https://github.com/nodejs/undici/issues/2021 + // 'Content-Length' is a forbidden header name, which is typically + // removed in the Headers implementation. However, undici doesn't + // filter out headers, so we add it here. + 'content-length' + ] - // Otherwise, throw a TypeError. - throw webidl.errors.exception({ - header: `${instance.name}.formData`, - message: 'Could not parse content as FormData.' - }) - } - } - } + // https://fetch.spec.whatwg.org/#enumdef-requestduplex + const requestDuplex = ['half'] + + // http://fetch.spec.whatwg.org/#forbidden-method + const forbiddenMethods = ['CONNECT', 'TRACE', 'TRACK'] + const forbiddenMethodsSet = new Set(forbiddenMethods) + + const subresource = [ + 'audio', + 'audioworklet', + 'font', + 'image', + 'manifest', + 'paintworklet', + 'script', + 'style', + 'track', + 'video', + 'xslt', + '' + ] + const subresourceSet = new Set(subresource) + + /** @type {globalThis['DOMException']} */ + const DOMException = + globalThis.DOMException ?? + (() => { + // DOMException was only made a global in Node v17.0.0, + // but fetch supports >= v16.8. + try { + atob('~') + } catch (err) { + return Object.getPrototypeOf(err).constructor + } + })() + + let channel + + /** @type {globalThis['structuredClone']} */ + const structuredClone = + globalThis.structuredClone ?? + // https://github.com/nodejs/node/blob/b27ae24dcc4251bad726d9d84baf678d1f707fed/lib/internal/structured_clone.js + // structuredClone was added in v17.0.0, but fetch supports v16.8 + function structuredClone(value, options = undefined) { + if (arguments.length === 0) { + throw new TypeError('missing argument') + } - return methods -} + if (!channel) { + channel = new MessageChannel() + } + channel.port1.unref() + channel.port2.unref() + channel.port1.postMessage(value, options?.transfer) + return receiveMessageOnPort(channel.port2).message + } + + module.exports = { + DOMException, + structuredClone, + subresource, + forbiddenMethods, + requestBodyHeader, + referrerPolicy, + requestRedirect, + requestMode, + requestCredentials, + requestCache, + redirectStatus, + corsSafeListedMethods, + nullBodyStatus, + safeMethods, + badPorts, + requestDuplex, + subresourceSet, + badPortsSet, + redirectStatusSet, + corsSafeListedMethodsSet, + safeMethodsSet, + forbiddenMethodsSet, + referrerPolicySet + } + + /***/ + }, -function mixinBody (prototype) { - Object.assign(prototype.prototype, bodyMixinMethods(prototype)) -} + /***/ 685: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + const assert = __nccwpck_require__(39491) + const { atob } = __nccwpck_require__(14300) + const { isomorphicDecode } = __nccwpck_require__(52538) -/** - * @see https://fetch.spec.whatwg.org/#concept-body-consume-body - * @param {Response|Request} object - * @param {(value: unknown) => unknown} convertBytesToJSValue - * @param {Response|Request} instance - */ -async function specConsumeBody (object, convertBytesToJSValue, instance) { - webidl.brandCheck(object, instance) + const encoder = new TextEncoder() - throwIfAborted(object[kState]) + /** + * @see https://mimesniff.spec.whatwg.org/#http-token-code-point + */ + const HTTP_TOKEN_CODEPOINTS = /^[!#$%&'*+-.^_|~A-Za-z0-9]+$/ + const HTTP_WHITESPACE_REGEX = /(\u000A|\u000D|\u0009|\u0020)/ // eslint-disable-line + /** + * @see https://mimesniff.spec.whatwg.org/#http-quoted-string-token-code-point + */ + const HTTP_QUOTED_STRING_TOKENS = /[\u0009|\u0020-\u007E|\u0080-\u00FF]/ // eslint-disable-line + + // https://fetch.spec.whatwg.org/#data-url-processor + /** @param {URL} dataURL */ + function dataURLProcessor(dataURL) { + // 1. Assert: dataURL’s scheme is "data". + assert(dataURL.protocol === 'data:') + + // 2. Let input be the result of running the URL + // serializer on dataURL with exclude fragment + // set to true. + let input = URLSerializer(dataURL, true) + + // 3. Remove the leading "data:" string from input. + input = input.slice(5) + + // 4. Let position point at the start of input. + const position = { position: 0 } + + // 5. Let mimeType be the result of collecting a + // sequence of code points that are not equal + // to U+002C (,), given position. + let mimeType = collectASequenceOfCodePointsFast(',', input, position) + + // 6. Strip leading and trailing ASCII whitespace + // from mimeType. + // Undici implementation note: we need to store the + // length because if the mimetype has spaces removed, + // the wrong amount will be sliced from the input in + // step #9 + const mimeTypeLength = mimeType.length + mimeType = removeASCIIWhitespace(mimeType, true, true) + + // 7. If position is past the end of input, then + // return failure + if (position.position >= input.length) { + return 'failure' + } + + // 8. Advance position by 1. + position.position++ + + // 9. Let encodedBody be the remainder of input. + const encodedBody = input.slice(mimeTypeLength + 1) + + // 10. Let body be the percent-decoding of encodedBody. + let body = stringPercentDecode(encodedBody) + + // 11. If mimeType ends with U+003B (;), followed by + // zero or more U+0020 SPACE, followed by an ASCII + // case-insensitive match for "base64", then: + if (/;(\u0020){0,}base64$/i.test(mimeType)) { + // 1. Let stringBody be the isomorphic decode of body. + const stringBody = isomorphicDecode(body) + + // 2. Set body to the forgiving-base64 decode of + // stringBody. + body = forgivingBase64(stringBody) + + // 3. If body is failure, then return failure. + if (body === 'failure') { + return 'failure' + } - // 1. If object is unusable, then return a promise rejected - // with a TypeError. - if (bodyUnusable(object[kState].body)) { - throw new TypeError('Body is unusable') - } + // 4. Remove the last 6 code points from mimeType. + mimeType = mimeType.slice(0, -6) - // 2. Let promise be a new promise. - const promise = createDeferredPromise() - - // 3. Let errorSteps given error be to reject promise with error. - const errorSteps = (error) => promise.reject(error) - - // 4. Let successSteps given a byte sequence data be to resolve - // promise with the result of running convertBytesToJSValue - // with data. If that threw an exception, then run errorSteps - // with that exception. - const successSteps = (data) => { - try { - promise.resolve(convertBytesToJSValue(data)) - } catch (e) { - errorSteps(e) - } - } + // 5. Remove trailing U+0020 SPACE code points from mimeType, + // if any. + mimeType = mimeType.replace(/(\u0020)+$/, '') - // 5. If object’s body is null, then run successSteps with an - // empty byte sequence. - if (object[kState].body == null) { - successSteps(new Uint8Array()) - return promise.promise - } + // 6. Remove the last U+003B (;) code point from mimeType. + mimeType = mimeType.slice(0, -1) + } - // 6. Otherwise, fully read object’s body given successSteps, - // errorSteps, and object’s relevant global object. - await fullyReadBody(object[kState].body, successSteps, errorSteps) - - // 7. Return promise. - return promise.promise -} - -// https://fetch.spec.whatwg.org/#body-unusable -function bodyUnusable (body) { - // An object including the Body interface mixin is - // said to be unusable if its body is non-null and - // its body’s stream is disturbed or locked. - return body != null && (body.stream.locked || util.isDisturbed(body.stream)) -} - -/** - * @see https://encoding.spec.whatwg.org/#utf-8-decode - * @param {Buffer} buffer - */ -function utf8DecodeBytes (buffer) { - if (buffer.length === 0) { - return '' - } + // 12. If mimeType starts with U+003B (;), then prepend + // "text/plain" to mimeType. + if (mimeType.startsWith(';')) { + mimeType = 'text/plain' + mimeType + } - // 1. Let buffer be the result of peeking three bytes from - // ioQueue, converted to a byte sequence. + // 13. Let mimeTypeRecord be the result of parsing + // mimeType. + let mimeTypeRecord = parseMIMEType(mimeType) - // 2. If buffer is 0xEF 0xBB 0xBF, then read three - // bytes from ioQueue. (Do nothing with those bytes.) - if (buffer[0] === 0xEF && buffer[1] === 0xBB && buffer[2] === 0xBF) { - buffer = buffer.subarray(3) - } + // 14. If mimeTypeRecord is failure, then set + // mimeTypeRecord to text/plain;charset=US-ASCII. + if (mimeTypeRecord === 'failure') { + mimeTypeRecord = parseMIMEType('text/plain;charset=US-ASCII') + } - // 3. Process a queue with an instance of UTF-8’s - // decoder, ioQueue, output, and "replacement". - const output = textDecoder.decode(buffer) + // 15. Return a new data: URL struct whose MIME + // type is mimeTypeRecord and body is body. + // https://fetch.spec.whatwg.org/#data-url-struct + return { mimeType: mimeTypeRecord, body } + } - // 4. Return output. - return output -} + // https://url.spec.whatwg.org/#concept-url-serializer + /** + * @param {URL} url + * @param {boolean} excludeFragment + */ + function URLSerializer(url, excludeFragment = false) { + if (!excludeFragment) { + return url.href + } -/** - * @see https://infra.spec.whatwg.org/#parse-json-bytes-to-a-javascript-value - * @param {Uint8Array} bytes - */ -function parseJSONFromBytes (bytes) { - return JSON.parse(utf8DecodeBytes(bytes)) -} + const href = url.href + const hashLength = url.hash.length -/** - * @see https://fetch.spec.whatwg.org/#concept-body-mime-type - * @param {import('./response').Response|import('./request').Request} object - */ -function bodyMimeType (object) { - const { headersList } = object[kState] - const contentType = headersList.get('content-type') + return hashLength === 0 + ? href + : href.substring(0, href.length - hashLength) + } - if (contentType === null) { - return 'failure' - } + // https://infra.spec.whatwg.org/#collect-a-sequence-of-code-points + /** + * @param {(char: string) => boolean} condition + * @param {string} input + * @param {{ position: number }} position + */ + function collectASequenceOfCodePoints(condition, input, position) { + // 1. Let result be the empty string. + let result = '' + + // 2. While position doesn’t point past the end of input and the + // code point at position within input meets the condition condition: + while ( + position.position < input.length && + condition(input[position.position]) + ) { + // 1. Append that code point to the end of result. + result += input[position.position] - return parseMIMEType(contentType) -} - -module.exports = { - extractBody, - safelyExtractBody, - cloneBody, - mixinBody -} - - -/***/ }), - -/***/ 41037: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - - -const { MessageChannel, receiveMessageOnPort } = __nccwpck_require__(71267) - -const corsSafeListedMethods = ['GET', 'HEAD', 'POST'] -const corsSafeListedMethodsSet = new Set(corsSafeListedMethods) - -const nullBodyStatus = [101, 204, 205, 304] - -const redirectStatus = [301, 302, 303, 307, 308] -const redirectStatusSet = new Set(redirectStatus) - -// https://fetch.spec.whatwg.org/#block-bad-port -const badPorts = [ - '1', '7', '9', '11', '13', '15', '17', '19', '20', '21', '22', '23', '25', '37', '42', '43', '53', '69', '77', '79', - '87', '95', '101', '102', '103', '104', '109', '110', '111', '113', '115', '117', '119', '123', '135', '137', - '139', '143', '161', '179', '389', '427', '465', '512', '513', '514', '515', '526', '530', '531', '532', - '540', '548', '554', '556', '563', '587', '601', '636', '989', '990', '993', '995', '1719', '1720', '1723', - '2049', '3659', '4045', '5060', '5061', '6000', '6566', '6665', '6666', '6667', '6668', '6669', '6697', - '10080' -] - -const badPortsSet = new Set(badPorts) - -// https://w3c.github.io/webappsec-referrer-policy/#referrer-policies -const referrerPolicy = [ - '', - 'no-referrer', - 'no-referrer-when-downgrade', - 'same-origin', - 'origin', - 'strict-origin', - 'origin-when-cross-origin', - 'strict-origin-when-cross-origin', - 'unsafe-url' -] -const referrerPolicySet = new Set(referrerPolicy) - -const requestRedirect = ['follow', 'manual', 'error'] - -const safeMethods = ['GET', 'HEAD', 'OPTIONS', 'TRACE'] -const safeMethodsSet = new Set(safeMethods) - -const requestMode = ['navigate', 'same-origin', 'no-cors', 'cors'] - -const requestCredentials = ['omit', 'same-origin', 'include'] - -const requestCache = [ - 'default', - 'no-store', - 'reload', - 'no-cache', - 'force-cache', - 'only-if-cached' -] - -// https://fetch.spec.whatwg.org/#request-body-header-name -const requestBodyHeader = [ - 'content-encoding', - 'content-language', - 'content-location', - 'content-type', - // See https://github.com/nodejs/undici/issues/2021 - // 'Content-Length' is a forbidden header name, which is typically - // removed in the Headers implementation. However, undici doesn't - // filter out headers, so we add it here. - 'content-length' -] - -// https://fetch.spec.whatwg.org/#enumdef-requestduplex -const requestDuplex = [ - 'half' -] - -// http://fetch.spec.whatwg.org/#forbidden-method -const forbiddenMethods = ['CONNECT', 'TRACE', 'TRACK'] -const forbiddenMethodsSet = new Set(forbiddenMethods) - -const subresource = [ - 'audio', - 'audioworklet', - 'font', - 'image', - 'manifest', - 'paintworklet', - 'script', - 'style', - 'track', - 'video', - 'xslt', - '' -] -const subresourceSet = new Set(subresource) - -/** @type {globalThis['DOMException']} */ -const DOMException = globalThis.DOMException ?? (() => { - // DOMException was only made a global in Node v17.0.0, - // but fetch supports >= v16.8. - try { - atob('~') - } catch (err) { - return Object.getPrototypeOf(err).constructor - } -})() + // 2. Advance position by 1. + position.position++ + } -let channel + // 3. Return result. + return result + } -/** @type {globalThis['structuredClone']} */ -const structuredClone = - globalThis.structuredClone ?? - // https://github.com/nodejs/node/blob/b27ae24dcc4251bad726d9d84baf678d1f707fed/lib/internal/structured_clone.js - // structuredClone was added in v17.0.0, but fetch supports v16.8 - function structuredClone (value, options = undefined) { - if (arguments.length === 0) { - throw new TypeError('missing argument') - } + /** + * A faster collectASequenceOfCodePoints that only works when comparing a single character. + * @param {string} char + * @param {string} input + * @param {{ position: number }} position + */ + function collectASequenceOfCodePointsFast(char, input, position) { + const idx = input.indexOf(char, position.position) + const start = position.position - if (!channel) { - channel = new MessageChannel() - } - channel.port1.unref() - channel.port2.unref() - channel.port1.postMessage(value, options?.transfer) - return receiveMessageOnPort(channel.port2).message - } + if (idx === -1) { + position.position = input.length + return input.slice(start) + } -module.exports = { - DOMException, - structuredClone, - subresource, - forbiddenMethods, - requestBodyHeader, - referrerPolicy, - requestRedirect, - requestMode, - requestCredentials, - requestCache, - redirectStatus, - corsSafeListedMethods, - nullBodyStatus, - safeMethods, - badPorts, - requestDuplex, - subresourceSet, - badPortsSet, - redirectStatusSet, - corsSafeListedMethodsSet, - safeMethodsSet, - forbiddenMethodsSet, - referrerPolicySet -} - - -/***/ }), - -/***/ 685: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -const assert = __nccwpck_require__(39491) -const { atob } = __nccwpck_require__(14300) -const { isomorphicDecode } = __nccwpck_require__(52538) - -const encoder = new TextEncoder() - -/** - * @see https://mimesniff.spec.whatwg.org/#http-token-code-point - */ -const HTTP_TOKEN_CODEPOINTS = /^[!#$%&'*+-.^_|~A-Za-z0-9]+$/ -const HTTP_WHITESPACE_REGEX = /(\u000A|\u000D|\u0009|\u0020)/ // eslint-disable-line -/** - * @see https://mimesniff.spec.whatwg.org/#http-quoted-string-token-code-point - */ -const HTTP_QUOTED_STRING_TOKENS = /[\u0009|\u0020-\u007E|\u0080-\u00FF]/ // eslint-disable-line - -// https://fetch.spec.whatwg.org/#data-url-processor -/** @param {URL} dataURL */ -function dataURLProcessor (dataURL) { - // 1. Assert: dataURL’s scheme is "data". - assert(dataURL.protocol === 'data:') - - // 2. Let input be the result of running the URL - // serializer on dataURL with exclude fragment - // set to true. - let input = URLSerializer(dataURL, true) - - // 3. Remove the leading "data:" string from input. - input = input.slice(5) - - // 4. Let position point at the start of input. - const position = { position: 0 } - - // 5. Let mimeType be the result of collecting a - // sequence of code points that are not equal - // to U+002C (,), given position. - let mimeType = collectASequenceOfCodePointsFast( - ',', - input, - position - ) - - // 6. Strip leading and trailing ASCII whitespace - // from mimeType. - // Undici implementation note: we need to store the - // length because if the mimetype has spaces removed, - // the wrong amount will be sliced from the input in - // step #9 - const mimeTypeLength = mimeType.length - mimeType = removeASCIIWhitespace(mimeType, true, true) - - // 7. If position is past the end of input, then - // return failure - if (position.position >= input.length) { - return 'failure' - } + position.position = idx + return input.slice(start, position.position) + } - // 8. Advance position by 1. - position.position++ + // https://url.spec.whatwg.org/#string-percent-decode + /** @param {string} input */ + function stringPercentDecode(input) { + // 1. Let bytes be the UTF-8 encoding of input. + const bytes = encoder.encode(input) - // 9. Let encodedBody be the remainder of input. - const encodedBody = input.slice(mimeTypeLength + 1) + // 2. Return the percent-decoding of bytes. + return percentDecode(bytes) + } - // 10. Let body be the percent-decoding of encodedBody. - let body = stringPercentDecode(encodedBody) + // https://url.spec.whatwg.org/#percent-decode + /** @param {Uint8Array} input */ + function percentDecode(input) { + // 1. Let output be an empty byte sequence. + /** @type {number[]} */ + const output = [] - // 11. If mimeType ends with U+003B (;), followed by - // zero or more U+0020 SPACE, followed by an ASCII - // case-insensitive match for "base64", then: - if (/;(\u0020){0,}base64$/i.test(mimeType)) { - // 1. Let stringBody be the isomorphic decode of body. - const stringBody = isomorphicDecode(body) + // 2. For each byte byte in input: + for (let i = 0; i < input.length; i++) { + const byte = input[i] - // 2. Set body to the forgiving-base64 decode of - // stringBody. - body = forgivingBase64(stringBody) + // 1. If byte is not 0x25 (%), then append byte to output. + if (byte !== 0x25) { + output.push(byte) - // 3. If body is failure, then return failure. - if (body === 'failure') { - return 'failure' - } + // 2. Otherwise, if byte is 0x25 (%) and the next two bytes + // after byte in input are not in the ranges + // 0x30 (0) to 0x39 (9), 0x41 (A) to 0x46 (F), + // and 0x61 (a) to 0x66 (f), all inclusive, append byte + // to output. + } else if ( + byte === 0x25 && + !/^[0-9A-Fa-f]{2}$/i.test( + String.fromCharCode(input[i + 1], input[i + 2]) + ) + ) { + output.push(0x25) - // 4. Remove the last 6 code points from mimeType. - mimeType = mimeType.slice(0, -6) + // 3. Otherwise: + } else { + // 1. Let bytePoint be the two bytes after byte in input, + // decoded, and then interpreted as hexadecimal number. + const nextTwoBytes = String.fromCharCode(input[i + 1], input[i + 2]) + const bytePoint = Number.parseInt(nextTwoBytes, 16) - // 5. Remove trailing U+0020 SPACE code points from mimeType, - // if any. - mimeType = mimeType.replace(/(\u0020)+$/, '') + // 2. Append a byte whose value is bytePoint to output. + output.push(bytePoint) - // 6. Remove the last U+003B (;) code point from mimeType. - mimeType = mimeType.slice(0, -1) - } + // 3. Skip the next two bytes in input. + i += 2 + } + } - // 12. If mimeType starts with U+003B (;), then prepend - // "text/plain" to mimeType. - if (mimeType.startsWith(';')) { - mimeType = 'text/plain' + mimeType - } + // 3. Return output. + return Uint8Array.from(output) + } - // 13. Let mimeTypeRecord be the result of parsing - // mimeType. - let mimeTypeRecord = parseMIMEType(mimeType) + // https://mimesniff.spec.whatwg.org/#parse-a-mime-type + /** @param {string} input */ + function parseMIMEType(input) { + // 1. Remove any leading and trailing HTTP whitespace + // from input. + input = removeHTTPWhitespace(input, true, true) - // 14. If mimeTypeRecord is failure, then set - // mimeTypeRecord to text/plain;charset=US-ASCII. - if (mimeTypeRecord === 'failure') { - mimeTypeRecord = parseMIMEType('text/plain;charset=US-ASCII') - } + // 2. Let position be a position variable for input, + // initially pointing at the start of input. + const position = { position: 0 } - // 15. Return a new data: URL struct whose MIME - // type is mimeTypeRecord and body is body. - // https://fetch.spec.whatwg.org/#data-url-struct - return { mimeType: mimeTypeRecord, body } -} + // 3. Let type be the result of collecting a sequence + // of code points that are not U+002F (/) from + // input, given position. + const type = collectASequenceOfCodePointsFast('/', input, position) -// https://url.spec.whatwg.org/#concept-url-serializer -/** - * @param {URL} url - * @param {boolean} excludeFragment - */ -function URLSerializer (url, excludeFragment = false) { - if (!excludeFragment) { - return url.href - } + // 4. If type is the empty string or does not solely + // contain HTTP token code points, then return failure. + // https://mimesniff.spec.whatwg.org/#http-token-code-point + if (type.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(type)) { + return 'failure' + } - const href = url.href - const hashLength = url.hash.length + // 5. If position is past the end of input, then return + // failure + if (position.position > input.length) { + return 'failure' + } - return hashLength === 0 ? href : href.substring(0, href.length - hashLength) -} + // 6. Advance position by 1. (This skips past U+002F (/).) + position.position++ -// https://infra.spec.whatwg.org/#collect-a-sequence-of-code-points -/** - * @param {(char: string) => boolean} condition - * @param {string} input - * @param {{ position: number }} position - */ -function collectASequenceOfCodePoints (condition, input, position) { - // 1. Let result be the empty string. - let result = '' - - // 2. While position doesn’t point past the end of input and the - // code point at position within input meets the condition condition: - while (position.position < input.length && condition(input[position.position])) { - // 1. Append that code point to the end of result. - result += input[position.position] - - // 2. Advance position by 1. - position.position++ - } + // 7. Let subtype be the result of collecting a sequence of + // code points that are not U+003B (;) from input, given + // position. + let subtype = collectASequenceOfCodePointsFast(';', input, position) - // 3. Return result. - return result -} + // 8. Remove any trailing HTTP whitespace from subtype. + subtype = removeHTTPWhitespace(subtype, false, true) -/** - * A faster collectASequenceOfCodePoints that only works when comparing a single character. - * @param {string} char - * @param {string} input - * @param {{ position: number }} position - */ -function collectASequenceOfCodePointsFast (char, input, position) { - const idx = input.indexOf(char, position.position) - const start = position.position + // 9. If subtype is the empty string or does not solely + // contain HTTP token code points, then return failure. + if (subtype.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(subtype)) { + return 'failure' + } - if (idx === -1) { - position.position = input.length - return input.slice(start) - } + const typeLowercase = type.toLowerCase() + const subtypeLowercase = subtype.toLowerCase() - position.position = idx - return input.slice(start, position.position) -} - -// https://url.spec.whatwg.org/#string-percent-decode -/** @param {string} input */ -function stringPercentDecode (input) { - // 1. Let bytes be the UTF-8 encoding of input. - const bytes = encoder.encode(input) - - // 2. Return the percent-decoding of bytes. - return percentDecode(bytes) -} - -// https://url.spec.whatwg.org/#percent-decode -/** @param {Uint8Array} input */ -function percentDecode (input) { - // 1. Let output be an empty byte sequence. - /** @type {number[]} */ - const output = [] - - // 2. For each byte byte in input: - for (let i = 0; i < input.length; i++) { - const byte = input[i] - - // 1. If byte is not 0x25 (%), then append byte to output. - if (byte !== 0x25) { - output.push(byte) - - // 2. Otherwise, if byte is 0x25 (%) and the next two bytes - // after byte in input are not in the ranges - // 0x30 (0) to 0x39 (9), 0x41 (A) to 0x46 (F), - // and 0x61 (a) to 0x66 (f), all inclusive, append byte - // to output. - } else if ( - byte === 0x25 && - !/^[0-9A-Fa-f]{2}$/i.test(String.fromCharCode(input[i + 1], input[i + 2])) - ) { - output.push(0x25) + // 10. Let mimeType be a new MIME type record whose type + // is type, in ASCII lowercase, and subtype is subtype, + // in ASCII lowercase. + // https://mimesniff.spec.whatwg.org/#mime-type + const mimeType = { + type: typeLowercase, + subtype: subtypeLowercase, + /** @type {Map} */ + parameters: new Map(), + // https://mimesniff.spec.whatwg.org/#mime-type-essence + essence: `${typeLowercase}/${subtypeLowercase}` + } - // 3. Otherwise: - } else { - // 1. Let bytePoint be the two bytes after byte in input, - // decoded, and then interpreted as hexadecimal number. - const nextTwoBytes = String.fromCharCode(input[i + 1], input[i + 2]) - const bytePoint = Number.parseInt(nextTwoBytes, 16) + // 11. While position is not past the end of input: + while (position.position < input.length) { + // 1. Advance position by 1. (This skips past U+003B (;).) + position.position++ - // 2. Append a byte whose value is bytePoint to output. - output.push(bytePoint) + // 2. Collect a sequence of code points that are HTTP + // whitespace from input given position. + collectASequenceOfCodePoints( + // https://fetch.spec.whatwg.org/#http-whitespace + char => HTTP_WHITESPACE_REGEX.test(char), + input, + position + ) - // 3. Skip the next two bytes in input. - i += 2 - } - } + // 3. Let parameterName be the result of collecting a + // sequence of code points that are not U+003B (;) + // or U+003D (=) from input, given position. + let parameterName = collectASequenceOfCodePoints( + char => char !== ';' && char !== '=', + input, + position + ) - // 3. Return output. - return Uint8Array.from(output) -} - -// https://mimesniff.spec.whatwg.org/#parse-a-mime-type -/** @param {string} input */ -function parseMIMEType (input) { - // 1. Remove any leading and trailing HTTP whitespace - // from input. - input = removeHTTPWhitespace(input, true, true) - - // 2. Let position be a position variable for input, - // initially pointing at the start of input. - const position = { position: 0 } - - // 3. Let type be the result of collecting a sequence - // of code points that are not U+002F (/) from - // input, given position. - const type = collectASequenceOfCodePointsFast( - '/', - input, - position - ) - - // 4. If type is the empty string or does not solely - // contain HTTP token code points, then return failure. - // https://mimesniff.spec.whatwg.org/#http-token-code-point - if (type.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(type)) { - return 'failure' - } + // 4. Set parameterName to parameterName, in ASCII + // lowercase. + parameterName = parameterName.toLowerCase() - // 5. If position is past the end of input, then return - // failure - if (position.position > input.length) { - return 'failure' - } + // 5. If position is not past the end of input, then: + if (position.position < input.length) { + // 1. If the code point at position within input is + // U+003B (;), then continue. + if (input[position.position] === ';') { + continue + } - // 6. Advance position by 1. (This skips past U+002F (/).) - position.position++ - - // 7. Let subtype be the result of collecting a sequence of - // code points that are not U+003B (;) from input, given - // position. - let subtype = collectASequenceOfCodePointsFast( - ';', - input, - position - ) - - // 8. Remove any trailing HTTP whitespace from subtype. - subtype = removeHTTPWhitespace(subtype, false, true) - - // 9. If subtype is the empty string or does not solely - // contain HTTP token code points, then return failure. - if (subtype.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(subtype)) { - return 'failure' - } + // 2. Advance position by 1. (This skips past U+003D (=).) + position.position++ + } - const typeLowercase = type.toLowerCase() - const subtypeLowercase = subtype.toLowerCase() - - // 10. Let mimeType be a new MIME type record whose type - // is type, in ASCII lowercase, and subtype is subtype, - // in ASCII lowercase. - // https://mimesniff.spec.whatwg.org/#mime-type - const mimeType = { - type: typeLowercase, - subtype: subtypeLowercase, - /** @type {Map} */ - parameters: new Map(), - // https://mimesniff.spec.whatwg.org/#mime-type-essence - essence: `${typeLowercase}/${subtypeLowercase}` - } + // 6. If position is past the end of input, then break. + if (position.position > input.length) { + break + } - // 11. While position is not past the end of input: - while (position.position < input.length) { - // 1. Advance position by 1. (This skips past U+003B (;).) - position.position++ - - // 2. Collect a sequence of code points that are HTTP - // whitespace from input given position. - collectASequenceOfCodePoints( - // https://fetch.spec.whatwg.org/#http-whitespace - char => HTTP_WHITESPACE_REGEX.test(char), - input, - position - ) - - // 3. Let parameterName be the result of collecting a - // sequence of code points that are not U+003B (;) - // or U+003D (=) from input, given position. - let parameterName = collectASequenceOfCodePoints( - (char) => char !== ';' && char !== '=', - input, - position - ) - - // 4. Set parameterName to parameterName, in ASCII - // lowercase. - parameterName = parameterName.toLowerCase() - - // 5. If position is not past the end of input, then: - if (position.position < input.length) { - // 1. If the code point at position within input is - // U+003B (;), then continue. - if (input[position.position] === ';') { - continue - } - - // 2. Advance position by 1. (This skips past U+003D (=).) - position.position++ - } + // 7. Let parameterValue be null. + let parameterValue = null - // 6. If position is past the end of input, then break. - if (position.position > input.length) { - break - } + // 8. If the code point at position within input is + // U+0022 ("), then: + if (input[position.position] === '"') { + // 1. Set parameterValue to the result of collecting + // an HTTP quoted string from input, given position + // and the extract-value flag. + parameterValue = collectAnHTTPQuotedString(input, position, true) - // 7. Let parameterValue be null. - let parameterValue = null + // 2. Collect a sequence of code points that are not + // U+003B (;) from input, given position. + collectASequenceOfCodePointsFast(';', input, position) - // 8. If the code point at position within input is - // U+0022 ("), then: - if (input[position.position] === '"') { - // 1. Set parameterValue to the result of collecting - // an HTTP quoted string from input, given position - // and the extract-value flag. - parameterValue = collectAnHTTPQuotedString(input, position, true) + // 9. Otherwise: + } else { + // 1. Set parameterValue to the result of collecting + // a sequence of code points that are not U+003B (;) + // from input, given position. + parameterValue = collectASequenceOfCodePointsFast( + ';', + input, + position + ) - // 2. Collect a sequence of code points that are not - // U+003B (;) from input, given position. - collectASequenceOfCodePointsFast( - ';', - input, - position - ) + // 2. Remove any trailing HTTP whitespace from parameterValue. + parameterValue = removeHTTPWhitespace(parameterValue, false, true) - // 9. Otherwise: - } else { - // 1. Set parameterValue to the result of collecting - // a sequence of code points that are not U+003B (;) - // from input, given position. - parameterValue = collectASequenceOfCodePointsFast( - ';', - input, - position - ) + // 3. If parameterValue is the empty string, then continue. + if (parameterValue.length === 0) { + continue + } + } - // 2. Remove any trailing HTTP whitespace from parameterValue. - parameterValue = removeHTTPWhitespace(parameterValue, false, true) + // 10. If all of the following are true + // - parameterName is not the empty string + // - parameterName solely contains HTTP token code points + // - parameterValue solely contains HTTP quoted-string token code points + // - mimeType’s parameters[parameterName] does not exist + // then set mimeType’s parameters[parameterName] to parameterValue. + if ( + parameterName.length !== 0 && + HTTP_TOKEN_CODEPOINTS.test(parameterName) && + (parameterValue.length === 0 || + HTTP_QUOTED_STRING_TOKENS.test(parameterValue)) && + !mimeType.parameters.has(parameterName) + ) { + mimeType.parameters.set(parameterName, parameterValue) + } + } - // 3. If parameterValue is the empty string, then continue. - if (parameterValue.length === 0) { - continue + // 12. Return mimeType. + return mimeType } - } - // 10. If all of the following are true - // - parameterName is not the empty string - // - parameterName solely contains HTTP token code points - // - parameterValue solely contains HTTP quoted-string token code points - // - mimeType’s parameters[parameterName] does not exist - // then set mimeType’s parameters[parameterName] to parameterValue. - if ( - parameterName.length !== 0 && - HTTP_TOKEN_CODEPOINTS.test(parameterName) && - (parameterValue.length === 0 || HTTP_QUOTED_STRING_TOKENS.test(parameterValue)) && - !mimeType.parameters.has(parameterName) - ) { - mimeType.parameters.set(parameterName, parameterValue) - } - } - - // 12. Return mimeType. - return mimeType -} - -// https://infra.spec.whatwg.org/#forgiving-base64-decode -/** @param {string} data */ -function forgivingBase64 (data) { - // 1. Remove all ASCII whitespace from data. - data = data.replace(/[\u0009\u000A\u000C\u000D\u0020]/g, '') // eslint-disable-line - - // 2. If data’s code point length divides by 4 leaving - // no remainder, then: - if (data.length % 4 === 0) { - // 1. If data ends with one or two U+003D (=) code points, - // then remove them from data. - data = data.replace(/=?=$/, '') - } + // https://infra.spec.whatwg.org/#forgiving-base64-decode + /** @param {string} data */ + function forgivingBase64(data) { + // 1. Remove all ASCII whitespace from data. + data = data.replace(/[\u0009\u000A\u000C\u000D\u0020]/g, '') // eslint-disable-line - // 3. If data’s code point length divides by 4 leaving - // a remainder of 1, then return failure. - if (data.length % 4 === 1) { - return 'failure' - } + // 2. If data’s code point length divides by 4 leaving + // no remainder, then: + if (data.length % 4 === 0) { + // 1. If data ends with one or two U+003D (=) code points, + // then remove them from data. + data = data.replace(/=?=$/, '') + } - // 4. If data contains a code point that is not one of - // U+002B (+) - // U+002F (/) - // ASCII alphanumeric - // then return failure. - if (/[^+/0-9A-Za-z]/.test(data)) { - return 'failure' - } + // 3. If data’s code point length divides by 4 leaving + // a remainder of 1, then return failure. + if (data.length % 4 === 1) { + return 'failure' + } - const binary = atob(data) - const bytes = new Uint8Array(binary.length) + // 4. If data contains a code point that is not one of + // U+002B (+) + // U+002F (/) + // ASCII alphanumeric + // then return failure. + if (/[^+/0-9A-Za-z]/.test(data)) { + return 'failure' + } - for (let byte = 0; byte < binary.length; byte++) { - bytes[byte] = binary.charCodeAt(byte) - } + const binary = atob(data) + const bytes = new Uint8Array(binary.length) - return bytes -} + for (let byte = 0; byte < binary.length; byte++) { + bytes[byte] = binary.charCodeAt(byte) + } -// https://fetch.spec.whatwg.org/#collect-an-http-quoted-string -// tests: https://fetch.spec.whatwg.org/#example-http-quoted-string -/** - * @param {string} input - * @param {{ position: number }} position - * @param {boolean?} extractValue - */ -function collectAnHTTPQuotedString (input, position, extractValue) { - // 1. Let positionStart be position. - const positionStart = position.position - - // 2. Let value be the empty string. - let value = '' - - // 3. Assert: the code point at position within input - // is U+0022 ("). - assert(input[position.position] === '"') - - // 4. Advance position by 1. - position.position++ - - // 5. While true: - while (true) { - // 1. Append the result of collecting a sequence of code points - // that are not U+0022 (") or U+005C (\) from input, given - // position, to value. - value += collectASequenceOfCodePoints( - (char) => char !== '"' && char !== '\\', - input, - position - ) - - // 2. If position is past the end of input, then break. - if (position.position >= input.length) { - break - } + return bytes + } - // 3. Let quoteOrBackslash be the code point at position within - // input. - const quoteOrBackslash = input[position.position] + // https://fetch.spec.whatwg.org/#collect-an-http-quoted-string + // tests: https://fetch.spec.whatwg.org/#example-http-quoted-string + /** + * @param {string} input + * @param {{ position: number }} position + * @param {boolean?} extractValue + */ + function collectAnHTTPQuotedString(input, position, extractValue) { + // 1. Let positionStart be position. + const positionStart = position.position - // 4. Advance position by 1. - position.position++ + // 2. Let value be the empty string. + let value = '' - // 5. If quoteOrBackslash is U+005C (\), then: - if (quoteOrBackslash === '\\') { - // 1. If position is past the end of input, then append - // U+005C (\) to value and break. - if (position.position >= input.length) { - value += '\\' - break - } + // 3. Assert: the code point at position within input + // is U+0022 ("). + assert(input[position.position] === '"') - // 2. Append the code point at position within input to value. - value += input[position.position] + // 4. Advance position by 1. + position.position++ - // 3. Advance position by 1. - position.position++ + // 5. While true: + while (true) { + // 1. Append the result of collecting a sequence of code points + // that are not U+0022 (") or U+005C (\) from input, given + // position, to value. + value += collectASequenceOfCodePoints( + char => char !== '"' && char !== '\\', + input, + position + ) - // 6. Otherwise: - } else { - // 1. Assert: quoteOrBackslash is U+0022 ("). - assert(quoteOrBackslash === '"') + // 2. If position is past the end of input, then break. + if (position.position >= input.length) { + break + } - // 2. Break. - break - } - } + // 3. Let quoteOrBackslash be the code point at position within + // input. + const quoteOrBackslash = input[position.position] - // 6. If the extract-value flag is set, then return value. - if (extractValue) { - return value - } + // 4. Advance position by 1. + position.position++ - // 7. Return the code points from positionStart to position, - // inclusive, within input. - return input.slice(positionStart, position.position) -} + // 5. If quoteOrBackslash is U+005C (\), then: + if (quoteOrBackslash === '\\') { + // 1. If position is past the end of input, then append + // U+005C (\) to value and break. + if (position.position >= input.length) { + value += '\\' + break + } -/** - * @see https://mimesniff.spec.whatwg.org/#serialize-a-mime-type - */ -function serializeAMimeType (mimeType) { - assert(mimeType !== 'failure') - const { parameters, essence } = mimeType + // 2. Append the code point at position within input to value. + value += input[position.position] - // 1. Let serialization be the concatenation of mimeType’s - // type, U+002F (/), and mimeType’s subtype. - let serialization = essence + // 3. Advance position by 1. + position.position++ - // 2. For each name → value of mimeType’s parameters: - for (let [name, value] of parameters.entries()) { - // 1. Append U+003B (;) to serialization. - serialization += ';' + // 6. Otherwise: + } else { + // 1. Assert: quoteOrBackslash is U+0022 ("). + assert(quoteOrBackslash === '"') - // 2. Append name to serialization. - serialization += name + // 2. Break. + break + } + } - // 3. Append U+003D (=) to serialization. - serialization += '=' + // 6. If the extract-value flag is set, then return value. + if (extractValue) { + return value + } - // 4. If value does not solely contain HTTP token code - // points or value is the empty string, then: - if (!HTTP_TOKEN_CODEPOINTS.test(value)) { - // 1. Precede each occurence of U+0022 (") or - // U+005C (\) in value with U+005C (\). - value = value.replace(/(\\|")/g, '\\$1') + // 7. Return the code points from positionStart to position, + // inclusive, within input. + return input.slice(positionStart, position.position) + } - // 2. Prepend U+0022 (") to value. - value = '"' + value + /** + * @see https://mimesniff.spec.whatwg.org/#serialize-a-mime-type + */ + function serializeAMimeType(mimeType) { + assert(mimeType !== 'failure') + const { parameters, essence } = mimeType - // 3. Append U+0022 (") to value. - value += '"' - } + // 1. Let serialization be the concatenation of mimeType’s + // type, U+002F (/), and mimeType’s subtype. + let serialization = essence - // 5. Append value to serialization. - serialization += value - } + // 2. For each name → value of mimeType’s parameters: + for (let [name, value] of parameters.entries()) { + // 1. Append U+003B (;) to serialization. + serialization += ';' - // 3. Return serialization. - return serialization -} + // 2. Append name to serialization. + serialization += name -/** - * @see https://fetch.spec.whatwg.org/#http-whitespace - * @param {string} char - */ -function isHTTPWhiteSpace (char) { - return char === '\r' || char === '\n' || char === '\t' || char === ' ' -} + // 3. Append U+003D (=) to serialization. + serialization += '=' -/** - * @see https://fetch.spec.whatwg.org/#http-whitespace - * @param {string} str - */ -function removeHTTPWhitespace (str, leading = true, trailing = true) { - let lead = 0 - let trail = str.length - 1 + // 4. If value does not solely contain HTTP token code + // points or value is the empty string, then: + if (!HTTP_TOKEN_CODEPOINTS.test(value)) { + // 1. Precede each occurence of U+0022 (") or + // U+005C (\) in value with U+005C (\). + value = value.replace(/(\\|")/g, '\\$1') - if (leading) { - for (; lead < str.length && isHTTPWhiteSpace(str[lead]); lead++); - } + // 2. Prepend U+0022 (") to value. + value = '"' + value - if (trailing) { - for (; trail > 0 && isHTTPWhiteSpace(str[trail]); trail--); - } + // 3. Append U+0022 (") to value. + value += '"' + } - return str.slice(lead, trail + 1) -} + // 5. Append value to serialization. + serialization += value + } -/** - * @see https://infra.spec.whatwg.org/#ascii-whitespace - * @param {string} char - */ -function isASCIIWhitespace (char) { - return char === '\r' || char === '\n' || char === '\t' || char === '\f' || char === ' ' -} + // 3. Return serialization. + return serialization + } -/** - * @see https://infra.spec.whatwg.org/#strip-leading-and-trailing-ascii-whitespace - */ -function removeASCIIWhitespace (str, leading = true, trailing = true) { - let lead = 0 - let trail = str.length - 1 + /** + * @see https://fetch.spec.whatwg.org/#http-whitespace + * @param {string} char + */ + function isHTTPWhiteSpace(char) { + return char === '\r' || char === '\n' || char === '\t' || char === ' ' + } - if (leading) { - for (; lead < str.length && isASCIIWhitespace(str[lead]); lead++); - } + /** + * @see https://fetch.spec.whatwg.org/#http-whitespace + * @param {string} str + */ + function removeHTTPWhitespace(str, leading = true, trailing = true) { + let lead = 0 + let trail = str.length - 1 - if (trailing) { - for (; trail > 0 && isASCIIWhitespace(str[trail]); trail--); - } + if (leading) { + for (; lead < str.length && isHTTPWhiteSpace(str[lead]); lead++); + } - return str.slice(lead, trail + 1) -} - -module.exports = { - dataURLProcessor, - URLSerializer, - collectASequenceOfCodePoints, - collectASequenceOfCodePointsFast, - stringPercentDecode, - parseMIMEType, - collectAnHTTPQuotedString, - serializeAMimeType -} - - -/***/ }), - -/***/ 78511: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - - -const { Blob, File: NativeFile } = __nccwpck_require__(14300) -const { types } = __nccwpck_require__(73837) -const { kState } = __nccwpck_require__(15861) -const { isBlobLike } = __nccwpck_require__(52538) -const { webidl } = __nccwpck_require__(21744) -const { parseMIMEType, serializeAMimeType } = __nccwpck_require__(685) -const { kEnumerableProperty } = __nccwpck_require__(83983) -const encoder = new TextEncoder() - -class File extends Blob { - constructor (fileBits, fileName, options = {}) { - // The File constructor is invoked with two or three parameters, depending - // on whether the optional dictionary parameter is used. When the File() - // constructor is invoked, user agents must run the following steps: - webidl.argumentLengthCheck(arguments, 2, { header: 'File constructor' }) - - fileBits = webidl.converters['sequence'](fileBits) - fileName = webidl.converters.USVString(fileName) - options = webidl.converters.FilePropertyBag(options) - - // 1. Let bytes be the result of processing blob parts given fileBits and - // options. - // Note: Blob handles this for us - - // 2. Let n be the fileName argument to the constructor. - const n = fileName - - // 3. Process FilePropertyBag dictionary argument by running the following - // substeps: - - // 1. If the type member is provided and is not the empty string, let t - // be set to the type dictionary member. If t contains any characters - // outside the range U+0020 to U+007E, then set t to the empty string - // and return from these substeps. - // 2. Convert every character in t to ASCII lowercase. - let t = options.type - let d - - // eslint-disable-next-line no-labels - substep: { - if (t) { - t = parseMIMEType(t) - - if (t === 'failure') { - t = '' - // eslint-disable-next-line no-labels - break substep + if (trailing) { + for (; trail > 0 && isHTTPWhiteSpace(str[trail]); trail--); } - t = serializeAMimeType(t).toLowerCase() + return str.slice(lead, trail + 1) } - // 3. If the lastModified member is provided, let d be set to the - // lastModified dictionary member. If it is not provided, set d to the - // current date and time represented as the number of milliseconds since - // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]). - d = options.lastModified - } - - // 4. Return a new File object F such that: - // F refers to the bytes byte sequence. - // F.size is set to the number of total bytes in bytes. - // F.name is set to n. - // F.type is set to t. - // F.lastModified is set to d. - - super(processBlobParts(fileBits, options), { type: t }) - this[kState] = { - name: n, - lastModified: d, - type: t - } - } - - get name () { - webidl.brandCheck(this, File) + /** + * @see https://infra.spec.whatwg.org/#ascii-whitespace + * @param {string} char + */ + function isASCIIWhitespace(char) { + return ( + char === '\r' || + char === '\n' || + char === '\t' || + char === '\f' || + char === ' ' + ) + } - return this[kState].name - } + /** + * @see https://infra.spec.whatwg.org/#strip-leading-and-trailing-ascii-whitespace + */ + function removeASCIIWhitespace(str, leading = true, trailing = true) { + let lead = 0 + let trail = str.length - 1 - get lastModified () { - webidl.brandCheck(this, File) + if (leading) { + for (; lead < str.length && isASCIIWhitespace(str[lead]); lead++); + } - return this[kState].lastModified - } + if (trailing) { + for (; trail > 0 && isASCIIWhitespace(str[trail]); trail--); + } - get type () { - webidl.brandCheck(this, File) + return str.slice(lead, trail + 1) + } - return this[kState].type - } -} - -class FileLike { - constructor (blobLike, fileName, options = {}) { - // TODO: argument idl type check - - // The File constructor is invoked with two or three parameters, depending - // on whether the optional dictionary parameter is used. When the File() - // constructor is invoked, user agents must run the following steps: - - // 1. Let bytes be the result of processing blob parts given fileBits and - // options. - - // 2. Let n be the fileName argument to the constructor. - const n = fileName - - // 3. Process FilePropertyBag dictionary argument by running the following - // substeps: - - // 1. If the type member is provided and is not the empty string, let t - // be set to the type dictionary member. If t contains any characters - // outside the range U+0020 to U+007E, then set t to the empty string - // and return from these substeps. - // TODO - const t = options.type - - // 2. Convert every character in t to ASCII lowercase. - // TODO - - // 3. If the lastModified member is provided, let d be set to the - // lastModified dictionary member. If it is not provided, set d to the - // current date and time represented as the number of milliseconds since - // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]). - const d = options.lastModified ?? Date.now() - - // 4. Return a new File object F such that: - // F refers to the bytes byte sequence. - // F.size is set to the number of total bytes in bytes. - // F.name is set to n. - // F.type is set to t. - // F.lastModified is set to d. - - this[kState] = { - blobLike, - name: n, - type: t, - lastModified: d - } - } + module.exports = { + dataURLProcessor, + URLSerializer, + collectASequenceOfCodePoints, + collectASequenceOfCodePointsFast, + stringPercentDecode, + parseMIMEType, + collectAnHTTPQuotedString, + serializeAMimeType + } - stream (...args) { - webidl.brandCheck(this, FileLike) + /***/ + }, - return this[kState].blobLike.stream(...args) - } + /***/ 78511: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + const { Blob, File: NativeFile } = __nccwpck_require__(14300) + const { types } = __nccwpck_require__(73837) + const { kState } = __nccwpck_require__(15861) + const { isBlobLike } = __nccwpck_require__(52538) + const { webidl } = __nccwpck_require__(21744) + const { parseMIMEType, serializeAMimeType } = __nccwpck_require__(685) + const { kEnumerableProperty } = __nccwpck_require__(83983) + const encoder = new TextEncoder() + + class File extends Blob { + constructor(fileBits, fileName, options = {}) { + // The File constructor is invoked with two or three parameters, depending + // on whether the optional dictionary parameter is used. When the File() + // constructor is invoked, user agents must run the following steps: + webidl.argumentLengthCheck(arguments, 2, { + header: 'File constructor' + }) - arrayBuffer (...args) { - webidl.brandCheck(this, FileLike) + fileBits = webidl.converters['sequence'](fileBits) + fileName = webidl.converters.USVString(fileName) + options = webidl.converters.FilePropertyBag(options) - return this[kState].blobLike.arrayBuffer(...args) - } + // 1. Let bytes be the result of processing blob parts given fileBits and + // options. + // Note: Blob handles this for us - slice (...args) { - webidl.brandCheck(this, FileLike) + // 2. Let n be the fileName argument to the constructor. + const n = fileName - return this[kState].blobLike.slice(...args) - } + // 3. Process FilePropertyBag dictionary argument by running the following + // substeps: - text (...args) { - webidl.brandCheck(this, FileLike) + // 1. If the type member is provided and is not the empty string, let t + // be set to the type dictionary member. If t contains any characters + // outside the range U+0020 to U+007E, then set t to the empty string + // and return from these substeps. + // 2. Convert every character in t to ASCII lowercase. + let t = options.type + let d - return this[kState].blobLike.text(...args) - } + // eslint-disable-next-line no-labels + substep: { + if (t) { + t = parseMIMEType(t) + + if (t === 'failure') { + t = '' + // eslint-disable-next-line no-labels + break substep + } - get size () { - webidl.brandCheck(this, FileLike) + t = serializeAMimeType(t).toLowerCase() + } - return this[kState].blobLike.size - } + // 3. If the lastModified member is provided, let d be set to the + // lastModified dictionary member. If it is not provided, set d to the + // current date and time represented as the number of milliseconds since + // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]). + d = options.lastModified + } - get type () { - webidl.brandCheck(this, FileLike) + // 4. Return a new File object F such that: + // F refers to the bytes byte sequence. + // F.size is set to the number of total bytes in bytes. + // F.name is set to n. + // F.type is set to t. + // F.lastModified is set to d. + + super(processBlobParts(fileBits, options), { type: t }) + this[kState] = { + name: n, + lastModified: d, + type: t + } + } - return this[kState].blobLike.type - } + get name() { + webidl.brandCheck(this, File) - get name () { - webidl.brandCheck(this, FileLike) + return this[kState].name + } - return this[kState].name - } + get lastModified() { + webidl.brandCheck(this, File) - get lastModified () { - webidl.brandCheck(this, FileLike) + return this[kState].lastModified + } - return this[kState].lastModified - } + get type() { + webidl.brandCheck(this, File) - get [Symbol.toStringTag] () { - return 'File' - } -} - -Object.defineProperties(File.prototype, { - [Symbol.toStringTag]: { - value: 'File', - configurable: true - }, - name: kEnumerableProperty, - lastModified: kEnumerableProperty -}) - -webidl.converters.Blob = webidl.interfaceConverter(Blob) - -webidl.converters.BlobPart = function (V, opts) { - if (webidl.util.Type(V) === 'Object') { - if (isBlobLike(V)) { - return webidl.converters.Blob(V, { strict: false }) - } + return this[kState].type + } + } - if ( - ArrayBuffer.isView(V) || - types.isAnyArrayBuffer(V) - ) { - return webidl.converters.BufferSource(V, opts) - } - } + class FileLike { + constructor(blobLike, fileName, options = {}) { + // TODO: argument idl type check - return webidl.converters.USVString(V, opts) -} + // The File constructor is invoked with two or three parameters, depending + // on whether the optional dictionary parameter is used. When the File() + // constructor is invoked, user agents must run the following steps: -webidl.converters['sequence'] = webidl.sequenceConverter( - webidl.converters.BlobPart -) + // 1. Let bytes be the result of processing blob parts given fileBits and + // options. -// https://www.w3.org/TR/FileAPI/#dfn-FilePropertyBag -webidl.converters.FilePropertyBag = webidl.dictionaryConverter([ - { - key: 'lastModified', - converter: webidl.converters['long long'], - get defaultValue () { - return Date.now() - } - }, - { - key: 'type', - converter: webidl.converters.DOMString, - defaultValue: '' - }, - { - key: 'endings', - converter: (value) => { - value = webidl.converters.DOMString(value) - value = value.toLowerCase() + // 2. Let n be the fileName argument to the constructor. + const n = fileName - if (value !== 'native') { - value = 'transparent' - } + // 3. Process FilePropertyBag dictionary argument by running the following + // substeps: - return value - }, - defaultValue: 'transparent' - } -]) + // 1. If the type member is provided and is not the empty string, let t + // be set to the type dictionary member. If t contains any characters + // outside the range U+0020 to U+007E, then set t to the empty string + // and return from these substeps. + // TODO + const t = options.type -/** - * @see https://www.w3.org/TR/FileAPI/#process-blob-parts - * @param {(NodeJS.TypedArray|Blob|string)[]} parts - * @param {{ type: string, endings: string }} options - */ -function processBlobParts (parts, options) { - // 1. Let bytes be an empty sequence of bytes. - /** @type {NodeJS.TypedArray[]} */ - const bytes = [] - - // 2. For each element in parts: - for (const element of parts) { - // 1. If element is a USVString, run the following substeps: - if (typeof element === 'string') { - // 1. Let s be element. - let s = element - - // 2. If the endings member of options is "native", set s - // to the result of converting line endings to native - // of element. - if (options.endings === 'native') { - s = convertLineEndingsNative(s) - } - - // 3. Append the result of UTF-8 encoding s to bytes. - bytes.push(encoder.encode(s)) - } else if ( - types.isAnyArrayBuffer(element) || - types.isTypedArray(element) - ) { - // 2. If element is a BufferSource, get a copy of the - // bytes held by the buffer source, and append those - // bytes to bytes. - if (!element.buffer) { // ArrayBuffer - bytes.push(new Uint8Array(element)) - } else { - bytes.push( - new Uint8Array(element.buffer, element.byteOffset, element.byteLength) - ) - } - } else if (isBlobLike(element)) { - // 3. If element is a Blob, append the bytes it represents - // to bytes. - bytes.push(element) - } - } + // 2. Convert every character in t to ASCII lowercase. + // TODO - // 3. Return bytes. - return bytes -} + // 3. If the lastModified member is provided, let d be set to the + // lastModified dictionary member. If it is not provided, set d to the + // current date and time represented as the number of milliseconds since + // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]). + const d = options.lastModified ?? Date.now() -/** - * @see https://www.w3.org/TR/FileAPI/#convert-line-endings-to-native - * @param {string} s - */ -function convertLineEndingsNative (s) { - // 1. Let native line ending be be the code point U+000A LF. - let nativeLineEnding = '\n' - - // 2. If the underlying platform’s conventions are to - // represent newlines as a carriage return and line feed - // sequence, set native line ending to the code point - // U+000D CR followed by the code point U+000A LF. - if (process.platform === 'win32') { - nativeLineEnding = '\r\n' - } + // 4. Return a new File object F such that: + // F refers to the bytes byte sequence. + // F.size is set to the number of total bytes in bytes. + // F.name is set to n. + // F.type is set to t. + // F.lastModified is set to d. - return s.replace(/\r?\n/g, nativeLineEnding) -} + this[kState] = { + blobLike, + name: n, + type: t, + lastModified: d + } + } -// If this function is moved to ./util.js, some tools (such as -// rollup) will warn about circular dependencies. See: -// https://github.com/nodejs/undici/issues/1629 -function isFileLike (object) { - return ( - (NativeFile && object instanceof NativeFile) || - object instanceof File || ( - object && - (typeof object.stream === 'function' || - typeof object.arrayBuffer === 'function') && - object[Symbol.toStringTag] === 'File' - ) - ) -} + stream(...args) { + webidl.brandCheck(this, FileLike) -module.exports = { File, FileLike, isFileLike } + return this[kState].blobLike.stream(...args) + } + arrayBuffer(...args) { + webidl.brandCheck(this, FileLike) -/***/ }), + return this[kState].blobLike.arrayBuffer(...args) + } -/***/ 72015: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + slice(...args) { + webidl.brandCheck(this, FileLike) -"use strict"; + return this[kState].blobLike.slice(...args) + } + text(...args) { + webidl.brandCheck(this, FileLike) -const { isBlobLike, toUSVString, makeIterator } = __nccwpck_require__(52538) -const { kState } = __nccwpck_require__(15861) -const { File: UndiciFile, FileLike, isFileLike } = __nccwpck_require__(78511) -const { webidl } = __nccwpck_require__(21744) -const { Blob, File: NativeFile } = __nccwpck_require__(14300) + return this[kState].blobLike.text(...args) + } -/** @type {globalThis['File']} */ -const File = NativeFile ?? UndiciFile + get size() { + webidl.brandCheck(this, FileLike) -// https://xhr.spec.whatwg.org/#formdata -class FormData { - constructor (form) { - if (form !== undefined) { - throw webidl.errors.conversionFailed({ - prefix: 'FormData constructor', - argument: 'Argument 1', - types: ['undefined'] - }) - } + return this[kState].blobLike.size + } - this[kState] = [] - } + get type() { + webidl.brandCheck(this, FileLike) - append (name, value, filename = undefined) { - webidl.brandCheck(this, FormData) + return this[kState].blobLike.type + } - webidl.argumentLengthCheck(arguments, 2, { header: 'FormData.append' }) + get name() { + webidl.brandCheck(this, FileLike) - if (arguments.length === 3 && !isBlobLike(value)) { - throw new TypeError( - "Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'" - ) - } + return this[kState].name + } - // 1. Let value be value if given; otherwise blobValue. + get lastModified() { + webidl.brandCheck(this, FileLike) - name = webidl.converters.USVString(name) - value = isBlobLike(value) - ? webidl.converters.Blob(value, { strict: false }) - : webidl.converters.USVString(value) - filename = arguments.length === 3 - ? webidl.converters.USVString(filename) - : undefined + return this[kState].lastModified + } - // 2. Let entry be the result of creating an entry with - // name, value, and filename if given. - const entry = makeEntry(name, value, filename) + get [Symbol.toStringTag]() { + return 'File' + } + } - // 3. Append entry to this’s entry list. - this[kState].push(entry) - } + Object.defineProperties(File.prototype, { + [Symbol.toStringTag]: { + value: 'File', + configurable: true + }, + name: kEnumerableProperty, + lastModified: kEnumerableProperty + }) - delete (name) { - webidl.brandCheck(this, FormData) + webidl.converters.Blob = webidl.interfaceConverter(Blob) - webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.delete' }) + webidl.converters.BlobPart = function (V, opts) { + if (webidl.util.Type(V) === 'Object') { + if (isBlobLike(V)) { + return webidl.converters.Blob(V, { strict: false }) + } - name = webidl.converters.USVString(name) + if (ArrayBuffer.isView(V) || types.isAnyArrayBuffer(V)) { + return webidl.converters.BufferSource(V, opts) + } + } - // The delete(name) method steps are to remove all entries whose name - // is name from this’s entry list. - this[kState] = this[kState].filter(entry => entry.name !== name) - } + return webidl.converters.USVString(V, opts) + } - get (name) { - webidl.brandCheck(this, FormData) + webidl.converters['sequence'] = webidl.sequenceConverter( + webidl.converters.BlobPart + ) - webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.get' }) + // https://www.w3.org/TR/FileAPI/#dfn-FilePropertyBag + webidl.converters.FilePropertyBag = webidl.dictionaryConverter([ + { + key: 'lastModified', + converter: webidl.converters['long long'], + get defaultValue() { + return Date.now() + } + }, + { + key: 'type', + converter: webidl.converters.DOMString, + defaultValue: '' + }, + { + key: 'endings', + converter: value => { + value = webidl.converters.DOMString(value) + value = value.toLowerCase() - name = webidl.converters.USVString(name) + if (value !== 'native') { + value = 'transparent' + } - // 1. If there is no entry whose name is name in this’s entry list, - // then return null. - const idx = this[kState].findIndex((entry) => entry.name === name) - if (idx === -1) { - return null - } + return value + }, + defaultValue: 'transparent' + } + ]) - // 2. Return the value of the first entry whose name is name from - // this’s entry list. - return this[kState][idx].value - } + /** + * @see https://www.w3.org/TR/FileAPI/#process-blob-parts + * @param {(NodeJS.TypedArray|Blob|string)[]} parts + * @param {{ type: string, endings: string }} options + */ + function processBlobParts(parts, options) { + // 1. Let bytes be an empty sequence of bytes. + /** @type {NodeJS.TypedArray[]} */ + const bytes = [] + + // 2. For each element in parts: + for (const element of parts) { + // 1. If element is a USVString, run the following substeps: + if (typeof element === 'string') { + // 1. Let s be element. + let s = element + + // 2. If the endings member of options is "native", set s + // to the result of converting line endings to native + // of element. + if (options.endings === 'native') { + s = convertLineEndingsNative(s) + } - getAll (name) { - webidl.brandCheck(this, FormData) + // 3. Append the result of UTF-8 encoding s to bytes. + bytes.push(encoder.encode(s)) + } else if ( + types.isAnyArrayBuffer(element) || + types.isTypedArray(element) + ) { + // 2. If element is a BufferSource, get a copy of the + // bytes held by the buffer source, and append those + // bytes to bytes. + if (!element.buffer) { + // ArrayBuffer + bytes.push(new Uint8Array(element)) + } else { + bytes.push( + new Uint8Array( + element.buffer, + element.byteOffset, + element.byteLength + ) + ) + } + } else if (isBlobLike(element)) { + // 3. If element is a Blob, append the bytes it represents + // to bytes. + bytes.push(element) + } + } - webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.getAll' }) + // 3. Return bytes. + return bytes + } - name = webidl.converters.USVString(name) + /** + * @see https://www.w3.org/TR/FileAPI/#convert-line-endings-to-native + * @param {string} s + */ + function convertLineEndingsNative(s) { + // 1. Let native line ending be be the code point U+000A LF. + let nativeLineEnding = '\n' + + // 2. If the underlying platform’s conventions are to + // represent newlines as a carriage return and line feed + // sequence, set native line ending to the code point + // U+000D CR followed by the code point U+000A LF. + if (process.platform === 'win32') { + nativeLineEnding = '\r\n' + } + + return s.replace(/\r?\n/g, nativeLineEnding) + } + + // If this function is moved to ./util.js, some tools (such as + // rollup) will warn about circular dependencies. See: + // https://github.com/nodejs/undici/issues/1629 + function isFileLike(object) { + return ( + (NativeFile && object instanceof NativeFile) || + object instanceof File || + (object && + (typeof object.stream === 'function' || + typeof object.arrayBuffer === 'function') && + object[Symbol.toStringTag] === 'File') + ) + } - // 1. If there is no entry whose name is name in this’s entry list, - // then return the empty list. - // 2. Return the values of all entries whose name is name, in order, - // from this’s entry list. - return this[kState] - .filter((entry) => entry.name === name) - .map((entry) => entry.value) - } + module.exports = { File, FileLike, isFileLike } - has (name) { - webidl.brandCheck(this, FormData) + /***/ + }, - webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.has' }) + /***/ 72015: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' - name = webidl.converters.USVString(name) + const { isBlobLike, toUSVString, makeIterator } = + __nccwpck_require__(52538) + const { kState } = __nccwpck_require__(15861) + const { + File: UndiciFile, + FileLike, + isFileLike + } = __nccwpck_require__(78511) + const { webidl } = __nccwpck_require__(21744) + const { Blob, File: NativeFile } = __nccwpck_require__(14300) + + /** @type {globalThis['File']} */ + const File = NativeFile ?? UndiciFile + + // https://xhr.spec.whatwg.org/#formdata + class FormData { + constructor(form) { + if (form !== undefined) { + throw webidl.errors.conversionFailed({ + prefix: 'FormData constructor', + argument: 'Argument 1', + types: ['undefined'] + }) + } - // The has(name) method steps are to return true if there is an entry - // whose name is name in this’s entry list; otherwise false. - return this[kState].findIndex((entry) => entry.name === name) !== -1 - } + this[kState] = [] + } - set (name, value, filename = undefined) { - webidl.brandCheck(this, FormData) + append(name, value, filename = undefined) { + webidl.brandCheck(this, FormData) - webidl.argumentLengthCheck(arguments, 2, { header: 'FormData.set' }) + webidl.argumentLengthCheck(arguments, 2, { + header: 'FormData.append' + }) - if (arguments.length === 3 && !isBlobLike(value)) { - throw new TypeError( - "Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'" - ) - } + if (arguments.length === 3 && !isBlobLike(value)) { + throw new TypeError( + "Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'" + ) + } - // The set(name, value) and set(name, blobValue, filename) method steps - // are: - - // 1. Let value be value if given; otherwise blobValue. - - name = webidl.converters.USVString(name) - value = isBlobLike(value) - ? webidl.converters.Blob(value, { strict: false }) - : webidl.converters.USVString(value) - filename = arguments.length === 3 - ? toUSVString(filename) - : undefined - - // 2. Let entry be the result of creating an entry with name, value, and - // filename if given. - const entry = makeEntry(name, value, filename) - - // 3. If there are entries in this’s entry list whose name is name, then - // replace the first such entry with entry and remove the others. - const idx = this[kState].findIndex((entry) => entry.name === name) - if (idx !== -1) { - this[kState] = [ - ...this[kState].slice(0, idx), - entry, - ...this[kState].slice(idx + 1).filter((entry) => entry.name !== name) - ] - } else { - // 4. Otherwise, append entry to this’s entry list. - this[kState].push(entry) - } - } + // 1. Let value be value if given; otherwise blobValue. - entries () { - webidl.brandCheck(this, FormData) + name = webidl.converters.USVString(name) + value = isBlobLike(value) + ? webidl.converters.Blob(value, { strict: false }) + : webidl.converters.USVString(value) + filename = + arguments.length === 3 + ? webidl.converters.USVString(filename) + : undefined - return makeIterator( - () => this[kState].map(pair => [pair.name, pair.value]), - 'FormData', - 'key+value' - ) - } + // 2. Let entry be the result of creating an entry with + // name, value, and filename if given. + const entry = makeEntry(name, value, filename) - keys () { - webidl.brandCheck(this, FormData) + // 3. Append entry to this’s entry list. + this[kState].push(entry) + } - return makeIterator( - () => this[kState].map(pair => [pair.name, pair.value]), - 'FormData', - 'key' - ) - } + delete(name) { + webidl.brandCheck(this, FormData) - values () { - webidl.brandCheck(this, FormData) + webidl.argumentLengthCheck(arguments, 1, { + header: 'FormData.delete' + }) - return makeIterator( - () => this[kState].map(pair => [pair.name, pair.value]), - 'FormData', - 'value' - ) - } + name = webidl.converters.USVString(name) - /** - * @param {(value: string, key: string, self: FormData) => void} callbackFn - * @param {unknown} thisArg - */ - forEach (callbackFn, thisArg = globalThis) { - webidl.brandCheck(this, FormData) + // The delete(name) method steps are to remove all entries whose name + // is name from this’s entry list. + this[kState] = this[kState].filter(entry => entry.name !== name) + } - webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.forEach' }) + get(name) { + webidl.brandCheck(this, FormData) - if (typeof callbackFn !== 'function') { - throw new TypeError( - "Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'." - ) - } + webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.get' }) - for (const [key, value] of this) { - callbackFn.apply(thisArg, [value, key, this]) - } - } -} + name = webidl.converters.USVString(name) -FormData.prototype[Symbol.iterator] = FormData.prototype.entries + // 1. If there is no entry whose name is name in this’s entry list, + // then return null. + const idx = this[kState].findIndex(entry => entry.name === name) + if (idx === -1) { + return null + } -Object.defineProperties(FormData.prototype, { - [Symbol.toStringTag]: { - value: 'FormData', - configurable: true - } -}) + // 2. Return the value of the first entry whose name is name from + // this’s entry list. + return this[kState][idx].value + } -/** - * @see https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#create-an-entry - * @param {string} name - * @param {string|Blob} value - * @param {?string} filename - * @returns - */ -function makeEntry (name, value, filename) { - // 1. Set name to the result of converting name into a scalar value string. - // "To convert a string into a scalar value string, replace any surrogates - // with U+FFFD." - // see: https://nodejs.org/dist/latest-v18.x/docs/api/buffer.html#buftostringencoding-start-end - name = Buffer.from(name).toString('utf8') - - // 2. If value is a string, then set value to the result of converting - // value into a scalar value string. - if (typeof value === 'string') { - value = Buffer.from(value).toString('utf8') - } else { - // 3. Otherwise: - - // 1. If value is not a File object, then set value to a new File object, - // representing the same bytes, whose name attribute value is "blob" - if (!isFileLike(value)) { - value = value instanceof Blob - ? new File([value], 'blob', { type: value.type }) - : new FileLike(value, 'blob', { type: value.type }) - } + getAll(name) { + webidl.brandCheck(this, FormData) - // 2. If filename is given, then set value to a new File object, - // representing the same bytes, whose name attribute is filename. - if (filename !== undefined) { - /** @type {FilePropertyBag} */ - const options = { - type: value.type, - lastModified: value.lastModified - } + webidl.argumentLengthCheck(arguments, 1, { + header: 'FormData.getAll' + }) - value = (NativeFile && value instanceof NativeFile) || value instanceof UndiciFile - ? new File([value], filename, options) - : new FileLike(value, filename, options) - } - } + name = webidl.converters.USVString(name) - // 4. Return an entry whose name is name and whose value is value. - return { name, value } -} + // 1. If there is no entry whose name is name in this’s entry list, + // then return the empty list. + // 2. Return the values of all entries whose name is name, in order, + // from this’s entry list. + return this[kState] + .filter(entry => entry.name === name) + .map(entry => entry.value) + } -module.exports = { FormData } + has(name) { + webidl.brandCheck(this, FormData) + webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.has' }) -/***/ }), + name = webidl.converters.USVString(name) -/***/ 71246: -/***/ ((module) => { + // The has(name) method steps are to return true if there is an entry + // whose name is name in this’s entry list; otherwise false. + return this[kState].findIndex(entry => entry.name === name) !== -1 + } -"use strict"; + set(name, value, filename = undefined) { + webidl.brandCheck(this, FormData) + webidl.argumentLengthCheck(arguments, 2, { header: 'FormData.set' }) -// In case of breaking changes, increase the version -// number to avoid conflicts. -const globalOrigin = Symbol.for('undici.globalOrigin.1') + if (arguments.length === 3 && !isBlobLike(value)) { + throw new TypeError( + "Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'" + ) + } -function getGlobalOrigin () { - return globalThis[globalOrigin] -} + // The set(name, value) and set(name, blobValue, filename) method steps + // are: + + // 1. Let value be value if given; otherwise blobValue. + + name = webidl.converters.USVString(name) + value = isBlobLike(value) + ? webidl.converters.Blob(value, { strict: false }) + : webidl.converters.USVString(value) + filename = arguments.length === 3 ? toUSVString(filename) : undefined + + // 2. Let entry be the result of creating an entry with name, value, and + // filename if given. + const entry = makeEntry(name, value, filename) + + // 3. If there are entries in this’s entry list whose name is name, then + // replace the first such entry with entry and remove the others. + const idx = this[kState].findIndex(entry => entry.name === name) + if (idx !== -1) { + this[kState] = [ + ...this[kState].slice(0, idx), + entry, + ...this[kState] + .slice(idx + 1) + .filter(entry => entry.name !== name) + ] + } else { + // 4. Otherwise, append entry to this’s entry list. + this[kState].push(entry) + } + } -function setGlobalOrigin (newOrigin) { - if (newOrigin === undefined) { - Object.defineProperty(globalThis, globalOrigin, { - value: undefined, - writable: true, - enumerable: false, - configurable: false - }) + entries() { + webidl.brandCheck(this, FormData) - return - } + return makeIterator( + () => this[kState].map(pair => [pair.name, pair.value]), + 'FormData', + 'key+value' + ) + } - const parsedURL = new URL(newOrigin) + keys() { + webidl.brandCheck(this, FormData) - if (parsedURL.protocol !== 'http:' && parsedURL.protocol !== 'https:') { - throw new TypeError(`Only http & https urls are allowed, received ${parsedURL.protocol}`) - } + return makeIterator( + () => this[kState].map(pair => [pair.name, pair.value]), + 'FormData', + 'key' + ) + } - Object.defineProperty(globalThis, globalOrigin, { - value: parsedURL, - writable: true, - enumerable: false, - configurable: false - }) -} + values() { + webidl.brandCheck(this, FormData) -module.exports = { - getGlobalOrigin, - setGlobalOrigin -} + return makeIterator( + () => this[kState].map(pair => [pair.name, pair.value]), + 'FormData', + 'value' + ) + } + /** + * @param {(value: string, key: string, self: FormData) => void} callbackFn + * @param {unknown} thisArg + */ + forEach(callbackFn, thisArg = globalThis) { + webidl.brandCheck(this, FormData) -/***/ }), + webidl.argumentLengthCheck(arguments, 1, { + header: 'FormData.forEach' + }) -/***/ 10554: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + if (typeof callbackFn !== 'function') { + throw new TypeError( + "Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'." + ) + } -"use strict"; -// https://github.com/Ethan-Arrowood/undici-fetch + for (const [key, value] of this) { + callbackFn.apply(thisArg, [value, key, this]) + } + } + } + FormData.prototype[Symbol.iterator] = FormData.prototype.entries + Object.defineProperties(FormData.prototype, { + [Symbol.toStringTag]: { + value: 'FormData', + configurable: true + } + }) -const { kHeadersList, kConstruct } = __nccwpck_require__(72785) -const { kGuard } = __nccwpck_require__(15861) -const { kEnumerableProperty } = __nccwpck_require__(83983) -const { - makeIterator, - isValidHeaderName, - isValidHeaderValue -} = __nccwpck_require__(52538) -const { webidl } = __nccwpck_require__(21744) -const assert = __nccwpck_require__(39491) + /** + * @see https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#create-an-entry + * @param {string} name + * @param {string|Blob} value + * @param {?string} filename + * @returns + */ + function makeEntry(name, value, filename) { + // 1. Set name to the result of converting name into a scalar value string. + // "To convert a string into a scalar value string, replace any surrogates + // with U+FFFD." + // see: https://nodejs.org/dist/latest-v18.x/docs/api/buffer.html#buftostringencoding-start-end + name = Buffer.from(name).toString('utf8') + + // 2. If value is a string, then set value to the result of converting + // value into a scalar value string. + if (typeof value === 'string') { + value = Buffer.from(value).toString('utf8') + } else { + // 3. Otherwise: + + // 1. If value is not a File object, then set value to a new File object, + // representing the same bytes, whose name attribute value is "blob" + if (!isFileLike(value)) { + value = + value instanceof Blob + ? new File([value], 'blob', { type: value.type }) + : new FileLike(value, 'blob', { type: value.type }) + } -const kHeadersMap = Symbol('headers map') -const kHeadersSortedMap = Symbol('headers map sorted') + // 2. If filename is given, then set value to a new File object, + // representing the same bytes, whose name attribute is filename. + if (filename !== undefined) { + /** @type {FilePropertyBag} */ + const options = { + type: value.type, + lastModified: value.lastModified + } -/** - * @param {number} code - */ -function isHTTPWhiteSpaceCharCode (code) { - return code === 0x00a || code === 0x00d || code === 0x009 || code === 0x020 -} + value = + (NativeFile && value instanceof NativeFile) || + value instanceof UndiciFile + ? new File([value], filename, options) + : new FileLike(value, filename, options) + } + } -/** - * @see https://fetch.spec.whatwg.org/#concept-header-value-normalize - * @param {string} potentialValue - */ -function headerValueNormalize (potentialValue) { - // To normalize a byte sequence potentialValue, remove - // any leading and trailing HTTP whitespace bytes from - // potentialValue. - let i = 0; let j = potentialValue.length - - while (j > i && isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(j - 1))) --j - while (j > i && isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(i))) ++i - - return i === 0 && j === potentialValue.length ? potentialValue : potentialValue.substring(i, j) -} - -function fill (headers, object) { - // To fill a Headers object headers with a given object object, run these steps: - - // 1. If object is a sequence, then for each header in object: - // Note: webidl conversion to array has already been done. - if (Array.isArray(object)) { - for (let i = 0; i < object.length; ++i) { - const header = object[i] - // 1. If header does not contain exactly two items, then throw a TypeError. - if (header.length !== 2) { - throw webidl.errors.exception({ - header: 'Headers constructor', - message: `expected name/value pair to be length 2, found ${header.length}.` - }) + // 4. Return an entry whose name is name and whose value is value. + return { name, value } } - // 2. Append (header’s first item, header’s second item) to headers. - appendHeader(headers, header[0], header[1]) - } - } else if (typeof object === 'object' && object !== null) { - // Note: null should throw - - // 2. Otherwise, object is a record, then for each key → value in object, - // append (key, value) to headers - const keys = Object.keys(object) - for (let i = 0; i < keys.length; ++i) { - appendHeader(headers, keys[i], object[keys[i]]) - } - } else { - throw webidl.errors.conversionFailed({ - prefix: 'Headers constructor', - argument: 'Argument 1', - types: ['sequence>', 'record'] - }) - } -} + module.exports = { FormData } -/** - * @see https://fetch.spec.whatwg.org/#concept-headers-append - */ -function appendHeader (headers, name, value) { - // 1. Normalize value. - value = headerValueNormalize(value) - - // 2. If name is not a header name or value is not a - // header value, then throw a TypeError. - if (!isValidHeaderName(name)) { - throw webidl.errors.invalidArgument({ - prefix: 'Headers.append', - value: name, - type: 'header name' - }) - } else if (!isValidHeaderValue(value)) { - throw webidl.errors.invalidArgument({ - prefix: 'Headers.append', - value, - type: 'header value' - }) - } + /***/ + }, - // 3. If headers’s guard is "immutable", then throw a TypeError. - // 4. Otherwise, if headers’s guard is "request" and name is a - // forbidden header name, return. - // Note: undici does not implement forbidden header names - if (headers[kGuard] === 'immutable') { - throw new TypeError('immutable') - } else if (headers[kGuard] === 'request-no-cors') { - // 5. Otherwise, if headers’s guard is "request-no-cors": - // TODO - } + /***/ 71246: /***/ module => { + 'use strict' - // 6. Otherwise, if headers’s guard is "response" and name is a - // forbidden response-header name, return. + // In case of breaking changes, increase the version + // number to avoid conflicts. + const globalOrigin = Symbol.for('undici.globalOrigin.1') - // 7. Append (name, value) to headers’s header list. - return headers[kHeadersList].append(name, value) + function getGlobalOrigin() { + return globalThis[globalOrigin] + } - // 8. If headers’s guard is "request-no-cors", then remove - // privileged no-CORS request headers from headers -} + function setGlobalOrigin(newOrigin) { + if (newOrigin === undefined) { + Object.defineProperty(globalThis, globalOrigin, { + value: undefined, + writable: true, + enumerable: false, + configurable: false + }) -class HeadersList { - /** @type {[string, string][]|null} */ - cookies = null + return + } - constructor (init) { - if (init instanceof HeadersList) { - this[kHeadersMap] = new Map(init[kHeadersMap]) - this[kHeadersSortedMap] = init[kHeadersSortedMap] - this.cookies = init.cookies === null ? null : [...init.cookies] - } else { - this[kHeadersMap] = new Map(init) - this[kHeadersSortedMap] = null - } - } + const parsedURL = new URL(newOrigin) - // https://fetch.spec.whatwg.org/#header-list-contains - contains (name) { - // A header list list contains a header name name if list - // contains a header whose name is a byte-case-insensitive - // match for name. - name = name.toLowerCase() + if (parsedURL.protocol !== 'http:' && parsedURL.protocol !== 'https:') { + throw new TypeError( + `Only http & https urls are allowed, received ${parsedURL.protocol}` + ) + } - return this[kHeadersMap].has(name) - } + Object.defineProperty(globalThis, globalOrigin, { + value: parsedURL, + writable: true, + enumerable: false, + configurable: false + }) + } - clear () { - this[kHeadersMap].clear() - this[kHeadersSortedMap] = null - this.cookies = null - } + module.exports = { + getGlobalOrigin, + setGlobalOrigin + } - // https://fetch.spec.whatwg.org/#concept-header-list-append - append (name, value) { - this[kHeadersSortedMap] = null - - // 1. If list contains name, then set name to the first such - // header’s name. - const lowercaseName = name.toLowerCase() - const exists = this[kHeadersMap].get(lowercaseName) - - // 2. Append (name, value) to list. - if (exists) { - const delimiter = lowercaseName === 'cookie' ? '; ' : ', ' - this[kHeadersMap].set(lowercaseName, { - name: exists.name, - value: `${exists.value}${delimiter}${value}` - }) - } else { - this[kHeadersMap].set(lowercaseName, { name, value }) - } + /***/ + }, - if (lowercaseName === 'set-cookie') { - this.cookies ??= [] - this.cookies.push(value) - } - } + /***/ 10554: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + // https://github.com/Ethan-Arrowood/undici-fetch + + const { kHeadersList, kConstruct } = __nccwpck_require__(72785) + const { kGuard } = __nccwpck_require__(15861) + const { kEnumerableProperty } = __nccwpck_require__(83983) + const { makeIterator, isValidHeaderName, isValidHeaderValue } = + __nccwpck_require__(52538) + const { webidl } = __nccwpck_require__(21744) + const assert = __nccwpck_require__(39491) + + const kHeadersMap = Symbol('headers map') + const kHeadersSortedMap = Symbol('headers map sorted') - // https://fetch.spec.whatwg.org/#concept-header-list-set - set (name, value) { - this[kHeadersSortedMap] = null - const lowercaseName = name.toLowerCase() + /** + * @param {number} code + */ + function isHTTPWhiteSpaceCharCode(code) { + return ( + code === 0x00a || code === 0x00d || code === 0x009 || code === 0x020 + ) + } - if (lowercaseName === 'set-cookie') { - this.cookies = [value] - } + /** + * @see https://fetch.spec.whatwg.org/#concept-header-value-normalize + * @param {string} potentialValue + */ + function headerValueNormalize(potentialValue) { + // To normalize a byte sequence potentialValue, remove + // any leading and trailing HTTP whitespace bytes from + // potentialValue. + let i = 0 + let j = potentialValue.length + + while ( + j > i && + isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(j - 1)) + ) + --j + while (j > i && isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(i))) + ++i + + return i === 0 && j === potentialValue.length + ? potentialValue + : potentialValue.substring(i, j) + } + + function fill(headers, object) { + // To fill a Headers object headers with a given object object, run these steps: + + // 1. If object is a sequence, then for each header in object: + // Note: webidl conversion to array has already been done. + if (Array.isArray(object)) { + for (let i = 0; i < object.length; ++i) { + const header = object[i] + // 1. If header does not contain exactly two items, then throw a TypeError. + if (header.length !== 2) { + throw webidl.errors.exception({ + header: 'Headers constructor', + message: `expected name/value pair to be length 2, found ${header.length}.` + }) + } - // 1. If list contains name, then set the value of - // the first such header to value and remove the - // others. - // 2. Otherwise, append header (name, value) to list. - this[kHeadersMap].set(lowercaseName, { name, value }) - } + // 2. Append (header’s first item, header’s second item) to headers. + appendHeader(headers, header[0], header[1]) + } + } else if (typeof object === 'object' && object !== null) { + // Note: null should throw + + // 2. Otherwise, object is a record, then for each key → value in object, + // append (key, value) to headers + const keys = Object.keys(object) + for (let i = 0; i < keys.length; ++i) { + appendHeader(headers, keys[i], object[keys[i]]) + } + } else { + throw webidl.errors.conversionFailed({ + prefix: 'Headers constructor', + argument: 'Argument 1', + types: [ + 'sequence>', + 'record' + ] + }) + } + } - // https://fetch.spec.whatwg.org/#concept-header-list-delete - delete (name) { - this[kHeadersSortedMap] = null + /** + * @see https://fetch.spec.whatwg.org/#concept-headers-append + */ + function appendHeader(headers, name, value) { + // 1. Normalize value. + value = headerValueNormalize(value) + + // 2. If name is not a header name or value is not a + // header value, then throw a TypeError. + if (!isValidHeaderName(name)) { + throw webidl.errors.invalidArgument({ + prefix: 'Headers.append', + value: name, + type: 'header name' + }) + } else if (!isValidHeaderValue(value)) { + throw webidl.errors.invalidArgument({ + prefix: 'Headers.append', + value, + type: 'header value' + }) + } - name = name.toLowerCase() + // 3. If headers’s guard is "immutable", then throw a TypeError. + // 4. Otherwise, if headers’s guard is "request" and name is a + // forbidden header name, return. + // Note: undici does not implement forbidden header names + if (headers[kGuard] === 'immutable') { + throw new TypeError('immutable') + } else if (headers[kGuard] === 'request-no-cors') { + // 5. Otherwise, if headers’s guard is "request-no-cors": + // TODO + } - if (name === 'set-cookie') { - this.cookies = null - } + // 6. Otherwise, if headers’s guard is "response" and name is a + // forbidden response-header name, return. - this[kHeadersMap].delete(name) - } + // 7. Append (name, value) to headers’s header list. + return headers[kHeadersList].append(name, value) - // https://fetch.spec.whatwg.org/#concept-header-list-get - get (name) { - const value = this[kHeadersMap].get(name.toLowerCase()) + // 8. If headers’s guard is "request-no-cors", then remove + // privileged no-CORS request headers from headers + } - // 1. If list does not contain name, then return null. - // 2. Return the values of all headers in list whose name - // is a byte-case-insensitive match for name, - // separated from each other by 0x2C 0x20, in order. - return value === undefined ? null : value.value - } + class HeadersList { + /** @type {[string, string][]|null} */ + cookies = null - * [Symbol.iterator] () { - // use the lowercased name - for (const [name, { value }] of this[kHeadersMap]) { - yield [name, value] - } - } + constructor(init) { + if (init instanceof HeadersList) { + this[kHeadersMap] = new Map(init[kHeadersMap]) + this[kHeadersSortedMap] = init[kHeadersSortedMap] + this.cookies = init.cookies === null ? null : [...init.cookies] + } else { + this[kHeadersMap] = new Map(init) + this[kHeadersSortedMap] = null + } + } - get entries () { - const headers = {} + // https://fetch.spec.whatwg.org/#header-list-contains + contains(name) { + // A header list list contains a header name name if list + // contains a header whose name is a byte-case-insensitive + // match for name. + name = name.toLowerCase() - if (this[kHeadersMap].size) { - for (const { name, value } of this[kHeadersMap].values()) { - headers[name] = value - } - } + return this[kHeadersMap].has(name) + } - return headers - } -} + clear() { + this[kHeadersMap].clear() + this[kHeadersSortedMap] = null + this.cookies = null + } -// https://fetch.spec.whatwg.org/#headers-class -class Headers { - constructor (init = undefined) { - if (init === kConstruct) { - return - } - this[kHeadersList] = new HeadersList() + // https://fetch.spec.whatwg.org/#concept-header-list-append + append(name, value) { + this[kHeadersSortedMap] = null - // The new Headers(init) constructor steps are: + // 1. If list contains name, then set name to the first such + // header’s name. + const lowercaseName = name.toLowerCase() + const exists = this[kHeadersMap].get(lowercaseName) - // 1. Set this’s guard to "none". - this[kGuard] = 'none' + // 2. Append (name, value) to list. + if (exists) { + const delimiter = lowercaseName === 'cookie' ? '; ' : ', ' + this[kHeadersMap].set(lowercaseName, { + name: exists.name, + value: `${exists.value}${delimiter}${value}` + }) + } else { + this[kHeadersMap].set(lowercaseName, { name, value }) + } - // 2. If init is given, then fill this with init. - if (init !== undefined) { - init = webidl.converters.HeadersInit(init) - fill(this, init) - } - } + if (lowercaseName === 'set-cookie') { + this.cookies ??= [] + this.cookies.push(value) + } + } - // https://fetch.spec.whatwg.org/#dom-headers-append - append (name, value) { - webidl.brandCheck(this, Headers) + // https://fetch.spec.whatwg.org/#concept-header-list-set + set(name, value) { + this[kHeadersSortedMap] = null + const lowercaseName = name.toLowerCase() - webidl.argumentLengthCheck(arguments, 2, { header: 'Headers.append' }) + if (lowercaseName === 'set-cookie') { + this.cookies = [value] + } - name = webidl.converters.ByteString(name) - value = webidl.converters.ByteString(value) + // 1. If list contains name, then set the value of + // the first such header to value and remove the + // others. + // 2. Otherwise, append header (name, value) to list. + this[kHeadersMap].set(lowercaseName, { name, value }) + } - return appendHeader(this, name, value) - } + // https://fetch.spec.whatwg.org/#concept-header-list-delete + delete(name) { + this[kHeadersSortedMap] = null - // https://fetch.spec.whatwg.org/#dom-headers-delete - delete (name) { - webidl.brandCheck(this, Headers) + name = name.toLowerCase() - webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.delete' }) + if (name === 'set-cookie') { + this.cookies = null + } - name = webidl.converters.ByteString(name) + this[kHeadersMap].delete(name) + } - // 1. If name is not a header name, then throw a TypeError. - if (!isValidHeaderName(name)) { - throw webidl.errors.invalidArgument({ - prefix: 'Headers.delete', - value: name, - type: 'header name' - }) - } + // https://fetch.spec.whatwg.org/#concept-header-list-get + get(name) { + const value = this[kHeadersMap].get(name.toLowerCase()) - // 2. If this’s guard is "immutable", then throw a TypeError. - // 3. Otherwise, if this’s guard is "request" and name is a - // forbidden header name, return. - // 4. Otherwise, if this’s guard is "request-no-cors", name - // is not a no-CORS-safelisted request-header name, and - // name is not a privileged no-CORS request-header name, - // return. - // 5. Otherwise, if this’s guard is "response" and name is - // a forbidden response-header name, return. - // Note: undici does not implement forbidden header names - if (this[kGuard] === 'immutable') { - throw new TypeError('immutable') - } else if (this[kGuard] === 'request-no-cors') { - // TODO - } + // 1. If list does not contain name, then return null. + // 2. Return the values of all headers in list whose name + // is a byte-case-insensitive match for name, + // separated from each other by 0x2C 0x20, in order. + return value === undefined ? null : value.value + } - // 6. If this’s header list does not contain name, then - // return. - if (!this[kHeadersList].contains(name)) { - return - } + *[Symbol.iterator]() { + // use the lowercased name + for (const [name, { value }] of this[kHeadersMap]) { + yield [name, value] + } + } - // 7. Delete name from this’s header list. - // 8. If this’s guard is "request-no-cors", then remove - // privileged no-CORS request headers from this. - this[kHeadersList].delete(name) - } + get entries() { + const headers = {} - // https://fetch.spec.whatwg.org/#dom-headers-get - get (name) { - webidl.brandCheck(this, Headers) + if (this[kHeadersMap].size) { + for (const { name, value } of this[kHeadersMap].values()) { + headers[name] = value + } + } - webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.get' }) + return headers + } + } - name = webidl.converters.ByteString(name) + // https://fetch.spec.whatwg.org/#headers-class + class Headers { + constructor(init = undefined) { + if (init === kConstruct) { + return + } + this[kHeadersList] = new HeadersList() - // 1. If name is not a header name, then throw a TypeError. - if (!isValidHeaderName(name)) { - throw webidl.errors.invalidArgument({ - prefix: 'Headers.get', - value: name, - type: 'header name' - }) - } + // The new Headers(init) constructor steps are: - // 2. Return the result of getting name from this’s header - // list. - return this[kHeadersList].get(name) - } + // 1. Set this’s guard to "none". + this[kGuard] = 'none' - // https://fetch.spec.whatwg.org/#dom-headers-has - has (name) { - webidl.brandCheck(this, Headers) + // 2. If init is given, then fill this with init. + if (init !== undefined) { + init = webidl.converters.HeadersInit(init) + fill(this, init) + } + } - webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.has' }) + // https://fetch.spec.whatwg.org/#dom-headers-append + append(name, value) { + webidl.brandCheck(this, Headers) - name = webidl.converters.ByteString(name) + webidl.argumentLengthCheck(arguments, 2, { header: 'Headers.append' }) - // 1. If name is not a header name, then throw a TypeError. - if (!isValidHeaderName(name)) { - throw webidl.errors.invalidArgument({ - prefix: 'Headers.has', - value: name, - type: 'header name' - }) - } + name = webidl.converters.ByteString(name) + value = webidl.converters.ByteString(value) - // 2. Return true if this’s header list contains name; - // otherwise false. - return this[kHeadersList].contains(name) - } + return appendHeader(this, name, value) + } - // https://fetch.spec.whatwg.org/#dom-headers-set - set (name, value) { - webidl.brandCheck(this, Headers) + // https://fetch.spec.whatwg.org/#dom-headers-delete + delete(name) { + webidl.brandCheck(this, Headers) - webidl.argumentLengthCheck(arguments, 2, { header: 'Headers.set' }) + webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.delete' }) - name = webidl.converters.ByteString(name) - value = webidl.converters.ByteString(value) + name = webidl.converters.ByteString(name) - // 1. Normalize value. - value = headerValueNormalize(value) + // 1. If name is not a header name, then throw a TypeError. + if (!isValidHeaderName(name)) { + throw webidl.errors.invalidArgument({ + prefix: 'Headers.delete', + value: name, + type: 'header name' + }) + } - // 2. If name is not a header name or value is not a - // header value, then throw a TypeError. - if (!isValidHeaderName(name)) { - throw webidl.errors.invalidArgument({ - prefix: 'Headers.set', - value: name, - type: 'header name' - }) - } else if (!isValidHeaderValue(value)) { - throw webidl.errors.invalidArgument({ - prefix: 'Headers.set', - value, - type: 'header value' - }) - } + // 2. If this’s guard is "immutable", then throw a TypeError. + // 3. Otherwise, if this’s guard is "request" and name is a + // forbidden header name, return. + // 4. Otherwise, if this’s guard is "request-no-cors", name + // is not a no-CORS-safelisted request-header name, and + // name is not a privileged no-CORS request-header name, + // return. + // 5. Otherwise, if this’s guard is "response" and name is + // a forbidden response-header name, return. + // Note: undici does not implement forbidden header names + if (this[kGuard] === 'immutable') { + throw new TypeError('immutable') + } else if (this[kGuard] === 'request-no-cors') { + // TODO + } - // 3. If this’s guard is "immutable", then throw a TypeError. - // 4. Otherwise, if this’s guard is "request" and name is a - // forbidden header name, return. - // 5. Otherwise, if this’s guard is "request-no-cors" and - // name/value is not a no-CORS-safelisted request-header, - // return. - // 6. Otherwise, if this’s guard is "response" and name is a - // forbidden response-header name, return. - // Note: undici does not implement forbidden header names - if (this[kGuard] === 'immutable') { - throw new TypeError('immutable') - } else if (this[kGuard] === 'request-no-cors') { - // TODO - } + // 6. If this’s header list does not contain name, then + // return. + if (!this[kHeadersList].contains(name)) { + return + } - // 7. Set (name, value) in this’s header list. - // 8. If this’s guard is "request-no-cors", then remove - // privileged no-CORS request headers from this - this[kHeadersList].set(name, value) - } + // 7. Delete name from this’s header list. + // 8. If this’s guard is "request-no-cors", then remove + // privileged no-CORS request headers from this. + this[kHeadersList].delete(name) + } - // https://fetch.spec.whatwg.org/#dom-headers-getsetcookie - getSetCookie () { - webidl.brandCheck(this, Headers) + // https://fetch.spec.whatwg.org/#dom-headers-get + get(name) { + webidl.brandCheck(this, Headers) - // 1. If this’s header list does not contain `Set-Cookie`, then return « ». - // 2. Return the values of all headers in this’s header list whose name is - // a byte-case-insensitive match for `Set-Cookie`, in order. + webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.get' }) - const list = this[kHeadersList].cookies + name = webidl.converters.ByteString(name) - if (list) { - return [...list] - } + // 1. If name is not a header name, then throw a TypeError. + if (!isValidHeaderName(name)) { + throw webidl.errors.invalidArgument({ + prefix: 'Headers.get', + value: name, + type: 'header name' + }) + } - return [] - } + // 2. Return the result of getting name from this’s header + // list. + return this[kHeadersList].get(name) + } - // https://fetch.spec.whatwg.org/#concept-header-list-sort-and-combine - get [kHeadersSortedMap] () { - if (this[kHeadersList][kHeadersSortedMap]) { - return this[kHeadersList][kHeadersSortedMap] - } + // https://fetch.spec.whatwg.org/#dom-headers-has + has(name) { + webidl.brandCheck(this, Headers) - // 1. Let headers be an empty list of headers with the key being the name - // and value the value. - const headers = [] + webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.has' }) - // 2. Let names be the result of convert header names to a sorted-lowercase - // set with all the names of the headers in list. - const names = [...this[kHeadersList]].sort((a, b) => a[0] < b[0] ? -1 : 1) - const cookies = this[kHeadersList].cookies + name = webidl.converters.ByteString(name) - // 3. For each name of names: - for (let i = 0; i < names.length; ++i) { - const [name, value] = names[i] - // 1. If name is `set-cookie`, then: - if (name === 'set-cookie') { - // 1. Let values be a list of all values of headers in list whose name - // is a byte-case-insensitive match for name, in order. + // 1. If name is not a header name, then throw a TypeError. + if (!isValidHeaderName(name)) { + throw webidl.errors.invalidArgument({ + prefix: 'Headers.has', + value: name, + type: 'header name' + }) + } - // 2. For each value of values: - // 1. Append (name, value) to headers. - for (let j = 0; j < cookies.length; ++j) { - headers.push([name, cookies[j]]) + // 2. Return true if this’s header list contains name; + // otherwise false. + return this[kHeadersList].contains(name) } - } else { - // 2. Otherwise: - - // 1. Let value be the result of getting name from list. - - // 2. Assert: value is non-null. - assert(value !== null) - - // 3. Append (name, value) to headers. - headers.push([name, value]) - } - } - this[kHeadersList][kHeadersSortedMap] = headers + // https://fetch.spec.whatwg.org/#dom-headers-set + set(name, value) { + webidl.brandCheck(this, Headers) - // 4. Return headers. - return headers - } + webidl.argumentLengthCheck(arguments, 2, { header: 'Headers.set' }) - keys () { - webidl.brandCheck(this, Headers) + name = webidl.converters.ByteString(name) + value = webidl.converters.ByteString(value) - if (this[kGuard] === 'immutable') { - const value = this[kHeadersSortedMap] - return makeIterator(() => value, 'Headers', - 'key') - } + // 1. Normalize value. + value = headerValueNormalize(value) - return makeIterator( - () => [...this[kHeadersSortedMap].values()], - 'Headers', - 'key' - ) - } + // 2. If name is not a header name or value is not a + // header value, then throw a TypeError. + if (!isValidHeaderName(name)) { + throw webidl.errors.invalidArgument({ + prefix: 'Headers.set', + value: name, + type: 'header name' + }) + } else if (!isValidHeaderValue(value)) { + throw webidl.errors.invalidArgument({ + prefix: 'Headers.set', + value, + type: 'header value' + }) + } - values () { - webidl.brandCheck(this, Headers) + // 3. If this’s guard is "immutable", then throw a TypeError. + // 4. Otherwise, if this’s guard is "request" and name is a + // forbidden header name, return. + // 5. Otherwise, if this’s guard is "request-no-cors" and + // name/value is not a no-CORS-safelisted request-header, + // return. + // 6. Otherwise, if this’s guard is "response" and name is a + // forbidden response-header name, return. + // Note: undici does not implement forbidden header names + if (this[kGuard] === 'immutable') { + throw new TypeError('immutable') + } else if (this[kGuard] === 'request-no-cors') { + // TODO + } - if (this[kGuard] === 'immutable') { - const value = this[kHeadersSortedMap] - return makeIterator(() => value, 'Headers', - 'value') - } + // 7. Set (name, value) in this’s header list. + // 8. If this’s guard is "request-no-cors", then remove + // privileged no-CORS request headers from this + this[kHeadersList].set(name, value) + } - return makeIterator( - () => [...this[kHeadersSortedMap].values()], - 'Headers', - 'value' - ) - } + // https://fetch.spec.whatwg.org/#dom-headers-getsetcookie + getSetCookie() { + webidl.brandCheck(this, Headers) - entries () { - webidl.brandCheck(this, Headers) + // 1. If this’s header list does not contain `Set-Cookie`, then return « ». + // 2. Return the values of all headers in this’s header list whose name is + // a byte-case-insensitive match for `Set-Cookie`, in order. - if (this[kGuard] === 'immutable') { - const value = this[kHeadersSortedMap] - return makeIterator(() => value, 'Headers', - 'key+value') - } + const list = this[kHeadersList].cookies - return makeIterator( - () => [...this[kHeadersSortedMap].values()], - 'Headers', - 'key+value' - ) - } + if (list) { + return [...list] + } - /** - * @param {(value: string, key: string, self: Headers) => void} callbackFn - * @param {unknown} thisArg - */ - forEach (callbackFn, thisArg = globalThis) { - webidl.brandCheck(this, Headers) + return [] + } - webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.forEach' }) + // https://fetch.spec.whatwg.org/#concept-header-list-sort-and-combine + get [kHeadersSortedMap]() { + if (this[kHeadersList][kHeadersSortedMap]) { + return this[kHeadersList][kHeadersSortedMap] + } - if (typeof callbackFn !== 'function') { - throw new TypeError( - "Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'." - ) - } + // 1. Let headers be an empty list of headers with the key being the name + // and value the value. + const headers = [] - for (const [key, value] of this) { - callbackFn.apply(thisArg, [value, key, this]) - } - } + // 2. Let names be the result of convert header names to a sorted-lowercase + // set with all the names of the headers in list. + const names = [...this[kHeadersList]].sort((a, b) => + a[0] < b[0] ? -1 : 1 + ) + const cookies = this[kHeadersList].cookies + + // 3. For each name of names: + for (let i = 0; i < names.length; ++i) { + const [name, value] = names[i] + // 1. If name is `set-cookie`, then: + if (name === 'set-cookie') { + // 1. Let values be a list of all values of headers in list whose name + // is a byte-case-insensitive match for name, in order. + + // 2. For each value of values: + // 1. Append (name, value) to headers. + for (let j = 0; j < cookies.length; ++j) { + headers.push([name, cookies[j]]) + } + } else { + // 2. Otherwise: - [Symbol.for('nodejs.util.inspect.custom')] () { - webidl.brandCheck(this, Headers) + // 1. Let value be the result of getting name from list. - return this[kHeadersList] - } -} - -Headers.prototype[Symbol.iterator] = Headers.prototype.entries - -Object.defineProperties(Headers.prototype, { - append: kEnumerableProperty, - delete: kEnumerableProperty, - get: kEnumerableProperty, - has: kEnumerableProperty, - set: kEnumerableProperty, - getSetCookie: kEnumerableProperty, - keys: kEnumerableProperty, - values: kEnumerableProperty, - entries: kEnumerableProperty, - forEach: kEnumerableProperty, - [Symbol.iterator]: { enumerable: false }, - [Symbol.toStringTag]: { - value: 'Headers', - configurable: true - } -}) + // 2. Assert: value is non-null. + assert(value !== null) -webidl.converters.HeadersInit = function (V) { - if (webidl.util.Type(V) === 'Object') { - if (V[Symbol.iterator]) { - return webidl.converters['sequence>'](V) - } + // 3. Append (name, value) to headers. + headers.push([name, value]) + } + } - return webidl.converters['record'](V) - } + this[kHeadersList][kHeadersSortedMap] = headers - throw webidl.errors.conversionFailed({ - prefix: 'Headers constructor', - argument: 'Argument 1', - types: ['sequence>', 'record'] - }) -} - -module.exports = { - fill, - Headers, - HeadersList -} - - -/***/ }), - -/***/ 74881: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; -// https://github.com/Ethan-Arrowood/undici-fetch - - - -const { - Response, - makeNetworkError, - makeAppropriateNetworkError, - filterResponse, - makeResponse -} = __nccwpck_require__(27823) -const { Headers } = __nccwpck_require__(10554) -const { Request, makeRequest } = __nccwpck_require__(48359) -const zlib = __nccwpck_require__(59796) -const { - bytesMatch, - makePolicyContainer, - clonePolicyContainer, - requestBadPort, - TAOCheck, - appendRequestOriginHeader, - responseLocationURL, - requestCurrentURL, - setRequestReferrerPolicyOnRedirect, - tryUpgradeRequestToAPotentiallyTrustworthyURL, - createOpaqueTimingInfo, - appendFetchMetadata, - corsCheck, - crossOriginResourcePolicyCheck, - determineRequestsReferrer, - coarsenedSharedCurrentTime, - createDeferredPromise, - isBlobLike, - sameOrigin, - isCancelled, - isAborted, - isErrorLike, - fullyReadBody, - readableStreamClose, - isomorphicEncode, - urlIsLocal, - urlIsHttpHttpsScheme, - urlHasHttpsScheme -} = __nccwpck_require__(52538) -const { kState, kHeaders, kGuard, kRealm } = __nccwpck_require__(15861) -const assert = __nccwpck_require__(39491) -const { safelyExtractBody } = __nccwpck_require__(41472) -const { - redirectStatusSet, - nullBodyStatus, - safeMethodsSet, - requestBodyHeader, - subresourceSet, - DOMException -} = __nccwpck_require__(41037) -const { kHeadersList } = __nccwpck_require__(72785) -const EE = __nccwpck_require__(82361) -const { Readable, pipeline } = __nccwpck_require__(12781) -const { addAbortListener, isErrored, isReadable, nodeMajor, nodeMinor } = __nccwpck_require__(83983) -const { dataURLProcessor, serializeAMimeType } = __nccwpck_require__(685) -const { TransformStream } = __nccwpck_require__(35356) -const { getGlobalDispatcher } = __nccwpck_require__(21892) -const { webidl } = __nccwpck_require__(21744) -const { STATUS_CODES } = __nccwpck_require__(13685) -const GET_OR_HEAD = ['GET', 'HEAD'] - -/** @type {import('buffer').resolveObjectURL} */ -let resolveObjectURL -let ReadableStream = globalThis.ReadableStream - -class Fetch extends EE { - constructor (dispatcher) { - super() - - this.dispatcher = dispatcher - this.connection = null - this.dump = false - this.state = 'ongoing' - // 2 terminated listeners get added per request, - // but only 1 gets removed. If there are 20 redirects, - // 21 listeners will be added. - // See https://github.com/nodejs/undici/issues/1711 - // TODO (fix): Find and fix root cause for leaked listener. - this.setMaxListeners(21) - } + // 4. Return headers. + return headers + } - terminate (reason) { - if (this.state !== 'ongoing') { - return - } + keys() { + webidl.brandCheck(this, Headers) - this.state = 'terminated' - this.connection?.destroy(reason) - this.emit('terminated', reason) - } + if (this[kGuard] === 'immutable') { + const value = this[kHeadersSortedMap] + return makeIterator(() => value, 'Headers', 'key') + } - // https://fetch.spec.whatwg.org/#fetch-controller-abort - abort (error) { - if (this.state !== 'ongoing') { - return - } + return makeIterator( + () => [...this[kHeadersSortedMap].values()], + 'Headers', + 'key' + ) + } - // 1. Set controller’s state to "aborted". - this.state = 'aborted' + values() { + webidl.brandCheck(this, Headers) - // 2. Let fallbackError be an "AbortError" DOMException. - // 3. Set error to fallbackError if it is not given. - if (!error) { - error = new DOMException('The operation was aborted.', 'AbortError') - } + if (this[kGuard] === 'immutable') { + const value = this[kHeadersSortedMap] + return makeIterator(() => value, 'Headers', 'value') + } - // 4. Let serializedError be StructuredSerialize(error). - // If that threw an exception, catch it, and let - // serializedError be StructuredSerialize(fallbackError). + return makeIterator( + () => [...this[kHeadersSortedMap].values()], + 'Headers', + 'value' + ) + } - // 5. Set controller’s serialized abort reason to serializedError. - this.serializedAbortReason = error + entries() { + webidl.brandCheck(this, Headers) - this.connection?.destroy(error) - this.emit('terminated', error) - } -} + if (this[kGuard] === 'immutable') { + const value = this[kHeadersSortedMap] + return makeIterator(() => value, 'Headers', 'key+value') + } -// https://fetch.spec.whatwg.org/#fetch-method -function fetch (input, init = {}) { - webidl.argumentLengthCheck(arguments, 1, { header: 'globalThis.fetch' }) + return makeIterator( + () => [...this[kHeadersSortedMap].values()], + 'Headers', + 'key+value' + ) + } - // 1. Let p be a new promise. - const p = createDeferredPromise() + /** + * @param {(value: string, key: string, self: Headers) => void} callbackFn + * @param {unknown} thisArg + */ + forEach(callbackFn, thisArg = globalThis) { + webidl.brandCheck(this, Headers) - // 2. Let requestObject be the result of invoking the initial value of - // Request as constructor with input and init as arguments. If this throws - // an exception, reject p with it and return p. - let requestObject + webidl.argumentLengthCheck(arguments, 1, { + header: 'Headers.forEach' + }) - try { - requestObject = new Request(input, init) - } catch (e) { - p.reject(e) - return p.promise - } + if (typeof callbackFn !== 'function') { + throw new TypeError( + "Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'." + ) + } - // 3. Let request be requestObject’s request. - const request = requestObject[kState] + for (const [key, value] of this) { + callbackFn.apply(thisArg, [value, key, this]) + } + } - // 4. If requestObject’s signal’s aborted flag is set, then: - if (requestObject.signal.aborted) { - // 1. Abort the fetch() call with p, request, null, and - // requestObject’s signal’s abort reason. - abortFetch(p, request, null, requestObject.signal.reason) + [Symbol.for('nodejs.util.inspect.custom')]() { + webidl.brandCheck(this, Headers) - // 2. Return p. - return p.promise - } + return this[kHeadersList] + } + } - // 5. Let globalObject be request’s client’s global object. - const globalObject = request.client.globalObject + Headers.prototype[Symbol.iterator] = Headers.prototype.entries - // 6. If globalObject is a ServiceWorkerGlobalScope object, then set - // request’s service-workers mode to "none". - if (globalObject?.constructor?.name === 'ServiceWorkerGlobalScope') { - request.serviceWorkers = 'none' - } + Object.defineProperties(Headers.prototype, { + append: kEnumerableProperty, + delete: kEnumerableProperty, + get: kEnumerableProperty, + has: kEnumerableProperty, + set: kEnumerableProperty, + getSetCookie: kEnumerableProperty, + keys: kEnumerableProperty, + values: kEnumerableProperty, + entries: kEnumerableProperty, + forEach: kEnumerableProperty, + [Symbol.iterator]: { enumerable: false }, + [Symbol.toStringTag]: { + value: 'Headers', + configurable: true + } + }) - // 7. Let responseObject be null. - let responseObject = null + webidl.converters.HeadersInit = function (V) { + if (webidl.util.Type(V) === 'Object') { + if (V[Symbol.iterator]) { + return webidl.converters['sequence>'](V) + } - // 8. Let relevantRealm be this’s relevant Realm. - const relevantRealm = null + return webidl.converters['record'](V) + } - // 9. Let locallyAborted be false. - let locallyAborted = false + throw webidl.errors.conversionFailed({ + prefix: 'Headers constructor', + argument: 'Argument 1', + types: [ + 'sequence>', + 'record' + ] + }) + } - // 10. Let controller be null. - let controller = null + module.exports = { + fill, + Headers, + HeadersList + } - // 11. Add the following abort steps to requestObject’s signal: - addAbortListener( - requestObject.signal, - () => { - // 1. Set locallyAborted to true. - locallyAborted = true + /***/ + }, - // 2. Assert: controller is non-null. - assert(controller != null) + /***/ 74881: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + // https://github.com/Ethan-Arrowood/undici-fetch - // 3. Abort controller with requestObject’s signal’s abort reason. - controller.abort(requestObject.signal.reason) + const { + Response, + makeNetworkError, + makeAppropriateNetworkError, + filterResponse, + makeResponse + } = __nccwpck_require__(27823) + const { Headers } = __nccwpck_require__(10554) + const { Request, makeRequest } = __nccwpck_require__(48359) + const zlib = __nccwpck_require__(59796) + const { + bytesMatch, + makePolicyContainer, + clonePolicyContainer, + requestBadPort, + TAOCheck, + appendRequestOriginHeader, + responseLocationURL, + requestCurrentURL, + setRequestReferrerPolicyOnRedirect, + tryUpgradeRequestToAPotentiallyTrustworthyURL, + createOpaqueTimingInfo, + appendFetchMetadata, + corsCheck, + crossOriginResourcePolicyCheck, + determineRequestsReferrer, + coarsenedSharedCurrentTime, + createDeferredPromise, + isBlobLike, + sameOrigin, + isCancelled, + isAborted, + isErrorLike, + fullyReadBody, + readableStreamClose, + isomorphicEncode, + urlIsLocal, + urlIsHttpHttpsScheme, + urlHasHttpsScheme + } = __nccwpck_require__(52538) + const { kState, kHeaders, kGuard, kRealm } = __nccwpck_require__(15861) + const assert = __nccwpck_require__(39491) + const { safelyExtractBody } = __nccwpck_require__(41472) + const { + redirectStatusSet, + nullBodyStatus, + safeMethodsSet, + requestBodyHeader, + subresourceSet, + DOMException + } = __nccwpck_require__(41037) + const { kHeadersList } = __nccwpck_require__(72785) + const EE = __nccwpck_require__(82361) + const { Readable, pipeline } = __nccwpck_require__(12781) + const { addAbortListener, isErrored, isReadable, nodeMajor, nodeMinor } = + __nccwpck_require__(83983) + const { dataURLProcessor, serializeAMimeType } = __nccwpck_require__(685) + const { TransformStream } = __nccwpck_require__(35356) + const { getGlobalDispatcher } = __nccwpck_require__(21892) + const { webidl } = __nccwpck_require__(21744) + const { STATUS_CODES } = __nccwpck_require__(13685) + const GET_OR_HEAD = ['GET', 'HEAD'] + + /** @type {import('buffer').resolveObjectURL} */ + let resolveObjectURL + let ReadableStream = globalThis.ReadableStream + + class Fetch extends EE { + constructor(dispatcher) { + super() + + this.dispatcher = dispatcher + this.connection = null + this.dump = false + this.state = 'ongoing' + // 2 terminated listeners get added per request, + // but only 1 gets removed. If there are 20 redirects, + // 21 listeners will be added. + // See https://github.com/nodejs/undici/issues/1711 + // TODO (fix): Find and fix root cause for leaked listener. + this.setMaxListeners(21) + } + + terminate(reason) { + if (this.state !== 'ongoing') { + return + } - // 4. Abort the fetch() call with p, request, responseObject, - // and requestObject’s signal’s abort reason. - abortFetch(p, request, responseObject, requestObject.signal.reason) - } - ) + this.state = 'terminated' + this.connection?.destroy(reason) + this.emit('terminated', reason) + } - // 12. Let handleFetchDone given response response be to finalize and - // report timing with response, globalObject, and "fetch". - const handleFetchDone = (response) => - finalizeAndReportTiming(response, 'fetch') + // https://fetch.spec.whatwg.org/#fetch-controller-abort + abort(error) { + if (this.state !== 'ongoing') { + return + } - // 13. Set controller to the result of calling fetch given request, - // with processResponseEndOfBody set to handleFetchDone, and processResponse - // given response being these substeps: + // 1. Set controller’s state to "aborted". + this.state = 'aborted' - const processResponse = (response) => { - // 1. If locallyAborted is true, terminate these substeps. - if (locallyAborted) { - return Promise.resolve() - } + // 2. Let fallbackError be an "AbortError" DOMException. + // 3. Set error to fallbackError if it is not given. + if (!error) { + error = new DOMException('The operation was aborted.', 'AbortError') + } - // 2. If response’s aborted flag is set, then: - if (response.aborted) { - // 1. Let deserializedError be the result of deserialize a serialized - // abort reason given controller’s serialized abort reason and - // relevantRealm. + // 4. Let serializedError be StructuredSerialize(error). + // If that threw an exception, catch it, and let + // serializedError be StructuredSerialize(fallbackError). - // 2. Abort the fetch() call with p, request, responseObject, and - // deserializedError. + // 5. Set controller’s serialized abort reason to serializedError. + this.serializedAbortReason = error - abortFetch(p, request, responseObject, controller.serializedAbortReason) - return Promise.resolve() - } + this.connection?.destroy(error) + this.emit('terminated', error) + } + } - // 3. If response is a network error, then reject p with a TypeError - // and terminate these substeps. - if (response.type === 'error') { - p.reject( - Object.assign(new TypeError('fetch failed'), { cause: response.error }) - ) - return Promise.resolve() - } + // https://fetch.spec.whatwg.org/#fetch-method + function fetch(input, init = {}) { + webidl.argumentLengthCheck(arguments, 1, { header: 'globalThis.fetch' }) - // 4. Set responseObject to the result of creating a Response object, - // given response, "immutable", and relevantRealm. - responseObject = new Response() - responseObject[kState] = response - responseObject[kRealm] = relevantRealm - responseObject[kHeaders][kHeadersList] = response.headersList - responseObject[kHeaders][kGuard] = 'immutable' - responseObject[kHeaders][kRealm] = relevantRealm - - // 5. Resolve p with responseObject. - p.resolve(responseObject) - } + // 1. Let p be a new promise. + const p = createDeferredPromise() - controller = fetching({ - request, - processResponseEndOfBody: handleFetchDone, - processResponse, - dispatcher: init.dispatcher ?? getGlobalDispatcher() // undici - }) - - // 14. Return p. - return p.promise -} - -// https://fetch.spec.whatwg.org/#finalize-and-report-timing -function finalizeAndReportTiming (response, initiatorType = 'other') { - // 1. If response is an aborted network error, then return. - if (response.type === 'error' && response.aborted) { - return - } + // 2. Let requestObject be the result of invoking the initial value of + // Request as constructor with input and init as arguments. If this throws + // an exception, reject p with it and return p. + let requestObject - // 2. If response’s URL list is null or empty, then return. - if (!response.urlList?.length) { - return - } + try { + requestObject = new Request(input, init) + } catch (e) { + p.reject(e) + return p.promise + } - // 3. Let originalURL be response’s URL list[0]. - const originalURL = response.urlList[0] + // 3. Let request be requestObject’s request. + const request = requestObject[kState] - // 4. Let timingInfo be response’s timing info. - let timingInfo = response.timingInfo + // 4. If requestObject’s signal’s aborted flag is set, then: + if (requestObject.signal.aborted) { + // 1. Abort the fetch() call with p, request, null, and + // requestObject’s signal’s abort reason. + abortFetch(p, request, null, requestObject.signal.reason) - // 5. Let cacheState be response’s cache state. - let cacheState = response.cacheState + // 2. Return p. + return p.promise + } - // 6. If originalURL’s scheme is not an HTTP(S) scheme, then return. - if (!urlIsHttpHttpsScheme(originalURL)) { - return - } + // 5. Let globalObject be request’s client’s global object. + const globalObject = request.client.globalObject - // 7. If timingInfo is null, then return. - if (timingInfo === null) { - return - } + // 6. If globalObject is a ServiceWorkerGlobalScope object, then set + // request’s service-workers mode to "none". + if (globalObject?.constructor?.name === 'ServiceWorkerGlobalScope') { + request.serviceWorkers = 'none' + } - // 8. If response’s timing allow passed flag is not set, then: - if (!response.timingAllowPassed) { - // 1. Set timingInfo to a the result of creating an opaque timing info for timingInfo. - timingInfo = createOpaqueTimingInfo({ - startTime: timingInfo.startTime - }) + // 7. Let responseObject be null. + let responseObject = null - // 2. Set cacheState to the empty string. - cacheState = '' - } + // 8. Let relevantRealm be this’s relevant Realm. + const relevantRealm = null - // 9. Set timingInfo’s end time to the coarsened shared current time - // given global’s relevant settings object’s cross-origin isolated - // capability. - // TODO: given global’s relevant settings object’s cross-origin isolated - // capability? - timingInfo.endTime = coarsenedSharedCurrentTime() - - // 10. Set response’s timing info to timingInfo. - response.timingInfo = timingInfo - - // 11. Mark resource timing for timingInfo, originalURL, initiatorType, - // global, and cacheState. - markResourceTiming( - timingInfo, - originalURL, - initiatorType, - globalThis, - cacheState - ) -} - -// https://w3c.github.io/resource-timing/#dfn-mark-resource-timing -function markResourceTiming (timingInfo, originalURL, initiatorType, globalThis, cacheState) { - if (nodeMajor > 18 || (nodeMajor === 18 && nodeMinor >= 2)) { - performance.markResourceTiming(timingInfo, originalURL.href, initiatorType, globalThis, cacheState) - } -} - -// https://fetch.spec.whatwg.org/#abort-fetch -function abortFetch (p, request, responseObject, error) { - // Note: AbortSignal.reason was added in node v17.2.0 - // which would give us an undefined error to reject with. - // Remove this once node v16 is no longer supported. - if (!error) { - error = new DOMException('The operation was aborted.', 'AbortError') - } + // 9. Let locallyAborted be false. + let locallyAborted = false - // 1. Reject promise with error. - p.reject(error) + // 10. Let controller be null. + let controller = null - // 2. If request’s body is not null and is readable, then cancel request’s - // body with error. - if (request.body != null && isReadable(request.body?.stream)) { - request.body.stream.cancel(error).catch((err) => { - if (err.code === 'ERR_INVALID_STATE') { - // Node bug? - return - } - throw err - }) - } + // 11. Add the following abort steps to requestObject’s signal: + addAbortListener(requestObject.signal, () => { + // 1. Set locallyAborted to true. + locallyAborted = true - // 3. If responseObject is null, then return. - if (responseObject == null) { - return - } + // 2. Assert: controller is non-null. + assert(controller != null) - // 4. Let response be responseObject’s response. - const response = responseObject[kState] + // 3. Abort controller with requestObject’s signal’s abort reason. + controller.abort(requestObject.signal.reason) - // 5. If response’s body is not null and is readable, then error response’s - // body with error. - if (response.body != null && isReadable(response.body?.stream)) { - response.body.stream.cancel(error).catch((err) => { - if (err.code === 'ERR_INVALID_STATE') { - // Node bug? - return - } - throw err - }) - } -} - -// https://fetch.spec.whatwg.org/#fetching -function fetching ({ - request, - processRequestBodyChunkLength, - processRequestEndOfBody, - processResponse, - processResponseEndOfBody, - processResponseConsumeBody, - useParallelQueue = false, - dispatcher // undici -}) { - // 1. Let taskDestination be null. - let taskDestination = null - - // 2. Let crossOriginIsolatedCapability be false. - let crossOriginIsolatedCapability = false - - // 3. If request’s client is non-null, then: - if (request.client != null) { - // 1. Set taskDestination to request’s client’s global object. - taskDestination = request.client.globalObject - - // 2. Set crossOriginIsolatedCapability to request’s client’s cross-origin - // isolated capability. - crossOriginIsolatedCapability = - request.client.crossOriginIsolatedCapability - } + // 4. Abort the fetch() call with p, request, responseObject, + // and requestObject’s signal’s abort reason. + abortFetch(p, request, responseObject, requestObject.signal.reason) + }) - // 4. If useParallelQueue is true, then set taskDestination to the result of - // starting a new parallel queue. - // TODO - - // 5. Let timingInfo be a new fetch timing info whose start time and - // post-redirect start time are the coarsened shared current time given - // crossOriginIsolatedCapability. - const currenTime = coarsenedSharedCurrentTime(crossOriginIsolatedCapability) - const timingInfo = createOpaqueTimingInfo({ - startTime: currenTime - }) - - // 6. Let fetchParams be a new fetch params whose - // request is request, - // timing info is timingInfo, - // process request body chunk length is processRequestBodyChunkLength, - // process request end-of-body is processRequestEndOfBody, - // process response is processResponse, - // process response consume body is processResponseConsumeBody, - // process response end-of-body is processResponseEndOfBody, - // task destination is taskDestination, - // and cross-origin isolated capability is crossOriginIsolatedCapability. - const fetchParams = { - controller: new Fetch(dispatcher), - request, - timingInfo, - processRequestBodyChunkLength, - processRequestEndOfBody, - processResponse, - processResponseConsumeBody, - processResponseEndOfBody, - taskDestination, - crossOriginIsolatedCapability - } + // 12. Let handleFetchDone given response response be to finalize and + // report timing with response, globalObject, and "fetch". + const handleFetchDone = response => + finalizeAndReportTiming(response, 'fetch') - // 7. If request’s body is a byte sequence, then set request’s body to - // request’s body as a body. - // NOTE: Since fetching is only called from fetch, body should already be - // extracted. - assert(!request.body || request.body.stream) - - // 8. If request’s window is "client", then set request’s window to request’s - // client, if request’s client’s global object is a Window object; otherwise - // "no-window". - if (request.window === 'client') { - // TODO: What if request.client is null? - request.window = - request.client?.globalObject?.constructor?.name === 'Window' - ? request.client - : 'no-window' - } + // 13. Set controller to the result of calling fetch given request, + // with processResponseEndOfBody set to handleFetchDone, and processResponse + // given response being these substeps: - // 9. If request’s origin is "client", then set request’s origin to request’s - // client’s origin. - if (request.origin === 'client') { - // TODO: What if request.client is null? - request.origin = request.client?.origin - } + const processResponse = response => { + // 1. If locallyAborted is true, terminate these substeps. + if (locallyAborted) { + return Promise.resolve() + } - // 10. If all of the following conditions are true: - // TODO - - // 11. If request’s policy container is "client", then: - if (request.policyContainer === 'client') { - // 1. If request’s client is non-null, then set request’s policy - // container to a clone of request’s client’s policy container. [HTML] - if (request.client != null) { - request.policyContainer = clonePolicyContainer( - request.client.policyContainer - ) - } else { - // 2. Otherwise, set request’s policy container to a new policy - // container. - request.policyContainer = makePolicyContainer() - } - } + // 2. If response’s aborted flag is set, then: + if (response.aborted) { + // 1. Let deserializedError be the result of deserialize a serialized + // abort reason given controller’s serialized abort reason and + // relevantRealm. + + // 2. Abort the fetch() call with p, request, responseObject, and + // deserializedError. + + abortFetch( + p, + request, + responseObject, + controller.serializedAbortReason + ) + return Promise.resolve() + } - // 12. If request’s header list does not contain `Accept`, then: - if (!request.headersList.contains('accept')) { - // 1. Let value be `*/*`. - const value = '*/*' - - // 2. A user agent should set value to the first matching statement, if - // any, switching on request’s destination: - // "document" - // "frame" - // "iframe" - // `text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8` - // "image" - // `image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5` - // "style" - // `text/css,*/*;q=0.1` - // TODO - - // 3. Append `Accept`/value to request’s header list. - request.headersList.append('accept', value) - } + // 3. If response is a network error, then reject p with a TypeError + // and terminate these substeps. + if (response.type === 'error') { + p.reject( + Object.assign(new TypeError('fetch failed'), { + cause: response.error + }) + ) + return Promise.resolve() + } - // 13. If request’s header list does not contain `Accept-Language`, then - // user agents should append `Accept-Language`/an appropriate value to - // request’s header list. - if (!request.headersList.contains('accept-language')) { - request.headersList.append('accept-language', '*') - } + // 4. Set responseObject to the result of creating a Response object, + // given response, "immutable", and relevantRealm. + responseObject = new Response() + responseObject[kState] = response + responseObject[kRealm] = relevantRealm + responseObject[kHeaders][kHeadersList] = response.headersList + responseObject[kHeaders][kGuard] = 'immutable' + responseObject[kHeaders][kRealm] = relevantRealm - // 14. If request’s priority is null, then use request’s initiator and - // destination appropriately in setting request’s priority to a - // user-agent-defined object. - if (request.priority === null) { - // TODO - } + // 5. Resolve p with responseObject. + p.resolve(responseObject) + } - // 15. If request is a subresource request, then: - if (subresourceSet.has(request.destination)) { - // TODO - } + controller = fetching({ + request, + processResponseEndOfBody: handleFetchDone, + processResponse, + dispatcher: init.dispatcher ?? getGlobalDispatcher() // undici + }) - // 16. Run main fetch given fetchParams. - mainFetch(fetchParams) - .catch(err => { - fetchParams.controller.terminate(err) - }) + // 14. Return p. + return p.promise + } - // 17. Return fetchParam's controller - return fetchParams.controller -} + // https://fetch.spec.whatwg.org/#finalize-and-report-timing + function finalizeAndReportTiming(response, initiatorType = 'other') { + // 1. If response is an aborted network error, then return. + if (response.type === 'error' && response.aborted) { + return + } -// https://fetch.spec.whatwg.org/#concept-main-fetch -async function mainFetch (fetchParams, recursive = false) { - // 1. Let request be fetchParams’s request. - const request = fetchParams.request + // 2. If response’s URL list is null or empty, then return. + if (!response.urlList?.length) { + return + } - // 2. Let response be null. - let response = null + // 3. Let originalURL be response’s URL list[0]. + const originalURL = response.urlList[0] - // 3. If request’s local-URLs-only flag is set and request’s current URL is - // not local, then set response to a network error. - if (request.localURLsOnly && !urlIsLocal(requestCurrentURL(request))) { - response = makeNetworkError('local URLs only') - } + // 4. Let timingInfo be response’s timing info. + let timingInfo = response.timingInfo - // 4. Run report Content Security Policy violations for request. - // TODO + // 5. Let cacheState be response’s cache state. + let cacheState = response.cacheState - // 5. Upgrade request to a potentially trustworthy URL, if appropriate. - tryUpgradeRequestToAPotentiallyTrustworthyURL(request) + // 6. If originalURL’s scheme is not an HTTP(S) scheme, then return. + if (!urlIsHttpHttpsScheme(originalURL)) { + return + } - // 6. If should request be blocked due to a bad port, should fetching request - // be blocked as mixed content, or should request be blocked by Content - // Security Policy returns blocked, then set response to a network error. - if (requestBadPort(request) === 'blocked') { - response = makeNetworkError('bad port') - } - // TODO: should fetching request be blocked as mixed content? - // TODO: should request be blocked by Content Security Policy? + // 7. If timingInfo is null, then return. + if (timingInfo === null) { + return + } - // 7. If request’s referrer policy is the empty string, then set request’s - // referrer policy to request’s policy container’s referrer policy. - if (request.referrerPolicy === '') { - request.referrerPolicy = request.policyContainer.referrerPolicy - } + // 8. If response’s timing allow passed flag is not set, then: + if (!response.timingAllowPassed) { + // 1. Set timingInfo to a the result of creating an opaque timing info for timingInfo. + timingInfo = createOpaqueTimingInfo({ + startTime: timingInfo.startTime + }) - // 8. If request’s referrer is not "no-referrer", then set request’s - // referrer to the result of invoking determine request’s referrer. - if (request.referrer !== 'no-referrer') { - request.referrer = determineRequestsReferrer(request) - } + // 2. Set cacheState to the empty string. + cacheState = '' + } - // 9. Set request’s current URL’s scheme to "https" if all of the following - // conditions are true: - // - request’s current URL’s scheme is "http" - // - request’s current URL’s host is a domain - // - Matching request’s current URL’s host per Known HSTS Host Domain Name - // Matching results in either a superdomain match with an asserted - // includeSubDomains directive or a congruent match (with or without an - // asserted includeSubDomains directive). [HSTS] - // TODO - - // 10. If recursive is false, then run the remaining steps in parallel. - // TODO - - // 11. If response is null, then set response to the result of running - // the steps corresponding to the first matching statement: - if (response === null) { - response = await (async () => { - const currentURL = requestCurrentURL(request) + // 9. Set timingInfo’s end time to the coarsened shared current time + // given global’s relevant settings object’s cross-origin isolated + // capability. + // TODO: given global’s relevant settings object’s cross-origin isolated + // capability? + timingInfo.endTime = coarsenedSharedCurrentTime() - if ( - // - request’s current URL’s origin is same origin with request’s origin, - // and request’s response tainting is "basic" - (sameOrigin(currentURL, request.url) && request.responseTainting === 'basic') || - // request’s current URL’s scheme is "data" - (currentURL.protocol === 'data:') || - // - request’s mode is "navigate" or "websocket" - (request.mode === 'navigate' || request.mode === 'websocket') - ) { - // 1. Set request’s response tainting to "basic". - request.responseTainting = 'basic' + // 10. Set response’s timing info to timingInfo. + response.timingInfo = timingInfo - // 2. Return the result of running scheme fetch given fetchParams. - return await schemeFetch(fetchParams) + // 11. Mark resource timing for timingInfo, originalURL, initiatorType, + // global, and cacheState. + markResourceTiming( + timingInfo, + originalURL, + initiatorType, + globalThis, + cacheState + ) } - // request’s mode is "same-origin" - if (request.mode === 'same-origin') { - // 1. Return a network error. - return makeNetworkError('request mode cannot be "same-origin"') + // https://w3c.github.io/resource-timing/#dfn-mark-resource-timing + function markResourceTiming( + timingInfo, + originalURL, + initiatorType, + globalThis, + cacheState + ) { + if (nodeMajor > 18 || (nodeMajor === 18 && nodeMinor >= 2)) { + performance.markResourceTiming( + timingInfo, + originalURL.href, + initiatorType, + globalThis, + cacheState + ) + } } - // request’s mode is "no-cors" - if (request.mode === 'no-cors') { - // 1. If request’s redirect mode is not "follow", then return a network - // error. - if (request.redirect !== 'follow') { - return makeNetworkError( - 'redirect mode cannot be "follow" for "no-cors" request' - ) + // https://fetch.spec.whatwg.org/#abort-fetch + function abortFetch(p, request, responseObject, error) { + // Note: AbortSignal.reason was added in node v17.2.0 + // which would give us an undefined error to reject with. + // Remove this once node v16 is no longer supported. + if (!error) { + error = new DOMException('The operation was aborted.', 'AbortError') } - // 2. Set request’s response tainting to "opaque". - request.responseTainting = 'opaque' + // 1. Reject promise with error. + p.reject(error) - // 3. Return the result of running scheme fetch given fetchParams. - return await schemeFetch(fetchParams) - } + // 2. If request’s body is not null and is readable, then cancel request’s + // body with error. + if (request.body != null && isReadable(request.body?.stream)) { + request.body.stream.cancel(error).catch(err => { + if (err.code === 'ERR_INVALID_STATE') { + // Node bug? + return + } + throw err + }) + } + + // 3. If responseObject is null, then return. + if (responseObject == null) { + return + } + + // 4. Let response be responseObject’s response. + const response = responseObject[kState] - // request’s current URL’s scheme is not an HTTP(S) scheme - if (!urlIsHttpHttpsScheme(requestCurrentURL(request))) { - // Return a network error. - return makeNetworkError('URL scheme must be a HTTP(S) scheme') + // 5. If response’s body is not null and is readable, then error response’s + // body with error. + if (response.body != null && isReadable(response.body?.stream)) { + response.body.stream.cancel(error).catch(err => { + if (err.code === 'ERR_INVALID_STATE') { + // Node bug? + return + } + throw err + }) + } } - // - request’s use-CORS-preflight flag is set - // - request’s unsafe-request flag is set and either request’s method is - // not a CORS-safelisted method or CORS-unsafe request-header names with - // request’s header list is not empty - // 1. Set request’s response tainting to "cors". - // 2. Let corsWithPreflightResponse be the result of running HTTP fetch - // given fetchParams and true. - // 3. If corsWithPreflightResponse is a network error, then clear cache - // entries using request. - // 4. Return corsWithPreflightResponse. - // TODO + // https://fetch.spec.whatwg.org/#fetching + function fetching({ + request, + processRequestBodyChunkLength, + processRequestEndOfBody, + processResponse, + processResponseEndOfBody, + processResponseConsumeBody, + useParallelQueue = false, + dispatcher // undici + }) { + // 1. Let taskDestination be null. + let taskDestination = null + + // 2. Let crossOriginIsolatedCapability be false. + let crossOriginIsolatedCapability = false + + // 3. If request’s client is non-null, then: + if (request.client != null) { + // 1. Set taskDestination to request’s client’s global object. + taskDestination = request.client.globalObject + + // 2. Set crossOriginIsolatedCapability to request’s client’s cross-origin + // isolated capability. + crossOriginIsolatedCapability = + request.client.crossOriginIsolatedCapability + } + + // 4. If useParallelQueue is true, then set taskDestination to the result of + // starting a new parallel queue. + // TODO + + // 5. Let timingInfo be a new fetch timing info whose start time and + // post-redirect start time are the coarsened shared current time given + // crossOriginIsolatedCapability. + const currenTime = coarsenedSharedCurrentTime( + crossOriginIsolatedCapability + ) + const timingInfo = createOpaqueTimingInfo({ + startTime: currenTime + }) - // Otherwise - // 1. Set request’s response tainting to "cors". - request.responseTainting = 'cors' + // 6. Let fetchParams be a new fetch params whose + // request is request, + // timing info is timingInfo, + // process request body chunk length is processRequestBodyChunkLength, + // process request end-of-body is processRequestEndOfBody, + // process response is processResponse, + // process response consume body is processResponseConsumeBody, + // process response end-of-body is processResponseEndOfBody, + // task destination is taskDestination, + // and cross-origin isolated capability is crossOriginIsolatedCapability. + const fetchParams = { + controller: new Fetch(dispatcher), + request, + timingInfo, + processRequestBodyChunkLength, + processRequestEndOfBody, + processResponse, + processResponseConsumeBody, + processResponseEndOfBody, + taskDestination, + crossOriginIsolatedCapability + } + + // 7. If request’s body is a byte sequence, then set request’s body to + // request’s body as a body. + // NOTE: Since fetching is only called from fetch, body should already be + // extracted. + assert(!request.body || request.body.stream) + + // 8. If request’s window is "client", then set request’s window to request’s + // client, if request’s client’s global object is a Window object; otherwise + // "no-window". + if (request.window === 'client') { + // TODO: What if request.client is null? + request.window = + request.client?.globalObject?.constructor?.name === 'Window' + ? request.client + : 'no-window' + } + + // 9. If request’s origin is "client", then set request’s origin to request’s + // client’s origin. + if (request.origin === 'client') { + // TODO: What if request.client is null? + request.origin = request.client?.origin + } + + // 10. If all of the following conditions are true: + // TODO + + // 11. If request’s policy container is "client", then: + if (request.policyContainer === 'client') { + // 1. If request’s client is non-null, then set request’s policy + // container to a clone of request’s client’s policy container. [HTML] + if (request.client != null) { + request.policyContainer = clonePolicyContainer( + request.client.policyContainer + ) + } else { + // 2. Otherwise, set request’s policy container to a new policy + // container. + request.policyContainer = makePolicyContainer() + } + } - // 2. Return the result of running HTTP fetch given fetchParams. - return await httpFetch(fetchParams) - })() - } + // 12. If request’s header list does not contain `Accept`, then: + if (!request.headersList.contains('accept')) { + // 1. Let value be `*/*`. + const value = '*/*' - // 12. If recursive is true, then return response. - if (recursive) { - return response - } + // 2. A user agent should set value to the first matching statement, if + // any, switching on request’s destination: + // "document" + // "frame" + // "iframe" + // `text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8` + // "image" + // `image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5` + // "style" + // `text/css,*/*;q=0.1` + // TODO - // 13. If response is not a network error and response is not a filtered - // response, then: - if (response.status !== 0 && !response.internalResponse) { - // If request’s response tainting is "cors", then: - if (request.responseTainting === 'cors') { - // 1. Let headerNames be the result of extracting header list values - // given `Access-Control-Expose-Headers` and response’s header list. - // TODO - // 2. If request’s credentials mode is not "include" and headerNames - // contains `*`, then set response’s CORS-exposed header-name list to - // all unique header names in response’s header list. - // TODO - // 3. Otherwise, if headerNames is not null or failure, then set - // response’s CORS-exposed header-name list to headerNames. - // TODO - } + // 3. Append `Accept`/value to request’s header list. + request.headersList.append('accept', value) + } - // Set response to the following filtered response with response as its - // internal response, depending on request’s response tainting: - if (request.responseTainting === 'basic') { - response = filterResponse(response, 'basic') - } else if (request.responseTainting === 'cors') { - response = filterResponse(response, 'cors') - } else if (request.responseTainting === 'opaque') { - response = filterResponse(response, 'opaque') - } else { - assert(false) - } - } + // 13. If request’s header list does not contain `Accept-Language`, then + // user agents should append `Accept-Language`/an appropriate value to + // request’s header list. + if (!request.headersList.contains('accept-language')) { + request.headersList.append('accept-language', '*') + } - // 14. Let internalResponse be response, if response is a network error, - // and response’s internal response otherwise. - let internalResponse = - response.status === 0 ? response : response.internalResponse + // 14. If request’s priority is null, then use request’s initiator and + // destination appropriately in setting request’s priority to a + // user-agent-defined object. + if (request.priority === null) { + // TODO + } - // 15. If internalResponse’s URL list is empty, then set it to a clone of - // request’s URL list. - if (internalResponse.urlList.length === 0) { - internalResponse.urlList.push(...request.urlList) - } + // 15. If request is a subresource request, then: + if (subresourceSet.has(request.destination)) { + // TODO + } - // 16. If request’s timing allow failed flag is unset, then set - // internalResponse’s timing allow passed flag. - if (!request.timingAllowFailed) { - response.timingAllowPassed = true - } + // 16. Run main fetch given fetchParams. + mainFetch(fetchParams).catch(err => { + fetchParams.controller.terminate(err) + }) - // 17. If response is not a network error and any of the following returns - // blocked - // - should internalResponse to request be blocked as mixed content - // - should internalResponse to request be blocked by Content Security Policy - // - should internalResponse to request be blocked due to its MIME type - // - should internalResponse to request be blocked due to nosniff - // TODO - - // 18. If response’s type is "opaque", internalResponse’s status is 206, - // internalResponse’s range-requested flag is set, and request’s header - // list does not contain `Range`, then set response and internalResponse - // to a network error. - if ( - response.type === 'opaque' && - internalResponse.status === 206 && - internalResponse.rangeRequested && - !request.headers.contains('range') - ) { - response = internalResponse = makeNetworkError() - } + // 17. Return fetchParam's controller + return fetchParams.controller + } + + // https://fetch.spec.whatwg.org/#concept-main-fetch + async function mainFetch(fetchParams, recursive = false) { + // 1. Let request be fetchParams’s request. + const request = fetchParams.request + + // 2. Let response be null. + let response = null + + // 3. If request’s local-URLs-only flag is set and request’s current URL is + // not local, then set response to a network error. + if (request.localURLsOnly && !urlIsLocal(requestCurrentURL(request))) { + response = makeNetworkError('local URLs only') + } + + // 4. Run report Content Security Policy violations for request. + // TODO + + // 5. Upgrade request to a potentially trustworthy URL, if appropriate. + tryUpgradeRequestToAPotentiallyTrustworthyURL(request) + + // 6. If should request be blocked due to a bad port, should fetching request + // be blocked as mixed content, or should request be blocked by Content + // Security Policy returns blocked, then set response to a network error. + if (requestBadPort(request) === 'blocked') { + response = makeNetworkError('bad port') + } + // TODO: should fetching request be blocked as mixed content? + // TODO: should request be blocked by Content Security Policy? + + // 7. If request’s referrer policy is the empty string, then set request’s + // referrer policy to request’s policy container’s referrer policy. + if (request.referrerPolicy === '') { + request.referrerPolicy = request.policyContainer.referrerPolicy + } + + // 8. If request’s referrer is not "no-referrer", then set request’s + // referrer to the result of invoking determine request’s referrer. + if (request.referrer !== 'no-referrer') { + request.referrer = determineRequestsReferrer(request) + } + + // 9. Set request’s current URL’s scheme to "https" if all of the following + // conditions are true: + // - request’s current URL’s scheme is "http" + // - request’s current URL’s host is a domain + // - Matching request’s current URL’s host per Known HSTS Host Domain Name + // Matching results in either a superdomain match with an asserted + // includeSubDomains directive or a congruent match (with or without an + // asserted includeSubDomains directive). [HSTS] + // TODO + + // 10. If recursive is false, then run the remaining steps in parallel. + // TODO + + // 11. If response is null, then set response to the result of running + // the steps corresponding to the first matching statement: + if (response === null) { + response = await (async () => { + const currentURL = requestCurrentURL(request) + + if ( + // - request’s current URL’s origin is same origin with request’s origin, + // and request’s response tainting is "basic" + (sameOrigin(currentURL, request.url) && + request.responseTainting === 'basic') || + // request’s current URL’s scheme is "data" + currentURL.protocol === 'data:' || + // - request’s mode is "navigate" or "websocket" + request.mode === 'navigate' || + request.mode === 'websocket' + ) { + // 1. Set request’s response tainting to "basic". + request.responseTainting = 'basic' + + // 2. Return the result of running scheme fetch given fetchParams. + return await schemeFetch(fetchParams) + } - // 19. If response is not a network error and either request’s method is - // `HEAD` or `CONNECT`, or internalResponse’s status is a null body status, - // set internalResponse’s body to null and disregard any enqueuing toward - // it (if any). - if ( - response.status !== 0 && - (request.method === 'HEAD' || - request.method === 'CONNECT' || - nullBodyStatus.includes(internalResponse.status)) - ) { - internalResponse.body = null - fetchParams.controller.dump = true - } + // request’s mode is "same-origin" + if (request.mode === 'same-origin') { + // 1. Return a network error. + return makeNetworkError('request mode cannot be "same-origin"') + } - // 20. If request’s integrity metadata is not the empty string, then: - if (request.integrity) { - // 1. Let processBodyError be this step: run fetch finale given fetchParams - // and a network error. - const processBodyError = (reason) => - fetchFinale(fetchParams, makeNetworkError(reason)) - - // 2. If request’s response tainting is "opaque", or response’s body is null, - // then run processBodyError and abort these steps. - if (request.responseTainting === 'opaque' || response.body == null) { - processBodyError(response.error) - return - } + // request’s mode is "no-cors" + if (request.mode === 'no-cors') { + // 1. If request’s redirect mode is not "follow", then return a network + // error. + if (request.redirect !== 'follow') { + return makeNetworkError( + 'redirect mode cannot be "follow" for "no-cors" request' + ) + } - // 3. Let processBody given bytes be these steps: - const processBody = (bytes) => { - // 1. If bytes do not match request’s integrity metadata, - // then run processBodyError and abort these steps. [SRI] - if (!bytesMatch(bytes, request.integrity)) { - processBodyError('integrity mismatch') - return - } + // 2. Set request’s response tainting to "opaque". + request.responseTainting = 'opaque' - // 2. Set response’s body to bytes as a body. - response.body = safelyExtractBody(bytes)[0] + // 3. Return the result of running scheme fetch given fetchParams. + return await schemeFetch(fetchParams) + } - // 3. Run fetch finale given fetchParams and response. - fetchFinale(fetchParams, response) - } + // request’s current URL’s scheme is not an HTTP(S) scheme + if (!urlIsHttpHttpsScheme(requestCurrentURL(request))) { + // Return a network error. + return makeNetworkError('URL scheme must be a HTTP(S) scheme') + } - // 4. Fully read response’s body given processBody and processBodyError. - await fullyReadBody(response.body, processBody, processBodyError) - } else { - // 21. Otherwise, run fetch finale given fetchParams and response. - fetchFinale(fetchParams, response) - } -} - -// https://fetch.spec.whatwg.org/#concept-scheme-fetch -// given a fetch params fetchParams -function schemeFetch (fetchParams) { - // Note: since the connection is destroyed on redirect, which sets fetchParams to a - // cancelled state, we do not want this condition to trigger *unless* there have been - // no redirects. See https://github.com/nodejs/undici/issues/1776 - // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams. - if (isCancelled(fetchParams) && fetchParams.request.redirectCount === 0) { - return Promise.resolve(makeAppropriateNetworkError(fetchParams)) - } + // - request’s use-CORS-preflight flag is set + // - request’s unsafe-request flag is set and either request’s method is + // not a CORS-safelisted method or CORS-unsafe request-header names with + // request’s header list is not empty + // 1. Set request’s response tainting to "cors". + // 2. Let corsWithPreflightResponse be the result of running HTTP fetch + // given fetchParams and true. + // 3. If corsWithPreflightResponse is a network error, then clear cache + // entries using request. + // 4. Return corsWithPreflightResponse. + // TODO + + // Otherwise + // 1. Set request’s response tainting to "cors". + request.responseTainting = 'cors' + + // 2. Return the result of running HTTP fetch given fetchParams. + return await httpFetch(fetchParams) + })() + } + + // 12. If recursive is true, then return response. + if (recursive) { + return response + } + + // 13. If response is not a network error and response is not a filtered + // response, then: + if (response.status !== 0 && !response.internalResponse) { + // If request’s response tainting is "cors", then: + if (request.responseTainting === 'cors') { + // 1. Let headerNames be the result of extracting header list values + // given `Access-Control-Expose-Headers` and response’s header list. + // TODO + // 2. If request’s credentials mode is not "include" and headerNames + // contains `*`, then set response’s CORS-exposed header-name list to + // all unique header names in response’s header list. + // TODO + // 3. Otherwise, if headerNames is not null or failure, then set + // response’s CORS-exposed header-name list to headerNames. + // TODO + } - // 2. Let request be fetchParams’s request. - const { request } = fetchParams + // Set response to the following filtered response with response as its + // internal response, depending on request’s response tainting: + if (request.responseTainting === 'basic') { + response = filterResponse(response, 'basic') + } else if (request.responseTainting === 'cors') { + response = filterResponse(response, 'cors') + } else if (request.responseTainting === 'opaque') { + response = filterResponse(response, 'opaque') + } else { + assert(false) + } + } - const { protocol: scheme } = requestCurrentURL(request) + // 14. Let internalResponse be response, if response is a network error, + // and response’s internal response otherwise. + let internalResponse = + response.status === 0 ? response : response.internalResponse - // 3. Switch on request’s current URL’s scheme and run the associated steps: - switch (scheme) { - case 'about:': { - // If request’s current URL’s path is the string "blank", then return a new response - // whose status message is `OK`, header list is « (`Content-Type`, `text/html;charset=utf-8`) », - // and body is the empty byte sequence as a body. + // 15. If internalResponse’s URL list is empty, then set it to a clone of + // request’s URL list. + if (internalResponse.urlList.length === 0) { + internalResponse.urlList.push(...request.urlList) + } - // Otherwise, return a network error. - return Promise.resolve(makeNetworkError('about scheme is not supported')) - } - case 'blob:': { - if (!resolveObjectURL) { - resolveObjectURL = (__nccwpck_require__(14300).resolveObjectURL) - } + // 16. If request’s timing allow failed flag is unset, then set + // internalResponse’s timing allow passed flag. + if (!request.timingAllowFailed) { + response.timingAllowPassed = true + } - // 1. Let blobURLEntry be request’s current URL’s blob URL entry. - const blobURLEntry = requestCurrentURL(request) + // 17. If response is not a network error and any of the following returns + // blocked + // - should internalResponse to request be blocked as mixed content + // - should internalResponse to request be blocked by Content Security Policy + // - should internalResponse to request be blocked due to its MIME type + // - should internalResponse to request be blocked due to nosniff + // TODO - // https://github.com/web-platform-tests/wpt/blob/7b0ebaccc62b566a1965396e5be7bb2bc06f841f/FileAPI/url/resources/fetch-tests.js#L52-L56 - // Buffer.resolveObjectURL does not ignore URL queries. - if (blobURLEntry.search.length !== 0) { - return Promise.resolve(makeNetworkError('NetworkError when attempting to fetch resource.')) - } + // 18. If response’s type is "opaque", internalResponse’s status is 206, + // internalResponse’s range-requested flag is set, and request’s header + // list does not contain `Range`, then set response and internalResponse + // to a network error. + if ( + response.type === 'opaque' && + internalResponse.status === 206 && + internalResponse.rangeRequested && + !request.headers.contains('range') + ) { + response = internalResponse = makeNetworkError() + } - const blobURLEntryObject = resolveObjectURL(blobURLEntry.toString()) + // 19. If response is not a network error and either request’s method is + // `HEAD` or `CONNECT`, or internalResponse’s status is a null body status, + // set internalResponse’s body to null and disregard any enqueuing toward + // it (if any). + if ( + response.status !== 0 && + (request.method === 'HEAD' || + request.method === 'CONNECT' || + nullBodyStatus.includes(internalResponse.status)) + ) { + internalResponse.body = null + fetchParams.controller.dump = true + } - // 2. If request’s method is not `GET`, blobURLEntry is null, or blobURLEntry’s - // object is not a Blob object, then return a network error. - if (request.method !== 'GET' || !isBlobLike(blobURLEntryObject)) { - return Promise.resolve(makeNetworkError('invalid method')) - } + // 20. If request’s integrity metadata is not the empty string, then: + if (request.integrity) { + // 1. Let processBodyError be this step: run fetch finale given fetchParams + // and a network error. + const processBodyError = reason => + fetchFinale(fetchParams, makeNetworkError(reason)) - // 3. Let bodyWithType be the result of safely extracting blobURLEntry’s object. - const bodyWithType = safelyExtractBody(blobURLEntryObject) + // 2. If request’s response tainting is "opaque", or response’s body is null, + // then run processBodyError and abort these steps. + if (request.responseTainting === 'opaque' || response.body == null) { + processBodyError(response.error) + return + } - // 4. Let body be bodyWithType’s body. - const body = bodyWithType[0] + // 3. Let processBody given bytes be these steps: + const processBody = bytes => { + // 1. If bytes do not match request’s integrity metadata, + // then run processBodyError and abort these steps. [SRI] + if (!bytesMatch(bytes, request.integrity)) { + processBodyError('integrity mismatch') + return + } - // 5. Let length be body’s length, serialized and isomorphic encoded. - const length = isomorphicEncode(`${body.length}`) + // 2. Set response’s body to bytes as a body. + response.body = safelyExtractBody(bytes)[0] - // 6. Let type be bodyWithType’s type if it is non-null; otherwise the empty byte sequence. - const type = bodyWithType[1] ?? '' + // 3. Run fetch finale given fetchParams and response. + fetchFinale(fetchParams, response) + } - // 7. Return a new response whose status message is `OK`, header list is - // « (`Content-Length`, length), (`Content-Type`, type) », and body is body. - const response = makeResponse({ - statusText: 'OK', - headersList: [ - ['content-length', { name: 'Content-Length', value: length }], - ['content-type', { name: 'Content-Type', value: type }] - ] - }) + // 4. Fully read response’s body given processBody and processBodyError. + await fullyReadBody(response.body, processBody, processBodyError) + } else { + // 21. Otherwise, run fetch finale given fetchParams and response. + fetchFinale(fetchParams, response) + } + } - response.body = body + // https://fetch.spec.whatwg.org/#concept-scheme-fetch + // given a fetch params fetchParams + function schemeFetch(fetchParams) { + // Note: since the connection is destroyed on redirect, which sets fetchParams to a + // cancelled state, we do not want this condition to trigger *unless* there have been + // no redirects. See https://github.com/nodejs/undici/issues/1776 + // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams. + if ( + isCancelled(fetchParams) && + fetchParams.request.redirectCount === 0 + ) { + return Promise.resolve(makeAppropriateNetworkError(fetchParams)) + } - return Promise.resolve(response) - } - case 'data:': { - // 1. Let dataURLStruct be the result of running the - // data: URL processor on request’s current URL. - const currentURL = requestCurrentURL(request) - const dataURLStruct = dataURLProcessor(currentURL) - - // 2. If dataURLStruct is failure, then return a - // network error. - if (dataURLStruct === 'failure') { - return Promise.resolve(makeNetworkError('failed to fetch the data URL')) - } - - // 3. Let mimeType be dataURLStruct’s MIME type, serialized. - const mimeType = serializeAMimeType(dataURLStruct.mimeType) - - // 4. Return a response whose status message is `OK`, - // header list is « (`Content-Type`, mimeType) », - // and body is dataURLStruct’s body as a body. - return Promise.resolve(makeResponse({ - statusText: 'OK', - headersList: [ - ['content-type', { name: 'Content-Type', value: mimeType }] - ], - body: safelyExtractBody(dataURLStruct.body)[0] - })) - } - case 'file:': { - // For now, unfortunate as it is, file URLs are left as an exercise for the reader. - // When in doubt, return a network error. - return Promise.resolve(makeNetworkError('not implemented... yet...')) - } - case 'http:': - case 'https:': { - // Return the result of running HTTP fetch given fetchParams. + // 2. Let request be fetchParams’s request. + const { request } = fetchParams - return httpFetch(fetchParams) - .catch((err) => makeNetworkError(err)) - } - default: { - return Promise.resolve(makeNetworkError('unknown scheme')) - } - } -} - -// https://fetch.spec.whatwg.org/#finalize-response -function finalizeResponse (fetchParams, response) { - // 1. Set fetchParams’s request’s done flag. - fetchParams.request.done = true - - // 2, If fetchParams’s process response done is not null, then queue a fetch - // task to run fetchParams’s process response done given response, with - // fetchParams’s task destination. - if (fetchParams.processResponseDone != null) { - queueMicrotask(() => fetchParams.processResponseDone(response)) - } -} - -// https://fetch.spec.whatwg.org/#fetch-finale -function fetchFinale (fetchParams, response) { - // 1. If response is a network error, then: - if (response.type === 'error') { - // 1. Set response’s URL list to « fetchParams’s request’s URL list[0] ». - response.urlList = [fetchParams.request.urlList[0]] - - // 2. Set response’s timing info to the result of creating an opaque timing - // info for fetchParams’s timing info. - response.timingInfo = createOpaqueTimingInfo({ - startTime: fetchParams.timingInfo.startTime - }) - } + const { protocol: scheme } = requestCurrentURL(request) - // 2. Let processResponseEndOfBody be the following steps: - const processResponseEndOfBody = () => { - // 1. Set fetchParams’s request’s done flag. - fetchParams.request.done = true + // 3. Switch on request’s current URL’s scheme and run the associated steps: + switch (scheme) { + case 'about:': { + // If request’s current URL’s path is the string "blank", then return a new response + // whose status message is `OK`, header list is « (`Content-Type`, `text/html;charset=utf-8`) », + // and body is the empty byte sequence as a body. - // If fetchParams’s process response end-of-body is not null, - // then queue a fetch task to run fetchParams’s process response - // end-of-body given response with fetchParams’s task destination. - if (fetchParams.processResponseEndOfBody != null) { - queueMicrotask(() => fetchParams.processResponseEndOfBody(response)) - } - } + // Otherwise, return a network error. + return Promise.resolve( + makeNetworkError('about scheme is not supported') + ) + } + case 'blob:': { + if (!resolveObjectURL) { + resolveObjectURL = __nccwpck_require__(14300).resolveObjectURL + } - // 3. If fetchParams’s process response is non-null, then queue a fetch task - // to run fetchParams’s process response given response, with fetchParams’s - // task destination. - if (fetchParams.processResponse != null) { - queueMicrotask(() => fetchParams.processResponse(response)) - } + // 1. Let blobURLEntry be request’s current URL’s blob URL entry. + const blobURLEntry = requestCurrentURL(request) + + // https://github.com/web-platform-tests/wpt/blob/7b0ebaccc62b566a1965396e5be7bb2bc06f841f/FileAPI/url/resources/fetch-tests.js#L52-L56 + // Buffer.resolveObjectURL does not ignore URL queries. + if (blobURLEntry.search.length !== 0) { + return Promise.resolve( + makeNetworkError( + 'NetworkError when attempting to fetch resource.' + ) + ) + } - // 4. If response’s body is null, then run processResponseEndOfBody. - if (response.body == null) { - processResponseEndOfBody() - } else { - // 5. Otherwise: + const blobURLEntryObject = resolveObjectURL(blobURLEntry.toString()) - // 1. Let transformStream be a new a TransformStream. + // 2. If request’s method is not `GET`, blobURLEntry is null, or blobURLEntry’s + // object is not a Blob object, then return a network error. + if (request.method !== 'GET' || !isBlobLike(blobURLEntryObject)) { + return Promise.resolve(makeNetworkError('invalid method')) + } - // 2. Let identityTransformAlgorithm be an algorithm which, given chunk, - // enqueues chunk in transformStream. - const identityTransformAlgorithm = (chunk, controller) => { - controller.enqueue(chunk) - } + // 3. Let bodyWithType be the result of safely extracting blobURLEntry’s object. + const bodyWithType = safelyExtractBody(blobURLEntryObject) - // 3. Set up transformStream with transformAlgorithm set to identityTransformAlgorithm - // and flushAlgorithm set to processResponseEndOfBody. - const transformStream = new TransformStream({ - start () {}, - transform: identityTransformAlgorithm, - flush: processResponseEndOfBody - }, { - size () { - return 1 - } - }, { - size () { - return 1 - } - }) + // 4. Let body be bodyWithType’s body. + const body = bodyWithType[0] - // 4. Set response’s body to the result of piping response’s body through transformStream. - response.body = { stream: response.body.stream.pipeThrough(transformStream) } - } + // 5. Let length be body’s length, serialized and isomorphic encoded. + const length = isomorphicEncode(`${body.length}`) - // 6. If fetchParams’s process response consume body is non-null, then: - if (fetchParams.processResponseConsumeBody != null) { - // 1. Let processBody given nullOrBytes be this step: run fetchParams’s - // process response consume body given response and nullOrBytes. - const processBody = (nullOrBytes) => fetchParams.processResponseConsumeBody(response, nullOrBytes) - - // 2. Let processBodyError be this step: run fetchParams’s process - // response consume body given response and failure. - const processBodyError = (failure) => fetchParams.processResponseConsumeBody(response, failure) - - // 3. If response’s body is null, then queue a fetch task to run processBody - // given null, with fetchParams’s task destination. - if (response.body == null) { - queueMicrotask(() => processBody(null)) - } else { - // 4. Otherwise, fully read response’s body given processBody, processBodyError, - // and fetchParams’s task destination. - return fullyReadBody(response.body, processBody, processBodyError) - } - return Promise.resolve() - } -} + // 6. Let type be bodyWithType’s type if it is non-null; otherwise the empty byte sequence. + const type = bodyWithType[1] ?? '' + + // 7. Return a new response whose status message is `OK`, header list is + // « (`Content-Length`, length), (`Content-Type`, type) », and body is body. + const response = makeResponse({ + statusText: 'OK', + headersList: [ + ['content-length', { name: 'Content-Length', value: length }], + ['content-type', { name: 'Content-Type', value: type }] + ] + }) -// https://fetch.spec.whatwg.org/#http-fetch -async function httpFetch (fetchParams) { - // 1. Let request be fetchParams’s request. - const request = fetchParams.request + response.body = body - // 2. Let response be null. - let response = null + return Promise.resolve(response) + } + case 'data:': { + // 1. Let dataURLStruct be the result of running the + // data: URL processor on request’s current URL. + const currentURL = requestCurrentURL(request) + const dataURLStruct = dataURLProcessor(currentURL) + + // 2. If dataURLStruct is failure, then return a + // network error. + if (dataURLStruct === 'failure') { + return Promise.resolve( + makeNetworkError('failed to fetch the data URL') + ) + } - // 3. Let actualResponse be null. - let actualResponse = null + // 3. Let mimeType be dataURLStruct’s MIME type, serialized. + const mimeType = serializeAMimeType(dataURLStruct.mimeType) + + // 4. Return a response whose status message is `OK`, + // header list is « (`Content-Type`, mimeType) », + // and body is dataURLStruct’s body as a body. + return Promise.resolve( + makeResponse({ + statusText: 'OK', + headersList: [ + ['content-type', { name: 'Content-Type', value: mimeType }] + ], + body: safelyExtractBody(dataURLStruct.body)[0] + }) + ) + } + case 'file:': { + // For now, unfortunate as it is, file URLs are left as an exercise for the reader. + // When in doubt, return a network error. + return Promise.resolve( + makeNetworkError('not implemented... yet...') + ) + } + case 'http:': + case 'https:': { + // Return the result of running HTTP fetch given fetchParams. - // 4. Let timingInfo be fetchParams’s timing info. - const timingInfo = fetchParams.timingInfo + return httpFetch(fetchParams).catch(err => makeNetworkError(err)) + } + default: { + return Promise.resolve(makeNetworkError('unknown scheme')) + } + } + } - // 5. If request’s service-workers mode is "all", then: - if (request.serviceWorkers === 'all') { - // TODO - } + // https://fetch.spec.whatwg.org/#finalize-response + function finalizeResponse(fetchParams, response) { + // 1. Set fetchParams’s request’s done flag. + fetchParams.request.done = true - // 6. If response is null, then: - if (response === null) { - // 1. If makeCORSPreflight is true and one of these conditions is true: - // TODO + // 2, If fetchParams’s process response done is not null, then queue a fetch + // task to run fetchParams’s process response done given response, with + // fetchParams’s task destination. + if (fetchParams.processResponseDone != null) { + queueMicrotask(() => fetchParams.processResponseDone(response)) + } + } - // 2. If request’s redirect mode is "follow", then set request’s - // service-workers mode to "none". - if (request.redirect === 'follow') { - request.serviceWorkers = 'none' - } + // https://fetch.spec.whatwg.org/#fetch-finale + function fetchFinale(fetchParams, response) { + // 1. If response is a network error, then: + if (response.type === 'error') { + // 1. Set response’s URL list to « fetchParams’s request’s URL list[0] ». + response.urlList = [fetchParams.request.urlList[0]] - // 3. Set response and actualResponse to the result of running - // HTTP-network-or-cache fetch given fetchParams. - actualResponse = response = await httpNetworkOrCacheFetch(fetchParams) + // 2. Set response’s timing info to the result of creating an opaque timing + // info for fetchParams’s timing info. + response.timingInfo = createOpaqueTimingInfo({ + startTime: fetchParams.timingInfo.startTime + }) + } - // 4. If request’s response tainting is "cors" and a CORS check - // for request and response returns failure, then return a network error. - if ( - request.responseTainting === 'cors' && - corsCheck(request, response) === 'failure' - ) { - return makeNetworkError('cors failure') - } + // 2. Let processResponseEndOfBody be the following steps: + const processResponseEndOfBody = () => { + // 1. Set fetchParams’s request’s done flag. + fetchParams.request.done = true - // 5. If the TAO check for request and response returns failure, then set - // request’s timing allow failed flag. - if (TAOCheck(request, response) === 'failure') { - request.timingAllowFailed = true - } - } + // If fetchParams’s process response end-of-body is not null, + // then queue a fetch task to run fetchParams’s process response + // end-of-body given response with fetchParams’s task destination. + if (fetchParams.processResponseEndOfBody != null) { + queueMicrotask(() => fetchParams.processResponseEndOfBody(response)) + } + } - // 7. If either request’s response tainting or response’s type - // is "opaque", and the cross-origin resource policy check with - // request’s origin, request’s client, request’s destination, - // and actualResponse returns blocked, then return a network error. - if ( - (request.responseTainting === 'opaque' || response.type === 'opaque') && - crossOriginResourcePolicyCheck( - request.origin, - request.client, - request.destination, - actualResponse - ) === 'blocked' - ) { - return makeNetworkError('blocked') - } + // 3. If fetchParams’s process response is non-null, then queue a fetch task + // to run fetchParams’s process response given response, with fetchParams’s + // task destination. + if (fetchParams.processResponse != null) { + queueMicrotask(() => fetchParams.processResponse(response)) + } - // 8. If actualResponse’s status is a redirect status, then: - if (redirectStatusSet.has(actualResponse.status)) { - // 1. If actualResponse’s status is not 303, request’s body is not null, - // and the connection uses HTTP/2, then user agents may, and are even - // encouraged to, transmit an RST_STREAM frame. - // See, https://github.com/whatwg/fetch/issues/1288 - if (request.redirect !== 'manual') { - fetchParams.controller.connection.destroy() - } + // 4. If response’s body is null, then run processResponseEndOfBody. + if (response.body == null) { + processResponseEndOfBody() + } else { + // 5. Otherwise: - // 2. Switch on request’s redirect mode: - if (request.redirect === 'error') { - // Set response to a network error. - response = makeNetworkError('unexpected redirect') - } else if (request.redirect === 'manual') { - // Set response to an opaque-redirect filtered response whose internal - // response is actualResponse. - // NOTE(spec): On the web this would return an `opaqueredirect` response, - // but that doesn't make sense server side. - // See https://github.com/nodejs/undici/issues/1193. - response = actualResponse - } else if (request.redirect === 'follow') { - // Set response to the result of running HTTP-redirect fetch given - // fetchParams and response. - response = await httpRedirectFetch(fetchParams, response) - } else { - assert(false) - } - } + // 1. Let transformStream be a new a TransformStream. - // 9. Set response’s timing info to timingInfo. - response.timingInfo = timingInfo - - // 10. Return response. - return response -} - -// https://fetch.spec.whatwg.org/#http-redirect-fetch -function httpRedirectFetch (fetchParams, response) { - // 1. Let request be fetchParams’s request. - const request = fetchParams.request - - // 2. Let actualResponse be response, if response is not a filtered response, - // and response’s internal response otherwise. - const actualResponse = response.internalResponse - ? response.internalResponse - : response - - // 3. Let locationURL be actualResponse’s location URL given request’s current - // URL’s fragment. - let locationURL - - try { - locationURL = responseLocationURL( - actualResponse, - requestCurrentURL(request).hash - ) - - // 4. If locationURL is null, then return response. - if (locationURL == null) { - return response - } - } catch (err) { - // 5. If locationURL is failure, then return a network error. - return Promise.resolve(makeNetworkError(err)) - } + // 2. Let identityTransformAlgorithm be an algorithm which, given chunk, + // enqueues chunk in transformStream. + const identityTransformAlgorithm = (chunk, controller) => { + controller.enqueue(chunk) + } - // 6. If locationURL’s scheme is not an HTTP(S) scheme, then return a network - // error. - if (!urlIsHttpHttpsScheme(locationURL)) { - return Promise.resolve(makeNetworkError('URL scheme must be a HTTP(S) scheme')) - } + // 3. Set up transformStream with transformAlgorithm set to identityTransformAlgorithm + // and flushAlgorithm set to processResponseEndOfBody. + const transformStream = new TransformStream( + { + start() {}, + transform: identityTransformAlgorithm, + flush: processResponseEndOfBody + }, + { + size() { + return 1 + } + }, + { + size() { + return 1 + } + } + ) - // 7. If request’s redirect count is 20, then return a network error. - if (request.redirectCount === 20) { - return Promise.resolve(makeNetworkError('redirect count exceeded')) - } + // 4. Set response’s body to the result of piping response’s body through transformStream. + response.body = { + stream: response.body.stream.pipeThrough(transformStream) + } + } - // 8. Increase request’s redirect count by 1. - request.redirectCount += 1 - - // 9. If request’s mode is "cors", locationURL includes credentials, and - // request’s origin is not same origin with locationURL’s origin, then return - // a network error. - if ( - request.mode === 'cors' && - (locationURL.username || locationURL.password) && - !sameOrigin(request, locationURL) - ) { - return Promise.resolve(makeNetworkError('cross origin not allowed for request mode "cors"')) - } + // 6. If fetchParams’s process response consume body is non-null, then: + if (fetchParams.processResponseConsumeBody != null) { + // 1. Let processBody given nullOrBytes be this step: run fetchParams’s + // process response consume body given response and nullOrBytes. + const processBody = nullOrBytes => + fetchParams.processResponseConsumeBody(response, nullOrBytes) - // 10. If request’s response tainting is "cors" and locationURL includes - // credentials, then return a network error. - if ( - request.responseTainting === 'cors' && - (locationURL.username || locationURL.password) - ) { - return Promise.resolve(makeNetworkError( - 'URL cannot contain credentials for request mode "cors"' - )) - } + // 2. Let processBodyError be this step: run fetchParams’s process + // response consume body given response and failure. + const processBodyError = failure => + fetchParams.processResponseConsumeBody(response, failure) - // 11. If actualResponse’s status is not 303, request’s body is non-null, - // and request’s body’s source is null, then return a network error. - if ( - actualResponse.status !== 303 && - request.body != null && - request.body.source == null - ) { - return Promise.resolve(makeNetworkError()) - } + // 3. If response’s body is null, then queue a fetch task to run processBody + // given null, with fetchParams’s task destination. + if (response.body == null) { + queueMicrotask(() => processBody(null)) + } else { + // 4. Otherwise, fully read response’s body given processBody, processBodyError, + // and fetchParams’s task destination. + return fullyReadBody(response.body, processBody, processBodyError) + } + return Promise.resolve() + } + } - // 12. If one of the following is true - // - actualResponse’s status is 301 or 302 and request’s method is `POST` - // - actualResponse’s status is 303 and request’s method is not `GET` or `HEAD` - if ( - ([301, 302].includes(actualResponse.status) && request.method === 'POST') || - (actualResponse.status === 303 && - !GET_OR_HEAD.includes(request.method)) - ) { - // then: - // 1. Set request’s method to `GET` and request’s body to null. - request.method = 'GET' - request.body = null - - // 2. For each headerName of request-body-header name, delete headerName from - // request’s header list. - for (const headerName of requestBodyHeader) { - request.headersList.delete(headerName) - } - } + // https://fetch.spec.whatwg.org/#http-fetch + async function httpFetch(fetchParams) { + // 1. Let request be fetchParams’s request. + const request = fetchParams.request - // 13. If request’s current URL’s origin is not same origin with locationURL’s - // origin, then for each headerName of CORS non-wildcard request-header name, - // delete headerName from request’s header list. - if (!sameOrigin(requestCurrentURL(request), locationURL)) { - // https://fetch.spec.whatwg.org/#cors-non-wildcard-request-header-name - request.headersList.delete('authorization') + // 2. Let response be null. + let response = null - // https://fetch.spec.whatwg.org/#authentication-entries - request.headersList.delete('proxy-authorization', true) + // 3. Let actualResponse be null. + let actualResponse = null - // "Cookie" and "Host" are forbidden request-headers, which undici doesn't implement. - request.headersList.delete('cookie') - request.headersList.delete('host') - } + // 4. Let timingInfo be fetchParams’s timing info. + const timingInfo = fetchParams.timingInfo - // 14. If request’s body is non-null, then set request’s body to the first return - // value of safely extracting request’s body’s source. - if (request.body != null) { - assert(request.body.source != null) - request.body = safelyExtractBody(request.body.source)[0] - } + // 5. If request’s service-workers mode is "all", then: + if (request.serviceWorkers === 'all') { + // TODO + } - // 15. Let timingInfo be fetchParams’s timing info. - const timingInfo = fetchParams.timingInfo + // 6. If response is null, then: + if (response === null) { + // 1. If makeCORSPreflight is true and one of these conditions is true: + // TODO - // 16. Set timingInfo’s redirect end time and post-redirect start time to the - // coarsened shared current time given fetchParams’s cross-origin isolated - // capability. - timingInfo.redirectEndTime = timingInfo.postRedirectStartTime = - coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability) + // 2. If request’s redirect mode is "follow", then set request’s + // service-workers mode to "none". + if (request.redirect === 'follow') { + request.serviceWorkers = 'none' + } - // 17. If timingInfo’s redirect start time is 0, then set timingInfo’s - // redirect start time to timingInfo’s start time. - if (timingInfo.redirectStartTime === 0) { - timingInfo.redirectStartTime = timingInfo.startTime - } + // 3. Set response and actualResponse to the result of running + // HTTP-network-or-cache fetch given fetchParams. + actualResponse = response = await httpNetworkOrCacheFetch(fetchParams) - // 18. Append locationURL to request’s URL list. - request.urlList.push(locationURL) + // 4. If request’s response tainting is "cors" and a CORS check + // for request and response returns failure, then return a network error. + if ( + request.responseTainting === 'cors' && + corsCheck(request, response) === 'failure' + ) { + return makeNetworkError('cors failure') + } - // 19. Invoke set request’s referrer policy on redirect on request and - // actualResponse. - setRequestReferrerPolicyOnRedirect(request, actualResponse) + // 5. If the TAO check for request and response returns failure, then set + // request’s timing allow failed flag. + if (TAOCheck(request, response) === 'failure') { + request.timingAllowFailed = true + } + } - // 20. Return the result of running main fetch given fetchParams and true. - return mainFetch(fetchParams, true) -} + // 7. If either request’s response tainting or response’s type + // is "opaque", and the cross-origin resource policy check with + // request’s origin, request’s client, request’s destination, + // and actualResponse returns blocked, then return a network error. + if ( + (request.responseTainting === 'opaque' || + response.type === 'opaque') && + crossOriginResourcePolicyCheck( + request.origin, + request.client, + request.destination, + actualResponse + ) === 'blocked' + ) { + return makeNetworkError('blocked') + } -// https://fetch.spec.whatwg.org/#http-network-or-cache-fetch -async function httpNetworkOrCacheFetch ( - fetchParams, - isAuthenticationFetch = false, - isNewConnectionFetch = false -) { - // 1. Let request be fetchParams’s request. - const request = fetchParams.request + // 8. If actualResponse’s status is a redirect status, then: + if (redirectStatusSet.has(actualResponse.status)) { + // 1. If actualResponse’s status is not 303, request’s body is not null, + // and the connection uses HTTP/2, then user agents may, and are even + // encouraged to, transmit an RST_STREAM frame. + // See, https://github.com/whatwg/fetch/issues/1288 + if (request.redirect !== 'manual') { + fetchParams.controller.connection.destroy() + } - // 2. Let httpFetchParams be null. - let httpFetchParams = null + // 2. Switch on request’s redirect mode: + if (request.redirect === 'error') { + // Set response to a network error. + response = makeNetworkError('unexpected redirect') + } else if (request.redirect === 'manual') { + // Set response to an opaque-redirect filtered response whose internal + // response is actualResponse. + // NOTE(spec): On the web this would return an `opaqueredirect` response, + // but that doesn't make sense server side. + // See https://github.com/nodejs/undici/issues/1193. + response = actualResponse + } else if (request.redirect === 'follow') { + // Set response to the result of running HTTP-redirect fetch given + // fetchParams and response. + response = await httpRedirectFetch(fetchParams, response) + } else { + assert(false) + } + } - // 3. Let httpRequest be null. - let httpRequest = null + // 9. Set response’s timing info to timingInfo. + response.timingInfo = timingInfo - // 4. Let response be null. - let response = null + // 10. Return response. + return response + } - // 5. Let storedResponse be null. - // TODO: cache + // https://fetch.spec.whatwg.org/#http-redirect-fetch + function httpRedirectFetch(fetchParams, response) { + // 1. Let request be fetchParams’s request. + const request = fetchParams.request - // 6. Let httpCache be null. - const httpCache = null + // 2. Let actualResponse be response, if response is not a filtered response, + // and response’s internal response otherwise. + const actualResponse = response.internalResponse + ? response.internalResponse + : response - // 7. Let the revalidatingFlag be unset. - const revalidatingFlag = false + // 3. Let locationURL be actualResponse’s location URL given request’s current + // URL’s fragment. + let locationURL - // 8. Run these steps, but abort when the ongoing fetch is terminated: + try { + locationURL = responseLocationURL( + actualResponse, + requestCurrentURL(request).hash + ) - // 1. If request’s window is "no-window" and request’s redirect mode is - // "error", then set httpFetchParams to fetchParams and httpRequest to - // request. - if (request.window === 'no-window' && request.redirect === 'error') { - httpFetchParams = fetchParams - httpRequest = request - } else { - // Otherwise: + // 4. If locationURL is null, then return response. + if (locationURL == null) { + return response + } + } catch (err) { + // 5. If locationURL is failure, then return a network error. + return Promise.resolve(makeNetworkError(err)) + } - // 1. Set httpRequest to a clone of request. - httpRequest = makeRequest(request) + // 6. If locationURL’s scheme is not an HTTP(S) scheme, then return a network + // error. + if (!urlIsHttpHttpsScheme(locationURL)) { + return Promise.resolve( + makeNetworkError('URL scheme must be a HTTP(S) scheme') + ) + } - // 2. Set httpFetchParams to a copy of fetchParams. - httpFetchParams = { ...fetchParams } + // 7. If request’s redirect count is 20, then return a network error. + if (request.redirectCount === 20) { + return Promise.resolve(makeNetworkError('redirect count exceeded')) + } - // 3. Set httpFetchParams’s request to httpRequest. - httpFetchParams.request = httpRequest - } + // 8. Increase request’s redirect count by 1. + request.redirectCount += 1 - // 3. Let includeCredentials be true if one of - const includeCredentials = - request.credentials === 'include' || - (request.credentials === 'same-origin' && - request.responseTainting === 'basic') - - // 4. Let contentLength be httpRequest’s body’s length, if httpRequest’s - // body is non-null; otherwise null. - const contentLength = httpRequest.body ? httpRequest.body.length : null - - // 5. Let contentLengthHeaderValue be null. - let contentLengthHeaderValue = null - - // 6. If httpRequest’s body is null and httpRequest’s method is `POST` or - // `PUT`, then set contentLengthHeaderValue to `0`. - if ( - httpRequest.body == null && - ['POST', 'PUT'].includes(httpRequest.method) - ) { - contentLengthHeaderValue = '0' - } + // 9. If request’s mode is "cors", locationURL includes credentials, and + // request’s origin is not same origin with locationURL’s origin, then return + // a network error. + if ( + request.mode === 'cors' && + (locationURL.username || locationURL.password) && + !sameOrigin(request, locationURL) + ) { + return Promise.resolve( + makeNetworkError('cross origin not allowed for request mode "cors"') + ) + } - // 7. If contentLength is non-null, then set contentLengthHeaderValue to - // contentLength, serialized and isomorphic encoded. - if (contentLength != null) { - contentLengthHeaderValue = isomorphicEncode(`${contentLength}`) - } + // 10. If request’s response tainting is "cors" and locationURL includes + // credentials, then return a network error. + if ( + request.responseTainting === 'cors' && + (locationURL.username || locationURL.password) + ) { + return Promise.resolve( + makeNetworkError( + 'URL cannot contain credentials for request mode "cors"' + ) + ) + } - // 8. If contentLengthHeaderValue is non-null, then append - // `Content-Length`/contentLengthHeaderValue to httpRequest’s header - // list. - if (contentLengthHeaderValue != null) { - httpRequest.headersList.append('content-length', contentLengthHeaderValue) - } + // 11. If actualResponse’s status is not 303, request’s body is non-null, + // and request’s body’s source is null, then return a network error. + if ( + actualResponse.status !== 303 && + request.body != null && + request.body.source == null + ) { + return Promise.resolve(makeNetworkError()) + } - // 9. If contentLengthHeaderValue is non-null, then append (`Content-Length`, - // contentLengthHeaderValue) to httpRequest’s header list. + // 12. If one of the following is true + // - actualResponse’s status is 301 or 302 and request’s method is `POST` + // - actualResponse’s status is 303 and request’s method is not `GET` or `HEAD` + if ( + ([301, 302].includes(actualResponse.status) && + request.method === 'POST') || + (actualResponse.status === 303 && + !GET_OR_HEAD.includes(request.method)) + ) { + // then: + // 1. Set request’s method to `GET` and request’s body to null. + request.method = 'GET' + request.body = null + + // 2. For each headerName of request-body-header name, delete headerName from + // request’s header list. + for (const headerName of requestBodyHeader) { + request.headersList.delete(headerName) + } + } - // 10. If contentLength is non-null and httpRequest’s keepalive is true, - // then: - if (contentLength != null && httpRequest.keepalive) { - // NOTE: keepalive is a noop outside of browser context. - } + // 13. If request’s current URL’s origin is not same origin with locationURL’s + // origin, then for each headerName of CORS non-wildcard request-header name, + // delete headerName from request’s header list. + if (!sameOrigin(requestCurrentURL(request), locationURL)) { + // https://fetch.spec.whatwg.org/#cors-non-wildcard-request-header-name + request.headersList.delete('authorization') - // 11. If httpRequest’s referrer is a URL, then append - // `Referer`/httpRequest’s referrer, serialized and isomorphic encoded, - // to httpRequest’s header list. - if (httpRequest.referrer instanceof URL) { - httpRequest.headersList.append('referer', isomorphicEncode(httpRequest.referrer.href)) - } + // https://fetch.spec.whatwg.org/#authentication-entries + request.headersList.delete('proxy-authorization', true) - // 12. Append a request `Origin` header for httpRequest. - appendRequestOriginHeader(httpRequest) + // "Cookie" and "Host" are forbidden request-headers, which undici doesn't implement. + request.headersList.delete('cookie') + request.headersList.delete('host') + } - // 13. Append the Fetch metadata headers for httpRequest. [FETCH-METADATA] - appendFetchMetadata(httpRequest) + // 14. If request’s body is non-null, then set request’s body to the first return + // value of safely extracting request’s body’s source. + if (request.body != null) { + assert(request.body.source != null) + request.body = safelyExtractBody(request.body.source)[0] + } - // 14. If httpRequest’s header list does not contain `User-Agent`, then - // user agents should append `User-Agent`/default `User-Agent` value to - // httpRequest’s header list. - if (!httpRequest.headersList.contains('user-agent')) { - httpRequest.headersList.append('user-agent', typeof esbuildDetection === 'undefined' ? 'undici' : 'node') - } + // 15. Let timingInfo be fetchParams’s timing info. + const timingInfo = fetchParams.timingInfo - // 15. If httpRequest’s cache mode is "default" and httpRequest’s header - // list contains `If-Modified-Since`, `If-None-Match`, - // `If-Unmodified-Since`, `If-Match`, or `If-Range`, then set - // httpRequest’s cache mode to "no-store". - if ( - httpRequest.cache === 'default' && - (httpRequest.headersList.contains('if-modified-since') || - httpRequest.headersList.contains('if-none-match') || - httpRequest.headersList.contains('if-unmodified-since') || - httpRequest.headersList.contains('if-match') || - httpRequest.headersList.contains('if-range')) - ) { - httpRequest.cache = 'no-store' - } + // 16. Set timingInfo’s redirect end time and post-redirect start time to the + // coarsened shared current time given fetchParams’s cross-origin isolated + // capability. + timingInfo.redirectEndTime = timingInfo.postRedirectStartTime = + coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability) - // 16. If httpRequest’s cache mode is "no-cache", httpRequest’s prevent - // no-cache cache-control header modification flag is unset, and - // httpRequest’s header list does not contain `Cache-Control`, then append - // `Cache-Control`/`max-age=0` to httpRequest’s header list. - if ( - httpRequest.cache === 'no-cache' && - !httpRequest.preventNoCacheCacheControlHeaderModification && - !httpRequest.headersList.contains('cache-control') - ) { - httpRequest.headersList.append('cache-control', 'max-age=0') - } + // 17. If timingInfo’s redirect start time is 0, then set timingInfo’s + // redirect start time to timingInfo’s start time. + if (timingInfo.redirectStartTime === 0) { + timingInfo.redirectStartTime = timingInfo.startTime + } - // 17. If httpRequest’s cache mode is "no-store" or "reload", then: - if (httpRequest.cache === 'no-store' || httpRequest.cache === 'reload') { - // 1. If httpRequest’s header list does not contain `Pragma`, then append - // `Pragma`/`no-cache` to httpRequest’s header list. - if (!httpRequest.headersList.contains('pragma')) { - httpRequest.headersList.append('pragma', 'no-cache') - } + // 18. Append locationURL to request’s URL list. + request.urlList.push(locationURL) - // 2. If httpRequest’s header list does not contain `Cache-Control`, - // then append `Cache-Control`/`no-cache` to httpRequest’s header list. - if (!httpRequest.headersList.contains('cache-control')) { - httpRequest.headersList.append('cache-control', 'no-cache') - } - } + // 19. Invoke set request’s referrer policy on redirect on request and + // actualResponse. + setRequestReferrerPolicyOnRedirect(request, actualResponse) - // 18. If httpRequest’s header list contains `Range`, then append - // `Accept-Encoding`/`identity` to httpRequest’s header list. - if (httpRequest.headersList.contains('range')) { - httpRequest.headersList.append('accept-encoding', 'identity') - } + // 20. Return the result of running main fetch given fetchParams and true. + return mainFetch(fetchParams, true) + } - // 19. Modify httpRequest’s header list per HTTP. Do not append a given - // header if httpRequest’s header list contains that header’s name. - // TODO: https://github.com/whatwg/fetch/issues/1285#issuecomment-896560129 - if (!httpRequest.headersList.contains('accept-encoding')) { - if (urlHasHttpsScheme(requestCurrentURL(httpRequest))) { - httpRequest.headersList.append('accept-encoding', 'br, gzip, deflate') - } else { - httpRequest.headersList.append('accept-encoding', 'gzip, deflate') - } - } + // https://fetch.spec.whatwg.org/#http-network-or-cache-fetch + async function httpNetworkOrCacheFetch( + fetchParams, + isAuthenticationFetch = false, + isNewConnectionFetch = false + ) { + // 1. Let request be fetchParams’s request. + const request = fetchParams.request - httpRequest.headersList.delete('host') + // 2. Let httpFetchParams be null. + let httpFetchParams = null - // 20. If includeCredentials is true, then: - if (includeCredentials) { - // 1. If the user agent is not configured to block cookies for httpRequest - // (see section 7 of [COOKIES]), then: - // TODO: credentials - // 2. If httpRequest’s header list does not contain `Authorization`, then: - // TODO: credentials - } + // 3. Let httpRequest be null. + let httpRequest = null - // 21. If there’s a proxy-authentication entry, use it as appropriate. - // TODO: proxy-authentication + // 4. Let response be null. + let response = null - // 22. Set httpCache to the result of determining the HTTP cache - // partition, given httpRequest. - // TODO: cache + // 5. Let storedResponse be null. + // TODO: cache - // 23. If httpCache is null, then set httpRequest’s cache mode to - // "no-store". - if (httpCache == null) { - httpRequest.cache = 'no-store' - } + // 6. Let httpCache be null. + const httpCache = null - // 24. If httpRequest’s cache mode is neither "no-store" nor "reload", - // then: - if (httpRequest.mode !== 'no-store' && httpRequest.mode !== 'reload') { - // TODO: cache - } + // 7. Let the revalidatingFlag be unset. + const revalidatingFlag = false - // 9. If aborted, then return the appropriate network error for fetchParams. - // TODO + // 8. Run these steps, but abort when the ongoing fetch is terminated: - // 10. If response is null, then: - if (response == null) { - // 1. If httpRequest’s cache mode is "only-if-cached", then return a - // network error. - if (httpRequest.mode === 'only-if-cached') { - return makeNetworkError('only if cached') - } + // 1. If request’s window is "no-window" and request’s redirect mode is + // "error", then set httpFetchParams to fetchParams and httpRequest to + // request. + if (request.window === 'no-window' && request.redirect === 'error') { + httpFetchParams = fetchParams + httpRequest = request + } else { + // Otherwise: - // 2. Let forwardResponse be the result of running HTTP-network fetch - // given httpFetchParams, includeCredentials, and isNewConnectionFetch. - const forwardResponse = await httpNetworkFetch( - httpFetchParams, - includeCredentials, - isNewConnectionFetch - ) - - // 3. If httpRequest’s method is unsafe and forwardResponse’s status is - // in the range 200 to 399, inclusive, invalidate appropriate stored - // responses in httpCache, as per the "Invalidation" chapter of HTTP - // Caching, and set storedResponse to null. [HTTP-CACHING] - if ( - !safeMethodsSet.has(httpRequest.method) && - forwardResponse.status >= 200 && - forwardResponse.status <= 399 - ) { - // TODO: cache - } + // 1. Set httpRequest to a clone of request. + httpRequest = makeRequest(request) - // 4. If the revalidatingFlag is set and forwardResponse’s status is 304, - // then: - if (revalidatingFlag && forwardResponse.status === 304) { - // TODO: cache - } + // 2. Set httpFetchParams to a copy of fetchParams. + httpFetchParams = { ...fetchParams } - // 5. If response is null, then: - if (response == null) { - // 1. Set response to forwardResponse. - response = forwardResponse + // 3. Set httpFetchParams’s request to httpRequest. + httpFetchParams.request = httpRequest + } - // 2. Store httpRequest and forwardResponse in httpCache, as per the - // "Storing Responses in Caches" chapter of HTTP Caching. [HTTP-CACHING] - // TODO: cache - } - } + // 3. Let includeCredentials be true if one of + const includeCredentials = + request.credentials === 'include' || + (request.credentials === 'same-origin' && + request.responseTainting === 'basic') - // 11. Set response’s URL list to a clone of httpRequest’s URL list. - response.urlList = [...httpRequest.urlList] + // 4. Let contentLength be httpRequest’s body’s length, if httpRequest’s + // body is non-null; otherwise null. + const contentLength = httpRequest.body ? httpRequest.body.length : null - // 12. If httpRequest’s header list contains `Range`, then set response’s - // range-requested flag. - if (httpRequest.headersList.contains('range')) { - response.rangeRequested = true - } + // 5. Let contentLengthHeaderValue be null. + let contentLengthHeaderValue = null - // 13. Set response’s request-includes-credentials to includeCredentials. - response.requestIncludesCredentials = includeCredentials + // 6. If httpRequest’s body is null and httpRequest’s method is `POST` or + // `PUT`, then set contentLengthHeaderValue to `0`. + if ( + httpRequest.body == null && + ['POST', 'PUT'].includes(httpRequest.method) + ) { + contentLengthHeaderValue = '0' + } - // 14. If response’s status is 401, httpRequest’s response tainting is not - // "cors", includeCredentials is true, and request’s window is an environment - // settings object, then: - // TODO + // 7. If contentLength is non-null, then set contentLengthHeaderValue to + // contentLength, serialized and isomorphic encoded. + if (contentLength != null) { + contentLengthHeaderValue = isomorphicEncode(`${contentLength}`) + } - // 15. If response’s status is 407, then: - if (response.status === 407) { - // 1. If request’s window is "no-window", then return a network error. - if (request.window === 'no-window') { - return makeNetworkError() - } + // 8. If contentLengthHeaderValue is non-null, then append + // `Content-Length`/contentLengthHeaderValue to httpRequest’s header + // list. + if (contentLengthHeaderValue != null) { + httpRequest.headersList.append( + 'content-length', + contentLengthHeaderValue + ) + } - // 2. ??? + // 9. If contentLengthHeaderValue is non-null, then append (`Content-Length`, + // contentLengthHeaderValue) to httpRequest’s header list. - // 3. If fetchParams is canceled, then return the appropriate network error for fetchParams. - if (isCancelled(fetchParams)) { - return makeAppropriateNetworkError(fetchParams) - } + // 10. If contentLength is non-null and httpRequest’s keepalive is true, + // then: + if (contentLength != null && httpRequest.keepalive) { + // NOTE: keepalive is a noop outside of browser context. + } - // 4. Prompt the end user as appropriate in request’s window and store - // the result as a proxy-authentication entry. [HTTP-AUTH] - // TODO: Invoke some kind of callback? + // 11. If httpRequest’s referrer is a URL, then append + // `Referer`/httpRequest’s referrer, serialized and isomorphic encoded, + // to httpRequest’s header list. + if (httpRequest.referrer instanceof URL) { + httpRequest.headersList.append( + 'referer', + isomorphicEncode(httpRequest.referrer.href) + ) + } - // 5. Set response to the result of running HTTP-network-or-cache fetch given - // fetchParams. - // TODO - return makeNetworkError('proxy authentication required') - } + // 12. Append a request `Origin` header for httpRequest. + appendRequestOriginHeader(httpRequest) - // 16. If all of the following are true - if ( - // response’s status is 421 - response.status === 421 && - // isNewConnectionFetch is false - !isNewConnectionFetch && - // request’s body is null, or request’s body is non-null and request’s body’s source is non-null - (request.body == null || request.body.source != null) - ) { - // then: - - // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams. - if (isCancelled(fetchParams)) { - return makeAppropriateNetworkError(fetchParams) - } + // 13. Append the Fetch metadata headers for httpRequest. [FETCH-METADATA] + appendFetchMetadata(httpRequest) - // 2. Set response to the result of running HTTP-network-or-cache - // fetch given fetchParams, isAuthenticationFetch, and true. + // 14. If httpRequest’s header list does not contain `User-Agent`, then + // user agents should append `User-Agent`/default `User-Agent` value to + // httpRequest’s header list. + if (!httpRequest.headersList.contains('user-agent')) { + httpRequest.headersList.append( + 'user-agent', + typeof esbuildDetection === 'undefined' ? 'undici' : 'node' + ) + } - // TODO (spec): The spec doesn't specify this but we need to cancel - // the active response before we can start a new one. - // https://github.com/whatwg/fetch/issues/1293 - fetchParams.controller.connection.destroy() + // 15. If httpRequest’s cache mode is "default" and httpRequest’s header + // list contains `If-Modified-Since`, `If-None-Match`, + // `If-Unmodified-Since`, `If-Match`, or `If-Range`, then set + // httpRequest’s cache mode to "no-store". + if ( + httpRequest.cache === 'default' && + (httpRequest.headersList.contains('if-modified-since') || + httpRequest.headersList.contains('if-none-match') || + httpRequest.headersList.contains('if-unmodified-since') || + httpRequest.headersList.contains('if-match') || + httpRequest.headersList.contains('if-range')) + ) { + httpRequest.cache = 'no-store' + } - response = await httpNetworkOrCacheFetch( - fetchParams, - isAuthenticationFetch, - true - ) - } + // 16. If httpRequest’s cache mode is "no-cache", httpRequest’s prevent + // no-cache cache-control header modification flag is unset, and + // httpRequest’s header list does not contain `Cache-Control`, then append + // `Cache-Control`/`max-age=0` to httpRequest’s header list. + if ( + httpRequest.cache === 'no-cache' && + !httpRequest.preventNoCacheCacheControlHeaderModification && + !httpRequest.headersList.contains('cache-control') + ) { + httpRequest.headersList.append('cache-control', 'max-age=0') + } - // 17. If isAuthenticationFetch is true, then create an authentication entry - if (isAuthenticationFetch) { - // TODO - } + // 17. If httpRequest’s cache mode is "no-store" or "reload", then: + if ( + httpRequest.cache === 'no-store' || + httpRequest.cache === 'reload' + ) { + // 1. If httpRequest’s header list does not contain `Pragma`, then append + // `Pragma`/`no-cache` to httpRequest’s header list. + if (!httpRequest.headersList.contains('pragma')) { + httpRequest.headersList.append('pragma', 'no-cache') + } - // 18. Return response. - return response -} - -// https://fetch.spec.whatwg.org/#http-network-fetch -async function httpNetworkFetch ( - fetchParams, - includeCredentials = false, - forceNewConnection = false -) { - assert(!fetchParams.controller.connection || fetchParams.controller.connection.destroyed) - - fetchParams.controller.connection = { - abort: null, - destroyed: false, - destroy (err) { - if (!this.destroyed) { - this.destroyed = true - this.abort?.(err ?? new DOMException('The operation was aborted.', 'AbortError')) - } - } - } + // 2. If httpRequest’s header list does not contain `Cache-Control`, + // then append `Cache-Control`/`no-cache` to httpRequest’s header list. + if (!httpRequest.headersList.contains('cache-control')) { + httpRequest.headersList.append('cache-control', 'no-cache') + } + } - // 1. Let request be fetchParams’s request. - const request = fetchParams.request + // 18. If httpRequest’s header list contains `Range`, then append + // `Accept-Encoding`/`identity` to httpRequest’s header list. + if (httpRequest.headersList.contains('range')) { + httpRequest.headersList.append('accept-encoding', 'identity') + } - // 2. Let response be null. - let response = null + // 19. Modify httpRequest’s header list per HTTP. Do not append a given + // header if httpRequest’s header list contains that header’s name. + // TODO: https://github.com/whatwg/fetch/issues/1285#issuecomment-896560129 + if (!httpRequest.headersList.contains('accept-encoding')) { + if (urlHasHttpsScheme(requestCurrentURL(httpRequest))) { + httpRequest.headersList.append( + 'accept-encoding', + 'br, gzip, deflate' + ) + } else { + httpRequest.headersList.append('accept-encoding', 'gzip, deflate') + } + } - // 3. Let timingInfo be fetchParams’s timing info. - const timingInfo = fetchParams.timingInfo + httpRequest.headersList.delete('host') - // 4. Let httpCache be the result of determining the HTTP cache partition, - // given request. - // TODO: cache - const httpCache = null + // 20. If includeCredentials is true, then: + if (includeCredentials) { + // 1. If the user agent is not configured to block cookies for httpRequest + // (see section 7 of [COOKIES]), then: + // TODO: credentials + // 2. If httpRequest’s header list does not contain `Authorization`, then: + // TODO: credentials + } - // 5. If httpCache is null, then set request’s cache mode to "no-store". - if (httpCache == null) { - request.cache = 'no-store' - } + // 21. If there’s a proxy-authentication entry, use it as appropriate. + // TODO: proxy-authentication - // 6. Let networkPartitionKey be the result of determining the network - // partition key given request. - // TODO - - // 7. Let newConnection be "yes" if forceNewConnection is true; otherwise - // "no". - const newConnection = forceNewConnection ? 'yes' : 'no' // eslint-disable-line no-unused-vars - - // 8. Switch on request’s mode: - if (request.mode === 'websocket') { - // Let connection be the result of obtaining a WebSocket connection, - // given request’s current URL. - // TODO - } else { - // Let connection be the result of obtaining a connection, given - // networkPartitionKey, request’s current URL’s origin, - // includeCredentials, and forceNewConnection. - // TODO - } + // 22. Set httpCache to the result of determining the HTTP cache + // partition, given httpRequest. + // TODO: cache - // 9. Run these steps, but abort when the ongoing fetch is terminated: + // 23. If httpCache is null, then set httpRequest’s cache mode to + // "no-store". + if (httpCache == null) { + httpRequest.cache = 'no-store' + } - // 1. If connection is failure, then return a network error. + // 24. If httpRequest’s cache mode is neither "no-store" nor "reload", + // then: + if (httpRequest.mode !== 'no-store' && httpRequest.mode !== 'reload') { + // TODO: cache + } - // 2. Set timingInfo’s final connection timing info to the result of - // calling clamp and coarsen connection timing info with connection’s - // timing info, timingInfo’s post-redirect start time, and fetchParams’s - // cross-origin isolated capability. + // 9. If aborted, then return the appropriate network error for fetchParams. + // TODO - // 3. If connection is not an HTTP/2 connection, request’s body is non-null, - // and request’s body’s source is null, then append (`Transfer-Encoding`, - // `chunked`) to request’s header list. + // 10. If response is null, then: + if (response == null) { + // 1. If httpRequest’s cache mode is "only-if-cached", then return a + // network error. + if (httpRequest.mode === 'only-if-cached') { + return makeNetworkError('only if cached') + } - // 4. Set timingInfo’s final network-request start time to the coarsened - // shared current time given fetchParams’s cross-origin isolated - // capability. + // 2. Let forwardResponse be the result of running HTTP-network fetch + // given httpFetchParams, includeCredentials, and isNewConnectionFetch. + const forwardResponse = await httpNetworkFetch( + httpFetchParams, + includeCredentials, + isNewConnectionFetch + ) - // 5. Set response to the result of making an HTTP request over connection - // using request with the following caveats: + // 3. If httpRequest’s method is unsafe and forwardResponse’s status is + // in the range 200 to 399, inclusive, invalidate appropriate stored + // responses in httpCache, as per the "Invalidation" chapter of HTTP + // Caching, and set storedResponse to null. [HTTP-CACHING] + if ( + !safeMethodsSet.has(httpRequest.method) && + forwardResponse.status >= 200 && + forwardResponse.status <= 399 + ) { + // TODO: cache + } - // - Follow the relevant requirements from HTTP. [HTTP] [HTTP-SEMANTICS] - // [HTTP-COND] [HTTP-CACHING] [HTTP-AUTH] + // 4. If the revalidatingFlag is set and forwardResponse’s status is 304, + // then: + if (revalidatingFlag && forwardResponse.status === 304) { + // TODO: cache + } - // - If request’s body is non-null, and request’s body’s source is null, - // then the user agent may have a buffer of up to 64 kibibytes and store - // a part of request’s body in that buffer. If the user agent reads from - // request’s body beyond that buffer’s size and the user agent needs to - // resend request, then instead return a network error. + // 5. If response is null, then: + if (response == null) { + // 1. Set response to forwardResponse. + response = forwardResponse - // - Set timingInfo’s final network-response start time to the coarsened - // shared current time given fetchParams’s cross-origin isolated capability, - // immediately after the user agent’s HTTP parser receives the first byte - // of the response (e.g., frame header bytes for HTTP/2 or response status - // line for HTTP/1.x). + // 2. Store httpRequest and forwardResponse in httpCache, as per the + // "Storing Responses in Caches" chapter of HTTP Caching. [HTTP-CACHING] + // TODO: cache + } + } - // - Wait until all the headers are transmitted. + // 11. Set response’s URL list to a clone of httpRequest’s URL list. + response.urlList = [...httpRequest.urlList] - // - Any responses whose status is in the range 100 to 199, inclusive, - // and is not 101, are to be ignored, except for the purposes of setting - // timingInfo’s final network-response start time above. + // 12. If httpRequest’s header list contains `Range`, then set response’s + // range-requested flag. + if (httpRequest.headersList.contains('range')) { + response.rangeRequested = true + } - // - If request’s header list contains `Transfer-Encoding`/`chunked` and - // response is transferred via HTTP/1.0 or older, then return a network - // error. + // 13. Set response’s request-includes-credentials to includeCredentials. + response.requestIncludesCredentials = includeCredentials - // - If the HTTP request results in a TLS client certificate dialog, then: + // 14. If response’s status is 401, httpRequest’s response tainting is not + // "cors", includeCredentials is true, and request’s window is an environment + // settings object, then: + // TODO - // 1. If request’s window is an environment settings object, make the - // dialog available in request’s window. + // 15. If response’s status is 407, then: + if (response.status === 407) { + // 1. If request’s window is "no-window", then return a network error. + if (request.window === 'no-window') { + return makeNetworkError() + } - // 2. Otherwise, return a network error. + // 2. ??? - // To transmit request’s body body, run these steps: - let requestBody = null - // 1. If body is null and fetchParams’s process request end-of-body is - // non-null, then queue a fetch task given fetchParams’s process request - // end-of-body and fetchParams’s task destination. - if (request.body == null && fetchParams.processRequestEndOfBody) { - queueMicrotask(() => fetchParams.processRequestEndOfBody()) - } else if (request.body != null) { - // 2. Otherwise, if body is non-null: + // 3. If fetchParams is canceled, then return the appropriate network error for fetchParams. + if (isCancelled(fetchParams)) { + return makeAppropriateNetworkError(fetchParams) + } - // 1. Let processBodyChunk given bytes be these steps: - const processBodyChunk = async function * (bytes) { - // 1. If the ongoing fetch is terminated, then abort these steps. - if (isCancelled(fetchParams)) { - return - } + // 4. Prompt the end user as appropriate in request’s window and store + // the result as a proxy-authentication entry. [HTTP-AUTH] + // TODO: Invoke some kind of callback? - // 2. Run this step in parallel: transmit bytes. - yield bytes + // 5. Set response to the result of running HTTP-network-or-cache fetch given + // fetchParams. + // TODO + return makeNetworkError('proxy authentication required') + } - // 3. If fetchParams’s process request body is non-null, then run - // fetchParams’s process request body given bytes’s length. - fetchParams.processRequestBodyChunkLength?.(bytes.byteLength) - } + // 16. If all of the following are true + if ( + // response’s status is 421 + response.status === 421 && + // isNewConnectionFetch is false + !isNewConnectionFetch && + // request’s body is null, or request’s body is non-null and request’s body’s source is non-null + (request.body == null || request.body.source != null) + ) { + // then: - // 2. Let processEndOfBody be these steps: - const processEndOfBody = () => { - // 1. If fetchParams is canceled, then abort these steps. - if (isCancelled(fetchParams)) { - return - } + // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams. + if (isCancelled(fetchParams)) { + return makeAppropriateNetworkError(fetchParams) + } - // 2. If fetchParams’s process request end-of-body is non-null, - // then run fetchParams’s process request end-of-body. - if (fetchParams.processRequestEndOfBody) { - fetchParams.processRequestEndOfBody() - } - } + // 2. Set response to the result of running HTTP-network-or-cache + // fetch given fetchParams, isAuthenticationFetch, and true. - // 3. Let processBodyError given e be these steps: - const processBodyError = (e) => { - // 1. If fetchParams is canceled, then abort these steps. - if (isCancelled(fetchParams)) { - return - } + // TODO (spec): The spec doesn't specify this but we need to cancel + // the active response before we can start a new one. + // https://github.com/whatwg/fetch/issues/1293 + fetchParams.controller.connection.destroy() - // 2. If e is an "AbortError" DOMException, then abort fetchParams’s controller. - if (e.name === 'AbortError') { - fetchParams.controller.abort() - } else { - fetchParams.controller.terminate(e) - } - } + response = await httpNetworkOrCacheFetch( + fetchParams, + isAuthenticationFetch, + true + ) + } - // 4. Incrementally read request’s body given processBodyChunk, processEndOfBody, - // processBodyError, and fetchParams’s task destination. - requestBody = (async function * () { - try { - for await (const bytes of request.body.stream) { - yield * processBodyChunk(bytes) + // 17. If isAuthenticationFetch is true, then create an authentication entry + if (isAuthenticationFetch) { + // TODO } - processEndOfBody() - } catch (err) { - processBodyError(err) + + // 18. Return response. + return response } - })() - } - try { - // socket is only provided for websockets - const { body, status, statusText, headersList, socket } = await dispatch({ body: requestBody }) + // https://fetch.spec.whatwg.org/#http-network-fetch + async function httpNetworkFetch( + fetchParams, + includeCredentials = false, + forceNewConnection = false + ) { + assert( + !fetchParams.controller.connection || + fetchParams.controller.connection.destroyed + ) - if (socket) { - response = makeResponse({ status, statusText, headersList, socket }) - } else { - const iterator = body[Symbol.asyncIterator]() - fetchParams.controller.next = () => iterator.next() + fetchParams.controller.connection = { + abort: null, + destroyed: false, + destroy(err) { + if (!this.destroyed) { + this.destroyed = true + this.abort?.( + err ?? + new DOMException('The operation was aborted.', 'AbortError') + ) + } + } + } - response = makeResponse({ status, statusText, headersList }) - } - } catch (err) { - // 10. If aborted, then: - if (err.name === 'AbortError') { - // 1. If connection uses HTTP/2, then transmit an RST_STREAM frame. - fetchParams.controller.connection.destroy() - - // 2. Return the appropriate network error for fetchParams. - return makeAppropriateNetworkError(fetchParams, err) - } + // 1. Let request be fetchParams’s request. + const request = fetchParams.request - return makeNetworkError(err) - } + // 2. Let response be null. + let response = null - // 11. Let pullAlgorithm be an action that resumes the ongoing fetch - // if it is suspended. - const pullAlgorithm = () => { - fetchParams.controller.resume() - } + // 3. Let timingInfo be fetchParams’s timing info. + const timingInfo = fetchParams.timingInfo - // 12. Let cancelAlgorithm be an algorithm that aborts fetchParams’s - // controller with reason, given reason. - const cancelAlgorithm = (reason) => { - fetchParams.controller.abort(reason) - } + // 4. Let httpCache be the result of determining the HTTP cache partition, + // given request. + // TODO: cache + const httpCache = null - // 13. Let highWaterMark be a non-negative, non-NaN number, chosen by - // the user agent. - // TODO + // 5. If httpCache is null, then set request’s cache mode to "no-store". + if (httpCache == null) { + request.cache = 'no-store' + } - // 14. Let sizeAlgorithm be an algorithm that accepts a chunk object - // and returns a non-negative, non-NaN, non-infinite number, chosen by the user agent. - // TODO + // 6. Let networkPartitionKey be the result of determining the network + // partition key given request. + // TODO - // 15. Let stream be a new ReadableStream. - // 16. Set up stream with pullAlgorithm set to pullAlgorithm, - // cancelAlgorithm set to cancelAlgorithm, highWaterMark set to - // highWaterMark, and sizeAlgorithm set to sizeAlgorithm. - if (!ReadableStream) { - ReadableStream = (__nccwpck_require__(35356).ReadableStream) - } + // 7. Let newConnection be "yes" if forceNewConnection is true; otherwise + // "no". + const newConnection = forceNewConnection ? 'yes' : 'no' // eslint-disable-line no-unused-vars - const stream = new ReadableStream( - { - async start (controller) { - fetchParams.controller.controller = controller - }, - async pull (controller) { - await pullAlgorithm(controller) - }, - async cancel (reason) { - await cancelAlgorithm(reason) - } - }, - { - highWaterMark: 0, - size () { - return 1 - } - } - ) + // 8. Switch on request’s mode: + if (request.mode === 'websocket') { + // Let connection be the result of obtaining a WebSocket connection, + // given request’s current URL. + // TODO + } else { + // Let connection be the result of obtaining a connection, given + // networkPartitionKey, request’s current URL’s origin, + // includeCredentials, and forceNewConnection. + // TODO + } - // 17. Run these steps, but abort when the ongoing fetch is terminated: + // 9. Run these steps, but abort when the ongoing fetch is terminated: - // 1. Set response’s body to a new body whose stream is stream. - response.body = { stream } + // 1. If connection is failure, then return a network error. - // 2. If response is not a network error and request’s cache mode is - // not "no-store", then update response in httpCache for request. - // TODO + // 2. Set timingInfo’s final connection timing info to the result of + // calling clamp and coarsen connection timing info with connection’s + // timing info, timingInfo’s post-redirect start time, and fetchParams’s + // cross-origin isolated capability. - // 3. If includeCredentials is true and the user agent is not configured - // to block cookies for request (see section 7 of [COOKIES]), then run the - // "set-cookie-string" parsing algorithm (see section 5.2 of [COOKIES]) on - // the value of each header whose name is a byte-case-insensitive match for - // `Set-Cookie` in response’s header list, if any, and request’s current URL. - // TODO + // 3. If connection is not an HTTP/2 connection, request’s body is non-null, + // and request’s body’s source is null, then append (`Transfer-Encoding`, + // `chunked`) to request’s header list. - // 18. If aborted, then: - // TODO + // 4. Set timingInfo’s final network-request start time to the coarsened + // shared current time given fetchParams’s cross-origin isolated + // capability. - // 19. Run these steps in parallel: + // 5. Set response to the result of making an HTTP request over connection + // using request with the following caveats: - // 1. Run these steps, but abort when fetchParams is canceled: - fetchParams.controller.on('terminated', onAborted) - fetchParams.controller.resume = async () => { - // 1. While true - while (true) { - // 1-3. See onData... + // - Follow the relevant requirements from HTTP. [HTTP] [HTTP-SEMANTICS] + // [HTTP-COND] [HTTP-CACHING] [HTTP-AUTH] - // 4. Set bytes to the result of handling content codings given - // codings and bytes. - let bytes - let isFailure - try { - const { done, value } = await fetchParams.controller.next() + // - If request’s body is non-null, and request’s body’s source is null, + // then the user agent may have a buffer of up to 64 kibibytes and store + // a part of request’s body in that buffer. If the user agent reads from + // request’s body beyond that buffer’s size and the user agent needs to + // resend request, then instead return a network error. - if (isAborted(fetchParams)) { - break - } + // - Set timingInfo’s final network-response start time to the coarsened + // shared current time given fetchParams’s cross-origin isolated capability, + // immediately after the user agent’s HTTP parser receives the first byte + // of the response (e.g., frame header bytes for HTTP/2 or response status + // line for HTTP/1.x). - bytes = done ? undefined : value - } catch (err) { - if (fetchParams.controller.ended && !timingInfo.encodedBodySize) { - // zlib doesn't like empty streams. - bytes = undefined - } else { - bytes = err + // - Wait until all the headers are transmitted. - // err may be propagated from the result of calling readablestream.cancel, - // which might not be an error. https://github.com/nodejs/undici/issues/2009 - isFailure = true - } - } + // - Any responses whose status is in the range 100 to 199, inclusive, + // and is not 101, are to be ignored, except for the purposes of setting + // timingInfo’s final network-response start time above. - if (bytes === undefined) { - // 2. Otherwise, if the bytes transmission for response’s message - // body is done normally and stream is readable, then close - // stream, finalize response for fetchParams and response, and - // abort these in-parallel steps. - readableStreamClose(fetchParams.controller.controller) + // - If request’s header list contains `Transfer-Encoding`/`chunked` and + // response is transferred via HTTP/1.0 or older, then return a network + // error. - finalizeResponse(fetchParams, response) + // - If the HTTP request results in a TLS client certificate dialog, then: - return - } + // 1. If request’s window is an environment settings object, make the + // dialog available in request’s window. - // 5. Increase timingInfo’s decoded body size by bytes’s length. - timingInfo.decodedBodySize += bytes?.byteLength ?? 0 + // 2. Otherwise, return a network error. - // 6. If bytes is failure, then terminate fetchParams’s controller. - if (isFailure) { - fetchParams.controller.terminate(bytes) - return - } + // To transmit request’s body body, run these steps: + let requestBody = null + // 1. If body is null and fetchParams’s process request end-of-body is + // non-null, then queue a fetch task given fetchParams’s process request + // end-of-body and fetchParams’s task destination. + if (request.body == null && fetchParams.processRequestEndOfBody) { + queueMicrotask(() => fetchParams.processRequestEndOfBody()) + } else if (request.body != null) { + // 2. Otherwise, if body is non-null: - // 7. Enqueue a Uint8Array wrapping an ArrayBuffer containing bytes - // into stream. - fetchParams.controller.controller.enqueue(new Uint8Array(bytes)) + // 1. Let processBodyChunk given bytes be these steps: + const processBodyChunk = async function* (bytes) { + // 1. If the ongoing fetch is terminated, then abort these steps. + if (isCancelled(fetchParams)) { + return + } - // 8. If stream is errored, then terminate the ongoing fetch. - if (isErrored(stream)) { - fetchParams.controller.terminate() - return - } + // 2. Run this step in parallel: transmit bytes. + yield bytes - // 9. If stream doesn’t need more data ask the user agent to suspend - // the ongoing fetch. - if (!fetchParams.controller.controller.desiredSize) { - return - } - } - } + // 3. If fetchParams’s process request body is non-null, then run + // fetchParams’s process request body given bytes’s length. + fetchParams.processRequestBodyChunkLength?.(bytes.byteLength) + } - // 2. If aborted, then: - function onAborted (reason) { - // 2. If fetchParams is aborted, then: - if (isAborted(fetchParams)) { - // 1. Set response’s aborted flag. - response.aborted = true - - // 2. If stream is readable, then error stream with the result of - // deserialize a serialized abort reason given fetchParams’s - // controller’s serialized abort reason and an - // implementation-defined realm. - if (isReadable(stream)) { - fetchParams.controller.controller.error( - fetchParams.controller.serializedAbortReason - ) - } - } else { - // 3. Otherwise, if stream is readable, error stream with a TypeError. - if (isReadable(stream)) { - fetchParams.controller.controller.error(new TypeError('terminated', { - cause: isErrorLike(reason) ? reason : undefined - })) - } - } + // 2. Let processEndOfBody be these steps: + const processEndOfBody = () => { + // 1. If fetchParams is canceled, then abort these steps. + if (isCancelled(fetchParams)) { + return + } - // 4. If connection uses HTTP/2, then transmit an RST_STREAM frame. - // 5. Otherwise, the user agent should close connection unless it would be bad for performance to do so. - fetchParams.controller.connection.destroy() - } + // 2. If fetchParams’s process request end-of-body is non-null, + // then run fetchParams’s process request end-of-body. + if (fetchParams.processRequestEndOfBody) { + fetchParams.processRequestEndOfBody() + } + } - // 20. Return response. - return response + // 3. Let processBodyError given e be these steps: + const processBodyError = e => { + // 1. If fetchParams is canceled, then abort these steps. + if (isCancelled(fetchParams)) { + return + } - async function dispatch ({ body }) { - const url = requestCurrentURL(request) - /** @type {import('../..').Agent} */ - const agent = fetchParams.controller.dispatcher + // 2. If e is an "AbortError" DOMException, then abort fetchParams’s controller. + if (e.name === 'AbortError') { + fetchParams.controller.abort() + } else { + fetchParams.controller.terminate(e) + } + } - return new Promise((resolve, reject) => agent.dispatch( - { - path: url.pathname + url.search, - origin: url.origin, - method: request.method, - body: fetchParams.controller.dispatcher.isMockActive ? request.body && (request.body.source || request.body.stream) : body, - headers: request.headersList.entries, - maxRedirections: 0, - upgrade: request.mode === 'websocket' ? 'websocket' : undefined - }, - { - body: null, - abort: null, + // 4. Incrementally read request’s body given processBodyChunk, processEndOfBody, + // processBodyError, and fetchParams’s task destination. + requestBody = (async function* () { + try { + for await (const bytes of request.body.stream) { + yield* processBodyChunk(bytes) + } + processEndOfBody() + } catch (err) { + processBodyError(err) + } + })() + } - onConnect (abort) { - // TODO (fix): Do we need connection here? - const { connection } = fetchParams.controller + try { + // socket is only provided for websockets + const { body, status, statusText, headersList, socket } = + await dispatch({ body: requestBody }) - if (connection.destroyed) { - abort(new DOMException('The operation was aborted.', 'AbortError')) + if (socket) { + response = makeResponse({ status, statusText, headersList, socket }) } else { - fetchParams.controller.on('terminated', abort) - this.abort = connection.abort = abort - } - }, + const iterator = body[Symbol.asyncIterator]() + fetchParams.controller.next = () => iterator.next() - onHeaders (status, headersList, resume, statusText) { - if (status < 200) { - return + response = makeResponse({ status, statusText, headersList }) } + } catch (err) { + // 10. If aborted, then: + if (err.name === 'AbortError') { + // 1. If connection uses HTTP/2, then transmit an RST_STREAM frame. + fetchParams.controller.connection.destroy() - let codings = [] - let location = '' - - const headers = new Headers() + // 2. Return the appropriate network error for fetchParams. + return makeAppropriateNetworkError(fetchParams, err) + } - // For H2, the headers are a plain JS object - // We distinguish between them and iterate accordingly - if (Array.isArray(headersList)) { - for (let n = 0; n < headersList.length; n += 2) { - const key = headersList[n + 0].toString('latin1') - const val = headersList[n + 1].toString('latin1') - if (key.toLowerCase() === 'content-encoding') { - // https://www.rfc-editor.org/rfc/rfc7231#section-3.1.2.1 - // "All content-coding values are case-insensitive..." - codings = val.toLowerCase().split(',').map((x) => x.trim()) - } else if (key.toLowerCase() === 'location') { - location = val - } + return makeNetworkError(err) + } - headers[kHeadersList].append(key, val) - } - } else { - const keys = Object.keys(headersList) - for (const key of keys) { - const val = headersList[key] - if (key.toLowerCase() === 'content-encoding') { - // https://www.rfc-editor.org/rfc/rfc7231#section-3.1.2.1 - // "All content-coding values are case-insensitive..." - codings = val.toLowerCase().split(',').map((x) => x.trim()).reverse() - } else if (key.toLowerCase() === 'location') { - location = val - } + // 11. Let pullAlgorithm be an action that resumes the ongoing fetch + // if it is suspended. + const pullAlgorithm = () => { + fetchParams.controller.resume() + } - headers[kHeadersList].append(key, val) - } - } + // 12. Let cancelAlgorithm be an algorithm that aborts fetchParams’s + // controller with reason, given reason. + const cancelAlgorithm = reason => { + fetchParams.controller.abort(reason) + } - this.body = new Readable({ read: resume }) + // 13. Let highWaterMark be a non-negative, non-NaN number, chosen by + // the user agent. + // TODO - const decoders = [] + // 14. Let sizeAlgorithm be an algorithm that accepts a chunk object + // and returns a non-negative, non-NaN, non-infinite number, chosen by the user agent. + // TODO - const willFollow = request.redirect === 'follow' && - location && - redirectStatusSet.has(status) + // 15. Let stream be a new ReadableStream. + // 16. Set up stream with pullAlgorithm set to pullAlgorithm, + // cancelAlgorithm set to cancelAlgorithm, highWaterMark set to + // highWaterMark, and sizeAlgorithm set to sizeAlgorithm. + if (!ReadableStream) { + ReadableStream = __nccwpck_require__(35356).ReadableStream + } - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding - if (request.method !== 'HEAD' && request.method !== 'CONNECT' && !nullBodyStatus.includes(status) && !willFollow) { - for (const coding of codings) { - // https://www.rfc-editor.org/rfc/rfc9112.html#section-7.2 - if (coding === 'x-gzip' || coding === 'gzip') { - decoders.push(zlib.createGunzip({ - // Be less strict when decoding compressed responses, since sometimes - // servers send slightly invalid responses that are still accepted - // by common browsers. - // Always using Z_SYNC_FLUSH is what cURL does. - flush: zlib.constants.Z_SYNC_FLUSH, - finishFlush: zlib.constants.Z_SYNC_FLUSH - })) - } else if (coding === 'deflate') { - decoders.push(zlib.createInflate()) - } else if (coding === 'br') { - decoders.push(zlib.createBrotliDecompress()) - } else { - decoders.length = 0 - break - } + const stream = new ReadableStream( + { + async start(controller) { + fetchParams.controller.controller = controller + }, + async pull(controller) { + await pullAlgorithm(controller) + }, + async cancel(reason) { + await cancelAlgorithm(reason) + } + }, + { + highWaterMark: 0, + size() { + return 1 } } + ) - resolve({ - status, - statusText, - headersList: headers[kHeadersList], - body: decoders.length - ? pipeline(this.body, ...decoders, () => { }) - : this.body.on('error', () => {}) - }) - - return true - }, + // 17. Run these steps, but abort when the ongoing fetch is terminated: - onData (chunk) { - if (fetchParams.controller.dump) { - return - } + // 1. Set response’s body to a new body whose stream is stream. + response.body = { stream } - // 1. If one or more bytes have been transmitted from response’s - // message body, then: + // 2. If response is not a network error and request’s cache mode is + // not "no-store", then update response in httpCache for request. + // TODO - // 1. Let bytes be the transmitted bytes. - const bytes = chunk + // 3. If includeCredentials is true and the user agent is not configured + // to block cookies for request (see section 7 of [COOKIES]), then run the + // "set-cookie-string" parsing algorithm (see section 5.2 of [COOKIES]) on + // the value of each header whose name is a byte-case-insensitive match for + // `Set-Cookie` in response’s header list, if any, and request’s current URL. + // TODO - // 2. Let codings be the result of extracting header list values - // given `Content-Encoding` and response’s header list. - // See pullAlgorithm. + // 18. If aborted, then: + // TODO - // 3. Increase timingInfo’s encoded body size by bytes’s length. - timingInfo.encodedBodySize += bytes.byteLength + // 19. Run these steps in parallel: - // 4. See pullAlgorithm... + // 1. Run these steps, but abort when fetchParams is canceled: + fetchParams.controller.on('terminated', onAborted) + fetchParams.controller.resume = async () => { + // 1. While true + while (true) { + // 1-3. See onData... - return this.body.push(bytes) - }, + // 4. Set bytes to the result of handling content codings given + // codings and bytes. + let bytes + let isFailure + try { + const { done, value } = await fetchParams.controller.next() - onComplete () { - if (this.abort) { - fetchParams.controller.off('terminated', this.abort) - } + if (isAborted(fetchParams)) { + break + } - fetchParams.controller.ended = true + bytes = done ? undefined : value + } catch (err) { + if (fetchParams.controller.ended && !timingInfo.encodedBodySize) { + // zlib doesn't like empty streams. + bytes = undefined + } else { + bytes = err - this.body.push(null) - }, + // err may be propagated from the result of calling readablestream.cancel, + // which might not be an error. https://github.com/nodejs/undici/issues/2009 + isFailure = true + } + } - onError (error) { - if (this.abort) { - fetchParams.controller.off('terminated', this.abort) - } + if (bytes === undefined) { + // 2. Otherwise, if the bytes transmission for response’s message + // body is done normally and stream is readable, then close + // stream, finalize response for fetchParams and response, and + // abort these in-parallel steps. + readableStreamClose(fetchParams.controller.controller) - this.body?.destroy(error) + finalizeResponse(fetchParams, response) - fetchParams.controller.terminate(error) + return + } - reject(error) - }, + // 5. Increase timingInfo’s decoded body size by bytes’s length. + timingInfo.decodedBodySize += bytes?.byteLength ?? 0 - onUpgrade (status, headersList, socket) { - if (status !== 101) { - return - } + // 6. If bytes is failure, then terminate fetchParams’s controller. + if (isFailure) { + fetchParams.controller.terminate(bytes) + return + } - const headers = new Headers() + // 7. Enqueue a Uint8Array wrapping an ArrayBuffer containing bytes + // into stream. + fetchParams.controller.controller.enqueue(new Uint8Array(bytes)) - for (let n = 0; n < headersList.length; n += 2) { - const key = headersList[n + 0].toString('latin1') - const val = headersList[n + 1].toString('latin1') + // 8. If stream is errored, then terminate the ongoing fetch. + if (isErrored(stream)) { + fetchParams.controller.terminate() + return + } - headers[kHeadersList].append(key, val) + // 9. If stream doesn’t need more data ask the user agent to suspend + // the ongoing fetch. + if (!fetchParams.controller.controller.desiredSize) { + return + } } + } - resolve({ - status, - statusText: STATUS_CODES[status], - headersList: headers[kHeadersList], - socket - }) + // 2. If aborted, then: + function onAborted(reason) { + // 2. If fetchParams is aborted, then: + if (isAborted(fetchParams)) { + // 1. Set response’s aborted flag. + response.aborted = true + + // 2. If stream is readable, then error stream with the result of + // deserialize a serialized abort reason given fetchParams’s + // controller’s serialized abort reason and an + // implementation-defined realm. + if (isReadable(stream)) { + fetchParams.controller.controller.error( + fetchParams.controller.serializedAbortReason + ) + } + } else { + // 3. Otherwise, if stream is readable, error stream with a TypeError. + if (isReadable(stream)) { + fetchParams.controller.controller.error( + new TypeError('terminated', { + cause: isErrorLike(reason) ? reason : undefined + }) + ) + } + } - return true - } - } - )) - } -} - -module.exports = { - fetch, - Fetch, - fetching, - finalizeAndReportTiming -} - - -/***/ }), - -/***/ 48359: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; -/* globals AbortController */ - - - -const { extractBody, mixinBody, cloneBody } = __nccwpck_require__(41472) -const { Headers, fill: fillHeaders, HeadersList } = __nccwpck_require__(10554) -const { FinalizationRegistry } = __nccwpck_require__(56436)() -const util = __nccwpck_require__(83983) -const { - isValidHTTPToken, - sameOrigin, - normalizeMethod, - makePolicyContainer, - normalizeMethodRecord -} = __nccwpck_require__(52538) -const { - forbiddenMethodsSet, - corsSafeListedMethodsSet, - referrerPolicy, - requestRedirect, - requestMode, - requestCredentials, - requestCache, - requestDuplex -} = __nccwpck_require__(41037) -const { kEnumerableProperty } = util -const { kHeaders, kSignal, kState, kGuard, kRealm } = __nccwpck_require__(15861) -const { webidl } = __nccwpck_require__(21744) -const { getGlobalOrigin } = __nccwpck_require__(71246) -const { URLSerializer } = __nccwpck_require__(685) -const { kHeadersList, kConstruct } = __nccwpck_require__(72785) -const assert = __nccwpck_require__(39491) -const { getMaxListeners, setMaxListeners, getEventListeners, defaultMaxListeners } = __nccwpck_require__(82361) - -let TransformStream = globalThis.TransformStream - -const kAbortController = Symbol('abortController') - -const requestFinalizer = new FinalizationRegistry(({ signal, abort }) => { - signal.removeEventListener('abort', abort) -}) - -// https://fetch.spec.whatwg.org/#request-class -class Request { - // https://fetch.spec.whatwg.org/#dom-request - constructor (input, init = {}) { - if (input === kConstruct) { - return - } + // 4. If connection uses HTTP/2, then transmit an RST_STREAM frame. + // 5. Otherwise, the user agent should close connection unless it would be bad for performance to do so. + fetchParams.controller.connection.destroy() + } + + // 20. Return response. + return response + + async function dispatch({ body }) { + const url = requestCurrentURL(request) + /** @type {import('../..').Agent} */ + const agent = fetchParams.controller.dispatcher + + return new Promise((resolve, reject) => + agent.dispatch( + { + path: url.pathname + url.search, + origin: url.origin, + method: request.method, + body: fetchParams.controller.dispatcher.isMockActive + ? request.body && (request.body.source || request.body.stream) + : body, + headers: request.headersList.entries, + maxRedirections: 0, + upgrade: request.mode === 'websocket' ? 'websocket' : undefined + }, + { + body: null, + abort: null, + + onConnect(abort) { + // TODO (fix): Do we need connection here? + const { connection } = fetchParams.controller + + if (connection.destroyed) { + abort( + new DOMException( + 'The operation was aborted.', + 'AbortError' + ) + ) + } else { + fetchParams.controller.on('terminated', abort) + this.abort = connection.abort = abort + } + }, + + onHeaders(status, headersList, resume, statusText) { + if (status < 200) { + return + } + + let codings = [] + let location = '' + + const headers = new Headers() + + // For H2, the headers are a plain JS object + // We distinguish between them and iterate accordingly + if (Array.isArray(headersList)) { + for (let n = 0; n < headersList.length; n += 2) { + const key = headersList[n + 0].toString('latin1') + const val = headersList[n + 1].toString('latin1') + if (key.toLowerCase() === 'content-encoding') { + // https://www.rfc-editor.org/rfc/rfc7231#section-3.1.2.1 + // "All content-coding values are case-insensitive..." + codings = val + .toLowerCase() + .split(',') + .map(x => x.trim()) + } else if (key.toLowerCase() === 'location') { + location = val + } + + headers[kHeadersList].append(key, val) + } + } else { + const keys = Object.keys(headersList) + for (const key of keys) { + const val = headersList[key] + if (key.toLowerCase() === 'content-encoding') { + // https://www.rfc-editor.org/rfc/rfc7231#section-3.1.2.1 + // "All content-coding values are case-insensitive..." + codings = val + .toLowerCase() + .split(',') + .map(x => x.trim()) + .reverse() + } else if (key.toLowerCase() === 'location') { + location = val + } + + headers[kHeadersList].append(key, val) + } + } + + this.body = new Readable({ read: resume }) + + const decoders = [] + + const willFollow = + request.redirect === 'follow' && + location && + redirectStatusSet.has(status) + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding + if ( + request.method !== 'HEAD' && + request.method !== 'CONNECT' && + !nullBodyStatus.includes(status) && + !willFollow + ) { + for (const coding of codings) { + // https://www.rfc-editor.org/rfc/rfc9112.html#section-7.2 + if (coding === 'x-gzip' || coding === 'gzip') { + decoders.push( + zlib.createGunzip({ + // Be less strict when decoding compressed responses, since sometimes + // servers send slightly invalid responses that are still accepted + // by common browsers. + // Always using Z_SYNC_FLUSH is what cURL does. + flush: zlib.constants.Z_SYNC_FLUSH, + finishFlush: zlib.constants.Z_SYNC_FLUSH + }) + ) + } else if (coding === 'deflate') { + decoders.push(zlib.createInflate()) + } else if (coding === 'br') { + decoders.push(zlib.createBrotliDecompress()) + } else { + decoders.length = 0 + break + } + } + } - webidl.argumentLengthCheck(arguments, 1, { header: 'Request constructor' }) + resolve({ + status, + statusText, + headersList: headers[kHeadersList], + body: decoders.length + ? pipeline(this.body, ...decoders, () => {}) + : this.body.on('error', () => {}) + }) - input = webidl.converters.RequestInfo(input) - init = webidl.converters.RequestInit(init) + return true + }, - // https://html.spec.whatwg.org/multipage/webappapis.html#environment-settings-object - this[kRealm] = { - settingsObject: { - baseUrl: getGlobalOrigin(), - get origin () { - return this.baseUrl?.origin - }, - policyContainer: makePolicyContainer() - } - } + onData(chunk) { + if (fetchParams.controller.dump) { + return + } - // 1. Let request be null. - let request = null + // 1. If one or more bytes have been transmitted from response’s + // message body, then: - // 2. Let fallbackMode be null. - let fallbackMode = null + // 1. Let bytes be the transmitted bytes. + const bytes = chunk - // 3. Let baseURL be this’s relevant settings object’s API base URL. - const baseUrl = this[kRealm].settingsObject.baseUrl + // 2. Let codings be the result of extracting header list values + // given `Content-Encoding` and response’s header list. + // See pullAlgorithm. - // 4. Let signal be null. - let signal = null + // 3. Increase timingInfo’s encoded body size by bytes’s length. + timingInfo.encodedBodySize += bytes.byteLength - // 5. If input is a string, then: - if (typeof input === 'string') { - // 1. Let parsedURL be the result of parsing input with baseURL. - // 2. If parsedURL is failure, then throw a TypeError. - let parsedURL - try { - parsedURL = new URL(input, baseUrl) - } catch (err) { - throw new TypeError('Failed to parse URL from ' + input, { cause: err }) - } + // 4. See pullAlgorithm... - // 3. If parsedURL includes credentials, then throw a TypeError. - if (parsedURL.username || parsedURL.password) { - throw new TypeError( - 'Request cannot be constructed from a URL that includes credentials: ' + - input - ) - } + return this.body.push(bytes) + }, - // 4. Set request to a new request whose URL is parsedURL. - request = makeRequest({ urlList: [parsedURL] }) + onComplete() { + if (this.abort) { + fetchParams.controller.off('terminated', this.abort) + } - // 5. Set fallbackMode to "cors". - fallbackMode = 'cors' - } else { - // 6. Otherwise: + fetchParams.controller.ended = true - // 7. Assert: input is a Request object. - assert(input instanceof Request) + this.body.push(null) + }, - // 8. Set request to input’s request. - request = input[kState] + onError(error) { + if (this.abort) { + fetchParams.controller.off('terminated', this.abort) + } - // 9. Set signal to input’s signal. - signal = input[kSignal] - } + this.body?.destroy(error) - // 7. Let origin be this’s relevant settings object’s origin. - const origin = this[kRealm].settingsObject.origin + fetchParams.controller.terminate(error) - // 8. Let window be "client". - let window = 'client' + reject(error) + }, - // 9. If request’s window is an environment settings object and its origin - // is same origin with origin, then set window to request’s window. - if ( - request.window?.constructor?.name === 'EnvironmentSettingsObject' && - sameOrigin(request.window, origin) - ) { - window = request.window - } + onUpgrade(status, headersList, socket) { + if (status !== 101) { + return + } - // 10. If init["window"] exists and is non-null, then throw a TypeError. - if (init.window != null) { - throw new TypeError(`'window' option '${window}' must be null`) - } + const headers = new Headers() - // 11. If init["window"] exists, then set window to "no-window". - if ('window' in init) { - window = 'no-window' - } + for (let n = 0; n < headersList.length; n += 2) { + const key = headersList[n + 0].toString('latin1') + const val = headersList[n + 1].toString('latin1') - // 12. Set request to a new request with the following properties: - request = makeRequest({ - // URL request’s URL. - // undici implementation note: this is set as the first item in request's urlList in makeRequest - // method request’s method. - method: request.method, - // header list A copy of request’s header list. - // undici implementation note: headersList is cloned in makeRequest - headersList: request.headersList, - // unsafe-request flag Set. - unsafeRequest: request.unsafeRequest, - // client This’s relevant settings object. - client: this[kRealm].settingsObject, - // window window. - window, - // priority request’s priority. - priority: request.priority, - // origin request’s origin. The propagation of the origin is only significant for navigation requests - // being handled by a service worker. In this scenario a request can have an origin that is different - // from the current client. - origin: request.origin, - // referrer request’s referrer. - referrer: request.referrer, - // referrer policy request’s referrer policy. - referrerPolicy: request.referrerPolicy, - // mode request’s mode. - mode: request.mode, - // credentials mode request’s credentials mode. - credentials: request.credentials, - // cache mode request’s cache mode. - cache: request.cache, - // redirect mode request’s redirect mode. - redirect: request.redirect, - // integrity metadata request’s integrity metadata. - integrity: request.integrity, - // keepalive request’s keepalive. - keepalive: request.keepalive, - // reload-navigation flag request’s reload-navigation flag. - reloadNavigation: request.reloadNavigation, - // history-navigation flag request’s history-navigation flag. - historyNavigation: request.historyNavigation, - // URL list A clone of request’s URL list. - urlList: [...request.urlList] - }) + headers[kHeadersList].append(key, val) + } - const initHasKey = Object.keys(init).length !== 0 + resolve({ + status, + statusText: STATUS_CODES[status], + headersList: headers[kHeadersList], + socket + }) - // 13. If init is not empty, then: - if (initHasKey) { - // 1. If request’s mode is "navigate", then set it to "same-origin". - if (request.mode === 'navigate') { - request.mode = 'same-origin' + return true + } + } + ) + ) + } } - // 2. Unset request’s reload-navigation flag. - request.reloadNavigation = false + module.exports = { + fetch, + Fetch, + fetching, + finalizeAndReportTiming + } - // 3. Unset request’s history-navigation flag. - request.historyNavigation = false + /***/ + }, - // 4. Set request’s origin to "client". - request.origin = 'client' + /***/ 48359: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + /* globals AbortController */ - // 5. Set request’s referrer to "client" - request.referrer = 'client' + const { extractBody, mixinBody, cloneBody } = __nccwpck_require__(41472) + const { + Headers, + fill: fillHeaders, + HeadersList + } = __nccwpck_require__(10554) + const { FinalizationRegistry } = __nccwpck_require__(56436)() + const util = __nccwpck_require__(83983) + const { + isValidHTTPToken, + sameOrigin, + normalizeMethod, + makePolicyContainer, + normalizeMethodRecord + } = __nccwpck_require__(52538) + const { + forbiddenMethodsSet, + corsSafeListedMethodsSet, + referrerPolicy, + requestRedirect, + requestMode, + requestCredentials, + requestCache, + requestDuplex + } = __nccwpck_require__(41037) + const { kEnumerableProperty } = util + const { kHeaders, kSignal, kState, kGuard, kRealm } = + __nccwpck_require__(15861) + const { webidl } = __nccwpck_require__(21744) + const { getGlobalOrigin } = __nccwpck_require__(71246) + const { URLSerializer } = __nccwpck_require__(685) + const { kHeadersList, kConstruct } = __nccwpck_require__(72785) + const assert = __nccwpck_require__(39491) + const { + getMaxListeners, + setMaxListeners, + getEventListeners, + defaultMaxListeners + } = __nccwpck_require__(82361) - // 6. Set request’s referrer policy to the empty string. - request.referrerPolicy = '' + let TransformStream = globalThis.TransformStream - // 7. Set request’s URL to request’s current URL. - request.url = request.urlList[request.urlList.length - 1] + const kAbortController = Symbol('abortController') - // 8. Set request’s URL list to « request’s URL ». - request.urlList = [request.url] - } + const requestFinalizer = new FinalizationRegistry(({ signal, abort }) => { + signal.removeEventListener('abort', abort) + }) - // 14. If init["referrer"] exists, then: - if (init.referrer !== undefined) { - // 1. Let referrer be init["referrer"]. - const referrer = init.referrer + // https://fetch.spec.whatwg.org/#request-class + class Request { + // https://fetch.spec.whatwg.org/#dom-request + constructor(input, init = {}) { + if (input === kConstruct) { + return + } - // 2. If referrer is the empty string, then set request’s referrer to "no-referrer". - if (referrer === '') { - request.referrer = 'no-referrer' - } else { - // 1. Let parsedReferrer be the result of parsing referrer with - // baseURL. - // 2. If parsedReferrer is failure, then throw a TypeError. - let parsedReferrer - try { - parsedReferrer = new URL(referrer, baseUrl) - } catch (err) { - throw new TypeError(`Referrer "${referrer}" is not a valid URL.`, { cause: err }) - } + webidl.argumentLengthCheck(arguments, 1, { + header: 'Request constructor' + }) - // 3. If one of the following is true - // - parsedReferrer’s scheme is "about" and path is the string "client" - // - parsedReferrer’s origin is not same origin with origin - // then set request’s referrer to "client". - if ( - (parsedReferrer.protocol === 'about:' && parsedReferrer.hostname === 'client') || - (origin && !sameOrigin(parsedReferrer, this[kRealm].settingsObject.baseUrl)) - ) { - request.referrer = 'client' - } else { - // 4. Otherwise, set request’s referrer to parsedReferrer. - request.referrer = parsedReferrer - } - } - } + input = webidl.converters.RequestInfo(input) + init = webidl.converters.RequestInit(init) + + // https://html.spec.whatwg.org/multipage/webappapis.html#environment-settings-object + this[kRealm] = { + settingsObject: { + baseUrl: getGlobalOrigin(), + get origin() { + return this.baseUrl?.origin + }, + policyContainer: makePolicyContainer() + } + } - // 15. If init["referrerPolicy"] exists, then set request’s referrer policy - // to it. - if (init.referrerPolicy !== undefined) { - request.referrerPolicy = init.referrerPolicy - } + // 1. Let request be null. + let request = null - // 16. Let mode be init["mode"] if it exists, and fallbackMode otherwise. - let mode - if (init.mode !== undefined) { - mode = init.mode - } else { - mode = fallbackMode - } + // 2. Let fallbackMode be null. + let fallbackMode = null - // 17. If mode is "navigate", then throw a TypeError. - if (mode === 'navigate') { - throw webidl.errors.exception({ - header: 'Request constructor', - message: 'invalid request mode navigate.' - }) - } + // 3. Let baseURL be this’s relevant settings object’s API base URL. + const baseUrl = this[kRealm].settingsObject.baseUrl - // 18. If mode is non-null, set request’s mode to mode. - if (mode != null) { - request.mode = mode - } + // 4. Let signal be null. + let signal = null - // 19. If init["credentials"] exists, then set request’s credentials mode - // to it. - if (init.credentials !== undefined) { - request.credentials = init.credentials - } + // 5. If input is a string, then: + if (typeof input === 'string') { + // 1. Let parsedURL be the result of parsing input with baseURL. + // 2. If parsedURL is failure, then throw a TypeError. + let parsedURL + try { + parsedURL = new URL(input, baseUrl) + } catch (err) { + throw new TypeError('Failed to parse URL from ' + input, { + cause: err + }) + } - // 18. If init["cache"] exists, then set request’s cache mode to it. - if (init.cache !== undefined) { - request.cache = init.cache - } + // 3. If parsedURL includes credentials, then throw a TypeError. + if (parsedURL.username || parsedURL.password) { + throw new TypeError( + 'Request cannot be constructed from a URL that includes credentials: ' + + input + ) + } - // 21. If request’s cache mode is "only-if-cached" and request’s mode is - // not "same-origin", then throw a TypeError. - if (request.cache === 'only-if-cached' && request.mode !== 'same-origin') { - throw new TypeError( - "'only-if-cached' can be set only with 'same-origin' mode" - ) - } + // 4. Set request to a new request whose URL is parsedURL. + request = makeRequest({ urlList: [parsedURL] }) - // 22. If init["redirect"] exists, then set request’s redirect mode to it. - if (init.redirect !== undefined) { - request.redirect = init.redirect - } + // 5. Set fallbackMode to "cors". + fallbackMode = 'cors' + } else { + // 6. Otherwise: - // 23. If init["integrity"] exists, then set request’s integrity metadata to it. - if (init.integrity != null) { - request.integrity = String(init.integrity) - } + // 7. Assert: input is a Request object. + assert(input instanceof Request) - // 24. If init["keepalive"] exists, then set request’s keepalive to it. - if (init.keepalive !== undefined) { - request.keepalive = Boolean(init.keepalive) - } + // 8. Set request to input’s request. + request = input[kState] - // 25. If init["method"] exists, then: - if (init.method !== undefined) { - // 1. Let method be init["method"]. - let method = init.method + // 9. Set signal to input’s signal. + signal = input[kSignal] + } - // 2. If method is not a method or method is a forbidden method, then - // throw a TypeError. - if (!isValidHTTPToken(method)) { - throw new TypeError(`'${method}' is not a valid HTTP method.`) - } + // 7. Let origin be this’s relevant settings object’s origin. + const origin = this[kRealm].settingsObject.origin - if (forbiddenMethodsSet.has(method.toUpperCase())) { - throw new TypeError(`'${method}' HTTP method is unsupported.`) - } + // 8. Let window be "client". + let window = 'client' - // 3. Normalize method. - method = normalizeMethodRecord[method] ?? normalizeMethod(method) + // 9. If request’s window is an environment settings object and its origin + // is same origin with origin, then set window to request’s window. + if ( + request.window?.constructor?.name === 'EnvironmentSettingsObject' && + sameOrigin(request.window, origin) + ) { + window = request.window + } - // 4. Set request’s method to method. - request.method = method - } + // 10. If init["window"] exists and is non-null, then throw a TypeError. + if (init.window != null) { + throw new TypeError(`'window' option '${window}' must be null`) + } - // 26. If init["signal"] exists, then set signal to it. - if (init.signal !== undefined) { - signal = init.signal - } + // 11. If init["window"] exists, then set window to "no-window". + if ('window' in init) { + window = 'no-window' + } - // 27. Set this’s request to request. - this[kState] = request + // 12. Set request to a new request with the following properties: + request = makeRequest({ + // URL request’s URL. + // undici implementation note: this is set as the first item in request's urlList in makeRequest + // method request’s method. + method: request.method, + // header list A copy of request’s header list. + // undici implementation note: headersList is cloned in makeRequest + headersList: request.headersList, + // unsafe-request flag Set. + unsafeRequest: request.unsafeRequest, + // client This’s relevant settings object. + client: this[kRealm].settingsObject, + // window window. + window, + // priority request’s priority. + priority: request.priority, + // origin request’s origin. The propagation of the origin is only significant for navigation requests + // being handled by a service worker. In this scenario a request can have an origin that is different + // from the current client. + origin: request.origin, + // referrer request’s referrer. + referrer: request.referrer, + // referrer policy request’s referrer policy. + referrerPolicy: request.referrerPolicy, + // mode request’s mode. + mode: request.mode, + // credentials mode request’s credentials mode. + credentials: request.credentials, + // cache mode request’s cache mode. + cache: request.cache, + // redirect mode request’s redirect mode. + redirect: request.redirect, + // integrity metadata request’s integrity metadata. + integrity: request.integrity, + // keepalive request’s keepalive. + keepalive: request.keepalive, + // reload-navigation flag request’s reload-navigation flag. + reloadNavigation: request.reloadNavigation, + // history-navigation flag request’s history-navigation flag. + historyNavigation: request.historyNavigation, + // URL list A clone of request’s URL list. + urlList: [...request.urlList] + }) - // 28. Set this’s signal to a new AbortSignal object with this’s relevant - // Realm. - // TODO: could this be simplified with AbortSignal.any - // (https://dom.spec.whatwg.org/#dom-abortsignal-any) - const ac = new AbortController() - this[kSignal] = ac.signal - this[kSignal][kRealm] = this[kRealm] + const initHasKey = Object.keys(init).length !== 0 - // 29. If signal is not null, then make this’s signal follow signal. - if (signal != null) { - if ( - !signal || - typeof signal.aborted !== 'boolean' || - typeof signal.addEventListener !== 'function' - ) { - throw new TypeError( - "Failed to construct 'Request': member signal is not of type AbortSignal." - ) - } + // 13. If init is not empty, then: + if (initHasKey) { + // 1. If request’s mode is "navigate", then set it to "same-origin". + if (request.mode === 'navigate') { + request.mode = 'same-origin' + } - if (signal.aborted) { - ac.abort(signal.reason) - } else { - // Keep a strong ref to ac while request object - // is alive. This is needed to prevent AbortController - // from being prematurely garbage collected. - // See, https://github.com/nodejs/undici/issues/1926. - this[kAbortController] = ac + // 2. Unset request’s reload-navigation flag. + request.reloadNavigation = false - const acRef = new WeakRef(ac) - const abort = function () { - const ac = acRef.deref() - if (ac !== undefined) { - ac.abort(this.reason) - } - } + // 3. Unset request’s history-navigation flag. + request.historyNavigation = false - // Third-party AbortControllers may not work with these. - // See, https://github.com/nodejs/undici/pull/1910#issuecomment-1464495619. - try { - // If the max amount of listeners is equal to the default, increase it - // This is only available in node >= v19.9.0 - if (typeof getMaxListeners === 'function' && getMaxListeners(signal) === defaultMaxListeners) { - setMaxListeners(100, signal) - } else if (getEventListeners(signal, 'abort').length >= defaultMaxListeners) { - setMaxListeners(100, signal) - } - } catch {} + // 4. Set request’s origin to "client". + request.origin = 'client' - util.addAbortListener(signal, abort) - requestFinalizer.register(ac, { signal, abort }) - } - } + // 5. Set request’s referrer to "client" + request.referrer = 'client' - // 30. Set this’s headers to a new Headers object with this’s relevant - // Realm, whose header list is request’s header list and guard is - // "request". - this[kHeaders] = new Headers(kConstruct) - this[kHeaders][kHeadersList] = request.headersList - this[kHeaders][kGuard] = 'request' - this[kHeaders][kRealm] = this[kRealm] - - // 31. If this’s request’s mode is "no-cors", then: - if (mode === 'no-cors') { - // 1. If this’s request’s method is not a CORS-safelisted method, - // then throw a TypeError. - if (!corsSafeListedMethodsSet.has(request.method)) { - throw new TypeError( - `'${request.method} is unsupported in no-cors mode.` - ) - } + // 6. Set request’s referrer policy to the empty string. + request.referrerPolicy = '' - // 2. Set this’s headers’s guard to "request-no-cors". - this[kHeaders][kGuard] = 'request-no-cors' - } + // 7. Set request’s URL to request’s current URL. + request.url = request.urlList[request.urlList.length - 1] - // 32. If init is not empty, then: - if (initHasKey) { - /** @type {HeadersList} */ - const headersList = this[kHeaders][kHeadersList] - // 1. Let headers be a copy of this’s headers and its associated header - // list. - // 2. If init["headers"] exists, then set headers to init["headers"]. - const headers = init.headers !== undefined ? init.headers : new HeadersList(headersList) - - // 3. Empty this’s headers’s header list. - headersList.clear() - - // 4. If headers is a Headers object, then for each header in its header - // list, append header’s name/header’s value to this’s headers. - if (headers instanceof HeadersList) { - for (const [key, val] of headers) { - headersList.append(key, val) - } - // Note: Copy the `set-cookie` meta-data. - headersList.cookies = headers.cookies - } else { - // 5. Otherwise, fill this’s headers with headers. - fillHeaders(this[kHeaders], headers) - } - } + // 8. Set request’s URL list to « request’s URL ». + request.urlList = [request.url] + } - // 33. Let inputBody be input’s request’s body if input is a Request - // object; otherwise null. - const inputBody = input instanceof Request ? input[kState].body : null + // 14. If init["referrer"] exists, then: + if (init.referrer !== undefined) { + // 1. Let referrer be init["referrer"]. + const referrer = init.referrer - // 34. If either init["body"] exists and is non-null or inputBody is - // non-null, and request’s method is `GET` or `HEAD`, then throw a - // TypeError. - if ( - (init.body != null || inputBody != null) && - (request.method === 'GET' || request.method === 'HEAD') - ) { - throw new TypeError('Request with GET/HEAD method cannot have body.') - } + // 2. If referrer is the empty string, then set request’s referrer to "no-referrer". + if (referrer === '') { + request.referrer = 'no-referrer' + } else { + // 1. Let parsedReferrer be the result of parsing referrer with + // baseURL. + // 2. If parsedReferrer is failure, then throw a TypeError. + let parsedReferrer + try { + parsedReferrer = new URL(referrer, baseUrl) + } catch (err) { + throw new TypeError( + `Referrer "${referrer}" is not a valid URL.`, + { cause: err } + ) + } - // 35. Let initBody be null. - let initBody = null + // 3. If one of the following is true + // - parsedReferrer’s scheme is "about" and path is the string "client" + // - parsedReferrer’s origin is not same origin with origin + // then set request’s referrer to "client". + if ( + (parsedReferrer.protocol === 'about:' && + parsedReferrer.hostname === 'client') || + (origin && + !sameOrigin( + parsedReferrer, + this[kRealm].settingsObject.baseUrl + )) + ) { + request.referrer = 'client' + } else { + // 4. Otherwise, set request’s referrer to parsedReferrer. + request.referrer = parsedReferrer + } + } + } - // 36. If init["body"] exists and is non-null, then: - if (init.body != null) { - // 1. Let Content-Type be null. - // 2. Set initBody and Content-Type to the result of extracting - // init["body"], with keepalive set to request’s keepalive. - const [extractedBody, contentType] = extractBody( - init.body, - request.keepalive - ) - initBody = extractedBody + // 15. If init["referrerPolicy"] exists, then set request’s referrer policy + // to it. + if (init.referrerPolicy !== undefined) { + request.referrerPolicy = init.referrerPolicy + } - // 3, If Content-Type is non-null and this’s headers’s header list does - // not contain `Content-Type`, then append `Content-Type`/Content-Type to - // this’s headers. - if (contentType && !this[kHeaders][kHeadersList].contains('content-type')) { - this[kHeaders].append('content-type', contentType) - } - } + // 16. Let mode be init["mode"] if it exists, and fallbackMode otherwise. + let mode + if (init.mode !== undefined) { + mode = init.mode + } else { + mode = fallbackMode + } - // 37. Let inputOrInitBody be initBody if it is non-null; otherwise - // inputBody. - const inputOrInitBody = initBody ?? inputBody + // 17. If mode is "navigate", then throw a TypeError. + if (mode === 'navigate') { + throw webidl.errors.exception({ + header: 'Request constructor', + message: 'invalid request mode navigate.' + }) + } - // 38. If inputOrInitBody is non-null and inputOrInitBody’s source is - // null, then: - if (inputOrInitBody != null && inputOrInitBody.source == null) { - // 1. If initBody is non-null and init["duplex"] does not exist, - // then throw a TypeError. - if (initBody != null && init.duplex == null) { - throw new TypeError('RequestInit: duplex option is required when sending a body.') - } + // 18. If mode is non-null, set request’s mode to mode. + if (mode != null) { + request.mode = mode + } - // 2. If this’s request’s mode is neither "same-origin" nor "cors", - // then throw a TypeError. - if (request.mode !== 'same-origin' && request.mode !== 'cors') { - throw new TypeError( - 'If request is made from ReadableStream, mode should be "same-origin" or "cors"' - ) - } + // 19. If init["credentials"] exists, then set request’s credentials mode + // to it. + if (init.credentials !== undefined) { + request.credentials = init.credentials + } - // 3. Set this’s request’s use-CORS-preflight flag. - request.useCORSPreflightFlag = true - } + // 18. If init["cache"] exists, then set request’s cache mode to it. + if (init.cache !== undefined) { + request.cache = init.cache + } - // 39. Let finalBody be inputOrInitBody. - let finalBody = inputOrInitBody + // 21. If request’s cache mode is "only-if-cached" and request’s mode is + // not "same-origin", then throw a TypeError. + if ( + request.cache === 'only-if-cached' && + request.mode !== 'same-origin' + ) { + throw new TypeError( + "'only-if-cached' can be set only with 'same-origin' mode" + ) + } - // 40. If initBody is null and inputBody is non-null, then: - if (initBody == null && inputBody != null) { - // 1. If input is unusable, then throw a TypeError. - if (util.isDisturbed(inputBody.stream) || inputBody.stream.locked) { - throw new TypeError( - 'Cannot construct a Request with a Request object that has already been used.' - ) - } + // 22. If init["redirect"] exists, then set request’s redirect mode to it. + if (init.redirect !== undefined) { + request.redirect = init.redirect + } - // 2. Set finalBody to the result of creating a proxy for inputBody. - if (!TransformStream) { - TransformStream = (__nccwpck_require__(35356).TransformStream) - } + // 23. If init["integrity"] exists, then set request’s integrity metadata to it. + if (init.integrity != null) { + request.integrity = String(init.integrity) + } - // https://streams.spec.whatwg.org/#readablestream-create-a-proxy - const identityTransform = new TransformStream() - inputBody.stream.pipeThrough(identityTransform) - finalBody = { - source: inputBody.source, - length: inputBody.length, - stream: identityTransform.readable - } - } + // 24. If init["keepalive"] exists, then set request’s keepalive to it. + if (init.keepalive !== undefined) { + request.keepalive = Boolean(init.keepalive) + } - // 41. Set this’s request’s body to finalBody. - this[kState].body = finalBody - } + // 25. If init["method"] exists, then: + if (init.method !== undefined) { + // 1. Let method be init["method"]. + let method = init.method - // Returns request’s HTTP method, which is "GET" by default. - get method () { - webidl.brandCheck(this, Request) + // 2. If method is not a method or method is a forbidden method, then + // throw a TypeError. + if (!isValidHTTPToken(method)) { + throw new TypeError(`'${method}' is not a valid HTTP method.`) + } - // The method getter steps are to return this’s request’s method. - return this[kState].method - } + if (forbiddenMethodsSet.has(method.toUpperCase())) { + throw new TypeError(`'${method}' HTTP method is unsupported.`) + } - // Returns the URL of request as a string. - get url () { - webidl.brandCheck(this, Request) + // 3. Normalize method. + method = normalizeMethodRecord[method] ?? normalizeMethod(method) - // The url getter steps are to return this’s request’s URL, serialized. - return URLSerializer(this[kState].url) - } + // 4. Set request’s method to method. + request.method = method + } - // Returns a Headers object consisting of the headers associated with request. - // Note that headers added in the network layer by the user agent will not - // be accounted for in this object, e.g., the "Host" header. - get headers () { - webidl.brandCheck(this, Request) + // 26. If init["signal"] exists, then set signal to it. + if (init.signal !== undefined) { + signal = init.signal + } - // The headers getter steps are to return this’s headers. - return this[kHeaders] - } + // 27. Set this’s request to request. + this[kState] = request + + // 28. Set this’s signal to a new AbortSignal object with this’s relevant + // Realm. + // TODO: could this be simplified with AbortSignal.any + // (https://dom.spec.whatwg.org/#dom-abortsignal-any) + const ac = new AbortController() + this[kSignal] = ac.signal + this[kSignal][kRealm] = this[kRealm] + + // 29. If signal is not null, then make this’s signal follow signal. + if (signal != null) { + if ( + !signal || + typeof signal.aborted !== 'boolean' || + typeof signal.addEventListener !== 'function' + ) { + throw new TypeError( + "Failed to construct 'Request': member signal is not of type AbortSignal." + ) + } - // Returns the kind of resource requested by request, e.g., "document" - // or "script". - get destination () { - webidl.brandCheck(this, Request) + if (signal.aborted) { + ac.abort(signal.reason) + } else { + // Keep a strong ref to ac while request object + // is alive. This is needed to prevent AbortController + // from being prematurely garbage collected. + // See, https://github.com/nodejs/undici/issues/1926. + this[kAbortController] = ac + + const acRef = new WeakRef(ac) + const abort = function () { + const ac = acRef.deref() + if (ac !== undefined) { + ac.abort(this.reason) + } + } - // The destination getter are to return this’s request’s destination. - return this[kState].destination - } + // Third-party AbortControllers may not work with these. + // See, https://github.com/nodejs/undici/pull/1910#issuecomment-1464495619. + try { + // If the max amount of listeners is equal to the default, increase it + // This is only available in node >= v19.9.0 + if ( + typeof getMaxListeners === 'function' && + getMaxListeners(signal) === defaultMaxListeners + ) { + setMaxListeners(100, signal) + } else if ( + getEventListeners(signal, 'abort').length >= + defaultMaxListeners + ) { + setMaxListeners(100, signal) + } + } catch {} - // Returns the referrer of request. Its value can be a same-origin URL if - // explicitly set in init, the empty string to indicate no referrer, and - // "about:client" when defaulting to the global’s default. This is used - // during fetching to determine the value of the `Referer` header of the - // request being made. - get referrer () { - webidl.brandCheck(this, Request) - - // 1. If this’s request’s referrer is "no-referrer", then return the - // empty string. - if (this[kState].referrer === 'no-referrer') { - return '' - } + util.addAbortListener(signal, abort) + requestFinalizer.register(ac, { signal, abort }) + } + } - // 2. If this’s request’s referrer is "client", then return - // "about:client". - if (this[kState].referrer === 'client') { - return 'about:client' - } + // 30. Set this’s headers to a new Headers object with this’s relevant + // Realm, whose header list is request’s header list and guard is + // "request". + this[kHeaders] = new Headers(kConstruct) + this[kHeaders][kHeadersList] = request.headersList + this[kHeaders][kGuard] = 'request' + this[kHeaders][kRealm] = this[kRealm] + + // 31. If this’s request’s mode is "no-cors", then: + if (mode === 'no-cors') { + // 1. If this’s request’s method is not a CORS-safelisted method, + // then throw a TypeError. + if (!corsSafeListedMethodsSet.has(request.method)) { + throw new TypeError( + `'${request.method} is unsupported in no-cors mode.` + ) + } - // Return this’s request’s referrer, serialized. - return this[kState].referrer.toString() - } + // 2. Set this’s headers’s guard to "request-no-cors". + this[kHeaders][kGuard] = 'request-no-cors' + } - // Returns the referrer policy associated with request. - // This is used during fetching to compute the value of the request’s - // referrer. - get referrerPolicy () { - webidl.brandCheck(this, Request) + // 32. If init is not empty, then: + if (initHasKey) { + /** @type {HeadersList} */ + const headersList = this[kHeaders][kHeadersList] + // 1. Let headers be a copy of this’s headers and its associated header + // list. + // 2. If init["headers"] exists, then set headers to init["headers"]. + const headers = + init.headers !== undefined + ? init.headers + : new HeadersList(headersList) + + // 3. Empty this’s headers’s header list. + headersList.clear() + + // 4. If headers is a Headers object, then for each header in its header + // list, append header’s name/header’s value to this’s headers. + if (headers instanceof HeadersList) { + for (const [key, val] of headers) { + headersList.append(key, val) + } + // Note: Copy the `set-cookie` meta-data. + headersList.cookies = headers.cookies + } else { + // 5. Otherwise, fill this’s headers with headers. + fillHeaders(this[kHeaders], headers) + } + } - // The referrerPolicy getter steps are to return this’s request’s referrer policy. - return this[kState].referrerPolicy - } + // 33. Let inputBody be input’s request’s body if input is a Request + // object; otherwise null. + const inputBody = input instanceof Request ? input[kState].body : null - // Returns the mode associated with request, which is a string indicating - // whether the request will use CORS, or will be restricted to same-origin - // URLs. - get mode () { - webidl.brandCheck(this, Request) + // 34. If either init["body"] exists and is non-null or inputBody is + // non-null, and request’s method is `GET` or `HEAD`, then throw a + // TypeError. + if ( + (init.body != null || inputBody != null) && + (request.method === 'GET' || request.method === 'HEAD') + ) { + throw new TypeError( + 'Request with GET/HEAD method cannot have body.' + ) + } - // The mode getter steps are to return this’s request’s mode. - return this[kState].mode - } + // 35. Let initBody be null. + let initBody = null + + // 36. If init["body"] exists and is non-null, then: + if (init.body != null) { + // 1. Let Content-Type be null. + // 2. Set initBody and Content-Type to the result of extracting + // init["body"], with keepalive set to request’s keepalive. + const [extractedBody, contentType] = extractBody( + init.body, + request.keepalive + ) + initBody = extractedBody + + // 3, If Content-Type is non-null and this’s headers’s header list does + // not contain `Content-Type`, then append `Content-Type`/Content-Type to + // this’s headers. + if ( + contentType && + !this[kHeaders][kHeadersList].contains('content-type') + ) { + this[kHeaders].append('content-type', contentType) + } + } - // Returns the credentials mode associated with request, - // which is a string indicating whether credentials will be sent with the - // request always, never, or only when sent to a same-origin URL. - get credentials () { - // The credentials getter steps are to return this’s request’s credentials mode. - return this[kState].credentials - } + // 37. Let inputOrInitBody be initBody if it is non-null; otherwise + // inputBody. + const inputOrInitBody = initBody ?? inputBody + + // 38. If inputOrInitBody is non-null and inputOrInitBody’s source is + // null, then: + if (inputOrInitBody != null && inputOrInitBody.source == null) { + // 1. If initBody is non-null and init["duplex"] does not exist, + // then throw a TypeError. + if (initBody != null && init.duplex == null) { + throw new TypeError( + 'RequestInit: duplex option is required when sending a body.' + ) + } - // Returns the cache mode associated with request, - // which is a string indicating how the request will - // interact with the browser’s cache when fetching. - get cache () { - webidl.brandCheck(this, Request) + // 2. If this’s request’s mode is neither "same-origin" nor "cors", + // then throw a TypeError. + if (request.mode !== 'same-origin' && request.mode !== 'cors') { + throw new TypeError( + 'If request is made from ReadableStream, mode should be "same-origin" or "cors"' + ) + } - // The cache getter steps are to return this’s request’s cache mode. - return this[kState].cache - } + // 3. Set this’s request’s use-CORS-preflight flag. + request.useCORSPreflightFlag = true + } - // Returns the redirect mode associated with request, - // which is a string indicating how redirects for the - // request will be handled during fetching. A request - // will follow redirects by default. - get redirect () { - webidl.brandCheck(this, Request) + // 39. Let finalBody be inputOrInitBody. + let finalBody = inputOrInitBody - // The redirect getter steps are to return this’s request’s redirect mode. - return this[kState].redirect - } + // 40. If initBody is null and inputBody is non-null, then: + if (initBody == null && inputBody != null) { + // 1. If input is unusable, then throw a TypeError. + if (util.isDisturbed(inputBody.stream) || inputBody.stream.locked) { + throw new TypeError( + 'Cannot construct a Request with a Request object that has already been used.' + ) + } - // Returns request’s subresource integrity metadata, which is a - // cryptographic hash of the resource being fetched. Its value - // consists of multiple hashes separated by whitespace. [SRI] - get integrity () { - webidl.brandCheck(this, Request) + // 2. Set finalBody to the result of creating a proxy for inputBody. + if (!TransformStream) { + TransformStream = __nccwpck_require__(35356).TransformStream + } - // The integrity getter steps are to return this’s request’s integrity - // metadata. - return this[kState].integrity - } + // https://streams.spec.whatwg.org/#readablestream-create-a-proxy + const identityTransform = new TransformStream() + inputBody.stream.pipeThrough(identityTransform) + finalBody = { + source: inputBody.source, + length: inputBody.length, + stream: identityTransform.readable + } + } - // Returns a boolean indicating whether or not request can outlive the - // global in which it was created. - get keepalive () { - webidl.brandCheck(this, Request) + // 41. Set this’s request’s body to finalBody. + this[kState].body = finalBody + } - // The keepalive getter steps are to return this’s request’s keepalive. - return this[kState].keepalive - } + // Returns request’s HTTP method, which is "GET" by default. + get method() { + webidl.brandCheck(this, Request) - // Returns a boolean indicating whether or not request is for a reload - // navigation. - get isReloadNavigation () { - webidl.brandCheck(this, Request) + // The method getter steps are to return this’s request’s method. + return this[kState].method + } - // The isReloadNavigation getter steps are to return true if this’s - // request’s reload-navigation flag is set; otherwise false. - return this[kState].reloadNavigation - } + // Returns the URL of request as a string. + get url() { + webidl.brandCheck(this, Request) - // Returns a boolean indicating whether or not request is for a history - // navigation (a.k.a. back-foward navigation). - get isHistoryNavigation () { - webidl.brandCheck(this, Request) + // The url getter steps are to return this’s request’s URL, serialized. + return URLSerializer(this[kState].url) + } - // The isHistoryNavigation getter steps are to return true if this’s request’s - // history-navigation flag is set; otherwise false. - return this[kState].historyNavigation - } + // Returns a Headers object consisting of the headers associated with request. + // Note that headers added in the network layer by the user agent will not + // be accounted for in this object, e.g., the "Host" header. + get headers() { + webidl.brandCheck(this, Request) - // Returns the signal associated with request, which is an AbortSignal - // object indicating whether or not request has been aborted, and its - // abort event handler. - get signal () { - webidl.brandCheck(this, Request) + // The headers getter steps are to return this’s headers. + return this[kHeaders] + } - // The signal getter steps are to return this’s signal. - return this[kSignal] - } + // Returns the kind of resource requested by request, e.g., "document" + // or "script". + get destination() { + webidl.brandCheck(this, Request) - get body () { - webidl.brandCheck(this, Request) + // The destination getter are to return this’s request’s destination. + return this[kState].destination + } - return this[kState].body ? this[kState].body.stream : null - } + // Returns the referrer of request. Its value can be a same-origin URL if + // explicitly set in init, the empty string to indicate no referrer, and + // "about:client" when defaulting to the global’s default. This is used + // during fetching to determine the value of the `Referer` header of the + // request being made. + get referrer() { + webidl.brandCheck(this, Request) - get bodyUsed () { - webidl.brandCheck(this, Request) + // 1. If this’s request’s referrer is "no-referrer", then return the + // empty string. + if (this[kState].referrer === 'no-referrer') { + return '' + } - return !!this[kState].body && util.isDisturbed(this[kState].body.stream) - } + // 2. If this’s request’s referrer is "client", then return + // "about:client". + if (this[kState].referrer === 'client') { + return 'about:client' + } - get duplex () { - webidl.brandCheck(this, Request) + // Return this’s request’s referrer, serialized. + return this[kState].referrer.toString() + } - return 'half' - } + // Returns the referrer policy associated with request. + // This is used during fetching to compute the value of the request’s + // referrer. + get referrerPolicy() { + webidl.brandCheck(this, Request) - // Returns a clone of request. - clone () { - webidl.brandCheck(this, Request) + // The referrerPolicy getter steps are to return this’s request’s referrer policy. + return this[kState].referrerPolicy + } - // 1. If this is unusable, then throw a TypeError. - if (this.bodyUsed || this.body?.locked) { - throw new TypeError('unusable') - } + // Returns the mode associated with request, which is a string indicating + // whether the request will use CORS, or will be restricted to same-origin + // URLs. + get mode() { + webidl.brandCheck(this, Request) - // 2. Let clonedRequest be the result of cloning this’s request. - const clonedRequest = cloneRequest(this[kState]) - - // 3. Let clonedRequestObject be the result of creating a Request object, - // given clonedRequest, this’s headers’s guard, and this’s relevant Realm. - const clonedRequestObject = new Request(kConstruct) - clonedRequestObject[kState] = clonedRequest - clonedRequestObject[kRealm] = this[kRealm] - clonedRequestObject[kHeaders] = new Headers(kConstruct) - clonedRequestObject[kHeaders][kHeadersList] = clonedRequest.headersList - clonedRequestObject[kHeaders][kGuard] = this[kHeaders][kGuard] - clonedRequestObject[kHeaders][kRealm] = this[kHeaders][kRealm] - - // 4. Make clonedRequestObject’s signal follow this’s signal. - const ac = new AbortController() - if (this.signal.aborted) { - ac.abort(this.signal.reason) - } else { - util.addAbortListener( - this.signal, - () => { - ac.abort(this.signal.reason) + // The mode getter steps are to return this’s request’s mode. + return this[kState].mode } - ) - } - clonedRequestObject[kSignal] = ac.signal - // 4. Return clonedRequestObject. - return clonedRequestObject - } -} - -mixinBody(Request) - -function makeRequest (init) { - // https://fetch.spec.whatwg.org/#requests - const request = { - method: 'GET', - localURLsOnly: false, - unsafeRequest: false, - body: null, - client: null, - reservedClient: null, - replacesClientId: '', - window: 'client', - keepalive: false, - serviceWorkers: 'all', - initiator: '', - destination: '', - priority: null, - origin: 'client', - policyContainer: 'client', - referrer: 'client', - referrerPolicy: '', - mode: 'no-cors', - useCORSPreflightFlag: false, - credentials: 'same-origin', - useCredentials: false, - cache: 'default', - redirect: 'follow', - integrity: '', - cryptoGraphicsNonceMetadata: '', - parserMetadata: '', - reloadNavigation: false, - historyNavigation: false, - userActivation: false, - taintedOrigin: false, - redirectCount: 0, - responseTainting: 'basic', - preventNoCacheCacheControlHeaderModification: false, - done: false, - timingAllowFailed: false, - ...init, - headersList: init.headersList - ? new HeadersList(init.headersList) - : new HeadersList() - } - request.url = request.urlList[0] - return request -} + // Returns the credentials mode associated with request, + // which is a string indicating whether credentials will be sent with the + // request always, never, or only when sent to a same-origin URL. + get credentials() { + // The credentials getter steps are to return this’s request’s credentials mode. + return this[kState].credentials + } -// https://fetch.spec.whatwg.org/#concept-request-clone -function cloneRequest (request) { - // To clone a request request, run these steps: + // Returns the cache mode associated with request, + // which is a string indicating how the request will + // interact with the browser’s cache when fetching. + get cache() { + webidl.brandCheck(this, Request) - // 1. Let newRequest be a copy of request, except for its body. - const newRequest = makeRequest({ ...request, body: null }) + // The cache getter steps are to return this’s request’s cache mode. + return this[kState].cache + } - // 2. If request’s body is non-null, set newRequest’s body to the - // result of cloning request’s body. - if (request.body != null) { - newRequest.body = cloneBody(request.body) - } + // Returns the redirect mode associated with request, + // which is a string indicating how redirects for the + // request will be handled during fetching. A request + // will follow redirects by default. + get redirect() { + webidl.brandCheck(this, Request) - // 3. Return newRequest. - return newRequest -} - -Object.defineProperties(Request.prototype, { - method: kEnumerableProperty, - url: kEnumerableProperty, - headers: kEnumerableProperty, - redirect: kEnumerableProperty, - clone: kEnumerableProperty, - signal: kEnumerableProperty, - duplex: kEnumerableProperty, - destination: kEnumerableProperty, - body: kEnumerableProperty, - bodyUsed: kEnumerableProperty, - isHistoryNavigation: kEnumerableProperty, - isReloadNavigation: kEnumerableProperty, - keepalive: kEnumerableProperty, - integrity: kEnumerableProperty, - cache: kEnumerableProperty, - credentials: kEnumerableProperty, - attribute: kEnumerableProperty, - referrerPolicy: kEnumerableProperty, - referrer: kEnumerableProperty, - mode: kEnumerableProperty, - [Symbol.toStringTag]: { - value: 'Request', - configurable: true - } -}) + // The redirect getter steps are to return this’s request’s redirect mode. + return this[kState].redirect + } -webidl.converters.Request = webidl.interfaceConverter( - Request -) + // Returns request’s subresource integrity metadata, which is a + // cryptographic hash of the resource being fetched. Its value + // consists of multiple hashes separated by whitespace. [SRI] + get integrity() { + webidl.brandCheck(this, Request) -// https://fetch.spec.whatwg.org/#requestinfo -webidl.converters.RequestInfo = function (V) { - if (typeof V === 'string') { - return webidl.converters.USVString(V) - } + // The integrity getter steps are to return this’s request’s integrity + // metadata. + return this[kState].integrity + } - if (V instanceof Request) { - return webidl.converters.Request(V) - } + // Returns a boolean indicating whether or not request can outlive the + // global in which it was created. + get keepalive() { + webidl.brandCheck(this, Request) - return webidl.converters.USVString(V) -} - -webidl.converters.AbortSignal = webidl.interfaceConverter( - AbortSignal -) - -// https://fetch.spec.whatwg.org/#requestinit -webidl.converters.RequestInit = webidl.dictionaryConverter([ - { - key: 'method', - converter: webidl.converters.ByteString - }, - { - key: 'headers', - converter: webidl.converters.HeadersInit - }, - { - key: 'body', - converter: webidl.nullableConverter( - webidl.converters.BodyInit - ) - }, - { - key: 'referrer', - converter: webidl.converters.USVString - }, - { - key: 'referrerPolicy', - converter: webidl.converters.DOMString, - // https://w3c.github.io/webappsec-referrer-policy/#referrer-policy - allowedValues: referrerPolicy - }, - { - key: 'mode', - converter: webidl.converters.DOMString, - // https://fetch.spec.whatwg.org/#concept-request-mode - allowedValues: requestMode - }, - { - key: 'credentials', - converter: webidl.converters.DOMString, - // https://fetch.spec.whatwg.org/#requestcredentials - allowedValues: requestCredentials - }, - { - key: 'cache', - converter: webidl.converters.DOMString, - // https://fetch.spec.whatwg.org/#requestcache - allowedValues: requestCache - }, - { - key: 'redirect', - converter: webidl.converters.DOMString, - // https://fetch.spec.whatwg.org/#requestredirect - allowedValues: requestRedirect - }, - { - key: 'integrity', - converter: webidl.converters.DOMString - }, - { - key: 'keepalive', - converter: webidl.converters.boolean - }, - { - key: 'signal', - converter: webidl.nullableConverter( - (signal) => webidl.converters.AbortSignal( - signal, - { strict: false } - ) - ) - }, - { - key: 'window', - converter: webidl.converters.any - }, - { - key: 'duplex', - converter: webidl.converters.DOMString, - allowedValues: requestDuplex - } -]) - -module.exports = { Request, makeRequest } - - -/***/ }), - -/***/ 27823: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - - -const { Headers, HeadersList, fill } = __nccwpck_require__(10554) -const { extractBody, cloneBody, mixinBody } = __nccwpck_require__(41472) -const util = __nccwpck_require__(83983) -const { kEnumerableProperty } = util -const { - isValidReasonPhrase, - isCancelled, - isAborted, - isBlobLike, - serializeJavascriptValueToJSONString, - isErrorLike, - isomorphicEncode -} = __nccwpck_require__(52538) -const { - redirectStatusSet, - nullBodyStatus, - DOMException -} = __nccwpck_require__(41037) -const { kState, kHeaders, kGuard, kRealm } = __nccwpck_require__(15861) -const { webidl } = __nccwpck_require__(21744) -const { FormData } = __nccwpck_require__(72015) -const { getGlobalOrigin } = __nccwpck_require__(71246) -const { URLSerializer } = __nccwpck_require__(685) -const { kHeadersList, kConstruct } = __nccwpck_require__(72785) -const assert = __nccwpck_require__(39491) -const { types } = __nccwpck_require__(73837) - -const ReadableStream = globalThis.ReadableStream || (__nccwpck_require__(35356).ReadableStream) -const textEncoder = new TextEncoder('utf-8') - -// https://fetch.spec.whatwg.org/#response-class -class Response { - // Creates network error Response. - static error () { - // TODO - const relevantRealm = { settingsObject: {} } - - // The static error() method steps are to return the result of creating a - // Response object, given a new network error, "immutable", and this’s - // relevant Realm. - const responseObject = new Response() - responseObject[kState] = makeNetworkError() - responseObject[kRealm] = relevantRealm - responseObject[kHeaders][kHeadersList] = responseObject[kState].headersList - responseObject[kHeaders][kGuard] = 'immutable' - responseObject[kHeaders][kRealm] = relevantRealm - return responseObject - } + // The keepalive getter steps are to return this’s request’s keepalive. + return this[kState].keepalive + } - // https://fetch.spec.whatwg.org/#dom-response-json - static json (data, init = {}) { - webidl.argumentLengthCheck(arguments, 1, { header: 'Response.json' }) + // Returns a boolean indicating whether or not request is for a reload + // navigation. + get isReloadNavigation() { + webidl.brandCheck(this, Request) - if (init !== null) { - init = webidl.converters.ResponseInit(init) - } + // The isReloadNavigation getter steps are to return true if this’s + // request’s reload-navigation flag is set; otherwise false. + return this[kState].reloadNavigation + } - // 1. Let bytes the result of running serialize a JavaScript value to JSON bytes on data. - const bytes = textEncoder.encode( - serializeJavascriptValueToJSONString(data) - ) + // Returns a boolean indicating whether or not request is for a history + // navigation (a.k.a. back-foward navigation). + get isHistoryNavigation() { + webidl.brandCheck(this, Request) - // 2. Let body be the result of extracting bytes. - const body = extractBody(bytes) + // The isHistoryNavigation getter steps are to return true if this’s request’s + // history-navigation flag is set; otherwise false. + return this[kState].historyNavigation + } - // 3. Let responseObject be the result of creating a Response object, given a new response, - // "response", and this’s relevant Realm. - const relevantRealm = { settingsObject: {} } - const responseObject = new Response() - responseObject[kRealm] = relevantRealm - responseObject[kHeaders][kGuard] = 'response' - responseObject[kHeaders][kRealm] = relevantRealm + // Returns the signal associated with request, which is an AbortSignal + // object indicating whether or not request has been aborted, and its + // abort event handler. + get signal() { + webidl.brandCheck(this, Request) - // 4. Perform initialize a response given responseObject, init, and (body, "application/json"). - initializeResponse(responseObject, init, { body: body[0], type: 'application/json' }) + // The signal getter steps are to return this’s signal. + return this[kSignal] + } - // 5. Return responseObject. - return responseObject - } + get body() { + webidl.brandCheck(this, Request) - // Creates a redirect Response that redirects to url with status status. - static redirect (url, status = 302) { - const relevantRealm = { settingsObject: {} } - - webidl.argumentLengthCheck(arguments, 1, { header: 'Response.redirect' }) - - url = webidl.converters.USVString(url) - status = webidl.converters['unsigned short'](status) - - // 1. Let parsedURL be the result of parsing url with current settings - // object’s API base URL. - // 2. If parsedURL is failure, then throw a TypeError. - // TODO: base-URL? - let parsedURL - try { - parsedURL = new URL(url, getGlobalOrigin()) - } catch (err) { - throw Object.assign(new TypeError('Failed to parse URL from ' + url), { - cause: err - }) - } + return this[kState].body ? this[kState].body.stream : null + } - // 3. If status is not a redirect status, then throw a RangeError. - if (!redirectStatusSet.has(status)) { - throw new RangeError('Invalid status code ' + status) - } + get bodyUsed() { + webidl.brandCheck(this, Request) - // 4. Let responseObject be the result of creating a Response object, - // given a new response, "immutable", and this’s relevant Realm. - const responseObject = new Response() - responseObject[kRealm] = relevantRealm - responseObject[kHeaders][kGuard] = 'immutable' - responseObject[kHeaders][kRealm] = relevantRealm + return ( + !!this[kState].body && util.isDisturbed(this[kState].body.stream) + ) + } - // 5. Set responseObject’s response’s status to status. - responseObject[kState].status = status + get duplex() { + webidl.brandCheck(this, Request) - // 6. Let value be parsedURL, serialized and isomorphic encoded. - const value = isomorphicEncode(URLSerializer(parsedURL)) + return 'half' + } - // 7. Append `Location`/value to responseObject’s response’s header list. - responseObject[kState].headersList.append('location', value) + // Returns a clone of request. + clone() { + webidl.brandCheck(this, Request) - // 8. Return responseObject. - return responseObject - } + // 1. If this is unusable, then throw a TypeError. + if (this.bodyUsed || this.body?.locked) { + throw new TypeError('unusable') + } - // https://fetch.spec.whatwg.org/#dom-response - constructor (body = null, init = {}) { - if (body !== null) { - body = webidl.converters.BodyInit(body) - } + // 2. Let clonedRequest be the result of cloning this’s request. + const clonedRequest = cloneRequest(this[kState]) + + // 3. Let clonedRequestObject be the result of creating a Request object, + // given clonedRequest, this’s headers’s guard, and this’s relevant Realm. + const clonedRequestObject = new Request(kConstruct) + clonedRequestObject[kState] = clonedRequest + clonedRequestObject[kRealm] = this[kRealm] + clonedRequestObject[kHeaders] = new Headers(kConstruct) + clonedRequestObject[kHeaders][kHeadersList] = + clonedRequest.headersList + clonedRequestObject[kHeaders][kGuard] = this[kHeaders][kGuard] + clonedRequestObject[kHeaders][kRealm] = this[kHeaders][kRealm] + + // 4. Make clonedRequestObject’s signal follow this’s signal. + const ac = new AbortController() + if (this.signal.aborted) { + ac.abort(this.signal.reason) + } else { + util.addAbortListener(this.signal, () => { + ac.abort(this.signal.reason) + }) + } + clonedRequestObject[kSignal] = ac.signal + + // 4. Return clonedRequestObject. + return clonedRequestObject + } + } + + mixinBody(Request) + + function makeRequest(init) { + // https://fetch.spec.whatwg.org/#requests + const request = { + method: 'GET', + localURLsOnly: false, + unsafeRequest: false, + body: null, + client: null, + reservedClient: null, + replacesClientId: '', + window: 'client', + keepalive: false, + serviceWorkers: 'all', + initiator: '', + destination: '', + priority: null, + origin: 'client', + policyContainer: 'client', + referrer: 'client', + referrerPolicy: '', + mode: 'no-cors', + useCORSPreflightFlag: false, + credentials: 'same-origin', + useCredentials: false, + cache: 'default', + redirect: 'follow', + integrity: '', + cryptoGraphicsNonceMetadata: '', + parserMetadata: '', + reloadNavigation: false, + historyNavigation: false, + userActivation: false, + taintedOrigin: false, + redirectCount: 0, + responseTainting: 'basic', + preventNoCacheCacheControlHeaderModification: false, + done: false, + timingAllowFailed: false, + ...init, + headersList: init.headersList + ? new HeadersList(init.headersList) + : new HeadersList() + } + request.url = request.urlList[0] + return request + } + + // https://fetch.spec.whatwg.org/#concept-request-clone + function cloneRequest(request) { + // To clone a request request, run these steps: + + // 1. Let newRequest be a copy of request, except for its body. + const newRequest = makeRequest({ ...request, body: null }) + + // 2. If request’s body is non-null, set newRequest’s body to the + // result of cloning request’s body. + if (request.body != null) { + newRequest.body = cloneBody(request.body) + } + + // 3. Return newRequest. + return newRequest + } + + Object.defineProperties(Request.prototype, { + method: kEnumerableProperty, + url: kEnumerableProperty, + headers: kEnumerableProperty, + redirect: kEnumerableProperty, + clone: kEnumerableProperty, + signal: kEnumerableProperty, + duplex: kEnumerableProperty, + destination: kEnumerableProperty, + body: kEnumerableProperty, + bodyUsed: kEnumerableProperty, + isHistoryNavigation: kEnumerableProperty, + isReloadNavigation: kEnumerableProperty, + keepalive: kEnumerableProperty, + integrity: kEnumerableProperty, + cache: kEnumerableProperty, + credentials: kEnumerableProperty, + attribute: kEnumerableProperty, + referrerPolicy: kEnumerableProperty, + referrer: kEnumerableProperty, + mode: kEnumerableProperty, + [Symbol.toStringTag]: { + value: 'Request', + configurable: true + } + }) + + webidl.converters.Request = webidl.interfaceConverter(Request) + + // https://fetch.spec.whatwg.org/#requestinfo + webidl.converters.RequestInfo = function (V) { + if (typeof V === 'string') { + return webidl.converters.USVString(V) + } + + if (V instanceof Request) { + return webidl.converters.Request(V) + } - init = webidl.converters.ResponseInit(init) + return webidl.converters.USVString(V) + } - // TODO - this[kRealm] = { settingsObject: {} } + webidl.converters.AbortSignal = webidl.interfaceConverter(AbortSignal) - // 1. Set this’s response to a new response. - this[kState] = makeResponse({}) + // https://fetch.spec.whatwg.org/#requestinit + webidl.converters.RequestInit = webidl.dictionaryConverter([ + { + key: 'method', + converter: webidl.converters.ByteString + }, + { + key: 'headers', + converter: webidl.converters.HeadersInit + }, + { + key: 'body', + converter: webidl.nullableConverter(webidl.converters.BodyInit) + }, + { + key: 'referrer', + converter: webidl.converters.USVString + }, + { + key: 'referrerPolicy', + converter: webidl.converters.DOMString, + // https://w3c.github.io/webappsec-referrer-policy/#referrer-policy + allowedValues: referrerPolicy + }, + { + key: 'mode', + converter: webidl.converters.DOMString, + // https://fetch.spec.whatwg.org/#concept-request-mode + allowedValues: requestMode + }, + { + key: 'credentials', + converter: webidl.converters.DOMString, + // https://fetch.spec.whatwg.org/#requestcredentials + allowedValues: requestCredentials + }, + { + key: 'cache', + converter: webidl.converters.DOMString, + // https://fetch.spec.whatwg.org/#requestcache + allowedValues: requestCache + }, + { + key: 'redirect', + converter: webidl.converters.DOMString, + // https://fetch.spec.whatwg.org/#requestredirect + allowedValues: requestRedirect + }, + { + key: 'integrity', + converter: webidl.converters.DOMString + }, + { + key: 'keepalive', + converter: webidl.converters.boolean + }, + { + key: 'signal', + converter: webidl.nullableConverter(signal => + webidl.converters.AbortSignal(signal, { strict: false }) + ) + }, + { + key: 'window', + converter: webidl.converters.any + }, + { + key: 'duplex', + converter: webidl.converters.DOMString, + allowedValues: requestDuplex + } + ]) - // 2. Set this’s headers to a new Headers object with this’s relevant - // Realm, whose header list is this’s response’s header list and guard - // is "response". - this[kHeaders] = new Headers(kConstruct) - this[kHeaders][kGuard] = 'response' - this[kHeaders][kHeadersList] = this[kState].headersList - this[kHeaders][kRealm] = this[kRealm] + module.exports = { Request, makeRequest } - // 3. Let bodyWithType be null. - let bodyWithType = null + /***/ + }, - // 4. If body is non-null, then set bodyWithType to the result of extracting body. - if (body != null) { - const [extractedBody, type] = extractBody(body) - bodyWithType = { body: extractedBody, type } - } + /***/ 27823: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + const { Headers, HeadersList, fill } = __nccwpck_require__(10554) + const { extractBody, cloneBody, mixinBody } = __nccwpck_require__(41472) + const util = __nccwpck_require__(83983) + const { kEnumerableProperty } = util + const { + isValidReasonPhrase, + isCancelled, + isAborted, + isBlobLike, + serializeJavascriptValueToJSONString, + isErrorLike, + isomorphicEncode + } = __nccwpck_require__(52538) + const { redirectStatusSet, nullBodyStatus, DOMException } = + __nccwpck_require__(41037) + const { kState, kHeaders, kGuard, kRealm } = __nccwpck_require__(15861) + const { webidl } = __nccwpck_require__(21744) + const { FormData } = __nccwpck_require__(72015) + const { getGlobalOrigin } = __nccwpck_require__(71246) + const { URLSerializer } = __nccwpck_require__(685) + const { kHeadersList, kConstruct } = __nccwpck_require__(72785) + const assert = __nccwpck_require__(39491) + const { types } = __nccwpck_require__(73837) + + const ReadableStream = + globalThis.ReadableStream || __nccwpck_require__(35356).ReadableStream + const textEncoder = new TextEncoder('utf-8') + + // https://fetch.spec.whatwg.org/#response-class + class Response { + // Creates network error Response. + static error() { + // TODO + const relevantRealm = { settingsObject: {} } + + // The static error() method steps are to return the result of creating a + // Response object, given a new network error, "immutable", and this’s + // relevant Realm. + const responseObject = new Response() + responseObject[kState] = makeNetworkError() + responseObject[kRealm] = relevantRealm + responseObject[kHeaders][kHeadersList] = + responseObject[kState].headersList + responseObject[kHeaders][kGuard] = 'immutable' + responseObject[kHeaders][kRealm] = relevantRealm + return responseObject + } + + // https://fetch.spec.whatwg.org/#dom-response-json + static json(data, init = {}) { + webidl.argumentLengthCheck(arguments, 1, { header: 'Response.json' }) + + if (init !== null) { + init = webidl.converters.ResponseInit(init) + } - // 5. Perform initialize a response given this, init, and bodyWithType. - initializeResponse(this, init, bodyWithType) - } + // 1. Let bytes the result of running serialize a JavaScript value to JSON bytes on data. + const bytes = textEncoder.encode( + serializeJavascriptValueToJSONString(data) + ) - // Returns response’s type, e.g., "cors". - get type () { - webidl.brandCheck(this, Response) + // 2. Let body be the result of extracting bytes. + const body = extractBody(bytes) + + // 3. Let responseObject be the result of creating a Response object, given a new response, + // "response", and this’s relevant Realm. + const relevantRealm = { settingsObject: {} } + const responseObject = new Response() + responseObject[kRealm] = relevantRealm + responseObject[kHeaders][kGuard] = 'response' + responseObject[kHeaders][kRealm] = relevantRealm + + // 4. Perform initialize a response given responseObject, init, and (body, "application/json"). + initializeResponse(responseObject, init, { + body: body[0], + type: 'application/json' + }) - // The type getter steps are to return this’s response’s type. - return this[kState].type - } + // 5. Return responseObject. + return responseObject + } - // Returns response’s URL, if it has one; otherwise the empty string. - get url () { - webidl.brandCheck(this, Response) + // Creates a redirect Response that redirects to url with status status. + static redirect(url, status = 302) { + const relevantRealm = { settingsObject: {} } - const urlList = this[kState].urlList + webidl.argumentLengthCheck(arguments, 1, { + header: 'Response.redirect' + }) - // The url getter steps are to return the empty string if this’s - // response’s URL is null; otherwise this’s response’s URL, - // serialized with exclude fragment set to true. - const url = urlList[urlList.length - 1] ?? null + url = webidl.converters.USVString(url) + status = webidl.converters['unsigned short'](status) + + // 1. Let parsedURL be the result of parsing url with current settings + // object’s API base URL. + // 2. If parsedURL is failure, then throw a TypeError. + // TODO: base-URL? + let parsedURL + try { + parsedURL = new URL(url, getGlobalOrigin()) + } catch (err) { + throw Object.assign( + new TypeError('Failed to parse URL from ' + url), + { + cause: err + } + ) + } - if (url === null) { - return '' - } + // 3. If status is not a redirect status, then throw a RangeError. + if (!redirectStatusSet.has(status)) { + throw new RangeError('Invalid status code ' + status) + } - return URLSerializer(url, true) - } + // 4. Let responseObject be the result of creating a Response object, + // given a new response, "immutable", and this’s relevant Realm. + const responseObject = new Response() + responseObject[kRealm] = relevantRealm + responseObject[kHeaders][kGuard] = 'immutable' + responseObject[kHeaders][kRealm] = relevantRealm - // Returns whether response was obtained through a redirect. - get redirected () { - webidl.brandCheck(this, Response) + // 5. Set responseObject’s response’s status to status. + responseObject[kState].status = status - // The redirected getter steps are to return true if this’s response’s URL - // list has more than one item; otherwise false. - return this[kState].urlList.length > 1 - } + // 6. Let value be parsedURL, serialized and isomorphic encoded. + const value = isomorphicEncode(URLSerializer(parsedURL)) - // Returns response’s status. - get status () { - webidl.brandCheck(this, Response) + // 7. Append `Location`/value to responseObject’s response’s header list. + responseObject[kState].headersList.append('location', value) - // The status getter steps are to return this’s response’s status. - return this[kState].status - } + // 8. Return responseObject. + return responseObject + } - // Returns whether response’s status is an ok status. - get ok () { - webidl.brandCheck(this, Response) + // https://fetch.spec.whatwg.org/#dom-response + constructor(body = null, init = {}) { + if (body !== null) { + body = webidl.converters.BodyInit(body) + } - // The ok getter steps are to return true if this’s response’s status is an - // ok status; otherwise false. - return this[kState].status >= 200 && this[kState].status <= 299 - } + init = webidl.converters.ResponseInit(init) - // Returns response’s status message. - get statusText () { - webidl.brandCheck(this, Response) + // TODO + this[kRealm] = { settingsObject: {} } - // The statusText getter steps are to return this’s response’s status - // message. - return this[kState].statusText - } + // 1. Set this’s response to a new response. + this[kState] = makeResponse({}) - // Returns response’s headers as Headers. - get headers () { - webidl.brandCheck(this, Response) + // 2. Set this’s headers to a new Headers object with this’s relevant + // Realm, whose header list is this’s response’s header list and guard + // is "response". + this[kHeaders] = new Headers(kConstruct) + this[kHeaders][kGuard] = 'response' + this[kHeaders][kHeadersList] = this[kState].headersList + this[kHeaders][kRealm] = this[kRealm] - // The headers getter steps are to return this’s headers. - return this[kHeaders] - } + // 3. Let bodyWithType be null. + let bodyWithType = null - get body () { - webidl.brandCheck(this, Response) + // 4. If body is non-null, then set bodyWithType to the result of extracting body. + if (body != null) { + const [extractedBody, type] = extractBody(body) + bodyWithType = { body: extractedBody, type } + } - return this[kState].body ? this[kState].body.stream : null - } + // 5. Perform initialize a response given this, init, and bodyWithType. + initializeResponse(this, init, bodyWithType) + } - get bodyUsed () { - webidl.brandCheck(this, Response) + // Returns response’s type, e.g., "cors". + get type() { + webidl.brandCheck(this, Response) - return !!this[kState].body && util.isDisturbed(this[kState].body.stream) - } + // The type getter steps are to return this’s response’s type. + return this[kState].type + } - // Returns a clone of response. - clone () { - webidl.brandCheck(this, Response) + // Returns response’s URL, if it has one; otherwise the empty string. + get url() { + webidl.brandCheck(this, Response) - // 1. If this is unusable, then throw a TypeError. - if (this.bodyUsed || (this.body && this.body.locked)) { - throw webidl.errors.exception({ - header: 'Response.clone', - message: 'Body has already been consumed.' - }) - } + const urlList = this[kState].urlList - // 2. Let clonedResponse be the result of cloning this’s response. - const clonedResponse = cloneResponse(this[kState]) + // The url getter steps are to return the empty string if this’s + // response’s URL is null; otherwise this’s response’s URL, + // serialized with exclude fragment set to true. + const url = urlList[urlList.length - 1] ?? null - // 3. Return the result of creating a Response object, given - // clonedResponse, this’s headers’s guard, and this’s relevant Realm. - const clonedResponseObject = new Response() - clonedResponseObject[kState] = clonedResponse - clonedResponseObject[kRealm] = this[kRealm] - clonedResponseObject[kHeaders][kHeadersList] = clonedResponse.headersList - clonedResponseObject[kHeaders][kGuard] = this[kHeaders][kGuard] - clonedResponseObject[kHeaders][kRealm] = this[kHeaders][kRealm] + if (url === null) { + return '' + } - return clonedResponseObject - } -} - -mixinBody(Response) - -Object.defineProperties(Response.prototype, { - type: kEnumerableProperty, - url: kEnumerableProperty, - status: kEnumerableProperty, - ok: kEnumerableProperty, - redirected: kEnumerableProperty, - statusText: kEnumerableProperty, - headers: kEnumerableProperty, - clone: kEnumerableProperty, - body: kEnumerableProperty, - bodyUsed: kEnumerableProperty, - [Symbol.toStringTag]: { - value: 'Response', - configurable: true - } -}) - -Object.defineProperties(Response, { - json: kEnumerableProperty, - redirect: kEnumerableProperty, - error: kEnumerableProperty -}) - -// https://fetch.spec.whatwg.org/#concept-response-clone -function cloneResponse (response) { - // To clone a response response, run these steps: - - // 1. If response is a filtered response, then return a new identical - // filtered response whose internal response is a clone of response’s - // internal response. - if (response.internalResponse) { - return filterResponse( - cloneResponse(response.internalResponse), - response.type - ) - } + return URLSerializer(url, true) + } - // 2. Let newResponse be a copy of response, except for its body. - const newResponse = makeResponse({ ...response, body: null }) + // Returns whether response was obtained through a redirect. + get redirected() { + webidl.brandCheck(this, Response) - // 3. If response’s body is non-null, then set newResponse’s body to the - // result of cloning response’s body. - if (response.body != null) { - newResponse.body = cloneBody(response.body) - } + // The redirected getter steps are to return true if this’s response’s URL + // list has more than one item; otherwise false. + return this[kState].urlList.length > 1 + } - // 4. Return newResponse. - return newResponse -} - -function makeResponse (init) { - return { - aborted: false, - rangeRequested: false, - timingAllowPassed: false, - requestIncludesCredentials: false, - type: 'default', - status: 200, - timingInfo: null, - cacheState: '', - statusText: '', - ...init, - headersList: init.headersList - ? new HeadersList(init.headersList) - : new HeadersList(), - urlList: init.urlList ? [...init.urlList] : [] - } -} - -function makeNetworkError (reason) { - const isError = isErrorLike(reason) - return makeResponse({ - type: 'error', - status: 0, - error: isError - ? reason - : new Error(reason ? String(reason) : reason), - aborted: reason && reason.name === 'AbortError' - }) -} - -function makeFilteredResponse (response, state) { - state = { - internalResponse: response, - ...state - } + // Returns response’s status. + get status() { + webidl.brandCheck(this, Response) - return new Proxy(response, { - get (target, p) { - return p in state ? state[p] : target[p] - }, - set (target, p, value) { - assert(!(p in state)) - target[p] = value - return true - } - }) -} - -// https://fetch.spec.whatwg.org/#concept-filtered-response -function filterResponse (response, type) { - // Set response to the following filtered response with response as its - // internal response, depending on request’s response tainting: - if (type === 'basic') { - // A basic filtered response is a filtered response whose type is "basic" - // and header list excludes any headers in internal response’s header list - // whose name is a forbidden response-header name. - - // Note: undici does not implement forbidden response-header names - return makeFilteredResponse(response, { - type: 'basic', - headersList: response.headersList - }) - } else if (type === 'cors') { - // A CORS filtered response is a filtered response whose type is "cors" - // and header list excludes any headers in internal response’s header - // list whose name is not a CORS-safelisted response-header name, given - // internal response’s CORS-exposed header-name list. - - // Note: undici does not implement CORS-safelisted response-header names - return makeFilteredResponse(response, { - type: 'cors', - headersList: response.headersList - }) - } else if (type === 'opaque') { - // An opaque filtered response is a filtered response whose type is - // "opaque", URL list is the empty list, status is 0, status message - // is the empty byte sequence, header list is empty, and body is null. - - return makeFilteredResponse(response, { - type: 'opaque', - urlList: Object.freeze([]), - status: 0, - statusText: '', - body: null - }) - } else if (type === 'opaqueredirect') { - // An opaque-redirect filtered response is a filtered response whose type - // is "opaqueredirect", status is 0, status message is the empty byte - // sequence, header list is empty, and body is null. - - return makeFilteredResponse(response, { - type: 'opaqueredirect', - status: 0, - statusText: '', - headersList: [], - body: null - }) - } else { - assert(false) - } -} - -// https://fetch.spec.whatwg.org/#appropriate-network-error -function makeAppropriateNetworkError (fetchParams, err = null) { - // 1. Assert: fetchParams is canceled. - assert(isCancelled(fetchParams)) - - // 2. Return an aborted network error if fetchParams is aborted; - // otherwise return a network error. - return isAborted(fetchParams) - ? makeNetworkError(Object.assign(new DOMException('The operation was aborted.', 'AbortError'), { cause: err })) - : makeNetworkError(Object.assign(new DOMException('Request was cancelled.'), { cause: err })) -} - -// https://whatpr.org/fetch/1392.html#initialize-a-response -function initializeResponse (response, init, body) { - // 1. If init["status"] is not in the range 200 to 599, inclusive, then - // throw a RangeError. - if (init.status !== null && (init.status < 200 || init.status > 599)) { - throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.') - } + // The status getter steps are to return this’s response’s status. + return this[kState].status + } - // 2. If init["statusText"] does not match the reason-phrase token production, - // then throw a TypeError. - if ('statusText' in init && init.statusText != null) { - // See, https://datatracker.ietf.org/doc/html/rfc7230#section-3.1.2: - // reason-phrase = *( HTAB / SP / VCHAR / obs-text ) - if (!isValidReasonPhrase(String(init.statusText))) { - throw new TypeError('Invalid statusText') - } - } + // Returns whether response’s status is an ok status. + get ok() { + webidl.brandCheck(this, Response) - // 3. Set response’s response’s status to init["status"]. - if ('status' in init && init.status != null) { - response[kState].status = init.status - } + // The ok getter steps are to return true if this’s response’s status is an + // ok status; otherwise false. + return this[kState].status >= 200 && this[kState].status <= 299 + } - // 4. Set response’s response’s status message to init["statusText"]. - if ('statusText' in init && init.statusText != null) { - response[kState].statusText = init.statusText - } + // Returns response’s status message. + get statusText() { + webidl.brandCheck(this, Response) - // 5. If init["headers"] exists, then fill response’s headers with init["headers"]. - if ('headers' in init && init.headers != null) { - fill(response[kHeaders], init.headers) - } + // The statusText getter steps are to return this’s response’s status + // message. + return this[kState].statusText + } - // 6. If body was given, then: - if (body) { - // 1. If response's status is a null body status, then throw a TypeError. - if (nullBodyStatus.includes(response.status)) { - throw webidl.errors.exception({ - header: 'Response constructor', - message: 'Invalid response status code ' + response.status - }) - } + // Returns response’s headers as Headers. + get headers() { + webidl.brandCheck(this, Response) - // 2. Set response's body to body's body. - response[kState].body = body.body + // The headers getter steps are to return this’s headers. + return this[kHeaders] + } - // 3. If body's type is non-null and response's header list does not contain - // `Content-Type`, then append (`Content-Type`, body's type) to response's header list. - if (body.type != null && !response[kState].headersList.contains('Content-Type')) { - response[kState].headersList.append('content-type', body.type) - } - } -} + get body() { + webidl.brandCheck(this, Response) -webidl.converters.ReadableStream = webidl.interfaceConverter( - ReadableStream -) + return this[kState].body ? this[kState].body.stream : null + } -webidl.converters.FormData = webidl.interfaceConverter( - FormData -) + get bodyUsed() { + webidl.brandCheck(this, Response) -webidl.converters.URLSearchParams = webidl.interfaceConverter( - URLSearchParams -) + return ( + !!this[kState].body && util.isDisturbed(this[kState].body.stream) + ) + } -// https://fetch.spec.whatwg.org/#typedefdef-xmlhttprequestbodyinit -webidl.converters.XMLHttpRequestBodyInit = function (V) { - if (typeof V === 'string') { - return webidl.converters.USVString(V) - } + // Returns a clone of response. + clone() { + webidl.brandCheck(this, Response) - if (isBlobLike(V)) { - return webidl.converters.Blob(V, { strict: false }) - } + // 1. If this is unusable, then throw a TypeError. + if (this.bodyUsed || (this.body && this.body.locked)) { + throw webidl.errors.exception({ + header: 'Response.clone', + message: 'Body has already been consumed.' + }) + } - if (types.isArrayBuffer(V) || types.isTypedArray(V) || types.isDataView(V)) { - return webidl.converters.BufferSource(V) - } + // 2. Let clonedResponse be the result of cloning this’s response. + const clonedResponse = cloneResponse(this[kState]) - if (util.isFormDataLike(V)) { - return webidl.converters.FormData(V, { strict: false }) - } + // 3. Return the result of creating a Response object, given + // clonedResponse, this’s headers’s guard, and this’s relevant Realm. + const clonedResponseObject = new Response() + clonedResponseObject[kState] = clonedResponse + clonedResponseObject[kRealm] = this[kRealm] + clonedResponseObject[kHeaders][kHeadersList] = + clonedResponse.headersList + clonedResponseObject[kHeaders][kGuard] = this[kHeaders][kGuard] + clonedResponseObject[kHeaders][kRealm] = this[kHeaders][kRealm] - if (V instanceof URLSearchParams) { - return webidl.converters.URLSearchParams(V) - } + return clonedResponseObject + } + } - return webidl.converters.DOMString(V) -} + mixinBody(Response) -// https://fetch.spec.whatwg.org/#bodyinit -webidl.converters.BodyInit = function (V) { - if (V instanceof ReadableStream) { - return webidl.converters.ReadableStream(V) - } + Object.defineProperties(Response.prototype, { + type: kEnumerableProperty, + url: kEnumerableProperty, + status: kEnumerableProperty, + ok: kEnumerableProperty, + redirected: kEnumerableProperty, + statusText: kEnumerableProperty, + headers: kEnumerableProperty, + clone: kEnumerableProperty, + body: kEnumerableProperty, + bodyUsed: kEnumerableProperty, + [Symbol.toStringTag]: { + value: 'Response', + configurable: true + } + }) - // Note: the spec doesn't include async iterables, - // this is an undici extension. - if (V?.[Symbol.asyncIterator]) { - return V - } + Object.defineProperties(Response, { + json: kEnumerableProperty, + redirect: kEnumerableProperty, + error: kEnumerableProperty + }) - return webidl.converters.XMLHttpRequestBodyInit(V) -} - -webidl.converters.ResponseInit = webidl.dictionaryConverter([ - { - key: 'status', - converter: webidl.converters['unsigned short'], - defaultValue: 200 - }, - { - key: 'statusText', - converter: webidl.converters.ByteString, - defaultValue: '' - }, - { - key: 'headers', - converter: webidl.converters.HeadersInit - } -]) + // https://fetch.spec.whatwg.org/#concept-response-clone + function cloneResponse(response) { + // To clone a response response, run these steps: + + // 1. If response is a filtered response, then return a new identical + // filtered response whose internal response is a clone of response’s + // internal response. + if (response.internalResponse) { + return filterResponse( + cloneResponse(response.internalResponse), + response.type + ) + } -module.exports = { - makeNetworkError, - makeResponse, - makeAppropriateNetworkError, - filterResponse, - Response, - cloneResponse -} + // 2. Let newResponse be a copy of response, except for its body. + const newResponse = makeResponse({ ...response, body: null }) + // 3. If response’s body is non-null, then set newResponse’s body to the + // result of cloning response’s body. + if (response.body != null) { + newResponse.body = cloneBody(response.body) + } -/***/ }), + // 4. Return newResponse. + return newResponse + } -/***/ 15861: -/***/ ((module) => { + function makeResponse(init) { + return { + aborted: false, + rangeRequested: false, + timingAllowPassed: false, + requestIncludesCredentials: false, + type: 'default', + status: 200, + timingInfo: null, + cacheState: '', + statusText: '', + ...init, + headersList: init.headersList + ? new HeadersList(init.headersList) + : new HeadersList(), + urlList: init.urlList ? [...init.urlList] : [] + } + } + + function makeNetworkError(reason) { + const isError = isErrorLike(reason) + return makeResponse({ + type: 'error', + status: 0, + error: isError ? reason : new Error(reason ? String(reason) : reason), + aborted: reason && reason.name === 'AbortError' + }) + } -"use strict"; + function makeFilteredResponse(response, state) { + state = { + internalResponse: response, + ...state + } + return new Proxy(response, { + get(target, p) { + return p in state ? state[p] : target[p] + }, + set(target, p, value) { + assert(!(p in state)) + target[p] = value + return true + } + }) + } -module.exports = { - kUrl: Symbol('url'), - kHeaders: Symbol('headers'), - kSignal: Symbol('signal'), - kState: Symbol('state'), - kGuard: Symbol('guard'), - kRealm: Symbol('realm') -} + // https://fetch.spec.whatwg.org/#concept-filtered-response + function filterResponse(response, type) { + // Set response to the following filtered response with response as its + // internal response, depending on request’s response tainting: + if (type === 'basic') { + // A basic filtered response is a filtered response whose type is "basic" + // and header list excludes any headers in internal response’s header list + // whose name is a forbidden response-header name. + // Note: undici does not implement forbidden response-header names + return makeFilteredResponse(response, { + type: 'basic', + headersList: response.headersList + }) + } else if (type === 'cors') { + // A CORS filtered response is a filtered response whose type is "cors" + // and header list excludes any headers in internal response’s header + // list whose name is not a CORS-safelisted response-header name, given + // internal response’s CORS-exposed header-name list. + + // Note: undici does not implement CORS-safelisted response-header names + return makeFilteredResponse(response, { + type: 'cors', + headersList: response.headersList + }) + } else if (type === 'opaque') { + // An opaque filtered response is a filtered response whose type is + // "opaque", URL list is the empty list, status is 0, status message + // is the empty byte sequence, header list is empty, and body is null. + + return makeFilteredResponse(response, { + type: 'opaque', + urlList: Object.freeze([]), + status: 0, + statusText: '', + body: null + }) + } else if (type === 'opaqueredirect') { + // An opaque-redirect filtered response is a filtered response whose type + // is "opaqueredirect", status is 0, status message is the empty byte + // sequence, header list is empty, and body is null. + + return makeFilteredResponse(response, { + type: 'opaqueredirect', + status: 0, + statusText: '', + headersList: [], + body: null + }) + } else { + assert(false) + } + } -/***/ }), + // https://fetch.spec.whatwg.org/#appropriate-network-error + function makeAppropriateNetworkError(fetchParams, err = null) { + // 1. Assert: fetchParams is canceled. + assert(isCancelled(fetchParams)) -/***/ 52538: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + // 2. Return an aborted network error if fetchParams is aborted; + // otherwise return a network error. + return isAborted(fetchParams) + ? makeNetworkError( + Object.assign( + new DOMException('The operation was aborted.', 'AbortError'), + { cause: err } + ) + ) + : makeNetworkError( + Object.assign(new DOMException('Request was cancelled.'), { + cause: err + }) + ) + } -"use strict"; + // https://whatpr.org/fetch/1392.html#initialize-a-response + function initializeResponse(response, init, body) { + // 1. If init["status"] is not in the range 200 to 599, inclusive, then + // throw a RangeError. + if (init.status !== null && (init.status < 200 || init.status > 599)) { + throw new RangeError( + 'init["status"] must be in the range of 200 to 599, inclusive.' + ) + } + // 2. If init["statusText"] does not match the reason-phrase token production, + // then throw a TypeError. + if ('statusText' in init && init.statusText != null) { + // See, https://datatracker.ietf.org/doc/html/rfc7230#section-3.1.2: + // reason-phrase = *( HTAB / SP / VCHAR / obs-text ) + if (!isValidReasonPhrase(String(init.statusText))) { + throw new TypeError('Invalid statusText') + } + } -const { redirectStatusSet, referrerPolicySet: referrerPolicyTokens, badPortsSet } = __nccwpck_require__(41037) -const { getGlobalOrigin } = __nccwpck_require__(71246) -const { performance } = __nccwpck_require__(4074) -const { isBlobLike, toUSVString, ReadableStreamFrom } = __nccwpck_require__(83983) -const assert = __nccwpck_require__(39491) -const { isUint8Array } = __nccwpck_require__(29830) + // 3. Set response’s response’s status to init["status"]. + if ('status' in init && init.status != null) { + response[kState].status = init.status + } -let supportedHashes = [] + // 4. Set response’s response’s status message to init["statusText"]. + if ('statusText' in init && init.statusText != null) { + response[kState].statusText = init.statusText + } -// https://nodejs.org/api/crypto.html#determining-if-crypto-support-is-unavailable -/** @type {import('crypto')|undefined} */ -let crypto + // 5. If init["headers"] exists, then fill response’s headers with init["headers"]. + if ('headers' in init && init.headers != null) { + fill(response[kHeaders], init.headers) + } -try { - crypto = __nccwpck_require__(6113) - const possibleRelevantHashes = ['sha256', 'sha384', 'sha512'] - supportedHashes = crypto.getHashes().filter((hash) => possibleRelevantHashes.includes(hash)) -/* c8 ignore next 3 */ -} catch { -} + // 6. If body was given, then: + if (body) { + // 1. If response's status is a null body status, then throw a TypeError. + if (nullBodyStatus.includes(response.status)) { + throw webidl.errors.exception({ + header: 'Response constructor', + message: 'Invalid response status code ' + response.status + }) + } -function responseURL (response) { - // https://fetch.spec.whatwg.org/#responses - // A response has an associated URL. It is a pointer to the last URL - // in response’s URL list and null if response’s URL list is empty. - const urlList = response.urlList - const length = urlList.length - return length === 0 ? null : urlList[length - 1].toString() -} + // 2. Set response's body to body's body. + response[kState].body = body.body -// https://fetch.spec.whatwg.org/#concept-response-location-url -function responseLocationURL (response, requestFragment) { - // 1. If response’s status is not a redirect status, then return null. - if (!redirectStatusSet.has(response.status)) { - return null - } + // 3. If body's type is non-null and response's header list does not contain + // `Content-Type`, then append (`Content-Type`, body's type) to response's header list. + if ( + body.type != null && + !response[kState].headersList.contains('Content-Type') + ) { + response[kState].headersList.append('content-type', body.type) + } + } + } - // 2. Let location be the result of extracting header list values given - // `Location` and response’s header list. - let location = response.headersList.get('location') + webidl.converters.ReadableStream = + webidl.interfaceConverter(ReadableStream) - // 3. If location is a header value, then set location to the result of - // parsing location with response’s URL. - if (location !== null && isValidHeaderValue(location)) { - location = new URL(location, responseURL(response)) - } + webidl.converters.FormData = webidl.interfaceConverter(FormData) - // 4. If location is a URL whose fragment is null, then set location’s - // fragment to requestFragment. - if (location && !location.hash) { - location.hash = requestFragment - } + webidl.converters.URLSearchParams = + webidl.interfaceConverter(URLSearchParams) - // 5. Return location. - return location -} + // https://fetch.spec.whatwg.org/#typedefdef-xmlhttprequestbodyinit + webidl.converters.XMLHttpRequestBodyInit = function (V) { + if (typeof V === 'string') { + return webidl.converters.USVString(V) + } -/** @returns {URL} */ -function requestCurrentURL (request) { - return request.urlList[request.urlList.length - 1] -} + if (isBlobLike(V)) { + return webidl.converters.Blob(V, { strict: false }) + } -function requestBadPort (request) { - // 1. Let url be request’s current URL. - const url = requestCurrentURL(request) + if ( + types.isArrayBuffer(V) || + types.isTypedArray(V) || + types.isDataView(V) + ) { + return webidl.converters.BufferSource(V) + } - // 2. If url’s scheme is an HTTP(S) scheme and url’s port is a bad port, - // then return blocked. - if (urlIsHttpHttpsScheme(url) && badPortsSet.has(url.port)) { - return 'blocked' - } + if (util.isFormDataLike(V)) { + return webidl.converters.FormData(V, { strict: false }) + } - // 3. Return allowed. - return 'allowed' -} - -function isErrorLike (object) { - return object instanceof Error || ( - object?.constructor?.name === 'Error' || - object?.constructor?.name === 'DOMException' - ) -} - -// Check whether |statusText| is a ByteString and -// matches the Reason-Phrase token production. -// RFC 2616: https://tools.ietf.org/html/rfc2616 -// RFC 7230: https://tools.ietf.org/html/rfc7230 -// "reason-phrase = *( HTAB / SP / VCHAR / obs-text )" -// https://github.com/chromium/chromium/blob/94.0.4604.1/third_party/blink/renderer/core/fetch/response.cc#L116 -function isValidReasonPhrase (statusText) { - for (let i = 0; i < statusText.length; ++i) { - const c = statusText.charCodeAt(i) - if ( - !( - ( - c === 0x09 || // HTAB - (c >= 0x20 && c <= 0x7e) || // SP / VCHAR - (c >= 0x80 && c <= 0xff) - ) // obs-text - ) - ) { - return false - } - } - return true -} + if (V instanceof URLSearchParams) { + return webidl.converters.URLSearchParams(V) + } -/** - * @see https://tools.ietf.org/html/rfc7230#section-3.2.6 - * @param {number} c - */ -function isTokenCharCode (c) { - switch (c) { - case 0x22: - case 0x28: - case 0x29: - case 0x2c: - case 0x2f: - case 0x3a: - case 0x3b: - case 0x3c: - case 0x3d: - case 0x3e: - case 0x3f: - case 0x40: - case 0x5b: - case 0x5c: - case 0x5d: - case 0x7b: - case 0x7d: - // DQUOTE and "(),/:;<=>?@[\]{}" - return false - default: - // VCHAR %x21-7E - return c >= 0x21 && c <= 0x7e - } -} + return webidl.converters.DOMString(V) + } -/** - * @param {string} characters - */ -function isValidHTTPToken (characters) { - if (characters.length === 0) { - return false - } - for (let i = 0; i < characters.length; ++i) { - if (!isTokenCharCode(characters.charCodeAt(i))) { - return false - } - } - return true -} + // https://fetch.spec.whatwg.org/#bodyinit + webidl.converters.BodyInit = function (V) { + if (V instanceof ReadableStream) { + return webidl.converters.ReadableStream(V) + } -/** - * @see https://fetch.spec.whatwg.org/#header-name - * @param {string} potentialValue - */ -function isValidHeaderName (potentialValue) { - return isValidHTTPToken(potentialValue) -} + // Note: the spec doesn't include async iterables, + // this is an undici extension. + if (V?.[Symbol.asyncIterator]) { + return V + } -/** - * @see https://fetch.spec.whatwg.org/#header-value - * @param {string} potentialValue - */ -function isValidHeaderValue (potentialValue) { - // - Has no leading or trailing HTTP tab or space bytes. - // - Contains no 0x00 (NUL) or HTTP newline bytes. - if ( - potentialValue.startsWith('\t') || - potentialValue.startsWith(' ') || - potentialValue.endsWith('\t') || - potentialValue.endsWith(' ') - ) { - return false - } + return webidl.converters.XMLHttpRequestBodyInit(V) + } - if ( - potentialValue.includes('\0') || - potentialValue.includes('\r') || - potentialValue.includes('\n') - ) { - return false - } + webidl.converters.ResponseInit = webidl.dictionaryConverter([ + { + key: 'status', + converter: webidl.converters['unsigned short'], + defaultValue: 200 + }, + { + key: 'statusText', + converter: webidl.converters.ByteString, + defaultValue: '' + }, + { + key: 'headers', + converter: webidl.converters.HeadersInit + } + ]) - return true -} - -// https://w3c.github.io/webappsec-referrer-policy/#set-requests-referrer-policy-on-redirect -function setRequestReferrerPolicyOnRedirect (request, actualResponse) { - // Given a request request and a response actualResponse, this algorithm - // updates request’s referrer policy according to the Referrer-Policy - // header (if any) in actualResponse. - - // 1. Let policy be the result of executing § 8.1 Parse a referrer policy - // from a Referrer-Policy header on actualResponse. - - // 8.1 Parse a referrer policy from a Referrer-Policy header - // 1. Let policy-tokens be the result of extracting header list values given `Referrer-Policy` and response’s header list. - const { headersList } = actualResponse - // 2. Let policy be the empty string. - // 3. For each token in policy-tokens, if token is a referrer policy and token is not the empty string, then set policy to token. - // 4. Return policy. - const policyHeader = (headersList.get('referrer-policy') ?? '').split(',') - - // Note: As the referrer-policy can contain multiple policies - // separated by comma, we need to loop through all of them - // and pick the first valid one. - // Ref: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy#specify_a_fallback_policy - let policy = '' - if (policyHeader.length > 0) { - // The right-most policy takes precedence. - // The left-most policy is the fallback. - for (let i = policyHeader.length; i !== 0; i--) { - const token = policyHeader[i - 1].trim() - if (referrerPolicyTokens.has(token)) { - policy = token - break + module.exports = { + makeNetworkError, + makeResponse, + makeAppropriateNetworkError, + filterResponse, + Response, + cloneResponse } - } - } - // 2. If policy is not the empty string, then set request’s referrer policy to policy. - if (policy !== '') { - request.referrerPolicy = policy - } -} + /***/ + }, -// https://fetch.spec.whatwg.org/#cross-origin-resource-policy-check -function crossOriginResourcePolicyCheck () { - // TODO - return 'allowed' -} + /***/ 15861: /***/ module => { + 'use strict' -// https://fetch.spec.whatwg.org/#concept-cors-check -function corsCheck () { - // TODO - return 'success' -} + module.exports = { + kUrl: Symbol('url'), + kHeaders: Symbol('headers'), + kSignal: Symbol('signal'), + kState: Symbol('state'), + kGuard: Symbol('guard'), + kRealm: Symbol('realm') + } -// https://fetch.spec.whatwg.org/#concept-tao-check -function TAOCheck () { - // TODO - return 'success' -} + /***/ + }, -function appendFetchMetadata (httpRequest) { - // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-dest-header - // TODO + /***/ 52538: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' - // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-mode-header + const { + redirectStatusSet, + referrerPolicySet: referrerPolicyTokens, + badPortsSet + } = __nccwpck_require__(41037) + const { getGlobalOrigin } = __nccwpck_require__(71246) + const { performance } = __nccwpck_require__(4074) + const { isBlobLike, toUSVString, ReadableStreamFrom } = + __nccwpck_require__(83983) + const assert = __nccwpck_require__(39491) + const { isUint8Array } = __nccwpck_require__(29830) + + let supportedHashes = [] + + // https://nodejs.org/api/crypto.html#determining-if-crypto-support-is-unavailable + /** @type {import('crypto')|undefined} */ + let crypto - // 1. Assert: r’s url is a potentially trustworthy URL. - // TODO + try { + crypto = __nccwpck_require__(6113) + const possibleRelevantHashes = ['sha256', 'sha384', 'sha512'] + supportedHashes = crypto + .getHashes() + .filter(hash => possibleRelevantHashes.includes(hash)) + /* c8 ignore next 3 */ + } catch {} - // 2. Let header be a Structured Header whose value is a token. - let header = null + function responseURL(response) { + // https://fetch.spec.whatwg.org/#responses + // A response has an associated URL. It is a pointer to the last URL + // in response’s URL list and null if response’s URL list is empty. + const urlList = response.urlList + const length = urlList.length + return length === 0 ? null : urlList[length - 1].toString() + } - // 3. Set header’s value to r’s mode. - header = httpRequest.mode + // https://fetch.spec.whatwg.org/#concept-response-location-url + function responseLocationURL(response, requestFragment) { + // 1. If response’s status is not a redirect status, then return null. + if (!redirectStatusSet.has(response.status)) { + return null + } - // 4. Set a structured field value `Sec-Fetch-Mode`/header in r’s header list. - httpRequest.headersList.set('sec-fetch-mode', header) + // 2. Let location be the result of extracting header list values given + // `Location` and response’s header list. + let location = response.headersList.get('location') - // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-site-header - // TODO + // 3. If location is a header value, then set location to the result of + // parsing location with response’s URL. + if (location !== null && isValidHeaderValue(location)) { + location = new URL(location, responseURL(response)) + } - // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-user-header - // TODO -} + // 4. If location is a URL whose fragment is null, then set location’s + // fragment to requestFragment. + if (location && !location.hash) { + location.hash = requestFragment + } -// https://fetch.spec.whatwg.org/#append-a-request-origin-header -function appendRequestOriginHeader (request) { - // 1. Let serializedOrigin be the result of byte-serializing a request origin with request. - let serializedOrigin = request.origin + // 5. Return location. + return location + } - // 2. If request’s response tainting is "cors" or request’s mode is "websocket", then append (`Origin`, serializedOrigin) to request’s header list. - if (request.responseTainting === 'cors' || request.mode === 'websocket') { - if (serializedOrigin) { - request.headersList.append('origin', serializedOrigin) - } + /** @returns {URL} */ + function requestCurrentURL(request) { + return request.urlList[request.urlList.length - 1] + } - // 3. Otherwise, if request’s method is neither `GET` nor `HEAD`, then: - } else if (request.method !== 'GET' && request.method !== 'HEAD') { - // 1. Switch on request’s referrer policy: - switch (request.referrerPolicy) { - case 'no-referrer': - // Set serializedOrigin to `null`. - serializedOrigin = null - break - case 'no-referrer-when-downgrade': - case 'strict-origin': - case 'strict-origin-when-cross-origin': - // If request’s origin is a tuple origin, its scheme is "https", and request’s current URL’s scheme is not "https", then set serializedOrigin to `null`. - if (request.origin && urlHasHttpsScheme(request.origin) && !urlHasHttpsScheme(requestCurrentURL(request))) { - serializedOrigin = null - } - break - case 'same-origin': - // If request’s origin is not same origin with request’s current URL’s origin, then set serializedOrigin to `null`. - if (!sameOrigin(request, requestCurrentURL(request))) { - serializedOrigin = null - } - break - default: - // Do nothing. - } + function requestBadPort(request) { + // 1. Let url be request’s current URL. + const url = requestCurrentURL(request) - if (serializedOrigin) { - // 2. Append (`Origin`, serializedOrigin) to request’s header list. - request.headersList.append('origin', serializedOrigin) - } - } -} - -function coarsenedSharedCurrentTime (crossOriginIsolatedCapability) { - // TODO - return performance.now() -} - -// https://fetch.spec.whatwg.org/#create-an-opaque-timing-info -function createOpaqueTimingInfo (timingInfo) { - return { - startTime: timingInfo.startTime ?? 0, - redirectStartTime: 0, - redirectEndTime: 0, - postRedirectStartTime: timingInfo.startTime ?? 0, - finalServiceWorkerStartTime: 0, - finalNetworkResponseStartTime: 0, - finalNetworkRequestStartTime: 0, - endTime: 0, - encodedBodySize: 0, - decodedBodySize: 0, - finalConnectionTimingInfo: null - } -} + // 2. If url’s scheme is an HTTP(S) scheme and url’s port is a bad port, + // then return blocked. + if (urlIsHttpHttpsScheme(url) && badPortsSet.has(url.port)) { + return 'blocked' + } -// https://html.spec.whatwg.org/multipage/origin.html#policy-container -function makePolicyContainer () { - // Note: the fetch spec doesn't make use of embedder policy or CSP list - return { - referrerPolicy: 'strict-origin-when-cross-origin' - } -} + // 3. Return allowed. + return 'allowed' + } -// https://html.spec.whatwg.org/multipage/origin.html#clone-a-policy-container -function clonePolicyContainer (policyContainer) { - return { - referrerPolicy: policyContainer.referrerPolicy - } -} + function isErrorLike(object) { + return ( + object instanceof Error || + object?.constructor?.name === 'Error' || + object?.constructor?.name === 'DOMException' + ) + } -// https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer -function determineRequestsReferrer (request) { - // 1. Let policy be request's referrer policy. - const policy = request.referrerPolicy + // Check whether |statusText| is a ByteString and + // matches the Reason-Phrase token production. + // RFC 2616: https://tools.ietf.org/html/rfc2616 + // RFC 7230: https://tools.ietf.org/html/rfc7230 + // "reason-phrase = *( HTAB / SP / VCHAR / obs-text )" + // https://github.com/chromium/chromium/blob/94.0.4604.1/third_party/blink/renderer/core/fetch/response.cc#L116 + function isValidReasonPhrase(statusText) { + for (let i = 0; i < statusText.length; ++i) { + const c = statusText.charCodeAt(i) + if ( + !( + ( + c === 0x09 || // HTAB + (c >= 0x20 && c <= 0x7e) || // SP / VCHAR + (c >= 0x80 && c <= 0xff) + ) // obs-text + ) + ) { + return false + } + } + return true + } - // Note: policy cannot (shouldn't) be null or an empty string. - assert(policy) + /** + * @see https://tools.ietf.org/html/rfc7230#section-3.2.6 + * @param {number} c + */ + function isTokenCharCode(c) { + switch (c) { + case 0x22: + case 0x28: + case 0x29: + case 0x2c: + case 0x2f: + case 0x3a: + case 0x3b: + case 0x3c: + case 0x3d: + case 0x3e: + case 0x3f: + case 0x40: + case 0x5b: + case 0x5c: + case 0x5d: + case 0x7b: + case 0x7d: + // DQUOTE and "(),/:;<=>?@[\]{}" + return false + default: + // VCHAR %x21-7E + return c >= 0x21 && c <= 0x7e + } + } - // 2. Let environment be request’s client. + /** + * @param {string} characters + */ + function isValidHTTPToken(characters) { + if (characters.length === 0) { + return false + } + for (let i = 0; i < characters.length; ++i) { + if (!isTokenCharCode(characters.charCodeAt(i))) { + return false + } + } + return true + } - let referrerSource = null + /** + * @see https://fetch.spec.whatwg.org/#header-name + * @param {string} potentialValue + */ + function isValidHeaderName(potentialValue) { + return isValidHTTPToken(potentialValue) + } - // 3. Switch on request’s referrer: - if (request.referrer === 'client') { - // Note: node isn't a browser and doesn't implement document/iframes, - // so we bypass this step and replace it with our own. + /** + * @see https://fetch.spec.whatwg.org/#header-value + * @param {string} potentialValue + */ + function isValidHeaderValue(potentialValue) { + // - Has no leading or trailing HTTP tab or space bytes. + // - Contains no 0x00 (NUL) or HTTP newline bytes. + if ( + potentialValue.startsWith('\t') || + potentialValue.startsWith(' ') || + potentialValue.endsWith('\t') || + potentialValue.endsWith(' ') + ) { + return false + } - const globalOrigin = getGlobalOrigin() + if ( + potentialValue.includes('\0') || + potentialValue.includes('\r') || + potentialValue.includes('\n') + ) { + return false + } - if (!globalOrigin || globalOrigin.origin === 'null') { - return 'no-referrer' - } + return true + } - // note: we need to clone it as it's mutated - referrerSource = new URL(globalOrigin) - } else if (request.referrer instanceof URL) { - // Let referrerSource be request’s referrer. - referrerSource = request.referrer - } + // https://w3c.github.io/webappsec-referrer-policy/#set-requests-referrer-policy-on-redirect + function setRequestReferrerPolicyOnRedirect(request, actualResponse) { + // Given a request request and a response actualResponse, this algorithm + // updates request’s referrer policy according to the Referrer-Policy + // header (if any) in actualResponse. - // 4. Let request’s referrerURL be the result of stripping referrerSource for - // use as a referrer. - let referrerURL = stripURLForReferrer(referrerSource) + // 1. Let policy be the result of executing § 8.1 Parse a referrer policy + // from a Referrer-Policy header on actualResponse. - // 5. Let referrerOrigin be the result of stripping referrerSource for use as - // a referrer, with the origin-only flag set to true. - const referrerOrigin = stripURLForReferrer(referrerSource, true) + // 8.1 Parse a referrer policy from a Referrer-Policy header + // 1. Let policy-tokens be the result of extracting header list values given `Referrer-Policy` and response’s header list. + const { headersList } = actualResponse + // 2. Let policy be the empty string. + // 3. For each token in policy-tokens, if token is a referrer policy and token is not the empty string, then set policy to token. + // 4. Return policy. + const policyHeader = (headersList.get('referrer-policy') ?? '').split( + ',' + ) - // 6. If the result of serializing referrerURL is a string whose length is - // greater than 4096, set referrerURL to referrerOrigin. - if (referrerURL.toString().length > 4096) { - referrerURL = referrerOrigin - } + // Note: As the referrer-policy can contain multiple policies + // separated by comma, we need to loop through all of them + // and pick the first valid one. + // Ref: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy#specify_a_fallback_policy + let policy = '' + if (policyHeader.length > 0) { + // The right-most policy takes precedence. + // The left-most policy is the fallback. + for (let i = policyHeader.length; i !== 0; i--) { + const token = policyHeader[i - 1].trim() + if (referrerPolicyTokens.has(token)) { + policy = token + break + } + } + } - const areSameOrigin = sameOrigin(request, referrerURL) - const isNonPotentiallyTrustWorthy = isURLPotentiallyTrustworthy(referrerURL) && - !isURLPotentiallyTrustworthy(request.url) + // 2. If policy is not the empty string, then set request’s referrer policy to policy. + if (policy !== '') { + request.referrerPolicy = policy + } + } - // 8. Execute the switch statements corresponding to the value of policy: - switch (policy) { - case 'origin': return referrerOrigin != null ? referrerOrigin : stripURLForReferrer(referrerSource, true) - case 'unsafe-url': return referrerURL - case 'same-origin': - return areSameOrigin ? referrerOrigin : 'no-referrer' - case 'origin-when-cross-origin': - return areSameOrigin ? referrerURL : referrerOrigin - case 'strict-origin-when-cross-origin': { - const currentURL = requestCurrentURL(request) + // https://fetch.spec.whatwg.org/#cross-origin-resource-policy-check + function crossOriginResourcePolicyCheck() { + // TODO + return 'allowed' + } - // 1. If the origin of referrerURL and the origin of request’s current - // URL are the same, then return referrerURL. - if (sameOrigin(referrerURL, currentURL)) { - return referrerURL + // https://fetch.spec.whatwg.org/#concept-cors-check + function corsCheck() { + // TODO + return 'success' } - // 2. If referrerURL is a potentially trustworthy URL and request’s - // current URL is not a potentially trustworthy URL, then return no - // referrer. - if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) { - return 'no-referrer' + // https://fetch.spec.whatwg.org/#concept-tao-check + function TAOCheck() { + // TODO + return 'success' } - // 3. Return referrerOrigin. - return referrerOrigin - } - case 'strict-origin': // eslint-disable-line - /** - * 1. If referrerURL is a potentially trustworthy URL and - * request’s current URL is not a potentially trustworthy URL, - * then return no referrer. - * 2. Return referrerOrigin - */ - case 'no-referrer-when-downgrade': // eslint-disable-line - /** - * 1. If referrerURL is a potentially trustworthy URL and - * request’s current URL is not a potentially trustworthy URL, - * then return no referrer. - * 2. Return referrerOrigin - */ + function appendFetchMetadata(httpRequest) { + // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-dest-header + // TODO - default: // eslint-disable-line - return isNonPotentiallyTrustWorthy ? 'no-referrer' : referrerOrigin - } -} + // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-mode-header -/** - * @see https://w3c.github.io/webappsec-referrer-policy/#strip-url - * @param {URL} url - * @param {boolean|undefined} originOnly - */ -function stripURLForReferrer (url, originOnly) { - // 1. Assert: url is a URL. - assert(url instanceof URL) + // 1. Assert: r’s url is a potentially trustworthy URL. + // TODO - // 2. If url’s scheme is a local scheme, then return no referrer. - if (url.protocol === 'file:' || url.protocol === 'about:' || url.protocol === 'blank:') { - return 'no-referrer' - } + // 2. Let header be a Structured Header whose value is a token. + let header = null - // 3. Set url’s username to the empty string. - url.username = '' + // 3. Set header’s value to r’s mode. + header = httpRequest.mode - // 4. Set url’s password to the empty string. - url.password = '' + // 4. Set a structured field value `Sec-Fetch-Mode`/header in r’s header list. + httpRequest.headersList.set('sec-fetch-mode', header) - // 5. Set url’s fragment to null. - url.hash = '' + // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-site-header + // TODO - // 6. If the origin-only flag is true, then: - if (originOnly) { - // 1. Set url’s path to « the empty string ». - url.pathname = '' + // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-user-header + // TODO + } - // 2. Set url’s query to null. - url.search = '' - } + // https://fetch.spec.whatwg.org/#append-a-request-origin-header + function appendRequestOriginHeader(request) { + // 1. Let serializedOrigin be the result of byte-serializing a request origin with request. + let serializedOrigin = request.origin - // 7. Return url. - return url -} + // 2. If request’s response tainting is "cors" or request’s mode is "websocket", then append (`Origin`, serializedOrigin) to request’s header list. + if ( + request.responseTainting === 'cors' || + request.mode === 'websocket' + ) { + if (serializedOrigin) { + request.headersList.append('origin', serializedOrigin) + } -function isURLPotentiallyTrustworthy (url) { - if (!(url instanceof URL)) { - return false - } + // 3. Otherwise, if request’s method is neither `GET` nor `HEAD`, then: + } else if (request.method !== 'GET' && request.method !== 'HEAD') { + // 1. Switch on request’s referrer policy: + switch (request.referrerPolicy) { + case 'no-referrer': + // Set serializedOrigin to `null`. + serializedOrigin = null + break + case 'no-referrer-when-downgrade': + case 'strict-origin': + case 'strict-origin-when-cross-origin': + // If request’s origin is a tuple origin, its scheme is "https", and request’s current URL’s scheme is not "https", then set serializedOrigin to `null`. + if ( + request.origin && + urlHasHttpsScheme(request.origin) && + !urlHasHttpsScheme(requestCurrentURL(request)) + ) { + serializedOrigin = null + } + break + case 'same-origin': + // If request’s origin is not same origin with request’s current URL’s origin, then set serializedOrigin to `null`. + if (!sameOrigin(request, requestCurrentURL(request))) { + serializedOrigin = null + } + break + default: + // Do nothing. + } - // If child of about, return true - if (url.href === 'about:blank' || url.href === 'about:srcdoc') { - return true - } + if (serializedOrigin) { + // 2. Append (`Origin`, serializedOrigin) to request’s header list. + request.headersList.append('origin', serializedOrigin) + } + } + } + + function coarsenedSharedCurrentTime(crossOriginIsolatedCapability) { + // TODO + return performance.now() + } + + // https://fetch.spec.whatwg.org/#create-an-opaque-timing-info + function createOpaqueTimingInfo(timingInfo) { + return { + startTime: timingInfo.startTime ?? 0, + redirectStartTime: 0, + redirectEndTime: 0, + postRedirectStartTime: timingInfo.startTime ?? 0, + finalServiceWorkerStartTime: 0, + finalNetworkResponseStartTime: 0, + finalNetworkRequestStartTime: 0, + endTime: 0, + encodedBodySize: 0, + decodedBodySize: 0, + finalConnectionTimingInfo: null + } + } + + // https://html.spec.whatwg.org/multipage/origin.html#policy-container + function makePolicyContainer() { + // Note: the fetch spec doesn't make use of embedder policy or CSP list + return { + referrerPolicy: 'strict-origin-when-cross-origin' + } + } - // If scheme is data, return true - if (url.protocol === 'data:') return true + // https://html.spec.whatwg.org/multipage/origin.html#clone-a-policy-container + function clonePolicyContainer(policyContainer) { + return { + referrerPolicy: policyContainer.referrerPolicy + } + } - // If file, return true - if (url.protocol === 'file:') return true + // https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer + function determineRequestsReferrer(request) { + // 1. Let policy be request's referrer policy. + const policy = request.referrerPolicy - return isOriginPotentiallyTrustworthy(url.origin) + // Note: policy cannot (shouldn't) be null or an empty string. + assert(policy) - function isOriginPotentiallyTrustworthy (origin) { - // If origin is explicitly null, return false - if (origin == null || origin === 'null') return false + // 2. Let environment be request’s client. - const originAsURL = new URL(origin) + let referrerSource = null - // If secure, return true - if (originAsURL.protocol === 'https:' || originAsURL.protocol === 'wss:') { - return true - } + // 3. Switch on request’s referrer: + if (request.referrer === 'client') { + // Note: node isn't a browser and doesn't implement document/iframes, + // so we bypass this step and replace it with our own. - // If localhost or variants, return true - if (/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(originAsURL.hostname) || - (originAsURL.hostname === 'localhost' || originAsURL.hostname.includes('localhost.')) || - (originAsURL.hostname.endsWith('.localhost'))) { - return true - } + const globalOrigin = getGlobalOrigin() - // If any other, return false - return false - } -} + if (!globalOrigin || globalOrigin.origin === 'null') { + return 'no-referrer' + } -/** - * @see https://w3c.github.io/webappsec-subresource-integrity/#does-response-match-metadatalist - * @param {Uint8Array} bytes - * @param {string} metadataList - */ -function bytesMatch (bytes, metadataList) { - // If node is not built with OpenSSL support, we cannot check - // a request's integrity, so allow it by default (the spec will - // allow requests if an invalid hash is given, as precedence). - /* istanbul ignore if: only if node is built with --without-ssl */ - if (crypto === undefined) { - return true - } + // note: we need to clone it as it's mutated + referrerSource = new URL(globalOrigin) + } else if (request.referrer instanceof URL) { + // Let referrerSource be request’s referrer. + referrerSource = request.referrer + } + + // 4. Let request’s referrerURL be the result of stripping referrerSource for + // use as a referrer. + let referrerURL = stripURLForReferrer(referrerSource) + + // 5. Let referrerOrigin be the result of stripping referrerSource for use as + // a referrer, with the origin-only flag set to true. + const referrerOrigin = stripURLForReferrer(referrerSource, true) + + // 6. If the result of serializing referrerURL is a string whose length is + // greater than 4096, set referrerURL to referrerOrigin. + if (referrerURL.toString().length > 4096) { + referrerURL = referrerOrigin + } + + const areSameOrigin = sameOrigin(request, referrerURL) + const isNonPotentiallyTrustWorthy = + isURLPotentiallyTrustworthy(referrerURL) && + !isURLPotentiallyTrustworthy(request.url) + + // 8. Execute the switch statements corresponding to the value of policy: + switch (policy) { + case 'origin': + return referrerOrigin != null + ? referrerOrigin + : stripURLForReferrer(referrerSource, true) + case 'unsafe-url': + return referrerURL + case 'same-origin': + return areSameOrigin ? referrerOrigin : 'no-referrer' + case 'origin-when-cross-origin': + return areSameOrigin ? referrerURL : referrerOrigin + case 'strict-origin-when-cross-origin': { + const currentURL = requestCurrentURL(request) + + // 1. If the origin of referrerURL and the origin of request’s current + // URL are the same, then return referrerURL. + if (sameOrigin(referrerURL, currentURL)) { + return referrerURL + } - // 1. Let parsedMetadata be the result of parsing metadataList. - const parsedMetadata = parseMetadata(metadataList) + // 2. If referrerURL is a potentially trustworthy URL and request’s + // current URL is not a potentially trustworthy URL, then return no + // referrer. + if ( + isURLPotentiallyTrustworthy(referrerURL) && + !isURLPotentiallyTrustworthy(currentURL) + ) { + return 'no-referrer' + } - // 2. If parsedMetadata is no metadata, return true. - if (parsedMetadata === 'no metadata') { - return true - } + // 3. Return referrerOrigin. + return referrerOrigin + } + case 'strict-origin': // eslint-disable-line + /** + * 1. If referrerURL is a potentially trustworthy URL and + * request’s current URL is not a potentially trustworthy URL, + * then return no referrer. + * 2. Return referrerOrigin + */ + case 'no-referrer-when-downgrade': // eslint-disable-line + /** + * 1. If referrerURL is a potentially trustworthy URL and + * request’s current URL is not a potentially trustworthy URL, + * then return no referrer. + * 2. Return referrerOrigin + */ + + default: // eslint-disable-line + return isNonPotentiallyTrustWorthy ? 'no-referrer' : referrerOrigin + } + } - // 3. If response is not eligible for integrity validation, return false. - // TODO + /** + * @see https://w3c.github.io/webappsec-referrer-policy/#strip-url + * @param {URL} url + * @param {boolean|undefined} originOnly + */ + function stripURLForReferrer(url, originOnly) { + // 1. Assert: url is a URL. + assert(url instanceof URL) - // 4. If parsedMetadata is the empty set, return true. - if (parsedMetadata.length === 0) { - return true - } + // 2. If url’s scheme is a local scheme, then return no referrer. + if ( + url.protocol === 'file:' || + url.protocol === 'about:' || + url.protocol === 'blank:' + ) { + return 'no-referrer' + } - // 5. Let metadata be the result of getting the strongest - // metadata from parsedMetadata. - const strongest = getStrongestMetadata(parsedMetadata) - const metadata = filterMetadataListByAlgorithm(parsedMetadata, strongest) + // 3. Set url’s username to the empty string. + url.username = '' - // 6. For each item in metadata: - for (const item of metadata) { - // 1. Let algorithm be the alg component of item. - const algorithm = item.algo + // 4. Set url’s password to the empty string. + url.password = '' - // 2. Let expectedValue be the val component of item. - const expectedValue = item.hash + // 5. Set url’s fragment to null. + url.hash = '' - // See https://github.com/web-platform-tests/wpt/commit/e4c5cc7a5e48093220528dfdd1c4012dc3837a0e - // "be liberal with padding". This is annoying, and it's not even in the spec. + // 6. If the origin-only flag is true, then: + if (originOnly) { + // 1. Set url’s path to « the empty string ». + url.pathname = '' - // 3. Let actualValue be the result of applying algorithm to bytes. - let actualValue = crypto.createHash(algorithm).update(bytes).digest('base64') + // 2. Set url’s query to null. + url.search = '' + } - if (actualValue[actualValue.length - 1] === '=') { - if (actualValue[actualValue.length - 2] === '=') { - actualValue = actualValue.slice(0, -2) - } else { - actualValue = actualValue.slice(0, -1) + // 7. Return url. + return url } - } - // 4. If actualValue is a case-sensitive match for expectedValue, - // return true. - if (compareBase64Mixed(actualValue, expectedValue)) { - return true - } - } + function isURLPotentiallyTrustworthy(url) { + if (!(url instanceof URL)) { + return false + } - // 7. Return false. - return false -} + // If child of about, return true + if (url.href === 'about:blank' || url.href === 'about:srcdoc') { + return true + } -// https://w3c.github.io/webappsec-subresource-integrity/#grammardef-hash-with-options -// https://www.w3.org/TR/CSP2/#source-list-syntax -// https://www.rfc-editor.org/rfc/rfc5234#appendix-B.1 -const parseHashWithOptions = /(?sha256|sha384|sha512)-((?[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\s|$)( +[!-~]*)?)?/i + // If scheme is data, return true + if (url.protocol === 'data:') return true -/** - * @see https://w3c.github.io/webappsec-subresource-integrity/#parse-metadata - * @param {string} metadata - */ -function parseMetadata (metadata) { - // 1. Let result be the empty set. - /** @type {{ algo: string, hash: string }[]} */ - const result = [] - - // 2. Let empty be equal to true. - let empty = true - - // 3. For each token returned by splitting metadata on spaces: - for (const token of metadata.split(' ')) { - // 1. Set empty to false. - empty = false - - // 2. Parse token as a hash-with-options. - const parsedToken = parseHashWithOptions.exec(token) - - // 3. If token does not parse, continue to the next token. - if ( - parsedToken === null || - parsedToken.groups === undefined || - parsedToken.groups.algo === undefined - ) { - // Note: Chromium blocks the request at this point, but Firefox - // gives a warning that an invalid integrity was given. The - // correct behavior is to ignore these, and subsequently not - // check the integrity of the resource. - continue - } + // If file, return true + if (url.protocol === 'file:') return true - // 4. Let algorithm be the hash-algo component of token. - const algorithm = parsedToken.groups.algo.toLowerCase() + return isOriginPotentiallyTrustworthy(url.origin) - // 5. If algorithm is a hash function recognized by the user - // agent, add the parsed token to result. - if (supportedHashes.includes(algorithm)) { - result.push(parsedToken.groups) - } - } + function isOriginPotentiallyTrustworthy(origin) { + // If origin is explicitly null, return false + if (origin == null || origin === 'null') return false - // 4. Return no metadata if empty is true, otherwise return result. - if (empty === true) { - return 'no metadata' - } + const originAsURL = new URL(origin) - return result -} + // If secure, return true + if ( + originAsURL.protocol === 'https:' || + originAsURL.protocol === 'wss:' + ) { + return true + } -/** - * @param {{ algo: 'sha256' | 'sha384' | 'sha512' }[]} metadataList - */ -function getStrongestMetadata (metadataList) { - // Let algorithm be the algo component of the first item in metadataList. - // Can be sha256 - let algorithm = metadataList[0].algo - // If the algorithm is sha512, then it is the strongest - // and we can return immediately - if (algorithm[3] === '5') { - return algorithm - } + // If localhost or variants, return true + if ( + /^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test( + originAsURL.hostname + ) || + originAsURL.hostname === 'localhost' || + originAsURL.hostname.includes('localhost.') || + originAsURL.hostname.endsWith('.localhost') + ) { + return true + } - for (let i = 1; i < metadataList.length; ++i) { - const metadata = metadataList[i] - // If the algorithm is sha512, then it is the strongest - // and we can break the loop immediately - if (metadata.algo[3] === '5') { - algorithm = 'sha512' - break - // If the algorithm is sha384, then a potential sha256 or sha384 is ignored - } else if (algorithm[3] === '3') { - continue - // algorithm is sha256, check if algorithm is sha384 and if so, set it as - // the strongest - } else if (metadata.algo[3] === '3') { - algorithm = 'sha384' - } - } - return algorithm -} + // If any other, return false + return false + } + } -function filterMetadataListByAlgorithm (metadataList, algorithm) { - if (metadataList.length === 1) { - return metadataList - } + /** + * @see https://w3c.github.io/webappsec-subresource-integrity/#does-response-match-metadatalist + * @param {Uint8Array} bytes + * @param {string} metadataList + */ + function bytesMatch(bytes, metadataList) { + // If node is not built with OpenSSL support, we cannot check + // a request's integrity, so allow it by default (the spec will + // allow requests if an invalid hash is given, as precedence). + /* istanbul ignore if: only if node is built with --without-ssl */ + if (crypto === undefined) { + return true + } - let pos = 0 - for (let i = 0; i < metadataList.length; ++i) { - if (metadataList[i].algo === algorithm) { - metadataList[pos++] = metadataList[i] - } - } + // 1. Let parsedMetadata be the result of parsing metadataList. + const parsedMetadata = parseMetadata(metadataList) - metadataList.length = pos + // 2. If parsedMetadata is no metadata, return true. + if (parsedMetadata === 'no metadata') { + return true + } - return metadataList -} + // 3. If response is not eligible for integrity validation, return false. + // TODO -/** - * Compares two base64 strings, allowing for base64url - * in the second string. - * -* @param {string} actualValue always base64 - * @param {string} expectedValue base64 or base64url - * @returns {boolean} - */ -function compareBase64Mixed (actualValue, expectedValue) { - if (actualValue.length !== expectedValue.length) { - return false - } - for (let i = 0; i < actualValue.length; ++i) { - if (actualValue[i] !== expectedValue[i]) { - if ( - (actualValue[i] === '+' && expectedValue[i] === '-') || - (actualValue[i] === '/' && expectedValue[i] === '_') - ) { - continue - } - return false - } - } + // 4. If parsedMetadata is the empty set, return true. + if (parsedMetadata.length === 0) { + return true + } - return true -} + // 5. Let metadata be the result of getting the strongest + // metadata from parsedMetadata. + const strongest = getStrongestMetadata(parsedMetadata) + const metadata = filterMetadataListByAlgorithm( + parsedMetadata, + strongest + ) -// https://w3c.github.io/webappsec-upgrade-insecure-requests/#upgrade-request -function tryUpgradeRequestToAPotentiallyTrustworthyURL (request) { - // TODO -} + // 6. For each item in metadata: + for (const item of metadata) { + // 1. Let algorithm be the alg component of item. + const algorithm = item.algo -/** - * @link {https://html.spec.whatwg.org/multipage/origin.html#same-origin} - * @param {URL} A - * @param {URL} B - */ -function sameOrigin (A, B) { - // 1. If A and B are the same opaque origin, then return true. - if (A.origin === B.origin && A.origin === 'null') { - return true - } + // 2. Let expectedValue be the val component of item. + const expectedValue = item.hash - // 2. If A and B are both tuple origins and their schemes, - // hosts, and port are identical, then return true. - if (A.protocol === B.protocol && A.hostname === B.hostname && A.port === B.port) { - return true - } + // See https://github.com/web-platform-tests/wpt/commit/e4c5cc7a5e48093220528dfdd1c4012dc3837a0e + // "be liberal with padding". This is annoying, and it's not even in the spec. - // 3. Return false. - return false -} - -function createDeferredPromise () { - let res - let rej - const promise = new Promise((resolve, reject) => { - res = resolve - rej = reject - }) - - return { promise, resolve: res, reject: rej } -} - -function isAborted (fetchParams) { - return fetchParams.controller.state === 'aborted' -} - -function isCancelled (fetchParams) { - return fetchParams.controller.state === 'aborted' || - fetchParams.controller.state === 'terminated' -} - -const normalizeMethodRecord = { - delete: 'DELETE', - DELETE: 'DELETE', - get: 'GET', - GET: 'GET', - head: 'HEAD', - HEAD: 'HEAD', - options: 'OPTIONS', - OPTIONS: 'OPTIONS', - post: 'POST', - POST: 'POST', - put: 'PUT', - PUT: 'PUT' -} - -// Note: object prototypes should not be able to be referenced. e.g. `Object#hasOwnProperty`. -Object.setPrototypeOf(normalizeMethodRecord, null) - -/** - * @see https://fetch.spec.whatwg.org/#concept-method-normalize - * @param {string} method - */ -function normalizeMethod (method) { - return normalizeMethodRecord[method.toLowerCase()] ?? method -} - -// https://infra.spec.whatwg.org/#serialize-a-javascript-value-to-a-json-string -function serializeJavascriptValueToJSONString (value) { - // 1. Let result be ? Call(%JSON.stringify%, undefined, « value »). - const result = JSON.stringify(value) - - // 2. If result is undefined, then throw a TypeError. - if (result === undefined) { - throw new TypeError('Value is not JSON serializable') - } + // 3. Let actualValue be the result of applying algorithm to bytes. + let actualValue = crypto + .createHash(algorithm) + .update(bytes) + .digest('base64') - // 3. Assert: result is a string. - assert(typeof result === 'string') + if (actualValue[actualValue.length - 1] === '=') { + if (actualValue[actualValue.length - 2] === '=') { + actualValue = actualValue.slice(0, -2) + } else { + actualValue = actualValue.slice(0, -1) + } + } - // 4. Return result. - return result -} + // 4. If actualValue is a case-sensitive match for expectedValue, + // return true. + if (compareBase64Mixed(actualValue, expectedValue)) { + return true + } + } -// https://tc39.es/ecma262/#sec-%25iteratorprototype%25-object -const esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())) + // 7. Return false. + return false + } -/** - * @see https://webidl.spec.whatwg.org/#dfn-iterator-prototype-object - * @param {() => unknown[]} iterator - * @param {string} name name of the instance - * @param {'key'|'value'|'key+value'} kind - */ -function makeIterator (iterator, name, kind) { - const object = { - index: 0, - kind, - target: iterator - } + // https://w3c.github.io/webappsec-subresource-integrity/#grammardef-hash-with-options + // https://www.w3.org/TR/CSP2/#source-list-syntax + // https://www.rfc-editor.org/rfc/rfc5234#appendix-B.1 + const parseHashWithOptions = + /(?sha256|sha384|sha512)-((?[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\s|$)( +[!-~]*)?)?/i - const i = { - next () { - // 1. Let interface be the interface for which the iterator prototype object exists. + /** + * @see https://w3c.github.io/webappsec-subresource-integrity/#parse-metadata + * @param {string} metadata + */ + function parseMetadata(metadata) { + // 1. Let result be the empty set. + /** @type {{ algo: string, hash: string }[]} */ + const result = [] - // 2. Let thisValue be the this value. + // 2. Let empty be equal to true. + let empty = true - // 3. Let object be ? ToObject(thisValue). + // 3. For each token returned by splitting metadata on spaces: + for (const token of metadata.split(' ')) { + // 1. Set empty to false. + empty = false - // 4. If object is a platform object, then perform a security - // check, passing: + // 2. Parse token as a hash-with-options. + const parsedToken = parseHashWithOptions.exec(token) - // 5. If object is not a default iterator object for interface, - // then throw a TypeError. - if (Object.getPrototypeOf(this) !== i) { - throw new TypeError( - `'next' called on an object that does not implement interface ${name} Iterator.` - ) - } + // 3. If token does not parse, continue to the next token. + if ( + parsedToken === null || + parsedToken.groups === undefined || + parsedToken.groups.algo === undefined + ) { + // Note: Chromium blocks the request at this point, but Firefox + // gives a warning that an invalid integrity was given. The + // correct behavior is to ignore these, and subsequently not + // check the integrity of the resource. + continue + } + + // 4. Let algorithm be the hash-algo component of token. + const algorithm = parsedToken.groups.algo.toLowerCase() - // 6. Let index be object’s index. - // 7. Let kind be object’s kind. - // 8. Let values be object’s target's value pairs to iterate over. - const { index, kind, target } = object - const values = target() + // 5. If algorithm is a hash function recognized by the user + // agent, add the parsed token to result. + if (supportedHashes.includes(algorithm)) { + result.push(parsedToken.groups) + } + } - // 9. Let len be the length of values. - const len = values.length + // 4. Return no metadata if empty is true, otherwise return result. + if (empty === true) { + return 'no metadata' + } - // 10. If index is greater than or equal to len, then return - // CreateIterResultObject(undefined, true). - if (index >= len) { - return { value: undefined, done: true } + return result } - // 11. Let pair be the entry in values at index index. - const pair = values[index] + /** + * @param {{ algo: 'sha256' | 'sha384' | 'sha512' }[]} metadataList + */ + function getStrongestMetadata(metadataList) { + // Let algorithm be the algo component of the first item in metadataList. + // Can be sha256 + let algorithm = metadataList[0].algo + // If the algorithm is sha512, then it is the strongest + // and we can return immediately + if (algorithm[3] === '5') { + return algorithm + } + + for (let i = 1; i < metadataList.length; ++i) { + const metadata = metadataList[i] + // If the algorithm is sha512, then it is the strongest + // and we can break the loop immediately + if (metadata.algo[3] === '5') { + algorithm = 'sha512' + break + // If the algorithm is sha384, then a potential sha256 or sha384 is ignored + } else if (algorithm[3] === '3') { + continue + // algorithm is sha256, check if algorithm is sha384 and if so, set it as + // the strongest + } else if (metadata.algo[3] === '3') { + algorithm = 'sha384' + } + } + return algorithm + } - // 12. Set object’s index to index + 1. - object.index = index + 1 + function filterMetadataListByAlgorithm(metadataList, algorithm) { + if (metadataList.length === 1) { + return metadataList + } - // 13. Return the iterator result for pair and kind. - return iteratorResult(pair, kind) - }, - // The class string of an iterator prototype object for a given interface is the - // result of concatenating the identifier of the interface and the string " Iterator". - [Symbol.toStringTag]: `${name} Iterator` - } + let pos = 0 + for (let i = 0; i < metadataList.length; ++i) { + if (metadataList[i].algo === algorithm) { + metadataList[pos++] = metadataList[i] + } + } - // The [[Prototype]] internal slot of an iterator prototype object must be %IteratorPrototype%. - Object.setPrototypeOf(i, esIteratorPrototype) - // esIteratorPrototype needs to be the prototype of i - // which is the prototype of an empty object. Yes, it's confusing. - return Object.setPrototypeOf({}, i) -} - -// https://webidl.spec.whatwg.org/#iterator-result -function iteratorResult (pair, kind) { - let result - - // 1. Let result be a value determined by the value of kind: - switch (kind) { - case 'key': { - // 1. Let idlKey be pair’s key. - // 2. Let key be the result of converting idlKey to an - // ECMAScript value. - // 3. result is key. - result = pair[0] - break - } - case 'value': { - // 1. Let idlValue be pair’s value. - // 2. Let value be the result of converting idlValue to - // an ECMAScript value. - // 3. result is value. - result = pair[1] - break - } - case 'key+value': { - // 1. Let idlKey be pair’s key. - // 2. Let idlValue be pair’s value. - // 3. Let key be the result of converting idlKey to an - // ECMAScript value. - // 4. Let value be the result of converting idlValue to - // an ECMAScript value. - // 5. Let array be ! ArrayCreate(2). - // 6. Call ! CreateDataProperty(array, "0", key). - // 7. Call ! CreateDataProperty(array, "1", value). - // 8. result is array. - result = pair - break - } - } + metadataList.length = pos - // 2. Return CreateIterResultObject(result, false). - return { value: result, done: false } -} + return metadataList + } -/** - * @see https://fetch.spec.whatwg.org/#body-fully-read - */ -async function fullyReadBody (body, processBody, processBodyError) { - // 1. If taskDestination is null, then set taskDestination to - // the result of starting a new parallel queue. - - // 2. Let successSteps given a byte sequence bytes be to queue a - // fetch task to run processBody given bytes, with taskDestination. - const successSteps = processBody - - // 3. Let errorSteps be to queue a fetch task to run processBodyError, - // with taskDestination. - const errorSteps = processBodyError - - // 4. Let reader be the result of getting a reader for body’s stream. - // If that threw an exception, then run errorSteps with that - // exception and return. - let reader - - try { - reader = body.stream.getReader() - } catch (e) { - errorSteps(e) - return - } + /** + * Compares two base64 strings, allowing for base64url + * in the second string. + * + * @param {string} actualValue always base64 + * @param {string} expectedValue base64 or base64url + * @returns {boolean} + */ + function compareBase64Mixed(actualValue, expectedValue) { + if (actualValue.length !== expectedValue.length) { + return false + } + for (let i = 0; i < actualValue.length; ++i) { + if (actualValue[i] !== expectedValue[i]) { + if ( + (actualValue[i] === '+' && expectedValue[i] === '-') || + (actualValue[i] === '/' && expectedValue[i] === '_') + ) { + continue + } + return false + } + } - // 5. Read all bytes from reader, given successSteps and errorSteps. - try { - const result = await readAllBytes(reader) - successSteps(result) - } catch (e) { - errorSteps(e) - } -} + return true + } -/** @type {ReadableStream} */ -let ReadableStream = globalThis.ReadableStream + // https://w3c.github.io/webappsec-upgrade-insecure-requests/#upgrade-request + function tryUpgradeRequestToAPotentiallyTrustworthyURL(request) { + // TODO + } -function isReadableStreamLike (stream) { - if (!ReadableStream) { - ReadableStream = (__nccwpck_require__(35356).ReadableStream) - } + /** + * @link {https://html.spec.whatwg.org/multipage/origin.html#same-origin} + * @param {URL} A + * @param {URL} B + */ + function sameOrigin(A, B) { + // 1. If A and B are the same opaque origin, then return true. + if (A.origin === B.origin && A.origin === 'null') { + return true + } - return stream instanceof ReadableStream || ( - stream[Symbol.toStringTag] === 'ReadableStream' && - typeof stream.tee === 'function' - ) -} + // 2. If A and B are both tuple origins and their schemes, + // hosts, and port are identical, then return true. + if ( + A.protocol === B.protocol && + A.hostname === B.hostname && + A.port === B.port + ) { + return true + } -const MAXIMUM_ARGUMENT_LENGTH = 65535 + // 3. Return false. + return false + } -/** - * @see https://infra.spec.whatwg.org/#isomorphic-decode - * @param {number[]|Uint8Array} input - */ -function isomorphicDecode (input) { - // 1. To isomorphic decode a byte sequence input, return a string whose code point - // length is equal to input’s length and whose code points have the same values - // as the values of input’s bytes, in the same order. + function createDeferredPromise() { + let res + let rej + const promise = new Promise((resolve, reject) => { + res = resolve + rej = reject + }) - if (input.length < MAXIMUM_ARGUMENT_LENGTH) { - return String.fromCharCode(...input) - } + return { promise, resolve: res, reject: rej } + } - return input.reduce((previous, current) => previous + String.fromCharCode(current), '') -} + function isAborted(fetchParams) { + return fetchParams.controller.state === 'aborted' + } -/** - * @param {ReadableStreamController} controller - */ -function readableStreamClose (controller) { - try { - controller.close() - } catch (err) { - // TODO: add comment explaining why this error occurs. - if (!err.message.includes('Controller is already closed')) { - throw err - } - } -} + function isCancelled(fetchParams) { + return ( + fetchParams.controller.state === 'aborted' || + fetchParams.controller.state === 'terminated' + ) + } -/** - * @see https://infra.spec.whatwg.org/#isomorphic-encode - * @param {string} input - */ -function isomorphicEncode (input) { - // 1. Assert: input contains no code points greater than U+00FF. - for (let i = 0; i < input.length; i++) { - assert(input.charCodeAt(i) <= 0xFF) - } + const normalizeMethodRecord = { + delete: 'DELETE', + DELETE: 'DELETE', + get: 'GET', + GET: 'GET', + head: 'HEAD', + HEAD: 'HEAD', + options: 'OPTIONS', + OPTIONS: 'OPTIONS', + post: 'POST', + POST: 'POST', + put: 'PUT', + PUT: 'PUT' + } - // 2. Return a byte sequence whose length is equal to input’s code - // point length and whose bytes have the same values as the - // values of input’s code points, in the same order - return input -} + // Note: object prototypes should not be able to be referenced. e.g. `Object#hasOwnProperty`. + Object.setPrototypeOf(normalizeMethodRecord, null) -/** - * @see https://streams.spec.whatwg.org/#readablestreamdefaultreader-read-all-bytes - * @see https://streams.spec.whatwg.org/#read-loop - * @param {ReadableStreamDefaultReader} reader - */ -async function readAllBytes (reader) { - const bytes = [] - let byteLength = 0 + /** + * @see https://fetch.spec.whatwg.org/#concept-method-normalize + * @param {string} method + */ + function normalizeMethod(method) { + return normalizeMethodRecord[method.toLowerCase()] ?? method + } - while (true) { - const { done, value: chunk } = await reader.read() + // https://infra.spec.whatwg.org/#serialize-a-javascript-value-to-a-json-string + function serializeJavascriptValueToJSONString(value) { + // 1. Let result be ? Call(%JSON.stringify%, undefined, « value »). + const result = JSON.stringify(value) - if (done) { - // 1. Call successSteps with bytes. - return Buffer.concat(bytes, byteLength) - } + // 2. If result is undefined, then throw a TypeError. + if (result === undefined) { + throw new TypeError('Value is not JSON serializable') + } - // 1. If chunk is not a Uint8Array object, call failureSteps - // with a TypeError and abort these steps. - if (!isUint8Array(chunk)) { - throw new TypeError('Received non-Uint8Array chunk') - } + // 3. Assert: result is a string. + assert(typeof result === 'string') - // 2. Append the bytes represented by chunk to bytes. - bytes.push(chunk) - byteLength += chunk.length + // 4. Return result. + return result + } - // 3. Read-loop given reader, bytes, successSteps, and failureSteps. - } -} + // https://tc39.es/ecma262/#sec-%25iteratorprototype%25-object + const esIteratorPrototype = Object.getPrototypeOf( + Object.getPrototypeOf([][Symbol.iterator]()) + ) -/** - * @see https://fetch.spec.whatwg.org/#is-local - * @param {URL} url - */ -function urlIsLocal (url) { - assert('protocol' in url) // ensure it's a url object + /** + * @see https://webidl.spec.whatwg.org/#dfn-iterator-prototype-object + * @param {() => unknown[]} iterator + * @param {string} name name of the instance + * @param {'key'|'value'|'key+value'} kind + */ + function makeIterator(iterator, name, kind) { + const object = { + index: 0, + kind, + target: iterator + } - const protocol = url.protocol + const i = { + next() { + // 1. Let interface be the interface for which the iterator prototype object exists. - return protocol === 'about:' || protocol === 'blob:' || protocol === 'data:' -} + // 2. Let thisValue be the this value. -/** - * @param {string|URL} url - */ -function urlHasHttpsScheme (url) { - if (typeof url === 'string') { - return url.startsWith('https:') - } + // 3. Let object be ? ToObject(thisValue). - return url.protocol === 'https:' -} + // 4. If object is a platform object, then perform a security + // check, passing: -/** - * @see https://fetch.spec.whatwg.org/#http-scheme - * @param {URL} url - */ -function urlIsHttpHttpsScheme (url) { - assert('protocol' in url) // ensure it's a url object + // 5. If object is not a default iterator object for interface, + // then throw a TypeError. + if (Object.getPrototypeOf(this) !== i) { + throw new TypeError( + `'next' called on an object that does not implement interface ${name} Iterator.` + ) + } - const protocol = url.protocol + // 6. Let index be object’s index. + // 7. Let kind be object’s kind. + // 8. Let values be object’s target's value pairs to iterate over. + const { index, kind, target } = object + const values = target() - return protocol === 'http:' || protocol === 'https:' -} + // 9. Let len be the length of values. + const len = values.length -/** - * Fetch supports node >= 16.8.0, but Object.hasOwn was added in v16.9.0. - */ -const hasOwn = Object.hasOwn || ((dict, key) => Object.prototype.hasOwnProperty.call(dict, key)) - -module.exports = { - isAborted, - isCancelled, - createDeferredPromise, - ReadableStreamFrom, - toUSVString, - tryUpgradeRequestToAPotentiallyTrustworthyURL, - coarsenedSharedCurrentTime, - determineRequestsReferrer, - makePolicyContainer, - clonePolicyContainer, - appendFetchMetadata, - appendRequestOriginHeader, - TAOCheck, - corsCheck, - crossOriginResourcePolicyCheck, - createOpaqueTimingInfo, - setRequestReferrerPolicyOnRedirect, - isValidHTTPToken, - requestBadPort, - requestCurrentURL, - responseURL, - responseLocationURL, - isBlobLike, - isURLPotentiallyTrustworthy, - isValidReasonPhrase, - sameOrigin, - normalizeMethod, - serializeJavascriptValueToJSONString, - makeIterator, - isValidHeaderName, - isValidHeaderValue, - hasOwn, - isErrorLike, - fullyReadBody, - bytesMatch, - isReadableStreamLike, - readableStreamClose, - isomorphicEncode, - isomorphicDecode, - urlIsLocal, - urlHasHttpsScheme, - urlIsHttpHttpsScheme, - readAllBytes, - normalizeMethodRecord, - parseMetadata -} - - -/***/ }), - -/***/ 21744: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - - -const { types } = __nccwpck_require__(73837) -const { hasOwn, toUSVString } = __nccwpck_require__(52538) - -/** @type {import('../../types/webidl').Webidl} */ -const webidl = {} -webidl.converters = {} -webidl.util = {} -webidl.errors = {} - -webidl.errors.exception = function (message) { - return new TypeError(`${message.header}: ${message.message}`) -} - -webidl.errors.conversionFailed = function (context) { - const plural = context.types.length === 1 ? '' : ' one of' - const message = - `${context.argument} could not be converted to` + - `${plural}: ${context.types.join(', ')}.` - - return webidl.errors.exception({ - header: context.prefix, - message - }) -} - -webidl.errors.invalidArgument = function (context) { - return webidl.errors.exception({ - header: context.prefix, - message: `"${context.value}" is an invalid ${context.type}.` - }) -} - -// https://webidl.spec.whatwg.org/#implements -webidl.brandCheck = function (V, I, opts = undefined) { - if (opts?.strict !== false && !(V instanceof I)) { - throw new TypeError('Illegal invocation') - } else { - return V?.[Symbol.toStringTag] === I.prototype[Symbol.toStringTag] - } -} - -webidl.argumentLengthCheck = function ({ length }, min, ctx) { - if (length < min) { - throw webidl.errors.exception({ - message: `${min} argument${min !== 1 ? 's' : ''} required, ` + - `but${length ? ' only' : ''} ${length} found.`, - ...ctx - }) - } -} - -webidl.illegalConstructor = function () { - throw webidl.errors.exception({ - header: 'TypeError', - message: 'Illegal constructor' - }) -} - -// https://tc39.es/ecma262/#sec-ecmascript-data-types-and-values -webidl.util.Type = function (V) { - switch (typeof V) { - case 'undefined': return 'Undefined' - case 'boolean': return 'Boolean' - case 'string': return 'String' - case 'symbol': return 'Symbol' - case 'number': return 'Number' - case 'bigint': return 'BigInt' - case 'function': - case 'object': { - if (V === null) { - return 'Null' - } - - return 'Object' - } - } -} - -// https://webidl.spec.whatwg.org/#abstract-opdef-converttoint -webidl.util.ConvertToInt = function (V, bitLength, signedness, opts = {}) { - let upperBound - let lowerBound - - // 1. If bitLength is 64, then: - if (bitLength === 64) { - // 1. Let upperBound be 2^53 − 1. - upperBound = Math.pow(2, 53) - 1 - - // 2. If signedness is "unsigned", then let lowerBound be 0. - if (signedness === 'unsigned') { - lowerBound = 0 - } else { - // 3. Otherwise let lowerBound be −2^53 + 1. - lowerBound = Math.pow(-2, 53) + 1 - } - } else if (signedness === 'unsigned') { - // 2. Otherwise, if signedness is "unsigned", then: + // 10. If index is greater than or equal to len, then return + // CreateIterResultObject(undefined, true). + if (index >= len) { + return { value: undefined, done: true } + } - // 1. Let lowerBound be 0. - lowerBound = 0 + // 11. Let pair be the entry in values at index index. + const pair = values[index] - // 2. Let upperBound be 2^bitLength − 1. - upperBound = Math.pow(2, bitLength) - 1 - } else { - // 3. Otherwise: + // 12. Set object’s index to index + 1. + object.index = index + 1 - // 1. Let lowerBound be -2^bitLength − 1. - lowerBound = Math.pow(-2, bitLength) - 1 + // 13. Return the iterator result for pair and kind. + return iteratorResult(pair, kind) + }, + // The class string of an iterator prototype object for a given interface is the + // result of concatenating the identifier of the interface and the string " Iterator". + [Symbol.toStringTag]: `${name} Iterator` + } + + // The [[Prototype]] internal slot of an iterator prototype object must be %IteratorPrototype%. + Object.setPrototypeOf(i, esIteratorPrototype) + // esIteratorPrototype needs to be the prototype of i + // which is the prototype of an empty object. Yes, it's confusing. + return Object.setPrototypeOf({}, i) + } + + // https://webidl.spec.whatwg.org/#iterator-result + function iteratorResult(pair, kind) { + let result + + // 1. Let result be a value determined by the value of kind: + switch (kind) { + case 'key': { + // 1. Let idlKey be pair’s key. + // 2. Let key be the result of converting idlKey to an + // ECMAScript value. + // 3. result is key. + result = pair[0] + break + } + case 'value': { + // 1. Let idlValue be pair’s value. + // 2. Let value be the result of converting idlValue to + // an ECMAScript value. + // 3. result is value. + result = pair[1] + break + } + case 'key+value': { + // 1. Let idlKey be pair’s key. + // 2. Let idlValue be pair’s value. + // 3. Let key be the result of converting idlKey to an + // ECMAScript value. + // 4. Let value be the result of converting idlValue to + // an ECMAScript value. + // 5. Let array be ! ArrayCreate(2). + // 6. Call ! CreateDataProperty(array, "0", key). + // 7. Call ! CreateDataProperty(array, "1", value). + // 8. result is array. + result = pair + break + } + } - // 2. Let upperBound be 2^bitLength − 1 − 1. - upperBound = Math.pow(2, bitLength - 1) - 1 - } + // 2. Return CreateIterResultObject(result, false). + return { value: result, done: false } + } - // 4. Let x be ? ToNumber(V). - let x = Number(V) + /** + * @see https://fetch.spec.whatwg.org/#body-fully-read + */ + async function fullyReadBody(body, processBody, processBodyError) { + // 1. If taskDestination is null, then set taskDestination to + // the result of starting a new parallel queue. - // 5. If x is −0, then set x to +0. - if (x === 0) { - x = 0 - } + // 2. Let successSteps given a byte sequence bytes be to queue a + // fetch task to run processBody given bytes, with taskDestination. + const successSteps = processBody - // 6. If the conversion is to an IDL type associated - // with the [EnforceRange] extended attribute, then: - if (opts.enforceRange === true) { - // 1. If x is NaN, +∞, or −∞, then throw a TypeError. - if ( - Number.isNaN(x) || - x === Number.POSITIVE_INFINITY || - x === Number.NEGATIVE_INFINITY - ) { - throw webidl.errors.exception({ - header: 'Integer conversion', - message: `Could not convert ${V} to an integer.` - }) - } + // 3. Let errorSteps be to queue a fetch task to run processBodyError, + // with taskDestination. + const errorSteps = processBodyError - // 2. Set x to IntegerPart(x). - x = webidl.util.IntegerPart(x) + // 4. Let reader be the result of getting a reader for body’s stream. + // If that threw an exception, then run errorSteps with that + // exception and return. + let reader - // 3. If x < lowerBound or x > upperBound, then - // throw a TypeError. - if (x < lowerBound || x > upperBound) { - throw webidl.errors.exception({ - header: 'Integer conversion', - message: `Value must be between ${lowerBound}-${upperBound}, got ${x}.` - }) - } + try { + reader = body.stream.getReader() + } catch (e) { + errorSteps(e) + return + } - // 4. Return x. - return x - } + // 5. Read all bytes from reader, given successSteps and errorSteps. + try { + const result = await readAllBytes(reader) + successSteps(result) + } catch (e) { + errorSteps(e) + } + } - // 7. If x is not NaN and the conversion is to an IDL - // type associated with the [Clamp] extended - // attribute, then: - if (!Number.isNaN(x) && opts.clamp === true) { - // 1. Set x to min(max(x, lowerBound), upperBound). - x = Math.min(Math.max(x, lowerBound), upperBound) - - // 2. Round x to the nearest integer, choosing the - // even integer if it lies halfway between two, - // and choosing +0 rather than −0. - if (Math.floor(x) % 2 === 0) { - x = Math.floor(x) - } else { - x = Math.ceil(x) - } + /** @type {ReadableStream} */ + let ReadableStream = globalThis.ReadableStream - // 3. Return x. - return x - } + function isReadableStreamLike(stream) { + if (!ReadableStream) { + ReadableStream = __nccwpck_require__(35356).ReadableStream + } - // 8. If x is NaN, +0, +∞, or −∞, then return +0. - if ( - Number.isNaN(x) || - (x === 0 && Object.is(0, x)) || - x === Number.POSITIVE_INFINITY || - x === Number.NEGATIVE_INFINITY - ) { - return 0 - } + return ( + stream instanceof ReadableStream || + (stream[Symbol.toStringTag] === 'ReadableStream' && + typeof stream.tee === 'function') + ) + } - // 9. Set x to IntegerPart(x). - x = webidl.util.IntegerPart(x) + const MAXIMUM_ARGUMENT_LENGTH = 65535 - // 10. Set x to x modulo 2^bitLength. - x = x % Math.pow(2, bitLength) + /** + * @see https://infra.spec.whatwg.org/#isomorphic-decode + * @param {number[]|Uint8Array} input + */ + function isomorphicDecode(input) { + // 1. To isomorphic decode a byte sequence input, return a string whose code point + // length is equal to input’s length and whose code points have the same values + // as the values of input’s bytes, in the same order. - // 11. If signedness is "signed" and x ≥ 2^bitLength − 1, - // then return x − 2^bitLength. - if (signedness === 'signed' && x >= Math.pow(2, bitLength) - 1) { - return x - Math.pow(2, bitLength) - } + if (input.length < MAXIMUM_ARGUMENT_LENGTH) { + return String.fromCharCode(...input) + } - // 12. Otherwise, return x. - return x -} + return input.reduce( + (previous, current) => previous + String.fromCharCode(current), + '' + ) + } -// https://webidl.spec.whatwg.org/#abstract-opdef-integerpart -webidl.util.IntegerPart = function (n) { - // 1. Let r be floor(abs(n)). - const r = Math.floor(Math.abs(n)) + /** + * @param {ReadableStreamController} controller + */ + function readableStreamClose(controller) { + try { + controller.close() + } catch (err) { + // TODO: add comment explaining why this error occurs. + if (!err.message.includes('Controller is already closed')) { + throw err + } + } + } - // 2. If n < 0, then return -1 × r. - if (n < 0) { - return -1 * r - } + /** + * @see https://infra.spec.whatwg.org/#isomorphic-encode + * @param {string} input + */ + function isomorphicEncode(input) { + // 1. Assert: input contains no code points greater than U+00FF. + for (let i = 0; i < input.length; i++) { + assert(input.charCodeAt(i) <= 0xff) + } - // 3. Otherwise, return r. - return r -} - -// https://webidl.spec.whatwg.org/#es-sequence -webidl.sequenceConverter = function (converter) { - return (V) => { - // 1. If Type(V) is not Object, throw a TypeError. - if (webidl.util.Type(V) !== 'Object') { - throw webidl.errors.exception({ - header: 'Sequence', - message: `Value of type ${webidl.util.Type(V)} is not an Object.` - }) - } + // 2. Return a byte sequence whose length is equal to input’s code + // point length and whose bytes have the same values as the + // values of input’s code points, in the same order + return input + } - // 2. Let method be ? GetMethod(V, @@iterator). - /** @type {Generator} */ - const method = V?.[Symbol.iterator]?.() - const seq = [] + /** + * @see https://streams.spec.whatwg.org/#readablestreamdefaultreader-read-all-bytes + * @see https://streams.spec.whatwg.org/#read-loop + * @param {ReadableStreamDefaultReader} reader + */ + async function readAllBytes(reader) { + const bytes = [] + let byteLength = 0 - // 3. If method is undefined, throw a TypeError. - if ( - method === undefined || - typeof method.next !== 'function' - ) { - throw webidl.errors.exception({ - header: 'Sequence', - message: 'Object is not an iterator.' - }) - } + while (true) { + const { done, value: chunk } = await reader.read() - // https://webidl.spec.whatwg.org/#create-sequence-from-iterable - while (true) { - const { done, value } = method.next() + if (done) { + // 1. Call successSteps with bytes. + return Buffer.concat(bytes, byteLength) + } - if (done) { - break - } + // 1. If chunk is not a Uint8Array object, call failureSteps + // with a TypeError and abort these steps. + if (!isUint8Array(chunk)) { + throw new TypeError('Received non-Uint8Array chunk') + } - seq.push(converter(value)) - } + // 2. Append the bytes represented by chunk to bytes. + bytes.push(chunk) + byteLength += chunk.length - return seq - } -} - -// https://webidl.spec.whatwg.org/#es-to-record -webidl.recordConverter = function (keyConverter, valueConverter) { - return (O) => { - // 1. If Type(O) is not Object, throw a TypeError. - if (webidl.util.Type(O) !== 'Object') { - throw webidl.errors.exception({ - header: 'Record', - message: `Value of type ${webidl.util.Type(O)} is not an Object.` - }) - } + // 3. Read-loop given reader, bytes, successSteps, and failureSteps. + } + } - // 2. Let result be a new empty instance of record. - const result = {} + /** + * @see https://fetch.spec.whatwg.org/#is-local + * @param {URL} url + */ + function urlIsLocal(url) { + assert('protocol' in url) // ensure it's a url object - if (!types.isProxy(O)) { - // Object.keys only returns enumerable properties - const keys = Object.keys(O) + const protocol = url.protocol - for (const key of keys) { - // 1. Let typedKey be key converted to an IDL value of type K. - const typedKey = keyConverter(key) + return ( + protocol === 'about:' || protocol === 'blob:' || protocol === 'data:' + ) + } - // 2. Let value be ? Get(O, key). - // 3. Let typedValue be value converted to an IDL value of type V. - const typedValue = valueConverter(O[key]) + /** + * @param {string|URL} url + */ + function urlHasHttpsScheme(url) { + if (typeof url === 'string') { + return url.startsWith('https:') + } - // 4. Set result[typedKey] to typedValue. - result[typedKey] = typedValue + return url.protocol === 'https:' } - // 5. Return result. - return result - } + /** + * @see https://fetch.spec.whatwg.org/#http-scheme + * @param {URL} url + */ + function urlIsHttpHttpsScheme(url) { + assert('protocol' in url) // ensure it's a url object - // 3. Let keys be ? O.[[OwnPropertyKeys]](). - const keys = Reflect.ownKeys(O) + const protocol = url.protocol - // 4. For each key of keys. - for (const key of keys) { - // 1. Let desc be ? O.[[GetOwnProperty]](key). - const desc = Reflect.getOwnPropertyDescriptor(O, key) + return protocol === 'http:' || protocol === 'https:' + } - // 2. If desc is not undefined and desc.[[Enumerable]] is true: - if (desc?.enumerable) { - // 1. Let typedKey be key converted to an IDL value of type K. - const typedKey = keyConverter(key) + /** + * Fetch supports node >= 16.8.0, but Object.hasOwn was added in v16.9.0. + */ + const hasOwn = + Object.hasOwn || + ((dict, key) => Object.prototype.hasOwnProperty.call(dict, key)) + + module.exports = { + isAborted, + isCancelled, + createDeferredPromise, + ReadableStreamFrom, + toUSVString, + tryUpgradeRequestToAPotentiallyTrustworthyURL, + coarsenedSharedCurrentTime, + determineRequestsReferrer, + makePolicyContainer, + clonePolicyContainer, + appendFetchMetadata, + appendRequestOriginHeader, + TAOCheck, + corsCheck, + crossOriginResourcePolicyCheck, + createOpaqueTimingInfo, + setRequestReferrerPolicyOnRedirect, + isValidHTTPToken, + requestBadPort, + requestCurrentURL, + responseURL, + responseLocationURL, + isBlobLike, + isURLPotentiallyTrustworthy, + isValidReasonPhrase, + sameOrigin, + normalizeMethod, + serializeJavascriptValueToJSONString, + makeIterator, + isValidHeaderName, + isValidHeaderValue, + hasOwn, + isErrorLike, + fullyReadBody, + bytesMatch, + isReadableStreamLike, + readableStreamClose, + isomorphicEncode, + isomorphicDecode, + urlIsLocal, + urlHasHttpsScheme, + urlIsHttpHttpsScheme, + readAllBytes, + normalizeMethodRecord, + parseMetadata + } + + /***/ + }, - // 2. Let value be ? Get(O, key). - // 3. Let typedValue be value converted to an IDL value of type V. - const typedValue = valueConverter(O[key]) + /***/ 21744: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' - // 4. Set result[typedKey] to typedValue. - result[typedKey] = typedValue - } - } + const { types } = __nccwpck_require__(73837) + const { hasOwn, toUSVString } = __nccwpck_require__(52538) - // 5. Return result. - return result - } -} - -webidl.interfaceConverter = function (i) { - return (V, opts = {}) => { - if (opts.strict !== false && !(V instanceof i)) { - throw webidl.errors.exception({ - header: i.name, - message: `Expected ${V} to be an instance of ${i.name}.` - }) - } + /** @type {import('../../types/webidl').Webidl} */ + const webidl = {} + webidl.converters = {} + webidl.util = {} + webidl.errors = {} - return V - } -} - -webidl.dictionaryConverter = function (converters) { - return (dictionary) => { - const type = webidl.util.Type(dictionary) - const dict = {} - - if (type === 'Null' || type === 'Undefined') { - return dict - } else if (type !== 'Object') { - throw webidl.errors.exception({ - header: 'Dictionary', - message: `Expected ${dictionary} to be one of: Null, Undefined, Object.` - }) - } + webidl.errors.exception = function (message) { + return new TypeError(`${message.header}: ${message.message}`) + } - for (const options of converters) { - const { key, defaultValue, required, converter } = options + webidl.errors.conversionFailed = function (context) { + const plural = context.types.length === 1 ? '' : ' one of' + const message = + `${context.argument} could not be converted to` + + `${plural}: ${context.types.join(', ')}.` - if (required === true) { - if (!hasOwn(dictionary, key)) { - throw webidl.errors.exception({ - header: 'Dictionary', - message: `Missing required key "${key}".` - }) - } + return webidl.errors.exception({ + header: context.prefix, + message + }) } - let value = dictionary[key] - const hasDefault = hasOwn(options, 'defaultValue') - - // Only use defaultValue if value is undefined and - // a defaultValue options was provided. - if (hasDefault && value !== null) { - value = value ?? defaultValue + webidl.errors.invalidArgument = function (context) { + return webidl.errors.exception({ + header: context.prefix, + message: `"${context.value}" is an invalid ${context.type}.` + }) } - // A key can be optional and have no default value. - // When this happens, do not perform a conversion, - // and do not assign the key a value. - if (required || hasDefault || value !== undefined) { - value = converter(value) + // https://webidl.spec.whatwg.org/#implements + webidl.brandCheck = function (V, I, opts = undefined) { + if (opts?.strict !== false && !(V instanceof I)) { + throw new TypeError('Illegal invocation') + } else { + return V?.[Symbol.toStringTag] === I.prototype[Symbol.toStringTag] + } + } - if ( - options.allowedValues && - !options.allowedValues.includes(value) - ) { + webidl.argumentLengthCheck = function ({ length }, min, ctx) { + if (length < min) { throw webidl.errors.exception({ - header: 'Dictionary', - message: `${value} is not an accepted type. Expected one of ${options.allowedValues.join(', ')}.` + message: + `${min} argument${min !== 1 ? 's' : ''} required, ` + + `but${length ? ' only' : ''} ${length} found.`, + ...ctx }) } - - dict[key] = value } - } - - return dict - } -} - -webidl.nullableConverter = function (converter) { - return (V) => { - if (V === null) { - return V - } - return converter(V) - } -} - -// https://webidl.spec.whatwg.org/#es-DOMString -webidl.converters.DOMString = function (V, opts = {}) { - // 1. If V is null and the conversion is to an IDL type - // associated with the [LegacyNullToEmptyString] - // extended attribute, then return the DOMString value - // that represents the empty string. - if (V === null && opts.legacyNullToEmptyString) { - return '' - } + webidl.illegalConstructor = function () { + throw webidl.errors.exception({ + header: 'TypeError', + message: 'Illegal constructor' + }) + } - // 2. Let x be ? ToString(V). - if (typeof V === 'symbol') { - throw new TypeError('Could not convert argument of type symbol to string.') - } + // https://tc39.es/ecma262/#sec-ecmascript-data-types-and-values + webidl.util.Type = function (V) { + switch (typeof V) { + case 'undefined': + return 'Undefined' + case 'boolean': + return 'Boolean' + case 'string': + return 'String' + case 'symbol': + return 'Symbol' + case 'number': + return 'Number' + case 'bigint': + return 'BigInt' + case 'function': + case 'object': { + if (V === null) { + return 'Null' + } - // 3. Return the IDL DOMString value that represents the - // same sequence of code units as the one the - // ECMAScript String value x represents. - return String(V) -} - -// https://webidl.spec.whatwg.org/#es-ByteString -webidl.converters.ByteString = function (V) { - // 1. Let x be ? ToString(V). - // Note: DOMString converter perform ? ToString(V) - const x = webidl.converters.DOMString(V) - - // 2. If the value of any element of x is greater than - // 255, then throw a TypeError. - for (let index = 0; index < x.length; index++) { - if (x.charCodeAt(index) > 255) { - throw new TypeError( - 'Cannot convert argument to a ByteString because the character at ' + - `index ${index} has a value of ${x.charCodeAt(index)} which is greater than 255.` - ) - } - } + return 'Object' + } + } + } - // 3. Return an IDL ByteString value whose length is the - // length of x, and where the value of each element is - // the value of the corresponding element of x. - return x -} - -// https://webidl.spec.whatwg.org/#es-USVString -webidl.converters.USVString = toUSVString - -// https://webidl.spec.whatwg.org/#es-boolean -webidl.converters.boolean = function (V) { - // 1. Let x be the result of computing ToBoolean(V). - const x = Boolean(V) - - // 2. Return the IDL boolean value that is the one that represents - // the same truth value as the ECMAScript Boolean value x. - return x -} - -// https://webidl.spec.whatwg.org/#es-any -webidl.converters.any = function (V) { - return V -} - -// https://webidl.spec.whatwg.org/#es-long-long -webidl.converters['long long'] = function (V) { - // 1. Let x be ? ConvertToInt(V, 64, "signed"). - const x = webidl.util.ConvertToInt(V, 64, 'signed') - - // 2. Return the IDL long long value that represents - // the same numeric value as x. - return x -} - -// https://webidl.spec.whatwg.org/#es-unsigned-long-long -webidl.converters['unsigned long long'] = function (V) { - // 1. Let x be ? ConvertToInt(V, 64, "unsigned"). - const x = webidl.util.ConvertToInt(V, 64, 'unsigned') - - // 2. Return the IDL unsigned long long value that - // represents the same numeric value as x. - return x -} - -// https://webidl.spec.whatwg.org/#es-unsigned-long -webidl.converters['unsigned long'] = function (V) { - // 1. Let x be ? ConvertToInt(V, 32, "unsigned"). - const x = webidl.util.ConvertToInt(V, 32, 'unsigned') - - // 2. Return the IDL unsigned long value that - // represents the same numeric value as x. - return x -} - -// https://webidl.spec.whatwg.org/#es-unsigned-short -webidl.converters['unsigned short'] = function (V, opts) { - // 1. Let x be ? ConvertToInt(V, 16, "unsigned"). - const x = webidl.util.ConvertToInt(V, 16, 'unsigned', opts) - - // 2. Return the IDL unsigned short value that represents - // the same numeric value as x. - return x -} - -// https://webidl.spec.whatwg.org/#idl-ArrayBuffer -webidl.converters.ArrayBuffer = function (V, opts = {}) { - // 1. If Type(V) is not Object, or V does not have an - // [[ArrayBufferData]] internal slot, then throw a - // TypeError. - // see: https://tc39.es/ecma262/#sec-properties-of-the-arraybuffer-instances - // see: https://tc39.es/ecma262/#sec-properties-of-the-sharedarraybuffer-instances - if ( - webidl.util.Type(V) !== 'Object' || - !types.isAnyArrayBuffer(V) - ) { - throw webidl.errors.conversionFailed({ - prefix: `${V}`, - argument: `${V}`, - types: ['ArrayBuffer'] - }) - } + // https://webidl.spec.whatwg.org/#abstract-opdef-converttoint + webidl.util.ConvertToInt = function ( + V, + bitLength, + signedness, + opts = {} + ) { + let upperBound + let lowerBound - // 2. If the conversion is not to an IDL type associated - // with the [AllowShared] extended attribute, and - // IsSharedArrayBuffer(V) is true, then throw a - // TypeError. - if (opts.allowShared === false && types.isSharedArrayBuffer(V)) { - throw webidl.errors.exception({ - header: 'ArrayBuffer', - message: 'SharedArrayBuffer is not allowed.' - }) - } + // 1. If bitLength is 64, then: + if (bitLength === 64) { + // 1. Let upperBound be 2^53 − 1. + upperBound = Math.pow(2, 53) - 1 - // 3. If the conversion is not to an IDL type associated - // with the [AllowResizable] extended attribute, and - // IsResizableArrayBuffer(V) is true, then throw a - // TypeError. - // Note: resizable ArrayBuffers are currently a proposal. - - // 4. Return the IDL ArrayBuffer value that is a - // reference to the same object as V. - return V -} - -webidl.converters.TypedArray = function (V, T, opts = {}) { - // 1. Let T be the IDL type V is being converted to. - - // 2. If Type(V) is not Object, or V does not have a - // [[TypedArrayName]] internal slot with a value - // equal to T’s name, then throw a TypeError. - if ( - webidl.util.Type(V) !== 'Object' || - !types.isTypedArray(V) || - V.constructor.name !== T.name - ) { - throw webidl.errors.conversionFailed({ - prefix: `${T.name}`, - argument: `${V}`, - types: [T.name] - }) - } + // 2. If signedness is "unsigned", then let lowerBound be 0. + if (signedness === 'unsigned') { + lowerBound = 0 + } else { + // 3. Otherwise let lowerBound be −2^53 + 1. + lowerBound = Math.pow(-2, 53) + 1 + } + } else if (signedness === 'unsigned') { + // 2. Otherwise, if signedness is "unsigned", then: - // 3. If the conversion is not to an IDL type associated - // with the [AllowShared] extended attribute, and - // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is - // true, then throw a TypeError. - if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) { - throw webidl.errors.exception({ - header: 'ArrayBuffer', - message: 'SharedArrayBuffer is not allowed.' - }) - } + // 1. Let lowerBound be 0. + lowerBound = 0 - // 4. If the conversion is not to an IDL type associated - // with the [AllowResizable] extended attribute, and - // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is - // true, then throw a TypeError. - // Note: resizable array buffers are currently a proposal - - // 5. Return the IDL value of type T that is a reference - // to the same object as V. - return V -} - -webidl.converters.DataView = function (V, opts = {}) { - // 1. If Type(V) is not Object, or V does not have a - // [[DataView]] internal slot, then throw a TypeError. - if (webidl.util.Type(V) !== 'Object' || !types.isDataView(V)) { - throw webidl.errors.exception({ - header: 'DataView', - message: 'Object is not a DataView.' - }) - } + // 2. Let upperBound be 2^bitLength − 1. + upperBound = Math.pow(2, bitLength) - 1 + } else { + // 3. Otherwise: - // 2. If the conversion is not to an IDL type associated - // with the [AllowShared] extended attribute, and - // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is true, - // then throw a TypeError. - if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) { - throw webidl.errors.exception({ - header: 'ArrayBuffer', - message: 'SharedArrayBuffer is not allowed.' - }) - } + // 1. Let lowerBound be -2^bitLength − 1. + lowerBound = Math.pow(-2, bitLength) - 1 - // 3. If the conversion is not to an IDL type associated - // with the [AllowResizable] extended attribute, and - // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is - // true, then throw a TypeError. - // Note: resizable ArrayBuffers are currently a proposal - - // 4. Return the IDL DataView value that is a reference - // to the same object as V. - return V -} - -// https://webidl.spec.whatwg.org/#BufferSource -webidl.converters.BufferSource = function (V, opts = {}) { - if (types.isAnyArrayBuffer(V)) { - return webidl.converters.ArrayBuffer(V, opts) - } + // 2. Let upperBound be 2^bitLength − 1 − 1. + upperBound = Math.pow(2, bitLength - 1) - 1 + } - if (types.isTypedArray(V)) { - return webidl.converters.TypedArray(V, V.constructor) - } + // 4. Let x be ? ToNumber(V). + let x = Number(V) - if (types.isDataView(V)) { - return webidl.converters.DataView(V, opts) - } + // 5. If x is −0, then set x to +0. + if (x === 0) { + x = 0 + } - throw new TypeError(`Could not convert ${V} to a BufferSource.`) -} + // 6. If the conversion is to an IDL type associated + // with the [EnforceRange] extended attribute, then: + if (opts.enforceRange === true) { + // 1. If x is NaN, +∞, or −∞, then throw a TypeError. + if ( + Number.isNaN(x) || + x === Number.POSITIVE_INFINITY || + x === Number.NEGATIVE_INFINITY + ) { + throw webidl.errors.exception({ + header: 'Integer conversion', + message: `Could not convert ${V} to an integer.` + }) + } -webidl.converters['sequence'] = webidl.sequenceConverter( - webidl.converters.ByteString -) + // 2. Set x to IntegerPart(x). + x = webidl.util.IntegerPart(x) -webidl.converters['sequence>'] = webidl.sequenceConverter( - webidl.converters['sequence'] -) + // 3. If x < lowerBound or x > upperBound, then + // throw a TypeError. + if (x < lowerBound || x > upperBound) { + throw webidl.errors.exception({ + header: 'Integer conversion', + message: `Value must be between ${lowerBound}-${upperBound}, got ${x}.` + }) + } -webidl.converters['record'] = webidl.recordConverter( - webidl.converters.ByteString, - webidl.converters.ByteString -) + // 4. Return x. + return x + } -module.exports = { - webidl -} + // 7. If x is not NaN and the conversion is to an IDL + // type associated with the [Clamp] extended + // attribute, then: + if (!Number.isNaN(x) && opts.clamp === true) { + // 1. Set x to min(max(x, lowerBound), upperBound). + x = Math.min(Math.max(x, lowerBound), upperBound) + // 2. Round x to the nearest integer, choosing the + // even integer if it lies halfway between two, + // and choosing +0 rather than −0. + if (Math.floor(x) % 2 === 0) { + x = Math.floor(x) + } else { + x = Math.ceil(x) + } -/***/ }), + // 3. Return x. + return x + } -/***/ 84854: -/***/ ((module) => { + // 8. If x is NaN, +0, +∞, or −∞, then return +0. + if ( + Number.isNaN(x) || + (x === 0 && Object.is(0, x)) || + x === Number.POSITIVE_INFINITY || + x === Number.NEGATIVE_INFINITY + ) { + return 0 + } -"use strict"; + // 9. Set x to IntegerPart(x). + x = webidl.util.IntegerPart(x) + // 10. Set x to x modulo 2^bitLength. + x = x % Math.pow(2, bitLength) -/** - * @see https://encoding.spec.whatwg.org/#concept-encoding-get - * @param {string|undefined} label - */ -function getEncoding (label) { - if (!label) { - return 'failure' - } + // 11. If signedness is "signed" and x ≥ 2^bitLength − 1, + // then return x − 2^bitLength. + if (signedness === 'signed' && x >= Math.pow(2, bitLength) - 1) { + return x - Math.pow(2, bitLength) + } - // 1. Remove any leading and trailing ASCII whitespace from label. - // 2. If label is an ASCII case-insensitive match for any of the - // labels listed in the table below, then return the - // corresponding encoding; otherwise return failure. - switch (label.trim().toLowerCase()) { - case 'unicode-1-1-utf-8': - case 'unicode11utf8': - case 'unicode20utf8': - case 'utf-8': - case 'utf8': - case 'x-unicode20utf8': - return 'UTF-8' - case '866': - case 'cp866': - case 'csibm866': - case 'ibm866': - return 'IBM866' - case 'csisolatin2': - case 'iso-8859-2': - case 'iso-ir-101': - case 'iso8859-2': - case 'iso88592': - case 'iso_8859-2': - case 'iso_8859-2:1987': - case 'l2': - case 'latin2': - return 'ISO-8859-2' - case 'csisolatin3': - case 'iso-8859-3': - case 'iso-ir-109': - case 'iso8859-3': - case 'iso88593': - case 'iso_8859-3': - case 'iso_8859-3:1988': - case 'l3': - case 'latin3': - return 'ISO-8859-3' - case 'csisolatin4': - case 'iso-8859-4': - case 'iso-ir-110': - case 'iso8859-4': - case 'iso88594': - case 'iso_8859-4': - case 'iso_8859-4:1988': - case 'l4': - case 'latin4': - return 'ISO-8859-4' - case 'csisolatincyrillic': - case 'cyrillic': - case 'iso-8859-5': - case 'iso-ir-144': - case 'iso8859-5': - case 'iso88595': - case 'iso_8859-5': - case 'iso_8859-5:1988': - return 'ISO-8859-5' - case 'arabic': - case 'asmo-708': - case 'csiso88596e': - case 'csiso88596i': - case 'csisolatinarabic': - case 'ecma-114': - case 'iso-8859-6': - case 'iso-8859-6-e': - case 'iso-8859-6-i': - case 'iso-ir-127': - case 'iso8859-6': - case 'iso88596': - case 'iso_8859-6': - case 'iso_8859-6:1987': - return 'ISO-8859-6' - case 'csisolatingreek': - case 'ecma-118': - case 'elot_928': - case 'greek': - case 'greek8': - case 'iso-8859-7': - case 'iso-ir-126': - case 'iso8859-7': - case 'iso88597': - case 'iso_8859-7': - case 'iso_8859-7:1987': - case 'sun_eu_greek': - return 'ISO-8859-7' - case 'csiso88598e': - case 'csisolatinhebrew': - case 'hebrew': - case 'iso-8859-8': - case 'iso-8859-8-e': - case 'iso-ir-138': - case 'iso8859-8': - case 'iso88598': - case 'iso_8859-8': - case 'iso_8859-8:1988': - case 'visual': - return 'ISO-8859-8' - case 'csiso88598i': - case 'iso-8859-8-i': - case 'logical': - return 'ISO-8859-8-I' - case 'csisolatin6': - case 'iso-8859-10': - case 'iso-ir-157': - case 'iso8859-10': - case 'iso885910': - case 'l6': - case 'latin6': - return 'ISO-8859-10' - case 'iso-8859-13': - case 'iso8859-13': - case 'iso885913': - return 'ISO-8859-13' - case 'iso-8859-14': - case 'iso8859-14': - case 'iso885914': - return 'ISO-8859-14' - case 'csisolatin9': - case 'iso-8859-15': - case 'iso8859-15': - case 'iso885915': - case 'iso_8859-15': - case 'l9': - return 'ISO-8859-15' - case 'iso-8859-16': - return 'ISO-8859-16' - case 'cskoi8r': - case 'koi': - case 'koi8': - case 'koi8-r': - case 'koi8_r': - return 'KOI8-R' - case 'koi8-ru': - case 'koi8-u': - return 'KOI8-U' - case 'csmacintosh': - case 'mac': - case 'macintosh': - case 'x-mac-roman': - return 'macintosh' - case 'iso-8859-11': - case 'iso8859-11': - case 'iso885911': - case 'tis-620': - case 'windows-874': - return 'windows-874' - case 'cp1250': - case 'windows-1250': - case 'x-cp1250': - return 'windows-1250' - case 'cp1251': - case 'windows-1251': - case 'x-cp1251': - return 'windows-1251' - case 'ansi_x3.4-1968': - case 'ascii': - case 'cp1252': - case 'cp819': - case 'csisolatin1': - case 'ibm819': - case 'iso-8859-1': - case 'iso-ir-100': - case 'iso8859-1': - case 'iso88591': - case 'iso_8859-1': - case 'iso_8859-1:1987': - case 'l1': - case 'latin1': - case 'us-ascii': - case 'windows-1252': - case 'x-cp1252': - return 'windows-1252' - case 'cp1253': - case 'windows-1253': - case 'x-cp1253': - return 'windows-1253' - case 'cp1254': - case 'csisolatin5': - case 'iso-8859-9': - case 'iso-ir-148': - case 'iso8859-9': - case 'iso88599': - case 'iso_8859-9': - case 'iso_8859-9:1989': - case 'l5': - case 'latin5': - case 'windows-1254': - case 'x-cp1254': - return 'windows-1254' - case 'cp1255': - case 'windows-1255': - case 'x-cp1255': - return 'windows-1255' - case 'cp1256': - case 'windows-1256': - case 'x-cp1256': - return 'windows-1256' - case 'cp1257': - case 'windows-1257': - case 'x-cp1257': - return 'windows-1257' - case 'cp1258': - case 'windows-1258': - case 'x-cp1258': - return 'windows-1258' - case 'x-mac-cyrillic': - case 'x-mac-ukrainian': - return 'x-mac-cyrillic' - case 'chinese': - case 'csgb2312': - case 'csiso58gb231280': - case 'gb2312': - case 'gb_2312': - case 'gb_2312-80': - case 'gbk': - case 'iso-ir-58': - case 'x-gbk': - return 'GBK' - case 'gb18030': - return 'gb18030' - case 'big5': - case 'big5-hkscs': - case 'cn-big5': - case 'csbig5': - case 'x-x-big5': - return 'Big5' - case 'cseucpkdfmtjapanese': - case 'euc-jp': - case 'x-euc-jp': - return 'EUC-JP' - case 'csiso2022jp': - case 'iso-2022-jp': - return 'ISO-2022-JP' - case 'csshiftjis': - case 'ms932': - case 'ms_kanji': - case 'shift-jis': - case 'shift_jis': - case 'sjis': - case 'windows-31j': - case 'x-sjis': - return 'Shift_JIS' - case 'cseuckr': - case 'csksc56011987': - case 'euc-kr': - case 'iso-ir-149': - case 'korean': - case 'ks_c_5601-1987': - case 'ks_c_5601-1989': - case 'ksc5601': - case 'ksc_5601': - case 'windows-949': - return 'EUC-KR' - case 'csiso2022kr': - case 'hz-gb-2312': - case 'iso-2022-cn': - case 'iso-2022-cn-ext': - case 'iso-2022-kr': - case 'replacement': - return 'replacement' - case 'unicodefffe': - case 'utf-16be': - return 'UTF-16BE' - case 'csunicode': - case 'iso-10646-ucs-2': - case 'ucs-2': - case 'unicode': - case 'unicodefeff': - case 'utf-16': - case 'utf-16le': - return 'UTF-16LE' - case 'x-user-defined': - return 'x-user-defined' - default: return 'failure' - } -} - -module.exports = { - getEncoding -} - - -/***/ }), - -/***/ 1446: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - - -const { - staticPropertyDescriptors, - readOperation, - fireAProgressEvent -} = __nccwpck_require__(87530) -const { - kState, - kError, - kResult, - kEvents, - kAborted -} = __nccwpck_require__(29054) -const { webidl } = __nccwpck_require__(21744) -const { kEnumerableProperty } = __nccwpck_require__(83983) - -class FileReader extends EventTarget { - constructor () { - super() - - this[kState] = 'empty' - this[kResult] = null - this[kError] = null - this[kEvents] = { - loadend: null, - error: null, - abort: null, - load: null, - progress: null, - loadstart: null - } - } + // 12. Otherwise, return x. + return x + } - /** - * @see https://w3c.github.io/FileAPI/#dfn-readAsArrayBuffer - * @param {import('buffer').Blob} blob - */ - readAsArrayBuffer (blob) { - webidl.brandCheck(this, FileReader) + // https://webidl.spec.whatwg.org/#abstract-opdef-integerpart + webidl.util.IntegerPart = function (n) { + // 1. Let r be floor(abs(n)). + const r = Math.floor(Math.abs(n)) - webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsArrayBuffer' }) + // 2. If n < 0, then return -1 × r. + if (n < 0) { + return -1 * r + } - blob = webidl.converters.Blob(blob, { strict: false }) + // 3. Otherwise, return r. + return r + } - // The readAsArrayBuffer(blob) method, when invoked, - // must initiate a read operation for blob with ArrayBuffer. - readOperation(this, blob, 'ArrayBuffer') - } + // https://webidl.spec.whatwg.org/#es-sequence + webidl.sequenceConverter = function (converter) { + return V => { + // 1. If Type(V) is not Object, throw a TypeError. + if (webidl.util.Type(V) !== 'Object') { + throw webidl.errors.exception({ + header: 'Sequence', + message: `Value of type ${webidl.util.Type(V)} is not an Object.` + }) + } - /** - * @see https://w3c.github.io/FileAPI/#readAsBinaryString - * @param {import('buffer').Blob} blob - */ - readAsBinaryString (blob) { - webidl.brandCheck(this, FileReader) + // 2. Let method be ? GetMethod(V, @@iterator). + /** @type {Generator} */ + const method = V?.[Symbol.iterator]?.() + const seq = [] - webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsBinaryString' }) + // 3. If method is undefined, throw a TypeError. + if (method === undefined || typeof method.next !== 'function') { + throw webidl.errors.exception({ + header: 'Sequence', + message: 'Object is not an iterator.' + }) + } - blob = webidl.converters.Blob(blob, { strict: false }) + // https://webidl.spec.whatwg.org/#create-sequence-from-iterable + while (true) { + const { done, value } = method.next() - // The readAsBinaryString(blob) method, when invoked, - // must initiate a read operation for blob with BinaryString. - readOperation(this, blob, 'BinaryString') - } + if (done) { + break + } - /** - * @see https://w3c.github.io/FileAPI/#readAsDataText - * @param {import('buffer').Blob} blob - * @param {string?} encoding - */ - readAsText (blob, encoding = undefined) { - webidl.brandCheck(this, FileReader) + seq.push(converter(value)) + } - webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsText' }) + return seq + } + } - blob = webidl.converters.Blob(blob, { strict: false }) + // https://webidl.spec.whatwg.org/#es-to-record + webidl.recordConverter = function (keyConverter, valueConverter) { + return O => { + // 1. If Type(O) is not Object, throw a TypeError. + if (webidl.util.Type(O) !== 'Object') { + throw webidl.errors.exception({ + header: 'Record', + message: `Value of type ${webidl.util.Type(O)} is not an Object.` + }) + } - if (encoding !== undefined) { - encoding = webidl.converters.DOMString(encoding) - } + // 2. Let result be a new empty instance of record. + const result = {} - // The readAsText(blob, encoding) method, when invoked, - // must initiate a read operation for blob with Text and encoding. - readOperation(this, blob, 'Text', encoding) - } + if (!types.isProxy(O)) { + // Object.keys only returns enumerable properties + const keys = Object.keys(O) - /** - * @see https://w3c.github.io/FileAPI/#dfn-readAsDataURL - * @param {import('buffer').Blob} blob - */ - readAsDataURL (blob) { - webidl.brandCheck(this, FileReader) + for (const key of keys) { + // 1. Let typedKey be key converted to an IDL value of type K. + const typedKey = keyConverter(key) - webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsDataURL' }) + // 2. Let value be ? Get(O, key). + // 3. Let typedValue be value converted to an IDL value of type V. + const typedValue = valueConverter(O[key]) - blob = webidl.converters.Blob(blob, { strict: false }) + // 4. Set result[typedKey] to typedValue. + result[typedKey] = typedValue + } - // The readAsDataURL(blob) method, when invoked, must - // initiate a read operation for blob with DataURL. - readOperation(this, blob, 'DataURL') - } + // 5. Return result. + return result + } - /** - * @see https://w3c.github.io/FileAPI/#dfn-abort - */ - abort () { - // 1. If this's state is "empty" or if this's state is - // "done" set this's result to null and terminate - // this algorithm. - if (this[kState] === 'empty' || this[kState] === 'done') { - this[kResult] = null - return - } + // 3. Let keys be ? O.[[OwnPropertyKeys]](). + const keys = Reflect.ownKeys(O) - // 2. If this's state is "loading" set this's state to - // "done" and set this's result to null. - if (this[kState] === 'loading') { - this[kState] = 'done' - this[kResult] = null - } + // 4. For each key of keys. + for (const key of keys) { + // 1. Let desc be ? O.[[GetOwnProperty]](key). + const desc = Reflect.getOwnPropertyDescriptor(O, key) - // 3. If there are any tasks from this on the file reading - // task source in an affiliated task queue, then remove - // those tasks from that task queue. - this[kAborted] = true + // 2. If desc is not undefined and desc.[[Enumerable]] is true: + if (desc?.enumerable) { + // 1. Let typedKey be key converted to an IDL value of type K. + const typedKey = keyConverter(key) - // 4. Terminate the algorithm for the read method being processed. - // TODO + // 2. Let value be ? Get(O, key). + // 3. Let typedValue be value converted to an IDL value of type V. + const typedValue = valueConverter(O[key]) - // 5. Fire a progress event called abort at this. - fireAProgressEvent('abort', this) + // 4. Set result[typedKey] to typedValue. + result[typedKey] = typedValue + } + } - // 6. If this's state is not "loading", fire a progress - // event called loadend at this. - if (this[kState] !== 'loading') { - fireAProgressEvent('loadend', this) - } - } + // 5. Return result. + return result + } + } - /** - * @see https://w3c.github.io/FileAPI/#dom-filereader-readystate - */ - get readyState () { - webidl.brandCheck(this, FileReader) + webidl.interfaceConverter = function (i) { + return (V, opts = {}) => { + if (opts.strict !== false && !(V instanceof i)) { + throw webidl.errors.exception({ + header: i.name, + message: `Expected ${V} to be an instance of ${i.name}.` + }) + } - switch (this[kState]) { - case 'empty': return this.EMPTY - case 'loading': return this.LOADING - case 'done': return this.DONE - } - } + return V + } + } - /** - * @see https://w3c.github.io/FileAPI/#dom-filereader-result - */ - get result () { - webidl.brandCheck(this, FileReader) + webidl.dictionaryConverter = function (converters) { + return dictionary => { + const type = webidl.util.Type(dictionary) + const dict = {} - // The result attribute’s getter, when invoked, must return - // this's result. - return this[kResult] - } + if (type === 'Null' || type === 'Undefined') { + return dict + } else if (type !== 'Object') { + throw webidl.errors.exception({ + header: 'Dictionary', + message: `Expected ${dictionary} to be one of: Null, Undefined, Object.` + }) + } - /** - * @see https://w3c.github.io/FileAPI/#dom-filereader-error - */ - get error () { - webidl.brandCheck(this, FileReader) + for (const options of converters) { + const { key, defaultValue, required, converter } = options - // The error attribute’s getter, when invoked, must return - // this's error. - return this[kError] - } + if (required === true) { + if (!hasOwn(dictionary, key)) { + throw webidl.errors.exception({ + header: 'Dictionary', + message: `Missing required key "${key}".` + }) + } + } - get onloadend () { - webidl.brandCheck(this, FileReader) + let value = dictionary[key] + const hasDefault = hasOwn(options, 'defaultValue') - return this[kEvents].loadend - } + // Only use defaultValue if value is undefined and + // a defaultValue options was provided. + if (hasDefault && value !== null) { + value = value ?? defaultValue + } - set onloadend (fn) { - webidl.brandCheck(this, FileReader) + // A key can be optional and have no default value. + // When this happens, do not perform a conversion, + // and do not assign the key a value. + if (required || hasDefault || value !== undefined) { + value = converter(value) + + if ( + options.allowedValues && + !options.allowedValues.includes(value) + ) { + throw webidl.errors.exception({ + header: 'Dictionary', + message: `${value} is not an accepted type. Expected one of ${options.allowedValues.join(', ')}.` + }) + } - if (this[kEvents].loadend) { - this.removeEventListener('loadend', this[kEvents].loadend) - } + dict[key] = value + } + } - if (typeof fn === 'function') { - this[kEvents].loadend = fn - this.addEventListener('loadend', fn) - } else { - this[kEvents].loadend = null - } - } + return dict + } + } - get onerror () { - webidl.brandCheck(this, FileReader) + webidl.nullableConverter = function (converter) { + return V => { + if (V === null) { + return V + } - return this[kEvents].error - } + return converter(V) + } + } - set onerror (fn) { - webidl.brandCheck(this, FileReader) + // https://webidl.spec.whatwg.org/#es-DOMString + webidl.converters.DOMString = function (V, opts = {}) { + // 1. If V is null and the conversion is to an IDL type + // associated with the [LegacyNullToEmptyString] + // extended attribute, then return the DOMString value + // that represents the empty string. + if (V === null && opts.legacyNullToEmptyString) { + return '' + } - if (this[kEvents].error) { - this.removeEventListener('error', this[kEvents].error) - } + // 2. Let x be ? ToString(V). + if (typeof V === 'symbol') { + throw new TypeError( + 'Could not convert argument of type symbol to string.' + ) + } - if (typeof fn === 'function') { - this[kEvents].error = fn - this.addEventListener('error', fn) - } else { - this[kEvents].error = null - } - } + // 3. Return the IDL DOMString value that represents the + // same sequence of code units as the one the + // ECMAScript String value x represents. + return String(V) + } - get onloadstart () { - webidl.brandCheck(this, FileReader) + // https://webidl.spec.whatwg.org/#es-ByteString + webidl.converters.ByteString = function (V) { + // 1. Let x be ? ToString(V). + // Note: DOMString converter perform ? ToString(V) + const x = webidl.converters.DOMString(V) - return this[kEvents].loadstart - } + // 2. If the value of any element of x is greater than + // 255, then throw a TypeError. + for (let index = 0; index < x.length; index++) { + if (x.charCodeAt(index) > 255) { + throw new TypeError( + 'Cannot convert argument to a ByteString because the character at ' + + `index ${index} has a value of ${x.charCodeAt(index)} which is greater than 255.` + ) + } + } - set onloadstart (fn) { - webidl.brandCheck(this, FileReader) + // 3. Return an IDL ByteString value whose length is the + // length of x, and where the value of each element is + // the value of the corresponding element of x. + return x + } - if (this[kEvents].loadstart) { - this.removeEventListener('loadstart', this[kEvents].loadstart) - } + // https://webidl.spec.whatwg.org/#es-USVString + webidl.converters.USVString = toUSVString - if (typeof fn === 'function') { - this[kEvents].loadstart = fn - this.addEventListener('loadstart', fn) - } else { - this[kEvents].loadstart = null - } - } + // https://webidl.spec.whatwg.org/#es-boolean + webidl.converters.boolean = function (V) { + // 1. Let x be the result of computing ToBoolean(V). + const x = Boolean(V) - get onprogress () { - webidl.brandCheck(this, FileReader) + // 2. Return the IDL boolean value that is the one that represents + // the same truth value as the ECMAScript Boolean value x. + return x + } - return this[kEvents].progress - } + // https://webidl.spec.whatwg.org/#es-any + webidl.converters.any = function (V) { + return V + } - set onprogress (fn) { - webidl.brandCheck(this, FileReader) + // https://webidl.spec.whatwg.org/#es-long-long + webidl.converters['long long'] = function (V) { + // 1. Let x be ? ConvertToInt(V, 64, "signed"). + const x = webidl.util.ConvertToInt(V, 64, 'signed') - if (this[kEvents].progress) { - this.removeEventListener('progress', this[kEvents].progress) - } + // 2. Return the IDL long long value that represents + // the same numeric value as x. + return x + } - if (typeof fn === 'function') { - this[kEvents].progress = fn - this.addEventListener('progress', fn) - } else { - this[kEvents].progress = null - } - } + // https://webidl.spec.whatwg.org/#es-unsigned-long-long + webidl.converters['unsigned long long'] = function (V) { + // 1. Let x be ? ConvertToInt(V, 64, "unsigned"). + const x = webidl.util.ConvertToInt(V, 64, 'unsigned') - get onload () { - webidl.brandCheck(this, FileReader) + // 2. Return the IDL unsigned long long value that + // represents the same numeric value as x. + return x + } - return this[kEvents].load - } + // https://webidl.spec.whatwg.org/#es-unsigned-long + webidl.converters['unsigned long'] = function (V) { + // 1. Let x be ? ConvertToInt(V, 32, "unsigned"). + const x = webidl.util.ConvertToInt(V, 32, 'unsigned') - set onload (fn) { - webidl.brandCheck(this, FileReader) + // 2. Return the IDL unsigned long value that + // represents the same numeric value as x. + return x + } - if (this[kEvents].load) { - this.removeEventListener('load', this[kEvents].load) - } + // https://webidl.spec.whatwg.org/#es-unsigned-short + webidl.converters['unsigned short'] = function (V, opts) { + // 1. Let x be ? ConvertToInt(V, 16, "unsigned"). + const x = webidl.util.ConvertToInt(V, 16, 'unsigned', opts) - if (typeof fn === 'function') { - this[kEvents].load = fn - this.addEventListener('load', fn) - } else { - this[kEvents].load = null - } - } + // 2. Return the IDL unsigned short value that represents + // the same numeric value as x. + return x + } - get onabort () { - webidl.brandCheck(this, FileReader) + // https://webidl.spec.whatwg.org/#idl-ArrayBuffer + webidl.converters.ArrayBuffer = function (V, opts = {}) { + // 1. If Type(V) is not Object, or V does not have an + // [[ArrayBufferData]] internal slot, then throw a + // TypeError. + // see: https://tc39.es/ecma262/#sec-properties-of-the-arraybuffer-instances + // see: https://tc39.es/ecma262/#sec-properties-of-the-sharedarraybuffer-instances + if (webidl.util.Type(V) !== 'Object' || !types.isAnyArrayBuffer(V)) { + throw webidl.errors.conversionFailed({ + prefix: `${V}`, + argument: `${V}`, + types: ['ArrayBuffer'] + }) + } - return this[kEvents].abort - } + // 2. If the conversion is not to an IDL type associated + // with the [AllowShared] extended attribute, and + // IsSharedArrayBuffer(V) is true, then throw a + // TypeError. + if (opts.allowShared === false && types.isSharedArrayBuffer(V)) { + throw webidl.errors.exception({ + header: 'ArrayBuffer', + message: 'SharedArrayBuffer is not allowed.' + }) + } - set onabort (fn) { - webidl.brandCheck(this, FileReader) + // 3. If the conversion is not to an IDL type associated + // with the [AllowResizable] extended attribute, and + // IsResizableArrayBuffer(V) is true, then throw a + // TypeError. + // Note: resizable ArrayBuffers are currently a proposal. - if (this[kEvents].abort) { - this.removeEventListener('abort', this[kEvents].abort) - } + // 4. Return the IDL ArrayBuffer value that is a + // reference to the same object as V. + return V + } - if (typeof fn === 'function') { - this[kEvents].abort = fn - this.addEventListener('abort', fn) - } else { - this[kEvents].abort = null - } - } -} - -// https://w3c.github.io/FileAPI/#dom-filereader-empty -FileReader.EMPTY = FileReader.prototype.EMPTY = 0 -// https://w3c.github.io/FileAPI/#dom-filereader-loading -FileReader.LOADING = FileReader.prototype.LOADING = 1 -// https://w3c.github.io/FileAPI/#dom-filereader-done -FileReader.DONE = FileReader.prototype.DONE = 2 - -Object.defineProperties(FileReader.prototype, { - EMPTY: staticPropertyDescriptors, - LOADING: staticPropertyDescriptors, - DONE: staticPropertyDescriptors, - readAsArrayBuffer: kEnumerableProperty, - readAsBinaryString: kEnumerableProperty, - readAsText: kEnumerableProperty, - readAsDataURL: kEnumerableProperty, - abort: kEnumerableProperty, - readyState: kEnumerableProperty, - result: kEnumerableProperty, - error: kEnumerableProperty, - onloadstart: kEnumerableProperty, - onprogress: kEnumerableProperty, - onload: kEnumerableProperty, - onabort: kEnumerableProperty, - onerror: kEnumerableProperty, - onloadend: kEnumerableProperty, - [Symbol.toStringTag]: { - value: 'FileReader', - writable: false, - enumerable: false, - configurable: true - } -}) + webidl.converters.TypedArray = function (V, T, opts = {}) { + // 1. Let T be the IDL type V is being converted to. -Object.defineProperties(FileReader, { - EMPTY: staticPropertyDescriptors, - LOADING: staticPropertyDescriptors, - DONE: staticPropertyDescriptors -}) + // 2. If Type(V) is not Object, or V does not have a + // [[TypedArrayName]] internal slot with a value + // equal to T’s name, then throw a TypeError. + if ( + webidl.util.Type(V) !== 'Object' || + !types.isTypedArray(V) || + V.constructor.name !== T.name + ) { + throw webidl.errors.conversionFailed({ + prefix: `${T.name}`, + argument: `${V}`, + types: [T.name] + }) + } -module.exports = { - FileReader -} + // 3. If the conversion is not to an IDL type associated + // with the [AllowShared] extended attribute, and + // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is + // true, then throw a TypeError. + if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) { + throw webidl.errors.exception({ + header: 'ArrayBuffer', + message: 'SharedArrayBuffer is not allowed.' + }) + } + // 4. If the conversion is not to an IDL type associated + // with the [AllowResizable] extended attribute, and + // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is + // true, then throw a TypeError. + // Note: resizable array buffers are currently a proposal -/***/ }), + // 5. Return the IDL value of type T that is a reference + // to the same object as V. + return V + } -/***/ 55504: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + webidl.converters.DataView = function (V, opts = {}) { + // 1. If Type(V) is not Object, or V does not have a + // [[DataView]] internal slot, then throw a TypeError. + if (webidl.util.Type(V) !== 'Object' || !types.isDataView(V)) { + throw webidl.errors.exception({ + header: 'DataView', + message: 'Object is not a DataView.' + }) + } -"use strict"; + // 2. If the conversion is not to an IDL type associated + // with the [AllowShared] extended attribute, and + // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is true, + // then throw a TypeError. + if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) { + throw webidl.errors.exception({ + header: 'ArrayBuffer', + message: 'SharedArrayBuffer is not allowed.' + }) + } + // 3. If the conversion is not to an IDL type associated + // with the [AllowResizable] extended attribute, and + // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is + // true, then throw a TypeError. + // Note: resizable ArrayBuffers are currently a proposal -const { webidl } = __nccwpck_require__(21744) + // 4. Return the IDL DataView value that is a reference + // to the same object as V. + return V + } -const kState = Symbol('ProgressEvent state') + // https://webidl.spec.whatwg.org/#BufferSource + webidl.converters.BufferSource = function (V, opts = {}) { + if (types.isAnyArrayBuffer(V)) { + return webidl.converters.ArrayBuffer(V, opts) + } -/** - * @see https://xhr.spec.whatwg.org/#progressevent - */ -class ProgressEvent extends Event { - constructor (type, eventInitDict = {}) { - type = webidl.converters.DOMString(type) - eventInitDict = webidl.converters.ProgressEventInit(eventInitDict ?? {}) + if (types.isTypedArray(V)) { + return webidl.converters.TypedArray(V, V.constructor) + } - super(type, eventInitDict) + if (types.isDataView(V)) { + return webidl.converters.DataView(V, opts) + } - this[kState] = { - lengthComputable: eventInitDict.lengthComputable, - loaded: eventInitDict.loaded, - total: eventInitDict.total - } - } + throw new TypeError(`Could not convert ${V} to a BufferSource.`) + } - get lengthComputable () { - webidl.brandCheck(this, ProgressEvent) + webidl.converters['sequence'] = webidl.sequenceConverter( + webidl.converters.ByteString + ) - return this[kState].lengthComputable - } + webidl.converters['sequence>'] = + webidl.sequenceConverter(webidl.converters['sequence']) - get loaded () { - webidl.brandCheck(this, ProgressEvent) + webidl.converters['record'] = + webidl.recordConverter( + webidl.converters.ByteString, + webidl.converters.ByteString + ) - return this[kState].loaded - } + module.exports = { + webidl + } - get total () { - webidl.brandCheck(this, ProgressEvent) + /***/ + }, - return this[kState].total - } -} - -webidl.converters.ProgressEventInit = webidl.dictionaryConverter([ - { - key: 'lengthComputable', - converter: webidl.converters.boolean, - defaultValue: false - }, - { - key: 'loaded', - converter: webidl.converters['unsigned long long'], - defaultValue: 0 - }, - { - key: 'total', - converter: webidl.converters['unsigned long long'], - defaultValue: 0 - }, - { - key: 'bubbles', - converter: webidl.converters.boolean, - defaultValue: false - }, - { - key: 'cancelable', - converter: webidl.converters.boolean, - defaultValue: false - }, - { - key: 'composed', - converter: webidl.converters.boolean, - defaultValue: false - } -]) + /***/ 84854: /***/ module => { + 'use strict' -module.exports = { - ProgressEvent -} + /** + * @see https://encoding.spec.whatwg.org/#concept-encoding-get + * @param {string|undefined} label + */ + function getEncoding(label) { + if (!label) { + return 'failure' + } + + // 1. Remove any leading and trailing ASCII whitespace from label. + // 2. If label is an ASCII case-insensitive match for any of the + // labels listed in the table below, then return the + // corresponding encoding; otherwise return failure. + switch (label.trim().toLowerCase()) { + case 'unicode-1-1-utf-8': + case 'unicode11utf8': + case 'unicode20utf8': + case 'utf-8': + case 'utf8': + case 'x-unicode20utf8': + return 'UTF-8' + case '866': + case 'cp866': + case 'csibm866': + case 'ibm866': + return 'IBM866' + case 'csisolatin2': + case 'iso-8859-2': + case 'iso-ir-101': + case 'iso8859-2': + case 'iso88592': + case 'iso_8859-2': + case 'iso_8859-2:1987': + case 'l2': + case 'latin2': + return 'ISO-8859-2' + case 'csisolatin3': + case 'iso-8859-3': + case 'iso-ir-109': + case 'iso8859-3': + case 'iso88593': + case 'iso_8859-3': + case 'iso_8859-3:1988': + case 'l3': + case 'latin3': + return 'ISO-8859-3' + case 'csisolatin4': + case 'iso-8859-4': + case 'iso-ir-110': + case 'iso8859-4': + case 'iso88594': + case 'iso_8859-4': + case 'iso_8859-4:1988': + case 'l4': + case 'latin4': + return 'ISO-8859-4' + case 'csisolatincyrillic': + case 'cyrillic': + case 'iso-8859-5': + case 'iso-ir-144': + case 'iso8859-5': + case 'iso88595': + case 'iso_8859-5': + case 'iso_8859-5:1988': + return 'ISO-8859-5' + case 'arabic': + case 'asmo-708': + case 'csiso88596e': + case 'csiso88596i': + case 'csisolatinarabic': + case 'ecma-114': + case 'iso-8859-6': + case 'iso-8859-6-e': + case 'iso-8859-6-i': + case 'iso-ir-127': + case 'iso8859-6': + case 'iso88596': + case 'iso_8859-6': + case 'iso_8859-6:1987': + return 'ISO-8859-6' + case 'csisolatingreek': + case 'ecma-118': + case 'elot_928': + case 'greek': + case 'greek8': + case 'iso-8859-7': + case 'iso-ir-126': + case 'iso8859-7': + case 'iso88597': + case 'iso_8859-7': + case 'iso_8859-7:1987': + case 'sun_eu_greek': + return 'ISO-8859-7' + case 'csiso88598e': + case 'csisolatinhebrew': + case 'hebrew': + case 'iso-8859-8': + case 'iso-8859-8-e': + case 'iso-ir-138': + case 'iso8859-8': + case 'iso88598': + case 'iso_8859-8': + case 'iso_8859-8:1988': + case 'visual': + return 'ISO-8859-8' + case 'csiso88598i': + case 'iso-8859-8-i': + case 'logical': + return 'ISO-8859-8-I' + case 'csisolatin6': + case 'iso-8859-10': + case 'iso-ir-157': + case 'iso8859-10': + case 'iso885910': + case 'l6': + case 'latin6': + return 'ISO-8859-10' + case 'iso-8859-13': + case 'iso8859-13': + case 'iso885913': + return 'ISO-8859-13' + case 'iso-8859-14': + case 'iso8859-14': + case 'iso885914': + return 'ISO-8859-14' + case 'csisolatin9': + case 'iso-8859-15': + case 'iso8859-15': + case 'iso885915': + case 'iso_8859-15': + case 'l9': + return 'ISO-8859-15' + case 'iso-8859-16': + return 'ISO-8859-16' + case 'cskoi8r': + case 'koi': + case 'koi8': + case 'koi8-r': + case 'koi8_r': + return 'KOI8-R' + case 'koi8-ru': + case 'koi8-u': + return 'KOI8-U' + case 'csmacintosh': + case 'mac': + case 'macintosh': + case 'x-mac-roman': + return 'macintosh' + case 'iso-8859-11': + case 'iso8859-11': + case 'iso885911': + case 'tis-620': + case 'windows-874': + return 'windows-874' + case 'cp1250': + case 'windows-1250': + case 'x-cp1250': + return 'windows-1250' + case 'cp1251': + case 'windows-1251': + case 'x-cp1251': + return 'windows-1251' + case 'ansi_x3.4-1968': + case 'ascii': + case 'cp1252': + case 'cp819': + case 'csisolatin1': + case 'ibm819': + case 'iso-8859-1': + case 'iso-ir-100': + case 'iso8859-1': + case 'iso88591': + case 'iso_8859-1': + case 'iso_8859-1:1987': + case 'l1': + case 'latin1': + case 'us-ascii': + case 'windows-1252': + case 'x-cp1252': + return 'windows-1252' + case 'cp1253': + case 'windows-1253': + case 'x-cp1253': + return 'windows-1253' + case 'cp1254': + case 'csisolatin5': + case 'iso-8859-9': + case 'iso-ir-148': + case 'iso8859-9': + case 'iso88599': + case 'iso_8859-9': + case 'iso_8859-9:1989': + case 'l5': + case 'latin5': + case 'windows-1254': + case 'x-cp1254': + return 'windows-1254' + case 'cp1255': + case 'windows-1255': + case 'x-cp1255': + return 'windows-1255' + case 'cp1256': + case 'windows-1256': + case 'x-cp1256': + return 'windows-1256' + case 'cp1257': + case 'windows-1257': + case 'x-cp1257': + return 'windows-1257' + case 'cp1258': + case 'windows-1258': + case 'x-cp1258': + return 'windows-1258' + case 'x-mac-cyrillic': + case 'x-mac-ukrainian': + return 'x-mac-cyrillic' + case 'chinese': + case 'csgb2312': + case 'csiso58gb231280': + case 'gb2312': + case 'gb_2312': + case 'gb_2312-80': + case 'gbk': + case 'iso-ir-58': + case 'x-gbk': + return 'GBK' + case 'gb18030': + return 'gb18030' + case 'big5': + case 'big5-hkscs': + case 'cn-big5': + case 'csbig5': + case 'x-x-big5': + return 'Big5' + case 'cseucpkdfmtjapanese': + case 'euc-jp': + case 'x-euc-jp': + return 'EUC-JP' + case 'csiso2022jp': + case 'iso-2022-jp': + return 'ISO-2022-JP' + case 'csshiftjis': + case 'ms932': + case 'ms_kanji': + case 'shift-jis': + case 'shift_jis': + case 'sjis': + case 'windows-31j': + case 'x-sjis': + return 'Shift_JIS' + case 'cseuckr': + case 'csksc56011987': + case 'euc-kr': + case 'iso-ir-149': + case 'korean': + case 'ks_c_5601-1987': + case 'ks_c_5601-1989': + case 'ksc5601': + case 'ksc_5601': + case 'windows-949': + return 'EUC-KR' + case 'csiso2022kr': + case 'hz-gb-2312': + case 'iso-2022-cn': + case 'iso-2022-cn-ext': + case 'iso-2022-kr': + case 'replacement': + return 'replacement' + case 'unicodefffe': + case 'utf-16be': + return 'UTF-16BE' + case 'csunicode': + case 'iso-10646-ucs-2': + case 'ucs-2': + case 'unicode': + case 'unicodefeff': + case 'utf-16': + case 'utf-16le': + return 'UTF-16LE' + case 'x-user-defined': + return 'x-user-defined' + default: + return 'failure' + } + } + + module.exports = { + getEncoding + } + + /***/ + }, + /***/ 1446: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + const { staticPropertyDescriptors, readOperation, fireAProgressEvent } = + __nccwpck_require__(87530) + const { kState, kError, kResult, kEvents, kAborted } = + __nccwpck_require__(29054) + const { webidl } = __nccwpck_require__(21744) + const { kEnumerableProperty } = __nccwpck_require__(83983) + + class FileReader extends EventTarget { + constructor() { + super() + + this[kState] = 'empty' + this[kResult] = null + this[kError] = null + this[kEvents] = { + loadend: null, + error: null, + abort: null, + load: null, + progress: null, + loadstart: null + } + } -/***/ }), + /** + * @see https://w3c.github.io/FileAPI/#dfn-readAsArrayBuffer + * @param {import('buffer').Blob} blob + */ + readAsArrayBuffer(blob) { + webidl.brandCheck(this, FileReader) -/***/ 29054: -/***/ ((module) => { + webidl.argumentLengthCheck(arguments, 1, { + header: 'FileReader.readAsArrayBuffer' + }) -"use strict"; + blob = webidl.converters.Blob(blob, { strict: false }) + // The readAsArrayBuffer(blob) method, when invoked, + // must initiate a read operation for blob with ArrayBuffer. + readOperation(this, blob, 'ArrayBuffer') + } -module.exports = { - kState: Symbol('FileReader state'), - kResult: Symbol('FileReader result'), - kError: Symbol('FileReader error'), - kLastProgressEventFired: Symbol('FileReader last progress event fired timestamp'), - kEvents: Symbol('FileReader events'), - kAborted: Symbol('FileReader aborted') -} + /** + * @see https://w3c.github.io/FileAPI/#readAsBinaryString + * @param {import('buffer').Blob} blob + */ + readAsBinaryString(blob) { + webidl.brandCheck(this, FileReader) + webidl.argumentLengthCheck(arguments, 1, { + header: 'FileReader.readAsBinaryString' + }) -/***/ }), + blob = webidl.converters.Blob(blob, { strict: false }) -/***/ 87530: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + // The readAsBinaryString(blob) method, when invoked, + // must initiate a read operation for blob with BinaryString. + readOperation(this, blob, 'BinaryString') + } -"use strict"; + /** + * @see https://w3c.github.io/FileAPI/#readAsDataText + * @param {import('buffer').Blob} blob + * @param {string?} encoding + */ + readAsText(blob, encoding = undefined) { + webidl.brandCheck(this, FileReader) + webidl.argumentLengthCheck(arguments, 1, { + header: 'FileReader.readAsText' + }) -const { - kState, - kError, - kResult, - kAborted, - kLastProgressEventFired -} = __nccwpck_require__(29054) -const { ProgressEvent } = __nccwpck_require__(55504) -const { getEncoding } = __nccwpck_require__(84854) -const { DOMException } = __nccwpck_require__(41037) -const { serializeAMimeType, parseMIMEType } = __nccwpck_require__(685) -const { types } = __nccwpck_require__(73837) -const { StringDecoder } = __nccwpck_require__(71576) -const { btoa } = __nccwpck_require__(14300) + blob = webidl.converters.Blob(blob, { strict: false }) -/** @type {PropertyDescriptor} */ -const staticPropertyDescriptors = { - enumerable: true, - writable: false, - configurable: false -} + if (encoding !== undefined) { + encoding = webidl.converters.DOMString(encoding) + } -/** - * @see https://w3c.github.io/FileAPI/#readOperation - * @param {import('./filereader').FileReader} fr - * @param {import('buffer').Blob} blob - * @param {string} type - * @param {string?} encodingName - */ -function readOperation (fr, blob, type, encodingName) { - // 1. If fr’s state is "loading", throw an InvalidStateError - // DOMException. - if (fr[kState] === 'loading') { - throw new DOMException('Invalid state', 'InvalidStateError') - } + // The readAsText(blob, encoding) method, when invoked, + // must initiate a read operation for blob with Text and encoding. + readOperation(this, blob, 'Text', encoding) + } - // 2. Set fr’s state to "loading". - fr[kState] = 'loading' + /** + * @see https://w3c.github.io/FileAPI/#dfn-readAsDataURL + * @param {import('buffer').Blob} blob + */ + readAsDataURL(blob) { + webidl.brandCheck(this, FileReader) - // 3. Set fr’s result to null. - fr[kResult] = null + webidl.argumentLengthCheck(arguments, 1, { + header: 'FileReader.readAsDataURL' + }) - // 4. Set fr’s error to null. - fr[kError] = null + blob = webidl.converters.Blob(blob, { strict: false }) - // 5. Let stream be the result of calling get stream on blob. - /** @type {import('stream/web').ReadableStream} */ - const stream = blob.stream() + // The readAsDataURL(blob) method, when invoked, must + // initiate a read operation for blob with DataURL. + readOperation(this, blob, 'DataURL') + } - // 6. Let reader be the result of getting a reader from stream. - const reader = stream.getReader() + /** + * @see https://w3c.github.io/FileAPI/#dfn-abort + */ + abort() { + // 1. If this's state is "empty" or if this's state is + // "done" set this's result to null and terminate + // this algorithm. + if (this[kState] === 'empty' || this[kState] === 'done') { + this[kResult] = null + return + } - // 7. Let bytes be an empty byte sequence. - /** @type {Uint8Array[]} */ - const bytes = [] + // 2. If this's state is "loading" set this's state to + // "done" and set this's result to null. + if (this[kState] === 'loading') { + this[kState] = 'done' + this[kResult] = null + } - // 8. Let chunkPromise be the result of reading a chunk from - // stream with reader. - let chunkPromise = reader.read() + // 3. If there are any tasks from this on the file reading + // task source in an affiliated task queue, then remove + // those tasks from that task queue. + this[kAborted] = true - // 9. Let isFirstChunk be true. - let isFirstChunk = true + // 4. Terminate the algorithm for the read method being processed. + // TODO - // 10. In parallel, while true: - // Note: "In parallel" just means non-blocking - // Note 2: readOperation itself cannot be async as double - // reading the body would then reject the promise, instead - // of throwing an error. - ;(async () => { - while (!fr[kAborted]) { - // 1. Wait for chunkPromise to be fulfilled or rejected. - try { - const { done, value } = await chunkPromise + // 5. Fire a progress event called abort at this. + fireAProgressEvent('abort', this) - // 2. If chunkPromise is fulfilled, and isFirstChunk is - // true, queue a task to fire a progress event called - // loadstart at fr. - if (isFirstChunk && !fr[kAborted]) { - queueMicrotask(() => { - fireAProgressEvent('loadstart', fr) - }) + // 6. If this's state is not "loading", fire a progress + // event called loadend at this. + if (this[kState] !== 'loading') { + fireAProgressEvent('loadend', this) + } } - // 3. Set isFirstChunk to false. - isFirstChunk = false - - // 4. If chunkPromise is fulfilled with an object whose - // done property is false and whose value property is - // a Uint8Array object, run these steps: - if (!done && types.isUint8Array(value)) { - // 1. Let bs be the byte sequence represented by the - // Uint8Array object. - - // 2. Append bs to bytes. - bytes.push(value) - - // 3. If roughly 50ms have passed since these steps - // were last invoked, queue a task to fire a - // progress event called progress at fr. - if ( - ( - fr[kLastProgressEventFired] === undefined || - Date.now() - fr[kLastProgressEventFired] >= 50 - ) && - !fr[kAborted] - ) { - fr[kLastProgressEventFired] = Date.now() - queueMicrotask(() => { - fireAProgressEvent('progress', fr) - }) + /** + * @see https://w3c.github.io/FileAPI/#dom-filereader-readystate + */ + get readyState() { + webidl.brandCheck(this, FileReader) + + switch (this[kState]) { + case 'empty': + return this.EMPTY + case 'loading': + return this.LOADING + case 'done': + return this.DONE } + } - // 4. Set chunkPromise to the result of reading a - // chunk from stream with reader. - chunkPromise = reader.read() - } else if (done) { - // 5. Otherwise, if chunkPromise is fulfilled with an - // object whose done property is true, queue a task - // to run the following steps and abort this algorithm: - queueMicrotask(() => { - // 1. Set fr’s state to "done". - fr[kState] = 'done' - - // 2. Let result be the result of package data given - // bytes, type, blob’s type, and encodingName. - try { - const result = packageData(bytes, type, blob.type, encodingName) + /** + * @see https://w3c.github.io/FileAPI/#dom-filereader-result + */ + get result() { + webidl.brandCheck(this, FileReader) - // 4. Else: + // The result attribute’s getter, when invoked, must return + // this's result. + return this[kResult] + } - if (fr[kAborted]) { - return - } + /** + * @see https://w3c.github.io/FileAPI/#dom-filereader-error + */ + get error() { + webidl.brandCheck(this, FileReader) - // 1. Set fr’s result to result. - fr[kResult] = result + // The error attribute’s getter, when invoked, must return + // this's error. + return this[kError] + } - // 2. Fire a progress event called load at the fr. - fireAProgressEvent('load', fr) - } catch (error) { - // 3. If package data threw an exception error: + get onloadend() { + webidl.brandCheck(this, FileReader) - // 1. Set fr’s error to error. - fr[kError] = error + return this[kEvents].loadend + } - // 2. Fire a progress event called error at fr. - fireAProgressEvent('error', fr) - } + set onloadend(fn) { + webidl.brandCheck(this, FileReader) - // 5. If fr’s state is not "loading", fire a progress - // event called loadend at the fr. - if (fr[kState] !== 'loading') { - fireAProgressEvent('loadend', fr) - } - }) + if (this[kEvents].loadend) { + this.removeEventListener('loadend', this[kEvents].loadend) + } - break - } - } catch (error) { - if (fr[kAborted]) { - return + if (typeof fn === 'function') { + this[kEvents].loadend = fn + this.addEventListener('loadend', fn) + } else { + this[kEvents].loadend = null + } } - // 6. Otherwise, if chunkPromise is rejected with an - // error error, queue a task to run the following - // steps and abort this algorithm: - queueMicrotask(() => { - // 1. Set fr’s state to "done". - fr[kState] = 'done' + get onerror() { + webidl.brandCheck(this, FileReader) - // 2. Set fr’s error to error. - fr[kError] = error + return this[kEvents].error + } - // 3. Fire a progress event called error at fr. - fireAProgressEvent('error', fr) + set onerror(fn) { + webidl.brandCheck(this, FileReader) - // 4. If fr’s state is not "loading", fire a progress - // event called loadend at fr. - if (fr[kState] !== 'loading') { - fireAProgressEvent('loadend', fr) + if (this[kEvents].error) { + this.removeEventListener('error', this[kEvents].error) } - }) - - break - } - } - })() -} - -/** - * @see https://w3c.github.io/FileAPI/#fire-a-progress-event - * @see https://dom.spec.whatwg.org/#concept-event-fire - * @param {string} e The name of the event - * @param {import('./filereader').FileReader} reader - */ -function fireAProgressEvent (e, reader) { - // The progress event e does not bubble. e.bubbles must be false - // The progress event e is NOT cancelable. e.cancelable must be false - const event = new ProgressEvent(e, { - bubbles: false, - cancelable: false - }) - - reader.dispatchEvent(event) -} - -/** - * @see https://w3c.github.io/FileAPI/#blob-package-data - * @param {Uint8Array[]} bytes - * @param {string} type - * @param {string?} mimeType - * @param {string?} encodingName - */ -function packageData (bytes, type, mimeType, encodingName) { - // 1. A Blob has an associated package data algorithm, given - // bytes, a type, a optional mimeType, and a optional - // encodingName, which switches on type and runs the - // associated steps: - switch (type) { - case 'DataURL': { - // 1. Return bytes as a DataURL [RFC2397] subject to - // the considerations below: - // * Use mimeType as part of the Data URL if it is - // available in keeping with the Data URL - // specification [RFC2397]. - // * If mimeType is not available return a Data URL - // without a media-type. [RFC2397]. - - // https://datatracker.ietf.org/doc/html/rfc2397#section-3 - // dataurl := "data:" [ mediatype ] [ ";base64" ] "," data - // mediatype := [ type "/" subtype ] *( ";" parameter ) - // data := *urlchar - // parameter := attribute "=" value - let dataURL = 'data:' + if (typeof fn === 'function') { + this[kEvents].error = fn + this.addEventListener('error', fn) + } else { + this[kEvents].error = null + } + } - const parsed = parseMIMEType(mimeType || 'application/octet-stream') + get onloadstart() { + webidl.brandCheck(this, FileReader) - if (parsed !== 'failure') { - dataURL += serializeAMimeType(parsed) - } + return this[kEvents].loadstart + } - dataURL += ';base64,' + set onloadstart(fn) { + webidl.brandCheck(this, FileReader) - const decoder = new StringDecoder('latin1') + if (this[kEvents].loadstart) { + this.removeEventListener('loadstart', this[kEvents].loadstart) + } - for (const chunk of bytes) { - dataURL += btoa(decoder.write(chunk)) - } + if (typeof fn === 'function') { + this[kEvents].loadstart = fn + this.addEventListener('loadstart', fn) + } else { + this[kEvents].loadstart = null + } + } - dataURL += btoa(decoder.end()) + get onprogress() { + webidl.brandCheck(this, FileReader) - return dataURL - } - case 'Text': { - // 1. Let encoding be failure - let encoding = 'failure' + return this[kEvents].progress + } - // 2. If the encodingName is present, set encoding to the - // result of getting an encoding from encodingName. - if (encodingName) { - encoding = getEncoding(encodingName) - } + set onprogress(fn) { + webidl.brandCheck(this, FileReader) - // 3. If encoding is failure, and mimeType is present: - if (encoding === 'failure' && mimeType) { - // 1. Let type be the result of parse a MIME type - // given mimeType. - const type = parseMIMEType(mimeType) + if (this[kEvents].progress) { + this.removeEventListener('progress', this[kEvents].progress) + } - // 2. If type is not failure, set encoding to the result - // of getting an encoding from type’s parameters["charset"]. - if (type !== 'failure') { - encoding = getEncoding(type.parameters.get('charset')) + if (typeof fn === 'function') { + this[kEvents].progress = fn + this.addEventListener('progress', fn) + } else { + this[kEvents].progress = null + } } - } - // 4. If encoding is failure, then set encoding to UTF-8. - if (encoding === 'failure') { - encoding = 'UTF-8' - } + get onload() { + webidl.brandCheck(this, FileReader) - // 5. Decode bytes using fallback encoding encoding, and - // return the result. - return decode(bytes, encoding) - } - case 'ArrayBuffer': { - // Return a new ArrayBuffer whose contents are bytes. - const sequence = combineByteSequences(bytes) + return this[kEvents].load + } - return sequence.buffer - } - case 'BinaryString': { - // Return bytes as a binary string, in which every byte - // is represented by a code unit of equal value [0..255]. - let binaryString = '' + set onload(fn) { + webidl.brandCheck(this, FileReader) - const decoder = new StringDecoder('latin1') + if (this[kEvents].load) { + this.removeEventListener('load', this[kEvents].load) + } - for (const chunk of bytes) { - binaryString += decoder.write(chunk) - } + if (typeof fn === 'function') { + this[kEvents].load = fn + this.addEventListener('load', fn) + } else { + this[kEvents].load = null + } + } - binaryString += decoder.end() + get onabort() { + webidl.brandCheck(this, FileReader) - return binaryString - } - } -} + return this[kEvents].abort + } -/** - * @see https://encoding.spec.whatwg.org/#decode - * @param {Uint8Array[]} ioQueue - * @param {string} encoding - */ -function decode (ioQueue, encoding) { - const bytes = combineByteSequences(ioQueue) + set onabort(fn) { + webidl.brandCheck(this, FileReader) - // 1. Let BOMEncoding be the result of BOM sniffing ioQueue. - const BOMEncoding = BOMSniffing(bytes) + if (this[kEvents].abort) { + this.removeEventListener('abort', this[kEvents].abort) + } - let slice = 0 + if (typeof fn === 'function') { + this[kEvents].abort = fn + this.addEventListener('abort', fn) + } else { + this[kEvents].abort = null + } + } + } - // 2. If BOMEncoding is non-null: - if (BOMEncoding !== null) { - // 1. Set encoding to BOMEncoding. - encoding = BOMEncoding + // https://w3c.github.io/FileAPI/#dom-filereader-empty + FileReader.EMPTY = FileReader.prototype.EMPTY = 0 + // https://w3c.github.io/FileAPI/#dom-filereader-loading + FileReader.LOADING = FileReader.prototype.LOADING = 1 + // https://w3c.github.io/FileAPI/#dom-filereader-done + FileReader.DONE = FileReader.prototype.DONE = 2 + + Object.defineProperties(FileReader.prototype, { + EMPTY: staticPropertyDescriptors, + LOADING: staticPropertyDescriptors, + DONE: staticPropertyDescriptors, + readAsArrayBuffer: kEnumerableProperty, + readAsBinaryString: kEnumerableProperty, + readAsText: kEnumerableProperty, + readAsDataURL: kEnumerableProperty, + abort: kEnumerableProperty, + readyState: kEnumerableProperty, + result: kEnumerableProperty, + error: kEnumerableProperty, + onloadstart: kEnumerableProperty, + onprogress: kEnumerableProperty, + onload: kEnumerableProperty, + onabort: kEnumerableProperty, + onerror: kEnumerableProperty, + onloadend: kEnumerableProperty, + [Symbol.toStringTag]: { + value: 'FileReader', + writable: false, + enumerable: false, + configurable: true + } + }) - // 2. Read three bytes from ioQueue, if BOMEncoding is - // UTF-8; otherwise read two bytes. - // (Do nothing with those bytes.) - slice = BOMEncoding === 'UTF-8' ? 3 : 2 - } + Object.defineProperties(FileReader, { + EMPTY: staticPropertyDescriptors, + LOADING: staticPropertyDescriptors, + DONE: staticPropertyDescriptors + }) - // 3. Process a queue with an instance of encoding’s - // decoder, ioQueue, output, and "replacement". + module.exports = { + FileReader + } - // 4. Return output. + /***/ + }, - const sliced = bytes.slice(slice) - return new TextDecoder(encoding).decode(sliced) -} + /***/ 55504: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' -/** - * @see https://encoding.spec.whatwg.org/#bom-sniff - * @param {Uint8Array} ioQueue - */ -function BOMSniffing (ioQueue) { - // 1. Let BOM be the result of peeking 3 bytes from ioQueue, - // converted to a byte sequence. - const [a, b, c] = ioQueue - - // 2. For each of the rows in the table below, starting with - // the first one and going down, if BOM starts with the - // bytes given in the first column, then return the - // encoding given in the cell in the second column of that - // row. Otherwise, return null. - if (a === 0xEF && b === 0xBB && c === 0xBF) { - return 'UTF-8' - } else if (a === 0xFE && b === 0xFF) { - return 'UTF-16BE' - } else if (a === 0xFF && b === 0xFE) { - return 'UTF-16LE' - } + const { webidl } = __nccwpck_require__(21744) - return null -} + const kState = Symbol('ProgressEvent state') -/** - * @param {Uint8Array[]} sequences - */ -function combineByteSequences (sequences) { - const size = sequences.reduce((a, b) => { - return a + b.byteLength - }, 0) + /** + * @see https://xhr.spec.whatwg.org/#progressevent + */ + class ProgressEvent extends Event { + constructor(type, eventInitDict = {}) { + type = webidl.converters.DOMString(type) + eventInitDict = webidl.converters.ProgressEventInit( + eventInitDict ?? {} + ) - let offset = 0 + super(type, eventInitDict) - return sequences.reduce((a, b) => { - a.set(b, offset) - offset += b.byteLength - return a - }, new Uint8Array(size)) -} + this[kState] = { + lengthComputable: eventInitDict.lengthComputable, + loaded: eventInitDict.loaded, + total: eventInitDict.total + } + } -module.exports = { - staticPropertyDescriptors, - readOperation, - fireAProgressEvent -} + get lengthComputable() { + webidl.brandCheck(this, ProgressEvent) + return this[kState].lengthComputable + } -/***/ }), + get loaded() { + webidl.brandCheck(this, ProgressEvent) -/***/ 21892: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + return this[kState].loaded + } -"use strict"; + get total() { + webidl.brandCheck(this, ProgressEvent) + return this[kState].total + } + } -// We include a version number for the Dispatcher API. In case of breaking changes, -// this version number must be increased to avoid conflicts. -const globalDispatcher = Symbol.for('undici.globalDispatcher.1') -const { InvalidArgumentError } = __nccwpck_require__(48045) -const Agent = __nccwpck_require__(7890) + webidl.converters.ProgressEventInit = webidl.dictionaryConverter([ + { + key: 'lengthComputable', + converter: webidl.converters.boolean, + defaultValue: false + }, + { + key: 'loaded', + converter: webidl.converters['unsigned long long'], + defaultValue: 0 + }, + { + key: 'total', + converter: webidl.converters['unsigned long long'], + defaultValue: 0 + }, + { + key: 'bubbles', + converter: webidl.converters.boolean, + defaultValue: false + }, + { + key: 'cancelable', + converter: webidl.converters.boolean, + defaultValue: false + }, + { + key: 'composed', + converter: webidl.converters.boolean, + defaultValue: false + } + ]) -if (getGlobalDispatcher() === undefined) { - setGlobalDispatcher(new Agent()) -} + module.exports = { + ProgressEvent + } -function setGlobalDispatcher (agent) { - if (!agent || typeof agent.dispatch !== 'function') { - throw new InvalidArgumentError('Argument agent must implement Agent') - } - Object.defineProperty(globalThis, globalDispatcher, { - value: agent, - writable: true, - enumerable: false, - configurable: false - }) -} + /***/ + }, -function getGlobalDispatcher () { - return globalThis[globalDispatcher] -} + /***/ 29054: /***/ module => { + 'use strict' -module.exports = { - setGlobalDispatcher, - getGlobalDispatcher -} + module.exports = { + kState: Symbol('FileReader state'), + kResult: Symbol('FileReader result'), + kError: Symbol('FileReader error'), + kLastProgressEventFired: Symbol( + 'FileReader last progress event fired timestamp' + ), + kEvents: Symbol('FileReader events'), + kAborted: Symbol('FileReader aborted') + } + /***/ + }, -/***/ }), + /***/ 87530: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + const { kState, kError, kResult, kAborted, kLastProgressEventFired } = + __nccwpck_require__(29054) + const { ProgressEvent } = __nccwpck_require__(55504) + const { getEncoding } = __nccwpck_require__(84854) + const { DOMException } = __nccwpck_require__(41037) + const { serializeAMimeType, parseMIMEType } = __nccwpck_require__(685) + const { types } = __nccwpck_require__(73837) + const { StringDecoder } = __nccwpck_require__(71576) + const { btoa } = __nccwpck_require__(14300) + + /** @type {PropertyDescriptor} */ + const staticPropertyDescriptors = { + enumerable: true, + writable: false, + configurable: false + } -/***/ 46930: -/***/ ((module) => { + /** + * @see https://w3c.github.io/FileAPI/#readOperation + * @param {import('./filereader').FileReader} fr + * @param {import('buffer').Blob} blob + * @param {string} type + * @param {string?} encodingName + */ + function readOperation(fr, blob, type, encodingName) { + // 1. If fr’s state is "loading", throw an InvalidStateError + // DOMException. + if (fr[kState] === 'loading') { + throw new DOMException('Invalid state', 'InvalidStateError') + } -"use strict"; + // 2. Set fr’s state to "loading". + fr[kState] = 'loading' + // 3. Set fr’s result to null. + fr[kResult] = null -module.exports = class DecoratorHandler { - constructor (handler) { - this.handler = handler - } + // 4. Set fr’s error to null. + fr[kError] = null - onConnect (...args) { - return this.handler.onConnect(...args) - } + // 5. Let stream be the result of calling get stream on blob. + /** @type {import('stream/web').ReadableStream} */ + const stream = blob.stream() - onError (...args) { - return this.handler.onError(...args) - } + // 6. Let reader be the result of getting a reader from stream. + const reader = stream.getReader() - onUpgrade (...args) { - return this.handler.onUpgrade(...args) - } + // 7. Let bytes be an empty byte sequence. + /** @type {Uint8Array[]} */ + const bytes = [] - onHeaders (...args) { - return this.handler.onHeaders(...args) - } + // 8. Let chunkPromise be the result of reading a chunk from + // stream with reader. + let chunkPromise = reader.read() - onData (...args) { - return this.handler.onData(...args) - } + // 9. Let isFirstChunk be true. + let isFirstChunk = true - onComplete (...args) { - return this.handler.onComplete(...args) - } + // 10. In parallel, while true: + // Note: "In parallel" just means non-blocking + // Note 2: readOperation itself cannot be async as double + // reading the body would then reject the promise, instead + // of throwing an error. + ;(async () => { + while (!fr[kAborted]) { + // 1. Wait for chunkPromise to be fulfilled or rejected. + try { + const { done, value } = await chunkPromise + + // 2. If chunkPromise is fulfilled, and isFirstChunk is + // true, queue a task to fire a progress event called + // loadstart at fr. + if (isFirstChunk && !fr[kAborted]) { + queueMicrotask(() => { + fireAProgressEvent('loadstart', fr) + }) + } - onBodySent (...args) { - return this.handler.onBodySent(...args) - } -} + // 3. Set isFirstChunk to false. + isFirstChunk = false + + // 4. If chunkPromise is fulfilled with an object whose + // done property is false and whose value property is + // a Uint8Array object, run these steps: + if (!done && types.isUint8Array(value)) { + // 1. Let bs be the byte sequence represented by the + // Uint8Array object. + + // 2. Append bs to bytes. + bytes.push(value) + + // 3. If roughly 50ms have passed since these steps + // were last invoked, queue a task to fire a + // progress event called progress at fr. + if ( + (fr[kLastProgressEventFired] === undefined || + Date.now() - fr[kLastProgressEventFired] >= 50) && + !fr[kAborted] + ) { + fr[kLastProgressEventFired] = Date.now() + queueMicrotask(() => { + fireAProgressEvent('progress', fr) + }) + } + // 4. Set chunkPromise to the result of reading a + // chunk from stream with reader. + chunkPromise = reader.read() + } else if (done) { + // 5. Otherwise, if chunkPromise is fulfilled with an + // object whose done property is true, queue a task + // to run the following steps and abort this algorithm: + queueMicrotask(() => { + // 1. Set fr’s state to "done". + fr[kState] = 'done' + + // 2. Let result be the result of package data given + // bytes, type, blob’s type, and encodingName. + try { + const result = packageData( + bytes, + type, + blob.type, + encodingName + ) + + // 4. Else: + + if (fr[kAborted]) { + return + } -/***/ }), + // 1. Set fr’s result to result. + fr[kResult] = result -/***/ 72860: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + // 2. Fire a progress event called load at the fr. + fireAProgressEvent('load', fr) + } catch (error) { + // 3. If package data threw an exception error: -"use strict"; + // 1. Set fr’s error to error. + fr[kError] = error + // 2. Fire a progress event called error at fr. + fireAProgressEvent('error', fr) + } -const util = __nccwpck_require__(83983) -const { kBodyUsed } = __nccwpck_require__(72785) -const assert = __nccwpck_require__(39491) -const { InvalidArgumentError } = __nccwpck_require__(48045) -const EE = __nccwpck_require__(82361) + // 5. If fr’s state is not "loading", fire a progress + // event called loadend at the fr. + if (fr[kState] !== 'loading') { + fireAProgressEvent('loadend', fr) + } + }) -const redirectableStatusCodes = [300, 301, 302, 303, 307, 308] + break + } + } catch (error) { + if (fr[kAborted]) { + return + } -const kBody = Symbol('body') + // 6. Otherwise, if chunkPromise is rejected with an + // error error, queue a task to run the following + // steps and abort this algorithm: + queueMicrotask(() => { + // 1. Set fr’s state to "done". + fr[kState] = 'done' -class BodyAsyncIterable { - constructor (body) { - this[kBody] = body - this[kBodyUsed] = false - } + // 2. Set fr’s error to error. + fr[kError] = error - async * [Symbol.asyncIterator] () { - assert(!this[kBodyUsed], 'disturbed') - this[kBodyUsed] = true - yield * this[kBody] - } -} + // 3. Fire a progress event called error at fr. + fireAProgressEvent('error', fr) -class RedirectHandler { - constructor (dispatch, maxRedirections, opts, handler) { - if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) { - throw new InvalidArgumentError('maxRedirections must be a positive number') - } + // 4. If fr’s state is not "loading", fire a progress + // event called loadend at fr. + if (fr[kState] !== 'loading') { + fireAProgressEvent('loadend', fr) + } + }) - util.validateHandler(handler, opts.method, opts.upgrade) - - this.dispatch = dispatch - this.location = null - this.abort = null - this.opts = { ...opts, maxRedirections: 0 } // opts must be a copy - this.maxRedirections = maxRedirections - this.handler = handler - this.history = [] - - if (util.isStream(this.opts.body)) { - // TODO (fix): Provide some way for the user to cache the file to e.g. /tmp - // so that it can be dispatched again? - // TODO (fix): Do we need 100-expect support to provide a way to do this properly? - if (util.bodyLength(this.opts.body) === 0) { - this.opts.body - .on('data', function () { - assert(false) - }) + break + } + } + })() } - if (typeof this.opts.body.readableDidRead !== 'boolean') { - this.opts.body[kBodyUsed] = false - EE.prototype.on.call(this.opts.body, 'data', function () { - this[kBodyUsed] = true + /** + * @see https://w3c.github.io/FileAPI/#fire-a-progress-event + * @see https://dom.spec.whatwg.org/#concept-event-fire + * @param {string} e The name of the event + * @param {import('./filereader').FileReader} reader + */ + function fireAProgressEvent(e, reader) { + // The progress event e does not bubble. e.bubbles must be false + // The progress event e is NOT cancelable. e.cancelable must be false + const event = new ProgressEvent(e, { + bubbles: false, + cancelable: false }) + + reader.dispatchEvent(event) } - } else if (this.opts.body && typeof this.opts.body.pipeTo === 'function') { - // TODO (fix): We can't access ReadableStream internal state - // to determine whether or not it has been disturbed. This is just - // a workaround. - this.opts.body = new BodyAsyncIterable(this.opts.body) - } else if ( - this.opts.body && - typeof this.opts.body !== 'string' && - !ArrayBuffer.isView(this.opts.body) && - util.isIterable(this.opts.body) - ) { - // TODO: Should we allow re-using iterable if !this.opts.idempotent - // or through some other flag? - this.opts.body = new BodyAsyncIterable(this.opts.body) - } - } - onConnect (abort) { - this.abort = abort - this.handler.onConnect(abort, { history: this.history }) - } + /** + * @see https://w3c.github.io/FileAPI/#blob-package-data + * @param {Uint8Array[]} bytes + * @param {string} type + * @param {string?} mimeType + * @param {string?} encodingName + */ + function packageData(bytes, type, mimeType, encodingName) { + // 1. A Blob has an associated package data algorithm, given + // bytes, a type, a optional mimeType, and a optional + // encodingName, which switches on type and runs the + // associated steps: + + switch (type) { + case 'DataURL': { + // 1. Return bytes as a DataURL [RFC2397] subject to + // the considerations below: + // * Use mimeType as part of the Data URL if it is + // available in keeping with the Data URL + // specification [RFC2397]. + // * If mimeType is not available return a Data URL + // without a media-type. [RFC2397]. + + // https://datatracker.ietf.org/doc/html/rfc2397#section-3 + // dataurl := "data:" [ mediatype ] [ ";base64" ] "," data + // mediatype := [ type "/" subtype ] *( ";" parameter ) + // data := *urlchar + // parameter := attribute "=" value + let dataURL = 'data:' + + const parsed = parseMIMEType(mimeType || 'application/octet-stream') + + if (parsed !== 'failure') { + dataURL += serializeAMimeType(parsed) + } - onUpgrade (statusCode, headers, socket) { - this.handler.onUpgrade(statusCode, headers, socket) - } + dataURL += ';base64,' - onError (error) { - this.handler.onError(error) - } + const decoder = new StringDecoder('latin1') - onHeaders (statusCode, headers, resume, statusText) { - this.location = this.history.length >= this.maxRedirections || util.isDisturbed(this.opts.body) - ? null - : parseLocation(statusCode, headers) + for (const chunk of bytes) { + dataURL += btoa(decoder.write(chunk)) + } - if (this.opts.origin) { - this.history.push(new URL(this.opts.path, this.opts.origin)) - } + dataURL += btoa(decoder.end()) - if (!this.location) { - return this.handler.onHeaders(statusCode, headers, resume, statusText) - } + return dataURL + } + case 'Text': { + // 1. Let encoding be failure + let encoding = 'failure' + + // 2. If the encodingName is present, set encoding to the + // result of getting an encoding from encodingName. + if (encodingName) { + encoding = getEncoding(encodingName) + } - const { origin, pathname, search } = util.parseURL(new URL(this.location, this.opts.origin && new URL(this.opts.path, this.opts.origin))) - const path = search ? `${pathname}${search}` : pathname - - // Remove headers referring to the original URL. - // By default it is Host only, unless it's a 303 (see below), which removes also all Content-* headers. - // https://tools.ietf.org/html/rfc7231#section-6.4 - this.opts.headers = cleanRequestHeaders(this.opts.headers, statusCode === 303, this.opts.origin !== origin) - this.opts.path = path - this.opts.origin = origin - this.opts.maxRedirections = 0 - this.opts.query = null - - // https://tools.ietf.org/html/rfc7231#section-6.4.4 - // In case of HTTP 303, always replace method to be either HEAD or GET - if (statusCode === 303 && this.opts.method !== 'HEAD') { - this.opts.method = 'GET' - this.opts.body = null - } - } + // 3. If encoding is failure, and mimeType is present: + if (encoding === 'failure' && mimeType) { + // 1. Let type be the result of parse a MIME type + // given mimeType. + const type = parseMIMEType(mimeType) - onData (chunk) { - if (this.location) { - /* - https://tools.ietf.org/html/rfc7231#section-6.4 + // 2. If type is not failure, set encoding to the result + // of getting an encoding from type’s parameters["charset"]. + if (type !== 'failure') { + encoding = getEncoding(type.parameters.get('charset')) + } + } - TLDR: undici always ignores 3xx response bodies. + // 4. If encoding is failure, then set encoding to UTF-8. + if (encoding === 'failure') { + encoding = 'UTF-8' + } - Redirection is used to serve the requested resource from another URL, so it is assumes that - no body is generated (and thus can be ignored). Even though generating a body is not prohibited. + // 5. Decode bytes using fallback encoding encoding, and + // return the result. + return decode(bytes, encoding) + } + case 'ArrayBuffer': { + // Return a new ArrayBuffer whose contents are bytes. + const sequence = combineByteSequences(bytes) - For status 301, 302, 303, 307 and 308 (the latter from RFC 7238), the specs mention that the body usually - (which means it's optional and not mandated) contain just an hyperlink to the value of - the Location response header, so the body can be ignored safely. + return sequence.buffer + } + case 'BinaryString': { + // Return bytes as a binary string, in which every byte + // is represented by a code unit of equal value [0..255]. + let binaryString = '' - For status 300, which is "Multiple Choices", the spec mentions both generating a Location - response header AND a response body with the other possible location to follow. - Since the spec explicitily chooses not to specify a format for such body and leave it to - servers and browsers implementors, we ignore the body as there is no specified way to eventually parse it. - */ - } else { - return this.handler.onData(chunk) - } - } + const decoder = new StringDecoder('latin1') - onComplete (trailers) { - if (this.location) { - /* - https://tools.ietf.org/html/rfc7231#section-6.4 + for (const chunk of bytes) { + binaryString += decoder.write(chunk) + } - TLDR: undici always ignores 3xx response trailers as they are not expected in case of redirections - and neither are useful if present. + binaryString += decoder.end() - See comment on onData method above for more detailed informations. - */ + return binaryString + } + } + } - this.location = null - this.abort = null + /** + * @see https://encoding.spec.whatwg.org/#decode + * @param {Uint8Array[]} ioQueue + * @param {string} encoding + */ + function decode(ioQueue, encoding) { + const bytes = combineByteSequences(ioQueue) - this.dispatch(this.opts, this) - } else { - this.handler.onComplete(trailers) - } - } + // 1. Let BOMEncoding be the result of BOM sniffing ioQueue. + const BOMEncoding = BOMSniffing(bytes) - onBodySent (chunk) { - if (this.handler.onBodySent) { - this.handler.onBodySent(chunk) - } - } -} + let slice = 0 -function parseLocation (statusCode, headers) { - if (redirectableStatusCodes.indexOf(statusCode) === -1) { - return null - } + // 2. If BOMEncoding is non-null: + if (BOMEncoding !== null) { + // 1. Set encoding to BOMEncoding. + encoding = BOMEncoding - for (let i = 0; i < headers.length; i += 2) { - if (headers[i].toString().toLowerCase() === 'location') { - return headers[i + 1] - } - } -} + // 2. Read three bytes from ioQueue, if BOMEncoding is + // UTF-8; otherwise read two bytes. + // (Do nothing with those bytes.) + slice = BOMEncoding === 'UTF-8' ? 3 : 2 + } -// https://tools.ietf.org/html/rfc7231#section-6.4.4 -function shouldRemoveHeader (header, removeContent, unknownOrigin) { - if (header.length === 4) { - return util.headerNameToString(header) === 'host' - } - if (removeContent && util.headerNameToString(header).startsWith('content-')) { - return true - } - if (unknownOrigin && (header.length === 13 || header.length === 6 || header.length === 19)) { - const name = util.headerNameToString(header) - return name === 'authorization' || name === 'cookie' || name === 'proxy-authorization' - } - return false -} + // 3. Process a queue with an instance of encoding’s + // decoder, ioQueue, output, and "replacement". -// https://tools.ietf.org/html/rfc7231#section-6.4 -function cleanRequestHeaders (headers, removeContent, unknownOrigin) { - const ret = [] - if (Array.isArray(headers)) { - for (let i = 0; i < headers.length; i += 2) { - if (!shouldRemoveHeader(headers[i], removeContent, unknownOrigin)) { - ret.push(headers[i], headers[i + 1]) - } - } - } else if (headers && typeof headers === 'object') { - for (const key of Object.keys(headers)) { - if (!shouldRemoveHeader(key, removeContent, unknownOrigin)) { - ret.push(key, headers[key]) - } - } - } else { - assert(headers == null, 'headers must be an object or an array') - } - return ret -} - -module.exports = RedirectHandler - - -/***/ }), - -/***/ 82286: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -const assert = __nccwpck_require__(39491) - -const { kRetryHandlerDefaultRetry } = __nccwpck_require__(72785) -const { RequestRetryError } = __nccwpck_require__(48045) -const { isDisturbed, parseHeaders, parseRangeHeader } = __nccwpck_require__(83983) - -function calculateRetryAfterHeader (retryAfter) { - const current = Date.now() - const diff = new Date(retryAfter).getTime() - current - - return diff -} - -class RetryHandler { - constructor (opts, handlers) { - const { retryOptions, ...dispatchOpts } = opts - const { - // Retry scoped - retry: retryFn, - maxRetries, - maxTimeout, - minTimeout, - timeoutFactor, - // Response scoped - methods, - errorCodes, - retryAfter, - statusCodes - } = retryOptions ?? {} - - this.dispatch = handlers.dispatch - this.handler = handlers.handler - this.opts = dispatchOpts - this.abort = null - this.aborted = false - this.retryOpts = { - retry: retryFn ?? RetryHandler[kRetryHandlerDefaultRetry], - retryAfter: retryAfter ?? true, - maxTimeout: maxTimeout ?? 30 * 1000, // 30s, - timeout: minTimeout ?? 500, // .5s - timeoutFactor: timeoutFactor ?? 2, - maxRetries: maxRetries ?? 5, - // What errors we should retry - methods: methods ?? ['GET', 'HEAD', 'OPTIONS', 'PUT', 'DELETE', 'TRACE'], - // Indicates which errors to retry - statusCodes: statusCodes ?? [500, 502, 503, 504, 429], - // List of errors to retry - errorCodes: errorCodes ?? [ - 'ECONNRESET', - 'ECONNREFUSED', - 'ENOTFOUND', - 'ENETDOWN', - 'ENETUNREACH', - 'EHOSTDOWN', - 'EHOSTUNREACH', - 'EPIPE' - ] - } + // 4. Return output. - this.retryCount = 0 - this.start = 0 - this.end = null - this.etag = null - this.resume = null - - // Handle possible onConnect duplication - this.handler.onConnect(reason => { - this.aborted = true - if (this.abort) { - this.abort(reason) - } else { - this.reason = reason + const sliced = bytes.slice(slice) + return new TextDecoder(encoding).decode(sliced) } - }) - } - - onRequestSent () { - if (this.handler.onRequestSent) { - this.handler.onRequestSent() - } - } - onUpgrade (statusCode, headers, socket) { - if (this.handler.onUpgrade) { - this.handler.onUpgrade(statusCode, headers, socket) - } - } + /** + * @see https://encoding.spec.whatwg.org/#bom-sniff + * @param {Uint8Array} ioQueue + */ + function BOMSniffing(ioQueue) { + // 1. Let BOM be the result of peeking 3 bytes from ioQueue, + // converted to a byte sequence. + const [a, b, c] = ioQueue + + // 2. For each of the rows in the table below, starting with + // the first one and going down, if BOM starts with the + // bytes given in the first column, then return the + // encoding given in the cell in the second column of that + // row. Otherwise, return null. + if (a === 0xef && b === 0xbb && c === 0xbf) { + return 'UTF-8' + } else if (a === 0xfe && b === 0xff) { + return 'UTF-16BE' + } else if (a === 0xff && b === 0xfe) { + return 'UTF-16LE' + } - onConnect (abort) { - if (this.aborted) { - abort(this.reason) - } else { - this.abort = abort - } - } + return null + } - onBodySent (chunk) { - if (this.handler.onBodySent) return this.handler.onBodySent(chunk) - } + /** + * @param {Uint8Array[]} sequences + */ + function combineByteSequences(sequences) { + const size = sequences.reduce((a, b) => { + return a + b.byteLength + }, 0) - static [kRetryHandlerDefaultRetry] (err, { state, opts }, cb) { - const { statusCode, code, headers } = err - const { method, retryOptions } = opts - const { - maxRetries, - timeout, - maxTimeout, - timeoutFactor, - statusCodes, - errorCodes, - methods - } = retryOptions - let { counter, currentTimeout } = state - - currentTimeout = - currentTimeout != null && currentTimeout > 0 ? currentTimeout : timeout - - // Any code that is not a Undici's originated and allowed to retry - if ( - code && - code !== 'UND_ERR_REQ_RETRY' && - code !== 'UND_ERR_SOCKET' && - !errorCodes.includes(code) - ) { - cb(err) - return - } + let offset = 0 - // If a set of method are provided and the current method is not in the list - if (Array.isArray(methods) && !methods.includes(method)) { - cb(err) - return - } + return sequences.reduce((a, b) => { + a.set(b, offset) + offset += b.byteLength + return a + }, new Uint8Array(size)) + } - // If a set of status code are provided and the current status code is not in the list - if ( - statusCode != null && - Array.isArray(statusCodes) && - !statusCodes.includes(statusCode) - ) { - cb(err) - return - } + module.exports = { + staticPropertyDescriptors, + readOperation, + fireAProgressEvent + } - // If we reached the max number of retries - if (counter > maxRetries) { - cb(err) - return - } + /***/ + }, - let retryAfterHeader = headers != null && headers['retry-after'] - if (retryAfterHeader) { - retryAfterHeader = Number(retryAfterHeader) - retryAfterHeader = isNaN(retryAfterHeader) - ? calculateRetryAfterHeader(retryAfterHeader) - : retryAfterHeader * 1e3 // Retry-After is in seconds - } + /***/ 21892: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' - const retryTimeout = - retryAfterHeader > 0 - ? Math.min(retryAfterHeader, maxTimeout) - : Math.min(currentTimeout * timeoutFactor ** counter, maxTimeout) + // We include a version number for the Dispatcher API. In case of breaking changes, + // this version number must be increased to avoid conflicts. + const globalDispatcher = Symbol.for('undici.globalDispatcher.1') + const { InvalidArgumentError } = __nccwpck_require__(48045) + const Agent = __nccwpck_require__(7890) - state.currentTimeout = retryTimeout + if (getGlobalDispatcher() === undefined) { + setGlobalDispatcher(new Agent()) + } - setTimeout(() => cb(null), retryTimeout) - } + function setGlobalDispatcher(agent) { + if (!agent || typeof agent.dispatch !== 'function') { + throw new InvalidArgumentError('Argument agent must implement Agent') + } + Object.defineProperty(globalThis, globalDispatcher, { + value: agent, + writable: true, + enumerable: false, + configurable: false + }) + } - onHeaders (statusCode, rawHeaders, resume, statusMessage) { - const headers = parseHeaders(rawHeaders) + function getGlobalDispatcher() { + return globalThis[globalDispatcher] + } - this.retryCount += 1 + module.exports = { + setGlobalDispatcher, + getGlobalDispatcher + } - if (statusCode >= 300) { - this.abort( - new RequestRetryError('Request failed', statusCode, { - headers, - count: this.retryCount - }) - ) - return false - } + /***/ + }, - // Checkpoint for resume from where we left it - if (this.resume != null) { - this.resume = null + /***/ 46930: /***/ module => { + 'use strict' - if (statusCode !== 206) { - return true - } + module.exports = class DecoratorHandler { + constructor(handler) { + this.handler = handler + } - const contentRange = parseRangeHeader(headers['content-range']) - // If no content range - if (!contentRange) { - this.abort( - new RequestRetryError('Content-Range mismatch', statusCode, { - headers, - count: this.retryCount - }) - ) - return false - } + onConnect(...args) { + return this.handler.onConnect(...args) + } - // Let's start with a weak etag check - if (this.etag != null && this.etag !== headers.etag) { - this.abort( - new RequestRetryError('ETag mismatch', statusCode, { - headers, - count: this.retryCount - }) - ) - return false - } + onError(...args) { + return this.handler.onError(...args) + } - const { start, size, end = size } = contentRange + onUpgrade(...args) { + return this.handler.onUpgrade(...args) + } - assert(this.start === start, 'content-range mismatch') - assert(this.end == null || this.end === end, 'content-range mismatch') + onHeaders(...args) { + return this.handler.onHeaders(...args) + } - this.resume = resume - return true - } + onData(...args) { + return this.handler.onData(...args) + } - if (this.end == null) { - if (statusCode === 206) { - // First time we receive 206 - const range = parseRangeHeader(headers['content-range']) + onComplete(...args) { + return this.handler.onComplete(...args) + } - if (range == null) { - return this.handler.onHeaders( - statusCode, - rawHeaders, - resume, - statusMessage - ) + onBodySent(...args) { + return this.handler.onBodySent(...args) } + } - const { start, size, end = size } = range + /***/ + }, - assert( - start != null && Number.isFinite(start) && this.start !== start, - 'content-range mismatch' - ) - assert(Number.isFinite(start)) - assert( - end != null && Number.isFinite(end) && this.end !== end, - 'invalid content-length' - ) + /***/ 72860: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' - this.start = start - this.end = end - } + const util = __nccwpck_require__(83983) + const { kBodyUsed } = __nccwpck_require__(72785) + const assert = __nccwpck_require__(39491) + const { InvalidArgumentError } = __nccwpck_require__(48045) + const EE = __nccwpck_require__(82361) - // We make our best to checkpoint the body for further range headers - if (this.end == null) { - const contentLength = headers['content-length'] - this.end = contentLength != null ? Number(contentLength) : null - } + const redirectableStatusCodes = [300, 301, 302, 303, 307, 308] - assert(Number.isFinite(this.start)) - assert( - this.end == null || Number.isFinite(this.end), - 'invalid content-length' - ) + const kBody = Symbol('body') - this.resume = resume - this.etag = headers.etag != null ? headers.etag : null + class BodyAsyncIterable { + constructor(body) { + this[kBody] = body + this[kBodyUsed] = false + } - return this.handler.onHeaders( - statusCode, - rawHeaders, - resume, - statusMessage - ) - } + async *[Symbol.asyncIterator]() { + assert(!this[kBodyUsed], 'disturbed') + this[kBodyUsed] = true + yield* this[kBody] + } + } - const err = new RequestRetryError('Request failed', statusCode, { - headers, - count: this.retryCount - }) + class RedirectHandler { + constructor(dispatch, maxRedirections, opts, handler) { + if ( + maxRedirections != null && + (!Number.isInteger(maxRedirections) || maxRedirections < 0) + ) { + throw new InvalidArgumentError( + 'maxRedirections must be a positive number' + ) + } - this.abort(err) + util.validateHandler(handler, opts.method, opts.upgrade) + + this.dispatch = dispatch + this.location = null + this.abort = null + this.opts = { ...opts, maxRedirections: 0 } // opts must be a copy + this.maxRedirections = maxRedirections + this.handler = handler + this.history = [] + + if (util.isStream(this.opts.body)) { + // TODO (fix): Provide some way for the user to cache the file to e.g. /tmp + // so that it can be dispatched again? + // TODO (fix): Do we need 100-expect support to provide a way to do this properly? + if (util.bodyLength(this.opts.body) === 0) { + this.opts.body.on('data', function () { + assert(false) + }) + } - return false - } + if (typeof this.opts.body.readableDidRead !== 'boolean') { + this.opts.body[kBodyUsed] = false + EE.prototype.on.call(this.opts.body, 'data', function () { + this[kBodyUsed] = true + }) + } + } else if ( + this.opts.body && + typeof this.opts.body.pipeTo === 'function' + ) { + // TODO (fix): We can't access ReadableStream internal state + // to determine whether or not it has been disturbed. This is just + // a workaround. + this.opts.body = new BodyAsyncIterable(this.opts.body) + } else if ( + this.opts.body && + typeof this.opts.body !== 'string' && + !ArrayBuffer.isView(this.opts.body) && + util.isIterable(this.opts.body) + ) { + // TODO: Should we allow re-using iterable if !this.opts.idempotent + // or through some other flag? + this.opts.body = new BodyAsyncIterable(this.opts.body) + } + } - onData (chunk) { - this.start += chunk.length + onConnect(abort) { + this.abort = abort + this.handler.onConnect(abort, { history: this.history }) + } - return this.handler.onData(chunk) - } + onUpgrade(statusCode, headers, socket) { + this.handler.onUpgrade(statusCode, headers, socket) + } - onComplete (rawTrailers) { - this.retryCount = 0 - return this.handler.onComplete(rawTrailers) - } + onError(error) { + this.handler.onError(error) + } - onError (err) { - if (this.aborted || isDisturbed(this.opts.body)) { - return this.handler.onError(err) - } + onHeaders(statusCode, headers, resume, statusText) { + this.location = + this.history.length >= this.maxRedirections || + util.isDisturbed(this.opts.body) + ? null + : parseLocation(statusCode, headers) - this.retryOpts.retry( - err, - { - state: { counter: this.retryCount++, currentTimeout: this.retryAfter }, - opts: { retryOptions: this.retryOpts, ...this.opts } - }, - onRetry.bind(this) - ) + if (this.opts.origin) { + this.history.push(new URL(this.opts.path, this.opts.origin)) + } - function onRetry (err) { - if (err != null || this.aborted || isDisturbed(this.opts.body)) { - return this.handler.onError(err) - } + if (!this.location) { + return this.handler.onHeaders( + statusCode, + headers, + resume, + statusText + ) + } - if (this.start !== 0) { - this.opts = { - ...this.opts, - headers: { - ...this.opts.headers, - range: `bytes=${this.start}-${this.end ?? ''}` + const { origin, pathname, search } = util.parseURL( + new URL( + this.location, + this.opts.origin && new URL(this.opts.path, this.opts.origin) + ) + ) + const path = search ? `${pathname}${search}` : pathname + + // Remove headers referring to the original URL. + // By default it is Host only, unless it's a 303 (see below), which removes also all Content-* headers. + // https://tools.ietf.org/html/rfc7231#section-6.4 + this.opts.headers = cleanRequestHeaders( + this.opts.headers, + statusCode === 303, + this.opts.origin !== origin + ) + this.opts.path = path + this.opts.origin = origin + this.opts.maxRedirections = 0 + this.opts.query = null + + // https://tools.ietf.org/html/rfc7231#section-6.4.4 + // In case of HTTP 303, always replace method to be either HEAD or GET + if (statusCode === 303 && this.opts.method !== 'HEAD') { + this.opts.method = 'GET' + this.opts.body = null } } - } - try { - this.dispatch(this.opts, this) - } catch (err) { - this.handler.onError(err) - } - } - } -} + onData(chunk) { + if (this.location) { + /* + https://tools.ietf.org/html/rfc7231#section-6.4 -module.exports = RetryHandler + TLDR: undici always ignores 3xx response bodies. + + Redirection is used to serve the requested resource from another URL, so it is assumes that + no body is generated (and thus can be ignored). Even though generating a body is not prohibited. + For status 301, 302, 303, 307 and 308 (the latter from RFC 7238), the specs mention that the body usually + (which means it's optional and not mandated) contain just an hyperlink to the value of + the Location response header, so the body can be ignored safely. -/***/ }), + For status 300, which is "Multiple Choices", the spec mentions both generating a Location + response header AND a response body with the other possible location to follow. + Since the spec explicitily chooses not to specify a format for such body and leave it to + servers and browsers implementors, we ignore the body as there is no specified way to eventually parse it. + */ + } else { + return this.handler.onData(chunk) + } + } -/***/ 38861: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + onComplete(trailers) { + if (this.location) { + /* + https://tools.ietf.org/html/rfc7231#section-6.4 -"use strict"; + TLDR: undici always ignores 3xx response trailers as they are not expected in case of redirections + and neither are useful if present. + See comment on onData method above for more detailed informations. + */ -const RedirectHandler = __nccwpck_require__(72860) + this.location = null + this.abort = null -function createRedirectInterceptor ({ maxRedirections: defaultMaxRedirections }) { - return (dispatch) => { - return function Intercept (opts, handler) { - const { maxRedirections = defaultMaxRedirections } = opts + this.dispatch(this.opts, this) + } else { + this.handler.onComplete(trailers) + } + } - if (!maxRedirections) { - return dispatch(opts, handler) + onBodySent(chunk) { + if (this.handler.onBodySent) { + this.handler.onBodySent(chunk) + } + } } - const redirectHandler = new RedirectHandler(dispatch, maxRedirections, opts, handler) - opts = { ...opts, maxRedirections: 0 } // Stop sub dispatcher from also redirecting. - return dispatch(opts, redirectHandler) - } - } -} - -module.exports = createRedirectInterceptor - - -/***/ }), - -/***/ 30953: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.SPECIAL_HEADERS = exports.HEADER_STATE = exports.MINOR = exports.MAJOR = exports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS = exports.TOKEN = exports.STRICT_TOKEN = exports.HEX = exports.URL_CHAR = exports.STRICT_URL_CHAR = exports.USERINFO_CHARS = exports.MARK = exports.ALPHANUM = exports.NUM = exports.HEX_MAP = exports.NUM_MAP = exports.ALPHA = exports.FINISH = exports.H_METHOD_MAP = exports.METHOD_MAP = exports.METHODS_RTSP = exports.METHODS_ICE = exports.METHODS_HTTP = exports.METHODS = exports.LENIENT_FLAGS = exports.FLAGS = exports.TYPE = exports.ERROR = void 0; -const utils_1 = __nccwpck_require__(41891); -// C headers -var ERROR; -(function (ERROR) { - ERROR[ERROR["OK"] = 0] = "OK"; - ERROR[ERROR["INTERNAL"] = 1] = "INTERNAL"; - ERROR[ERROR["STRICT"] = 2] = "STRICT"; - ERROR[ERROR["LF_EXPECTED"] = 3] = "LF_EXPECTED"; - ERROR[ERROR["UNEXPECTED_CONTENT_LENGTH"] = 4] = "UNEXPECTED_CONTENT_LENGTH"; - ERROR[ERROR["CLOSED_CONNECTION"] = 5] = "CLOSED_CONNECTION"; - ERROR[ERROR["INVALID_METHOD"] = 6] = "INVALID_METHOD"; - ERROR[ERROR["INVALID_URL"] = 7] = "INVALID_URL"; - ERROR[ERROR["INVALID_CONSTANT"] = 8] = "INVALID_CONSTANT"; - ERROR[ERROR["INVALID_VERSION"] = 9] = "INVALID_VERSION"; - ERROR[ERROR["INVALID_HEADER_TOKEN"] = 10] = "INVALID_HEADER_TOKEN"; - ERROR[ERROR["INVALID_CONTENT_LENGTH"] = 11] = "INVALID_CONTENT_LENGTH"; - ERROR[ERROR["INVALID_CHUNK_SIZE"] = 12] = "INVALID_CHUNK_SIZE"; - ERROR[ERROR["INVALID_STATUS"] = 13] = "INVALID_STATUS"; - ERROR[ERROR["INVALID_EOF_STATE"] = 14] = "INVALID_EOF_STATE"; - ERROR[ERROR["INVALID_TRANSFER_ENCODING"] = 15] = "INVALID_TRANSFER_ENCODING"; - ERROR[ERROR["CB_MESSAGE_BEGIN"] = 16] = "CB_MESSAGE_BEGIN"; - ERROR[ERROR["CB_HEADERS_COMPLETE"] = 17] = "CB_HEADERS_COMPLETE"; - ERROR[ERROR["CB_MESSAGE_COMPLETE"] = 18] = "CB_MESSAGE_COMPLETE"; - ERROR[ERROR["CB_CHUNK_HEADER"] = 19] = "CB_CHUNK_HEADER"; - ERROR[ERROR["CB_CHUNK_COMPLETE"] = 20] = "CB_CHUNK_COMPLETE"; - ERROR[ERROR["PAUSED"] = 21] = "PAUSED"; - ERROR[ERROR["PAUSED_UPGRADE"] = 22] = "PAUSED_UPGRADE"; - ERROR[ERROR["PAUSED_H2_UPGRADE"] = 23] = "PAUSED_H2_UPGRADE"; - ERROR[ERROR["USER"] = 24] = "USER"; -})(ERROR = exports.ERROR || (exports.ERROR = {})); -var TYPE; -(function (TYPE) { - TYPE[TYPE["BOTH"] = 0] = "BOTH"; - TYPE[TYPE["REQUEST"] = 1] = "REQUEST"; - TYPE[TYPE["RESPONSE"] = 2] = "RESPONSE"; -})(TYPE = exports.TYPE || (exports.TYPE = {})); -var FLAGS; -(function (FLAGS) { - FLAGS[FLAGS["CONNECTION_KEEP_ALIVE"] = 1] = "CONNECTION_KEEP_ALIVE"; - FLAGS[FLAGS["CONNECTION_CLOSE"] = 2] = "CONNECTION_CLOSE"; - FLAGS[FLAGS["CONNECTION_UPGRADE"] = 4] = "CONNECTION_UPGRADE"; - FLAGS[FLAGS["CHUNKED"] = 8] = "CHUNKED"; - FLAGS[FLAGS["UPGRADE"] = 16] = "UPGRADE"; - FLAGS[FLAGS["CONTENT_LENGTH"] = 32] = "CONTENT_LENGTH"; - FLAGS[FLAGS["SKIPBODY"] = 64] = "SKIPBODY"; - FLAGS[FLAGS["TRAILING"] = 128] = "TRAILING"; - // 1 << 8 is unused - FLAGS[FLAGS["TRANSFER_ENCODING"] = 512] = "TRANSFER_ENCODING"; -})(FLAGS = exports.FLAGS || (exports.FLAGS = {})); -var LENIENT_FLAGS; -(function (LENIENT_FLAGS) { - LENIENT_FLAGS[LENIENT_FLAGS["HEADERS"] = 1] = "HEADERS"; - LENIENT_FLAGS[LENIENT_FLAGS["CHUNKED_LENGTH"] = 2] = "CHUNKED_LENGTH"; - LENIENT_FLAGS[LENIENT_FLAGS["KEEP_ALIVE"] = 4] = "KEEP_ALIVE"; -})(LENIENT_FLAGS = exports.LENIENT_FLAGS || (exports.LENIENT_FLAGS = {})); -var METHODS; -(function (METHODS) { - METHODS[METHODS["DELETE"] = 0] = "DELETE"; - METHODS[METHODS["GET"] = 1] = "GET"; - METHODS[METHODS["HEAD"] = 2] = "HEAD"; - METHODS[METHODS["POST"] = 3] = "POST"; - METHODS[METHODS["PUT"] = 4] = "PUT"; - /* pathological */ - METHODS[METHODS["CONNECT"] = 5] = "CONNECT"; - METHODS[METHODS["OPTIONS"] = 6] = "OPTIONS"; - METHODS[METHODS["TRACE"] = 7] = "TRACE"; - /* WebDAV */ - METHODS[METHODS["COPY"] = 8] = "COPY"; - METHODS[METHODS["LOCK"] = 9] = "LOCK"; - METHODS[METHODS["MKCOL"] = 10] = "MKCOL"; - METHODS[METHODS["MOVE"] = 11] = "MOVE"; - METHODS[METHODS["PROPFIND"] = 12] = "PROPFIND"; - METHODS[METHODS["PROPPATCH"] = 13] = "PROPPATCH"; - METHODS[METHODS["SEARCH"] = 14] = "SEARCH"; - METHODS[METHODS["UNLOCK"] = 15] = "UNLOCK"; - METHODS[METHODS["BIND"] = 16] = "BIND"; - METHODS[METHODS["REBIND"] = 17] = "REBIND"; - METHODS[METHODS["UNBIND"] = 18] = "UNBIND"; - METHODS[METHODS["ACL"] = 19] = "ACL"; - /* subversion */ - METHODS[METHODS["REPORT"] = 20] = "REPORT"; - METHODS[METHODS["MKACTIVITY"] = 21] = "MKACTIVITY"; - METHODS[METHODS["CHECKOUT"] = 22] = "CHECKOUT"; - METHODS[METHODS["MERGE"] = 23] = "MERGE"; - /* upnp */ - METHODS[METHODS["M-SEARCH"] = 24] = "M-SEARCH"; - METHODS[METHODS["NOTIFY"] = 25] = "NOTIFY"; - METHODS[METHODS["SUBSCRIBE"] = 26] = "SUBSCRIBE"; - METHODS[METHODS["UNSUBSCRIBE"] = 27] = "UNSUBSCRIBE"; - /* RFC-5789 */ - METHODS[METHODS["PATCH"] = 28] = "PATCH"; - METHODS[METHODS["PURGE"] = 29] = "PURGE"; - /* CalDAV */ - METHODS[METHODS["MKCALENDAR"] = 30] = "MKCALENDAR"; - /* RFC-2068, section 19.6.1.2 */ - METHODS[METHODS["LINK"] = 31] = "LINK"; - METHODS[METHODS["UNLINK"] = 32] = "UNLINK"; - /* icecast */ - METHODS[METHODS["SOURCE"] = 33] = "SOURCE"; - /* RFC-7540, section 11.6 */ - METHODS[METHODS["PRI"] = 34] = "PRI"; - /* RFC-2326 RTSP */ - METHODS[METHODS["DESCRIBE"] = 35] = "DESCRIBE"; - METHODS[METHODS["ANNOUNCE"] = 36] = "ANNOUNCE"; - METHODS[METHODS["SETUP"] = 37] = "SETUP"; - METHODS[METHODS["PLAY"] = 38] = "PLAY"; - METHODS[METHODS["PAUSE"] = 39] = "PAUSE"; - METHODS[METHODS["TEARDOWN"] = 40] = "TEARDOWN"; - METHODS[METHODS["GET_PARAMETER"] = 41] = "GET_PARAMETER"; - METHODS[METHODS["SET_PARAMETER"] = 42] = "SET_PARAMETER"; - METHODS[METHODS["REDIRECT"] = 43] = "REDIRECT"; - METHODS[METHODS["RECORD"] = 44] = "RECORD"; - /* RAOP */ - METHODS[METHODS["FLUSH"] = 45] = "FLUSH"; -})(METHODS = exports.METHODS || (exports.METHODS = {})); -exports.METHODS_HTTP = [ - METHODS.DELETE, - METHODS.GET, - METHODS.HEAD, - METHODS.POST, - METHODS.PUT, - METHODS.CONNECT, - METHODS.OPTIONS, - METHODS.TRACE, - METHODS.COPY, - METHODS.LOCK, - METHODS.MKCOL, - METHODS.MOVE, - METHODS.PROPFIND, - METHODS.PROPPATCH, - METHODS.SEARCH, - METHODS.UNLOCK, - METHODS.BIND, - METHODS.REBIND, - METHODS.UNBIND, - METHODS.ACL, - METHODS.REPORT, - METHODS.MKACTIVITY, - METHODS.CHECKOUT, - METHODS.MERGE, - METHODS['M-SEARCH'], - METHODS.NOTIFY, - METHODS.SUBSCRIBE, - METHODS.UNSUBSCRIBE, - METHODS.PATCH, - METHODS.PURGE, - METHODS.MKCALENDAR, - METHODS.LINK, - METHODS.UNLINK, - METHODS.PRI, - // TODO(indutny): should we allow it with HTTP? - METHODS.SOURCE, -]; -exports.METHODS_ICE = [ - METHODS.SOURCE, -]; -exports.METHODS_RTSP = [ - METHODS.OPTIONS, - METHODS.DESCRIBE, - METHODS.ANNOUNCE, - METHODS.SETUP, - METHODS.PLAY, - METHODS.PAUSE, - METHODS.TEARDOWN, - METHODS.GET_PARAMETER, - METHODS.SET_PARAMETER, - METHODS.REDIRECT, - METHODS.RECORD, - METHODS.FLUSH, - // For AirPlay - METHODS.GET, - METHODS.POST, -]; -exports.METHOD_MAP = utils_1.enumToMap(METHODS); -exports.H_METHOD_MAP = {}; -Object.keys(exports.METHOD_MAP).forEach((key) => { - if (/^H/.test(key)) { - exports.H_METHOD_MAP[key] = exports.METHOD_MAP[key]; - } -}); -var FINISH; -(function (FINISH) { - FINISH[FINISH["SAFE"] = 0] = "SAFE"; - FINISH[FINISH["SAFE_WITH_CB"] = 1] = "SAFE_WITH_CB"; - FINISH[FINISH["UNSAFE"] = 2] = "UNSAFE"; -})(FINISH = exports.FINISH || (exports.FINISH = {})); -exports.ALPHA = []; -for (let i = 'A'.charCodeAt(0); i <= 'Z'.charCodeAt(0); i++) { - // Upper case - exports.ALPHA.push(String.fromCharCode(i)); - // Lower case - exports.ALPHA.push(String.fromCharCode(i + 0x20)); -} -exports.NUM_MAP = { - 0: 0, 1: 1, 2: 2, 3: 3, 4: 4, - 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, -}; -exports.HEX_MAP = { - 0: 0, 1: 1, 2: 2, 3: 3, 4: 4, - 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, - A: 0XA, B: 0XB, C: 0XC, D: 0XD, E: 0XE, F: 0XF, - a: 0xa, b: 0xb, c: 0xc, d: 0xd, e: 0xe, f: 0xf, -}; -exports.NUM = [ - '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', -]; -exports.ALPHANUM = exports.ALPHA.concat(exports.NUM); -exports.MARK = ['-', '_', '.', '!', '~', '*', '\'', '(', ')']; -exports.USERINFO_CHARS = exports.ALPHANUM - .concat(exports.MARK) - .concat(['%', ';', ':', '&', '=', '+', '$', ',']); -// TODO(indutny): use RFC -exports.STRICT_URL_CHAR = [ - '!', '"', '$', '%', '&', '\'', - '(', ')', '*', '+', ',', '-', '.', '/', - ':', ';', '<', '=', '>', - '@', '[', '\\', ']', '^', '_', - '`', - '{', '|', '}', '~', -].concat(exports.ALPHANUM); -exports.URL_CHAR = exports.STRICT_URL_CHAR - .concat(['\t', '\f']); -// All characters with 0x80 bit set to 1 -for (let i = 0x80; i <= 0xff; i++) { - exports.URL_CHAR.push(i); -} -exports.HEX = exports.NUM.concat(['a', 'b', 'c', 'd', 'e', 'f', 'A', 'B', 'C', 'D', 'E', 'F']); -/* Tokens as defined by rfc 2616. Also lowercases them. - * token = 1* - * separators = "(" | ")" | "<" | ">" | "@" - * | "," | ";" | ":" | "\" | <"> - * | "/" | "[" | "]" | "?" | "=" - * | "{" | "}" | SP | HT - */ -exports.STRICT_TOKEN = [ - '!', '#', '$', '%', '&', '\'', - '*', '+', '-', '.', - '^', '_', '`', - '|', '~', -].concat(exports.ALPHANUM); -exports.TOKEN = exports.STRICT_TOKEN.concat([' ']); -/* - * Verify that a char is a valid visible (printable) US-ASCII - * character or %x80-FF - */ -exports.HEADER_CHARS = ['\t']; -for (let i = 32; i <= 255; i++) { - if (i !== 127) { - exports.HEADER_CHARS.push(i); - } -} -// ',' = \x44 -exports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS.filter((c) => c !== 44); -exports.MAJOR = exports.NUM_MAP; -exports.MINOR = exports.MAJOR; -var HEADER_STATE; -(function (HEADER_STATE) { - HEADER_STATE[HEADER_STATE["GENERAL"] = 0] = "GENERAL"; - HEADER_STATE[HEADER_STATE["CONNECTION"] = 1] = "CONNECTION"; - HEADER_STATE[HEADER_STATE["CONTENT_LENGTH"] = 2] = "CONTENT_LENGTH"; - HEADER_STATE[HEADER_STATE["TRANSFER_ENCODING"] = 3] = "TRANSFER_ENCODING"; - HEADER_STATE[HEADER_STATE["UPGRADE"] = 4] = "UPGRADE"; - HEADER_STATE[HEADER_STATE["CONNECTION_KEEP_ALIVE"] = 5] = "CONNECTION_KEEP_ALIVE"; - HEADER_STATE[HEADER_STATE["CONNECTION_CLOSE"] = 6] = "CONNECTION_CLOSE"; - HEADER_STATE[HEADER_STATE["CONNECTION_UPGRADE"] = 7] = "CONNECTION_UPGRADE"; - HEADER_STATE[HEADER_STATE["TRANSFER_ENCODING_CHUNKED"] = 8] = "TRANSFER_ENCODING_CHUNKED"; -})(HEADER_STATE = exports.HEADER_STATE || (exports.HEADER_STATE = {})); -exports.SPECIAL_HEADERS = { - 'connection': HEADER_STATE.CONNECTION, - 'content-length': HEADER_STATE.CONTENT_LENGTH, - 'proxy-connection': HEADER_STATE.CONNECTION, - 'transfer-encoding': HEADER_STATE.TRANSFER_ENCODING, - 'upgrade': HEADER_STATE.UPGRADE, -}; -//# sourceMappingURL=constants.js.map - -/***/ }), - -/***/ 61145: -/***/ ((module) => { - -module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJsbGh0dHBfc3RhdHVzX25hbWUAIRpsbGh0dHBfc2V0X2xlbmllbnRfaGVhZGVycwAiIWxsaHR0cF9zZXRfbGVuaWVudF9jaHVua2VkX2xlbmd0aAAjHWxsaHR0cF9zZXRfbGVuaWVudF9rZWVwX2FsaXZlACQkbGxodHRwX3NldF9sZW5pZW50X3RyYW5zZmVyX2VuY29kaW5nACUYbGxodHRwX21lc3NhZ2VfbmVlZHNfZW9mAD8JFwEAQQELEQECAwQFCwYHNTk3MS8tJyspCsLgAkUCAAsIABCIgICAAAsZACAAEMKAgIAAGiAAIAI2AjggACABOgAoCxwAIAAgAC8BMiAALQAuIAAQwYCAgAAQgICAgAALKgEBf0HAABDGgICAACIBEMKAgIAAGiABQYCIgIAANgI4IAEgADoAKCABCwoAIAAQyICAgAALBwAgAC0AKAsHACAALQAqCwcAIAAtACsLBwAgAC0AKQsHACAALwEyCwcAIAAtAC4LRQEEfyAAKAIYIQEgAC0ALSECIAAtACghAyAAKAI4IQQgABDCgICAABogACAENgI4IAAgAzoAKCAAIAI6AC0gACABNgIYCxEAIAAgASABIAJqEMOAgIAACxAAIABBAEHcABDMgICAABoLZwEBf0EAIQECQCAAKAIMDQACQAJAAkACQCAALQAvDgMBAAMCCyAAKAI4IgFFDQAgASgCLCIBRQ0AIAAgARGAgICAAAAiAQ0DC0EADwsQyoCAgAAACyAAQcOWgIAANgIQQQ4hAQsgAQseAAJAIAAoAgwNACAAQdGbgIAANgIQIABBFTYCDAsLFgACQCAAKAIMQRVHDQAgAEEANgIMCwsWAAJAIAAoAgxBFkcNACAAQQA2AgwLCwcAIAAoAgwLBwAgACgCEAsJACAAIAE2AhALBwAgACgCFAsiAAJAIABBJEkNABDKgICAAAALIABBAnRBoLOAgABqKAIACyIAAkAgAEEuSQ0AEMqAgIAAAAsgAEECdEGwtICAAGooAgAL7gsBAX9B66iAgAAhAQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABBnH9qDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0Hhp4CAAA8LQaShgIAADwtBy6yAgAAPC0H+sYCAAA8LQcCkgIAADwtBq6SAgAAPC0GNqICAAA8LQeKmgIAADwtBgLCAgAAPC0G5r4CAAA8LQdekgIAADwtB75+AgAAPC0Hhn4CAAA8LQfqfgIAADwtB8qCAgAAPC0Gor4CAAA8LQa6ygIAADwtBiLCAgAAPC0Hsp4CAAA8LQYKigIAADwtBjp2AgAAPC0HQroCAAA8LQcqjgIAADwtBxbKAgAAPC0HfnICAAA8LQdKcgIAADwtBxKCAgAAPC0HXoICAAA8LQaKfgIAADwtB7a6AgAAPC0GrsICAAA8LQdSlgIAADwtBzK6AgAAPC0H6roCAAA8LQfyrgIAADwtB0rCAgAAPC0HxnYCAAA8LQbuggIAADwtB96uAgAAPC0GQsYCAAA8LQdexgIAADwtBoq2AgAAPC0HUp4CAAA8LQeCrgIAADwtBn6yAgAAPC0HrsYCAAA8LQdWfgIAADwtByrGAgAAPC0HepYCAAA8LQdSegIAADwtB9JyAgAAPC0GnsoCAAA8LQbGdgIAADwtBoJ2AgAAPC0G5sYCAAA8LQbywgIAADwtBkqGAgAAPC0GzpoCAAA8LQemsgIAADwtBrJ6AgAAPC0HUq4CAAA8LQfemgIAADwtBgKaAgAAPC0GwoYCAAA8LQf6egIAADwtBjaOAgAAPC0GJrYCAAA8LQfeigIAADwtBoLGAgAAPC0Gun4CAAA8LQcalgIAADwtB6J6AgAAPC0GTooCAAA8LQcKvgIAADwtBw52AgAAPC0GLrICAAA8LQeGdgIAADwtBja+AgAAPC0HqoYCAAA8LQbStgIAADwtB0q+AgAAPC0HfsoCAAA8LQdKygIAADwtB8LCAgAAPC0GpooCAAA8LQfmjgIAADwtBmZ6AgAAPC0G1rICAAA8LQZuwgIAADwtBkrKAgAAPC0G2q4CAAA8LQcKigIAADwtB+LKAgAAPC0GepYCAAA8LQdCigIAADwtBup6AgAAPC0GBnoCAAA8LEMqAgIAAAAtB1qGAgAAhAQsgAQsWACAAIAAtAC1B/gFxIAFBAEdyOgAtCxkAIAAgAC0ALUH9AXEgAUEAR0EBdHI6AC0LGQAgACAALQAtQfsBcSABQQBHQQJ0cjoALQsZACAAIAAtAC1B9wFxIAFBAEdBA3RyOgAtCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAgAiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCBCIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQcaRgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIwIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAggiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2ioCAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCNCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIMIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZqAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAjgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCECIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZWQgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAI8IgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAhQiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEGqm4CAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCQCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIYIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZOAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCJCIERQ0AIAAgBBGAgICAAAAhAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIsIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAigiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2iICAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCUCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIcIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABBwpmAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCICIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZSUgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAJMIgRFDQAgACAEEYCAgIAAACEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAlQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCWCIERQ0AIAAgBBGAgICAAAAhAwsgAwtFAQF/AkACQCAALwEwQRRxQRRHDQBBASEDIAAtAChBAUYNASAALwEyQeUARiEDDAELIAAtAClBBUYhAwsgACADOgAuQQAL/gEBA39BASEDAkAgAC8BMCIEQQhxDQAgACkDIEIAUiEDCwJAAkAgAC0ALkUNAEEBIQUgAC0AKUEFRg0BQQEhBSAEQcAAcUUgA3FBAUcNAQtBACEFIARBwABxDQBBAiEFIARB//8DcSIDQQhxDQACQCADQYAEcUUNAAJAIAAtAChBAUcNACAALQAtQQpxDQBBBQ8LQQQPCwJAIANBIHENAAJAIAAtAChBAUYNACAALwEyQf//A3EiAEGcf2pB5ABJDQAgAEHMAUYNACAAQbACRg0AQQQhBSAEQShxRQ0CIANBiARxQYAERg0CC0EADwtBAEEDIAApAyBQGyEFCyAFC2IBAn9BACEBAkAgAC0AKEEBRg0AIAAvATJB//8DcSICQZx/akHkAEkNACACQcwBRg0AIAJBsAJGDQAgAC8BMCIAQcAAcQ0AQQEhASAAQYgEcUGABEYNACAAQShxRSEBCyABC6cBAQN/AkACQAJAIAAtACpFDQAgAC0AK0UNAEEAIQMgAC8BMCIEQQJxRQ0BDAILQQAhAyAALwEwIgRBAXFFDQELQQEhAyAALQAoQQFGDQAgAC8BMkH//wNxIgVBnH9qQeQASQ0AIAVBzAFGDQAgBUGwAkYNACAEQcAAcQ0AQQAhAyAEQYgEcUGABEYNACAEQShxQQBHIQMLIABBADsBMCAAQQA6AC8gAwuZAQECfwJAAkACQCAALQAqRQ0AIAAtACtFDQBBACEBIAAvATAiAkECcUUNAQwCC0EAIQEgAC8BMCICQQFxRQ0BC0EBIQEgAC0AKEEBRg0AIAAvATJB//8DcSIAQZx/akHkAEkNACAAQcwBRg0AIABBsAJGDQAgAkHAAHENAEEAIQEgAkGIBHFBgARGDQAgAkEocUEARyEBCyABC1kAIABBGGpCADcDACAAQgA3AwAgAEE4akIANwMAIABBMGpCADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkBigGLAYwBjQGOAY8BkAGRAZIBkwGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAG1AbYBtwHLAcoBuAHJAbkByAG6AbsBvAG9Ab4BvwHAAcEBwgHDAcQBxQHGAQDcAQtBACEQDMYBC0EOIRAMxQELQQ0hEAzEAQtBDyEQDMMBC0EQIRAMwgELQRMhEAzBAQtBFCEQDMABC0EVIRAMvwELQRYhEAy+AQtBFyEQDL0BC0EYIRAMvAELQRkhEAy7AQtBGiEQDLoBC0EbIRAMuQELQRwhEAy4AQtBCCEQDLcBC0EdIRAMtgELQSAhEAy1AQtBHyEQDLQBC0EHIRAMswELQSEhEAyyAQtBIiEQDLEBC0EeIRAMsAELQSMhEAyvAQtBEiEQDK4BC0ERIRAMrQELQSQhEAysAQtBJSEQDKsBC0EmIRAMqgELQSchEAypAQtBwwEhEAyoAQtBKSEQDKcBC0ErIRAMpgELQSwhEAylAQtBLSEQDKQBC0EuIRAMowELQS8hEAyiAQtBxAEhEAyhAQtBMCEQDKABC0E0IRAMnwELQQwhEAyeAQtBMSEQDJ0BC0EyIRAMnAELQTMhEAybAQtBOSEQDJoBC0E1IRAMmQELQcUBIRAMmAELQQshEAyXAQtBOiEQDJYBC0E2IRAMlQELQQohEAyUAQtBNyEQDJMBC0E4IRAMkgELQTwhEAyRAQtBOyEQDJABC0E9IRAMjwELQQkhEAyOAQtBKCEQDI0BC0E+IRAMjAELQT8hEAyLAQtBwAAhEAyKAQtBwQAhEAyJAQtBwgAhEAyIAQtBwwAhEAyHAQtBxAAhEAyGAQtBxQAhEAyFAQtBxgAhEAyEAQtBKiEQDIMBC0HHACEQDIIBC0HIACEQDIEBC0HJACEQDIABC0HKACEQDH8LQcsAIRAMfgtBzQAhEAx9C0HMACEQDHwLQc4AIRAMewtBzwAhEAx6C0HQACEQDHkLQdEAIRAMeAtB0gAhEAx3C0HTACEQDHYLQdQAIRAMdQtB1gAhEAx0C0HVACEQDHMLQQYhEAxyC0HXACEQDHELQQUhEAxwC0HYACEQDG8LQQQhEAxuC0HZACEQDG0LQdoAIRAMbAtB2wAhEAxrC0HcACEQDGoLQQMhEAxpC0HdACEQDGgLQd4AIRAMZwtB3wAhEAxmC0HhACEQDGULQeAAIRAMZAtB4gAhEAxjC0HjACEQDGILQQIhEAxhC0HkACEQDGALQeUAIRAMXwtB5gAhEAxeC0HnACEQDF0LQegAIRAMXAtB6QAhEAxbC0HqACEQDFoLQesAIRAMWQtB7AAhEAxYC0HtACEQDFcLQe4AIRAMVgtB7wAhEAxVC0HwACEQDFQLQfEAIRAMUwtB8gAhEAxSC0HzACEQDFELQfQAIRAMUAtB9QAhEAxPC0H2ACEQDE4LQfcAIRAMTQtB+AAhEAxMC0H5ACEQDEsLQfoAIRAMSgtB+wAhEAxJC0H8ACEQDEgLQf0AIRAMRwtB/gAhEAxGC0H/ACEQDEULQYABIRAMRAtBgQEhEAxDC0GCASEQDEILQYMBIRAMQQtBhAEhEAxAC0GFASEQDD8LQYYBIRAMPgtBhwEhEAw9C0GIASEQDDwLQYkBIRAMOwtBigEhEAw6C0GLASEQDDkLQYwBIRAMOAtBjQEhEAw3C0GOASEQDDYLQY8BIRAMNQtBkAEhEAw0C0GRASEQDDMLQZIBIRAMMgtBkwEhEAwxC0GUASEQDDALQZUBIRAMLwtBlgEhEAwuC0GXASEQDC0LQZgBIRAMLAtBmQEhEAwrC0GaASEQDCoLQZsBIRAMKQtBnAEhEAwoC0GdASEQDCcLQZ4BIRAMJgtBnwEhEAwlC0GgASEQDCQLQaEBIRAMIwtBogEhEAwiC0GjASEQDCELQaQBIRAMIAtBpQEhEAwfC0GmASEQDB4LQacBIRAMHQtBqAEhEAwcC0GpASEQDBsLQaoBIRAMGgtBqwEhEAwZC0GsASEQDBgLQa0BIRAMFwtBrgEhEAwWC0EBIRAMFQtBrwEhEAwUC0GwASEQDBMLQbEBIRAMEgtBswEhEAwRC0GyASEQDBALQbQBIRAMDwtBtQEhEAwOC0G2ASEQDA0LQbcBIRAMDAtBuAEhEAwLC0G5ASEQDAoLQboBIRAMCQtBuwEhEAwIC0HGASEQDAcLQbwBIRAMBgtBvQEhEAwFC0G+ASEQDAQLQb8BIRAMAwtBwAEhEAwCC0HCASEQDAELQcEBIRALA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAQDscBAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxweHyAhIyUoP0BBREVGR0hJSktMTU9QUVJT3gNXWVtcXWBiZWZnaGlqa2xtb3BxcnN0dXZ3eHl6e3x9foABggGFAYYBhwGJAYsBjAGNAY4BjwGQAZEBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBuAG5AboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBxwHIAckBygHLAcwBzQHOAc8B0AHRAdIB0wHUAdUB1gHXAdgB2QHaAdsB3AHdAd4B4AHhAeIB4wHkAeUB5gHnAegB6QHqAesB7AHtAe4B7wHwAfEB8gHzAZkCpAKwAv4C/gILIAEiBCACRw3zAUHdASEQDP8DCyABIhAgAkcN3QFBwwEhEAz+AwsgASIBIAJHDZABQfcAIRAM/QMLIAEiASACRw2GAUHvACEQDPwDCyABIgEgAkcNf0HqACEQDPsDCyABIgEgAkcNe0HoACEQDPoDCyABIgEgAkcNeEHmACEQDPkDCyABIgEgAkcNGkEYIRAM+AMLIAEiASACRw0UQRIhEAz3AwsgASIBIAJHDVlBxQAhEAz2AwsgASIBIAJHDUpBPyEQDPUDCyABIgEgAkcNSEE8IRAM9AMLIAEiASACRw1BQTEhEAzzAwsgAC0ALkEBRg3rAwyHAgsgACABIgEgAhDAgICAAEEBRw3mASAAQgA3AyAM5wELIAAgASIBIAIQtICAgAAiEA3nASABIQEM9QILAkAgASIBIAJHDQBBBiEQDPADCyAAIAFBAWoiASACELuAgIAAIhAN6AEgASEBDDELIABCADcDIEESIRAM1QMLIAEiECACRw0rQR0hEAztAwsCQCABIgEgAkYNACABQQFqIQFBECEQDNQDC0EHIRAM7AMLIABCACAAKQMgIhEgAiABIhBrrSISfSITIBMgEVYbNwMgIBEgElYiFEUN5QFBCCEQDOsDCwJAIAEiASACRg0AIABBiYCAgAA2AgggACABNgIEIAEhAUEUIRAM0gMLQQkhEAzqAwsgASEBIAApAyBQDeQBIAEhAQzyAgsCQCABIgEgAkcNAEELIRAM6QMLIAAgAUEBaiIBIAIQtoCAgAAiEA3lASABIQEM8gILIAAgASIBIAIQuICAgAAiEA3lASABIQEM8gILIAAgASIBIAIQuICAgAAiEA3mASABIQEMDQsgACABIgEgAhC6gICAACIQDecBIAEhAQzwAgsCQCABIgEgAkcNAEEPIRAM5QMLIAEtAAAiEEE7Rg0IIBBBDUcN6AEgAUEBaiEBDO8CCyAAIAEiASACELqAgIAAIhAN6AEgASEBDPICCwNAAkAgAS0AAEHwtYCAAGotAAAiEEEBRg0AIBBBAkcN6wEgACgCBCEQIABBADYCBCAAIBAgAUEBaiIBELmAgIAAIhAN6gEgASEBDPQCCyABQQFqIgEgAkcNAAtBEiEQDOIDCyAAIAEiASACELqAgIAAIhAN6QEgASEBDAoLIAEiASACRw0GQRshEAzgAwsCQCABIgEgAkcNAEEWIRAM4AMLIABBioCAgAA2AgggACABNgIEIAAgASACELiAgIAAIhAN6gEgASEBQSAhEAzGAwsCQCABIgEgAkYNAANAAkAgAS0AAEHwt4CAAGotAAAiEEECRg0AAkAgEEF/ag4E5QHsAQDrAewBCyABQQFqIQFBCCEQDMgDCyABQQFqIgEgAkcNAAtBFSEQDN8DC0EVIRAM3gMLA0ACQCABLQAAQfC5gIAAai0AACIQQQJGDQAgEEF/ag4E3gHsAeAB6wHsAQsgAUEBaiIBIAJHDQALQRghEAzdAwsCQCABIgEgAkYNACAAQYuAgIAANgIIIAAgATYCBCABIQFBByEQDMQDC0EZIRAM3AMLIAFBAWohAQwCCwJAIAEiFCACRw0AQRohEAzbAwsgFCEBAkAgFC0AAEFzag4U3QLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gIA7gILQQAhECAAQQA2AhwgAEGvi4CAADYCECAAQQI2AgwgACAUQQFqNgIUDNoDCwJAIAEtAAAiEEE7Rg0AIBBBDUcN6AEgAUEBaiEBDOUCCyABQQFqIQELQSIhEAy/AwsCQCABIhAgAkcNAEEcIRAM2AMLQgAhESAQIQEgEC0AAEFQag435wHmAQECAwQFBgcIAAAAAAAAAAkKCwwNDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADxAREhMUAAtBHiEQDL0DC0ICIREM5QELQgMhEQzkAQtCBCERDOMBC0IFIREM4gELQgYhEQzhAQtCByERDOABC0IIIREM3wELQgkhEQzeAQtCCiERDN0BC0ILIREM3AELQgwhEQzbAQtCDSERDNoBC0IOIREM2QELQg8hEQzYAQtCCiERDNcBC0ILIREM1gELQgwhEQzVAQtCDSERDNQBC0IOIREM0wELQg8hEQzSAQtCACERAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAQLQAAQVBqDjflAeQBAAECAwQFBgfmAeYB5gHmAeYB5gHmAQgJCgsMDeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gEODxAREhPmAQtCAiERDOQBC0IDIREM4wELQgQhEQziAQtCBSERDOEBC0IGIREM4AELQgchEQzfAQtCCCERDN4BC0IJIREM3QELQgohEQzcAQtCCyERDNsBC0IMIREM2gELQg0hEQzZAQtCDiERDNgBC0IPIREM1wELQgohEQzWAQtCCyERDNUBC0IMIREM1AELQg0hEQzTAQtCDiERDNIBC0IPIREM0QELIABCACAAKQMgIhEgAiABIhBrrSISfSITIBMgEVYbNwMgIBEgElYiFEUN0gFBHyEQDMADCwJAIAEiASACRg0AIABBiYCAgAA2AgggACABNgIEIAEhAUEkIRAMpwMLQSAhEAy/AwsgACABIhAgAhC+gICAAEF/ag4FtgEAxQIB0QHSAQtBESEQDKQDCyAAQQE6AC8gECEBDLsDCyABIgEgAkcN0gFBJCEQDLsDCyABIg0gAkcNHkHGACEQDLoDCyAAIAEiASACELKAgIAAIhAN1AEgASEBDLUBCyABIhAgAkcNJkHQACEQDLgDCwJAIAEiASACRw0AQSghEAy4AwsgAEEANgIEIABBjICAgAA2AgggACABIAEQsYCAgAAiEA3TASABIQEM2AELAkAgASIQIAJHDQBBKSEQDLcDCyAQLQAAIgFBIEYNFCABQQlHDdMBIBBBAWohAQwVCwJAIAEiASACRg0AIAFBAWohAQwXC0EqIRAMtQMLAkAgASIQIAJHDQBBKyEQDLUDCwJAIBAtAAAiAUEJRg0AIAFBIEcN1QELIAAtACxBCEYN0wEgECEBDJEDCwJAIAEiASACRw0AQSwhEAy0AwsgAS0AAEEKRw3VASABQQFqIQEMyQILIAEiDiACRw3VAUEvIRAMsgMLA0ACQCABLQAAIhBBIEYNAAJAIBBBdmoOBADcAdwBANoBCyABIQEM4AELIAFBAWoiASACRw0AC0ExIRAMsQMLQTIhECABIhQgAkYNsAMgAiAUayAAKAIAIgFqIRUgFCABa0EDaiEWAkADQCAULQAAIhdBIHIgFyAXQb9/akH/AXFBGkkbQf8BcSABQfC7gIAAai0AAEcNAQJAIAFBA0cNAEEGIQEMlgMLIAFBAWohASAUQQFqIhQgAkcNAAsgACAVNgIADLEDCyAAQQA2AgAgFCEBDNkBC0EzIRAgASIUIAJGDa8DIAIgFGsgACgCACIBaiEVIBQgAWtBCGohFgJAA0AgFC0AACIXQSByIBcgF0G/f2pB/wFxQRpJG0H/AXEgAUH0u4CAAGotAABHDQECQCABQQhHDQBBBSEBDJUDCyABQQFqIQEgFEEBaiIUIAJHDQALIAAgFTYCAAywAwsgAEEANgIAIBQhAQzYAQtBNCEQIAEiFCACRg2uAyACIBRrIAAoAgAiAWohFSAUIAFrQQVqIRYCQANAIBQtAAAiF0EgciAXIBdBv39qQf8BcUEaSRtB/wFxIAFB0MKAgABqLQAARw0BAkAgAUEFRw0AQQchAQyUAwsgAUEBaiEBIBRBAWoiFCACRw0ACyAAIBU2AgAMrwMLIABBADYCACAUIQEM1wELAkAgASIBIAJGDQADQAJAIAEtAABBgL6AgABqLQAAIhBBAUYNACAQQQJGDQogASEBDN0BCyABQQFqIgEgAkcNAAtBMCEQDK4DC0EwIRAMrQMLAkAgASIBIAJGDQADQAJAIAEtAAAiEEEgRg0AIBBBdmoOBNkB2gHaAdkB2gELIAFBAWoiASACRw0AC0E4IRAMrQMLQTghEAysAwsDQAJAIAEtAAAiEEEgRg0AIBBBCUcNAwsgAUEBaiIBIAJHDQALQTwhEAyrAwsDQAJAIAEtAAAiEEEgRg0AAkACQCAQQXZqDgTaAQEB2gEACyAQQSxGDdsBCyABIQEMBAsgAUEBaiIBIAJHDQALQT8hEAyqAwsgASEBDNsBC0HAACEQIAEiFCACRg2oAyACIBRrIAAoAgAiAWohFiAUIAFrQQZqIRcCQANAIBQtAABBIHIgAUGAwICAAGotAABHDQEgAUEGRg2OAyABQQFqIQEgFEEBaiIUIAJHDQALIAAgFjYCAAypAwsgAEEANgIAIBQhAQtBNiEQDI4DCwJAIAEiDyACRw0AQcEAIRAMpwMLIABBjICAgAA2AgggACAPNgIEIA8hASAALQAsQX9qDgTNAdUB1wHZAYcDCyABQQFqIQEMzAELAkAgASIBIAJGDQADQAJAIAEtAAAiEEEgciAQIBBBv39qQf8BcUEaSRtB/wFxIhBBCUYNACAQQSBGDQACQAJAAkACQCAQQZ1/ag4TAAMDAwMDAwMBAwMDAwMDAwMDAgMLIAFBAWohAUExIRAMkQMLIAFBAWohAUEyIRAMkAMLIAFBAWohAUEzIRAMjwMLIAEhAQzQAQsgAUEBaiIBIAJHDQALQTUhEAylAwtBNSEQDKQDCwJAIAEiASACRg0AA0ACQCABLQAAQYC8gIAAai0AAEEBRg0AIAEhAQzTAQsgAUEBaiIBIAJHDQALQT0hEAykAwtBPSEQDKMDCyAAIAEiASACELCAgIAAIhAN1gEgASEBDAELIBBBAWohAQtBPCEQDIcDCwJAIAEiASACRw0AQcIAIRAMoAMLAkADQAJAIAEtAABBd2oOGAAC/gL+AoQD/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4CAP4CCyABQQFqIgEgAkcNAAtBwgAhEAygAwsgAUEBaiEBIAAtAC1BAXFFDb0BIAEhAQtBLCEQDIUDCyABIgEgAkcN0wFBxAAhEAydAwsDQAJAIAEtAABBkMCAgABqLQAAQQFGDQAgASEBDLcCCyABQQFqIgEgAkcNAAtBxQAhEAycAwsgDS0AACIQQSBGDbMBIBBBOkcNgQMgACgCBCEBIABBADYCBCAAIAEgDRCvgICAACIBDdABIA1BAWohAQyzAgtBxwAhECABIg0gAkYNmgMgAiANayAAKAIAIgFqIRYgDSABa0EFaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUGQwoCAAGotAABHDYADIAFBBUYN9AIgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMmgMLQcgAIRAgASINIAJGDZkDIAIgDWsgACgCACIBaiEWIA0gAWtBCWohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFBlsKAgABqLQAARw3/AgJAIAFBCUcNAEECIQEM9QILIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJkDCwJAIAEiDSACRw0AQckAIRAMmQMLAkACQCANLQAAIgFBIHIgASABQb9/akH/AXFBGkkbQf8BcUGSf2oOBwCAA4ADgAOAA4ADAYADCyANQQFqIQFBPiEQDIADCyANQQFqIQFBPyEQDP8CC0HKACEQIAEiDSACRg2XAyACIA1rIAAoAgAiAWohFiANIAFrQQFqIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQaDCgIAAai0AAEcN/QIgAUEBRg3wAiABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyXAwtBywAhECABIg0gAkYNlgMgAiANayAAKAIAIgFqIRYgDSABa0EOaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUGiwoCAAGotAABHDfwCIAFBDkYN8AIgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMlgMLQcwAIRAgASINIAJGDZUDIAIgDWsgACgCACIBaiEWIA0gAWtBD2ohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFBwMKAgABqLQAARw37AgJAIAFBD0cNAEEDIQEM8QILIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJUDC0HNACEQIAEiDSACRg2UAyACIA1rIAAoAgAiAWohFiANIAFrQQVqIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQdDCgIAAai0AAEcN+gICQCABQQVHDQBBBCEBDPACCyABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyUAwsCQCABIg0gAkcNAEHOACEQDJQDCwJAAkACQAJAIA0tAAAiAUEgciABIAFBv39qQf8BcUEaSRtB/wFxQZ1/ag4TAP0C/QL9Av0C/QL9Av0C/QL9Av0C/QL9AgH9Av0C/QICA/0CCyANQQFqIQFBwQAhEAz9AgsgDUEBaiEBQcIAIRAM/AILIA1BAWohAUHDACEQDPsCCyANQQFqIQFBxAAhEAz6AgsCQCABIgEgAkYNACAAQY2AgIAANgIIIAAgATYCBCABIQFBxQAhEAz6AgtBzwAhEAySAwsgECEBAkACQCAQLQAAQXZqDgQBqAKoAgCoAgsgEEEBaiEBC0EnIRAM+AILAkAgASIBIAJHDQBB0QAhEAyRAwsCQCABLQAAQSBGDQAgASEBDI0BCyABQQFqIQEgAC0ALUEBcUUNxwEgASEBDIwBCyABIhcgAkcNyAFB0gAhEAyPAwtB0wAhECABIhQgAkYNjgMgAiAUayAAKAIAIgFqIRYgFCABa0EBaiEXA0AgFC0AACABQdbCgIAAai0AAEcNzAEgAUEBRg3HASABQQFqIQEgFEEBaiIUIAJHDQALIAAgFjYCAAyOAwsCQCABIgEgAkcNAEHVACEQDI4DCyABLQAAQQpHDcwBIAFBAWohAQzHAQsCQCABIgEgAkcNAEHWACEQDI0DCwJAAkAgAS0AAEF2ag4EAM0BzQEBzQELIAFBAWohAQzHAQsgAUEBaiEBQcoAIRAM8wILIAAgASIBIAIQroCAgAAiEA3LASABIQFBzQAhEAzyAgsgAC0AKUEiRg2FAwymAgsCQCABIgEgAkcNAEHbACEQDIoDC0EAIRRBASEXQQEhFkEAIRACQAJAAkACQAJAAkACQAJAAkAgAS0AAEFQag4K1AHTAQABAgMEBQYI1QELQQIhEAwGC0EDIRAMBQtBBCEQDAQLQQUhEAwDC0EGIRAMAgtBByEQDAELQQghEAtBACEXQQAhFkEAIRQMzAELQQkhEEEBIRRBACEXQQAhFgzLAQsCQCABIgEgAkcNAEHdACEQDIkDCyABLQAAQS5HDcwBIAFBAWohAQymAgsgASIBIAJHDcwBQd8AIRAMhwMLAkAgASIBIAJGDQAgAEGOgICAADYCCCAAIAE2AgQgASEBQdAAIRAM7gILQeAAIRAMhgMLQeEAIRAgASIBIAJGDYUDIAIgAWsgACgCACIUaiEWIAEgFGtBA2ohFwNAIAEtAAAgFEHiwoCAAGotAABHDc0BIBRBA0YNzAEgFEEBaiEUIAFBAWoiASACRw0ACyAAIBY2AgAMhQMLQeIAIRAgASIBIAJGDYQDIAIgAWsgACgCACIUaiEWIAEgFGtBAmohFwNAIAEtAAAgFEHmwoCAAGotAABHDcwBIBRBAkYNzgEgFEEBaiEUIAFBAWoiASACRw0ACyAAIBY2AgAMhAMLQeMAIRAgASIBIAJGDYMDIAIgAWsgACgCACIUaiEWIAEgFGtBA2ohFwNAIAEtAAAgFEHpwoCAAGotAABHDcsBIBRBA0YNzgEgFEEBaiEUIAFBAWoiASACRw0ACyAAIBY2AgAMgwMLAkAgASIBIAJHDQBB5QAhEAyDAwsgACABQQFqIgEgAhCogICAACIQDc0BIAEhAUHWACEQDOkCCwJAIAEiASACRg0AA0ACQCABLQAAIhBBIEYNAAJAAkACQCAQQbh/ag4LAAHPAc8BzwHPAc8BzwHPAc8BAs8BCyABQQFqIQFB0gAhEAztAgsgAUEBaiEBQdMAIRAM7AILIAFBAWohAUHUACEQDOsCCyABQQFqIgEgAkcNAAtB5AAhEAyCAwtB5AAhEAyBAwsDQAJAIAEtAABB8MKAgABqLQAAIhBBAUYNACAQQX5qDgPPAdAB0QHSAQsgAUEBaiIBIAJHDQALQeYAIRAMgAMLAkAgASIBIAJGDQAgAUEBaiEBDAMLQecAIRAM/wILA0ACQCABLQAAQfDEgIAAai0AACIQQQFGDQACQCAQQX5qDgTSAdMB1AEA1QELIAEhAUHXACEQDOcCCyABQQFqIgEgAkcNAAtB6AAhEAz+AgsCQCABIgEgAkcNAEHpACEQDP4CCwJAIAEtAAAiEEF2ag4augHVAdUBvAHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHKAdUB1QEA0wELIAFBAWohAQtBBiEQDOMCCwNAAkAgAS0AAEHwxoCAAGotAABBAUYNACABIQEMngILIAFBAWoiASACRw0AC0HqACEQDPsCCwJAIAEiASACRg0AIAFBAWohAQwDC0HrACEQDPoCCwJAIAEiASACRw0AQewAIRAM+gILIAFBAWohAQwBCwJAIAEiASACRw0AQe0AIRAM+QILIAFBAWohAQtBBCEQDN4CCwJAIAEiFCACRw0AQe4AIRAM9wILIBQhAQJAAkACQCAULQAAQfDIgIAAai0AAEF/ag4H1AHVAdYBAJwCAQLXAQsgFEEBaiEBDAoLIBRBAWohAQzNAQtBACEQIABBADYCHCAAQZuSgIAANgIQIABBBzYCDCAAIBRBAWo2AhQM9gILAkADQAJAIAEtAABB8MiAgABqLQAAIhBBBEYNAAJAAkAgEEF/ag4H0gHTAdQB2QEABAHZAQsgASEBQdoAIRAM4AILIAFBAWohAUHcACEQDN8CCyABQQFqIgEgAkcNAAtB7wAhEAz2AgsgAUEBaiEBDMsBCwJAIAEiFCACRw0AQfAAIRAM9QILIBQtAABBL0cN1AEgFEEBaiEBDAYLAkAgASIUIAJHDQBB8QAhEAz0AgsCQCAULQAAIgFBL0cNACAUQQFqIQFB3QAhEAzbAgsgAUF2aiIEQRZLDdMBQQEgBHRBiYCAAnFFDdMBDMoCCwJAIAEiASACRg0AIAFBAWohAUHeACEQDNoCC0HyACEQDPICCwJAIAEiFCACRw0AQfQAIRAM8gILIBQhAQJAIBQtAABB8MyAgABqLQAAQX9qDgPJApQCANQBC0HhACEQDNgCCwJAIAEiFCACRg0AA0ACQCAULQAAQfDKgIAAai0AACIBQQNGDQACQCABQX9qDgLLAgDVAQsgFCEBQd8AIRAM2gILIBRBAWoiFCACRw0AC0HzACEQDPECC0HzACEQDPACCwJAIAEiASACRg0AIABBj4CAgAA2AgggACABNgIEIAEhAUHgACEQDNcCC0H1ACEQDO8CCwJAIAEiASACRw0AQfYAIRAM7wILIABBj4CAgAA2AgggACABNgIEIAEhAQtBAyEQDNQCCwNAIAEtAABBIEcNwwIgAUEBaiIBIAJHDQALQfcAIRAM7AILAkAgASIBIAJHDQBB+AAhEAzsAgsgAS0AAEEgRw3OASABQQFqIQEM7wELIAAgASIBIAIQrICAgAAiEA3OASABIQEMjgILAkAgASIEIAJHDQBB+gAhEAzqAgsgBC0AAEHMAEcN0QEgBEEBaiEBQRMhEAzPAQsCQCABIgQgAkcNAEH7ACEQDOkCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRADQCAELQAAIAFB8M6AgABqLQAARw3QASABQQVGDc4BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQfsAIRAM6AILAkAgASIEIAJHDQBB/AAhEAzoAgsCQAJAIAQtAABBvX9qDgwA0QHRAdEB0QHRAdEB0QHRAdEB0QEB0QELIARBAWohAUHmACEQDM8CCyAEQQFqIQFB5wAhEAzOAgsCQCABIgQgAkcNAEH9ACEQDOcCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDc8BIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEH9ACEQDOcCCyAAQQA2AgAgEEEBaiEBQRAhEAzMAQsCQCABIgQgAkcNAEH+ACEQDOYCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUH2zoCAAGotAABHDc4BIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEH+ACEQDOYCCyAAQQA2AgAgEEEBaiEBQRYhEAzLAQsCQCABIgQgAkcNAEH/ACEQDOUCCyACIARrIAAoAgAiAWohFCAEIAFrQQNqIRACQANAIAQtAAAgAUH8zoCAAGotAABHDc0BIAFBA0YNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEH/ACEQDOUCCyAAQQA2AgAgEEEBaiEBQQUhEAzKAQsCQCABIgQgAkcNAEGAASEQDOQCCyAELQAAQdkARw3LASAEQQFqIQFBCCEQDMkBCwJAIAEiBCACRw0AQYEBIRAM4wILAkACQCAELQAAQbJ/ag4DAMwBAcwBCyAEQQFqIQFB6wAhEAzKAgsgBEEBaiEBQewAIRAMyQILAkAgASIEIAJHDQBBggEhEAziAgsCQAJAIAQtAABBuH9qDggAywHLAcsBywHLAcsBAcsBCyAEQQFqIQFB6gAhEAzJAgsgBEEBaiEBQe0AIRAMyAILAkAgASIEIAJHDQBBgwEhEAzhAgsgAiAEayAAKAIAIgFqIRAgBCABa0ECaiEUAkADQCAELQAAIAFBgM+AgABqLQAARw3JASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBA2AgBBgwEhEAzhAgtBACEQIABBADYCACAUQQFqIQEMxgELAkAgASIEIAJHDQBBhAEhEAzgAgsgAiAEayAAKAIAIgFqIRQgBCABa0EEaiEQAkADQCAELQAAIAFBg8+AgABqLQAARw3IASABQQRGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBhAEhEAzgAgsgAEEANgIAIBBBAWohAUEjIRAMxQELAkAgASIEIAJHDQBBhQEhEAzfAgsCQAJAIAQtAABBtH9qDggAyAHIAcgByAHIAcgBAcgBCyAEQQFqIQFB7wAhEAzGAgsgBEEBaiEBQfAAIRAMxQILAkAgASIEIAJHDQBBhgEhEAzeAgsgBC0AAEHFAEcNxQEgBEEBaiEBDIMCCwJAIAEiBCACRw0AQYcBIRAM3QILIAIgBGsgACgCACIBaiEUIAQgAWtBA2ohEAJAA0AgBC0AACABQYjPgIAAai0AAEcNxQEgAUEDRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYcBIRAM3QILIABBADYCACAQQQFqIQFBLSEQDMIBCwJAIAEiBCACRw0AQYgBIRAM3AILIAIgBGsgACgCACIBaiEUIAQgAWtBCGohEAJAA0AgBC0AACABQdDPgIAAai0AAEcNxAEgAUEIRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYgBIRAM3AILIABBADYCACAQQQFqIQFBKSEQDMEBCwJAIAEiASACRw0AQYkBIRAM2wILQQEhECABLQAAQd8ARw3AASABQQFqIQEMgQILAkAgASIEIAJHDQBBigEhEAzaAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQA0AgBC0AACABQYzPgIAAai0AAEcNwQEgAUEBRg2vAiABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGKASEQDNkCCwJAIAEiBCACRw0AQYsBIRAM2QILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQY7PgIAAai0AAEcNwQEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYsBIRAM2QILIABBADYCACAQQQFqIQFBAiEQDL4BCwJAIAEiBCACRw0AQYwBIRAM2AILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfDPgIAAai0AAEcNwAEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYwBIRAM2AILIABBADYCACAQQQFqIQFBHyEQDL0BCwJAIAEiBCACRw0AQY0BIRAM1wILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfLPgIAAai0AAEcNvwEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQY0BIRAM1wILIABBADYCACAQQQFqIQFBCSEQDLwBCwJAIAEiBCACRw0AQY4BIRAM1gILAkACQCAELQAAQbd/ag4HAL8BvwG/Ab8BvwEBvwELIARBAWohAUH4ACEQDL0CCyAEQQFqIQFB+QAhEAy8AgsCQCABIgQgAkcNAEGPASEQDNUCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUGRz4CAAGotAABHDb0BIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGPASEQDNUCCyAAQQA2AgAgEEEBaiEBQRghEAy6AQsCQCABIgQgAkcNAEGQASEQDNQCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUGXz4CAAGotAABHDbwBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGQASEQDNQCCyAAQQA2AgAgEEEBaiEBQRchEAy5AQsCQCABIgQgAkcNAEGRASEQDNMCCyACIARrIAAoAgAiAWohFCAEIAFrQQZqIRACQANAIAQtAAAgAUGaz4CAAGotAABHDbsBIAFBBkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGRASEQDNMCCyAAQQA2AgAgEEEBaiEBQRUhEAy4AQsCQCABIgQgAkcNAEGSASEQDNICCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUGhz4CAAGotAABHDboBIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGSASEQDNICCyAAQQA2AgAgEEEBaiEBQR4hEAy3AQsCQCABIgQgAkcNAEGTASEQDNECCyAELQAAQcwARw24ASAEQQFqIQFBCiEQDLYBCwJAIAQgAkcNAEGUASEQDNACCwJAAkAgBC0AAEG/f2oODwC5AbkBuQG5AbkBuQG5AbkBuQG5AbkBuQG5AQG5AQsgBEEBaiEBQf4AIRAMtwILIARBAWohAUH/ACEQDLYCCwJAIAQgAkcNAEGVASEQDM8CCwJAAkAgBC0AAEG/f2oOAwC4AQG4AQsgBEEBaiEBQf0AIRAMtgILIARBAWohBEGAASEQDLUCCwJAIAQgAkcNAEGWASEQDM4CCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUGnz4CAAGotAABHDbYBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGWASEQDM4CCyAAQQA2AgAgEEEBaiEBQQshEAyzAQsCQCAEIAJHDQBBlwEhEAzNAgsCQAJAAkACQCAELQAAQVNqDiMAuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AQG4AbgBuAG4AbgBArgBuAG4AQO4AQsgBEEBaiEBQfsAIRAMtgILIARBAWohAUH8ACEQDLUCCyAEQQFqIQRBgQEhEAy0AgsgBEEBaiEEQYIBIRAMswILAkAgBCACRw0AQZgBIRAMzAILIAIgBGsgACgCACIBaiEUIAQgAWtBBGohEAJAA0AgBC0AACABQanPgIAAai0AAEcNtAEgAUEERg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZgBIRAMzAILIABBADYCACAQQQFqIQFBGSEQDLEBCwJAIAQgAkcNAEGZASEQDMsCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUGuz4CAAGotAABHDbMBIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGZASEQDMsCCyAAQQA2AgAgEEEBaiEBQQYhEAywAQsCQCAEIAJHDQBBmgEhEAzKAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBtM+AgABqLQAARw2yASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBmgEhEAzKAgsgAEEANgIAIBBBAWohAUEcIRAMrwELAkAgBCACRw0AQZsBIRAMyQILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQbbPgIAAai0AAEcNsQEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZsBIRAMyQILIABBADYCACAQQQFqIQFBJyEQDK4BCwJAIAQgAkcNAEGcASEQDMgCCwJAAkAgBC0AAEGsf2oOAgABsQELIARBAWohBEGGASEQDK8CCyAEQQFqIQRBhwEhEAyuAgsCQCAEIAJHDQBBnQEhEAzHAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBuM+AgABqLQAARw2vASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBnQEhEAzHAgsgAEEANgIAIBBBAWohAUEmIRAMrAELAkAgBCACRw0AQZ4BIRAMxgILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQbrPgIAAai0AAEcNrgEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZ4BIRAMxgILIABBADYCACAQQQFqIQFBAyEQDKsBCwJAIAQgAkcNAEGfASEQDMUCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDa0BIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGfASEQDMUCCyAAQQA2AgAgEEEBaiEBQQwhEAyqAQsCQCAEIAJHDQBBoAEhEAzEAgsgAiAEayAAKAIAIgFqIRQgBCABa0EDaiEQAkADQCAELQAAIAFBvM+AgABqLQAARw2sASABQQNGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBoAEhEAzEAgsgAEEANgIAIBBBAWohAUENIRAMqQELAkAgBCACRw0AQaEBIRAMwwILAkACQCAELQAAQbp/ag4LAKwBrAGsAawBrAGsAawBrAGsAQGsAQsgBEEBaiEEQYsBIRAMqgILIARBAWohBEGMASEQDKkCCwJAIAQgAkcNAEGiASEQDMICCyAELQAAQdAARw2pASAEQQFqIQQM6QELAkAgBCACRw0AQaMBIRAMwQILAkACQCAELQAAQbd/ag4HAaoBqgGqAaoBqgEAqgELIARBAWohBEGOASEQDKgCCyAEQQFqIQFBIiEQDKYBCwJAIAQgAkcNAEGkASEQDMACCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUHAz4CAAGotAABHDagBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGkASEQDMACCyAAQQA2AgAgEEEBaiEBQR0hEAylAQsCQCAEIAJHDQBBpQEhEAy/AgsCQAJAIAQtAABBrn9qDgMAqAEBqAELIARBAWohBEGQASEQDKYCCyAEQQFqIQFBBCEQDKQBCwJAIAQgAkcNAEGmASEQDL4CCwJAAkACQAJAAkAgBC0AAEG/f2oOFQCqAaoBqgGqAaoBqgGqAaoBqgGqAQGqAaoBAqoBqgEDqgGqAQSqAQsgBEEBaiEEQYgBIRAMqAILIARBAWohBEGJASEQDKcCCyAEQQFqIQRBigEhEAymAgsgBEEBaiEEQY8BIRAMpQILIARBAWohBEGRASEQDKQCCwJAIAQgAkcNAEGnASEQDL0CCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDaUBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGnASEQDL0CCyAAQQA2AgAgEEEBaiEBQREhEAyiAQsCQCAEIAJHDQBBqAEhEAy8AgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFBws+AgABqLQAARw2kASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBqAEhEAy8AgsgAEEANgIAIBBBAWohAUEsIRAMoQELAkAgBCACRw0AQakBIRAMuwILIAIgBGsgACgCACIBaiEUIAQgAWtBBGohEAJAA0AgBC0AACABQcXPgIAAai0AAEcNowEgAUEERg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQakBIRAMuwILIABBADYCACAQQQFqIQFBKyEQDKABCwJAIAQgAkcNAEGqASEQDLoCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHKz4CAAGotAABHDaIBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGqASEQDLoCCyAAQQA2AgAgEEEBaiEBQRQhEAyfAQsCQCAEIAJHDQBBqwEhEAy5AgsCQAJAAkACQCAELQAAQb5/ag4PAAECpAGkAaQBpAGkAaQBpAGkAaQBpAGkAQOkAQsgBEEBaiEEQZMBIRAMogILIARBAWohBEGUASEQDKECCyAEQQFqIQRBlQEhEAygAgsgBEEBaiEEQZYBIRAMnwILAkAgBCACRw0AQawBIRAMuAILIAQtAABBxQBHDZ8BIARBAWohBAzgAQsCQCAEIAJHDQBBrQEhEAy3AgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFBzc+AgABqLQAARw2fASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBrQEhEAy3AgsgAEEANgIAIBBBAWohAUEOIRAMnAELAkAgBCACRw0AQa4BIRAMtgILIAQtAABB0ABHDZ0BIARBAWohAUElIRAMmwELAkAgBCACRw0AQa8BIRAMtQILIAIgBGsgACgCACIBaiEUIAQgAWtBCGohEAJAA0AgBC0AACABQdDPgIAAai0AAEcNnQEgAUEIRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQa8BIRAMtQILIABBADYCACAQQQFqIQFBKiEQDJoBCwJAIAQgAkcNAEGwASEQDLQCCwJAAkAgBC0AAEGrf2oOCwCdAZ0BnQGdAZ0BnQGdAZ0BnQEBnQELIARBAWohBEGaASEQDJsCCyAEQQFqIQRBmwEhEAyaAgsCQCAEIAJHDQBBsQEhEAyzAgsCQAJAIAQtAABBv39qDhQAnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBAZwBCyAEQQFqIQRBmQEhEAyaAgsgBEEBaiEEQZwBIRAMmQILAkAgBCACRw0AQbIBIRAMsgILIAIgBGsgACgCACIBaiEUIAQgAWtBA2ohEAJAA0AgBC0AACABQdnPgIAAai0AAEcNmgEgAUEDRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbIBIRAMsgILIABBADYCACAQQQFqIQFBISEQDJcBCwJAIAQgAkcNAEGzASEQDLECCyACIARrIAAoAgAiAWohFCAEIAFrQQZqIRACQANAIAQtAAAgAUHdz4CAAGotAABHDZkBIAFBBkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGzASEQDLECCyAAQQA2AgAgEEEBaiEBQRohEAyWAQsCQCAEIAJHDQBBtAEhEAywAgsCQAJAAkAgBC0AAEG7f2oOEQCaAZoBmgGaAZoBmgGaAZoBmgEBmgGaAZoBmgGaAQKaAQsgBEEBaiEEQZ0BIRAMmAILIARBAWohBEGeASEQDJcCCyAEQQFqIQRBnwEhEAyWAgsCQCAEIAJHDQBBtQEhEAyvAgsgAiAEayAAKAIAIgFqIRQgBCABa0EFaiEQAkADQCAELQAAIAFB5M+AgABqLQAARw2XASABQQVGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBtQEhEAyvAgsgAEEANgIAIBBBAWohAUEoIRAMlAELAkAgBCACRw0AQbYBIRAMrgILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQerPgIAAai0AAEcNlgEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbYBIRAMrgILIABBADYCACAQQQFqIQFBByEQDJMBCwJAIAQgAkcNAEG3ASEQDK0CCwJAAkAgBC0AAEG7f2oODgCWAZYBlgGWAZYBlgGWAZYBlgGWAZYBlgEBlgELIARBAWohBEGhASEQDJQCCyAEQQFqIQRBogEhEAyTAgsCQCAEIAJHDQBBuAEhEAysAgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFB7c+AgABqLQAARw2UASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBuAEhEAysAgsgAEEANgIAIBBBAWohAUESIRAMkQELAkAgBCACRw0AQbkBIRAMqwILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfDPgIAAai0AAEcNkwEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbkBIRAMqwILIABBADYCACAQQQFqIQFBICEQDJABCwJAIAQgAkcNAEG6ASEQDKoCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUHyz4CAAGotAABHDZIBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG6ASEQDKoCCyAAQQA2AgAgEEEBaiEBQQ8hEAyPAQsCQCAEIAJHDQBBuwEhEAypAgsCQAJAIAQtAABBt39qDgcAkgGSAZIBkgGSAQGSAQsgBEEBaiEEQaUBIRAMkAILIARBAWohBEGmASEQDI8CCwJAIAQgAkcNAEG8ASEQDKgCCyACIARrIAAoAgAiAWohFCAEIAFrQQdqIRACQANAIAQtAAAgAUH0z4CAAGotAABHDZABIAFBB0YNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG8ASEQDKgCCyAAQQA2AgAgEEEBaiEBQRshEAyNAQsCQCAEIAJHDQBBvQEhEAynAgsCQAJAAkAgBC0AAEG+f2oOEgCRAZEBkQGRAZEBkQGRAZEBkQEBkQGRAZEBkQGRAZEBApEBCyAEQQFqIQRBpAEhEAyPAgsgBEEBaiEEQacBIRAMjgILIARBAWohBEGoASEQDI0CCwJAIAQgAkcNAEG+ASEQDKYCCyAELQAAQc4ARw2NASAEQQFqIQQMzwELAkAgBCACRw0AQb8BIRAMpQILAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBC0AAEG/f2oOFQABAgOcAQQFBpwBnAGcAQcICQoLnAEMDQ4PnAELIARBAWohAUHoACEQDJoCCyAEQQFqIQFB6QAhEAyZAgsgBEEBaiEBQe4AIRAMmAILIARBAWohAUHyACEQDJcCCyAEQQFqIQFB8wAhEAyWAgsgBEEBaiEBQfYAIRAMlQILIARBAWohAUH3ACEQDJQCCyAEQQFqIQFB+gAhEAyTAgsgBEEBaiEEQYMBIRAMkgILIARBAWohBEGEASEQDJECCyAEQQFqIQRBhQEhEAyQAgsgBEEBaiEEQZIBIRAMjwILIARBAWohBEGYASEQDI4CCyAEQQFqIQRBoAEhEAyNAgsgBEEBaiEEQaMBIRAMjAILIARBAWohBEGqASEQDIsCCwJAIAQgAkYNACAAQZCAgIAANgIIIAAgBDYCBEGrASEQDIsCC0HAASEQDKMCCyAAIAUgAhCqgICAACIBDYsBIAUhAQxcCwJAIAYgAkYNACAGQQFqIQUMjQELQcIBIRAMoQILA0ACQCAQLQAAQXZqDgSMAQAAjwEACyAQQQFqIhAgAkcNAAtBwwEhEAygAgsCQCAHIAJGDQAgAEGRgICAADYCCCAAIAc2AgQgByEBQQEhEAyHAgtBxAEhEAyfAgsCQCAHIAJHDQBBxQEhEAyfAgsCQAJAIActAABBdmoOBAHOAc4BAM4BCyAHQQFqIQYMjQELIAdBAWohBQyJAQsCQCAHIAJHDQBBxgEhEAyeAgsCQAJAIActAABBdmoOFwGPAY8BAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAQCPAQsgB0EBaiEHC0GwASEQDIQCCwJAIAggAkcNAEHIASEQDJ0CCyAILQAAQSBHDY0BIABBADsBMiAIQQFqIQFBswEhEAyDAgsgASEXAkADQCAXIgcgAkYNASAHLQAAQVBqQf8BcSIQQQpPDcwBAkAgAC8BMiIUQZkzSw0AIAAgFEEKbCIUOwEyIBBB//8DcyAUQf7/A3FJDQAgB0EBaiEXIAAgFCAQaiIQOwEyIBBB//8DcUHoB0kNAQsLQQAhECAAQQA2AhwgAEHBiYCAADYCECAAQQ02AgwgACAHQQFqNgIUDJwCC0HHASEQDJsCCyAAIAggAhCugICAACIQRQ3KASAQQRVHDYwBIABByAE2AhwgACAINgIUIABByZeAgAA2AhAgAEEVNgIMQQAhEAyaAgsCQCAJIAJHDQBBzAEhEAyaAgtBACEUQQEhF0EBIRZBACEQAkACQAJAAkACQAJAAkACQAJAIAktAABBUGoOCpYBlQEAAQIDBAUGCJcBC0ECIRAMBgtBAyEQDAULQQQhEAwEC0EFIRAMAwtBBiEQDAILQQchEAwBC0EIIRALQQAhF0EAIRZBACEUDI4BC0EJIRBBASEUQQAhF0EAIRYMjQELAkAgCiACRw0AQc4BIRAMmQILIAotAABBLkcNjgEgCkEBaiEJDMoBCyALIAJHDY4BQdABIRAMlwILAkAgCyACRg0AIABBjoCAgAA2AgggACALNgIEQbcBIRAM/gELQdEBIRAMlgILAkAgBCACRw0AQdIBIRAMlgILIAIgBGsgACgCACIQaiEUIAQgEGtBBGohCwNAIAQtAAAgEEH8z4CAAGotAABHDY4BIBBBBEYN6QEgEEEBaiEQIARBAWoiBCACRw0ACyAAIBQ2AgBB0gEhEAyVAgsgACAMIAIQrICAgAAiAQ2NASAMIQEMuAELAkAgBCACRw0AQdQBIRAMlAILIAIgBGsgACgCACIQaiEUIAQgEGtBAWohDANAIAQtAAAgEEGB0ICAAGotAABHDY8BIBBBAUYNjgEgEEEBaiEQIARBAWoiBCACRw0ACyAAIBQ2AgBB1AEhEAyTAgsCQCAEIAJHDQBB1gEhEAyTAgsgAiAEayAAKAIAIhBqIRQgBCAQa0ECaiELA0AgBC0AACAQQYPQgIAAai0AAEcNjgEgEEECRg2QASAQQQFqIRAgBEEBaiIEIAJHDQALIAAgFDYCAEHWASEQDJICCwJAIAQgAkcNAEHXASEQDJICCwJAAkAgBC0AAEG7f2oOEACPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BAY8BCyAEQQFqIQRBuwEhEAz5AQsgBEEBaiEEQbwBIRAM+AELAkAgBCACRw0AQdgBIRAMkQILIAQtAABByABHDYwBIARBAWohBAzEAQsCQCAEIAJGDQAgAEGQgICAADYCCCAAIAQ2AgRBvgEhEAz3AQtB2QEhEAyPAgsCQCAEIAJHDQBB2gEhEAyPAgsgBC0AAEHIAEYNwwEgAEEBOgAoDLkBCyAAQQI6AC8gACAEIAIQpoCAgAAiEA2NAUHCASEQDPQBCyAALQAoQX9qDgK3AbkBuAELA0ACQCAELQAAQXZqDgQAjgGOAQCOAQsgBEEBaiIEIAJHDQALQd0BIRAMiwILIABBADoALyAALQAtQQRxRQ2EAgsgAEEAOgAvIABBAToANCABIQEMjAELIBBBFUYN2gEgAEEANgIcIAAgATYCFCAAQaeOgIAANgIQIABBEjYCDEEAIRAMiAILAkAgACAQIAIQtICAgAAiBA0AIBAhAQyBAgsCQCAEQRVHDQAgAEEDNgIcIAAgEDYCFCAAQbCYgIAANgIQIABBFTYCDEEAIRAMiAILIABBADYCHCAAIBA2AhQgAEGnjoCAADYCECAAQRI2AgxBACEQDIcCCyAQQRVGDdYBIABBADYCHCAAIAE2AhQgAEHajYCAADYCECAAQRQ2AgxBACEQDIYCCyAAKAIEIRcgAEEANgIEIBAgEadqIhYhASAAIBcgECAWIBQbIhAQtYCAgAAiFEUNjQEgAEEHNgIcIAAgEDYCFCAAIBQ2AgxBACEQDIUCCyAAIAAvATBBgAFyOwEwIAEhAQtBKiEQDOoBCyAQQRVGDdEBIABBADYCHCAAIAE2AhQgAEGDjICAADYCECAAQRM2AgxBACEQDIICCyAQQRVGDc8BIABBADYCHCAAIAE2AhQgAEGaj4CAADYCECAAQSI2AgxBACEQDIECCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQt4CAgAAiEA0AIAFBAWohAQyNAQsgAEEMNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDIACCyAQQRVGDcwBIABBADYCHCAAIAE2AhQgAEGaj4CAADYCECAAQSI2AgxBACEQDP8BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQt4CAgAAiEA0AIAFBAWohAQyMAQsgAEENNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDP4BCyAQQRVGDckBIABBADYCHCAAIAE2AhQgAEHGjICAADYCECAAQSM2AgxBACEQDP0BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQuYCAgAAiEA0AIAFBAWohAQyLAQsgAEEONgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDPwBCyAAQQA2AhwgACABNgIUIABBwJWAgAA2AhAgAEECNgIMQQAhEAz7AQsgEEEVRg3FASAAQQA2AhwgACABNgIUIABBxoyAgAA2AhAgAEEjNgIMQQAhEAz6AQsgAEEQNgIcIAAgATYCFCAAIBA2AgxBACEQDPkBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQuYCAgAAiBA0AIAFBAWohAQzxAQsgAEERNgIcIAAgBDYCDCAAIAFBAWo2AhRBACEQDPgBCyAQQRVGDcEBIABBADYCHCAAIAE2AhQgAEHGjICAADYCECAAQSM2AgxBACEQDPcBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQuYCAgAAiEA0AIAFBAWohAQyIAQsgAEETNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDPYBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQuYCAgAAiBA0AIAFBAWohAQztAQsgAEEUNgIcIAAgBDYCDCAAIAFBAWo2AhRBACEQDPUBCyAQQRVGDb0BIABBADYCHCAAIAE2AhQgAEGaj4CAADYCECAAQSI2AgxBACEQDPQBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQt4CAgAAiEA0AIAFBAWohAQyGAQsgAEEWNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDPMBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQt4CAgAAiBA0AIAFBAWohAQzpAQsgAEEXNgIcIAAgBDYCDCAAIAFBAWo2AhRBACEQDPIBCyAAQQA2AhwgACABNgIUIABBzZOAgAA2AhAgAEEMNgIMQQAhEAzxAQtCASERCyAQQQFqIQECQCAAKQMgIhJC//////////8PVg0AIAAgEkIEhiARhDcDICABIQEMhAELIABBADYCHCAAIAE2AhQgAEGtiYCAADYCECAAQQw2AgxBACEQDO8BCyAAQQA2AhwgACAQNgIUIABBzZOAgAA2AhAgAEEMNgIMQQAhEAzuAQsgACgCBCEXIABBADYCBCAQIBGnaiIWIQEgACAXIBAgFiAUGyIQELWAgIAAIhRFDXMgAEEFNgIcIAAgEDYCFCAAIBQ2AgxBACEQDO0BCyAAQQA2AhwgACAQNgIUIABBqpyAgAA2AhAgAEEPNgIMQQAhEAzsAQsgACAQIAIQtICAgAAiAQ0BIBAhAQtBDiEQDNEBCwJAIAFBFUcNACAAQQI2AhwgACAQNgIUIABBsJiAgAA2AhAgAEEVNgIMQQAhEAzqAQsgAEEANgIcIAAgEDYCFCAAQaeOgIAANgIQIABBEjYCDEEAIRAM6QELIAFBAWohEAJAIAAvATAiAUGAAXFFDQACQCAAIBAgAhC7gICAACIBDQAgECEBDHALIAFBFUcNugEgAEEFNgIcIAAgEDYCFCAAQfmXgIAANgIQIABBFTYCDEEAIRAM6QELAkAgAUGgBHFBoARHDQAgAC0ALUECcQ0AIABBADYCHCAAIBA2AhQgAEGWk4CAADYCECAAQQQ2AgxBACEQDOkBCyAAIBAgAhC9gICAABogECEBAkACQAJAAkACQCAAIBAgAhCzgICAAA4WAgEABAQEBAQEBAQEBAQEBAQEBAQEAwQLIABBAToALgsgACAALwEwQcAAcjsBMCAQIQELQSYhEAzRAQsgAEEjNgIcIAAgEDYCFCAAQaWWgIAANgIQIABBFTYCDEEAIRAM6QELIABBADYCHCAAIBA2AhQgAEHVi4CAADYCECAAQRE2AgxBACEQDOgBCyAALQAtQQFxRQ0BQcMBIRAMzgELAkAgDSACRg0AA0ACQCANLQAAQSBGDQAgDSEBDMQBCyANQQFqIg0gAkcNAAtBJSEQDOcBC0ElIRAM5gELIAAoAgQhBCAAQQA2AgQgACAEIA0Qr4CAgAAiBEUNrQEgAEEmNgIcIAAgBDYCDCAAIA1BAWo2AhRBACEQDOUBCyAQQRVGDasBIABBADYCHCAAIAE2AhQgAEH9jYCAADYCECAAQR02AgxBACEQDOQBCyAAQSc2AhwgACABNgIUIAAgEDYCDEEAIRAM4wELIBAhAUEBIRQCQAJAAkACQAJAAkACQCAALQAsQX5qDgcGBQUDAQIABQsgACAALwEwQQhyOwEwDAMLQQIhFAwBC0EEIRQLIABBAToALCAAIAAvATAgFHI7ATALIBAhAQtBKyEQDMoBCyAAQQA2AhwgACAQNgIUIABBq5KAgAA2AhAgAEELNgIMQQAhEAziAQsgAEEANgIcIAAgATYCFCAAQeGPgIAANgIQIABBCjYCDEEAIRAM4QELIABBADoALCAQIQEMvQELIBAhAUEBIRQCQAJAAkACQAJAIAAtACxBe2oOBAMBAgAFCyAAIAAvATBBCHI7ATAMAwtBAiEUDAELQQQhFAsgAEEBOgAsIAAgAC8BMCAUcjsBMAsgECEBC0EpIRAMxQELIABBADYCHCAAIAE2AhQgAEHwlICAADYCECAAQQM2AgxBACEQDN0BCwJAIA4tAABBDUcNACAAKAIEIQEgAEEANgIEAkAgACABIA4QsYCAgAAiAQ0AIA5BAWohAQx1CyAAQSw2AhwgACABNgIMIAAgDkEBajYCFEEAIRAM3QELIAAtAC1BAXFFDQFBxAEhEAzDAQsCQCAOIAJHDQBBLSEQDNwBCwJAAkADQAJAIA4tAABBdmoOBAIAAAMACyAOQQFqIg4gAkcNAAtBLSEQDN0BCyAAKAIEIQEgAEEANgIEAkAgACABIA4QsYCAgAAiAQ0AIA4hAQx0CyAAQSw2AhwgACAONgIUIAAgATYCDEEAIRAM3AELIAAoAgQhASAAQQA2AgQCQCAAIAEgDhCxgICAACIBDQAgDkEBaiEBDHMLIABBLDYCHCAAIAE2AgwgACAOQQFqNgIUQQAhEAzbAQsgACgCBCEEIABBADYCBCAAIAQgDhCxgICAACIEDaABIA4hAQzOAQsgEEEsRw0BIAFBAWohEEEBIQECQAJAAkACQAJAIAAtACxBe2oOBAMBAgQACyAQIQEMBAtBAiEBDAELQQQhAQsgAEEBOgAsIAAgAC8BMCABcjsBMCAQIQEMAQsgACAALwEwQQhyOwEwIBAhAQtBOSEQDL8BCyAAQQA6ACwgASEBC0E0IRAMvQELIAAgAC8BMEEgcjsBMCABIQEMAgsgACgCBCEEIABBADYCBAJAIAAgBCABELGAgIAAIgQNACABIQEMxwELIABBNzYCHCAAIAE2AhQgACAENgIMQQAhEAzUAQsgAEEIOgAsIAEhAQtBMCEQDLkBCwJAIAAtAChBAUYNACABIQEMBAsgAC0ALUEIcUUNkwEgASEBDAMLIAAtADBBIHENlAFBxQEhEAy3AQsCQCAPIAJGDQACQANAAkAgDy0AAEFQaiIBQf8BcUEKSQ0AIA8hAUE1IRAMugELIAApAyAiEUKZs+bMmbPmzBlWDQEgACARQgp+IhE3AyAgESABrUL/AYMiEkJ/hVYNASAAIBEgEnw3AyAgD0EBaiIPIAJHDQALQTkhEAzRAQsgACgCBCECIABBADYCBCAAIAIgD0EBaiIEELGAgIAAIgINlQEgBCEBDMMBC0E5IRAMzwELAkAgAC8BMCIBQQhxRQ0AIAAtAChBAUcNACAALQAtQQhxRQ2QAQsgACABQff7A3FBgARyOwEwIA8hAQtBNyEQDLQBCyAAIAAvATBBEHI7ATAMqwELIBBBFUYNiwEgAEEANgIcIAAgATYCFCAAQfCOgIAANgIQIABBHDYCDEEAIRAMywELIABBwwA2AhwgACABNgIMIAAgDUEBajYCFEEAIRAMygELAkAgAS0AAEE6Rw0AIAAoAgQhECAAQQA2AgQCQCAAIBAgARCvgICAACIQDQAgAUEBaiEBDGMLIABBwwA2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAMygELIABBADYCHCAAIAE2AhQgAEGxkYCAADYCECAAQQo2AgxBACEQDMkBCyAAQQA2AhwgACABNgIUIABBoJmAgAA2AhAgAEEeNgIMQQAhEAzIAQsgAEEANgIACyAAQYASOwEqIAAgF0EBaiIBIAIQqICAgAAiEA0BIAEhAQtBxwAhEAysAQsgEEEVRw2DASAAQdEANgIcIAAgATYCFCAAQeOXgIAANgIQIABBFTYCDEEAIRAMxAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDF4LIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMwwELIABBADYCHCAAIBQ2AhQgAEHBqICAADYCECAAQQc2AgwgAEEANgIAQQAhEAzCAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMXQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAzBAQtBACEQIABBADYCHCAAIAE2AhQgAEGAkYCAADYCECAAQQk2AgwMwAELIBBBFUYNfSAAQQA2AhwgACABNgIUIABBlI2AgAA2AhAgAEEhNgIMQQAhEAy/AQtBASEWQQAhF0EAIRRBASEQCyAAIBA6ACsgAUEBaiEBAkACQCAALQAtQRBxDQACQAJAAkAgAC0AKg4DAQACBAsgFkUNAwwCCyAUDQEMAgsgF0UNAQsgACgCBCEQIABBADYCBAJAIAAgECABEK2AgIAAIhANACABIQEMXAsgAEHYADYCHCAAIAE2AhQgACAQNgIMQQAhEAy+AQsgACgCBCEEIABBADYCBAJAIAAgBCABEK2AgIAAIgQNACABIQEMrQELIABB2QA2AhwgACABNgIUIAAgBDYCDEEAIRAMvQELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCtgICAACIEDQAgASEBDKsBCyAAQdoANgIcIAAgATYCFCAAIAQ2AgxBACEQDLwBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQrYCAgAAiBA0AIAEhAQypAQsgAEHcADYCHCAAIAE2AhQgACAENgIMQQAhEAy7AQsCQCABLQAAQVBqIhBB/wFxQQpPDQAgACAQOgAqIAFBAWohAUHPACEQDKIBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQrYCAgAAiBA0AIAEhAQynAQsgAEHeADYCHCAAIAE2AhQgACAENgIMQQAhEAy6AQsgAEEANgIAIBdBAWohAQJAIAAtAClBI08NACABIQEMWQsgAEEANgIcIAAgATYCFCAAQdOJgIAANgIQIABBCDYCDEEAIRAMuQELIABBADYCAAtBACEQIABBADYCHCAAIAE2AhQgAEGQs4CAADYCECAAQQg2AgwMtwELIABBADYCACAXQQFqIQECQCAALQApQSFHDQAgASEBDFYLIABBADYCHCAAIAE2AhQgAEGbioCAADYCECAAQQg2AgxBACEQDLYBCyAAQQA2AgAgF0EBaiEBAkAgAC0AKSIQQV1qQQtPDQAgASEBDFULAkAgEEEGSw0AQQEgEHRBygBxRQ0AIAEhAQxVC0EAIRAgAEEANgIcIAAgATYCFCAAQfeJgIAANgIQIABBCDYCDAy1AQsgEEEVRg1xIABBADYCHCAAIAE2AhQgAEG5jYCAADYCECAAQRo2AgxBACEQDLQBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxUCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLMBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdIANgIcIAAgATYCFCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAUNgIUIAAgATYCDEEAIRAMogELIABBADYCHCAAIBQ2AhQgAEHDj4CAADYCECAAQQc2AgxBACEQDKEBCyAAQQA2AhwgACABNgIUIABBw4+AgAA2AhAgAEEHNgIMQQAhEAygAQtBACEQIABBADYCHCAAIBQ2AhQgAEGMnICAADYCECAAQQc2AgwMnwELIABBADYCHCAAIBQ2AhQgAEGMnICAADYCECAAQQc2AgxBACEQDJ4BCyAAQQA2AhwgACAUNgIUIABB/pGAgAA2AhAgAEEHNgIMQQAhEAydAQsgAEEANgIcIAAgATYCFCAAQY6bgIAANgIQIABBBjYCDEEAIRAMnAELIBBBFUYNVyAAQQA2AhwgACABNgIUIABBzI6AgAA2AhAgAEEgNgIMQQAhEAybAQsgAEEANgIAIBBBAWohAUEkIRALIAAgEDoAKSAAKAIEIRAgAEEANgIEIAAgECABEKuAgIAAIhANVCABIQEMPgsgAEEANgIAC0EAIRAgAEEANgIcIAAgBDYCFCAAQfGbgIAANgIQIABBBjYCDAyXAQsgAUEVRg1QIABBADYCHCAAIAU2AhQgAEHwjICAADYCECAAQRs2AgxBACEQDJYBCyAAKAIEIQUgAEEANgIEIAAgBSAQEKmAgIAAIgUNASAQQQFqIQULQa0BIRAMewsgAEHBATYCHCAAIAU2AgwgACAQQQFqNgIUQQAhEAyTAQsgACgCBCEGIABBADYCBCAAIAYgEBCpgICAACIGDQEgEEEBaiEGC0GuASEQDHgLIABBwgE2AhwgACAGNgIMIAAgEEEBajYCFEEAIRAMkAELIABBADYCHCAAIAc2AhQgAEGXi4CAADYCECAAQQ02AgxBACEQDI8BCyAAQQA2AhwgACAINgIUIABB45CAgAA2AhAgAEEJNgIMQQAhEAyOAQsgAEEANgIcIAAgCDYCFCAAQZSNgIAANgIQIABBITYCDEEAIRAMjQELQQEhFkEAIRdBACEUQQEhEAsgACAQOgArIAlBAWohCAJAAkAgAC0ALUEQcQ0AAkACQAJAIAAtACoOAwEAAgQLIBZFDQMMAgsgFA0BDAILIBdFDQELIAAoAgQhECAAQQA2AgQgACAQIAgQrYCAgAAiEEUNPSAAQckBNgIcIAAgCDYCFCAAIBA2AgxBACEQDIwBCyAAKAIEIQQgAEEANgIEIAAgBCAIEK2AgIAAIgRFDXYgAEHKATYCHCAAIAg2AhQgACAENgIMQQAhEAyLAQsgACgCBCEEIABBADYCBCAAIAQgCRCtgICAACIERQ10IABBywE2AhwgACAJNgIUIAAgBDYCDEEAIRAMigELIAAoAgQhBCAAQQA2AgQgACAEIAoQrYCAgAAiBEUNciAAQc0BNgIcIAAgCjYCFCAAIAQ2AgxBACEQDIkBCwJAIAstAABBUGoiEEH/AXFBCk8NACAAIBA6ACogC0EBaiEKQbYBIRAMcAsgACgCBCEEIABBADYCBCAAIAQgCxCtgICAACIERQ1wIABBzwE2AhwgACALNgIUIAAgBDYCDEEAIRAMiAELIABBADYCHCAAIAQ2AhQgAEGQs4CAADYCECAAQQg2AgwgAEEANgIAQQAhEAyHAQsgAUEVRg0/IABBADYCHCAAIAw2AhQgAEHMjoCAADYCECAAQSA2AgxBACEQDIYBCyAAQYEEOwEoIAAoAgQhECAAQgA3AwAgACAQIAxBAWoiDBCrgICAACIQRQ04IABB0wE2AhwgACAMNgIUIAAgEDYCDEEAIRAMhQELIABBADYCAAtBACEQIABBADYCHCAAIAQ2AhQgAEHYm4CAADYCECAAQQg2AgwMgwELIAAoAgQhECAAQgA3AwAgACAQIAtBAWoiCxCrgICAACIQDQFBxgEhEAxpCyAAQQI6ACgMVQsgAEHVATYCHCAAIAs2AhQgACAQNgIMQQAhEAyAAQsgEEEVRg03IABBADYCHCAAIAQ2AhQgAEGkjICAADYCECAAQRA2AgxBACEQDH8LIAAtADRBAUcNNCAAIAQgAhC8gICAACIQRQ00IBBBFUcNNSAAQdwBNgIcIAAgBDYCFCAAQdWWgIAANgIQIABBFTYCDEEAIRAMfgtBACEQIABBADYCHCAAQa+LgIAANgIQIABBAjYCDCAAIBRBAWo2AhQMfQtBACEQDGMLQQIhEAxiC0ENIRAMYQtBDyEQDGALQSUhEAxfC0ETIRAMXgtBFSEQDF0LQRYhEAxcC0EXIRAMWwtBGCEQDFoLQRkhEAxZC0EaIRAMWAtBGyEQDFcLQRwhEAxWC0EdIRAMVQtBHyEQDFQLQSEhEAxTC0EjIRAMUgtBxgAhEAxRC0EuIRAMUAtBLyEQDE8LQTshEAxOC0E9IRAMTQtByAAhEAxMC0HJACEQDEsLQcsAIRAMSgtBzAAhEAxJC0HOACEQDEgLQdEAIRAMRwtB1QAhEAxGC0HYACEQDEULQdkAIRAMRAtB2wAhEAxDC0HkACEQDEILQeUAIRAMQQtB8QAhEAxAC0H0ACEQDD8LQY0BIRAMPgtBlwEhEAw9C0GpASEQDDwLQawBIRAMOwtBwAEhEAw6C0G5ASEQDDkLQa8BIRAMOAtBsQEhEAw3C0GyASEQDDYLQbQBIRAMNQtBtQEhEAw0C0G6ASEQDDMLQb0BIRAMMgtBvwEhEAwxC0HBASEQDDALIABBADYCHCAAIAQ2AhQgAEHpi4CAADYCECAAQR82AgxBACEQDEgLIABB2wE2AhwgACAENgIUIABB+paAgAA2AhAgAEEVNgIMQQAhEAxHCyAAQfgANgIcIAAgDDYCFCAAQcqYgIAANgIQIABBFTYCDEEAIRAMRgsgAEHRADYCHCAAIAU2AhQgAEGwl4CAADYCECAAQRU2AgxBACEQDEULIABB+QA2AhwgACABNgIUIAAgEDYCDEEAIRAMRAsgAEH4ADYCHCAAIAE2AhQgAEHKmICAADYCECAAQRU2AgxBACEQDEMLIABB5AA2AhwgACABNgIUIABB45eAgAA2AhAgAEEVNgIMQQAhEAxCCyAAQdcANgIcIAAgATYCFCAAQcmXgIAANgIQIABBFTYCDEEAIRAMQQsgAEEANgIcIAAgATYCFCAAQbmNgIAANgIQIABBGjYCDEEAIRAMQAsgAEHCADYCHCAAIAE2AhQgAEHjmICAADYCECAAQRU2AgxBACEQDD8LIABBADYCBCAAIA8gDxCxgICAACIERQ0BIABBOjYCHCAAIAQ2AgwgACAPQQFqNgIUQQAhEAw+CyAAKAIEIQQgAEEANgIEAkAgACAEIAEQsYCAgAAiBEUNACAAQTs2AhwgACAENgIMIAAgAUEBajYCFEEAIRAMPgsgAUEBaiEBDC0LIA9BAWohAQwtCyAAQQA2AhwgACAPNgIUIABB5JKAgAA2AhAgAEEENgIMQQAhEAw7CyAAQTY2AhwgACAENgIUIAAgAjYCDEEAIRAMOgsgAEEuNgIcIAAgDjYCFCAAIAQ2AgxBACEQDDkLIABB0AA2AhwgACABNgIUIABBkZiAgAA2AhAgAEEVNgIMQQAhEAw4CyANQQFqIQEMLAsgAEEVNgIcIAAgATYCFCAAQYKZgIAANgIQIABBFTYCDEEAIRAMNgsgAEEbNgIcIAAgATYCFCAAQZGXgIAANgIQIABBFTYCDEEAIRAMNQsgAEEPNgIcIAAgATYCFCAAQZGXgIAANgIQIABBFTYCDEEAIRAMNAsgAEELNgIcIAAgATYCFCAAQZGXgIAANgIQIABBFTYCDEEAIRAMMwsgAEEaNgIcIAAgATYCFCAAQYKZgIAANgIQIABBFTYCDEEAIRAMMgsgAEELNgIcIAAgATYCFCAAQYKZgIAANgIQIABBFTYCDEEAIRAMMQsgAEEKNgIcIAAgATYCFCAAQeSWgIAANgIQIABBFTYCDEEAIRAMMAsgAEEeNgIcIAAgATYCFCAAQfmXgIAANgIQIABBFTYCDEEAIRAMLwsgAEEANgIcIAAgEDYCFCAAQdqNgIAANgIQIABBFDYCDEEAIRAMLgsgAEEENgIcIAAgATYCFCAAQbCYgIAANgIQIABBFTYCDEEAIRAMLQsgAEEANgIAIAtBAWohCwtBuAEhEAwSCyAAQQA2AgAgEEEBaiEBQfUAIRAMEQsgASEBAkAgAC0AKUEFRw0AQeMAIRAMEQtB4gAhEAwQC0EAIRAgAEEANgIcIABB5JGAgAA2AhAgAEEHNgIMIAAgFEEBajYCFAwoCyAAQQA2AgAgF0EBaiEBQcAAIRAMDgtBASEBCyAAIAE6ACwgAEEANgIAIBdBAWohAQtBKCEQDAsLIAEhAQtBOCEQDAkLAkAgASIPIAJGDQADQAJAIA8tAABBgL6AgABqLQAAIgFBAUYNACABQQJHDQMgD0EBaiEBDAQLIA9BAWoiDyACRw0AC0E+IRAMIgtBPiEQDCELIABBADoALCAPIQEMAQtBCyEQDAYLQTohEAwFCyABQQFqIQFBLSEQDAQLIAAgAToALCAAQQA2AgAgFkEBaiEBQQwhEAwDCyAAQQA2AgAgF0EBaiEBQQohEAwCCyAAQQA2AgALIABBADoALCANIQFBCSEQDAALC0EAIRAgAEEANgIcIAAgCzYCFCAAQc2QgIAANgIQIABBCTYCDAwXC0EAIRAgAEEANgIcIAAgCjYCFCAAQemKgIAANgIQIABBCTYCDAwWC0EAIRAgAEEANgIcIAAgCTYCFCAAQbeQgIAANgIQIABBCTYCDAwVC0EAIRAgAEEANgIcIAAgCDYCFCAAQZyRgIAANgIQIABBCTYCDAwUC0EAIRAgAEEANgIcIAAgATYCFCAAQc2QgIAANgIQIABBCTYCDAwTC0EAIRAgAEEANgIcIAAgATYCFCAAQemKgIAANgIQIABBCTYCDAwSC0EAIRAgAEEANgIcIAAgATYCFCAAQbeQgIAANgIQIABBCTYCDAwRC0EAIRAgAEEANgIcIAAgATYCFCAAQZyRgIAANgIQIABBCTYCDAwQC0EAIRAgAEEANgIcIAAgATYCFCAAQZeVgIAANgIQIABBDzYCDAwPC0EAIRAgAEEANgIcIAAgATYCFCAAQZeVgIAANgIQIABBDzYCDAwOC0EAIRAgAEEANgIcIAAgATYCFCAAQcCSgIAANgIQIABBCzYCDAwNC0EAIRAgAEEANgIcIAAgATYCFCAAQZWJgIAANgIQIABBCzYCDAwMC0EAIRAgAEEANgIcIAAgATYCFCAAQeGPgIAANgIQIABBCjYCDAwLC0EAIRAgAEEANgIcIAAgATYCFCAAQfuPgIAANgIQIABBCjYCDAwKC0EAIRAgAEEANgIcIAAgATYCFCAAQfGZgIAANgIQIABBAjYCDAwJC0EAIRAgAEEANgIcIAAgATYCFCAAQcSUgIAANgIQIABBAjYCDAwIC0EAIRAgAEEANgIcIAAgATYCFCAAQfKVgIAANgIQIABBAjYCDAwHCyAAQQI2AhwgACABNgIUIABBnJqAgAA2AhAgAEEWNgIMQQAhEAwGC0EBIRAMBQtB1AAhECABIgQgAkYNBCADQQhqIAAgBCACQdjCgIAAQQoQxYCAgAAgAygCDCEEIAMoAggOAwEEAgALEMqAgIAAAAsgAEEANgIcIABBtZqAgAA2AhAgAEEXNgIMIAAgBEEBajYCFEEAIRAMAgsgAEEANgIcIAAgBDYCFCAAQcqagIAANgIQIABBCTYCDEEAIRAMAQsCQCABIgQgAkcNAEEiIRAMAQsgAEGJgICAADYCCCAAIAQ2AgRBISEQCyADQRBqJICAgIAAIBALrwEBAn8gASgCACEGAkACQCACIANGDQAgBCAGaiEEIAYgA2ogAmshByACIAZBf3MgBWoiBmohBQNAAkAgAi0AACAELQAARg0AQQIhBAwDCwJAIAYNAEEAIQQgBSECDAMLIAZBf2ohBiAEQQFqIQQgAkEBaiICIANHDQALIAchBiADIQILIABBATYCACABIAY2AgAgACACNgIEDwsgAUEANgIAIAAgBDYCACAAIAI2AgQLCgAgABDHgICAAAvyNgELfyOAgICAAEEQayIBJICAgIAAAkBBACgCoNCAgAANAEEAEMuAgIAAQYDUhIAAayICQdkASQ0AQQAhAwJAQQAoAuDTgIAAIgQNAEEAQn83AuzTgIAAQQBCgICEgICAwAA3AuTTgIAAQQAgAUEIakFwcUHYqtWqBXMiBDYC4NOAgABBAEEANgL004CAAEEAQQA2AsTTgIAAC0EAIAI2AszTgIAAQQBBgNSEgAA2AsjTgIAAQQBBgNSEgAA2ApjQgIAAQQAgBDYCrNCAgABBAEF/NgKo0ICAAANAIANBxNCAgABqIANBuNCAgABqIgQ2AgAgBCADQbDQgIAAaiIFNgIAIANBvNCAgABqIAU2AgAgA0HM0ICAAGogA0HA0ICAAGoiBTYCACAFIAQ2AgAgA0HU0ICAAGogA0HI0ICAAGoiBDYCACAEIAU2AgAgA0HQ0ICAAGogBDYCACADQSBqIgNBgAJHDQALQYDUhIAAQXhBgNSEgABrQQ9xQQBBgNSEgABBCGpBD3EbIgNqIgRBBGogAkFIaiIFIANrIgNBAXI2AgBBAEEAKALw04CAADYCpNCAgABBACADNgKU0ICAAEEAIAQ2AqDQgIAAQYDUhIAAIAVqQTg2AgQLAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB7AFLDQACQEEAKAKI0ICAACIGQRAgAEETakFwcSAAQQtJGyICQQN2IgR2IgNBA3FFDQACQAJAIANBAXEgBHJBAXMiBUEDdCIEQbDQgIAAaiIDIARBuNCAgABqKAIAIgQoAggiAkcNAEEAIAZBfiAFd3E2AojQgIAADAELIAMgAjYCCCACIAM2AgwLIARBCGohAyAEIAVBA3QiBUEDcjYCBCAEIAVqIgQgBCgCBEEBcjYCBAwMCyACQQAoApDQgIAAIgdNDQECQCADRQ0AAkACQCADIAR0QQIgBHQiA0EAIANrcnEiA0EAIANrcUF/aiIDIANBDHZBEHEiA3YiBEEFdkEIcSIFIANyIAQgBXYiA0ECdkEEcSIEciADIAR2IgNBAXZBAnEiBHIgAyAEdiIDQQF2QQFxIgRyIAMgBHZqIgRBA3QiA0Gw0ICAAGoiBSADQbjQgIAAaigCACIDKAIIIgBHDQBBACAGQX4gBHdxIgY2AojQgIAADAELIAUgADYCCCAAIAU2AgwLIAMgAkEDcjYCBCADIARBA3QiBGogBCACayIFNgIAIAMgAmoiACAFQQFyNgIEAkAgB0UNACAHQXhxQbDQgIAAaiECQQAoApzQgIAAIQQCQAJAIAZBASAHQQN2dCIIcQ0AQQAgBiAIcjYCiNCAgAAgAiEIDAELIAIoAgghCAsgCCAENgIMIAIgBDYCCCAEIAI2AgwgBCAINgIICyADQQhqIQNBACAANgKc0ICAAEEAIAU2ApDQgIAADAwLQQAoAozQgIAAIglFDQEgCUEAIAlrcUF/aiIDIANBDHZBEHEiA3YiBEEFdkEIcSIFIANyIAQgBXYiA0ECdkEEcSIEciADIAR2IgNBAXZBAnEiBHIgAyAEdiIDQQF2QQFxIgRyIAMgBHZqQQJ0QbjSgIAAaigCACIAKAIEQXhxIAJrIQQgACEFAkADQAJAIAUoAhAiAw0AIAVBFGooAgAiA0UNAgsgAygCBEF4cSACayIFIAQgBSAESSIFGyEEIAMgACAFGyEAIAMhBQwACwsgACgCGCEKAkAgACgCDCIIIABGDQAgACgCCCIDQQAoApjQgIAASRogCCADNgIIIAMgCDYCDAwLCwJAIABBFGoiBSgCACIDDQAgACgCECIDRQ0DIABBEGohBQsDQCAFIQsgAyIIQRRqIgUoAgAiAw0AIAhBEGohBSAIKAIQIgMNAAsgC0EANgIADAoLQX8hAiAAQb9/Sw0AIABBE2oiA0FwcSECQQAoAozQgIAAIgdFDQBBACELAkAgAkGAAkkNAEEfIQsgAkH///8HSw0AIANBCHYiAyADQYD+P2pBEHZBCHEiA3QiBCAEQYDgH2pBEHZBBHEiBHQiBSAFQYCAD2pBEHZBAnEiBXRBD3YgAyAEciAFcmsiA0EBdCACIANBFWp2QQFxckEcaiELC0EAIAJrIQQCQAJAAkACQCALQQJ0QbjSgIAAaigCACIFDQBBACEDQQAhCAwBC0EAIQMgAkEAQRkgC0EBdmsgC0EfRht0IQBBACEIA0ACQCAFKAIEQXhxIAJrIgYgBE8NACAGIQQgBSEIIAYNAEEAIQQgBSEIIAUhAwwDCyADIAVBFGooAgAiBiAGIAUgAEEddkEEcWpBEGooAgAiBUYbIAMgBhshAyAAQQF0IQAgBQ0ACwsCQCADIAhyDQBBACEIQQIgC3QiA0EAIANrciAHcSIDRQ0DIANBACADa3FBf2oiAyADQQx2QRBxIgN2IgVBBXZBCHEiACADciAFIAB2IgNBAnZBBHEiBXIgAyAFdiIDQQF2QQJxIgVyIAMgBXYiA0EBdkEBcSIFciADIAV2akECdEG40oCAAGooAgAhAwsgA0UNAQsDQCADKAIEQXhxIAJrIgYgBEkhAAJAIAMoAhAiBQ0AIANBFGooAgAhBQsgBiAEIAAbIQQgAyAIIAAbIQggBSEDIAUNAAsLIAhFDQAgBEEAKAKQ0ICAACACa08NACAIKAIYIQsCQCAIKAIMIgAgCEYNACAIKAIIIgNBACgCmNCAgABJGiAAIAM2AgggAyAANgIMDAkLAkAgCEEUaiIFKAIAIgMNACAIKAIQIgNFDQMgCEEQaiEFCwNAIAUhBiADIgBBFGoiBSgCACIDDQAgAEEQaiEFIAAoAhAiAw0ACyAGQQA2AgAMCAsCQEEAKAKQ0ICAACIDIAJJDQBBACgCnNCAgAAhBAJAAkAgAyACayIFQRBJDQAgBCACaiIAIAVBAXI2AgRBACAFNgKQ0ICAAEEAIAA2ApzQgIAAIAQgA2ogBTYCACAEIAJBA3I2AgQMAQsgBCADQQNyNgIEIAQgA2oiAyADKAIEQQFyNgIEQQBBADYCnNCAgABBAEEANgKQ0ICAAAsgBEEIaiEDDAoLAkBBACgClNCAgAAiACACTQ0AQQAoAqDQgIAAIgMgAmoiBCAAIAJrIgVBAXI2AgRBACAFNgKU0ICAAEEAIAQ2AqDQgIAAIAMgAkEDcjYCBCADQQhqIQMMCgsCQAJAQQAoAuDTgIAARQ0AQQAoAujTgIAAIQQMAQtBAEJ/NwLs04CAAEEAQoCAhICAgMAANwLk04CAAEEAIAFBDGpBcHFB2KrVqgVzNgLg04CAAEEAQQA2AvTTgIAAQQBBADYCxNOAgABBgIAEIQQLQQAhAwJAIAQgAkHHAGoiB2oiBkEAIARrIgtxIgggAksNAEEAQTA2AvjTgIAADAoLAkBBACgCwNOAgAAiA0UNAAJAQQAoArjTgIAAIgQgCGoiBSAETQ0AIAUgA00NAQtBACEDQQBBMDYC+NOAgAAMCgtBAC0AxNOAgABBBHENBAJAAkACQEEAKAKg0ICAACIERQ0AQcjTgIAAIQMDQAJAIAMoAgAiBSAESw0AIAUgAygCBGogBEsNAwsgAygCCCIDDQALC0EAEMuAgIAAIgBBf0YNBSAIIQYCQEEAKALk04CAACIDQX9qIgQgAHFFDQAgCCAAayAEIABqQQAgA2txaiEGCyAGIAJNDQUgBkH+////B0sNBQJAQQAoAsDTgIAAIgNFDQBBACgCuNOAgAAiBCAGaiIFIARNDQYgBSADSw0GCyAGEMuAgIAAIgMgAEcNAQwHCyAGIABrIAtxIgZB/v///wdLDQQgBhDLgICAACIAIAMoAgAgAygCBGpGDQMgACEDCwJAIANBf0YNACACQcgAaiAGTQ0AAkAgByAGa0EAKALo04CAACIEakEAIARrcSIEQf7///8HTQ0AIAMhAAwHCwJAIAQQy4CAgABBf0YNACAEIAZqIQYgAyEADAcLQQAgBmsQy4CAgAAaDAQLIAMhACADQX9HDQUMAwtBACEIDAcLQQAhAAwFCyAAQX9HDQILQQBBACgCxNOAgABBBHI2AsTTgIAACyAIQf7///8HSw0BIAgQy4CAgAAhAEEAEMuAgIAAIQMgAEF/Rg0BIANBf0YNASAAIANPDQEgAyAAayIGIAJBOGpNDQELQQBBACgCuNOAgAAgBmoiAzYCuNOAgAACQCADQQAoArzTgIAATQ0AQQAgAzYCvNOAgAALAkACQAJAAkBBACgCoNCAgAAiBEUNAEHI04CAACEDA0AgACADKAIAIgUgAygCBCIIakYNAiADKAIIIgMNAAwDCwsCQAJAQQAoApjQgIAAIgNFDQAgACADTw0BC0EAIAA2ApjQgIAAC0EAIQNBACAGNgLM04CAAEEAIAA2AsjTgIAAQQBBfzYCqNCAgABBAEEAKALg04CAADYCrNCAgABBAEEANgLU04CAAANAIANBxNCAgABqIANBuNCAgABqIgQ2AgAgBCADQbDQgIAAaiIFNgIAIANBvNCAgABqIAU2AgAgA0HM0ICAAGogA0HA0ICAAGoiBTYCACAFIAQ2AgAgA0HU0ICAAGogA0HI0ICAAGoiBDYCACAEIAU2AgAgA0HQ0ICAAGogBDYCACADQSBqIgNBgAJHDQALIABBeCAAa0EPcUEAIABBCGpBD3EbIgNqIgQgBkFIaiIFIANrIgNBAXI2AgRBAEEAKALw04CAADYCpNCAgABBACADNgKU0ICAAEEAIAQ2AqDQgIAAIAAgBWpBODYCBAwCCyADLQAMQQhxDQAgBCAFSQ0AIAQgAE8NACAEQXggBGtBD3FBACAEQQhqQQ9xGyIFaiIAQQAoApTQgIAAIAZqIgsgBWsiBUEBcjYCBCADIAggBmo2AgRBAEEAKALw04CAADYCpNCAgABBACAFNgKU0ICAAEEAIAA2AqDQgIAAIAQgC2pBODYCBAwBCwJAIABBACgCmNCAgAAiCE8NAEEAIAA2ApjQgIAAIAAhCAsgACAGaiEFQcjTgIAAIQMCQAJAAkACQAJAAkACQANAIAMoAgAgBUYNASADKAIIIgMNAAwCCwsgAy0ADEEIcUUNAQtByNOAgAAhAwNAAkAgAygCACIFIARLDQAgBSADKAIEaiIFIARLDQMLIAMoAgghAwwACwsgAyAANgIAIAMgAygCBCAGajYCBCAAQXggAGtBD3FBACAAQQhqQQ9xG2oiCyACQQNyNgIEIAVBeCAFa0EPcUEAIAVBCGpBD3EbaiIGIAsgAmoiAmshAwJAIAYgBEcNAEEAIAI2AqDQgIAAQQBBACgClNCAgAAgA2oiAzYClNCAgAAgAiADQQFyNgIEDAMLAkAgBkEAKAKc0ICAAEcNAEEAIAI2ApzQgIAAQQBBACgCkNCAgAAgA2oiAzYCkNCAgAAgAiADQQFyNgIEIAIgA2ogAzYCAAwDCwJAIAYoAgQiBEEDcUEBRw0AIARBeHEhBwJAAkAgBEH/AUsNACAGKAIIIgUgBEEDdiIIQQN0QbDQgIAAaiIARhoCQCAGKAIMIgQgBUcNAEEAQQAoAojQgIAAQX4gCHdxNgKI0ICAAAwCCyAEIABGGiAEIAU2AgggBSAENgIMDAELIAYoAhghCQJAAkAgBigCDCIAIAZGDQAgBigCCCIEIAhJGiAAIAQ2AgggBCAANgIMDAELAkAgBkEUaiIEKAIAIgUNACAGQRBqIgQoAgAiBQ0AQQAhAAwBCwNAIAQhCCAFIgBBFGoiBCgCACIFDQAgAEEQaiEEIAAoAhAiBQ0ACyAIQQA2AgALIAlFDQACQAJAIAYgBigCHCIFQQJ0QbjSgIAAaiIEKAIARw0AIAQgADYCACAADQFBAEEAKAKM0ICAAEF+IAV3cTYCjNCAgAAMAgsgCUEQQRQgCSgCECAGRhtqIAA2AgAgAEUNAQsgACAJNgIYAkAgBigCECIERQ0AIAAgBDYCECAEIAA2AhgLIAYoAhQiBEUNACAAQRRqIAQ2AgAgBCAANgIYCyAHIANqIQMgBiAHaiIGKAIEIQQLIAYgBEF+cTYCBCACIANqIAM2AgAgAiADQQFyNgIEAkAgA0H/AUsNACADQXhxQbDQgIAAaiEEAkACQEEAKAKI0ICAACIFQQEgA0EDdnQiA3ENAEEAIAUgA3I2AojQgIAAIAQhAwwBCyAEKAIIIQMLIAMgAjYCDCAEIAI2AgggAiAENgIMIAIgAzYCCAwDC0EfIQQCQCADQf///wdLDQAgA0EIdiIEIARBgP4/akEQdkEIcSIEdCIFIAVBgOAfakEQdkEEcSIFdCIAIABBgIAPakEQdkECcSIAdEEPdiAEIAVyIAByayIEQQF0IAMgBEEVanZBAXFyQRxqIQQLIAIgBDYCHCACQgA3AhAgBEECdEG40oCAAGohBQJAQQAoAozQgIAAIgBBASAEdCIIcQ0AIAUgAjYCAEEAIAAgCHI2AozQgIAAIAIgBTYCGCACIAI2AgggAiACNgIMDAMLIANBAEEZIARBAXZrIARBH0YbdCEEIAUoAgAhAANAIAAiBSgCBEF4cSADRg0CIARBHXYhACAEQQF0IQQgBSAAQQRxakEQaiIIKAIAIgANAAsgCCACNgIAIAIgBTYCGCACIAI2AgwgAiACNgIIDAILIABBeCAAa0EPcUEAIABBCGpBD3EbIgNqIgsgBkFIaiIIIANrIgNBAXI2AgQgACAIakE4NgIEIAQgBUE3IAVrQQ9xQQAgBUFJakEPcRtqQUFqIgggCCAEQRBqSRsiCEEjNgIEQQBBACgC8NOAgAA2AqTQgIAAQQAgAzYClNCAgABBACALNgKg0ICAACAIQRBqQQApAtDTgIAANwIAIAhBACkCyNOAgAA3AghBACAIQQhqNgLQ04CAAEEAIAY2AszTgIAAQQAgADYCyNOAgABBAEEANgLU04CAACAIQSRqIQMDQCADQQc2AgAgA0EEaiIDIAVJDQALIAggBEYNAyAIIAgoAgRBfnE2AgQgCCAIIARrIgA2AgAgBCAAQQFyNgIEAkAgAEH/AUsNACAAQXhxQbDQgIAAaiEDAkACQEEAKAKI0ICAACIFQQEgAEEDdnQiAHENAEEAIAUgAHI2AojQgIAAIAMhBQwBCyADKAIIIQULIAUgBDYCDCADIAQ2AgggBCADNgIMIAQgBTYCCAwEC0EfIQMCQCAAQf///wdLDQAgAEEIdiIDIANBgP4/akEQdkEIcSIDdCIFIAVBgOAfakEQdkEEcSIFdCIIIAhBgIAPakEQdkECcSIIdEEPdiADIAVyIAhyayIDQQF0IAAgA0EVanZBAXFyQRxqIQMLIAQgAzYCHCAEQgA3AhAgA0ECdEG40oCAAGohBQJAQQAoAozQgIAAIghBASADdCIGcQ0AIAUgBDYCAEEAIAggBnI2AozQgIAAIAQgBTYCGCAEIAQ2AgggBCAENgIMDAQLIABBAEEZIANBAXZrIANBH0YbdCEDIAUoAgAhCANAIAgiBSgCBEF4cSAARg0DIANBHXYhCCADQQF0IQMgBSAIQQRxakEQaiIGKAIAIggNAAsgBiAENgIAIAQgBTYCGCAEIAQ2AgwgBCAENgIIDAMLIAUoAggiAyACNgIMIAUgAjYCCCACQQA2AhggAiAFNgIMIAIgAzYCCAsgC0EIaiEDDAULIAUoAggiAyAENgIMIAUgBDYCCCAEQQA2AhggBCAFNgIMIAQgAzYCCAtBACgClNCAgAAiAyACTQ0AQQAoAqDQgIAAIgQgAmoiBSADIAJrIgNBAXI2AgRBACADNgKU0ICAAEEAIAU2AqDQgIAAIAQgAkEDcjYCBCAEQQhqIQMMAwtBACEDQQBBMDYC+NOAgAAMAgsCQCALRQ0AAkACQCAIIAgoAhwiBUECdEG40oCAAGoiAygCAEcNACADIAA2AgAgAA0BQQAgB0F+IAV3cSIHNgKM0ICAAAwCCyALQRBBFCALKAIQIAhGG2ogADYCACAARQ0BCyAAIAs2AhgCQCAIKAIQIgNFDQAgACADNgIQIAMgADYCGAsgCEEUaigCACIDRQ0AIABBFGogAzYCACADIAA2AhgLAkACQCAEQQ9LDQAgCCAEIAJqIgNBA3I2AgQgCCADaiIDIAMoAgRBAXI2AgQMAQsgCCACaiIAIARBAXI2AgQgCCACQQNyNgIEIAAgBGogBDYCAAJAIARB/wFLDQAgBEF4cUGw0ICAAGohAwJAAkBBACgCiNCAgAAiBUEBIARBA3Z0IgRxDQBBACAFIARyNgKI0ICAACADIQQMAQsgAygCCCEECyAEIAA2AgwgAyAANgIIIAAgAzYCDCAAIAQ2AggMAQtBHyEDAkAgBEH///8HSw0AIARBCHYiAyADQYD+P2pBEHZBCHEiA3QiBSAFQYDgH2pBEHZBBHEiBXQiAiACQYCAD2pBEHZBAnEiAnRBD3YgAyAFciACcmsiA0EBdCAEIANBFWp2QQFxckEcaiEDCyAAIAM2AhwgAEIANwIQIANBAnRBuNKAgABqIQUCQCAHQQEgA3QiAnENACAFIAA2AgBBACAHIAJyNgKM0ICAACAAIAU2AhggACAANgIIIAAgADYCDAwBCyAEQQBBGSADQQF2ayADQR9GG3QhAyAFKAIAIQICQANAIAIiBSgCBEF4cSAERg0BIANBHXYhAiADQQF0IQMgBSACQQRxakEQaiIGKAIAIgINAAsgBiAANgIAIAAgBTYCGCAAIAA2AgwgACAANgIIDAELIAUoAggiAyAANgIMIAUgADYCCCAAQQA2AhggACAFNgIMIAAgAzYCCAsgCEEIaiEDDAELAkAgCkUNAAJAAkAgACAAKAIcIgVBAnRBuNKAgABqIgMoAgBHDQAgAyAINgIAIAgNAUEAIAlBfiAFd3E2AozQgIAADAILIApBEEEUIAooAhAgAEYbaiAINgIAIAhFDQELIAggCjYCGAJAIAAoAhAiA0UNACAIIAM2AhAgAyAINgIYCyAAQRRqKAIAIgNFDQAgCEEUaiADNgIAIAMgCDYCGAsCQAJAIARBD0sNACAAIAQgAmoiA0EDcjYCBCAAIANqIgMgAygCBEEBcjYCBAwBCyAAIAJqIgUgBEEBcjYCBCAAIAJBA3I2AgQgBSAEaiAENgIAAkAgB0UNACAHQXhxQbDQgIAAaiECQQAoApzQgIAAIQMCQAJAQQEgB0EDdnQiCCAGcQ0AQQAgCCAGcjYCiNCAgAAgAiEIDAELIAIoAgghCAsgCCADNgIMIAIgAzYCCCADIAI2AgwgAyAINgIIC0EAIAU2ApzQgIAAQQAgBDYCkNCAgAALIABBCGohAwsgAUEQaiSAgICAACADCwoAIAAQyYCAgAAL4g0BB38CQCAARQ0AIABBeGoiASAAQXxqKAIAIgJBeHEiAGohAwJAIAJBAXENACACQQNxRQ0BIAEgASgCACICayIBQQAoApjQgIAAIgRJDQEgAiAAaiEAAkAgAUEAKAKc0ICAAEYNAAJAIAJB/wFLDQAgASgCCCIEIAJBA3YiBUEDdEGw0ICAAGoiBkYaAkAgASgCDCICIARHDQBBAEEAKAKI0ICAAEF+IAV3cTYCiNCAgAAMAwsgAiAGRhogAiAENgIIIAQgAjYCDAwCCyABKAIYIQcCQAJAIAEoAgwiBiABRg0AIAEoAggiAiAESRogBiACNgIIIAIgBjYCDAwBCwJAIAFBFGoiAigCACIEDQAgAUEQaiICKAIAIgQNAEEAIQYMAQsDQCACIQUgBCIGQRRqIgIoAgAiBA0AIAZBEGohAiAGKAIQIgQNAAsgBUEANgIACyAHRQ0BAkACQCABIAEoAhwiBEECdEG40oCAAGoiAigCAEcNACACIAY2AgAgBg0BQQBBACgCjNCAgABBfiAEd3E2AozQgIAADAMLIAdBEEEUIAcoAhAgAUYbaiAGNgIAIAZFDQILIAYgBzYCGAJAIAEoAhAiAkUNACAGIAI2AhAgAiAGNgIYCyABKAIUIgJFDQEgBkEUaiACNgIAIAIgBjYCGAwBCyADKAIEIgJBA3FBA0cNACADIAJBfnE2AgRBACAANgKQ0ICAACABIABqIAA2AgAgASAAQQFyNgIEDwsgASADTw0AIAMoAgQiAkEBcUUNAAJAAkAgAkECcQ0AAkAgA0EAKAKg0ICAAEcNAEEAIAE2AqDQgIAAQQBBACgClNCAgAAgAGoiADYClNCAgAAgASAAQQFyNgIEIAFBACgCnNCAgABHDQNBAEEANgKQ0ICAAEEAQQA2ApzQgIAADwsCQCADQQAoApzQgIAARw0AQQAgATYCnNCAgABBAEEAKAKQ0ICAACAAaiIANgKQ0ICAACABIABBAXI2AgQgASAAaiAANgIADwsgAkF4cSAAaiEAAkACQCACQf8BSw0AIAMoAggiBCACQQN2IgVBA3RBsNCAgABqIgZGGgJAIAMoAgwiAiAERw0AQQBBACgCiNCAgABBfiAFd3E2AojQgIAADAILIAIgBkYaIAIgBDYCCCAEIAI2AgwMAQsgAygCGCEHAkACQCADKAIMIgYgA0YNACADKAIIIgJBACgCmNCAgABJGiAGIAI2AgggAiAGNgIMDAELAkAgA0EUaiICKAIAIgQNACADQRBqIgIoAgAiBA0AQQAhBgwBCwNAIAIhBSAEIgZBFGoiAigCACIEDQAgBkEQaiECIAYoAhAiBA0ACyAFQQA2AgALIAdFDQACQAJAIAMgAygCHCIEQQJ0QbjSgIAAaiICKAIARw0AIAIgBjYCACAGDQFBAEEAKAKM0ICAAEF+IAR3cTYCjNCAgAAMAgsgB0EQQRQgBygCECADRhtqIAY2AgAgBkUNAQsgBiAHNgIYAkAgAygCECICRQ0AIAYgAjYCECACIAY2AhgLIAMoAhQiAkUNACAGQRRqIAI2AgAgAiAGNgIYCyABIABqIAA2AgAgASAAQQFyNgIEIAFBACgCnNCAgABHDQFBACAANgKQ0ICAAA8LIAMgAkF+cTYCBCABIABqIAA2AgAgASAAQQFyNgIECwJAIABB/wFLDQAgAEF4cUGw0ICAAGohAgJAAkBBACgCiNCAgAAiBEEBIABBA3Z0IgBxDQBBACAEIAByNgKI0ICAACACIQAMAQsgAigCCCEACyAAIAE2AgwgAiABNgIIIAEgAjYCDCABIAA2AggPC0EfIQICQCAAQf///wdLDQAgAEEIdiICIAJBgP4/akEQdkEIcSICdCIEIARBgOAfakEQdkEEcSIEdCIGIAZBgIAPakEQdkECcSIGdEEPdiACIARyIAZyayICQQF0IAAgAkEVanZBAXFyQRxqIQILIAEgAjYCHCABQgA3AhAgAkECdEG40oCAAGohBAJAAkBBACgCjNCAgAAiBkEBIAJ0IgNxDQAgBCABNgIAQQAgBiADcjYCjNCAgAAgASAENgIYIAEgATYCCCABIAE2AgwMAQsgAEEAQRkgAkEBdmsgAkEfRht0IQIgBCgCACEGAkADQCAGIgQoAgRBeHEgAEYNASACQR12IQYgAkEBdCECIAQgBkEEcWpBEGoiAygCACIGDQALIAMgATYCACABIAQ2AhggASABNgIMIAEgATYCCAwBCyAEKAIIIgAgATYCDCAEIAE2AgggAUEANgIYIAEgBDYCDCABIAA2AggLQQBBACgCqNCAgABBf2oiAUF/IAEbNgKo0ICAAAsLBAAAAAtOAAJAIAANAD8AQRB0DwsCQCAAQf//A3ENACAAQX9MDQACQCAAQRB2QAAiAEF/Rw0AQQBBMDYC+NOAgABBfw8LIABBEHQPCxDKgICAAAAL8gICA38BfgJAIAJFDQAgACABOgAAIAIgAGoiA0F/aiABOgAAIAJBA0kNACAAIAE6AAIgACABOgABIANBfWogAToAACADQX5qIAE6AAAgAkEHSQ0AIAAgAToAAyADQXxqIAE6AAAgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIFayICQSBJDQAgAa1CgYCAgBB+IQYgAyAFaiEBA0AgASAGNwMYIAEgBjcDECABIAY3AwggASAGNwMAIAFBIGohASACQWBqIgJBH0sNAAsLIAALC45IAQBBgAgLhkgBAAAAAgAAAAMAAAAAAAAAAAAAAAQAAAAFAAAAAAAAAAAAAAAGAAAABwAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEludmFsaWQgY2hhciBpbiB1cmwgcXVlcnkAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9ib2R5AENvbnRlbnQtTGVuZ3RoIG92ZXJmbG93AENodW5rIHNpemUgb3ZlcmZsb3cAUmVzcG9uc2Ugb3ZlcmZsb3cASW52YWxpZCBtZXRob2QgZm9yIEhUVFAveC54IHJlcXVlc3QASW52YWxpZCBtZXRob2QgZm9yIFJUU1AveC54IHJlcXVlc3QARXhwZWN0ZWQgU09VUkNFIG1ldGhvZCBmb3IgSUNFL3gueCByZXF1ZXN0AEludmFsaWQgY2hhciBpbiB1cmwgZnJhZ21lbnQgc3RhcnQARXhwZWN0ZWQgZG90AFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fc3RhdHVzAEludmFsaWQgcmVzcG9uc2Ugc3RhdHVzAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMAVXNlciBjYWxsYmFjayBlcnJvcgBgb25fcmVzZXRgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19oZWFkZXJgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8=' - - -/***/ }), - -/***/ 95627: -/***/ ((module) => { - -module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJsbGh0dHBfc3RhdHVzX25hbWUAIRpsbGh0dHBfc2V0X2xlbmllbnRfaGVhZGVycwAiIWxsaHR0cF9zZXRfbGVuaWVudF9jaHVua2VkX2xlbmd0aAAjHWxsaHR0cF9zZXRfbGVuaWVudF9rZWVwX2FsaXZlACQkbGxodHRwX3NldF9sZW5pZW50X3RyYW5zZmVyX2VuY29kaW5nACUYbGxodHRwX21lc3NhZ2VfbmVlZHNfZW9mAD8JFwEAQQELEQECAwQFCwYHNTk3MS8tJyspCrLgAkUCAAsIABCIgICAAAsZACAAEMKAgIAAGiAAIAI2AjggACABOgAoCxwAIAAgAC8BMiAALQAuIAAQwYCAgAAQgICAgAALKgEBf0HAABDGgICAACIBEMKAgIAAGiABQYCIgIAANgI4IAEgADoAKCABCwoAIAAQyICAgAALBwAgAC0AKAsHACAALQAqCwcAIAAtACsLBwAgAC0AKQsHACAALwEyCwcAIAAtAC4LRQEEfyAAKAIYIQEgAC0ALSECIAAtACghAyAAKAI4IQQgABDCgICAABogACAENgI4IAAgAzoAKCAAIAI6AC0gACABNgIYCxEAIAAgASABIAJqEMOAgIAACxAAIABBAEHcABDMgICAABoLZwEBf0EAIQECQCAAKAIMDQACQAJAAkACQCAALQAvDgMBAAMCCyAAKAI4IgFFDQAgASgCLCIBRQ0AIAAgARGAgICAAAAiAQ0DC0EADwsQyoCAgAAACyAAQcOWgIAANgIQQQ4hAQsgAQseAAJAIAAoAgwNACAAQdGbgIAANgIQIABBFTYCDAsLFgACQCAAKAIMQRVHDQAgAEEANgIMCwsWAAJAIAAoAgxBFkcNACAAQQA2AgwLCwcAIAAoAgwLBwAgACgCEAsJACAAIAE2AhALBwAgACgCFAsiAAJAIABBJEkNABDKgICAAAALIABBAnRBoLOAgABqKAIACyIAAkAgAEEuSQ0AEMqAgIAAAAsgAEECdEGwtICAAGooAgAL7gsBAX9B66iAgAAhAQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABBnH9qDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0Hhp4CAAA8LQaShgIAADwtBy6yAgAAPC0H+sYCAAA8LQcCkgIAADwtBq6SAgAAPC0GNqICAAA8LQeKmgIAADwtBgLCAgAAPC0G5r4CAAA8LQdekgIAADwtB75+AgAAPC0Hhn4CAAA8LQfqfgIAADwtB8qCAgAAPC0Gor4CAAA8LQa6ygIAADwtBiLCAgAAPC0Hsp4CAAA8LQYKigIAADwtBjp2AgAAPC0HQroCAAA8LQcqjgIAADwtBxbKAgAAPC0HfnICAAA8LQdKcgIAADwtBxKCAgAAPC0HXoICAAA8LQaKfgIAADwtB7a6AgAAPC0GrsICAAA8LQdSlgIAADwtBzK6AgAAPC0H6roCAAA8LQfyrgIAADwtB0rCAgAAPC0HxnYCAAA8LQbuggIAADwtB96uAgAAPC0GQsYCAAA8LQdexgIAADwtBoq2AgAAPC0HUp4CAAA8LQeCrgIAADwtBn6yAgAAPC0HrsYCAAA8LQdWfgIAADwtByrGAgAAPC0HepYCAAA8LQdSegIAADwtB9JyAgAAPC0GnsoCAAA8LQbGdgIAADwtBoJ2AgAAPC0G5sYCAAA8LQbywgIAADwtBkqGAgAAPC0GzpoCAAA8LQemsgIAADwtBrJ6AgAAPC0HUq4CAAA8LQfemgIAADwtBgKaAgAAPC0GwoYCAAA8LQf6egIAADwtBjaOAgAAPC0GJrYCAAA8LQfeigIAADwtBoLGAgAAPC0Gun4CAAA8LQcalgIAADwtB6J6AgAAPC0GTooCAAA8LQcKvgIAADwtBw52AgAAPC0GLrICAAA8LQeGdgIAADwtBja+AgAAPC0HqoYCAAA8LQbStgIAADwtB0q+AgAAPC0HfsoCAAA8LQdKygIAADwtB8LCAgAAPC0GpooCAAA8LQfmjgIAADwtBmZ6AgAAPC0G1rICAAA8LQZuwgIAADwtBkrKAgAAPC0G2q4CAAA8LQcKigIAADwtB+LKAgAAPC0GepYCAAA8LQdCigIAADwtBup6AgAAPC0GBnoCAAA8LEMqAgIAAAAtB1qGAgAAhAQsgAQsWACAAIAAtAC1B/gFxIAFBAEdyOgAtCxkAIAAgAC0ALUH9AXEgAUEAR0EBdHI6AC0LGQAgACAALQAtQfsBcSABQQBHQQJ0cjoALQsZACAAIAAtAC1B9wFxIAFBAEdBA3RyOgAtCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAgAiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCBCIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQcaRgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIwIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAggiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2ioCAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCNCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIMIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZqAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAjgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCECIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZWQgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAI8IgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAhQiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEGqm4CAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCQCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIYIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZOAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCJCIERQ0AIAAgBBGAgICAAAAhAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIsIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAigiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2iICAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCUCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIcIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABBwpmAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCICIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZSUgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAJMIgRFDQAgACAEEYCAgIAAACEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAlQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCWCIERQ0AIAAgBBGAgICAAAAhAwsgAwtFAQF/AkACQCAALwEwQRRxQRRHDQBBASEDIAAtAChBAUYNASAALwEyQeUARiEDDAELIAAtAClBBUYhAwsgACADOgAuQQAL/gEBA39BASEDAkAgAC8BMCIEQQhxDQAgACkDIEIAUiEDCwJAAkAgAC0ALkUNAEEBIQUgAC0AKUEFRg0BQQEhBSAEQcAAcUUgA3FBAUcNAQtBACEFIARBwABxDQBBAiEFIARB//8DcSIDQQhxDQACQCADQYAEcUUNAAJAIAAtAChBAUcNACAALQAtQQpxDQBBBQ8LQQQPCwJAIANBIHENAAJAIAAtAChBAUYNACAALwEyQf//A3EiAEGcf2pB5ABJDQAgAEHMAUYNACAAQbACRg0AQQQhBSAEQShxRQ0CIANBiARxQYAERg0CC0EADwtBAEEDIAApAyBQGyEFCyAFC2IBAn9BACEBAkAgAC0AKEEBRg0AIAAvATJB//8DcSICQZx/akHkAEkNACACQcwBRg0AIAJBsAJGDQAgAC8BMCIAQcAAcQ0AQQEhASAAQYgEcUGABEYNACAAQShxRSEBCyABC6cBAQN/AkACQAJAIAAtACpFDQAgAC0AK0UNAEEAIQMgAC8BMCIEQQJxRQ0BDAILQQAhAyAALwEwIgRBAXFFDQELQQEhAyAALQAoQQFGDQAgAC8BMkH//wNxIgVBnH9qQeQASQ0AIAVBzAFGDQAgBUGwAkYNACAEQcAAcQ0AQQAhAyAEQYgEcUGABEYNACAEQShxQQBHIQMLIABBADsBMCAAQQA6AC8gAwuZAQECfwJAAkACQCAALQAqRQ0AIAAtACtFDQBBACEBIAAvATAiAkECcUUNAQwCC0EAIQEgAC8BMCICQQFxRQ0BC0EBIQEgAC0AKEEBRg0AIAAvATJB//8DcSIAQZx/akHkAEkNACAAQcwBRg0AIABBsAJGDQAgAkHAAHENAEEAIQEgAkGIBHFBgARGDQAgAkEocUEARyEBCyABC0kBAXsgAEEQav0MAAAAAAAAAAAAAAAAAAAAACIB/QsDACAAIAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEBkgGTAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AbUBtgG3AcsBygG4AckBuQHIAboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBANwBC0EAIRAMxgELQQ4hEAzFAQtBDSEQDMQBC0EPIRAMwwELQRAhEAzCAQtBEyEQDMEBC0EUIRAMwAELQRUhEAy/AQtBFiEQDL4BC0EXIRAMvQELQRghEAy8AQtBGSEQDLsBC0EaIRAMugELQRshEAy5AQtBHCEQDLgBC0EIIRAMtwELQR0hEAy2AQtBICEQDLUBC0EfIRAMtAELQQchEAyzAQtBISEQDLIBC0EiIRAMsQELQR4hEAywAQtBIyEQDK8BC0ESIRAMrgELQREhEAytAQtBJCEQDKwBC0ElIRAMqwELQSYhEAyqAQtBJyEQDKkBC0HDASEQDKgBC0EpIRAMpwELQSshEAymAQtBLCEQDKUBC0EtIRAMpAELQS4hEAyjAQtBLyEQDKIBC0HEASEQDKEBC0EwIRAMoAELQTQhEAyfAQtBDCEQDJ4BC0ExIRAMnQELQTIhEAycAQtBMyEQDJsBC0E5IRAMmgELQTUhEAyZAQtBxQEhEAyYAQtBCyEQDJcBC0E6IRAMlgELQTYhEAyVAQtBCiEQDJQBC0E3IRAMkwELQTghEAySAQtBPCEQDJEBC0E7IRAMkAELQT0hEAyPAQtBCSEQDI4BC0EoIRAMjQELQT4hEAyMAQtBPyEQDIsBC0HAACEQDIoBC0HBACEQDIkBC0HCACEQDIgBC0HDACEQDIcBC0HEACEQDIYBC0HFACEQDIUBC0HGACEQDIQBC0EqIRAMgwELQccAIRAMggELQcgAIRAMgQELQckAIRAMgAELQcoAIRAMfwtBywAhEAx+C0HNACEQDH0LQcwAIRAMfAtBzgAhEAx7C0HPACEQDHoLQdAAIRAMeQtB0QAhEAx4C0HSACEQDHcLQdMAIRAMdgtB1AAhEAx1C0HWACEQDHQLQdUAIRAMcwtBBiEQDHILQdcAIRAMcQtBBSEQDHALQdgAIRAMbwtBBCEQDG4LQdkAIRAMbQtB2gAhEAxsC0HbACEQDGsLQdwAIRAMagtBAyEQDGkLQd0AIRAMaAtB3gAhEAxnC0HfACEQDGYLQeEAIRAMZQtB4AAhEAxkC0HiACEQDGMLQeMAIRAMYgtBAiEQDGELQeQAIRAMYAtB5QAhEAxfC0HmACEQDF4LQecAIRAMXQtB6AAhEAxcC0HpACEQDFsLQeoAIRAMWgtB6wAhEAxZC0HsACEQDFgLQe0AIRAMVwtB7gAhEAxWC0HvACEQDFULQfAAIRAMVAtB8QAhEAxTC0HyACEQDFILQfMAIRAMUQtB9AAhEAxQC0H1ACEQDE8LQfYAIRAMTgtB9wAhEAxNC0H4ACEQDEwLQfkAIRAMSwtB+gAhEAxKC0H7ACEQDEkLQfwAIRAMSAtB/QAhEAxHC0H+ACEQDEYLQf8AIRAMRQtBgAEhEAxEC0GBASEQDEMLQYIBIRAMQgtBgwEhEAxBC0GEASEQDEALQYUBIRAMPwtBhgEhEAw+C0GHASEQDD0LQYgBIRAMPAtBiQEhEAw7C0GKASEQDDoLQYsBIRAMOQtBjAEhEAw4C0GNASEQDDcLQY4BIRAMNgtBjwEhEAw1C0GQASEQDDQLQZEBIRAMMwtBkgEhEAwyC0GTASEQDDELQZQBIRAMMAtBlQEhEAwvC0GWASEQDC4LQZcBIRAMLQtBmAEhEAwsC0GZASEQDCsLQZoBIRAMKgtBmwEhEAwpC0GcASEQDCgLQZ0BIRAMJwtBngEhEAwmC0GfASEQDCULQaABIRAMJAtBoQEhEAwjC0GiASEQDCILQaMBIRAMIQtBpAEhEAwgC0GlASEQDB8LQaYBIRAMHgtBpwEhEAwdC0GoASEQDBwLQakBIRAMGwtBqgEhEAwaC0GrASEQDBkLQawBIRAMGAtBrQEhEAwXC0GuASEQDBYLQQEhEAwVC0GvASEQDBQLQbABIRAMEwtBsQEhEAwSC0GzASEQDBELQbIBIRAMEAtBtAEhEAwPC0G1ASEQDA4LQbYBIRAMDQtBtwEhEAwMC0G4ASEQDAsLQbkBIRAMCgtBugEhEAwJC0G7ASEQDAgLQcYBIRAMBwtBvAEhEAwGC0G9ASEQDAULQb4BIRAMBAtBvwEhEAwDC0HAASEQDAILQcIBIRAMAQtBwQEhEAsDQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB4fICEjJSg/QEFERUZHSElKS0xNT1BRUlPeA1dZW1xdYGJlZmdoaWprbG1vcHFyc3R1dnd4eXp7fH1+gAGCAYUBhgGHAYkBiwGMAY0BjgGPAZABkQGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAG1AbYBtwG4AbkBugG7AbwBvQG+Ab8BwAHBAcIBwwHEAcUBxgHHAcgByQHKAcsBzAHNAc4BzwHQAdEB0gHTAdQB1QHWAdcB2AHZAdoB2wHcAd0B3gHgAeEB4gHjAeQB5QHmAecB6AHpAeoB6wHsAe0B7gHvAfAB8QHyAfMBmQKkArAC/gL+AgsgASIEIAJHDfMBQd0BIRAM/wMLIAEiECACRw3dAUHDASEQDP4DCyABIgEgAkcNkAFB9wAhEAz9AwsgASIBIAJHDYYBQe8AIRAM/AMLIAEiASACRw1/QeoAIRAM+wMLIAEiASACRw17QegAIRAM+gMLIAEiASACRw14QeYAIRAM+QMLIAEiASACRw0aQRghEAz4AwsgASIBIAJHDRRBEiEQDPcDCyABIgEgAkcNWUHFACEQDPYDCyABIgEgAkcNSkE/IRAM9QMLIAEiASACRw1IQTwhEAz0AwsgASIBIAJHDUFBMSEQDPMDCyAALQAuQQFGDesDDIcCCyAAIAEiASACEMCAgIAAQQFHDeYBIABCADcDIAznAQsgACABIgEgAhC0gICAACIQDecBIAEhAQz1AgsCQCABIgEgAkcNAEEGIRAM8AMLIAAgAUEBaiIBIAIQu4CAgAAiEA3oASABIQEMMQsgAEIANwMgQRIhEAzVAwsgASIQIAJHDStBHSEQDO0DCwJAIAEiASACRg0AIAFBAWohAUEQIRAM1AMLQQchEAzsAwsgAEIAIAApAyAiESACIAEiEGutIhJ9IhMgEyARVhs3AyAgESASViIURQ3lAUEIIRAM6wMLAkAgASIBIAJGDQAgAEGJgICAADYCCCAAIAE2AgQgASEBQRQhEAzSAwtBCSEQDOoDCyABIQEgACkDIFAN5AEgASEBDPICCwJAIAEiASACRw0AQQshEAzpAwsgACABQQFqIgEgAhC2gICAACIQDeUBIAEhAQzyAgsgACABIgEgAhC4gICAACIQDeUBIAEhAQzyAgsgACABIgEgAhC4gICAACIQDeYBIAEhAQwNCyAAIAEiASACELqAgIAAIhAN5wEgASEBDPACCwJAIAEiASACRw0AQQ8hEAzlAwsgAS0AACIQQTtGDQggEEENRw3oASABQQFqIQEM7wILIAAgASIBIAIQuoCAgAAiEA3oASABIQEM8gILA0ACQCABLQAAQfC1gIAAai0AACIQQQFGDQAgEEECRw3rASAAKAIEIRAgAEEANgIEIAAgECABQQFqIgEQuYCAgAAiEA3qASABIQEM9AILIAFBAWoiASACRw0AC0ESIRAM4gMLIAAgASIBIAIQuoCAgAAiEA3pASABIQEMCgsgASIBIAJHDQZBGyEQDOADCwJAIAEiASACRw0AQRYhEAzgAwsgAEGKgICAADYCCCAAIAE2AgQgACABIAIQuICAgAAiEA3qASABIQFBICEQDMYDCwJAIAEiASACRg0AA0ACQCABLQAAQfC3gIAAai0AACIQQQJGDQACQCAQQX9qDgTlAewBAOsB7AELIAFBAWohAUEIIRAMyAMLIAFBAWoiASACRw0AC0EVIRAM3wMLQRUhEAzeAwsDQAJAIAEtAABB8LmAgABqLQAAIhBBAkYNACAQQX9qDgTeAewB4AHrAewBCyABQQFqIgEgAkcNAAtBGCEQDN0DCwJAIAEiASACRg0AIABBi4CAgAA2AgggACABNgIEIAEhAUEHIRAMxAMLQRkhEAzcAwsgAUEBaiEBDAILAkAgASIUIAJHDQBBGiEQDNsDCyAUIQECQCAULQAAQXNqDhTdAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAgDuAgtBACEQIABBADYCHCAAQa+LgIAANgIQIABBAjYCDCAAIBRBAWo2AhQM2gMLAkAgAS0AACIQQTtGDQAgEEENRw3oASABQQFqIQEM5QILIAFBAWohAQtBIiEQDL8DCwJAIAEiECACRw0AQRwhEAzYAwtCACERIBAhASAQLQAAQVBqDjfnAeYBAQIDBAUGBwgAAAAAAAAACQoLDA0OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPEBESExQAC0EeIRAMvQMLQgIhEQzlAQtCAyERDOQBC0IEIREM4wELQgUhEQziAQtCBiERDOEBC0IHIREM4AELQgghEQzfAQtCCSERDN4BC0IKIREM3QELQgshEQzcAQtCDCERDNsBC0INIREM2gELQg4hEQzZAQtCDyERDNgBC0IKIREM1wELQgshEQzWAQtCDCERDNUBC0INIREM1AELQg4hEQzTAQtCDyERDNIBC0IAIRECQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAtAABBUGoON+UB5AEAAQIDBAUGB+YB5gHmAeYB5gHmAeYBCAkKCwwN5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAQ4PEBESE+YBC0ICIREM5AELQgMhEQzjAQtCBCERDOIBC0IFIREM4QELQgYhEQzgAQtCByERDN8BC0IIIREM3gELQgkhEQzdAQtCCiERDNwBC0ILIREM2wELQgwhEQzaAQtCDSERDNkBC0IOIREM2AELQg8hEQzXAQtCCiERDNYBC0ILIREM1QELQgwhEQzUAQtCDSERDNMBC0IOIREM0gELQg8hEQzRAQsgAEIAIAApAyAiESACIAEiEGutIhJ9IhMgEyARVhs3AyAgESASViIURQ3SAUEfIRAMwAMLAkAgASIBIAJGDQAgAEGJgICAADYCCCAAIAE2AgQgASEBQSQhEAynAwtBICEQDL8DCyAAIAEiECACEL6AgIAAQX9qDgW2AQDFAgHRAdIBC0ERIRAMpAMLIABBAToALyAQIQEMuwMLIAEiASACRw3SAUEkIRAMuwMLIAEiDSACRw0eQcYAIRAMugMLIAAgASIBIAIQsoCAgAAiEA3UASABIQEMtQELIAEiECACRw0mQdAAIRAMuAMLAkAgASIBIAJHDQBBKCEQDLgDCyAAQQA2AgQgAEGMgICAADYCCCAAIAEgARCxgICAACIQDdMBIAEhAQzYAQsCQCABIhAgAkcNAEEpIRAMtwMLIBAtAAAiAUEgRg0UIAFBCUcN0wEgEEEBaiEBDBULAkAgASIBIAJGDQAgAUEBaiEBDBcLQSohEAy1AwsCQCABIhAgAkcNAEErIRAMtQMLAkAgEC0AACIBQQlGDQAgAUEgRw3VAQsgAC0ALEEIRg3TASAQIQEMkQMLAkAgASIBIAJHDQBBLCEQDLQDCyABLQAAQQpHDdUBIAFBAWohAQzJAgsgASIOIAJHDdUBQS8hEAyyAwsDQAJAIAEtAAAiEEEgRg0AAkAgEEF2ag4EANwB3AEA2gELIAEhAQzgAQsgAUEBaiIBIAJHDQALQTEhEAyxAwtBMiEQIAEiFCACRg2wAyACIBRrIAAoAgAiAWohFSAUIAFrQQNqIRYCQANAIBQtAAAiF0EgciAXIBdBv39qQf8BcUEaSRtB/wFxIAFB8LuAgABqLQAARw0BAkAgAUEDRw0AQQYhAQyWAwsgAUEBaiEBIBRBAWoiFCACRw0ACyAAIBU2AgAMsQMLIABBADYCACAUIQEM2QELQTMhECABIhQgAkYNrwMgAiAUayAAKAIAIgFqIRUgFCABa0EIaiEWAkADQCAULQAAIhdBIHIgFyAXQb9/akH/AXFBGkkbQf8BcSABQfS7gIAAai0AAEcNAQJAIAFBCEcNAEEFIQEMlQMLIAFBAWohASAUQQFqIhQgAkcNAAsgACAVNgIADLADCyAAQQA2AgAgFCEBDNgBC0E0IRAgASIUIAJGDa4DIAIgFGsgACgCACIBaiEVIBQgAWtBBWohFgJAA0AgFC0AACIXQSByIBcgF0G/f2pB/wFxQRpJG0H/AXEgAUHQwoCAAGotAABHDQECQCABQQVHDQBBByEBDJQDCyABQQFqIQEgFEEBaiIUIAJHDQALIAAgFTYCAAyvAwsgAEEANgIAIBQhAQzXAQsCQCABIgEgAkYNAANAAkAgAS0AAEGAvoCAAGotAAAiEEEBRg0AIBBBAkYNCiABIQEM3QELIAFBAWoiASACRw0AC0EwIRAMrgMLQTAhEAytAwsCQCABIgEgAkYNAANAAkAgAS0AACIQQSBGDQAgEEF2ag4E2QHaAdoB2QHaAQsgAUEBaiIBIAJHDQALQTghEAytAwtBOCEQDKwDCwNAAkAgAS0AACIQQSBGDQAgEEEJRw0DCyABQQFqIgEgAkcNAAtBPCEQDKsDCwNAAkAgAS0AACIQQSBGDQACQAJAIBBBdmoOBNoBAQHaAQALIBBBLEYN2wELIAEhAQwECyABQQFqIgEgAkcNAAtBPyEQDKoDCyABIQEM2wELQcAAIRAgASIUIAJGDagDIAIgFGsgACgCACIBaiEWIBQgAWtBBmohFwJAA0AgFC0AAEEgciABQYDAgIAAai0AAEcNASABQQZGDY4DIAFBAWohASAUQQFqIhQgAkcNAAsgACAWNgIADKkDCyAAQQA2AgAgFCEBC0E2IRAMjgMLAkAgASIPIAJHDQBBwQAhEAynAwsgAEGMgICAADYCCCAAIA82AgQgDyEBIAAtACxBf2oOBM0B1QHXAdkBhwMLIAFBAWohAQzMAQsCQCABIgEgAkYNAANAAkAgAS0AACIQQSByIBAgEEG/f2pB/wFxQRpJG0H/AXEiEEEJRg0AIBBBIEYNAAJAAkACQAJAIBBBnX9qDhMAAwMDAwMDAwEDAwMDAwMDAwMCAwsgAUEBaiEBQTEhEAyRAwsgAUEBaiEBQTIhEAyQAwsgAUEBaiEBQTMhEAyPAwsgASEBDNABCyABQQFqIgEgAkcNAAtBNSEQDKUDC0E1IRAMpAMLAkAgASIBIAJGDQADQAJAIAEtAABBgLyAgABqLQAAQQFGDQAgASEBDNMBCyABQQFqIgEgAkcNAAtBPSEQDKQDC0E9IRAMowMLIAAgASIBIAIQsICAgAAiEA3WASABIQEMAQsgEEEBaiEBC0E8IRAMhwMLAkAgASIBIAJHDQBBwgAhEAygAwsCQANAAkAgAS0AAEF3ag4YAAL+Av4ChAP+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gIA/gILIAFBAWoiASACRw0AC0HCACEQDKADCyABQQFqIQEgAC0ALUEBcUUNvQEgASEBC0EsIRAMhQMLIAEiASACRw3TAUHEACEQDJ0DCwNAAkAgAS0AAEGQwICAAGotAABBAUYNACABIQEMtwILIAFBAWoiASACRw0AC0HFACEQDJwDCyANLQAAIhBBIEYNswEgEEE6Rw2BAyAAKAIEIQEgAEEANgIEIAAgASANEK+AgIAAIgEN0AEgDUEBaiEBDLMCC0HHACEQIAEiDSACRg2aAyACIA1rIAAoAgAiAWohFiANIAFrQQVqIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQZDCgIAAai0AAEcNgAMgAUEFRg30AiABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyaAwtByAAhECABIg0gAkYNmQMgAiANayAAKAIAIgFqIRYgDSABa0EJaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUGWwoCAAGotAABHDf8CAkAgAUEJRw0AQQIhAQz1AgsgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMmQMLAkAgASINIAJHDQBByQAhEAyZAwsCQAJAIA0tAAAiAUEgciABIAFBv39qQf8BcUEaSRtB/wFxQZJ/ag4HAIADgAOAA4ADgAMBgAMLIA1BAWohAUE+IRAMgAMLIA1BAWohAUE/IRAM/wILQcoAIRAgASINIAJGDZcDIAIgDWsgACgCACIBaiEWIA0gAWtBAWohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFBoMKAgABqLQAARw39AiABQQFGDfACIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJcDC0HLACEQIAEiDSACRg2WAyACIA1rIAAoAgAiAWohFiANIAFrQQ5qIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQaLCgIAAai0AAEcN/AIgAUEORg3wAiABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyWAwtBzAAhECABIg0gAkYNlQMgAiANayAAKAIAIgFqIRYgDSABa0EPaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUHAwoCAAGotAABHDfsCAkAgAUEPRw0AQQMhAQzxAgsgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMlQMLQc0AIRAgASINIAJGDZQDIAIgDWsgACgCACIBaiEWIA0gAWtBBWohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFB0MKAgABqLQAARw36AgJAIAFBBUcNAEEEIQEM8AILIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJQDCwJAIAEiDSACRw0AQc4AIRAMlAMLAkACQAJAAkAgDS0AACIBQSByIAEgAUG/f2pB/wFxQRpJG0H/AXFBnX9qDhMA/QL9Av0C/QL9Av0C/QL9Av0C/QL9Av0CAf0C/QL9AgID/QILIA1BAWohAUHBACEQDP0CCyANQQFqIQFBwgAhEAz8AgsgDUEBaiEBQcMAIRAM+wILIA1BAWohAUHEACEQDPoCCwJAIAEiASACRg0AIABBjYCAgAA2AgggACABNgIEIAEhAUHFACEQDPoCC0HPACEQDJIDCyAQIQECQAJAIBAtAABBdmoOBAGoAqgCAKgCCyAQQQFqIQELQSchEAz4AgsCQCABIgEgAkcNAEHRACEQDJEDCwJAIAEtAABBIEYNACABIQEMjQELIAFBAWohASAALQAtQQFxRQ3HASABIQEMjAELIAEiFyACRw3IAUHSACEQDI8DC0HTACEQIAEiFCACRg2OAyACIBRrIAAoAgAiAWohFiAUIAFrQQFqIRcDQCAULQAAIAFB1sKAgABqLQAARw3MASABQQFGDccBIAFBAWohASAUQQFqIhQgAkcNAAsgACAWNgIADI4DCwJAIAEiASACRw0AQdUAIRAMjgMLIAEtAABBCkcNzAEgAUEBaiEBDMcBCwJAIAEiASACRw0AQdYAIRAMjQMLAkACQCABLQAAQXZqDgQAzQHNAQHNAQsgAUEBaiEBDMcBCyABQQFqIQFBygAhEAzzAgsgACABIgEgAhCugICAACIQDcsBIAEhAUHNACEQDPICCyAALQApQSJGDYUDDKYCCwJAIAEiASACRw0AQdsAIRAMigMLQQAhFEEBIRdBASEWQQAhEAJAAkACQAJAAkACQAJAAkACQCABLQAAQVBqDgrUAdMBAAECAwQFBgjVAQtBAiEQDAYLQQMhEAwFC0EEIRAMBAtBBSEQDAMLQQYhEAwCC0EHIRAMAQtBCCEQC0EAIRdBACEWQQAhFAzMAQtBCSEQQQEhFEEAIRdBACEWDMsBCwJAIAEiASACRw0AQd0AIRAMiQMLIAEtAABBLkcNzAEgAUEBaiEBDKYCCyABIgEgAkcNzAFB3wAhEAyHAwsCQCABIgEgAkYNACAAQY6AgIAANgIIIAAgATYCBCABIQFB0AAhEAzuAgtB4AAhEAyGAwtB4QAhECABIgEgAkYNhQMgAiABayAAKAIAIhRqIRYgASAUa0EDaiEXA0AgAS0AACAUQeLCgIAAai0AAEcNzQEgFEEDRg3MASAUQQFqIRQgAUEBaiIBIAJHDQALIAAgFjYCAAyFAwtB4gAhECABIgEgAkYNhAMgAiABayAAKAIAIhRqIRYgASAUa0ECaiEXA0AgAS0AACAUQebCgIAAai0AAEcNzAEgFEECRg3OASAUQQFqIRQgAUEBaiIBIAJHDQALIAAgFjYCAAyEAwtB4wAhECABIgEgAkYNgwMgAiABayAAKAIAIhRqIRYgASAUa0EDaiEXA0AgAS0AACAUQenCgIAAai0AAEcNywEgFEEDRg3OASAUQQFqIRQgAUEBaiIBIAJHDQALIAAgFjYCAAyDAwsCQCABIgEgAkcNAEHlACEQDIMDCyAAIAFBAWoiASACEKiAgIAAIhANzQEgASEBQdYAIRAM6QILAkAgASIBIAJGDQADQAJAIAEtAAAiEEEgRg0AAkACQAJAIBBBuH9qDgsAAc8BzwHPAc8BzwHPAc8BzwECzwELIAFBAWohAUHSACEQDO0CCyABQQFqIQFB0wAhEAzsAgsgAUEBaiEBQdQAIRAM6wILIAFBAWoiASACRw0AC0HkACEQDIIDC0HkACEQDIEDCwNAAkAgAS0AAEHwwoCAAGotAAAiEEEBRg0AIBBBfmoOA88B0AHRAdIBCyABQQFqIgEgAkcNAAtB5gAhEAyAAwsCQCABIgEgAkYNACABQQFqIQEMAwtB5wAhEAz/AgsDQAJAIAEtAABB8MSAgABqLQAAIhBBAUYNAAJAIBBBfmoOBNIB0wHUAQDVAQsgASEBQdcAIRAM5wILIAFBAWoiASACRw0AC0HoACEQDP4CCwJAIAEiASACRw0AQekAIRAM/gILAkAgAS0AACIQQXZqDhq6AdUB1QG8AdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAcoB1QHVAQDTAQsgAUEBaiEBC0EGIRAM4wILA0ACQCABLQAAQfDGgIAAai0AAEEBRg0AIAEhAQyeAgsgAUEBaiIBIAJHDQALQeoAIRAM+wILAkAgASIBIAJGDQAgAUEBaiEBDAMLQesAIRAM+gILAkAgASIBIAJHDQBB7AAhEAz6AgsgAUEBaiEBDAELAkAgASIBIAJHDQBB7QAhEAz5AgsgAUEBaiEBC0EEIRAM3gILAkAgASIUIAJHDQBB7gAhEAz3AgsgFCEBAkACQAJAIBQtAABB8MiAgABqLQAAQX9qDgfUAdUB1gEAnAIBAtcBCyAUQQFqIQEMCgsgFEEBaiEBDM0BC0EAIRAgAEEANgIcIABBm5KAgAA2AhAgAEEHNgIMIAAgFEEBajYCFAz2AgsCQANAAkAgAS0AAEHwyICAAGotAAAiEEEERg0AAkACQCAQQX9qDgfSAdMB1AHZAQAEAdkBCyABIQFB2gAhEAzgAgsgAUEBaiEBQdwAIRAM3wILIAFBAWoiASACRw0AC0HvACEQDPYCCyABQQFqIQEMywELAkAgASIUIAJHDQBB8AAhEAz1AgsgFC0AAEEvRw3UASAUQQFqIQEMBgsCQCABIhQgAkcNAEHxACEQDPQCCwJAIBQtAAAiAUEvRw0AIBRBAWohAUHdACEQDNsCCyABQXZqIgRBFksN0wFBASAEdEGJgIACcUUN0wEMygILAkAgASIBIAJGDQAgAUEBaiEBQd4AIRAM2gILQfIAIRAM8gILAkAgASIUIAJHDQBB9AAhEAzyAgsgFCEBAkAgFC0AAEHwzICAAGotAABBf2oOA8kClAIA1AELQeEAIRAM2AILAkAgASIUIAJGDQADQAJAIBQtAABB8MqAgABqLQAAIgFBA0YNAAJAIAFBf2oOAssCANUBCyAUIQFB3wAhEAzaAgsgFEEBaiIUIAJHDQALQfMAIRAM8QILQfMAIRAM8AILAkAgASIBIAJGDQAgAEGPgICAADYCCCAAIAE2AgQgASEBQeAAIRAM1wILQfUAIRAM7wILAkAgASIBIAJHDQBB9gAhEAzvAgsgAEGPgICAADYCCCAAIAE2AgQgASEBC0EDIRAM1AILA0AgAS0AAEEgRw3DAiABQQFqIgEgAkcNAAtB9wAhEAzsAgsCQCABIgEgAkcNAEH4ACEQDOwCCyABLQAAQSBHDc4BIAFBAWohAQzvAQsgACABIgEgAhCsgICAACIQDc4BIAEhAQyOAgsCQCABIgQgAkcNAEH6ACEQDOoCCyAELQAAQcwARw3RASAEQQFqIQFBEyEQDM8BCwJAIAEiBCACRw0AQfsAIRAM6QILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEANAIAQtAAAgAUHwzoCAAGotAABHDdABIAFBBUYNzgEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBB+wAhEAzoAgsCQCABIgQgAkcNAEH8ACEQDOgCCwJAAkAgBC0AAEG9f2oODADRAdEB0QHRAdEB0QHRAdEB0QHRAQHRAQsgBEEBaiEBQeYAIRAMzwILIARBAWohAUHnACEQDM4CCwJAIAEiBCACRw0AQf0AIRAM5wILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQe3PgIAAai0AAEcNzwEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQf0AIRAM5wILIABBADYCACAQQQFqIQFBECEQDMwBCwJAIAEiBCACRw0AQf4AIRAM5gILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQfbOgIAAai0AAEcNzgEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQf4AIRAM5gILIABBADYCACAQQQFqIQFBFiEQDMsBCwJAIAEiBCACRw0AQf8AIRAM5QILIAIgBGsgACgCACIBaiEUIAQgAWtBA2ohEAJAA0AgBC0AACABQfzOgIAAai0AAEcNzQEgAUEDRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQf8AIRAM5QILIABBADYCACAQQQFqIQFBBSEQDMoBCwJAIAEiBCACRw0AQYABIRAM5AILIAQtAABB2QBHDcsBIARBAWohAUEIIRAMyQELAkAgASIEIAJHDQBBgQEhEAzjAgsCQAJAIAQtAABBsn9qDgMAzAEBzAELIARBAWohAUHrACEQDMoCCyAEQQFqIQFB7AAhEAzJAgsCQCABIgQgAkcNAEGCASEQDOICCwJAAkAgBC0AAEG4f2oOCADLAcsBywHLAcsBywEBywELIARBAWohAUHqACEQDMkCCyAEQQFqIQFB7QAhEAzIAgsCQCABIgQgAkcNAEGDASEQDOECCyACIARrIAAoAgAiAWohECAEIAFrQQJqIRQCQANAIAQtAAAgAUGAz4CAAGotAABHDckBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgEDYCAEGDASEQDOECC0EAIRAgAEEANgIAIBRBAWohAQzGAQsCQCABIgQgAkcNAEGEASEQDOACCyACIARrIAAoAgAiAWohFCAEIAFrQQRqIRACQANAIAQtAAAgAUGDz4CAAGotAABHDcgBIAFBBEYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGEASEQDOACCyAAQQA2AgAgEEEBaiEBQSMhEAzFAQsCQCABIgQgAkcNAEGFASEQDN8CCwJAAkAgBC0AAEG0f2oOCADIAcgByAHIAcgByAEByAELIARBAWohAUHvACEQDMYCCyAEQQFqIQFB8AAhEAzFAgsCQCABIgQgAkcNAEGGASEQDN4CCyAELQAAQcUARw3FASAEQQFqIQEMgwILAkAgASIEIAJHDQBBhwEhEAzdAgsgAiAEayAAKAIAIgFqIRQgBCABa0EDaiEQAkADQCAELQAAIAFBiM+AgABqLQAARw3FASABQQNGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBhwEhEAzdAgsgAEEANgIAIBBBAWohAUEtIRAMwgELAkAgASIEIAJHDQBBiAEhEAzcAgsgAiAEayAAKAIAIgFqIRQgBCABa0EIaiEQAkADQCAELQAAIAFB0M+AgABqLQAARw3EASABQQhGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBiAEhEAzcAgsgAEEANgIAIBBBAWohAUEpIRAMwQELAkAgASIBIAJHDQBBiQEhEAzbAgtBASEQIAEtAABB3wBHDcABIAFBAWohAQyBAgsCQCABIgQgAkcNAEGKASEQDNoCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRADQCAELQAAIAFBjM+AgABqLQAARw3BASABQQFGDa8CIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYoBIRAM2QILAkAgASIEIAJHDQBBiwEhEAzZAgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFBjs+AgABqLQAARw3BASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBiwEhEAzZAgsgAEEANgIAIBBBAWohAUECIRAMvgELAkAgASIEIAJHDQBBjAEhEAzYAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFB8M+AgABqLQAARw3AASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBjAEhEAzYAgsgAEEANgIAIBBBAWohAUEfIRAMvQELAkAgASIEIAJHDQBBjQEhEAzXAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFB8s+AgABqLQAARw2/ASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBjQEhEAzXAgsgAEEANgIAIBBBAWohAUEJIRAMvAELAkAgASIEIAJHDQBBjgEhEAzWAgsCQAJAIAQtAABBt39qDgcAvwG/Ab8BvwG/AQG/AQsgBEEBaiEBQfgAIRAMvQILIARBAWohAUH5ACEQDLwCCwJAIAEiBCACRw0AQY8BIRAM1QILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQZHPgIAAai0AAEcNvQEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQY8BIRAM1QILIABBADYCACAQQQFqIQFBGCEQDLoBCwJAIAEiBCACRw0AQZABIRAM1AILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQZfPgIAAai0AAEcNvAEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZABIRAM1AILIABBADYCACAQQQFqIQFBFyEQDLkBCwJAIAEiBCACRw0AQZEBIRAM0wILIAIgBGsgACgCACIBaiEUIAQgAWtBBmohEAJAA0AgBC0AACABQZrPgIAAai0AAEcNuwEgAUEGRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZEBIRAM0wILIABBADYCACAQQQFqIQFBFSEQDLgBCwJAIAEiBCACRw0AQZIBIRAM0gILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQaHPgIAAai0AAEcNugEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZIBIRAM0gILIABBADYCACAQQQFqIQFBHiEQDLcBCwJAIAEiBCACRw0AQZMBIRAM0QILIAQtAABBzABHDbgBIARBAWohAUEKIRAMtgELAkAgBCACRw0AQZQBIRAM0AILAkACQCAELQAAQb9/ag4PALkBuQG5AbkBuQG5AbkBuQG5AbkBuQG5AbkBAbkBCyAEQQFqIQFB/gAhEAy3AgsgBEEBaiEBQf8AIRAMtgILAkAgBCACRw0AQZUBIRAMzwILAkACQCAELQAAQb9/ag4DALgBAbgBCyAEQQFqIQFB/QAhEAy2AgsgBEEBaiEEQYABIRAMtQILAkAgBCACRw0AQZYBIRAMzgILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQafPgIAAai0AAEcNtgEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZYBIRAMzgILIABBADYCACAQQQFqIQFBCyEQDLMBCwJAIAQgAkcNAEGXASEQDM0CCwJAAkACQAJAIAQtAABBU2oOIwC4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBAbgBuAG4AbgBuAECuAG4AbgBA7gBCyAEQQFqIQFB+wAhEAy2AgsgBEEBaiEBQfwAIRAMtQILIARBAWohBEGBASEQDLQCCyAEQQFqIQRBggEhEAyzAgsCQCAEIAJHDQBBmAEhEAzMAgsgAiAEayAAKAIAIgFqIRQgBCABa0EEaiEQAkADQCAELQAAIAFBqc+AgABqLQAARw20ASABQQRGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBmAEhEAzMAgsgAEEANgIAIBBBAWohAUEZIRAMsQELAkAgBCACRw0AQZkBIRAMywILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQa7PgIAAai0AAEcNswEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZkBIRAMywILIABBADYCACAQQQFqIQFBBiEQDLABCwJAIAQgAkcNAEGaASEQDMoCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUG0z4CAAGotAABHDbIBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGaASEQDMoCCyAAQQA2AgAgEEEBaiEBQRwhEAyvAQsCQCAEIAJHDQBBmwEhEAzJAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBts+AgABqLQAARw2xASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBmwEhEAzJAgsgAEEANgIAIBBBAWohAUEnIRAMrgELAkAgBCACRw0AQZwBIRAMyAILAkACQCAELQAAQax/ag4CAAGxAQsgBEEBaiEEQYYBIRAMrwILIARBAWohBEGHASEQDK4CCwJAIAQgAkcNAEGdASEQDMcCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUG4z4CAAGotAABHDa8BIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGdASEQDMcCCyAAQQA2AgAgEEEBaiEBQSYhEAysAQsCQCAEIAJHDQBBngEhEAzGAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBus+AgABqLQAARw2uASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBngEhEAzGAgsgAEEANgIAIBBBAWohAUEDIRAMqwELAkAgBCACRw0AQZ8BIRAMxQILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQe3PgIAAai0AAEcNrQEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZ8BIRAMxQILIABBADYCACAQQQFqIQFBDCEQDKoBCwJAIAQgAkcNAEGgASEQDMQCCyACIARrIAAoAgAiAWohFCAEIAFrQQNqIRACQANAIAQtAAAgAUG8z4CAAGotAABHDawBIAFBA0YNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGgASEQDMQCCyAAQQA2AgAgEEEBaiEBQQ0hEAypAQsCQCAEIAJHDQBBoQEhEAzDAgsCQAJAIAQtAABBun9qDgsArAGsAawBrAGsAawBrAGsAawBAawBCyAEQQFqIQRBiwEhEAyqAgsgBEEBaiEEQYwBIRAMqQILAkAgBCACRw0AQaIBIRAMwgILIAQtAABB0ABHDakBIARBAWohBAzpAQsCQCAEIAJHDQBBowEhEAzBAgsCQAJAIAQtAABBt39qDgcBqgGqAaoBqgGqAQCqAQsgBEEBaiEEQY4BIRAMqAILIARBAWohAUEiIRAMpgELAkAgBCACRw0AQaQBIRAMwAILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQcDPgIAAai0AAEcNqAEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQaQBIRAMwAILIABBADYCACAQQQFqIQFBHSEQDKUBCwJAIAQgAkcNAEGlASEQDL8CCwJAAkAgBC0AAEGuf2oOAwCoAQGoAQsgBEEBaiEEQZABIRAMpgILIARBAWohAUEEIRAMpAELAkAgBCACRw0AQaYBIRAMvgILAkACQAJAAkACQCAELQAAQb9/ag4VAKoBqgGqAaoBqgGqAaoBqgGqAaoBAaoBqgECqgGqAQOqAaoBBKoBCyAEQQFqIQRBiAEhEAyoAgsgBEEBaiEEQYkBIRAMpwILIARBAWohBEGKASEQDKYCCyAEQQFqIQRBjwEhEAylAgsgBEEBaiEEQZEBIRAMpAILAkAgBCACRw0AQacBIRAMvQILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQe3PgIAAai0AAEcNpQEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQacBIRAMvQILIABBADYCACAQQQFqIQFBESEQDKIBCwJAIAQgAkcNAEGoASEQDLwCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHCz4CAAGotAABHDaQBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGoASEQDLwCCyAAQQA2AgAgEEEBaiEBQSwhEAyhAQsCQCAEIAJHDQBBqQEhEAy7AgsgAiAEayAAKAIAIgFqIRQgBCABa0EEaiEQAkADQCAELQAAIAFBxc+AgABqLQAARw2jASABQQRGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBqQEhEAy7AgsgAEEANgIAIBBBAWohAUErIRAMoAELAkAgBCACRw0AQaoBIRAMugILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQcrPgIAAai0AAEcNogEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQaoBIRAMugILIABBADYCACAQQQFqIQFBFCEQDJ8BCwJAIAQgAkcNAEGrASEQDLkCCwJAAkACQAJAIAQtAABBvn9qDg8AAQKkAaQBpAGkAaQBpAGkAaQBpAGkAaQBA6QBCyAEQQFqIQRBkwEhEAyiAgsgBEEBaiEEQZQBIRAMoQILIARBAWohBEGVASEQDKACCyAEQQFqIQRBlgEhEAyfAgsCQCAEIAJHDQBBrAEhEAy4AgsgBC0AAEHFAEcNnwEgBEEBaiEEDOABCwJAIAQgAkcNAEGtASEQDLcCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHNz4CAAGotAABHDZ8BIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGtASEQDLcCCyAAQQA2AgAgEEEBaiEBQQ4hEAycAQsCQCAEIAJHDQBBrgEhEAy2AgsgBC0AAEHQAEcNnQEgBEEBaiEBQSUhEAybAQsCQCAEIAJHDQBBrwEhEAy1AgsgAiAEayAAKAIAIgFqIRQgBCABa0EIaiEQAkADQCAELQAAIAFB0M+AgABqLQAARw2dASABQQhGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBrwEhEAy1AgsgAEEANgIAIBBBAWohAUEqIRAMmgELAkAgBCACRw0AQbABIRAMtAILAkACQCAELQAAQat/ag4LAJ0BnQGdAZ0BnQGdAZ0BnQGdAQGdAQsgBEEBaiEEQZoBIRAMmwILIARBAWohBEGbASEQDJoCCwJAIAQgAkcNAEGxASEQDLMCCwJAAkAgBC0AAEG/f2oOFACcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAEBnAELIARBAWohBEGZASEQDJoCCyAEQQFqIQRBnAEhEAyZAgsCQCAEIAJHDQBBsgEhEAyyAgsgAiAEayAAKAIAIgFqIRQgBCABa0EDaiEQAkADQCAELQAAIAFB2c+AgABqLQAARw2aASABQQNGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBsgEhEAyyAgsgAEEANgIAIBBBAWohAUEhIRAMlwELAkAgBCACRw0AQbMBIRAMsQILIAIgBGsgACgCACIBaiEUIAQgAWtBBmohEAJAA0AgBC0AACABQd3PgIAAai0AAEcNmQEgAUEGRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbMBIRAMsQILIABBADYCACAQQQFqIQFBGiEQDJYBCwJAIAQgAkcNAEG0ASEQDLACCwJAAkACQCAELQAAQbt/ag4RAJoBmgGaAZoBmgGaAZoBmgGaAQGaAZoBmgGaAZoBApoBCyAEQQFqIQRBnQEhEAyYAgsgBEEBaiEEQZ4BIRAMlwILIARBAWohBEGfASEQDJYCCwJAIAQgAkcNAEG1ASEQDK8CCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUHkz4CAAGotAABHDZcBIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG1ASEQDK8CCyAAQQA2AgAgEEEBaiEBQSghEAyUAQsCQCAEIAJHDQBBtgEhEAyuAgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFB6s+AgABqLQAARw2WASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBtgEhEAyuAgsgAEEANgIAIBBBAWohAUEHIRAMkwELAkAgBCACRw0AQbcBIRAMrQILAkACQCAELQAAQbt/ag4OAJYBlgGWAZYBlgGWAZYBlgGWAZYBlgGWAQGWAQsgBEEBaiEEQaEBIRAMlAILIARBAWohBEGiASEQDJMCCwJAIAQgAkcNAEG4ASEQDKwCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDZQBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG4ASEQDKwCCyAAQQA2AgAgEEEBaiEBQRIhEAyRAQsCQCAEIAJHDQBBuQEhEAyrAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFB8M+AgABqLQAARw2TASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBuQEhEAyrAgsgAEEANgIAIBBBAWohAUEgIRAMkAELAkAgBCACRw0AQboBIRAMqgILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfLPgIAAai0AAEcNkgEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQboBIRAMqgILIABBADYCACAQQQFqIQFBDyEQDI8BCwJAIAQgAkcNAEG7ASEQDKkCCwJAAkAgBC0AAEG3f2oOBwCSAZIBkgGSAZIBAZIBCyAEQQFqIQRBpQEhEAyQAgsgBEEBaiEEQaYBIRAMjwILAkAgBCACRw0AQbwBIRAMqAILIAIgBGsgACgCACIBaiEUIAQgAWtBB2ohEAJAA0AgBC0AACABQfTPgIAAai0AAEcNkAEgAUEHRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbwBIRAMqAILIABBADYCACAQQQFqIQFBGyEQDI0BCwJAIAQgAkcNAEG9ASEQDKcCCwJAAkACQCAELQAAQb5/ag4SAJEBkQGRAZEBkQGRAZEBkQGRAQGRAZEBkQGRAZEBkQECkQELIARBAWohBEGkASEQDI8CCyAEQQFqIQRBpwEhEAyOAgsgBEEBaiEEQagBIRAMjQILAkAgBCACRw0AQb4BIRAMpgILIAQtAABBzgBHDY0BIARBAWohBAzPAQsCQCAEIAJHDQBBvwEhEAylAgsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAELQAAQb9/ag4VAAECA5wBBAUGnAGcAZwBBwgJCgucAQwNDg+cAQsgBEEBaiEBQegAIRAMmgILIARBAWohAUHpACEQDJkCCyAEQQFqIQFB7gAhEAyYAgsgBEEBaiEBQfIAIRAMlwILIARBAWohAUHzACEQDJYCCyAEQQFqIQFB9gAhEAyVAgsgBEEBaiEBQfcAIRAMlAILIARBAWohAUH6ACEQDJMCCyAEQQFqIQRBgwEhEAySAgsgBEEBaiEEQYQBIRAMkQILIARBAWohBEGFASEQDJACCyAEQQFqIQRBkgEhEAyPAgsgBEEBaiEEQZgBIRAMjgILIARBAWohBEGgASEQDI0CCyAEQQFqIQRBowEhEAyMAgsgBEEBaiEEQaoBIRAMiwILAkAgBCACRg0AIABBkICAgAA2AgggACAENgIEQasBIRAMiwILQcABIRAMowILIAAgBSACEKqAgIAAIgENiwEgBSEBDFwLAkAgBiACRg0AIAZBAWohBQyNAQtBwgEhEAyhAgsDQAJAIBAtAABBdmoOBIwBAACPAQALIBBBAWoiECACRw0AC0HDASEQDKACCwJAIAcgAkYNACAAQZGAgIAANgIIIAAgBzYCBCAHIQFBASEQDIcCC0HEASEQDJ8CCwJAIAcgAkcNAEHFASEQDJ8CCwJAAkAgBy0AAEF2ag4EAc4BzgEAzgELIAdBAWohBgyNAQsgB0EBaiEFDIkBCwJAIAcgAkcNAEHGASEQDJ4CCwJAAkAgBy0AAEF2ag4XAY8BjwEBjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BAI8BCyAHQQFqIQcLQbABIRAMhAILAkAgCCACRw0AQcgBIRAMnQILIAgtAABBIEcNjQEgAEEAOwEyIAhBAWohAUGzASEQDIMCCyABIRcCQANAIBciByACRg0BIActAABBUGpB/wFxIhBBCk8NzAECQCAALwEyIhRBmTNLDQAgACAUQQpsIhQ7ATIgEEH//wNzIBRB/v8DcUkNACAHQQFqIRcgACAUIBBqIhA7ATIgEEH//wNxQegHSQ0BCwtBACEQIABBADYCHCAAQcGJgIAANgIQIABBDTYCDCAAIAdBAWo2AhQMnAILQccBIRAMmwILIAAgCCACEK6AgIAAIhBFDcoBIBBBFUcNjAEgAEHIATYCHCAAIAg2AhQgAEHJl4CAADYCECAAQRU2AgxBACEQDJoCCwJAIAkgAkcNAEHMASEQDJoCC0EAIRRBASEXQQEhFkEAIRACQAJAAkACQAJAAkACQAJAAkAgCS0AAEFQag4KlgGVAQABAgMEBQYIlwELQQIhEAwGC0EDIRAMBQtBBCEQDAQLQQUhEAwDC0EGIRAMAgtBByEQDAELQQghEAtBACEXQQAhFkEAIRQMjgELQQkhEEEBIRRBACEXQQAhFgyNAQsCQCAKIAJHDQBBzgEhEAyZAgsgCi0AAEEuRw2OASAKQQFqIQkMygELIAsgAkcNjgFB0AEhEAyXAgsCQCALIAJGDQAgAEGOgICAADYCCCAAIAs2AgRBtwEhEAz+AQtB0QEhEAyWAgsCQCAEIAJHDQBB0gEhEAyWAgsgAiAEayAAKAIAIhBqIRQgBCAQa0EEaiELA0AgBC0AACAQQfzPgIAAai0AAEcNjgEgEEEERg3pASAQQQFqIRAgBEEBaiIEIAJHDQALIAAgFDYCAEHSASEQDJUCCyAAIAwgAhCsgICAACIBDY0BIAwhAQy4AQsCQCAEIAJHDQBB1AEhEAyUAgsgAiAEayAAKAIAIhBqIRQgBCAQa0EBaiEMA0AgBC0AACAQQYHQgIAAai0AAEcNjwEgEEEBRg2OASAQQQFqIRAgBEEBaiIEIAJHDQALIAAgFDYCAEHUASEQDJMCCwJAIAQgAkcNAEHWASEQDJMCCyACIARrIAAoAgAiEGohFCAEIBBrQQJqIQsDQCAELQAAIBBBg9CAgABqLQAARw2OASAQQQJGDZABIBBBAWohECAEQQFqIgQgAkcNAAsgACAUNgIAQdYBIRAMkgILAkAgBCACRw0AQdcBIRAMkgILAkACQCAELQAAQbt/ag4QAI8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwEBjwELIARBAWohBEG7ASEQDPkBCyAEQQFqIQRBvAEhEAz4AQsCQCAEIAJHDQBB2AEhEAyRAgsgBC0AAEHIAEcNjAEgBEEBaiEEDMQBCwJAIAQgAkYNACAAQZCAgIAANgIIIAAgBDYCBEG+ASEQDPcBC0HZASEQDI8CCwJAIAQgAkcNAEHaASEQDI8CCyAELQAAQcgARg3DASAAQQE6ACgMuQELIABBAjoALyAAIAQgAhCmgICAACIQDY0BQcIBIRAM9AELIAAtAChBf2oOArcBuQG4AQsDQAJAIAQtAABBdmoOBACOAY4BAI4BCyAEQQFqIgQgAkcNAAtB3QEhEAyLAgsgAEEAOgAvIAAtAC1BBHFFDYQCCyAAQQA6AC8gAEEBOgA0IAEhAQyMAQsgEEEVRg3aASAAQQA2AhwgACABNgIUIABBp46AgAA2AhAgAEESNgIMQQAhEAyIAgsCQCAAIBAgAhC0gICAACIEDQAgECEBDIECCwJAIARBFUcNACAAQQM2AhwgACAQNgIUIABBsJiAgAA2AhAgAEEVNgIMQQAhEAyIAgsgAEEANgIcIAAgEDYCFCAAQaeOgIAANgIQIABBEjYCDEEAIRAMhwILIBBBFUYN1gEgAEEANgIcIAAgATYCFCAAQdqNgIAANgIQIABBFDYCDEEAIRAMhgILIAAoAgQhFyAAQQA2AgQgECARp2oiFiEBIAAgFyAQIBYgFBsiEBC1gICAACIURQ2NASAAQQc2AhwgACAQNgIUIAAgFDYCDEEAIRAMhQILIAAgAC8BMEGAAXI7ATAgASEBC0EqIRAM6gELIBBBFUYN0QEgAEEANgIcIAAgATYCFCAAQYOMgIAANgIQIABBEzYCDEEAIRAMggILIBBBFUYNzwEgAEEANgIcIAAgATYCFCAAQZqPgIAANgIQIABBIjYCDEEAIRAMgQILIAAoAgQhECAAQQA2AgQCQCAAIBAgARC3gICAACIQDQAgAUEBaiEBDI0BCyAAQQw2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAMgAILIBBBFUYNzAEgAEEANgIcIAAgATYCFCAAQZqPgIAANgIQIABBIjYCDEEAIRAM/wELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC3gICAACIQDQAgAUEBaiEBDIwBCyAAQQ02AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM/gELIBBBFUYNyQEgAEEANgIcIAAgATYCFCAAQcaMgIAANgIQIABBIzYCDEEAIRAM/QELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC5gICAACIQDQAgAUEBaiEBDIsBCyAAQQ42AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM/AELIABBADYCHCAAIAE2AhQgAEHAlYCAADYCECAAQQI2AgxBACEQDPsBCyAQQRVGDcUBIABBADYCHCAAIAE2AhQgAEHGjICAADYCECAAQSM2AgxBACEQDPoBCyAAQRA2AhwgACABNgIUIAAgEDYCDEEAIRAM+QELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARC5gICAACIEDQAgAUEBaiEBDPEBCyAAQRE2AhwgACAENgIMIAAgAUEBajYCFEEAIRAM+AELIBBBFUYNwQEgAEEANgIcIAAgATYCFCAAQcaMgIAANgIQIABBIzYCDEEAIRAM9wELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC5gICAACIQDQAgAUEBaiEBDIgBCyAAQRM2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM9gELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARC5gICAACIEDQAgAUEBaiEBDO0BCyAAQRQ2AhwgACAENgIMIAAgAUEBajYCFEEAIRAM9QELIBBBFUYNvQEgAEEANgIcIAAgATYCFCAAQZqPgIAANgIQIABBIjYCDEEAIRAM9AELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC3gICAACIQDQAgAUEBaiEBDIYBCyAAQRY2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM8wELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARC3gICAACIEDQAgAUEBaiEBDOkBCyAAQRc2AhwgACAENgIMIAAgAUEBajYCFEEAIRAM8gELIABBADYCHCAAIAE2AhQgAEHNk4CAADYCECAAQQw2AgxBACEQDPEBC0IBIRELIBBBAWohAQJAIAApAyAiEkL//////////w9WDQAgACASQgSGIBGENwMgIAEhAQyEAQsgAEEANgIcIAAgATYCFCAAQa2JgIAANgIQIABBDDYCDEEAIRAM7wELIABBADYCHCAAIBA2AhQgAEHNk4CAADYCECAAQQw2AgxBACEQDO4BCyAAKAIEIRcgAEEANgIEIBAgEadqIhYhASAAIBcgECAWIBQbIhAQtYCAgAAiFEUNcyAAQQU2AhwgACAQNgIUIAAgFDYCDEEAIRAM7QELIABBADYCHCAAIBA2AhQgAEGqnICAADYCECAAQQ82AgxBACEQDOwBCyAAIBAgAhC0gICAACIBDQEgECEBC0EOIRAM0QELAkAgAUEVRw0AIABBAjYCHCAAIBA2AhQgAEGwmICAADYCECAAQRU2AgxBACEQDOoBCyAAQQA2AhwgACAQNgIUIABBp46AgAA2AhAgAEESNgIMQQAhEAzpAQsgAUEBaiEQAkAgAC8BMCIBQYABcUUNAAJAIAAgECACELuAgIAAIgENACAQIQEMcAsgAUEVRw26ASAAQQU2AhwgACAQNgIUIABB+ZeAgAA2AhAgAEEVNgIMQQAhEAzpAQsCQCABQaAEcUGgBEcNACAALQAtQQJxDQAgAEEANgIcIAAgEDYCFCAAQZaTgIAANgIQIABBBDYCDEEAIRAM6QELIAAgECACEL2AgIAAGiAQIQECQAJAAkACQAJAIAAgECACELOAgIAADhYCAQAEBAQEBAQEBAQEBAQEBAQEBAQDBAsgAEEBOgAuCyAAIAAvATBBwAByOwEwIBAhAQtBJiEQDNEBCyAAQSM2AhwgACAQNgIUIABBpZaAgAA2AhAgAEEVNgIMQQAhEAzpAQsgAEEANgIcIAAgEDYCFCAAQdWLgIAANgIQIABBETYCDEEAIRAM6AELIAAtAC1BAXFFDQFBwwEhEAzOAQsCQCANIAJGDQADQAJAIA0tAABBIEYNACANIQEMxAELIA1BAWoiDSACRw0AC0ElIRAM5wELQSUhEAzmAQsgACgCBCEEIABBADYCBCAAIAQgDRCvgICAACIERQ2tASAAQSY2AhwgACAENgIMIAAgDUEBajYCFEEAIRAM5QELIBBBFUYNqwEgAEEANgIcIAAgATYCFCAAQf2NgIAANgIQIABBHTYCDEEAIRAM5AELIABBJzYCHCAAIAE2AhQgACAQNgIMQQAhEAzjAQsgECEBQQEhFAJAAkACQAJAAkACQAJAIAAtACxBfmoOBwYFBQMBAgAFCyAAIAAvATBBCHI7ATAMAwtBAiEUDAELQQQhFAsgAEEBOgAsIAAgAC8BMCAUcjsBMAsgECEBC0ErIRAMygELIABBADYCHCAAIBA2AhQgAEGrkoCAADYCECAAQQs2AgxBACEQDOIBCyAAQQA2AhwgACABNgIUIABB4Y+AgAA2AhAgAEEKNgIMQQAhEAzhAQsgAEEAOgAsIBAhAQy9AQsgECEBQQEhFAJAAkACQAJAAkAgAC0ALEF7ag4EAwECAAULIAAgAC8BMEEIcjsBMAwDC0ECIRQMAQtBBCEUCyAAQQE6ACwgACAALwEwIBRyOwEwCyAQIQELQSkhEAzFAQsgAEEANgIcIAAgATYCFCAAQfCUgIAANgIQIABBAzYCDEEAIRAM3QELAkAgDi0AAEENRw0AIAAoAgQhASAAQQA2AgQCQCAAIAEgDhCxgICAACIBDQAgDkEBaiEBDHULIABBLDYCHCAAIAE2AgwgACAOQQFqNgIUQQAhEAzdAQsgAC0ALUEBcUUNAUHEASEQDMMBCwJAIA4gAkcNAEEtIRAM3AELAkACQANAAkAgDi0AAEF2ag4EAgAAAwALIA5BAWoiDiACRw0AC0EtIRAM3QELIAAoAgQhASAAQQA2AgQCQCAAIAEgDhCxgICAACIBDQAgDiEBDHQLIABBLDYCHCAAIA42AhQgACABNgIMQQAhEAzcAQsgACgCBCEBIABBADYCBAJAIAAgASAOELGAgIAAIgENACAOQQFqIQEMcwsgAEEsNgIcIAAgATYCDCAAIA5BAWo2AhRBACEQDNsBCyAAKAIEIQQgAEEANgIEIAAgBCAOELGAgIAAIgQNoAEgDiEBDM4BCyAQQSxHDQEgAUEBaiEQQQEhAQJAAkACQAJAAkAgAC0ALEF7ag4EAwECBAALIBAhAQwEC0ECIQEMAQtBBCEBCyAAQQE6ACwgACAALwEwIAFyOwEwIBAhAQwBCyAAIAAvATBBCHI7ATAgECEBC0E5IRAMvwELIABBADoALCABIQELQTQhEAy9AQsgACAALwEwQSByOwEwIAEhAQwCCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQsYCAgAAiBA0AIAEhAQzHAQsgAEE3NgIcIAAgATYCFCAAIAQ2AgxBACEQDNQBCyAAQQg6ACwgASEBC0EwIRAMuQELAkAgAC0AKEEBRg0AIAEhAQwECyAALQAtQQhxRQ2TASABIQEMAwsgAC0AMEEgcQ2UAUHFASEQDLcBCwJAIA8gAkYNAAJAA0ACQCAPLQAAQVBqIgFB/wFxQQpJDQAgDyEBQTUhEAy6AQsgACkDICIRQpmz5syZs+bMGVYNASAAIBFCCn4iETcDICARIAGtQv8BgyISQn+FVg0BIAAgESASfDcDICAPQQFqIg8gAkcNAAtBOSEQDNEBCyAAKAIEIQIgAEEANgIEIAAgAiAPQQFqIgQQsYCAgAAiAg2VASAEIQEMwwELQTkhEAzPAQsCQCAALwEwIgFBCHFFDQAgAC0AKEEBRw0AIAAtAC1BCHFFDZABCyAAIAFB9/sDcUGABHI7ATAgDyEBC0E3IRAMtAELIAAgAC8BMEEQcjsBMAyrAQsgEEEVRg2LASAAQQA2AhwgACABNgIUIABB8I6AgAA2AhAgAEEcNgIMQQAhEAzLAQsgAEHDADYCHCAAIAE2AgwgACANQQFqNgIUQQAhEAzKAQsCQCABLQAAQTpHDQAgACgCBCEQIABBADYCBAJAIAAgECABEK+AgIAAIhANACABQQFqIQEMYwsgAEHDADYCHCAAIBA2AgwgACABQQFqNgIUQQAhEAzKAQsgAEEANgIcIAAgATYCFCAAQbGRgIAANgIQIABBCjYCDEEAIRAMyQELIABBADYCHCAAIAE2AhQgAEGgmYCAADYCECAAQR42AgxBACEQDMgBCyAAQQA2AgALIABBgBI7ASogACAXQQFqIgEgAhCogICAACIQDQEgASEBC0HHACEQDKwBCyAQQRVHDYMBIABB0QA2AhwgACABNgIUIABB45eAgAA2AhAgAEEVNgIMQQAhEAzEAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMXgsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAzDAQsgAEEANgIcIAAgFDYCFCAAQcGogIAANgIQIABBBzYCDCAAQQA2AgBBACEQDMIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxdCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDMEBC0EAIRAgAEEANgIcIAAgATYCFCAAQYCRgIAANgIQIABBCTYCDAzAAQsgEEEVRg19IABBADYCHCAAIAE2AhQgAEGUjYCAADYCECAAQSE2AgxBACEQDL8BC0EBIRZBACEXQQAhFEEBIRALIAAgEDoAKyABQQFqIQECQAJAIAAtAC1BEHENAAJAAkACQCAALQAqDgMBAAIECyAWRQ0DDAILIBQNAQwCCyAXRQ0BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQrYCAgAAiEA0AIAEhAQxcCyAAQdgANgIcIAAgATYCFCAAIBA2AgxBACEQDL4BCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQrYCAgAAiBA0AIAEhAQytAQsgAEHZADYCHCAAIAE2AhQgACAENgIMQQAhEAy9AQsgACgCBCEEIABBADYCBAJAIAAgBCABEK2AgIAAIgQNACABIQEMqwELIABB2gA2AhwgACABNgIUIAAgBDYCDEEAIRAMvAELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCtgICAACIEDQAgASEBDKkBCyAAQdwANgIcIAAgATYCFCAAIAQ2AgxBACEQDLsBCwJAIAEtAABBUGoiEEH/AXFBCk8NACAAIBA6ACogAUEBaiEBQc8AIRAMogELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCtgICAACIEDQAgASEBDKcBCyAAQd4ANgIcIAAgATYCFCAAIAQ2AgxBACEQDLoBCyAAQQA2AgAgF0EBaiEBAkAgAC0AKUEjTw0AIAEhAQxZCyAAQQA2AhwgACABNgIUIABB04mAgAA2AhAgAEEINgIMQQAhEAy5AQsgAEEANgIAC0EAIRAgAEEANgIcIAAgATYCFCAAQZCzgIAANgIQIABBCDYCDAy3AQsgAEEANgIAIBdBAWohAQJAIAAtAClBIUcNACABIQEMVgsgAEEANgIcIAAgATYCFCAAQZuKgIAANgIQIABBCDYCDEEAIRAMtgELIABBADYCACAXQQFqIQECQCAALQApIhBBXWpBC08NACABIQEMVQsCQCAQQQZLDQBBASAQdEHKAHFFDQAgASEBDFULQQAhECAAQQA2AhwgACABNgIUIABB94mAgAA2AhAgAEEINgIMDLUBCyAQQRVGDXEgAEEANgIcIAAgATYCFCAAQbmNgIAANgIQIABBGjYCDEEAIRAMtAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDFQLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMswELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDE0LIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMsgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDE0LIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMsQELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDFELIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMsAELIABBADYCHCAAIAE2AhQgAEHGioCAADYCECAAQQc2AgxBACEQDK8BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxJCyAAQdIANgIcIAAgATYCFCAAIBA2AgxBACEQDK4BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxJCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDK0BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDKwBCyAAQQA2AhwgACABNgIUIABB3IiAgAA2AhAgAEEHNgIMQQAhEAyrAQsgEEE/Rw0BIAFBAWohAQtBBSEQDJABC0EAIRAgAEEANgIcIAAgATYCFCAAQf2SgIAANgIQIABBBzYCDAyoAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMQgsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAynAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMQgsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAymAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMRgsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAylAQsgACgCBCEBIABBADYCBAJAIAAgASAUEKeAgIAAIgENACAUIQEMPwsgAEHSADYCHCAAIBQ2AhQgACABNgIMQQAhEAykAQsgACgCBCEBIABBADYCBAJAIAAgASAUEKeAgIAAIgENACAUIQEMPwsgAEHTADYCHCAAIBQ2AhQgACABNgIMQQAhEAyjAQsgACgCBCEBIABBADYCBAJAIAAgASAUEKeAgIAAIgENACAUIQEMQwsgAEHlADYCHCAAIBQ2AhQgACABNgIMQQAhEAyiAQsgAEEANgIcIAAgFDYCFCAAQcOPgIAANgIQIABBBzYCDEEAIRAMoQELIABBADYCHCAAIAE2AhQgAEHDj4CAADYCECAAQQc2AgxBACEQDKABC0EAIRAgAEEANgIcIAAgFDYCFCAAQYycgIAANgIQIABBBzYCDAyfAQsgAEEANgIcIAAgFDYCFCAAQYycgIAANgIQIABBBzYCDEEAIRAMngELIABBADYCHCAAIBQ2AhQgAEH+kYCAADYCECAAQQc2AgxBACEQDJ0BCyAAQQA2AhwgACABNgIUIABBjpuAgAA2AhAgAEEGNgIMQQAhEAycAQsgEEEVRg1XIABBADYCHCAAIAE2AhQgAEHMjoCAADYCECAAQSA2AgxBACEQDJsBCyAAQQA2AgAgEEEBaiEBQSQhEAsgACAQOgApIAAoAgQhECAAQQA2AgQgACAQIAEQq4CAgAAiEA1UIAEhAQw+CyAAQQA2AgALQQAhECAAQQA2AhwgACAENgIUIABB8ZuAgAA2AhAgAEEGNgIMDJcBCyABQRVGDVAgAEEANgIcIAAgBTYCFCAAQfCMgIAANgIQIABBGzYCDEEAIRAMlgELIAAoAgQhBSAAQQA2AgQgACAFIBAQqYCAgAAiBQ0BIBBBAWohBQtBrQEhEAx7CyAAQcEBNgIcIAAgBTYCDCAAIBBBAWo2AhRBACEQDJMBCyAAKAIEIQYgAEEANgIEIAAgBiAQEKmAgIAAIgYNASAQQQFqIQYLQa4BIRAMeAsgAEHCATYCHCAAIAY2AgwgACAQQQFqNgIUQQAhEAyQAQsgAEEANgIcIAAgBzYCFCAAQZeLgIAANgIQIABBDTYCDEEAIRAMjwELIABBADYCHCAAIAg2AhQgAEHjkICAADYCECAAQQk2AgxBACEQDI4BCyAAQQA2AhwgACAINgIUIABBlI2AgAA2AhAgAEEhNgIMQQAhEAyNAQtBASEWQQAhF0EAIRRBASEQCyAAIBA6ACsgCUEBaiEIAkACQCAALQAtQRBxDQACQAJAAkAgAC0AKg4DAQACBAsgFkUNAwwCCyAUDQEMAgsgF0UNAQsgACgCBCEQIABBADYCBCAAIBAgCBCtgICAACIQRQ09IABByQE2AhwgACAINgIUIAAgEDYCDEEAIRAMjAELIAAoAgQhBCAAQQA2AgQgACAEIAgQrYCAgAAiBEUNdiAAQcoBNgIcIAAgCDYCFCAAIAQ2AgxBACEQDIsBCyAAKAIEIQQgAEEANgIEIAAgBCAJEK2AgIAAIgRFDXQgAEHLATYCHCAAIAk2AhQgACAENgIMQQAhEAyKAQsgACgCBCEEIABBADYCBCAAIAQgChCtgICAACIERQ1yIABBzQE2AhwgACAKNgIUIAAgBDYCDEEAIRAMiQELAkAgCy0AAEFQaiIQQf8BcUEKTw0AIAAgEDoAKiALQQFqIQpBtgEhEAxwCyAAKAIEIQQgAEEANgIEIAAgBCALEK2AgIAAIgRFDXAgAEHPATYCHCAAIAs2AhQgACAENgIMQQAhEAyIAQsgAEEANgIcIAAgBDYCFCAAQZCzgIAANgIQIABBCDYCDCAAQQA2AgBBACEQDIcBCyABQRVGDT8gAEEANgIcIAAgDDYCFCAAQcyOgIAANgIQIABBIDYCDEEAIRAMhgELIABBgQQ7ASggACgCBCEQIABCADcDACAAIBAgDEEBaiIMEKuAgIAAIhBFDTggAEHTATYCHCAAIAw2AhQgACAQNgIMQQAhEAyFAQsgAEEANgIAC0EAIRAgAEEANgIcIAAgBDYCFCAAQdibgIAANgIQIABBCDYCDAyDAQsgACgCBCEQIABCADcDACAAIBAgC0EBaiILEKuAgIAAIhANAUHGASEQDGkLIABBAjoAKAxVCyAAQdUBNgIcIAAgCzYCFCAAIBA2AgxBACEQDIABCyAQQRVGDTcgAEEANgIcIAAgBDYCFCAAQaSMgIAANgIQIABBEDYCDEEAIRAMfwsgAC0ANEEBRw00IAAgBCACELyAgIAAIhBFDTQgEEEVRw01IABB3AE2AhwgACAENgIUIABB1ZaAgAA2AhAgAEEVNgIMQQAhEAx+C0EAIRAgAEEANgIcIABBr4uAgAA2AhAgAEECNgIMIAAgFEEBajYCFAx9C0EAIRAMYwtBAiEQDGILQQ0hEAxhC0EPIRAMYAtBJSEQDF8LQRMhEAxeC0EVIRAMXQtBFiEQDFwLQRchEAxbC0EYIRAMWgtBGSEQDFkLQRohEAxYC0EbIRAMVwtBHCEQDFYLQR0hEAxVC0EfIRAMVAtBISEQDFMLQSMhEAxSC0HGACEQDFELQS4hEAxQC0EvIRAMTwtBOyEQDE4LQT0hEAxNC0HIACEQDEwLQckAIRAMSwtBywAhEAxKC0HMACEQDEkLQc4AIRAMSAtB0QAhEAxHC0HVACEQDEYLQdgAIRAMRQtB2QAhEAxEC0HbACEQDEMLQeQAIRAMQgtB5QAhEAxBC0HxACEQDEALQfQAIRAMPwtBjQEhEAw+C0GXASEQDD0LQakBIRAMPAtBrAEhEAw7C0HAASEQDDoLQbkBIRAMOQtBrwEhEAw4C0GxASEQDDcLQbIBIRAMNgtBtAEhEAw1C0G1ASEQDDQLQboBIRAMMwtBvQEhEAwyC0G/ASEQDDELQcEBIRAMMAsgAEEANgIcIAAgBDYCFCAAQemLgIAANgIQIABBHzYCDEEAIRAMSAsgAEHbATYCHCAAIAQ2AhQgAEH6loCAADYCECAAQRU2AgxBACEQDEcLIABB+AA2AhwgACAMNgIUIABBypiAgAA2AhAgAEEVNgIMQQAhEAxGCyAAQdEANgIcIAAgBTYCFCAAQbCXgIAANgIQIABBFTYCDEEAIRAMRQsgAEH5ADYCHCAAIAE2AhQgACAQNgIMQQAhEAxECyAAQfgANgIcIAAgATYCFCAAQcqYgIAANgIQIABBFTYCDEEAIRAMQwsgAEHkADYCHCAAIAE2AhQgAEHjl4CAADYCECAAQRU2AgxBACEQDEILIABB1wA2AhwgACABNgIUIABByZeAgAA2AhAgAEEVNgIMQQAhEAxBCyAAQQA2AhwgACABNgIUIABBuY2AgAA2AhAgAEEaNgIMQQAhEAxACyAAQcIANgIcIAAgATYCFCAAQeOYgIAANgIQIABBFTYCDEEAIRAMPwsgAEEANgIEIAAgDyAPELGAgIAAIgRFDQEgAEE6NgIcIAAgBDYCDCAAIA9BAWo2AhRBACEQDD4LIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCxgICAACIERQ0AIABBOzYCHCAAIAQ2AgwgACABQQFqNgIUQQAhEAw+CyABQQFqIQEMLQsgD0EBaiEBDC0LIABBADYCHCAAIA82AhQgAEHkkoCAADYCECAAQQQ2AgxBACEQDDsLIABBNjYCHCAAIAQ2AhQgACACNgIMQQAhEAw6CyAAQS42AhwgACAONgIUIAAgBDYCDEEAIRAMOQsgAEHQADYCHCAAIAE2AhQgAEGRmICAADYCECAAQRU2AgxBACEQDDgLIA1BAWohAQwsCyAAQRU2AhwgACABNgIUIABBgpmAgAA2AhAgAEEVNgIMQQAhEAw2CyAAQRs2AhwgACABNgIUIABBkZeAgAA2AhAgAEEVNgIMQQAhEAw1CyAAQQ82AhwgACABNgIUIABBkZeAgAA2AhAgAEEVNgIMQQAhEAw0CyAAQQs2AhwgACABNgIUIABBkZeAgAA2AhAgAEEVNgIMQQAhEAwzCyAAQRo2AhwgACABNgIUIABBgpmAgAA2AhAgAEEVNgIMQQAhEAwyCyAAQQs2AhwgACABNgIUIABBgpmAgAA2AhAgAEEVNgIMQQAhEAwxCyAAQQo2AhwgACABNgIUIABB5JaAgAA2AhAgAEEVNgIMQQAhEAwwCyAAQR42AhwgACABNgIUIABB+ZeAgAA2AhAgAEEVNgIMQQAhEAwvCyAAQQA2AhwgACAQNgIUIABB2o2AgAA2AhAgAEEUNgIMQQAhEAwuCyAAQQQ2AhwgACABNgIUIABBsJiAgAA2AhAgAEEVNgIMQQAhEAwtCyAAQQA2AgAgC0EBaiELC0G4ASEQDBILIABBADYCACAQQQFqIQFB9QAhEAwRCyABIQECQCAALQApQQVHDQBB4wAhEAwRC0HiACEQDBALQQAhECAAQQA2AhwgAEHkkYCAADYCECAAQQc2AgwgACAUQQFqNgIUDCgLIABBADYCACAXQQFqIQFBwAAhEAwOC0EBIQELIAAgAToALCAAQQA2AgAgF0EBaiEBC0EoIRAMCwsgASEBC0E4IRAMCQsCQCABIg8gAkYNAANAAkAgDy0AAEGAvoCAAGotAAAiAUEBRg0AIAFBAkcNAyAPQQFqIQEMBAsgD0EBaiIPIAJHDQALQT4hEAwiC0E+IRAMIQsgAEEAOgAsIA8hAQwBC0ELIRAMBgtBOiEQDAULIAFBAWohAUEtIRAMBAsgACABOgAsIABBADYCACAWQQFqIQFBDCEQDAMLIABBADYCACAXQQFqIQFBCiEQDAILIABBADYCAAsgAEEAOgAsIA0hAUEJIRAMAAsLQQAhECAAQQA2AhwgACALNgIUIABBzZCAgAA2AhAgAEEJNgIMDBcLQQAhECAAQQA2AhwgACAKNgIUIABB6YqAgAA2AhAgAEEJNgIMDBYLQQAhECAAQQA2AhwgACAJNgIUIABBt5CAgAA2AhAgAEEJNgIMDBULQQAhECAAQQA2AhwgACAINgIUIABBnJGAgAA2AhAgAEEJNgIMDBQLQQAhECAAQQA2AhwgACABNgIUIABBzZCAgAA2AhAgAEEJNgIMDBMLQQAhECAAQQA2AhwgACABNgIUIABB6YqAgAA2AhAgAEEJNgIMDBILQQAhECAAQQA2AhwgACABNgIUIABBt5CAgAA2AhAgAEEJNgIMDBELQQAhECAAQQA2AhwgACABNgIUIABBnJGAgAA2AhAgAEEJNgIMDBALQQAhECAAQQA2AhwgACABNgIUIABBl5WAgAA2AhAgAEEPNgIMDA8LQQAhECAAQQA2AhwgACABNgIUIABBl5WAgAA2AhAgAEEPNgIMDA4LQQAhECAAQQA2AhwgACABNgIUIABBwJKAgAA2AhAgAEELNgIMDA0LQQAhECAAQQA2AhwgACABNgIUIABBlYmAgAA2AhAgAEELNgIMDAwLQQAhECAAQQA2AhwgACABNgIUIABB4Y+AgAA2AhAgAEEKNgIMDAsLQQAhECAAQQA2AhwgACABNgIUIABB+4+AgAA2AhAgAEEKNgIMDAoLQQAhECAAQQA2AhwgACABNgIUIABB8ZmAgAA2AhAgAEECNgIMDAkLQQAhECAAQQA2AhwgACABNgIUIABBxJSAgAA2AhAgAEECNgIMDAgLQQAhECAAQQA2AhwgACABNgIUIABB8pWAgAA2AhAgAEECNgIMDAcLIABBAjYCHCAAIAE2AhQgAEGcmoCAADYCECAAQRY2AgxBACEQDAYLQQEhEAwFC0HUACEQIAEiBCACRg0EIANBCGogACAEIAJB2MKAgABBChDFgICAACADKAIMIQQgAygCCA4DAQQCAAsQyoCAgAAACyAAQQA2AhwgAEG1moCAADYCECAAQRc2AgwgACAEQQFqNgIUQQAhEAwCCyAAQQA2AhwgACAENgIUIABBypqAgAA2AhAgAEEJNgIMQQAhEAwBCwJAIAEiBCACRw0AQSIhEAwBCyAAQYmAgIAANgIIIAAgBDYCBEEhIRALIANBEGokgICAgAAgEAuvAQECfyABKAIAIQYCQAJAIAIgA0YNACAEIAZqIQQgBiADaiACayEHIAIgBkF/cyAFaiIGaiEFA0ACQCACLQAAIAQtAABGDQBBAiEEDAMLAkAgBg0AQQAhBCAFIQIMAwsgBkF/aiEGIARBAWohBCACQQFqIgIgA0cNAAsgByEGIAMhAgsgAEEBNgIAIAEgBjYCACAAIAI2AgQPCyABQQA2AgAgACAENgIAIAAgAjYCBAsKACAAEMeAgIAAC/I2AQt/I4CAgIAAQRBrIgEkgICAgAACQEEAKAKg0ICAAA0AQQAQy4CAgABBgNSEgABrIgJB2QBJDQBBACEDAkBBACgC4NOAgAAiBA0AQQBCfzcC7NOAgABBAEKAgISAgIDAADcC5NOAgABBACABQQhqQXBxQdiq1aoFcyIENgLg04CAAEEAQQA2AvTTgIAAQQBBADYCxNOAgAALQQAgAjYCzNOAgABBAEGA1ISAADYCyNOAgABBAEGA1ISAADYCmNCAgABBACAENgKs0ICAAEEAQX82AqjQgIAAA0AgA0HE0ICAAGogA0G40ICAAGoiBDYCACAEIANBsNCAgABqIgU2AgAgA0G80ICAAGogBTYCACADQczQgIAAaiADQcDQgIAAaiIFNgIAIAUgBDYCACADQdTQgIAAaiADQcjQgIAAaiIENgIAIAQgBTYCACADQdDQgIAAaiAENgIAIANBIGoiA0GAAkcNAAtBgNSEgABBeEGA1ISAAGtBD3FBAEGA1ISAAEEIakEPcRsiA2oiBEEEaiACQUhqIgUgA2siA0EBcjYCAEEAQQAoAvDTgIAANgKk0ICAAEEAIAM2ApTQgIAAQQAgBDYCoNCAgABBgNSEgAAgBWpBODYCBAsCQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAEHsAUsNAAJAQQAoAojQgIAAIgZBECAAQRNqQXBxIABBC0kbIgJBA3YiBHYiA0EDcUUNAAJAAkAgA0EBcSAEckEBcyIFQQN0IgRBsNCAgABqIgMgBEG40ICAAGooAgAiBCgCCCICRw0AQQAgBkF+IAV3cTYCiNCAgAAMAQsgAyACNgIIIAIgAzYCDAsgBEEIaiEDIAQgBUEDdCIFQQNyNgIEIAQgBWoiBCAEKAIEQQFyNgIEDAwLIAJBACgCkNCAgAAiB00NAQJAIANFDQACQAJAIAMgBHRBAiAEdCIDQQAgA2tycSIDQQAgA2txQX9qIgMgA0EMdkEQcSIDdiIEQQV2QQhxIgUgA3IgBCAFdiIDQQJ2QQRxIgRyIAMgBHYiA0EBdkECcSIEciADIAR2IgNBAXZBAXEiBHIgAyAEdmoiBEEDdCIDQbDQgIAAaiIFIANBuNCAgABqKAIAIgMoAggiAEcNAEEAIAZBfiAEd3EiBjYCiNCAgAAMAQsgBSAANgIIIAAgBTYCDAsgAyACQQNyNgIEIAMgBEEDdCIEaiAEIAJrIgU2AgAgAyACaiIAIAVBAXI2AgQCQCAHRQ0AIAdBeHFBsNCAgABqIQJBACgCnNCAgAAhBAJAAkAgBkEBIAdBA3Z0IghxDQBBACAGIAhyNgKI0ICAACACIQgMAQsgAigCCCEICyAIIAQ2AgwgAiAENgIIIAQgAjYCDCAEIAg2AggLIANBCGohA0EAIAA2ApzQgIAAQQAgBTYCkNCAgAAMDAtBACgCjNCAgAAiCUUNASAJQQAgCWtxQX9qIgMgA0EMdkEQcSIDdiIEQQV2QQhxIgUgA3IgBCAFdiIDQQJ2QQRxIgRyIAMgBHYiA0EBdkECcSIEciADIAR2IgNBAXZBAXEiBHIgAyAEdmpBAnRBuNKAgABqKAIAIgAoAgRBeHEgAmshBCAAIQUCQANAAkAgBSgCECIDDQAgBUEUaigCACIDRQ0CCyADKAIEQXhxIAJrIgUgBCAFIARJIgUbIQQgAyAAIAUbIQAgAyEFDAALCyAAKAIYIQoCQCAAKAIMIgggAEYNACAAKAIIIgNBACgCmNCAgABJGiAIIAM2AgggAyAINgIMDAsLAkAgAEEUaiIFKAIAIgMNACAAKAIQIgNFDQMgAEEQaiEFCwNAIAUhCyADIghBFGoiBSgCACIDDQAgCEEQaiEFIAgoAhAiAw0ACyALQQA2AgAMCgtBfyECIABBv39LDQAgAEETaiIDQXBxIQJBACgCjNCAgAAiB0UNAEEAIQsCQCACQYACSQ0AQR8hCyACQf///wdLDQAgA0EIdiIDIANBgP4/akEQdkEIcSIDdCIEIARBgOAfakEQdkEEcSIEdCIFIAVBgIAPakEQdkECcSIFdEEPdiADIARyIAVyayIDQQF0IAIgA0EVanZBAXFyQRxqIQsLQQAgAmshBAJAAkACQAJAIAtBAnRBuNKAgABqKAIAIgUNAEEAIQNBACEIDAELQQAhAyACQQBBGSALQQF2ayALQR9GG3QhAEEAIQgDQAJAIAUoAgRBeHEgAmsiBiAETw0AIAYhBCAFIQggBg0AQQAhBCAFIQggBSEDDAMLIAMgBUEUaigCACIGIAYgBSAAQR12QQRxakEQaigCACIFRhsgAyAGGyEDIABBAXQhACAFDQALCwJAIAMgCHINAEEAIQhBAiALdCIDQQAgA2tyIAdxIgNFDQMgA0EAIANrcUF/aiIDIANBDHZBEHEiA3YiBUEFdkEIcSIAIANyIAUgAHYiA0ECdkEEcSIFciADIAV2IgNBAXZBAnEiBXIgAyAFdiIDQQF2QQFxIgVyIAMgBXZqQQJ0QbjSgIAAaigCACEDCyADRQ0BCwNAIAMoAgRBeHEgAmsiBiAESSEAAkAgAygCECIFDQAgA0EUaigCACEFCyAGIAQgABshBCADIAggABshCCAFIQMgBQ0ACwsgCEUNACAEQQAoApDQgIAAIAJrTw0AIAgoAhghCwJAIAgoAgwiACAIRg0AIAgoAggiA0EAKAKY0ICAAEkaIAAgAzYCCCADIAA2AgwMCQsCQCAIQRRqIgUoAgAiAw0AIAgoAhAiA0UNAyAIQRBqIQULA0AgBSEGIAMiAEEUaiIFKAIAIgMNACAAQRBqIQUgACgCECIDDQALIAZBADYCAAwICwJAQQAoApDQgIAAIgMgAkkNAEEAKAKc0ICAACEEAkACQCADIAJrIgVBEEkNACAEIAJqIgAgBUEBcjYCBEEAIAU2ApDQgIAAQQAgADYCnNCAgAAgBCADaiAFNgIAIAQgAkEDcjYCBAwBCyAEIANBA3I2AgQgBCADaiIDIAMoAgRBAXI2AgRBAEEANgKc0ICAAEEAQQA2ApDQgIAACyAEQQhqIQMMCgsCQEEAKAKU0ICAACIAIAJNDQBBACgCoNCAgAAiAyACaiIEIAAgAmsiBUEBcjYCBEEAIAU2ApTQgIAAQQAgBDYCoNCAgAAgAyACQQNyNgIEIANBCGohAwwKCwJAAkBBACgC4NOAgABFDQBBACgC6NOAgAAhBAwBC0EAQn83AuzTgIAAQQBCgICEgICAwAA3AuTTgIAAQQAgAUEMakFwcUHYqtWqBXM2AuDTgIAAQQBBADYC9NOAgABBAEEANgLE04CAAEGAgAQhBAtBACEDAkAgBCACQccAaiIHaiIGQQAgBGsiC3EiCCACSw0AQQBBMDYC+NOAgAAMCgsCQEEAKALA04CAACIDRQ0AAkBBACgCuNOAgAAiBCAIaiIFIARNDQAgBSADTQ0BC0EAIQNBAEEwNgL404CAAAwKC0EALQDE04CAAEEEcQ0EAkACQAJAQQAoAqDQgIAAIgRFDQBByNOAgAAhAwNAAkAgAygCACIFIARLDQAgBSADKAIEaiAESw0DCyADKAIIIgMNAAsLQQAQy4CAgAAiAEF/Rg0FIAghBgJAQQAoAuTTgIAAIgNBf2oiBCAAcUUNACAIIABrIAQgAGpBACADa3FqIQYLIAYgAk0NBSAGQf7///8HSw0FAkBBACgCwNOAgAAiA0UNAEEAKAK404CAACIEIAZqIgUgBE0NBiAFIANLDQYLIAYQy4CAgAAiAyAARw0BDAcLIAYgAGsgC3EiBkH+////B0sNBCAGEMuAgIAAIgAgAygCACADKAIEakYNAyAAIQMLAkAgA0F/Rg0AIAJByABqIAZNDQACQCAHIAZrQQAoAujTgIAAIgRqQQAgBGtxIgRB/v///wdNDQAgAyEADAcLAkAgBBDLgICAAEF/Rg0AIAQgBmohBiADIQAMBwtBACAGaxDLgICAABoMBAsgAyEAIANBf0cNBQwDC0EAIQgMBwtBACEADAULIABBf0cNAgtBAEEAKALE04CAAEEEcjYCxNOAgAALIAhB/v///wdLDQEgCBDLgICAACEAQQAQy4CAgAAhAyAAQX9GDQEgA0F/Rg0BIAAgA08NASADIABrIgYgAkE4ak0NAQtBAEEAKAK404CAACAGaiIDNgK404CAAAJAIANBACgCvNOAgABNDQBBACADNgK804CAAAsCQAJAAkACQEEAKAKg0ICAACIERQ0AQcjTgIAAIQMDQCAAIAMoAgAiBSADKAIEIghqRg0CIAMoAggiAw0ADAMLCwJAAkBBACgCmNCAgAAiA0UNACAAIANPDQELQQAgADYCmNCAgAALQQAhA0EAIAY2AszTgIAAQQAgADYCyNOAgABBAEF/NgKo0ICAAEEAQQAoAuDTgIAANgKs0ICAAEEAQQA2AtTTgIAAA0AgA0HE0ICAAGogA0G40ICAAGoiBDYCACAEIANBsNCAgABqIgU2AgAgA0G80ICAAGogBTYCACADQczQgIAAaiADQcDQgIAAaiIFNgIAIAUgBDYCACADQdTQgIAAaiADQcjQgIAAaiIENgIAIAQgBTYCACADQdDQgIAAaiAENgIAIANBIGoiA0GAAkcNAAsgAEF4IABrQQ9xQQAgAEEIakEPcRsiA2oiBCAGQUhqIgUgA2siA0EBcjYCBEEAQQAoAvDTgIAANgKk0ICAAEEAIAM2ApTQgIAAQQAgBDYCoNCAgAAgACAFakE4NgIEDAILIAMtAAxBCHENACAEIAVJDQAgBCAATw0AIARBeCAEa0EPcUEAIARBCGpBD3EbIgVqIgBBACgClNCAgAAgBmoiCyAFayIFQQFyNgIEIAMgCCAGajYCBEEAQQAoAvDTgIAANgKk0ICAAEEAIAU2ApTQgIAAQQAgADYCoNCAgAAgBCALakE4NgIEDAELAkAgAEEAKAKY0ICAACIITw0AQQAgADYCmNCAgAAgACEICyAAIAZqIQVByNOAgAAhAwJAAkACQAJAAkACQAJAA0AgAygCACAFRg0BIAMoAggiAw0ADAILCyADLQAMQQhxRQ0BC0HI04CAACEDA0ACQCADKAIAIgUgBEsNACAFIAMoAgRqIgUgBEsNAwsgAygCCCEDDAALCyADIAA2AgAgAyADKAIEIAZqNgIEIABBeCAAa0EPcUEAIABBCGpBD3EbaiILIAJBA3I2AgQgBUF4IAVrQQ9xQQAgBUEIakEPcRtqIgYgCyACaiICayEDAkAgBiAERw0AQQAgAjYCoNCAgABBAEEAKAKU0ICAACADaiIDNgKU0ICAACACIANBAXI2AgQMAwsCQCAGQQAoApzQgIAARw0AQQAgAjYCnNCAgABBAEEAKAKQ0ICAACADaiIDNgKQ0ICAACACIANBAXI2AgQgAiADaiADNgIADAMLAkAgBigCBCIEQQNxQQFHDQAgBEF4cSEHAkACQCAEQf8BSw0AIAYoAggiBSAEQQN2IghBA3RBsNCAgABqIgBGGgJAIAYoAgwiBCAFRw0AQQBBACgCiNCAgABBfiAId3E2AojQgIAADAILIAQgAEYaIAQgBTYCCCAFIAQ2AgwMAQsgBigCGCEJAkACQCAGKAIMIgAgBkYNACAGKAIIIgQgCEkaIAAgBDYCCCAEIAA2AgwMAQsCQCAGQRRqIgQoAgAiBQ0AIAZBEGoiBCgCACIFDQBBACEADAELA0AgBCEIIAUiAEEUaiIEKAIAIgUNACAAQRBqIQQgACgCECIFDQALIAhBADYCAAsgCUUNAAJAAkAgBiAGKAIcIgVBAnRBuNKAgABqIgQoAgBHDQAgBCAANgIAIAANAUEAQQAoAozQgIAAQX4gBXdxNgKM0ICAAAwCCyAJQRBBFCAJKAIQIAZGG2ogADYCACAARQ0BCyAAIAk2AhgCQCAGKAIQIgRFDQAgACAENgIQIAQgADYCGAsgBigCFCIERQ0AIABBFGogBDYCACAEIAA2AhgLIAcgA2ohAyAGIAdqIgYoAgQhBAsgBiAEQX5xNgIEIAIgA2ogAzYCACACIANBAXI2AgQCQCADQf8BSw0AIANBeHFBsNCAgABqIQQCQAJAQQAoAojQgIAAIgVBASADQQN2dCIDcQ0AQQAgBSADcjYCiNCAgAAgBCEDDAELIAQoAgghAwsgAyACNgIMIAQgAjYCCCACIAQ2AgwgAiADNgIIDAMLQR8hBAJAIANB////B0sNACADQQh2IgQgBEGA/j9qQRB2QQhxIgR0IgUgBUGA4B9qQRB2QQRxIgV0IgAgAEGAgA9qQRB2QQJxIgB0QQ92IAQgBXIgAHJrIgRBAXQgAyAEQRVqdkEBcXJBHGohBAsgAiAENgIcIAJCADcCECAEQQJ0QbjSgIAAaiEFAkBBACgCjNCAgAAiAEEBIAR0IghxDQAgBSACNgIAQQAgACAIcjYCjNCAgAAgAiAFNgIYIAIgAjYCCCACIAI2AgwMAwsgA0EAQRkgBEEBdmsgBEEfRht0IQQgBSgCACEAA0AgACIFKAIEQXhxIANGDQIgBEEddiEAIARBAXQhBCAFIABBBHFqQRBqIggoAgAiAA0ACyAIIAI2AgAgAiAFNgIYIAIgAjYCDCACIAI2AggMAgsgAEF4IABrQQ9xQQAgAEEIakEPcRsiA2oiCyAGQUhqIgggA2siA0EBcjYCBCAAIAhqQTg2AgQgBCAFQTcgBWtBD3FBACAFQUlqQQ9xG2pBQWoiCCAIIARBEGpJGyIIQSM2AgRBAEEAKALw04CAADYCpNCAgABBACADNgKU0ICAAEEAIAs2AqDQgIAAIAhBEGpBACkC0NOAgAA3AgAgCEEAKQLI04CAADcCCEEAIAhBCGo2AtDTgIAAQQAgBjYCzNOAgABBACAANgLI04CAAEEAQQA2AtTTgIAAIAhBJGohAwNAIANBBzYCACADQQRqIgMgBUkNAAsgCCAERg0DIAggCCgCBEF+cTYCBCAIIAggBGsiADYCACAEIABBAXI2AgQCQCAAQf8BSw0AIABBeHFBsNCAgABqIQMCQAJAQQAoAojQgIAAIgVBASAAQQN2dCIAcQ0AQQAgBSAAcjYCiNCAgAAgAyEFDAELIAMoAgghBQsgBSAENgIMIAMgBDYCCCAEIAM2AgwgBCAFNgIIDAQLQR8hAwJAIABB////B0sNACAAQQh2IgMgA0GA/j9qQRB2QQhxIgN0IgUgBUGA4B9qQRB2QQRxIgV0IgggCEGAgA9qQRB2QQJxIgh0QQ92IAMgBXIgCHJrIgNBAXQgACADQRVqdkEBcXJBHGohAwsgBCADNgIcIARCADcCECADQQJ0QbjSgIAAaiEFAkBBACgCjNCAgAAiCEEBIAN0IgZxDQAgBSAENgIAQQAgCCAGcjYCjNCAgAAgBCAFNgIYIAQgBDYCCCAEIAQ2AgwMBAsgAEEAQRkgA0EBdmsgA0EfRht0IQMgBSgCACEIA0AgCCIFKAIEQXhxIABGDQMgA0EddiEIIANBAXQhAyAFIAhBBHFqQRBqIgYoAgAiCA0ACyAGIAQ2AgAgBCAFNgIYIAQgBDYCDCAEIAQ2AggMAwsgBSgCCCIDIAI2AgwgBSACNgIIIAJBADYCGCACIAU2AgwgAiADNgIICyALQQhqIQMMBQsgBSgCCCIDIAQ2AgwgBSAENgIIIARBADYCGCAEIAU2AgwgBCADNgIIC0EAKAKU0ICAACIDIAJNDQBBACgCoNCAgAAiBCACaiIFIAMgAmsiA0EBcjYCBEEAIAM2ApTQgIAAQQAgBTYCoNCAgAAgBCACQQNyNgIEIARBCGohAwwDC0EAIQNBAEEwNgL404CAAAwCCwJAIAtFDQACQAJAIAggCCgCHCIFQQJ0QbjSgIAAaiIDKAIARw0AIAMgADYCACAADQFBACAHQX4gBXdxIgc2AozQgIAADAILIAtBEEEUIAsoAhAgCEYbaiAANgIAIABFDQELIAAgCzYCGAJAIAgoAhAiA0UNACAAIAM2AhAgAyAANgIYCyAIQRRqKAIAIgNFDQAgAEEUaiADNgIAIAMgADYCGAsCQAJAIARBD0sNACAIIAQgAmoiA0EDcjYCBCAIIANqIgMgAygCBEEBcjYCBAwBCyAIIAJqIgAgBEEBcjYCBCAIIAJBA3I2AgQgACAEaiAENgIAAkAgBEH/AUsNACAEQXhxQbDQgIAAaiEDAkACQEEAKAKI0ICAACIFQQEgBEEDdnQiBHENAEEAIAUgBHI2AojQgIAAIAMhBAwBCyADKAIIIQQLIAQgADYCDCADIAA2AgggACADNgIMIAAgBDYCCAwBC0EfIQMCQCAEQf///wdLDQAgBEEIdiIDIANBgP4/akEQdkEIcSIDdCIFIAVBgOAfakEQdkEEcSIFdCICIAJBgIAPakEQdkECcSICdEEPdiADIAVyIAJyayIDQQF0IAQgA0EVanZBAXFyQRxqIQMLIAAgAzYCHCAAQgA3AhAgA0ECdEG40oCAAGohBQJAIAdBASADdCICcQ0AIAUgADYCAEEAIAcgAnI2AozQgIAAIAAgBTYCGCAAIAA2AgggACAANgIMDAELIARBAEEZIANBAXZrIANBH0YbdCEDIAUoAgAhAgJAA0AgAiIFKAIEQXhxIARGDQEgA0EddiECIANBAXQhAyAFIAJBBHFqQRBqIgYoAgAiAg0ACyAGIAA2AgAgACAFNgIYIAAgADYCDCAAIAA2AggMAQsgBSgCCCIDIAA2AgwgBSAANgIIIABBADYCGCAAIAU2AgwgACADNgIICyAIQQhqIQMMAQsCQCAKRQ0AAkACQCAAIAAoAhwiBUECdEG40oCAAGoiAygCAEcNACADIAg2AgAgCA0BQQAgCUF+IAV3cTYCjNCAgAAMAgsgCkEQQRQgCigCECAARhtqIAg2AgAgCEUNAQsgCCAKNgIYAkAgACgCECIDRQ0AIAggAzYCECADIAg2AhgLIABBFGooAgAiA0UNACAIQRRqIAM2AgAgAyAINgIYCwJAAkAgBEEPSw0AIAAgBCACaiIDQQNyNgIEIAAgA2oiAyADKAIEQQFyNgIEDAELIAAgAmoiBSAEQQFyNgIEIAAgAkEDcjYCBCAFIARqIAQ2AgACQCAHRQ0AIAdBeHFBsNCAgABqIQJBACgCnNCAgAAhAwJAAkBBASAHQQN2dCIIIAZxDQBBACAIIAZyNgKI0ICAACACIQgMAQsgAigCCCEICyAIIAM2AgwgAiADNgIIIAMgAjYCDCADIAg2AggLQQAgBTYCnNCAgABBACAENgKQ0ICAAAsgAEEIaiEDCyABQRBqJICAgIAAIAMLCgAgABDJgICAAAviDQEHfwJAIABFDQAgAEF4aiIBIABBfGooAgAiAkF4cSIAaiEDAkAgAkEBcQ0AIAJBA3FFDQEgASABKAIAIgJrIgFBACgCmNCAgAAiBEkNASACIABqIQACQCABQQAoApzQgIAARg0AAkAgAkH/AUsNACABKAIIIgQgAkEDdiIFQQN0QbDQgIAAaiIGRhoCQCABKAIMIgIgBEcNAEEAQQAoAojQgIAAQX4gBXdxNgKI0ICAAAwDCyACIAZGGiACIAQ2AgggBCACNgIMDAILIAEoAhghBwJAAkAgASgCDCIGIAFGDQAgASgCCCICIARJGiAGIAI2AgggAiAGNgIMDAELAkAgAUEUaiICKAIAIgQNACABQRBqIgIoAgAiBA0AQQAhBgwBCwNAIAIhBSAEIgZBFGoiAigCACIEDQAgBkEQaiECIAYoAhAiBA0ACyAFQQA2AgALIAdFDQECQAJAIAEgASgCHCIEQQJ0QbjSgIAAaiICKAIARw0AIAIgBjYCACAGDQFBAEEAKAKM0ICAAEF+IAR3cTYCjNCAgAAMAwsgB0EQQRQgBygCECABRhtqIAY2AgAgBkUNAgsgBiAHNgIYAkAgASgCECICRQ0AIAYgAjYCECACIAY2AhgLIAEoAhQiAkUNASAGQRRqIAI2AgAgAiAGNgIYDAELIAMoAgQiAkEDcUEDRw0AIAMgAkF+cTYCBEEAIAA2ApDQgIAAIAEgAGogADYCACABIABBAXI2AgQPCyABIANPDQAgAygCBCICQQFxRQ0AAkACQCACQQJxDQACQCADQQAoAqDQgIAARw0AQQAgATYCoNCAgABBAEEAKAKU0ICAACAAaiIANgKU0ICAACABIABBAXI2AgQgAUEAKAKc0ICAAEcNA0EAQQA2ApDQgIAAQQBBADYCnNCAgAAPCwJAIANBACgCnNCAgABHDQBBACABNgKc0ICAAEEAQQAoApDQgIAAIABqIgA2ApDQgIAAIAEgAEEBcjYCBCABIABqIAA2AgAPCyACQXhxIABqIQACQAJAIAJB/wFLDQAgAygCCCIEIAJBA3YiBUEDdEGw0ICAAGoiBkYaAkAgAygCDCICIARHDQBBAEEAKAKI0ICAAEF+IAV3cTYCiNCAgAAMAgsgAiAGRhogAiAENgIIIAQgAjYCDAwBCyADKAIYIQcCQAJAIAMoAgwiBiADRg0AIAMoAggiAkEAKAKY0ICAAEkaIAYgAjYCCCACIAY2AgwMAQsCQCADQRRqIgIoAgAiBA0AIANBEGoiAigCACIEDQBBACEGDAELA0AgAiEFIAQiBkEUaiICKAIAIgQNACAGQRBqIQIgBigCECIEDQALIAVBADYCAAsgB0UNAAJAAkAgAyADKAIcIgRBAnRBuNKAgABqIgIoAgBHDQAgAiAGNgIAIAYNAUEAQQAoAozQgIAAQX4gBHdxNgKM0ICAAAwCCyAHQRBBFCAHKAIQIANGG2ogBjYCACAGRQ0BCyAGIAc2AhgCQCADKAIQIgJFDQAgBiACNgIQIAIgBjYCGAsgAygCFCICRQ0AIAZBFGogAjYCACACIAY2AhgLIAEgAGogADYCACABIABBAXI2AgQgAUEAKAKc0ICAAEcNAUEAIAA2ApDQgIAADwsgAyACQX5xNgIEIAEgAGogADYCACABIABBAXI2AgQLAkAgAEH/AUsNACAAQXhxQbDQgIAAaiECAkACQEEAKAKI0ICAACIEQQEgAEEDdnQiAHENAEEAIAQgAHI2AojQgIAAIAIhAAwBCyACKAIIIQALIAAgATYCDCACIAE2AgggASACNgIMIAEgADYCCA8LQR8hAgJAIABB////B0sNACAAQQh2IgIgAkGA/j9qQRB2QQhxIgJ0IgQgBEGA4B9qQRB2QQRxIgR0IgYgBkGAgA9qQRB2QQJxIgZ0QQ92IAIgBHIgBnJrIgJBAXQgACACQRVqdkEBcXJBHGohAgsgASACNgIcIAFCADcCECACQQJ0QbjSgIAAaiEEAkACQEEAKAKM0ICAACIGQQEgAnQiA3ENACAEIAE2AgBBACAGIANyNgKM0ICAACABIAQ2AhggASABNgIIIAEgATYCDAwBCyAAQQBBGSACQQF2ayACQR9GG3QhAiAEKAIAIQYCQANAIAYiBCgCBEF4cSAARg0BIAJBHXYhBiACQQF0IQIgBCAGQQRxakEQaiIDKAIAIgYNAAsgAyABNgIAIAEgBDYCGCABIAE2AgwgASABNgIIDAELIAQoAggiACABNgIMIAQgATYCCCABQQA2AhggASAENgIMIAEgADYCCAtBAEEAKAKo0ICAAEF/aiIBQX8gARs2AqjQgIAACwsEAAAAC04AAkAgAA0APwBBEHQPCwJAIABB//8DcQ0AIABBf0wNAAJAIABBEHZAACIAQX9HDQBBAEEwNgL404CAAEF/DwsgAEEQdA8LEMqAgIAAAAvyAgIDfwF+AkAgAkUNACAAIAE6AAAgAiAAaiIDQX9qIAE6AAAgAkEDSQ0AIAAgAToAAiAAIAE6AAEgA0F9aiABOgAAIANBfmogAToAACACQQdJDQAgACABOgADIANBfGogAToAACACQQlJDQAgAEEAIABrQQNxIgRqIgMgAUH/AXFBgYKECGwiATYCACADIAIgBGtBfHEiBGoiAkF8aiABNgIAIARBCUkNACADIAE2AgggAyABNgIEIAJBeGogATYCACACQXRqIAE2AgAgBEEZSQ0AIAMgATYCGCADIAE2AhQgAyABNgIQIAMgATYCDCACQXBqIAE2AgAgAkFsaiABNgIAIAJBaGogATYCACACQWRqIAE2AgAgBCADQQRxQRhyIgVrIgJBIEkNACABrUKBgICAEH4hBiADIAVqIQEDQCABIAY3AxggASAGNwMQIAEgBjcDCCABIAY3AwAgAUEgaiEBIAJBYGoiAkEfSw0ACwsgAAsLjkgBAEGACAuGSAEAAAACAAAAAwAAAAAAAAAAAAAABAAAAAUAAAAAAAAAAAAAAAYAAAAHAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASW52YWxpZCBjaGFyIGluIHVybCBxdWVyeQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2JvZHkAQ29udGVudC1MZW5ndGggb3ZlcmZsb3cAQ2h1bmsgc2l6ZSBvdmVyZmxvdwBSZXNwb25zZSBvdmVyZmxvdwBJbnZhbGlkIG1ldGhvZCBmb3IgSFRUUC94LnggcmVxdWVzdABJbnZhbGlkIG1ldGhvZCBmb3IgUlRTUC94LnggcmVxdWVzdABFeHBlY3RlZCBTT1VSQ0UgbWV0aG9kIGZvciBJQ0UveC54IHJlcXVlc3QASW52YWxpZCBjaGFyIGluIHVybCBmcmFnbWVudCBzdGFydABFeHBlY3RlZCBkb3QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9zdGF0dXMASW52YWxpZCByZXNwb25zZSBzdGF0dXMASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucwBVc2VyIGNhbGxiYWNrIGVycm9yAGBvbl9yZXNldGAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2hlYWRlcmAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfYmVnaW5gIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw==' - - -/***/ }), - -/***/ 41891: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.enumToMap = void 0; -function enumToMap(obj) { - const res = {}; - Object.keys(obj).forEach((key) => { - const value = obj[key]; - if (typeof value === 'number') { - res[key] = value; - } - }); - return res; -} -exports.enumToMap = enumToMap; -//# sourceMappingURL=utils.js.map - -/***/ }), - -/***/ 66771: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - - -const { kClients } = __nccwpck_require__(72785) -const Agent = __nccwpck_require__(7890) -const { - kAgent, - kMockAgentSet, - kMockAgentGet, - kDispatches, - kIsMockActive, - kNetConnect, - kGetNetConnect, - kOptions, - kFactory -} = __nccwpck_require__(24347) -const MockClient = __nccwpck_require__(58687) -const MockPool = __nccwpck_require__(26193) -const { matchValue, buildMockOptions } = __nccwpck_require__(79323) -const { InvalidArgumentError, UndiciError } = __nccwpck_require__(48045) -const Dispatcher = __nccwpck_require__(60412) -const Pluralizer = __nccwpck_require__(78891) -const PendingInterceptorsFormatter = __nccwpck_require__(86823) - -class FakeWeakRef { - constructor (value) { - this.value = value - } + function parseLocation(statusCode, headers) { + if (redirectableStatusCodes.indexOf(statusCode) === -1) { + return null + } - deref () { - return this.value - } -} + for (let i = 0; i < headers.length; i += 2) { + if (headers[i].toString().toLowerCase() === 'location') { + return headers[i + 1] + } + } + } -class MockAgent extends Dispatcher { - constructor (opts) { - super(opts) + // https://tools.ietf.org/html/rfc7231#section-6.4.4 + function shouldRemoveHeader(header, removeContent, unknownOrigin) { + if (header.length === 4) { + return util.headerNameToString(header) === 'host' + } + if ( + removeContent && + util.headerNameToString(header).startsWith('content-') + ) { + return true + } + if ( + unknownOrigin && + (header.length === 13 || header.length === 6 || header.length === 19) + ) { + const name = util.headerNameToString(header) + return ( + name === 'authorization' || + name === 'cookie' || + name === 'proxy-authorization' + ) + } + return false + } - this[kNetConnect] = true - this[kIsMockActive] = true + // https://tools.ietf.org/html/rfc7231#section-6.4 + function cleanRequestHeaders(headers, removeContent, unknownOrigin) { + const ret = [] + if (Array.isArray(headers)) { + for (let i = 0; i < headers.length; i += 2) { + if (!shouldRemoveHeader(headers[i], removeContent, unknownOrigin)) { + ret.push(headers[i], headers[i + 1]) + } + } + } else if (headers && typeof headers === 'object') { + for (const key of Object.keys(headers)) { + if (!shouldRemoveHeader(key, removeContent, unknownOrigin)) { + ret.push(key, headers[key]) + } + } + } else { + assert(headers == null, 'headers must be an object or an array') + } + return ret + } - // Instantiate Agent and encapsulate - if ((opts && opts.agent && typeof opts.agent.dispatch !== 'function')) { - throw new InvalidArgumentError('Argument opts.agent must implement Agent') - } - const agent = opts && opts.agent ? opts.agent : new Agent(opts) - this[kAgent] = agent + module.exports = RedirectHandler - this[kClients] = agent[kClients] - this[kOptions] = buildMockOptions(opts) - } + /***/ + }, - get (origin) { - let dispatcher = this[kMockAgentGet](origin) + /***/ 82286: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + const assert = __nccwpck_require__(39491) + + const { kRetryHandlerDefaultRetry } = __nccwpck_require__(72785) + const { RequestRetryError } = __nccwpck_require__(48045) + const { isDisturbed, parseHeaders, parseRangeHeader } = + __nccwpck_require__(83983) + + function calculateRetryAfterHeader(retryAfter) { + const current = Date.now() + const diff = new Date(retryAfter).getTime() - current + + return diff + } + + class RetryHandler { + constructor(opts, handlers) { + const { retryOptions, ...dispatchOpts } = opts + const { + // Retry scoped + retry: retryFn, + maxRetries, + maxTimeout, + minTimeout, + timeoutFactor, + // Response scoped + methods, + errorCodes, + retryAfter, + statusCodes + } = retryOptions ?? {} + + this.dispatch = handlers.dispatch + this.handler = handlers.handler + this.opts = dispatchOpts + this.abort = null + this.aborted = false + this.retryOpts = { + retry: retryFn ?? RetryHandler[kRetryHandlerDefaultRetry], + retryAfter: retryAfter ?? true, + maxTimeout: maxTimeout ?? 30 * 1000, // 30s, + timeout: minTimeout ?? 500, // .5s + timeoutFactor: timeoutFactor ?? 2, + maxRetries: maxRetries ?? 5, + // What errors we should retry + methods: methods ?? [ + 'GET', + 'HEAD', + 'OPTIONS', + 'PUT', + 'DELETE', + 'TRACE' + ], + // Indicates which errors to retry + statusCodes: statusCodes ?? [500, 502, 503, 504, 429], + // List of errors to retry + errorCodes: errorCodes ?? [ + 'ECONNRESET', + 'ECONNREFUSED', + 'ENOTFOUND', + 'ENETDOWN', + 'ENETUNREACH', + 'EHOSTDOWN', + 'EHOSTUNREACH', + 'EPIPE' + ] + } - if (!dispatcher) { - dispatcher = this[kFactory](origin) - this[kMockAgentSet](origin, dispatcher) - } - return dispatcher - } + this.retryCount = 0 + this.start = 0 + this.end = null + this.etag = null + this.resume = null + + // Handle possible onConnect duplication + this.handler.onConnect(reason => { + this.aborted = true + if (this.abort) { + this.abort(reason) + } else { + this.reason = reason + } + }) + } - dispatch (opts, handler) { - // Call MockAgent.get to perform additional setup before dispatching as normal - this.get(opts.origin) - return this[kAgent].dispatch(opts, handler) - } + onRequestSent() { + if (this.handler.onRequestSent) { + this.handler.onRequestSent() + } + } - async close () { - await this[kAgent].close() - this[kClients].clear() - } + onUpgrade(statusCode, headers, socket) { + if (this.handler.onUpgrade) { + this.handler.onUpgrade(statusCode, headers, socket) + } + } - deactivate () { - this[kIsMockActive] = false - } + onConnect(abort) { + if (this.aborted) { + abort(this.reason) + } else { + this.abort = abort + } + } - activate () { - this[kIsMockActive] = true - } + onBodySent(chunk) { + if (this.handler.onBodySent) return this.handler.onBodySent(chunk) + } - enableNetConnect (matcher) { - if (typeof matcher === 'string' || typeof matcher === 'function' || matcher instanceof RegExp) { - if (Array.isArray(this[kNetConnect])) { - this[kNetConnect].push(matcher) - } else { - this[kNetConnect] = [matcher] - } - } else if (typeof matcher === 'undefined') { - this[kNetConnect] = true - } else { - throw new InvalidArgumentError('Unsupported matcher. Must be one of String|Function|RegExp.') - } - } + static [kRetryHandlerDefaultRetry](err, { state, opts }, cb) { + const { statusCode, code, headers } = err + const { method, retryOptions } = opts + const { + maxRetries, + timeout, + maxTimeout, + timeoutFactor, + statusCodes, + errorCodes, + methods + } = retryOptions + let { counter, currentTimeout } = state - disableNetConnect () { - this[kNetConnect] = false - } + currentTimeout = + currentTimeout != null && currentTimeout > 0 + ? currentTimeout + : timeout - // This is required to bypass issues caused by using global symbols - see: - // https://github.com/nodejs/undici/issues/1447 - get isMockActive () { - return this[kIsMockActive] - } + // Any code that is not a Undici's originated and allowed to retry + if ( + code && + code !== 'UND_ERR_REQ_RETRY' && + code !== 'UND_ERR_SOCKET' && + !errorCodes.includes(code) + ) { + cb(err) + return + } - [kMockAgentSet] (origin, dispatcher) { - this[kClients].set(origin, new FakeWeakRef(dispatcher)) - } + // If a set of method are provided and the current method is not in the list + if (Array.isArray(methods) && !methods.includes(method)) { + cb(err) + return + } - [kFactory] (origin) { - const mockOptions = Object.assign({ agent: this }, this[kOptions]) - return this[kOptions] && this[kOptions].connections === 1 - ? new MockClient(origin, mockOptions) - : new MockPool(origin, mockOptions) - } + // If a set of status code are provided and the current status code is not in the list + if ( + statusCode != null && + Array.isArray(statusCodes) && + !statusCodes.includes(statusCode) + ) { + cb(err) + return + } - [kMockAgentGet] (origin) { - // First check if we can immediately find it - const ref = this[kClients].get(origin) - if (ref) { - return ref.deref() - } + // If we reached the max number of retries + if (counter > maxRetries) { + cb(err) + return + } - // If the origin is not a string create a dummy parent pool and return to user - if (typeof origin !== 'string') { - const dispatcher = this[kFactory]('http://localhost:9999') - this[kMockAgentSet](origin, dispatcher) - return dispatcher - } + let retryAfterHeader = headers != null && headers['retry-after'] + if (retryAfterHeader) { + retryAfterHeader = Number(retryAfterHeader) + retryAfterHeader = isNaN(retryAfterHeader) + ? calculateRetryAfterHeader(retryAfterHeader) + : retryAfterHeader * 1e3 // Retry-After is in seconds + } - // If we match, create a pool and assign the same dispatches - for (const [keyMatcher, nonExplicitRef] of Array.from(this[kClients])) { - const nonExplicitDispatcher = nonExplicitRef.deref() - if (nonExplicitDispatcher && typeof keyMatcher !== 'string' && matchValue(keyMatcher, origin)) { - const dispatcher = this[kFactory](origin) - this[kMockAgentSet](origin, dispatcher) - dispatcher[kDispatches] = nonExplicitDispatcher[kDispatches] - return dispatcher - } - } - } + const retryTimeout = + retryAfterHeader > 0 + ? Math.min(retryAfterHeader, maxTimeout) + : Math.min(currentTimeout * timeoutFactor ** counter, maxTimeout) - [kGetNetConnect] () { - return this[kNetConnect] - } + state.currentTimeout = retryTimeout - pendingInterceptors () { - const mockAgentClients = this[kClients] + setTimeout(() => cb(null), retryTimeout) + } - return Array.from(mockAgentClients.entries()) - .flatMap(([origin, scope]) => scope.deref()[kDispatches].map(dispatch => ({ ...dispatch, origin }))) - .filter(({ pending }) => pending) - } + onHeaders(statusCode, rawHeaders, resume, statusMessage) { + const headers = parseHeaders(rawHeaders) - assertNoPendingInterceptors ({ pendingInterceptorsFormatter = new PendingInterceptorsFormatter() } = {}) { - const pending = this.pendingInterceptors() + this.retryCount += 1 - if (pending.length === 0) { - return - } + if (statusCode >= 300) { + this.abort( + new RequestRetryError('Request failed', statusCode, { + headers, + count: this.retryCount + }) + ) + return false + } - const pluralizer = new Pluralizer('interceptor', 'interceptors').pluralize(pending.length) + // Checkpoint for resume from where we left it + if (this.resume != null) { + this.resume = null - throw new UndiciError(` -${pluralizer.count} ${pluralizer.noun} ${pluralizer.is} pending: + if (statusCode !== 206) { + return true + } -${pendingInterceptorsFormatter.format(pending)} -`.trim()) - } -} + const contentRange = parseRangeHeader(headers['content-range']) + // If no content range + if (!contentRange) { + this.abort( + new RequestRetryError('Content-Range mismatch', statusCode, { + headers, + count: this.retryCount + }) + ) + return false + } -module.exports = MockAgent + // Let's start with a weak etag check + if (this.etag != null && this.etag !== headers.etag) { + this.abort( + new RequestRetryError('ETag mismatch', statusCode, { + headers, + count: this.retryCount + }) + ) + return false + } + const { start, size, end = size } = contentRange -/***/ }), + assert(this.start === start, 'content-range mismatch') + assert( + this.end == null || this.end === end, + 'content-range mismatch' + ) -/***/ 58687: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + this.resume = resume + return true + } -"use strict"; + if (this.end == null) { + if (statusCode === 206) { + // First time we receive 206 + const range = parseRangeHeader(headers['content-range']) + + if (range == null) { + return this.handler.onHeaders( + statusCode, + rawHeaders, + resume, + statusMessage + ) + } + const { start, size, end = size } = range -const { promisify } = __nccwpck_require__(73837) -const Client = __nccwpck_require__(33598) -const { buildMockDispatch } = __nccwpck_require__(79323) -const { - kDispatches, - kMockAgent, - kClose, - kOriginalClose, - kOrigin, - kOriginalDispatch, - kConnected -} = __nccwpck_require__(24347) -const { MockInterceptor } = __nccwpck_require__(90410) -const Symbols = __nccwpck_require__(72785) -const { InvalidArgumentError } = __nccwpck_require__(48045) + assert( + start != null && Number.isFinite(start) && this.start !== start, + 'content-range mismatch' + ) + assert(Number.isFinite(start)) + assert( + end != null && Number.isFinite(end) && this.end !== end, + 'invalid content-length' + ) -/** - * MockClient provides an API that extends the Client to influence the mockDispatches. - */ -class MockClient extends Client { - constructor (origin, opts) { - super(origin, opts) + this.start = start + this.end = end + } - if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') { - throw new InvalidArgumentError('Argument opts.agent must implement Agent') - } + // We make our best to checkpoint the body for further range headers + if (this.end == null) { + const contentLength = headers['content-length'] + this.end = contentLength != null ? Number(contentLength) : null + } - this[kMockAgent] = opts.agent - this[kOrigin] = origin - this[kDispatches] = [] - this[kConnected] = 1 - this[kOriginalDispatch] = this.dispatch - this[kOriginalClose] = this.close.bind(this) + assert(Number.isFinite(this.start)) + assert( + this.end == null || Number.isFinite(this.end), + 'invalid content-length' + ) - this.dispatch = buildMockDispatch.call(this) - this.close = this[kClose] - } + this.resume = resume + this.etag = headers.etag != null ? headers.etag : null - get [Symbols.kConnected] () { - return this[kConnected] - } + return this.handler.onHeaders( + statusCode, + rawHeaders, + resume, + statusMessage + ) + } - /** - * Sets up the base interceptor for mocking replies from undici. - */ - intercept (opts) { - return new MockInterceptor(opts, this[kDispatches]) - } + const err = new RequestRetryError('Request failed', statusCode, { + headers, + count: this.retryCount + }) - async [kClose] () { - await promisify(this[kOriginalClose])() - this[kConnected] = 0 - this[kMockAgent][Symbols.kClients].delete(this[kOrigin]) - } -} + this.abort(err) -module.exports = MockClient + return false + } + onData(chunk) { + this.start += chunk.length -/***/ }), + return this.handler.onData(chunk) + } -/***/ 50888: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + onComplete(rawTrailers) { + this.retryCount = 0 + return this.handler.onComplete(rawTrailers) + } -"use strict"; + onError(err) { + if (this.aborted || isDisturbed(this.opts.body)) { + return this.handler.onError(err) + } + this.retryOpts.retry( + err, + { + state: { + counter: this.retryCount++, + currentTimeout: this.retryAfter + }, + opts: { retryOptions: this.retryOpts, ...this.opts } + }, + onRetry.bind(this) + ) -const { UndiciError } = __nccwpck_require__(48045) + function onRetry(err) { + if (err != null || this.aborted || isDisturbed(this.opts.body)) { + return this.handler.onError(err) + } -class MockNotMatchedError extends UndiciError { - constructor (message) { - super(message) - Error.captureStackTrace(this, MockNotMatchedError) - this.name = 'MockNotMatchedError' - this.message = message || 'The request does not match any registered mock dispatches' - this.code = 'UND_MOCK_ERR_MOCK_NOT_MATCHED' - } -} + if (this.start !== 0) { + this.opts = { + ...this.opts, + headers: { + ...this.opts.headers, + range: `bytes=${this.start}-${this.end ?? ''}` + } + } + } -module.exports = { - MockNotMatchedError -} + try { + this.dispatch(this.opts, this) + } catch (err) { + this.handler.onError(err) + } + } + } + } + module.exports = RetryHandler -/***/ }), + /***/ + }, -/***/ 90410: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + /***/ 38861: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' -"use strict"; + const RedirectHandler = __nccwpck_require__(72860) + function createRedirectInterceptor({ + maxRedirections: defaultMaxRedirections + }) { + return dispatch => { + return function Intercept(opts, handler) { + const { maxRedirections = defaultMaxRedirections } = opts -const { getResponseData, buildKey, addMockDispatch } = __nccwpck_require__(79323) -const { - kDispatches, - kDispatchKey, - kDefaultHeaders, - kDefaultTrailers, - kContentLength, - kMockDispatch -} = __nccwpck_require__(24347) -const { InvalidArgumentError } = __nccwpck_require__(48045) -const { buildURL } = __nccwpck_require__(83983) + if (!maxRedirections) { + return dispatch(opts, handler) + } -/** - * Defines the scope API for an interceptor reply - */ -class MockScope { - constructor (mockDispatch) { - this[kMockDispatch] = mockDispatch - } + const redirectHandler = new RedirectHandler( + dispatch, + maxRedirections, + opts, + handler + ) + opts = { ...opts, maxRedirections: 0 } // Stop sub dispatcher from also redirecting. + return dispatch(opts, redirectHandler) + } + } + } - /** - * Delay a reply by a set amount in ms. - */ - delay (waitInMs) { - if (typeof waitInMs !== 'number' || !Number.isInteger(waitInMs) || waitInMs <= 0) { - throw new InvalidArgumentError('waitInMs must be a valid integer > 0') - } + module.exports = createRedirectInterceptor - this[kMockDispatch].delay = waitInMs - return this - } + /***/ + }, - /** - * For a defined reply, never mark as consumed. - */ - persist () { - this[kMockDispatch].persist = true - return this - } + /***/ 30953: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.SPECIAL_HEADERS = + exports.HEADER_STATE = + exports.MINOR = + exports.MAJOR = + exports.CONNECTION_TOKEN_CHARS = + exports.HEADER_CHARS = + exports.TOKEN = + exports.STRICT_TOKEN = + exports.HEX = + exports.URL_CHAR = + exports.STRICT_URL_CHAR = + exports.USERINFO_CHARS = + exports.MARK = + exports.ALPHANUM = + exports.NUM = + exports.HEX_MAP = + exports.NUM_MAP = + exports.ALPHA = + exports.FINISH = + exports.H_METHOD_MAP = + exports.METHOD_MAP = + exports.METHODS_RTSP = + exports.METHODS_ICE = + exports.METHODS_HTTP = + exports.METHODS = + exports.LENIENT_FLAGS = + exports.FLAGS = + exports.TYPE = + exports.ERROR = + void 0 + const utils_1 = __nccwpck_require__(41891) + // C headers + var ERROR + ;(function (ERROR) { + ERROR[(ERROR['OK'] = 0)] = 'OK' + ERROR[(ERROR['INTERNAL'] = 1)] = 'INTERNAL' + ERROR[(ERROR['STRICT'] = 2)] = 'STRICT' + ERROR[(ERROR['LF_EXPECTED'] = 3)] = 'LF_EXPECTED' + ERROR[(ERROR['UNEXPECTED_CONTENT_LENGTH'] = 4)] = + 'UNEXPECTED_CONTENT_LENGTH' + ERROR[(ERROR['CLOSED_CONNECTION'] = 5)] = 'CLOSED_CONNECTION' + ERROR[(ERROR['INVALID_METHOD'] = 6)] = 'INVALID_METHOD' + ERROR[(ERROR['INVALID_URL'] = 7)] = 'INVALID_URL' + ERROR[(ERROR['INVALID_CONSTANT'] = 8)] = 'INVALID_CONSTANT' + ERROR[(ERROR['INVALID_VERSION'] = 9)] = 'INVALID_VERSION' + ERROR[(ERROR['INVALID_HEADER_TOKEN'] = 10)] = 'INVALID_HEADER_TOKEN' + ERROR[(ERROR['INVALID_CONTENT_LENGTH'] = 11)] = 'INVALID_CONTENT_LENGTH' + ERROR[(ERROR['INVALID_CHUNK_SIZE'] = 12)] = 'INVALID_CHUNK_SIZE' + ERROR[(ERROR['INVALID_STATUS'] = 13)] = 'INVALID_STATUS' + ERROR[(ERROR['INVALID_EOF_STATE'] = 14)] = 'INVALID_EOF_STATE' + ERROR[(ERROR['INVALID_TRANSFER_ENCODING'] = 15)] = + 'INVALID_TRANSFER_ENCODING' + ERROR[(ERROR['CB_MESSAGE_BEGIN'] = 16)] = 'CB_MESSAGE_BEGIN' + ERROR[(ERROR['CB_HEADERS_COMPLETE'] = 17)] = 'CB_HEADERS_COMPLETE' + ERROR[(ERROR['CB_MESSAGE_COMPLETE'] = 18)] = 'CB_MESSAGE_COMPLETE' + ERROR[(ERROR['CB_CHUNK_HEADER'] = 19)] = 'CB_CHUNK_HEADER' + ERROR[(ERROR['CB_CHUNK_COMPLETE'] = 20)] = 'CB_CHUNK_COMPLETE' + ERROR[(ERROR['PAUSED'] = 21)] = 'PAUSED' + ERROR[(ERROR['PAUSED_UPGRADE'] = 22)] = 'PAUSED_UPGRADE' + ERROR[(ERROR['PAUSED_H2_UPGRADE'] = 23)] = 'PAUSED_H2_UPGRADE' + ERROR[(ERROR['USER'] = 24)] = 'USER' + })((ERROR = exports.ERROR || (exports.ERROR = {}))) + var TYPE + ;(function (TYPE) { + TYPE[(TYPE['BOTH'] = 0)] = 'BOTH' + TYPE[(TYPE['REQUEST'] = 1)] = 'REQUEST' + TYPE[(TYPE['RESPONSE'] = 2)] = 'RESPONSE' + })((TYPE = exports.TYPE || (exports.TYPE = {}))) + var FLAGS + ;(function (FLAGS) { + FLAGS[(FLAGS['CONNECTION_KEEP_ALIVE'] = 1)] = 'CONNECTION_KEEP_ALIVE' + FLAGS[(FLAGS['CONNECTION_CLOSE'] = 2)] = 'CONNECTION_CLOSE' + FLAGS[(FLAGS['CONNECTION_UPGRADE'] = 4)] = 'CONNECTION_UPGRADE' + FLAGS[(FLAGS['CHUNKED'] = 8)] = 'CHUNKED' + FLAGS[(FLAGS['UPGRADE'] = 16)] = 'UPGRADE' + FLAGS[(FLAGS['CONTENT_LENGTH'] = 32)] = 'CONTENT_LENGTH' + FLAGS[(FLAGS['SKIPBODY'] = 64)] = 'SKIPBODY' + FLAGS[(FLAGS['TRAILING'] = 128)] = 'TRAILING' + // 1 << 8 is unused + FLAGS[(FLAGS['TRANSFER_ENCODING'] = 512)] = 'TRANSFER_ENCODING' + })((FLAGS = exports.FLAGS || (exports.FLAGS = {}))) + var LENIENT_FLAGS + ;(function (LENIENT_FLAGS) { + LENIENT_FLAGS[(LENIENT_FLAGS['HEADERS'] = 1)] = 'HEADERS' + LENIENT_FLAGS[(LENIENT_FLAGS['CHUNKED_LENGTH'] = 2)] = 'CHUNKED_LENGTH' + LENIENT_FLAGS[(LENIENT_FLAGS['KEEP_ALIVE'] = 4)] = 'KEEP_ALIVE' + })( + (LENIENT_FLAGS = exports.LENIENT_FLAGS || (exports.LENIENT_FLAGS = {})) + ) + var METHODS + ;(function (METHODS) { + METHODS[(METHODS['DELETE'] = 0)] = 'DELETE' + METHODS[(METHODS['GET'] = 1)] = 'GET' + METHODS[(METHODS['HEAD'] = 2)] = 'HEAD' + METHODS[(METHODS['POST'] = 3)] = 'POST' + METHODS[(METHODS['PUT'] = 4)] = 'PUT' + /* pathological */ + METHODS[(METHODS['CONNECT'] = 5)] = 'CONNECT' + METHODS[(METHODS['OPTIONS'] = 6)] = 'OPTIONS' + METHODS[(METHODS['TRACE'] = 7)] = 'TRACE' + /* WebDAV */ + METHODS[(METHODS['COPY'] = 8)] = 'COPY' + METHODS[(METHODS['LOCK'] = 9)] = 'LOCK' + METHODS[(METHODS['MKCOL'] = 10)] = 'MKCOL' + METHODS[(METHODS['MOVE'] = 11)] = 'MOVE' + METHODS[(METHODS['PROPFIND'] = 12)] = 'PROPFIND' + METHODS[(METHODS['PROPPATCH'] = 13)] = 'PROPPATCH' + METHODS[(METHODS['SEARCH'] = 14)] = 'SEARCH' + METHODS[(METHODS['UNLOCK'] = 15)] = 'UNLOCK' + METHODS[(METHODS['BIND'] = 16)] = 'BIND' + METHODS[(METHODS['REBIND'] = 17)] = 'REBIND' + METHODS[(METHODS['UNBIND'] = 18)] = 'UNBIND' + METHODS[(METHODS['ACL'] = 19)] = 'ACL' + /* subversion */ + METHODS[(METHODS['REPORT'] = 20)] = 'REPORT' + METHODS[(METHODS['MKACTIVITY'] = 21)] = 'MKACTIVITY' + METHODS[(METHODS['CHECKOUT'] = 22)] = 'CHECKOUT' + METHODS[(METHODS['MERGE'] = 23)] = 'MERGE' + /* upnp */ + METHODS[(METHODS['M-SEARCH'] = 24)] = 'M-SEARCH' + METHODS[(METHODS['NOTIFY'] = 25)] = 'NOTIFY' + METHODS[(METHODS['SUBSCRIBE'] = 26)] = 'SUBSCRIBE' + METHODS[(METHODS['UNSUBSCRIBE'] = 27)] = 'UNSUBSCRIBE' + /* RFC-5789 */ + METHODS[(METHODS['PATCH'] = 28)] = 'PATCH' + METHODS[(METHODS['PURGE'] = 29)] = 'PURGE' + /* CalDAV */ + METHODS[(METHODS['MKCALENDAR'] = 30)] = 'MKCALENDAR' + /* RFC-2068, section 19.6.1.2 */ + METHODS[(METHODS['LINK'] = 31)] = 'LINK' + METHODS[(METHODS['UNLINK'] = 32)] = 'UNLINK' + /* icecast */ + METHODS[(METHODS['SOURCE'] = 33)] = 'SOURCE' + /* RFC-7540, section 11.6 */ + METHODS[(METHODS['PRI'] = 34)] = 'PRI' + /* RFC-2326 RTSP */ + METHODS[(METHODS['DESCRIBE'] = 35)] = 'DESCRIBE' + METHODS[(METHODS['ANNOUNCE'] = 36)] = 'ANNOUNCE' + METHODS[(METHODS['SETUP'] = 37)] = 'SETUP' + METHODS[(METHODS['PLAY'] = 38)] = 'PLAY' + METHODS[(METHODS['PAUSE'] = 39)] = 'PAUSE' + METHODS[(METHODS['TEARDOWN'] = 40)] = 'TEARDOWN' + METHODS[(METHODS['GET_PARAMETER'] = 41)] = 'GET_PARAMETER' + METHODS[(METHODS['SET_PARAMETER'] = 42)] = 'SET_PARAMETER' + METHODS[(METHODS['REDIRECT'] = 43)] = 'REDIRECT' + METHODS[(METHODS['RECORD'] = 44)] = 'RECORD' + /* RAOP */ + METHODS[(METHODS['FLUSH'] = 45)] = 'FLUSH' + })((METHODS = exports.METHODS || (exports.METHODS = {}))) + exports.METHODS_HTTP = [ + METHODS.DELETE, + METHODS.GET, + METHODS.HEAD, + METHODS.POST, + METHODS.PUT, + METHODS.CONNECT, + METHODS.OPTIONS, + METHODS.TRACE, + METHODS.COPY, + METHODS.LOCK, + METHODS.MKCOL, + METHODS.MOVE, + METHODS.PROPFIND, + METHODS.PROPPATCH, + METHODS.SEARCH, + METHODS.UNLOCK, + METHODS.BIND, + METHODS.REBIND, + METHODS.UNBIND, + METHODS.ACL, + METHODS.REPORT, + METHODS.MKACTIVITY, + METHODS.CHECKOUT, + METHODS.MERGE, + METHODS['M-SEARCH'], + METHODS.NOTIFY, + METHODS.SUBSCRIBE, + METHODS.UNSUBSCRIBE, + METHODS.PATCH, + METHODS.PURGE, + METHODS.MKCALENDAR, + METHODS.LINK, + METHODS.UNLINK, + METHODS.PRI, + // TODO(indutny): should we allow it with HTTP? + METHODS.SOURCE + ] + exports.METHODS_ICE = [METHODS.SOURCE] + exports.METHODS_RTSP = [ + METHODS.OPTIONS, + METHODS.DESCRIBE, + METHODS.ANNOUNCE, + METHODS.SETUP, + METHODS.PLAY, + METHODS.PAUSE, + METHODS.TEARDOWN, + METHODS.GET_PARAMETER, + METHODS.SET_PARAMETER, + METHODS.REDIRECT, + METHODS.RECORD, + METHODS.FLUSH, + // For AirPlay + METHODS.GET, + METHODS.POST + ] + exports.METHOD_MAP = utils_1.enumToMap(METHODS) + exports.H_METHOD_MAP = {} + Object.keys(exports.METHOD_MAP).forEach(key => { + if (/^H/.test(key)) { + exports.H_METHOD_MAP[key] = exports.METHOD_MAP[key] + } + }) + var FINISH + ;(function (FINISH) { + FINISH[(FINISH['SAFE'] = 0)] = 'SAFE' + FINISH[(FINISH['SAFE_WITH_CB'] = 1)] = 'SAFE_WITH_CB' + FINISH[(FINISH['UNSAFE'] = 2)] = 'UNSAFE' + })((FINISH = exports.FINISH || (exports.FINISH = {}))) + exports.ALPHA = [] + for (let i = 'A'.charCodeAt(0); i <= 'Z'.charCodeAt(0); i++) { + // Upper case + exports.ALPHA.push(String.fromCharCode(i)) + // Lower case + exports.ALPHA.push(String.fromCharCode(i + 0x20)) + } + exports.NUM_MAP = { + 0: 0, + 1: 1, + 2: 2, + 3: 3, + 4: 4, + 5: 5, + 6: 6, + 7: 7, + 8: 8, + 9: 9 + } + exports.HEX_MAP = { + 0: 0, + 1: 1, + 2: 2, + 3: 3, + 4: 4, + 5: 5, + 6: 6, + 7: 7, + 8: 8, + 9: 9, + A: 0xa, + B: 0xb, + C: 0xc, + D: 0xd, + E: 0xe, + F: 0xf, + a: 0xa, + b: 0xb, + c: 0xc, + d: 0xd, + e: 0xe, + f: 0xf + } + exports.NUM = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] + exports.ALPHANUM = exports.ALPHA.concat(exports.NUM) + exports.MARK = ['-', '_', '.', '!', '~', '*', "'", '(', ')'] + exports.USERINFO_CHARS = exports.ALPHANUM.concat(exports.MARK).concat([ + '%', + ';', + ':', + '&', + '=', + '+', + '$', + ',' + ]) + // TODO(indutny): use RFC + exports.STRICT_URL_CHAR = [ + '!', + '"', + '$', + '%', + '&', + "'", + '(', + ')', + '*', + '+', + ',', + '-', + '.', + '/', + ':', + ';', + '<', + '=', + '>', + '@', + '[', + '\\', + ']', + '^', + '_', + '`', + '{', + '|', + '}', + '~' + ].concat(exports.ALPHANUM) + exports.URL_CHAR = exports.STRICT_URL_CHAR.concat(['\t', '\f']) + // All characters with 0x80 bit set to 1 + for (let i = 0x80; i <= 0xff; i++) { + exports.URL_CHAR.push(i) + } + exports.HEX = exports.NUM.concat([ + 'a', + 'b', + 'c', + 'd', + 'e', + 'f', + 'A', + 'B', + 'C', + 'D', + 'E', + 'F' + ]) + /* Tokens as defined by rfc 2616. Also lowercases them. + * token = 1* + * separators = "(" | ")" | "<" | ">" | "@" + * | "," | ";" | ":" | "\" | <"> + * | "/" | "[" | "]" | "?" | "=" + * | "{" | "}" | SP | HT + */ + exports.STRICT_TOKEN = [ + '!', + '#', + '$', + '%', + '&', + "'", + '*', + '+', + '-', + '.', + '^', + '_', + '`', + '|', + '~' + ].concat(exports.ALPHANUM) + exports.TOKEN = exports.STRICT_TOKEN.concat([' ']) + /* + * Verify that a char is a valid visible (printable) US-ASCII + * character or %x80-FF + */ + exports.HEADER_CHARS = ['\t'] + for (let i = 32; i <= 255; i++) { + if (i !== 127) { + exports.HEADER_CHARS.push(i) + } + } + // ',' = \x44 + exports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS.filter( + c => c !== 44 + ) + exports.MAJOR = exports.NUM_MAP + exports.MINOR = exports.MAJOR + var HEADER_STATE + ;(function (HEADER_STATE) { + HEADER_STATE[(HEADER_STATE['GENERAL'] = 0)] = 'GENERAL' + HEADER_STATE[(HEADER_STATE['CONNECTION'] = 1)] = 'CONNECTION' + HEADER_STATE[(HEADER_STATE['CONTENT_LENGTH'] = 2)] = 'CONTENT_LENGTH' + HEADER_STATE[(HEADER_STATE['TRANSFER_ENCODING'] = 3)] = + 'TRANSFER_ENCODING' + HEADER_STATE[(HEADER_STATE['UPGRADE'] = 4)] = 'UPGRADE' + HEADER_STATE[(HEADER_STATE['CONNECTION_KEEP_ALIVE'] = 5)] = + 'CONNECTION_KEEP_ALIVE' + HEADER_STATE[(HEADER_STATE['CONNECTION_CLOSE'] = 6)] = + 'CONNECTION_CLOSE' + HEADER_STATE[(HEADER_STATE['CONNECTION_UPGRADE'] = 7)] = + 'CONNECTION_UPGRADE' + HEADER_STATE[(HEADER_STATE['TRANSFER_ENCODING_CHUNKED'] = 8)] = + 'TRANSFER_ENCODING_CHUNKED' + })((HEADER_STATE = exports.HEADER_STATE || (exports.HEADER_STATE = {}))) + exports.SPECIAL_HEADERS = { + connection: HEADER_STATE.CONNECTION, + 'content-length': HEADER_STATE.CONTENT_LENGTH, + 'proxy-connection': HEADER_STATE.CONNECTION, + 'transfer-encoding': HEADER_STATE.TRANSFER_ENCODING, + upgrade: HEADER_STATE.UPGRADE + } + //# sourceMappingURL=constants.js.map + + /***/ + }, - /** - * Allow one to define a reply for a set amount of matching requests. - */ - times (repeatTimes) { - if (typeof repeatTimes !== 'number' || !Number.isInteger(repeatTimes) || repeatTimes <= 0) { - throw new InvalidArgumentError('repeatTimes must be a valid integer > 0') - } + /***/ 61145: /***/ module => { + module.exports = + 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJsbGh0dHBfc3RhdHVzX25hbWUAIRpsbGh0dHBfc2V0X2xlbmllbnRfaGVhZGVycwAiIWxsaHR0cF9zZXRfbGVuaWVudF9jaHVua2VkX2xlbmd0aAAjHWxsaHR0cF9zZXRfbGVuaWVudF9rZWVwX2FsaXZlACQkbGxodHRwX3NldF9sZW5pZW50X3RyYW5zZmVyX2VuY29kaW5nACUYbGxodHRwX21lc3NhZ2VfbmVlZHNfZW9mAD8JFwEAQQELEQECAwQFCwYHNTk3MS8tJyspCsLgAkUCAAsIABCIgICAAAsZACAAEMKAgIAAGiAAIAI2AjggACABOgAoCxwAIAAgAC8BMiAALQAuIAAQwYCAgAAQgICAgAALKgEBf0HAABDGgICAACIBEMKAgIAAGiABQYCIgIAANgI4IAEgADoAKCABCwoAIAAQyICAgAALBwAgAC0AKAsHACAALQAqCwcAIAAtACsLBwAgAC0AKQsHACAALwEyCwcAIAAtAC4LRQEEfyAAKAIYIQEgAC0ALSECIAAtACghAyAAKAI4IQQgABDCgICAABogACAENgI4IAAgAzoAKCAAIAI6AC0gACABNgIYCxEAIAAgASABIAJqEMOAgIAACxAAIABBAEHcABDMgICAABoLZwEBf0EAIQECQCAAKAIMDQACQAJAAkACQCAALQAvDgMBAAMCCyAAKAI4IgFFDQAgASgCLCIBRQ0AIAAgARGAgICAAAAiAQ0DC0EADwsQyoCAgAAACyAAQcOWgIAANgIQQQ4hAQsgAQseAAJAIAAoAgwNACAAQdGbgIAANgIQIABBFTYCDAsLFgACQCAAKAIMQRVHDQAgAEEANgIMCwsWAAJAIAAoAgxBFkcNACAAQQA2AgwLCwcAIAAoAgwLBwAgACgCEAsJACAAIAE2AhALBwAgACgCFAsiAAJAIABBJEkNABDKgICAAAALIABBAnRBoLOAgABqKAIACyIAAkAgAEEuSQ0AEMqAgIAAAAsgAEECdEGwtICAAGooAgAL7gsBAX9B66iAgAAhAQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABBnH9qDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0Hhp4CAAA8LQaShgIAADwtBy6yAgAAPC0H+sYCAAA8LQcCkgIAADwtBq6SAgAAPC0GNqICAAA8LQeKmgIAADwtBgLCAgAAPC0G5r4CAAA8LQdekgIAADwtB75+AgAAPC0Hhn4CAAA8LQfqfgIAADwtB8qCAgAAPC0Gor4CAAA8LQa6ygIAADwtBiLCAgAAPC0Hsp4CAAA8LQYKigIAADwtBjp2AgAAPC0HQroCAAA8LQcqjgIAADwtBxbKAgAAPC0HfnICAAA8LQdKcgIAADwtBxKCAgAAPC0HXoICAAA8LQaKfgIAADwtB7a6AgAAPC0GrsICAAA8LQdSlgIAADwtBzK6AgAAPC0H6roCAAA8LQfyrgIAADwtB0rCAgAAPC0HxnYCAAA8LQbuggIAADwtB96uAgAAPC0GQsYCAAA8LQdexgIAADwtBoq2AgAAPC0HUp4CAAA8LQeCrgIAADwtBn6yAgAAPC0HrsYCAAA8LQdWfgIAADwtByrGAgAAPC0HepYCAAA8LQdSegIAADwtB9JyAgAAPC0GnsoCAAA8LQbGdgIAADwtBoJ2AgAAPC0G5sYCAAA8LQbywgIAADwtBkqGAgAAPC0GzpoCAAA8LQemsgIAADwtBrJ6AgAAPC0HUq4CAAA8LQfemgIAADwtBgKaAgAAPC0GwoYCAAA8LQf6egIAADwtBjaOAgAAPC0GJrYCAAA8LQfeigIAADwtBoLGAgAAPC0Gun4CAAA8LQcalgIAADwtB6J6AgAAPC0GTooCAAA8LQcKvgIAADwtBw52AgAAPC0GLrICAAA8LQeGdgIAADwtBja+AgAAPC0HqoYCAAA8LQbStgIAADwtB0q+AgAAPC0HfsoCAAA8LQdKygIAADwtB8LCAgAAPC0GpooCAAA8LQfmjgIAADwtBmZ6AgAAPC0G1rICAAA8LQZuwgIAADwtBkrKAgAAPC0G2q4CAAA8LQcKigIAADwtB+LKAgAAPC0GepYCAAA8LQdCigIAADwtBup6AgAAPC0GBnoCAAA8LEMqAgIAAAAtB1qGAgAAhAQsgAQsWACAAIAAtAC1B/gFxIAFBAEdyOgAtCxkAIAAgAC0ALUH9AXEgAUEAR0EBdHI6AC0LGQAgACAALQAtQfsBcSABQQBHQQJ0cjoALQsZACAAIAAtAC1B9wFxIAFBAEdBA3RyOgAtCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAgAiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCBCIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQcaRgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIwIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAggiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2ioCAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCNCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIMIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZqAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAjgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCECIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZWQgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAI8IgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAhQiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEGqm4CAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCQCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIYIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZOAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCJCIERQ0AIAAgBBGAgICAAAAhAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIsIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAigiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2iICAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCUCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIcIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABBwpmAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCICIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZSUgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAJMIgRFDQAgACAEEYCAgIAAACEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAlQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCWCIERQ0AIAAgBBGAgICAAAAhAwsgAwtFAQF/AkACQCAALwEwQRRxQRRHDQBBASEDIAAtAChBAUYNASAALwEyQeUARiEDDAELIAAtAClBBUYhAwsgACADOgAuQQAL/gEBA39BASEDAkAgAC8BMCIEQQhxDQAgACkDIEIAUiEDCwJAAkAgAC0ALkUNAEEBIQUgAC0AKUEFRg0BQQEhBSAEQcAAcUUgA3FBAUcNAQtBACEFIARBwABxDQBBAiEFIARB//8DcSIDQQhxDQACQCADQYAEcUUNAAJAIAAtAChBAUcNACAALQAtQQpxDQBBBQ8LQQQPCwJAIANBIHENAAJAIAAtAChBAUYNACAALwEyQf//A3EiAEGcf2pB5ABJDQAgAEHMAUYNACAAQbACRg0AQQQhBSAEQShxRQ0CIANBiARxQYAERg0CC0EADwtBAEEDIAApAyBQGyEFCyAFC2IBAn9BACEBAkAgAC0AKEEBRg0AIAAvATJB//8DcSICQZx/akHkAEkNACACQcwBRg0AIAJBsAJGDQAgAC8BMCIAQcAAcQ0AQQEhASAAQYgEcUGABEYNACAAQShxRSEBCyABC6cBAQN/AkACQAJAIAAtACpFDQAgAC0AK0UNAEEAIQMgAC8BMCIEQQJxRQ0BDAILQQAhAyAALwEwIgRBAXFFDQELQQEhAyAALQAoQQFGDQAgAC8BMkH//wNxIgVBnH9qQeQASQ0AIAVBzAFGDQAgBUGwAkYNACAEQcAAcQ0AQQAhAyAEQYgEcUGABEYNACAEQShxQQBHIQMLIABBADsBMCAAQQA6AC8gAwuZAQECfwJAAkACQCAALQAqRQ0AIAAtACtFDQBBACEBIAAvATAiAkECcUUNAQwCC0EAIQEgAC8BMCICQQFxRQ0BC0EBIQEgAC0AKEEBRg0AIAAvATJB//8DcSIAQZx/akHkAEkNACAAQcwBRg0AIABBsAJGDQAgAkHAAHENAEEAIQEgAkGIBHFBgARGDQAgAkEocUEARyEBCyABC1kAIABBGGpCADcDACAAQgA3AwAgAEE4akIANwMAIABBMGpCADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkBigGLAYwBjQGOAY8BkAGRAZIBkwGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAG1AbYBtwHLAcoBuAHJAbkByAG6AbsBvAG9Ab4BvwHAAcEBwgHDAcQBxQHGAQDcAQtBACEQDMYBC0EOIRAMxQELQQ0hEAzEAQtBDyEQDMMBC0EQIRAMwgELQRMhEAzBAQtBFCEQDMABC0EVIRAMvwELQRYhEAy+AQtBFyEQDL0BC0EYIRAMvAELQRkhEAy7AQtBGiEQDLoBC0EbIRAMuQELQRwhEAy4AQtBCCEQDLcBC0EdIRAMtgELQSAhEAy1AQtBHyEQDLQBC0EHIRAMswELQSEhEAyyAQtBIiEQDLEBC0EeIRAMsAELQSMhEAyvAQtBEiEQDK4BC0ERIRAMrQELQSQhEAysAQtBJSEQDKsBC0EmIRAMqgELQSchEAypAQtBwwEhEAyoAQtBKSEQDKcBC0ErIRAMpgELQSwhEAylAQtBLSEQDKQBC0EuIRAMowELQS8hEAyiAQtBxAEhEAyhAQtBMCEQDKABC0E0IRAMnwELQQwhEAyeAQtBMSEQDJ0BC0EyIRAMnAELQTMhEAybAQtBOSEQDJoBC0E1IRAMmQELQcUBIRAMmAELQQshEAyXAQtBOiEQDJYBC0E2IRAMlQELQQohEAyUAQtBNyEQDJMBC0E4IRAMkgELQTwhEAyRAQtBOyEQDJABC0E9IRAMjwELQQkhEAyOAQtBKCEQDI0BC0E+IRAMjAELQT8hEAyLAQtBwAAhEAyKAQtBwQAhEAyJAQtBwgAhEAyIAQtBwwAhEAyHAQtBxAAhEAyGAQtBxQAhEAyFAQtBxgAhEAyEAQtBKiEQDIMBC0HHACEQDIIBC0HIACEQDIEBC0HJACEQDIABC0HKACEQDH8LQcsAIRAMfgtBzQAhEAx9C0HMACEQDHwLQc4AIRAMewtBzwAhEAx6C0HQACEQDHkLQdEAIRAMeAtB0gAhEAx3C0HTACEQDHYLQdQAIRAMdQtB1gAhEAx0C0HVACEQDHMLQQYhEAxyC0HXACEQDHELQQUhEAxwC0HYACEQDG8LQQQhEAxuC0HZACEQDG0LQdoAIRAMbAtB2wAhEAxrC0HcACEQDGoLQQMhEAxpC0HdACEQDGgLQd4AIRAMZwtB3wAhEAxmC0HhACEQDGULQeAAIRAMZAtB4gAhEAxjC0HjACEQDGILQQIhEAxhC0HkACEQDGALQeUAIRAMXwtB5gAhEAxeC0HnACEQDF0LQegAIRAMXAtB6QAhEAxbC0HqACEQDFoLQesAIRAMWQtB7AAhEAxYC0HtACEQDFcLQe4AIRAMVgtB7wAhEAxVC0HwACEQDFQLQfEAIRAMUwtB8gAhEAxSC0HzACEQDFELQfQAIRAMUAtB9QAhEAxPC0H2ACEQDE4LQfcAIRAMTQtB+AAhEAxMC0H5ACEQDEsLQfoAIRAMSgtB+wAhEAxJC0H8ACEQDEgLQf0AIRAMRwtB/gAhEAxGC0H/ACEQDEULQYABIRAMRAtBgQEhEAxDC0GCASEQDEILQYMBIRAMQQtBhAEhEAxAC0GFASEQDD8LQYYBIRAMPgtBhwEhEAw9C0GIASEQDDwLQYkBIRAMOwtBigEhEAw6C0GLASEQDDkLQYwBIRAMOAtBjQEhEAw3C0GOASEQDDYLQY8BIRAMNQtBkAEhEAw0C0GRASEQDDMLQZIBIRAMMgtBkwEhEAwxC0GUASEQDDALQZUBIRAMLwtBlgEhEAwuC0GXASEQDC0LQZgBIRAMLAtBmQEhEAwrC0GaASEQDCoLQZsBIRAMKQtBnAEhEAwoC0GdASEQDCcLQZ4BIRAMJgtBnwEhEAwlC0GgASEQDCQLQaEBIRAMIwtBogEhEAwiC0GjASEQDCELQaQBIRAMIAtBpQEhEAwfC0GmASEQDB4LQacBIRAMHQtBqAEhEAwcC0GpASEQDBsLQaoBIRAMGgtBqwEhEAwZC0GsASEQDBgLQa0BIRAMFwtBrgEhEAwWC0EBIRAMFQtBrwEhEAwUC0GwASEQDBMLQbEBIRAMEgtBswEhEAwRC0GyASEQDBALQbQBIRAMDwtBtQEhEAwOC0G2ASEQDA0LQbcBIRAMDAtBuAEhEAwLC0G5ASEQDAoLQboBIRAMCQtBuwEhEAwIC0HGASEQDAcLQbwBIRAMBgtBvQEhEAwFC0G+ASEQDAQLQb8BIRAMAwtBwAEhEAwCC0HCASEQDAELQcEBIRALA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAQDscBAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxweHyAhIyUoP0BBREVGR0hJSktMTU9QUVJT3gNXWVtcXWBiZWZnaGlqa2xtb3BxcnN0dXZ3eHl6e3x9foABggGFAYYBhwGJAYsBjAGNAY4BjwGQAZEBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBuAG5AboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBxwHIAckBygHLAcwBzQHOAc8B0AHRAdIB0wHUAdUB1gHXAdgB2QHaAdsB3AHdAd4B4AHhAeIB4wHkAeUB5gHnAegB6QHqAesB7AHtAe4B7wHwAfEB8gHzAZkCpAKwAv4C/gILIAEiBCACRw3zAUHdASEQDP8DCyABIhAgAkcN3QFBwwEhEAz+AwsgASIBIAJHDZABQfcAIRAM/QMLIAEiASACRw2GAUHvACEQDPwDCyABIgEgAkcNf0HqACEQDPsDCyABIgEgAkcNe0HoACEQDPoDCyABIgEgAkcNeEHmACEQDPkDCyABIgEgAkcNGkEYIRAM+AMLIAEiASACRw0UQRIhEAz3AwsgASIBIAJHDVlBxQAhEAz2AwsgASIBIAJHDUpBPyEQDPUDCyABIgEgAkcNSEE8IRAM9AMLIAEiASACRw1BQTEhEAzzAwsgAC0ALkEBRg3rAwyHAgsgACABIgEgAhDAgICAAEEBRw3mASAAQgA3AyAM5wELIAAgASIBIAIQtICAgAAiEA3nASABIQEM9QILAkAgASIBIAJHDQBBBiEQDPADCyAAIAFBAWoiASACELuAgIAAIhAN6AEgASEBDDELIABCADcDIEESIRAM1QMLIAEiECACRw0rQR0hEAztAwsCQCABIgEgAkYNACABQQFqIQFBECEQDNQDC0EHIRAM7AMLIABCACAAKQMgIhEgAiABIhBrrSISfSITIBMgEVYbNwMgIBEgElYiFEUN5QFBCCEQDOsDCwJAIAEiASACRg0AIABBiYCAgAA2AgggACABNgIEIAEhAUEUIRAM0gMLQQkhEAzqAwsgASEBIAApAyBQDeQBIAEhAQzyAgsCQCABIgEgAkcNAEELIRAM6QMLIAAgAUEBaiIBIAIQtoCAgAAiEA3lASABIQEM8gILIAAgASIBIAIQuICAgAAiEA3lASABIQEM8gILIAAgASIBIAIQuICAgAAiEA3mASABIQEMDQsgACABIgEgAhC6gICAACIQDecBIAEhAQzwAgsCQCABIgEgAkcNAEEPIRAM5QMLIAEtAAAiEEE7Rg0IIBBBDUcN6AEgAUEBaiEBDO8CCyAAIAEiASACELqAgIAAIhAN6AEgASEBDPICCwNAAkAgAS0AAEHwtYCAAGotAAAiEEEBRg0AIBBBAkcN6wEgACgCBCEQIABBADYCBCAAIBAgAUEBaiIBELmAgIAAIhAN6gEgASEBDPQCCyABQQFqIgEgAkcNAAtBEiEQDOIDCyAAIAEiASACELqAgIAAIhAN6QEgASEBDAoLIAEiASACRw0GQRshEAzgAwsCQCABIgEgAkcNAEEWIRAM4AMLIABBioCAgAA2AgggACABNgIEIAAgASACELiAgIAAIhAN6gEgASEBQSAhEAzGAwsCQCABIgEgAkYNAANAAkAgAS0AAEHwt4CAAGotAAAiEEECRg0AAkAgEEF/ag4E5QHsAQDrAewBCyABQQFqIQFBCCEQDMgDCyABQQFqIgEgAkcNAAtBFSEQDN8DC0EVIRAM3gMLA0ACQCABLQAAQfC5gIAAai0AACIQQQJGDQAgEEF/ag4E3gHsAeAB6wHsAQsgAUEBaiIBIAJHDQALQRghEAzdAwsCQCABIgEgAkYNACAAQYuAgIAANgIIIAAgATYCBCABIQFBByEQDMQDC0EZIRAM3AMLIAFBAWohAQwCCwJAIAEiFCACRw0AQRohEAzbAwsgFCEBAkAgFC0AAEFzag4U3QLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gIA7gILQQAhECAAQQA2AhwgAEGvi4CAADYCECAAQQI2AgwgACAUQQFqNgIUDNoDCwJAIAEtAAAiEEE7Rg0AIBBBDUcN6AEgAUEBaiEBDOUCCyABQQFqIQELQSIhEAy/AwsCQCABIhAgAkcNAEEcIRAM2AMLQgAhESAQIQEgEC0AAEFQag435wHmAQECAwQFBgcIAAAAAAAAAAkKCwwNDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADxAREhMUAAtBHiEQDL0DC0ICIREM5QELQgMhEQzkAQtCBCERDOMBC0IFIREM4gELQgYhEQzhAQtCByERDOABC0IIIREM3wELQgkhEQzeAQtCCiERDN0BC0ILIREM3AELQgwhEQzbAQtCDSERDNoBC0IOIREM2QELQg8hEQzYAQtCCiERDNcBC0ILIREM1gELQgwhEQzVAQtCDSERDNQBC0IOIREM0wELQg8hEQzSAQtCACERAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAQLQAAQVBqDjflAeQBAAECAwQFBgfmAeYB5gHmAeYB5gHmAQgJCgsMDeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gEODxAREhPmAQtCAiERDOQBC0IDIREM4wELQgQhEQziAQtCBSERDOEBC0IGIREM4AELQgchEQzfAQtCCCERDN4BC0IJIREM3QELQgohEQzcAQtCCyERDNsBC0IMIREM2gELQg0hEQzZAQtCDiERDNgBC0IPIREM1wELQgohEQzWAQtCCyERDNUBC0IMIREM1AELQg0hEQzTAQtCDiERDNIBC0IPIREM0QELIABCACAAKQMgIhEgAiABIhBrrSISfSITIBMgEVYbNwMgIBEgElYiFEUN0gFBHyEQDMADCwJAIAEiASACRg0AIABBiYCAgAA2AgggACABNgIEIAEhAUEkIRAMpwMLQSAhEAy/AwsgACABIhAgAhC+gICAAEF/ag4FtgEAxQIB0QHSAQtBESEQDKQDCyAAQQE6AC8gECEBDLsDCyABIgEgAkcN0gFBJCEQDLsDCyABIg0gAkcNHkHGACEQDLoDCyAAIAEiASACELKAgIAAIhAN1AEgASEBDLUBCyABIhAgAkcNJkHQACEQDLgDCwJAIAEiASACRw0AQSghEAy4AwsgAEEANgIEIABBjICAgAA2AgggACABIAEQsYCAgAAiEA3TASABIQEM2AELAkAgASIQIAJHDQBBKSEQDLcDCyAQLQAAIgFBIEYNFCABQQlHDdMBIBBBAWohAQwVCwJAIAEiASACRg0AIAFBAWohAQwXC0EqIRAMtQMLAkAgASIQIAJHDQBBKyEQDLUDCwJAIBAtAAAiAUEJRg0AIAFBIEcN1QELIAAtACxBCEYN0wEgECEBDJEDCwJAIAEiASACRw0AQSwhEAy0AwsgAS0AAEEKRw3VASABQQFqIQEMyQILIAEiDiACRw3VAUEvIRAMsgMLA0ACQCABLQAAIhBBIEYNAAJAIBBBdmoOBADcAdwBANoBCyABIQEM4AELIAFBAWoiASACRw0AC0ExIRAMsQMLQTIhECABIhQgAkYNsAMgAiAUayAAKAIAIgFqIRUgFCABa0EDaiEWAkADQCAULQAAIhdBIHIgFyAXQb9/akH/AXFBGkkbQf8BcSABQfC7gIAAai0AAEcNAQJAIAFBA0cNAEEGIQEMlgMLIAFBAWohASAUQQFqIhQgAkcNAAsgACAVNgIADLEDCyAAQQA2AgAgFCEBDNkBC0EzIRAgASIUIAJGDa8DIAIgFGsgACgCACIBaiEVIBQgAWtBCGohFgJAA0AgFC0AACIXQSByIBcgF0G/f2pB/wFxQRpJG0H/AXEgAUH0u4CAAGotAABHDQECQCABQQhHDQBBBSEBDJUDCyABQQFqIQEgFEEBaiIUIAJHDQALIAAgFTYCAAywAwsgAEEANgIAIBQhAQzYAQtBNCEQIAEiFCACRg2uAyACIBRrIAAoAgAiAWohFSAUIAFrQQVqIRYCQANAIBQtAAAiF0EgciAXIBdBv39qQf8BcUEaSRtB/wFxIAFB0MKAgABqLQAARw0BAkAgAUEFRw0AQQchAQyUAwsgAUEBaiEBIBRBAWoiFCACRw0ACyAAIBU2AgAMrwMLIABBADYCACAUIQEM1wELAkAgASIBIAJGDQADQAJAIAEtAABBgL6AgABqLQAAIhBBAUYNACAQQQJGDQogASEBDN0BCyABQQFqIgEgAkcNAAtBMCEQDK4DC0EwIRAMrQMLAkAgASIBIAJGDQADQAJAIAEtAAAiEEEgRg0AIBBBdmoOBNkB2gHaAdkB2gELIAFBAWoiASACRw0AC0E4IRAMrQMLQTghEAysAwsDQAJAIAEtAAAiEEEgRg0AIBBBCUcNAwsgAUEBaiIBIAJHDQALQTwhEAyrAwsDQAJAIAEtAAAiEEEgRg0AAkACQCAQQXZqDgTaAQEB2gEACyAQQSxGDdsBCyABIQEMBAsgAUEBaiIBIAJHDQALQT8hEAyqAwsgASEBDNsBC0HAACEQIAEiFCACRg2oAyACIBRrIAAoAgAiAWohFiAUIAFrQQZqIRcCQANAIBQtAABBIHIgAUGAwICAAGotAABHDQEgAUEGRg2OAyABQQFqIQEgFEEBaiIUIAJHDQALIAAgFjYCAAypAwsgAEEANgIAIBQhAQtBNiEQDI4DCwJAIAEiDyACRw0AQcEAIRAMpwMLIABBjICAgAA2AgggACAPNgIEIA8hASAALQAsQX9qDgTNAdUB1wHZAYcDCyABQQFqIQEMzAELAkAgASIBIAJGDQADQAJAIAEtAAAiEEEgciAQIBBBv39qQf8BcUEaSRtB/wFxIhBBCUYNACAQQSBGDQACQAJAAkACQCAQQZ1/ag4TAAMDAwMDAwMBAwMDAwMDAwMDAgMLIAFBAWohAUExIRAMkQMLIAFBAWohAUEyIRAMkAMLIAFBAWohAUEzIRAMjwMLIAEhAQzQAQsgAUEBaiIBIAJHDQALQTUhEAylAwtBNSEQDKQDCwJAIAEiASACRg0AA0ACQCABLQAAQYC8gIAAai0AAEEBRg0AIAEhAQzTAQsgAUEBaiIBIAJHDQALQT0hEAykAwtBPSEQDKMDCyAAIAEiASACELCAgIAAIhAN1gEgASEBDAELIBBBAWohAQtBPCEQDIcDCwJAIAEiASACRw0AQcIAIRAMoAMLAkADQAJAIAEtAABBd2oOGAAC/gL+AoQD/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4CAP4CCyABQQFqIgEgAkcNAAtBwgAhEAygAwsgAUEBaiEBIAAtAC1BAXFFDb0BIAEhAQtBLCEQDIUDCyABIgEgAkcN0wFBxAAhEAydAwsDQAJAIAEtAABBkMCAgABqLQAAQQFGDQAgASEBDLcCCyABQQFqIgEgAkcNAAtBxQAhEAycAwsgDS0AACIQQSBGDbMBIBBBOkcNgQMgACgCBCEBIABBADYCBCAAIAEgDRCvgICAACIBDdABIA1BAWohAQyzAgtBxwAhECABIg0gAkYNmgMgAiANayAAKAIAIgFqIRYgDSABa0EFaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUGQwoCAAGotAABHDYADIAFBBUYN9AIgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMmgMLQcgAIRAgASINIAJGDZkDIAIgDWsgACgCACIBaiEWIA0gAWtBCWohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFBlsKAgABqLQAARw3/AgJAIAFBCUcNAEECIQEM9QILIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJkDCwJAIAEiDSACRw0AQckAIRAMmQMLAkACQCANLQAAIgFBIHIgASABQb9/akH/AXFBGkkbQf8BcUGSf2oOBwCAA4ADgAOAA4ADAYADCyANQQFqIQFBPiEQDIADCyANQQFqIQFBPyEQDP8CC0HKACEQIAEiDSACRg2XAyACIA1rIAAoAgAiAWohFiANIAFrQQFqIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQaDCgIAAai0AAEcN/QIgAUEBRg3wAiABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyXAwtBywAhECABIg0gAkYNlgMgAiANayAAKAIAIgFqIRYgDSABa0EOaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUGiwoCAAGotAABHDfwCIAFBDkYN8AIgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMlgMLQcwAIRAgASINIAJGDZUDIAIgDWsgACgCACIBaiEWIA0gAWtBD2ohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFBwMKAgABqLQAARw37AgJAIAFBD0cNAEEDIQEM8QILIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJUDC0HNACEQIAEiDSACRg2UAyACIA1rIAAoAgAiAWohFiANIAFrQQVqIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQdDCgIAAai0AAEcN+gICQCABQQVHDQBBBCEBDPACCyABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyUAwsCQCABIg0gAkcNAEHOACEQDJQDCwJAAkACQAJAIA0tAAAiAUEgciABIAFBv39qQf8BcUEaSRtB/wFxQZ1/ag4TAP0C/QL9Av0C/QL9Av0C/QL9Av0C/QL9AgH9Av0C/QICA/0CCyANQQFqIQFBwQAhEAz9AgsgDUEBaiEBQcIAIRAM/AILIA1BAWohAUHDACEQDPsCCyANQQFqIQFBxAAhEAz6AgsCQCABIgEgAkYNACAAQY2AgIAANgIIIAAgATYCBCABIQFBxQAhEAz6AgtBzwAhEAySAwsgECEBAkACQCAQLQAAQXZqDgQBqAKoAgCoAgsgEEEBaiEBC0EnIRAM+AILAkAgASIBIAJHDQBB0QAhEAyRAwsCQCABLQAAQSBGDQAgASEBDI0BCyABQQFqIQEgAC0ALUEBcUUNxwEgASEBDIwBCyABIhcgAkcNyAFB0gAhEAyPAwtB0wAhECABIhQgAkYNjgMgAiAUayAAKAIAIgFqIRYgFCABa0EBaiEXA0AgFC0AACABQdbCgIAAai0AAEcNzAEgAUEBRg3HASABQQFqIQEgFEEBaiIUIAJHDQALIAAgFjYCAAyOAwsCQCABIgEgAkcNAEHVACEQDI4DCyABLQAAQQpHDcwBIAFBAWohAQzHAQsCQCABIgEgAkcNAEHWACEQDI0DCwJAAkAgAS0AAEF2ag4EAM0BzQEBzQELIAFBAWohAQzHAQsgAUEBaiEBQcoAIRAM8wILIAAgASIBIAIQroCAgAAiEA3LASABIQFBzQAhEAzyAgsgAC0AKUEiRg2FAwymAgsCQCABIgEgAkcNAEHbACEQDIoDC0EAIRRBASEXQQEhFkEAIRACQAJAAkACQAJAAkACQAJAAkAgAS0AAEFQag4K1AHTAQABAgMEBQYI1QELQQIhEAwGC0EDIRAMBQtBBCEQDAQLQQUhEAwDC0EGIRAMAgtBByEQDAELQQghEAtBACEXQQAhFkEAIRQMzAELQQkhEEEBIRRBACEXQQAhFgzLAQsCQCABIgEgAkcNAEHdACEQDIkDCyABLQAAQS5HDcwBIAFBAWohAQymAgsgASIBIAJHDcwBQd8AIRAMhwMLAkAgASIBIAJGDQAgAEGOgICAADYCCCAAIAE2AgQgASEBQdAAIRAM7gILQeAAIRAMhgMLQeEAIRAgASIBIAJGDYUDIAIgAWsgACgCACIUaiEWIAEgFGtBA2ohFwNAIAEtAAAgFEHiwoCAAGotAABHDc0BIBRBA0YNzAEgFEEBaiEUIAFBAWoiASACRw0ACyAAIBY2AgAMhQMLQeIAIRAgASIBIAJGDYQDIAIgAWsgACgCACIUaiEWIAEgFGtBAmohFwNAIAEtAAAgFEHmwoCAAGotAABHDcwBIBRBAkYNzgEgFEEBaiEUIAFBAWoiASACRw0ACyAAIBY2AgAMhAMLQeMAIRAgASIBIAJGDYMDIAIgAWsgACgCACIUaiEWIAEgFGtBA2ohFwNAIAEtAAAgFEHpwoCAAGotAABHDcsBIBRBA0YNzgEgFEEBaiEUIAFBAWoiASACRw0ACyAAIBY2AgAMgwMLAkAgASIBIAJHDQBB5QAhEAyDAwsgACABQQFqIgEgAhCogICAACIQDc0BIAEhAUHWACEQDOkCCwJAIAEiASACRg0AA0ACQCABLQAAIhBBIEYNAAJAAkACQCAQQbh/ag4LAAHPAc8BzwHPAc8BzwHPAc8BAs8BCyABQQFqIQFB0gAhEAztAgsgAUEBaiEBQdMAIRAM7AILIAFBAWohAUHUACEQDOsCCyABQQFqIgEgAkcNAAtB5AAhEAyCAwtB5AAhEAyBAwsDQAJAIAEtAABB8MKAgABqLQAAIhBBAUYNACAQQX5qDgPPAdAB0QHSAQsgAUEBaiIBIAJHDQALQeYAIRAMgAMLAkAgASIBIAJGDQAgAUEBaiEBDAMLQecAIRAM/wILA0ACQCABLQAAQfDEgIAAai0AACIQQQFGDQACQCAQQX5qDgTSAdMB1AEA1QELIAEhAUHXACEQDOcCCyABQQFqIgEgAkcNAAtB6AAhEAz+AgsCQCABIgEgAkcNAEHpACEQDP4CCwJAIAEtAAAiEEF2ag4augHVAdUBvAHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHKAdUB1QEA0wELIAFBAWohAQtBBiEQDOMCCwNAAkAgAS0AAEHwxoCAAGotAABBAUYNACABIQEMngILIAFBAWoiASACRw0AC0HqACEQDPsCCwJAIAEiASACRg0AIAFBAWohAQwDC0HrACEQDPoCCwJAIAEiASACRw0AQewAIRAM+gILIAFBAWohAQwBCwJAIAEiASACRw0AQe0AIRAM+QILIAFBAWohAQtBBCEQDN4CCwJAIAEiFCACRw0AQe4AIRAM9wILIBQhAQJAAkACQCAULQAAQfDIgIAAai0AAEF/ag4H1AHVAdYBAJwCAQLXAQsgFEEBaiEBDAoLIBRBAWohAQzNAQtBACEQIABBADYCHCAAQZuSgIAANgIQIABBBzYCDCAAIBRBAWo2AhQM9gILAkADQAJAIAEtAABB8MiAgABqLQAAIhBBBEYNAAJAAkAgEEF/ag4H0gHTAdQB2QEABAHZAQsgASEBQdoAIRAM4AILIAFBAWohAUHcACEQDN8CCyABQQFqIgEgAkcNAAtB7wAhEAz2AgsgAUEBaiEBDMsBCwJAIAEiFCACRw0AQfAAIRAM9QILIBQtAABBL0cN1AEgFEEBaiEBDAYLAkAgASIUIAJHDQBB8QAhEAz0AgsCQCAULQAAIgFBL0cNACAUQQFqIQFB3QAhEAzbAgsgAUF2aiIEQRZLDdMBQQEgBHRBiYCAAnFFDdMBDMoCCwJAIAEiASACRg0AIAFBAWohAUHeACEQDNoCC0HyACEQDPICCwJAIAEiFCACRw0AQfQAIRAM8gILIBQhAQJAIBQtAABB8MyAgABqLQAAQX9qDgPJApQCANQBC0HhACEQDNgCCwJAIAEiFCACRg0AA0ACQCAULQAAQfDKgIAAai0AACIBQQNGDQACQCABQX9qDgLLAgDVAQsgFCEBQd8AIRAM2gILIBRBAWoiFCACRw0AC0HzACEQDPECC0HzACEQDPACCwJAIAEiASACRg0AIABBj4CAgAA2AgggACABNgIEIAEhAUHgACEQDNcCC0H1ACEQDO8CCwJAIAEiASACRw0AQfYAIRAM7wILIABBj4CAgAA2AgggACABNgIEIAEhAQtBAyEQDNQCCwNAIAEtAABBIEcNwwIgAUEBaiIBIAJHDQALQfcAIRAM7AILAkAgASIBIAJHDQBB+AAhEAzsAgsgAS0AAEEgRw3OASABQQFqIQEM7wELIAAgASIBIAIQrICAgAAiEA3OASABIQEMjgILAkAgASIEIAJHDQBB+gAhEAzqAgsgBC0AAEHMAEcN0QEgBEEBaiEBQRMhEAzPAQsCQCABIgQgAkcNAEH7ACEQDOkCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRADQCAELQAAIAFB8M6AgABqLQAARw3QASABQQVGDc4BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQfsAIRAM6AILAkAgASIEIAJHDQBB/AAhEAzoAgsCQAJAIAQtAABBvX9qDgwA0QHRAdEB0QHRAdEB0QHRAdEB0QEB0QELIARBAWohAUHmACEQDM8CCyAEQQFqIQFB5wAhEAzOAgsCQCABIgQgAkcNAEH9ACEQDOcCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDc8BIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEH9ACEQDOcCCyAAQQA2AgAgEEEBaiEBQRAhEAzMAQsCQCABIgQgAkcNAEH+ACEQDOYCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUH2zoCAAGotAABHDc4BIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEH+ACEQDOYCCyAAQQA2AgAgEEEBaiEBQRYhEAzLAQsCQCABIgQgAkcNAEH/ACEQDOUCCyACIARrIAAoAgAiAWohFCAEIAFrQQNqIRACQANAIAQtAAAgAUH8zoCAAGotAABHDc0BIAFBA0YNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEH/ACEQDOUCCyAAQQA2AgAgEEEBaiEBQQUhEAzKAQsCQCABIgQgAkcNAEGAASEQDOQCCyAELQAAQdkARw3LASAEQQFqIQFBCCEQDMkBCwJAIAEiBCACRw0AQYEBIRAM4wILAkACQCAELQAAQbJ/ag4DAMwBAcwBCyAEQQFqIQFB6wAhEAzKAgsgBEEBaiEBQewAIRAMyQILAkAgASIEIAJHDQBBggEhEAziAgsCQAJAIAQtAABBuH9qDggAywHLAcsBywHLAcsBAcsBCyAEQQFqIQFB6gAhEAzJAgsgBEEBaiEBQe0AIRAMyAILAkAgASIEIAJHDQBBgwEhEAzhAgsgAiAEayAAKAIAIgFqIRAgBCABa0ECaiEUAkADQCAELQAAIAFBgM+AgABqLQAARw3JASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBA2AgBBgwEhEAzhAgtBACEQIABBADYCACAUQQFqIQEMxgELAkAgASIEIAJHDQBBhAEhEAzgAgsgAiAEayAAKAIAIgFqIRQgBCABa0EEaiEQAkADQCAELQAAIAFBg8+AgABqLQAARw3IASABQQRGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBhAEhEAzgAgsgAEEANgIAIBBBAWohAUEjIRAMxQELAkAgASIEIAJHDQBBhQEhEAzfAgsCQAJAIAQtAABBtH9qDggAyAHIAcgByAHIAcgBAcgBCyAEQQFqIQFB7wAhEAzGAgsgBEEBaiEBQfAAIRAMxQILAkAgASIEIAJHDQBBhgEhEAzeAgsgBC0AAEHFAEcNxQEgBEEBaiEBDIMCCwJAIAEiBCACRw0AQYcBIRAM3QILIAIgBGsgACgCACIBaiEUIAQgAWtBA2ohEAJAA0AgBC0AACABQYjPgIAAai0AAEcNxQEgAUEDRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYcBIRAM3QILIABBADYCACAQQQFqIQFBLSEQDMIBCwJAIAEiBCACRw0AQYgBIRAM3AILIAIgBGsgACgCACIBaiEUIAQgAWtBCGohEAJAA0AgBC0AACABQdDPgIAAai0AAEcNxAEgAUEIRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYgBIRAM3AILIABBADYCACAQQQFqIQFBKSEQDMEBCwJAIAEiASACRw0AQYkBIRAM2wILQQEhECABLQAAQd8ARw3AASABQQFqIQEMgQILAkAgASIEIAJHDQBBigEhEAzaAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQA0AgBC0AACABQYzPgIAAai0AAEcNwQEgAUEBRg2vAiABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGKASEQDNkCCwJAIAEiBCACRw0AQYsBIRAM2QILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQY7PgIAAai0AAEcNwQEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYsBIRAM2QILIABBADYCACAQQQFqIQFBAiEQDL4BCwJAIAEiBCACRw0AQYwBIRAM2AILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfDPgIAAai0AAEcNwAEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYwBIRAM2AILIABBADYCACAQQQFqIQFBHyEQDL0BCwJAIAEiBCACRw0AQY0BIRAM1wILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfLPgIAAai0AAEcNvwEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQY0BIRAM1wILIABBADYCACAQQQFqIQFBCSEQDLwBCwJAIAEiBCACRw0AQY4BIRAM1gILAkACQCAELQAAQbd/ag4HAL8BvwG/Ab8BvwEBvwELIARBAWohAUH4ACEQDL0CCyAEQQFqIQFB+QAhEAy8AgsCQCABIgQgAkcNAEGPASEQDNUCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUGRz4CAAGotAABHDb0BIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGPASEQDNUCCyAAQQA2AgAgEEEBaiEBQRghEAy6AQsCQCABIgQgAkcNAEGQASEQDNQCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUGXz4CAAGotAABHDbwBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGQASEQDNQCCyAAQQA2AgAgEEEBaiEBQRchEAy5AQsCQCABIgQgAkcNAEGRASEQDNMCCyACIARrIAAoAgAiAWohFCAEIAFrQQZqIRACQANAIAQtAAAgAUGaz4CAAGotAABHDbsBIAFBBkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGRASEQDNMCCyAAQQA2AgAgEEEBaiEBQRUhEAy4AQsCQCABIgQgAkcNAEGSASEQDNICCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUGhz4CAAGotAABHDboBIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGSASEQDNICCyAAQQA2AgAgEEEBaiEBQR4hEAy3AQsCQCABIgQgAkcNAEGTASEQDNECCyAELQAAQcwARw24ASAEQQFqIQFBCiEQDLYBCwJAIAQgAkcNAEGUASEQDNACCwJAAkAgBC0AAEG/f2oODwC5AbkBuQG5AbkBuQG5AbkBuQG5AbkBuQG5AQG5AQsgBEEBaiEBQf4AIRAMtwILIARBAWohAUH/ACEQDLYCCwJAIAQgAkcNAEGVASEQDM8CCwJAAkAgBC0AAEG/f2oOAwC4AQG4AQsgBEEBaiEBQf0AIRAMtgILIARBAWohBEGAASEQDLUCCwJAIAQgAkcNAEGWASEQDM4CCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUGnz4CAAGotAABHDbYBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGWASEQDM4CCyAAQQA2AgAgEEEBaiEBQQshEAyzAQsCQCAEIAJHDQBBlwEhEAzNAgsCQAJAAkACQCAELQAAQVNqDiMAuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AQG4AbgBuAG4AbgBArgBuAG4AQO4AQsgBEEBaiEBQfsAIRAMtgILIARBAWohAUH8ACEQDLUCCyAEQQFqIQRBgQEhEAy0AgsgBEEBaiEEQYIBIRAMswILAkAgBCACRw0AQZgBIRAMzAILIAIgBGsgACgCACIBaiEUIAQgAWtBBGohEAJAA0AgBC0AACABQanPgIAAai0AAEcNtAEgAUEERg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZgBIRAMzAILIABBADYCACAQQQFqIQFBGSEQDLEBCwJAIAQgAkcNAEGZASEQDMsCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUGuz4CAAGotAABHDbMBIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGZASEQDMsCCyAAQQA2AgAgEEEBaiEBQQYhEAywAQsCQCAEIAJHDQBBmgEhEAzKAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBtM+AgABqLQAARw2yASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBmgEhEAzKAgsgAEEANgIAIBBBAWohAUEcIRAMrwELAkAgBCACRw0AQZsBIRAMyQILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQbbPgIAAai0AAEcNsQEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZsBIRAMyQILIABBADYCACAQQQFqIQFBJyEQDK4BCwJAIAQgAkcNAEGcASEQDMgCCwJAAkAgBC0AAEGsf2oOAgABsQELIARBAWohBEGGASEQDK8CCyAEQQFqIQRBhwEhEAyuAgsCQCAEIAJHDQBBnQEhEAzHAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBuM+AgABqLQAARw2vASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBnQEhEAzHAgsgAEEANgIAIBBBAWohAUEmIRAMrAELAkAgBCACRw0AQZ4BIRAMxgILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQbrPgIAAai0AAEcNrgEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZ4BIRAMxgILIABBADYCACAQQQFqIQFBAyEQDKsBCwJAIAQgAkcNAEGfASEQDMUCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDa0BIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGfASEQDMUCCyAAQQA2AgAgEEEBaiEBQQwhEAyqAQsCQCAEIAJHDQBBoAEhEAzEAgsgAiAEayAAKAIAIgFqIRQgBCABa0EDaiEQAkADQCAELQAAIAFBvM+AgABqLQAARw2sASABQQNGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBoAEhEAzEAgsgAEEANgIAIBBBAWohAUENIRAMqQELAkAgBCACRw0AQaEBIRAMwwILAkACQCAELQAAQbp/ag4LAKwBrAGsAawBrAGsAawBrAGsAQGsAQsgBEEBaiEEQYsBIRAMqgILIARBAWohBEGMASEQDKkCCwJAIAQgAkcNAEGiASEQDMICCyAELQAAQdAARw2pASAEQQFqIQQM6QELAkAgBCACRw0AQaMBIRAMwQILAkACQCAELQAAQbd/ag4HAaoBqgGqAaoBqgEAqgELIARBAWohBEGOASEQDKgCCyAEQQFqIQFBIiEQDKYBCwJAIAQgAkcNAEGkASEQDMACCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUHAz4CAAGotAABHDagBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGkASEQDMACCyAAQQA2AgAgEEEBaiEBQR0hEAylAQsCQCAEIAJHDQBBpQEhEAy/AgsCQAJAIAQtAABBrn9qDgMAqAEBqAELIARBAWohBEGQASEQDKYCCyAEQQFqIQFBBCEQDKQBCwJAIAQgAkcNAEGmASEQDL4CCwJAAkACQAJAAkAgBC0AAEG/f2oOFQCqAaoBqgGqAaoBqgGqAaoBqgGqAQGqAaoBAqoBqgEDqgGqAQSqAQsgBEEBaiEEQYgBIRAMqAILIARBAWohBEGJASEQDKcCCyAEQQFqIQRBigEhEAymAgsgBEEBaiEEQY8BIRAMpQILIARBAWohBEGRASEQDKQCCwJAIAQgAkcNAEGnASEQDL0CCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDaUBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGnASEQDL0CCyAAQQA2AgAgEEEBaiEBQREhEAyiAQsCQCAEIAJHDQBBqAEhEAy8AgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFBws+AgABqLQAARw2kASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBqAEhEAy8AgsgAEEANgIAIBBBAWohAUEsIRAMoQELAkAgBCACRw0AQakBIRAMuwILIAIgBGsgACgCACIBaiEUIAQgAWtBBGohEAJAA0AgBC0AACABQcXPgIAAai0AAEcNowEgAUEERg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQakBIRAMuwILIABBADYCACAQQQFqIQFBKyEQDKABCwJAIAQgAkcNAEGqASEQDLoCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHKz4CAAGotAABHDaIBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGqASEQDLoCCyAAQQA2AgAgEEEBaiEBQRQhEAyfAQsCQCAEIAJHDQBBqwEhEAy5AgsCQAJAAkACQCAELQAAQb5/ag4PAAECpAGkAaQBpAGkAaQBpAGkAaQBpAGkAQOkAQsgBEEBaiEEQZMBIRAMogILIARBAWohBEGUASEQDKECCyAEQQFqIQRBlQEhEAygAgsgBEEBaiEEQZYBIRAMnwILAkAgBCACRw0AQawBIRAMuAILIAQtAABBxQBHDZ8BIARBAWohBAzgAQsCQCAEIAJHDQBBrQEhEAy3AgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFBzc+AgABqLQAARw2fASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBrQEhEAy3AgsgAEEANgIAIBBBAWohAUEOIRAMnAELAkAgBCACRw0AQa4BIRAMtgILIAQtAABB0ABHDZ0BIARBAWohAUElIRAMmwELAkAgBCACRw0AQa8BIRAMtQILIAIgBGsgACgCACIBaiEUIAQgAWtBCGohEAJAA0AgBC0AACABQdDPgIAAai0AAEcNnQEgAUEIRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQa8BIRAMtQILIABBADYCACAQQQFqIQFBKiEQDJoBCwJAIAQgAkcNAEGwASEQDLQCCwJAAkAgBC0AAEGrf2oOCwCdAZ0BnQGdAZ0BnQGdAZ0BnQEBnQELIARBAWohBEGaASEQDJsCCyAEQQFqIQRBmwEhEAyaAgsCQCAEIAJHDQBBsQEhEAyzAgsCQAJAIAQtAABBv39qDhQAnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBAZwBCyAEQQFqIQRBmQEhEAyaAgsgBEEBaiEEQZwBIRAMmQILAkAgBCACRw0AQbIBIRAMsgILIAIgBGsgACgCACIBaiEUIAQgAWtBA2ohEAJAA0AgBC0AACABQdnPgIAAai0AAEcNmgEgAUEDRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbIBIRAMsgILIABBADYCACAQQQFqIQFBISEQDJcBCwJAIAQgAkcNAEGzASEQDLECCyACIARrIAAoAgAiAWohFCAEIAFrQQZqIRACQANAIAQtAAAgAUHdz4CAAGotAABHDZkBIAFBBkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGzASEQDLECCyAAQQA2AgAgEEEBaiEBQRohEAyWAQsCQCAEIAJHDQBBtAEhEAywAgsCQAJAAkAgBC0AAEG7f2oOEQCaAZoBmgGaAZoBmgGaAZoBmgEBmgGaAZoBmgGaAQKaAQsgBEEBaiEEQZ0BIRAMmAILIARBAWohBEGeASEQDJcCCyAEQQFqIQRBnwEhEAyWAgsCQCAEIAJHDQBBtQEhEAyvAgsgAiAEayAAKAIAIgFqIRQgBCABa0EFaiEQAkADQCAELQAAIAFB5M+AgABqLQAARw2XASABQQVGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBtQEhEAyvAgsgAEEANgIAIBBBAWohAUEoIRAMlAELAkAgBCACRw0AQbYBIRAMrgILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQerPgIAAai0AAEcNlgEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbYBIRAMrgILIABBADYCACAQQQFqIQFBByEQDJMBCwJAIAQgAkcNAEG3ASEQDK0CCwJAAkAgBC0AAEG7f2oODgCWAZYBlgGWAZYBlgGWAZYBlgGWAZYBlgEBlgELIARBAWohBEGhASEQDJQCCyAEQQFqIQRBogEhEAyTAgsCQCAEIAJHDQBBuAEhEAysAgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFB7c+AgABqLQAARw2UASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBuAEhEAysAgsgAEEANgIAIBBBAWohAUESIRAMkQELAkAgBCACRw0AQbkBIRAMqwILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfDPgIAAai0AAEcNkwEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbkBIRAMqwILIABBADYCACAQQQFqIQFBICEQDJABCwJAIAQgAkcNAEG6ASEQDKoCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUHyz4CAAGotAABHDZIBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG6ASEQDKoCCyAAQQA2AgAgEEEBaiEBQQ8hEAyPAQsCQCAEIAJHDQBBuwEhEAypAgsCQAJAIAQtAABBt39qDgcAkgGSAZIBkgGSAQGSAQsgBEEBaiEEQaUBIRAMkAILIARBAWohBEGmASEQDI8CCwJAIAQgAkcNAEG8ASEQDKgCCyACIARrIAAoAgAiAWohFCAEIAFrQQdqIRACQANAIAQtAAAgAUH0z4CAAGotAABHDZABIAFBB0YNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG8ASEQDKgCCyAAQQA2AgAgEEEBaiEBQRshEAyNAQsCQCAEIAJHDQBBvQEhEAynAgsCQAJAAkAgBC0AAEG+f2oOEgCRAZEBkQGRAZEBkQGRAZEBkQEBkQGRAZEBkQGRAZEBApEBCyAEQQFqIQRBpAEhEAyPAgsgBEEBaiEEQacBIRAMjgILIARBAWohBEGoASEQDI0CCwJAIAQgAkcNAEG+ASEQDKYCCyAELQAAQc4ARw2NASAEQQFqIQQMzwELAkAgBCACRw0AQb8BIRAMpQILAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBC0AAEG/f2oOFQABAgOcAQQFBpwBnAGcAQcICQoLnAEMDQ4PnAELIARBAWohAUHoACEQDJoCCyAEQQFqIQFB6QAhEAyZAgsgBEEBaiEBQe4AIRAMmAILIARBAWohAUHyACEQDJcCCyAEQQFqIQFB8wAhEAyWAgsgBEEBaiEBQfYAIRAMlQILIARBAWohAUH3ACEQDJQCCyAEQQFqIQFB+gAhEAyTAgsgBEEBaiEEQYMBIRAMkgILIARBAWohBEGEASEQDJECCyAEQQFqIQRBhQEhEAyQAgsgBEEBaiEEQZIBIRAMjwILIARBAWohBEGYASEQDI4CCyAEQQFqIQRBoAEhEAyNAgsgBEEBaiEEQaMBIRAMjAILIARBAWohBEGqASEQDIsCCwJAIAQgAkYNACAAQZCAgIAANgIIIAAgBDYCBEGrASEQDIsCC0HAASEQDKMCCyAAIAUgAhCqgICAACIBDYsBIAUhAQxcCwJAIAYgAkYNACAGQQFqIQUMjQELQcIBIRAMoQILA0ACQCAQLQAAQXZqDgSMAQAAjwEACyAQQQFqIhAgAkcNAAtBwwEhEAygAgsCQCAHIAJGDQAgAEGRgICAADYCCCAAIAc2AgQgByEBQQEhEAyHAgtBxAEhEAyfAgsCQCAHIAJHDQBBxQEhEAyfAgsCQAJAIActAABBdmoOBAHOAc4BAM4BCyAHQQFqIQYMjQELIAdBAWohBQyJAQsCQCAHIAJHDQBBxgEhEAyeAgsCQAJAIActAABBdmoOFwGPAY8BAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAQCPAQsgB0EBaiEHC0GwASEQDIQCCwJAIAggAkcNAEHIASEQDJ0CCyAILQAAQSBHDY0BIABBADsBMiAIQQFqIQFBswEhEAyDAgsgASEXAkADQCAXIgcgAkYNASAHLQAAQVBqQf8BcSIQQQpPDcwBAkAgAC8BMiIUQZkzSw0AIAAgFEEKbCIUOwEyIBBB//8DcyAUQf7/A3FJDQAgB0EBaiEXIAAgFCAQaiIQOwEyIBBB//8DcUHoB0kNAQsLQQAhECAAQQA2AhwgAEHBiYCAADYCECAAQQ02AgwgACAHQQFqNgIUDJwCC0HHASEQDJsCCyAAIAggAhCugICAACIQRQ3KASAQQRVHDYwBIABByAE2AhwgACAINgIUIABByZeAgAA2AhAgAEEVNgIMQQAhEAyaAgsCQCAJIAJHDQBBzAEhEAyaAgtBACEUQQEhF0EBIRZBACEQAkACQAJAAkACQAJAAkACQAJAIAktAABBUGoOCpYBlQEAAQIDBAUGCJcBC0ECIRAMBgtBAyEQDAULQQQhEAwEC0EFIRAMAwtBBiEQDAILQQchEAwBC0EIIRALQQAhF0EAIRZBACEUDI4BC0EJIRBBASEUQQAhF0EAIRYMjQELAkAgCiACRw0AQc4BIRAMmQILIAotAABBLkcNjgEgCkEBaiEJDMoBCyALIAJHDY4BQdABIRAMlwILAkAgCyACRg0AIABBjoCAgAA2AgggACALNgIEQbcBIRAM/gELQdEBIRAMlgILAkAgBCACRw0AQdIBIRAMlgILIAIgBGsgACgCACIQaiEUIAQgEGtBBGohCwNAIAQtAAAgEEH8z4CAAGotAABHDY4BIBBBBEYN6QEgEEEBaiEQIARBAWoiBCACRw0ACyAAIBQ2AgBB0gEhEAyVAgsgACAMIAIQrICAgAAiAQ2NASAMIQEMuAELAkAgBCACRw0AQdQBIRAMlAILIAIgBGsgACgCACIQaiEUIAQgEGtBAWohDANAIAQtAAAgEEGB0ICAAGotAABHDY8BIBBBAUYNjgEgEEEBaiEQIARBAWoiBCACRw0ACyAAIBQ2AgBB1AEhEAyTAgsCQCAEIAJHDQBB1gEhEAyTAgsgAiAEayAAKAIAIhBqIRQgBCAQa0ECaiELA0AgBC0AACAQQYPQgIAAai0AAEcNjgEgEEECRg2QASAQQQFqIRAgBEEBaiIEIAJHDQALIAAgFDYCAEHWASEQDJICCwJAIAQgAkcNAEHXASEQDJICCwJAAkAgBC0AAEG7f2oOEACPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BAY8BCyAEQQFqIQRBuwEhEAz5AQsgBEEBaiEEQbwBIRAM+AELAkAgBCACRw0AQdgBIRAMkQILIAQtAABByABHDYwBIARBAWohBAzEAQsCQCAEIAJGDQAgAEGQgICAADYCCCAAIAQ2AgRBvgEhEAz3AQtB2QEhEAyPAgsCQCAEIAJHDQBB2gEhEAyPAgsgBC0AAEHIAEYNwwEgAEEBOgAoDLkBCyAAQQI6AC8gACAEIAIQpoCAgAAiEA2NAUHCASEQDPQBCyAALQAoQX9qDgK3AbkBuAELA0ACQCAELQAAQXZqDgQAjgGOAQCOAQsgBEEBaiIEIAJHDQALQd0BIRAMiwILIABBADoALyAALQAtQQRxRQ2EAgsgAEEAOgAvIABBAToANCABIQEMjAELIBBBFUYN2gEgAEEANgIcIAAgATYCFCAAQaeOgIAANgIQIABBEjYCDEEAIRAMiAILAkAgACAQIAIQtICAgAAiBA0AIBAhAQyBAgsCQCAEQRVHDQAgAEEDNgIcIAAgEDYCFCAAQbCYgIAANgIQIABBFTYCDEEAIRAMiAILIABBADYCHCAAIBA2AhQgAEGnjoCAADYCECAAQRI2AgxBACEQDIcCCyAQQRVGDdYBIABBADYCHCAAIAE2AhQgAEHajYCAADYCECAAQRQ2AgxBACEQDIYCCyAAKAIEIRcgAEEANgIEIBAgEadqIhYhASAAIBcgECAWIBQbIhAQtYCAgAAiFEUNjQEgAEEHNgIcIAAgEDYCFCAAIBQ2AgxBACEQDIUCCyAAIAAvATBBgAFyOwEwIAEhAQtBKiEQDOoBCyAQQRVGDdEBIABBADYCHCAAIAE2AhQgAEGDjICAADYCECAAQRM2AgxBACEQDIICCyAQQRVGDc8BIABBADYCHCAAIAE2AhQgAEGaj4CAADYCECAAQSI2AgxBACEQDIECCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQt4CAgAAiEA0AIAFBAWohAQyNAQsgAEEMNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDIACCyAQQRVGDcwBIABBADYCHCAAIAE2AhQgAEGaj4CAADYCECAAQSI2AgxBACEQDP8BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQt4CAgAAiEA0AIAFBAWohAQyMAQsgAEENNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDP4BCyAQQRVGDckBIABBADYCHCAAIAE2AhQgAEHGjICAADYCECAAQSM2AgxBACEQDP0BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQuYCAgAAiEA0AIAFBAWohAQyLAQsgAEEONgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDPwBCyAAQQA2AhwgACABNgIUIABBwJWAgAA2AhAgAEECNgIMQQAhEAz7AQsgEEEVRg3FASAAQQA2AhwgACABNgIUIABBxoyAgAA2AhAgAEEjNgIMQQAhEAz6AQsgAEEQNgIcIAAgATYCFCAAIBA2AgxBACEQDPkBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQuYCAgAAiBA0AIAFBAWohAQzxAQsgAEERNgIcIAAgBDYCDCAAIAFBAWo2AhRBACEQDPgBCyAQQRVGDcEBIABBADYCHCAAIAE2AhQgAEHGjICAADYCECAAQSM2AgxBACEQDPcBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQuYCAgAAiEA0AIAFBAWohAQyIAQsgAEETNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDPYBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQuYCAgAAiBA0AIAFBAWohAQztAQsgAEEUNgIcIAAgBDYCDCAAIAFBAWo2AhRBACEQDPUBCyAQQRVGDb0BIABBADYCHCAAIAE2AhQgAEGaj4CAADYCECAAQSI2AgxBACEQDPQBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQt4CAgAAiEA0AIAFBAWohAQyGAQsgAEEWNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDPMBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQt4CAgAAiBA0AIAFBAWohAQzpAQsgAEEXNgIcIAAgBDYCDCAAIAFBAWo2AhRBACEQDPIBCyAAQQA2AhwgACABNgIUIABBzZOAgAA2AhAgAEEMNgIMQQAhEAzxAQtCASERCyAQQQFqIQECQCAAKQMgIhJC//////////8PVg0AIAAgEkIEhiARhDcDICABIQEMhAELIABBADYCHCAAIAE2AhQgAEGtiYCAADYCECAAQQw2AgxBACEQDO8BCyAAQQA2AhwgACAQNgIUIABBzZOAgAA2AhAgAEEMNgIMQQAhEAzuAQsgACgCBCEXIABBADYCBCAQIBGnaiIWIQEgACAXIBAgFiAUGyIQELWAgIAAIhRFDXMgAEEFNgIcIAAgEDYCFCAAIBQ2AgxBACEQDO0BCyAAQQA2AhwgACAQNgIUIABBqpyAgAA2AhAgAEEPNgIMQQAhEAzsAQsgACAQIAIQtICAgAAiAQ0BIBAhAQtBDiEQDNEBCwJAIAFBFUcNACAAQQI2AhwgACAQNgIUIABBsJiAgAA2AhAgAEEVNgIMQQAhEAzqAQsgAEEANgIcIAAgEDYCFCAAQaeOgIAANgIQIABBEjYCDEEAIRAM6QELIAFBAWohEAJAIAAvATAiAUGAAXFFDQACQCAAIBAgAhC7gICAACIBDQAgECEBDHALIAFBFUcNugEgAEEFNgIcIAAgEDYCFCAAQfmXgIAANgIQIABBFTYCDEEAIRAM6QELAkAgAUGgBHFBoARHDQAgAC0ALUECcQ0AIABBADYCHCAAIBA2AhQgAEGWk4CAADYCECAAQQQ2AgxBACEQDOkBCyAAIBAgAhC9gICAABogECEBAkACQAJAAkACQCAAIBAgAhCzgICAAA4WAgEABAQEBAQEBAQEBAQEBAQEBAQEAwQLIABBAToALgsgACAALwEwQcAAcjsBMCAQIQELQSYhEAzRAQsgAEEjNgIcIAAgEDYCFCAAQaWWgIAANgIQIABBFTYCDEEAIRAM6QELIABBADYCHCAAIBA2AhQgAEHVi4CAADYCECAAQRE2AgxBACEQDOgBCyAALQAtQQFxRQ0BQcMBIRAMzgELAkAgDSACRg0AA0ACQCANLQAAQSBGDQAgDSEBDMQBCyANQQFqIg0gAkcNAAtBJSEQDOcBC0ElIRAM5gELIAAoAgQhBCAAQQA2AgQgACAEIA0Qr4CAgAAiBEUNrQEgAEEmNgIcIAAgBDYCDCAAIA1BAWo2AhRBACEQDOUBCyAQQRVGDasBIABBADYCHCAAIAE2AhQgAEH9jYCAADYCECAAQR02AgxBACEQDOQBCyAAQSc2AhwgACABNgIUIAAgEDYCDEEAIRAM4wELIBAhAUEBIRQCQAJAAkACQAJAAkACQCAALQAsQX5qDgcGBQUDAQIABQsgACAALwEwQQhyOwEwDAMLQQIhFAwBC0EEIRQLIABBAToALCAAIAAvATAgFHI7ATALIBAhAQtBKyEQDMoBCyAAQQA2AhwgACAQNgIUIABBq5KAgAA2AhAgAEELNgIMQQAhEAziAQsgAEEANgIcIAAgATYCFCAAQeGPgIAANgIQIABBCjYCDEEAIRAM4QELIABBADoALCAQIQEMvQELIBAhAUEBIRQCQAJAAkACQAJAIAAtACxBe2oOBAMBAgAFCyAAIAAvATBBCHI7ATAMAwtBAiEUDAELQQQhFAsgAEEBOgAsIAAgAC8BMCAUcjsBMAsgECEBC0EpIRAMxQELIABBADYCHCAAIAE2AhQgAEHwlICAADYCECAAQQM2AgxBACEQDN0BCwJAIA4tAABBDUcNACAAKAIEIQEgAEEANgIEAkAgACABIA4QsYCAgAAiAQ0AIA5BAWohAQx1CyAAQSw2AhwgACABNgIMIAAgDkEBajYCFEEAIRAM3QELIAAtAC1BAXFFDQFBxAEhEAzDAQsCQCAOIAJHDQBBLSEQDNwBCwJAAkADQAJAIA4tAABBdmoOBAIAAAMACyAOQQFqIg4gAkcNAAtBLSEQDN0BCyAAKAIEIQEgAEEANgIEAkAgACABIA4QsYCAgAAiAQ0AIA4hAQx0CyAAQSw2AhwgACAONgIUIAAgATYCDEEAIRAM3AELIAAoAgQhASAAQQA2AgQCQCAAIAEgDhCxgICAACIBDQAgDkEBaiEBDHMLIABBLDYCHCAAIAE2AgwgACAOQQFqNgIUQQAhEAzbAQsgACgCBCEEIABBADYCBCAAIAQgDhCxgICAACIEDaABIA4hAQzOAQsgEEEsRw0BIAFBAWohEEEBIQECQAJAAkACQAJAIAAtACxBe2oOBAMBAgQACyAQIQEMBAtBAiEBDAELQQQhAQsgAEEBOgAsIAAgAC8BMCABcjsBMCAQIQEMAQsgACAALwEwQQhyOwEwIBAhAQtBOSEQDL8BCyAAQQA6ACwgASEBC0E0IRAMvQELIAAgAC8BMEEgcjsBMCABIQEMAgsgACgCBCEEIABBADYCBAJAIAAgBCABELGAgIAAIgQNACABIQEMxwELIABBNzYCHCAAIAE2AhQgACAENgIMQQAhEAzUAQsgAEEIOgAsIAEhAQtBMCEQDLkBCwJAIAAtAChBAUYNACABIQEMBAsgAC0ALUEIcUUNkwEgASEBDAMLIAAtADBBIHENlAFBxQEhEAy3AQsCQCAPIAJGDQACQANAAkAgDy0AAEFQaiIBQf8BcUEKSQ0AIA8hAUE1IRAMugELIAApAyAiEUKZs+bMmbPmzBlWDQEgACARQgp+IhE3AyAgESABrUL/AYMiEkJ/hVYNASAAIBEgEnw3AyAgD0EBaiIPIAJHDQALQTkhEAzRAQsgACgCBCECIABBADYCBCAAIAIgD0EBaiIEELGAgIAAIgINlQEgBCEBDMMBC0E5IRAMzwELAkAgAC8BMCIBQQhxRQ0AIAAtAChBAUcNACAALQAtQQhxRQ2QAQsgACABQff7A3FBgARyOwEwIA8hAQtBNyEQDLQBCyAAIAAvATBBEHI7ATAMqwELIBBBFUYNiwEgAEEANgIcIAAgATYCFCAAQfCOgIAANgIQIABBHDYCDEEAIRAMywELIABBwwA2AhwgACABNgIMIAAgDUEBajYCFEEAIRAMygELAkAgAS0AAEE6Rw0AIAAoAgQhECAAQQA2AgQCQCAAIBAgARCvgICAACIQDQAgAUEBaiEBDGMLIABBwwA2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAMygELIABBADYCHCAAIAE2AhQgAEGxkYCAADYCECAAQQo2AgxBACEQDMkBCyAAQQA2AhwgACABNgIUIABBoJmAgAA2AhAgAEEeNgIMQQAhEAzIAQsgAEEANgIACyAAQYASOwEqIAAgF0EBaiIBIAIQqICAgAAiEA0BIAEhAQtBxwAhEAysAQsgEEEVRw2DASAAQdEANgIcIAAgATYCFCAAQeOXgIAANgIQIABBFTYCDEEAIRAMxAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDF4LIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMwwELIABBADYCHCAAIBQ2AhQgAEHBqICAADYCECAAQQc2AgwgAEEANgIAQQAhEAzCAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMXQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAzBAQtBACEQIABBADYCHCAAIAE2AhQgAEGAkYCAADYCECAAQQk2AgwMwAELIBBBFUYNfSAAQQA2AhwgACABNgIUIABBlI2AgAA2AhAgAEEhNgIMQQAhEAy/AQtBASEWQQAhF0EAIRRBASEQCyAAIBA6ACsgAUEBaiEBAkACQCAALQAtQRBxDQACQAJAAkAgAC0AKg4DAQACBAsgFkUNAwwCCyAUDQEMAgsgF0UNAQsgACgCBCEQIABBADYCBAJAIAAgECABEK2AgIAAIhANACABIQEMXAsgAEHYADYCHCAAIAE2AhQgACAQNgIMQQAhEAy+AQsgACgCBCEEIABBADYCBAJAIAAgBCABEK2AgIAAIgQNACABIQEMrQELIABB2QA2AhwgACABNgIUIAAgBDYCDEEAIRAMvQELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCtgICAACIEDQAgASEBDKsBCyAAQdoANgIcIAAgATYCFCAAIAQ2AgxBACEQDLwBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQrYCAgAAiBA0AIAEhAQypAQsgAEHcADYCHCAAIAE2AhQgACAENgIMQQAhEAy7AQsCQCABLQAAQVBqIhBB/wFxQQpPDQAgACAQOgAqIAFBAWohAUHPACEQDKIBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQrYCAgAAiBA0AIAEhAQynAQsgAEHeADYCHCAAIAE2AhQgACAENgIMQQAhEAy6AQsgAEEANgIAIBdBAWohAQJAIAAtAClBI08NACABIQEMWQsgAEEANgIcIAAgATYCFCAAQdOJgIAANgIQIABBCDYCDEEAIRAMuQELIABBADYCAAtBACEQIABBADYCHCAAIAE2AhQgAEGQs4CAADYCECAAQQg2AgwMtwELIABBADYCACAXQQFqIQECQCAALQApQSFHDQAgASEBDFYLIABBADYCHCAAIAE2AhQgAEGbioCAADYCECAAQQg2AgxBACEQDLYBCyAAQQA2AgAgF0EBaiEBAkAgAC0AKSIQQV1qQQtPDQAgASEBDFULAkAgEEEGSw0AQQEgEHRBygBxRQ0AIAEhAQxVC0EAIRAgAEEANgIcIAAgATYCFCAAQfeJgIAANgIQIABBCDYCDAy1AQsgEEEVRg1xIABBADYCHCAAIAE2AhQgAEG5jYCAADYCECAAQRo2AgxBACEQDLQBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxUCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLMBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdIANgIcIAAgATYCFCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAUNgIUIAAgATYCDEEAIRAMogELIABBADYCHCAAIBQ2AhQgAEHDj4CAADYCECAAQQc2AgxBACEQDKEBCyAAQQA2AhwgACABNgIUIABBw4+AgAA2AhAgAEEHNgIMQQAhEAygAQtBACEQIABBADYCHCAAIBQ2AhQgAEGMnICAADYCECAAQQc2AgwMnwELIABBADYCHCAAIBQ2AhQgAEGMnICAADYCECAAQQc2AgxBACEQDJ4BCyAAQQA2AhwgACAUNgIUIABB/pGAgAA2AhAgAEEHNgIMQQAhEAydAQsgAEEANgIcIAAgATYCFCAAQY6bgIAANgIQIABBBjYCDEEAIRAMnAELIBBBFUYNVyAAQQA2AhwgACABNgIUIABBzI6AgAA2AhAgAEEgNgIMQQAhEAybAQsgAEEANgIAIBBBAWohAUEkIRALIAAgEDoAKSAAKAIEIRAgAEEANgIEIAAgECABEKuAgIAAIhANVCABIQEMPgsgAEEANgIAC0EAIRAgAEEANgIcIAAgBDYCFCAAQfGbgIAANgIQIABBBjYCDAyXAQsgAUEVRg1QIABBADYCHCAAIAU2AhQgAEHwjICAADYCECAAQRs2AgxBACEQDJYBCyAAKAIEIQUgAEEANgIEIAAgBSAQEKmAgIAAIgUNASAQQQFqIQULQa0BIRAMewsgAEHBATYCHCAAIAU2AgwgACAQQQFqNgIUQQAhEAyTAQsgACgCBCEGIABBADYCBCAAIAYgEBCpgICAACIGDQEgEEEBaiEGC0GuASEQDHgLIABBwgE2AhwgACAGNgIMIAAgEEEBajYCFEEAIRAMkAELIABBADYCHCAAIAc2AhQgAEGXi4CAADYCECAAQQ02AgxBACEQDI8BCyAAQQA2AhwgACAINgIUIABB45CAgAA2AhAgAEEJNgIMQQAhEAyOAQsgAEEANgIcIAAgCDYCFCAAQZSNgIAANgIQIABBITYCDEEAIRAMjQELQQEhFkEAIRdBACEUQQEhEAsgACAQOgArIAlBAWohCAJAAkAgAC0ALUEQcQ0AAkACQAJAIAAtACoOAwEAAgQLIBZFDQMMAgsgFA0BDAILIBdFDQELIAAoAgQhECAAQQA2AgQgACAQIAgQrYCAgAAiEEUNPSAAQckBNgIcIAAgCDYCFCAAIBA2AgxBACEQDIwBCyAAKAIEIQQgAEEANgIEIAAgBCAIEK2AgIAAIgRFDXYgAEHKATYCHCAAIAg2AhQgACAENgIMQQAhEAyLAQsgACgCBCEEIABBADYCBCAAIAQgCRCtgICAACIERQ10IABBywE2AhwgACAJNgIUIAAgBDYCDEEAIRAMigELIAAoAgQhBCAAQQA2AgQgACAEIAoQrYCAgAAiBEUNciAAQc0BNgIcIAAgCjYCFCAAIAQ2AgxBACEQDIkBCwJAIAstAABBUGoiEEH/AXFBCk8NACAAIBA6ACogC0EBaiEKQbYBIRAMcAsgACgCBCEEIABBADYCBCAAIAQgCxCtgICAACIERQ1wIABBzwE2AhwgACALNgIUIAAgBDYCDEEAIRAMiAELIABBADYCHCAAIAQ2AhQgAEGQs4CAADYCECAAQQg2AgwgAEEANgIAQQAhEAyHAQsgAUEVRg0/IABBADYCHCAAIAw2AhQgAEHMjoCAADYCECAAQSA2AgxBACEQDIYBCyAAQYEEOwEoIAAoAgQhECAAQgA3AwAgACAQIAxBAWoiDBCrgICAACIQRQ04IABB0wE2AhwgACAMNgIUIAAgEDYCDEEAIRAMhQELIABBADYCAAtBACEQIABBADYCHCAAIAQ2AhQgAEHYm4CAADYCECAAQQg2AgwMgwELIAAoAgQhECAAQgA3AwAgACAQIAtBAWoiCxCrgICAACIQDQFBxgEhEAxpCyAAQQI6ACgMVQsgAEHVATYCHCAAIAs2AhQgACAQNgIMQQAhEAyAAQsgEEEVRg03IABBADYCHCAAIAQ2AhQgAEGkjICAADYCECAAQRA2AgxBACEQDH8LIAAtADRBAUcNNCAAIAQgAhC8gICAACIQRQ00IBBBFUcNNSAAQdwBNgIcIAAgBDYCFCAAQdWWgIAANgIQIABBFTYCDEEAIRAMfgtBACEQIABBADYCHCAAQa+LgIAANgIQIABBAjYCDCAAIBRBAWo2AhQMfQtBACEQDGMLQQIhEAxiC0ENIRAMYQtBDyEQDGALQSUhEAxfC0ETIRAMXgtBFSEQDF0LQRYhEAxcC0EXIRAMWwtBGCEQDFoLQRkhEAxZC0EaIRAMWAtBGyEQDFcLQRwhEAxWC0EdIRAMVQtBHyEQDFQLQSEhEAxTC0EjIRAMUgtBxgAhEAxRC0EuIRAMUAtBLyEQDE8LQTshEAxOC0E9IRAMTQtByAAhEAxMC0HJACEQDEsLQcsAIRAMSgtBzAAhEAxJC0HOACEQDEgLQdEAIRAMRwtB1QAhEAxGC0HYACEQDEULQdkAIRAMRAtB2wAhEAxDC0HkACEQDEILQeUAIRAMQQtB8QAhEAxAC0H0ACEQDD8LQY0BIRAMPgtBlwEhEAw9C0GpASEQDDwLQawBIRAMOwtBwAEhEAw6C0G5ASEQDDkLQa8BIRAMOAtBsQEhEAw3C0GyASEQDDYLQbQBIRAMNQtBtQEhEAw0C0G6ASEQDDMLQb0BIRAMMgtBvwEhEAwxC0HBASEQDDALIABBADYCHCAAIAQ2AhQgAEHpi4CAADYCECAAQR82AgxBACEQDEgLIABB2wE2AhwgACAENgIUIABB+paAgAA2AhAgAEEVNgIMQQAhEAxHCyAAQfgANgIcIAAgDDYCFCAAQcqYgIAANgIQIABBFTYCDEEAIRAMRgsgAEHRADYCHCAAIAU2AhQgAEGwl4CAADYCECAAQRU2AgxBACEQDEULIABB+QA2AhwgACABNgIUIAAgEDYCDEEAIRAMRAsgAEH4ADYCHCAAIAE2AhQgAEHKmICAADYCECAAQRU2AgxBACEQDEMLIABB5AA2AhwgACABNgIUIABB45eAgAA2AhAgAEEVNgIMQQAhEAxCCyAAQdcANgIcIAAgATYCFCAAQcmXgIAANgIQIABBFTYCDEEAIRAMQQsgAEEANgIcIAAgATYCFCAAQbmNgIAANgIQIABBGjYCDEEAIRAMQAsgAEHCADYCHCAAIAE2AhQgAEHjmICAADYCECAAQRU2AgxBACEQDD8LIABBADYCBCAAIA8gDxCxgICAACIERQ0BIABBOjYCHCAAIAQ2AgwgACAPQQFqNgIUQQAhEAw+CyAAKAIEIQQgAEEANgIEAkAgACAEIAEQsYCAgAAiBEUNACAAQTs2AhwgACAENgIMIAAgAUEBajYCFEEAIRAMPgsgAUEBaiEBDC0LIA9BAWohAQwtCyAAQQA2AhwgACAPNgIUIABB5JKAgAA2AhAgAEEENgIMQQAhEAw7CyAAQTY2AhwgACAENgIUIAAgAjYCDEEAIRAMOgsgAEEuNgIcIAAgDjYCFCAAIAQ2AgxBACEQDDkLIABB0AA2AhwgACABNgIUIABBkZiAgAA2AhAgAEEVNgIMQQAhEAw4CyANQQFqIQEMLAsgAEEVNgIcIAAgATYCFCAAQYKZgIAANgIQIABBFTYCDEEAIRAMNgsgAEEbNgIcIAAgATYCFCAAQZGXgIAANgIQIABBFTYCDEEAIRAMNQsgAEEPNgIcIAAgATYCFCAAQZGXgIAANgIQIABBFTYCDEEAIRAMNAsgAEELNgIcIAAgATYCFCAAQZGXgIAANgIQIABBFTYCDEEAIRAMMwsgAEEaNgIcIAAgATYCFCAAQYKZgIAANgIQIABBFTYCDEEAIRAMMgsgAEELNgIcIAAgATYCFCAAQYKZgIAANgIQIABBFTYCDEEAIRAMMQsgAEEKNgIcIAAgATYCFCAAQeSWgIAANgIQIABBFTYCDEEAIRAMMAsgAEEeNgIcIAAgATYCFCAAQfmXgIAANgIQIABBFTYCDEEAIRAMLwsgAEEANgIcIAAgEDYCFCAAQdqNgIAANgIQIABBFDYCDEEAIRAMLgsgAEEENgIcIAAgATYCFCAAQbCYgIAANgIQIABBFTYCDEEAIRAMLQsgAEEANgIAIAtBAWohCwtBuAEhEAwSCyAAQQA2AgAgEEEBaiEBQfUAIRAMEQsgASEBAkAgAC0AKUEFRw0AQeMAIRAMEQtB4gAhEAwQC0EAIRAgAEEANgIcIABB5JGAgAA2AhAgAEEHNgIMIAAgFEEBajYCFAwoCyAAQQA2AgAgF0EBaiEBQcAAIRAMDgtBASEBCyAAIAE6ACwgAEEANgIAIBdBAWohAQtBKCEQDAsLIAEhAQtBOCEQDAkLAkAgASIPIAJGDQADQAJAIA8tAABBgL6AgABqLQAAIgFBAUYNACABQQJHDQMgD0EBaiEBDAQLIA9BAWoiDyACRw0AC0E+IRAMIgtBPiEQDCELIABBADoALCAPIQEMAQtBCyEQDAYLQTohEAwFCyABQQFqIQFBLSEQDAQLIAAgAToALCAAQQA2AgAgFkEBaiEBQQwhEAwDCyAAQQA2AgAgF0EBaiEBQQohEAwCCyAAQQA2AgALIABBADoALCANIQFBCSEQDAALC0EAIRAgAEEANgIcIAAgCzYCFCAAQc2QgIAANgIQIABBCTYCDAwXC0EAIRAgAEEANgIcIAAgCjYCFCAAQemKgIAANgIQIABBCTYCDAwWC0EAIRAgAEEANgIcIAAgCTYCFCAAQbeQgIAANgIQIABBCTYCDAwVC0EAIRAgAEEANgIcIAAgCDYCFCAAQZyRgIAANgIQIABBCTYCDAwUC0EAIRAgAEEANgIcIAAgATYCFCAAQc2QgIAANgIQIABBCTYCDAwTC0EAIRAgAEEANgIcIAAgATYCFCAAQemKgIAANgIQIABBCTYCDAwSC0EAIRAgAEEANgIcIAAgATYCFCAAQbeQgIAANgIQIABBCTYCDAwRC0EAIRAgAEEANgIcIAAgATYCFCAAQZyRgIAANgIQIABBCTYCDAwQC0EAIRAgAEEANgIcIAAgATYCFCAAQZeVgIAANgIQIABBDzYCDAwPC0EAIRAgAEEANgIcIAAgATYCFCAAQZeVgIAANgIQIABBDzYCDAwOC0EAIRAgAEEANgIcIAAgATYCFCAAQcCSgIAANgIQIABBCzYCDAwNC0EAIRAgAEEANgIcIAAgATYCFCAAQZWJgIAANgIQIABBCzYCDAwMC0EAIRAgAEEANgIcIAAgATYCFCAAQeGPgIAANgIQIABBCjYCDAwLC0EAIRAgAEEANgIcIAAgATYCFCAAQfuPgIAANgIQIABBCjYCDAwKC0EAIRAgAEEANgIcIAAgATYCFCAAQfGZgIAANgIQIABBAjYCDAwJC0EAIRAgAEEANgIcIAAgATYCFCAAQcSUgIAANgIQIABBAjYCDAwIC0EAIRAgAEEANgIcIAAgATYCFCAAQfKVgIAANgIQIABBAjYCDAwHCyAAQQI2AhwgACABNgIUIABBnJqAgAA2AhAgAEEWNgIMQQAhEAwGC0EBIRAMBQtB1AAhECABIgQgAkYNBCADQQhqIAAgBCACQdjCgIAAQQoQxYCAgAAgAygCDCEEIAMoAggOAwEEAgALEMqAgIAAAAsgAEEANgIcIABBtZqAgAA2AhAgAEEXNgIMIAAgBEEBajYCFEEAIRAMAgsgAEEANgIcIAAgBDYCFCAAQcqagIAANgIQIABBCTYCDEEAIRAMAQsCQCABIgQgAkcNAEEiIRAMAQsgAEGJgICAADYCCCAAIAQ2AgRBISEQCyADQRBqJICAgIAAIBALrwEBAn8gASgCACEGAkACQCACIANGDQAgBCAGaiEEIAYgA2ogAmshByACIAZBf3MgBWoiBmohBQNAAkAgAi0AACAELQAARg0AQQIhBAwDCwJAIAYNAEEAIQQgBSECDAMLIAZBf2ohBiAEQQFqIQQgAkEBaiICIANHDQALIAchBiADIQILIABBATYCACABIAY2AgAgACACNgIEDwsgAUEANgIAIAAgBDYCACAAIAI2AgQLCgAgABDHgICAAAvyNgELfyOAgICAAEEQayIBJICAgIAAAkBBACgCoNCAgAANAEEAEMuAgIAAQYDUhIAAayICQdkASQ0AQQAhAwJAQQAoAuDTgIAAIgQNAEEAQn83AuzTgIAAQQBCgICEgICAwAA3AuTTgIAAQQAgAUEIakFwcUHYqtWqBXMiBDYC4NOAgABBAEEANgL004CAAEEAQQA2AsTTgIAAC0EAIAI2AszTgIAAQQBBgNSEgAA2AsjTgIAAQQBBgNSEgAA2ApjQgIAAQQAgBDYCrNCAgABBAEF/NgKo0ICAAANAIANBxNCAgABqIANBuNCAgABqIgQ2AgAgBCADQbDQgIAAaiIFNgIAIANBvNCAgABqIAU2AgAgA0HM0ICAAGogA0HA0ICAAGoiBTYCACAFIAQ2AgAgA0HU0ICAAGogA0HI0ICAAGoiBDYCACAEIAU2AgAgA0HQ0ICAAGogBDYCACADQSBqIgNBgAJHDQALQYDUhIAAQXhBgNSEgABrQQ9xQQBBgNSEgABBCGpBD3EbIgNqIgRBBGogAkFIaiIFIANrIgNBAXI2AgBBAEEAKALw04CAADYCpNCAgABBACADNgKU0ICAAEEAIAQ2AqDQgIAAQYDUhIAAIAVqQTg2AgQLAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB7AFLDQACQEEAKAKI0ICAACIGQRAgAEETakFwcSAAQQtJGyICQQN2IgR2IgNBA3FFDQACQAJAIANBAXEgBHJBAXMiBUEDdCIEQbDQgIAAaiIDIARBuNCAgABqKAIAIgQoAggiAkcNAEEAIAZBfiAFd3E2AojQgIAADAELIAMgAjYCCCACIAM2AgwLIARBCGohAyAEIAVBA3QiBUEDcjYCBCAEIAVqIgQgBCgCBEEBcjYCBAwMCyACQQAoApDQgIAAIgdNDQECQCADRQ0AAkACQCADIAR0QQIgBHQiA0EAIANrcnEiA0EAIANrcUF/aiIDIANBDHZBEHEiA3YiBEEFdkEIcSIFIANyIAQgBXYiA0ECdkEEcSIEciADIAR2IgNBAXZBAnEiBHIgAyAEdiIDQQF2QQFxIgRyIAMgBHZqIgRBA3QiA0Gw0ICAAGoiBSADQbjQgIAAaigCACIDKAIIIgBHDQBBACAGQX4gBHdxIgY2AojQgIAADAELIAUgADYCCCAAIAU2AgwLIAMgAkEDcjYCBCADIARBA3QiBGogBCACayIFNgIAIAMgAmoiACAFQQFyNgIEAkAgB0UNACAHQXhxQbDQgIAAaiECQQAoApzQgIAAIQQCQAJAIAZBASAHQQN2dCIIcQ0AQQAgBiAIcjYCiNCAgAAgAiEIDAELIAIoAgghCAsgCCAENgIMIAIgBDYCCCAEIAI2AgwgBCAINgIICyADQQhqIQNBACAANgKc0ICAAEEAIAU2ApDQgIAADAwLQQAoAozQgIAAIglFDQEgCUEAIAlrcUF/aiIDIANBDHZBEHEiA3YiBEEFdkEIcSIFIANyIAQgBXYiA0ECdkEEcSIEciADIAR2IgNBAXZBAnEiBHIgAyAEdiIDQQF2QQFxIgRyIAMgBHZqQQJ0QbjSgIAAaigCACIAKAIEQXhxIAJrIQQgACEFAkADQAJAIAUoAhAiAw0AIAVBFGooAgAiA0UNAgsgAygCBEF4cSACayIFIAQgBSAESSIFGyEEIAMgACAFGyEAIAMhBQwACwsgACgCGCEKAkAgACgCDCIIIABGDQAgACgCCCIDQQAoApjQgIAASRogCCADNgIIIAMgCDYCDAwLCwJAIABBFGoiBSgCACIDDQAgACgCECIDRQ0DIABBEGohBQsDQCAFIQsgAyIIQRRqIgUoAgAiAw0AIAhBEGohBSAIKAIQIgMNAAsgC0EANgIADAoLQX8hAiAAQb9/Sw0AIABBE2oiA0FwcSECQQAoAozQgIAAIgdFDQBBACELAkAgAkGAAkkNAEEfIQsgAkH///8HSw0AIANBCHYiAyADQYD+P2pBEHZBCHEiA3QiBCAEQYDgH2pBEHZBBHEiBHQiBSAFQYCAD2pBEHZBAnEiBXRBD3YgAyAEciAFcmsiA0EBdCACIANBFWp2QQFxckEcaiELC0EAIAJrIQQCQAJAAkACQCALQQJ0QbjSgIAAaigCACIFDQBBACEDQQAhCAwBC0EAIQMgAkEAQRkgC0EBdmsgC0EfRht0IQBBACEIA0ACQCAFKAIEQXhxIAJrIgYgBE8NACAGIQQgBSEIIAYNAEEAIQQgBSEIIAUhAwwDCyADIAVBFGooAgAiBiAGIAUgAEEddkEEcWpBEGooAgAiBUYbIAMgBhshAyAAQQF0IQAgBQ0ACwsCQCADIAhyDQBBACEIQQIgC3QiA0EAIANrciAHcSIDRQ0DIANBACADa3FBf2oiAyADQQx2QRBxIgN2IgVBBXZBCHEiACADciAFIAB2IgNBAnZBBHEiBXIgAyAFdiIDQQF2QQJxIgVyIAMgBXYiA0EBdkEBcSIFciADIAV2akECdEG40oCAAGooAgAhAwsgA0UNAQsDQCADKAIEQXhxIAJrIgYgBEkhAAJAIAMoAhAiBQ0AIANBFGooAgAhBQsgBiAEIAAbIQQgAyAIIAAbIQggBSEDIAUNAAsLIAhFDQAgBEEAKAKQ0ICAACACa08NACAIKAIYIQsCQCAIKAIMIgAgCEYNACAIKAIIIgNBACgCmNCAgABJGiAAIAM2AgggAyAANgIMDAkLAkAgCEEUaiIFKAIAIgMNACAIKAIQIgNFDQMgCEEQaiEFCwNAIAUhBiADIgBBFGoiBSgCACIDDQAgAEEQaiEFIAAoAhAiAw0ACyAGQQA2AgAMCAsCQEEAKAKQ0ICAACIDIAJJDQBBACgCnNCAgAAhBAJAAkAgAyACayIFQRBJDQAgBCACaiIAIAVBAXI2AgRBACAFNgKQ0ICAAEEAIAA2ApzQgIAAIAQgA2ogBTYCACAEIAJBA3I2AgQMAQsgBCADQQNyNgIEIAQgA2oiAyADKAIEQQFyNgIEQQBBADYCnNCAgABBAEEANgKQ0ICAAAsgBEEIaiEDDAoLAkBBACgClNCAgAAiACACTQ0AQQAoAqDQgIAAIgMgAmoiBCAAIAJrIgVBAXI2AgRBACAFNgKU0ICAAEEAIAQ2AqDQgIAAIAMgAkEDcjYCBCADQQhqIQMMCgsCQAJAQQAoAuDTgIAARQ0AQQAoAujTgIAAIQQMAQtBAEJ/NwLs04CAAEEAQoCAhICAgMAANwLk04CAAEEAIAFBDGpBcHFB2KrVqgVzNgLg04CAAEEAQQA2AvTTgIAAQQBBADYCxNOAgABBgIAEIQQLQQAhAwJAIAQgAkHHAGoiB2oiBkEAIARrIgtxIgggAksNAEEAQTA2AvjTgIAADAoLAkBBACgCwNOAgAAiA0UNAAJAQQAoArjTgIAAIgQgCGoiBSAETQ0AIAUgA00NAQtBACEDQQBBMDYC+NOAgAAMCgtBAC0AxNOAgABBBHENBAJAAkACQEEAKAKg0ICAACIERQ0AQcjTgIAAIQMDQAJAIAMoAgAiBSAESw0AIAUgAygCBGogBEsNAwsgAygCCCIDDQALC0EAEMuAgIAAIgBBf0YNBSAIIQYCQEEAKALk04CAACIDQX9qIgQgAHFFDQAgCCAAayAEIABqQQAgA2txaiEGCyAGIAJNDQUgBkH+////B0sNBQJAQQAoAsDTgIAAIgNFDQBBACgCuNOAgAAiBCAGaiIFIARNDQYgBSADSw0GCyAGEMuAgIAAIgMgAEcNAQwHCyAGIABrIAtxIgZB/v///wdLDQQgBhDLgICAACIAIAMoAgAgAygCBGpGDQMgACEDCwJAIANBf0YNACACQcgAaiAGTQ0AAkAgByAGa0EAKALo04CAACIEakEAIARrcSIEQf7///8HTQ0AIAMhAAwHCwJAIAQQy4CAgABBf0YNACAEIAZqIQYgAyEADAcLQQAgBmsQy4CAgAAaDAQLIAMhACADQX9HDQUMAwtBACEIDAcLQQAhAAwFCyAAQX9HDQILQQBBACgCxNOAgABBBHI2AsTTgIAACyAIQf7///8HSw0BIAgQy4CAgAAhAEEAEMuAgIAAIQMgAEF/Rg0BIANBf0YNASAAIANPDQEgAyAAayIGIAJBOGpNDQELQQBBACgCuNOAgAAgBmoiAzYCuNOAgAACQCADQQAoArzTgIAATQ0AQQAgAzYCvNOAgAALAkACQAJAAkBBACgCoNCAgAAiBEUNAEHI04CAACEDA0AgACADKAIAIgUgAygCBCIIakYNAiADKAIIIgMNAAwDCwsCQAJAQQAoApjQgIAAIgNFDQAgACADTw0BC0EAIAA2ApjQgIAAC0EAIQNBACAGNgLM04CAAEEAIAA2AsjTgIAAQQBBfzYCqNCAgABBAEEAKALg04CAADYCrNCAgABBAEEANgLU04CAAANAIANBxNCAgABqIANBuNCAgABqIgQ2AgAgBCADQbDQgIAAaiIFNgIAIANBvNCAgABqIAU2AgAgA0HM0ICAAGogA0HA0ICAAGoiBTYCACAFIAQ2AgAgA0HU0ICAAGogA0HI0ICAAGoiBDYCACAEIAU2AgAgA0HQ0ICAAGogBDYCACADQSBqIgNBgAJHDQALIABBeCAAa0EPcUEAIABBCGpBD3EbIgNqIgQgBkFIaiIFIANrIgNBAXI2AgRBAEEAKALw04CAADYCpNCAgABBACADNgKU0ICAAEEAIAQ2AqDQgIAAIAAgBWpBODYCBAwCCyADLQAMQQhxDQAgBCAFSQ0AIAQgAE8NACAEQXggBGtBD3FBACAEQQhqQQ9xGyIFaiIAQQAoApTQgIAAIAZqIgsgBWsiBUEBcjYCBCADIAggBmo2AgRBAEEAKALw04CAADYCpNCAgABBACAFNgKU0ICAAEEAIAA2AqDQgIAAIAQgC2pBODYCBAwBCwJAIABBACgCmNCAgAAiCE8NAEEAIAA2ApjQgIAAIAAhCAsgACAGaiEFQcjTgIAAIQMCQAJAAkACQAJAAkACQANAIAMoAgAgBUYNASADKAIIIgMNAAwCCwsgAy0ADEEIcUUNAQtByNOAgAAhAwNAAkAgAygCACIFIARLDQAgBSADKAIEaiIFIARLDQMLIAMoAgghAwwACwsgAyAANgIAIAMgAygCBCAGajYCBCAAQXggAGtBD3FBACAAQQhqQQ9xG2oiCyACQQNyNgIEIAVBeCAFa0EPcUEAIAVBCGpBD3EbaiIGIAsgAmoiAmshAwJAIAYgBEcNAEEAIAI2AqDQgIAAQQBBACgClNCAgAAgA2oiAzYClNCAgAAgAiADQQFyNgIEDAMLAkAgBkEAKAKc0ICAAEcNAEEAIAI2ApzQgIAAQQBBACgCkNCAgAAgA2oiAzYCkNCAgAAgAiADQQFyNgIEIAIgA2ogAzYCAAwDCwJAIAYoAgQiBEEDcUEBRw0AIARBeHEhBwJAAkAgBEH/AUsNACAGKAIIIgUgBEEDdiIIQQN0QbDQgIAAaiIARhoCQCAGKAIMIgQgBUcNAEEAQQAoAojQgIAAQX4gCHdxNgKI0ICAAAwCCyAEIABGGiAEIAU2AgggBSAENgIMDAELIAYoAhghCQJAAkAgBigCDCIAIAZGDQAgBigCCCIEIAhJGiAAIAQ2AgggBCAANgIMDAELAkAgBkEUaiIEKAIAIgUNACAGQRBqIgQoAgAiBQ0AQQAhAAwBCwNAIAQhCCAFIgBBFGoiBCgCACIFDQAgAEEQaiEEIAAoAhAiBQ0ACyAIQQA2AgALIAlFDQACQAJAIAYgBigCHCIFQQJ0QbjSgIAAaiIEKAIARw0AIAQgADYCACAADQFBAEEAKAKM0ICAAEF+IAV3cTYCjNCAgAAMAgsgCUEQQRQgCSgCECAGRhtqIAA2AgAgAEUNAQsgACAJNgIYAkAgBigCECIERQ0AIAAgBDYCECAEIAA2AhgLIAYoAhQiBEUNACAAQRRqIAQ2AgAgBCAANgIYCyAHIANqIQMgBiAHaiIGKAIEIQQLIAYgBEF+cTYCBCACIANqIAM2AgAgAiADQQFyNgIEAkAgA0H/AUsNACADQXhxQbDQgIAAaiEEAkACQEEAKAKI0ICAACIFQQEgA0EDdnQiA3ENAEEAIAUgA3I2AojQgIAAIAQhAwwBCyAEKAIIIQMLIAMgAjYCDCAEIAI2AgggAiAENgIMIAIgAzYCCAwDC0EfIQQCQCADQf///wdLDQAgA0EIdiIEIARBgP4/akEQdkEIcSIEdCIFIAVBgOAfakEQdkEEcSIFdCIAIABBgIAPakEQdkECcSIAdEEPdiAEIAVyIAByayIEQQF0IAMgBEEVanZBAXFyQRxqIQQLIAIgBDYCHCACQgA3AhAgBEECdEG40oCAAGohBQJAQQAoAozQgIAAIgBBASAEdCIIcQ0AIAUgAjYCAEEAIAAgCHI2AozQgIAAIAIgBTYCGCACIAI2AgggAiACNgIMDAMLIANBAEEZIARBAXZrIARBH0YbdCEEIAUoAgAhAANAIAAiBSgCBEF4cSADRg0CIARBHXYhACAEQQF0IQQgBSAAQQRxakEQaiIIKAIAIgANAAsgCCACNgIAIAIgBTYCGCACIAI2AgwgAiACNgIIDAILIABBeCAAa0EPcUEAIABBCGpBD3EbIgNqIgsgBkFIaiIIIANrIgNBAXI2AgQgACAIakE4NgIEIAQgBUE3IAVrQQ9xQQAgBUFJakEPcRtqQUFqIgggCCAEQRBqSRsiCEEjNgIEQQBBACgC8NOAgAA2AqTQgIAAQQAgAzYClNCAgABBACALNgKg0ICAACAIQRBqQQApAtDTgIAANwIAIAhBACkCyNOAgAA3AghBACAIQQhqNgLQ04CAAEEAIAY2AszTgIAAQQAgADYCyNOAgABBAEEANgLU04CAACAIQSRqIQMDQCADQQc2AgAgA0EEaiIDIAVJDQALIAggBEYNAyAIIAgoAgRBfnE2AgQgCCAIIARrIgA2AgAgBCAAQQFyNgIEAkAgAEH/AUsNACAAQXhxQbDQgIAAaiEDAkACQEEAKAKI0ICAACIFQQEgAEEDdnQiAHENAEEAIAUgAHI2AojQgIAAIAMhBQwBCyADKAIIIQULIAUgBDYCDCADIAQ2AgggBCADNgIMIAQgBTYCCAwEC0EfIQMCQCAAQf///wdLDQAgAEEIdiIDIANBgP4/akEQdkEIcSIDdCIFIAVBgOAfakEQdkEEcSIFdCIIIAhBgIAPakEQdkECcSIIdEEPdiADIAVyIAhyayIDQQF0IAAgA0EVanZBAXFyQRxqIQMLIAQgAzYCHCAEQgA3AhAgA0ECdEG40oCAAGohBQJAQQAoAozQgIAAIghBASADdCIGcQ0AIAUgBDYCAEEAIAggBnI2AozQgIAAIAQgBTYCGCAEIAQ2AgggBCAENgIMDAQLIABBAEEZIANBAXZrIANBH0YbdCEDIAUoAgAhCANAIAgiBSgCBEF4cSAARg0DIANBHXYhCCADQQF0IQMgBSAIQQRxakEQaiIGKAIAIggNAAsgBiAENgIAIAQgBTYCGCAEIAQ2AgwgBCAENgIIDAMLIAUoAggiAyACNgIMIAUgAjYCCCACQQA2AhggAiAFNgIMIAIgAzYCCAsgC0EIaiEDDAULIAUoAggiAyAENgIMIAUgBDYCCCAEQQA2AhggBCAFNgIMIAQgAzYCCAtBACgClNCAgAAiAyACTQ0AQQAoAqDQgIAAIgQgAmoiBSADIAJrIgNBAXI2AgRBACADNgKU0ICAAEEAIAU2AqDQgIAAIAQgAkEDcjYCBCAEQQhqIQMMAwtBACEDQQBBMDYC+NOAgAAMAgsCQCALRQ0AAkACQCAIIAgoAhwiBUECdEG40oCAAGoiAygCAEcNACADIAA2AgAgAA0BQQAgB0F+IAV3cSIHNgKM0ICAAAwCCyALQRBBFCALKAIQIAhGG2ogADYCACAARQ0BCyAAIAs2AhgCQCAIKAIQIgNFDQAgACADNgIQIAMgADYCGAsgCEEUaigCACIDRQ0AIABBFGogAzYCACADIAA2AhgLAkACQCAEQQ9LDQAgCCAEIAJqIgNBA3I2AgQgCCADaiIDIAMoAgRBAXI2AgQMAQsgCCACaiIAIARBAXI2AgQgCCACQQNyNgIEIAAgBGogBDYCAAJAIARB/wFLDQAgBEF4cUGw0ICAAGohAwJAAkBBACgCiNCAgAAiBUEBIARBA3Z0IgRxDQBBACAFIARyNgKI0ICAACADIQQMAQsgAygCCCEECyAEIAA2AgwgAyAANgIIIAAgAzYCDCAAIAQ2AggMAQtBHyEDAkAgBEH///8HSw0AIARBCHYiAyADQYD+P2pBEHZBCHEiA3QiBSAFQYDgH2pBEHZBBHEiBXQiAiACQYCAD2pBEHZBAnEiAnRBD3YgAyAFciACcmsiA0EBdCAEIANBFWp2QQFxckEcaiEDCyAAIAM2AhwgAEIANwIQIANBAnRBuNKAgABqIQUCQCAHQQEgA3QiAnENACAFIAA2AgBBACAHIAJyNgKM0ICAACAAIAU2AhggACAANgIIIAAgADYCDAwBCyAEQQBBGSADQQF2ayADQR9GG3QhAyAFKAIAIQICQANAIAIiBSgCBEF4cSAERg0BIANBHXYhAiADQQF0IQMgBSACQQRxakEQaiIGKAIAIgINAAsgBiAANgIAIAAgBTYCGCAAIAA2AgwgACAANgIIDAELIAUoAggiAyAANgIMIAUgADYCCCAAQQA2AhggACAFNgIMIAAgAzYCCAsgCEEIaiEDDAELAkAgCkUNAAJAAkAgACAAKAIcIgVBAnRBuNKAgABqIgMoAgBHDQAgAyAINgIAIAgNAUEAIAlBfiAFd3E2AozQgIAADAILIApBEEEUIAooAhAgAEYbaiAINgIAIAhFDQELIAggCjYCGAJAIAAoAhAiA0UNACAIIAM2AhAgAyAINgIYCyAAQRRqKAIAIgNFDQAgCEEUaiADNgIAIAMgCDYCGAsCQAJAIARBD0sNACAAIAQgAmoiA0EDcjYCBCAAIANqIgMgAygCBEEBcjYCBAwBCyAAIAJqIgUgBEEBcjYCBCAAIAJBA3I2AgQgBSAEaiAENgIAAkAgB0UNACAHQXhxQbDQgIAAaiECQQAoApzQgIAAIQMCQAJAQQEgB0EDdnQiCCAGcQ0AQQAgCCAGcjYCiNCAgAAgAiEIDAELIAIoAgghCAsgCCADNgIMIAIgAzYCCCADIAI2AgwgAyAINgIIC0EAIAU2ApzQgIAAQQAgBDYCkNCAgAALIABBCGohAwsgAUEQaiSAgICAACADCwoAIAAQyYCAgAAL4g0BB38CQCAARQ0AIABBeGoiASAAQXxqKAIAIgJBeHEiAGohAwJAIAJBAXENACACQQNxRQ0BIAEgASgCACICayIBQQAoApjQgIAAIgRJDQEgAiAAaiEAAkAgAUEAKAKc0ICAAEYNAAJAIAJB/wFLDQAgASgCCCIEIAJBA3YiBUEDdEGw0ICAAGoiBkYaAkAgASgCDCICIARHDQBBAEEAKAKI0ICAAEF+IAV3cTYCiNCAgAAMAwsgAiAGRhogAiAENgIIIAQgAjYCDAwCCyABKAIYIQcCQAJAIAEoAgwiBiABRg0AIAEoAggiAiAESRogBiACNgIIIAIgBjYCDAwBCwJAIAFBFGoiAigCACIEDQAgAUEQaiICKAIAIgQNAEEAIQYMAQsDQCACIQUgBCIGQRRqIgIoAgAiBA0AIAZBEGohAiAGKAIQIgQNAAsgBUEANgIACyAHRQ0BAkACQCABIAEoAhwiBEECdEG40oCAAGoiAigCAEcNACACIAY2AgAgBg0BQQBBACgCjNCAgABBfiAEd3E2AozQgIAADAMLIAdBEEEUIAcoAhAgAUYbaiAGNgIAIAZFDQILIAYgBzYCGAJAIAEoAhAiAkUNACAGIAI2AhAgAiAGNgIYCyABKAIUIgJFDQEgBkEUaiACNgIAIAIgBjYCGAwBCyADKAIEIgJBA3FBA0cNACADIAJBfnE2AgRBACAANgKQ0ICAACABIABqIAA2AgAgASAAQQFyNgIEDwsgASADTw0AIAMoAgQiAkEBcUUNAAJAAkAgAkECcQ0AAkAgA0EAKAKg0ICAAEcNAEEAIAE2AqDQgIAAQQBBACgClNCAgAAgAGoiADYClNCAgAAgASAAQQFyNgIEIAFBACgCnNCAgABHDQNBAEEANgKQ0ICAAEEAQQA2ApzQgIAADwsCQCADQQAoApzQgIAARw0AQQAgATYCnNCAgABBAEEAKAKQ0ICAACAAaiIANgKQ0ICAACABIABBAXI2AgQgASAAaiAANgIADwsgAkF4cSAAaiEAAkACQCACQf8BSw0AIAMoAggiBCACQQN2IgVBA3RBsNCAgABqIgZGGgJAIAMoAgwiAiAERw0AQQBBACgCiNCAgABBfiAFd3E2AojQgIAADAILIAIgBkYaIAIgBDYCCCAEIAI2AgwMAQsgAygCGCEHAkACQCADKAIMIgYgA0YNACADKAIIIgJBACgCmNCAgABJGiAGIAI2AgggAiAGNgIMDAELAkAgA0EUaiICKAIAIgQNACADQRBqIgIoAgAiBA0AQQAhBgwBCwNAIAIhBSAEIgZBFGoiAigCACIEDQAgBkEQaiECIAYoAhAiBA0ACyAFQQA2AgALIAdFDQACQAJAIAMgAygCHCIEQQJ0QbjSgIAAaiICKAIARw0AIAIgBjYCACAGDQFBAEEAKAKM0ICAAEF+IAR3cTYCjNCAgAAMAgsgB0EQQRQgBygCECADRhtqIAY2AgAgBkUNAQsgBiAHNgIYAkAgAygCECICRQ0AIAYgAjYCECACIAY2AhgLIAMoAhQiAkUNACAGQRRqIAI2AgAgAiAGNgIYCyABIABqIAA2AgAgASAAQQFyNgIEIAFBACgCnNCAgABHDQFBACAANgKQ0ICAAA8LIAMgAkF+cTYCBCABIABqIAA2AgAgASAAQQFyNgIECwJAIABB/wFLDQAgAEF4cUGw0ICAAGohAgJAAkBBACgCiNCAgAAiBEEBIABBA3Z0IgBxDQBBACAEIAByNgKI0ICAACACIQAMAQsgAigCCCEACyAAIAE2AgwgAiABNgIIIAEgAjYCDCABIAA2AggPC0EfIQICQCAAQf///wdLDQAgAEEIdiICIAJBgP4/akEQdkEIcSICdCIEIARBgOAfakEQdkEEcSIEdCIGIAZBgIAPakEQdkECcSIGdEEPdiACIARyIAZyayICQQF0IAAgAkEVanZBAXFyQRxqIQILIAEgAjYCHCABQgA3AhAgAkECdEG40oCAAGohBAJAAkBBACgCjNCAgAAiBkEBIAJ0IgNxDQAgBCABNgIAQQAgBiADcjYCjNCAgAAgASAENgIYIAEgATYCCCABIAE2AgwMAQsgAEEAQRkgAkEBdmsgAkEfRht0IQIgBCgCACEGAkADQCAGIgQoAgRBeHEgAEYNASACQR12IQYgAkEBdCECIAQgBkEEcWpBEGoiAygCACIGDQALIAMgATYCACABIAQ2AhggASABNgIMIAEgATYCCAwBCyAEKAIIIgAgATYCDCAEIAE2AgggAUEANgIYIAEgBDYCDCABIAA2AggLQQBBACgCqNCAgABBf2oiAUF/IAEbNgKo0ICAAAsLBAAAAAtOAAJAIAANAD8AQRB0DwsCQCAAQf//A3ENACAAQX9MDQACQCAAQRB2QAAiAEF/Rw0AQQBBMDYC+NOAgABBfw8LIABBEHQPCxDKgICAAAAL8gICA38BfgJAIAJFDQAgACABOgAAIAIgAGoiA0F/aiABOgAAIAJBA0kNACAAIAE6AAIgACABOgABIANBfWogAToAACADQX5qIAE6AAAgAkEHSQ0AIAAgAToAAyADQXxqIAE6AAAgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIFayICQSBJDQAgAa1CgYCAgBB+IQYgAyAFaiEBA0AgASAGNwMYIAEgBjcDECABIAY3AwggASAGNwMAIAFBIGohASACQWBqIgJBH0sNAAsLIAALC45IAQBBgAgLhkgBAAAAAgAAAAMAAAAAAAAAAAAAAAQAAAAFAAAAAAAAAAAAAAAGAAAABwAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEludmFsaWQgY2hhciBpbiB1cmwgcXVlcnkAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9ib2R5AENvbnRlbnQtTGVuZ3RoIG92ZXJmbG93AENodW5rIHNpemUgb3ZlcmZsb3cAUmVzcG9uc2Ugb3ZlcmZsb3cASW52YWxpZCBtZXRob2QgZm9yIEhUVFAveC54IHJlcXVlc3QASW52YWxpZCBtZXRob2QgZm9yIFJUU1AveC54IHJlcXVlc3QARXhwZWN0ZWQgU09VUkNFIG1ldGhvZCBmb3IgSUNFL3gueCByZXF1ZXN0AEludmFsaWQgY2hhciBpbiB1cmwgZnJhZ21lbnQgc3RhcnQARXhwZWN0ZWQgZG90AFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fc3RhdHVzAEludmFsaWQgcmVzcG9uc2Ugc3RhdHVzAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMAVXNlciBjYWxsYmFjayBlcnJvcgBgb25fcmVzZXRgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19oZWFkZXJgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8=' - this[kMockDispatch].times = repeatTimes - return this - } -} + /***/ + }, -/** - * Defines an interceptor for a Mock - */ -class MockInterceptor { - constructor (opts, mockDispatches) { - if (typeof opts !== 'object') { - throw new InvalidArgumentError('opts must be an object') - } - if (typeof opts.path === 'undefined') { - throw new InvalidArgumentError('opts.path must be defined') - } - if (typeof opts.method === 'undefined') { - opts.method = 'GET' - } - // See https://github.com/nodejs/undici/issues/1245 - // As per RFC 3986, clients are not supposed to send URI - // fragments to servers when they retrieve a document, - if (typeof opts.path === 'string') { - if (opts.query) { - opts.path = buildURL(opts.path, opts.query) - } else { - // Matches https://github.com/nodejs/undici/blob/main/lib/fetch/index.js#L1811 - const parsedURL = new URL(opts.path, 'data://') - opts.path = parsedURL.pathname + parsedURL.search + /***/ 95627: /***/ module => { + module.exports = + 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJsbGh0dHBfc3RhdHVzX25hbWUAIRpsbGh0dHBfc2V0X2xlbmllbnRfaGVhZGVycwAiIWxsaHR0cF9zZXRfbGVuaWVudF9jaHVua2VkX2xlbmd0aAAjHWxsaHR0cF9zZXRfbGVuaWVudF9rZWVwX2FsaXZlACQkbGxodHRwX3NldF9sZW5pZW50X3RyYW5zZmVyX2VuY29kaW5nACUYbGxodHRwX21lc3NhZ2VfbmVlZHNfZW9mAD8JFwEAQQELEQECAwQFCwYHNTk3MS8tJyspCrLgAkUCAAsIABCIgICAAAsZACAAEMKAgIAAGiAAIAI2AjggACABOgAoCxwAIAAgAC8BMiAALQAuIAAQwYCAgAAQgICAgAALKgEBf0HAABDGgICAACIBEMKAgIAAGiABQYCIgIAANgI4IAEgADoAKCABCwoAIAAQyICAgAALBwAgAC0AKAsHACAALQAqCwcAIAAtACsLBwAgAC0AKQsHACAALwEyCwcAIAAtAC4LRQEEfyAAKAIYIQEgAC0ALSECIAAtACghAyAAKAI4IQQgABDCgICAABogACAENgI4IAAgAzoAKCAAIAI6AC0gACABNgIYCxEAIAAgASABIAJqEMOAgIAACxAAIABBAEHcABDMgICAABoLZwEBf0EAIQECQCAAKAIMDQACQAJAAkACQCAALQAvDgMBAAMCCyAAKAI4IgFFDQAgASgCLCIBRQ0AIAAgARGAgICAAAAiAQ0DC0EADwsQyoCAgAAACyAAQcOWgIAANgIQQQ4hAQsgAQseAAJAIAAoAgwNACAAQdGbgIAANgIQIABBFTYCDAsLFgACQCAAKAIMQRVHDQAgAEEANgIMCwsWAAJAIAAoAgxBFkcNACAAQQA2AgwLCwcAIAAoAgwLBwAgACgCEAsJACAAIAE2AhALBwAgACgCFAsiAAJAIABBJEkNABDKgICAAAALIABBAnRBoLOAgABqKAIACyIAAkAgAEEuSQ0AEMqAgIAAAAsgAEECdEGwtICAAGooAgAL7gsBAX9B66iAgAAhAQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABBnH9qDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0Hhp4CAAA8LQaShgIAADwtBy6yAgAAPC0H+sYCAAA8LQcCkgIAADwtBq6SAgAAPC0GNqICAAA8LQeKmgIAADwtBgLCAgAAPC0G5r4CAAA8LQdekgIAADwtB75+AgAAPC0Hhn4CAAA8LQfqfgIAADwtB8qCAgAAPC0Gor4CAAA8LQa6ygIAADwtBiLCAgAAPC0Hsp4CAAA8LQYKigIAADwtBjp2AgAAPC0HQroCAAA8LQcqjgIAADwtBxbKAgAAPC0HfnICAAA8LQdKcgIAADwtBxKCAgAAPC0HXoICAAA8LQaKfgIAADwtB7a6AgAAPC0GrsICAAA8LQdSlgIAADwtBzK6AgAAPC0H6roCAAA8LQfyrgIAADwtB0rCAgAAPC0HxnYCAAA8LQbuggIAADwtB96uAgAAPC0GQsYCAAA8LQdexgIAADwtBoq2AgAAPC0HUp4CAAA8LQeCrgIAADwtBn6yAgAAPC0HrsYCAAA8LQdWfgIAADwtByrGAgAAPC0HepYCAAA8LQdSegIAADwtB9JyAgAAPC0GnsoCAAA8LQbGdgIAADwtBoJ2AgAAPC0G5sYCAAA8LQbywgIAADwtBkqGAgAAPC0GzpoCAAA8LQemsgIAADwtBrJ6AgAAPC0HUq4CAAA8LQfemgIAADwtBgKaAgAAPC0GwoYCAAA8LQf6egIAADwtBjaOAgAAPC0GJrYCAAA8LQfeigIAADwtBoLGAgAAPC0Gun4CAAA8LQcalgIAADwtB6J6AgAAPC0GTooCAAA8LQcKvgIAADwtBw52AgAAPC0GLrICAAA8LQeGdgIAADwtBja+AgAAPC0HqoYCAAA8LQbStgIAADwtB0q+AgAAPC0HfsoCAAA8LQdKygIAADwtB8LCAgAAPC0GpooCAAA8LQfmjgIAADwtBmZ6AgAAPC0G1rICAAA8LQZuwgIAADwtBkrKAgAAPC0G2q4CAAA8LQcKigIAADwtB+LKAgAAPC0GepYCAAA8LQdCigIAADwtBup6AgAAPC0GBnoCAAA8LEMqAgIAAAAtB1qGAgAAhAQsgAQsWACAAIAAtAC1B/gFxIAFBAEdyOgAtCxkAIAAgAC0ALUH9AXEgAUEAR0EBdHI6AC0LGQAgACAALQAtQfsBcSABQQBHQQJ0cjoALQsZACAAIAAtAC1B9wFxIAFBAEdBA3RyOgAtCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAgAiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCBCIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQcaRgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIwIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAggiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2ioCAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCNCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIMIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZqAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAjgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCECIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZWQgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAI8IgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAhQiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEGqm4CAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCQCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIYIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZOAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCJCIERQ0AIAAgBBGAgICAAAAhAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIsIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAigiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2iICAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCUCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIcIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABBwpmAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCICIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZSUgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAJMIgRFDQAgACAEEYCAgIAAACEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAlQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCWCIERQ0AIAAgBBGAgICAAAAhAwsgAwtFAQF/AkACQCAALwEwQRRxQRRHDQBBASEDIAAtAChBAUYNASAALwEyQeUARiEDDAELIAAtAClBBUYhAwsgACADOgAuQQAL/gEBA39BASEDAkAgAC8BMCIEQQhxDQAgACkDIEIAUiEDCwJAAkAgAC0ALkUNAEEBIQUgAC0AKUEFRg0BQQEhBSAEQcAAcUUgA3FBAUcNAQtBACEFIARBwABxDQBBAiEFIARB//8DcSIDQQhxDQACQCADQYAEcUUNAAJAIAAtAChBAUcNACAALQAtQQpxDQBBBQ8LQQQPCwJAIANBIHENAAJAIAAtAChBAUYNACAALwEyQf//A3EiAEGcf2pB5ABJDQAgAEHMAUYNACAAQbACRg0AQQQhBSAEQShxRQ0CIANBiARxQYAERg0CC0EADwtBAEEDIAApAyBQGyEFCyAFC2IBAn9BACEBAkAgAC0AKEEBRg0AIAAvATJB//8DcSICQZx/akHkAEkNACACQcwBRg0AIAJBsAJGDQAgAC8BMCIAQcAAcQ0AQQEhASAAQYgEcUGABEYNACAAQShxRSEBCyABC6cBAQN/AkACQAJAIAAtACpFDQAgAC0AK0UNAEEAIQMgAC8BMCIEQQJxRQ0BDAILQQAhAyAALwEwIgRBAXFFDQELQQEhAyAALQAoQQFGDQAgAC8BMkH//wNxIgVBnH9qQeQASQ0AIAVBzAFGDQAgBUGwAkYNACAEQcAAcQ0AQQAhAyAEQYgEcUGABEYNACAEQShxQQBHIQMLIABBADsBMCAAQQA6AC8gAwuZAQECfwJAAkACQCAALQAqRQ0AIAAtACtFDQBBACEBIAAvATAiAkECcUUNAQwCC0EAIQEgAC8BMCICQQFxRQ0BC0EBIQEgAC0AKEEBRg0AIAAvATJB//8DcSIAQZx/akHkAEkNACAAQcwBRg0AIABBsAJGDQAgAkHAAHENAEEAIQEgAkGIBHFBgARGDQAgAkEocUEARyEBCyABC0kBAXsgAEEQav0MAAAAAAAAAAAAAAAAAAAAACIB/QsDACAAIAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEBkgGTAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AbUBtgG3AcsBygG4AckBuQHIAboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBANwBC0EAIRAMxgELQQ4hEAzFAQtBDSEQDMQBC0EPIRAMwwELQRAhEAzCAQtBEyEQDMEBC0EUIRAMwAELQRUhEAy/AQtBFiEQDL4BC0EXIRAMvQELQRghEAy8AQtBGSEQDLsBC0EaIRAMugELQRshEAy5AQtBHCEQDLgBC0EIIRAMtwELQR0hEAy2AQtBICEQDLUBC0EfIRAMtAELQQchEAyzAQtBISEQDLIBC0EiIRAMsQELQR4hEAywAQtBIyEQDK8BC0ESIRAMrgELQREhEAytAQtBJCEQDKwBC0ElIRAMqwELQSYhEAyqAQtBJyEQDKkBC0HDASEQDKgBC0EpIRAMpwELQSshEAymAQtBLCEQDKUBC0EtIRAMpAELQS4hEAyjAQtBLyEQDKIBC0HEASEQDKEBC0EwIRAMoAELQTQhEAyfAQtBDCEQDJ4BC0ExIRAMnQELQTIhEAycAQtBMyEQDJsBC0E5IRAMmgELQTUhEAyZAQtBxQEhEAyYAQtBCyEQDJcBC0E6IRAMlgELQTYhEAyVAQtBCiEQDJQBC0E3IRAMkwELQTghEAySAQtBPCEQDJEBC0E7IRAMkAELQT0hEAyPAQtBCSEQDI4BC0EoIRAMjQELQT4hEAyMAQtBPyEQDIsBC0HAACEQDIoBC0HBACEQDIkBC0HCACEQDIgBC0HDACEQDIcBC0HEACEQDIYBC0HFACEQDIUBC0HGACEQDIQBC0EqIRAMgwELQccAIRAMggELQcgAIRAMgQELQckAIRAMgAELQcoAIRAMfwtBywAhEAx+C0HNACEQDH0LQcwAIRAMfAtBzgAhEAx7C0HPACEQDHoLQdAAIRAMeQtB0QAhEAx4C0HSACEQDHcLQdMAIRAMdgtB1AAhEAx1C0HWACEQDHQLQdUAIRAMcwtBBiEQDHILQdcAIRAMcQtBBSEQDHALQdgAIRAMbwtBBCEQDG4LQdkAIRAMbQtB2gAhEAxsC0HbACEQDGsLQdwAIRAMagtBAyEQDGkLQd0AIRAMaAtB3gAhEAxnC0HfACEQDGYLQeEAIRAMZQtB4AAhEAxkC0HiACEQDGMLQeMAIRAMYgtBAiEQDGELQeQAIRAMYAtB5QAhEAxfC0HmACEQDF4LQecAIRAMXQtB6AAhEAxcC0HpACEQDFsLQeoAIRAMWgtB6wAhEAxZC0HsACEQDFgLQe0AIRAMVwtB7gAhEAxWC0HvACEQDFULQfAAIRAMVAtB8QAhEAxTC0HyACEQDFILQfMAIRAMUQtB9AAhEAxQC0H1ACEQDE8LQfYAIRAMTgtB9wAhEAxNC0H4ACEQDEwLQfkAIRAMSwtB+gAhEAxKC0H7ACEQDEkLQfwAIRAMSAtB/QAhEAxHC0H+ACEQDEYLQf8AIRAMRQtBgAEhEAxEC0GBASEQDEMLQYIBIRAMQgtBgwEhEAxBC0GEASEQDEALQYUBIRAMPwtBhgEhEAw+C0GHASEQDD0LQYgBIRAMPAtBiQEhEAw7C0GKASEQDDoLQYsBIRAMOQtBjAEhEAw4C0GNASEQDDcLQY4BIRAMNgtBjwEhEAw1C0GQASEQDDQLQZEBIRAMMwtBkgEhEAwyC0GTASEQDDELQZQBIRAMMAtBlQEhEAwvC0GWASEQDC4LQZcBIRAMLQtBmAEhEAwsC0GZASEQDCsLQZoBIRAMKgtBmwEhEAwpC0GcASEQDCgLQZ0BIRAMJwtBngEhEAwmC0GfASEQDCULQaABIRAMJAtBoQEhEAwjC0GiASEQDCILQaMBIRAMIQtBpAEhEAwgC0GlASEQDB8LQaYBIRAMHgtBpwEhEAwdC0GoASEQDBwLQakBIRAMGwtBqgEhEAwaC0GrASEQDBkLQawBIRAMGAtBrQEhEAwXC0GuASEQDBYLQQEhEAwVC0GvASEQDBQLQbABIRAMEwtBsQEhEAwSC0GzASEQDBELQbIBIRAMEAtBtAEhEAwPC0G1ASEQDA4LQbYBIRAMDQtBtwEhEAwMC0G4ASEQDAsLQbkBIRAMCgtBugEhEAwJC0G7ASEQDAgLQcYBIRAMBwtBvAEhEAwGC0G9ASEQDAULQb4BIRAMBAtBvwEhEAwDC0HAASEQDAILQcIBIRAMAQtBwQEhEAsDQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB4fICEjJSg/QEFERUZHSElKS0xNT1BRUlPeA1dZW1xdYGJlZmdoaWprbG1vcHFyc3R1dnd4eXp7fH1+gAGCAYUBhgGHAYkBiwGMAY0BjgGPAZABkQGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAG1AbYBtwG4AbkBugG7AbwBvQG+Ab8BwAHBAcIBwwHEAcUBxgHHAcgByQHKAcsBzAHNAc4BzwHQAdEB0gHTAdQB1QHWAdcB2AHZAdoB2wHcAd0B3gHgAeEB4gHjAeQB5QHmAecB6AHpAeoB6wHsAe0B7gHvAfAB8QHyAfMBmQKkArAC/gL+AgsgASIEIAJHDfMBQd0BIRAM/wMLIAEiECACRw3dAUHDASEQDP4DCyABIgEgAkcNkAFB9wAhEAz9AwsgASIBIAJHDYYBQe8AIRAM/AMLIAEiASACRw1/QeoAIRAM+wMLIAEiASACRw17QegAIRAM+gMLIAEiASACRw14QeYAIRAM+QMLIAEiASACRw0aQRghEAz4AwsgASIBIAJHDRRBEiEQDPcDCyABIgEgAkcNWUHFACEQDPYDCyABIgEgAkcNSkE/IRAM9QMLIAEiASACRw1IQTwhEAz0AwsgASIBIAJHDUFBMSEQDPMDCyAALQAuQQFGDesDDIcCCyAAIAEiASACEMCAgIAAQQFHDeYBIABCADcDIAznAQsgACABIgEgAhC0gICAACIQDecBIAEhAQz1AgsCQCABIgEgAkcNAEEGIRAM8AMLIAAgAUEBaiIBIAIQu4CAgAAiEA3oASABIQEMMQsgAEIANwMgQRIhEAzVAwsgASIQIAJHDStBHSEQDO0DCwJAIAEiASACRg0AIAFBAWohAUEQIRAM1AMLQQchEAzsAwsgAEIAIAApAyAiESACIAEiEGutIhJ9IhMgEyARVhs3AyAgESASViIURQ3lAUEIIRAM6wMLAkAgASIBIAJGDQAgAEGJgICAADYCCCAAIAE2AgQgASEBQRQhEAzSAwtBCSEQDOoDCyABIQEgACkDIFAN5AEgASEBDPICCwJAIAEiASACRw0AQQshEAzpAwsgACABQQFqIgEgAhC2gICAACIQDeUBIAEhAQzyAgsgACABIgEgAhC4gICAACIQDeUBIAEhAQzyAgsgACABIgEgAhC4gICAACIQDeYBIAEhAQwNCyAAIAEiASACELqAgIAAIhAN5wEgASEBDPACCwJAIAEiASACRw0AQQ8hEAzlAwsgAS0AACIQQTtGDQggEEENRw3oASABQQFqIQEM7wILIAAgASIBIAIQuoCAgAAiEA3oASABIQEM8gILA0ACQCABLQAAQfC1gIAAai0AACIQQQFGDQAgEEECRw3rASAAKAIEIRAgAEEANgIEIAAgECABQQFqIgEQuYCAgAAiEA3qASABIQEM9AILIAFBAWoiASACRw0AC0ESIRAM4gMLIAAgASIBIAIQuoCAgAAiEA3pASABIQEMCgsgASIBIAJHDQZBGyEQDOADCwJAIAEiASACRw0AQRYhEAzgAwsgAEGKgICAADYCCCAAIAE2AgQgACABIAIQuICAgAAiEA3qASABIQFBICEQDMYDCwJAIAEiASACRg0AA0ACQCABLQAAQfC3gIAAai0AACIQQQJGDQACQCAQQX9qDgTlAewBAOsB7AELIAFBAWohAUEIIRAMyAMLIAFBAWoiASACRw0AC0EVIRAM3wMLQRUhEAzeAwsDQAJAIAEtAABB8LmAgABqLQAAIhBBAkYNACAQQX9qDgTeAewB4AHrAewBCyABQQFqIgEgAkcNAAtBGCEQDN0DCwJAIAEiASACRg0AIABBi4CAgAA2AgggACABNgIEIAEhAUEHIRAMxAMLQRkhEAzcAwsgAUEBaiEBDAILAkAgASIUIAJHDQBBGiEQDNsDCyAUIQECQCAULQAAQXNqDhTdAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAgDuAgtBACEQIABBADYCHCAAQa+LgIAANgIQIABBAjYCDCAAIBRBAWo2AhQM2gMLAkAgAS0AACIQQTtGDQAgEEENRw3oASABQQFqIQEM5QILIAFBAWohAQtBIiEQDL8DCwJAIAEiECACRw0AQRwhEAzYAwtCACERIBAhASAQLQAAQVBqDjfnAeYBAQIDBAUGBwgAAAAAAAAACQoLDA0OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPEBESExQAC0EeIRAMvQMLQgIhEQzlAQtCAyERDOQBC0IEIREM4wELQgUhEQziAQtCBiERDOEBC0IHIREM4AELQgghEQzfAQtCCSERDN4BC0IKIREM3QELQgshEQzcAQtCDCERDNsBC0INIREM2gELQg4hEQzZAQtCDyERDNgBC0IKIREM1wELQgshEQzWAQtCDCERDNUBC0INIREM1AELQg4hEQzTAQtCDyERDNIBC0IAIRECQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAtAABBUGoON+UB5AEAAQIDBAUGB+YB5gHmAeYB5gHmAeYBCAkKCwwN5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAQ4PEBESE+YBC0ICIREM5AELQgMhEQzjAQtCBCERDOIBC0IFIREM4QELQgYhEQzgAQtCByERDN8BC0IIIREM3gELQgkhEQzdAQtCCiERDNwBC0ILIREM2wELQgwhEQzaAQtCDSERDNkBC0IOIREM2AELQg8hEQzXAQtCCiERDNYBC0ILIREM1QELQgwhEQzUAQtCDSERDNMBC0IOIREM0gELQg8hEQzRAQsgAEIAIAApAyAiESACIAEiEGutIhJ9IhMgEyARVhs3AyAgESASViIURQ3SAUEfIRAMwAMLAkAgASIBIAJGDQAgAEGJgICAADYCCCAAIAE2AgQgASEBQSQhEAynAwtBICEQDL8DCyAAIAEiECACEL6AgIAAQX9qDgW2AQDFAgHRAdIBC0ERIRAMpAMLIABBAToALyAQIQEMuwMLIAEiASACRw3SAUEkIRAMuwMLIAEiDSACRw0eQcYAIRAMugMLIAAgASIBIAIQsoCAgAAiEA3UASABIQEMtQELIAEiECACRw0mQdAAIRAMuAMLAkAgASIBIAJHDQBBKCEQDLgDCyAAQQA2AgQgAEGMgICAADYCCCAAIAEgARCxgICAACIQDdMBIAEhAQzYAQsCQCABIhAgAkcNAEEpIRAMtwMLIBAtAAAiAUEgRg0UIAFBCUcN0wEgEEEBaiEBDBULAkAgASIBIAJGDQAgAUEBaiEBDBcLQSohEAy1AwsCQCABIhAgAkcNAEErIRAMtQMLAkAgEC0AACIBQQlGDQAgAUEgRw3VAQsgAC0ALEEIRg3TASAQIQEMkQMLAkAgASIBIAJHDQBBLCEQDLQDCyABLQAAQQpHDdUBIAFBAWohAQzJAgsgASIOIAJHDdUBQS8hEAyyAwsDQAJAIAEtAAAiEEEgRg0AAkAgEEF2ag4EANwB3AEA2gELIAEhAQzgAQsgAUEBaiIBIAJHDQALQTEhEAyxAwtBMiEQIAEiFCACRg2wAyACIBRrIAAoAgAiAWohFSAUIAFrQQNqIRYCQANAIBQtAAAiF0EgciAXIBdBv39qQf8BcUEaSRtB/wFxIAFB8LuAgABqLQAARw0BAkAgAUEDRw0AQQYhAQyWAwsgAUEBaiEBIBRBAWoiFCACRw0ACyAAIBU2AgAMsQMLIABBADYCACAUIQEM2QELQTMhECABIhQgAkYNrwMgAiAUayAAKAIAIgFqIRUgFCABa0EIaiEWAkADQCAULQAAIhdBIHIgFyAXQb9/akH/AXFBGkkbQf8BcSABQfS7gIAAai0AAEcNAQJAIAFBCEcNAEEFIQEMlQMLIAFBAWohASAUQQFqIhQgAkcNAAsgACAVNgIADLADCyAAQQA2AgAgFCEBDNgBC0E0IRAgASIUIAJGDa4DIAIgFGsgACgCACIBaiEVIBQgAWtBBWohFgJAA0AgFC0AACIXQSByIBcgF0G/f2pB/wFxQRpJG0H/AXEgAUHQwoCAAGotAABHDQECQCABQQVHDQBBByEBDJQDCyABQQFqIQEgFEEBaiIUIAJHDQALIAAgFTYCAAyvAwsgAEEANgIAIBQhAQzXAQsCQCABIgEgAkYNAANAAkAgAS0AAEGAvoCAAGotAAAiEEEBRg0AIBBBAkYNCiABIQEM3QELIAFBAWoiASACRw0AC0EwIRAMrgMLQTAhEAytAwsCQCABIgEgAkYNAANAAkAgAS0AACIQQSBGDQAgEEF2ag4E2QHaAdoB2QHaAQsgAUEBaiIBIAJHDQALQTghEAytAwtBOCEQDKwDCwNAAkAgAS0AACIQQSBGDQAgEEEJRw0DCyABQQFqIgEgAkcNAAtBPCEQDKsDCwNAAkAgAS0AACIQQSBGDQACQAJAIBBBdmoOBNoBAQHaAQALIBBBLEYN2wELIAEhAQwECyABQQFqIgEgAkcNAAtBPyEQDKoDCyABIQEM2wELQcAAIRAgASIUIAJGDagDIAIgFGsgACgCACIBaiEWIBQgAWtBBmohFwJAA0AgFC0AAEEgciABQYDAgIAAai0AAEcNASABQQZGDY4DIAFBAWohASAUQQFqIhQgAkcNAAsgACAWNgIADKkDCyAAQQA2AgAgFCEBC0E2IRAMjgMLAkAgASIPIAJHDQBBwQAhEAynAwsgAEGMgICAADYCCCAAIA82AgQgDyEBIAAtACxBf2oOBM0B1QHXAdkBhwMLIAFBAWohAQzMAQsCQCABIgEgAkYNAANAAkAgAS0AACIQQSByIBAgEEG/f2pB/wFxQRpJG0H/AXEiEEEJRg0AIBBBIEYNAAJAAkACQAJAIBBBnX9qDhMAAwMDAwMDAwEDAwMDAwMDAwMCAwsgAUEBaiEBQTEhEAyRAwsgAUEBaiEBQTIhEAyQAwsgAUEBaiEBQTMhEAyPAwsgASEBDNABCyABQQFqIgEgAkcNAAtBNSEQDKUDC0E1IRAMpAMLAkAgASIBIAJGDQADQAJAIAEtAABBgLyAgABqLQAAQQFGDQAgASEBDNMBCyABQQFqIgEgAkcNAAtBPSEQDKQDC0E9IRAMowMLIAAgASIBIAIQsICAgAAiEA3WASABIQEMAQsgEEEBaiEBC0E8IRAMhwMLAkAgASIBIAJHDQBBwgAhEAygAwsCQANAAkAgAS0AAEF3ag4YAAL+Av4ChAP+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gIA/gILIAFBAWoiASACRw0AC0HCACEQDKADCyABQQFqIQEgAC0ALUEBcUUNvQEgASEBC0EsIRAMhQMLIAEiASACRw3TAUHEACEQDJ0DCwNAAkAgAS0AAEGQwICAAGotAABBAUYNACABIQEMtwILIAFBAWoiASACRw0AC0HFACEQDJwDCyANLQAAIhBBIEYNswEgEEE6Rw2BAyAAKAIEIQEgAEEANgIEIAAgASANEK+AgIAAIgEN0AEgDUEBaiEBDLMCC0HHACEQIAEiDSACRg2aAyACIA1rIAAoAgAiAWohFiANIAFrQQVqIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQZDCgIAAai0AAEcNgAMgAUEFRg30AiABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyaAwtByAAhECABIg0gAkYNmQMgAiANayAAKAIAIgFqIRYgDSABa0EJaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUGWwoCAAGotAABHDf8CAkAgAUEJRw0AQQIhAQz1AgsgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMmQMLAkAgASINIAJHDQBByQAhEAyZAwsCQAJAIA0tAAAiAUEgciABIAFBv39qQf8BcUEaSRtB/wFxQZJ/ag4HAIADgAOAA4ADgAMBgAMLIA1BAWohAUE+IRAMgAMLIA1BAWohAUE/IRAM/wILQcoAIRAgASINIAJGDZcDIAIgDWsgACgCACIBaiEWIA0gAWtBAWohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFBoMKAgABqLQAARw39AiABQQFGDfACIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJcDC0HLACEQIAEiDSACRg2WAyACIA1rIAAoAgAiAWohFiANIAFrQQ5qIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQaLCgIAAai0AAEcN/AIgAUEORg3wAiABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyWAwtBzAAhECABIg0gAkYNlQMgAiANayAAKAIAIgFqIRYgDSABa0EPaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUHAwoCAAGotAABHDfsCAkAgAUEPRw0AQQMhAQzxAgsgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMlQMLQc0AIRAgASINIAJGDZQDIAIgDWsgACgCACIBaiEWIA0gAWtBBWohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFB0MKAgABqLQAARw36AgJAIAFBBUcNAEEEIQEM8AILIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJQDCwJAIAEiDSACRw0AQc4AIRAMlAMLAkACQAJAAkAgDS0AACIBQSByIAEgAUG/f2pB/wFxQRpJG0H/AXFBnX9qDhMA/QL9Av0C/QL9Av0C/QL9Av0C/QL9Av0CAf0C/QL9AgID/QILIA1BAWohAUHBACEQDP0CCyANQQFqIQFBwgAhEAz8AgsgDUEBaiEBQcMAIRAM+wILIA1BAWohAUHEACEQDPoCCwJAIAEiASACRg0AIABBjYCAgAA2AgggACABNgIEIAEhAUHFACEQDPoCC0HPACEQDJIDCyAQIQECQAJAIBAtAABBdmoOBAGoAqgCAKgCCyAQQQFqIQELQSchEAz4AgsCQCABIgEgAkcNAEHRACEQDJEDCwJAIAEtAABBIEYNACABIQEMjQELIAFBAWohASAALQAtQQFxRQ3HASABIQEMjAELIAEiFyACRw3IAUHSACEQDI8DC0HTACEQIAEiFCACRg2OAyACIBRrIAAoAgAiAWohFiAUIAFrQQFqIRcDQCAULQAAIAFB1sKAgABqLQAARw3MASABQQFGDccBIAFBAWohASAUQQFqIhQgAkcNAAsgACAWNgIADI4DCwJAIAEiASACRw0AQdUAIRAMjgMLIAEtAABBCkcNzAEgAUEBaiEBDMcBCwJAIAEiASACRw0AQdYAIRAMjQMLAkACQCABLQAAQXZqDgQAzQHNAQHNAQsgAUEBaiEBDMcBCyABQQFqIQFBygAhEAzzAgsgACABIgEgAhCugICAACIQDcsBIAEhAUHNACEQDPICCyAALQApQSJGDYUDDKYCCwJAIAEiASACRw0AQdsAIRAMigMLQQAhFEEBIRdBASEWQQAhEAJAAkACQAJAAkACQAJAAkACQCABLQAAQVBqDgrUAdMBAAECAwQFBgjVAQtBAiEQDAYLQQMhEAwFC0EEIRAMBAtBBSEQDAMLQQYhEAwCC0EHIRAMAQtBCCEQC0EAIRdBACEWQQAhFAzMAQtBCSEQQQEhFEEAIRdBACEWDMsBCwJAIAEiASACRw0AQd0AIRAMiQMLIAEtAABBLkcNzAEgAUEBaiEBDKYCCyABIgEgAkcNzAFB3wAhEAyHAwsCQCABIgEgAkYNACAAQY6AgIAANgIIIAAgATYCBCABIQFB0AAhEAzuAgtB4AAhEAyGAwtB4QAhECABIgEgAkYNhQMgAiABayAAKAIAIhRqIRYgASAUa0EDaiEXA0AgAS0AACAUQeLCgIAAai0AAEcNzQEgFEEDRg3MASAUQQFqIRQgAUEBaiIBIAJHDQALIAAgFjYCAAyFAwtB4gAhECABIgEgAkYNhAMgAiABayAAKAIAIhRqIRYgASAUa0ECaiEXA0AgAS0AACAUQebCgIAAai0AAEcNzAEgFEECRg3OASAUQQFqIRQgAUEBaiIBIAJHDQALIAAgFjYCAAyEAwtB4wAhECABIgEgAkYNgwMgAiABayAAKAIAIhRqIRYgASAUa0EDaiEXA0AgAS0AACAUQenCgIAAai0AAEcNywEgFEEDRg3OASAUQQFqIRQgAUEBaiIBIAJHDQALIAAgFjYCAAyDAwsCQCABIgEgAkcNAEHlACEQDIMDCyAAIAFBAWoiASACEKiAgIAAIhANzQEgASEBQdYAIRAM6QILAkAgASIBIAJGDQADQAJAIAEtAAAiEEEgRg0AAkACQAJAIBBBuH9qDgsAAc8BzwHPAc8BzwHPAc8BzwECzwELIAFBAWohAUHSACEQDO0CCyABQQFqIQFB0wAhEAzsAgsgAUEBaiEBQdQAIRAM6wILIAFBAWoiASACRw0AC0HkACEQDIIDC0HkACEQDIEDCwNAAkAgAS0AAEHwwoCAAGotAAAiEEEBRg0AIBBBfmoOA88B0AHRAdIBCyABQQFqIgEgAkcNAAtB5gAhEAyAAwsCQCABIgEgAkYNACABQQFqIQEMAwtB5wAhEAz/AgsDQAJAIAEtAABB8MSAgABqLQAAIhBBAUYNAAJAIBBBfmoOBNIB0wHUAQDVAQsgASEBQdcAIRAM5wILIAFBAWoiASACRw0AC0HoACEQDP4CCwJAIAEiASACRw0AQekAIRAM/gILAkAgAS0AACIQQXZqDhq6AdUB1QG8AdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAcoB1QHVAQDTAQsgAUEBaiEBC0EGIRAM4wILA0ACQCABLQAAQfDGgIAAai0AAEEBRg0AIAEhAQyeAgsgAUEBaiIBIAJHDQALQeoAIRAM+wILAkAgASIBIAJGDQAgAUEBaiEBDAMLQesAIRAM+gILAkAgASIBIAJHDQBB7AAhEAz6AgsgAUEBaiEBDAELAkAgASIBIAJHDQBB7QAhEAz5AgsgAUEBaiEBC0EEIRAM3gILAkAgASIUIAJHDQBB7gAhEAz3AgsgFCEBAkACQAJAIBQtAABB8MiAgABqLQAAQX9qDgfUAdUB1gEAnAIBAtcBCyAUQQFqIQEMCgsgFEEBaiEBDM0BC0EAIRAgAEEANgIcIABBm5KAgAA2AhAgAEEHNgIMIAAgFEEBajYCFAz2AgsCQANAAkAgAS0AAEHwyICAAGotAAAiEEEERg0AAkACQCAQQX9qDgfSAdMB1AHZAQAEAdkBCyABIQFB2gAhEAzgAgsgAUEBaiEBQdwAIRAM3wILIAFBAWoiASACRw0AC0HvACEQDPYCCyABQQFqIQEMywELAkAgASIUIAJHDQBB8AAhEAz1AgsgFC0AAEEvRw3UASAUQQFqIQEMBgsCQCABIhQgAkcNAEHxACEQDPQCCwJAIBQtAAAiAUEvRw0AIBRBAWohAUHdACEQDNsCCyABQXZqIgRBFksN0wFBASAEdEGJgIACcUUN0wEMygILAkAgASIBIAJGDQAgAUEBaiEBQd4AIRAM2gILQfIAIRAM8gILAkAgASIUIAJHDQBB9AAhEAzyAgsgFCEBAkAgFC0AAEHwzICAAGotAABBf2oOA8kClAIA1AELQeEAIRAM2AILAkAgASIUIAJGDQADQAJAIBQtAABB8MqAgABqLQAAIgFBA0YNAAJAIAFBf2oOAssCANUBCyAUIQFB3wAhEAzaAgsgFEEBaiIUIAJHDQALQfMAIRAM8QILQfMAIRAM8AILAkAgASIBIAJGDQAgAEGPgICAADYCCCAAIAE2AgQgASEBQeAAIRAM1wILQfUAIRAM7wILAkAgASIBIAJHDQBB9gAhEAzvAgsgAEGPgICAADYCCCAAIAE2AgQgASEBC0EDIRAM1AILA0AgAS0AAEEgRw3DAiABQQFqIgEgAkcNAAtB9wAhEAzsAgsCQCABIgEgAkcNAEH4ACEQDOwCCyABLQAAQSBHDc4BIAFBAWohAQzvAQsgACABIgEgAhCsgICAACIQDc4BIAEhAQyOAgsCQCABIgQgAkcNAEH6ACEQDOoCCyAELQAAQcwARw3RASAEQQFqIQFBEyEQDM8BCwJAIAEiBCACRw0AQfsAIRAM6QILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEANAIAQtAAAgAUHwzoCAAGotAABHDdABIAFBBUYNzgEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBB+wAhEAzoAgsCQCABIgQgAkcNAEH8ACEQDOgCCwJAAkAgBC0AAEG9f2oODADRAdEB0QHRAdEB0QHRAdEB0QHRAQHRAQsgBEEBaiEBQeYAIRAMzwILIARBAWohAUHnACEQDM4CCwJAIAEiBCACRw0AQf0AIRAM5wILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQe3PgIAAai0AAEcNzwEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQf0AIRAM5wILIABBADYCACAQQQFqIQFBECEQDMwBCwJAIAEiBCACRw0AQf4AIRAM5gILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQfbOgIAAai0AAEcNzgEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQf4AIRAM5gILIABBADYCACAQQQFqIQFBFiEQDMsBCwJAIAEiBCACRw0AQf8AIRAM5QILIAIgBGsgACgCACIBaiEUIAQgAWtBA2ohEAJAA0AgBC0AACABQfzOgIAAai0AAEcNzQEgAUEDRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQf8AIRAM5QILIABBADYCACAQQQFqIQFBBSEQDMoBCwJAIAEiBCACRw0AQYABIRAM5AILIAQtAABB2QBHDcsBIARBAWohAUEIIRAMyQELAkAgASIEIAJHDQBBgQEhEAzjAgsCQAJAIAQtAABBsn9qDgMAzAEBzAELIARBAWohAUHrACEQDMoCCyAEQQFqIQFB7AAhEAzJAgsCQCABIgQgAkcNAEGCASEQDOICCwJAAkAgBC0AAEG4f2oOCADLAcsBywHLAcsBywEBywELIARBAWohAUHqACEQDMkCCyAEQQFqIQFB7QAhEAzIAgsCQCABIgQgAkcNAEGDASEQDOECCyACIARrIAAoAgAiAWohECAEIAFrQQJqIRQCQANAIAQtAAAgAUGAz4CAAGotAABHDckBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgEDYCAEGDASEQDOECC0EAIRAgAEEANgIAIBRBAWohAQzGAQsCQCABIgQgAkcNAEGEASEQDOACCyACIARrIAAoAgAiAWohFCAEIAFrQQRqIRACQANAIAQtAAAgAUGDz4CAAGotAABHDcgBIAFBBEYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGEASEQDOACCyAAQQA2AgAgEEEBaiEBQSMhEAzFAQsCQCABIgQgAkcNAEGFASEQDN8CCwJAAkAgBC0AAEG0f2oOCADIAcgByAHIAcgByAEByAELIARBAWohAUHvACEQDMYCCyAEQQFqIQFB8AAhEAzFAgsCQCABIgQgAkcNAEGGASEQDN4CCyAELQAAQcUARw3FASAEQQFqIQEMgwILAkAgASIEIAJHDQBBhwEhEAzdAgsgAiAEayAAKAIAIgFqIRQgBCABa0EDaiEQAkADQCAELQAAIAFBiM+AgABqLQAARw3FASABQQNGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBhwEhEAzdAgsgAEEANgIAIBBBAWohAUEtIRAMwgELAkAgASIEIAJHDQBBiAEhEAzcAgsgAiAEayAAKAIAIgFqIRQgBCABa0EIaiEQAkADQCAELQAAIAFB0M+AgABqLQAARw3EASABQQhGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBiAEhEAzcAgsgAEEANgIAIBBBAWohAUEpIRAMwQELAkAgASIBIAJHDQBBiQEhEAzbAgtBASEQIAEtAABB3wBHDcABIAFBAWohAQyBAgsCQCABIgQgAkcNAEGKASEQDNoCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRADQCAELQAAIAFBjM+AgABqLQAARw3BASABQQFGDa8CIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYoBIRAM2QILAkAgASIEIAJHDQBBiwEhEAzZAgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFBjs+AgABqLQAARw3BASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBiwEhEAzZAgsgAEEANgIAIBBBAWohAUECIRAMvgELAkAgASIEIAJHDQBBjAEhEAzYAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFB8M+AgABqLQAARw3AASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBjAEhEAzYAgsgAEEANgIAIBBBAWohAUEfIRAMvQELAkAgASIEIAJHDQBBjQEhEAzXAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFB8s+AgABqLQAARw2/ASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBjQEhEAzXAgsgAEEANgIAIBBBAWohAUEJIRAMvAELAkAgASIEIAJHDQBBjgEhEAzWAgsCQAJAIAQtAABBt39qDgcAvwG/Ab8BvwG/AQG/AQsgBEEBaiEBQfgAIRAMvQILIARBAWohAUH5ACEQDLwCCwJAIAEiBCACRw0AQY8BIRAM1QILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQZHPgIAAai0AAEcNvQEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQY8BIRAM1QILIABBADYCACAQQQFqIQFBGCEQDLoBCwJAIAEiBCACRw0AQZABIRAM1AILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQZfPgIAAai0AAEcNvAEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZABIRAM1AILIABBADYCACAQQQFqIQFBFyEQDLkBCwJAIAEiBCACRw0AQZEBIRAM0wILIAIgBGsgACgCACIBaiEUIAQgAWtBBmohEAJAA0AgBC0AACABQZrPgIAAai0AAEcNuwEgAUEGRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZEBIRAM0wILIABBADYCACAQQQFqIQFBFSEQDLgBCwJAIAEiBCACRw0AQZIBIRAM0gILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQaHPgIAAai0AAEcNugEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZIBIRAM0gILIABBADYCACAQQQFqIQFBHiEQDLcBCwJAIAEiBCACRw0AQZMBIRAM0QILIAQtAABBzABHDbgBIARBAWohAUEKIRAMtgELAkAgBCACRw0AQZQBIRAM0AILAkACQCAELQAAQb9/ag4PALkBuQG5AbkBuQG5AbkBuQG5AbkBuQG5AbkBAbkBCyAEQQFqIQFB/gAhEAy3AgsgBEEBaiEBQf8AIRAMtgILAkAgBCACRw0AQZUBIRAMzwILAkACQCAELQAAQb9/ag4DALgBAbgBCyAEQQFqIQFB/QAhEAy2AgsgBEEBaiEEQYABIRAMtQILAkAgBCACRw0AQZYBIRAMzgILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQafPgIAAai0AAEcNtgEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZYBIRAMzgILIABBADYCACAQQQFqIQFBCyEQDLMBCwJAIAQgAkcNAEGXASEQDM0CCwJAAkACQAJAIAQtAABBU2oOIwC4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBAbgBuAG4AbgBuAECuAG4AbgBA7gBCyAEQQFqIQFB+wAhEAy2AgsgBEEBaiEBQfwAIRAMtQILIARBAWohBEGBASEQDLQCCyAEQQFqIQRBggEhEAyzAgsCQCAEIAJHDQBBmAEhEAzMAgsgAiAEayAAKAIAIgFqIRQgBCABa0EEaiEQAkADQCAELQAAIAFBqc+AgABqLQAARw20ASABQQRGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBmAEhEAzMAgsgAEEANgIAIBBBAWohAUEZIRAMsQELAkAgBCACRw0AQZkBIRAMywILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQa7PgIAAai0AAEcNswEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZkBIRAMywILIABBADYCACAQQQFqIQFBBiEQDLABCwJAIAQgAkcNAEGaASEQDMoCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUG0z4CAAGotAABHDbIBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGaASEQDMoCCyAAQQA2AgAgEEEBaiEBQRwhEAyvAQsCQCAEIAJHDQBBmwEhEAzJAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBts+AgABqLQAARw2xASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBmwEhEAzJAgsgAEEANgIAIBBBAWohAUEnIRAMrgELAkAgBCACRw0AQZwBIRAMyAILAkACQCAELQAAQax/ag4CAAGxAQsgBEEBaiEEQYYBIRAMrwILIARBAWohBEGHASEQDK4CCwJAIAQgAkcNAEGdASEQDMcCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUG4z4CAAGotAABHDa8BIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGdASEQDMcCCyAAQQA2AgAgEEEBaiEBQSYhEAysAQsCQCAEIAJHDQBBngEhEAzGAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBus+AgABqLQAARw2uASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBngEhEAzGAgsgAEEANgIAIBBBAWohAUEDIRAMqwELAkAgBCACRw0AQZ8BIRAMxQILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQe3PgIAAai0AAEcNrQEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZ8BIRAMxQILIABBADYCACAQQQFqIQFBDCEQDKoBCwJAIAQgAkcNAEGgASEQDMQCCyACIARrIAAoAgAiAWohFCAEIAFrQQNqIRACQANAIAQtAAAgAUG8z4CAAGotAABHDawBIAFBA0YNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGgASEQDMQCCyAAQQA2AgAgEEEBaiEBQQ0hEAypAQsCQCAEIAJHDQBBoQEhEAzDAgsCQAJAIAQtAABBun9qDgsArAGsAawBrAGsAawBrAGsAawBAawBCyAEQQFqIQRBiwEhEAyqAgsgBEEBaiEEQYwBIRAMqQILAkAgBCACRw0AQaIBIRAMwgILIAQtAABB0ABHDakBIARBAWohBAzpAQsCQCAEIAJHDQBBowEhEAzBAgsCQAJAIAQtAABBt39qDgcBqgGqAaoBqgGqAQCqAQsgBEEBaiEEQY4BIRAMqAILIARBAWohAUEiIRAMpgELAkAgBCACRw0AQaQBIRAMwAILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQcDPgIAAai0AAEcNqAEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQaQBIRAMwAILIABBADYCACAQQQFqIQFBHSEQDKUBCwJAIAQgAkcNAEGlASEQDL8CCwJAAkAgBC0AAEGuf2oOAwCoAQGoAQsgBEEBaiEEQZABIRAMpgILIARBAWohAUEEIRAMpAELAkAgBCACRw0AQaYBIRAMvgILAkACQAJAAkACQCAELQAAQb9/ag4VAKoBqgGqAaoBqgGqAaoBqgGqAaoBAaoBqgECqgGqAQOqAaoBBKoBCyAEQQFqIQRBiAEhEAyoAgsgBEEBaiEEQYkBIRAMpwILIARBAWohBEGKASEQDKYCCyAEQQFqIQRBjwEhEAylAgsgBEEBaiEEQZEBIRAMpAILAkAgBCACRw0AQacBIRAMvQILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQe3PgIAAai0AAEcNpQEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQacBIRAMvQILIABBADYCACAQQQFqIQFBESEQDKIBCwJAIAQgAkcNAEGoASEQDLwCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHCz4CAAGotAABHDaQBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGoASEQDLwCCyAAQQA2AgAgEEEBaiEBQSwhEAyhAQsCQCAEIAJHDQBBqQEhEAy7AgsgAiAEayAAKAIAIgFqIRQgBCABa0EEaiEQAkADQCAELQAAIAFBxc+AgABqLQAARw2jASABQQRGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBqQEhEAy7AgsgAEEANgIAIBBBAWohAUErIRAMoAELAkAgBCACRw0AQaoBIRAMugILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQcrPgIAAai0AAEcNogEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQaoBIRAMugILIABBADYCACAQQQFqIQFBFCEQDJ8BCwJAIAQgAkcNAEGrASEQDLkCCwJAAkACQAJAIAQtAABBvn9qDg8AAQKkAaQBpAGkAaQBpAGkAaQBpAGkAaQBA6QBCyAEQQFqIQRBkwEhEAyiAgsgBEEBaiEEQZQBIRAMoQILIARBAWohBEGVASEQDKACCyAEQQFqIQRBlgEhEAyfAgsCQCAEIAJHDQBBrAEhEAy4AgsgBC0AAEHFAEcNnwEgBEEBaiEEDOABCwJAIAQgAkcNAEGtASEQDLcCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHNz4CAAGotAABHDZ8BIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGtASEQDLcCCyAAQQA2AgAgEEEBaiEBQQ4hEAycAQsCQCAEIAJHDQBBrgEhEAy2AgsgBC0AAEHQAEcNnQEgBEEBaiEBQSUhEAybAQsCQCAEIAJHDQBBrwEhEAy1AgsgAiAEayAAKAIAIgFqIRQgBCABa0EIaiEQAkADQCAELQAAIAFB0M+AgABqLQAARw2dASABQQhGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBrwEhEAy1AgsgAEEANgIAIBBBAWohAUEqIRAMmgELAkAgBCACRw0AQbABIRAMtAILAkACQCAELQAAQat/ag4LAJ0BnQGdAZ0BnQGdAZ0BnQGdAQGdAQsgBEEBaiEEQZoBIRAMmwILIARBAWohBEGbASEQDJoCCwJAIAQgAkcNAEGxASEQDLMCCwJAAkAgBC0AAEG/f2oOFACcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAEBnAELIARBAWohBEGZASEQDJoCCyAEQQFqIQRBnAEhEAyZAgsCQCAEIAJHDQBBsgEhEAyyAgsgAiAEayAAKAIAIgFqIRQgBCABa0EDaiEQAkADQCAELQAAIAFB2c+AgABqLQAARw2aASABQQNGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBsgEhEAyyAgsgAEEANgIAIBBBAWohAUEhIRAMlwELAkAgBCACRw0AQbMBIRAMsQILIAIgBGsgACgCACIBaiEUIAQgAWtBBmohEAJAA0AgBC0AACABQd3PgIAAai0AAEcNmQEgAUEGRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbMBIRAMsQILIABBADYCACAQQQFqIQFBGiEQDJYBCwJAIAQgAkcNAEG0ASEQDLACCwJAAkACQCAELQAAQbt/ag4RAJoBmgGaAZoBmgGaAZoBmgGaAQGaAZoBmgGaAZoBApoBCyAEQQFqIQRBnQEhEAyYAgsgBEEBaiEEQZ4BIRAMlwILIARBAWohBEGfASEQDJYCCwJAIAQgAkcNAEG1ASEQDK8CCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUHkz4CAAGotAABHDZcBIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG1ASEQDK8CCyAAQQA2AgAgEEEBaiEBQSghEAyUAQsCQCAEIAJHDQBBtgEhEAyuAgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFB6s+AgABqLQAARw2WASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBtgEhEAyuAgsgAEEANgIAIBBBAWohAUEHIRAMkwELAkAgBCACRw0AQbcBIRAMrQILAkACQCAELQAAQbt/ag4OAJYBlgGWAZYBlgGWAZYBlgGWAZYBlgGWAQGWAQsgBEEBaiEEQaEBIRAMlAILIARBAWohBEGiASEQDJMCCwJAIAQgAkcNAEG4ASEQDKwCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDZQBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG4ASEQDKwCCyAAQQA2AgAgEEEBaiEBQRIhEAyRAQsCQCAEIAJHDQBBuQEhEAyrAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFB8M+AgABqLQAARw2TASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBuQEhEAyrAgsgAEEANgIAIBBBAWohAUEgIRAMkAELAkAgBCACRw0AQboBIRAMqgILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfLPgIAAai0AAEcNkgEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQboBIRAMqgILIABBADYCACAQQQFqIQFBDyEQDI8BCwJAIAQgAkcNAEG7ASEQDKkCCwJAAkAgBC0AAEG3f2oOBwCSAZIBkgGSAZIBAZIBCyAEQQFqIQRBpQEhEAyQAgsgBEEBaiEEQaYBIRAMjwILAkAgBCACRw0AQbwBIRAMqAILIAIgBGsgACgCACIBaiEUIAQgAWtBB2ohEAJAA0AgBC0AACABQfTPgIAAai0AAEcNkAEgAUEHRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbwBIRAMqAILIABBADYCACAQQQFqIQFBGyEQDI0BCwJAIAQgAkcNAEG9ASEQDKcCCwJAAkACQCAELQAAQb5/ag4SAJEBkQGRAZEBkQGRAZEBkQGRAQGRAZEBkQGRAZEBkQECkQELIARBAWohBEGkASEQDI8CCyAEQQFqIQRBpwEhEAyOAgsgBEEBaiEEQagBIRAMjQILAkAgBCACRw0AQb4BIRAMpgILIAQtAABBzgBHDY0BIARBAWohBAzPAQsCQCAEIAJHDQBBvwEhEAylAgsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAELQAAQb9/ag4VAAECA5wBBAUGnAGcAZwBBwgJCgucAQwNDg+cAQsgBEEBaiEBQegAIRAMmgILIARBAWohAUHpACEQDJkCCyAEQQFqIQFB7gAhEAyYAgsgBEEBaiEBQfIAIRAMlwILIARBAWohAUHzACEQDJYCCyAEQQFqIQFB9gAhEAyVAgsgBEEBaiEBQfcAIRAMlAILIARBAWohAUH6ACEQDJMCCyAEQQFqIQRBgwEhEAySAgsgBEEBaiEEQYQBIRAMkQILIARBAWohBEGFASEQDJACCyAEQQFqIQRBkgEhEAyPAgsgBEEBaiEEQZgBIRAMjgILIARBAWohBEGgASEQDI0CCyAEQQFqIQRBowEhEAyMAgsgBEEBaiEEQaoBIRAMiwILAkAgBCACRg0AIABBkICAgAA2AgggACAENgIEQasBIRAMiwILQcABIRAMowILIAAgBSACEKqAgIAAIgENiwEgBSEBDFwLAkAgBiACRg0AIAZBAWohBQyNAQtBwgEhEAyhAgsDQAJAIBAtAABBdmoOBIwBAACPAQALIBBBAWoiECACRw0AC0HDASEQDKACCwJAIAcgAkYNACAAQZGAgIAANgIIIAAgBzYCBCAHIQFBASEQDIcCC0HEASEQDJ8CCwJAIAcgAkcNAEHFASEQDJ8CCwJAAkAgBy0AAEF2ag4EAc4BzgEAzgELIAdBAWohBgyNAQsgB0EBaiEFDIkBCwJAIAcgAkcNAEHGASEQDJ4CCwJAAkAgBy0AAEF2ag4XAY8BjwEBjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BAI8BCyAHQQFqIQcLQbABIRAMhAILAkAgCCACRw0AQcgBIRAMnQILIAgtAABBIEcNjQEgAEEAOwEyIAhBAWohAUGzASEQDIMCCyABIRcCQANAIBciByACRg0BIActAABBUGpB/wFxIhBBCk8NzAECQCAALwEyIhRBmTNLDQAgACAUQQpsIhQ7ATIgEEH//wNzIBRB/v8DcUkNACAHQQFqIRcgACAUIBBqIhA7ATIgEEH//wNxQegHSQ0BCwtBACEQIABBADYCHCAAQcGJgIAANgIQIABBDTYCDCAAIAdBAWo2AhQMnAILQccBIRAMmwILIAAgCCACEK6AgIAAIhBFDcoBIBBBFUcNjAEgAEHIATYCHCAAIAg2AhQgAEHJl4CAADYCECAAQRU2AgxBACEQDJoCCwJAIAkgAkcNAEHMASEQDJoCC0EAIRRBASEXQQEhFkEAIRACQAJAAkACQAJAAkACQAJAAkAgCS0AAEFQag4KlgGVAQABAgMEBQYIlwELQQIhEAwGC0EDIRAMBQtBBCEQDAQLQQUhEAwDC0EGIRAMAgtBByEQDAELQQghEAtBACEXQQAhFkEAIRQMjgELQQkhEEEBIRRBACEXQQAhFgyNAQsCQCAKIAJHDQBBzgEhEAyZAgsgCi0AAEEuRw2OASAKQQFqIQkMygELIAsgAkcNjgFB0AEhEAyXAgsCQCALIAJGDQAgAEGOgICAADYCCCAAIAs2AgRBtwEhEAz+AQtB0QEhEAyWAgsCQCAEIAJHDQBB0gEhEAyWAgsgAiAEayAAKAIAIhBqIRQgBCAQa0EEaiELA0AgBC0AACAQQfzPgIAAai0AAEcNjgEgEEEERg3pASAQQQFqIRAgBEEBaiIEIAJHDQALIAAgFDYCAEHSASEQDJUCCyAAIAwgAhCsgICAACIBDY0BIAwhAQy4AQsCQCAEIAJHDQBB1AEhEAyUAgsgAiAEayAAKAIAIhBqIRQgBCAQa0EBaiEMA0AgBC0AACAQQYHQgIAAai0AAEcNjwEgEEEBRg2OASAQQQFqIRAgBEEBaiIEIAJHDQALIAAgFDYCAEHUASEQDJMCCwJAIAQgAkcNAEHWASEQDJMCCyACIARrIAAoAgAiEGohFCAEIBBrQQJqIQsDQCAELQAAIBBBg9CAgABqLQAARw2OASAQQQJGDZABIBBBAWohECAEQQFqIgQgAkcNAAsgACAUNgIAQdYBIRAMkgILAkAgBCACRw0AQdcBIRAMkgILAkACQCAELQAAQbt/ag4QAI8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwEBjwELIARBAWohBEG7ASEQDPkBCyAEQQFqIQRBvAEhEAz4AQsCQCAEIAJHDQBB2AEhEAyRAgsgBC0AAEHIAEcNjAEgBEEBaiEEDMQBCwJAIAQgAkYNACAAQZCAgIAANgIIIAAgBDYCBEG+ASEQDPcBC0HZASEQDI8CCwJAIAQgAkcNAEHaASEQDI8CCyAELQAAQcgARg3DASAAQQE6ACgMuQELIABBAjoALyAAIAQgAhCmgICAACIQDY0BQcIBIRAM9AELIAAtAChBf2oOArcBuQG4AQsDQAJAIAQtAABBdmoOBACOAY4BAI4BCyAEQQFqIgQgAkcNAAtB3QEhEAyLAgsgAEEAOgAvIAAtAC1BBHFFDYQCCyAAQQA6AC8gAEEBOgA0IAEhAQyMAQsgEEEVRg3aASAAQQA2AhwgACABNgIUIABBp46AgAA2AhAgAEESNgIMQQAhEAyIAgsCQCAAIBAgAhC0gICAACIEDQAgECEBDIECCwJAIARBFUcNACAAQQM2AhwgACAQNgIUIABBsJiAgAA2AhAgAEEVNgIMQQAhEAyIAgsgAEEANgIcIAAgEDYCFCAAQaeOgIAANgIQIABBEjYCDEEAIRAMhwILIBBBFUYN1gEgAEEANgIcIAAgATYCFCAAQdqNgIAANgIQIABBFDYCDEEAIRAMhgILIAAoAgQhFyAAQQA2AgQgECARp2oiFiEBIAAgFyAQIBYgFBsiEBC1gICAACIURQ2NASAAQQc2AhwgACAQNgIUIAAgFDYCDEEAIRAMhQILIAAgAC8BMEGAAXI7ATAgASEBC0EqIRAM6gELIBBBFUYN0QEgAEEANgIcIAAgATYCFCAAQYOMgIAANgIQIABBEzYCDEEAIRAMggILIBBBFUYNzwEgAEEANgIcIAAgATYCFCAAQZqPgIAANgIQIABBIjYCDEEAIRAMgQILIAAoAgQhECAAQQA2AgQCQCAAIBAgARC3gICAACIQDQAgAUEBaiEBDI0BCyAAQQw2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAMgAILIBBBFUYNzAEgAEEANgIcIAAgATYCFCAAQZqPgIAANgIQIABBIjYCDEEAIRAM/wELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC3gICAACIQDQAgAUEBaiEBDIwBCyAAQQ02AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM/gELIBBBFUYNyQEgAEEANgIcIAAgATYCFCAAQcaMgIAANgIQIABBIzYCDEEAIRAM/QELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC5gICAACIQDQAgAUEBaiEBDIsBCyAAQQ42AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM/AELIABBADYCHCAAIAE2AhQgAEHAlYCAADYCECAAQQI2AgxBACEQDPsBCyAQQRVGDcUBIABBADYCHCAAIAE2AhQgAEHGjICAADYCECAAQSM2AgxBACEQDPoBCyAAQRA2AhwgACABNgIUIAAgEDYCDEEAIRAM+QELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARC5gICAACIEDQAgAUEBaiEBDPEBCyAAQRE2AhwgACAENgIMIAAgAUEBajYCFEEAIRAM+AELIBBBFUYNwQEgAEEANgIcIAAgATYCFCAAQcaMgIAANgIQIABBIzYCDEEAIRAM9wELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC5gICAACIQDQAgAUEBaiEBDIgBCyAAQRM2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM9gELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARC5gICAACIEDQAgAUEBaiEBDO0BCyAAQRQ2AhwgACAENgIMIAAgAUEBajYCFEEAIRAM9QELIBBBFUYNvQEgAEEANgIcIAAgATYCFCAAQZqPgIAANgIQIABBIjYCDEEAIRAM9AELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC3gICAACIQDQAgAUEBaiEBDIYBCyAAQRY2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM8wELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARC3gICAACIEDQAgAUEBaiEBDOkBCyAAQRc2AhwgACAENgIMIAAgAUEBajYCFEEAIRAM8gELIABBADYCHCAAIAE2AhQgAEHNk4CAADYCECAAQQw2AgxBACEQDPEBC0IBIRELIBBBAWohAQJAIAApAyAiEkL//////////w9WDQAgACASQgSGIBGENwMgIAEhAQyEAQsgAEEANgIcIAAgATYCFCAAQa2JgIAANgIQIABBDDYCDEEAIRAM7wELIABBADYCHCAAIBA2AhQgAEHNk4CAADYCECAAQQw2AgxBACEQDO4BCyAAKAIEIRcgAEEANgIEIBAgEadqIhYhASAAIBcgECAWIBQbIhAQtYCAgAAiFEUNcyAAQQU2AhwgACAQNgIUIAAgFDYCDEEAIRAM7QELIABBADYCHCAAIBA2AhQgAEGqnICAADYCECAAQQ82AgxBACEQDOwBCyAAIBAgAhC0gICAACIBDQEgECEBC0EOIRAM0QELAkAgAUEVRw0AIABBAjYCHCAAIBA2AhQgAEGwmICAADYCECAAQRU2AgxBACEQDOoBCyAAQQA2AhwgACAQNgIUIABBp46AgAA2AhAgAEESNgIMQQAhEAzpAQsgAUEBaiEQAkAgAC8BMCIBQYABcUUNAAJAIAAgECACELuAgIAAIgENACAQIQEMcAsgAUEVRw26ASAAQQU2AhwgACAQNgIUIABB+ZeAgAA2AhAgAEEVNgIMQQAhEAzpAQsCQCABQaAEcUGgBEcNACAALQAtQQJxDQAgAEEANgIcIAAgEDYCFCAAQZaTgIAANgIQIABBBDYCDEEAIRAM6QELIAAgECACEL2AgIAAGiAQIQECQAJAAkACQAJAIAAgECACELOAgIAADhYCAQAEBAQEBAQEBAQEBAQEBAQEBAQDBAsgAEEBOgAuCyAAIAAvATBBwAByOwEwIBAhAQtBJiEQDNEBCyAAQSM2AhwgACAQNgIUIABBpZaAgAA2AhAgAEEVNgIMQQAhEAzpAQsgAEEANgIcIAAgEDYCFCAAQdWLgIAANgIQIABBETYCDEEAIRAM6AELIAAtAC1BAXFFDQFBwwEhEAzOAQsCQCANIAJGDQADQAJAIA0tAABBIEYNACANIQEMxAELIA1BAWoiDSACRw0AC0ElIRAM5wELQSUhEAzmAQsgACgCBCEEIABBADYCBCAAIAQgDRCvgICAACIERQ2tASAAQSY2AhwgACAENgIMIAAgDUEBajYCFEEAIRAM5QELIBBBFUYNqwEgAEEANgIcIAAgATYCFCAAQf2NgIAANgIQIABBHTYCDEEAIRAM5AELIABBJzYCHCAAIAE2AhQgACAQNgIMQQAhEAzjAQsgECEBQQEhFAJAAkACQAJAAkACQAJAIAAtACxBfmoOBwYFBQMBAgAFCyAAIAAvATBBCHI7ATAMAwtBAiEUDAELQQQhFAsgAEEBOgAsIAAgAC8BMCAUcjsBMAsgECEBC0ErIRAMygELIABBADYCHCAAIBA2AhQgAEGrkoCAADYCECAAQQs2AgxBACEQDOIBCyAAQQA2AhwgACABNgIUIABB4Y+AgAA2AhAgAEEKNgIMQQAhEAzhAQsgAEEAOgAsIBAhAQy9AQsgECEBQQEhFAJAAkACQAJAAkAgAC0ALEF7ag4EAwECAAULIAAgAC8BMEEIcjsBMAwDC0ECIRQMAQtBBCEUCyAAQQE6ACwgACAALwEwIBRyOwEwCyAQIQELQSkhEAzFAQsgAEEANgIcIAAgATYCFCAAQfCUgIAANgIQIABBAzYCDEEAIRAM3QELAkAgDi0AAEENRw0AIAAoAgQhASAAQQA2AgQCQCAAIAEgDhCxgICAACIBDQAgDkEBaiEBDHULIABBLDYCHCAAIAE2AgwgACAOQQFqNgIUQQAhEAzdAQsgAC0ALUEBcUUNAUHEASEQDMMBCwJAIA4gAkcNAEEtIRAM3AELAkACQANAAkAgDi0AAEF2ag4EAgAAAwALIA5BAWoiDiACRw0AC0EtIRAM3QELIAAoAgQhASAAQQA2AgQCQCAAIAEgDhCxgICAACIBDQAgDiEBDHQLIABBLDYCHCAAIA42AhQgACABNgIMQQAhEAzcAQsgACgCBCEBIABBADYCBAJAIAAgASAOELGAgIAAIgENACAOQQFqIQEMcwsgAEEsNgIcIAAgATYCDCAAIA5BAWo2AhRBACEQDNsBCyAAKAIEIQQgAEEANgIEIAAgBCAOELGAgIAAIgQNoAEgDiEBDM4BCyAQQSxHDQEgAUEBaiEQQQEhAQJAAkACQAJAAkAgAC0ALEF7ag4EAwECBAALIBAhAQwEC0ECIQEMAQtBBCEBCyAAQQE6ACwgACAALwEwIAFyOwEwIBAhAQwBCyAAIAAvATBBCHI7ATAgECEBC0E5IRAMvwELIABBADoALCABIQELQTQhEAy9AQsgACAALwEwQSByOwEwIAEhAQwCCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQsYCAgAAiBA0AIAEhAQzHAQsgAEE3NgIcIAAgATYCFCAAIAQ2AgxBACEQDNQBCyAAQQg6ACwgASEBC0EwIRAMuQELAkAgAC0AKEEBRg0AIAEhAQwECyAALQAtQQhxRQ2TASABIQEMAwsgAC0AMEEgcQ2UAUHFASEQDLcBCwJAIA8gAkYNAAJAA0ACQCAPLQAAQVBqIgFB/wFxQQpJDQAgDyEBQTUhEAy6AQsgACkDICIRQpmz5syZs+bMGVYNASAAIBFCCn4iETcDICARIAGtQv8BgyISQn+FVg0BIAAgESASfDcDICAPQQFqIg8gAkcNAAtBOSEQDNEBCyAAKAIEIQIgAEEANgIEIAAgAiAPQQFqIgQQsYCAgAAiAg2VASAEIQEMwwELQTkhEAzPAQsCQCAALwEwIgFBCHFFDQAgAC0AKEEBRw0AIAAtAC1BCHFFDZABCyAAIAFB9/sDcUGABHI7ATAgDyEBC0E3IRAMtAELIAAgAC8BMEEQcjsBMAyrAQsgEEEVRg2LASAAQQA2AhwgACABNgIUIABB8I6AgAA2AhAgAEEcNgIMQQAhEAzLAQsgAEHDADYCHCAAIAE2AgwgACANQQFqNgIUQQAhEAzKAQsCQCABLQAAQTpHDQAgACgCBCEQIABBADYCBAJAIAAgECABEK+AgIAAIhANACABQQFqIQEMYwsgAEHDADYCHCAAIBA2AgwgACABQQFqNgIUQQAhEAzKAQsgAEEANgIcIAAgATYCFCAAQbGRgIAANgIQIABBCjYCDEEAIRAMyQELIABBADYCHCAAIAE2AhQgAEGgmYCAADYCECAAQR42AgxBACEQDMgBCyAAQQA2AgALIABBgBI7ASogACAXQQFqIgEgAhCogICAACIQDQEgASEBC0HHACEQDKwBCyAQQRVHDYMBIABB0QA2AhwgACABNgIUIABB45eAgAA2AhAgAEEVNgIMQQAhEAzEAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMXgsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAzDAQsgAEEANgIcIAAgFDYCFCAAQcGogIAANgIQIABBBzYCDCAAQQA2AgBBACEQDMIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxdCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDMEBC0EAIRAgAEEANgIcIAAgATYCFCAAQYCRgIAANgIQIABBCTYCDAzAAQsgEEEVRg19IABBADYCHCAAIAE2AhQgAEGUjYCAADYCECAAQSE2AgxBACEQDL8BC0EBIRZBACEXQQAhFEEBIRALIAAgEDoAKyABQQFqIQECQAJAIAAtAC1BEHENAAJAAkACQCAALQAqDgMBAAIECyAWRQ0DDAILIBQNAQwCCyAXRQ0BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQrYCAgAAiEA0AIAEhAQxcCyAAQdgANgIcIAAgATYCFCAAIBA2AgxBACEQDL4BCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQrYCAgAAiBA0AIAEhAQytAQsgAEHZADYCHCAAIAE2AhQgACAENgIMQQAhEAy9AQsgACgCBCEEIABBADYCBAJAIAAgBCABEK2AgIAAIgQNACABIQEMqwELIABB2gA2AhwgACABNgIUIAAgBDYCDEEAIRAMvAELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCtgICAACIEDQAgASEBDKkBCyAAQdwANgIcIAAgATYCFCAAIAQ2AgxBACEQDLsBCwJAIAEtAABBUGoiEEH/AXFBCk8NACAAIBA6ACogAUEBaiEBQc8AIRAMogELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCtgICAACIEDQAgASEBDKcBCyAAQd4ANgIcIAAgATYCFCAAIAQ2AgxBACEQDLoBCyAAQQA2AgAgF0EBaiEBAkAgAC0AKUEjTw0AIAEhAQxZCyAAQQA2AhwgACABNgIUIABB04mAgAA2AhAgAEEINgIMQQAhEAy5AQsgAEEANgIAC0EAIRAgAEEANgIcIAAgATYCFCAAQZCzgIAANgIQIABBCDYCDAy3AQsgAEEANgIAIBdBAWohAQJAIAAtAClBIUcNACABIQEMVgsgAEEANgIcIAAgATYCFCAAQZuKgIAANgIQIABBCDYCDEEAIRAMtgELIABBADYCACAXQQFqIQECQCAALQApIhBBXWpBC08NACABIQEMVQsCQCAQQQZLDQBBASAQdEHKAHFFDQAgASEBDFULQQAhECAAQQA2AhwgACABNgIUIABB94mAgAA2AhAgAEEINgIMDLUBCyAQQRVGDXEgAEEANgIcIAAgATYCFCAAQbmNgIAANgIQIABBGjYCDEEAIRAMtAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDFQLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMswELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDE0LIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMsgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDE0LIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMsQELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDFELIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMsAELIABBADYCHCAAIAE2AhQgAEHGioCAADYCECAAQQc2AgxBACEQDK8BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxJCyAAQdIANgIcIAAgATYCFCAAIBA2AgxBACEQDK4BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxJCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDK0BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDKwBCyAAQQA2AhwgACABNgIUIABB3IiAgAA2AhAgAEEHNgIMQQAhEAyrAQsgEEE/Rw0BIAFBAWohAQtBBSEQDJABC0EAIRAgAEEANgIcIAAgATYCFCAAQf2SgIAANgIQIABBBzYCDAyoAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMQgsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAynAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMQgsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAymAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMRgsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAylAQsgACgCBCEBIABBADYCBAJAIAAgASAUEKeAgIAAIgENACAUIQEMPwsgAEHSADYCHCAAIBQ2AhQgACABNgIMQQAhEAykAQsgACgCBCEBIABBADYCBAJAIAAgASAUEKeAgIAAIgENACAUIQEMPwsgAEHTADYCHCAAIBQ2AhQgACABNgIMQQAhEAyjAQsgACgCBCEBIABBADYCBAJAIAAgASAUEKeAgIAAIgENACAUIQEMQwsgAEHlADYCHCAAIBQ2AhQgACABNgIMQQAhEAyiAQsgAEEANgIcIAAgFDYCFCAAQcOPgIAANgIQIABBBzYCDEEAIRAMoQELIABBADYCHCAAIAE2AhQgAEHDj4CAADYCECAAQQc2AgxBACEQDKABC0EAIRAgAEEANgIcIAAgFDYCFCAAQYycgIAANgIQIABBBzYCDAyfAQsgAEEANgIcIAAgFDYCFCAAQYycgIAANgIQIABBBzYCDEEAIRAMngELIABBADYCHCAAIBQ2AhQgAEH+kYCAADYCECAAQQc2AgxBACEQDJ0BCyAAQQA2AhwgACABNgIUIABBjpuAgAA2AhAgAEEGNgIMQQAhEAycAQsgEEEVRg1XIABBADYCHCAAIAE2AhQgAEHMjoCAADYCECAAQSA2AgxBACEQDJsBCyAAQQA2AgAgEEEBaiEBQSQhEAsgACAQOgApIAAoAgQhECAAQQA2AgQgACAQIAEQq4CAgAAiEA1UIAEhAQw+CyAAQQA2AgALQQAhECAAQQA2AhwgACAENgIUIABB8ZuAgAA2AhAgAEEGNgIMDJcBCyABQRVGDVAgAEEANgIcIAAgBTYCFCAAQfCMgIAANgIQIABBGzYCDEEAIRAMlgELIAAoAgQhBSAAQQA2AgQgACAFIBAQqYCAgAAiBQ0BIBBBAWohBQtBrQEhEAx7CyAAQcEBNgIcIAAgBTYCDCAAIBBBAWo2AhRBACEQDJMBCyAAKAIEIQYgAEEANgIEIAAgBiAQEKmAgIAAIgYNASAQQQFqIQYLQa4BIRAMeAsgAEHCATYCHCAAIAY2AgwgACAQQQFqNgIUQQAhEAyQAQsgAEEANgIcIAAgBzYCFCAAQZeLgIAANgIQIABBDTYCDEEAIRAMjwELIABBADYCHCAAIAg2AhQgAEHjkICAADYCECAAQQk2AgxBACEQDI4BCyAAQQA2AhwgACAINgIUIABBlI2AgAA2AhAgAEEhNgIMQQAhEAyNAQtBASEWQQAhF0EAIRRBASEQCyAAIBA6ACsgCUEBaiEIAkACQCAALQAtQRBxDQACQAJAAkAgAC0AKg4DAQACBAsgFkUNAwwCCyAUDQEMAgsgF0UNAQsgACgCBCEQIABBADYCBCAAIBAgCBCtgICAACIQRQ09IABByQE2AhwgACAINgIUIAAgEDYCDEEAIRAMjAELIAAoAgQhBCAAQQA2AgQgACAEIAgQrYCAgAAiBEUNdiAAQcoBNgIcIAAgCDYCFCAAIAQ2AgxBACEQDIsBCyAAKAIEIQQgAEEANgIEIAAgBCAJEK2AgIAAIgRFDXQgAEHLATYCHCAAIAk2AhQgACAENgIMQQAhEAyKAQsgACgCBCEEIABBADYCBCAAIAQgChCtgICAACIERQ1yIABBzQE2AhwgACAKNgIUIAAgBDYCDEEAIRAMiQELAkAgCy0AAEFQaiIQQf8BcUEKTw0AIAAgEDoAKiALQQFqIQpBtgEhEAxwCyAAKAIEIQQgAEEANgIEIAAgBCALEK2AgIAAIgRFDXAgAEHPATYCHCAAIAs2AhQgACAENgIMQQAhEAyIAQsgAEEANgIcIAAgBDYCFCAAQZCzgIAANgIQIABBCDYCDCAAQQA2AgBBACEQDIcBCyABQRVGDT8gAEEANgIcIAAgDDYCFCAAQcyOgIAANgIQIABBIDYCDEEAIRAMhgELIABBgQQ7ASggACgCBCEQIABCADcDACAAIBAgDEEBaiIMEKuAgIAAIhBFDTggAEHTATYCHCAAIAw2AhQgACAQNgIMQQAhEAyFAQsgAEEANgIAC0EAIRAgAEEANgIcIAAgBDYCFCAAQdibgIAANgIQIABBCDYCDAyDAQsgACgCBCEQIABCADcDACAAIBAgC0EBaiILEKuAgIAAIhANAUHGASEQDGkLIABBAjoAKAxVCyAAQdUBNgIcIAAgCzYCFCAAIBA2AgxBACEQDIABCyAQQRVGDTcgAEEANgIcIAAgBDYCFCAAQaSMgIAANgIQIABBEDYCDEEAIRAMfwsgAC0ANEEBRw00IAAgBCACELyAgIAAIhBFDTQgEEEVRw01IABB3AE2AhwgACAENgIUIABB1ZaAgAA2AhAgAEEVNgIMQQAhEAx+C0EAIRAgAEEANgIcIABBr4uAgAA2AhAgAEECNgIMIAAgFEEBajYCFAx9C0EAIRAMYwtBAiEQDGILQQ0hEAxhC0EPIRAMYAtBJSEQDF8LQRMhEAxeC0EVIRAMXQtBFiEQDFwLQRchEAxbC0EYIRAMWgtBGSEQDFkLQRohEAxYC0EbIRAMVwtBHCEQDFYLQR0hEAxVC0EfIRAMVAtBISEQDFMLQSMhEAxSC0HGACEQDFELQS4hEAxQC0EvIRAMTwtBOyEQDE4LQT0hEAxNC0HIACEQDEwLQckAIRAMSwtBywAhEAxKC0HMACEQDEkLQc4AIRAMSAtB0QAhEAxHC0HVACEQDEYLQdgAIRAMRQtB2QAhEAxEC0HbACEQDEMLQeQAIRAMQgtB5QAhEAxBC0HxACEQDEALQfQAIRAMPwtBjQEhEAw+C0GXASEQDD0LQakBIRAMPAtBrAEhEAw7C0HAASEQDDoLQbkBIRAMOQtBrwEhEAw4C0GxASEQDDcLQbIBIRAMNgtBtAEhEAw1C0G1ASEQDDQLQboBIRAMMwtBvQEhEAwyC0G/ASEQDDELQcEBIRAMMAsgAEEANgIcIAAgBDYCFCAAQemLgIAANgIQIABBHzYCDEEAIRAMSAsgAEHbATYCHCAAIAQ2AhQgAEH6loCAADYCECAAQRU2AgxBACEQDEcLIABB+AA2AhwgACAMNgIUIABBypiAgAA2AhAgAEEVNgIMQQAhEAxGCyAAQdEANgIcIAAgBTYCFCAAQbCXgIAANgIQIABBFTYCDEEAIRAMRQsgAEH5ADYCHCAAIAE2AhQgACAQNgIMQQAhEAxECyAAQfgANgIcIAAgATYCFCAAQcqYgIAANgIQIABBFTYCDEEAIRAMQwsgAEHkADYCHCAAIAE2AhQgAEHjl4CAADYCECAAQRU2AgxBACEQDEILIABB1wA2AhwgACABNgIUIABByZeAgAA2AhAgAEEVNgIMQQAhEAxBCyAAQQA2AhwgACABNgIUIABBuY2AgAA2AhAgAEEaNgIMQQAhEAxACyAAQcIANgIcIAAgATYCFCAAQeOYgIAANgIQIABBFTYCDEEAIRAMPwsgAEEANgIEIAAgDyAPELGAgIAAIgRFDQEgAEE6NgIcIAAgBDYCDCAAIA9BAWo2AhRBACEQDD4LIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCxgICAACIERQ0AIABBOzYCHCAAIAQ2AgwgACABQQFqNgIUQQAhEAw+CyABQQFqIQEMLQsgD0EBaiEBDC0LIABBADYCHCAAIA82AhQgAEHkkoCAADYCECAAQQQ2AgxBACEQDDsLIABBNjYCHCAAIAQ2AhQgACACNgIMQQAhEAw6CyAAQS42AhwgACAONgIUIAAgBDYCDEEAIRAMOQsgAEHQADYCHCAAIAE2AhQgAEGRmICAADYCECAAQRU2AgxBACEQDDgLIA1BAWohAQwsCyAAQRU2AhwgACABNgIUIABBgpmAgAA2AhAgAEEVNgIMQQAhEAw2CyAAQRs2AhwgACABNgIUIABBkZeAgAA2AhAgAEEVNgIMQQAhEAw1CyAAQQ82AhwgACABNgIUIABBkZeAgAA2AhAgAEEVNgIMQQAhEAw0CyAAQQs2AhwgACABNgIUIABBkZeAgAA2AhAgAEEVNgIMQQAhEAwzCyAAQRo2AhwgACABNgIUIABBgpmAgAA2AhAgAEEVNgIMQQAhEAwyCyAAQQs2AhwgACABNgIUIABBgpmAgAA2AhAgAEEVNgIMQQAhEAwxCyAAQQo2AhwgACABNgIUIABB5JaAgAA2AhAgAEEVNgIMQQAhEAwwCyAAQR42AhwgACABNgIUIABB+ZeAgAA2AhAgAEEVNgIMQQAhEAwvCyAAQQA2AhwgACAQNgIUIABB2o2AgAA2AhAgAEEUNgIMQQAhEAwuCyAAQQQ2AhwgACABNgIUIABBsJiAgAA2AhAgAEEVNgIMQQAhEAwtCyAAQQA2AgAgC0EBaiELC0G4ASEQDBILIABBADYCACAQQQFqIQFB9QAhEAwRCyABIQECQCAALQApQQVHDQBB4wAhEAwRC0HiACEQDBALQQAhECAAQQA2AhwgAEHkkYCAADYCECAAQQc2AgwgACAUQQFqNgIUDCgLIABBADYCACAXQQFqIQFBwAAhEAwOC0EBIQELIAAgAToALCAAQQA2AgAgF0EBaiEBC0EoIRAMCwsgASEBC0E4IRAMCQsCQCABIg8gAkYNAANAAkAgDy0AAEGAvoCAAGotAAAiAUEBRg0AIAFBAkcNAyAPQQFqIQEMBAsgD0EBaiIPIAJHDQALQT4hEAwiC0E+IRAMIQsgAEEAOgAsIA8hAQwBC0ELIRAMBgtBOiEQDAULIAFBAWohAUEtIRAMBAsgACABOgAsIABBADYCACAWQQFqIQFBDCEQDAMLIABBADYCACAXQQFqIQFBCiEQDAILIABBADYCAAsgAEEAOgAsIA0hAUEJIRAMAAsLQQAhECAAQQA2AhwgACALNgIUIABBzZCAgAA2AhAgAEEJNgIMDBcLQQAhECAAQQA2AhwgACAKNgIUIABB6YqAgAA2AhAgAEEJNgIMDBYLQQAhECAAQQA2AhwgACAJNgIUIABBt5CAgAA2AhAgAEEJNgIMDBULQQAhECAAQQA2AhwgACAINgIUIABBnJGAgAA2AhAgAEEJNgIMDBQLQQAhECAAQQA2AhwgACABNgIUIABBzZCAgAA2AhAgAEEJNgIMDBMLQQAhECAAQQA2AhwgACABNgIUIABB6YqAgAA2AhAgAEEJNgIMDBILQQAhECAAQQA2AhwgACABNgIUIABBt5CAgAA2AhAgAEEJNgIMDBELQQAhECAAQQA2AhwgACABNgIUIABBnJGAgAA2AhAgAEEJNgIMDBALQQAhECAAQQA2AhwgACABNgIUIABBl5WAgAA2AhAgAEEPNgIMDA8LQQAhECAAQQA2AhwgACABNgIUIABBl5WAgAA2AhAgAEEPNgIMDA4LQQAhECAAQQA2AhwgACABNgIUIABBwJKAgAA2AhAgAEELNgIMDA0LQQAhECAAQQA2AhwgACABNgIUIABBlYmAgAA2AhAgAEELNgIMDAwLQQAhECAAQQA2AhwgACABNgIUIABB4Y+AgAA2AhAgAEEKNgIMDAsLQQAhECAAQQA2AhwgACABNgIUIABB+4+AgAA2AhAgAEEKNgIMDAoLQQAhECAAQQA2AhwgACABNgIUIABB8ZmAgAA2AhAgAEECNgIMDAkLQQAhECAAQQA2AhwgACABNgIUIABBxJSAgAA2AhAgAEECNgIMDAgLQQAhECAAQQA2AhwgACABNgIUIABB8pWAgAA2AhAgAEECNgIMDAcLIABBAjYCHCAAIAE2AhQgAEGcmoCAADYCECAAQRY2AgxBACEQDAYLQQEhEAwFC0HUACEQIAEiBCACRg0EIANBCGogACAEIAJB2MKAgABBChDFgICAACADKAIMIQQgAygCCA4DAQQCAAsQyoCAgAAACyAAQQA2AhwgAEG1moCAADYCECAAQRc2AgwgACAEQQFqNgIUQQAhEAwCCyAAQQA2AhwgACAENgIUIABBypqAgAA2AhAgAEEJNgIMQQAhEAwBCwJAIAEiBCACRw0AQSIhEAwBCyAAQYmAgIAANgIIIAAgBDYCBEEhIRALIANBEGokgICAgAAgEAuvAQECfyABKAIAIQYCQAJAIAIgA0YNACAEIAZqIQQgBiADaiACayEHIAIgBkF/cyAFaiIGaiEFA0ACQCACLQAAIAQtAABGDQBBAiEEDAMLAkAgBg0AQQAhBCAFIQIMAwsgBkF/aiEGIARBAWohBCACQQFqIgIgA0cNAAsgByEGIAMhAgsgAEEBNgIAIAEgBjYCACAAIAI2AgQPCyABQQA2AgAgACAENgIAIAAgAjYCBAsKACAAEMeAgIAAC/I2AQt/I4CAgIAAQRBrIgEkgICAgAACQEEAKAKg0ICAAA0AQQAQy4CAgABBgNSEgABrIgJB2QBJDQBBACEDAkBBACgC4NOAgAAiBA0AQQBCfzcC7NOAgABBAEKAgISAgIDAADcC5NOAgABBACABQQhqQXBxQdiq1aoFcyIENgLg04CAAEEAQQA2AvTTgIAAQQBBADYCxNOAgAALQQAgAjYCzNOAgABBAEGA1ISAADYCyNOAgABBAEGA1ISAADYCmNCAgABBACAENgKs0ICAAEEAQX82AqjQgIAAA0AgA0HE0ICAAGogA0G40ICAAGoiBDYCACAEIANBsNCAgABqIgU2AgAgA0G80ICAAGogBTYCACADQczQgIAAaiADQcDQgIAAaiIFNgIAIAUgBDYCACADQdTQgIAAaiADQcjQgIAAaiIENgIAIAQgBTYCACADQdDQgIAAaiAENgIAIANBIGoiA0GAAkcNAAtBgNSEgABBeEGA1ISAAGtBD3FBAEGA1ISAAEEIakEPcRsiA2oiBEEEaiACQUhqIgUgA2siA0EBcjYCAEEAQQAoAvDTgIAANgKk0ICAAEEAIAM2ApTQgIAAQQAgBDYCoNCAgABBgNSEgAAgBWpBODYCBAsCQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAEHsAUsNAAJAQQAoAojQgIAAIgZBECAAQRNqQXBxIABBC0kbIgJBA3YiBHYiA0EDcUUNAAJAAkAgA0EBcSAEckEBcyIFQQN0IgRBsNCAgABqIgMgBEG40ICAAGooAgAiBCgCCCICRw0AQQAgBkF+IAV3cTYCiNCAgAAMAQsgAyACNgIIIAIgAzYCDAsgBEEIaiEDIAQgBUEDdCIFQQNyNgIEIAQgBWoiBCAEKAIEQQFyNgIEDAwLIAJBACgCkNCAgAAiB00NAQJAIANFDQACQAJAIAMgBHRBAiAEdCIDQQAgA2tycSIDQQAgA2txQX9qIgMgA0EMdkEQcSIDdiIEQQV2QQhxIgUgA3IgBCAFdiIDQQJ2QQRxIgRyIAMgBHYiA0EBdkECcSIEciADIAR2IgNBAXZBAXEiBHIgAyAEdmoiBEEDdCIDQbDQgIAAaiIFIANBuNCAgABqKAIAIgMoAggiAEcNAEEAIAZBfiAEd3EiBjYCiNCAgAAMAQsgBSAANgIIIAAgBTYCDAsgAyACQQNyNgIEIAMgBEEDdCIEaiAEIAJrIgU2AgAgAyACaiIAIAVBAXI2AgQCQCAHRQ0AIAdBeHFBsNCAgABqIQJBACgCnNCAgAAhBAJAAkAgBkEBIAdBA3Z0IghxDQBBACAGIAhyNgKI0ICAACACIQgMAQsgAigCCCEICyAIIAQ2AgwgAiAENgIIIAQgAjYCDCAEIAg2AggLIANBCGohA0EAIAA2ApzQgIAAQQAgBTYCkNCAgAAMDAtBACgCjNCAgAAiCUUNASAJQQAgCWtxQX9qIgMgA0EMdkEQcSIDdiIEQQV2QQhxIgUgA3IgBCAFdiIDQQJ2QQRxIgRyIAMgBHYiA0EBdkECcSIEciADIAR2IgNBAXZBAXEiBHIgAyAEdmpBAnRBuNKAgABqKAIAIgAoAgRBeHEgAmshBCAAIQUCQANAAkAgBSgCECIDDQAgBUEUaigCACIDRQ0CCyADKAIEQXhxIAJrIgUgBCAFIARJIgUbIQQgAyAAIAUbIQAgAyEFDAALCyAAKAIYIQoCQCAAKAIMIgggAEYNACAAKAIIIgNBACgCmNCAgABJGiAIIAM2AgggAyAINgIMDAsLAkAgAEEUaiIFKAIAIgMNACAAKAIQIgNFDQMgAEEQaiEFCwNAIAUhCyADIghBFGoiBSgCACIDDQAgCEEQaiEFIAgoAhAiAw0ACyALQQA2AgAMCgtBfyECIABBv39LDQAgAEETaiIDQXBxIQJBACgCjNCAgAAiB0UNAEEAIQsCQCACQYACSQ0AQR8hCyACQf///wdLDQAgA0EIdiIDIANBgP4/akEQdkEIcSIDdCIEIARBgOAfakEQdkEEcSIEdCIFIAVBgIAPakEQdkECcSIFdEEPdiADIARyIAVyayIDQQF0IAIgA0EVanZBAXFyQRxqIQsLQQAgAmshBAJAAkACQAJAIAtBAnRBuNKAgABqKAIAIgUNAEEAIQNBACEIDAELQQAhAyACQQBBGSALQQF2ayALQR9GG3QhAEEAIQgDQAJAIAUoAgRBeHEgAmsiBiAETw0AIAYhBCAFIQggBg0AQQAhBCAFIQggBSEDDAMLIAMgBUEUaigCACIGIAYgBSAAQR12QQRxakEQaigCACIFRhsgAyAGGyEDIABBAXQhACAFDQALCwJAIAMgCHINAEEAIQhBAiALdCIDQQAgA2tyIAdxIgNFDQMgA0EAIANrcUF/aiIDIANBDHZBEHEiA3YiBUEFdkEIcSIAIANyIAUgAHYiA0ECdkEEcSIFciADIAV2IgNBAXZBAnEiBXIgAyAFdiIDQQF2QQFxIgVyIAMgBXZqQQJ0QbjSgIAAaigCACEDCyADRQ0BCwNAIAMoAgRBeHEgAmsiBiAESSEAAkAgAygCECIFDQAgA0EUaigCACEFCyAGIAQgABshBCADIAggABshCCAFIQMgBQ0ACwsgCEUNACAEQQAoApDQgIAAIAJrTw0AIAgoAhghCwJAIAgoAgwiACAIRg0AIAgoAggiA0EAKAKY0ICAAEkaIAAgAzYCCCADIAA2AgwMCQsCQCAIQRRqIgUoAgAiAw0AIAgoAhAiA0UNAyAIQRBqIQULA0AgBSEGIAMiAEEUaiIFKAIAIgMNACAAQRBqIQUgACgCECIDDQALIAZBADYCAAwICwJAQQAoApDQgIAAIgMgAkkNAEEAKAKc0ICAACEEAkACQCADIAJrIgVBEEkNACAEIAJqIgAgBUEBcjYCBEEAIAU2ApDQgIAAQQAgADYCnNCAgAAgBCADaiAFNgIAIAQgAkEDcjYCBAwBCyAEIANBA3I2AgQgBCADaiIDIAMoAgRBAXI2AgRBAEEANgKc0ICAAEEAQQA2ApDQgIAACyAEQQhqIQMMCgsCQEEAKAKU0ICAACIAIAJNDQBBACgCoNCAgAAiAyACaiIEIAAgAmsiBUEBcjYCBEEAIAU2ApTQgIAAQQAgBDYCoNCAgAAgAyACQQNyNgIEIANBCGohAwwKCwJAAkBBACgC4NOAgABFDQBBACgC6NOAgAAhBAwBC0EAQn83AuzTgIAAQQBCgICEgICAwAA3AuTTgIAAQQAgAUEMakFwcUHYqtWqBXM2AuDTgIAAQQBBADYC9NOAgABBAEEANgLE04CAAEGAgAQhBAtBACEDAkAgBCACQccAaiIHaiIGQQAgBGsiC3EiCCACSw0AQQBBMDYC+NOAgAAMCgsCQEEAKALA04CAACIDRQ0AAkBBACgCuNOAgAAiBCAIaiIFIARNDQAgBSADTQ0BC0EAIQNBAEEwNgL404CAAAwKC0EALQDE04CAAEEEcQ0EAkACQAJAQQAoAqDQgIAAIgRFDQBByNOAgAAhAwNAAkAgAygCACIFIARLDQAgBSADKAIEaiAESw0DCyADKAIIIgMNAAsLQQAQy4CAgAAiAEF/Rg0FIAghBgJAQQAoAuTTgIAAIgNBf2oiBCAAcUUNACAIIABrIAQgAGpBACADa3FqIQYLIAYgAk0NBSAGQf7///8HSw0FAkBBACgCwNOAgAAiA0UNAEEAKAK404CAACIEIAZqIgUgBE0NBiAFIANLDQYLIAYQy4CAgAAiAyAARw0BDAcLIAYgAGsgC3EiBkH+////B0sNBCAGEMuAgIAAIgAgAygCACADKAIEakYNAyAAIQMLAkAgA0F/Rg0AIAJByABqIAZNDQACQCAHIAZrQQAoAujTgIAAIgRqQQAgBGtxIgRB/v///wdNDQAgAyEADAcLAkAgBBDLgICAAEF/Rg0AIAQgBmohBiADIQAMBwtBACAGaxDLgICAABoMBAsgAyEAIANBf0cNBQwDC0EAIQgMBwtBACEADAULIABBf0cNAgtBAEEAKALE04CAAEEEcjYCxNOAgAALIAhB/v///wdLDQEgCBDLgICAACEAQQAQy4CAgAAhAyAAQX9GDQEgA0F/Rg0BIAAgA08NASADIABrIgYgAkE4ak0NAQtBAEEAKAK404CAACAGaiIDNgK404CAAAJAIANBACgCvNOAgABNDQBBACADNgK804CAAAsCQAJAAkACQEEAKAKg0ICAACIERQ0AQcjTgIAAIQMDQCAAIAMoAgAiBSADKAIEIghqRg0CIAMoAggiAw0ADAMLCwJAAkBBACgCmNCAgAAiA0UNACAAIANPDQELQQAgADYCmNCAgAALQQAhA0EAIAY2AszTgIAAQQAgADYCyNOAgABBAEF/NgKo0ICAAEEAQQAoAuDTgIAANgKs0ICAAEEAQQA2AtTTgIAAA0AgA0HE0ICAAGogA0G40ICAAGoiBDYCACAEIANBsNCAgABqIgU2AgAgA0G80ICAAGogBTYCACADQczQgIAAaiADQcDQgIAAaiIFNgIAIAUgBDYCACADQdTQgIAAaiADQcjQgIAAaiIENgIAIAQgBTYCACADQdDQgIAAaiAENgIAIANBIGoiA0GAAkcNAAsgAEF4IABrQQ9xQQAgAEEIakEPcRsiA2oiBCAGQUhqIgUgA2siA0EBcjYCBEEAQQAoAvDTgIAANgKk0ICAAEEAIAM2ApTQgIAAQQAgBDYCoNCAgAAgACAFakE4NgIEDAILIAMtAAxBCHENACAEIAVJDQAgBCAATw0AIARBeCAEa0EPcUEAIARBCGpBD3EbIgVqIgBBACgClNCAgAAgBmoiCyAFayIFQQFyNgIEIAMgCCAGajYCBEEAQQAoAvDTgIAANgKk0ICAAEEAIAU2ApTQgIAAQQAgADYCoNCAgAAgBCALakE4NgIEDAELAkAgAEEAKAKY0ICAACIITw0AQQAgADYCmNCAgAAgACEICyAAIAZqIQVByNOAgAAhAwJAAkACQAJAAkACQAJAA0AgAygCACAFRg0BIAMoAggiAw0ADAILCyADLQAMQQhxRQ0BC0HI04CAACEDA0ACQCADKAIAIgUgBEsNACAFIAMoAgRqIgUgBEsNAwsgAygCCCEDDAALCyADIAA2AgAgAyADKAIEIAZqNgIEIABBeCAAa0EPcUEAIABBCGpBD3EbaiILIAJBA3I2AgQgBUF4IAVrQQ9xQQAgBUEIakEPcRtqIgYgCyACaiICayEDAkAgBiAERw0AQQAgAjYCoNCAgABBAEEAKAKU0ICAACADaiIDNgKU0ICAACACIANBAXI2AgQMAwsCQCAGQQAoApzQgIAARw0AQQAgAjYCnNCAgABBAEEAKAKQ0ICAACADaiIDNgKQ0ICAACACIANBAXI2AgQgAiADaiADNgIADAMLAkAgBigCBCIEQQNxQQFHDQAgBEF4cSEHAkACQCAEQf8BSw0AIAYoAggiBSAEQQN2IghBA3RBsNCAgABqIgBGGgJAIAYoAgwiBCAFRw0AQQBBACgCiNCAgABBfiAId3E2AojQgIAADAILIAQgAEYaIAQgBTYCCCAFIAQ2AgwMAQsgBigCGCEJAkACQCAGKAIMIgAgBkYNACAGKAIIIgQgCEkaIAAgBDYCCCAEIAA2AgwMAQsCQCAGQRRqIgQoAgAiBQ0AIAZBEGoiBCgCACIFDQBBACEADAELA0AgBCEIIAUiAEEUaiIEKAIAIgUNACAAQRBqIQQgACgCECIFDQALIAhBADYCAAsgCUUNAAJAAkAgBiAGKAIcIgVBAnRBuNKAgABqIgQoAgBHDQAgBCAANgIAIAANAUEAQQAoAozQgIAAQX4gBXdxNgKM0ICAAAwCCyAJQRBBFCAJKAIQIAZGG2ogADYCACAARQ0BCyAAIAk2AhgCQCAGKAIQIgRFDQAgACAENgIQIAQgADYCGAsgBigCFCIERQ0AIABBFGogBDYCACAEIAA2AhgLIAcgA2ohAyAGIAdqIgYoAgQhBAsgBiAEQX5xNgIEIAIgA2ogAzYCACACIANBAXI2AgQCQCADQf8BSw0AIANBeHFBsNCAgABqIQQCQAJAQQAoAojQgIAAIgVBASADQQN2dCIDcQ0AQQAgBSADcjYCiNCAgAAgBCEDDAELIAQoAgghAwsgAyACNgIMIAQgAjYCCCACIAQ2AgwgAiADNgIIDAMLQR8hBAJAIANB////B0sNACADQQh2IgQgBEGA/j9qQRB2QQhxIgR0IgUgBUGA4B9qQRB2QQRxIgV0IgAgAEGAgA9qQRB2QQJxIgB0QQ92IAQgBXIgAHJrIgRBAXQgAyAEQRVqdkEBcXJBHGohBAsgAiAENgIcIAJCADcCECAEQQJ0QbjSgIAAaiEFAkBBACgCjNCAgAAiAEEBIAR0IghxDQAgBSACNgIAQQAgACAIcjYCjNCAgAAgAiAFNgIYIAIgAjYCCCACIAI2AgwMAwsgA0EAQRkgBEEBdmsgBEEfRht0IQQgBSgCACEAA0AgACIFKAIEQXhxIANGDQIgBEEddiEAIARBAXQhBCAFIABBBHFqQRBqIggoAgAiAA0ACyAIIAI2AgAgAiAFNgIYIAIgAjYCDCACIAI2AggMAgsgAEF4IABrQQ9xQQAgAEEIakEPcRsiA2oiCyAGQUhqIgggA2siA0EBcjYCBCAAIAhqQTg2AgQgBCAFQTcgBWtBD3FBACAFQUlqQQ9xG2pBQWoiCCAIIARBEGpJGyIIQSM2AgRBAEEAKALw04CAADYCpNCAgABBACADNgKU0ICAAEEAIAs2AqDQgIAAIAhBEGpBACkC0NOAgAA3AgAgCEEAKQLI04CAADcCCEEAIAhBCGo2AtDTgIAAQQAgBjYCzNOAgABBACAANgLI04CAAEEAQQA2AtTTgIAAIAhBJGohAwNAIANBBzYCACADQQRqIgMgBUkNAAsgCCAERg0DIAggCCgCBEF+cTYCBCAIIAggBGsiADYCACAEIABBAXI2AgQCQCAAQf8BSw0AIABBeHFBsNCAgABqIQMCQAJAQQAoAojQgIAAIgVBASAAQQN2dCIAcQ0AQQAgBSAAcjYCiNCAgAAgAyEFDAELIAMoAgghBQsgBSAENgIMIAMgBDYCCCAEIAM2AgwgBCAFNgIIDAQLQR8hAwJAIABB////B0sNACAAQQh2IgMgA0GA/j9qQRB2QQhxIgN0IgUgBUGA4B9qQRB2QQRxIgV0IgggCEGAgA9qQRB2QQJxIgh0QQ92IAMgBXIgCHJrIgNBAXQgACADQRVqdkEBcXJBHGohAwsgBCADNgIcIARCADcCECADQQJ0QbjSgIAAaiEFAkBBACgCjNCAgAAiCEEBIAN0IgZxDQAgBSAENgIAQQAgCCAGcjYCjNCAgAAgBCAFNgIYIAQgBDYCCCAEIAQ2AgwMBAsgAEEAQRkgA0EBdmsgA0EfRht0IQMgBSgCACEIA0AgCCIFKAIEQXhxIABGDQMgA0EddiEIIANBAXQhAyAFIAhBBHFqQRBqIgYoAgAiCA0ACyAGIAQ2AgAgBCAFNgIYIAQgBDYCDCAEIAQ2AggMAwsgBSgCCCIDIAI2AgwgBSACNgIIIAJBADYCGCACIAU2AgwgAiADNgIICyALQQhqIQMMBQsgBSgCCCIDIAQ2AgwgBSAENgIIIARBADYCGCAEIAU2AgwgBCADNgIIC0EAKAKU0ICAACIDIAJNDQBBACgCoNCAgAAiBCACaiIFIAMgAmsiA0EBcjYCBEEAIAM2ApTQgIAAQQAgBTYCoNCAgAAgBCACQQNyNgIEIARBCGohAwwDC0EAIQNBAEEwNgL404CAAAwCCwJAIAtFDQACQAJAIAggCCgCHCIFQQJ0QbjSgIAAaiIDKAIARw0AIAMgADYCACAADQFBACAHQX4gBXdxIgc2AozQgIAADAILIAtBEEEUIAsoAhAgCEYbaiAANgIAIABFDQELIAAgCzYCGAJAIAgoAhAiA0UNACAAIAM2AhAgAyAANgIYCyAIQRRqKAIAIgNFDQAgAEEUaiADNgIAIAMgADYCGAsCQAJAIARBD0sNACAIIAQgAmoiA0EDcjYCBCAIIANqIgMgAygCBEEBcjYCBAwBCyAIIAJqIgAgBEEBcjYCBCAIIAJBA3I2AgQgACAEaiAENgIAAkAgBEH/AUsNACAEQXhxQbDQgIAAaiEDAkACQEEAKAKI0ICAACIFQQEgBEEDdnQiBHENAEEAIAUgBHI2AojQgIAAIAMhBAwBCyADKAIIIQQLIAQgADYCDCADIAA2AgggACADNgIMIAAgBDYCCAwBC0EfIQMCQCAEQf///wdLDQAgBEEIdiIDIANBgP4/akEQdkEIcSIDdCIFIAVBgOAfakEQdkEEcSIFdCICIAJBgIAPakEQdkECcSICdEEPdiADIAVyIAJyayIDQQF0IAQgA0EVanZBAXFyQRxqIQMLIAAgAzYCHCAAQgA3AhAgA0ECdEG40oCAAGohBQJAIAdBASADdCICcQ0AIAUgADYCAEEAIAcgAnI2AozQgIAAIAAgBTYCGCAAIAA2AgggACAANgIMDAELIARBAEEZIANBAXZrIANBH0YbdCEDIAUoAgAhAgJAA0AgAiIFKAIEQXhxIARGDQEgA0EddiECIANBAXQhAyAFIAJBBHFqQRBqIgYoAgAiAg0ACyAGIAA2AgAgACAFNgIYIAAgADYCDCAAIAA2AggMAQsgBSgCCCIDIAA2AgwgBSAANgIIIABBADYCGCAAIAU2AgwgACADNgIICyAIQQhqIQMMAQsCQCAKRQ0AAkACQCAAIAAoAhwiBUECdEG40oCAAGoiAygCAEcNACADIAg2AgAgCA0BQQAgCUF+IAV3cTYCjNCAgAAMAgsgCkEQQRQgCigCECAARhtqIAg2AgAgCEUNAQsgCCAKNgIYAkAgACgCECIDRQ0AIAggAzYCECADIAg2AhgLIABBFGooAgAiA0UNACAIQRRqIAM2AgAgAyAINgIYCwJAAkAgBEEPSw0AIAAgBCACaiIDQQNyNgIEIAAgA2oiAyADKAIEQQFyNgIEDAELIAAgAmoiBSAEQQFyNgIEIAAgAkEDcjYCBCAFIARqIAQ2AgACQCAHRQ0AIAdBeHFBsNCAgABqIQJBACgCnNCAgAAhAwJAAkBBASAHQQN2dCIIIAZxDQBBACAIIAZyNgKI0ICAACACIQgMAQsgAigCCCEICyAIIAM2AgwgAiADNgIIIAMgAjYCDCADIAg2AggLQQAgBTYCnNCAgABBACAENgKQ0ICAAAsgAEEIaiEDCyABQRBqJICAgIAAIAMLCgAgABDJgICAAAviDQEHfwJAIABFDQAgAEF4aiIBIABBfGooAgAiAkF4cSIAaiEDAkAgAkEBcQ0AIAJBA3FFDQEgASABKAIAIgJrIgFBACgCmNCAgAAiBEkNASACIABqIQACQCABQQAoApzQgIAARg0AAkAgAkH/AUsNACABKAIIIgQgAkEDdiIFQQN0QbDQgIAAaiIGRhoCQCABKAIMIgIgBEcNAEEAQQAoAojQgIAAQX4gBXdxNgKI0ICAAAwDCyACIAZGGiACIAQ2AgggBCACNgIMDAILIAEoAhghBwJAAkAgASgCDCIGIAFGDQAgASgCCCICIARJGiAGIAI2AgggAiAGNgIMDAELAkAgAUEUaiICKAIAIgQNACABQRBqIgIoAgAiBA0AQQAhBgwBCwNAIAIhBSAEIgZBFGoiAigCACIEDQAgBkEQaiECIAYoAhAiBA0ACyAFQQA2AgALIAdFDQECQAJAIAEgASgCHCIEQQJ0QbjSgIAAaiICKAIARw0AIAIgBjYCACAGDQFBAEEAKAKM0ICAAEF+IAR3cTYCjNCAgAAMAwsgB0EQQRQgBygCECABRhtqIAY2AgAgBkUNAgsgBiAHNgIYAkAgASgCECICRQ0AIAYgAjYCECACIAY2AhgLIAEoAhQiAkUNASAGQRRqIAI2AgAgAiAGNgIYDAELIAMoAgQiAkEDcUEDRw0AIAMgAkF+cTYCBEEAIAA2ApDQgIAAIAEgAGogADYCACABIABBAXI2AgQPCyABIANPDQAgAygCBCICQQFxRQ0AAkACQCACQQJxDQACQCADQQAoAqDQgIAARw0AQQAgATYCoNCAgABBAEEAKAKU0ICAACAAaiIANgKU0ICAACABIABBAXI2AgQgAUEAKAKc0ICAAEcNA0EAQQA2ApDQgIAAQQBBADYCnNCAgAAPCwJAIANBACgCnNCAgABHDQBBACABNgKc0ICAAEEAQQAoApDQgIAAIABqIgA2ApDQgIAAIAEgAEEBcjYCBCABIABqIAA2AgAPCyACQXhxIABqIQACQAJAIAJB/wFLDQAgAygCCCIEIAJBA3YiBUEDdEGw0ICAAGoiBkYaAkAgAygCDCICIARHDQBBAEEAKAKI0ICAAEF+IAV3cTYCiNCAgAAMAgsgAiAGRhogAiAENgIIIAQgAjYCDAwBCyADKAIYIQcCQAJAIAMoAgwiBiADRg0AIAMoAggiAkEAKAKY0ICAAEkaIAYgAjYCCCACIAY2AgwMAQsCQCADQRRqIgIoAgAiBA0AIANBEGoiAigCACIEDQBBACEGDAELA0AgAiEFIAQiBkEUaiICKAIAIgQNACAGQRBqIQIgBigCECIEDQALIAVBADYCAAsgB0UNAAJAAkAgAyADKAIcIgRBAnRBuNKAgABqIgIoAgBHDQAgAiAGNgIAIAYNAUEAQQAoAozQgIAAQX4gBHdxNgKM0ICAAAwCCyAHQRBBFCAHKAIQIANGG2ogBjYCACAGRQ0BCyAGIAc2AhgCQCADKAIQIgJFDQAgBiACNgIQIAIgBjYCGAsgAygCFCICRQ0AIAZBFGogAjYCACACIAY2AhgLIAEgAGogADYCACABIABBAXI2AgQgAUEAKAKc0ICAAEcNAUEAIAA2ApDQgIAADwsgAyACQX5xNgIEIAEgAGogADYCACABIABBAXI2AgQLAkAgAEH/AUsNACAAQXhxQbDQgIAAaiECAkACQEEAKAKI0ICAACIEQQEgAEEDdnQiAHENAEEAIAQgAHI2AojQgIAAIAIhAAwBCyACKAIIIQALIAAgATYCDCACIAE2AgggASACNgIMIAEgADYCCA8LQR8hAgJAIABB////B0sNACAAQQh2IgIgAkGA/j9qQRB2QQhxIgJ0IgQgBEGA4B9qQRB2QQRxIgR0IgYgBkGAgA9qQRB2QQJxIgZ0QQ92IAIgBHIgBnJrIgJBAXQgACACQRVqdkEBcXJBHGohAgsgASACNgIcIAFCADcCECACQQJ0QbjSgIAAaiEEAkACQEEAKAKM0ICAACIGQQEgAnQiA3ENACAEIAE2AgBBACAGIANyNgKM0ICAACABIAQ2AhggASABNgIIIAEgATYCDAwBCyAAQQBBGSACQQF2ayACQR9GG3QhAiAEKAIAIQYCQANAIAYiBCgCBEF4cSAARg0BIAJBHXYhBiACQQF0IQIgBCAGQQRxakEQaiIDKAIAIgYNAAsgAyABNgIAIAEgBDYCGCABIAE2AgwgASABNgIIDAELIAQoAggiACABNgIMIAQgATYCCCABQQA2AhggASAENgIMIAEgADYCCAtBAEEAKAKo0ICAAEF/aiIBQX8gARs2AqjQgIAACwsEAAAAC04AAkAgAA0APwBBEHQPCwJAIABB//8DcQ0AIABBf0wNAAJAIABBEHZAACIAQX9HDQBBAEEwNgL404CAAEF/DwsgAEEQdA8LEMqAgIAAAAvyAgIDfwF+AkAgAkUNACAAIAE6AAAgAiAAaiIDQX9qIAE6AAAgAkEDSQ0AIAAgAToAAiAAIAE6AAEgA0F9aiABOgAAIANBfmogAToAACACQQdJDQAgACABOgADIANBfGogAToAACACQQlJDQAgAEEAIABrQQNxIgRqIgMgAUH/AXFBgYKECGwiATYCACADIAIgBGtBfHEiBGoiAkF8aiABNgIAIARBCUkNACADIAE2AgggAyABNgIEIAJBeGogATYCACACQXRqIAE2AgAgBEEZSQ0AIAMgATYCGCADIAE2AhQgAyABNgIQIAMgATYCDCACQXBqIAE2AgAgAkFsaiABNgIAIAJBaGogATYCACACQWRqIAE2AgAgBCADQQRxQRhyIgVrIgJBIEkNACABrUKBgICAEH4hBiADIAVqIQEDQCABIAY3AxggASAGNwMQIAEgBjcDCCABIAY3AwAgAUEgaiEBIAJBYGoiAkEfSw0ACwsgAAsLjkgBAEGACAuGSAEAAAACAAAAAwAAAAAAAAAAAAAABAAAAAUAAAAAAAAAAAAAAAYAAAAHAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASW52YWxpZCBjaGFyIGluIHVybCBxdWVyeQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2JvZHkAQ29udGVudC1MZW5ndGggb3ZlcmZsb3cAQ2h1bmsgc2l6ZSBvdmVyZmxvdwBSZXNwb25zZSBvdmVyZmxvdwBJbnZhbGlkIG1ldGhvZCBmb3IgSFRUUC94LnggcmVxdWVzdABJbnZhbGlkIG1ldGhvZCBmb3IgUlRTUC94LnggcmVxdWVzdABFeHBlY3RlZCBTT1VSQ0UgbWV0aG9kIGZvciBJQ0UveC54IHJlcXVlc3QASW52YWxpZCBjaGFyIGluIHVybCBmcmFnbWVudCBzdGFydABFeHBlY3RlZCBkb3QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9zdGF0dXMASW52YWxpZCByZXNwb25zZSBzdGF0dXMASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucwBVc2VyIGNhbGxiYWNrIGVycm9yAGBvbl9yZXNldGAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2hlYWRlcmAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfYmVnaW5gIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw==' + + /***/ + }, + + /***/ 41891: /***/ (__unused_webpack_module, exports) => { + 'use strict' + + Object.defineProperty(exports, '__esModule', { value: true }) + exports.enumToMap = void 0 + function enumToMap(obj) { + const res = {} + Object.keys(obj).forEach(key => { + const value = obj[key] + if (typeof value === 'number') { + res[key] = value + } + }) + return res } - } - if (typeof opts.method === 'string') { - opts.method = opts.method.toUpperCase() - } + exports.enumToMap = enumToMap + //# sourceMappingURL=utils.js.map + + /***/ + }, + + /***/ 66771: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' - this[kDispatchKey] = buildKey(opts) - this[kDispatches] = mockDispatches - this[kDefaultHeaders] = {} - this[kDefaultTrailers] = {} - this[kContentLength] = false - } + const { kClients } = __nccwpck_require__(72785) + const Agent = __nccwpck_require__(7890) + const { + kAgent, + kMockAgentSet, + kMockAgentGet, + kDispatches, + kIsMockActive, + kNetConnect, + kGetNetConnect, + kOptions, + kFactory + } = __nccwpck_require__(24347) + const MockClient = __nccwpck_require__(58687) + const MockPool = __nccwpck_require__(26193) + const { matchValue, buildMockOptions } = __nccwpck_require__(79323) + const { InvalidArgumentError, UndiciError } = __nccwpck_require__(48045) + const Dispatcher = __nccwpck_require__(60412) + const Pluralizer = __nccwpck_require__(78891) + const PendingInterceptorsFormatter = __nccwpck_require__(86823) + + class FakeWeakRef { + constructor(value) { + this.value = value + } + + deref() { + return this.value + } + } + + class MockAgent extends Dispatcher { + constructor(opts) { + super(opts) + + this[kNetConnect] = true + this[kIsMockActive] = true + + // Instantiate Agent and encapsulate + if (opts && opts.agent && typeof opts.agent.dispatch !== 'function') { + throw new InvalidArgumentError( + 'Argument opts.agent must implement Agent' + ) + } + const agent = opts && opts.agent ? opts.agent : new Agent(opts) + this[kAgent] = agent - createMockScopeDispatchData (statusCode, data, responseOptions = {}) { - const responseData = getResponseData(data) - const contentLength = this[kContentLength] ? { 'content-length': responseData.length } : {} - const headers = { ...this[kDefaultHeaders], ...contentLength, ...responseOptions.headers } - const trailers = { ...this[kDefaultTrailers], ...responseOptions.trailers } + this[kClients] = agent[kClients] + this[kOptions] = buildMockOptions(opts) + } - return { statusCode, data, headers, trailers } - } + get(origin) { + let dispatcher = this[kMockAgentGet](origin) - validateReplyParameters (statusCode, data, responseOptions) { - if (typeof statusCode === 'undefined') { - throw new InvalidArgumentError('statusCode must be defined') - } - if (typeof data === 'undefined') { - throw new InvalidArgumentError('data must be defined') - } - if (typeof responseOptions !== 'object') { - throw new InvalidArgumentError('responseOptions must be an object') - } - } + if (!dispatcher) { + dispatcher = this[kFactory](origin) + this[kMockAgentSet](origin, dispatcher) + } + return dispatcher + } - /** - * Mock an undici request with a defined reply. - */ - reply (replyData) { - // Values of reply aren't available right now as they - // can only be available when the reply callback is invoked. - if (typeof replyData === 'function') { - // We'll first wrap the provided callback in another function, - // this function will properly resolve the data from the callback - // when invoked. - const wrappedDefaultsCallback = (opts) => { - // Our reply options callback contains the parameter for statusCode, data and options. - const resolvedData = replyData(opts) - - // Check if it is in the right format - if (typeof resolvedData !== 'object') { - throw new InvalidArgumentError('reply options callback must return an object') - } - - const { statusCode, data = '', responseOptions = {} } = resolvedData - this.validateReplyParameters(statusCode, data, responseOptions) - // Since the values can be obtained immediately we return them - // from this higher order function that will be resolved later. - return { - ...this.createMockScopeDispatchData(statusCode, data, responseOptions) + dispatch(opts, handler) { + // Call MockAgent.get to perform additional setup before dispatching as normal + this.get(opts.origin) + return this[kAgent].dispatch(opts, handler) } - } - // Add usual dispatch data, but this time set the data parameter to function that will eventually provide data. - const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], wrappedDefaultsCallback) - return new MockScope(newMockDispatch) - } + async close() { + await this[kAgent].close() + this[kClients].clear() + } - // We can have either one or three parameters, if we get here, - // we should have 1-3 parameters. So we spread the arguments of - // this function to obtain the parameters, since replyData will always - // just be the statusCode. - const [statusCode, data = '', responseOptions = {}] = [...arguments] - this.validateReplyParameters(statusCode, data, responseOptions) - - // Send in-already provided data like usual - const dispatchData = this.createMockScopeDispatchData(statusCode, data, responseOptions) - const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], dispatchData) - return new MockScope(newMockDispatch) - } + deactivate() { + this[kIsMockActive] = false + } - /** - * Mock an undici request with a defined error. - */ - replyWithError (error) { - if (typeof error === 'undefined') { - throw new InvalidArgumentError('error must be defined') - } + activate() { + this[kIsMockActive] = true + } - const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], { error }) - return new MockScope(newMockDispatch) - } + enableNetConnect(matcher) { + if ( + typeof matcher === 'string' || + typeof matcher === 'function' || + matcher instanceof RegExp + ) { + if (Array.isArray(this[kNetConnect])) { + this[kNetConnect].push(matcher) + } else { + this[kNetConnect] = [matcher] + } + } else if (typeof matcher === 'undefined') { + this[kNetConnect] = true + } else { + throw new InvalidArgumentError( + 'Unsupported matcher. Must be one of String|Function|RegExp.' + ) + } + } - /** - * Set default reply headers on the interceptor for subsequent replies - */ - defaultReplyHeaders (headers) { - if (typeof headers === 'undefined') { - throw new InvalidArgumentError('headers must be defined') - } + disableNetConnect() { + this[kNetConnect] = false + } - this[kDefaultHeaders] = headers - return this - } + // This is required to bypass issues caused by using global symbols - see: + // https://github.com/nodejs/undici/issues/1447 + get isMockActive() { + return this[kIsMockActive] + } - /** - * Set default reply trailers on the interceptor for subsequent replies - */ - defaultReplyTrailers (trailers) { - if (typeof trailers === 'undefined') { - throw new InvalidArgumentError('trailers must be defined') - } + [kMockAgentSet](origin, dispatcher) { + this[kClients].set(origin, new FakeWeakRef(dispatcher)) + } - this[kDefaultTrailers] = trailers - return this - } + [kFactory](origin) { + const mockOptions = Object.assign({ agent: this }, this[kOptions]) + return this[kOptions] && this[kOptions].connections === 1 + ? new MockClient(origin, mockOptions) + : new MockPool(origin, mockOptions) + } - /** - * Set reply content length header for replies on the interceptor - */ - replyContentLength () { - this[kContentLength] = true - return this - } -} + [kMockAgentGet](origin) { + // First check if we can immediately find it + const ref = this[kClients].get(origin) + if (ref) { + return ref.deref() + } -module.exports.MockInterceptor = MockInterceptor -module.exports.MockScope = MockScope + // If the origin is not a string create a dummy parent pool and return to user + if (typeof origin !== 'string') { + const dispatcher = this[kFactory]('http://localhost:9999') + this[kMockAgentSet](origin, dispatcher) + return dispatcher + } + // If we match, create a pool and assign the same dispatches + for (const [keyMatcher, nonExplicitRef] of Array.from( + this[kClients] + )) { + const nonExplicitDispatcher = nonExplicitRef.deref() + if ( + nonExplicitDispatcher && + typeof keyMatcher !== 'string' && + matchValue(keyMatcher, origin) + ) { + const dispatcher = this[kFactory](origin) + this[kMockAgentSet](origin, dispatcher) + dispatcher[kDispatches] = nonExplicitDispatcher[kDispatches] + return dispatcher + } + } + } -/***/ }), + [kGetNetConnect]() { + return this[kNetConnect] + } -/***/ 26193: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + pendingInterceptors() { + const mockAgentClients = this[kClients] -"use strict"; + return Array.from(mockAgentClients.entries()) + .flatMap(([origin, scope]) => + scope + .deref() + [kDispatches].map(dispatch => ({ ...dispatch, origin })) + ) + .filter(({ pending }) => pending) + } + assertNoPendingInterceptors({ + pendingInterceptorsFormatter = new PendingInterceptorsFormatter() + } = {}) { + const pending = this.pendingInterceptors() -const { promisify } = __nccwpck_require__(73837) -const Pool = __nccwpck_require__(4634) -const { buildMockDispatch } = __nccwpck_require__(79323) -const { - kDispatches, - kMockAgent, - kClose, - kOriginalClose, - kOrigin, - kOriginalDispatch, - kConnected -} = __nccwpck_require__(24347) -const { MockInterceptor } = __nccwpck_require__(90410) -const Symbols = __nccwpck_require__(72785) -const { InvalidArgumentError } = __nccwpck_require__(48045) + if (pending.length === 0) { + return + } -/** - * MockPool provides an API that extends the Pool to influence the mockDispatches. - */ -class MockPool extends Pool { - constructor (origin, opts) { - super(origin, opts) + const pluralizer = new Pluralizer( + 'interceptor', + 'interceptors' + ).pluralize(pending.length) - if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') { - throw new InvalidArgumentError('Argument opts.agent must implement Agent') - } + throw new UndiciError( + ` +${pluralizer.count} ${pluralizer.noun} ${pluralizer.is} pending: - this[kMockAgent] = opts.agent - this[kOrigin] = origin - this[kDispatches] = [] - this[kConnected] = 1 - this[kOriginalDispatch] = this.dispatch - this[kOriginalClose] = this.close.bind(this) +${pendingInterceptorsFormatter.format(pending)} +`.trim() + ) + } + } - this.dispatch = buildMockDispatch.call(this) - this.close = this[kClose] - } + module.exports = MockAgent - get [Symbols.kConnected] () { - return this[kConnected] - } + /***/ + }, - /** - * Sets up the base interceptor for mocking replies from undici. - */ - intercept (opts) { - return new MockInterceptor(opts, this[kDispatches]) - } + /***/ 58687: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' - async [kClose] () { - await promisify(this[kOriginalClose])() - this[kConnected] = 0 - this[kMockAgent][Symbols.kClients].delete(this[kOrigin]) - } -} - -module.exports = MockPool - - -/***/ }), - -/***/ 24347: -/***/ ((module) => { - -"use strict"; - - -module.exports = { - kAgent: Symbol('agent'), - kOptions: Symbol('options'), - kFactory: Symbol('factory'), - kDispatches: Symbol('dispatches'), - kDispatchKey: Symbol('dispatch key'), - kDefaultHeaders: Symbol('default headers'), - kDefaultTrailers: Symbol('default trailers'), - kContentLength: Symbol('content length'), - kMockAgent: Symbol('mock agent'), - kMockAgentSet: Symbol('mock agent set'), - kMockAgentGet: Symbol('mock agent get'), - kMockDispatch: Symbol('mock dispatch'), - kClose: Symbol('close'), - kOriginalClose: Symbol('original agent close'), - kOrigin: Symbol('origin'), - kIsMockActive: Symbol('is mock active'), - kNetConnect: Symbol('net connect'), - kGetNetConnect: Symbol('get net connect'), - kConnected: Symbol('connected') -} - - -/***/ }), - -/***/ 79323: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - - -const { MockNotMatchedError } = __nccwpck_require__(50888) -const { - kDispatches, - kMockAgent, - kOriginalDispatch, - kOrigin, - kGetNetConnect -} = __nccwpck_require__(24347) -const { buildURL, nop } = __nccwpck_require__(83983) -const { STATUS_CODES } = __nccwpck_require__(13685) -const { - types: { - isPromise - } -} = __nccwpck_require__(73837) + const { promisify } = __nccwpck_require__(73837) + const Client = __nccwpck_require__(33598) + const { buildMockDispatch } = __nccwpck_require__(79323) + const { + kDispatches, + kMockAgent, + kClose, + kOriginalClose, + kOrigin, + kOriginalDispatch, + kConnected + } = __nccwpck_require__(24347) + const { MockInterceptor } = __nccwpck_require__(90410) + const Symbols = __nccwpck_require__(72785) + const { InvalidArgumentError } = __nccwpck_require__(48045) -function matchValue (match, value) { - if (typeof match === 'string') { - return match === value - } - if (match instanceof RegExp) { - return match.test(value) - } - if (typeof match === 'function') { - return match(value) === true - } - return false -} + /** + * MockClient provides an API that extends the Client to influence the mockDispatches. + */ + class MockClient extends Client { + constructor(origin, opts) { + super(origin, opts) -function lowerCaseEntries (headers) { - return Object.fromEntries( - Object.entries(headers).map(([headerName, headerValue]) => { - return [headerName.toLocaleLowerCase(), headerValue] - }) - ) -} + if ( + !opts || + !opts.agent || + typeof opts.agent.dispatch !== 'function' + ) { + throw new InvalidArgumentError( + 'Argument opts.agent must implement Agent' + ) + } -/** - * @param {import('../../index').Headers|string[]|Record} headers - * @param {string} key - */ -function getHeaderByName (headers, key) { - if (Array.isArray(headers)) { - for (let i = 0; i < headers.length; i += 2) { - if (headers[i].toLocaleLowerCase() === key.toLocaleLowerCase()) { - return headers[i + 1] - } - } + this[kMockAgent] = opts.agent + this[kOrigin] = origin + this[kDispatches] = [] + this[kConnected] = 1 + this[kOriginalDispatch] = this.dispatch + this[kOriginalClose] = this.close.bind(this) - return undefined - } else if (typeof headers.get === 'function') { - return headers.get(key) - } else { - return lowerCaseEntries(headers)[key.toLocaleLowerCase()] - } -} - -/** @param {string[]} headers */ -function buildHeadersFromArray (headers) { // fetch HeadersList - const clone = headers.slice() - const entries = [] - for (let index = 0; index < clone.length; index += 2) { - entries.push([clone[index], clone[index + 1]]) - } - return Object.fromEntries(entries) -} + this.dispatch = buildMockDispatch.call(this) + this.close = this[kClose] + } -function matchHeaders (mockDispatch, headers) { - if (typeof mockDispatch.headers === 'function') { - if (Array.isArray(headers)) { // fetch HeadersList - headers = buildHeadersFromArray(headers) - } - return mockDispatch.headers(headers ? lowerCaseEntries(headers) : {}) - } - if (typeof mockDispatch.headers === 'undefined') { - return true - } - if (typeof headers !== 'object' || typeof mockDispatch.headers !== 'object') { - return false - } + get [Symbols.kConnected]() { + return this[kConnected] + } - for (const [matchHeaderName, matchHeaderValue] of Object.entries(mockDispatch.headers)) { - const headerValue = getHeaderByName(headers, matchHeaderName) + /** + * Sets up the base interceptor for mocking replies from undici. + */ + intercept(opts) { + return new MockInterceptor(opts, this[kDispatches]) + } - if (!matchValue(matchHeaderValue, headerValue)) { - return false - } - } - return true -} + async [kClose]() { + await promisify(this[kOriginalClose])() + this[kConnected] = 0 + this[kMockAgent][Symbols.kClients].delete(this[kOrigin]) + } + } -function safeUrl (path) { - if (typeof path !== 'string') { - return path - } + module.exports = MockClient + + /***/ + }, - const pathSegments = path.split('?') + /***/ 50888: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' - if (pathSegments.length !== 2) { - return path - } + const { UndiciError } = __nccwpck_require__(48045) - const qp = new URLSearchParams(pathSegments.pop()) - qp.sort() - return [...pathSegments, qp.toString()].join('?') -} - -function matchKey (mockDispatch, { path, method, body, headers }) { - const pathMatch = matchValue(mockDispatch.path, path) - const methodMatch = matchValue(mockDispatch.method, method) - const bodyMatch = typeof mockDispatch.body !== 'undefined' ? matchValue(mockDispatch.body, body) : true - const headersMatch = matchHeaders(mockDispatch, headers) - return pathMatch && methodMatch && bodyMatch && headersMatch -} - -function getResponseData (data) { - if (Buffer.isBuffer(data)) { - return data - } else if (typeof data === 'object') { - return JSON.stringify(data) - } else { - return data.toString() - } -} + class MockNotMatchedError extends UndiciError { + constructor(message) { + super(message) + Error.captureStackTrace(this, MockNotMatchedError) + this.name = 'MockNotMatchedError' + this.message = + message || + 'The request does not match any registered mock dispatches' + this.code = 'UND_MOCK_ERR_MOCK_NOT_MATCHED' + } + } -function getMockDispatch (mockDispatches, key) { - const basePath = key.query ? buildURL(key.path, key.query) : key.path - const resolvedPath = typeof basePath === 'string' ? safeUrl(basePath) : basePath + module.exports = { + MockNotMatchedError + } - // Match path - let matchedMockDispatches = mockDispatches.filter(({ consumed }) => !consumed).filter(({ path }) => matchValue(safeUrl(path), resolvedPath)) - if (matchedMockDispatches.length === 0) { - throw new MockNotMatchedError(`Mock dispatch not matched for path '${resolvedPath}'`) - } + /***/ + }, - // Match method - matchedMockDispatches = matchedMockDispatches.filter(({ method }) => matchValue(method, key.method)) - if (matchedMockDispatches.length === 0) { - throw new MockNotMatchedError(`Mock dispatch not matched for method '${key.method}'`) - } + /***/ 90410: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' - // Match body - matchedMockDispatches = matchedMockDispatches.filter(({ body }) => typeof body !== 'undefined' ? matchValue(body, key.body) : true) - if (matchedMockDispatches.length === 0) { - throw new MockNotMatchedError(`Mock dispatch not matched for body '${key.body}'`) - } + const { getResponseData, buildKey, addMockDispatch } = + __nccwpck_require__(79323) + const { + kDispatches, + kDispatchKey, + kDefaultHeaders, + kDefaultTrailers, + kContentLength, + kMockDispatch + } = __nccwpck_require__(24347) + const { InvalidArgumentError } = __nccwpck_require__(48045) + const { buildURL } = __nccwpck_require__(83983) - // Match headers - matchedMockDispatches = matchedMockDispatches.filter((mockDispatch) => matchHeaders(mockDispatch, key.headers)) - if (matchedMockDispatches.length === 0) { - throw new MockNotMatchedError(`Mock dispatch not matched for headers '${typeof key.headers === 'object' ? JSON.stringify(key.headers) : key.headers}'`) - } + /** + * Defines the scope API for an interceptor reply + */ + class MockScope { + constructor(mockDispatch) { + this[kMockDispatch] = mockDispatch + } - return matchedMockDispatches[0] -} - -function addMockDispatch (mockDispatches, key, data) { - const baseData = { timesInvoked: 0, times: 1, persist: false, consumed: false } - const replyData = typeof data === 'function' ? { callback: data } : { ...data } - const newMockDispatch = { ...baseData, ...key, pending: true, data: { error: null, ...replyData } } - mockDispatches.push(newMockDispatch) - return newMockDispatch -} - -function deleteMockDispatch (mockDispatches, key) { - const index = mockDispatches.findIndex(dispatch => { - if (!dispatch.consumed) { - return false - } - return matchKey(dispatch, key) - }) - if (index !== -1) { - mockDispatches.splice(index, 1) - } -} - -function buildKey (opts) { - const { path, method, body, headers, query } = opts - return { - path, - method, - body, - headers, - query - } -} - -function generateKeyValues (data) { - return Object.entries(data).reduce((keyValuePairs, [key, value]) => [ - ...keyValuePairs, - Buffer.from(`${key}`), - Array.isArray(value) ? value.map(x => Buffer.from(`${x}`)) : Buffer.from(`${value}`) - ], []) -} - -/** - * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Status - * @param {number} statusCode - */ -function getStatusText (statusCode) { - return STATUS_CODES[statusCode] || 'unknown' -} - -async function getResponse (body) { - const buffers = [] - for await (const data of body) { - buffers.push(data) - } - return Buffer.concat(buffers).toString('utf8') -} + /** + * Delay a reply by a set amount in ms. + */ + delay(waitInMs) { + if ( + typeof waitInMs !== 'number' || + !Number.isInteger(waitInMs) || + waitInMs <= 0 + ) { + throw new InvalidArgumentError( + 'waitInMs must be a valid integer > 0' + ) + } -/** - * Mock dispatch function used to simulate undici dispatches - */ -function mockDispatch (opts, handler) { - // Get mock dispatch from built key - const key = buildKey(opts) - const mockDispatch = getMockDispatch(this[kDispatches], key) + this[kMockDispatch].delay = waitInMs + return this + } - mockDispatch.timesInvoked++ + /** + * For a defined reply, never mark as consumed. + */ + persist() { + this[kMockDispatch].persist = true + return this + } - // Here's where we resolve a callback if a callback is present for the dispatch data. - if (mockDispatch.data.callback) { - mockDispatch.data = { ...mockDispatch.data, ...mockDispatch.data.callback(opts) } - } + /** + * Allow one to define a reply for a set amount of matching requests. + */ + times(repeatTimes) { + if ( + typeof repeatTimes !== 'number' || + !Number.isInteger(repeatTimes) || + repeatTimes <= 0 + ) { + throw new InvalidArgumentError( + 'repeatTimes must be a valid integer > 0' + ) + } - // Parse mockDispatch data - const { data: { statusCode, data, headers, trailers, error }, delay, persist } = mockDispatch - const { timesInvoked, times } = mockDispatch + this[kMockDispatch].times = repeatTimes + return this + } + } - // If it's used up and not persistent, mark as consumed - mockDispatch.consumed = !persist && timesInvoked >= times - mockDispatch.pending = timesInvoked < times + /** + * Defines an interceptor for a Mock + */ + class MockInterceptor { + constructor(opts, mockDispatches) { + if (typeof opts !== 'object') { + throw new InvalidArgumentError('opts must be an object') + } + if (typeof opts.path === 'undefined') { + throw new InvalidArgumentError('opts.path must be defined') + } + if (typeof opts.method === 'undefined') { + opts.method = 'GET' + } + // See https://github.com/nodejs/undici/issues/1245 + // As per RFC 3986, clients are not supposed to send URI + // fragments to servers when they retrieve a document, + if (typeof opts.path === 'string') { + if (opts.query) { + opts.path = buildURL(opts.path, opts.query) + } else { + // Matches https://github.com/nodejs/undici/blob/main/lib/fetch/index.js#L1811 + const parsedURL = new URL(opts.path, 'data://') + opts.path = parsedURL.pathname + parsedURL.search + } + } + if (typeof opts.method === 'string') { + opts.method = opts.method.toUpperCase() + } - // If specified, trigger dispatch error - if (error !== null) { - deleteMockDispatch(this[kDispatches], key) - handler.onError(error) - return true - } + this[kDispatchKey] = buildKey(opts) + this[kDispatches] = mockDispatches + this[kDefaultHeaders] = {} + this[kDefaultTrailers] = {} + this[kContentLength] = false + } + + createMockScopeDispatchData(statusCode, data, responseOptions = {}) { + const responseData = getResponseData(data) + const contentLength = this[kContentLength] + ? { 'content-length': responseData.length } + : {} + const headers = { + ...this[kDefaultHeaders], + ...contentLength, + ...responseOptions.headers + } + const trailers = { + ...this[kDefaultTrailers], + ...responseOptions.trailers + } - // Handle the request with a delay if necessary - if (typeof delay === 'number' && delay > 0) { - setTimeout(() => { - handleReply(this[kDispatches]) - }, delay) - } else { - handleReply(this[kDispatches]) - } + return { statusCode, data, headers, trailers } + } - function handleReply (mockDispatches, _data = data) { - // fetch's HeadersList is a 1D string array - const optsHeaders = Array.isArray(opts.headers) - ? buildHeadersFromArray(opts.headers) - : opts.headers - const body = typeof _data === 'function' - ? _data({ ...opts, headers: optsHeaders }) - : _data - - // util.types.isPromise is likely needed for jest. - if (isPromise(body)) { - // If handleReply is asynchronous, throwing an error - // in the callback will reject the promise, rather than - // synchronously throw the error, which breaks some tests. - // Rather, we wait for the callback to resolve if it is a - // promise, and then re-run handleReply with the new body. - body.then((newData) => handleReply(mockDispatches, newData)) - return - } + validateReplyParameters(statusCode, data, responseOptions) { + if (typeof statusCode === 'undefined') { + throw new InvalidArgumentError('statusCode must be defined') + } + if (typeof data === 'undefined') { + throw new InvalidArgumentError('data must be defined') + } + if (typeof responseOptions !== 'object') { + throw new InvalidArgumentError('responseOptions must be an object') + } + } - const responseData = getResponseData(body) - const responseHeaders = generateKeyValues(headers) - const responseTrailers = generateKeyValues(trailers) + /** + * Mock an undici request with a defined reply. + */ + reply(replyData) { + // Values of reply aren't available right now as they + // can only be available when the reply callback is invoked. + if (typeof replyData === 'function') { + // We'll first wrap the provided callback in another function, + // this function will properly resolve the data from the callback + // when invoked. + const wrappedDefaultsCallback = opts => { + // Our reply options callback contains the parameter for statusCode, data and options. + const resolvedData = replyData(opts) + + // Check if it is in the right format + if (typeof resolvedData !== 'object') { + throw new InvalidArgumentError( + 'reply options callback must return an object' + ) + } - handler.abort = nop - handler.onHeaders(statusCode, responseHeaders, resume, getStatusText(statusCode)) - handler.onData(Buffer.from(responseData)) - handler.onComplete(responseTrailers) - deleteMockDispatch(mockDispatches, key) - } + const { + statusCode, + data = '', + responseOptions = {} + } = resolvedData + this.validateReplyParameters(statusCode, data, responseOptions) + // Since the values can be obtained immediately we return them + // from this higher order function that will be resolved later. + return { + ...this.createMockScopeDispatchData( + statusCode, + data, + responseOptions + ) + } + } - function resume () {} + // Add usual dispatch data, but this time set the data parameter to function that will eventually provide data. + const newMockDispatch = addMockDispatch( + this[kDispatches], + this[kDispatchKey], + wrappedDefaultsCallback + ) + return new MockScope(newMockDispatch) + } - return true -} + // We can have either one or three parameters, if we get here, + // we should have 1-3 parameters. So we spread the arguments of + // this function to obtain the parameters, since replyData will always + // just be the statusCode. + const [statusCode, data = '', responseOptions = {}] = [...arguments] + this.validateReplyParameters(statusCode, data, responseOptions) -function buildMockDispatch () { - const agent = this[kMockAgent] - const origin = this[kOrigin] - const originalDispatch = this[kOriginalDispatch] + // Send in-already provided data like usual + const dispatchData = this.createMockScopeDispatchData( + statusCode, + data, + responseOptions + ) + const newMockDispatch = addMockDispatch( + this[kDispatches], + this[kDispatchKey], + dispatchData + ) + return new MockScope(newMockDispatch) + } - return function dispatch (opts, handler) { - if (agent.isMockActive) { - try { - mockDispatch.call(this, opts, handler) - } catch (error) { - if (error instanceof MockNotMatchedError) { - const netConnect = agent[kGetNetConnect]() - if (netConnect === false) { - throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect disabled)`) + /** + * Mock an undici request with a defined error. + */ + replyWithError(error) { + if (typeof error === 'undefined') { + throw new InvalidArgumentError('error must be defined') } - if (checkNetConnect(netConnect, origin)) { - originalDispatch.call(this, opts, handler) - } else { - throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect is not enabled for this origin)`) + + const newMockDispatch = addMockDispatch( + this[kDispatches], + this[kDispatchKey], + { error } + ) + return new MockScope(newMockDispatch) + } + + /** + * Set default reply headers on the interceptor for subsequent replies + */ + defaultReplyHeaders(headers) { + if (typeof headers === 'undefined') { + throw new InvalidArgumentError('headers must be defined') } - } else { - throw error + + this[kDefaultHeaders] = headers + return this } - } - } else { - originalDispatch.call(this, opts, handler) - } - } -} - -function checkNetConnect (netConnect, origin) { - const url = new URL(origin) - if (netConnect === true) { - return true - } else if (Array.isArray(netConnect) && netConnect.some((matcher) => matchValue(matcher, url.host))) { - return true - } - return false -} -function buildMockOptions (opts) { - if (opts) { - const { agent, ...mockOptions } = opts - return mockOptions - } -} + /** + * Set default reply trailers on the interceptor for subsequent replies + */ + defaultReplyTrailers(trailers) { + if (typeof trailers === 'undefined') { + throw new InvalidArgumentError('trailers must be defined') + } -module.exports = { - getResponseData, - getMockDispatch, - addMockDispatch, - deleteMockDispatch, - buildKey, - generateKeyValues, - matchValue, - getResponse, - getStatusText, - mockDispatch, - buildMockDispatch, - checkNetConnect, - buildMockOptions, - getHeaderByName -} + this[kDefaultTrailers] = trailers + return this + } + /** + * Set reply content length header for replies on the interceptor + */ + replyContentLength() { + this[kContentLength] = true + return this + } + } -/***/ }), + module.exports.MockInterceptor = MockInterceptor + module.exports.MockScope = MockScope -/***/ 86823: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + /***/ + }, -"use strict"; + /***/ 26193: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + const { promisify } = __nccwpck_require__(73837) + const Pool = __nccwpck_require__(4634) + const { buildMockDispatch } = __nccwpck_require__(79323) + const { + kDispatches, + kMockAgent, + kClose, + kOriginalClose, + kOrigin, + kOriginalDispatch, + kConnected + } = __nccwpck_require__(24347) + const { MockInterceptor } = __nccwpck_require__(90410) + const Symbols = __nccwpck_require__(72785) + const { InvalidArgumentError } = __nccwpck_require__(48045) -const { Transform } = __nccwpck_require__(12781) -const { Console } = __nccwpck_require__(96206) + /** + * MockPool provides an API that extends the Pool to influence the mockDispatches. + */ + class MockPool extends Pool { + constructor(origin, opts) { + super(origin, opts) -/** - * Gets the output of `console.table(…)` as a string. - */ -module.exports = class PendingInterceptorsFormatter { - constructor ({ disableColors } = {}) { - this.transform = new Transform({ - transform (chunk, _enc, cb) { - cb(null, chunk) - } - }) + if ( + !opts || + !opts.agent || + typeof opts.agent.dispatch !== 'function' + ) { + throw new InvalidArgumentError( + 'Argument opts.agent must implement Agent' + ) + } - this.logger = new Console({ - stdout: this.transform, - inspectOptions: { - colors: !disableColors && !process.env.CI - } - }) - } + this[kMockAgent] = opts.agent + this[kOrigin] = origin + this[kDispatches] = [] + this[kConnected] = 1 + this[kOriginalDispatch] = this.dispatch + this[kOriginalClose] = this.close.bind(this) - format (pendingInterceptors) { - const withPrettyHeaders = pendingInterceptors.map( - ({ method, path, data: { statusCode }, persist, times, timesInvoked, origin }) => ({ - Method: method, - Origin: origin, - Path: path, - 'Status code': statusCode, - Persistent: persist ? '✅' : '❌', - Invocations: timesInvoked, - Remaining: persist ? Infinity : times - timesInvoked - })) - - this.logger.table(withPrettyHeaders) - return this.transform.read().toString() - } -} + this.dispatch = buildMockDispatch.call(this) + this.close = this[kClose] + } + get [Symbols.kConnected]() { + return this[kConnected] + } -/***/ }), + /** + * Sets up the base interceptor for mocking replies from undici. + */ + intercept(opts) { + return new MockInterceptor(opts, this[kDispatches]) + } -/***/ 78891: -/***/ ((module) => { + async [kClose]() { + await promisify(this[kOriginalClose])() + this[kConnected] = 0 + this[kMockAgent][Symbols.kClients].delete(this[kOrigin]) + } + } -"use strict"; + module.exports = MockPool + /***/ + }, -const singulars = { - pronoun: 'it', - is: 'is', - was: 'was', - this: 'this' -} + /***/ 24347: /***/ module => { + 'use strict' + + module.exports = { + kAgent: Symbol('agent'), + kOptions: Symbol('options'), + kFactory: Symbol('factory'), + kDispatches: Symbol('dispatches'), + kDispatchKey: Symbol('dispatch key'), + kDefaultHeaders: Symbol('default headers'), + kDefaultTrailers: Symbol('default trailers'), + kContentLength: Symbol('content length'), + kMockAgent: Symbol('mock agent'), + kMockAgentSet: Symbol('mock agent set'), + kMockAgentGet: Symbol('mock agent get'), + kMockDispatch: Symbol('mock dispatch'), + kClose: Symbol('close'), + kOriginalClose: Symbol('original agent close'), + kOrigin: Symbol('origin'), + kIsMockActive: Symbol('is mock active'), + kNetConnect: Symbol('net connect'), + kGetNetConnect: Symbol('get net connect'), + kConnected: Symbol('connected') + } + + /***/ + }, -const plurals = { - pronoun: 'they', - is: 'are', - was: 'were', - this: 'these' -} + /***/ 79323: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' -module.exports = class Pluralizer { - constructor (singular, plural) { - this.singular = singular - this.plural = plural - } + const { MockNotMatchedError } = __nccwpck_require__(50888) + const { + kDispatches, + kMockAgent, + kOriginalDispatch, + kOrigin, + kGetNetConnect + } = __nccwpck_require__(24347) + const { buildURL, nop } = __nccwpck_require__(83983) + const { STATUS_CODES } = __nccwpck_require__(13685) + const { + types: { isPromise } + } = __nccwpck_require__(73837) - pluralize (count) { - const one = count === 1 - const keys = one ? singulars : plurals - const noun = one ? this.singular : this.plural - return { ...keys, count, noun } - } -} - - -/***/ }), - -/***/ 68266: -/***/ ((module) => { - -"use strict"; -/* eslint-disable */ - - - -// Extracted from node/lib/internal/fixed_queue.js - -// Currently optimal queue size, tested on V8 6.0 - 6.6. Must be power of two. -const kSize = 2048; -const kMask = kSize - 1; - -// The FixedQueue is implemented as a singly-linked list of fixed-size -// circular buffers. It looks something like this: -// -// head tail -// | | -// v v -// +-----------+ <-----\ +-----------+ <------\ +-----------+ -// | [null] | \----- | next | \------- | next | -// +-----------+ +-----------+ +-----------+ -// | item | <-- bottom | item | <-- bottom | [empty] | -// | item | | item | | [empty] | -// | item | | item | | [empty] | -// | item | | item | | [empty] | -// | item | | item | bottom --> | item | -// | item | | item | | item | -// | ... | | ... | | ... | -// | item | | item | | item | -// | item | | item | | item | -// | [empty] | <-- top | item | | item | -// | [empty] | | item | | item | -// | [empty] | | [empty] | <-- top top --> | [empty] | -// +-----------+ +-----------+ +-----------+ -// -// Or, if there is only one circular buffer, it looks something -// like either of these: -// -// head tail head tail -// | | | | -// v v v v -// +-----------+ +-----------+ -// | [null] | | [null] | -// +-----------+ +-----------+ -// | [empty] | | item | -// | [empty] | | item | -// | item | <-- bottom top --> | [empty] | -// | item | | [empty] | -// | [empty] | <-- top bottom --> | item | -// | [empty] | | item | -// +-----------+ +-----------+ -// -// Adding a value means moving `top` forward by one, removing means -// moving `bottom` forward by one. After reaching the end, the queue -// wraps around. -// -// When `top === bottom` the current queue is empty and when -// `top + 1 === bottom` it's full. This wastes a single space of storage -// but allows much quicker checks. - -class FixedCircularBuffer { - constructor() { - this.bottom = 0; - this.top = 0; - this.list = new Array(kSize); - this.next = null; - } + function matchValue(match, value) { + if (typeof match === 'string') { + return match === value + } + if (match instanceof RegExp) { + return match.test(value) + } + if (typeof match === 'function') { + return match(value) === true + } + return false + } - isEmpty() { - return this.top === this.bottom; - } + function lowerCaseEntries(headers) { + return Object.fromEntries( + Object.entries(headers).map(([headerName, headerValue]) => { + return [headerName.toLocaleLowerCase(), headerValue] + }) + ) + } - isFull() { - return ((this.top + 1) & kMask) === this.bottom; - } + /** + * @param {import('../../index').Headers|string[]|Record} headers + * @param {string} key + */ + function getHeaderByName(headers, key) { + if (Array.isArray(headers)) { + for (let i = 0; i < headers.length; i += 2) { + if (headers[i].toLocaleLowerCase() === key.toLocaleLowerCase()) { + return headers[i + 1] + } + } - push(data) { - this.list[this.top] = data; - this.top = (this.top + 1) & kMask; - } + return undefined + } else if (typeof headers.get === 'function') { + return headers.get(key) + } else { + return lowerCaseEntries(headers)[key.toLocaleLowerCase()] + } + } - shift() { - const nextItem = this.list[this.bottom]; - if (nextItem === undefined) - return null; - this.list[this.bottom] = undefined; - this.bottom = (this.bottom + 1) & kMask; - return nextItem; - } -} + /** @param {string[]} headers */ + function buildHeadersFromArray(headers) { + // fetch HeadersList + const clone = headers.slice() + const entries = [] + for (let index = 0; index < clone.length; index += 2) { + entries.push([clone[index], clone[index + 1]]) + } + return Object.fromEntries(entries) + } -module.exports = class FixedQueue { - constructor() { - this.head = this.tail = new FixedCircularBuffer(); - } + function matchHeaders(mockDispatch, headers) { + if (typeof mockDispatch.headers === 'function') { + if (Array.isArray(headers)) { + // fetch HeadersList + headers = buildHeadersFromArray(headers) + } + return mockDispatch.headers(headers ? lowerCaseEntries(headers) : {}) + } + if (typeof mockDispatch.headers === 'undefined') { + return true + } + if ( + typeof headers !== 'object' || + typeof mockDispatch.headers !== 'object' + ) { + return false + } - isEmpty() { - return this.head.isEmpty(); - } + for (const [matchHeaderName, matchHeaderValue] of Object.entries( + mockDispatch.headers + )) { + const headerValue = getHeaderByName(headers, matchHeaderName) - push(data) { - if (this.head.isFull()) { - // Head is full: Creates a new queue, sets the old queue's `.next` to it, - // and sets it as the new main queue. - this.head = this.head.next = new FixedCircularBuffer(); - } - this.head.push(data); - } + if (!matchValue(matchHeaderValue, headerValue)) { + return false + } + } + return true + } - shift() { - const tail = this.tail; - const next = tail.shift(); - if (tail.isEmpty() && tail.next !== null) { - // If there is another queue, it forms the new tail. - this.tail = tail.next; - } - return next; - } -}; + function safeUrl(path) { + if (typeof path !== 'string') { + return path + } + const pathSegments = path.split('?') -/***/ }), + if (pathSegments.length !== 2) { + return path + } -/***/ 73198: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + const qp = new URLSearchParams(pathSegments.pop()) + qp.sort() + return [...pathSegments, qp.toString()].join('?') + } -"use strict"; + function matchKey(mockDispatch, { path, method, body, headers }) { + const pathMatch = matchValue(mockDispatch.path, path) + const methodMatch = matchValue(mockDispatch.method, method) + const bodyMatch = + typeof mockDispatch.body !== 'undefined' + ? matchValue(mockDispatch.body, body) + : true + const headersMatch = matchHeaders(mockDispatch, headers) + return pathMatch && methodMatch && bodyMatch && headersMatch + } + function getResponseData(data) { + if (Buffer.isBuffer(data)) { + return data + } else if (typeof data === 'object') { + return JSON.stringify(data) + } else { + return data.toString() + } + } -const DispatcherBase = __nccwpck_require__(74839) -const FixedQueue = __nccwpck_require__(68266) -const { kConnected, kSize, kRunning, kPending, kQueued, kBusy, kFree, kUrl, kClose, kDestroy, kDispatch } = __nccwpck_require__(72785) -const PoolStats = __nccwpck_require__(39689) + function getMockDispatch(mockDispatches, key) { + const basePath = key.query ? buildURL(key.path, key.query) : key.path + const resolvedPath = + typeof basePath === 'string' ? safeUrl(basePath) : basePath -const kClients = Symbol('clients') -const kNeedDrain = Symbol('needDrain') -const kQueue = Symbol('queue') -const kClosedResolve = Symbol('closed resolve') -const kOnDrain = Symbol('onDrain') -const kOnConnect = Symbol('onConnect') -const kOnDisconnect = Symbol('onDisconnect') -const kOnConnectionError = Symbol('onConnectionError') -const kGetDispatcher = Symbol('get dispatcher') -const kAddClient = Symbol('add client') -const kRemoveClient = Symbol('remove client') -const kStats = Symbol('stats') + // Match path + let matchedMockDispatches = mockDispatches + .filter(({ consumed }) => !consumed) + .filter(({ path }) => matchValue(safeUrl(path), resolvedPath)) + if (matchedMockDispatches.length === 0) { + throw new MockNotMatchedError( + `Mock dispatch not matched for path '${resolvedPath}'` + ) + } -class PoolBase extends DispatcherBase { - constructor () { - super() + // Match method + matchedMockDispatches = matchedMockDispatches.filter(({ method }) => + matchValue(method, key.method) + ) + if (matchedMockDispatches.length === 0) { + throw new MockNotMatchedError( + `Mock dispatch not matched for method '${key.method}'` + ) + } - this[kQueue] = new FixedQueue() - this[kClients] = [] - this[kQueued] = 0 + // Match body + matchedMockDispatches = matchedMockDispatches.filter(({ body }) => + typeof body !== 'undefined' ? matchValue(body, key.body) : true + ) + if (matchedMockDispatches.length === 0) { + throw new MockNotMatchedError( + `Mock dispatch not matched for body '${key.body}'` + ) + } - const pool = this + // Match headers + matchedMockDispatches = matchedMockDispatches.filter(mockDispatch => + matchHeaders(mockDispatch, key.headers) + ) + if (matchedMockDispatches.length === 0) { + throw new MockNotMatchedError( + `Mock dispatch not matched for headers '${typeof key.headers === 'object' ? JSON.stringify(key.headers) : key.headers}'` + ) + } - this[kOnDrain] = function onDrain (origin, targets) { - const queue = pool[kQueue] + return matchedMockDispatches[0] + } - let needDrain = false + function addMockDispatch(mockDispatches, key, data) { + const baseData = { + timesInvoked: 0, + times: 1, + persist: false, + consumed: false + } + const replyData = + typeof data === 'function' ? { callback: data } : { ...data } + const newMockDispatch = { + ...baseData, + ...key, + pending: true, + data: { error: null, ...replyData } + } + mockDispatches.push(newMockDispatch) + return newMockDispatch + } - while (!needDrain) { - const item = queue.shift() - if (!item) { - break + function deleteMockDispatch(mockDispatches, key) { + const index = mockDispatches.findIndex(dispatch => { + if (!dispatch.consumed) { + return false + } + return matchKey(dispatch, key) + }) + if (index !== -1) { + mockDispatches.splice(index, 1) } - pool[kQueued]-- - needDrain = !this.dispatch(item.opts, item.handler) } - this[kNeedDrain] = needDrain + function buildKey(opts) { + const { path, method, body, headers, query } = opts + return { + path, + method, + body, + headers, + query + } + } - if (!this[kNeedDrain] && pool[kNeedDrain]) { - pool[kNeedDrain] = false - pool.emit('drain', origin, [pool, ...targets]) + function generateKeyValues(data) { + return Object.entries(data).reduce( + (keyValuePairs, [key, value]) => [ + ...keyValuePairs, + Buffer.from(`${key}`), + Array.isArray(value) + ? value.map(x => Buffer.from(`${x}`)) + : Buffer.from(`${value}`) + ], + [] + ) } - if (pool[kClosedResolve] && queue.isEmpty()) { - Promise - .all(pool[kClients].map(c => c.close())) - .then(pool[kClosedResolve]) + /** + * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Status + * @param {number} statusCode + */ + function getStatusText(statusCode) { + return STATUS_CODES[statusCode] || 'unknown' } - } - this[kOnConnect] = (origin, targets) => { - pool.emit('connect', origin, [pool, ...targets]) - } + async function getResponse(body) { + const buffers = [] + for await (const data of body) { + buffers.push(data) + } + return Buffer.concat(buffers).toString('utf8') + } - this[kOnDisconnect] = (origin, targets, err) => { - pool.emit('disconnect', origin, [pool, ...targets], err) - } + /** + * Mock dispatch function used to simulate undici dispatches + */ + function mockDispatch(opts, handler) { + // Get mock dispatch from built key + const key = buildKey(opts) + const mockDispatch = getMockDispatch(this[kDispatches], key) + + mockDispatch.timesInvoked++ + + // Here's where we resolve a callback if a callback is present for the dispatch data. + if (mockDispatch.data.callback) { + mockDispatch.data = { + ...mockDispatch.data, + ...mockDispatch.data.callback(opts) + } + } - this[kOnConnectionError] = (origin, targets, err) => { - pool.emit('connectionError', origin, [pool, ...targets], err) - } + // Parse mockDispatch data + const { + data: { statusCode, data, headers, trailers, error }, + delay, + persist + } = mockDispatch + const { timesInvoked, times } = mockDispatch - this[kStats] = new PoolStats(this) - } + // If it's used up and not persistent, mark as consumed + mockDispatch.consumed = !persist && timesInvoked >= times + mockDispatch.pending = timesInvoked < times - get [kBusy] () { - return this[kNeedDrain] - } + // If specified, trigger dispatch error + if (error !== null) { + deleteMockDispatch(this[kDispatches], key) + handler.onError(error) + return true + } - get [kConnected] () { - return this[kClients].filter(client => client[kConnected]).length - } + // Handle the request with a delay if necessary + if (typeof delay === 'number' && delay > 0) { + setTimeout(() => { + handleReply(this[kDispatches]) + }, delay) + } else { + handleReply(this[kDispatches]) + } + + function handleReply(mockDispatches, _data = data) { + // fetch's HeadersList is a 1D string array + const optsHeaders = Array.isArray(opts.headers) + ? buildHeadersFromArray(opts.headers) + : opts.headers + const body = + typeof _data === 'function' + ? _data({ ...opts, headers: optsHeaders }) + : _data + + // util.types.isPromise is likely needed for jest. + if (isPromise(body)) { + // If handleReply is asynchronous, throwing an error + // in the callback will reject the promise, rather than + // synchronously throw the error, which breaks some tests. + // Rather, we wait for the callback to resolve if it is a + // promise, and then re-run handleReply with the new body. + body.then(newData => handleReply(mockDispatches, newData)) + return + } - get [kFree] () { - return this[kClients].filter(client => client[kConnected] && !client[kNeedDrain]).length - } + const responseData = getResponseData(body) + const responseHeaders = generateKeyValues(headers) + const responseTrailers = generateKeyValues(trailers) - get [kPending] () { - let ret = this[kQueued] - for (const { [kPending]: pending } of this[kClients]) { - ret += pending - } - return ret - } + handler.abort = nop + handler.onHeaders( + statusCode, + responseHeaders, + resume, + getStatusText(statusCode) + ) + handler.onData(Buffer.from(responseData)) + handler.onComplete(responseTrailers) + deleteMockDispatch(mockDispatches, key) + } - get [kRunning] () { - let ret = 0 - for (const { [kRunning]: running } of this[kClients]) { - ret += running - } - return ret - } + function resume() {} - get [kSize] () { - let ret = this[kQueued] - for (const { [kSize]: size } of this[kClients]) { - ret += size - } - return ret - } + return true + } - get stats () { - return this[kStats] - } + function buildMockDispatch() { + const agent = this[kMockAgent] + const origin = this[kOrigin] + const originalDispatch = this[kOriginalDispatch] - async [kClose] () { - if (this[kQueue].isEmpty()) { - return Promise.all(this[kClients].map(c => c.close())) - } else { - return new Promise((resolve) => { - this[kClosedResolve] = resolve - }) - } - } + return function dispatch(opts, handler) { + if (agent.isMockActive) { + try { + mockDispatch.call(this, opts, handler) + } catch (error) { + if (error instanceof MockNotMatchedError) { + const netConnect = agent[kGetNetConnect]() + if (netConnect === false) { + throw new MockNotMatchedError( + `${error.message}: subsequent request to origin ${origin} was not allowed (net.connect disabled)` + ) + } + if (checkNetConnect(netConnect, origin)) { + originalDispatch.call(this, opts, handler) + } else { + throw new MockNotMatchedError( + `${error.message}: subsequent request to origin ${origin} was not allowed (net.connect is not enabled for this origin)` + ) + } + } else { + throw error + } + } + } else { + originalDispatch.call(this, opts, handler) + } + } + } - async [kDestroy] (err) { - while (true) { - const item = this[kQueue].shift() - if (!item) { - break + function checkNetConnect(netConnect, origin) { + const url = new URL(origin) + if (netConnect === true) { + return true + } else if ( + Array.isArray(netConnect) && + netConnect.some(matcher => matchValue(matcher, url.host)) + ) { + return true + } + return false } - item.handler.onError(err) - } - return Promise.all(this[kClients].map(c => c.destroy(err))) - } + function buildMockOptions(opts) { + if (opts) { + const { agent, ...mockOptions } = opts + return mockOptions + } + } - [kDispatch] (opts, handler) { - const dispatcher = this[kGetDispatcher]() + module.exports = { + getResponseData, + getMockDispatch, + addMockDispatch, + deleteMockDispatch, + buildKey, + generateKeyValues, + matchValue, + getResponse, + getStatusText, + mockDispatch, + buildMockDispatch, + checkNetConnect, + buildMockOptions, + getHeaderByName + } - if (!dispatcher) { - this[kNeedDrain] = true - this[kQueue].push({ opts, handler }) - this[kQueued]++ - } else if (!dispatcher.dispatch(opts, handler)) { - dispatcher[kNeedDrain] = true - this[kNeedDrain] = !this[kGetDispatcher]() - } + /***/ + }, - return !this[kNeedDrain] - } + /***/ 86823: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' - [kAddClient] (client) { - client - .on('drain', this[kOnDrain]) - .on('connect', this[kOnConnect]) - .on('disconnect', this[kOnDisconnect]) - .on('connectionError', this[kOnConnectionError]) + const { Transform } = __nccwpck_require__(12781) + const { Console } = __nccwpck_require__(96206) - this[kClients].push(client) + /** + * Gets the output of `console.table(…)` as a string. + */ + module.exports = class PendingInterceptorsFormatter { + constructor({ disableColors } = {}) { + this.transform = new Transform({ + transform(chunk, _enc, cb) { + cb(null, chunk) + } + }) - if (this[kNeedDrain]) { - process.nextTick(() => { - if (this[kNeedDrain]) { - this[kOnDrain](client[kUrl], [this, client]) + this.logger = new Console({ + stdout: this.transform, + inspectOptions: { + colors: !disableColors && !process.env.CI + } + }) } - }) - } - return this - } + format(pendingInterceptors) { + const withPrettyHeaders = pendingInterceptors.map( + ({ + method, + path, + data: { statusCode }, + persist, + times, + timesInvoked, + origin + }) => ({ + Method: method, + Origin: origin, + Path: path, + 'Status code': statusCode, + Persistent: persist ? '✅' : '❌', + Invocations: timesInvoked, + Remaining: persist ? Infinity : times - timesInvoked + }) + ) - [kRemoveClient] (client) { - client.close(() => { - const idx = this[kClients].indexOf(client) - if (idx !== -1) { - this[kClients].splice(idx, 1) + this.logger.table(withPrettyHeaders) + return this.transform.read().toString() + } } - }) - - this[kNeedDrain] = this[kClients].some(dispatcher => ( - !dispatcher[kNeedDrain] && - dispatcher.closed !== true && - dispatcher.destroyed !== true - )) - } -} -module.exports = { - PoolBase, - kClients, - kNeedDrain, - kAddClient, - kRemoveClient, - kGetDispatcher -} + /***/ + }, + /***/ 78891: /***/ module => { + 'use strict' -/***/ }), + const singulars = { + pronoun: 'it', + is: 'is', + was: 'was', + this: 'this' + } -/***/ 39689: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + const plurals = { + pronoun: 'they', + is: 'are', + was: 'were', + this: 'these' + } -const { kFree, kConnected, kPending, kQueued, kRunning, kSize } = __nccwpck_require__(72785) -const kPool = Symbol('pool') + module.exports = class Pluralizer { + constructor(singular, plural) { + this.singular = singular + this.plural = plural + } -class PoolStats { - constructor (pool) { - this[kPool] = pool - } + pluralize(count) { + const one = count === 1 + const keys = one ? singulars : plurals + const noun = one ? this.singular : this.plural + return { ...keys, count, noun } + } + } - get connected () { - return this[kPool][kConnected] - } + /***/ + }, - get free () { - return this[kPool][kFree] - } + /***/ 68266: /***/ module => { + 'use strict' + /* eslint-disable */ - get pending () { - return this[kPool][kPending] - } + // Extracted from node/lib/internal/fixed_queue.js - get queued () { - return this[kPool][kQueued] - } + // Currently optimal queue size, tested on V8 6.0 - 6.6. Must be power of two. + const kSize = 2048 + const kMask = kSize - 1 - get running () { - return this[kPool][kRunning] - } + // The FixedQueue is implemented as a singly-linked list of fixed-size + // circular buffers. It looks something like this: + // + // head tail + // | | + // v v + // +-----------+ <-----\ +-----------+ <------\ +-----------+ + // | [null] | \----- | next | \------- | next | + // +-----------+ +-----------+ +-----------+ + // | item | <-- bottom | item | <-- bottom | [empty] | + // | item | | item | | [empty] | + // | item | | item | | [empty] | + // | item | | item | | [empty] | + // | item | | item | bottom --> | item | + // | item | | item | | item | + // | ... | | ... | | ... | + // | item | | item | | item | + // | item | | item | | item | + // | [empty] | <-- top | item | | item | + // | [empty] | | item | | item | + // | [empty] | | [empty] | <-- top top --> | [empty] | + // +-----------+ +-----------+ +-----------+ + // + // Or, if there is only one circular buffer, it looks something + // like either of these: + // + // head tail head tail + // | | | | + // v v v v + // +-----------+ +-----------+ + // | [null] | | [null] | + // +-----------+ +-----------+ + // | [empty] | | item | + // | [empty] | | item | + // | item | <-- bottom top --> | [empty] | + // | item | | [empty] | + // | [empty] | <-- top bottom --> | item | + // | [empty] | | item | + // +-----------+ +-----------+ + // + // Adding a value means moving `top` forward by one, removing means + // moving `bottom` forward by one. After reaching the end, the queue + // wraps around. + // + // When `top === bottom` the current queue is empty and when + // `top + 1 === bottom` it's full. This wastes a single space of storage + // but allows much quicker checks. - get size () { - return this[kPool][kSize] - } -} - -module.exports = PoolStats - - -/***/ }), - -/***/ 4634: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - - -const { - PoolBase, - kClients, - kNeedDrain, - kAddClient, - kGetDispatcher -} = __nccwpck_require__(73198) -const Client = __nccwpck_require__(33598) -const { - InvalidArgumentError -} = __nccwpck_require__(48045) -const util = __nccwpck_require__(83983) -const { kUrl, kInterceptors } = __nccwpck_require__(72785) -const buildConnector = __nccwpck_require__(82067) - -const kOptions = Symbol('options') -const kConnections = Symbol('connections') -const kFactory = Symbol('factory') - -function defaultFactory (origin, opts) { - return new Client(origin, opts) -} - -class Pool extends PoolBase { - constructor (origin, { - connections, - factory = defaultFactory, - connect, - connectTimeout, - tls, - maxCachedSessions, - socketPath, - autoSelectFamily, - autoSelectFamilyAttemptTimeout, - allowH2, - ...options - } = {}) { - super() - - if (connections != null && (!Number.isFinite(connections) || connections < 0)) { - throw new InvalidArgumentError('invalid connections') - } + class FixedCircularBuffer { + constructor() { + this.bottom = 0 + this.top = 0 + this.list = new Array(kSize) + this.next = null + } - if (typeof factory !== 'function') { - throw new InvalidArgumentError('factory must be a function.') - } + isEmpty() { + return this.top === this.bottom + } - if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') { - throw new InvalidArgumentError('connect must be a function or an object') - } + isFull() { + return ((this.top + 1) & kMask) === this.bottom + } - if (typeof connect !== 'function') { - connect = buildConnector({ - ...tls, - maxCachedSessions, - allowH2, - socketPath, - timeout: connectTimeout, - ...(util.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : undefined), - ...connect - }) - } + push(data) { + this.list[this.top] = data + this.top = (this.top + 1) & kMask + } - this[kInterceptors] = options.interceptors && options.interceptors.Pool && Array.isArray(options.interceptors.Pool) - ? options.interceptors.Pool - : [] - this[kConnections] = connections || null - this[kUrl] = util.parseOrigin(origin) - this[kOptions] = { ...util.deepClone(options), connect, allowH2 } - this[kOptions].interceptors = options.interceptors - ? { ...options.interceptors } - : undefined - this[kFactory] = factory - } + shift() { + const nextItem = this.list[this.bottom] + if (nextItem === undefined) return null + this.list[this.bottom] = undefined + this.bottom = (this.bottom + 1) & kMask + return nextItem + } + } - [kGetDispatcher] () { - let dispatcher = this[kClients].find(dispatcher => !dispatcher[kNeedDrain]) + module.exports = class FixedQueue { + constructor() { + this.head = this.tail = new FixedCircularBuffer() + } - if (dispatcher) { - return dispatcher - } + isEmpty() { + return this.head.isEmpty() + } - if (!this[kConnections] || this[kClients].length < this[kConnections]) { - dispatcher = this[kFactory](this[kUrl], this[kOptions]) - this[kAddClient](dispatcher) - } + push(data) { + if (this.head.isFull()) { + // Head is full: Creates a new queue, sets the old queue's `.next` to it, + // and sets it as the new main queue. + this.head = this.head.next = new FixedCircularBuffer() + } + this.head.push(data) + } - return dispatcher - } -} + shift() { + const tail = this.tail + const next = tail.shift() + if (tail.isEmpty() && tail.next !== null) { + // If there is another queue, it forms the new tail. + this.tail = tail.next + } + return next + } + } -module.exports = Pool + /***/ + }, + /***/ 73198: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' -/***/ }), + const DispatcherBase = __nccwpck_require__(74839) + const FixedQueue = __nccwpck_require__(68266) + const { + kConnected, + kSize, + kRunning, + kPending, + kQueued, + kBusy, + kFree, + kUrl, + kClose, + kDestroy, + kDispatch + } = __nccwpck_require__(72785) + const PoolStats = __nccwpck_require__(39689) + + const kClients = Symbol('clients') + const kNeedDrain = Symbol('needDrain') + const kQueue = Symbol('queue') + const kClosedResolve = Symbol('closed resolve') + const kOnDrain = Symbol('onDrain') + const kOnConnect = Symbol('onConnect') + const kOnDisconnect = Symbol('onDisconnect') + const kOnConnectionError = Symbol('onConnectionError') + const kGetDispatcher = Symbol('get dispatcher') + const kAddClient = Symbol('add client') + const kRemoveClient = Symbol('remove client') + const kStats = Symbol('stats') + + class PoolBase extends DispatcherBase { + constructor() { + super() + + this[kQueue] = new FixedQueue() + this[kClients] = [] + this[kQueued] = 0 + + const pool = this + + this[kOnDrain] = function onDrain(origin, targets) { + const queue = pool[kQueue] + + let needDrain = false + + while (!needDrain) { + const item = queue.shift() + if (!item) { + break + } + pool[kQueued]-- + needDrain = !this.dispatch(item.opts, item.handler) + } -/***/ 97858: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + this[kNeedDrain] = needDrain -"use strict"; + if (!this[kNeedDrain] && pool[kNeedDrain]) { + pool[kNeedDrain] = false + pool.emit('drain', origin, [pool, ...targets]) + } + if (pool[kClosedResolve] && queue.isEmpty()) { + Promise.all(pool[kClients].map(c => c.close())).then( + pool[kClosedResolve] + ) + } + } -const { kProxy, kClose, kDestroy, kInterceptors } = __nccwpck_require__(72785) -const { URL } = __nccwpck_require__(57310) -const Agent = __nccwpck_require__(7890) -const Pool = __nccwpck_require__(4634) -const DispatcherBase = __nccwpck_require__(74839) -const { InvalidArgumentError, RequestAbortedError } = __nccwpck_require__(48045) -const buildConnector = __nccwpck_require__(82067) + this[kOnConnect] = (origin, targets) => { + pool.emit('connect', origin, [pool, ...targets]) + } -const kAgent = Symbol('proxy agent') -const kClient = Symbol('proxy client') -const kProxyHeaders = Symbol('proxy headers') -const kRequestTls = Symbol('request tls settings') -const kProxyTls = Symbol('proxy tls settings') -const kConnectEndpoint = Symbol('connect endpoint function') + this[kOnDisconnect] = (origin, targets, err) => { + pool.emit('disconnect', origin, [pool, ...targets], err) + } -function defaultProtocolPort (protocol) { - return protocol === 'https:' ? 443 : 80 -} + this[kOnConnectionError] = (origin, targets, err) => { + pool.emit('connectionError', origin, [pool, ...targets], err) + } -function buildProxyOptions (opts) { - if (typeof opts === 'string') { - opts = { uri: opts } - } + this[kStats] = new PoolStats(this) + } - if (!opts || !opts.uri) { - throw new InvalidArgumentError('Proxy opts.uri is mandatory') - } + get [kBusy]() { + return this[kNeedDrain] + } - return { - uri: opts.uri, - protocol: opts.protocol || 'https' - } -} - -function defaultFactory (origin, opts) { - return new Pool(origin, opts) -} - -class ProxyAgent extends DispatcherBase { - constructor (opts) { - super(opts) - this[kProxy] = buildProxyOptions(opts) - this[kAgent] = new Agent(opts) - this[kInterceptors] = opts.interceptors && opts.interceptors.ProxyAgent && Array.isArray(opts.interceptors.ProxyAgent) - ? opts.interceptors.ProxyAgent - : [] - - if (typeof opts === 'string') { - opts = { uri: opts } - } + get [kConnected]() { + return this[kClients].filter(client => client[kConnected]).length + } - if (!opts || !opts.uri) { - throw new InvalidArgumentError('Proxy opts.uri is mandatory') - } + get [kFree]() { + return this[kClients].filter( + client => client[kConnected] && !client[kNeedDrain] + ).length + } - const { clientFactory = defaultFactory } = opts + get [kPending]() { + let ret = this[kQueued] + for (const { [kPending]: pending } of this[kClients]) { + ret += pending + } + return ret + } - if (typeof clientFactory !== 'function') { - throw new InvalidArgumentError('Proxy opts.clientFactory must be a function.') - } + get [kRunning]() { + let ret = 0 + for (const { [kRunning]: running } of this[kClients]) { + ret += running + } + return ret + } - this[kRequestTls] = opts.requestTls - this[kProxyTls] = opts.proxyTls - this[kProxyHeaders] = opts.headers || {} - - const resolvedUrl = new URL(opts.uri) - const { origin, port, host, username, password } = resolvedUrl - - if (opts.auth && opts.token) { - throw new InvalidArgumentError('opts.auth cannot be used in combination with opts.token') - } else if (opts.auth) { - /* @deprecated in favour of opts.token */ - this[kProxyHeaders]['proxy-authorization'] = `Basic ${opts.auth}` - } else if (opts.token) { - this[kProxyHeaders]['proxy-authorization'] = opts.token - } else if (username && password) { - this[kProxyHeaders]['proxy-authorization'] = `Basic ${Buffer.from(`${decodeURIComponent(username)}:${decodeURIComponent(password)}`).toString('base64')}` - } + get [kSize]() { + let ret = this[kQueued] + for (const { [kSize]: size } of this[kClients]) { + ret += size + } + return ret + } - const connect = buildConnector({ ...opts.proxyTls }) - this[kConnectEndpoint] = buildConnector({ ...opts.requestTls }) - this[kClient] = clientFactory(resolvedUrl, { connect }) - this[kAgent] = new Agent({ - ...opts, - connect: async (opts, callback) => { - let requestedHost = opts.host - if (!opts.port) { - requestedHost += `:${defaultProtocolPort(opts.protocol)}` + get stats() { + return this[kStats] } - try { - const { socket, statusCode } = await this[kClient].connect({ - origin, - port, - path: requestedHost, - signal: opts.signal, - headers: { - ...this[kProxyHeaders], - host - } - }) - if (statusCode !== 200) { - socket.on('error', () => {}).destroy() - callback(new RequestAbortedError(`Proxy response (${statusCode}) !== 200 when HTTP Tunneling`)) - } - if (opts.protocol !== 'https:') { - callback(null, socket) - return - } - let servername - if (this[kRequestTls]) { - servername = this[kRequestTls].servername + + async [kClose]() { + if (this[kQueue].isEmpty()) { + return Promise.all(this[kClients].map(c => c.close())) } else { - servername = opts.servername + return new Promise(resolve => { + this[kClosedResolve] = resolve + }) } - this[kConnectEndpoint]({ ...opts, servername, httpSocket: socket }, callback) - } catch (err) { - callback(err) } - } - }) - } - - dispatch (opts, handler) { - const { host } = new URL(opts.origin) - const headers = buildHeaders(opts.headers) - throwIfProxyAuthIsSent(headers) - return this[kAgent].dispatch( - { - ...opts, - headers: { - ...headers, - host - } - }, - handler - ) - } - - async [kClose] () { - await this[kAgent].close() - await this[kClient].close() - } - - async [kDestroy] () { - await this[kAgent].destroy() - await this[kClient].destroy() - } -} - -/** - * @param {string[] | Record} headers - * @returns {Record} - */ -function buildHeaders (headers) { - // When using undici.fetch, the headers list is stored - // as an array. - if (Array.isArray(headers)) { - /** @type {Record} */ - const headersPair = {} - - for (let i = 0; i < headers.length; i += 2) { - headersPair[headers[i]] = headers[i + 1] - } - - return headersPair - } - - return headers -} - -/** - * @param {Record} headers - * - * Previous versions of ProxyAgent suggests the Proxy-Authorization in request headers - * Nevertheless, it was changed and to avoid a security vulnerability by end users - * this check was created. - * It should be removed in the next major version for performance reasons - */ -function throwIfProxyAuthIsSent (headers) { - const existProxyAuth = headers && Object.keys(headers) - .find((key) => key.toLowerCase() === 'proxy-authorization') - if (existProxyAuth) { - throw new InvalidArgumentError('Proxy-Authorization should be sent in ProxyAgent constructor') - } -} - -module.exports = ProxyAgent + async [kDestroy](err) { + while (true) { + const item = this[kQueue].shift() + if (!item) { + break + } + item.handler.onError(err) + } -/***/ }), + return Promise.all(this[kClients].map(c => c.destroy(err))) + } -/***/ 29459: -/***/ ((module) => { + [kDispatch](opts, handler) { + const dispatcher = this[kGetDispatcher]() -"use strict"; + if (!dispatcher) { + this[kNeedDrain] = true + this[kQueue].push({ opts, handler }) + this[kQueued]++ + } else if (!dispatcher.dispatch(opts, handler)) { + dispatcher[kNeedDrain] = true + this[kNeedDrain] = !this[kGetDispatcher]() + } + return !this[kNeedDrain] + } -let fastNow = Date.now() -let fastNowTimeout + [kAddClient](client) { + client + .on('drain', this[kOnDrain]) + .on('connect', this[kOnConnect]) + .on('disconnect', this[kOnDisconnect]) + .on('connectionError', this[kOnConnectionError]) -const fastTimers = [] + this[kClients].push(client) -function onTimeout () { - fastNow = Date.now() + if (this[kNeedDrain]) { + process.nextTick(() => { + if (this[kNeedDrain]) { + this[kOnDrain](client[kUrl], [this, client]) + } + }) + } - let len = fastTimers.length - let idx = 0 - while (idx < len) { - const timer = fastTimers[idx] + return this + } - if (timer.state === 0) { - timer.state = fastNow + timer.delay - } else if (timer.state > 0 && fastNow >= timer.state) { - timer.state = -1 - timer.callback(timer.opaque) - } + [kRemoveClient](client) { + client.close(() => { + const idx = this[kClients].indexOf(client) + if (idx !== -1) { + this[kClients].splice(idx, 1) + } + }) - if (timer.state === -1) { - timer.state = -2 - if (idx !== len - 1) { - fastTimers[idx] = fastTimers.pop() - } else { - fastTimers.pop() + this[kNeedDrain] = this[kClients].some( + dispatcher => + !dispatcher[kNeedDrain] && + dispatcher.closed !== true && + dispatcher.destroyed !== true + ) + } } - len -= 1 - } else { - idx += 1 - } - } - - if (fastTimers.length > 0) { - refreshTimeout() - } -} - -function refreshTimeout () { - if (fastNowTimeout && fastNowTimeout.refresh) { - fastNowTimeout.refresh() - } else { - clearTimeout(fastNowTimeout) - fastNowTimeout = setTimeout(onTimeout, 1e3) - if (fastNowTimeout.unref) { - fastNowTimeout.unref() - } - } -} -class Timeout { - constructor (callback, delay, opaque) { - this.callback = callback - this.delay = delay - this.opaque = opaque - - // -2 not in timer list - // -1 in timer list but inactive - // 0 in timer list waiting for time - // > 0 in timer list waiting for time to expire - this.state = -2 - - this.refresh() - } - - refresh () { - if (this.state === -2) { - fastTimers.push(this) - if (!fastNowTimeout || fastTimers.length === 1) { - refreshTimeout() + module.exports = { + PoolBase, + kClients, + kNeedDrain, + kAddClient, + kRemoveClient, + kGetDispatcher } - } - this.state = 0 - } + /***/ + }, - clear () { - this.state = -1 - } -} - -module.exports = { - setTimeout (callback, delay, opaque) { - return delay < 1e3 - ? setTimeout(callback, delay, opaque) - : new Timeout(callback, delay, opaque) - }, - clearTimeout (timeout) { - if (timeout instanceof Timeout) { - timeout.clear() - } else { - clearTimeout(timeout) - } - } -} - - -/***/ }), - -/***/ 35354: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - - -const diagnosticsChannel = __nccwpck_require__(67643) -const { uid, states } = __nccwpck_require__(19188) -const { - kReadyState, - kSentClose, - kByteParser, - kReceivedClose -} = __nccwpck_require__(37578) -const { fireEvent, failWebsocketConnection } = __nccwpck_require__(25515) -const { CloseEvent } = __nccwpck_require__(52611) -const { makeRequest } = __nccwpck_require__(48359) -const { fetching } = __nccwpck_require__(74881) -const { Headers } = __nccwpck_require__(10554) -const { getGlobalDispatcher } = __nccwpck_require__(21892) -const { kHeadersList } = __nccwpck_require__(72785) - -const channels = {} -channels.open = diagnosticsChannel.channel('undici:websocket:open') -channels.close = diagnosticsChannel.channel('undici:websocket:close') -channels.socketError = diagnosticsChannel.channel('undici:websocket:socket_error') - -/** @type {import('crypto')} */ -let crypto -try { - crypto = __nccwpck_require__(6113) -} catch { - -} - -/** - * @see https://websockets.spec.whatwg.org/#concept-websocket-establish - * @param {URL} url - * @param {string|string[]} protocols - * @param {import('./websocket').WebSocket} ws - * @param {(response: any) => void} onEstablish - * @param {Partial} options - */ -function establishWebSocketConnection (url, protocols, ws, onEstablish, options) { - // 1. Let requestURL be a copy of url, with its scheme set to "http", if url’s - // scheme is "ws", and to "https" otherwise. - const requestURL = url - - requestURL.protocol = url.protocol === 'ws:' ? 'http:' : 'https:' - - // 2. Let request be a new request, whose URL is requestURL, client is client, - // service-workers mode is "none", referrer is "no-referrer", mode is - // "websocket", credentials mode is "include", cache mode is "no-store" , - // and redirect mode is "error". - const request = makeRequest({ - urlList: [requestURL], - serviceWorkers: 'none', - referrer: 'no-referrer', - mode: 'websocket', - credentials: 'include', - cache: 'no-store', - redirect: 'error' - }) - - // Note: undici extension, allow setting custom headers. - if (options.headers) { - const headersList = new Headers(options.headers)[kHeadersList] - - request.headersList = headersList - } + /***/ 39689: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + const { kFree, kConnected, kPending, kQueued, kRunning, kSize } = + __nccwpck_require__(72785) + const kPool = Symbol('pool') - // 3. Append (`Upgrade`, `websocket`) to request’s header list. - // 4. Append (`Connection`, `Upgrade`) to request’s header list. - // Note: both of these are handled by undici currently. - // https://github.com/nodejs/undici/blob/68c269c4144c446f3f1220951338daef4a6b5ec4/lib/client.js#L1397 - - // 5. Let keyValue be a nonce consisting of a randomly selected - // 16-byte value that has been forgiving-base64-encoded and - // isomorphic encoded. - const keyValue = crypto.randomBytes(16).toString('base64') - - // 6. Append (`Sec-WebSocket-Key`, keyValue) to request’s - // header list. - request.headersList.append('sec-websocket-key', keyValue) - - // 7. Append (`Sec-WebSocket-Version`, `13`) to request’s - // header list. - request.headersList.append('sec-websocket-version', '13') - - // 8. For each protocol in protocols, combine - // (`Sec-WebSocket-Protocol`, protocol) in request’s header - // list. - for (const protocol of protocols) { - request.headersList.append('sec-websocket-protocol', protocol) - } + class PoolStats { + constructor(pool) { + this[kPool] = pool + } + + get connected() { + return this[kPool][kConnected] + } - // 9. Let permessageDeflate be a user-agent defined - // "permessage-deflate" extension header value. - // https://github.com/mozilla/gecko-dev/blob/ce78234f5e653a5d3916813ff990f053510227bc/netwerk/protocol/websocket/WebSocketChannel.cpp#L2673 - // TODO: enable once permessage-deflate is supported - const permessageDeflate = '' // 'permessage-deflate; 15' - - // 10. Append (`Sec-WebSocket-Extensions`, permessageDeflate) to - // request’s header list. - // request.headersList.append('sec-websocket-extensions', permessageDeflate) - - // 11. Fetch request with useParallelQueue set to true, and - // processResponse given response being these steps: - const controller = fetching({ - request, - useParallelQueue: true, - dispatcher: options.dispatcher ?? getGlobalDispatcher(), - processResponse (response) { - // 1. If response is a network error or its status is not 101, - // fail the WebSocket connection. - if (response.type === 'error' || response.status !== 101) { - failWebsocketConnection(ws, 'Received network error or non-101 status code.') - return - } - - // 2. If protocols is not the empty list and extracting header - // list values given `Sec-WebSocket-Protocol` and response’s - // header list results in null, failure, or the empty byte - // sequence, then fail the WebSocket connection. - if (protocols.length !== 0 && !response.headersList.get('Sec-WebSocket-Protocol')) { - failWebsocketConnection(ws, 'Server did not respond with sent protocols.') - return - } - - // 3. Follow the requirements stated step 2 to step 6, inclusive, - // of the last set of steps in section 4.1 of The WebSocket - // Protocol to validate response. This either results in fail - // the WebSocket connection or the WebSocket connection is - // established. - - // 2. If the response lacks an |Upgrade| header field or the |Upgrade| - // header field contains a value that is not an ASCII case- - // insensitive match for the value "websocket", the client MUST - // _Fail the WebSocket Connection_. - if (response.headersList.get('Upgrade')?.toLowerCase() !== 'websocket') { - failWebsocketConnection(ws, 'Server did not set Upgrade header to "websocket".') - return - } - - // 3. If the response lacks a |Connection| header field or the - // |Connection| header field doesn't contain a token that is an - // ASCII case-insensitive match for the value "Upgrade", the client - // MUST _Fail the WebSocket Connection_. - if (response.headersList.get('Connection')?.toLowerCase() !== 'upgrade') { - failWebsocketConnection(ws, 'Server did not set Connection header to "upgrade".') - return - } - - // 4. If the response lacks a |Sec-WebSocket-Accept| header field or - // the |Sec-WebSocket-Accept| contains a value other than the - // base64-encoded SHA-1 of the concatenation of the |Sec-WebSocket- - // Key| (as a string, not base64-decoded) with the string "258EAFA5- - // E914-47DA-95CA-C5AB0DC85B11" but ignoring any leading and - // trailing whitespace, the client MUST _Fail the WebSocket - // Connection_. - const secWSAccept = response.headersList.get('Sec-WebSocket-Accept') - const digest = crypto.createHash('sha1').update(keyValue + uid).digest('base64') - if (secWSAccept !== digest) { - failWebsocketConnection(ws, 'Incorrect hash received in Sec-WebSocket-Accept header.') - return - } - - // 5. If the response includes a |Sec-WebSocket-Extensions| header - // field and this header field indicates the use of an extension - // that was not present in the client's handshake (the server has - // indicated an extension not requested by the client), the client - // MUST _Fail the WebSocket Connection_. (The parsing of this - // header field to determine which extensions are requested is - // discussed in Section 9.1.) - const secExtension = response.headersList.get('Sec-WebSocket-Extensions') - - if (secExtension !== null && secExtension !== permessageDeflate) { - failWebsocketConnection(ws, 'Received different permessage-deflate than the one set.') - return - } - - // 6. If the response includes a |Sec-WebSocket-Protocol| header field - // and this header field indicates the use of a subprotocol that was - // not present in the client's handshake (the server has indicated a - // subprotocol not requested by the client), the client MUST _Fail - // the WebSocket Connection_. - const secProtocol = response.headersList.get('Sec-WebSocket-Protocol') - - if (secProtocol !== null && secProtocol !== request.headersList.get('Sec-WebSocket-Protocol')) { - failWebsocketConnection(ws, 'Protocol was not set in the opening handshake.') - return - } - - response.socket.on('data', onSocketData) - response.socket.on('close', onSocketClose) - response.socket.on('error', onSocketError) - - if (channels.open.hasSubscribers) { - channels.open.publish({ - address: response.socket.address(), - protocol: secProtocol, - extensions: secExtension - }) - } + get free() { + return this[kPool][kFree] + } - onEstablish(response) - } - }) + get pending() { + return this[kPool][kPending] + } - return controller -} + get queued() { + return this[kPool][kQueued] + } -/** - * @param {Buffer} chunk - */ -function onSocketData (chunk) { - if (!this.ws[kByteParser].write(chunk)) { - this.pause() - } -} + get running() { + return this[kPool][kRunning] + } -/** - * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol - * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.4 - */ -function onSocketClose () { - const { ws } = this - - // If the TCP connection was closed after the - // WebSocket closing handshake was completed, the WebSocket connection - // is said to have been closed _cleanly_. - const wasClean = ws[kSentClose] && ws[kReceivedClose] - - let code = 1005 - let reason = '' - - const result = ws[kByteParser].closingInfo - - if (result) { - code = result.code ?? 1005 - reason = result.reason - } else if (!ws[kSentClose]) { - // If _The WebSocket - // Connection is Closed_ and no Close control frame was received by the - // endpoint (such as could occur if the underlying transport connection - // is lost), _The WebSocket Connection Close Code_ is considered to be - // 1006. - code = 1006 - } + get size() { + return this[kPool][kSize] + } + } - // 1. Change the ready state to CLOSED (3). - ws[kReadyState] = states.CLOSED - - // 2. If the user agent was required to fail the WebSocket - // connection, or if the WebSocket connection was closed - // after being flagged as full, fire an event named error - // at the WebSocket object. - // TODO - - // 3. Fire an event named close at the WebSocket object, - // using CloseEvent, with the wasClean attribute - // initialized to true if the connection closed cleanly - // and false otherwise, the code attribute initialized to - // the WebSocket connection close code, and the reason - // attribute initialized to the result of applying UTF-8 - // decode without BOM to the WebSocket connection close - // reason. - fireEvent('close', ws, CloseEvent, { - wasClean, code, reason - }) - - if (channels.close.hasSubscribers) { - channels.close.publish({ - websocket: ws, - code, - reason - }) - } -} + module.exports = PoolStats -function onSocketError (error) { - const { ws } = this + /***/ + }, - ws[kReadyState] = states.CLOSING + /***/ 4634: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' - if (channels.socketError.hasSubscribers) { - channels.socketError.publish(error) - } + const { PoolBase, kClients, kNeedDrain, kAddClient, kGetDispatcher } = + __nccwpck_require__(73198) + const Client = __nccwpck_require__(33598) + const { InvalidArgumentError } = __nccwpck_require__(48045) + const util = __nccwpck_require__(83983) + const { kUrl, kInterceptors } = __nccwpck_require__(72785) + const buildConnector = __nccwpck_require__(82067) - this.destroy() -} + const kOptions = Symbol('options') + const kConnections = Symbol('connections') + const kFactory = Symbol('factory') -module.exports = { - establishWebSocketConnection -} + function defaultFactory(origin, opts) { + return new Client(origin, opts) + } + class Pool extends PoolBase { + constructor( + origin, + { + connections, + factory = defaultFactory, + connect, + connectTimeout, + tls, + maxCachedSessions, + socketPath, + autoSelectFamily, + autoSelectFamilyAttemptTimeout, + allowH2, + ...options + } = {} + ) { + super() -/***/ }), + if ( + connections != null && + (!Number.isFinite(connections) || connections < 0) + ) { + throw new InvalidArgumentError('invalid connections') + } -/***/ 19188: -/***/ ((module) => { + if (typeof factory !== 'function') { + throw new InvalidArgumentError('factory must be a function.') + } -"use strict"; + if ( + connect != null && + typeof connect !== 'function' && + typeof connect !== 'object' + ) { + throw new InvalidArgumentError( + 'connect must be a function or an object' + ) + } + if (typeof connect !== 'function') { + connect = buildConnector({ + ...tls, + maxCachedSessions, + allowH2, + socketPath, + timeout: connectTimeout, + ...(util.nodeHasAutoSelectFamily && autoSelectFamily + ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } + : undefined), + ...connect + }) + } -// This is a Globally Unique Identifier unique used -// to validate that the endpoint accepts websocket -// connections. -// See https://www.rfc-editor.org/rfc/rfc6455.html#section-1.3 -const uid = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11' + this[kInterceptors] = + options.interceptors && + options.interceptors.Pool && + Array.isArray(options.interceptors.Pool) + ? options.interceptors.Pool + : [] + this[kConnections] = connections || null + this[kUrl] = util.parseOrigin(origin) + this[kOptions] = { ...util.deepClone(options), connect, allowH2 } + this[kOptions].interceptors = options.interceptors + ? { ...options.interceptors } + : undefined + this[kFactory] = factory + } + + [kGetDispatcher]() { + let dispatcher = this[kClients].find( + dispatcher => !dispatcher[kNeedDrain] + ) -/** @type {PropertyDescriptor} */ -const staticPropertyDescriptors = { - enumerable: true, - writable: false, - configurable: false -} + if (dispatcher) { + return dispatcher + } -const states = { - CONNECTING: 0, - OPEN: 1, - CLOSING: 2, - CLOSED: 3 -} + if ( + !this[kConnections] || + this[kClients].length < this[kConnections] + ) { + dispatcher = this[kFactory](this[kUrl], this[kOptions]) + this[kAddClient](dispatcher) + } -const opcodes = { - CONTINUATION: 0x0, - TEXT: 0x1, - BINARY: 0x2, - CLOSE: 0x8, - PING: 0x9, - PONG: 0xA -} + return dispatcher + } + } -const maxUnsigned16Bit = 2 ** 16 - 1 // 65535 + module.exports = Pool -const parserStates = { - INFO: 0, - PAYLOADLENGTH_16: 2, - PAYLOADLENGTH_64: 3, - READ_DATA: 4 -} + /***/ + }, -const emptyBuffer = Buffer.allocUnsafe(0) + /***/ 97858: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' -module.exports = { - uid, - staticPropertyDescriptors, - states, - opcodes, - maxUnsigned16Bit, - parserStates, - emptyBuffer -} + const { kProxy, kClose, kDestroy, kInterceptors } = + __nccwpck_require__(72785) + const { URL } = __nccwpck_require__(57310) + const Agent = __nccwpck_require__(7890) + const Pool = __nccwpck_require__(4634) + const DispatcherBase = __nccwpck_require__(74839) + const { InvalidArgumentError, RequestAbortedError } = + __nccwpck_require__(48045) + const buildConnector = __nccwpck_require__(82067) + const kAgent = Symbol('proxy agent') + const kClient = Symbol('proxy client') + const kProxyHeaders = Symbol('proxy headers') + const kRequestTls = Symbol('request tls settings') + const kProxyTls = Symbol('proxy tls settings') + const kConnectEndpoint = Symbol('connect endpoint function') -/***/ }), + function defaultProtocolPort(protocol) { + return protocol === 'https:' ? 443 : 80 + } -/***/ 52611: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + function buildProxyOptions(opts) { + if (typeof opts === 'string') { + opts = { uri: opts } + } -"use strict"; + if (!opts || !opts.uri) { + throw new InvalidArgumentError('Proxy opts.uri is mandatory') + } + return { + uri: opts.uri, + protocol: opts.protocol || 'https' + } + } -const { webidl } = __nccwpck_require__(21744) -const { kEnumerableProperty } = __nccwpck_require__(83983) -const { MessagePort } = __nccwpck_require__(71267) + function defaultFactory(origin, opts) { + return new Pool(origin, opts) + } -/** - * @see https://html.spec.whatwg.org/multipage/comms.html#messageevent - */ -class MessageEvent extends Event { - #eventInit + class ProxyAgent extends DispatcherBase { + constructor(opts) { + super(opts) + this[kProxy] = buildProxyOptions(opts) + this[kAgent] = new Agent(opts) + this[kInterceptors] = + opts.interceptors && + opts.interceptors.ProxyAgent && + Array.isArray(opts.interceptors.ProxyAgent) + ? opts.interceptors.ProxyAgent + : [] - constructor (type, eventInitDict = {}) { - webidl.argumentLengthCheck(arguments, 1, { header: 'MessageEvent constructor' }) + if (typeof opts === 'string') { + opts = { uri: opts } + } - type = webidl.converters.DOMString(type) - eventInitDict = webidl.converters.MessageEventInit(eventInitDict) + if (!opts || !opts.uri) { + throw new InvalidArgumentError('Proxy opts.uri is mandatory') + } - super(type, eventInitDict) + const { clientFactory = defaultFactory } = opts - this.#eventInit = eventInitDict - } + if (typeof clientFactory !== 'function') { + throw new InvalidArgumentError( + 'Proxy opts.clientFactory must be a function.' + ) + } - get data () { - webidl.brandCheck(this, MessageEvent) + this[kRequestTls] = opts.requestTls + this[kProxyTls] = opts.proxyTls + this[kProxyHeaders] = opts.headers || {} - return this.#eventInit.data - } + const resolvedUrl = new URL(opts.uri) + const { origin, port, host, username, password } = resolvedUrl - get origin () { - webidl.brandCheck(this, MessageEvent) + if (opts.auth && opts.token) { + throw new InvalidArgumentError( + 'opts.auth cannot be used in combination with opts.token' + ) + } else if (opts.auth) { + /* @deprecated in favour of opts.token */ + this[kProxyHeaders]['proxy-authorization'] = `Basic ${opts.auth}` + } else if (opts.token) { + this[kProxyHeaders]['proxy-authorization'] = opts.token + } else if (username && password) { + this[kProxyHeaders]['proxy-authorization'] = + `Basic ${Buffer.from(`${decodeURIComponent(username)}:${decodeURIComponent(password)}`).toString('base64')}` + } - return this.#eventInit.origin - } + const connect = buildConnector({ ...opts.proxyTls }) + this[kConnectEndpoint] = buildConnector({ ...opts.requestTls }) + this[kClient] = clientFactory(resolvedUrl, { connect }) + this[kAgent] = new Agent({ + ...opts, + connect: async (opts, callback) => { + let requestedHost = opts.host + if (!opts.port) { + requestedHost += `:${defaultProtocolPort(opts.protocol)}` + } + try { + const { socket, statusCode } = await this[kClient].connect({ + origin, + port, + path: requestedHost, + signal: opts.signal, + headers: { + ...this[kProxyHeaders], + host + } + }) + if (statusCode !== 200) { + socket.on('error', () => {}).destroy() + callback( + new RequestAbortedError( + `Proxy response (${statusCode}) !== 200 when HTTP Tunneling` + ) + ) + } + if (opts.protocol !== 'https:') { + callback(null, socket) + return + } + let servername + if (this[kRequestTls]) { + servername = this[kRequestTls].servername + } else { + servername = opts.servername + } + this[kConnectEndpoint]( + { ...opts, servername, httpSocket: socket }, + callback + ) + } catch (err) { + callback(err) + } + } + }) + } - get lastEventId () { - webidl.brandCheck(this, MessageEvent) + dispatch(opts, handler) { + const { host } = new URL(opts.origin) + const headers = buildHeaders(opts.headers) + throwIfProxyAuthIsSent(headers) + return this[kAgent].dispatch( + { + ...opts, + headers: { + ...headers, + host + } + }, + handler + ) + } - return this.#eventInit.lastEventId - } + async [kClose]() { + await this[kAgent].close() + await this[kClient].close() + } - get source () { - webidl.brandCheck(this, MessageEvent) + async [kDestroy]() { + await this[kAgent].destroy() + await this[kClient].destroy() + } + } - return this.#eventInit.source - } + /** + * @param {string[] | Record} headers + * @returns {Record} + */ + function buildHeaders(headers) { + // When using undici.fetch, the headers list is stored + // as an array. + if (Array.isArray(headers)) { + /** @type {Record} */ + const headersPair = {} + + for (let i = 0; i < headers.length; i += 2) { + headersPair[headers[i]] = headers[i + 1] + } - get ports () { - webidl.brandCheck(this, MessageEvent) + return headersPair + } - if (!Object.isFrozen(this.#eventInit.ports)) { - Object.freeze(this.#eventInit.ports) - } + return headers + } - return this.#eventInit.ports - } + /** + * @param {Record} headers + * + * Previous versions of ProxyAgent suggests the Proxy-Authorization in request headers + * Nevertheless, it was changed and to avoid a security vulnerability by end users + * this check was created. + * It should be removed in the next major version for performance reasons + */ + function throwIfProxyAuthIsSent(headers) { + const existProxyAuth = + headers && + Object.keys(headers).find( + key => key.toLowerCase() === 'proxy-authorization' + ) + if (existProxyAuth) { + throw new InvalidArgumentError( + 'Proxy-Authorization should be sent in ProxyAgent constructor' + ) + } + } - initMessageEvent ( - type, - bubbles = false, - cancelable = false, - data = null, - origin = '', - lastEventId = '', - source = null, - ports = [] - ) { - webidl.brandCheck(this, MessageEvent) - - webidl.argumentLengthCheck(arguments, 1, { header: 'MessageEvent.initMessageEvent' }) - - return new MessageEvent(type, { - bubbles, cancelable, data, origin, lastEventId, source, ports - }) - } -} + module.exports = ProxyAgent -/** - * @see https://websockets.spec.whatwg.org/#the-closeevent-interface - */ -class CloseEvent extends Event { - #eventInit + /***/ + }, - constructor (type, eventInitDict = {}) { - webidl.argumentLengthCheck(arguments, 1, { header: 'CloseEvent constructor' }) + /***/ 29459: /***/ module => { + 'use strict' - type = webidl.converters.DOMString(type) - eventInitDict = webidl.converters.CloseEventInit(eventInitDict) + let fastNow = Date.now() + let fastNowTimeout - super(type, eventInitDict) + const fastTimers = [] - this.#eventInit = eventInitDict - } + function onTimeout() { + fastNow = Date.now() - get wasClean () { - webidl.brandCheck(this, CloseEvent) + let len = fastTimers.length + let idx = 0 + while (idx < len) { + const timer = fastTimers[idx] - return this.#eventInit.wasClean - } + if (timer.state === 0) { + timer.state = fastNow + timer.delay + } else if (timer.state > 0 && fastNow >= timer.state) { + timer.state = -1 + timer.callback(timer.opaque) + } - get code () { - webidl.brandCheck(this, CloseEvent) + if (timer.state === -1) { + timer.state = -2 + if (idx !== len - 1) { + fastTimers[idx] = fastTimers.pop() + } else { + fastTimers.pop() + } + len -= 1 + } else { + idx += 1 + } + } - return this.#eventInit.code - } + if (fastTimers.length > 0) { + refreshTimeout() + } + } - get reason () { - webidl.brandCheck(this, CloseEvent) + function refreshTimeout() { + if (fastNowTimeout && fastNowTimeout.refresh) { + fastNowTimeout.refresh() + } else { + clearTimeout(fastNowTimeout) + fastNowTimeout = setTimeout(onTimeout, 1e3) + if (fastNowTimeout.unref) { + fastNowTimeout.unref() + } + } + } - return this.#eventInit.reason - } -} + class Timeout { + constructor(callback, delay, opaque) { + this.callback = callback + this.delay = delay + this.opaque = opaque -// https://html.spec.whatwg.org/multipage/webappapis.html#the-errorevent-interface -class ErrorEvent extends Event { - #eventInit + // -2 not in timer list + // -1 in timer list but inactive + // 0 in timer list waiting for time + // > 0 in timer list waiting for time to expire + this.state = -2 - constructor (type, eventInitDict) { - webidl.argumentLengthCheck(arguments, 1, { header: 'ErrorEvent constructor' }) + this.refresh() + } - super(type, eventInitDict) + refresh() { + if (this.state === -2) { + fastTimers.push(this) + if (!fastNowTimeout || fastTimers.length === 1) { + refreshTimeout() + } + } - type = webidl.converters.DOMString(type) - eventInitDict = webidl.converters.ErrorEventInit(eventInitDict ?? {}) + this.state = 0 + } - this.#eventInit = eventInitDict - } + clear() { + this.state = -1 + } + } - get message () { - webidl.brandCheck(this, ErrorEvent) + module.exports = { + setTimeout(callback, delay, opaque) { + return delay < 1e3 + ? setTimeout(callback, delay, opaque) + : new Timeout(callback, delay, opaque) + }, + clearTimeout(timeout) { + if (timeout instanceof Timeout) { + timeout.clear() + } else { + clearTimeout(timeout) + } + } + } - return this.#eventInit.message - } + /***/ + }, - get filename () { - webidl.brandCheck(this, ErrorEvent) + /***/ 35354: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + const diagnosticsChannel = __nccwpck_require__(67643) + const { uid, states } = __nccwpck_require__(19188) + const { kReadyState, kSentClose, kByteParser, kReceivedClose } = + __nccwpck_require__(37578) + const { fireEvent, failWebsocketConnection } = __nccwpck_require__(25515) + const { CloseEvent } = __nccwpck_require__(52611) + const { makeRequest } = __nccwpck_require__(48359) + const { fetching } = __nccwpck_require__(74881) + const { Headers } = __nccwpck_require__(10554) + const { getGlobalDispatcher } = __nccwpck_require__(21892) + const { kHeadersList } = __nccwpck_require__(72785) + + const channels = {} + channels.open = diagnosticsChannel.channel('undici:websocket:open') + channels.close = diagnosticsChannel.channel('undici:websocket:close') + channels.socketError = diagnosticsChannel.channel( + 'undici:websocket:socket_error' + ) - return this.#eventInit.filename - } + /** @type {import('crypto')} */ + let crypto + try { + crypto = __nccwpck_require__(6113) + } catch {} - get lineno () { - webidl.brandCheck(this, ErrorEvent) + /** + * @see https://websockets.spec.whatwg.org/#concept-websocket-establish + * @param {URL} url + * @param {string|string[]} protocols + * @param {import('./websocket').WebSocket} ws + * @param {(response: any) => void} onEstablish + * @param {Partial} options + */ + function establishWebSocketConnection( + url, + protocols, + ws, + onEstablish, + options + ) { + // 1. Let requestURL be a copy of url, with its scheme set to "http", if url’s + // scheme is "ws", and to "https" otherwise. + const requestURL = url + + requestURL.protocol = url.protocol === 'ws:' ? 'http:' : 'https:' + + // 2. Let request be a new request, whose URL is requestURL, client is client, + // service-workers mode is "none", referrer is "no-referrer", mode is + // "websocket", credentials mode is "include", cache mode is "no-store" , + // and redirect mode is "error". + const request = makeRequest({ + urlList: [requestURL], + serviceWorkers: 'none', + referrer: 'no-referrer', + mode: 'websocket', + credentials: 'include', + cache: 'no-store', + redirect: 'error' + }) - return this.#eventInit.lineno - } + // Note: undici extension, allow setting custom headers. + if (options.headers) { + const headersList = new Headers(options.headers)[kHeadersList] - get colno () { - webidl.brandCheck(this, ErrorEvent) + request.headersList = headersList + } - return this.#eventInit.colno - } + // 3. Append (`Upgrade`, `websocket`) to request’s header list. + // 4. Append (`Connection`, `Upgrade`) to request’s header list. + // Note: both of these are handled by undici currently. + // https://github.com/nodejs/undici/blob/68c269c4144c446f3f1220951338daef4a6b5ec4/lib/client.js#L1397 - get error () { - webidl.brandCheck(this, ErrorEvent) + // 5. Let keyValue be a nonce consisting of a randomly selected + // 16-byte value that has been forgiving-base64-encoded and + // isomorphic encoded. + const keyValue = crypto.randomBytes(16).toString('base64') - return this.#eventInit.error - } -} - -Object.defineProperties(MessageEvent.prototype, { - [Symbol.toStringTag]: { - value: 'MessageEvent', - configurable: true - }, - data: kEnumerableProperty, - origin: kEnumerableProperty, - lastEventId: kEnumerableProperty, - source: kEnumerableProperty, - ports: kEnumerableProperty, - initMessageEvent: kEnumerableProperty -}) - -Object.defineProperties(CloseEvent.prototype, { - [Symbol.toStringTag]: { - value: 'CloseEvent', - configurable: true - }, - reason: kEnumerableProperty, - code: kEnumerableProperty, - wasClean: kEnumerableProperty -}) - -Object.defineProperties(ErrorEvent.prototype, { - [Symbol.toStringTag]: { - value: 'ErrorEvent', - configurable: true - }, - message: kEnumerableProperty, - filename: kEnumerableProperty, - lineno: kEnumerableProperty, - colno: kEnumerableProperty, - error: kEnumerableProperty -}) - -webidl.converters.MessagePort = webidl.interfaceConverter(MessagePort) - -webidl.converters['sequence'] = webidl.sequenceConverter( - webidl.converters.MessagePort -) - -const eventInit = [ - { - key: 'bubbles', - converter: webidl.converters.boolean, - defaultValue: false - }, - { - key: 'cancelable', - converter: webidl.converters.boolean, - defaultValue: false - }, - { - key: 'composed', - converter: webidl.converters.boolean, - defaultValue: false - } -] - -webidl.converters.MessageEventInit = webidl.dictionaryConverter([ - ...eventInit, - { - key: 'data', - converter: webidl.converters.any, - defaultValue: null - }, - { - key: 'origin', - converter: webidl.converters.USVString, - defaultValue: '' - }, - { - key: 'lastEventId', - converter: webidl.converters.DOMString, - defaultValue: '' - }, - { - key: 'source', - // Node doesn't implement WindowProxy or ServiceWorker, so the only - // valid value for source is a MessagePort. - converter: webidl.nullableConverter(webidl.converters.MessagePort), - defaultValue: null - }, - { - key: 'ports', - converter: webidl.converters['sequence'], - get defaultValue () { - return [] - } - } -]) - -webidl.converters.CloseEventInit = webidl.dictionaryConverter([ - ...eventInit, - { - key: 'wasClean', - converter: webidl.converters.boolean, - defaultValue: false - }, - { - key: 'code', - converter: webidl.converters['unsigned short'], - defaultValue: 0 - }, - { - key: 'reason', - converter: webidl.converters.USVString, - defaultValue: '' - } -]) - -webidl.converters.ErrorEventInit = webidl.dictionaryConverter([ - ...eventInit, - { - key: 'message', - converter: webidl.converters.DOMString, - defaultValue: '' - }, - { - key: 'filename', - converter: webidl.converters.USVString, - defaultValue: '' - }, - { - key: 'lineno', - converter: webidl.converters['unsigned long'], - defaultValue: 0 - }, - { - key: 'colno', - converter: webidl.converters['unsigned long'], - defaultValue: 0 - }, - { - key: 'error', - converter: webidl.converters.any - } -]) + // 6. Append (`Sec-WebSocket-Key`, keyValue) to request’s + // header list. + request.headersList.append('sec-websocket-key', keyValue) -module.exports = { - MessageEvent, - CloseEvent, - ErrorEvent -} + // 7. Append (`Sec-WebSocket-Version`, `13`) to request’s + // header list. + request.headersList.append('sec-websocket-version', '13') + // 8. For each protocol in protocols, combine + // (`Sec-WebSocket-Protocol`, protocol) in request’s header + // list. + for (const protocol of protocols) { + request.headersList.append('sec-websocket-protocol', protocol) + } -/***/ }), + // 9. Let permessageDeflate be a user-agent defined + // "permessage-deflate" extension header value. + // https://github.com/mozilla/gecko-dev/blob/ce78234f5e653a5d3916813ff990f053510227bc/netwerk/protocol/websocket/WebSocketChannel.cpp#L2673 + // TODO: enable once permessage-deflate is supported + const permessageDeflate = '' // 'permessage-deflate; 15' -/***/ 25444: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + // 10. Append (`Sec-WebSocket-Extensions`, permessageDeflate) to + // request’s header list. + // request.headersList.append('sec-websocket-extensions', permessageDeflate) -"use strict"; + // 11. Fetch request with useParallelQueue set to true, and + // processResponse given response being these steps: + const controller = fetching({ + request, + useParallelQueue: true, + dispatcher: options.dispatcher ?? getGlobalDispatcher(), + processResponse(response) { + // 1. If response is a network error or its status is not 101, + // fail the WebSocket connection. + if (response.type === 'error' || response.status !== 101) { + failWebsocketConnection( + ws, + 'Received network error or non-101 status code.' + ) + return + } + // 2. If protocols is not the empty list and extracting header + // list values given `Sec-WebSocket-Protocol` and response’s + // header list results in null, failure, or the empty byte + // sequence, then fail the WebSocket connection. + if ( + protocols.length !== 0 && + !response.headersList.get('Sec-WebSocket-Protocol') + ) { + failWebsocketConnection( + ws, + 'Server did not respond with sent protocols.' + ) + return + } -const { maxUnsigned16Bit } = __nccwpck_require__(19188) + // 3. Follow the requirements stated step 2 to step 6, inclusive, + // of the last set of steps in section 4.1 of The WebSocket + // Protocol to validate response. This either results in fail + // the WebSocket connection or the WebSocket connection is + // established. + + // 2. If the response lacks an |Upgrade| header field or the |Upgrade| + // header field contains a value that is not an ASCII case- + // insensitive match for the value "websocket", the client MUST + // _Fail the WebSocket Connection_. + if ( + response.headersList.get('Upgrade')?.toLowerCase() !== 'websocket' + ) { + failWebsocketConnection( + ws, + 'Server did not set Upgrade header to "websocket".' + ) + return + } -/** @type {import('crypto')} */ -let crypto -try { - crypto = __nccwpck_require__(6113) -} catch { + // 3. If the response lacks a |Connection| header field or the + // |Connection| header field doesn't contain a token that is an + // ASCII case-insensitive match for the value "Upgrade", the client + // MUST _Fail the WebSocket Connection_. + if ( + response.headersList.get('Connection')?.toLowerCase() !== + 'upgrade' + ) { + failWebsocketConnection( + ws, + 'Server did not set Connection header to "upgrade".' + ) + return + } -} + // 4. If the response lacks a |Sec-WebSocket-Accept| header field or + // the |Sec-WebSocket-Accept| contains a value other than the + // base64-encoded SHA-1 of the concatenation of the |Sec-WebSocket- + // Key| (as a string, not base64-decoded) with the string "258EAFA5- + // E914-47DA-95CA-C5AB0DC85B11" but ignoring any leading and + // trailing whitespace, the client MUST _Fail the WebSocket + // Connection_. + const secWSAccept = response.headersList.get('Sec-WebSocket-Accept') + const digest = crypto + .createHash('sha1') + .update(keyValue + uid) + .digest('base64') + if (secWSAccept !== digest) { + failWebsocketConnection( + ws, + 'Incorrect hash received in Sec-WebSocket-Accept header.' + ) + return + } -class WebsocketFrameSend { - /** - * @param {Buffer|undefined} data - */ - constructor (data) { - this.frameData = data - this.maskKey = crypto.randomBytes(4) - } + // 5. If the response includes a |Sec-WebSocket-Extensions| header + // field and this header field indicates the use of an extension + // that was not present in the client's handshake (the server has + // indicated an extension not requested by the client), the client + // MUST _Fail the WebSocket Connection_. (The parsing of this + // header field to determine which extensions are requested is + // discussed in Section 9.1.) + const secExtension = response.headersList.get( + 'Sec-WebSocket-Extensions' + ) - createFrame (opcode) { - const bodyLength = this.frameData?.byteLength ?? 0 + if (secExtension !== null && secExtension !== permessageDeflate) { + failWebsocketConnection( + ws, + 'Received different permessage-deflate than the one set.' + ) + return + } - /** @type {number} */ - let payloadLength = bodyLength // 0-125 - let offset = 6 + // 6. If the response includes a |Sec-WebSocket-Protocol| header field + // and this header field indicates the use of a subprotocol that was + // not present in the client's handshake (the server has indicated a + // subprotocol not requested by the client), the client MUST _Fail + // the WebSocket Connection_. + const secProtocol = response.headersList.get( + 'Sec-WebSocket-Protocol' + ) - if (bodyLength > maxUnsigned16Bit) { - offset += 8 // payload length is next 8 bytes - payloadLength = 127 - } else if (bodyLength > 125) { - offset += 2 // payload length is next 2 bytes - payloadLength = 126 - } + if ( + secProtocol !== null && + secProtocol !== request.headersList.get('Sec-WebSocket-Protocol') + ) { + failWebsocketConnection( + ws, + 'Protocol was not set in the opening handshake.' + ) + return + } - const buffer = Buffer.allocUnsafe(bodyLength + offset) + response.socket.on('data', onSocketData) + response.socket.on('close', onSocketClose) + response.socket.on('error', onSocketError) - // Clear first 2 bytes, everything else is overwritten - buffer[0] = buffer[1] = 0 - buffer[0] |= 0x80 // FIN - buffer[0] = (buffer[0] & 0xF0) + opcode // opcode + if (channels.open.hasSubscribers) { + channels.open.publish({ + address: response.socket.address(), + protocol: secProtocol, + extensions: secExtension + }) + } - /*! ws. MIT License. Einar Otto Stangvik */ - buffer[offset - 4] = this.maskKey[0] - buffer[offset - 3] = this.maskKey[1] - buffer[offset - 2] = this.maskKey[2] - buffer[offset - 1] = this.maskKey[3] + onEstablish(response) + } + }) - buffer[1] = payloadLength + return controller + } - if (payloadLength === 126) { - buffer.writeUInt16BE(bodyLength, 2) - } else if (payloadLength === 127) { - // Clear extended payload length - buffer[2] = buffer[3] = 0 - buffer.writeUIntBE(bodyLength, 4, 6) - } + /** + * @param {Buffer} chunk + */ + function onSocketData(chunk) { + if (!this.ws[kByteParser].write(chunk)) { + this.pause() + } + } - buffer[1] |= 0x80 // MASK + /** + * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol + * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.4 + */ + function onSocketClose() { + const { ws } = this + + // If the TCP connection was closed after the + // WebSocket closing handshake was completed, the WebSocket connection + // is said to have been closed _cleanly_. + const wasClean = ws[kSentClose] && ws[kReceivedClose] + + let code = 1005 + let reason = '' + + const result = ws[kByteParser].closingInfo + + if (result) { + code = result.code ?? 1005 + reason = result.reason + } else if (!ws[kSentClose]) { + // If _The WebSocket + // Connection is Closed_ and no Close control frame was received by the + // endpoint (such as could occur if the underlying transport connection + // is lost), _The WebSocket Connection Close Code_ is considered to be + // 1006. + code = 1006 + } + + // 1. Change the ready state to CLOSED (3). + ws[kReadyState] = states.CLOSED + + // 2. If the user agent was required to fail the WebSocket + // connection, or if the WebSocket connection was closed + // after being flagged as full, fire an event named error + // at the WebSocket object. + // TODO + + // 3. Fire an event named close at the WebSocket object, + // using CloseEvent, with the wasClean attribute + // initialized to true if the connection closed cleanly + // and false otherwise, the code attribute initialized to + // the WebSocket connection close code, and the reason + // attribute initialized to the result of applying UTF-8 + // decode without BOM to the WebSocket connection close + // reason. + fireEvent('close', ws, CloseEvent, { + wasClean, + code, + reason + }) - // mask body - for (let i = 0; i < bodyLength; i++) { - buffer[offset + i] = this.frameData[i] ^ this.maskKey[i % 4] - } + if (channels.close.hasSubscribers) { + channels.close.publish({ + websocket: ws, + code, + reason + }) + } + } - return buffer - } -} + function onSocketError(error) { + const { ws } = this -module.exports = { - WebsocketFrameSend -} + ws[kReadyState] = states.CLOSING + if (channels.socketError.hasSubscribers) { + channels.socketError.publish(error) + } -/***/ }), + this.destroy() + } -/***/ 11688: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + module.exports = { + establishWebSocketConnection + } -"use strict"; + /***/ + }, + /***/ 19188: /***/ module => { + 'use strict' -const { Writable } = __nccwpck_require__(12781) -const diagnosticsChannel = __nccwpck_require__(67643) -const { parserStates, opcodes, states, emptyBuffer } = __nccwpck_require__(19188) -const { kReadyState, kSentClose, kResponse, kReceivedClose } = __nccwpck_require__(37578) -const { isValidStatusCode, failWebsocketConnection, websocketMessageReceived } = __nccwpck_require__(25515) -const { WebsocketFrameSend } = __nccwpck_require__(25444) + // This is a Globally Unique Identifier unique used + // to validate that the endpoint accepts websocket + // connections. + // See https://www.rfc-editor.org/rfc/rfc6455.html#section-1.3 + const uid = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11' -// This code was influenced by ws released under the MIT license. -// Copyright (c) 2011 Einar Otto Stangvik -// Copyright (c) 2013 Arnout Kazemier and contributors -// Copyright (c) 2016 Luigi Pinca and contributors + /** @type {PropertyDescriptor} */ + const staticPropertyDescriptors = { + enumerable: true, + writable: false, + configurable: false + } -const channels = {} -channels.ping = diagnosticsChannel.channel('undici:websocket:ping') -channels.pong = diagnosticsChannel.channel('undici:websocket:pong') + const states = { + CONNECTING: 0, + OPEN: 1, + CLOSING: 2, + CLOSED: 3 + } -class ByteParser extends Writable { - #buffers = [] - #byteOffset = 0 + const opcodes = { + CONTINUATION: 0x0, + TEXT: 0x1, + BINARY: 0x2, + CLOSE: 0x8, + PING: 0x9, + PONG: 0xa + } - #state = parserStates.INFO + const maxUnsigned16Bit = 2 ** 16 - 1 // 65535 - #info = {} - #fragments = [] + const parserStates = { + INFO: 0, + PAYLOADLENGTH_16: 2, + PAYLOADLENGTH_64: 3, + READ_DATA: 4 + } - constructor (ws) { - super() + const emptyBuffer = Buffer.allocUnsafe(0) - this.ws = ws - } + module.exports = { + uid, + staticPropertyDescriptors, + states, + opcodes, + maxUnsigned16Bit, + parserStates, + emptyBuffer + } - /** - * @param {Buffer} chunk - * @param {() => void} callback - */ - _write (chunk, _, callback) { - this.#buffers.push(chunk) - this.#byteOffset += chunk.length + /***/ + }, - this.run(callback) - } + /***/ 52611: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' - /** - * Runs whenever a new chunk is received. - * Callback is called whenever there are no more chunks buffering, - * or not enough bytes are buffered to parse. - */ - run (callback) { - while (true) { - if (this.#state === parserStates.INFO) { - // If there aren't enough bytes to parse the payload length, etc. - if (this.#byteOffset < 2) { - return callback() - } + const { webidl } = __nccwpck_require__(21744) + const { kEnumerableProperty } = __nccwpck_require__(83983) + const { MessagePort } = __nccwpck_require__(71267) - const buffer = this.consume(2) + /** + * @see https://html.spec.whatwg.org/multipage/comms.html#messageevent + */ + class MessageEvent extends Event { + #eventInit - this.#info.fin = (buffer[0] & 0x80) !== 0 - this.#info.opcode = buffer[0] & 0x0F + constructor(type, eventInitDict = {}) { + webidl.argumentLengthCheck(arguments, 1, { + header: 'MessageEvent constructor' + }) - // If we receive a fragmented message, we use the type of the first - // frame to parse the full message as binary/text, when it's terminated - this.#info.originalOpcode ??= this.#info.opcode + type = webidl.converters.DOMString(type) + eventInitDict = webidl.converters.MessageEventInit(eventInitDict) - this.#info.fragmented = !this.#info.fin && this.#info.opcode !== opcodes.CONTINUATION + super(type, eventInitDict) - if (this.#info.fragmented && this.#info.opcode !== opcodes.BINARY && this.#info.opcode !== opcodes.TEXT) { - // Only text and binary frames can be fragmented - failWebsocketConnection(this.ws, 'Invalid frame type was fragmented.') - return + this.#eventInit = eventInitDict } - const payloadLength = buffer[1] & 0x7F + get data() { + webidl.brandCheck(this, MessageEvent) - if (payloadLength <= 125) { - this.#info.payloadLength = payloadLength - this.#state = parserStates.READ_DATA - } else if (payloadLength === 126) { - this.#state = parserStates.PAYLOADLENGTH_16 - } else if (payloadLength === 127) { - this.#state = parserStates.PAYLOADLENGTH_64 + return this.#eventInit.data } - if (this.#info.fragmented && payloadLength > 125) { - // A fragmented frame can't be fragmented itself - failWebsocketConnection(this.ws, 'Fragmented frame exceeded 125 bytes.') - return - } else if ( - (this.#info.opcode === opcodes.PING || - this.#info.opcode === opcodes.PONG || - this.#info.opcode === opcodes.CLOSE) && - payloadLength > 125 - ) { - // Control frames can have a payload length of 125 bytes MAX - failWebsocketConnection(this.ws, 'Payload length for control frame exceeded 125 bytes.') - return - } else if (this.#info.opcode === opcodes.CLOSE) { - if (payloadLength === 1) { - failWebsocketConnection(this.ws, 'Received close frame with a 1-byte body.') - return - } + get origin() { + webidl.brandCheck(this, MessageEvent) - const body = this.consume(payloadLength) + return this.#eventInit.origin + } - this.#info.closeInfo = this.parseCloseBody(false, body) + get lastEventId() { + webidl.brandCheck(this, MessageEvent) - if (!this.ws[kSentClose]) { - // If an endpoint receives a Close frame and did not previously send a - // Close frame, the endpoint MUST send a Close frame in response. (When - // sending a Close frame in response, the endpoint typically echos the - // status code it received.) - const body = Buffer.allocUnsafe(2) - body.writeUInt16BE(this.#info.closeInfo.code, 0) - const closeFrame = new WebsocketFrameSend(body) + return this.#eventInit.lastEventId + } - this.ws[kResponse].socket.write( - closeFrame.createFrame(opcodes.CLOSE), - (err) => { - if (!err) { - this.ws[kSentClose] = true - } - } - ) - } + get source() { + webidl.brandCheck(this, MessageEvent) - // Upon either sending or receiving a Close control frame, it is said - // that _The WebSocket Closing Handshake is Started_ and that the - // WebSocket connection is in the CLOSING state. - this.ws[kReadyState] = states.CLOSING - this.ws[kReceivedClose] = true + return this.#eventInit.source + } - this.end() + get ports() { + webidl.brandCheck(this, MessageEvent) - return - } else if (this.#info.opcode === opcodes.PING) { - // Upon receipt of a Ping frame, an endpoint MUST send a Pong frame in - // response, unless it already received a Close frame. - // A Pong frame sent in response to a Ping frame must have identical - // "Application data" + if (!Object.isFrozen(this.#eventInit.ports)) { + Object.freeze(this.#eventInit.ports) + } - const body = this.consume(payloadLength) + return this.#eventInit.ports + } - if (!this.ws[kReceivedClose]) { - const frame = new WebsocketFrameSend(body) + initMessageEvent( + type, + bubbles = false, + cancelable = false, + data = null, + origin = '', + lastEventId = '', + source = null, + ports = [] + ) { + webidl.brandCheck(this, MessageEvent) - this.ws[kResponse].socket.write(frame.createFrame(opcodes.PONG)) + webidl.argumentLengthCheck(arguments, 1, { + header: 'MessageEvent.initMessageEvent' + }) - if (channels.ping.hasSubscribers) { - channels.ping.publish({ - payload: body - }) - } - } + return new MessageEvent(type, { + bubbles, + cancelable, + data, + origin, + lastEventId, + source, + ports + }) + } + } - this.#state = parserStates.INFO + /** + * @see https://websockets.spec.whatwg.org/#the-closeevent-interface + */ + class CloseEvent extends Event { + #eventInit - if (this.#byteOffset > 0) { - continue - } else { - callback() - return - } - } else if (this.#info.opcode === opcodes.PONG) { - // A Pong frame MAY be sent unsolicited. This serves as a - // unidirectional heartbeat. A response to an unsolicited Pong frame is - // not expected. + constructor(type, eventInitDict = {}) { + webidl.argumentLengthCheck(arguments, 1, { + header: 'CloseEvent constructor' + }) - const body = this.consume(payloadLength) + type = webidl.converters.DOMString(type) + eventInitDict = webidl.converters.CloseEventInit(eventInitDict) - if (channels.pong.hasSubscribers) { - channels.pong.publish({ - payload: body - }) - } + super(type, eventInitDict) - if (this.#byteOffset > 0) { - continue - } else { - callback() - return - } - } - } else if (this.#state === parserStates.PAYLOADLENGTH_16) { - if (this.#byteOffset < 2) { - return callback() + this.#eventInit = eventInitDict } - const buffer = this.consume(2) + get wasClean() { + webidl.brandCheck(this, CloseEvent) - this.#info.payloadLength = buffer.readUInt16BE(0) - this.#state = parserStates.READ_DATA - } else if (this.#state === parserStates.PAYLOADLENGTH_64) { - if (this.#byteOffset < 8) { - return callback() + return this.#eventInit.wasClean } - const buffer = this.consume(8) - const upper = buffer.readUInt32BE(0) + get code() { + webidl.brandCheck(this, CloseEvent) - // 2^31 is the maxinimum bytes an arraybuffer can contain - // on 32-bit systems. Although, on 64-bit systems, this is - // 2^53-1 bytes. - // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Invalid_array_length - // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/common/globals.h;drc=1946212ac0100668f14eb9e2843bdd846e510a1e;bpv=1;bpt=1;l=1275 - // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/objects/js-array-buffer.h;l=34;drc=1946212ac0100668f14eb9e2843bdd846e510a1e - if (upper > 2 ** 31 - 1) { - failWebsocketConnection(this.ws, 'Received payload length > 2^31 bytes.') - return + return this.#eventInit.code } - const lower = buffer.readUInt32BE(4) - - this.#info.payloadLength = (upper << 8) + lower - this.#state = parserStates.READ_DATA - } else if (this.#state === parserStates.READ_DATA) { - if (this.#byteOffset < this.#info.payloadLength) { - // If there is still more data in this chunk that needs to be read - return callback() - } else if (this.#byteOffset >= this.#info.payloadLength) { - // If the server sent multiple frames in a single chunk + get reason() { + webidl.brandCheck(this, CloseEvent) - const body = this.consume(this.#info.payloadLength) + return this.#eventInit.reason + } + } - this.#fragments.push(body) + // https://html.spec.whatwg.org/multipage/webappapis.html#the-errorevent-interface + class ErrorEvent extends Event { + #eventInit - // If the frame is unfragmented, or a fragmented frame was terminated, - // a message was received - if (!this.#info.fragmented || (this.#info.fin && this.#info.opcode === opcodes.CONTINUATION)) { - const fullMessage = Buffer.concat(this.#fragments) + constructor(type, eventInitDict) { + webidl.argumentLengthCheck(arguments, 1, { + header: 'ErrorEvent constructor' + }) - websocketMessageReceived(this.ws, this.#info.originalOpcode, fullMessage) + super(type, eventInitDict) - this.#info = {} - this.#fragments.length = 0 - } + type = webidl.converters.DOMString(type) + eventInitDict = webidl.converters.ErrorEventInit(eventInitDict ?? {}) - this.#state = parserStates.INFO + this.#eventInit = eventInitDict } - } - - if (this.#byteOffset > 0) { - continue - } else { - callback() - break - } - } - } - /** - * Take n bytes from the buffered Buffers - * @param {number} n - * @returns {Buffer|null} - */ - consume (n) { - if (n > this.#byteOffset) { - return null - } else if (n === 0) { - return emptyBuffer - } + get message() { + webidl.brandCheck(this, ErrorEvent) - if (this.#buffers[0].length === n) { - this.#byteOffset -= this.#buffers[0].length - return this.#buffers.shift() - } + return this.#eventInit.message + } - const buffer = Buffer.allocUnsafe(n) - let offset = 0 + get filename() { + webidl.brandCheck(this, ErrorEvent) - while (offset !== n) { - const next = this.#buffers[0] - const { length } = next + return this.#eventInit.filename + } - if (length + offset === n) { - buffer.set(this.#buffers.shift(), offset) - break - } else if (length + offset > n) { - buffer.set(next.subarray(0, n - offset), offset) - this.#buffers[0] = next.subarray(n - offset) - break - } else { - buffer.set(this.#buffers.shift(), offset) - offset += next.length - } - } + get lineno() { + webidl.brandCheck(this, ErrorEvent) - this.#byteOffset -= n + return this.#eventInit.lineno + } - return buffer - } + get colno() { + webidl.brandCheck(this, ErrorEvent) - parseCloseBody (onlyCode, data) { - // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.5 - /** @type {number|undefined} */ - let code + return this.#eventInit.colno + } - if (data.length >= 2) { - // _The WebSocket Connection Close Code_ is - // defined as the status code (Section 7.4) contained in the first Close - // control frame received by the application - code = data.readUInt16BE(0) - } + get error() { + webidl.brandCheck(this, ErrorEvent) - if (onlyCode) { - if (!isValidStatusCode(code)) { - return null + return this.#eventInit.error + } } - return { code } - } + Object.defineProperties(MessageEvent.prototype, { + [Symbol.toStringTag]: { + value: 'MessageEvent', + configurable: true + }, + data: kEnumerableProperty, + origin: kEnumerableProperty, + lastEventId: kEnumerableProperty, + source: kEnumerableProperty, + ports: kEnumerableProperty, + initMessageEvent: kEnumerableProperty + }) + + Object.defineProperties(CloseEvent.prototype, { + [Symbol.toStringTag]: { + value: 'CloseEvent', + configurable: true + }, + reason: kEnumerableProperty, + code: kEnumerableProperty, + wasClean: kEnumerableProperty + }) - // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.6 - /** @type {Buffer} */ - let reason = data.subarray(2) + Object.defineProperties(ErrorEvent.prototype, { + [Symbol.toStringTag]: { + value: 'ErrorEvent', + configurable: true + }, + message: kEnumerableProperty, + filename: kEnumerableProperty, + lineno: kEnumerableProperty, + colno: kEnumerableProperty, + error: kEnumerableProperty + }) - // Remove BOM - if (reason[0] === 0xEF && reason[1] === 0xBB && reason[2] === 0xBF) { - reason = reason.subarray(3) - } + webidl.converters.MessagePort = webidl.interfaceConverter(MessagePort) - if (code !== undefined && !isValidStatusCode(code)) { - return null - } + webidl.converters['sequence'] = webidl.sequenceConverter( + webidl.converters.MessagePort + ) - try { - // TODO: optimize this - reason = new TextDecoder('utf-8', { fatal: true }).decode(reason) - } catch { - return null - } + const eventInit = [ + { + key: 'bubbles', + converter: webidl.converters.boolean, + defaultValue: false + }, + { + key: 'cancelable', + converter: webidl.converters.boolean, + defaultValue: false + }, + { + key: 'composed', + converter: webidl.converters.boolean, + defaultValue: false + } + ] - return { code, reason } - } + webidl.converters.MessageEventInit = webidl.dictionaryConverter([ + ...eventInit, + { + key: 'data', + converter: webidl.converters.any, + defaultValue: null + }, + { + key: 'origin', + converter: webidl.converters.USVString, + defaultValue: '' + }, + { + key: 'lastEventId', + converter: webidl.converters.DOMString, + defaultValue: '' + }, + { + key: 'source', + // Node doesn't implement WindowProxy or ServiceWorker, so the only + // valid value for source is a MessagePort. + converter: webidl.nullableConverter(webidl.converters.MessagePort), + defaultValue: null + }, + { + key: 'ports', + converter: webidl.converters['sequence'], + get defaultValue() { + return [] + } + } + ]) - get closingInfo () { - return this.#info.closeInfo - } -} + webidl.converters.CloseEventInit = webidl.dictionaryConverter([ + ...eventInit, + { + key: 'wasClean', + converter: webidl.converters.boolean, + defaultValue: false + }, + { + key: 'code', + converter: webidl.converters['unsigned short'], + defaultValue: 0 + }, + { + key: 'reason', + converter: webidl.converters.USVString, + defaultValue: '' + } + ]) -module.exports = { - ByteParser -} + webidl.converters.ErrorEventInit = webidl.dictionaryConverter([ + ...eventInit, + { + key: 'message', + converter: webidl.converters.DOMString, + defaultValue: '' + }, + { + key: 'filename', + converter: webidl.converters.USVString, + defaultValue: '' + }, + { + key: 'lineno', + converter: webidl.converters['unsigned long'], + defaultValue: 0 + }, + { + key: 'colno', + converter: webidl.converters['unsigned long'], + defaultValue: 0 + }, + { + key: 'error', + converter: webidl.converters.any + } + ]) + module.exports = { + MessageEvent, + CloseEvent, + ErrorEvent + } -/***/ }), + /***/ + }, -/***/ 37578: -/***/ ((module) => { + /***/ 25444: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' -"use strict"; + const { maxUnsigned16Bit } = __nccwpck_require__(19188) + /** @type {import('crypto')} */ + let crypto + try { + crypto = __nccwpck_require__(6113) + } catch {} -module.exports = { - kWebSocketURL: Symbol('url'), - kReadyState: Symbol('ready state'), - kController: Symbol('controller'), - kResponse: Symbol('response'), - kBinaryType: Symbol('binary type'), - kSentClose: Symbol('sent close'), - kReceivedClose: Symbol('received close'), - kByteParser: Symbol('byte parser') -} + class WebsocketFrameSend { + /** + * @param {Buffer|undefined} data + */ + constructor(data) { + this.frameData = data + this.maskKey = crypto.randomBytes(4) + } + createFrame(opcode) { + const bodyLength = this.frameData?.byteLength ?? 0 -/***/ }), + /** @type {number} */ + let payloadLength = bodyLength // 0-125 + let offset = 6 -/***/ 25515: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + if (bodyLength > maxUnsigned16Bit) { + offset += 8 // payload length is next 8 bytes + payloadLength = 127 + } else if (bodyLength > 125) { + offset += 2 // payload length is next 2 bytes + payloadLength = 126 + } -"use strict"; + const buffer = Buffer.allocUnsafe(bodyLength + offset) + // Clear first 2 bytes, everything else is overwritten + buffer[0] = buffer[1] = 0 + buffer[0] |= 0x80 // FIN + buffer[0] = (buffer[0] & 0xf0) + opcode // opcode -const { kReadyState, kController, kResponse, kBinaryType, kWebSocketURL } = __nccwpck_require__(37578) -const { states, opcodes } = __nccwpck_require__(19188) -const { MessageEvent, ErrorEvent } = __nccwpck_require__(52611) + /*! ws. MIT License. Einar Otto Stangvik */ + buffer[offset - 4] = this.maskKey[0] + buffer[offset - 3] = this.maskKey[1] + buffer[offset - 2] = this.maskKey[2] + buffer[offset - 1] = this.maskKey[3] -/* globals Blob */ + buffer[1] = payloadLength -/** - * @param {import('./websocket').WebSocket} ws - */ -function isEstablished (ws) { - // If the server's response is validated as provided for above, it is - // said that _The WebSocket Connection is Established_ and that the - // WebSocket Connection is in the OPEN state. - return ws[kReadyState] === states.OPEN -} - -/** - * @param {import('./websocket').WebSocket} ws - */ -function isClosing (ws) { - // Upon either sending or receiving a Close control frame, it is said - // that _The WebSocket Closing Handshake is Started_ and that the - // WebSocket connection is in the CLOSING state. - return ws[kReadyState] === states.CLOSING -} - -/** - * @param {import('./websocket').WebSocket} ws - */ -function isClosed (ws) { - return ws[kReadyState] === states.CLOSED -} - -/** - * @see https://dom.spec.whatwg.org/#concept-event-fire - * @param {string} e - * @param {EventTarget} target - * @param {EventInit | undefined} eventInitDict - */ -function fireEvent (e, target, eventConstructor = Event, eventInitDict) { - // 1. If eventConstructor is not given, then let eventConstructor be Event. - - // 2. Let event be the result of creating an event given eventConstructor, - // in the relevant realm of target. - // 3. Initialize event’s type attribute to e. - const event = new eventConstructor(e, eventInitDict) // eslint-disable-line new-cap - - // 4. Initialize any other IDL attributes of event as described in the - // invocation of this algorithm. - - // 5. Return the result of dispatching event at target, with legacy target - // override flag set if set. - target.dispatchEvent(event) -} - -/** - * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol - * @param {import('./websocket').WebSocket} ws - * @param {number} type Opcode - * @param {Buffer} data application data - */ -function websocketMessageReceived (ws, type, data) { - // 1. If ready state is not OPEN (1), then return. - if (ws[kReadyState] !== states.OPEN) { - return - } + if (payloadLength === 126) { + buffer.writeUInt16BE(bodyLength, 2) + } else if (payloadLength === 127) { + // Clear extended payload length + buffer[2] = buffer[3] = 0 + buffer.writeUIntBE(bodyLength, 4, 6) + } - // 2. Let dataForEvent be determined by switching on type and binary type: - let dataForEvent - - if (type === opcodes.TEXT) { - // -> type indicates that the data is Text - // a new DOMString containing data - try { - dataForEvent = new TextDecoder('utf-8', { fatal: true }).decode(data) - } catch { - failWebsocketConnection(ws, 'Received invalid UTF-8 in text frame.') - return - } - } else if (type === opcodes.BINARY) { - if (ws[kBinaryType] === 'blob') { - // -> type indicates that the data is Binary and binary type is "blob" - // a new Blob object, created in the relevant Realm of the WebSocket - // object, that represents data as its raw data - dataForEvent = new Blob([data]) - } else { - // -> type indicates that the data is Binary and binary type is "arraybuffer" - // a new ArrayBuffer object, created in the relevant Realm of the - // WebSocket object, whose contents are data - dataForEvent = new Uint8Array(data).buffer - } - } + buffer[1] |= 0x80 // MASK - // 3. Fire an event named message at the WebSocket object, using MessageEvent, - // with the origin attribute initialized to the serialization of the WebSocket - // object’s url's origin, and the data attribute initialized to dataForEvent. - fireEvent('message', ws, MessageEvent, { - origin: ws[kWebSocketURL].origin, - data: dataForEvent - }) -} - -/** - * @see https://datatracker.ietf.org/doc/html/rfc6455 - * @see https://datatracker.ietf.org/doc/html/rfc2616 - * @see https://bugs.chromium.org/p/chromium/issues/detail?id=398407 - * @param {string} protocol - */ -function isValidSubprotocol (protocol) { - // If present, this value indicates one - // or more comma-separated subprotocol the client wishes to speak, - // ordered by preference. The elements that comprise this value - // MUST be non-empty strings with characters in the range U+0021 to - // U+007E not including separator characters as defined in - // [RFC2616] and MUST all be unique strings. - if (protocol.length === 0) { - return false - } + // mask body + for (let i = 0; i < bodyLength; i++) { + buffer[offset + i] = this.frameData[i] ^ this.maskKey[i % 4] + } - for (const char of protocol) { - const code = char.charCodeAt(0) - - if ( - code < 0x21 || - code > 0x7E || - char === '(' || - char === ')' || - char === '<' || - char === '>' || - char === '@' || - char === ',' || - char === ';' || - char === ':' || - char === '\\' || - char === '"' || - char === '/' || - char === '[' || - char === ']' || - char === '?' || - char === '=' || - char === '{' || - char === '}' || - code === 32 || // SP - code === 9 // HT - ) { - return false - } - } + return buffer + } + } - return true -} + module.exports = { + WebsocketFrameSend + } -/** - * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7-4 - * @param {number} code - */ -function isValidStatusCode (code) { - if (code >= 1000 && code < 1015) { - return ( - code !== 1004 && // reserved - code !== 1005 && // "MUST NOT be set as a status code" - code !== 1006 // "MUST NOT be set as a status code" - ) - } + /***/ + }, - return code >= 3000 && code <= 4999 -} + /***/ 11688: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + const { Writable } = __nccwpck_require__(12781) + const diagnosticsChannel = __nccwpck_require__(67643) + const { parserStates, opcodes, states, emptyBuffer } = + __nccwpck_require__(19188) + const { kReadyState, kSentClose, kResponse, kReceivedClose } = + __nccwpck_require__(37578) + const { + isValidStatusCode, + failWebsocketConnection, + websocketMessageReceived + } = __nccwpck_require__(25515) + const { WebsocketFrameSend } = __nccwpck_require__(25444) -/** - * @param {import('./websocket').WebSocket} ws - * @param {string|undefined} reason - */ -function failWebsocketConnection (ws, reason) { - const { [kController]: controller, [kResponse]: response } = ws + // This code was influenced by ws released under the MIT license. + // Copyright (c) 2011 Einar Otto Stangvik + // Copyright (c) 2013 Arnout Kazemier and contributors + // Copyright (c) 2016 Luigi Pinca and contributors - controller.abort() + const channels = {} + channels.ping = diagnosticsChannel.channel('undici:websocket:ping') + channels.pong = diagnosticsChannel.channel('undici:websocket:pong') - if (response?.socket && !response.socket.destroyed) { - response.socket.destroy() - } + class ByteParser extends Writable { + #buffers = [] + #byteOffset = 0 - if (reason) { - fireEvent('error', ws, ErrorEvent, { - error: new Error(reason) - }) - } -} - -module.exports = { - isEstablished, - isClosing, - isClosed, - fireEvent, - isValidSubprotocol, - isValidStatusCode, - failWebsocketConnection, - websocketMessageReceived -} - - -/***/ }), - -/***/ 54284: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - - -const { webidl } = __nccwpck_require__(21744) -const { DOMException } = __nccwpck_require__(41037) -const { URLSerializer } = __nccwpck_require__(685) -const { getGlobalOrigin } = __nccwpck_require__(71246) -const { staticPropertyDescriptors, states, opcodes, emptyBuffer } = __nccwpck_require__(19188) -const { - kWebSocketURL, - kReadyState, - kController, - kBinaryType, - kResponse, - kSentClose, - kByteParser -} = __nccwpck_require__(37578) -const { isEstablished, isClosing, isValidSubprotocol, failWebsocketConnection, fireEvent } = __nccwpck_require__(25515) -const { establishWebSocketConnection } = __nccwpck_require__(35354) -const { WebsocketFrameSend } = __nccwpck_require__(25444) -const { ByteParser } = __nccwpck_require__(11688) -const { kEnumerableProperty, isBlobLike } = __nccwpck_require__(83983) -const { getGlobalDispatcher } = __nccwpck_require__(21892) -const { types } = __nccwpck_require__(73837) - -let experimentalWarned = false - -// https://websockets.spec.whatwg.org/#interface-definition -class WebSocket extends EventTarget { - #events = { - open: null, - error: null, - close: null, - message: null - } + #state = parserStates.INFO - #bufferedAmount = 0 - #protocol = '' - #extensions = '' + #info = {} + #fragments = [] - /** - * @param {string} url - * @param {string|string[]} protocols - */ - constructor (url, protocols = []) { - super() + constructor(ws) { + super() - webidl.argumentLengthCheck(arguments, 1, { header: 'WebSocket constructor' }) + this.ws = ws + } - if (!experimentalWarned) { - experimentalWarned = true - process.emitWarning('WebSockets are experimental, expect them to change at any time.', { - code: 'UNDICI-WS' - }) - } + /** + * @param {Buffer} chunk + * @param {() => void} callback + */ + _write(chunk, _, callback) { + this.#buffers.push(chunk) + this.#byteOffset += chunk.length - const options = webidl.converters['DOMString or sequence or WebSocketInit'](protocols) + this.run(callback) + } - url = webidl.converters.USVString(url) - protocols = options.protocols + /** + * Runs whenever a new chunk is received. + * Callback is called whenever there are no more chunks buffering, + * or not enough bytes are buffered to parse. + */ + run(callback) { + while (true) { + if (this.#state === parserStates.INFO) { + // If there aren't enough bytes to parse the payload length, etc. + if (this.#byteOffset < 2) { + return callback() + } - // 1. Let baseURL be this's relevant settings object's API base URL. - const baseURL = getGlobalOrigin() + const buffer = this.consume(2) - // 1. Let urlRecord be the result of applying the URL parser to url with baseURL. - let urlRecord + this.#info.fin = (buffer[0] & 0x80) !== 0 + this.#info.opcode = buffer[0] & 0x0f - try { - urlRecord = new URL(url, baseURL) - } catch (e) { - // 3. If urlRecord is failure, then throw a "SyntaxError" DOMException. - throw new DOMException(e, 'SyntaxError') - } + // If we receive a fragmented message, we use the type of the first + // frame to parse the full message as binary/text, when it's terminated + this.#info.originalOpcode ??= this.#info.opcode - // 4. If urlRecord’s scheme is "http", then set urlRecord’s scheme to "ws". - if (urlRecord.protocol === 'http:') { - urlRecord.protocol = 'ws:' - } else if (urlRecord.protocol === 'https:') { - // 5. Otherwise, if urlRecord’s scheme is "https", set urlRecord’s scheme to "wss". - urlRecord.protocol = 'wss:' - } + this.#info.fragmented = + !this.#info.fin && this.#info.opcode !== opcodes.CONTINUATION - // 6. If urlRecord’s scheme is not "ws" or "wss", then throw a "SyntaxError" DOMException. - if (urlRecord.protocol !== 'ws:' && urlRecord.protocol !== 'wss:') { - throw new DOMException( - `Expected a ws: or wss: protocol, got ${urlRecord.protocol}`, - 'SyntaxError' - ) - } + if ( + this.#info.fragmented && + this.#info.opcode !== opcodes.BINARY && + this.#info.opcode !== opcodes.TEXT + ) { + // Only text and binary frames can be fragmented + failWebsocketConnection( + this.ws, + 'Invalid frame type was fragmented.' + ) + return + } - // 7. If urlRecord’s fragment is non-null, then throw a "SyntaxError" - // DOMException. - if (urlRecord.hash || urlRecord.href.endsWith('#')) { - throw new DOMException('Got fragment', 'SyntaxError') - } + const payloadLength = buffer[1] & 0x7f - // 8. If protocols is a string, set protocols to a sequence consisting - // of just that string. - if (typeof protocols === 'string') { - protocols = [protocols] - } + if (payloadLength <= 125) { + this.#info.payloadLength = payloadLength + this.#state = parserStates.READ_DATA + } else if (payloadLength === 126) { + this.#state = parserStates.PAYLOADLENGTH_16 + } else if (payloadLength === 127) { + this.#state = parserStates.PAYLOADLENGTH_64 + } - // 9. If any of the values in protocols occur more than once or otherwise - // fail to match the requirements for elements that comprise the value - // of `Sec-WebSocket-Protocol` fields as defined by The WebSocket - // protocol, then throw a "SyntaxError" DOMException. - if (protocols.length !== new Set(protocols.map(p => p.toLowerCase())).size) { - throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError') - } + if (this.#info.fragmented && payloadLength > 125) { + // A fragmented frame can't be fragmented itself + failWebsocketConnection( + this.ws, + 'Fragmented frame exceeded 125 bytes.' + ) + return + } else if ( + (this.#info.opcode === opcodes.PING || + this.#info.opcode === opcodes.PONG || + this.#info.opcode === opcodes.CLOSE) && + payloadLength > 125 + ) { + // Control frames can have a payload length of 125 bytes MAX + failWebsocketConnection( + this.ws, + 'Payload length for control frame exceeded 125 bytes.' + ) + return + } else if (this.#info.opcode === opcodes.CLOSE) { + if (payloadLength === 1) { + failWebsocketConnection( + this.ws, + 'Received close frame with a 1-byte body.' + ) + return + } - if (protocols.length > 0 && !protocols.every(p => isValidSubprotocol(p))) { - throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError') - } + const body = this.consume(payloadLength) + + this.#info.closeInfo = this.parseCloseBody(false, body) + + if (!this.ws[kSentClose]) { + // If an endpoint receives a Close frame and did not previously send a + // Close frame, the endpoint MUST send a Close frame in response. (When + // sending a Close frame in response, the endpoint typically echos the + // status code it received.) + const body = Buffer.allocUnsafe(2) + body.writeUInt16BE(this.#info.closeInfo.code, 0) + const closeFrame = new WebsocketFrameSend(body) + + this.ws[kResponse].socket.write( + closeFrame.createFrame(opcodes.CLOSE), + err => { + if (!err) { + this.ws[kSentClose] = true + } + } + ) + } - // 10. Set this's url to urlRecord. - this[kWebSocketURL] = new URL(urlRecord.href) + // Upon either sending or receiving a Close control frame, it is said + // that _The WebSocket Closing Handshake is Started_ and that the + // WebSocket connection is in the CLOSING state. + this.ws[kReadyState] = states.CLOSING + this.ws[kReceivedClose] = true - // 11. Let client be this's relevant settings object. + this.end() - // 12. Run this step in parallel: + return + } else if (this.#info.opcode === opcodes.PING) { + // Upon receipt of a Ping frame, an endpoint MUST send a Pong frame in + // response, unless it already received a Close frame. + // A Pong frame sent in response to a Ping frame must have identical + // "Application data" - // 1. Establish a WebSocket connection given urlRecord, protocols, - // and client. - this[kController] = establishWebSocketConnection( - urlRecord, - protocols, - this, - (response) => this.#onConnectionEstablished(response), - options - ) + const body = this.consume(payloadLength) - // Each WebSocket object has an associated ready state, which is a - // number representing the state of the connection. Initially it must - // be CONNECTING (0). - this[kReadyState] = WebSocket.CONNECTING + if (!this.ws[kReceivedClose]) { + const frame = new WebsocketFrameSend(body) - // The extensions attribute must initially return the empty string. + this.ws[kResponse].socket.write( + frame.createFrame(opcodes.PONG) + ) - // The protocol attribute must initially return the empty string. + if (channels.ping.hasSubscribers) { + channels.ping.publish({ + payload: body + }) + } + } - // Each WebSocket object has an associated binary type, which is a - // BinaryType. Initially it must be "blob". - this[kBinaryType] = 'blob' - } + this.#state = parserStates.INFO - /** - * @see https://websockets.spec.whatwg.org/#dom-websocket-close - * @param {number|undefined} code - * @param {string|undefined} reason - */ - close (code = undefined, reason = undefined) { - webidl.brandCheck(this, WebSocket) + if (this.#byteOffset > 0) { + continue + } else { + callback() + return + } + } else if (this.#info.opcode === opcodes.PONG) { + // A Pong frame MAY be sent unsolicited. This serves as a + // unidirectional heartbeat. A response to an unsolicited Pong frame is + // not expected. - if (code !== undefined) { - code = webidl.converters['unsigned short'](code, { clamp: true }) - } + const body = this.consume(payloadLength) - if (reason !== undefined) { - reason = webidl.converters.USVString(reason) - } + if (channels.pong.hasSubscribers) { + channels.pong.publish({ + payload: body + }) + } - // 1. If code is present, but is neither an integer equal to 1000 nor an - // integer in the range 3000 to 4999, inclusive, throw an - // "InvalidAccessError" DOMException. - if (code !== undefined) { - if (code !== 1000 && (code < 3000 || code > 4999)) { - throw new DOMException('invalid code', 'InvalidAccessError') - } - } + if (this.#byteOffset > 0) { + continue + } else { + callback() + return + } + } + } else if (this.#state === parserStates.PAYLOADLENGTH_16) { + if (this.#byteOffset < 2) { + return callback() + } - let reasonByteLength = 0 + const buffer = this.consume(2) - // 2. If reason is present, then run these substeps: - if (reason !== undefined) { - // 1. Let reasonBytes be the result of encoding reason. - // 2. If reasonBytes is longer than 123 bytes, then throw a - // "SyntaxError" DOMException. - reasonByteLength = Buffer.byteLength(reason) + this.#info.payloadLength = buffer.readUInt16BE(0) + this.#state = parserStates.READ_DATA + } else if (this.#state === parserStates.PAYLOADLENGTH_64) { + if (this.#byteOffset < 8) { + return callback() + } - if (reasonByteLength > 123) { - throw new DOMException( - `Reason must be less than 123 bytes; received ${reasonByteLength}`, - 'SyntaxError' - ) - } - } + const buffer = this.consume(8) + const upper = buffer.readUInt32BE(0) + + // 2^31 is the maxinimum bytes an arraybuffer can contain + // on 32-bit systems. Although, on 64-bit systems, this is + // 2^53-1 bytes. + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Invalid_array_length + // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/common/globals.h;drc=1946212ac0100668f14eb9e2843bdd846e510a1e;bpv=1;bpt=1;l=1275 + // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/objects/js-array-buffer.h;l=34;drc=1946212ac0100668f14eb9e2843bdd846e510a1e + if (upper > 2 ** 31 - 1) { + failWebsocketConnection( + this.ws, + 'Received payload length > 2^31 bytes.' + ) + return + } - // 3. Run the first matching steps from the following list: - if (this[kReadyState] === WebSocket.CLOSING || this[kReadyState] === WebSocket.CLOSED) { - // If this's ready state is CLOSING (2) or CLOSED (3) - // Do nothing. - } else if (!isEstablished(this)) { - // If the WebSocket connection is not yet established - // Fail the WebSocket connection and set this's ready state - // to CLOSING (2). - failWebsocketConnection(this, 'Connection was closed before it was established.') - this[kReadyState] = WebSocket.CLOSING - } else if (!isClosing(this)) { - // If the WebSocket closing handshake has not yet been started - // Start the WebSocket closing handshake and set this's ready - // state to CLOSING (2). - // - If neither code nor reason is present, the WebSocket Close - // message must not have a body. - // - If code is present, then the status code to use in the - // WebSocket Close message must be the integer given by code. - // - If reason is also present, then reasonBytes must be - // provided in the Close message after the status code. - - const frame = new WebsocketFrameSend() - - // If neither code nor reason is present, the WebSocket Close - // message must not have a body. - - // If code is present, then the status code to use in the - // WebSocket Close message must be the integer given by code. - if (code !== undefined && reason === undefined) { - frame.frameData = Buffer.allocUnsafe(2) - frame.frameData.writeUInt16BE(code, 0) - } else if (code !== undefined && reason !== undefined) { - // If reason is also present, then reasonBytes must be - // provided in the Close message after the status code. - frame.frameData = Buffer.allocUnsafe(2 + reasonByteLength) - frame.frameData.writeUInt16BE(code, 0) - // the body MAY contain UTF-8-encoded data with value /reason/ - frame.frameData.write(reason, 2, 'utf-8') - } else { - frame.frameData = emptyBuffer - } + const lower = buffer.readUInt32BE(4) + + this.#info.payloadLength = (upper << 8) + lower + this.#state = parserStates.READ_DATA + } else if (this.#state === parserStates.READ_DATA) { + if (this.#byteOffset < this.#info.payloadLength) { + // If there is still more data in this chunk that needs to be read + return callback() + } else if (this.#byteOffset >= this.#info.payloadLength) { + // If the server sent multiple frames in a single chunk + + const body = this.consume(this.#info.payloadLength) + + this.#fragments.push(body) + + // If the frame is unfragmented, or a fragmented frame was terminated, + // a message was received + if ( + !this.#info.fragmented || + (this.#info.fin && this.#info.opcode === opcodes.CONTINUATION) + ) { + const fullMessage = Buffer.concat(this.#fragments) + + websocketMessageReceived( + this.ws, + this.#info.originalOpcode, + fullMessage + ) + + this.#info = {} + this.#fragments.length = 0 + } - /** @type {import('stream').Duplex} */ - const socket = this[kResponse].socket + this.#state = parserStates.INFO + } + } - socket.write(frame.createFrame(opcodes.CLOSE), (err) => { - if (!err) { - this[kSentClose] = true + if (this.#byteOffset > 0) { + continue + } else { + callback() + break + } + } } - }) - - // Upon either sending or receiving a Close control frame, it is said - // that _The WebSocket Closing Handshake is Started_ and that the - // WebSocket connection is in the CLOSING state. - this[kReadyState] = states.CLOSING - } else { - // Otherwise - // Set this's ready state to CLOSING (2). - this[kReadyState] = WebSocket.CLOSING - } - } - /** - * @see https://websockets.spec.whatwg.org/#dom-websocket-send - * @param {NodeJS.TypedArray|ArrayBuffer|Blob|string} data - */ - send (data) { - webidl.brandCheck(this, WebSocket) + /** + * Take n bytes from the buffered Buffers + * @param {number} n + * @returns {Buffer|null} + */ + consume(n) { + if (n > this.#byteOffset) { + return null + } else if (n === 0) { + return emptyBuffer + } - webidl.argumentLengthCheck(arguments, 1, { header: 'WebSocket.send' }) + if (this.#buffers[0].length === n) { + this.#byteOffset -= this.#buffers[0].length + return this.#buffers.shift() + } - data = webidl.converters.WebSocketSendData(data) + const buffer = Buffer.allocUnsafe(n) + let offset = 0 - // 1. If this's ready state is CONNECTING, then throw an - // "InvalidStateError" DOMException. - if (this[kReadyState] === WebSocket.CONNECTING) { - throw new DOMException('Sent before connected.', 'InvalidStateError') - } + while (offset !== n) { + const next = this.#buffers[0] + const { length } = next - // 2. Run the appropriate set of steps from the following list: - // https://datatracker.ietf.org/doc/html/rfc6455#section-6.1 - // https://datatracker.ietf.org/doc/html/rfc6455#section-5.2 + if (length + offset === n) { + buffer.set(this.#buffers.shift(), offset) + break + } else if (length + offset > n) { + buffer.set(next.subarray(0, n - offset), offset) + this.#buffers[0] = next.subarray(n - offset) + break + } else { + buffer.set(this.#buffers.shift(), offset) + offset += next.length + } + } - if (!isEstablished(this) || isClosing(this)) { - return - } + this.#byteOffset -= n - /** @type {import('stream').Duplex} */ - const socket = this[kResponse].socket - - // If data is a string - if (typeof data === 'string') { - // If the WebSocket connection is established and the WebSocket - // closing handshake has not yet started, then the user agent - // must send a WebSocket Message comprised of the data argument - // using a text frame opcode; if the data cannot be sent, e.g. - // because it would need to be buffered but the buffer is full, - // the user agent must flag the WebSocket as full and then close - // the WebSocket connection. Any invocation of this method with a - // string argument that does not throw an exception must increase - // the bufferedAmount attribute by the number of bytes needed to - // express the argument as UTF-8. - - const value = Buffer.from(data) - const frame = new WebsocketFrameSend(value) - const buffer = frame.createFrame(opcodes.TEXT) - - this.#bufferedAmount += value.byteLength - socket.write(buffer, () => { - this.#bufferedAmount -= value.byteLength - }) - } else if (types.isArrayBuffer(data)) { - // If the WebSocket connection is established, and the WebSocket - // closing handshake has not yet started, then the user agent must - // send a WebSocket Message comprised of data using a binary frame - // opcode; if the data cannot be sent, e.g. because it would need - // to be buffered but the buffer is full, the user agent must flag - // the WebSocket as full and then close the WebSocket connection. - // The data to be sent is the data stored in the buffer described - // by the ArrayBuffer object. Any invocation of this method with an - // ArrayBuffer argument that does not throw an exception must - // increase the bufferedAmount attribute by the length of the - // ArrayBuffer in bytes. - - const value = Buffer.from(data) - const frame = new WebsocketFrameSend(value) - const buffer = frame.createFrame(opcodes.BINARY) - - this.#bufferedAmount += value.byteLength - socket.write(buffer, () => { - this.#bufferedAmount -= value.byteLength - }) - } else if (ArrayBuffer.isView(data)) { - // If the WebSocket connection is established, and the WebSocket - // closing handshake has not yet started, then the user agent must - // send a WebSocket Message comprised of data using a binary frame - // opcode; if the data cannot be sent, e.g. because it would need to - // be buffered but the buffer is full, the user agent must flag the - // WebSocket as full and then close the WebSocket connection. The - // data to be sent is the data stored in the section of the buffer - // described by the ArrayBuffer object that data references. Any - // invocation of this method with this kind of argument that does - // not throw an exception must increase the bufferedAmount attribute - // by the length of data’s buffer in bytes. - - const ab = Buffer.from(data, data.byteOffset, data.byteLength) - - const frame = new WebsocketFrameSend(ab) - const buffer = frame.createFrame(opcodes.BINARY) - - this.#bufferedAmount += ab.byteLength - socket.write(buffer, () => { - this.#bufferedAmount -= ab.byteLength - }) - } else if (isBlobLike(data)) { - // If the WebSocket connection is established, and the WebSocket - // closing handshake has not yet started, then the user agent must - // send a WebSocket Message comprised of data using a binary frame - // opcode; if the data cannot be sent, e.g. because it would need to - // be buffered but the buffer is full, the user agent must flag the - // WebSocket as full and then close the WebSocket connection. The data - // to be sent is the raw data represented by the Blob object. Any - // invocation of this method with a Blob argument that does not throw - // an exception must increase the bufferedAmount attribute by the size - // of the Blob object’s raw data, in bytes. - - const frame = new WebsocketFrameSend() - - data.arrayBuffer().then((ab) => { - const value = Buffer.from(ab) - frame.frameData = value - const buffer = frame.createFrame(opcodes.BINARY) - - this.#bufferedAmount += value.byteLength - socket.write(buffer, () => { - this.#bufferedAmount -= value.byteLength - }) - }) - } - } + return buffer + } - get readyState () { - webidl.brandCheck(this, WebSocket) + parseCloseBody(onlyCode, data) { + // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.5 + /** @type {number|undefined} */ + let code - // The readyState getter steps are to return this's ready state. - return this[kReadyState] - } + if (data.length >= 2) { + // _The WebSocket Connection Close Code_ is + // defined as the status code (Section 7.4) contained in the first Close + // control frame received by the application + code = data.readUInt16BE(0) + } - get bufferedAmount () { - webidl.brandCheck(this, WebSocket) + if (onlyCode) { + if (!isValidStatusCode(code)) { + return null + } - return this.#bufferedAmount - } + return { code } + } - get url () { - webidl.brandCheck(this, WebSocket) + // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.6 + /** @type {Buffer} */ + let reason = data.subarray(2) - // The url getter steps are to return this's url, serialized. - return URLSerializer(this[kWebSocketURL]) - } + // Remove BOM + if (reason[0] === 0xef && reason[1] === 0xbb && reason[2] === 0xbf) { + reason = reason.subarray(3) + } - get extensions () { - webidl.brandCheck(this, WebSocket) + if (code !== undefined && !isValidStatusCode(code)) { + return null + } - return this.#extensions - } + try { + // TODO: optimize this + reason = new TextDecoder('utf-8', { fatal: true }).decode(reason) + } catch { + return null + } - get protocol () { - webidl.brandCheck(this, WebSocket) + return { code, reason } + } - return this.#protocol - } + get closingInfo() { + return this.#info.closeInfo + } + } - get onopen () { - webidl.brandCheck(this, WebSocket) + module.exports = { + ByteParser + } - return this.#events.open - } + /***/ + }, - set onopen (fn) { - webidl.brandCheck(this, WebSocket) + /***/ 37578: /***/ module => { + 'use strict' - if (this.#events.open) { - this.removeEventListener('open', this.#events.open) - } + module.exports = { + kWebSocketURL: Symbol('url'), + kReadyState: Symbol('ready state'), + kController: Symbol('controller'), + kResponse: Symbol('response'), + kBinaryType: Symbol('binary type'), + kSentClose: Symbol('sent close'), + kReceivedClose: Symbol('received close'), + kByteParser: Symbol('byte parser') + } - if (typeof fn === 'function') { - this.#events.open = fn - this.addEventListener('open', fn) - } else { - this.#events.open = null - } - } + /***/ + }, - get onerror () { - webidl.brandCheck(this, WebSocket) + /***/ 25515: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' - return this.#events.error - } + const { + kReadyState, + kController, + kResponse, + kBinaryType, + kWebSocketURL + } = __nccwpck_require__(37578) + const { states, opcodes } = __nccwpck_require__(19188) + const { MessageEvent, ErrorEvent } = __nccwpck_require__(52611) - set onerror (fn) { - webidl.brandCheck(this, WebSocket) + /* globals Blob */ - if (this.#events.error) { - this.removeEventListener('error', this.#events.error) - } + /** + * @param {import('./websocket').WebSocket} ws + */ + function isEstablished(ws) { + // If the server's response is validated as provided for above, it is + // said that _The WebSocket Connection is Established_ and that the + // WebSocket Connection is in the OPEN state. + return ws[kReadyState] === states.OPEN + } - if (typeof fn === 'function') { - this.#events.error = fn - this.addEventListener('error', fn) - } else { - this.#events.error = null - } - } + /** + * @param {import('./websocket').WebSocket} ws + */ + function isClosing(ws) { + // Upon either sending or receiving a Close control frame, it is said + // that _The WebSocket Closing Handshake is Started_ and that the + // WebSocket connection is in the CLOSING state. + return ws[kReadyState] === states.CLOSING + } - get onclose () { - webidl.brandCheck(this, WebSocket) + /** + * @param {import('./websocket').WebSocket} ws + */ + function isClosed(ws) { + return ws[kReadyState] === states.CLOSED + } - return this.#events.close - } + /** + * @see https://dom.spec.whatwg.org/#concept-event-fire + * @param {string} e + * @param {EventTarget} target + * @param {EventInit | undefined} eventInitDict + */ + function fireEvent(e, target, eventConstructor = Event, eventInitDict) { + // 1. If eventConstructor is not given, then let eventConstructor be Event. - set onclose (fn) { - webidl.brandCheck(this, WebSocket) + // 2. Let event be the result of creating an event given eventConstructor, + // in the relevant realm of target. + // 3. Initialize event’s type attribute to e. + const event = new eventConstructor(e, eventInitDict) // eslint-disable-line new-cap - if (this.#events.close) { - this.removeEventListener('close', this.#events.close) - } + // 4. Initialize any other IDL attributes of event as described in the + // invocation of this algorithm. - if (typeof fn === 'function') { - this.#events.close = fn - this.addEventListener('close', fn) - } else { - this.#events.close = null - } - } + // 5. Return the result of dispatching event at target, with legacy target + // override flag set if set. + target.dispatchEvent(event) + } - get onmessage () { - webidl.brandCheck(this, WebSocket) + /** + * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol + * @param {import('./websocket').WebSocket} ws + * @param {number} type Opcode + * @param {Buffer} data application data + */ + function websocketMessageReceived(ws, type, data) { + // 1. If ready state is not OPEN (1), then return. + if (ws[kReadyState] !== states.OPEN) { + return + } - return this.#events.message - } + // 2. Let dataForEvent be determined by switching on type and binary type: + let dataForEvent - set onmessage (fn) { - webidl.brandCheck(this, WebSocket) + if (type === opcodes.TEXT) { + // -> type indicates that the data is Text + // a new DOMString containing data + try { + dataForEvent = new TextDecoder('utf-8', { fatal: true }).decode( + data + ) + } catch { + failWebsocketConnection(ws, 'Received invalid UTF-8 in text frame.') + return + } + } else if (type === opcodes.BINARY) { + if (ws[kBinaryType] === 'blob') { + // -> type indicates that the data is Binary and binary type is "blob" + // a new Blob object, created in the relevant Realm of the WebSocket + // object, that represents data as its raw data + dataForEvent = new Blob([data]) + } else { + // -> type indicates that the data is Binary and binary type is "arraybuffer" + // a new ArrayBuffer object, created in the relevant Realm of the + // WebSocket object, whose contents are data + dataForEvent = new Uint8Array(data).buffer + } + } - if (this.#events.message) { - this.removeEventListener('message', this.#events.message) - } + // 3. Fire an event named message at the WebSocket object, using MessageEvent, + // with the origin attribute initialized to the serialization of the WebSocket + // object’s url's origin, and the data attribute initialized to dataForEvent. + fireEvent('message', ws, MessageEvent, { + origin: ws[kWebSocketURL].origin, + data: dataForEvent + }) + } - if (typeof fn === 'function') { - this.#events.message = fn - this.addEventListener('message', fn) - } else { - this.#events.message = null - } - } + /** + * @see https://datatracker.ietf.org/doc/html/rfc6455 + * @see https://datatracker.ietf.org/doc/html/rfc2616 + * @see https://bugs.chromium.org/p/chromium/issues/detail?id=398407 + * @param {string} protocol + */ + function isValidSubprotocol(protocol) { + // If present, this value indicates one + // or more comma-separated subprotocol the client wishes to speak, + // ordered by preference. The elements that comprise this value + // MUST be non-empty strings with characters in the range U+0021 to + // U+007E not including separator characters as defined in + // [RFC2616] and MUST all be unique strings. + if (protocol.length === 0) { + return false + } - get binaryType () { - webidl.brandCheck(this, WebSocket) + for (const char of protocol) { + const code = char.charCodeAt(0) - return this[kBinaryType] - } + if ( + code < 0x21 || + code > 0x7e || + char === '(' || + char === ')' || + char === '<' || + char === '>' || + char === '@' || + char === ',' || + char === ';' || + char === ':' || + char === '\\' || + char === '"' || + char === '/' || + char === '[' || + char === ']' || + char === '?' || + char === '=' || + char === '{' || + char === '}' || + code === 32 || // SP + code === 9 // HT + ) { + return false + } + } - set binaryType (type) { - webidl.brandCheck(this, WebSocket) + return true + } - if (type !== 'blob' && type !== 'arraybuffer') { - this[kBinaryType] = 'blob' - } else { - this[kBinaryType] = type - } - } + /** + * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7-4 + * @param {number} code + */ + function isValidStatusCode(code) { + if (code >= 1000 && code < 1015) { + return ( + code !== 1004 && // reserved + code !== 1005 && // "MUST NOT be set as a status code" + code !== 1006 // "MUST NOT be set as a status code" + ) + } - /** - * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol - */ - #onConnectionEstablished (response) { - // processResponse is called when the "response’s header list has been received and initialized." - // once this happens, the connection is open - this[kResponse] = response - - const parser = new ByteParser(this) - parser.on('drain', function onParserDrain () { - this.ws[kResponse].socket.resume() - }) + return code >= 3000 && code <= 4999 + } - response.socket.ws = this - this[kByteParser] = parser + /** + * @param {import('./websocket').WebSocket} ws + * @param {string|undefined} reason + */ + function failWebsocketConnection(ws, reason) { + const { [kController]: controller, [kResponse]: response } = ws - // 1. Change the ready state to OPEN (1). - this[kReadyState] = states.OPEN + controller.abort() - // 2. Change the extensions attribute’s value to the extensions in use, if - // it is not the null value. - // https://datatracker.ietf.org/doc/html/rfc6455#section-9.1 - const extensions = response.headersList.get('sec-websocket-extensions') + if (response?.socket && !response.socket.destroyed) { + response.socket.destroy() + } - if (extensions !== null) { - this.#extensions = extensions - } + if (reason) { + fireEvent('error', ws, ErrorEvent, { + error: new Error(reason) + }) + } + } - // 3. Change the protocol attribute’s value to the subprotocol in use, if - // it is not the null value. - // https://datatracker.ietf.org/doc/html/rfc6455#section-1.9 - const protocol = response.headersList.get('sec-websocket-protocol') + module.exports = { + isEstablished, + isClosing, + isClosed, + fireEvent, + isValidSubprotocol, + isValidStatusCode, + failWebsocketConnection, + websocketMessageReceived + } - if (protocol !== null) { - this.#protocol = protocol - } + /***/ + }, - // 4. Fire an event named open at the WebSocket object. - fireEvent('open', this) - } -} - -// https://websockets.spec.whatwg.org/#dom-websocket-connecting -WebSocket.CONNECTING = WebSocket.prototype.CONNECTING = states.CONNECTING -// https://websockets.spec.whatwg.org/#dom-websocket-open -WebSocket.OPEN = WebSocket.prototype.OPEN = states.OPEN -// https://websockets.spec.whatwg.org/#dom-websocket-closing -WebSocket.CLOSING = WebSocket.prototype.CLOSING = states.CLOSING -// https://websockets.spec.whatwg.org/#dom-websocket-closed -WebSocket.CLOSED = WebSocket.prototype.CLOSED = states.CLOSED - -Object.defineProperties(WebSocket.prototype, { - CONNECTING: staticPropertyDescriptors, - OPEN: staticPropertyDescriptors, - CLOSING: staticPropertyDescriptors, - CLOSED: staticPropertyDescriptors, - url: kEnumerableProperty, - readyState: kEnumerableProperty, - bufferedAmount: kEnumerableProperty, - onopen: kEnumerableProperty, - onerror: kEnumerableProperty, - onclose: kEnumerableProperty, - close: kEnumerableProperty, - onmessage: kEnumerableProperty, - binaryType: kEnumerableProperty, - send: kEnumerableProperty, - extensions: kEnumerableProperty, - protocol: kEnumerableProperty, - [Symbol.toStringTag]: { - value: 'WebSocket', - writable: false, - enumerable: false, - configurable: true - } -}) - -Object.defineProperties(WebSocket, { - CONNECTING: staticPropertyDescriptors, - OPEN: staticPropertyDescriptors, - CLOSING: staticPropertyDescriptors, - CLOSED: staticPropertyDescriptors -}) - -webidl.converters['sequence'] = webidl.sequenceConverter( - webidl.converters.DOMString -) - -webidl.converters['DOMString or sequence'] = function (V) { - if (webidl.util.Type(V) === 'Object' && Symbol.iterator in V) { - return webidl.converters['sequence'](V) - } + /***/ 54284: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + const { webidl } = __nccwpck_require__(21744) + const { DOMException } = __nccwpck_require__(41037) + const { URLSerializer } = __nccwpck_require__(685) + const { getGlobalOrigin } = __nccwpck_require__(71246) + const { staticPropertyDescriptors, states, opcodes, emptyBuffer } = + __nccwpck_require__(19188) + const { + kWebSocketURL, + kReadyState, + kController, + kBinaryType, + kResponse, + kSentClose, + kByteParser + } = __nccwpck_require__(37578) + const { + isEstablished, + isClosing, + isValidSubprotocol, + failWebsocketConnection, + fireEvent + } = __nccwpck_require__(25515) + const { establishWebSocketConnection } = __nccwpck_require__(35354) + const { WebsocketFrameSend } = __nccwpck_require__(25444) + const { ByteParser } = __nccwpck_require__(11688) + const { kEnumerableProperty, isBlobLike } = __nccwpck_require__(83983) + const { getGlobalDispatcher } = __nccwpck_require__(21892) + const { types } = __nccwpck_require__(73837) + + let experimentalWarned = false + + // https://websockets.spec.whatwg.org/#interface-definition + class WebSocket extends EventTarget { + #events = { + open: null, + error: null, + close: null, + message: null + } + + #bufferedAmount = 0 + #protocol = '' + #extensions = '' - return webidl.converters.DOMString(V) -} + /** + * @param {string} url + * @param {string|string[]} protocols + */ + constructor(url, protocols = []) { + super() -// This implements the propsal made in https://github.com/whatwg/websockets/issues/42 -webidl.converters.WebSocketInit = webidl.dictionaryConverter([ - { - key: 'protocols', - converter: webidl.converters['DOMString or sequence'], - get defaultValue () { - return [] - } - }, - { - key: 'dispatcher', - converter: (V) => V, - get defaultValue () { - return getGlobalDispatcher() - } - }, - { - key: 'headers', - converter: webidl.nullableConverter(webidl.converters.HeadersInit) - } -]) + webidl.argumentLengthCheck(arguments, 1, { + header: 'WebSocket constructor' + }) -webidl.converters['DOMString or sequence or WebSocketInit'] = function (V) { - if (webidl.util.Type(V) === 'Object' && !(Symbol.iterator in V)) { - return webidl.converters.WebSocketInit(V) - } + if (!experimentalWarned) { + experimentalWarned = true + process.emitWarning( + 'WebSockets are experimental, expect them to change at any time.', + { + code: 'UNDICI-WS' + } + ) + } - return { protocols: webidl.converters['DOMString or sequence'](V) } -} + const options = + webidl.converters[ + 'DOMString or sequence or WebSocketInit' + ](protocols) -webidl.converters.WebSocketSendData = function (V) { - if (webidl.util.Type(V) === 'Object') { - if (isBlobLike(V)) { - return webidl.converters.Blob(V, { strict: false }) - } + url = webidl.converters.USVString(url) + protocols = options.protocols - if (ArrayBuffer.isView(V) || types.isAnyArrayBuffer(V)) { - return webidl.converters.BufferSource(V) - } - } + // 1. Let baseURL be this's relevant settings object's API base URL. + const baseURL = getGlobalOrigin() - return webidl.converters.USVString(V) -} + // 1. Let urlRecord be the result of applying the URL parser to url with baseURL. + let urlRecord -module.exports = { - WebSocket -} + try { + urlRecord = new URL(url, baseURL) + } catch (e) { + // 3. If urlRecord is failure, then throw a "SyntaxError" DOMException. + throw new DOMException(e, 'SyntaxError') + } + // 4. If urlRecord’s scheme is "http", then set urlRecord’s scheme to "ws". + if (urlRecord.protocol === 'http:') { + urlRecord.protocol = 'ws:' + } else if (urlRecord.protocol === 'https:') { + // 5. Otherwise, if urlRecord’s scheme is "https", set urlRecord’s scheme to "wss". + urlRecord.protocol = 'wss:' + } -/***/ }), + // 6. If urlRecord’s scheme is not "ws" or "wss", then throw a "SyntaxError" DOMException. + if (urlRecord.protocol !== 'ws:' && urlRecord.protocol !== 'wss:') { + throw new DOMException( + `Expected a ws: or wss: protocol, got ${urlRecord.protocol}`, + 'SyntaxError' + ) + } -/***/ 75840: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + // 7. If urlRecord’s fragment is non-null, then throw a "SyntaxError" + // DOMException. + if (urlRecord.hash || urlRecord.href.endsWith('#')) { + throw new DOMException('Got fragment', 'SyntaxError') + } -"use strict"; + // 8. If protocols is a string, set protocols to a sequence consisting + // of just that string. + if (typeof protocols === 'string') { + protocols = [protocols] + } + // 9. If any of the values in protocols occur more than once or otherwise + // fail to match the requirements for elements that comprise the value + // of `Sec-WebSocket-Protocol` fields as defined by The WebSocket + // protocol, then throw a "SyntaxError" DOMException. + if ( + protocols.length !== + new Set(protocols.map(p => p.toLowerCase())).size + ) { + throw new DOMException( + 'Invalid Sec-WebSocket-Protocol value', + 'SyntaxError' + ) + } -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -Object.defineProperty(exports, "v1", ({ - enumerable: true, - get: function () { - return _v.default; - } -})); -Object.defineProperty(exports, "v3", ({ - enumerable: true, - get: function () { - return _v2.default; - } -})); -Object.defineProperty(exports, "v4", ({ - enumerable: true, - get: function () { - return _v3.default; - } -})); -Object.defineProperty(exports, "v5", ({ - enumerable: true, - get: function () { - return _v4.default; - } -})); -Object.defineProperty(exports, "NIL", ({ - enumerable: true, - get: function () { - return _nil.default; - } -})); -Object.defineProperty(exports, "version", ({ - enumerable: true, - get: function () { - return _version.default; - } -})); -Object.defineProperty(exports, "validate", ({ - enumerable: true, - get: function () { - return _validate.default; - } -})); -Object.defineProperty(exports, "stringify", ({ - enumerable: true, - get: function () { - return _stringify.default; - } -})); -Object.defineProperty(exports, "parse", ({ - enumerable: true, - get: function () { - return _parse.default; - } -})); + if ( + protocols.length > 0 && + !protocols.every(p => isValidSubprotocol(p)) + ) { + throw new DOMException( + 'Invalid Sec-WebSocket-Protocol value', + 'SyntaxError' + ) + } -var _v = _interopRequireDefault(__nccwpck_require__(78628)); + // 10. Set this's url to urlRecord. + this[kWebSocketURL] = new URL(urlRecord.href) -var _v2 = _interopRequireDefault(__nccwpck_require__(86409)); + // 11. Let client be this's relevant settings object. -var _v3 = _interopRequireDefault(__nccwpck_require__(85122)); + // 12. Run this step in parallel: -var _v4 = _interopRequireDefault(__nccwpck_require__(79120)); + // 1. Establish a WebSocket connection given urlRecord, protocols, + // and client. + this[kController] = establishWebSocketConnection( + urlRecord, + protocols, + this, + response => this.#onConnectionEstablished(response), + options + ) -var _nil = _interopRequireDefault(__nccwpck_require__(25332)); + // Each WebSocket object has an associated ready state, which is a + // number representing the state of the connection. Initially it must + // be CONNECTING (0). + this[kReadyState] = WebSocket.CONNECTING -var _version = _interopRequireDefault(__nccwpck_require__(81595)); + // The extensions attribute must initially return the empty string. -var _validate = _interopRequireDefault(__nccwpck_require__(66900)); + // The protocol attribute must initially return the empty string. -var _stringify = _interopRequireDefault(__nccwpck_require__(18950)); + // Each WebSocket object has an associated binary type, which is a + // BinaryType. Initially it must be "blob". + this[kBinaryType] = 'blob' + } -var _parse = _interopRequireDefault(__nccwpck_require__(62746)); + /** + * @see https://websockets.spec.whatwg.org/#dom-websocket-close + * @param {number|undefined} code + * @param {string|undefined} reason + */ + close(code = undefined, reason = undefined) { + webidl.brandCheck(this, WebSocket) -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + if (code !== undefined) { + code = webidl.converters['unsigned short'](code, { clamp: true }) + } -/***/ }), + if (reason !== undefined) { + reason = webidl.converters.USVString(reason) + } -/***/ 4569: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + // 1. If code is present, but is neither an integer equal to 1000 nor an + // integer in the range 3000 to 4999, inclusive, throw an + // "InvalidAccessError" DOMException. + if (code !== undefined) { + if (code !== 1000 && (code < 3000 || code > 4999)) { + throw new DOMException('invalid code', 'InvalidAccessError') + } + } -"use strict"; + let reasonByteLength = 0 + // 2. If reason is present, then run these substeps: + if (reason !== undefined) { + // 1. Let reasonBytes be the result of encoding reason. + // 2. If reasonBytes is longer than 123 bytes, then throw a + // "SyntaxError" DOMException. + reasonByteLength = Buffer.byteLength(reason) -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + if (reasonByteLength > 123) { + throw new DOMException( + `Reason must be less than 123 bytes; received ${reasonByteLength}`, + 'SyntaxError' + ) + } + } -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); + // 3. Run the first matching steps from the following list: + if ( + this[kReadyState] === WebSocket.CLOSING || + this[kReadyState] === WebSocket.CLOSED + ) { + // If this's ready state is CLOSING (2) or CLOSED (3) + // Do nothing. + } else if (!isEstablished(this)) { + // If the WebSocket connection is not yet established + // Fail the WebSocket connection and set this's ready state + // to CLOSING (2). + failWebsocketConnection( + this, + 'Connection was closed before it was established.' + ) + this[kReadyState] = WebSocket.CLOSING + } else if (!isClosing(this)) { + // If the WebSocket closing handshake has not yet been started + // Start the WebSocket closing handshake and set this's ready + // state to CLOSING (2). + // - If neither code nor reason is present, the WebSocket Close + // message must not have a body. + // - If code is present, then the status code to use in the + // WebSocket Close message must be the integer given by code. + // - If reason is also present, then reasonBytes must be + // provided in the Close message after the status code. + + const frame = new WebsocketFrameSend() + + // If neither code nor reason is present, the WebSocket Close + // message must not have a body. + + // If code is present, then the status code to use in the + // WebSocket Close message must be the integer given by code. + if (code !== undefined && reason === undefined) { + frame.frameData = Buffer.allocUnsafe(2) + frame.frameData.writeUInt16BE(code, 0) + } else if (code !== undefined && reason !== undefined) { + // If reason is also present, then reasonBytes must be + // provided in the Close message after the status code. + frame.frameData = Buffer.allocUnsafe(2 + reasonByteLength) + frame.frameData.writeUInt16BE(code, 0) + // the body MAY contain UTF-8-encoded data with value /reason/ + frame.frameData.write(reason, 2, 'utf-8') + } else { + frame.frameData = emptyBuffer + } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + /** @type {import('stream').Duplex} */ + const socket = this[kResponse].socket -function md5(bytes) { - if (Array.isArray(bytes)) { - bytes = Buffer.from(bytes); - } else if (typeof bytes === 'string') { - bytes = Buffer.from(bytes, 'utf8'); - } + socket.write(frame.createFrame(opcodes.CLOSE), err => { + if (!err) { + this[kSentClose] = true + } + }) - return _crypto.default.createHash('md5').update(bytes).digest(); -} + // Upon either sending or receiving a Close control frame, it is said + // that _The WebSocket Closing Handshake is Started_ and that the + // WebSocket connection is in the CLOSING state. + this[kReadyState] = states.CLOSING + } else { + // Otherwise + // Set this's ready state to CLOSING (2). + this[kReadyState] = WebSocket.CLOSING + } + } -var _default = md5; -exports["default"] = _default; + /** + * @see https://websockets.spec.whatwg.org/#dom-websocket-send + * @param {NodeJS.TypedArray|ArrayBuffer|Blob|string} data + */ + send(data) { + webidl.brandCheck(this, WebSocket) -/***/ }), + webidl.argumentLengthCheck(arguments, 1, { header: 'WebSocket.send' }) -/***/ 25332: -/***/ ((__unused_webpack_module, exports) => { + data = webidl.converters.WebSocketSendData(data) -"use strict"; + // 1. If this's ready state is CONNECTING, then throw an + // "InvalidStateError" DOMException. + if (this[kReadyState] === WebSocket.CONNECTING) { + throw new DOMException( + 'Sent before connected.', + 'InvalidStateError' + ) + } + // 2. Run the appropriate set of steps from the following list: + // https://datatracker.ietf.org/doc/html/rfc6455#section-6.1 + // https://datatracker.ietf.org/doc/html/rfc6455#section-5.2 -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; -var _default = '00000000-0000-0000-0000-000000000000'; -exports["default"] = _default; + if (!isEstablished(this) || isClosing(this)) { + return + } -/***/ }), + /** @type {import('stream').Duplex} */ + const socket = this[kResponse].socket + + // If data is a string + if (typeof data === 'string') { + // If the WebSocket connection is established and the WebSocket + // closing handshake has not yet started, then the user agent + // must send a WebSocket Message comprised of the data argument + // using a text frame opcode; if the data cannot be sent, e.g. + // because it would need to be buffered but the buffer is full, + // the user agent must flag the WebSocket as full and then close + // the WebSocket connection. Any invocation of this method with a + // string argument that does not throw an exception must increase + // the bufferedAmount attribute by the number of bytes needed to + // express the argument as UTF-8. + + const value = Buffer.from(data) + const frame = new WebsocketFrameSend(value) + const buffer = frame.createFrame(opcodes.TEXT) + + this.#bufferedAmount += value.byteLength + socket.write(buffer, () => { + this.#bufferedAmount -= value.byteLength + }) + } else if (types.isArrayBuffer(data)) { + // If the WebSocket connection is established, and the WebSocket + // closing handshake has not yet started, then the user agent must + // send a WebSocket Message comprised of data using a binary frame + // opcode; if the data cannot be sent, e.g. because it would need + // to be buffered but the buffer is full, the user agent must flag + // the WebSocket as full and then close the WebSocket connection. + // The data to be sent is the data stored in the buffer described + // by the ArrayBuffer object. Any invocation of this method with an + // ArrayBuffer argument that does not throw an exception must + // increase the bufferedAmount attribute by the length of the + // ArrayBuffer in bytes. + + const value = Buffer.from(data) + const frame = new WebsocketFrameSend(value) + const buffer = frame.createFrame(opcodes.BINARY) + + this.#bufferedAmount += value.byteLength + socket.write(buffer, () => { + this.#bufferedAmount -= value.byteLength + }) + } else if (ArrayBuffer.isView(data)) { + // If the WebSocket connection is established, and the WebSocket + // closing handshake has not yet started, then the user agent must + // send a WebSocket Message comprised of data using a binary frame + // opcode; if the data cannot be sent, e.g. because it would need to + // be buffered but the buffer is full, the user agent must flag the + // WebSocket as full and then close the WebSocket connection. The + // data to be sent is the data stored in the section of the buffer + // described by the ArrayBuffer object that data references. Any + // invocation of this method with this kind of argument that does + // not throw an exception must increase the bufferedAmount attribute + // by the length of data’s buffer in bytes. + + const ab = Buffer.from(data, data.byteOffset, data.byteLength) + + const frame = new WebsocketFrameSend(ab) + const buffer = frame.createFrame(opcodes.BINARY) + + this.#bufferedAmount += ab.byteLength + socket.write(buffer, () => { + this.#bufferedAmount -= ab.byteLength + }) + } else if (isBlobLike(data)) { + // If the WebSocket connection is established, and the WebSocket + // closing handshake has not yet started, then the user agent must + // send a WebSocket Message comprised of data using a binary frame + // opcode; if the data cannot be sent, e.g. because it would need to + // be buffered but the buffer is full, the user agent must flag the + // WebSocket as full and then close the WebSocket connection. The data + // to be sent is the raw data represented by the Blob object. Any + // invocation of this method with a Blob argument that does not throw + // an exception must increase the bufferedAmount attribute by the size + // of the Blob object’s raw data, in bytes. + + const frame = new WebsocketFrameSend() + + data.arrayBuffer().then(ab => { + const value = Buffer.from(ab) + frame.frameData = value + const buffer = frame.createFrame(opcodes.BINARY) + + this.#bufferedAmount += value.byteLength + socket.write(buffer, () => { + this.#bufferedAmount -= value.byteLength + }) + }) + } + } -/***/ 62746: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + get readyState() { + webidl.brandCheck(this, WebSocket) -"use strict"; + // The readyState getter steps are to return this's ready state. + return this[kReadyState] + } + get bufferedAmount() { + webidl.brandCheck(this, WebSocket) -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + return this.#bufferedAmount + } -var _validate = _interopRequireDefault(__nccwpck_require__(66900)); + get url() { + webidl.brandCheck(this, WebSocket) -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + // The url getter steps are to return this's url, serialized. + return URLSerializer(this[kWebSocketURL]) + } -function parse(uuid) { - if (!(0, _validate.default)(uuid)) { - throw TypeError('Invalid UUID'); - } + get extensions() { + webidl.brandCheck(this, WebSocket) - let v; - const arr = new Uint8Array(16); // Parse ########-....-....-....-............ + return this.#extensions + } - arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24; - arr[1] = v >>> 16 & 0xff; - arr[2] = v >>> 8 & 0xff; - arr[3] = v & 0xff; // Parse ........-####-....-....-............ + get protocol() { + webidl.brandCheck(this, WebSocket) - arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8; - arr[5] = v & 0xff; // Parse ........-....-####-....-............ + return this.#protocol + } - arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8; - arr[7] = v & 0xff; // Parse ........-....-....-####-............ + get onopen() { + webidl.brandCheck(this, WebSocket) - arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8; - arr[9] = v & 0xff; // Parse ........-....-....-....-############ - // (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes) + return this.#events.open + } - arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff; - arr[11] = v / 0x100000000 & 0xff; - arr[12] = v >>> 24 & 0xff; - arr[13] = v >>> 16 & 0xff; - arr[14] = v >>> 8 & 0xff; - arr[15] = v & 0xff; - return arr; -} + set onopen(fn) { + webidl.brandCheck(this, WebSocket) -var _default = parse; -exports["default"] = _default; + if (this.#events.open) { + this.removeEventListener('open', this.#events.open) + } -/***/ }), + if (typeof fn === 'function') { + this.#events.open = fn + this.addEventListener('open', fn) + } else { + this.#events.open = null + } + } -/***/ 40814: -/***/ ((__unused_webpack_module, exports) => { + get onerror() { + webidl.brandCheck(this, WebSocket) -"use strict"; + return this.#events.error + } + set onerror(fn) { + webidl.brandCheck(this, WebSocket) -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; -var _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; -exports["default"] = _default; + if (this.#events.error) { + this.removeEventListener('error', this.#events.error) + } -/***/ }), + if (typeof fn === 'function') { + this.#events.error = fn + this.addEventListener('error', fn) + } else { + this.#events.error = null + } + } -/***/ 50807: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + get onclose() { + webidl.brandCheck(this, WebSocket) -"use strict"; + return this.#events.close + } + set onclose(fn) { + webidl.brandCheck(this, WebSocket) -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = rng; + if (this.#events.close) { + this.removeEventListener('close', this.#events.close) + } -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); + if (typeof fn === 'function') { + this.#events.close = fn + this.addEventListener('close', fn) + } else { + this.#events.close = null + } + } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + get onmessage() { + webidl.brandCheck(this, WebSocket) -const rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate + return this.#events.message + } -let poolPtr = rnds8Pool.length; + set onmessage(fn) { + webidl.brandCheck(this, WebSocket) -function rng() { - if (poolPtr > rnds8Pool.length - 16) { - _crypto.default.randomFillSync(rnds8Pool); + if (this.#events.message) { + this.removeEventListener('message', this.#events.message) + } - poolPtr = 0; - } + if (typeof fn === 'function') { + this.#events.message = fn + this.addEventListener('message', fn) + } else { + this.#events.message = null + } + } - return rnds8Pool.slice(poolPtr, poolPtr += 16); -} + get binaryType() { + webidl.brandCheck(this, WebSocket) -/***/ }), + return this[kBinaryType] + } -/***/ 85274: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + set binaryType(type) { + webidl.brandCheck(this, WebSocket) -"use strict"; + if (type !== 'blob' && type !== 'arraybuffer') { + this[kBinaryType] = 'blob' + } else { + this[kBinaryType] = type + } + } + /** + * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol + */ + #onConnectionEstablished(response) { + // processResponse is called when the "response’s header list has been received and initialized." + // once this happens, the connection is open + this[kResponse] = response + + const parser = new ByteParser(this) + parser.on('drain', function onParserDrain() { + this.ws[kResponse].socket.resume() + }) -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + response.socket.ws = this + this[kByteParser] = parser -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); + // 1. Change the ready state to OPEN (1). + this[kReadyState] = states.OPEN -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + // 2. Change the extensions attribute’s value to the extensions in use, if + // it is not the null value. + // https://datatracker.ietf.org/doc/html/rfc6455#section-9.1 + const extensions = response.headersList.get( + 'sec-websocket-extensions' + ) -function sha1(bytes) { - if (Array.isArray(bytes)) { - bytes = Buffer.from(bytes); - } else if (typeof bytes === 'string') { - bytes = Buffer.from(bytes, 'utf8'); - } + if (extensions !== null) { + this.#extensions = extensions + } - return _crypto.default.createHash('sha1').update(bytes).digest(); -} + // 3. Change the protocol attribute’s value to the subprotocol in use, if + // it is not the null value. + // https://datatracker.ietf.org/doc/html/rfc6455#section-1.9 + const protocol = response.headersList.get('sec-websocket-protocol') -var _default = sha1; -exports["default"] = _default; + if (protocol !== null) { + this.#protocol = protocol + } -/***/ }), + // 4. Fire an event named open at the WebSocket object. + fireEvent('open', this) + } + } + + // https://websockets.spec.whatwg.org/#dom-websocket-connecting + WebSocket.CONNECTING = WebSocket.prototype.CONNECTING = states.CONNECTING + // https://websockets.spec.whatwg.org/#dom-websocket-open + WebSocket.OPEN = WebSocket.prototype.OPEN = states.OPEN + // https://websockets.spec.whatwg.org/#dom-websocket-closing + WebSocket.CLOSING = WebSocket.prototype.CLOSING = states.CLOSING + // https://websockets.spec.whatwg.org/#dom-websocket-closed + WebSocket.CLOSED = WebSocket.prototype.CLOSED = states.CLOSED + + Object.defineProperties(WebSocket.prototype, { + CONNECTING: staticPropertyDescriptors, + OPEN: staticPropertyDescriptors, + CLOSING: staticPropertyDescriptors, + CLOSED: staticPropertyDescriptors, + url: kEnumerableProperty, + readyState: kEnumerableProperty, + bufferedAmount: kEnumerableProperty, + onopen: kEnumerableProperty, + onerror: kEnumerableProperty, + onclose: kEnumerableProperty, + close: kEnumerableProperty, + onmessage: kEnumerableProperty, + binaryType: kEnumerableProperty, + send: kEnumerableProperty, + extensions: kEnumerableProperty, + protocol: kEnumerableProperty, + [Symbol.toStringTag]: { + value: 'WebSocket', + writable: false, + enumerable: false, + configurable: true + } + }) -/***/ 18950: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + Object.defineProperties(WebSocket, { + CONNECTING: staticPropertyDescriptors, + OPEN: staticPropertyDescriptors, + CLOSING: staticPropertyDescriptors, + CLOSED: staticPropertyDescriptors + }) -"use strict"; + webidl.converters['sequence'] = webidl.sequenceConverter( + webidl.converters.DOMString + ) + webidl.converters['DOMString or sequence'] = function (V) { + if (webidl.util.Type(V) === 'Object' && Symbol.iterator in V) { + return webidl.converters['sequence'](V) + } -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + return webidl.converters.DOMString(V) + } -var _validate = _interopRequireDefault(__nccwpck_require__(66900)); + // This implements the propsal made in https://github.com/whatwg/websockets/issues/42 + webidl.converters.WebSocketInit = webidl.dictionaryConverter([ + { + key: 'protocols', + converter: webidl.converters['DOMString or sequence'], + get defaultValue() { + return [] + } + }, + { + key: 'dispatcher', + converter: V => V, + get defaultValue() { + return getGlobalDispatcher() + } + }, + { + key: 'headers', + converter: webidl.nullableConverter(webidl.converters.HeadersInit) + } + ]) -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + webidl.converters['DOMString or sequence or WebSocketInit'] = + function (V) { + if (webidl.util.Type(V) === 'Object' && !(Symbol.iterator in V)) { + return webidl.converters.WebSocketInit(V) + } -/** - * Convert array of 16 byte values to UUID string format of the form: - * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX - */ -const byteToHex = []; - -for (let i = 0; i < 256; ++i) { - byteToHex.push((i + 0x100).toString(16).substr(1)); -} - -function stringify(arr, offset = 0) { - // Note: Be careful editing this code! It's been tuned for performance - // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434 - const uuid = (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]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one - // of the following: - // - One or more input array values don't map to a hex octet (leading to - // "undefined" in the uuid) - // - Invalid input values for the RFC `version` or `variant` fields - - if (!(0, _validate.default)(uuid)) { - throw TypeError('Stringified UUID is invalid'); - } + return { + protocols: webidl.converters['DOMString or sequence'](V) + } + } - return uuid; -} + webidl.converters.WebSocketSendData = function (V) { + if (webidl.util.Type(V) === 'Object') { + if (isBlobLike(V)) { + return webidl.converters.Blob(V, { strict: false }) + } -var _default = stringify; -exports["default"] = _default; + if (ArrayBuffer.isView(V) || types.isAnyArrayBuffer(V)) { + return webidl.converters.BufferSource(V) + } + } -/***/ }), + return webidl.converters.USVString(V) + } -/***/ 78628: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + module.exports = { + WebSocket + } -"use strict"; + /***/ + }, + /***/ 75840: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + Object.defineProperty(exports, '__esModule', { + value: true + }) + Object.defineProperty(exports, 'v1', { + enumerable: true, + get: function () { + return _v.default + } + }) + Object.defineProperty(exports, 'v3', { + enumerable: true, + get: function () { + return _v2.default + } + }) + Object.defineProperty(exports, 'v4', { + enumerable: true, + get: function () { + return _v3.default + } + }) + Object.defineProperty(exports, 'v5', { + enumerable: true, + get: function () { + return _v4.default + } + }) + Object.defineProperty(exports, 'NIL', { + enumerable: true, + get: function () { + return _nil.default + } + }) + Object.defineProperty(exports, 'version', { + enumerable: true, + get: function () { + return _version.default + } + }) + Object.defineProperty(exports, 'validate', { + enumerable: true, + get: function () { + return _validate.default + } + }) + Object.defineProperty(exports, 'stringify', { + enumerable: true, + get: function () { + return _stringify.default + } + }) + Object.defineProperty(exports, 'parse', { + enumerable: true, + get: function () { + return _parse.default + } + }) -var _rng = _interopRequireDefault(__nccwpck_require__(50807)); + var _v = _interopRequireDefault(__nccwpck_require__(78628)) -var _stringify = _interopRequireDefault(__nccwpck_require__(18950)); + var _v2 = _interopRequireDefault(__nccwpck_require__(86409)) -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + var _v3 = _interopRequireDefault(__nccwpck_require__(85122)) -// **`v1()` - Generate time-based UUID** -// -// Inspired by https://github.com/LiosK/UUID.js -// and http://docs.python.org/library/uuid.html -let _nodeId; + var _v4 = _interopRequireDefault(__nccwpck_require__(79120)) -let _clockseq; // Previous uuid creation time + var _nil = _interopRequireDefault(__nccwpck_require__(25332)) + var _version = _interopRequireDefault(__nccwpck_require__(81595)) -let _lastMSecs = 0; -let _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details + var _validate = _interopRequireDefault(__nccwpck_require__(66900)) -function v1(options, buf, offset) { - let i = buf && offset || 0; - const b = buf || new Array(16); - options = options || {}; - let node = options.node || _nodeId; - let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not - // specified. We do this lazily to minimize issues related to insufficient - // system entropy. See #189 + var _stringify = _interopRequireDefault(__nccwpck_require__(18950)) - if (node == null || clockseq == null) { - const seedBytes = options.random || (options.rng || _rng.default)(); + var _parse = _interopRequireDefault(__nccwpck_require__(62746)) - if (node == null) { - // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) - node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]]; - } + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } - if (clockseq == null) { - // Per 4.2.2, randomize (14 bit) clockseq - clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff; - } - } // UUID timestamps are 100 nano-second units since the Gregorian epoch, - // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so - // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' - // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. + /***/ + }, + /***/ 4569: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' - let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock - // cycle to simulate higher resolution clock + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 - let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs) + var _crypto = _interopRequireDefault(__nccwpck_require__(6113)) - const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } - if (dt < 0 && options.clockseq === undefined) { - clockseq = clockseq + 1 & 0x3fff; - } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new - // time interval + function md5(bytes) { + if (Array.isArray(bytes)) { + bytes = Buffer.from(bytes) + } else if (typeof bytes === 'string') { + bytes = Buffer.from(bytes, 'utf8') + } + return _crypto.default.createHash('md5').update(bytes).digest() + } - if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { - nsecs = 0; - } // Per 4.2.1.2 Throw error if too many uuids are requested + var _default = md5 + exports['default'] = _default + /***/ + }, - if (nsecs >= 10000) { - throw new Error("uuid.v1(): Can't create more than 10M uuids/sec"); - } + /***/ 25332: /***/ (__unused_webpack_module, exports) => { + 'use strict' - _lastMSecs = msecs; - _lastNSecs = nsecs; - _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 + var _default = '00000000-0000-0000-0000-000000000000' + exports['default'] = _default - msecs += 12219292800000; // `time_low` + /***/ + }, - const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; - b[i++] = tl >>> 24 & 0xff; - b[i++] = tl >>> 16 & 0xff; - b[i++] = tl >>> 8 & 0xff; - b[i++] = tl & 0xff; // `time_mid` + /***/ 62746: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' - const tmh = msecs / 0x100000000 * 10000 & 0xfffffff; - b[i++] = tmh >>> 8 & 0xff; - b[i++] = tmh & 0xff; // `time_high_and_version` + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 - b[i++] = tmh >>> 24 & 0xf | 0x10; // include version + var _validate = _interopRequireDefault(__nccwpck_require__(66900)) - b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } - b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low` + function parse(uuid) { + if (!(0, _validate.default)(uuid)) { + throw TypeError('Invalid UUID') + } - b[i++] = clockseq & 0xff; // `node` + let v + const arr = new Uint8Array(16) // Parse ########-....-....-....-............ - for (let n = 0; n < 6; ++n) { - b[i + n] = node[n]; - } + arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24 + arr[1] = (v >>> 16) & 0xff + arr[2] = (v >>> 8) & 0xff + arr[3] = v & 0xff // Parse ........-####-....-....-............ - return buf || (0, _stringify.default)(b); -} + arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8 + arr[5] = v & 0xff // Parse ........-....-####-....-............ -var _default = v1; -exports["default"] = _default; + arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8 + arr[7] = v & 0xff // Parse ........-....-....-####-............ -/***/ }), + arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8 + arr[9] = v & 0xff // Parse ........-....-....-....-############ + // (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes) -/***/ 86409: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + arr[10] = + ((v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000) & 0xff + arr[11] = (v / 0x100000000) & 0xff + arr[12] = (v >>> 24) & 0xff + arr[13] = (v >>> 16) & 0xff + arr[14] = (v >>> 8) & 0xff + arr[15] = v & 0xff + return arr + } -"use strict"; + var _default = parse + exports['default'] = _default + /***/ + }, -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + /***/ 40814: /***/ (__unused_webpack_module, exports) => { + 'use strict' -var _v = _interopRequireDefault(__nccwpck_require__(65998)); + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 + var _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 + exports['default'] = _default -var _md = _interopRequireDefault(__nccwpck_require__(4569)); + /***/ + }, -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + /***/ 50807: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -const v3 = (0, _v.default)('v3', 0x30, _md.default); -var _default = v3; -exports["default"] = _default; + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = rng -/***/ }), + var _crypto = _interopRequireDefault(__nccwpck_require__(6113)) -/***/ 65998: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } -"use strict"; + const rnds8Pool = new Uint8Array(256) // # of random values to pre-allocate + let poolPtr = rnds8Pool.length -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = _default; -exports.URL = exports.DNS = void 0; + function rng() { + if (poolPtr > rnds8Pool.length - 16) { + _crypto.default.randomFillSync(rnds8Pool) -var _stringify = _interopRequireDefault(__nccwpck_require__(18950)); + poolPtr = 0 + } -var _parse = _interopRequireDefault(__nccwpck_require__(62746)); + return rnds8Pool.slice(poolPtr, (poolPtr += 16)) + } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + /***/ + }, -function stringToBytes(str) { - str = unescape(encodeURIComponent(str)); // UTF8 escape + /***/ 85274: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' - const bytes = []; + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 - for (let i = 0; i < str.length; ++i) { - bytes.push(str.charCodeAt(i)); - } + var _crypto = _interopRequireDefault(__nccwpck_require__(6113)) - return bytes; -} + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } -const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8'; -exports.DNS = DNS; -const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8'; -exports.URL = URL; + function sha1(bytes) { + if (Array.isArray(bytes)) { + bytes = Buffer.from(bytes) + } else if (typeof bytes === 'string') { + bytes = Buffer.from(bytes, 'utf8') + } -function _default(name, version, hashfunc) { - function generateUUID(value, namespace, buf, offset) { - if (typeof value === 'string') { - value = stringToBytes(value); - } + return _crypto.default.createHash('sha1').update(bytes).digest() + } - if (typeof namespace === 'string') { - namespace = (0, _parse.default)(namespace); - } + var _default = sha1 + exports['default'] = _default - if (namespace.length !== 16) { - throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)'); - } // Compute hash of namespace and value, Per 4.3 - // Future: Use spread syntax when supported on all platforms, e.g. `bytes = - // hashfunc([...namespace, ... value])` + /***/ + }, + /***/ 18950: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' - let bytes = new Uint8Array(16 + value.length); - bytes.set(namespace); - bytes.set(value, namespace.length); - bytes = hashfunc(bytes); - bytes[6] = bytes[6] & 0x0f | version; - bytes[8] = bytes[8] & 0x3f | 0x80; + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 - if (buf) { - offset = offset || 0; + var _validate = _interopRequireDefault(__nccwpck_require__(66900)) - for (let i = 0; i < 16; ++i) { - buf[offset + i] = bytes[i]; + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } } - return buf; - } - - return (0, _stringify.default)(bytes); - } // Function#name is not settable on some platforms (#270) + /** + * Convert array of 16 byte values to UUID string format of the form: + * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX + */ + const byteToHex = [] + + for (let i = 0; i < 256; ++i) { + byteToHex.push((i + 0x100).toString(16).substr(1)) + } + + function stringify(arr, offset = 0) { + // Note: Be careful editing this code! It's been tuned for performance + // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434 + const uuid = ( + 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]] + ).toLowerCase() // Consistency check for valid UUID. If this throws, it's likely due to one + // of the following: + // - One or more input array values don't map to a hex octet (leading to + // "undefined" in the uuid) + // - Invalid input values for the RFC `version` or `variant` fields + + if (!(0, _validate.default)(uuid)) { + throw TypeError('Stringified UUID is invalid') + } + + return uuid + } + + var _default = stringify + exports['default'] = _default + + /***/ + }, + /***/ 78628: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' - try { - generateUUID.name = name; // eslint-disable-next-line no-empty - } catch (err) {} // For CommonJS default export support + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 + var _rng = _interopRequireDefault(__nccwpck_require__(50807)) - generateUUID.DNS = DNS; - generateUUID.URL = URL; - return generateUUID; -} + var _stringify = _interopRequireDefault(__nccwpck_require__(18950)) -/***/ }), + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } -/***/ 85122: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + // **`v1()` - Generate time-based UUID** + // + // Inspired by https://github.com/LiosK/UUID.js + // and http://docs.python.org/library/uuid.html + let _nodeId + + let _clockseq // Previous uuid creation time + + let _lastMSecs = 0 + let _lastNSecs = 0 // See https://github.com/uuidjs/uuid for API details + + function v1(options, buf, offset) { + let i = (buf && offset) || 0 + const b = buf || new Array(16) + options = options || {} + let node = options.node || _nodeId + let clockseq = + options.clockseq !== undefined ? options.clockseq : _clockseq // node and clockseq need to be initialized to random values if they're not + // specified. We do this lazily to minimize issues related to insufficient + // system entropy. See #189 + + if (node == null || clockseq == null) { + const seedBytes = options.random || (options.rng || _rng.default)() + + if (node == null) { + // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) + node = _nodeId = [ + seedBytes[0] | 0x01, + seedBytes[1], + seedBytes[2], + seedBytes[3], + seedBytes[4], + seedBytes[5] + ] + } -"use strict"; + if (clockseq == null) { + // Per 4.2.2, randomize (14 bit) clockseq + clockseq = _clockseq = ((seedBytes[6] << 8) | seedBytes[7]) & 0x3fff + } + } // UUID timestamps are 100 nano-second units since the Gregorian epoch, + // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so + // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' + // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. + let msecs = options.msecs !== undefined ? options.msecs : Date.now() // Per 4.2.1.2, use count of uuid's generated during the current clock + // cycle to simulate higher resolution clock -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1 // Time since last uuid creation (in msecs) -var _rng = _interopRequireDefault(__nccwpck_require__(50807)); + const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000 // Per 4.2.1.2, Bump clockseq on clock regression -var _stringify = _interopRequireDefault(__nccwpck_require__(18950)); + if (dt < 0 && options.clockseq === undefined) { + clockseq = (clockseq + 1) & 0x3fff + } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new + // time interval -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { + nsecs = 0 + } // Per 4.2.1.2 Throw error if too many uuids are requested -function v4(options, buf, offset) { - options = options || {}; + if (nsecs >= 10000) { + throw new Error("uuid.v1(): Can't create more than 10M uuids/sec") + } - const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` + _lastMSecs = msecs + _lastNSecs = nsecs + _clockseq = clockseq // Per 4.1.4 - Convert from unix epoch to Gregorian epoch + msecs += 12219292800000 // `time_low` - rnds[6] = rnds[6] & 0x0f | 0x40; - rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided + const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000 + b[i++] = (tl >>> 24) & 0xff + b[i++] = (tl >>> 16) & 0xff + b[i++] = (tl >>> 8) & 0xff + b[i++] = tl & 0xff // `time_mid` - if (buf) { - offset = offset || 0; + const tmh = ((msecs / 0x100000000) * 10000) & 0xfffffff + b[i++] = (tmh >>> 8) & 0xff + b[i++] = tmh & 0xff // `time_high_and_version` - for (let i = 0; i < 16; ++i) { - buf[offset + i] = rnds[i]; - } + b[i++] = ((tmh >>> 24) & 0xf) | 0x10 // include version - return buf; - } + b[i++] = (tmh >>> 16) & 0xff // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) - return (0, _stringify.default)(rnds); -} + b[i++] = (clockseq >>> 8) | 0x80 // `clock_seq_low` -var _default = v4; -exports["default"] = _default; + b[i++] = clockseq & 0xff // `node` -/***/ }), + for (let n = 0; n < 6; ++n) { + b[i + n] = node[n] + } -/***/ 79120: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + return buf || (0, _stringify.default)(b) + } -"use strict"; + var _default = v1 + exports['default'] = _default + /***/ + }, -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + /***/ 86409: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -var _v = _interopRequireDefault(__nccwpck_require__(65998)); + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 -var _sha = _interopRequireDefault(__nccwpck_require__(85274)); + var _v = _interopRequireDefault(__nccwpck_require__(65998)) -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + var _md = _interopRequireDefault(__nccwpck_require__(4569)) -const v5 = (0, _v.default)('v5', 0x50, _sha.default); -var _default = v5; -exports["default"] = _default; + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } -/***/ }), + const v3 = (0, _v.default)('v3', 0x30, _md.default) + var _default = v3 + exports['default'] = _default -/***/ 66900: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + /***/ + }, -"use strict"; + /***/ 65998: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = _default + exports.URL = exports.DNS = void 0 -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + var _stringify = _interopRequireDefault(__nccwpck_require__(18950)) -var _regex = _interopRequireDefault(__nccwpck_require__(40814)); + var _parse = _interopRequireDefault(__nccwpck_require__(62746)) -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } -function validate(uuid) { - return typeof uuid === 'string' && _regex.default.test(uuid); -} + function stringToBytes(str) { + str = unescape(encodeURIComponent(str)) // UTF8 escape -var _default = validate; -exports["default"] = _default; + const bytes = [] -/***/ }), + for (let i = 0; i < str.length; ++i) { + bytes.push(str.charCodeAt(i)) + } -/***/ 81595: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + return bytes + } -"use strict"; + const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8' + exports.DNS = DNS + const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8' + exports.URL = URL + function _default(name, version, hashfunc) { + function generateUUID(value, namespace, buf, offset) { + if (typeof value === 'string') { + value = stringToBytes(value) + } -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + if (typeof namespace === 'string') { + namespace = (0, _parse.default)(namespace) + } -var _validate = _interopRequireDefault(__nccwpck_require__(66900)); + if (namespace.length !== 16) { + throw TypeError( + 'Namespace must be array-like (16 iterable integer values, 0-255)' + ) + } // Compute hash of namespace and value, Per 4.3 + // Future: Use spread syntax when supported on all platforms, e.g. `bytes = + // hashfunc([...namespace, ... value])` + + let bytes = new Uint8Array(16 + value.length) + bytes.set(namespace) + bytes.set(value, namespace.length) + bytes = hashfunc(bytes) + bytes[6] = (bytes[6] & 0x0f) | version + bytes[8] = (bytes[8] & 0x3f) | 0x80 + + if (buf) { + offset = offset || 0 + + for (let i = 0; i < 16; ++i) { + buf[offset + i] = bytes[i] + } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + return buf + } -function version(uuid) { - if (!(0, _validate.default)(uuid)) { - throw TypeError('Invalid UUID'); - } + return (0, _stringify.default)(bytes) + } // Function#name is not settable on some platforms (#270) - return parseInt(uuid.substr(14, 1), 16); -} + try { + generateUUID.name = name // eslint-disable-next-line no-empty + } catch (err) {} // For CommonJS default export support -var _default = version; -exports["default"] = _default; + generateUUID.DNS = DNS + generateUUID.URL = URL + return generateUUID + } -/***/ }), + /***/ + }, -/***/ 39491: -/***/ ((module) => { + /***/ 85122: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -"use strict"; -module.exports = require("assert"); + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 -/***/ }), + var _rng = _interopRequireDefault(__nccwpck_require__(50807)) -/***/ 50852: -/***/ ((module) => { + var _stringify = _interopRequireDefault(__nccwpck_require__(18950)) -"use strict"; -module.exports = require("async_hooks"); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } -/***/ }), + function v4(options, buf, offset) { + options = options || {} -/***/ 14300: -/***/ ((module) => { + const rnds = options.random || (options.rng || _rng.default)() // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` -"use strict"; -module.exports = require("buffer"); + rnds[6] = (rnds[6] & 0x0f) | 0x40 + rnds[8] = (rnds[8] & 0x3f) | 0x80 // Copy bytes to buffer, if provided -/***/ }), + if (buf) { + offset = offset || 0 -/***/ 32081: -/***/ ((module) => { + for (let i = 0; i < 16; ++i) { + buf[offset + i] = rnds[i] + } -"use strict"; -module.exports = require("child_process"); + return buf + } -/***/ }), + return (0, _stringify.default)(rnds) + } -/***/ 96206: -/***/ ((module) => { + var _default = v4 + exports['default'] = _default -"use strict"; -module.exports = require("console"); + /***/ + }, -/***/ }), + /***/ 79120: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -/***/ 6113: -/***/ ((module) => { + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 -"use strict"; -module.exports = require("crypto"); + var _v = _interopRequireDefault(__nccwpck_require__(65998)) -/***/ }), + var _sha = _interopRequireDefault(__nccwpck_require__(85274)) -/***/ 67643: -/***/ ((module) => { + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } -"use strict"; -module.exports = require("diagnostics_channel"); + const v5 = (0, _v.default)('v5', 0x50, _sha.default) + var _default = v5 + exports['default'] = _default -/***/ }), + /***/ + }, -/***/ 82361: -/***/ ((module) => { + /***/ 66900: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -"use strict"; -module.exports = require("events"); + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 -/***/ }), + var _regex = _interopRequireDefault(__nccwpck_require__(40814)) -/***/ 57147: -/***/ ((module) => { + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } -"use strict"; -module.exports = require("fs"); + function validate(uuid) { + return typeof uuid === 'string' && _regex.default.test(uuid) + } -/***/ }), + var _default = validate + exports['default'] = _default -/***/ 73292: -/***/ ((module) => { + /***/ + }, -"use strict"; -module.exports = require("fs/promises"); + /***/ 81595: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + 'use strict' -/***/ }), + Object.defineProperty(exports, '__esModule', { + value: true + }) + exports['default'] = void 0 -/***/ 13685: -/***/ ((module) => { + var _validate = _interopRequireDefault(__nccwpck_require__(66900)) -"use strict"; -module.exports = require("http"); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj } + } -/***/ }), + function version(uuid) { + if (!(0, _validate.default)(uuid)) { + throw TypeError('Invalid UUID') + } -/***/ 85158: -/***/ ((module) => { + return parseInt(uuid.substr(14, 1), 16) + } -"use strict"; -module.exports = require("http2"); + var _default = version + exports['default'] = _default -/***/ }), + /***/ + }, -/***/ 95687: -/***/ ((module) => { + /***/ 39491: /***/ module => { + 'use strict' + module.exports = require('assert') -"use strict"; -module.exports = require("https"); + /***/ + }, -/***/ }), + /***/ 50852: /***/ module => { + 'use strict' + module.exports = require('async_hooks') -/***/ 41808: -/***/ ((module) => { + /***/ + }, -"use strict"; -module.exports = require("net"); + /***/ 14300: /***/ module => { + 'use strict' + module.exports = require('buffer') -/***/ }), + /***/ + }, -/***/ 6005: -/***/ ((module) => { + /***/ 32081: /***/ module => { + 'use strict' + module.exports = require('child_process') -"use strict"; -module.exports = require("node:crypto"); + /***/ + }, -/***/ }), + /***/ 96206: /***/ module => { + 'use strict' + module.exports = require('console') -/***/ 15673: -/***/ ((module) => { + /***/ + }, -"use strict"; -module.exports = require("node:events"); + /***/ 6113: /***/ module => { + 'use strict' + module.exports = require('crypto') -/***/ }), + /***/ + }, -/***/ 84492: -/***/ ((module) => { + /***/ 67643: /***/ module => { + 'use strict' + module.exports = require('diagnostics_channel') -"use strict"; -module.exports = require("node:stream"); + /***/ + }, -/***/ }), + /***/ 82361: /***/ module => { + 'use strict' + module.exports = require('events') -/***/ 47261: -/***/ ((module) => { + /***/ + }, -"use strict"; -module.exports = require("node:util"); + /***/ 57147: /***/ module => { + 'use strict' + module.exports = require('fs') -/***/ }), + /***/ + }, -/***/ 22037: -/***/ ((module) => { + /***/ 73292: /***/ module => { + 'use strict' + module.exports = require('fs/promises') -"use strict"; -module.exports = require("os"); + /***/ + }, -/***/ }), + /***/ 13685: /***/ module => { + 'use strict' + module.exports = require('http') -/***/ 71017: -/***/ ((module) => { + /***/ + }, -"use strict"; -module.exports = require("path"); + /***/ 85158: /***/ module => { + 'use strict' + module.exports = require('http2') -/***/ }), + /***/ + }, -/***/ 4074: -/***/ ((module) => { + /***/ 95687: /***/ module => { + 'use strict' + module.exports = require('https') -"use strict"; -module.exports = require("perf_hooks"); + /***/ + }, -/***/ }), + /***/ 41808: /***/ module => { + 'use strict' + module.exports = require('net') -/***/ 77282: -/***/ ((module) => { + /***/ + }, -"use strict"; -module.exports = require("process"); + /***/ 6005: /***/ module => { + 'use strict' + module.exports = require('node:crypto') -/***/ }), + /***/ + }, -/***/ 63477: -/***/ ((module) => { + /***/ 15673: /***/ module => { + 'use strict' + module.exports = require('node:events') -"use strict"; -module.exports = require("querystring"); + /***/ + }, -/***/ }), + /***/ 84492: /***/ module => { + 'use strict' + module.exports = require('node:stream') -/***/ 12781: -/***/ ((module) => { + /***/ + }, -"use strict"; -module.exports = require("stream"); + /***/ 47261: /***/ module => { + 'use strict' + module.exports = require('node:util') -/***/ }), + /***/ + }, -/***/ 35356: -/***/ ((module) => { + /***/ 22037: /***/ module => { + 'use strict' + module.exports = require('os') -"use strict"; -module.exports = require("stream/web"); + /***/ + }, -/***/ }), + /***/ 71017: /***/ module => { + 'use strict' + module.exports = require('path') -/***/ 71576: -/***/ ((module) => { + /***/ + }, -"use strict"; -module.exports = require("string_decoder"); + /***/ 4074: /***/ module => { + 'use strict' + module.exports = require('perf_hooks') -/***/ }), + /***/ + }, -/***/ 24404: -/***/ ((module) => { + /***/ 77282: /***/ module => { + 'use strict' + module.exports = require('process') -"use strict"; -module.exports = require("tls"); + /***/ + }, -/***/ }), + /***/ 63477: /***/ module => { + 'use strict' + module.exports = require('querystring') -/***/ 76224: -/***/ ((module) => { + /***/ + }, -"use strict"; -module.exports = require("tty"); + /***/ 12781: /***/ module => { + 'use strict' + module.exports = require('stream') -/***/ }), + /***/ + }, -/***/ 57310: -/***/ ((module) => { + /***/ 35356: /***/ module => { + 'use strict' + module.exports = require('stream/web') -"use strict"; -module.exports = require("url"); + /***/ + }, -/***/ }), + /***/ 71576: /***/ module => { + 'use strict' + module.exports = require('string_decoder') -/***/ 73837: -/***/ ((module) => { + /***/ + }, -"use strict"; -module.exports = require("util"); + /***/ 24404: /***/ module => { + 'use strict' + module.exports = require('tls') -/***/ }), + /***/ + }, -/***/ 29830: -/***/ ((module) => { + /***/ 76224: /***/ module => { + 'use strict' + module.exports = require('tty') -"use strict"; -module.exports = require("util/types"); + /***/ + }, -/***/ }), + /***/ 57310: /***/ module => { + 'use strict' + module.exports = require('url') -/***/ 71267: -/***/ ((module) => { + /***/ + }, -"use strict"; -module.exports = require("worker_threads"); + /***/ 73837: /***/ module => { + 'use strict' + module.exports = require('util') -/***/ }), + /***/ + }, -/***/ 59796: -/***/ ((module) => { + /***/ 29830: /***/ module => { + 'use strict' + module.exports = require('util/types') -"use strict"; -module.exports = require("zlib"); + /***/ + }, -/***/ }), + /***/ 71267: /***/ module => { + 'use strict' + module.exports = require('worker_threads') -/***/ 92960: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + /***/ + }, -"use strict"; + /***/ 59796: /***/ module => { + 'use strict' + module.exports = require('zlib') + /***/ + }, -const WritableStream = (__nccwpck_require__(84492).Writable) -const inherits = (__nccwpck_require__(47261).inherits) + /***/ 92960: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' -const StreamSearch = __nccwpck_require__(51142) + const WritableStream = __nccwpck_require__(84492).Writable + const inherits = __nccwpck_require__(47261).inherits -const PartStream = __nccwpck_require__(81620) -const HeaderParser = __nccwpck_require__(92032) + const StreamSearch = __nccwpck_require__(51142) -const DASH = 45 -const B_ONEDASH = Buffer.from('-') -const B_CRLF = Buffer.from('\r\n') -const EMPTY_FN = function () {} + const PartStream = __nccwpck_require__(81620) + const HeaderParser = __nccwpck_require__(92032) -function Dicer (cfg) { - if (!(this instanceof Dicer)) { return new Dicer(cfg) } - WritableStream.call(this, cfg) + const DASH = 45 + const B_ONEDASH = Buffer.from('-') + const B_CRLF = Buffer.from('\r\n') + const EMPTY_FN = function () {} - if (!cfg || (!cfg.headerFirst && typeof cfg.boundary !== 'string')) { throw new TypeError('Boundary required') } + function Dicer(cfg) { + if (!(this instanceof Dicer)) { + return new Dicer(cfg) + } + WritableStream.call(this, cfg) - if (typeof cfg.boundary === 'string') { this.setBoundary(cfg.boundary) } else { this._bparser = undefined } + if (!cfg || (!cfg.headerFirst && typeof cfg.boundary !== 'string')) { + throw new TypeError('Boundary required') + } - this._headerFirst = cfg.headerFirst + if (typeof cfg.boundary === 'string') { + this.setBoundary(cfg.boundary) + } else { + this._bparser = undefined + } - this._dashes = 0 - this._parts = 0 - this._finished = false - this._realFinish = false - this._isPreamble = true - this._justMatched = false - this._firstWrite = true - this._inHeader = true - this._part = undefined - this._cb = undefined - this._ignoreData = false - this._partOpts = { highWaterMark: cfg.partHwm } - this._pause = false + this._headerFirst = cfg.headerFirst - const self = this - this._hparser = new HeaderParser(cfg) - this._hparser.on('header', function (header) { - self._inHeader = false - self._part.emit('header', header) - }) -} -inherits(Dicer, WritableStream) + this._dashes = 0 + this._parts = 0 + this._finished = false + this._realFinish = false + this._isPreamble = true + this._justMatched = false + this._firstWrite = true + this._inHeader = true + this._part = undefined + this._cb = undefined + this._ignoreData = false + this._partOpts = { highWaterMark: cfg.partHwm } + this._pause = false + + const self = this + this._hparser = new HeaderParser(cfg) + this._hparser.on('header', function (header) { + self._inHeader = false + self._part.emit('header', header) + }) + } + inherits(Dicer, WritableStream) + + Dicer.prototype.emit = function (ev) { + if (ev === 'finish' && !this._realFinish) { + if (!this._finished) { + const self = this + process.nextTick(function () { + self.emit('error', new Error('Unexpected end of multipart data')) + if (self._part && !self._ignoreData) { + const type = self._isPreamble ? 'Preamble' : 'Part' + self._part.emit( + 'error', + new Error( + type + + ' terminated early due to unexpected end of multipart data' + ) + ) + self._part.push(null) + process.nextTick(function () { + self._realFinish = true + self.emit('finish') + self._realFinish = false + }) + return + } + self._realFinish = true + self.emit('finish') + self._realFinish = false + }) + } + } else { + WritableStream.prototype.emit.apply(this, arguments) + } + } -Dicer.prototype.emit = function (ev) { - if (ev === 'finish' && !this._realFinish) { - if (!this._finished) { - const self = this - process.nextTick(function () { - self.emit('error', new Error('Unexpected end of multipart data')) - if (self._part && !self._ignoreData) { - const type = (self._isPreamble ? 'Preamble' : 'Part') - self._part.emit('error', new Error(type + ' terminated early due to unexpected end of multipart data')) - self._part.push(null) - process.nextTick(function () { - self._realFinish = true - self.emit('finish') - self._realFinish = false - }) - return + Dicer.prototype._write = function (data, encoding, cb) { + // ignore unexpected data (e.g. extra trailer data after finished) + if (!this._hparser && !this._bparser) { + return cb() } - self._realFinish = true - self.emit('finish') - self._realFinish = false - }) - } - } else { WritableStream.prototype.emit.apply(this, arguments) } -} -Dicer.prototype._write = function (data, encoding, cb) { - // ignore unexpected data (e.g. extra trailer data after finished) - if (!this._hparser && !this._bparser) { return cb() } + if (this._headerFirst && this._isPreamble) { + if (!this._part) { + this._part = new PartStream(this._partOpts) + if (this.listenerCount('preamble') !== 0) { + this.emit('preamble', this._part) + } else { + this._ignore() + } + } + const r = this._hparser.push(data) + if (!this._inHeader && r !== undefined && r < data.length) { + data = data.slice(r) + } else { + return cb() + } + } - if (this._headerFirst && this._isPreamble) { - if (!this._part) { - this._part = new PartStream(this._partOpts) - if (this.listenerCount('preamble') !== 0) { this.emit('preamble', this._part) } else { this._ignore() } - } - const r = this._hparser.push(data) - if (!this._inHeader && r !== undefined && r < data.length) { data = data.slice(r) } else { return cb() } - } + // allows for "easier" testing + if (this._firstWrite) { + this._bparser.push(B_CRLF) + this._firstWrite = false + } - // allows for "easier" testing - if (this._firstWrite) { - this._bparser.push(B_CRLF) - this._firstWrite = false - } + this._bparser.push(data) - this._bparser.push(data) - - if (this._pause) { this._cb = cb } else { cb() } -} - -Dicer.prototype.reset = function () { - this._part = undefined - this._bparser = undefined - this._hparser = undefined -} - -Dicer.prototype.setBoundary = function (boundary) { - const self = this - this._bparser = new StreamSearch('\r\n--' + boundary) - this._bparser.on('info', function (isMatch, data, start, end) { - self._oninfo(isMatch, data, start, end) - }) -} - -Dicer.prototype._ignore = function () { - if (this._part && !this._ignoreData) { - this._ignoreData = true - this._part.on('error', EMPTY_FN) - // we must perform some kind of read on the stream even though we are - // ignoring the data, otherwise node's Readable stream will not emit 'end' - // after pushing null to the stream - this._part.resume() - } -} + if (this._pause) { + this._cb = cb + } else { + cb() + } + } -Dicer.prototype._oninfo = function (isMatch, data, start, end) { - let buf; const self = this; let i = 0; let r; let shouldWriteMore = true + Dicer.prototype.reset = function () { + this._part = undefined + this._bparser = undefined + this._hparser = undefined + } - if (!this._part && this._justMatched && data) { - while (this._dashes < 2 && (start + i) < end) { - if (data[start + i] === DASH) { - ++i - ++this._dashes - } else { - if (this._dashes) { buf = B_ONEDASH } - this._dashes = 0 - break + Dicer.prototype.setBoundary = function (boundary) { + const self = this + this._bparser = new StreamSearch('\r\n--' + boundary) + this._bparser.on('info', function (isMatch, data, start, end) { + self._oninfo(isMatch, data, start, end) + }) } - } - if (this._dashes === 2) { - if ((start + i) < end && this.listenerCount('trailer') !== 0) { this.emit('trailer', data.slice(start + i, end)) } - this.reset() - this._finished = true - // no more parts will be added - if (self._parts === 0) { - self._realFinish = true - self.emit('finish') - self._realFinish = false + + Dicer.prototype._ignore = function () { + if (this._part && !this._ignoreData) { + this._ignoreData = true + this._part.on('error', EMPTY_FN) + // we must perform some kind of read on the stream even though we are + // ignoring the data, otherwise node's Readable stream will not emit 'end' + // after pushing null to the stream + this._part.resume() + } } - } - if (this._dashes) { return } - } - if (this._justMatched) { this._justMatched = false } - if (!this._part) { - this._part = new PartStream(this._partOpts) - this._part._read = function (n) { - self._unpause() - } - if (this._isPreamble && this.listenerCount('preamble') !== 0) { - this.emit('preamble', this._part) - } else if (this._isPreamble !== true && this.listenerCount('part') !== 0) { - this.emit('part', this._part) - } else { - this._ignore() - } - if (!this._isPreamble) { this._inHeader = true } - } - if (data && start < end && !this._ignoreData) { - if (this._isPreamble || !this._inHeader) { - if (buf) { shouldWriteMore = this._part.push(buf) } - shouldWriteMore = this._part.push(data.slice(start, end)) - if (!shouldWriteMore) { this._pause = true } - } else if (!this._isPreamble && this._inHeader) { - if (buf) { this._hparser.push(buf) } - r = this._hparser.push(data.slice(start, end)) - if (!this._inHeader && r !== undefined && r < end) { this._oninfo(false, data, start + r, end) } - } - } - if (isMatch) { - this._hparser.reset() - if (this._isPreamble) { this._isPreamble = false } else { - if (start !== end) { - ++this._parts - this._part.on('end', function () { - if (--self._parts === 0) { - if (self._finished) { + + Dicer.prototype._oninfo = function (isMatch, data, start, end) { + let buf + const self = this + let i = 0 + let r + let shouldWriteMore = true + + if (!this._part && this._justMatched && data) { + while (this._dashes < 2 && start + i < end) { + if (data[start + i] === DASH) { + ++i + ++this._dashes + } else { + if (this._dashes) { + buf = B_ONEDASH + } + this._dashes = 0 + break + } + } + if (this._dashes === 2) { + if (start + i < end && this.listenerCount('trailer') !== 0) { + this.emit('trailer', data.slice(start + i, end)) + } + this.reset() + this._finished = true + // no more parts will be added + if (self._parts === 0) { self._realFinish = true self.emit('finish') self._realFinish = false + } + } + if (this._dashes) { + return + } + } + if (this._justMatched) { + this._justMatched = false + } + if (!this._part) { + this._part = new PartStream(this._partOpts) + this._part._read = function (n) { + self._unpause() + } + if (this._isPreamble && this.listenerCount('preamble') !== 0) { + this.emit('preamble', this._part) + } else if ( + this._isPreamble !== true && + this.listenerCount('part') !== 0 + ) { + this.emit('part', this._part) + } else { + this._ignore() + } + if (!this._isPreamble) { + this._inHeader = true + } + } + if (data && start < end && !this._ignoreData) { + if (this._isPreamble || !this._inHeader) { + if (buf) { + shouldWriteMore = this._part.push(buf) + } + shouldWriteMore = this._part.push(data.slice(start, end)) + if (!shouldWriteMore) { + this._pause = true + } + } else if (!this._isPreamble && this._inHeader) { + if (buf) { + this._hparser.push(buf) + } + r = this._hparser.push(data.slice(start, end)) + if (!this._inHeader && r !== undefined && r < end) { + this._oninfo(false, data, start + r, end) + } + } + } + if (isMatch) { + this._hparser.reset() + if (this._isPreamble) { + this._isPreamble = false + } else { + if (start !== end) { + ++this._parts + this._part.on('end', function () { + if (--self._parts === 0) { + if (self._finished) { + self._realFinish = true + self.emit('finish') + self._realFinish = false + } else { + self._unpause() + } + } + }) + } + } + this._part.push(null) + this._part = undefined + this._ignoreData = false + this._justMatched = true + this._dashes = 0 + } + } + + Dicer.prototype._unpause = function () { + if (!this._pause) { + return + } + + this._pause = false + if (this._cb) { + const cb = this._cb + this._cb = undefined + cb() + } + } + + module.exports = Dicer + + /***/ + }, + + /***/ 92032: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + const EventEmitter = __nccwpck_require__(15673).EventEmitter + const inherits = __nccwpck_require__(47261).inherits + const getLimit = __nccwpck_require__(21467) + + const StreamSearch = __nccwpck_require__(51142) + + const B_DCRLF = Buffer.from('\r\n\r\n') + const RE_CRLF = /\r\n/g + const RE_HDR = /^([^:]+):[ \t]?([\x00-\xFF]+)?$/ // eslint-disable-line no-control-regex + + function HeaderParser(cfg) { + EventEmitter.call(this) + + cfg = cfg || {} + const self = this + this.nread = 0 + this.maxed = false + this.npairs = 0 + this.maxHeaderPairs = getLimit(cfg, 'maxHeaderPairs', 2000) + this.maxHeaderSize = getLimit(cfg, 'maxHeaderSize', 80 * 1024) + this.buffer = '' + this.header = {} + this.finished = false + this.ss = new StreamSearch(B_DCRLF) + this.ss.on('info', function (isMatch, data, start, end) { + if (data && !self.maxed) { + if (self.nread + end - start >= self.maxHeaderSize) { + end = self.maxHeaderSize - self.nread + start + self.nread = self.maxHeaderSize + self.maxed = true } else { - self._unpause() + self.nread += end - start } + + self.buffer += data.toString('binary', start, end) + } + if (isMatch) { + self._finish() } }) } - } - this._part.push(null) - this._part = undefined - this._ignoreData = false - this._justMatched = true - this._dashes = 0 - } -} + inherits(HeaderParser, EventEmitter) -Dicer.prototype._unpause = function () { - if (!this._pause) { return } + HeaderParser.prototype.push = function (data) { + const r = this.ss.push(data) + if (this.finished) { + return r + } + } - this._pause = false - if (this._cb) { - const cb = this._cb - this._cb = undefined - cb() - } -} + HeaderParser.prototype.reset = function () { + this.finished = false + this.buffer = '' + this.header = {} + this.ss.reset() + } + + HeaderParser.prototype._finish = function () { + if (this.buffer) { + this._parseHeader() + } + this.ss.matches = this.ss.maxMatches + const header = this.header + this.header = {} + this.buffer = '' + this.finished = true + this.nread = this.npairs = 0 + this.maxed = false + this.emit('header', header) + } + + HeaderParser.prototype._parseHeader = function () { + if (this.npairs === this.maxHeaderPairs) { + return + } + + const lines = this.buffer.split(RE_CRLF) + const len = lines.length + let m, h -module.exports = Dicer + for (var i = 0; i < len; ++i) { + // eslint-disable-line no-var + if (lines[i].length === 0) { + continue + } + if (lines[i][0] === '\t' || lines[i][0] === ' ') { + // folded header content + // RFC2822 says to just remove the CRLF and not the whitespace following + // it, so we follow the RFC and include the leading whitespace ... + if (h) { + this.header[h][this.header[h].length - 1] += lines[i] + continue + } + } + const posColon = lines[i].indexOf(':') + if (posColon === -1 || posColon === 0) { + return + } + m = RE_HDR.exec(lines[i]) + h = m[1].toLowerCase() + this.header[h] = this.header[h] || [] + this.header[h].push(m[2] || '') + if (++this.npairs === this.maxHeaderPairs) { + break + } + } + } -/***/ }), + module.exports = HeaderParser -/***/ 92032: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + /***/ + }, -"use strict"; + /***/ 81620: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + const inherits = __nccwpck_require__(47261).inherits + const ReadableStream = __nccwpck_require__(84492).Readable -const EventEmitter = (__nccwpck_require__(15673).EventEmitter) -const inherits = (__nccwpck_require__(47261).inherits) -const getLimit = __nccwpck_require__(21467) + function PartStream(opts) { + ReadableStream.call(this, opts) + } + inherits(PartStream, ReadableStream) -const StreamSearch = __nccwpck_require__(51142) + PartStream.prototype._read = function (n) {} -const B_DCRLF = Buffer.from('\r\n\r\n') -const RE_CRLF = /\r\n/g -const RE_HDR = /^([^:]+):[ \t]?([\x00-\xFF]+)?$/ // eslint-disable-line no-control-regex + module.exports = PartStream -function HeaderParser (cfg) { - EventEmitter.call(this) + /***/ + }, - cfg = cfg || {} - const self = this - this.nread = 0 - this.maxed = false - this.npairs = 0 - this.maxHeaderPairs = getLimit(cfg, 'maxHeaderPairs', 2000) - this.maxHeaderSize = getLimit(cfg, 'maxHeaderSize', 80 * 1024) - this.buffer = '' - this.header = {} - this.finished = false - this.ss = new StreamSearch(B_DCRLF) - this.ss.on('info', function (isMatch, data, start, end) { - if (data && !self.maxed) { - if (self.nread + end - start >= self.maxHeaderSize) { - end = self.maxHeaderSize - self.nread + start - self.nread = self.maxHeaderSize - self.maxed = true - } else { self.nread += (end - start) } + /***/ 51142: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' - self.buffer += data.toString('binary', start, end) - } - if (isMatch) { self._finish() } - }) -} -inherits(HeaderParser, EventEmitter) - -HeaderParser.prototype.push = function (data) { - const r = this.ss.push(data) - if (this.finished) { return r } -} - -HeaderParser.prototype.reset = function () { - this.finished = false - this.buffer = '' - this.header = {} - this.ss.reset() -} - -HeaderParser.prototype._finish = function () { - if (this.buffer) { this._parseHeader() } - this.ss.matches = this.ss.maxMatches - const header = this.header - this.header = {} - this.buffer = '' - this.finished = true - this.nread = this.npairs = 0 - this.maxed = false - this.emit('header', header) -} - -HeaderParser.prototype._parseHeader = function () { - if (this.npairs === this.maxHeaderPairs) { return } - - const lines = this.buffer.split(RE_CRLF) - const len = lines.length - let m, h - - for (var i = 0; i < len; ++i) { // eslint-disable-line no-var - if (lines[i].length === 0) { continue } - if (lines[i][0] === '\t' || lines[i][0] === ' ') { - // folded header content - // RFC2822 says to just remove the CRLF and not the whitespace following - // it, so we follow the RFC and include the leading whitespace ... - if (h) { - this.header[h][this.header[h].length - 1] += lines[i] - continue - } - } + /** + * Copyright Brian White. All rights reserved. + * + * @see https://github.com/mscdex/streamsearch + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + * + * Based heavily on the Streaming Boyer-Moore-Horspool C++ implementation + * by Hongli Lai at: https://github.com/FooBarWidget/boyer-moore-horspool + */ + const EventEmitter = __nccwpck_require__(15673).EventEmitter + const inherits = __nccwpck_require__(47261).inherits - const posColon = lines[i].indexOf(':') - if ( - posColon === -1 || - posColon === 0 - ) { - return - } - m = RE_HDR.exec(lines[i]) - h = m[1].toLowerCase() - this.header[h] = this.header[h] || [] - this.header[h].push((m[2] || '')) - if (++this.npairs === this.maxHeaderPairs) { break } - } -} + function SBMH(needle) { + if (typeof needle === 'string') { + needle = Buffer.from(needle) + } -module.exports = HeaderParser + if (!Buffer.isBuffer(needle)) { + throw new TypeError('The needle has to be a String or a Buffer.') + } + const needleLength = needle.length -/***/ }), + if (needleLength === 0) { + throw new Error('The needle cannot be an empty String/Buffer.') + } -/***/ 81620: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + if (needleLength > 256) { + throw new Error('The needle cannot have a length bigger than 256.') + } -"use strict"; + this.maxMatches = Infinity + this.matches = 0 + this._occ = new Array(256).fill(needleLength) // Initialize occurrence table. + this._lookbehind_size = 0 + this._needle = needle + this._bufpos = 0 -const inherits = (__nccwpck_require__(47261).inherits) -const ReadableStream = (__nccwpck_require__(84492).Readable) + this._lookbehind = Buffer.alloc(needleLength) -function PartStream (opts) { - ReadableStream.call(this, opts) -} -inherits(PartStream, ReadableStream) + // Populate occurrence table with analysis of the needle, + // ignoring last letter. + for (var i = 0; i < needleLength - 1; ++i) { + // eslint-disable-line no-var + this._occ[needle[i]] = needleLength - 1 - i + } + } + inherits(SBMH, EventEmitter) -PartStream.prototype._read = function (n) {} + SBMH.prototype.reset = function () { + this._lookbehind_size = 0 + this.matches = 0 + this._bufpos = 0 + } + + SBMH.prototype.push = function (chunk, pos) { + if (!Buffer.isBuffer(chunk)) { + chunk = Buffer.from(chunk, 'binary') + } + const chlen = chunk.length + this._bufpos = pos || 0 + let r + while (r !== chlen && this.matches < this.maxMatches) { + r = this._sbmh_feed(chunk) + } + return r + } + + SBMH.prototype._sbmh_feed = function (data) { + const len = data.length + const needle = this._needle + const needleLength = needle.length + const lastNeedleChar = needle[needleLength - 1] + + // Positive: points to a position in `data` + // pos == 3 points to data[3] + // Negative: points to a position in the lookbehind buffer + // pos == -2 points to lookbehind[lookbehind_size - 2] + let pos = -this._lookbehind_size + let ch + + if (pos < 0) { + // Lookbehind buffer is not empty. Perform Boyer-Moore-Horspool + // search with character lookup code that considers both the + // lookbehind buffer and the current round's haystack data. + // + // Loop until + // there is a match. + // or until + // we've moved past the position that requires the + // lookbehind buffer. In this case we switch to the + // optimized loop. + // or until + // the character to look at lies outside the haystack. + while (pos < 0 && pos <= len - needleLength) { + ch = this._sbmh_lookup_char(data, pos + needleLength - 1) + + if ( + ch === lastNeedleChar && + this._sbmh_memcmp(data, pos, needleLength - 1) + ) { + this._lookbehind_size = 0 + ++this.matches + this.emit('info', true) + + return (this._bufpos = pos + needleLength) + } + pos += this._occ[ch] + } -module.exports = PartStream + // No match. + + if (pos < 0) { + // There's too few data for Boyer-Moore-Horspool to run, + // so let's use a different algorithm to skip as much as + // we can. + // Forward pos until + // the trailing part of lookbehind + data + // looks like the beginning of the needle + // or until + // pos == 0 + while (pos < 0 && !this._sbmh_memcmp(data, pos, len - pos)) { + ++pos + } + } + if (pos >= 0) { + // Discard lookbehind buffer. + this.emit('info', false, this._lookbehind, 0, this._lookbehind_size) + this._lookbehind_size = 0 + } else { + // Cut off part of the lookbehind buffer that has + // been processed and append the entire haystack + // into it. + const bytesToCutOff = this._lookbehind_size + pos + if (bytesToCutOff > 0) { + // The cut off data is guaranteed not to contain the needle. + this.emit('info', false, this._lookbehind, 0, bytesToCutOff) + } -/***/ }), + this._lookbehind.copy( + this._lookbehind, + 0, + bytesToCutOff, + this._lookbehind_size - bytesToCutOff + ) + this._lookbehind_size -= bytesToCutOff -/***/ 51142: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + data.copy(this._lookbehind, this._lookbehind_size) + this._lookbehind_size += len -"use strict"; + this._bufpos = len + return len + } + } + pos += (pos >= 0) * this._bufpos -/** - * Copyright Brian White. All rights reserved. - * - * @see https://github.com/mscdex/streamsearch - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - * - * Based heavily on the Streaming Boyer-Moore-Horspool C++ implementation - * by Hongli Lai at: https://github.com/FooBarWidget/boyer-moore-horspool - */ -const EventEmitter = (__nccwpck_require__(15673).EventEmitter) -const inherits = (__nccwpck_require__(47261).inherits) + // Lookbehind buffer is now empty. We only need to check if the + // needle is in the haystack. + if (data.indexOf(needle, pos) !== -1) { + pos = data.indexOf(needle, pos) + ++this.matches + if (pos > 0) { + this.emit('info', true, data, this._bufpos, pos) + } else { + this.emit('info', true) + } -function SBMH (needle) { - if (typeof needle === 'string') { - needle = Buffer.from(needle) - } + return (this._bufpos = pos + needleLength) + } else { + pos = len - needleLength + } + + // There was no match. If there's trailing haystack data that we cannot + // match yet using the Boyer-Moore-Horspool algorithm (because the trailing + // data is less than the needle size) then match using a modified + // algorithm that starts matching from the beginning instead of the end. + // Whatever trailing data is left after running this algorithm is added to + // the lookbehind buffer. + while ( + pos < len && + (data[pos] !== needle[0] || + Buffer.compare( + data.subarray(pos, pos + len - pos), + needle.subarray(0, len - pos) + ) !== 0) + ) { + ++pos + } + if (pos < len) { + data.copy(this._lookbehind, 0, pos, pos + (len - pos)) + this._lookbehind_size = len - pos + } - if (!Buffer.isBuffer(needle)) { - throw new TypeError('The needle has to be a String or a Buffer.') - } + // Everything until pos is guaranteed not to contain needle data. + if (pos > 0) { + this.emit('info', false, data, this._bufpos, pos < len ? pos : len) + } - const needleLength = needle.length + this._bufpos = len + return len + } - if (needleLength === 0) { - throw new Error('The needle cannot be an empty String/Buffer.') - } + SBMH.prototype._sbmh_lookup_char = function (data, pos) { + return pos < 0 + ? this._lookbehind[this._lookbehind_size + pos] + : data[pos] + } - if (needleLength > 256) { - throw new Error('The needle cannot have a length bigger than 256.') - } + SBMH.prototype._sbmh_memcmp = function (data, pos, len) { + for (var i = 0; i < len; ++i) { + // eslint-disable-line no-var + if (this._sbmh_lookup_char(data, pos + i) !== this._needle[i]) { + return false + } + } + return true + } - this.maxMatches = Infinity - this.matches = 0 + module.exports = SBMH - this._occ = new Array(256) - .fill(needleLength) // Initialize occurrence table. - this._lookbehind_size = 0 - this._needle = needle - this._bufpos = 0 + /***/ + }, - this._lookbehind = Buffer.alloc(needleLength) + /***/ 50727: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' - // Populate occurrence table with analysis of the needle, - // ignoring last letter. - for (var i = 0; i < needleLength - 1; ++i) { // eslint-disable-line no-var - this._occ[needle[i]] = needleLength - 1 - i - } -} -inherits(SBMH, EventEmitter) - -SBMH.prototype.reset = function () { - this._lookbehind_size = 0 - this.matches = 0 - this._bufpos = 0 -} - -SBMH.prototype.push = function (chunk, pos) { - if (!Buffer.isBuffer(chunk)) { - chunk = Buffer.from(chunk, 'binary') - } - const chlen = chunk.length - this._bufpos = pos || 0 - let r - while (r !== chlen && this.matches < this.maxMatches) { r = this._sbmh_feed(chunk) } - return r -} - -SBMH.prototype._sbmh_feed = function (data) { - const len = data.length - const needle = this._needle - const needleLength = needle.length - const lastNeedleChar = needle[needleLength - 1] - - // Positive: points to a position in `data` - // pos == 3 points to data[3] - // Negative: points to a position in the lookbehind buffer - // pos == -2 points to lookbehind[lookbehind_size - 2] - let pos = -this._lookbehind_size - let ch - - if (pos < 0) { - // Lookbehind buffer is not empty. Perform Boyer-Moore-Horspool - // search with character lookup code that considers both the - // lookbehind buffer and the current round's haystack data. - // - // Loop until - // there is a match. - // or until - // we've moved past the position that requires the - // lookbehind buffer. In this case we switch to the - // optimized loop. - // or until - // the character to look at lies outside the haystack. - while (pos < 0 && pos <= len - needleLength) { - ch = this._sbmh_lookup_char(data, pos + needleLength - 1) + const WritableStream = __nccwpck_require__(84492).Writable + const { inherits } = __nccwpck_require__(47261) + const Dicer = __nccwpck_require__(92960) - if ( - ch === lastNeedleChar && - this._sbmh_memcmp(data, pos, needleLength - 1) - ) { - this._lookbehind_size = 0 - ++this.matches - this.emit('info', true) + const MultipartParser = __nccwpck_require__(32183) + const UrlencodedParser = __nccwpck_require__(78306) + const parseParams = __nccwpck_require__(31854) - return (this._bufpos = pos + needleLength) - } - pos += this._occ[ch] - } + function Busboy(opts) { + if (!(this instanceof Busboy)) { + return new Busboy(opts) + } - // No match. - - if (pos < 0) { - // There's too few data for Boyer-Moore-Horspool to run, - // so let's use a different algorithm to skip as much as - // we can. - // Forward pos until - // the trailing part of lookbehind + data - // looks like the beginning of the needle - // or until - // pos == 0 - while (pos < 0 && !this._sbmh_memcmp(data, pos, len - pos)) { ++pos } - } + if (typeof opts !== 'object') { + throw new TypeError('Busboy expected an options-Object.') + } + if (typeof opts.headers !== 'object') { + throw new TypeError( + 'Busboy expected an options-Object with headers-attribute.' + ) + } + if (typeof opts.headers['content-type'] !== 'string') { + throw new TypeError('Missing Content-Type-header.') + } - if (pos >= 0) { - // Discard lookbehind buffer. - this.emit('info', false, this._lookbehind, 0, this._lookbehind_size) - this._lookbehind_size = 0 - } else { - // Cut off part of the lookbehind buffer that has - // been processed and append the entire haystack - // into it. - const bytesToCutOff = this._lookbehind_size + pos - if (bytesToCutOff > 0) { - // The cut off data is guaranteed not to contain the needle. - this.emit('info', false, this._lookbehind, 0, bytesToCutOff) - } - - this._lookbehind.copy(this._lookbehind, 0, bytesToCutOff, - this._lookbehind_size - bytesToCutOff) - this._lookbehind_size -= bytesToCutOff - - data.copy(this._lookbehind, this._lookbehind_size) - this._lookbehind_size += len - - this._bufpos = len - return len - } - } + const { headers, ...streamOptions } = opts - pos += (pos >= 0) * this._bufpos + this.opts = { + autoDestroy: false, + ...streamOptions + } + WritableStream.call(this, this.opts) - // Lookbehind buffer is now empty. We only need to check if the - // needle is in the haystack. - if (data.indexOf(needle, pos) !== -1) { - pos = data.indexOf(needle, pos) - ++this.matches - if (pos > 0) { this.emit('info', true, data, this._bufpos, pos) } else { this.emit('info', true) } + this._done = false + this._parser = this.getParserByHeaders(headers) + this._finished = false + } + inherits(Busboy, WritableStream) - return (this._bufpos = pos + needleLength) - } else { - pos = len - needleLength - } + Busboy.prototype.emit = function (ev) { + if (ev === 'finish') { + if (!this._done) { + this._parser?.end() + return + } else if (this._finished) { + return + } + this._finished = true + } + WritableStream.prototype.emit.apply(this, arguments) + } - // There was no match. If there's trailing haystack data that we cannot - // match yet using the Boyer-Moore-Horspool algorithm (because the trailing - // data is less than the needle size) then match using a modified - // algorithm that starts matching from the beginning instead of the end. - // Whatever trailing data is left after running this algorithm is added to - // the lookbehind buffer. - while ( - pos < len && - ( - data[pos] !== needle[0] || - ( - (Buffer.compare( - data.subarray(pos, pos + len - pos), - needle.subarray(0, len - pos) - ) !== 0) - ) - ) - ) { - ++pos - } - if (pos < len) { - data.copy(this._lookbehind, 0, pos, pos + (len - pos)) - this._lookbehind_size = len - pos - } + Busboy.prototype.getParserByHeaders = function (headers) { + const parsed = parseParams(headers['content-type']) - // Everything until pos is guaranteed not to contain needle data. - if (pos > 0) { this.emit('info', false, data, this._bufpos, pos < len ? pos : len) } + const cfg = { + defCharset: this.opts.defCharset, + fileHwm: this.opts.fileHwm, + headers, + highWaterMark: this.opts.highWaterMark, + isPartAFile: this.opts.isPartAFile, + limits: this.opts.limits, + parsedConType: parsed, + preservePath: this.opts.preservePath + } - this._bufpos = len - return len -} + if (MultipartParser.detect.test(parsed[0])) { + return new MultipartParser(this, cfg) + } + if (UrlencodedParser.detect.test(parsed[0])) { + return new UrlencodedParser(this, cfg) + } + throw new Error('Unsupported Content-Type.') + } -SBMH.prototype._sbmh_lookup_char = function (data, pos) { - return (pos < 0) - ? this._lookbehind[this._lookbehind_size + pos] - : data[pos] -} + Busboy.prototype._write = function (chunk, encoding, cb) { + this._parser.write(chunk, cb) + } -SBMH.prototype._sbmh_memcmp = function (data, pos, len) { - for (var i = 0; i < len; ++i) { // eslint-disable-line no-var - if (this._sbmh_lookup_char(data, pos + i) !== this._needle[i]) { return false } - } - return true -} + module.exports = Busboy + module.exports['default'] = Busboy + module.exports.Busboy = Busboy -module.exports = SBMH + module.exports.Dicer = Dicer + /***/ + }, -/***/ }), + /***/ 32183: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + + // TODO: + // * support 1 nested multipart level + // (see second multipart example here: + // http://www.w3.org/TR/html401/interact/forms.html#didx-multipartform-data) + // * support limits.fieldNameSize + // -- this will require modifications to utils.parseParams + + const { Readable } = __nccwpck_require__(84492) + const { inherits } = __nccwpck_require__(47261) + + const Dicer = __nccwpck_require__(92960) + + const parseParams = __nccwpck_require__(31854) + const decodeText = __nccwpck_require__(84619) + const basename = __nccwpck_require__(48647) + const getLimit = __nccwpck_require__(21467) + + const RE_BOUNDARY = /^boundary$/i + const RE_FIELD = /^form-data$/i + const RE_CHARSET = /^charset$/i + const RE_FILENAME = /^filename$/i + const RE_NAME = /^name$/i + + Multipart.detect = /^multipart\/form-data/i + function Multipart(boy, cfg) { + let i + let len + const self = this + let boundary + const limits = cfg.limits + const isPartAFile = + cfg.isPartAFile || + ((fieldName, contentType, fileName) => + contentType === 'application/octet-stream' || + fileName !== undefined) + const parsedConType = cfg.parsedConType || [] + const defCharset = cfg.defCharset || 'utf8' + const preservePath = cfg.preservePath + const fileOpts = { highWaterMark: cfg.fileHwm } + + for (i = 0, len = parsedConType.length; i < len; ++i) { + if ( + Array.isArray(parsedConType[i]) && + RE_BOUNDARY.test(parsedConType[i][0]) + ) { + boundary = parsedConType[i][1] + break + } + } -/***/ 50727: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + function checkFinished() { + if (nends === 0 && finished && !boy._done) { + finished = false + self.end() + } + } -"use strict"; + if (typeof boundary !== 'string') { + throw new Error('Multipart: Boundary not found') + } + + const fieldSizeLimit = getLimit(limits, 'fieldSize', 1 * 1024 * 1024) + const fileSizeLimit = getLimit(limits, 'fileSize', Infinity) + const filesLimit = getLimit(limits, 'files', Infinity) + const fieldsLimit = getLimit(limits, 'fields', Infinity) + const partsLimit = getLimit(limits, 'parts', Infinity) + const headerPairsLimit = getLimit(limits, 'headerPairs', 2000) + const headerSizeLimit = getLimit(limits, 'headerSize', 80 * 1024) + + let nfiles = 0 + let nfields = 0 + let nends = 0 + let curFile + let curField + let finished = false + + this._needDrain = false + this._pause = false + this._cb = undefined + this._nparts = 0 + this._boy = boy + + const parserCfg = { + boundary, + maxHeaderPairs: headerPairsLimit, + maxHeaderSize: headerSizeLimit, + partHwm: fileOpts.highWaterMark, + highWaterMark: cfg.highWaterMark + } + + this.parser = new Dicer(parserCfg) + this.parser + .on('drain', function () { + self._needDrain = false + if (self._cb && !self._pause) { + const cb = self._cb + self._cb = undefined + cb() + } + }) + .on('part', function onPart(part) { + if (++self._nparts > partsLimit) { + self.parser.removeListener('part', onPart) + self.parser.on('part', skipPart) + boy.hitPartsLimit = true + boy.emit('partsLimit') + return skipPart(part) + } + // hack because streams2 _always_ doesn't emit 'end' until nextTick, so let + // us emit 'end' early since we know the part has ended if we are already + // seeing the next part + if (curField) { + const field = curField + field.emit('end') + field.removeAllListeners('end') + } -const WritableStream = (__nccwpck_require__(84492).Writable) -const { inherits } = __nccwpck_require__(47261) -const Dicer = __nccwpck_require__(92960) + part + .on('header', function (header) { + let contype + let fieldname + let parsed + let charset + let encoding + let filename + let nsize = 0 + + if (header['content-type']) { + parsed = parseParams(header['content-type'][0]) + if (parsed[0]) { + contype = parsed[0].toLowerCase() + for (i = 0, len = parsed.length; i < len; ++i) { + if (RE_CHARSET.test(parsed[i][0])) { + charset = parsed[i][1].toLowerCase() + break + } + } + } + } -const MultipartParser = __nccwpck_require__(32183) -const UrlencodedParser = __nccwpck_require__(78306) -const parseParams = __nccwpck_require__(31854) + if (contype === undefined) { + contype = 'text/plain' + } + if (charset === undefined) { + charset = defCharset + } -function Busboy (opts) { - if (!(this instanceof Busboy)) { return new Busboy(opts) } + if (header['content-disposition']) { + parsed = parseParams(header['content-disposition'][0]) + if (!RE_FIELD.test(parsed[0])) { + return skipPart(part) + } + for (i = 0, len = parsed.length; i < len; ++i) { + if (RE_NAME.test(parsed[i][0])) { + fieldname = parsed[i][1] + } else if (RE_FILENAME.test(parsed[i][0])) { + filename = parsed[i][1] + if (!preservePath) { + filename = basename(filename) + } + } + } + } else { + return skipPart(part) + } - if (typeof opts !== 'object') { - throw new TypeError('Busboy expected an options-Object.') - } - if (typeof opts.headers !== 'object') { - throw new TypeError('Busboy expected an options-Object with headers-attribute.') - } - if (typeof opts.headers['content-type'] !== 'string') { - throw new TypeError('Missing Content-Type-header.') - } + if (header['content-transfer-encoding']) { + encoding = + header['content-transfer-encoding'][0].toLowerCase() + } else { + encoding = '7bit' + } - const { - headers, - ...streamOptions - } = opts + let onData, onEnd - this.opts = { - autoDestroy: false, - ...streamOptions - } - WritableStream.call(this, this.opts) - - this._done = false - this._parser = this.getParserByHeaders(headers) - this._finished = false -} -inherits(Busboy, WritableStream) - -Busboy.prototype.emit = function (ev) { - if (ev === 'finish') { - if (!this._done) { - this._parser?.end() - return - } else if (this._finished) { - return - } - this._finished = true - } - WritableStream.prototype.emit.apply(this, arguments) -} - -Busboy.prototype.getParserByHeaders = function (headers) { - const parsed = parseParams(headers['content-type']) - - const cfg = { - defCharset: this.opts.defCharset, - fileHwm: this.opts.fileHwm, - headers, - highWaterMark: this.opts.highWaterMark, - isPartAFile: this.opts.isPartAFile, - limits: this.opts.limits, - parsedConType: parsed, - preservePath: this.opts.preservePath - } + if (isPartAFile(fieldname, contype, filename)) { + // file/binary field + if (nfiles === filesLimit) { + if (!boy.hitFilesLimit) { + boy.hitFilesLimit = true + boy.emit('filesLimit') + } + return skipPart(part) + } + + ++nfiles + + if (boy.listenerCount('file') === 0) { + self.parser._ignore() + return + } + + ++nends + const file = new FileStream(fileOpts) + curFile = file + file.on('end', function () { + --nends + self._pause = false + checkFinished() + if (self._cb && !self._needDrain) { + const cb = self._cb + self._cb = undefined + cb() + } + }) + file._read = function (n) { + if (!self._pause) { + return + } + self._pause = false + if (self._cb && !self._needDrain) { + const cb = self._cb + self._cb = undefined + cb() + } + } + boy.emit('file', fieldname, file, filename, encoding, contype) + + onData = function (data) { + if ((nsize += data.length) > fileSizeLimit) { + const extralen = fileSizeLimit - nsize + data.length + if (extralen > 0) { + file.push(data.slice(0, extralen)) + } + file.truncated = true + file.bytesRead = fileSizeLimit + part.removeAllListeners('data') + file.emit('limit') + return + } else if (!file.push(data)) { + self._pause = true + } - if (MultipartParser.detect.test(parsed[0])) { - return new MultipartParser(this, cfg) - } - if (UrlencodedParser.detect.test(parsed[0])) { - return new UrlencodedParser(this, cfg) - } - throw new Error('Unsupported Content-Type.') -} + file.bytesRead = nsize + } + + onEnd = function () { + curFile = undefined + file.push(null) + } + } else { + // non-file field + if (nfields === fieldsLimit) { + if (!boy.hitFieldsLimit) { + boy.hitFieldsLimit = true + boy.emit('fieldsLimit') + } + return skipPart(part) + } + + ++nfields + ++nends + let buffer = '' + let truncated = false + curField = part + + onData = function (data) { + if ((nsize += data.length) > fieldSizeLimit) { + const extralen = fieldSizeLimit - (nsize - data.length) + buffer += data.toString('binary', 0, extralen) + truncated = true + part.removeAllListeners('data') + } else { + buffer += data.toString('binary') + } + } -Busboy.prototype._write = function (chunk, encoding, cb) { - this._parser.write(chunk, cb) -} + onEnd = function () { + curField = undefined + if (buffer.length) { + buffer = decodeText(buffer, 'binary', charset) + } + boy.emit( + 'field', + fieldname, + buffer, + false, + truncated, + encoding, + contype + ) + --nends + checkFinished() + } + } -module.exports = Busboy -module.exports["default"] = Busboy -module.exports.Busboy = Busboy + /* As of node@2efe4ab761666 (v0.10.29+/v0.11.14+), busboy had become + broken. Streams2/streams3 is a huge black box of confusion, but + somehow overriding the sync state seems to fix things again (and still + seems to work for previous node versions). + */ + part._readableState.sync = false -module.exports.Dicer = Dicer + part.on('data', onData) + part.on('end', onEnd) + }) + .on('error', function (err) { + if (curFile) { + curFile.emit('error', err) + } + }) + }) + .on('error', function (err) { + boy.emit('error', err) + }) + .on('finish', function () { + finished = true + checkFinished() + }) + } + Multipart.prototype.write = function (chunk, cb) { + const r = this.parser.write(chunk) + if (r && !this._pause) { + cb() + } else { + this._needDrain = !r + this._cb = cb + } + } -/***/ }), + Multipart.prototype.end = function () { + const self = this -/***/ 32183: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + if (self.parser.writable) { + self.parser.end() + } else if (!self._boy._done) { + process.nextTick(function () { + self._boy._done = true + self._boy.emit('finish') + }) + } + } -"use strict"; + function skipPart(part) { + part.resume() + } + function FileStream(opts) { + Readable.call(this, opts) -// TODO: -// * support 1 nested multipart level -// (see second multipart example here: -// http://www.w3.org/TR/html401/interact/forms.html#didx-multipartform-data) -// * support limits.fieldNameSize -// -- this will require modifications to utils.parseParams + this.bytesRead = 0 -const { Readable } = __nccwpck_require__(84492) -const { inherits } = __nccwpck_require__(47261) + this.truncated = false + } -const Dicer = __nccwpck_require__(92960) + inherits(FileStream, Readable) -const parseParams = __nccwpck_require__(31854) -const decodeText = __nccwpck_require__(84619) -const basename = __nccwpck_require__(48647) -const getLimit = __nccwpck_require__(21467) + FileStream.prototype._read = function (n) {} -const RE_BOUNDARY = /^boundary$/i -const RE_FIELD = /^form-data$/i -const RE_CHARSET = /^charset$/i -const RE_FILENAME = /^filename$/i -const RE_NAME = /^name$/i + module.exports = Multipart -Multipart.detect = /^multipart\/form-data/i -function Multipart (boy, cfg) { - let i - let len - const self = this - let boundary - const limits = cfg.limits - const isPartAFile = cfg.isPartAFile || ((fieldName, contentType, fileName) => (contentType === 'application/octet-stream' || fileName !== undefined)) - const parsedConType = cfg.parsedConType || [] - const defCharset = cfg.defCharset || 'utf8' - const preservePath = cfg.preservePath - const fileOpts = { highWaterMark: cfg.fileHwm } + /***/ + }, - for (i = 0, len = parsedConType.length; i < len; ++i) { - if (Array.isArray(parsedConType[i]) && - RE_BOUNDARY.test(parsedConType[i][0])) { - boundary = parsedConType[i][1] - break - } - } + /***/ 78306: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' - function checkFinished () { - if (nends === 0 && finished && !boy._done) { - finished = false - self.end() - } - } + const Decoder = __nccwpck_require__(27100) + const decodeText = __nccwpck_require__(84619) + const getLimit = __nccwpck_require__(21467) - if (typeof boundary !== 'string') { throw new Error('Multipart: Boundary not found') } - - const fieldSizeLimit = getLimit(limits, 'fieldSize', 1 * 1024 * 1024) - const fileSizeLimit = getLimit(limits, 'fileSize', Infinity) - const filesLimit = getLimit(limits, 'files', Infinity) - const fieldsLimit = getLimit(limits, 'fields', Infinity) - const partsLimit = getLimit(limits, 'parts', Infinity) - const headerPairsLimit = getLimit(limits, 'headerPairs', 2000) - const headerSizeLimit = getLimit(limits, 'headerSize', 80 * 1024) - - let nfiles = 0 - let nfields = 0 - let nends = 0 - let curFile - let curField - let finished = false - - this._needDrain = false - this._pause = false - this._cb = undefined - this._nparts = 0 - this._boy = boy - - const parserCfg = { - boundary, - maxHeaderPairs: headerPairsLimit, - maxHeaderSize: headerSizeLimit, - partHwm: fileOpts.highWaterMark, - highWaterMark: cfg.highWaterMark - } + const RE_CHARSET = /^charset$/i - this.parser = new Dicer(parserCfg) - this.parser.on('drain', function () { - self._needDrain = false - if (self._cb && !self._pause) { - const cb = self._cb - self._cb = undefined - cb() - } - }).on('part', function onPart (part) { - if (++self._nparts > partsLimit) { - self.parser.removeListener('part', onPart) - self.parser.on('part', skipPart) - boy.hitPartsLimit = true - boy.emit('partsLimit') - return skipPart(part) - } + UrlEncoded.detect = /^application\/x-www-form-urlencoded/i + function UrlEncoded(boy, cfg) { + const limits = cfg.limits + const parsedConType = cfg.parsedConType + this.boy = boy - // hack because streams2 _always_ doesn't emit 'end' until nextTick, so let - // us emit 'end' early since we know the part has ended if we are already - // seeing the next part - if (curField) { - const field = curField - field.emit('end') - field.removeAllListeners('end') - } + this.fieldSizeLimit = getLimit(limits, 'fieldSize', 1 * 1024 * 1024) + this.fieldNameSizeLimit = getLimit(limits, 'fieldNameSize', 100) + this.fieldsLimit = getLimit(limits, 'fields', Infinity) - part.on('header', function (header) { - let contype - let fieldname - let parsed - let charset - let encoding - let filename - let nsize = 0 - - if (header['content-type']) { - parsed = parseParams(header['content-type'][0]) - if (parsed[0]) { - contype = parsed[0].toLowerCase() - for (i = 0, len = parsed.length; i < len; ++i) { - if (RE_CHARSET.test(parsed[i][0])) { - charset = parsed[i][1].toLowerCase() - break - } + let charset + for (var i = 0, len = parsedConType.length; i < len; ++i) { + // eslint-disable-line no-var + if ( + Array.isArray(parsedConType[i]) && + RE_CHARSET.test(parsedConType[i][0]) + ) { + charset = parsedConType[i][1].toLowerCase() + break } } - } - - if (contype === undefined) { contype = 'text/plain' } - if (charset === undefined) { charset = defCharset } - if (header['content-disposition']) { - parsed = parseParams(header['content-disposition'][0]) - if (!RE_FIELD.test(parsed[0])) { return skipPart(part) } - for (i = 0, len = parsed.length; i < len; ++i) { - if (RE_NAME.test(parsed[i][0])) { - fieldname = parsed[i][1] - } else if (RE_FILENAME.test(parsed[i][0])) { - filename = parsed[i][1] - if (!preservePath) { filename = basename(filename) } - } + if (charset === undefined) { + charset = cfg.defCharset || 'utf8' } - } else { return skipPart(part) } - - if (header['content-transfer-encoding']) { encoding = header['content-transfer-encoding'][0].toLowerCase() } else { encoding = '7bit' } - let onData, - onEnd + this.decoder = new Decoder() + this.charset = charset + this._fields = 0 + this._state = 'key' + this._checkingBytes = true + this._bytesKey = 0 + this._bytesVal = 0 + this._key = '' + this._val = '' + this._keyTrunc = false + this._valTrunc = false + this._hitLimit = false + } - if (isPartAFile(fieldname, contype, filename)) { - // file/binary field - if (nfiles === filesLimit) { - if (!boy.hitFilesLimit) { - boy.hitFilesLimit = true - boy.emit('filesLimit') + UrlEncoded.prototype.write = function (data, cb) { + if (this._fields === this.fieldsLimit) { + if (!this.boy.hitFieldsLimit) { + this.boy.hitFieldsLimit = true + this.boy.emit('fieldsLimit') } - return skipPart(part) + return cb() } - ++nfiles + let idxeq + let idxamp + let i + let p = 0 + const len = data.length - if (boy.listenerCount('file') === 0) { - self.parser._ignore() - return - } + while (p < len) { + if (this._state === 'key') { + idxeq = idxamp = undefined + for (i = p; i < len; ++i) { + if (!this._checkingBytes) { + ++p + } + if (data[i] === 0x3d /* = */) { + idxeq = i + break + } else if (data[i] === 0x26 /* & */) { + idxamp = i + break + } + if ( + this._checkingBytes && + this._bytesKey === this.fieldNameSizeLimit + ) { + this._hitLimit = true + break + } else if (this._checkingBytes) { + ++this._bytesKey + } + } - ++nends - const file = new FileStream(fileOpts) - curFile = file - file.on('end', function () { - --nends - self._pause = false - checkFinished() - if (self._cb && !self._needDrain) { - const cb = self._cb - self._cb = undefined - cb() - } - }) - file._read = function (n) { - if (!self._pause) { return } - self._pause = false - if (self._cb && !self._needDrain) { - const cb = self._cb - self._cb = undefined - cb() - } - } - boy.emit('file', fieldname, file, filename, encoding, contype) + if (idxeq !== undefined) { + // key with assignment + if (idxeq > p) { + this._key += this.decoder.write( + data.toString('binary', p, idxeq) + ) + } + this._state = 'val' + + this._hitLimit = false + this._checkingBytes = true + this._val = '' + this._bytesVal = 0 + this._valTrunc = false + this.decoder.reset() + + p = idxeq + 1 + } else if (idxamp !== undefined) { + // key with no assignment + ++this._fields + let key + const keyTrunc = this._keyTrunc + if (idxamp > p) { + key = this._key += this.decoder.write( + data.toString('binary', p, idxamp) + ) + } else { + key = this._key + } - onData = function (data) { - if ((nsize += data.length) > fileSizeLimit) { - const extralen = fileSizeLimit - nsize + data.length - if (extralen > 0) { file.push(data.slice(0, extralen)) } - file.truncated = true - file.bytesRead = fileSizeLimit - part.removeAllListeners('data') - file.emit('limit') - return - } else if (!file.push(data)) { self._pause = true } + this._hitLimit = false + this._checkingBytes = true + this._key = '' + this._bytesKey = 0 + this._keyTrunc = false + this.decoder.reset() + + if (key.length) { + this.boy.emit( + 'field', + decodeText(key, 'binary', this.charset), + '', + keyTrunc, + false + ) + } - file.bytesRead = nsize - } + p = idxamp + 1 + if (this._fields === this.fieldsLimit) { + return cb() + } + } else if (this._hitLimit) { + // we may not have hit the actual limit if there are encoded bytes... + if (i > p) { + this._key += this.decoder.write(data.toString('binary', p, i)) + } + p = i + if ( + (this._bytesKey = this._key.length) === this.fieldNameSizeLimit + ) { + // yep, we actually did hit the limit + this._checkingBytes = false + this._keyTrunc = true + } + } else { + if (p < len) { + this._key += this.decoder.write(data.toString('binary', p)) + } + p = len + } + } else { + idxamp = undefined + for (i = p; i < len; ++i) { + if (!this._checkingBytes) { + ++p + } + if (data[i] === 0x26 /* & */) { + idxamp = i + break + } + if ( + this._checkingBytes && + this._bytesVal === this.fieldSizeLimit + ) { + this._hitLimit = true + break + } else if (this._checkingBytes) { + ++this._bytesVal + } + } - onEnd = function () { - curFile = undefined - file.push(null) - } - } else { - // non-file field - if (nfields === fieldsLimit) { - if (!boy.hitFieldsLimit) { - boy.hitFieldsLimit = true - boy.emit('fieldsLimit') + if (idxamp !== undefined) { + ++this._fields + if (idxamp > p) { + this._val += this.decoder.write( + data.toString('binary', p, idxamp) + ) + } + this.boy.emit( + 'field', + decodeText(this._key, 'binary', this.charset), + decodeText(this._val, 'binary', this.charset), + this._keyTrunc, + this._valTrunc + ) + this._state = 'key' + + this._hitLimit = false + this._checkingBytes = true + this._key = '' + this._bytesKey = 0 + this._keyTrunc = false + this.decoder.reset() + + p = idxamp + 1 + if (this._fields === this.fieldsLimit) { + return cb() + } + } else if (this._hitLimit) { + // we may not have hit the actual limit if there are encoded bytes... + if (i > p) { + this._val += this.decoder.write(data.toString('binary', p, i)) + } + p = i + if ( + (this._val === '' && this.fieldSizeLimit === 0) || + (this._bytesVal = this._val.length) === this.fieldSizeLimit + ) { + // yep, we actually did hit the limit + this._checkingBytes = false + this._valTrunc = true + } + } else { + if (p < len) { + this._val += this.decoder.write(data.toString('binary', p)) + } + p = len + } } - return skipPart(part) } + cb() + } - ++nfields - ++nends - let buffer = '' - let truncated = false - curField = part - - onData = function (data) { - if ((nsize += data.length) > fieldSizeLimit) { - const extralen = (fieldSizeLimit - (nsize - data.length)) - buffer += data.toString('binary', 0, extralen) - truncated = true - part.removeAllListeners('data') - } else { buffer += data.toString('binary') } + UrlEncoded.prototype.end = function () { + if (this.boy._done) { + return } - onEnd = function () { - curField = undefined - if (buffer.length) { buffer = decodeText(buffer, 'binary', charset) } - boy.emit('field', fieldname, buffer, false, truncated, encoding, contype) - --nends - checkFinished() + if (this._state === 'key' && this._key.length > 0) { + this.boy.emit( + 'field', + decodeText(this._key, 'binary', this.charset), + '', + this._keyTrunc, + false + ) + } else if (this._state === 'val') { + this.boy.emit( + 'field', + decodeText(this._key, 'binary', this.charset), + decodeText(this._val, 'binary', this.charset), + this._keyTrunc, + this._valTrunc + ) } + this.boy._done = true + this.boy.emit('finish') } - /* As of node@2efe4ab761666 (v0.10.29+/v0.11.14+), busboy had become - broken. Streams2/streams3 is a huge black box of confusion, but - somehow overriding the sync state seems to fix things again (and still - seems to work for previous node versions). - */ - part._readableState.sync = false - - part.on('data', onData) - part.on('end', onEnd) - }).on('error', function (err) { - if (curFile) { curFile.emit('error', err) } - }) - }).on('error', function (err) { - boy.emit('error', err) - }).on('finish', function () { - finished = true - checkFinished() - }) -} - -Multipart.prototype.write = function (chunk, cb) { - const r = this.parser.write(chunk) - if (r && !this._pause) { - cb() - } else { - this._needDrain = !r - this._cb = cb - } -} - -Multipart.prototype.end = function () { - const self = this - - if (self.parser.writable) { - self.parser.end() - } else if (!self._boy._done) { - process.nextTick(function () { - self._boy._done = true - self._boy.emit('finish') - }) - } -} - -function skipPart (part) { - part.resume() -} + module.exports = UrlEncoded -function FileStream (opts) { - Readable.call(this, opts) + /***/ + }, - this.bytesRead = 0 + /***/ 27100: /***/ module => { + 'use strict' - this.truncated = false -} + const RE_PLUS = /\+/g -inherits(FileStream, Readable) + const HEX = [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0 + ] -FileStream.prototype._read = function (n) {} + function Decoder() { + this.buffer = undefined + } + Decoder.prototype.write = function (str) { + // Replace '+' with ' ' before decoding + str = str.replace(RE_PLUS, ' ') + let res = '' + let i = 0 + let p = 0 + const len = str.length + for (; i < len; ++i) { + if (this.buffer !== undefined) { + if (!HEX[str.charCodeAt(i)]) { + res += '%' + this.buffer + this.buffer = undefined + --i // retry character + } else { + this.buffer += str[i] + ++p + if (this.buffer.length === 2) { + res += String.fromCharCode(parseInt(this.buffer, 16)) + this.buffer = undefined + } + } + } else if (str[i] === '%') { + if (i > p) { + res += str.substring(p, i) + p = i + } + this.buffer = '' + ++p + } + } + if (p < len && this.buffer === undefined) { + res += str.substring(p) + } + return res + } + Decoder.prototype.reset = function () { + this.buffer = undefined + } -module.exports = Multipart + module.exports = Decoder + /***/ + }, -/***/ }), + /***/ 48647: /***/ module => { + 'use strict' -/***/ 78306: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + module.exports = function basename(path) { + if (typeof path !== 'string') { + return '' + } + for (var i = path.length - 1; i >= 0; --i) { + // eslint-disable-line no-var + switch (path.charCodeAt(i)) { + case 0x2f: // '/' + case 0x5c: // '\' + path = path.slice(i + 1) + return path === '..' || path === '.' ? '' : path + } + } + return path === '..' || path === '.' ? '' : path + } -"use strict"; + /***/ + }, + /***/ 84619: /***/ function (module) { + 'use strict' -const Decoder = __nccwpck_require__(27100) -const decodeText = __nccwpck_require__(84619) -const getLimit = __nccwpck_require__(21467) + // Node has always utf-8 + const utf8Decoder = new TextDecoder('utf-8') + const textDecoders = new Map([ + ['utf-8', utf8Decoder], + ['utf8', utf8Decoder] + ]) -const RE_CHARSET = /^charset$/i + function getDecoder(charset) { + let lc + while (true) { + switch (charset) { + case 'utf-8': + case 'utf8': + return decoders.utf8 + case 'latin1': + case 'ascii': // TODO: Make these a separate, strict decoder? + case 'us-ascii': + case 'iso-8859-1': + case 'iso8859-1': + case 'iso88591': + case 'iso_8859-1': + case 'windows-1252': + case 'iso_8859-1:1987': + case 'cp1252': + case 'x-cp1252': + return decoders.latin1 + case 'utf16le': + case 'utf-16le': + case 'ucs2': + case 'ucs-2': + return decoders.utf16le + case 'base64': + return decoders.base64 + default: + if (lc === undefined) { + lc = true + charset = charset.toLowerCase() + continue + } + return decoders.other.bind(charset) + } + } + } -UrlEncoded.detect = /^application\/x-www-form-urlencoded/i -function UrlEncoded (boy, cfg) { - const limits = cfg.limits - const parsedConType = cfg.parsedConType - this.boy = boy + const decoders = { + utf8: (data, sourceEncoding) => { + if (data.length === 0) { + return '' + } + if (typeof data === 'string') { + data = Buffer.from(data, sourceEncoding) + } + return data.utf8Slice(0, data.length) + }, - this.fieldSizeLimit = getLimit(limits, 'fieldSize', 1 * 1024 * 1024) - this.fieldNameSizeLimit = getLimit(limits, 'fieldNameSize', 100) - this.fieldsLimit = getLimit(limits, 'fields', Infinity) + latin1: (data, sourceEncoding) => { + if (data.length === 0) { + return '' + } + if (typeof data === 'string') { + return data + } + return data.latin1Slice(0, data.length) + }, - let charset - for (var i = 0, len = parsedConType.length; i < len; ++i) { // eslint-disable-line no-var - if (Array.isArray(parsedConType[i]) && - RE_CHARSET.test(parsedConType[i][0])) { - charset = parsedConType[i][1].toLowerCase() - break - } - } + utf16le: (data, sourceEncoding) => { + if (data.length === 0) { + return '' + } + if (typeof data === 'string') { + data = Buffer.from(data, sourceEncoding) + } + return data.ucs2Slice(0, data.length) + }, - if (charset === undefined) { charset = cfg.defCharset || 'utf8' } - - this.decoder = new Decoder() - this.charset = charset - this._fields = 0 - this._state = 'key' - this._checkingBytes = true - this._bytesKey = 0 - this._bytesVal = 0 - this._key = '' - this._val = '' - this._keyTrunc = false - this._valTrunc = false - this._hitLimit = false -} - -UrlEncoded.prototype.write = function (data, cb) { - if (this._fields === this.fieldsLimit) { - if (!this.boy.hitFieldsLimit) { - this.boy.hitFieldsLimit = true - this.boy.emit('fieldsLimit') - } - return cb() - } + base64: (data, sourceEncoding) => { + if (data.length === 0) { + return '' + } + if (typeof data === 'string') { + data = Buffer.from(data, sourceEncoding) + } + return data.base64Slice(0, data.length) + }, - let idxeq; let idxamp; let i; let p = 0; const len = data.length + other: (data, sourceEncoding) => { + if (data.length === 0) { + return '' + } + if (typeof data === 'string') { + data = Buffer.from(data, sourceEncoding) + } - while (p < len) { - if (this._state === 'key') { - idxeq = idxamp = undefined - for (i = p; i < len; ++i) { - if (!this._checkingBytes) { ++p } - if (data[i] === 0x3D/* = */) { - idxeq = i - break - } else if (data[i] === 0x26/* & */) { - idxamp = i - break + if (textDecoders.has(this.toString())) { + try { + return textDecoders.get(this).decode(data) + } catch {} + } + return typeof data === 'string' ? data : data.toString() } - if (this._checkingBytes && this._bytesKey === this.fieldNameSizeLimit) { - this._hitLimit = true - break - } else if (this._checkingBytes) { ++this._bytesKey } } - if (idxeq !== undefined) { - // key with assignment - if (idxeq > p) { this._key += this.decoder.write(data.toString('binary', p, idxeq)) } - this._state = 'val' + function decodeText(text, sourceEncoding, destEncoding) { + if (text) { + return getDecoder(destEncoding)(text, sourceEncoding) + } + return text + } - this._hitLimit = false - this._checkingBytes = true - this._val = '' - this._bytesVal = 0 - this._valTrunc = false - this.decoder.reset() + module.exports = decodeText - p = idxeq + 1 - } else if (idxamp !== undefined) { - // key with no assignment - ++this._fields - let key; const keyTrunc = this._keyTrunc - if (idxamp > p) { key = (this._key += this.decoder.write(data.toString('binary', p, idxamp))) } else { key = this._key } + /***/ + }, - this._hitLimit = false - this._checkingBytes = true - this._key = '' - this._bytesKey = 0 - this._keyTrunc = false - this.decoder.reset() + /***/ 21467: /***/ module => { + 'use strict' - if (key.length) { - this.boy.emit('field', decodeText(key, 'binary', this.charset), - '', - keyTrunc, - false) + module.exports = function getLimit(limits, name, defaultLimit) { + if (!limits || limits[name] === undefined || limits[name] === null) { + return defaultLimit } - p = idxamp + 1 - if (this._fields === this.fieldsLimit) { return cb() } - } else if (this._hitLimit) { - // we may not have hit the actual limit if there are encoded bytes... - if (i > p) { this._key += this.decoder.write(data.toString('binary', p, i)) } - p = i - if ((this._bytesKey = this._key.length) === this.fieldNameSizeLimit) { - // yep, we actually did hit the limit - this._checkingBytes = false - this._keyTrunc = true + if (typeof limits[name] !== 'number' || isNaN(limits[name])) { + throw new TypeError('Limit ' + name + ' is not a valid number') } - } else { - if (p < len) { this._key += this.decoder.write(data.toString('binary', p)) } - p = len - } - } else { - idxamp = undefined - for (i = p; i < len; ++i) { - if (!this._checkingBytes) { ++p } - if (data[i] === 0x26/* & */) { - idxamp = i - break - } - if (this._checkingBytes && this._bytesVal === this.fieldSizeLimit) { - this._hitLimit = true - break - } else if (this._checkingBytes) { ++this._bytesVal } + + return limits[name] } - if (idxamp !== undefined) { - ++this._fields - if (idxamp > p) { this._val += this.decoder.write(data.toString('binary', p, idxamp)) } - this.boy.emit('field', decodeText(this._key, 'binary', this.charset), - decodeText(this._val, 'binary', this.charset), - this._keyTrunc, - this._valTrunc) - this._state = 'key' + /***/ + }, - this._hitLimit = false - this._checkingBytes = true - this._key = '' - this._bytesKey = 0 - this._keyTrunc = false - this.decoder.reset() - - p = idxamp + 1 - if (this._fields === this.fieldsLimit) { return cb() } - } else if (this._hitLimit) { - // we may not have hit the actual limit if there are encoded bytes... - if (i > p) { this._val += this.decoder.write(data.toString('binary', p, i)) } - p = i - if ((this._val === '' && this.fieldSizeLimit === 0) || - (this._bytesVal = this._val.length) === this.fieldSizeLimit) { - // yep, we actually did hit the limit - this._checkingBytes = false - this._valTrunc = true + /***/ 31854: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + 'use strict' + /* eslint-disable object-property-newline */ + + const decodeText = __nccwpck_require__(84619) + + const RE_ENCODED = /%[a-fA-F0-9][a-fA-F0-9]/g + + const EncodedLookup = { + '%00': '\x00', + '%01': '\x01', + '%02': '\x02', + '%03': '\x03', + '%04': '\x04', + '%05': '\x05', + '%06': '\x06', + '%07': '\x07', + '%08': '\x08', + '%09': '\x09', + '%0a': '\x0a', + '%0A': '\x0a', + '%0b': '\x0b', + '%0B': '\x0b', + '%0c': '\x0c', + '%0C': '\x0c', + '%0d': '\x0d', + '%0D': '\x0d', + '%0e': '\x0e', + '%0E': '\x0e', + '%0f': '\x0f', + '%0F': '\x0f', + '%10': '\x10', + '%11': '\x11', + '%12': '\x12', + '%13': '\x13', + '%14': '\x14', + '%15': '\x15', + '%16': '\x16', + '%17': '\x17', + '%18': '\x18', + '%19': '\x19', + '%1a': '\x1a', + '%1A': '\x1a', + '%1b': '\x1b', + '%1B': '\x1b', + '%1c': '\x1c', + '%1C': '\x1c', + '%1d': '\x1d', + '%1D': '\x1d', + '%1e': '\x1e', + '%1E': '\x1e', + '%1f': '\x1f', + '%1F': '\x1f', + '%20': '\x20', + '%21': '\x21', + '%22': '\x22', + '%23': '\x23', + '%24': '\x24', + '%25': '\x25', + '%26': '\x26', + '%27': '\x27', + '%28': '\x28', + '%29': '\x29', + '%2a': '\x2a', + '%2A': '\x2a', + '%2b': '\x2b', + '%2B': '\x2b', + '%2c': '\x2c', + '%2C': '\x2c', + '%2d': '\x2d', + '%2D': '\x2d', + '%2e': '\x2e', + '%2E': '\x2e', + '%2f': '\x2f', + '%2F': '\x2f', + '%30': '\x30', + '%31': '\x31', + '%32': '\x32', + '%33': '\x33', + '%34': '\x34', + '%35': '\x35', + '%36': '\x36', + '%37': '\x37', + '%38': '\x38', + '%39': '\x39', + '%3a': '\x3a', + '%3A': '\x3a', + '%3b': '\x3b', + '%3B': '\x3b', + '%3c': '\x3c', + '%3C': '\x3c', + '%3d': '\x3d', + '%3D': '\x3d', + '%3e': '\x3e', + '%3E': '\x3e', + '%3f': '\x3f', + '%3F': '\x3f', + '%40': '\x40', + '%41': '\x41', + '%42': '\x42', + '%43': '\x43', + '%44': '\x44', + '%45': '\x45', + '%46': '\x46', + '%47': '\x47', + '%48': '\x48', + '%49': '\x49', + '%4a': '\x4a', + '%4A': '\x4a', + '%4b': '\x4b', + '%4B': '\x4b', + '%4c': '\x4c', + '%4C': '\x4c', + '%4d': '\x4d', + '%4D': '\x4d', + '%4e': '\x4e', + '%4E': '\x4e', + '%4f': '\x4f', + '%4F': '\x4f', + '%50': '\x50', + '%51': '\x51', + '%52': '\x52', + '%53': '\x53', + '%54': '\x54', + '%55': '\x55', + '%56': '\x56', + '%57': '\x57', + '%58': '\x58', + '%59': '\x59', + '%5a': '\x5a', + '%5A': '\x5a', + '%5b': '\x5b', + '%5B': '\x5b', + '%5c': '\x5c', + '%5C': '\x5c', + '%5d': '\x5d', + '%5D': '\x5d', + '%5e': '\x5e', + '%5E': '\x5e', + '%5f': '\x5f', + '%5F': '\x5f', + '%60': '\x60', + '%61': '\x61', + '%62': '\x62', + '%63': '\x63', + '%64': '\x64', + '%65': '\x65', + '%66': '\x66', + '%67': '\x67', + '%68': '\x68', + '%69': '\x69', + '%6a': '\x6a', + '%6A': '\x6a', + '%6b': '\x6b', + '%6B': '\x6b', + '%6c': '\x6c', + '%6C': '\x6c', + '%6d': '\x6d', + '%6D': '\x6d', + '%6e': '\x6e', + '%6E': '\x6e', + '%6f': '\x6f', + '%6F': '\x6f', + '%70': '\x70', + '%71': '\x71', + '%72': '\x72', + '%73': '\x73', + '%74': '\x74', + '%75': '\x75', + '%76': '\x76', + '%77': '\x77', + '%78': '\x78', + '%79': '\x79', + '%7a': '\x7a', + '%7A': '\x7a', + '%7b': '\x7b', + '%7B': '\x7b', + '%7c': '\x7c', + '%7C': '\x7c', + '%7d': '\x7d', + '%7D': '\x7d', + '%7e': '\x7e', + '%7E': '\x7e', + '%7f': '\x7f', + '%7F': '\x7f', + '%80': '\x80', + '%81': '\x81', + '%82': '\x82', + '%83': '\x83', + '%84': '\x84', + '%85': '\x85', + '%86': '\x86', + '%87': '\x87', + '%88': '\x88', + '%89': '\x89', + '%8a': '\x8a', + '%8A': '\x8a', + '%8b': '\x8b', + '%8B': '\x8b', + '%8c': '\x8c', + '%8C': '\x8c', + '%8d': '\x8d', + '%8D': '\x8d', + '%8e': '\x8e', + '%8E': '\x8e', + '%8f': '\x8f', + '%8F': '\x8f', + '%90': '\x90', + '%91': '\x91', + '%92': '\x92', + '%93': '\x93', + '%94': '\x94', + '%95': '\x95', + '%96': '\x96', + '%97': '\x97', + '%98': '\x98', + '%99': '\x99', + '%9a': '\x9a', + '%9A': '\x9a', + '%9b': '\x9b', + '%9B': '\x9b', + '%9c': '\x9c', + '%9C': '\x9c', + '%9d': '\x9d', + '%9D': '\x9d', + '%9e': '\x9e', + '%9E': '\x9e', + '%9f': '\x9f', + '%9F': '\x9f', + '%a0': '\xa0', + '%A0': '\xa0', + '%a1': '\xa1', + '%A1': '\xa1', + '%a2': '\xa2', + '%A2': '\xa2', + '%a3': '\xa3', + '%A3': '\xa3', + '%a4': '\xa4', + '%A4': '\xa4', + '%a5': '\xa5', + '%A5': '\xa5', + '%a6': '\xa6', + '%A6': '\xa6', + '%a7': '\xa7', + '%A7': '\xa7', + '%a8': '\xa8', + '%A8': '\xa8', + '%a9': '\xa9', + '%A9': '\xa9', + '%aa': '\xaa', + '%Aa': '\xaa', + '%aA': '\xaa', + '%AA': '\xaa', + '%ab': '\xab', + '%Ab': '\xab', + '%aB': '\xab', + '%AB': '\xab', + '%ac': '\xac', + '%Ac': '\xac', + '%aC': '\xac', + '%AC': '\xac', + '%ad': '\xad', + '%Ad': '\xad', + '%aD': '\xad', + '%AD': '\xad', + '%ae': '\xae', + '%Ae': '\xae', + '%aE': '\xae', + '%AE': '\xae', + '%af': '\xaf', + '%Af': '\xaf', + '%aF': '\xaf', + '%AF': '\xaf', + '%b0': '\xb0', + '%B0': '\xb0', + '%b1': '\xb1', + '%B1': '\xb1', + '%b2': '\xb2', + '%B2': '\xb2', + '%b3': '\xb3', + '%B3': '\xb3', + '%b4': '\xb4', + '%B4': '\xb4', + '%b5': '\xb5', + '%B5': '\xb5', + '%b6': '\xb6', + '%B6': '\xb6', + '%b7': '\xb7', + '%B7': '\xb7', + '%b8': '\xb8', + '%B8': '\xb8', + '%b9': '\xb9', + '%B9': '\xb9', + '%ba': '\xba', + '%Ba': '\xba', + '%bA': '\xba', + '%BA': '\xba', + '%bb': '\xbb', + '%Bb': '\xbb', + '%bB': '\xbb', + '%BB': '\xbb', + '%bc': '\xbc', + '%Bc': '\xbc', + '%bC': '\xbc', + '%BC': '\xbc', + '%bd': '\xbd', + '%Bd': '\xbd', + '%bD': '\xbd', + '%BD': '\xbd', + '%be': '\xbe', + '%Be': '\xbe', + '%bE': '\xbe', + '%BE': '\xbe', + '%bf': '\xbf', + '%Bf': '\xbf', + '%bF': '\xbf', + '%BF': '\xbf', + '%c0': '\xc0', + '%C0': '\xc0', + '%c1': '\xc1', + '%C1': '\xc1', + '%c2': '\xc2', + '%C2': '\xc2', + '%c3': '\xc3', + '%C3': '\xc3', + '%c4': '\xc4', + '%C4': '\xc4', + '%c5': '\xc5', + '%C5': '\xc5', + '%c6': '\xc6', + '%C6': '\xc6', + '%c7': '\xc7', + '%C7': '\xc7', + '%c8': '\xc8', + '%C8': '\xc8', + '%c9': '\xc9', + '%C9': '\xc9', + '%ca': '\xca', + '%Ca': '\xca', + '%cA': '\xca', + '%CA': '\xca', + '%cb': '\xcb', + '%Cb': '\xcb', + '%cB': '\xcb', + '%CB': '\xcb', + '%cc': '\xcc', + '%Cc': '\xcc', + '%cC': '\xcc', + '%CC': '\xcc', + '%cd': '\xcd', + '%Cd': '\xcd', + '%cD': '\xcd', + '%CD': '\xcd', + '%ce': '\xce', + '%Ce': '\xce', + '%cE': '\xce', + '%CE': '\xce', + '%cf': '\xcf', + '%Cf': '\xcf', + '%cF': '\xcf', + '%CF': '\xcf', + '%d0': '\xd0', + '%D0': '\xd0', + '%d1': '\xd1', + '%D1': '\xd1', + '%d2': '\xd2', + '%D2': '\xd2', + '%d3': '\xd3', + '%D3': '\xd3', + '%d4': '\xd4', + '%D4': '\xd4', + '%d5': '\xd5', + '%D5': '\xd5', + '%d6': '\xd6', + '%D6': '\xd6', + '%d7': '\xd7', + '%D7': '\xd7', + '%d8': '\xd8', + '%D8': '\xd8', + '%d9': '\xd9', + '%D9': '\xd9', + '%da': '\xda', + '%Da': '\xda', + '%dA': '\xda', + '%DA': '\xda', + '%db': '\xdb', + '%Db': '\xdb', + '%dB': '\xdb', + '%DB': '\xdb', + '%dc': '\xdc', + '%Dc': '\xdc', + '%dC': '\xdc', + '%DC': '\xdc', + '%dd': '\xdd', + '%Dd': '\xdd', + '%dD': '\xdd', + '%DD': '\xdd', + '%de': '\xde', + '%De': '\xde', + '%dE': '\xde', + '%DE': '\xde', + '%df': '\xdf', + '%Df': '\xdf', + '%dF': '\xdf', + '%DF': '\xdf', + '%e0': '\xe0', + '%E0': '\xe0', + '%e1': '\xe1', + '%E1': '\xe1', + '%e2': '\xe2', + '%E2': '\xe2', + '%e3': '\xe3', + '%E3': '\xe3', + '%e4': '\xe4', + '%E4': '\xe4', + '%e5': '\xe5', + '%E5': '\xe5', + '%e6': '\xe6', + '%E6': '\xe6', + '%e7': '\xe7', + '%E7': '\xe7', + '%e8': '\xe8', + '%E8': '\xe8', + '%e9': '\xe9', + '%E9': '\xe9', + '%ea': '\xea', + '%Ea': '\xea', + '%eA': '\xea', + '%EA': '\xea', + '%eb': '\xeb', + '%Eb': '\xeb', + '%eB': '\xeb', + '%EB': '\xeb', + '%ec': '\xec', + '%Ec': '\xec', + '%eC': '\xec', + '%EC': '\xec', + '%ed': '\xed', + '%Ed': '\xed', + '%eD': '\xed', + '%ED': '\xed', + '%ee': '\xee', + '%Ee': '\xee', + '%eE': '\xee', + '%EE': '\xee', + '%ef': '\xef', + '%Ef': '\xef', + '%eF': '\xef', + '%EF': '\xef', + '%f0': '\xf0', + '%F0': '\xf0', + '%f1': '\xf1', + '%F1': '\xf1', + '%f2': '\xf2', + '%F2': '\xf2', + '%f3': '\xf3', + '%F3': '\xf3', + '%f4': '\xf4', + '%F4': '\xf4', + '%f5': '\xf5', + '%F5': '\xf5', + '%f6': '\xf6', + '%F6': '\xf6', + '%f7': '\xf7', + '%F7': '\xf7', + '%f8': '\xf8', + '%F8': '\xf8', + '%f9': '\xf9', + '%F9': '\xf9', + '%fa': '\xfa', + '%Fa': '\xfa', + '%fA': '\xfa', + '%FA': '\xfa', + '%fb': '\xfb', + '%Fb': '\xfb', + '%fB': '\xfb', + '%FB': '\xfb', + '%fc': '\xfc', + '%Fc': '\xfc', + '%fC': '\xfc', + '%FC': '\xfc', + '%fd': '\xfd', + '%Fd': '\xfd', + '%fD': '\xfd', + '%FD': '\xfd', + '%fe': '\xfe', + '%Fe': '\xfe', + '%fE': '\xfe', + '%FE': '\xfe', + '%ff': '\xff', + '%Ff': '\xff', + '%fF': '\xff', + '%FF': '\xff' + } + + function encodedReplacer(match) { + return EncodedLookup[match] + } + + const STATE_KEY = 0 + const STATE_VALUE = 1 + const STATE_CHARSET = 2 + const STATE_LANG = 3 + + function parseParams(str) { + const res = [] + let state = STATE_KEY + let charset = '' + let inquote = false + let escaping = false + let p = 0 + let tmp = '' + const len = str.length + + for (var i = 0; i < len; ++i) { + // eslint-disable-line no-var + const char = str[i] + if (char === '\\' && inquote) { + if (escaping) { + escaping = false + } else { + escaping = true + continue + } + } else if (char === '"') { + if (!escaping) { + if (inquote) { + inquote = false + state = STATE_KEY + } else { + inquote = true + } + continue + } else { + escaping = false + } + } else { + if (escaping && inquote) { + tmp += '\\' + } + escaping = false + if ( + (state === STATE_CHARSET || state === STATE_LANG) && + char === "'" + ) { + if (state === STATE_CHARSET) { + state = STATE_LANG + charset = tmp.substring(1) + } else { + state = STATE_VALUE + } + tmp = '' + continue + } else if ( + state === STATE_KEY && + (char === '*' || char === '=') && + res.length + ) { + state = char === '*' ? STATE_CHARSET : STATE_VALUE + res[p] = [tmp, undefined] + tmp = '' + continue + } else if (!inquote && char === ';') { + state = STATE_KEY + if (charset) { + if (tmp.length) { + tmp = decodeText( + tmp.replace(RE_ENCODED, encodedReplacer), + 'binary', + charset + ) + } + charset = '' + } else if (tmp.length) { + tmp = decodeText(tmp, 'binary', 'utf8') + } + if (res[p] === undefined) { + res[p] = tmp + } else { + res[p][1] = tmp + } + tmp = '' + ++p + continue + } else if (!inquote && (char === ' ' || char === '\t')) { + continue + } + } + tmp += char } - } else { - if (p < len) { this._val += this.decoder.write(data.toString('binary', p)) } - p = len - } - } - } - cb() -} - -UrlEncoded.prototype.end = function () { - if (this.boy._done) { return } - - if (this._state === 'key' && this._key.length > 0) { - this.boy.emit('field', decodeText(this._key, 'binary', this.charset), - '', - this._keyTrunc, - false) - } else if (this._state === 'val') { - this.boy.emit('field', decodeText(this._key, 'binary', this.charset), - decodeText(this._val, 'binary', this.charset), - this._keyTrunc, - this._valTrunc) - } - this.boy._done = true - this.boy.emit('finish') -} - -module.exports = UrlEncoded - - -/***/ }), - -/***/ 27100: -/***/ ((module) => { - -"use strict"; - - -const RE_PLUS = /\+/g - -const HEX = [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, - 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -] - -function Decoder () { - this.buffer = undefined -} -Decoder.prototype.write = function (str) { - // Replace '+' with ' ' before decoding - str = str.replace(RE_PLUS, ' ') - let res = '' - let i = 0; let p = 0; const len = str.length - for (; i < len; ++i) { - if (this.buffer !== undefined) { - if (!HEX[str.charCodeAt(i)]) { - res += '%' + this.buffer - this.buffer = undefined - --i // retry character - } else { - this.buffer += str[i] - ++p - if (this.buffer.length === 2) { - res += String.fromCharCode(parseInt(this.buffer, 16)) - this.buffer = undefined + if (charset && tmp.length) { + tmp = decodeText( + tmp.replace(RE_ENCODED, encodedReplacer), + 'binary', + charset + ) + } else if (tmp) { + tmp = decodeText(tmp, 'binary', 'utf8') } - } - } else if (str[i] === '%') { - if (i > p) { - res += str.substring(p, i) - p = i - } - this.buffer = '' - ++p - } - } - if (p < len && this.buffer === undefined) { res += str.substring(p) } - return res -} -Decoder.prototype.reset = function () { - this.buffer = undefined -} - -module.exports = Decoder + if (res[p] === undefined) { + if (tmp) { + res[p] = tmp + } + } else { + res[p][1] = tmp + } -/***/ }), + return res + } -/***/ 48647: -/***/ ((module) => { + module.exports = parseParams -"use strict"; + /***/ + }, + /***/ 43713: /***/ module => { + 'use strict' + module.exports = JSON.parse( + '{"name":"@aws-sdk/client-cloudformation","description":"AWS SDK for JavaScript Cloudformation Client for Node.js, Browser and React Native","version":"3.645.0","scripts":{"build":"concurrently \'yarn:build:cjs\' \'yarn:build:es\' \'yarn:build:types\'","build:cjs":"node ../../scripts/compilation/inline client-cloudformation","build:es":"tsc -p tsconfig.es.json","build:include:deps":"lerna run --scope $npm_package_name --include-dependencies build","build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4","clean":"rimraf ./dist-* && rimraf *.tsbuildinfo","extract:docs":"api-extractor run --local","generate:client":"node ../../scripts/generate-clients/single-service --solo cloudformation"},"main":"./dist-cjs/index.js","types":"./dist-types/index.d.ts","module":"./dist-es/index.js","sideEffects":false,"dependencies":{"@aws-crypto/sha256-browser":"5.2.0","@aws-crypto/sha256-js":"5.2.0","@aws-sdk/client-sso-oidc":"3.645.0","@aws-sdk/client-sts":"3.645.0","@aws-sdk/core":"3.635.0","@aws-sdk/credential-provider-node":"3.645.0","@aws-sdk/middleware-host-header":"3.620.0","@aws-sdk/middleware-logger":"3.609.0","@aws-sdk/middleware-recursion-detection":"3.620.0","@aws-sdk/middleware-user-agent":"3.645.0","@aws-sdk/region-config-resolver":"3.614.0","@aws-sdk/types":"3.609.0","@aws-sdk/util-endpoints":"3.645.0","@aws-sdk/util-user-agent-browser":"3.609.0","@aws-sdk/util-user-agent-node":"3.614.0","@smithy/config-resolver":"^3.0.5","@smithy/core":"^2.4.0","@smithy/fetch-http-handler":"^3.2.4","@smithy/hash-node":"^3.0.3","@smithy/invalid-dependency":"^3.0.3","@smithy/middleware-content-length":"^3.0.5","@smithy/middleware-endpoint":"^3.1.0","@smithy/middleware-retry":"^3.0.15","@smithy/middleware-serde":"^3.0.3","@smithy/middleware-stack":"^3.0.3","@smithy/node-config-provider":"^3.1.4","@smithy/node-http-handler":"^3.1.4","@smithy/protocol-http":"^4.1.0","@smithy/smithy-client":"^3.2.0","@smithy/types":"^3.3.0","@smithy/url-parser":"^3.0.3","@smithy/util-base64":"^3.0.0","@smithy/util-body-length-browser":"^3.0.0","@smithy/util-body-length-node":"^3.0.0","@smithy/util-defaults-mode-browser":"^3.0.15","@smithy/util-defaults-mode-node":"^3.0.15","@smithy/util-endpoints":"^2.0.5","@smithy/util-middleware":"^3.0.3","@smithy/util-retry":"^3.0.3","@smithy/util-utf8":"^3.0.0","@smithy/util-waiter":"^3.1.2","tslib":"^2.6.2","uuid":"^9.0.1"},"devDependencies":{"@tsconfig/node16":"16.1.3","@types/node":"^16.18.96","@types/uuid":"^9.0.4","concurrently":"7.0.0","downlevel-dts":"0.10.1","rimraf":"3.0.2","typescript":"~4.9.5"},"engines":{"node":">=16.0.0"},"typesVersions":{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},"files":["dist-*/**"],"author":{"name":"AWS SDK for JavaScript Team","url":"https://aws.amazon.com/javascript/"},"license":"Apache-2.0","browser":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.browser"},"react-native":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.native"},"homepage":"https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-cloudformation","repository":{"type":"git","url":"https://github.com/aws/aws-sdk-js-v3.git","directory":"clients/client-cloudformation"}}' + ) -module.exports = function basename (path) { - if (typeof path !== 'string') { return '' } - for (var i = path.length - 1; i >= 0; --i) { // eslint-disable-line no-var - switch (path.charCodeAt(i)) { - case 0x2F: // '/' - case 0x5C: // '\' - path = path.slice(i + 1) - return (path === '..' || path === '.' ? '' : path) - } - } - return (path === '..' || path === '.' ? '' : path) -} - - -/***/ }), - -/***/ 84619: -/***/ (function(module) { - -"use strict"; - - -// Node has always utf-8 -const utf8Decoder = new TextDecoder('utf-8') -const textDecoders = new Map([ - ['utf-8', utf8Decoder], - ['utf8', utf8Decoder] -]) - -function getDecoder (charset) { - let lc - while (true) { - switch (charset) { - case 'utf-8': - case 'utf8': - return decoders.utf8 - case 'latin1': - case 'ascii': // TODO: Make these a separate, strict decoder? - case 'us-ascii': - case 'iso-8859-1': - case 'iso8859-1': - case 'iso88591': - case 'iso_8859-1': - case 'windows-1252': - case 'iso_8859-1:1987': - case 'cp1252': - case 'x-cp1252': - return decoders.latin1 - case 'utf16le': - case 'utf-16le': - case 'ucs2': - case 'ucs-2': - return decoders.utf16le - case 'base64': - return decoders.base64 - default: - if (lc === undefined) { - lc = true - charset = charset.toLowerCase() - continue - } - return decoders.other.bind(charset) - } - } -} + /***/ + }, -const decoders = { - utf8: (data, sourceEncoding) => { - if (data.length === 0) { - return '' - } - if (typeof data === 'string') { - data = Buffer.from(data, sourceEncoding) - } - return data.utf8Slice(0, data.length) - }, + /***/ 97480: /***/ module => { + 'use strict' + module.exports = JSON.parse( + '{"name":"@aws-sdk/client-sso","description":"AWS SDK for JavaScript Sso Client for Node.js, Browser and React Native","version":"3.787.0","scripts":{"build":"concurrently \'yarn:build:cjs\' \'yarn:build:es\' \'yarn:build:types\'","build:cjs":"node ../../scripts/compilation/inline client-sso","build:es":"tsc -p tsconfig.es.json","build:include:deps":"lerna run --scope $npm_package_name --include-dependencies build","build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4","clean":"rimraf ./dist-* && rimraf *.tsbuildinfo","extract:docs":"api-extractor run --local","generate:client":"node ../../scripts/generate-clients/single-service --solo sso"},"main":"./dist-cjs/index.js","types":"./dist-types/index.d.ts","module":"./dist-es/index.js","sideEffects":false,"dependencies":{"@aws-crypto/sha256-browser":"5.2.0","@aws-crypto/sha256-js":"5.2.0","@aws-sdk/core":"3.775.0","@aws-sdk/middleware-host-header":"3.775.0","@aws-sdk/middleware-logger":"3.775.0","@aws-sdk/middleware-recursion-detection":"3.775.0","@aws-sdk/middleware-user-agent":"3.787.0","@aws-sdk/region-config-resolver":"3.775.0","@aws-sdk/types":"3.775.0","@aws-sdk/util-endpoints":"3.787.0","@aws-sdk/util-user-agent-browser":"3.775.0","@aws-sdk/util-user-agent-node":"3.787.0","@smithy/config-resolver":"^4.1.0","@smithy/core":"^3.2.0","@smithy/fetch-http-handler":"^5.0.2","@smithy/hash-node":"^4.0.2","@smithy/invalid-dependency":"^4.0.2","@smithy/middleware-content-length":"^4.0.2","@smithy/middleware-endpoint":"^4.1.0","@smithy/middleware-retry":"^4.1.0","@smithy/middleware-serde":"^4.0.3","@smithy/middleware-stack":"^4.0.2","@smithy/node-config-provider":"^4.0.2","@smithy/node-http-handler":"^4.0.4","@smithy/protocol-http":"^5.1.0","@smithy/smithy-client":"^4.2.0","@smithy/types":"^4.2.0","@smithy/url-parser":"^4.0.2","@smithy/util-base64":"^4.0.0","@smithy/util-body-length-browser":"^4.0.0","@smithy/util-body-length-node":"^4.0.0","@smithy/util-defaults-mode-browser":"^4.0.8","@smithy/util-defaults-mode-node":"^4.0.8","@smithy/util-endpoints":"^3.0.2","@smithy/util-middleware":"^4.0.2","@smithy/util-retry":"^4.0.2","@smithy/util-utf8":"^4.0.0","tslib":"^2.6.2"},"devDependencies":{"@tsconfig/node18":"18.2.4","@types/node":"^18.19.69","concurrently":"7.0.0","downlevel-dts":"0.10.1","rimraf":"3.0.2","typescript":"~5.2.2"},"engines":{"node":">=18.0.0"},"typesVersions":{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},"files":["dist-*/**"],"author":{"name":"AWS SDK for JavaScript Team","url":"https://aws.amazon.com/javascript/"},"license":"Apache-2.0","browser":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.browser"},"react-native":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.native"},"homepage":"https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-sso","repository":{"type":"git","url":"https://github.com/aws/aws-sdk-js-v3.git","directory":"clients/client-sso"}}' + ) - latin1: (data, sourceEncoding) => { - if (data.length === 0) { - return '' - } - if (typeof data === 'string') { - return data - } - return data.latin1Slice(0, data.length) - }, + /***/ + }, - utf16le: (data, sourceEncoding) => { - if (data.length === 0) { - return '' - } - if (typeof data === 'string') { - data = Buffer.from(data, sourceEncoding) - } - return data.ucs2Slice(0, data.length) - }, + /***/ 80280: /***/ module => { + 'use strict' + module.exports = JSON.parse( + '{"name":"@aws-sdk/client-marketplace-catalog","description":"AWS SDK for JavaScript Marketplace Catalog Client for Node.js, Browser and React Native","version":"3.787.0","scripts":{"build":"concurrently \'yarn:build:cjs\' \'yarn:build:es\' \'yarn:build:types\'","build:cjs":"node ../../scripts/compilation/inline client-marketplace-catalog","build:es":"tsc -p tsconfig.es.json","build:include:deps":"lerna run --scope $npm_package_name --include-dependencies build","build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4","clean":"rimraf ./dist-* && rimraf *.tsbuildinfo","extract:docs":"api-extractor run --local","generate:client":"node ../../scripts/generate-clients/single-service --solo marketplace-catalog"},"main":"./dist-cjs/index.js","types":"./dist-types/index.d.ts","module":"./dist-es/index.js","sideEffects":false,"dependencies":{"@aws-crypto/sha256-browser":"5.2.0","@aws-crypto/sha256-js":"5.2.0","@aws-sdk/core":"3.775.0","@aws-sdk/credential-provider-node":"3.787.0","@aws-sdk/middleware-host-header":"3.775.0","@aws-sdk/middleware-logger":"3.775.0","@aws-sdk/middleware-recursion-detection":"3.775.0","@aws-sdk/middleware-user-agent":"3.787.0","@aws-sdk/region-config-resolver":"3.775.0","@aws-sdk/types":"3.775.0","@aws-sdk/util-endpoints":"3.787.0","@aws-sdk/util-user-agent-browser":"3.775.0","@aws-sdk/util-user-agent-node":"3.787.0","@smithy/config-resolver":"^4.1.0","@smithy/core":"^3.2.0","@smithy/fetch-http-handler":"^5.0.2","@smithy/hash-node":"^4.0.2","@smithy/invalid-dependency":"^4.0.2","@smithy/middleware-content-length":"^4.0.2","@smithy/middleware-endpoint":"^4.1.0","@smithy/middleware-retry":"^4.1.0","@smithy/middleware-serde":"^4.0.3","@smithy/middleware-stack":"^4.0.2","@smithy/node-config-provider":"^4.0.2","@smithy/node-http-handler":"^4.0.4","@smithy/protocol-http":"^5.1.0","@smithy/smithy-client":"^4.2.0","@smithy/types":"^4.2.0","@smithy/url-parser":"^4.0.2","@smithy/util-base64":"^4.0.0","@smithy/util-body-length-browser":"^4.0.0","@smithy/util-body-length-node":"^4.0.0","@smithy/util-defaults-mode-browser":"^4.0.8","@smithy/util-defaults-mode-node":"^4.0.8","@smithy/util-endpoints":"^3.0.2","@smithy/util-middleware":"^4.0.2","@smithy/util-retry":"^4.0.2","@smithy/util-utf8":"^4.0.0","@types/uuid":"^9.0.1","tslib":"^2.6.2","uuid":"^9.0.1"},"devDependencies":{"@tsconfig/node18":"18.2.4","@types/node":"^18.19.69","concurrently":"7.0.0","downlevel-dts":"0.10.1","rimraf":"3.0.2","typescript":"~5.2.2"},"engines":{"node":">=18.0.0"},"typesVersions":{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},"files":["dist-*/**"],"author":{"name":"AWS SDK for JavaScript Team","url":"https://aws.amazon.com/javascript/"},"license":"Apache-2.0","browser":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.browser"},"react-native":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.native"},"homepage":"https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-marketplace-catalog","repository":{"type":"git","url":"https://github.com/aws/aws-sdk-js-v3.git","directory":"clients/client-marketplace-catalog"}}' + ) - base64: (data, sourceEncoding) => { - if (data.length === 0) { - return '' - } - if (typeof data === 'string') { - data = Buffer.from(data, sourceEncoding) - } - return data.base64Slice(0, data.length) - }, + /***/ + }, - other: (data, sourceEncoding) => { - if (data.length === 0) { - return '' - } - if (typeof data === 'string') { - data = Buffer.from(data, sourceEncoding) - } + /***/ 69722: /***/ module => { + 'use strict' + module.exports = JSON.parse( + '{"name":"@aws-sdk/client-sso-oidc","description":"AWS SDK for JavaScript Sso Oidc Client for Node.js, Browser and React Native","version":"3.645.0","scripts":{"build":"concurrently \'yarn:build:cjs\' \'yarn:build:es\' \'yarn:build:types\'","build:cjs":"node ../../scripts/compilation/inline client-sso-oidc","build:es":"tsc -p tsconfig.es.json","build:include:deps":"lerna run --scope $npm_package_name --include-dependencies build","build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4","clean":"rimraf ./dist-* && rimraf *.tsbuildinfo","extract:docs":"api-extractor run --local","generate:client":"node ../../scripts/generate-clients/single-service --solo sso-oidc"},"main":"./dist-cjs/index.js","types":"./dist-types/index.d.ts","module":"./dist-es/index.js","sideEffects":false,"dependencies":{"@aws-crypto/sha256-browser":"5.2.0","@aws-crypto/sha256-js":"5.2.0","@aws-sdk/core":"3.635.0","@aws-sdk/credential-provider-node":"3.645.0","@aws-sdk/middleware-host-header":"3.620.0","@aws-sdk/middleware-logger":"3.609.0","@aws-sdk/middleware-recursion-detection":"3.620.0","@aws-sdk/middleware-user-agent":"3.645.0","@aws-sdk/region-config-resolver":"3.614.0","@aws-sdk/types":"3.609.0","@aws-sdk/util-endpoints":"3.645.0","@aws-sdk/util-user-agent-browser":"3.609.0","@aws-sdk/util-user-agent-node":"3.614.0","@smithy/config-resolver":"^3.0.5","@smithy/core":"^2.4.0","@smithy/fetch-http-handler":"^3.2.4","@smithy/hash-node":"^3.0.3","@smithy/invalid-dependency":"^3.0.3","@smithy/middleware-content-length":"^3.0.5","@smithy/middleware-endpoint":"^3.1.0","@smithy/middleware-retry":"^3.0.15","@smithy/middleware-serde":"^3.0.3","@smithy/middleware-stack":"^3.0.3","@smithy/node-config-provider":"^3.1.4","@smithy/node-http-handler":"^3.1.4","@smithy/protocol-http":"^4.1.0","@smithy/smithy-client":"^3.2.0","@smithy/types":"^3.3.0","@smithy/url-parser":"^3.0.3","@smithy/util-base64":"^3.0.0","@smithy/util-body-length-browser":"^3.0.0","@smithy/util-body-length-node":"^3.0.0","@smithy/util-defaults-mode-browser":"^3.0.15","@smithy/util-defaults-mode-node":"^3.0.15","@smithy/util-endpoints":"^2.0.5","@smithy/util-middleware":"^3.0.3","@smithy/util-retry":"^3.0.3","@smithy/util-utf8":"^3.0.0","tslib":"^2.6.2"},"devDependencies":{"@tsconfig/node16":"16.1.3","@types/node":"^16.18.96","concurrently":"7.0.0","downlevel-dts":"0.10.1","rimraf":"3.0.2","typescript":"~4.9.5"},"engines":{"node":">=16.0.0"},"typesVersions":{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},"files":["dist-*/**"],"author":{"name":"AWS SDK for JavaScript Team","url":"https://aws.amazon.com/javascript/"},"license":"Apache-2.0","peerDependencies":{"@aws-sdk/client-sts":"^3.645.0"},"browser":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.browser"},"react-native":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.native"},"homepage":"https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-sso-oidc","repository":{"type":"git","url":"https://github.com/aws/aws-sdk-js-v3.git","directory":"clients/client-sso-oidc"}}' + ) - if (textDecoders.has(this.toString())) { - try { - return textDecoders.get(this).decode(data) - } catch {} - } - return typeof data === 'string' - ? data - : data.toString() - } -} + /***/ + }, -function decodeText (text, sourceEncoding, destEncoding) { - if (text) { - return getDecoder(destEncoding)(text, sourceEncoding) - } - return text -} - -module.exports = decodeText - - -/***/ }), - -/***/ 21467: -/***/ ((module) => { - -"use strict"; - - -module.exports = function getLimit (limits, name, defaultLimit) { - if ( - !limits || - limits[name] === undefined || - limits[name] === null - ) { return defaultLimit } - - if ( - typeof limits[name] !== 'number' || - isNaN(limits[name]) - ) { throw new TypeError('Limit ' + name + ' is not a valid number') } - - return limits[name] -} - - -/***/ }), - -/***/ 31854: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; -/* eslint-disable object-property-newline */ - - -const decodeText = __nccwpck_require__(84619) - -const RE_ENCODED = /%[a-fA-F0-9][a-fA-F0-9]/g - -const EncodedLookup = { - '%00': '\x00', '%01': '\x01', '%02': '\x02', '%03': '\x03', '%04': '\x04', - '%05': '\x05', '%06': '\x06', '%07': '\x07', '%08': '\x08', '%09': '\x09', - '%0a': '\x0a', '%0A': '\x0a', '%0b': '\x0b', '%0B': '\x0b', '%0c': '\x0c', - '%0C': '\x0c', '%0d': '\x0d', '%0D': '\x0d', '%0e': '\x0e', '%0E': '\x0e', - '%0f': '\x0f', '%0F': '\x0f', '%10': '\x10', '%11': '\x11', '%12': '\x12', - '%13': '\x13', '%14': '\x14', '%15': '\x15', '%16': '\x16', '%17': '\x17', - '%18': '\x18', '%19': '\x19', '%1a': '\x1a', '%1A': '\x1a', '%1b': '\x1b', - '%1B': '\x1b', '%1c': '\x1c', '%1C': '\x1c', '%1d': '\x1d', '%1D': '\x1d', - '%1e': '\x1e', '%1E': '\x1e', '%1f': '\x1f', '%1F': '\x1f', '%20': '\x20', - '%21': '\x21', '%22': '\x22', '%23': '\x23', '%24': '\x24', '%25': '\x25', - '%26': '\x26', '%27': '\x27', '%28': '\x28', '%29': '\x29', '%2a': '\x2a', - '%2A': '\x2a', '%2b': '\x2b', '%2B': '\x2b', '%2c': '\x2c', '%2C': '\x2c', - '%2d': '\x2d', '%2D': '\x2d', '%2e': '\x2e', '%2E': '\x2e', '%2f': '\x2f', - '%2F': '\x2f', '%30': '\x30', '%31': '\x31', '%32': '\x32', '%33': '\x33', - '%34': '\x34', '%35': '\x35', '%36': '\x36', '%37': '\x37', '%38': '\x38', - '%39': '\x39', '%3a': '\x3a', '%3A': '\x3a', '%3b': '\x3b', '%3B': '\x3b', - '%3c': '\x3c', '%3C': '\x3c', '%3d': '\x3d', '%3D': '\x3d', '%3e': '\x3e', - '%3E': '\x3e', '%3f': '\x3f', '%3F': '\x3f', '%40': '\x40', '%41': '\x41', - '%42': '\x42', '%43': '\x43', '%44': '\x44', '%45': '\x45', '%46': '\x46', - '%47': '\x47', '%48': '\x48', '%49': '\x49', '%4a': '\x4a', '%4A': '\x4a', - '%4b': '\x4b', '%4B': '\x4b', '%4c': '\x4c', '%4C': '\x4c', '%4d': '\x4d', - '%4D': '\x4d', '%4e': '\x4e', '%4E': '\x4e', '%4f': '\x4f', '%4F': '\x4f', - '%50': '\x50', '%51': '\x51', '%52': '\x52', '%53': '\x53', '%54': '\x54', - '%55': '\x55', '%56': '\x56', '%57': '\x57', '%58': '\x58', '%59': '\x59', - '%5a': '\x5a', '%5A': '\x5a', '%5b': '\x5b', '%5B': '\x5b', '%5c': '\x5c', - '%5C': '\x5c', '%5d': '\x5d', '%5D': '\x5d', '%5e': '\x5e', '%5E': '\x5e', - '%5f': '\x5f', '%5F': '\x5f', '%60': '\x60', '%61': '\x61', '%62': '\x62', - '%63': '\x63', '%64': '\x64', '%65': '\x65', '%66': '\x66', '%67': '\x67', - '%68': '\x68', '%69': '\x69', '%6a': '\x6a', '%6A': '\x6a', '%6b': '\x6b', - '%6B': '\x6b', '%6c': '\x6c', '%6C': '\x6c', '%6d': '\x6d', '%6D': '\x6d', - '%6e': '\x6e', '%6E': '\x6e', '%6f': '\x6f', '%6F': '\x6f', '%70': '\x70', - '%71': '\x71', '%72': '\x72', '%73': '\x73', '%74': '\x74', '%75': '\x75', - '%76': '\x76', '%77': '\x77', '%78': '\x78', '%79': '\x79', '%7a': '\x7a', - '%7A': '\x7a', '%7b': '\x7b', '%7B': '\x7b', '%7c': '\x7c', '%7C': '\x7c', - '%7d': '\x7d', '%7D': '\x7d', '%7e': '\x7e', '%7E': '\x7e', '%7f': '\x7f', - '%7F': '\x7f', '%80': '\x80', '%81': '\x81', '%82': '\x82', '%83': '\x83', - '%84': '\x84', '%85': '\x85', '%86': '\x86', '%87': '\x87', '%88': '\x88', - '%89': '\x89', '%8a': '\x8a', '%8A': '\x8a', '%8b': '\x8b', '%8B': '\x8b', - '%8c': '\x8c', '%8C': '\x8c', '%8d': '\x8d', '%8D': '\x8d', '%8e': '\x8e', - '%8E': '\x8e', '%8f': '\x8f', '%8F': '\x8f', '%90': '\x90', '%91': '\x91', - '%92': '\x92', '%93': '\x93', '%94': '\x94', '%95': '\x95', '%96': '\x96', - '%97': '\x97', '%98': '\x98', '%99': '\x99', '%9a': '\x9a', '%9A': '\x9a', - '%9b': '\x9b', '%9B': '\x9b', '%9c': '\x9c', '%9C': '\x9c', '%9d': '\x9d', - '%9D': '\x9d', '%9e': '\x9e', '%9E': '\x9e', '%9f': '\x9f', '%9F': '\x9f', - '%a0': '\xa0', '%A0': '\xa0', '%a1': '\xa1', '%A1': '\xa1', '%a2': '\xa2', - '%A2': '\xa2', '%a3': '\xa3', '%A3': '\xa3', '%a4': '\xa4', '%A4': '\xa4', - '%a5': '\xa5', '%A5': '\xa5', '%a6': '\xa6', '%A6': '\xa6', '%a7': '\xa7', - '%A7': '\xa7', '%a8': '\xa8', '%A8': '\xa8', '%a9': '\xa9', '%A9': '\xa9', - '%aa': '\xaa', '%Aa': '\xaa', '%aA': '\xaa', '%AA': '\xaa', '%ab': '\xab', - '%Ab': '\xab', '%aB': '\xab', '%AB': '\xab', '%ac': '\xac', '%Ac': '\xac', - '%aC': '\xac', '%AC': '\xac', '%ad': '\xad', '%Ad': '\xad', '%aD': '\xad', - '%AD': '\xad', '%ae': '\xae', '%Ae': '\xae', '%aE': '\xae', '%AE': '\xae', - '%af': '\xaf', '%Af': '\xaf', '%aF': '\xaf', '%AF': '\xaf', '%b0': '\xb0', - '%B0': '\xb0', '%b1': '\xb1', '%B1': '\xb1', '%b2': '\xb2', '%B2': '\xb2', - '%b3': '\xb3', '%B3': '\xb3', '%b4': '\xb4', '%B4': '\xb4', '%b5': '\xb5', - '%B5': '\xb5', '%b6': '\xb6', '%B6': '\xb6', '%b7': '\xb7', '%B7': '\xb7', - '%b8': '\xb8', '%B8': '\xb8', '%b9': '\xb9', '%B9': '\xb9', '%ba': '\xba', - '%Ba': '\xba', '%bA': '\xba', '%BA': '\xba', '%bb': '\xbb', '%Bb': '\xbb', - '%bB': '\xbb', '%BB': '\xbb', '%bc': '\xbc', '%Bc': '\xbc', '%bC': '\xbc', - '%BC': '\xbc', '%bd': '\xbd', '%Bd': '\xbd', '%bD': '\xbd', '%BD': '\xbd', - '%be': '\xbe', '%Be': '\xbe', '%bE': '\xbe', '%BE': '\xbe', '%bf': '\xbf', - '%Bf': '\xbf', '%bF': '\xbf', '%BF': '\xbf', '%c0': '\xc0', '%C0': '\xc0', - '%c1': '\xc1', '%C1': '\xc1', '%c2': '\xc2', '%C2': '\xc2', '%c3': '\xc3', - '%C3': '\xc3', '%c4': '\xc4', '%C4': '\xc4', '%c5': '\xc5', '%C5': '\xc5', - '%c6': '\xc6', '%C6': '\xc6', '%c7': '\xc7', '%C7': '\xc7', '%c8': '\xc8', - '%C8': '\xc8', '%c9': '\xc9', '%C9': '\xc9', '%ca': '\xca', '%Ca': '\xca', - '%cA': '\xca', '%CA': '\xca', '%cb': '\xcb', '%Cb': '\xcb', '%cB': '\xcb', - '%CB': '\xcb', '%cc': '\xcc', '%Cc': '\xcc', '%cC': '\xcc', '%CC': '\xcc', - '%cd': '\xcd', '%Cd': '\xcd', '%cD': '\xcd', '%CD': '\xcd', '%ce': '\xce', - '%Ce': '\xce', '%cE': '\xce', '%CE': '\xce', '%cf': '\xcf', '%Cf': '\xcf', - '%cF': '\xcf', '%CF': '\xcf', '%d0': '\xd0', '%D0': '\xd0', '%d1': '\xd1', - '%D1': '\xd1', '%d2': '\xd2', '%D2': '\xd2', '%d3': '\xd3', '%D3': '\xd3', - '%d4': '\xd4', '%D4': '\xd4', '%d5': '\xd5', '%D5': '\xd5', '%d6': '\xd6', - '%D6': '\xd6', '%d7': '\xd7', '%D7': '\xd7', '%d8': '\xd8', '%D8': '\xd8', - '%d9': '\xd9', '%D9': '\xd9', '%da': '\xda', '%Da': '\xda', '%dA': '\xda', - '%DA': '\xda', '%db': '\xdb', '%Db': '\xdb', '%dB': '\xdb', '%DB': '\xdb', - '%dc': '\xdc', '%Dc': '\xdc', '%dC': '\xdc', '%DC': '\xdc', '%dd': '\xdd', - '%Dd': '\xdd', '%dD': '\xdd', '%DD': '\xdd', '%de': '\xde', '%De': '\xde', - '%dE': '\xde', '%DE': '\xde', '%df': '\xdf', '%Df': '\xdf', '%dF': '\xdf', - '%DF': '\xdf', '%e0': '\xe0', '%E0': '\xe0', '%e1': '\xe1', '%E1': '\xe1', - '%e2': '\xe2', '%E2': '\xe2', '%e3': '\xe3', '%E3': '\xe3', '%e4': '\xe4', - '%E4': '\xe4', '%e5': '\xe5', '%E5': '\xe5', '%e6': '\xe6', '%E6': '\xe6', - '%e7': '\xe7', '%E7': '\xe7', '%e8': '\xe8', '%E8': '\xe8', '%e9': '\xe9', - '%E9': '\xe9', '%ea': '\xea', '%Ea': '\xea', '%eA': '\xea', '%EA': '\xea', - '%eb': '\xeb', '%Eb': '\xeb', '%eB': '\xeb', '%EB': '\xeb', '%ec': '\xec', - '%Ec': '\xec', '%eC': '\xec', '%EC': '\xec', '%ed': '\xed', '%Ed': '\xed', - '%eD': '\xed', '%ED': '\xed', '%ee': '\xee', '%Ee': '\xee', '%eE': '\xee', - '%EE': '\xee', '%ef': '\xef', '%Ef': '\xef', '%eF': '\xef', '%EF': '\xef', - '%f0': '\xf0', '%F0': '\xf0', '%f1': '\xf1', '%F1': '\xf1', '%f2': '\xf2', - '%F2': '\xf2', '%f3': '\xf3', '%F3': '\xf3', '%f4': '\xf4', '%F4': '\xf4', - '%f5': '\xf5', '%F5': '\xf5', '%f6': '\xf6', '%F6': '\xf6', '%f7': '\xf7', - '%F7': '\xf7', '%f8': '\xf8', '%F8': '\xf8', '%f9': '\xf9', '%F9': '\xf9', - '%fa': '\xfa', '%Fa': '\xfa', '%fA': '\xfa', '%FA': '\xfa', '%fb': '\xfb', - '%Fb': '\xfb', '%fB': '\xfb', '%FB': '\xfb', '%fc': '\xfc', '%Fc': '\xfc', - '%fC': '\xfc', '%FC': '\xfc', '%fd': '\xfd', '%Fd': '\xfd', '%fD': '\xfd', - '%FD': '\xfd', '%fe': '\xfe', '%Fe': '\xfe', '%fE': '\xfe', '%FE': '\xfe', - '%ff': '\xff', '%Ff': '\xff', '%fF': '\xff', '%FF': '\xff' -} - -function encodedReplacer (match) { - return EncodedLookup[match] -} - -const STATE_KEY = 0 -const STATE_VALUE = 1 -const STATE_CHARSET = 2 -const STATE_LANG = 3 - -function parseParams (str) { - const res = [] - let state = STATE_KEY - let charset = '' - let inquote = false - let escaping = false - let p = 0 - let tmp = '' - const len = str.length - - for (var i = 0; i < len; ++i) { // eslint-disable-line no-var - const char = str[i] - if (char === '\\' && inquote) { - if (escaping) { escaping = false } else { - escaping = true - continue - } - } else if (char === '"') { - if (!escaping) { - if (inquote) { - inquote = false - state = STATE_KEY - } else { inquote = true } - continue - } else { escaping = false } - } else { - if (escaping && inquote) { tmp += '\\' } - escaping = false - if ((state === STATE_CHARSET || state === STATE_LANG) && char === "'") { - if (state === STATE_CHARSET) { - state = STATE_LANG - charset = tmp.substring(1) - } else { state = STATE_VALUE } - tmp = '' - continue - } else if (state === STATE_KEY && - (char === '*' || char === '=') && - res.length) { - state = char === '*' - ? STATE_CHARSET - : STATE_VALUE - res[p] = [tmp, undefined] - tmp = '' - continue - } else if (!inquote && char === ';') { - state = STATE_KEY - if (charset) { - if (tmp.length) { - tmp = decodeText(tmp.replace(RE_ENCODED, encodedReplacer), - 'binary', - charset) - } - charset = '' - } else if (tmp.length) { - tmp = decodeText(tmp, 'binary', 'utf8') - } - if (res[p] === undefined) { res[p] = tmp } else { res[p][1] = tmp } - tmp = '' - ++p - continue - } else if (!inquote && (char === ' ' || char === '\t')) { continue } - } - tmp += char - } - if (charset && tmp.length) { - tmp = decodeText(tmp.replace(RE_ENCODED, encodedReplacer), - 'binary', - charset) - } else if (tmp) { - tmp = decodeText(tmp, 'binary', 'utf8') - } + /***/ 91092: /***/ module => { + 'use strict' + module.exports = JSON.parse( + '{"name":"@aws-sdk/client-sso","description":"AWS SDK for JavaScript Sso Client for Node.js, Browser and React Native","version":"3.645.0","scripts":{"build":"concurrently \'yarn:build:cjs\' \'yarn:build:es\' \'yarn:build:types\'","build:cjs":"node ../../scripts/compilation/inline client-sso","build:es":"tsc -p tsconfig.es.json","build:include:deps":"lerna run --scope $npm_package_name --include-dependencies build","build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4","clean":"rimraf ./dist-* && rimraf *.tsbuildinfo","extract:docs":"api-extractor run --local","generate:client":"node ../../scripts/generate-clients/single-service --solo sso"},"main":"./dist-cjs/index.js","types":"./dist-types/index.d.ts","module":"./dist-es/index.js","sideEffects":false,"dependencies":{"@aws-crypto/sha256-browser":"5.2.0","@aws-crypto/sha256-js":"5.2.0","@aws-sdk/core":"3.635.0","@aws-sdk/middleware-host-header":"3.620.0","@aws-sdk/middleware-logger":"3.609.0","@aws-sdk/middleware-recursion-detection":"3.620.0","@aws-sdk/middleware-user-agent":"3.645.0","@aws-sdk/region-config-resolver":"3.614.0","@aws-sdk/types":"3.609.0","@aws-sdk/util-endpoints":"3.645.0","@aws-sdk/util-user-agent-browser":"3.609.0","@aws-sdk/util-user-agent-node":"3.614.0","@smithy/config-resolver":"^3.0.5","@smithy/core":"^2.4.0","@smithy/fetch-http-handler":"^3.2.4","@smithy/hash-node":"^3.0.3","@smithy/invalid-dependency":"^3.0.3","@smithy/middleware-content-length":"^3.0.5","@smithy/middleware-endpoint":"^3.1.0","@smithy/middleware-retry":"^3.0.15","@smithy/middleware-serde":"^3.0.3","@smithy/middleware-stack":"^3.0.3","@smithy/node-config-provider":"^3.1.4","@smithy/node-http-handler":"^3.1.4","@smithy/protocol-http":"^4.1.0","@smithy/smithy-client":"^3.2.0","@smithy/types":"^3.3.0","@smithy/url-parser":"^3.0.3","@smithy/util-base64":"^3.0.0","@smithy/util-body-length-browser":"^3.0.0","@smithy/util-body-length-node":"^3.0.0","@smithy/util-defaults-mode-browser":"^3.0.15","@smithy/util-defaults-mode-node":"^3.0.15","@smithy/util-endpoints":"^2.0.5","@smithy/util-middleware":"^3.0.3","@smithy/util-retry":"^3.0.3","@smithy/util-utf8":"^3.0.0","tslib":"^2.6.2"},"devDependencies":{"@tsconfig/node16":"16.1.3","@types/node":"^16.18.96","concurrently":"7.0.0","downlevel-dts":"0.10.1","rimraf":"3.0.2","typescript":"~4.9.5"},"engines":{"node":">=16.0.0"},"typesVersions":{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},"files":["dist-*/**"],"author":{"name":"AWS SDK for JavaScript Team","url":"https://aws.amazon.com/javascript/"},"license":"Apache-2.0","browser":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.browser"},"react-native":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.native"},"homepage":"https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-sso","repository":{"type":"git","url":"https://github.com/aws/aws-sdk-js-v3.git","directory":"clients/client-sso"}}' + ) - if (res[p] === undefined) { - if (tmp) { res[p] = tmp } - } else { res[p][1] = tmp } + /***/ + }, - return res -} + /***/ 7947: /***/ module => { + 'use strict' + module.exports = JSON.parse( + '{"name":"@aws-sdk/client-sts","description":"AWS SDK for JavaScript Sts Client for Node.js, Browser and React Native","version":"3.645.0","scripts":{"build":"concurrently \'yarn:build:cjs\' \'yarn:build:es\' \'yarn:build:types\'","build:cjs":"node ../../scripts/compilation/inline client-sts","build:es":"tsc -p tsconfig.es.json","build:include:deps":"lerna run --scope $npm_package_name --include-dependencies build","build:types":"rimraf ./dist-types tsconfig.types.tsbuildinfo && tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4","clean":"rimraf ./dist-* && rimraf *.tsbuildinfo","extract:docs":"api-extractor run --local","generate:client":"node ../../scripts/generate-clients/single-service --solo sts","test":"yarn test:unit","test:unit":"jest"},"main":"./dist-cjs/index.js","types":"./dist-types/index.d.ts","module":"./dist-es/index.js","sideEffects":false,"dependencies":{"@aws-crypto/sha256-browser":"5.2.0","@aws-crypto/sha256-js":"5.2.0","@aws-sdk/client-sso-oidc":"3.645.0","@aws-sdk/core":"3.635.0","@aws-sdk/credential-provider-node":"3.645.0","@aws-sdk/middleware-host-header":"3.620.0","@aws-sdk/middleware-logger":"3.609.0","@aws-sdk/middleware-recursion-detection":"3.620.0","@aws-sdk/middleware-user-agent":"3.645.0","@aws-sdk/region-config-resolver":"3.614.0","@aws-sdk/types":"3.609.0","@aws-sdk/util-endpoints":"3.645.0","@aws-sdk/util-user-agent-browser":"3.609.0","@aws-sdk/util-user-agent-node":"3.614.0","@smithy/config-resolver":"^3.0.5","@smithy/core":"^2.4.0","@smithy/fetch-http-handler":"^3.2.4","@smithy/hash-node":"^3.0.3","@smithy/invalid-dependency":"^3.0.3","@smithy/middleware-content-length":"^3.0.5","@smithy/middleware-endpoint":"^3.1.0","@smithy/middleware-retry":"^3.0.15","@smithy/middleware-serde":"^3.0.3","@smithy/middleware-stack":"^3.0.3","@smithy/node-config-provider":"^3.1.4","@smithy/node-http-handler":"^3.1.4","@smithy/protocol-http":"^4.1.0","@smithy/smithy-client":"^3.2.0","@smithy/types":"^3.3.0","@smithy/url-parser":"^3.0.3","@smithy/util-base64":"^3.0.0","@smithy/util-body-length-browser":"^3.0.0","@smithy/util-body-length-node":"^3.0.0","@smithy/util-defaults-mode-browser":"^3.0.15","@smithy/util-defaults-mode-node":"^3.0.15","@smithy/util-endpoints":"^2.0.5","@smithy/util-middleware":"^3.0.3","@smithy/util-retry":"^3.0.3","@smithy/util-utf8":"^3.0.0","tslib":"^2.6.2"},"devDependencies":{"@tsconfig/node16":"16.1.3","@types/node":"^16.18.96","concurrently":"7.0.0","downlevel-dts":"0.10.1","rimraf":"3.0.2","typescript":"~4.9.5"},"engines":{"node":">=16.0.0"},"typesVersions":{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},"files":["dist-*/**"],"author":{"name":"AWS SDK for JavaScript Team","url":"https://aws.amazon.com/javascript/"},"license":"Apache-2.0","browser":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.browser"},"react-native":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.native"},"homepage":"https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-sts","repository":{"type":"git","url":"https://github.com/aws/aws-sdk-js-v3.git","directory":"clients/client-sts"}}' + ) -module.exports = parseParams + /***/ + }, + /***/ 88842: /***/ module => { + 'use strict' + module.exports = JSON.parse( + '{"name":"@aws-sdk/nested-clients","version":"3.787.0","description":"Nested clients for AWS SDK packages.","main":"./dist-cjs/index.js","module":"./dist-es/index.js","types":"./dist-types/index.d.ts","scripts":{"build":"yarn lint && concurrently \'yarn:build:cjs\' \'yarn:build:es\' \'yarn:build:types\'","build:cjs":"node ../../scripts/compilation/inline nested-clients","build:es":"tsc -p tsconfig.es.json","build:include:deps":"lerna run --scope $npm_package_name --include-dependencies build","build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4","clean":"rimraf ./dist-* && rimraf *.tsbuildinfo","lint":"node ../../scripts/validation/submodules-linter.js --pkg nested-clients","test":"yarn g:vitest run","test:watch":"yarn g:vitest watch"},"engines":{"node":">=18.0.0"},"author":{"name":"AWS SDK for JavaScript Team","url":"https://aws.amazon.com/javascript/"},"license":"Apache-2.0","dependencies":{"@aws-crypto/sha256-browser":"5.2.0","@aws-crypto/sha256-js":"5.2.0","@aws-sdk/core":"3.775.0","@aws-sdk/middleware-host-header":"3.775.0","@aws-sdk/middleware-logger":"3.775.0","@aws-sdk/middleware-recursion-detection":"3.775.0","@aws-sdk/middleware-user-agent":"3.787.0","@aws-sdk/region-config-resolver":"3.775.0","@aws-sdk/types":"3.775.0","@aws-sdk/util-endpoints":"3.787.0","@aws-sdk/util-user-agent-browser":"3.775.0","@aws-sdk/util-user-agent-node":"3.787.0","@smithy/config-resolver":"^4.1.0","@smithy/core":"^3.2.0","@smithy/fetch-http-handler":"^5.0.2","@smithy/hash-node":"^4.0.2","@smithy/invalid-dependency":"^4.0.2","@smithy/middleware-content-length":"^4.0.2","@smithy/middleware-endpoint":"^4.1.0","@smithy/middleware-retry":"^4.1.0","@smithy/middleware-serde":"^4.0.3","@smithy/middleware-stack":"^4.0.2","@smithy/node-config-provider":"^4.0.2","@smithy/node-http-handler":"^4.0.4","@smithy/protocol-http":"^5.1.0","@smithy/smithy-client":"^4.2.0","@smithy/types":"^4.2.0","@smithy/url-parser":"^4.0.2","@smithy/util-base64":"^4.0.0","@smithy/util-body-length-browser":"^4.0.0","@smithy/util-body-length-node":"^4.0.0","@smithy/util-defaults-mode-browser":"^4.0.8","@smithy/util-defaults-mode-node":"^4.0.8","@smithy/util-endpoints":"^3.0.2","@smithy/util-middleware":"^4.0.2","@smithy/util-retry":"^4.0.2","@smithy/util-utf8":"^4.0.0","tslib":"^2.6.2"},"devDependencies":{"concurrently":"7.0.0","downlevel-dts":"0.10.1","rimraf":"3.0.2","typescript":"~5.2.2"},"typesVersions":{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},"files":["./sso-oidc.d.ts","./sso-oidc.js","./sts.d.ts","./sts.js","dist-*/**"],"browser":{"./dist-es/submodules/sso-oidc/runtimeConfig":"./dist-es/submodules/sso-oidc/runtimeConfig.browser","./dist-es/submodules/sts/runtimeConfig":"./dist-es/submodules/sts/runtimeConfig.browser"},"react-native":{},"homepage":"https://github.com/aws/aws-sdk-js-v3/tree/main/packages/nested-clients","repository":{"type":"git","url":"https://github.com/aws/aws-sdk-js-v3.git","directory":"packages/nested-clients"},"exports":{"./sso-oidc":{"types":"./dist-types/submodules/sso-oidc/index.d.ts","module":"./dist-es/submodules/sso-oidc/index.js","node":"./dist-cjs/submodules/sso-oidc/index.js","import":"./dist-es/submodules/sso-oidc/index.js","require":"./dist-cjs/submodules/sso-oidc/index.js"},"./sts":{"types":"./dist-types/submodules/sts/index.d.ts","module":"./dist-es/submodules/sts/index.js","node":"./dist-cjs/submodules/sts/index.js","import":"./dist-es/submodules/sts/index.js","require":"./dist-cjs/submodules/sts/index.js"}}}' + ) -/***/ }), - -/***/ 43713: -/***/ ((module) => { - -"use strict"; -module.exports = JSON.parse('{"name":"@aws-sdk/client-cloudformation","description":"AWS SDK for JavaScript Cloudformation Client for Node.js, Browser and React Native","version":"3.645.0","scripts":{"build":"concurrently \'yarn:build:cjs\' \'yarn:build:es\' \'yarn:build:types\'","build:cjs":"node ../../scripts/compilation/inline client-cloudformation","build:es":"tsc -p tsconfig.es.json","build:include:deps":"lerna run --scope $npm_package_name --include-dependencies build","build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4","clean":"rimraf ./dist-* && rimraf *.tsbuildinfo","extract:docs":"api-extractor run --local","generate:client":"node ../../scripts/generate-clients/single-service --solo cloudformation"},"main":"./dist-cjs/index.js","types":"./dist-types/index.d.ts","module":"./dist-es/index.js","sideEffects":false,"dependencies":{"@aws-crypto/sha256-browser":"5.2.0","@aws-crypto/sha256-js":"5.2.0","@aws-sdk/client-sso-oidc":"3.645.0","@aws-sdk/client-sts":"3.645.0","@aws-sdk/core":"3.635.0","@aws-sdk/credential-provider-node":"3.645.0","@aws-sdk/middleware-host-header":"3.620.0","@aws-sdk/middleware-logger":"3.609.0","@aws-sdk/middleware-recursion-detection":"3.620.0","@aws-sdk/middleware-user-agent":"3.645.0","@aws-sdk/region-config-resolver":"3.614.0","@aws-sdk/types":"3.609.0","@aws-sdk/util-endpoints":"3.645.0","@aws-sdk/util-user-agent-browser":"3.609.0","@aws-sdk/util-user-agent-node":"3.614.0","@smithy/config-resolver":"^3.0.5","@smithy/core":"^2.4.0","@smithy/fetch-http-handler":"^3.2.4","@smithy/hash-node":"^3.0.3","@smithy/invalid-dependency":"^3.0.3","@smithy/middleware-content-length":"^3.0.5","@smithy/middleware-endpoint":"^3.1.0","@smithy/middleware-retry":"^3.0.15","@smithy/middleware-serde":"^3.0.3","@smithy/middleware-stack":"^3.0.3","@smithy/node-config-provider":"^3.1.4","@smithy/node-http-handler":"^3.1.4","@smithy/protocol-http":"^4.1.0","@smithy/smithy-client":"^3.2.0","@smithy/types":"^3.3.0","@smithy/url-parser":"^3.0.3","@smithy/util-base64":"^3.0.0","@smithy/util-body-length-browser":"^3.0.0","@smithy/util-body-length-node":"^3.0.0","@smithy/util-defaults-mode-browser":"^3.0.15","@smithy/util-defaults-mode-node":"^3.0.15","@smithy/util-endpoints":"^2.0.5","@smithy/util-middleware":"^3.0.3","@smithy/util-retry":"^3.0.3","@smithy/util-utf8":"^3.0.0","@smithy/util-waiter":"^3.1.2","tslib":"^2.6.2","uuid":"^9.0.1"},"devDependencies":{"@tsconfig/node16":"16.1.3","@types/node":"^16.18.96","@types/uuid":"^9.0.4","concurrently":"7.0.0","downlevel-dts":"0.10.1","rimraf":"3.0.2","typescript":"~4.9.5"},"engines":{"node":">=16.0.0"},"typesVersions":{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},"files":["dist-*/**"],"author":{"name":"AWS SDK for JavaScript Team","url":"https://aws.amazon.com/javascript/"},"license":"Apache-2.0","browser":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.browser"},"react-native":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.native"},"homepage":"https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-cloudformation","repository":{"type":"git","url":"https://github.com/aws/aws-sdk-js-v3.git","directory":"clients/client-cloudformation"}}'); - -/***/ }), - -/***/ 97480: -/***/ ((module) => { - -"use strict"; -module.exports = JSON.parse('{"name":"@aws-sdk/client-sso","description":"AWS SDK for JavaScript Sso Client for Node.js, Browser and React Native","version":"3.787.0","scripts":{"build":"concurrently \'yarn:build:cjs\' \'yarn:build:es\' \'yarn:build:types\'","build:cjs":"node ../../scripts/compilation/inline client-sso","build:es":"tsc -p tsconfig.es.json","build:include:deps":"lerna run --scope $npm_package_name --include-dependencies build","build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4","clean":"rimraf ./dist-* && rimraf *.tsbuildinfo","extract:docs":"api-extractor run --local","generate:client":"node ../../scripts/generate-clients/single-service --solo sso"},"main":"./dist-cjs/index.js","types":"./dist-types/index.d.ts","module":"./dist-es/index.js","sideEffects":false,"dependencies":{"@aws-crypto/sha256-browser":"5.2.0","@aws-crypto/sha256-js":"5.2.0","@aws-sdk/core":"3.775.0","@aws-sdk/middleware-host-header":"3.775.0","@aws-sdk/middleware-logger":"3.775.0","@aws-sdk/middleware-recursion-detection":"3.775.0","@aws-sdk/middleware-user-agent":"3.787.0","@aws-sdk/region-config-resolver":"3.775.0","@aws-sdk/types":"3.775.0","@aws-sdk/util-endpoints":"3.787.0","@aws-sdk/util-user-agent-browser":"3.775.0","@aws-sdk/util-user-agent-node":"3.787.0","@smithy/config-resolver":"^4.1.0","@smithy/core":"^3.2.0","@smithy/fetch-http-handler":"^5.0.2","@smithy/hash-node":"^4.0.2","@smithy/invalid-dependency":"^4.0.2","@smithy/middleware-content-length":"^4.0.2","@smithy/middleware-endpoint":"^4.1.0","@smithy/middleware-retry":"^4.1.0","@smithy/middleware-serde":"^4.0.3","@smithy/middleware-stack":"^4.0.2","@smithy/node-config-provider":"^4.0.2","@smithy/node-http-handler":"^4.0.4","@smithy/protocol-http":"^5.1.0","@smithy/smithy-client":"^4.2.0","@smithy/types":"^4.2.0","@smithy/url-parser":"^4.0.2","@smithy/util-base64":"^4.0.0","@smithy/util-body-length-browser":"^4.0.0","@smithy/util-body-length-node":"^4.0.0","@smithy/util-defaults-mode-browser":"^4.0.8","@smithy/util-defaults-mode-node":"^4.0.8","@smithy/util-endpoints":"^3.0.2","@smithy/util-middleware":"^4.0.2","@smithy/util-retry":"^4.0.2","@smithy/util-utf8":"^4.0.0","tslib":"^2.6.2"},"devDependencies":{"@tsconfig/node18":"18.2.4","@types/node":"^18.19.69","concurrently":"7.0.0","downlevel-dts":"0.10.1","rimraf":"3.0.2","typescript":"~5.2.2"},"engines":{"node":">=18.0.0"},"typesVersions":{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},"files":["dist-*/**"],"author":{"name":"AWS SDK for JavaScript Team","url":"https://aws.amazon.com/javascript/"},"license":"Apache-2.0","browser":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.browser"},"react-native":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.native"},"homepage":"https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-sso","repository":{"type":"git","url":"https://github.com/aws/aws-sdk-js-v3.git","directory":"clients/client-sso"}}'); - -/***/ }), - -/***/ 80280: -/***/ ((module) => { - -"use strict"; -module.exports = JSON.parse('{"name":"@aws-sdk/client-marketplace-catalog","description":"AWS SDK for JavaScript Marketplace Catalog Client for Node.js, Browser and React Native","version":"3.787.0","scripts":{"build":"concurrently \'yarn:build:cjs\' \'yarn:build:es\' \'yarn:build:types\'","build:cjs":"node ../../scripts/compilation/inline client-marketplace-catalog","build:es":"tsc -p tsconfig.es.json","build:include:deps":"lerna run --scope $npm_package_name --include-dependencies build","build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4","clean":"rimraf ./dist-* && rimraf *.tsbuildinfo","extract:docs":"api-extractor run --local","generate:client":"node ../../scripts/generate-clients/single-service --solo marketplace-catalog"},"main":"./dist-cjs/index.js","types":"./dist-types/index.d.ts","module":"./dist-es/index.js","sideEffects":false,"dependencies":{"@aws-crypto/sha256-browser":"5.2.0","@aws-crypto/sha256-js":"5.2.0","@aws-sdk/core":"3.775.0","@aws-sdk/credential-provider-node":"3.787.0","@aws-sdk/middleware-host-header":"3.775.0","@aws-sdk/middleware-logger":"3.775.0","@aws-sdk/middleware-recursion-detection":"3.775.0","@aws-sdk/middleware-user-agent":"3.787.0","@aws-sdk/region-config-resolver":"3.775.0","@aws-sdk/types":"3.775.0","@aws-sdk/util-endpoints":"3.787.0","@aws-sdk/util-user-agent-browser":"3.775.0","@aws-sdk/util-user-agent-node":"3.787.0","@smithy/config-resolver":"^4.1.0","@smithy/core":"^3.2.0","@smithy/fetch-http-handler":"^5.0.2","@smithy/hash-node":"^4.0.2","@smithy/invalid-dependency":"^4.0.2","@smithy/middleware-content-length":"^4.0.2","@smithy/middleware-endpoint":"^4.1.0","@smithy/middleware-retry":"^4.1.0","@smithy/middleware-serde":"^4.0.3","@smithy/middleware-stack":"^4.0.2","@smithy/node-config-provider":"^4.0.2","@smithy/node-http-handler":"^4.0.4","@smithy/protocol-http":"^5.1.0","@smithy/smithy-client":"^4.2.0","@smithy/types":"^4.2.0","@smithy/url-parser":"^4.0.2","@smithy/util-base64":"^4.0.0","@smithy/util-body-length-browser":"^4.0.0","@smithy/util-body-length-node":"^4.0.0","@smithy/util-defaults-mode-browser":"^4.0.8","@smithy/util-defaults-mode-node":"^4.0.8","@smithy/util-endpoints":"^3.0.2","@smithy/util-middleware":"^4.0.2","@smithy/util-retry":"^4.0.2","@smithy/util-utf8":"^4.0.0","@types/uuid":"^9.0.1","tslib":"^2.6.2","uuid":"^9.0.1"},"devDependencies":{"@tsconfig/node18":"18.2.4","@types/node":"^18.19.69","concurrently":"7.0.0","downlevel-dts":"0.10.1","rimraf":"3.0.2","typescript":"~5.2.2"},"engines":{"node":">=18.0.0"},"typesVersions":{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},"files":["dist-*/**"],"author":{"name":"AWS SDK for JavaScript Team","url":"https://aws.amazon.com/javascript/"},"license":"Apache-2.0","browser":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.browser"},"react-native":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.native"},"homepage":"https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-marketplace-catalog","repository":{"type":"git","url":"https://github.com/aws/aws-sdk-js-v3.git","directory":"clients/client-marketplace-catalog"}}'); - -/***/ }), - -/***/ 69722: -/***/ ((module) => { - -"use strict"; -module.exports = JSON.parse('{"name":"@aws-sdk/client-sso-oidc","description":"AWS SDK for JavaScript Sso Oidc Client for Node.js, Browser and React Native","version":"3.645.0","scripts":{"build":"concurrently \'yarn:build:cjs\' \'yarn:build:es\' \'yarn:build:types\'","build:cjs":"node ../../scripts/compilation/inline client-sso-oidc","build:es":"tsc -p tsconfig.es.json","build:include:deps":"lerna run --scope $npm_package_name --include-dependencies build","build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4","clean":"rimraf ./dist-* && rimraf *.tsbuildinfo","extract:docs":"api-extractor run --local","generate:client":"node ../../scripts/generate-clients/single-service --solo sso-oidc"},"main":"./dist-cjs/index.js","types":"./dist-types/index.d.ts","module":"./dist-es/index.js","sideEffects":false,"dependencies":{"@aws-crypto/sha256-browser":"5.2.0","@aws-crypto/sha256-js":"5.2.0","@aws-sdk/core":"3.635.0","@aws-sdk/credential-provider-node":"3.645.0","@aws-sdk/middleware-host-header":"3.620.0","@aws-sdk/middleware-logger":"3.609.0","@aws-sdk/middleware-recursion-detection":"3.620.0","@aws-sdk/middleware-user-agent":"3.645.0","@aws-sdk/region-config-resolver":"3.614.0","@aws-sdk/types":"3.609.0","@aws-sdk/util-endpoints":"3.645.0","@aws-sdk/util-user-agent-browser":"3.609.0","@aws-sdk/util-user-agent-node":"3.614.0","@smithy/config-resolver":"^3.0.5","@smithy/core":"^2.4.0","@smithy/fetch-http-handler":"^3.2.4","@smithy/hash-node":"^3.0.3","@smithy/invalid-dependency":"^3.0.3","@smithy/middleware-content-length":"^3.0.5","@smithy/middleware-endpoint":"^3.1.0","@smithy/middleware-retry":"^3.0.15","@smithy/middleware-serde":"^3.0.3","@smithy/middleware-stack":"^3.0.3","@smithy/node-config-provider":"^3.1.4","@smithy/node-http-handler":"^3.1.4","@smithy/protocol-http":"^4.1.0","@smithy/smithy-client":"^3.2.0","@smithy/types":"^3.3.0","@smithy/url-parser":"^3.0.3","@smithy/util-base64":"^3.0.0","@smithy/util-body-length-browser":"^3.0.0","@smithy/util-body-length-node":"^3.0.0","@smithy/util-defaults-mode-browser":"^3.0.15","@smithy/util-defaults-mode-node":"^3.0.15","@smithy/util-endpoints":"^2.0.5","@smithy/util-middleware":"^3.0.3","@smithy/util-retry":"^3.0.3","@smithy/util-utf8":"^3.0.0","tslib":"^2.6.2"},"devDependencies":{"@tsconfig/node16":"16.1.3","@types/node":"^16.18.96","concurrently":"7.0.0","downlevel-dts":"0.10.1","rimraf":"3.0.2","typescript":"~4.9.5"},"engines":{"node":">=16.0.0"},"typesVersions":{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},"files":["dist-*/**"],"author":{"name":"AWS SDK for JavaScript Team","url":"https://aws.amazon.com/javascript/"},"license":"Apache-2.0","peerDependencies":{"@aws-sdk/client-sts":"^3.645.0"},"browser":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.browser"},"react-native":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.native"},"homepage":"https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-sso-oidc","repository":{"type":"git","url":"https://github.com/aws/aws-sdk-js-v3.git","directory":"clients/client-sso-oidc"}}'); - -/***/ }), - -/***/ 91092: -/***/ ((module) => { - -"use strict"; -module.exports = JSON.parse('{"name":"@aws-sdk/client-sso","description":"AWS SDK for JavaScript Sso Client for Node.js, Browser and React Native","version":"3.645.0","scripts":{"build":"concurrently \'yarn:build:cjs\' \'yarn:build:es\' \'yarn:build:types\'","build:cjs":"node ../../scripts/compilation/inline client-sso","build:es":"tsc -p tsconfig.es.json","build:include:deps":"lerna run --scope $npm_package_name --include-dependencies build","build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4","clean":"rimraf ./dist-* && rimraf *.tsbuildinfo","extract:docs":"api-extractor run --local","generate:client":"node ../../scripts/generate-clients/single-service --solo sso"},"main":"./dist-cjs/index.js","types":"./dist-types/index.d.ts","module":"./dist-es/index.js","sideEffects":false,"dependencies":{"@aws-crypto/sha256-browser":"5.2.0","@aws-crypto/sha256-js":"5.2.0","@aws-sdk/core":"3.635.0","@aws-sdk/middleware-host-header":"3.620.0","@aws-sdk/middleware-logger":"3.609.0","@aws-sdk/middleware-recursion-detection":"3.620.0","@aws-sdk/middleware-user-agent":"3.645.0","@aws-sdk/region-config-resolver":"3.614.0","@aws-sdk/types":"3.609.0","@aws-sdk/util-endpoints":"3.645.0","@aws-sdk/util-user-agent-browser":"3.609.0","@aws-sdk/util-user-agent-node":"3.614.0","@smithy/config-resolver":"^3.0.5","@smithy/core":"^2.4.0","@smithy/fetch-http-handler":"^3.2.4","@smithy/hash-node":"^3.0.3","@smithy/invalid-dependency":"^3.0.3","@smithy/middleware-content-length":"^3.0.5","@smithy/middleware-endpoint":"^3.1.0","@smithy/middleware-retry":"^3.0.15","@smithy/middleware-serde":"^3.0.3","@smithy/middleware-stack":"^3.0.3","@smithy/node-config-provider":"^3.1.4","@smithy/node-http-handler":"^3.1.4","@smithy/protocol-http":"^4.1.0","@smithy/smithy-client":"^3.2.0","@smithy/types":"^3.3.0","@smithy/url-parser":"^3.0.3","@smithy/util-base64":"^3.0.0","@smithy/util-body-length-browser":"^3.0.0","@smithy/util-body-length-node":"^3.0.0","@smithy/util-defaults-mode-browser":"^3.0.15","@smithy/util-defaults-mode-node":"^3.0.15","@smithy/util-endpoints":"^2.0.5","@smithy/util-middleware":"^3.0.3","@smithy/util-retry":"^3.0.3","@smithy/util-utf8":"^3.0.0","tslib":"^2.6.2"},"devDependencies":{"@tsconfig/node16":"16.1.3","@types/node":"^16.18.96","concurrently":"7.0.0","downlevel-dts":"0.10.1","rimraf":"3.0.2","typescript":"~4.9.5"},"engines":{"node":">=16.0.0"},"typesVersions":{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},"files":["dist-*/**"],"author":{"name":"AWS SDK for JavaScript Team","url":"https://aws.amazon.com/javascript/"},"license":"Apache-2.0","browser":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.browser"},"react-native":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.native"},"homepage":"https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-sso","repository":{"type":"git","url":"https://github.com/aws/aws-sdk-js-v3.git","directory":"clients/client-sso"}}'); - -/***/ }), - -/***/ 7947: -/***/ ((module) => { - -"use strict"; -module.exports = JSON.parse('{"name":"@aws-sdk/client-sts","description":"AWS SDK for JavaScript Sts Client for Node.js, Browser and React Native","version":"3.645.0","scripts":{"build":"concurrently \'yarn:build:cjs\' \'yarn:build:es\' \'yarn:build:types\'","build:cjs":"node ../../scripts/compilation/inline client-sts","build:es":"tsc -p tsconfig.es.json","build:include:deps":"lerna run --scope $npm_package_name --include-dependencies build","build:types":"rimraf ./dist-types tsconfig.types.tsbuildinfo && tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4","clean":"rimraf ./dist-* && rimraf *.tsbuildinfo","extract:docs":"api-extractor run --local","generate:client":"node ../../scripts/generate-clients/single-service --solo sts","test":"yarn test:unit","test:unit":"jest"},"main":"./dist-cjs/index.js","types":"./dist-types/index.d.ts","module":"./dist-es/index.js","sideEffects":false,"dependencies":{"@aws-crypto/sha256-browser":"5.2.0","@aws-crypto/sha256-js":"5.2.0","@aws-sdk/client-sso-oidc":"3.645.0","@aws-sdk/core":"3.635.0","@aws-sdk/credential-provider-node":"3.645.0","@aws-sdk/middleware-host-header":"3.620.0","@aws-sdk/middleware-logger":"3.609.0","@aws-sdk/middleware-recursion-detection":"3.620.0","@aws-sdk/middleware-user-agent":"3.645.0","@aws-sdk/region-config-resolver":"3.614.0","@aws-sdk/types":"3.609.0","@aws-sdk/util-endpoints":"3.645.0","@aws-sdk/util-user-agent-browser":"3.609.0","@aws-sdk/util-user-agent-node":"3.614.0","@smithy/config-resolver":"^3.0.5","@smithy/core":"^2.4.0","@smithy/fetch-http-handler":"^3.2.4","@smithy/hash-node":"^3.0.3","@smithy/invalid-dependency":"^3.0.3","@smithy/middleware-content-length":"^3.0.5","@smithy/middleware-endpoint":"^3.1.0","@smithy/middleware-retry":"^3.0.15","@smithy/middleware-serde":"^3.0.3","@smithy/middleware-stack":"^3.0.3","@smithy/node-config-provider":"^3.1.4","@smithy/node-http-handler":"^3.1.4","@smithy/protocol-http":"^4.1.0","@smithy/smithy-client":"^3.2.0","@smithy/types":"^3.3.0","@smithy/url-parser":"^3.0.3","@smithy/util-base64":"^3.0.0","@smithy/util-body-length-browser":"^3.0.0","@smithy/util-body-length-node":"^3.0.0","@smithy/util-defaults-mode-browser":"^3.0.15","@smithy/util-defaults-mode-node":"^3.0.15","@smithy/util-endpoints":"^2.0.5","@smithy/util-middleware":"^3.0.3","@smithy/util-retry":"^3.0.3","@smithy/util-utf8":"^3.0.0","tslib":"^2.6.2"},"devDependencies":{"@tsconfig/node16":"16.1.3","@types/node":"^16.18.96","concurrently":"7.0.0","downlevel-dts":"0.10.1","rimraf":"3.0.2","typescript":"~4.9.5"},"engines":{"node":">=16.0.0"},"typesVersions":{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},"files":["dist-*/**"],"author":{"name":"AWS SDK for JavaScript Team","url":"https://aws.amazon.com/javascript/"},"license":"Apache-2.0","browser":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.browser"},"react-native":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.native"},"homepage":"https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-sts","repository":{"type":"git","url":"https://github.com/aws/aws-sdk-js-v3.git","directory":"clients/client-sts"}}'); - -/***/ }), - -/***/ 88842: -/***/ ((module) => { - -"use strict"; -module.exports = JSON.parse('{"name":"@aws-sdk/nested-clients","version":"3.787.0","description":"Nested clients for AWS SDK packages.","main":"./dist-cjs/index.js","module":"./dist-es/index.js","types":"./dist-types/index.d.ts","scripts":{"build":"yarn lint && concurrently \'yarn:build:cjs\' \'yarn:build:es\' \'yarn:build:types\'","build:cjs":"node ../../scripts/compilation/inline nested-clients","build:es":"tsc -p tsconfig.es.json","build:include:deps":"lerna run --scope $npm_package_name --include-dependencies build","build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4","clean":"rimraf ./dist-* && rimraf *.tsbuildinfo","lint":"node ../../scripts/validation/submodules-linter.js --pkg nested-clients","test":"yarn g:vitest run","test:watch":"yarn g:vitest watch"},"engines":{"node":">=18.0.0"},"author":{"name":"AWS SDK for JavaScript Team","url":"https://aws.amazon.com/javascript/"},"license":"Apache-2.0","dependencies":{"@aws-crypto/sha256-browser":"5.2.0","@aws-crypto/sha256-js":"5.2.0","@aws-sdk/core":"3.775.0","@aws-sdk/middleware-host-header":"3.775.0","@aws-sdk/middleware-logger":"3.775.0","@aws-sdk/middleware-recursion-detection":"3.775.0","@aws-sdk/middleware-user-agent":"3.787.0","@aws-sdk/region-config-resolver":"3.775.0","@aws-sdk/types":"3.775.0","@aws-sdk/util-endpoints":"3.787.0","@aws-sdk/util-user-agent-browser":"3.775.0","@aws-sdk/util-user-agent-node":"3.787.0","@smithy/config-resolver":"^4.1.0","@smithy/core":"^3.2.0","@smithy/fetch-http-handler":"^5.0.2","@smithy/hash-node":"^4.0.2","@smithy/invalid-dependency":"^4.0.2","@smithy/middleware-content-length":"^4.0.2","@smithy/middleware-endpoint":"^4.1.0","@smithy/middleware-retry":"^4.1.0","@smithy/middleware-serde":"^4.0.3","@smithy/middleware-stack":"^4.0.2","@smithy/node-config-provider":"^4.0.2","@smithy/node-http-handler":"^4.0.4","@smithy/protocol-http":"^5.1.0","@smithy/smithy-client":"^4.2.0","@smithy/types":"^4.2.0","@smithy/url-parser":"^4.0.2","@smithy/util-base64":"^4.0.0","@smithy/util-body-length-browser":"^4.0.0","@smithy/util-body-length-node":"^4.0.0","@smithy/util-defaults-mode-browser":"^4.0.8","@smithy/util-defaults-mode-node":"^4.0.8","@smithy/util-endpoints":"^3.0.2","@smithy/util-middleware":"^4.0.2","@smithy/util-retry":"^4.0.2","@smithy/util-utf8":"^4.0.0","tslib":"^2.6.2"},"devDependencies":{"concurrently":"7.0.0","downlevel-dts":"0.10.1","rimraf":"3.0.2","typescript":"~5.2.2"},"typesVersions":{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},"files":["./sso-oidc.d.ts","./sso-oidc.js","./sts.d.ts","./sts.js","dist-*/**"],"browser":{"./dist-es/submodules/sso-oidc/runtimeConfig":"./dist-es/submodules/sso-oidc/runtimeConfig.browser","./dist-es/submodules/sts/runtimeConfig":"./dist-es/submodules/sts/runtimeConfig.browser"},"react-native":{},"homepage":"https://github.com/aws/aws-sdk-js-v3/tree/main/packages/nested-clients","repository":{"type":"git","url":"https://github.com/aws/aws-sdk-js-v3.git","directory":"packages/nested-clients"},"exports":{"./sso-oidc":{"types":"./dist-types/submodules/sso-oidc/index.d.ts","module":"./dist-es/submodules/sso-oidc/index.js","node":"./dist-cjs/submodules/sso-oidc/index.js","import":"./dist-es/submodules/sso-oidc/index.js","require":"./dist-cjs/submodules/sso-oidc/index.js"},"./sts":{"types":"./dist-types/submodules/sts/index.d.ts","module":"./dist-es/submodules/sts/index.js","node":"./dist-cjs/submodules/sts/index.js","import":"./dist-es/submodules/sts/index.js","require":"./dist-cjs/submodules/sts/index.js"}}}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __nccwpck_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ var threw = true; -/******/ try { -/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __nccwpck_require__); -/******/ threw = false; -/******/ } finally { -/******/ if(threw) delete __webpack_module_cache__[moduleId]; -/******/ } -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/compat */ -/******/ -/******/ if (typeof __nccwpck_require__ !== 'undefined') __nccwpck_require__.ab = __dirname + "/"; -/******/ -/************************************************************************/ -/******/ -/******/ // startup -/******/ // Load entry module and return exports -/******/ // This entry module is referenced by other modules so it can't be inlined -/******/ var __webpack_exports__ = __nccwpck_require__(3109); -/******/ module.exports = __webpack_exports__; -/******/ -/******/ })() -; \ No newline at end of file + /***/ + } + + /******/ + } + /************************************************************************/ + /******/ // The module cache + /******/ var __webpack_module_cache__ = {} + /******/ + /******/ // The require function + /******/ function __nccwpck_require__(moduleId) { + /******/ // Check if module is in cache + /******/ var cachedModule = __webpack_module_cache__[moduleId] + /******/ if (cachedModule !== undefined) { + /******/ return cachedModule.exports + /******/ + } + /******/ // Create a new module (and put it into the cache) + /******/ var module = (__webpack_module_cache__[moduleId] = { + /******/ // no module.id needed + /******/ // no module.loaded needed + /******/ exports: {} + /******/ + }) + /******/ + /******/ // Execute the module function + /******/ var threw = true + /******/ try { + /******/ __webpack_modules__[moduleId].call( + module.exports, + module, + module.exports, + __nccwpck_require__ + ) + /******/ threw = false + /******/ + } finally { + /******/ if (threw) delete __webpack_module_cache__[moduleId] + /******/ + } + /******/ + /******/ // Return the exports of the module + /******/ return module.exports + /******/ + } + /******/ + /************************************************************************/ + /******/ /* webpack/runtime/compat */ + /******/ + /******/ if (typeof __nccwpck_require__ !== 'undefined') + __nccwpck_require__.ab = __dirname + '/' + /******/ + /************************************************************************/ + /******/ + /******/ // startup + /******/ // Load entry module and return exports + /******/ // This entry module is referenced by other modules so it can't be inlined + /******/ var __webpack_exports__ = __nccwpck_require__(3109) + /******/ module.exports = __webpack_exports__ + /******/ + /******/ +})() diff --git a/src/deploy.ts b/src/deploy.ts index d69b8ff..08a2c03 100644 --- a/src/deploy.ts +++ b/src/deploy.ts @@ -235,8 +235,10 @@ export async function deployStack( cfn.send( new CreateStackCommand({ StackName: params.StackName, - TemplateBody: params.TemplateBody, - TemplateURL: params.TemplateURL, + ...(params.TemplateBody + ? { TemplateBody: params.TemplateBody } + : {}), + ...(params.TemplateURL ? { TemplateURL: params.TemplateURL } : {}), Parameters: params.Parameters, Capabilities: params.Capabilities, ResourceTypes: params.ResourceTypes, @@ -268,8 +270,10 @@ export async function deployStack( Description: changeSetDescription, ...{ StackName: params.StackName, - TemplateBody: params.TemplateBody, - TemplateURL: params.TemplateURL, + ...(params.TemplateBody + ? { TemplateBody: params.TemplateBody } + : {}), + ...(params.TemplateURL ? { TemplateURL: params.TemplateURL } : {}), Parameters: params.Parameters, Capabilities: params.Capabilities, ResourceTypes: params.ResourceTypes, diff --git a/src/main.ts b/src/main.ts index 768889c..f93bb1e 100644 --- a/src/main.ts +++ b/src/main.ts @@ -161,6 +161,22 @@ export async function run(): Promise { ? template : path.join(GITHUB_WORKSPACE, template) templateBody = fs.readFileSync(templateFilePath, 'utf8') + + // CloudFormation has a 51,200 byte limit for template body + const templateSizeBytes = Buffer.byteLength(templateBody, 'utf8') + const maxTemplateSizeBytes = 51200 + + if (templateSizeBytes > maxTemplateSizeBytes) { + throw new Error( + `Template size (${templateSizeBytes} bytes) exceeds CloudFormation limit (${maxTemplateSizeBytes} bytes). ` + + `Please upload your template to S3 and use the S3 URL instead. ` + + `You can use the 'template' input with an S3 URL like: https://s3.amazonaws.com/bucket/template.yml` + ) + } + + core.debug( + `Template size: ${templateSizeBytes} bytes (limit: ${maxTemplateSizeBytes} bytes)` + ) } // CloudFormation Stack Parameter for the creation or update @@ -171,8 +187,8 @@ export async function run(): Promise { NotificationARNs: notificationARNs, DisableRollback: disableRollback, TimeoutInMinutes: timeoutInMinutes, - TemplateBody: templateBody, - TemplateURL: templateUrl, + ...(templateBody ? { TemplateBody: templateBody } : {}), + ...(templateUrl ? { TemplateURL: templateUrl } : {}), Tags: tags, EnableTerminationProtection: terminationProtections, IncludeNestedStacksChangeSet: includeNestedStacksChangeSet