@aws-sdk/middleware-sdk-s3-control 3.34.0 → 3.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist-cjs/configurations.js +15 -0
  3. package/dist-cjs/constants.js +9 -0
  4. package/{dist/cjs → dist-cjs}/index.js +1 -1
  5. package/{dist/cjs → dist-cjs}/process-arnables-plugin/index.js +1 -1
  6. package/dist-cjs/process-arnables-plugin/parse-outpost-arnables.js +95 -0
  7. package/dist-cjs/process-arnables-plugin/plugin.js +13 -0
  8. package/dist-cjs/process-arnables-plugin/update-arnables-request.js +39 -0
  9. package/dist-cjs/redirect-from-postid.js +30 -0
  10. package/dist-es/configurations.js +7 -0
  11. package/dist-es/constants.js +6 -0
  12. package/dist-es/index.js +4 -0
  13. package/dist-es/process-arnables-plugin/index.js +4 -0
  14. package/dist-es/process-arnables-plugin/parse-outpost-arnables.js +108 -0
  15. package/dist-es/process-arnables-plugin/plugin.js +9 -0
  16. package/dist-es/process-arnables-plugin/update-arnables-request.js +41 -0
  17. package/dist-es/redirect-from-postid.js +30 -0
  18. package/{dist/types → dist-types}/configurations.d.ts +0 -0
  19. package/{dist/types → dist-types}/constants.d.ts +0 -0
  20. package/{dist/types → dist-types}/index.d.ts +0 -0
  21. package/{dist/types → dist-types}/process-arnables-plugin/index.d.ts +0 -0
  22. package/{dist/types → dist-types}/process-arnables-plugin/parse-outpost-arnables.d.ts +0 -0
  23. package/{dist/types → dist-types}/process-arnables-plugin/plugin.d.ts +0 -0
  24. package/{dist/types → dist-types}/process-arnables-plugin/update-arnables-request.d.ts +0 -0
  25. package/{dist/types → dist-types}/redirect-from-postid.d.ts +0 -0
  26. package/{dist/types → dist-types}/ts3.4/configurations.d.ts +0 -0
  27. package/{dist/types → dist-types}/ts3.4/constants.d.ts +0 -0
  28. package/{dist/types → dist-types}/ts3.4/index.d.ts +0 -0
  29. package/{dist/types → dist-types}/ts3.4/process-arnables-plugin/index.d.ts +0 -0
  30. package/{dist/types → dist-types}/ts3.4/process-arnables-plugin/parse-outpost-arnables.d.ts +0 -0
  31. package/{dist/types → dist-types}/ts3.4/process-arnables-plugin/plugin.d.ts +0 -0
  32. package/{dist/types → dist-types}/ts3.4/process-arnables-plugin/update-arnables-request.d.ts +0 -0
  33. package/{dist/types → dist-types}/ts3.4/redirect-from-postid.d.ts +0 -0
  34. package/package.json +12 -12
  35. package/tsconfig.cjs.json +1 -1
  36. package/tsconfig.es.json +1 -1
  37. package/tsconfig.types.json +1 -1
  38. package/dist/cjs/configurations.js +0 -15
  39. package/dist/cjs/constants.js +0 -9
  40. package/dist/cjs/process-arnables-plugin/parse-outpost-arnables.js +0 -95
  41. package/dist/cjs/process-arnables-plugin/plugin.js +0 -13
  42. package/dist/cjs/process-arnables-plugin/update-arnables-request.js +0 -39
  43. package/dist/cjs/redirect-from-postid.js +0 -30
  44. package/dist/es/configurations.js +0 -7
  45. package/dist/es/constants.js +0 -6
  46. package/dist/es/index.js +0 -4
  47. package/dist/es/process-arnables-plugin/index.js +0 -4
  48. package/dist/es/process-arnables-plugin/parse-outpost-arnables.js +0 -121
  49. package/dist/es/process-arnables-plugin/plugin.js +0 -9
  50. package/dist/es/process-arnables-plugin/update-arnables-request.js +0 -46
  51. package/dist/es/redirect-from-postid.js +0 -34
package/package.json CHANGED
@@ -1,31 +1,31 @@
1
1
  {
2
2
  "name": "@aws-sdk/middleware-sdk-s3-control",
3
- "version": "3.34.0",
3
+ "version": "3.35.0",
4
4
  "scripts": {
5
5
  "build": "yarn build:cjs && yarn build:es && yarn build:types",
6
6
  "build:cjs": "tsc -p tsconfig.cjs.json",
7
7
  "build:es": "tsc -p tsconfig.es.json",
8
8
  "build:types": "tsc -p tsconfig.types.json",
9
- "downlevel-dts": "downlevel-dts dist/types dist/types/ts3.4",
9
+ "downlevel-dts": "downlevel-dts dist-types dist-types/ts3.4",
10
10
  "test": "jest"
11
11
  },
12
- "main": "./dist/cjs/index.js",
13
- "module": "./dist/es/index.js",
14
- "types": "./dist/types/index.d.ts",
12
+ "main": "./dist-cjs/index.js",
13
+ "module": "./dist-es/index.js",
14
+ "types": "./dist-types/index.d.ts",
15
15
  "author": {
16
16
  "name": "AWS SDK for JavaScript Team",
17
17
  "url": "https://aws.amazon.com/javascript/"
18
18
  },
19
19
  "license": "Apache-2.0",
20
20
  "dependencies": {
21
- "@aws-sdk/middleware-bucket-endpoint": "3.34.0",
22
- "@aws-sdk/protocol-http": "3.34.0",
23
- "@aws-sdk/types": "3.34.0",
24
- "@aws-sdk/util-arn-parser": "3.34.0",
21
+ "@aws-sdk/middleware-bucket-endpoint": "3.35.0",
22
+ "@aws-sdk/protocol-http": "3.35.0",
23
+ "@aws-sdk/types": "3.35.0",
24
+ "@aws-sdk/util-arn-parser": "3.35.0",
25
25
  "tslib": "^2.3.0"
26
26
  },
27
27
  "devDependencies": {
28
- "@aws-sdk/middleware-stack": "3.34.0",
28
+ "@aws-sdk/middleware-stack": "3.35.0",
29
29
  "@types/jest": "^26.0.4",
30
30
  "jest": "^26.1.0",
31
31
  "typescript": "~4.3.5"
@@ -35,8 +35,8 @@
35
35
  },
36
36
  "typesVersions": {
37
37
  "<4.0": {
38
- "dist/types/*": [
39
- "dist/types/ts3.4/*"
38
+ "dist-types/*": [
39
+ "dist-types/ts3.4/*"
40
40
  ]
41
41
  }
42
42
  },
package/tsconfig.cjs.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "compilerOptions": {
3
3
  "baseUrl": ".",
4
- "outDir": "dist/cjs",
4
+ "outDir": "dist-cjs",
5
5
  "rootDir": "src"
6
6
  },
7
7
  "extends": "../../tsconfig.cjs.json",
package/tsconfig.es.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "compilerOptions": {
3
3
  "baseUrl": ".",
4
4
  "lib": ["es5", "es2015.promise", "es2015.collection", "es2015.iterable", "es2015.symbol.wellknown"],
5
- "outDir": "dist/es",
5
+ "outDir": "dist-es",
6
6
  "rootDir": "src"
7
7
  },
8
8
  "extends": "../../tsconfig.es.json",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "compilerOptions": {
3
3
  "baseUrl": ".",
4
- "declarationDir": "dist/types",
4
+ "declarationDir": "dist-types",
5
5
  "rootDir": "src"
6
6
  },
7
7
  "extends": "../../tsconfig.types.json",
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resolveS3ControlConfig = exports.NODE_USE_ARN_REGION_CONFIG_OPTIONS = void 0;
4
- var middleware_bucket_endpoint_1 = require("@aws-sdk/middleware-bucket-endpoint");
5
- Object.defineProperty(exports, "NODE_USE_ARN_REGION_CONFIG_OPTIONS", { enumerable: true, get: function () { return middleware_bucket_endpoint_1.NODE_USE_ARN_REGION_CONFIG_OPTIONS; } });
6
- function resolveS3ControlConfig(input) {
7
- const { useDualstackEndpoint = false, useArnRegion = false } = input;
8
- return {
9
- ...input,
10
- useDualstackEndpoint,
11
- useArnRegion: typeof useArnRegion === "function" ? useArnRegion : () => Promise.resolve(useArnRegion),
12
- };
13
- }
14
- exports.resolveS3ControlConfig = resolveS3ControlConfig;
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlndXJhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0Esa0ZBQXlGO0FBQWhGLGdKQUFBLGtDQUFrQyxPQUFBO0FBNEMzQyxTQUFnQixzQkFBc0IsQ0FDcEMsS0FBb0Q7SUFFcEQsTUFBTSxFQUFFLG9CQUFvQixHQUFHLEtBQUssRUFBRSxZQUFZLEdBQUcsS0FBSyxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBQ3JFLE9BQU87UUFDTCxHQUFHLEtBQUs7UUFDUixvQkFBb0I7UUFDcEIsWUFBWSxFQUFFLE9BQU8sWUFBWSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQztLQUN0RyxDQUFDO0FBQ0osQ0FBQztBQVRELHdEQVNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvdmlkZXIsIFJlZ2lvbkluZm9Qcm92aWRlciB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuZXhwb3J0IHsgTk9ERV9VU0VfQVJOX1JFR0lPTl9DT05GSUdfT1BUSU9OUyB9IGZyb20gXCJAYXdzLXNkay9taWRkbGV3YXJlLWJ1Y2tldC1lbmRwb2ludFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFMzQ29udHJvbElucHV0Q29uZmlnIHtcbiAgLyoqXG4gICAqIEVuYWJsZXMgSVB2Ni9JUHY0IGR1YWxzdGFjayBlbmRwb2ludC4gV2hlbiBhIEROUyBsb29rdXAgaXMgcGVyZm9ybWVkIG9uIGFuIGVuZHBvaW50IG9mIHRoaXMgdHlwZSwgaXQgcmV0dXJucyBhbiDigJxB4oCdIHJlY29yZCB3aXRoIGFuIElQdjQgYWRkcmVzcyBhbmQgYW4g4oCcQUFBQeKAnSByZWNvcmQgd2l0aCBhbiBJUHY2IGFkZHJlc3MuIEluIG1vc3QgY2FzZXMgdGhlIG5ldHdvcmsgc3RhY2sgaW4gdGhlIGNsaWVudCBlbnZpcm9ubWVudCB3aWxsIGF1dG9tYXRpY2FsbHkgcHJlZmVyIHRoZSBBQUFBIHJlY29yZCBhbmQgbWFrZSBhIGNvbm5lY3Rpb24gdXNpbmcgdGhlIElQdjYgYWRkcmVzcy4gTm90ZSwgaG93ZXZlciwgdGhhdCBjdXJyZW50bHkgb24gV2luZG93cywgdGhlIElQdjQgYWRkcmVzcyB3aWxsIGJlIHByZWZlcnJlZC5cbiAgICovXG4gIHVzZUR1YWxzdGFja0VuZHBvaW50PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gb3ZlcnJpZGUgdGhlIHJlcXVlc3QgcmVnaW9uIHdpdGggdGhlIHJlZ2lvbiBpbmZlcnJlZCBmcm9tIHJlcXVlc3RlZCByZXNvdXJjZSdzIEFSTi4gRGVmYXVsdHMgdG8gZmFsc2VcbiAgICovXG4gIHVzZUFyblJlZ2lvbj86IGJvb2xlYW4gfCBQcm92aWRlcjxib29sZWFuPjtcbn1cblxuaW50ZXJmYWNlIFByZXZpb3VzbHlSZXNvbHZlZCB7XG4gIGlzQ3VzdG9tRW5kcG9pbnQ6IGJvb2xlYW47XG4gIHJlZ2lvbjogUHJvdmlkZXI8c3RyaW5nPjtcbiAgcmVnaW9uSW5mb1Byb3ZpZGVyOiBSZWdpb25JbmZvUHJvdmlkZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUzNDb250cm9sUmVzb2x2ZWRDb25maWcge1xuICAvKipcbiAgICogV2hldGhlciB0aGUgZW5kcG9pbnQgaXMgc3BlY2lmaWVkIGJ5IGNhbGxlci5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBpc0N1c3RvbUVuZHBvaW50OiBib29sZWFuO1xuICAvKipcbiAgICogUmVzb2x2ZWQgdmFsdWUgZm9yIGlucHV0IGNvbmZpZyB7QGxpbmsgUzNDb250cm9sSW5wdXRDb25maWcudXNlRHVhbHN0YWNrRW5kcG9pbnR9XG4gICAqL1xuICB1c2VEdWFsc3RhY2tFbmRwb2ludDogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFJlc29sdmVkIHZhbHVlIGZvciBpbnB1dCBjb25maWcge0BsaW5rIFMzQ29udHJvbElucHV0Q29uZmlnLnVzZUFyblJlZ2lvbn1cbiAgICovXG4gIHVzZUFyblJlZ2lvbjogUHJvdmlkZXI8Ym9vbGVhbj47XG4gIC8qKlxuICAgKiBSZXNvbHZlZCB2YWx1ZSBmb3IgaW5wdXQgY29uZmlnIHtAbGluayBSZWdpb25JbnB1dENvbmZpZy5yZWdpb259XG4gICAqL1xuICByZWdpb246IFByb3ZpZGVyPHN0cmluZz47XG4gIC8qKlxuICAgKiBGZXRjaCByZWxhdGVkIGhvc3RuYW1lLCBzaWduaW5nIG5hbWUgb3Igc2lnbmluZyByZWdpb24gd2l0aCBnaXZlbiByZWdpb24uXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcmVnaW9uSW5mb1Byb3ZpZGVyOiBSZWdpb25JbmZvUHJvdmlkZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlUzNDb250cm9sQ29uZmlnPFQ+KFxuICBpbnB1dDogVCAmIFByZXZpb3VzbHlSZXNvbHZlZCAmIFMzQ29udHJvbElucHV0Q29uZmlnXG4pOiBUICYgUzNDb250cm9sUmVzb2x2ZWRDb25maWcge1xuICBjb25zdCB7IHVzZUR1YWxzdGFja0VuZHBvaW50ID0gZmFsc2UsIHVzZUFyblJlZ2lvbiA9IGZhbHNlIH0gPSBpbnB1dDtcbiAgcmV0dXJuIHtcbiAgICAuLi5pbnB1dCxcbiAgICB1c2VEdWFsc3RhY2tFbmRwb2ludCxcbiAgICB1c2VBcm5SZWdpb246IHR5cGVvZiB1c2VBcm5SZWdpb24gPT09IFwiZnVuY3Rpb25cIiA/IHVzZUFyblJlZ2lvbiA6ICgpID0+IFByb21pc2UucmVzb2x2ZSh1c2VBcm5SZWdpb24pLFxuICB9O1xufVxuIl19
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CONTEXT_SIGNING_REGION = exports.CONTEXT_SIGNING_SERVICE = exports.CONTEXT_ARN_REGION = exports.CONTEXT_ACCOUNT_ID = exports.CONTEXT_OUTPOST_ID = void 0;
4
- exports.CONTEXT_OUTPOST_ID = "outpost_id";
5
- exports.CONTEXT_ACCOUNT_ID = "account_id";
6
- exports.CONTEXT_ARN_REGION = "outpost_arn_region";
7
- exports.CONTEXT_SIGNING_SERVICE = "signing_service";
8
- exports.CONTEXT_SIGNING_REGION = "signing_region";
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLGtCQUFrQixHQUFHLFlBQVksQ0FBQztBQUNsQyxRQUFBLGtCQUFrQixHQUFHLFlBQVksQ0FBQztBQUNsQyxRQUFBLGtCQUFrQixHQUFHLG9CQUFvQixDQUFDO0FBQzFDLFFBQUEsdUJBQXVCLEdBQUcsaUJBQWlCLENBQUM7QUFDNUMsUUFBQSxzQkFBc0IsR0FBRyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBDT05URVhUX09VVFBPU1RfSUQgPSBcIm91dHBvc3RfaWRcIjtcbmV4cG9ydCBjb25zdCBDT05URVhUX0FDQ09VTlRfSUQgPSBcImFjY291bnRfaWRcIjtcbmV4cG9ydCBjb25zdCBDT05URVhUX0FSTl9SRUdJT04gPSBcIm91dHBvc3RfYXJuX3JlZ2lvblwiO1xuZXhwb3J0IGNvbnN0IENPTlRFWFRfU0lHTklOR19TRVJWSUNFID0gXCJzaWduaW5nX3NlcnZpY2VcIjtcbmV4cG9ydCBjb25zdCBDT05URVhUX1NJR05JTkdfUkVHSU9OID0gXCJzaWduaW5nX3JlZ2lvblwiO1xuIl19
@@ -1,95 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseOutpostArnablesMiddleawareOptions = exports.parseOutpostArnablesMiddleaware = void 0;
4
- const middleware_bucket_endpoint_1 = require("@aws-sdk/middleware-bucket-endpoint");
5
- const util_arn_parser_1 = require("@aws-sdk/util-arn-parser");
6
- const constants_1 = require("../constants");
7
- const parseOutpostArnablesMiddleaware = (options) => (next, context) => async (args) => {
8
- const { input } = args;
9
- const parameter = input.Name && util_arn_parser_1.validate(input.Name) ? "Name" : input.Bucket && util_arn_parser_1.validate(input.Bucket) ? "Bucket" : undefined;
10
- if (!parameter)
11
- return next(args);
12
- const clientRegion = await options.region();
13
- const { regionInfoProvider } = options;
14
- const useArnRegion = await options.useArnRegion();
15
- const baseRegion = middleware_bucket_endpoint_1.getPseudoRegion(clientRegion);
16
- const { partition: clientPartition, signingRegion = baseRegion } = (await regionInfoProvider(baseRegion));
17
- const validatorOptions = {
18
- useDualstackEndpoint: options.useDualstackEndpoint,
19
- clientRegion,
20
- clientPartition,
21
- signingRegion,
22
- useArnRegion,
23
- };
24
- let arn;
25
- if (parameter === "Name") {
26
- arn = util_arn_parser_1.parse(input.Name);
27
- validateOutpostsArn(arn, validatorOptions);
28
- const { outpostId, accesspointName } = parseOutpostsAccessPointArnResource(arn.resource);
29
- input.Name = accesspointName;
30
- context[constants_1.CONTEXT_OUTPOST_ID] = outpostId;
31
- }
32
- else {
33
- arn = util_arn_parser_1.parse(input.Bucket);
34
- validateOutpostsArn(arn, validatorOptions);
35
- const { outpostId, bucketName } = parseOutpostBucketArnResource(arn.resource);
36
- input.Bucket = bucketName;
37
- context[constants_1.CONTEXT_OUTPOST_ID] = outpostId;
38
- }
39
- context[constants_1.CONTEXT_SIGNING_SERVICE] = arn.service;
40
- context[constants_1.CONTEXT_SIGNING_REGION] = useArnRegion ? arn.region : signingRegion;
41
- if (!input.AccountId) {
42
- input.AccountId = arn.accountId;
43
- }
44
- else if (input.AccountId !== arn.accountId) {
45
- throw new Error(`AccountId is incompatible with account id inferred from ${parameter}`);
46
- }
47
- if (useArnRegion)
48
- context[constants_1.CONTEXT_ARN_REGION] = arn.region;
49
- return next(args);
50
- };
51
- exports.parseOutpostArnablesMiddleaware = parseOutpostArnablesMiddleaware;
52
- exports.parseOutpostArnablesMiddleawareOptions = {
53
- step: "initialize",
54
- tags: ["CONVERT_ARN", "OUTPOST_BUCKET_ARN", "OUTPOST_ACCESS_POINT_ARN", "OUTPOST"],
55
- name: "parseOutpostArnablesMiddleaware",
56
- };
57
- const validateOutpostsArn = (arn, { clientRegion, signingRegion, clientPartition, useArnRegion, useDualstackEndpoint }) => {
58
- const { service, partition, accountId, region } = arn;
59
- middleware_bucket_endpoint_1.validateOutpostService(service);
60
- middleware_bucket_endpoint_1.validatePartition(partition, { clientPartition });
61
- middleware_bucket_endpoint_1.validateAccountId(accountId);
62
- middleware_bucket_endpoint_1.validateRegion(region, {
63
- useArnRegion,
64
- clientRegion,
65
- clientSigningRegion: signingRegion,
66
- });
67
- middleware_bucket_endpoint_1.validateNoDualstack(useDualstackEndpoint);
68
- if (!useArnRegion)
69
- middleware_bucket_endpoint_1.validateNoFIPS(clientRegion);
70
- };
71
- const parseOutpostsAccessPointArnResource = (resource) => {
72
- const { outpostId, accesspointName } = middleware_bucket_endpoint_1.getArnResources(resource);
73
- if (!outpostId) {
74
- throw new Error("ARN resource should begin with 'outpost'");
75
- }
76
- return {
77
- outpostId,
78
- accesspointName,
79
- };
80
- };
81
- const parseOutpostBucketArnResource = (resource) => {
82
- const delimiter = resource.includes(":") ? ":" : "/";
83
- const [resourceType, ...rest] = resource.split(delimiter);
84
- if (resourceType === "outpost") {
85
- if (!rest[0] || rest[1] !== "bucket" || !rest[2] || rest.length !== 3) {
86
- throw new Error(`Outpost Bucket ARN should have resource outpost${delimiter}{outpostId}${delimiter}bucket${delimiter}{bucketName}`);
87
- }
88
- const [outpostId, _, bucketName] = rest;
89
- return { outpostId, bucketName };
90
- }
91
- else {
92
- throw new Error(`ARN resource should begin with 'outpost${delimiter}'`);
93
- }
94
- };
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2Utb3V0cG9zdC1hcm5hYmxlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wcm9jZXNzLWFybmFibGVzLXBsdWdpbi9wYXJzZS1vdXRwb3N0LWFybmFibGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG9GQVM2QztBQUU3Qyw4REFBMkY7QUFHM0YsNENBQXVIO0FBYWhILE1BQU0sK0JBQStCLEdBQzFDLENBQUMsT0FBZ0MsRUFBMkMsRUFBRSxDQUM5RSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUNsQixLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUU7SUFDYixNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDO0lBRXZCLE1BQU0sU0FBUyxHQUNiLEtBQUssQ0FBQyxJQUFJLElBQUksMEJBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSwwQkFBVyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDcEgsSUFBSSxDQUFDLFNBQVM7UUFBRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVsQyxNQUFNLFlBQVksR0FBRyxNQUFNLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM1QyxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFDdkMsTUFBTSxZQUFZLEdBQUcsTUFBTSxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDbEQsTUFBTSxVQUFVLEdBQUcsNENBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNqRCxNQUFNLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxhQUFhLEdBQUcsVUFBVSxFQUFFLEdBQUcsQ0FBQyxNQUFNLGtCQUFrQixDQUFDLFVBQVUsQ0FB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Q0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGdldEFyblJlc291cmNlcyBhcyBnZXRTM0FjY2Vzc3BvaW50QXJuUmVzb3VyY2VzLFxuICBnZXRQc2V1ZG9SZWdpb24sXG4gIHZhbGlkYXRlQWNjb3VudElkLFxuICB2YWxpZGF0ZU5vRHVhbHN0YWNrLFxuICB2YWxpZGF0ZU5vRklQUyxcbiAgdmFsaWRhdGVPdXRwb3N0U2VydmljZSxcbiAgdmFsaWRhdGVQYXJ0aXRpb24sXG4gIHZhbGlkYXRlUmVnaW9uLFxufSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1idWNrZXQtZW5kcG9pbnRcIjtcbmltcG9ydCB7IEluaXRpYWxpemVIYW5kbGVyT3B0aW9ucywgSW5pdGlhbGl6ZU1pZGRsZXdhcmUgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmltcG9ydCB7IEFSTiwgcGFyc2UgYXMgcGFyc2VBcm4sIHZhbGlkYXRlIGFzIHZhbGlkYXRlQXJuIH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtYXJuLXBhcnNlclwiO1xuXG5pbXBvcnQgeyBTM0NvbnRyb2xSZXNvbHZlZENvbmZpZyB9IGZyb20gXCIuLi9jb25maWd1cmF0aW9uc1wiO1xuaW1wb3J0IHsgQ09OVEVYVF9BUk5fUkVHSU9OLCBDT05URVhUX09VVFBPU1RfSUQsIENPTlRFWFRfU0lHTklOR19SRUdJT04sIENPTlRFWFRfU0lHTklOR19TRVJWSUNFIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuXG50eXBlIEFybmFibGVJbnB1dCA9IHtcbiAgTmFtZT86IHN0cmluZztcbiAgQnVja2V0Pzogc3RyaW5nO1xuICBBY2NvdW50SWQ/OiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIFZhbGlkYXRlIGlucHV0IGBOYW1lYCBvciBgQnVja2V0YCBwYXJhbWV0ZXIgaXMgYWNjZXB0YWJsZSBBUk4gZm9ybWF0LiBJZiBzbywgbW9kaWZ5IHRoZSBpbnB1dCBBUk4gdG8gaW5mZXJyZWRcbiAqIHJlc291cmNlIGlkZW50aWZpZXIsIG5vdGlmeSBsYXRlciBtaWRkbGV3YXJlIHRvIHJlZGlyZWN0IHJlcXVlc3QgdG8gT3V0cG9zdCBlbmRwb2ludCwgc2lnbmluZyBzZXJ2aWNlIGFuZCBzaWduaW5nXG4gKiByZWdpb24uXG4gKi9cbmV4cG9ydCBjb25zdCBwYXJzZU91dHBvc3RBcm5hYmxlc01pZGRsZWF3YXJlID1cbiAgKG9wdGlvbnM6IFMzQ29udHJvbFJlc29sdmVkQ29uZmlnKTogSW5pdGlhbGl6ZU1pZGRsZXdhcmU8QXJuYWJsZUlucHV0LCBhbnk+ID0+XG4gIChuZXh0LCBjb250ZXh0KSA9PlxuICBhc3luYyAoYXJncykgPT4ge1xuICAgIGNvbnN0IHsgaW5wdXQgfSA9IGFyZ3M7XG5cbiAgICBjb25zdCBwYXJhbWV0ZXI6IFwiTmFtZVwiIHwgXCJCdWNrZXRcIiB8IHVuZGVmaW5lZCA9XG4gICAgICBpbnB1dC5OYW1lICYmIHZhbGlkYXRlQXJuKGlucHV0Lk5hbWUpID8gXCJOYW1lXCIgOiBpbnB1dC5CdWNrZXQgJiYgdmFsaWRhdGVBcm4oaW5wdXQuQnVja2V0KSA/IFwiQnVja2V0XCIgOiB1bmRlZmluZWQ7XG4gICAgaWYgKCFwYXJhbWV0ZXIpIHJldHVybiBuZXh0KGFyZ3MpO1xuXG4gICAgY29uc3QgY2xpZW50UmVnaW9uID0gYXdhaXQgb3B0aW9ucy5yZWdpb24oKTtcbiAgICBjb25zdCB7IHJlZ2lvbkluZm9Qcm92aWRlciB9ID0gb3B0aW9ucztcbiAgICBjb25zdCB1c2VBcm5SZWdpb24gPSBhd2FpdCBvcHRpb25zLnVzZUFyblJlZ2lvbigpO1xuICAgIGNvbnN0IGJhc2VSZWdpb24gPSBnZXRQc2V1ZG9SZWdpb24oY2xpZW50UmVnaW9uKTtcbiAgICBjb25zdCB7IHBhcnRpdGlvbjogY2xpZW50UGFydGl0aW9uLCBzaWduaW5nUmVnaW9uID0gYmFzZVJlZ2lvbiB9ID0gKGF3YWl0IHJlZ2lvbkluZm9Qcm92aWRlcihiYXNlUmVnaW9uKSkhO1xuICAgIGNvbnN0IHZhbGlkYXRvck9wdGlvbnM6IFZhbGlkYXRlT3V0cG9zdHNBcm5PcHRpb25zID0ge1xuICAgICAgdXNlRHVhbHN0YWNrRW5kcG9pbnQ6IG9wdGlvbnMudXNlRHVhbHN0YWNrRW5kcG9pbnQsXG4gICAgICBjbGllbnRSZWdpb24sXG4gICAgICBjbGllbnRQYXJ0aXRpb24sXG4gICAgICBzaWduaW5nUmVnaW9uLFxuICAgICAgdXNlQXJuUmVnaW9uLFxuICAgIH07XG4gICAgbGV0IGFybjogQVJOO1xuICAgIGlmIChwYXJhbWV0ZXIgPT09IFwiTmFtZVwiKSB7XG4gICAgICBhcm4gPSBwYXJzZUFybihpbnB1dC5OYW1lISk7XG4gICAgICB2YWxpZGF0ZU91dHBvc3RzQXJuKGFybiwgdmFsaWRhdG9yT3B0aW9ucyk7XG4gICAgICBjb25zdCB7IG91dHBvc3RJZCwgYWNjZXNzcG9pbnROYW1lIH0gPSBwYXJzZU91dHBvc3RzQWNjZXNzUG9pbnRBcm5SZXNvdXJjZShhcm4ucmVzb3VyY2UpO1xuICAgICAgaW5wdXQuTmFtZSA9IGFjY2Vzc3BvaW50TmFtZTtcbiAgICAgIGNvbnRleHRbQ09OVEVYVF9PVVRQT1NUX0lEXSA9IG91dHBvc3RJZDtcbiAgICB9IGVsc2Uge1xuICAgICAgYXJuID0gcGFyc2VBcm4oaW5wdXQuQnVja2V0ISk7XG4gICAgICB2YWxpZGF0ZU91dHBvc3RzQXJuKGFybiwgdmFsaWRhdG9yT3B0aW9ucyk7XG4gICAgICBjb25zdCB7IG91dHBvc3RJZCwgYnVja2V0TmFtZSB9ID0gcGFyc2VPdXRwb3N0QnVja2V0QXJuUmVzb3VyY2UoYXJuLnJlc291cmNlKTtcbiAgICAgIGlucHV0LkJ1Y2tldCA9IGJ1Y2tldE5hbWU7XG4gICAgICBjb250ZXh0W0NPTlRFWFRfT1VUUE9TVF9JRF0gPSBvdXRwb3N0SWQ7XG4gICAgfVxuICAgIGNvbnRleHRbQ09OVEVYVF9TSUdOSU5HX1NFUlZJQ0VdID0gYXJuLnNlcnZpY2U7IC8vIHMzLW91dHBvc3RzXG4gICAgY29udGV4dFtDT05URVhUX1NJR05JTkdfUkVHSU9OXSA9IHVzZUFyblJlZ2lvbiA/IGFybi5yZWdpb24gOiBzaWduaW5nUmVnaW9uO1xuXG4gICAgaWYgKCFpbnB1dC5BY2NvdW50SWQpIHtcbiAgICAgIGlucHV0LkFjY291bnRJZCA9IGFybi5hY2NvdW50SWQ7XG4gICAgfSBlbHNlIGlmIChpbnB1dC5BY2NvdW50SWQgIT09IGFybi5hY2NvdW50SWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQWNjb3VudElkIGlzIGluY29tcGF0aWJsZSB3aXRoIGFjY291bnQgaWQgaW5mZXJyZWQgZnJvbSAke3BhcmFtZXRlcn1gKTtcbiAgICB9XG5cbiAgICBpZiAodXNlQXJuUmVnaW9uKSBjb250ZXh0W0NPTlRFWFRfQVJOX1JFR0lPTl0gPSBhcm4ucmVnaW9uO1xuXG4gICAgcmV0dXJuIG5leHQoYXJncyk7XG4gIH07XG5cbmV4cG9ydCBjb25zdCBwYXJzZU91dHBvc3RBcm5hYmxlc01pZGRsZWF3YXJlT3B0aW9uczogSW5pdGlhbGl6ZUhhbmRsZXJPcHRpb25zID0ge1xuICBzdGVwOiBcImluaXRpYWxpemVcIixcbiAgdGFnczogW1wiQ09OVkVSVF9BUk5cIiwgXCJPVVRQT1NUX0JVQ0tFVF9BUk5cIiwgXCJPVVRQT1NUX0FDQ0VTU19QT0lOVF9BUk5cIiwgXCJPVVRQT1NUXCJdLFxuICBuYW1lOiBcInBhcnNlT3V0cG9zdEFybmFibGVzTWlkZGxlYXdhcmVcIixcbn07XG5cbnR5cGUgVmFsaWRhdGVPdXRwb3N0c0Fybk9wdGlvbnMgPSB7XG4gIGNsaWVudFJlZ2lvbjogc3RyaW5nO1xuICBzaWduaW5nUmVnaW9uOiBzdHJpbmc7XG4gIGNsaWVudFBhcnRpdGlvbjogc3RyaW5nO1xuICB1c2VBcm5SZWdpb246IGJvb2xlYW47XG4gIHVzZUR1YWxzdGFja0VuZHBvaW50OiBib29sZWFuO1xufTtcblxuLyoqXG4gKiB2YWxpZGF0ZSBBUk4gd2l0aCAnczMtb3V0cG9zdHMnIGluIHRoZSBzZXJ2aWNlIHNlY3Rpb24gb2YgdGhlIEFSTjpcbiAqIEFSTiBzdXBwbGllZCB0byAnTmFtZScgcGFyYW1ldGVyIHNob3VsZCBjb21wbHkgdGVtcGxhdGU6XG4gKiAgICBhcm46e3BhcnRpdGlvbn06czMtb3V0cG9zdHM6e3JlZ2lvbn06e2FjY291bnRJZH06b3V0cG9zdC97b3V0cG9zdElkfS9hY2Nlc3Nwb2ludC97YWNjZXNzcG9pbnROYW1lfVxuICogQVJOIHN1cHBsaWVkIHRvICdCdWNrZXQnIHBhcmFtZXRlciBzaG91bGQgY29tcGx5IHRlbXBsYXRlOlxuICogICAgYXJuOntwYXJ0aXRpb259OnMzLW91dHBvc3RzOntyZWdpb259OnthY2NvdW50SWR9Om91dHBvc3Qve291dHBvc3RJZH0vYnVja2V0L3tidWNrZXROYW1lfVxuICovXG5jb25zdCB2YWxpZGF0ZU91dHBvc3RzQXJuID0gKFxuICBhcm46IEFSTixcbiAgeyBjbGllbnRSZWdpb24sIHNpZ25pbmdSZWdpb24sIGNsaWVudFBhcnRpdGlvbiwgdXNlQXJuUmVnaW9uLCB1c2VEdWFsc3RhY2tFbmRwb2ludCB9OiBWYWxpZGF0ZU91dHBvc3RzQXJuT3B0aW9uc1xuKSA9PiB7XG4gIGNvbnN0IHsgc2VydmljZSwgcGFydGl0aW9uLCBhY2NvdW50SWQsIHJlZ2lvbiB9ID0gYXJuO1xuICB2YWxpZGF0ZU91dHBvc3RTZXJ2aWNlKHNlcnZpY2UpO1xuICB2YWxpZGF0ZVBhcnRpdGlvbihwYXJ0aXRpb24sIHsgY2xpZW50UGFydGl0aW9uIH0pO1xuICB2YWxpZGF0ZUFjY291bnRJZChhY2NvdW50SWQpO1xuICB2YWxpZGF0ZVJlZ2lvbihyZWdpb24sIHtcbiAgICB1c2VBcm5SZWdpb24sXG4gICAgY2xpZW50UmVnaW9uLFxuICAgIGNsaWVudFNpZ25pbmdSZWdpb246IHNpZ25pbmdSZWdpb24sXG4gIH0pO1xuICB2YWxpZGF0ZU5vRHVhbHN0YWNrKHVzZUR1YWxzdGFja0VuZHBvaW50KTtcbiAgaWYgKCF1c2VBcm5SZWdpb24pIHZhbGlkYXRlTm9GSVBTKGNsaWVudFJlZ2lvbik7XG59O1xuXG5jb25zdCBwYXJzZU91dHBvc3RzQWNjZXNzUG9pbnRBcm5SZXNvdXJjZSA9IChcbiAgcmVzb3VyY2U6IHN0cmluZ1xuKToge1xuICBvdXRwb3N0SWQ6IHN0cmluZztcbiAgYWNjZXNzcG9pbnROYW1lOiBzdHJpbmc7XG59ID0+IHtcbiAgY29uc3QgeyBvdXRwb3N0SWQsIGFjY2Vzc3BvaW50TmFtZSB9ID0gZ2V0UzNBY2Nlc3Nwb2ludEFyblJlc291cmNlcyhyZXNvdXJjZSk7XG4gIGlmICghb3V0cG9zdElkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiQVJOIHJlc291cmNlIHNob3VsZCBiZWdpbiB3aXRoICdvdXRwb3N0J1wiKTtcbiAgfVxuICByZXR1cm4ge1xuICAgIG91dHBvc3RJZCxcbiAgICBhY2Nlc3Nwb2ludE5hbWUsXG4gIH07XG59O1xuXG5jb25zdCBwYXJzZU91dHBvc3RCdWNrZXRBcm5SZXNvdXJjZSA9IChcbiAgcmVzb3VyY2U6IHN0cmluZ1xuKToge1xuICBvdXRwb3N0SWQ6IHN0cmluZztcbiAgYnVja2V0TmFtZTogc3RyaW5nO1xufSA9PiB7XG4gIGNvbnN0IGRlbGltaXRlciA9IHJlc291cmNlLmluY2x1ZGVzKFwiOlwiKSA/IFwiOlwiIDogXCIvXCI7XG4gIGNvbnN0IFtyZXNvdXJjZVR5cGUsIC4uLnJlc3RdID0gcmVzb3VyY2Uuc3BsaXQoZGVsaW1pdGVyKTtcbiAgaWYgKHJlc291cmNlVHlwZSA9PT0gXCJvdXRwb3N0XCIpIHtcbiAgICAvLyBQYXJzZSBvdXRwb3N0IEFSTlxuICAgIGlmICghcmVzdFswXSB8fCByZXN0WzFdICE9PSBcImJ1Y2tldFwiIHx8ICFyZXN0WzJdIHx8IHJlc3QubGVuZ3RoICE9PSAzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBPdXRwb3N0IEJ1Y2tldCBBUk4gc2hvdWxkIGhhdmUgcmVzb3VyY2Ugb3V0cG9zdCR7ZGVsaW1pdGVyfXtvdXRwb3N0SWR9JHtkZWxpbWl0ZXJ9YnVja2V0JHtkZWxpbWl0ZXJ9e2J1Y2tldE5hbWV9YFxuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgW291dHBvc3RJZCwgXywgYnVja2V0TmFtZV0gPSByZXN0O1xuICAgIHJldHVybiB7IG91dHBvc3RJZCwgYnVja2V0TmFtZSB9O1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcihgQVJOIHJlc291cmNlIHNob3VsZCBiZWdpbiB3aXRoICdvdXRwb3N0JHtkZWxpbWl0ZXJ9J2ApO1xuICB9XG59O1xuIl19
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getProcessArnablesPlugin = void 0;
4
- const parse_outpost_arnables_1 = require("./parse-outpost-arnables");
5
- const update_arnables_request_1 = require("./update-arnables-request");
6
- const getProcessArnablesPlugin = (options) => ({
7
- applyToStack: (clientStack) => {
8
- clientStack.add(parse_outpost_arnables_1.parseOutpostArnablesMiddleaware(options), parse_outpost_arnables_1.parseOutpostArnablesMiddleawareOptions);
9
- clientStack.add(update_arnables_request_1.updateArnablesRequestMiddleware(options), update_arnables_request_1.updateArnablesRequestMiddlewareOptions);
10
- },
11
- });
12
- exports.getProcessArnablesPlugin = getProcessArnablesPlugin;
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Byb2Nlc3MtYXJuYWJsZXMtcGx1Z2luL3BsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSxxRUFBbUg7QUFDbkgsdUVBQW9IO0FBRTdHLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxPQUFnQyxFQUF1QixFQUFFLENBQUMsQ0FBQztJQUNsRyxZQUFZLEVBQUUsQ0FBQyxXQUFXLEVBQUUsRUFBRTtRQUM1QixXQUFXLENBQUMsR0FBRyxDQUFDLHdEQUErQixDQUFDLE9BQU8sQ0FBQyxFQUFFLCtEQUFzQyxDQUFDLENBQUM7UUFDbEcsV0FBVyxDQUFDLEdBQUcsQ0FBQyx5REFBK0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxnRUFBc0MsQ0FBQyxDQUFDO0lBQ3BHLENBQUM7Q0FDRixDQUFDLENBQUM7QUFMVSxRQUFBLHdCQUF3Qiw0QkFLbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbHVnZ2FibGUgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuaW1wb3J0IHsgUzNDb250cm9sUmVzb2x2ZWRDb25maWcgfSBmcm9tIFwiLi4vY29uZmlndXJhdGlvbnNcIjtcbmltcG9ydCB7IHBhcnNlT3V0cG9zdEFybmFibGVzTWlkZGxlYXdhcmUsIHBhcnNlT3V0cG9zdEFybmFibGVzTWlkZGxlYXdhcmVPcHRpb25zIH0gZnJvbSBcIi4vcGFyc2Utb3V0cG9zdC1hcm5hYmxlc1wiO1xuaW1wb3J0IHsgdXBkYXRlQXJuYWJsZXNSZXF1ZXN0TWlkZGxld2FyZSwgdXBkYXRlQXJuYWJsZXNSZXF1ZXN0TWlkZGxld2FyZU9wdGlvbnMgfSBmcm9tIFwiLi91cGRhdGUtYXJuYWJsZXMtcmVxdWVzdFwiO1xuXG5leHBvcnQgY29uc3QgZ2V0UHJvY2Vzc0FybmFibGVzUGx1Z2luID0gKG9wdGlvbnM6IFMzQ29udHJvbFJlc29sdmVkQ29uZmlnKTogUGx1Z2dhYmxlPGFueSwgYW55PiA9PiAoe1xuICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgIGNsaWVudFN0YWNrLmFkZChwYXJzZU91dHBvc3RBcm5hYmxlc01pZGRsZWF3YXJlKG9wdGlvbnMpLCBwYXJzZU91dHBvc3RBcm5hYmxlc01pZGRsZWF3YXJlT3B0aW9ucyk7XG4gICAgY2xpZW50U3RhY2suYWRkKHVwZGF0ZUFybmFibGVzUmVxdWVzdE1pZGRsZXdhcmUob3B0aW9ucyksIHVwZGF0ZUFybmFibGVzUmVxdWVzdE1pZGRsZXdhcmVPcHRpb25zKTtcbiAgfSxcbn0pO1xuIl19
@@ -1,39 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.updateArnablesRequestMiddlewareOptions = exports.getOutpostEndpoint = exports.updateArnablesRequestMiddleware = void 0;
4
- const protocol_http_1 = require("@aws-sdk/protocol-http");
5
- const constants_1 = require("../constants");
6
- const ACCOUNT_ID_HEADER = "x-amz-account-id";
7
- const OUTPOST_ID_HEADER = "x-amz-outpost-id";
8
- const REGEX_S3CONTROL_HOSTNAME = /^(.+\.)?s3-control[.-]([a-z0-9-]+)\./;
9
- const updateArnablesRequestMiddleware = ({ isCustomEndpoint }) => (next, context) => (args) => {
10
- const { request } = args;
11
- if (!protocol_http_1.HttpRequest.isInstance(request))
12
- return next(args);
13
- if (context[constants_1.CONTEXT_ACCOUNT_ID])
14
- request.headers[ACCOUNT_ID_HEADER] = context[constants_1.CONTEXT_ACCOUNT_ID];
15
- if (context[constants_1.CONTEXT_OUTPOST_ID]) {
16
- request.headers[OUTPOST_ID_HEADER] = context[constants_1.CONTEXT_OUTPOST_ID];
17
- request.hostname = exports.getOutpostEndpoint(request.hostname, {
18
- isCustomEndpoint,
19
- regionOverride: context[constants_1.CONTEXT_ARN_REGION],
20
- });
21
- }
22
- return next(args);
23
- };
24
- exports.updateArnablesRequestMiddleware = updateArnablesRequestMiddleware;
25
- const getOutpostEndpoint = (hostname, { isCustomEndpoint, regionOverride } = {}) => {
26
- const [matched, prefix, region] = hostname.match(REGEX_S3CONTROL_HOSTNAME);
27
- return isCustomEndpoint
28
- ? hostname
29
- : ["s3-outposts", regionOverride || region, hostname.replace(new RegExp(`^${matched}`), "")]
30
- .filter((part) => part !== undefined)
31
- .join(".");
32
- };
33
- exports.getOutpostEndpoint = getOutpostEndpoint;
34
- exports.updateArnablesRequestMiddlewareOptions = {
35
- step: "build",
36
- name: "updateArnablesRequestMiddleware",
37
- tags: ["ACCOUNT_ID", "OUTPOST_ID", "OUTPOST"],
38
- };
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWFybmFibGVzLXJlcXVlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvY2Vzcy1hcm5hYmxlcy1wbHVnaW4vdXBkYXRlLWFybmFibGVzLXJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMERBQXFEO0FBSXJELDRDQUEwRjtBQUUxRixNQUFNLGlCQUFpQixHQUFHLGtCQUFrQixDQUFDO0FBQzdDLE1BQU0saUJBQWlCLEdBQUcsa0JBQWtCLENBQUM7QUFDN0MsTUFBTSx3QkFBd0IsR0FBRyxzQ0FBc0MsQ0FBQztBQU1qRSxNQUFNLCtCQUErQixHQUMxQyxDQUFDLEVBQUUsZ0JBQWdCLEVBQWlDLEVBQTZCLEVBQUUsQ0FDbkYsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FDbEIsQ0FBQyxJQUFJLEVBQUUsRUFBRTtJQUNQLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFDekIsSUFBSSxDQUFDLDJCQUFXLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztRQUFFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hELElBQUksT0FBTyxDQUFDLDhCQUFrQixDQUFDO1FBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLE9BQU8sQ0FBQyw4QkFBa0IsQ0FBQyxDQUFDO0lBQ2xHLElBQUksT0FBTyxDQUFDLDhCQUFrQixDQUFDLEVBQUU7UUFDL0IsT0FBTyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLE9BQU8sQ0FBQyw4QkFBa0IsQ0FBQyxDQUFDO1FBQ2pFLE9BQU8sQ0FBQyxRQUFRLEdBQUcsMEJBQWtCLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRTtZQUN0RCxnQkFBZ0I7WUFDaEIsY0FBYyxFQUFFLE9BQU8sQ0FBQyw4QkFBa0IsQ0FBQztTQUM1QyxDQUFDLENBQUM7S0FDSjtJQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3BCLENBQUMsQ0FBQztBQWZTLFFBQUEsK0JBQStCLG1DQWV4QztBQUVHLE1BQU0sa0JBQWtCLEdBQUcsQ0FDaEMsUUFBZ0IsRUFDaEIsRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEtBQThELEVBQUUsRUFDMUYsRUFBRTtJQUNWLE1BQU0sQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsd0JBQXdCLENBQUUsQ0FBQztJQUU1RSxPQUFPLGdCQUFnQjtRQUNyQixDQUFDLENBQUMsUUFBUTtRQUNWLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxjQUFjLElBQUksTUFBTSxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2FBQ3ZGLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQzthQUNwQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDbkIsQ0FBQyxDQUFDO0FBWFcsUUFBQSxrQkFBa0Isc0JBVzdCO0FBRVcsUUFBQSxzQ0FBc0MsR0FBd0I7SUFDekUsSUFBSSxFQUFFLE9BQU87SUFDYixJQUFJLEVBQUUsaUNBQWlDO0lBQ3ZDLElBQUksRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsU0FBUyxDQUFDO0NBQzlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYXdzLXNkay9wcm90b2NvbC1odHRwXCI7XG5pbXBvcnQgeyBCdWlsZEhhbmRsZXJPcHRpb25zLCBCdWlsZE1pZGRsZXdhcmUgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuaW1wb3J0IHsgUzNDb250cm9sUmVzb2x2ZWRDb25maWcgfSBmcm9tIFwiLi4vY29uZmlndXJhdGlvbnNcIjtcbmltcG9ydCB7IENPTlRFWFRfQUNDT1VOVF9JRCwgQ09OVEVYVF9BUk5fUkVHSU9OLCBDT05URVhUX09VVFBPU1RfSUQgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5cbmNvbnN0IEFDQ09VTlRfSURfSEVBREVSID0gXCJ4LWFtei1hY2NvdW50LWlkXCI7XG5jb25zdCBPVVRQT1NUX0lEX0hFQURFUiA9IFwieC1hbXotb3V0cG9zdC1pZFwiO1xuY29uc3QgUkVHRVhfUzNDT05UUk9MX0hPU1ROQU1FID0gL14oLitcXC4pP3MzLWNvbnRyb2xbLi1dKFthLXowLTktXSspXFwuLztcblxuLyoqXG4gKiBBZnRlciBvdXRwb3N0IHJlcXVlc3QgaXMgY29uc3RydWN0ZWQsIHJlZGlyZWN0IHJlcXVlc3QgdG8gb3V0cG9zdCBlbmRwb2ludCBhbmQgc2V0IGB4LWFtei1hY2NvdW50LWlkYCBhbmRcbiAqIGB4LWFtei1vdXRwb3N0LWlkYCBoZWFkZXJzLlxuICovXG5leHBvcnQgY29uc3QgdXBkYXRlQXJuYWJsZXNSZXF1ZXN0TWlkZGxld2FyZSA9XG4gICh7IGlzQ3VzdG9tRW5kcG9pbnQgfTogeyBpc0N1c3RvbUVuZHBvaW50OiBib29sZWFuIH0pOiBCdWlsZE1pZGRsZXdhcmU8YW55LCBhbnk+ID0+XG4gIChuZXh0LCBjb250ZXh0KSA9PlxuICAoYXJncykgPT4ge1xuICAgIGNvbnN0IHsgcmVxdWVzdCB9ID0gYXJncztcbiAgICBpZiAoIUh0dHBSZXF1ZXN0LmlzSW5zdGFuY2UocmVxdWVzdCkpIHJldHVybiBuZXh0KGFyZ3MpO1xuICAgIGlmIChjb250ZXh0W0NPTlRFWFRfQUNDT1VOVF9JRF0pIHJlcXVlc3QuaGVhZGVyc1tBQ0NPVU5UX0lEX0hFQURFUl0gPSBjb250ZXh0W0NPTlRFWFRfQUNDT1VOVF9JRF07XG4gICAgaWYgKGNvbnRleHRbQ09OVEVYVF9PVVRQT1NUX0lEXSkge1xuICAgICAgcmVxdWVzdC5oZWFkZXJzW09VVFBPU1RfSURfSEVBREVSXSA9IGNvbnRleHRbQ09OVEVYVF9PVVRQT1NUX0lEXTtcbiAgICAgIHJlcXVlc3QuaG9zdG5hbWUgPSBnZXRPdXRwb3N0RW5kcG9pbnQocmVxdWVzdC5ob3N0bmFtZSwge1xuICAgICAgICBpc0N1c3RvbUVuZHBvaW50LFxuICAgICAgICByZWdpb25PdmVycmlkZTogY29udGV4dFtDT05URVhUX0FSTl9SRUdJT05dLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBuZXh0KGFyZ3MpO1xuICB9O1xuXG5leHBvcnQgY29uc3QgZ2V0T3V0cG9zdEVuZHBvaW50ID0gKFxuICBob3N0bmFtZTogc3RyaW5nLFxuICB7IGlzQ3VzdG9tRW5kcG9pbnQsIHJlZ2lvbk92ZXJyaWRlIH06IHsgaXNDdXN0b21FbmRwb2ludD86IGJvb2xlYW47IHJlZ2lvbk92ZXJyaWRlPzogc3RyaW5nIH0gPSB7fVxuKTogc3RyaW5nID0+IHtcbiAgY29uc3QgW21hdGNoZWQsIHByZWZpeCwgcmVnaW9uXSA9IGhvc3RuYW1lLm1hdGNoKFJFR0VYX1MzQ09OVFJPTF9IT1NUTkFNRSkhO1xuICAvLyBob3N0bmFtZSBwcmVmaXggd2lsbCBiZSBpZ25vcmVkIGV2ZW4gaWYgcHJlc2VudHNcbiAgcmV0dXJuIGlzQ3VzdG9tRW5kcG9pbnRcbiAgICA/IGhvc3RuYW1lXG4gICAgOiBbXCJzMy1vdXRwb3N0c1wiLCByZWdpb25PdmVycmlkZSB8fCByZWdpb24sIGhvc3RuYW1lLnJlcGxhY2UobmV3IFJlZ0V4cChgXiR7bWF0Y2hlZH1gKSwgXCJcIildXG4gICAgICAgIC5maWx0ZXIoKHBhcnQpID0+IHBhcnQgIT09IHVuZGVmaW5lZClcbiAgICAgICAgLmpvaW4oXCIuXCIpO1xufTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZUFybmFibGVzUmVxdWVzdE1pZGRsZXdhcmVPcHRpb25zOiBCdWlsZEhhbmRsZXJPcHRpb25zID0ge1xuICBzdGVwOiBcImJ1aWxkXCIsXG4gIG5hbWU6IFwidXBkYXRlQXJuYWJsZXNSZXF1ZXN0TWlkZGxld2FyZVwiLFxuICB0YWdzOiBbXCJBQ0NPVU5UX0lEXCIsIFwiT1VUUE9TVF9JRFwiLCBcIk9VVFBPU1RcIl0sXG59O1xuIl19
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getRedirectFromPostIdPlugin = exports.redirectFromPostIdMiddlewareOptions = exports.redirectFromPostIdMiddleware = void 0;
4
- const protocol_http_1 = require("@aws-sdk/protocol-http");
5
- const constants_1 = require("./constants");
6
- const process_arnables_plugin_1 = require("./process-arnables-plugin");
7
- const redirectFromPostIdMiddleware = ({ isCustomEndpoint }) => (next, context) => (args) => {
8
- const { input, request } = args;
9
- if (!protocol_http_1.HttpRequest.isInstance(request))
10
- return next(args);
11
- if (input.OutpostId) {
12
- request.hostname = process_arnables_plugin_1.getOutpostEndpoint(request.hostname, { isCustomEndpoint });
13
- context[constants_1.CONTEXT_SIGNING_SERVICE] = "s3-outposts";
14
- }
15
- return next(args);
16
- };
17
- exports.redirectFromPostIdMiddleware = redirectFromPostIdMiddleware;
18
- exports.redirectFromPostIdMiddlewareOptions = {
19
- step: "build",
20
- name: "redirectFromPostIdMiddleware",
21
- tags: ["OUTPOST"],
22
- override: true,
23
- };
24
- const getRedirectFromPostIdPlugin = (options) => ({
25
- applyToStack: (clientStack) => {
26
- clientStack.add(exports.redirectFromPostIdMiddleware(options), exports.redirectFromPostIdMiddlewareOptions);
27
- },
28
- });
29
- exports.getRedirectFromPostIdPlugin = getRedirectFromPostIdPlugin;
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXJlY3QtZnJvbS1wb3N0aWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVkaXJlY3QtZnJvbS1wb3N0aWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMERBQXFEO0FBSXJELDJDQUFzRDtBQUN0RCx1RUFBK0Q7QUFVeEQsTUFBTSw0QkFBNEIsR0FDdkMsQ0FBQyxFQUFFLGdCQUFnQixFQUFpQyxFQUFtQyxFQUFFLENBQ3pGLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQ2xCLENBQUMsSUFBSSxFQUFFLEVBQUU7SUFDUCxNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQztJQUNoQyxJQUFJLENBQUMsMkJBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDO1FBQUUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEQsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFO1FBQ25CLE9BQU8sQ0FBQyxRQUFRLEdBQUcsNENBQWtCLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztRQUM5RSxPQUFPLENBQUMsbUNBQXVCLENBQUMsR0FBRyxhQUFhLENBQUM7S0FDbEQ7SUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNwQixDQUFDLENBQUM7QUFYUyxRQUFBLDRCQUE0QixnQ0FXckM7QUFFUyxRQUFBLG1DQUFtQyxHQUF3QjtJQUN0RSxJQUFJLEVBQUUsT0FBTztJQUNiLElBQUksRUFBRSw4QkFBOEI7SUFDcEMsSUFBSSxFQUFFLENBQUMsU0FBUyxDQUFDO0lBQ2pCLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FBQztBQUVLLE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxPQUFnQyxFQUF1QixFQUFFLENBQUMsQ0FBQztJQUNyRyxZQUFZLEVBQUUsQ0FBQyxXQUFXLEVBQUUsRUFBRTtRQUM1QixXQUFXLENBQUMsR0FBRyxDQUFDLG9DQUE0QixDQUFDLE9BQU8sQ0FBQyxFQUFFLDJDQUFtQyxDQUFDLENBQUM7SUFDOUYsQ0FBQztDQUNGLENBQUMsQ0FBQztBQUpVLFFBQUEsMkJBQTJCLCtCQUlyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhd3Mtc2RrL3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7IEJ1aWxkSGFuZGxlck9wdGlvbnMsIEJ1aWxkTWlkZGxld2FyZSwgUGx1Z2dhYmxlIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbmltcG9ydCB7IFMzQ29udHJvbFJlc29sdmVkQ29uZmlnIH0gZnJvbSBcIi4vY29uZmlndXJhdGlvbnNcIjtcbmltcG9ydCB7IENPTlRFWFRfU0lHTklOR19TRVJWSUNFIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBnZXRPdXRwb3N0RW5kcG9pbnQgfSBmcm9tIFwiLi9wcm9jZXNzLWFybmFibGVzLXBsdWdpblwiO1xuXG50eXBlIElucHV0VHlwZSA9IHtcbiAgT3V0cG9zdElkPzogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBJZiBPdXRwb3N0SWQgaXMgc2V0LCByZWRpcmVjdCBob3N0bmFtZSB0byBPdXRwb3N0IG9uZSwgYW5kIGNoYW5nZSBzaWduaW5nIHNlcnZpY2UgdG8gYHMzLW91dHBvc3RzYC5cbiAqIEFwcGxpZWQgdG8gUzNDb250cm9sLkNyZWF0ZUJ1Y2tldCBhbmQgUzNDb250cm9sLkxpc3RSZWdpb25hbEJ1Y2tldHNcbiAqL1xuZXhwb3J0IGNvbnN0IHJlZGlyZWN0RnJvbVBvc3RJZE1pZGRsZXdhcmUgPVxuICAoeyBpc0N1c3RvbUVuZHBvaW50IH06IHsgaXNDdXN0b21FbmRwb2ludDogYm9vbGVhbiB9KTogQnVpbGRNaWRkbGV3YXJlPElucHV0VHlwZSwgYW55PiA9PlxuICAobmV4dCwgY29udGV4dCkgPT5cbiAgKGFyZ3MpID0+IHtcbiAgICBjb25zdCB7IGlucHV0LCByZXF1ZXN0IH0gPSBhcmdzO1xuICAgIGlmICghSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShyZXF1ZXN0KSkgcmV0dXJuIG5leHQoYXJncyk7XG4gICAgaWYgKGlucHV0Lk91dHBvc3RJZCkge1xuICAgICAgcmVxdWVzdC5ob3N0bmFtZSA9IGdldE91dHBvc3RFbmRwb2ludChyZXF1ZXN0Lmhvc3RuYW1lLCB7IGlzQ3VzdG9tRW5kcG9pbnQgfSk7XG4gICAgICBjb250ZXh0W0NPTlRFWFRfU0lHTklOR19TRVJWSUNFXSA9IFwiczMtb3V0cG9zdHNcIjtcbiAgICB9XG4gICAgcmV0dXJuIG5leHQoYXJncyk7XG4gIH07XG5cbmV4cG9ydCBjb25zdCByZWRpcmVjdEZyb21Qb3N0SWRNaWRkbGV3YXJlT3B0aW9uczogQnVpbGRIYW5kbGVyT3B0aW9ucyA9IHtcbiAgc3RlcDogXCJidWlsZFwiLFxuICBuYW1lOiBcInJlZGlyZWN0RnJvbVBvc3RJZE1pZGRsZXdhcmVcIixcbiAgdGFnczogW1wiT1VUUE9TVFwiXSxcbiAgb3ZlcnJpZGU6IHRydWUsXG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UmVkaXJlY3RGcm9tUG9zdElkUGx1Z2luID0gKG9wdGlvbnM6IFMzQ29udHJvbFJlc29sdmVkQ29uZmlnKTogUGx1Z2dhYmxlPGFueSwgYW55PiA9PiAoe1xuICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgIGNsaWVudFN0YWNrLmFkZChyZWRpcmVjdEZyb21Qb3N0SWRNaWRkbGV3YXJlKG9wdGlvbnMpLCByZWRpcmVjdEZyb21Qb3N0SWRNaWRkbGV3YXJlT3B0aW9ucyk7XG4gIH0sXG59KTtcbiJdfQ==
@@ -1,7 +0,0 @@
1
- import { __assign } from "tslib";
2
- export { NODE_USE_ARN_REGION_CONFIG_OPTIONS } from "@aws-sdk/middleware-bucket-endpoint";
3
- export function resolveS3ControlConfig(input) {
4
- var _a = input.useDualstackEndpoint, useDualstackEndpoint = _a === void 0 ? false : _a, _b = input.useArnRegion, useArnRegion = _b === void 0 ? false : _b;
5
- return __assign(__assign({}, input), { useDualstackEndpoint: useDualstackEndpoint, useArnRegion: typeof useArnRegion === "function" ? useArnRegion : function () { return Promise.resolve(useArnRegion); } });
6
- }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlndXJhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBNEN6RixNQUFNLFVBQVUsc0JBQXNCLENBQ3BDLEtBQW9EO0lBRTVDLElBQUEsS0FBdUQsS0FBSyxxQkFBaEMsRUFBNUIsb0JBQW9CLG1CQUFHLEtBQUssS0FBQSxFQUFFLEtBQXlCLEtBQUssYUFBVixFQUFwQixZQUFZLG1CQUFHLEtBQUssS0FBQSxDQUFXO0lBQ3JFLDZCQUNLLEtBQUssS0FDUixvQkFBb0Isc0JBQUEsRUFDcEIsWUFBWSxFQUFFLE9BQU8sWUFBWSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxjQUFNLE9BQUEsT0FBTyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBN0IsQ0FBNkIsSUFDckc7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvdmlkZXIsIFJlZ2lvbkluZm9Qcm92aWRlciB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuZXhwb3J0IHsgTk9ERV9VU0VfQVJOX1JFR0lPTl9DT05GSUdfT1BUSU9OUyB9IGZyb20gXCJAYXdzLXNkay9taWRkbGV3YXJlLWJ1Y2tldC1lbmRwb2ludFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFMzQ29udHJvbElucHV0Q29uZmlnIHtcbiAgLyoqXG4gICAqIEVuYWJsZXMgSVB2Ni9JUHY0IGR1YWxzdGFjayBlbmRwb2ludC4gV2hlbiBhIEROUyBsb29rdXAgaXMgcGVyZm9ybWVkIG9uIGFuIGVuZHBvaW50IG9mIHRoaXMgdHlwZSwgaXQgcmV0dXJucyBhbiDigJxB4oCdIHJlY29yZCB3aXRoIGFuIElQdjQgYWRkcmVzcyBhbmQgYW4g4oCcQUFBQeKAnSByZWNvcmQgd2l0aCBhbiBJUHY2IGFkZHJlc3MuIEluIG1vc3QgY2FzZXMgdGhlIG5ldHdvcmsgc3RhY2sgaW4gdGhlIGNsaWVudCBlbnZpcm9ubWVudCB3aWxsIGF1dG9tYXRpY2FsbHkgcHJlZmVyIHRoZSBBQUFBIHJlY29yZCBhbmQgbWFrZSBhIGNvbm5lY3Rpb24gdXNpbmcgdGhlIElQdjYgYWRkcmVzcy4gTm90ZSwgaG93ZXZlciwgdGhhdCBjdXJyZW50bHkgb24gV2luZG93cywgdGhlIElQdjQgYWRkcmVzcyB3aWxsIGJlIHByZWZlcnJlZC5cbiAgICovXG4gIHVzZUR1YWxzdGFja0VuZHBvaW50PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gb3ZlcnJpZGUgdGhlIHJlcXVlc3QgcmVnaW9uIHdpdGggdGhlIHJlZ2lvbiBpbmZlcnJlZCBmcm9tIHJlcXVlc3RlZCByZXNvdXJjZSdzIEFSTi4gRGVmYXVsdHMgdG8gZmFsc2VcbiAgICovXG4gIHVzZUFyblJlZ2lvbj86IGJvb2xlYW4gfCBQcm92aWRlcjxib29sZWFuPjtcbn1cblxuaW50ZXJmYWNlIFByZXZpb3VzbHlSZXNvbHZlZCB7XG4gIGlzQ3VzdG9tRW5kcG9pbnQ6IGJvb2xlYW47XG4gIHJlZ2lvbjogUHJvdmlkZXI8c3RyaW5nPjtcbiAgcmVnaW9uSW5mb1Byb3ZpZGVyOiBSZWdpb25JbmZvUHJvdmlkZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUzNDb250cm9sUmVzb2x2ZWRDb25maWcge1xuICAvKipcbiAgICogV2hldGhlciB0aGUgZW5kcG9pbnQgaXMgc3BlY2lmaWVkIGJ5IGNhbGxlci5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBpc0N1c3RvbUVuZHBvaW50OiBib29sZWFuO1xuICAvKipcbiAgICogUmVzb2x2ZWQgdmFsdWUgZm9yIGlucHV0IGNvbmZpZyB7QGxpbmsgUzNDb250cm9sSW5wdXRDb25maWcudXNlRHVhbHN0YWNrRW5kcG9pbnR9XG4gICAqL1xuICB1c2VEdWFsc3RhY2tFbmRwb2ludDogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFJlc29sdmVkIHZhbHVlIGZvciBpbnB1dCBjb25maWcge0BsaW5rIFMzQ29udHJvbElucHV0Q29uZmlnLnVzZUFyblJlZ2lvbn1cbiAgICovXG4gIHVzZUFyblJlZ2lvbjogUHJvdmlkZXI8Ym9vbGVhbj47XG4gIC8qKlxuICAgKiBSZXNvbHZlZCB2YWx1ZSBmb3IgaW5wdXQgY29uZmlnIHtAbGluayBSZWdpb25JbnB1dENvbmZpZy5yZWdpb259XG4gICAqL1xuICByZWdpb246IFByb3ZpZGVyPHN0cmluZz47XG4gIC8qKlxuICAgKiBGZXRjaCByZWxhdGVkIGhvc3RuYW1lLCBzaWduaW5nIG5hbWUgb3Igc2lnbmluZyByZWdpb24gd2l0aCBnaXZlbiByZWdpb24uXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcmVnaW9uSW5mb1Byb3ZpZGVyOiBSZWdpb25JbmZvUHJvdmlkZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlUzNDb250cm9sQ29uZmlnPFQ+KFxuICBpbnB1dDogVCAmIFByZXZpb3VzbHlSZXNvbHZlZCAmIFMzQ29udHJvbElucHV0Q29uZmlnXG4pOiBUICYgUzNDb250cm9sUmVzb2x2ZWRDb25maWcge1xuICBjb25zdCB7IHVzZUR1YWxzdGFja0VuZHBvaW50ID0gZmFsc2UsIHVzZUFyblJlZ2lvbiA9IGZhbHNlIH0gPSBpbnB1dDtcbiAgcmV0dXJuIHtcbiAgICAuLi5pbnB1dCxcbiAgICB1c2VEdWFsc3RhY2tFbmRwb2ludCxcbiAgICB1c2VBcm5SZWdpb246IHR5cGVvZiB1c2VBcm5SZWdpb24gPT09IFwiZnVuY3Rpb25cIiA/IHVzZUFyblJlZ2lvbiA6ICgpID0+IFByb21pc2UucmVzb2x2ZSh1c2VBcm5SZWdpb24pLFxuICB9O1xufVxuIl19
@@ -1,6 +0,0 @@
1
- export var CONTEXT_OUTPOST_ID = "outpost_id";
2
- export var CONTEXT_ACCOUNT_ID = "account_id";
3
- export var CONTEXT_ARN_REGION = "outpost_arn_region";
4
- export var CONTEXT_SIGNING_SERVICE = "signing_service";
5
- export var CONTEXT_SIGNING_REGION = "signing_region";
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsSUFBTSxrQkFBa0IsR0FBRyxZQUFZLENBQUM7QUFDL0MsTUFBTSxDQUFDLElBQU0sa0JBQWtCLEdBQUcsWUFBWSxDQUFDO0FBQy9DLE1BQU0sQ0FBQyxJQUFNLGtCQUFrQixHQUFHLG9CQUFvQixDQUFDO0FBQ3ZELE1BQU0sQ0FBQyxJQUFNLHVCQUF1QixHQUFHLGlCQUFpQixDQUFDO0FBQ3pELE1BQU0sQ0FBQyxJQUFNLHNCQUFzQixHQUFHLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IENPTlRFWFRfT1VUUE9TVF9JRCA9IFwib3V0cG9zdF9pZFwiO1xuZXhwb3J0IGNvbnN0IENPTlRFWFRfQUNDT1VOVF9JRCA9IFwiYWNjb3VudF9pZFwiO1xuZXhwb3J0IGNvbnN0IENPTlRFWFRfQVJOX1JFR0lPTiA9IFwib3V0cG9zdF9hcm5fcmVnaW9uXCI7XG5leHBvcnQgY29uc3QgQ09OVEVYVF9TSUdOSU5HX1NFUlZJQ0UgPSBcInNpZ25pbmdfc2VydmljZVwiO1xuZXhwb3J0IGNvbnN0IENPTlRFWFRfU0lHTklOR19SRUdJT04gPSBcInNpZ25pbmdfcmVnaW9uXCI7XG4iXX0=
package/dist/es/index.js DELETED
@@ -1,4 +0,0 @@
1
- export * from "./configurations";
2
- export { parseOutpostArnablesMiddleaware, parseOutpostArnablesMiddleawareOptions, updateArnablesRequestMiddleware, updateArnablesRequestMiddlewareOptions, getProcessArnablesPlugin, } from "./process-arnables-plugin";
3
- export * from "./redirect-from-postid";
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxPQUFPLEVBQ0wsK0JBQStCLEVBQy9CLHNDQUFzQyxFQUN0QywrQkFBK0IsRUFDL0Isc0NBQXNDLEVBQ3RDLHdCQUF3QixHQUN6QixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLGNBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9jb25maWd1cmF0aW9uc1wiO1xuZXhwb3J0IHtcbiAgcGFyc2VPdXRwb3N0QXJuYWJsZXNNaWRkbGVhd2FyZSxcbiAgcGFyc2VPdXRwb3N0QXJuYWJsZXNNaWRkbGVhd2FyZU9wdGlvbnMsXG4gIHVwZGF0ZUFybmFibGVzUmVxdWVzdE1pZGRsZXdhcmUsXG4gIHVwZGF0ZUFybmFibGVzUmVxdWVzdE1pZGRsZXdhcmVPcHRpb25zLFxuICBnZXRQcm9jZXNzQXJuYWJsZXNQbHVnaW4sXG59IGZyb20gXCIuL3Byb2Nlc3MtYXJuYWJsZXMtcGx1Z2luXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yZWRpcmVjdC1mcm9tLXBvc3RpZFwiO1xuIl19
@@ -1,4 +0,0 @@
1
- export { getProcessArnablesPlugin } from "./plugin";
2
- export { parseOutpostArnablesMiddleaware, parseOutpostArnablesMiddleawareOptions } from "./parse-outpost-arnables";
3
- export { updateArnablesRequestMiddleware, updateArnablesRequestMiddlewareOptions, getOutpostEndpoint, } from "./update-arnables-request";
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvY2Vzcy1hcm5hYmxlcy1wbHVnaW4vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ25ILE9BQU8sRUFDTCwrQkFBK0IsRUFDL0Isc0NBQXNDLEVBQ3RDLGtCQUFrQixHQUNuQixNQUFNLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZ2V0UHJvY2Vzc0FybmFibGVzUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2luXCI7XG5leHBvcnQgeyBwYXJzZU91dHBvc3RBcm5hYmxlc01pZGRsZWF3YXJlLCBwYXJzZU91dHBvc3RBcm5hYmxlc01pZGRsZWF3YXJlT3B0aW9ucyB9IGZyb20gXCIuL3BhcnNlLW91dHBvc3QtYXJuYWJsZXNcIjtcbmV4cG9ydCB7XG4gIHVwZGF0ZUFybmFibGVzUmVxdWVzdE1pZGRsZXdhcmUsXG4gIHVwZGF0ZUFybmFibGVzUmVxdWVzdE1pZGRsZXdhcmVPcHRpb25zLFxuICBnZXRPdXRwb3N0RW5kcG9pbnQsXG59IGZyb20gXCIuL3VwZGF0ZS1hcm5hYmxlcy1yZXF1ZXN0XCI7XG4iXX0=
@@ -1,121 +0,0 @@
1
- import { __awaiter, __generator, __read } from "tslib";
2
- import { getArnResources as getS3AccesspointArnResources, getPseudoRegion, validateAccountId, validateNoDualstack, validateNoFIPS, validateOutpostService, validatePartition, validateRegion, } from "@aws-sdk/middleware-bucket-endpoint";
3
- import { parse as parseArn, validate as validateArn } from "@aws-sdk/util-arn-parser";
4
- import { CONTEXT_ARN_REGION, CONTEXT_OUTPOST_ID, CONTEXT_SIGNING_REGION, CONTEXT_SIGNING_SERVICE } from "../constants";
5
- /**
6
- * Validate input `Name` or `Bucket` parameter is acceptable ARN format. If so, modify the input ARN to inferred
7
- * resource identifier, notify later middleware to redirect request to Outpost endpoint, signing service and signing
8
- * region.
9
- */
10
- export var parseOutpostArnablesMiddleaware = function (options) {
11
- return function (next, context) {
12
- return function (args) { return __awaiter(void 0, void 0, void 0, function () {
13
- var input, parameter, clientRegion, regionInfoProvider, useArnRegion, baseRegion, _a, clientPartition, _b, signingRegion, validatorOptions, arn, _c, outpostId, accesspointName, _d, outpostId, bucketName;
14
- return __generator(this, function (_e) {
15
- switch (_e.label) {
16
- case 0:
17
- input = args.input;
18
- parameter = input.Name && validateArn(input.Name) ? "Name" : input.Bucket && validateArn(input.Bucket) ? "Bucket" : undefined;
19
- if (!parameter)
20
- return [2 /*return*/, next(args)];
21
- return [4 /*yield*/, options.region()];
22
- case 1:
23
- clientRegion = _e.sent();
24
- regionInfoProvider = options.regionInfoProvider;
25
- return [4 /*yield*/, options.useArnRegion()];
26
- case 2:
27
- useArnRegion = _e.sent();
28
- baseRegion = getPseudoRegion(clientRegion);
29
- return [4 /*yield*/, regionInfoProvider(baseRegion)];
30
- case 3:
31
- _a = (_e.sent()), clientPartition = _a.partition, _b = _a.signingRegion, signingRegion = _b === void 0 ? baseRegion : _b;
32
- validatorOptions = {
33
- useDualstackEndpoint: options.useDualstackEndpoint,
34
- clientRegion: clientRegion,
35
- clientPartition: clientPartition,
36
- signingRegion: signingRegion,
37
- useArnRegion: useArnRegion,
38
- };
39
- if (parameter === "Name") {
40
- arn = parseArn(input.Name);
41
- validateOutpostsArn(arn, validatorOptions);
42
- _c = parseOutpostsAccessPointArnResource(arn.resource), outpostId = _c.outpostId, accesspointName = _c.accesspointName;
43
- input.Name = accesspointName;
44
- context[CONTEXT_OUTPOST_ID] = outpostId;
45
- }
46
- else {
47
- arn = parseArn(input.Bucket);
48
- validateOutpostsArn(arn, validatorOptions);
49
- _d = parseOutpostBucketArnResource(arn.resource), outpostId = _d.outpostId, bucketName = _d.bucketName;
50
- input.Bucket = bucketName;
51
- context[CONTEXT_OUTPOST_ID] = outpostId;
52
- }
53
- context[CONTEXT_SIGNING_SERVICE] = arn.service; // s3-outposts
54
- context[CONTEXT_SIGNING_REGION] = useArnRegion ? arn.region : signingRegion;
55
- if (!input.AccountId) {
56
- input.AccountId = arn.accountId;
57
- }
58
- else if (input.AccountId !== arn.accountId) {
59
- throw new Error("AccountId is incompatible with account id inferred from " + parameter);
60
- }
61
- if (useArnRegion)
62
- context[CONTEXT_ARN_REGION] = arn.region;
63
- return [2 /*return*/, next(args)];
64
- }
65
- });
66
- }); };
67
- };
68
- };
69
- export var parseOutpostArnablesMiddleawareOptions = {
70
- step: "initialize",
71
- tags: ["CONVERT_ARN", "OUTPOST_BUCKET_ARN", "OUTPOST_ACCESS_POINT_ARN", "OUTPOST"],
72
- name: "parseOutpostArnablesMiddleaware",
73
- };
74
- /**
75
- * validate ARN with 's3-outposts' in the service section of the ARN:
76
- * ARN supplied to 'Name' parameter should comply template:
77
- * arn:{partition}:s3-outposts:{region}:{accountId}:outpost/{outpostId}/accesspoint/{accesspointName}
78
- * ARN supplied to 'Bucket' parameter should comply template:
79
- * arn:{partition}:s3-outposts:{region}:{accountId}:outpost/{outpostId}/bucket/{bucketName}
80
- */
81
- var validateOutpostsArn = function (arn, _a) {
82
- var clientRegion = _a.clientRegion, signingRegion = _a.signingRegion, clientPartition = _a.clientPartition, useArnRegion = _a.useArnRegion, useDualstackEndpoint = _a.useDualstackEndpoint;
83
- var service = arn.service, partition = arn.partition, accountId = arn.accountId, region = arn.region;
84
- validateOutpostService(service);
85
- validatePartition(partition, { clientPartition: clientPartition });
86
- validateAccountId(accountId);
87
- validateRegion(region, {
88
- useArnRegion: useArnRegion,
89
- clientRegion: clientRegion,
90
- clientSigningRegion: signingRegion,
91
- });
92
- validateNoDualstack(useDualstackEndpoint);
93
- if (!useArnRegion)
94
- validateNoFIPS(clientRegion);
95
- };
96
- var parseOutpostsAccessPointArnResource = function (resource) {
97
- var _a = getS3AccesspointArnResources(resource), outpostId = _a.outpostId, accesspointName = _a.accesspointName;
98
- if (!outpostId) {
99
- throw new Error("ARN resource should begin with 'outpost'");
100
- }
101
- return {
102
- outpostId: outpostId,
103
- accesspointName: accesspointName,
104
- };
105
- };
106
- var parseOutpostBucketArnResource = function (resource) {
107
- var delimiter = resource.includes(":") ? ":" : "/";
108
- var _a = __read(resource.split(delimiter)), resourceType = _a[0], rest = _a.slice(1);
109
- if (resourceType === "outpost") {
110
- // Parse outpost ARN
111
- if (!rest[0] || rest[1] !== "bucket" || !rest[2] || rest.length !== 3) {
112
- throw new Error("Outpost Bucket ARN should have resource outpost" + delimiter + "{outpostId}" + delimiter + "bucket" + delimiter + "{bucketName}");
113
- }
114
- var _b = __read(rest, 3), outpostId = _b[0], _ = _b[1], bucketName = _b[2];
115
- return { outpostId: outpostId, bucketName: bucketName };
116
- }
117
- else {
118
- throw new Error("ARN resource should begin with 'outpost" + delimiter + "'");
119
- }
120
- };
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2Utb3V0cG9zdC1hcm5hYmxlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wcm9jZXNzLWFybmFibGVzLXBsdWdpbi9wYXJzZS1vdXRwb3N0LWFybmFibGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsZUFBZSxJQUFJLDRCQUE0QixFQUMvQyxlQUFlLEVBQ2YsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixjQUFjLEVBQ2Qsc0JBQXNCLEVBQ3RCLGlCQUFpQixFQUNqQixjQUFjLEdBQ2YsTUFBTSxxQ0FBcUMsQ0FBQztBQUU3QyxPQUFPLEVBQU8sS0FBSyxJQUFJLFFBQVEsRUFBRSxRQUFRLElBQUksV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHM0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBUXZIOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsSUFBTSwrQkFBK0IsR0FDMUMsVUFBQyxPQUFnQztJQUNqQyxPQUFBLFVBQUMsSUFBSSxFQUFFLE9BQU87UUFDZCxPQUFBLFVBQU8sSUFBSTs7Ozs7d0JBQ0QsS0FBSyxHQUFLLElBQUksTUFBVCxDQUFVO3dCQUVqQixTQUFTLEdBQ2IsS0FBSyxDQUFDLElBQUksSUFBSSxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7d0JBQ3BILElBQUksQ0FBQyxTQUFTOzRCQUFFLHNCQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBQzt3QkFFYixxQkFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUE7O3dCQUFyQyxZ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QUksWUFBWSxLQUFLLFNBQVMsRUFBRTtRQUM5QixvQkFBb0I7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3JFLE1BQU0sSUFBSSxLQUFLLENBQ2Isb0RBQWtELFNBQVMsbUJBQWMsU0FBUyxjQUFTLFNBQVMsaUJBQWMsQ0FDbkgsQ0FBQztTQUNIO1FBQ0ssSUFBQSxLQUFBLE9BQTZCLElBQUksSUFBQSxFQUFoQyxTQUFTLFFBQUEsRUFBRSxDQUFDLFFBQUEsRUFBRSxVQUFVLFFBQVEsQ0FBQztRQUN4QyxPQUFPLEVBQUUsU0FBUyxXQUFBLEVBQUUsVUFBVSxZQUFBLEVBQUUsQ0FBQztLQUNsQztTQUFNO1FBQ0wsTUFBTSxJQUFJLEtBQUssQ0FBQyw0Q0FBMEMsU0FBUyxNQUFHLENBQUMsQ0FBQztLQUN6RTtBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGdldEFyblJlc291cmNlcyBhcyBnZXRTM0FjY2Vzc3BvaW50QXJuUmVzb3VyY2VzLFxuICBnZXRQc2V1ZG9SZWdpb24sXG4gIHZhbGlkYXRlQWNjb3VudElkLFxuICB2YWxpZGF0ZU5vRHVhbHN0YWNrLFxuICB2YWxpZGF0ZU5vRklQUyxcbiAgdmFsaWRhdGVPdXRwb3N0U2VydmljZSxcbiAgdmFsaWRhdGVQYXJ0aXRpb24sXG4gIHZhbGlkYXRlUmVnaW9uLFxufSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1idWNrZXQtZW5kcG9pbnRcIjtcbmltcG9ydCB7IEluaXRpYWxpemVIYW5kbGVyT3B0aW9ucywgSW5pdGlhbGl6ZU1pZGRsZXdhcmUgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmltcG9ydCB7IEFSTiwgcGFyc2UgYXMgcGFyc2VBcm4sIHZhbGlkYXRlIGFzIHZhbGlkYXRlQXJuIH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtYXJuLXBhcnNlclwiO1xuXG5pbXBvcnQgeyBTM0NvbnRyb2xSZXNvbHZlZENvbmZpZyB9IGZyb20gXCIuLi9jb25maWd1cmF0aW9uc1wiO1xuaW1wb3J0IHsgQ09OVEVYVF9BUk5fUkVHSU9OLCBDT05URVhUX09VVFBPU1RfSUQsIENPTlRFWFRfU0lHTklOR19SRUdJT04sIENPTlRFWFRfU0lHTklOR19TRVJWSUNFIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuXG50eXBlIEFybmFibGVJbnB1dCA9IHtcbiAgTmFtZT86IHN0cmluZztcbiAgQnVja2V0Pzogc3RyaW5nO1xuICBBY2NvdW50SWQ/OiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIFZhbGlkYXRlIGlucHV0IGBOYW1lYCBvciBgQnVja2V0YCBwYXJhbWV0ZXIgaXMgYWNjZXB0YWJsZSBBUk4gZm9ybWF0LiBJZiBzbywgbW9kaWZ5IHRoZSBpbnB1dCBBUk4gdG8gaW5mZXJyZWRcbiAqIHJlc291cmNlIGlkZW50aWZpZXIsIG5vdGlmeSBsYXRlciBtaWRkbGV3YXJlIHRvIHJlZGlyZWN0IHJlcXVlc3QgdG8gT3V0cG9zdCBlbmRwb2ludCwgc2lnbmluZyBzZXJ2aWNlIGFuZCBzaWduaW5nXG4gKiByZWdpb24uXG4gKi9cbmV4cG9ydCBjb25zdCBwYXJzZU91dHBvc3RBcm5hYmxlc01pZGRsZWF3YXJlID1cbiAgKG9wdGlvbnM6IFMzQ29udHJvbFJlc29sdmVkQ29uZmlnKTogSW5pdGlhbGl6ZU1pZGRsZXdhcmU8QXJuYWJsZUlucHV0LCBhbnk+ID0+XG4gIChuZXh0LCBjb250ZXh0KSA9PlxuICBhc3luYyAoYXJncykgPT4ge1xuICAgIGNvbnN0IHsgaW5wdXQgfSA9IGFyZ3M7XG5cbiAgICBjb25zdCBwYXJhbWV0ZXI6IFwiTmFtZVwiIHwgXCJCdWNrZXRcIiB8IHVuZGVmaW5lZCA9XG4gICAgICBpbnB1dC5OYW1lICYmIHZhbGlkYXRlQXJuKGlucHV0Lk5hbWUpID8gXCJOYW1lXCIgOiBpbnB1dC5CdWNrZXQgJiYgdmFsaWRhdGVBcm4oaW5wdXQuQnVja2V0KSA/IFwiQnVja2V0XCIgOiB1bmRlZmluZWQ7XG4gICAgaWYgKCFwYXJhbWV0ZXIpIHJldHVybiBuZXh0KGFyZ3MpO1xuXG4gICAgY29uc3QgY2xpZW50UmVnaW9uID0gYXdhaXQgb3B0aW9ucy5yZWdpb24oKTtcbiAgICBjb25zdCB7IHJlZ2lvbkluZm9Qcm92aWRlciB9ID0gb3B0aW9ucztcbiAgICBjb25zdCB1c2VBcm5SZWdpb24gPSBhd2FpdCBvcHRpb25zLnVzZUFyblJlZ2lvbigpO1xuICAgIGNvbnN0IGJhc2VSZWdpb24gPSBnZXRQc2V1ZG9SZWdpb24oY2xpZW50UmVnaW9uKTtcbiAgICBjb25zdCB7IHBhcnRpdGlvbjogY2xpZW50UGFydGl0aW9uLCBzaWduaW5nUmVnaW9uID0gYmFzZVJlZ2lvbiB9ID0gKGF3YWl0IHJlZ2lvbkluZm9Qcm92aWRlcihiYXNlUmVnaW9uKSkhO1xuICAgIGNvbnN0IHZhbGlkYXRvck9wdGlvbnM6IFZhbGlkYXRlT3V0cG9zdHNBcm5PcHRpb25zID0ge1xuICAgICAgdXNlRHVhbHN0YWNrRW5kcG9pbnQ6IG9wdGlvbnMudXNlRHVhbHN0YWNrRW5kcG9pbnQsXG4gICAgICBjbGllbnRSZWdpb24sXG4gICAgICBjbGllbnRQYXJ0aXRpb24sXG4gICAgICBzaWduaW5nUmVnaW9uLFxuICAgICAgdXNlQXJuUmVnaW9uLFxuICAgIH07XG4gICAgbGV0IGFybjogQVJOO1xuICAgIGlmIChwYXJhbWV0ZXIgPT09IFwiTmFtZVwiKSB7XG4gICAgICBhcm4gPSBwYXJzZUFybihpbnB1dC5OYW1lISk7XG4gICAgICB2YWxpZGF0ZU91dHBvc3RzQXJuKGFybiwgdmFsaWRhdG9yT3B0aW9ucyk7XG4gICAgICBjb25zdCB7IG91dHBvc3RJZCwgYWNjZXNzcG9pbnROYW1lIH0gPSBwYXJzZU91dHBvc3RzQWNjZXNzUG9pbnRBcm5SZXNvdXJjZShhcm4ucmVzb3VyY2UpO1xuICAgICAgaW5wdXQuTmFtZSA9IGFjY2Vzc3BvaW50TmFtZTtcbiAgICAgIGNvbnRleHRbQ09OVEVYVF9PVVRQT1NUX0lEXSA9IG91dHBvc3RJZDtcbiAgICB9IGVsc2Uge1xuICAgICAgYXJuID0gcGFyc2VBcm4oaW5wdXQuQnVja2V0ISk7XG4gICAgICB2YWxpZGF0ZU91dHBvc3RzQXJuKGFybiwgdmFsaWRhdG9yT3B0aW9ucyk7XG4gICAgICBjb25zdCB7IG91dHBvc3RJZCwgYnVja2V0TmFtZSB9ID0gcGFyc2VPdXRwb3N0QnVja2V0QXJuUmVzb3VyY2UoYXJuLnJlc291cmNlKTtcbiAgICAgIGlucHV0LkJ1Y2tldCA9IGJ1Y2tldE5hbWU7XG4gICAgICBjb250ZXh0W0NPTlRFWFRfT1VUUE9TVF9JRF0gPSBvdXRwb3N0SWQ7XG4gICAgfVxuICAgIGNvbnRleHRbQ09OVEVYVF9TSUdOSU5HX1NFUlZJQ0VdID0gYXJuLnNlcnZpY2U7IC8vIHMzLW91dHBvc3RzXG4gICAgY29udGV4dFtDT05URVhUX1NJR05JTkdfUkVHSU9OXSA9IHVzZUFyblJlZ2lvbiA/IGFybi5yZWdpb24gOiBzaWduaW5nUmVnaW9uO1xuXG4gICAgaWYgKCFpbnB1dC5BY2NvdW50SWQpIHtcbiAgICAgIGlucHV0LkFjY291bnRJZCA9IGFybi5hY2NvdW50SWQ7XG4gICAgfSBlbHNlIGlmIChpbnB1dC5BY2NvdW50SWQgIT09IGFybi5hY2NvdW50SWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQWNjb3VudElkIGlzIGluY29tcGF0aWJsZSB3aXRoIGFjY291bnQgaWQgaW5mZXJyZWQgZnJvbSAke3BhcmFtZXRlcn1gKTtcbiAgICB9XG5cbiAgICBpZiAodXNlQXJuUmVnaW9uKSBjb250ZXh0W0NPTlRFWFRfQVJOX1JFR0lPTl0gPSBhcm4ucmVnaW9uO1xuXG4gICAgcmV0dXJuIG5leHQoYXJncyk7XG4gIH07XG5cbmV4cG9ydCBjb25zdCBwYXJzZU91dHBvc3RBcm5hYmxlc01pZGRsZWF3YXJlT3B0aW9uczogSW5pdGlhbGl6ZUhhbmRsZXJPcHRpb25zID0ge1xuICBzdGVwOiBcImluaXRpYWxpemVcIixcbiAgdGFnczogW1wiQ09OVkVSVF9BUk5cIiwgXCJPVVRQT1NUX0JVQ0tFVF9BUk5cIiwgXCJPVVRQT1NUX0FDQ0VTU19QT0lOVF9BUk5cIiwgXCJPVVRQT1NUXCJdLFxuICBuYW1lOiBcInBhcnNlT3V0cG9zdEFybmFibGVzTWlkZGxlYXdhcmVcIixcbn07XG5cbnR5cGUgVmFsaWRhdGVPdXRwb3N0c0Fybk9wdGlvbnMgPSB7XG4gIGNsaWVudFJlZ2lvbjogc3RyaW5nO1xuICBzaWduaW5nUmVnaW9uOiBzdHJpbmc7XG4gIGNsaWVudFBhcnRpdGlvbjogc3RyaW5nO1xuICB1c2VBcm5SZWdpb246IGJvb2xlYW47XG4gIHVzZUR1YWxzdGFja0VuZHBvaW50OiBib29sZWFuO1xufTtcblxuLyoqXG4gKiB2YWxpZGF0ZSBBUk4gd2l0aCAnczMtb3V0cG9zdHMnIGluIHRoZSBzZXJ2aWNlIHNlY3Rpb24gb2YgdGhlIEFSTjpcbiAqIEFSTiBzdXBwbGllZCB0byAnTmFtZScgcGFyYW1ldGVyIHNob3VsZCBjb21wbHkgdGVtcGxhdGU6XG4gKiAgICBhcm46e3BhcnRpdGlvbn06czMtb3V0cG9zdHM6e3JlZ2lvbn06e2FjY291bnRJZH06b3V0cG9zdC97b3V0cG9zdElkfS9hY2Nlc3Nwb2ludC97YWNjZXNzcG9pbnROYW1lfVxuICogQVJOIHN1cHBsaWVkIHRvICdCdWNrZXQnIHBhcmFtZXRlciBzaG91bGQgY29tcGx5IHRlbXBsYXRlOlxuICogICAgYXJuOntwYXJ0aXRpb259OnMzLW91dHBvc3RzOntyZWdpb259OnthY2NvdW50SWR9Om91dHBvc3Qve291dHBvc3RJZH0vYnVja2V0L3tidWNrZXROYW1lfVxuICovXG5jb25zdCB2YWxpZGF0ZU91dHBvc3RzQXJuID0gKFxuICBhcm46IEFSTixcbiAgeyBjbGllbnRSZWdpb24sIHNpZ25pbmdSZWdpb24sIGNsaWVudFBhcnRpdGlvbiwgdXNlQXJuUmVnaW9uLCB1c2VEdWFsc3RhY2tFbmRwb2ludCB9OiBWYWxpZGF0ZU91dHBvc3RzQXJuT3B0aW9uc1xuKSA9PiB7XG4gIGNvbnN0IHsgc2VydmljZSwgcGFydGl0aW9uLCBhY2NvdW50SWQsIHJlZ2lvbiB9ID0gYXJuO1xuICB2YWxpZGF0ZU91dHBvc3RTZXJ2aWNlKHNlcnZpY2UpO1xuICB2YWxpZGF0ZVBhcnRpdGlvbihwYXJ0aXRpb24sIHsgY2xpZW50UGFydGl0aW9uIH0pO1xuICB2YWxpZGF0ZUFjY291bnRJZChhY2NvdW50SWQpO1xuICB2YWxpZGF0ZVJlZ2lvbihyZWdpb24sIHtcbiAgICB1c2VBcm5SZWdpb24sXG4gICAgY2xpZW50UmVnaW9uLFxuICAgIGNsaWVudFNpZ25pbmdSZWdpb246IHNpZ25pbmdSZWdpb24sXG4gIH0pO1xuICB2YWxpZGF0ZU5vRHVhbHN0YWNrKHVzZUR1YWxzdGFja0VuZHBvaW50KTtcbiAgaWYgKCF1c2VBcm5SZWdpb24pIHZhbGlkYXRlTm9GSVBTKGNsaWVudFJlZ2lvbik7XG59O1xuXG5jb25zdCBwYXJzZU91dHBvc3RzQWNjZXNzUG9pbnRBcm5SZXNvdXJjZSA9IChcbiAgcmVzb3VyY2U6IHN0cmluZ1xuKToge1xuICBvdXRwb3N0SWQ6IHN0cmluZztcbiAgYWNjZXNzcG9pbnROYW1lOiBzdHJpbmc7XG59ID0+IHtcbiAgY29uc3QgeyBvdXRwb3N0SWQsIGFjY2Vzc3BvaW50TmFtZSB9ID0gZ2V0UzNBY2Nlc3Nwb2ludEFyblJlc291cmNlcyhyZXNvdXJjZSk7XG4gIGlmICghb3V0cG9zdElkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiQVJOIHJlc291cmNlIHNob3VsZCBiZWdpbiB3aXRoICdvdXRwb3N0J1wiKTtcbiAgfVxuICByZXR1cm4ge1xuICAgIG91dHBvc3RJZCxcbiAgICBhY2Nlc3Nwb2ludE5hbWUsXG4gIH07XG59O1xuXG5jb25zdCBwYXJzZU91dHBvc3RCdWNrZXRBcm5SZXNvdXJjZSA9IChcbiAgcmVzb3VyY2U6IHN0cmluZ1xuKToge1xuICBvdXRwb3N0SWQ6IHN0cmluZztcbiAgYnVja2V0TmFtZTogc3RyaW5nO1xufSA9PiB7XG4gIGNvbnN0IGRlbGltaXRlciA9IHJlc291cmNlLmluY2x1ZGVzKFwiOlwiKSA/IFwiOlwiIDogXCIvXCI7XG4gIGNvbnN0IFtyZXNvdXJjZVR5cGUsIC4uLnJlc3RdID0gcmVzb3VyY2Uuc3BsaXQoZGVsaW1pdGVyKTtcbiAgaWYgKHJlc291cmNlVHlwZSA9PT0gXCJvdXRwb3N0XCIpIHtcbiAgICAvLyBQYXJzZSBvdXRwb3N0IEFSTlxuICAgIGlmICghcmVzdFswXSB8fCByZXN0WzFdICE9PSBcImJ1Y2tldFwiIHx8ICFyZXN0WzJdIHx8IHJlc3QubGVuZ3RoICE9PSAzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBPdXRwb3N0IEJ1Y2tldCBBUk4gc2hvdWxkIGhhdmUgcmVzb3VyY2Ugb3V0cG9zdCR7ZGVsaW1pdGVyfXtvdXRwb3N0SWR9JHtkZWxpbWl0ZXJ9YnVja2V0JHtkZWxpbWl0ZXJ9e2J1Y2tldE5hbWV9YFxuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgW291dHBvc3RJZCwgXywgYnVja2V0TmFtZV0gPSByZXN0O1xuICAgIHJldHVybiB7IG91dHBvc3RJZCwgYnVja2V0TmFtZSB9O1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcihgQVJOIHJlc291cmNlIHNob3VsZCBiZWdpbiB3aXRoICdvdXRwb3N0JHtkZWxpbWl0ZXJ9J2ApO1xuICB9XG59O1xuIl19
@@ -1,9 +0,0 @@
1
- import { parseOutpostArnablesMiddleaware, parseOutpostArnablesMiddleawareOptions } from "./parse-outpost-arnables";
2
- import { updateArnablesRequestMiddleware, updateArnablesRequestMiddlewareOptions } from "./update-arnables-request";
3
- export var getProcessArnablesPlugin = function (options) { return ({
4
- applyToStack: function (clientStack) {
5
- clientStack.add(parseOutpostArnablesMiddleaware(options), parseOutpostArnablesMiddleawareOptions);
6
- clientStack.add(updateArnablesRequestMiddleware(options), updateArnablesRequestMiddlewareOptions);
7
- },
8
- }); };
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Byb2Nlc3MtYXJuYWJsZXMtcGx1Z2luL3BsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNuSCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVwSCxNQUFNLENBQUMsSUFBTSx3QkFBd0IsR0FBRyxVQUFDLE9BQWdDLElBQTBCLE9BQUEsQ0FBQztJQUNsRyxZQUFZLEVBQUUsVUFBQyxXQUFXO1FBQ3hCLFdBQVcsQ0FBQyxHQUFHLENBQUMsK0JBQStCLENBQUMsT0FBTyxDQUFDLEVBQUUsc0NBQXNDLENBQUMsQ0FBQztRQUNsRyxXQUFXLENBQUMsR0FBRyxDQUFDLCtCQUErQixDQUFDLE9BQU8sQ0FBQyxFQUFFLHNDQUFzQyxDQUFDLENBQUM7SUFDcEcsQ0FBQztDQUNGLENBQUMsRUFMaUcsQ0FLakcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsdWdnYWJsZSB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBTM0NvbnRyb2xSZXNvbHZlZENvbmZpZyB9IGZyb20gXCIuLi9jb25maWd1cmF0aW9uc1wiO1xuaW1wb3J0IHsgcGFyc2VPdXRwb3N0QXJuYWJsZXNNaWRkbGVhd2FyZSwgcGFyc2VPdXRwb3N0QXJuYWJsZXNNaWRkbGVhd2FyZU9wdGlvbnMgfSBmcm9tIFwiLi9wYXJzZS1vdXRwb3N0LWFybmFibGVzXCI7XG5pbXBvcnQgeyB1cGRhdGVBcm5hYmxlc1JlcXVlc3RNaWRkbGV3YXJlLCB1cGRhdGVBcm5hYmxlc1JlcXVlc3RNaWRkbGV3YXJlT3B0aW9ucyB9IGZyb20gXCIuL3VwZGF0ZS1hcm5hYmxlcy1yZXF1ZXN0XCI7XG5cbmV4cG9ydCBjb25zdCBnZXRQcm9jZXNzQXJuYWJsZXNQbHVnaW4gPSAob3B0aW9uczogUzNDb250cm9sUmVzb2x2ZWRDb25maWcpOiBQbHVnZ2FibGU8YW55LCBhbnk+ID0+ICh7XG4gIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgY2xpZW50U3RhY2suYWRkKHBhcnNlT3V0cG9zdEFybmFibGVzTWlkZGxlYXdhcmUob3B0aW9ucyksIHBhcnNlT3V0cG9zdEFybmFibGVzTWlkZGxlYXdhcmVPcHRpb25zKTtcbiAgICBjbGllbnRTdGFjay5hZGQodXBkYXRlQXJuYWJsZXNSZXF1ZXN0TWlkZGxld2FyZShvcHRpb25zKSwgdXBkYXRlQXJuYWJsZXNSZXF1ZXN0TWlkZGxld2FyZU9wdGlvbnMpO1xuICB9LFxufSk7XG4iXX0=
@@ -1,46 +0,0 @@
1
- import { __read } from "tslib";
2
- import { HttpRequest } from "@aws-sdk/protocol-http";
3
- import { CONTEXT_ACCOUNT_ID, CONTEXT_ARN_REGION, CONTEXT_OUTPOST_ID } from "../constants";
4
- var ACCOUNT_ID_HEADER = "x-amz-account-id";
5
- var OUTPOST_ID_HEADER = "x-amz-outpost-id";
6
- var REGEX_S3CONTROL_HOSTNAME = /^(.+\.)?s3-control[.-]([a-z0-9-]+)\./;
7
- /**
8
- * After outpost request is constructed, redirect request to outpost endpoint and set `x-amz-account-id` and
9
- * `x-amz-outpost-id` headers.
10
- */
11
- export var updateArnablesRequestMiddleware = function (_a) {
12
- var isCustomEndpoint = _a.isCustomEndpoint;
13
- return function (next, context) {
14
- return function (args) {
15
- var request = args.request;
16
- if (!HttpRequest.isInstance(request))
17
- return next(args);
18
- if (context[CONTEXT_ACCOUNT_ID])
19
- request.headers[ACCOUNT_ID_HEADER] = context[CONTEXT_ACCOUNT_ID];
20
- if (context[CONTEXT_OUTPOST_ID]) {
21
- request.headers[OUTPOST_ID_HEADER] = context[CONTEXT_OUTPOST_ID];
22
- request.hostname = getOutpostEndpoint(request.hostname, {
23
- isCustomEndpoint: isCustomEndpoint,
24
- regionOverride: context[CONTEXT_ARN_REGION],
25
- });
26
- }
27
- return next(args);
28
- };
29
- };
30
- };
31
- export var getOutpostEndpoint = function (hostname, _a) {
32
- var _b = _a === void 0 ? {} : _a, isCustomEndpoint = _b.isCustomEndpoint, regionOverride = _b.regionOverride;
33
- var _c = __read(hostname.match(REGEX_S3CONTROL_HOSTNAME), 3), matched = _c[0], prefix = _c[1], region = _c[2];
34
- // hostname prefix will be ignored even if presents
35
- return isCustomEndpoint
36
- ? hostname
37
- : ["s3-outposts", regionOverride || region, hostname.replace(new RegExp("^" + matched), "")]
38
- .filter(function (part) { return part !== undefined; })
39
- .join(".");
40
- };
41
- export var updateArnablesRequestMiddlewareOptions = {
42
- step: "build",
43
- name: "updateArnablesRequestMiddleware",
44
- tags: ["ACCOUNT_ID", "OUTPOST_ID", "OUTPOST"],
45
- };
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWFybmFibGVzLXJlcXVlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvY2Vzcy1hcm5hYmxlcy1wbHVnaW4vdXBkYXRlLWFybmFibGVzLXJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUlyRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFMUYsSUFBTSxpQkFBaUIsR0FBRyxrQkFBa0IsQ0FBQztBQUM3QyxJQUFNLGlCQUFpQixHQUFHLGtCQUFrQixDQUFDO0FBQzdDLElBQU0sd0JBQXdCLEdBQUcsc0NBQXNDLENBQUM7QUFFeEU7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLElBQU0sK0JBQStCLEdBQzFDLFVBQUMsRUFBbUQ7UUFBakQsZ0JBQWdCLHNCQUFBO0lBQ25CLE9BQUEsVUFBQyxJQUFJLEVBQUUsT0FBTztRQUNkLE9BQUEsVUFBQyxJQUFJO1lBQ0ssSUFBQSxPQUFPLEdBQUssSUFBSSxRQUFULENBQVU7WUFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDO2dCQUFFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hELElBQUksT0FBTyxDQUFDLGtCQUFrQixDQUFDO2dCQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUNsRyxJQUFJLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO2dCQUMvQixPQUFPLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7Z0JBQ2pFLE9BQU8sQ0FBQyxRQUFRLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRTtvQkFDdEQsZ0JBQWdCLGtCQUFBO29CQUNoQixjQUFjLEVBQUUsT0FBTyxDQUFDLGtCQUFrQixDQUFDO2lCQUM1QyxDQUFDLENBQUM7YUFDSjtZQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BCLENBQUM7SUFaRCxDQVlDO0FBYkQsQ0FhQyxDQUFDO0FBRUosTUFBTSxDQUFDLElBQU0sa0JBQWtCLEdBQUcsVUFDaEMsUUFBZ0IsRUFDaEIsRUFBa0c7UUFBbEcscUJBQWdHLEVBQUUsS0FBQSxFQUFoRyxnQkFBZ0Isc0JBQUEsRUFBRSxjQUFjLG9CQUFBO0lBRTVCLElBQUEsS0FBQSxPQUE0QixRQUFRLENBQUMsS0FBSyxDQUFDLHdCQUF3QixDQUFFLElBQUEsRUFBcEUsT0FBTyxRQUFBLEVBQUUsTUFBTSxRQUFBLEVBQUUsTUFBTSxRQUE2QyxDQUFDO0lBQzVFLG1EQUFtRDtJQUNuRCxPQUFPLGdCQUFnQjtRQUNyQixDQUFDLENBQUMsUUFBUTtRQUNWLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxjQUFjLElBQUksTUFBTSxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBSSxPQUFTLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQzthQUN2RixNQUFNLENBQUMsVUFBQyxJQUFJLElBQUssT0FBQSxJQUFJLEtBQUssU0FBUyxFQUFsQixDQUFrQixDQUFDO2FBQ3BDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNuQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsSUFBTSxzQ0FBc0MsR0FBd0I7SUFDekUsSUFBSSxFQUFFLE9BQU87SUFDYixJQUFJLEVBQUUsaUNBQWlDO0lBQ3ZDLElBQUksRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsU0FBUyxDQUFDO0NBQzlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYXdzLXNkay9wcm90b2NvbC1odHRwXCI7XG5pbXBvcnQgeyBCdWlsZEhhbmRsZXJPcHRpb25zLCBCdWlsZE1pZGRsZXdhcmUgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuaW1wb3J0IHsgUzNDb250cm9sUmVzb2x2ZWRDb25maWcgfSBmcm9tIFwiLi4vY29uZmlndXJhdGlvbnNcIjtcbmltcG9ydCB7IENPTlRFWFRfQUNDT1VOVF9JRCwgQ09OVEVYVF9BUk5fUkVHSU9OLCBDT05URVhUX09VVFBPU1RfSUQgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5cbmNvbnN0IEFDQ09VTlRfSURfSEVBREVSID0gXCJ4LWFtei1hY2NvdW50LWlkXCI7XG5jb25zdCBPVVRQT1NUX0lEX0hFQURFUiA9IFwieC1hbXotb3V0cG9zdC1pZFwiO1xuY29uc3QgUkVHRVhfUzNDT05UUk9MX0hPU1ROQU1FID0gL14oLitcXC4pP3MzLWNvbnRyb2xbLi1dKFthLXowLTktXSspXFwuLztcblxuLyoqXG4gKiBBZnRlciBvdXRwb3N0IHJlcXVlc3QgaXMgY29uc3RydWN0ZWQsIHJlZGlyZWN0IHJlcXVlc3QgdG8gb3V0cG9zdCBlbmRwb2ludCBhbmQgc2V0IGB4LWFtei1hY2NvdW50LWlkYCBhbmRcbiAqIGB4LWFtei1vdXRwb3N0LWlkYCBoZWFkZXJzLlxuICovXG5leHBvcnQgY29uc3QgdXBkYXRlQXJuYWJsZXNSZXF1ZXN0TWlkZGxld2FyZSA9XG4gICh7IGlzQ3VzdG9tRW5kcG9pbnQgfTogeyBpc0N1c3RvbUVuZHBvaW50OiBib29sZWFuIH0pOiBCdWlsZE1pZGRsZXdhcmU8YW55LCBhbnk+ID0+XG4gIChuZXh0LCBjb250ZXh0KSA9PlxuICAoYXJncykgPT4ge1xuICAgIGNvbnN0IHsgcmVxdWVzdCB9ID0gYXJncztcbiAgICBpZiAoIUh0dHBSZXF1ZXN0LmlzSW5zdGFuY2UocmVxdWVzdCkpIHJldHVybiBuZXh0KGFyZ3MpO1xuICAgIGlmIChjb250ZXh0W0NPTlRFWFRfQUNDT1VOVF9JRF0pIHJlcXVlc3QuaGVhZGVyc1tBQ0NPVU5UX0lEX0hFQURFUl0gPSBjb250ZXh0W0NPTlRFWFRfQUNDT1VOVF9JRF07XG4gICAgaWYgKGNvbnRleHRbQ09OVEVYVF9PVVRQT1NUX0lEXSkge1xuICAgICAgcmVxdWVzdC5oZWFkZXJzW09VVFBPU1RfSURfSEVBREVSXSA9IGNvbnRleHRbQ09OVEVYVF9PVVRQT1NUX0lEXTtcbiAgICAgIHJlcXVlc3QuaG9zdG5hbWUgPSBnZXRPdXRwb3N0RW5kcG9pbnQocmVxdWVzdC5ob3N0bmFtZSwge1xuICAgICAgICBpc0N1c3RvbUVuZHBvaW50LFxuICAgICAgICByZWdpb25PdmVycmlkZTogY29udGV4dFtDT05URVhUX0FSTl9SRUdJT05dLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBuZXh0KGFyZ3MpO1xuICB9O1xuXG5leHBvcnQgY29uc3QgZ2V0T3V0cG9zdEVuZHBvaW50ID0gKFxuICBob3N0bmFtZTogc3RyaW5nLFxuICB7IGlzQ3VzdG9tRW5kcG9pbnQsIHJlZ2lvbk92ZXJyaWRlIH06IHsgaXNDdXN0b21FbmRwb2ludD86IGJvb2xlYW47IHJlZ2lvbk92ZXJyaWRlPzogc3RyaW5nIH0gPSB7fVxuKTogc3RyaW5nID0+IHtcbiAgY29uc3QgW21hdGNoZWQsIHByZWZpeCwgcmVnaW9uXSA9IGhvc3RuYW1lLm1hdGNoKFJFR0VYX1MzQ09OVFJPTF9IT1NUTkFNRSkhO1xuICAvLyBob3N0bmFtZSBwcmVmaXggd2lsbCBiZSBpZ25vcmVkIGV2ZW4gaWYgcHJlc2VudHNcbiAgcmV0dXJuIGlzQ3VzdG9tRW5kcG9pbnRcbiAgICA/IGhvc3RuYW1lXG4gICAgOiBbXCJzMy1vdXRwb3N0c1wiLCByZWdpb25PdmVycmlkZSB8fCByZWdpb24sIGhvc3RuYW1lLnJlcGxhY2UobmV3IFJlZ0V4cChgXiR7bWF0Y2hlZH1gKSwgXCJcIildXG4gICAgICAgIC5maWx0ZXIoKHBhcnQpID0+IHBhcnQgIT09IHVuZGVmaW5lZClcbiAgICAgICAgLmpvaW4oXCIuXCIpO1xufTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZUFybmFibGVzUmVxdWVzdE1pZGRsZXdhcmVPcHRpb25zOiBCdWlsZEhhbmRsZXJPcHRpb25zID0ge1xuICBzdGVwOiBcImJ1aWxkXCIsXG4gIG5hbWU6IFwidXBkYXRlQXJuYWJsZXNSZXF1ZXN0TWlkZGxld2FyZVwiLFxuICB0YWdzOiBbXCJBQ0NPVU5UX0lEXCIsIFwiT1VUUE9TVF9JRFwiLCBcIk9VVFBPU1RcIl0sXG59O1xuIl19