411 lines
11 KiB
JavaScript
411 lines
11 KiB
JavaScript
"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);
|
|
|
|
// src/aws.ts
|
|
|
|
|
|
// src/lib/aws/isVirtualHostableS3Bucket.ts
|
|
|
|
|
|
// src/lib/isIpAddress.ts
|
|
var import_util_endpoints = require("@smithy/util-endpoints");
|
|
|
|
// 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 parseArn = /* @__PURE__ */ __name((value) => {
|
|
const segments = value.split(":");
|
|
if (segments.length < 6)
|
|
return null;
|
|
const [arn, partition2, service, region, accountId, ...resourceId] = segments;
|
|
if (arn !== "arn" || partition2 === "" || service === "" || resourceId[0] === "")
|
|
return null;
|
|
return {
|
|
partition: partition2,
|
|
service,
|
|
region,
|
|
accountId,
|
|
resourceId: resourceId[0].includes("/") ? resourceId[0].split("/") : 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)\\-\\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)"
|
|
},
|
|
"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");
|
|
|
|
// 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
|
|
|
|
// Annotate the CommonJS export names for ESM import in node:
|
|
|
|
0 && (module.exports = {
|
|
awsEndpointFunctions,
|
|
partition,
|
|
setPartitionInfo,
|
|
useDefaultPartitionInfo,
|
|
getUserAgentPrefix,
|
|
isIpAddress,
|
|
resolveEndpoint,
|
|
EndpointError
|
|
});
|
|
|