@aws-sdk/middleware-sdk-rds 3.31.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.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,41 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [3.35.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.34.0...v3.35.0) (2021-10-04)
7
+
8
+ **Note:** Version bump only for package @aws-sdk/middleware-sdk-rds
9
+
10
+
11
+
12
+
13
+
14
+ # [3.34.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.33.0...v3.34.0) (2021-09-24)
15
+
16
+
17
+ ### Features
18
+
19
+ * **non-clients:** remove comments from transpiled JS files ([#2813](https://github.com/aws/aws-sdk-js-v3/issues/2813)) ([e6fc7f3](https://github.com/aws/aws-sdk-js-v3/commit/e6fc7f3e0fa74785590ac19e7ed143c916bb9b6e))
20
+
21
+
22
+
23
+
24
+
25
+ # [3.33.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.32.0...v3.33.0) (2021-09-21)
26
+
27
+ **Note:** Version bump only for package @aws-sdk/middleware-sdk-rds
28
+
29
+
30
+
31
+
32
+
33
+ # [3.32.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.31.0...v3.32.0) (2021-09-17)
34
+
35
+ **Note:** Version bump only for package @aws-sdk/middleware-sdk-rds
36
+
37
+
38
+
39
+
40
+
6
41
  # [3.31.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.30.0...v3.31.0) (2021-09-11)
7
42
 
8
43
 
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.credentials = exports.endpoint = exports.region = exports.MockSha256 = void 0;
4
+ class MockSha256 {
5
+ constructor(secret) { }
6
+ update(data) { }
7
+ digest() {
8
+ return Promise.resolve(new Uint8Array(5));
9
+ }
10
+ }
11
+ exports.MockSha256 = MockSha256;
12
+ const region = () => Promise.resolve("mock-region");
13
+ exports.region = region;
14
+ const endpoint = () => Promise.resolve({
15
+ protocol: "https:",
16
+ path: "/",
17
+ hostname: "ec2.mock-region.amazonaws.com",
18
+ });
19
+ exports.endpoint = endpoint;
20
+ const credentials = () => Promise.resolve({
21
+ accessKeyId: "akid",
22
+ secretAccessKey: "secret",
23
+ sessionToken: "session",
24
+ });
25
+ exports.credentials = credentials;
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9maXh0dXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLE1BQWEsVUFBVTtJQUVyQixZQUFZLE1BQStDLElBQUcsQ0FBQztJQUUvRCxNQUFNLENBQUMsSUFBaUIsSUFBRyxDQUFDO0lBQzVCLE1BQU07UUFDSixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1QyxDQUFDO0NBQ0Y7QUFSRCxnQ0FRQztBQUVNLE1BQU0sTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7QUFBOUMsUUFBQSxNQUFNLFVBQXdDO0FBRXBELE1BQU0sUUFBUSxHQUFHLEdBQUcsRUFBRSxDQUMzQixPQUFPLENBQUMsT0FBTyxDQUFDO0lBQ2QsUUFBUSxFQUFFLFFBQVE7SUFDbEIsSUFBSSxFQUFFLEdBQUc7SUFDVCxRQUFRLEVBQUUsK0JBQStCO0NBQzFDLENBQUMsQ0FBQztBQUxRLFFBQUEsUUFBUSxZQUtoQjtBQUVFLE1BQU0sV0FBVyxHQUFHLEdBQUcsRUFBRSxDQUM5QixPQUFPLENBQUMsT0FBTyxDQUFDO0lBQ2QsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLFFBQVE7SUFDekIsWUFBWSxFQUFFLFNBQVM7Q0FDeEIsQ0FBQyxDQUFDO0FBTFEsUUFBQSxXQUFXLGVBS25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU291cmNlRGF0YSB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5leHBvcnQgY2xhc3MgTW9ja1NoYTI1NiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgY29uc3RydWN0b3Ioc2VjcmV0Pzogc3RyaW5nIHwgQXJyYXlCdWZmZXIgfCBBcnJheUJ1ZmZlclZpZXcpIHt9XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgdXBkYXRlKGRhdGE/OiBTb3VyY2VEYXRhKSB7fVxuICBkaWdlc3QoKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShuZXcgVWludDhBcnJheSg1KSk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHJlZ2lvbiA9ICgpID0+IFByb21pc2UucmVzb2x2ZShcIm1vY2stcmVnaW9uXCIpO1xuXG5leHBvcnQgY29uc3QgZW5kcG9pbnQgPSAoKSA9PlxuICBQcm9taXNlLnJlc29sdmUoe1xuICAgIHByb3RvY29sOiBcImh0dHBzOlwiLFxuICAgIHBhdGg6IFwiL1wiLFxuICAgIGhvc3RuYW1lOiBcImVjMi5tb2NrLXJlZ2lvbi5hbWF6b25hd3MuY29tXCIsXG4gIH0pO1xuXG5leHBvcnQgY29uc3QgY3JlZGVudGlhbHMgPSAoKSA9PlxuICBQcm9taXNlLnJlc29sdmUoe1xuICAgIGFjY2Vzc0tleUlkOiBcImFraWRcIixcbiAgICBzZWNyZXRBY2Nlc3NLZXk6IFwic2VjcmV0XCIsXG4gICAgc2Vzc2lvblRva2VuOiBcInNlc3Npb25cIixcbiAgfSk7XG4iXX0=
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getCrossRegionPresignedUrlPlugin = exports.crossRegionPresignedUrlMiddlewareOptions = exports.crossRegionPresignedUrlMiddleware = void 0;
4
+ const protocol_http_1 = require("@aws-sdk/protocol-http");
5
+ const signature_v4_1 = require("@aws-sdk/signature-v4");
6
+ const util_format_url_1 = require("@aws-sdk/util-format-url");
7
+ const regARN = /arn:[\w+=/,.@-]+:[\w+=/,.@-]+:([\w+=/,.@-]*)?:[0-9]+:[\w+=/,.@-]+(:[\w+=/,.@-]+)?(:[\w+=/,.@-]+)?/;
8
+ const sourceIdToCommandKeyMap = {
9
+ SourceDBSnapshotIdentifier: "CopyDBSnapshot",
10
+ SourceDBInstanceIdentifier: "CreateDBInstanceReadReplica",
11
+ ReplicationSourceIdentifier: "CreateDBCluster",
12
+ SourceDBClusterSnapshotIdentifier: "CopyDBClusterSnapshot",
13
+ SourceDBInstanceArn: "StartDBInstanceAutomatedBackupsReplication",
14
+ };
15
+ const version = "2014-10-31";
16
+ function crossRegionPresignedUrlMiddleware(options) {
17
+ return (next) => async (args) => {
18
+ const { input } = args;
19
+ const region = await options.region();
20
+ const sourceIdKey = Object.keys(sourceIdToCommandKeyMap).filter((sourceKeyId) => input.hasOwnProperty(sourceKeyId))[0];
21
+ if (!sourceIdKey)
22
+ return next(args);
23
+ const command = sourceIdToCommandKeyMap[sourceIdKey];
24
+ if (!input.PreSignedUrl && isARN(input[sourceIdKey]) && region !== getEndpointFromARN(input[sourceIdKey])) {
25
+ const sourceRegion = getEndpointFromARN(input[sourceIdKey]);
26
+ const resolvedEndpoint = await options.endpoint();
27
+ resolvedEndpoint.hostname = `rds.${sourceRegion}.amazonaws.com`;
28
+ const request = new protocol_http_1.HttpRequest({
29
+ ...resolvedEndpoint,
30
+ protocol: "https",
31
+ headers: {
32
+ host: resolvedEndpoint.hostname,
33
+ },
34
+ query: {
35
+ Action: command,
36
+ Version: version,
37
+ KmsKeyId: input.KmsKeyId,
38
+ DestinationRegion: region,
39
+ [sourceIdKey]: input[sourceIdKey],
40
+ },
41
+ });
42
+ const signer = new signature_v4_1.SignatureV4({
43
+ credentials: options.credentials,
44
+ region: sourceRegion,
45
+ service: "rds",
46
+ sha256: options.sha256,
47
+ uriEscapePath: options.signingEscapePath,
48
+ });
49
+ const presignedRequest = await signer.presign(request, {
50
+ expiresIn: 3600,
51
+ });
52
+ args = {
53
+ ...args,
54
+ input: {
55
+ ...args.input,
56
+ PreSignedUrl: util_format_url_1.formatUrl(presignedRequest),
57
+ },
58
+ };
59
+ }
60
+ return next(args);
61
+ };
62
+ }
63
+ exports.crossRegionPresignedUrlMiddleware = crossRegionPresignedUrlMiddleware;
64
+ exports.crossRegionPresignedUrlMiddlewareOptions = {
65
+ step: "initialize",
66
+ tags: ["CROSS_REGION_PRESIGNED_URL"],
67
+ name: "crossRegionPresignedUrlMiddleware",
68
+ override: true,
69
+ };
70
+ const getCrossRegionPresignedUrlPlugin = (config) => ({
71
+ applyToStack: (clientStack) => {
72
+ clientStack.add(crossRegionPresignedUrlMiddleware(config), exports.crossRegionPresignedUrlMiddlewareOptions);
73
+ },
74
+ });
75
+ exports.getCrossRegionPresignedUrlPlugin = getCrossRegionPresignedUrlPlugin;
76
+ function isARN(id) {
77
+ if (!id)
78
+ return false;
79
+ return regARN.test(id);
80
+ }
81
+ function getEndpointFromARN(arn) {
82
+ const arnArr = arn.split(":");
83
+ if (arnArr.length < 4) {
84
+ throw new Error(`Cannot infer endpoint from '${arn}'`);
85
+ }
86
+ return arnArr[3];
87
+ }
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMERBQXFEO0FBQ3JELHdEQUFvRDtBQWNwRCw4REFBcUQ7QUFFckQsTUFBTSxNQUFNLEdBQUcsbUdBQW1HLENBQUM7QUFFbkgsTUFBTSx1QkFBdUIsR0FBOEI7SUFDekQsMEJBQTBCLEVBQUUsZ0JBQWdCO0lBQzVDLDBCQUEwQixFQUFFLDZCQUE2QjtJQUN6RCwyQkFBMkIsRUFBRSxpQkFBaUI7SUFDOUMsaUNBQWlDLEVBQUUsdUJBQXVCO0lBQzFELG1CQUFtQixFQUFFLDRDQUE0QztDQUNsRSxDQUFDO0FBRUYsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDO0FBYzdCLFNBQWdCLGlDQUFpQyxDQUFDLE9BQTJCO0lBQzNFLE9BQU8sQ0FBZ0MsSUFBb0MsRUFBa0MsRUFBRSxDQUM3RyxLQUFLLEVBQUUsSUFBcUMsRUFBNEMsRUFBRTtRQUN4RixNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLE1BQU0sTUFBTSxHQUFHLE1BQU0sT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3RDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUM5RSxLQUFLLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUNsQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRUwsSUFBSSxDQUFDLFdBQVc7WUFBRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVwQyxNQUFNLE9BQU8sR0FBRyx1QkFBdUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksTUFBTSxLQUFLLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFO1lBQ3pHLE1BQU0sWUFBWSxHQUFHLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQzVELE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEQsZ0JBQWdCLENBQUMsUUFBUSxHQUFHLE9BQU8sWUFBWSxnQkFBZ0IsQ0FBQztZQUNoRSxNQUFNLE9BQU8sR0FBRyxJQUFJLDJCQUFXLENBQUM7Z0JBQzlCLEdBQUcsZ0JBQWdCO2dCQUNuQixRQUFRLEVBQUUsT0FBTztnQkFDakIsT0FBTyxFQUFFO29CQUNQLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRO2lCQUNoQztnQkFDRCxLQUFLLEVBQUU7b0JBQ0wsTUFBTSxFQUFFLE9BQU87b0JBQ2YsT0FBTyxFQUFFLE9BQU87b0JBQ2hCLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtvQkFDeEIsaUJBQWlCLEVBQUUsTUFBTTtvQkFDekIsQ0FBQyxXQUFXLENBQUMsRUFBRSxLQUFLLENBQUMsV0FBVyxDQUFDO2lCQUNsQzthQUNGLENBQUMsQ0FBQztZQUNILE1BQU0sTUFBTSxHQUFHLElBQUksMEJBQVcsQ0FBQztnQkFDN0IsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXO2dCQUNoQyxNQUFNLEVBQUUsWUFBWTtnQkFDcEIsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO2dCQUN0QixhQUFhLEVBQUUsT0FBTyxDQUFDLGlCQUFpQjthQUN6QyxDQUFDLENBQUM7WUFDSCxNQUFNLGdCQUFnQixHQUFHLE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUU7Z0JBQ3JELFNBQVMsRUFBRSxJQUFJO2FBQ2hCLENBQUMsQ0FBQztZQUNILElBQUksR0FBRztnQkFDTCxHQUFHLElBQUk7Z0JBQ1AsS0FBSyxFQUFFO29CQUNMLEdBQUcsSUFBSSxDQUFDLEtBQUs7b0JBQ2IsWUFBWSxFQUFFLDJCQUFTLENBQUMsZ0JBQWdCLENBQUM7aUJBQzFDO2FBQ0YsQ0FBQztTQUNIO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEIsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQWxERCw4RUFrREM7QUFFWSxRQUFBLHdDQUF3QyxHQUE2QjtJQUNoRixJQUFJLEVBQUUsWUFBWTtJQUNsQixJQUFJLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQztJQUNwQyxJQUFJLEVBQUUsbUNBQW1DO0lBQ3pDLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FBQztBQUVLLE1BQU0sZ0NBQWdDLEdBQUcsQ0FBQyxNQUEwQixFQUF1QixFQUFFLENBQUMsQ0FBQztJQUNwRyxZQUFZLEVBQUUsQ0FBQyxXQUFXLEVBQUUsRUFBRTtRQUM1QixXQUFXLENBQUMsR0FBRyxDQUFDLGlDQUFpQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLGdEQUF3QyxDQUFDLENBQUM7SUFDdkcsQ0FBQztDQUNGLENBQUMsQ0FBQztBQUpVLFFBQUEsZ0NBQWdDLG9DQUkxQztBQUVILFNBQVMsS0FBSyxDQUFDLEVBQXNCO0lBQ25DLElBQUksQ0FBQyxFQUFFO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDdEIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3pCLENBQUM7QUFFRCxTQUFTLGtCQUFrQixDQUFDLEdBQVc7SUFDckMsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5QixJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLEdBQUcsR0FBRyxDQUFDLENBQUM7S0FDeEQ7SUFDRCxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cFJlcXVlc3QgfSBmcm9tIFwiQGF3cy1zZGsvcHJvdG9jb2wtaHR0cFwiO1xuaW1wb3J0IHsgU2lnbmF0dXJlVjQgfSBmcm9tIFwiQGF3cy1zZGsvc2lnbmF0dXJlLXY0XCI7XG5pbXBvcnQge1xuICBDcmVkZW50aWFscyxcbiAgRW5kcG9pbnQsXG4gIEhhc2hDb25zdHJ1Y3RvcixcbiAgSW5pdGlhbGl6ZUhhbmRsZXIsXG4gIEluaXRpYWxpemVIYW5kbGVyQXJndW1lbnRzLFxuICBJbml0aWFsaXplSGFuZGxlck9wdGlvbnMsXG4gIEluaXRpYWxpemVIYW5kbGVyT3V0cHV0LFxuICBJbml0aWFsaXplTWlkZGxld2FyZSxcbiAgTWV0YWRhdGFCZWFyZXIsXG4gIFBsdWdnYWJsZSxcbiAgUHJvdmlkZXIsXG59IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuaW1wb3J0IHsgZm9ybWF0VXJsIH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtZm9ybWF0LXVybFwiO1xuXG5jb25zdCByZWdBUk4gPSAvYXJuOltcXHcrPS8sLkAtXSs6W1xcdys9LywuQC1dKzooW1xcdys9LywuQC1dKik/OlswLTldKzpbXFx3Kz0vLC5ALV0rKDpbXFx3Kz0vLC5ALV0rKT8oOltcXHcrPS8sLkAtXSspPy87XG5cbmNvbnN0IHNvdXJjZUlkVG9Db21tYW5kS2V5TWFwOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICBTb3VyY2VEQlNuYXBzaG90SWRlbnRpZmllcjogXCJDb3B5REJTbmFwc2hvdFwiLFxuICBTb3VyY2VEQkluc3RhbmNlSWRlbnRpZmllcjogXCJDcmVhdGVEQkluc3RhbmNlUmVhZFJlcGxpY2FcIixcbiAgUmVwbGljYXRpb25Tb3VyY2VJZGVudGlmaWVyOiBcIkNyZWF0ZURCQ2x1c3RlclwiLCAvLyBUaGlzIGtleSBpcyBvcHRpb25hbC5cbiAgU291cmNlREJDbHVzdGVyU25hcHNob3RJZGVudGlmaWVyOiBcIkNvcHlEQkNsdXN0ZXJTbmFwc2hvdFwiLFxuICBTb3VyY2VEQkluc3RhbmNlQXJuOiBcIlN0YXJ0REJJbnN0YW5jZUF1dG9tYXRlZEJhY2t1cHNSZXBsaWNhdGlvblwiLFxufTtcblxuY29uc3QgdmVyc2lvbiA9IFwiMjAxNC0xMC0zMVwiO1xuXG5pbnRlcmZhY2UgUHJldmlvdXNseVJlc29sdmVkIHtcbiAgY3JlZGVudGlhbHM6IFByb3ZpZGVyPENyZWRlbnRpYWxzPjtcbiAgZW5kcG9pbnQ6IFByb3ZpZGVyPEVuZHBvaW50PjtcbiAgcmVnaW9uOiBQcm92aWRlcjxzdHJpbmc+O1xuICBzaGEyNTY6IEhhc2hDb25zdHJ1Y3RvcjtcbiAgc2lnbmluZ0VzY2FwZVBhdGg6IGJvb2xlYW47XG59XG5cbi8qKlxuICogQ29uZmlnIG9mIHRoZSBtaWRkbGV3YXJlIHRvIGF1dG9tYXRpY2FsbHkgYWRkIHByZXNpZ25lZCBVUkwgdG8gcmVxdWVzdC5cbiAqIFRoZSBwcmVzaWduZWQgVVJMIGlzIGdlbmVyYXRlZCBieSBzaWdWNFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3Jvc3NSZWdpb25QcmVzaWduZWRVcmxNaWRkbGV3YXJlKG9wdGlvbnM6IFByZXZpb3VzbHlSZXNvbHZlZCk6IEluaXRpYWxpemVNaWRkbGV3YXJlPGFueSwgYW55PiB7XG4gIHJldHVybiA8T3V0cHV0IGV4dGVuZHMgTWV0YWRhdGFCZWFyZXI+KG5leHQ6IEluaXRpYWxpemVIYW5kbGVyPGFueSwgT3V0cHV0Pik6IEluaXRpYWxpemVIYW5kbGVyPGFueSwgT3V0cHV0PiA9PlxuICAgIGFzeW5jIChhcmdzOiBJbml0aWFsaXplSGFuZGxlckFyZ3VtZW50czxhbnk+KTogUHJvbWlzZTxJbml0aWFsaXplSGFuZGxlck91dHB1dDxPdXRwdXQ+PiA9PiB7XG4gICAgICBjb25zdCB7IGlucHV0IH0gPSBhcmdzO1xuICAgICAgY29uc3QgcmVnaW9uID0gYXdhaXQgb3B0aW9ucy5yZWdpb24oKTtcbiAgICAgIGNvbnN0IHNvdXJjZUlkS2V5ID0gT2JqZWN0LmtleXMoc291cmNlSWRUb0NvbW1hbmRLZXlNYXApLmZpbHRlcigoc291cmNlS2V5SWQpID0+XG4gICAgICAgIGlucHV0Lmhhc093blByb3BlcnR5KHNvdXJjZUtleUlkKVxuICAgICAgKVswXTtcbiAgICAgIC8vIFNvdXJjZSBpZCBpcyBvcHRpb25hbC5cbiAgICAgIGlmICghc291cmNlSWRLZXkpIHJldHVybiBuZXh0KGFyZ3MpO1xuXG4gICAgICBjb25zdCBjb21tYW5kID0gc291cmNlSWRUb0NvbW1hbmRLZXlNYXBbc291cmNlSWRLZXldO1xuICAgICAgaWYgKCFpbnB1dC5QcmVTaWduZWRVcmwgJiYgaXNBUk4oaW5wdXRbc291cmNlSWRLZXldKSAmJiByZWdpb24gIT09IGdldEVuZHBvaW50RnJvbUFSTihpbnB1dFtzb3VyY2VJZEtleV0pKSB7XG4gICAgICAgIGNvbnN0IHNvdXJjZVJlZ2lvbiA9IGdldEVuZHBvaW50RnJvbUFSTihpbnB1dFtzb3VyY2VJZEtleV0pO1xuICAgICAgICBjb25zdCByZXNvbHZlZEVuZHBvaW50ID0gYXdhaXQgb3B0aW9ucy5lbmRwb2ludCgpO1xuICAgICAgICByZXNvbHZlZEVuZHBvaW50Lmhvc3RuYW1lID0gYHJkcy4ke3NvdXJjZVJlZ2lvbn0uYW1hem9uYXdzLmNvbWA7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgSHR0cFJlcXVlc3Qoe1xuICAgICAgICAgIC4uLnJlc29sdmVkRW5kcG9pbnQsXG4gICAgICAgICAgcHJvdG9jb2w6IFwiaHR0cHNcIixcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICBob3N0OiByZXNvbHZlZEVuZHBvaW50Lmhvc3RuYW1lLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcXVlcnk6IHtcbiAgICAgICAgICAgIEFjdGlvbjogY29tbWFuZCxcbiAgICAgICAgICAgIFZlcnNpb246IHZlcnNpb24sXG4gICAgICAgICAgICBLbXNLZXlJZDogaW5wdXQuS21zS2V5SWQsXG4gICAgICAgICAgICBEZXN0aW5hdGlvblJlZ2lvbjogcmVnaW9uLFxuICAgICAgICAgICAgW3NvdXJjZUlkS2V5XTogaW5wdXRbc291cmNlSWRLZXldLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzaWduZXIgPSBuZXcgU2lnbmF0dXJlVjQoe1xuICAgICAgICAgIGNyZWRlbnRpYWxzOiBvcHRpb25zLmNyZWRlbnRpYWxzLFxuICAgICAgICAgIHJlZ2lvbjogc291cmNlUmVnaW9uLFxuICAgICAgICAgIHNlcnZpY2U6IFwicmRzXCIsXG4gICAgICAgICAgc2hhMjU2OiBvcHRpb25zLnNoYTI1NixcbiAgICAgICAgICB1cmlFc2NhcGVQYXRoOiBvcHRpb25zLnNpZ25pbmdFc2NhcGVQYXRoLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgcHJlc2lnbmVkUmVxdWVzdCA9IGF3YWl0IHNpZ25lci5wcmVzaWduKHJlcXVlc3QsIHtcbiAgICAgICAgICBleHBpcmVzSW46IDM2MDAsXG4gICAgICAgIH0pO1xuICAgICAgICBhcmdzID0ge1xuICAgICAgICAgIC4uLmFyZ3MsXG4gICAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICAgIC4uLmFyZ3MuaW5wdXQsXG4gICAgICAgICAgICBQcmVTaWduZWRVcmw6IGZvcm1hdFVybChwcmVzaWduZWRSZXF1ZXN0KSxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIG5leHQoYXJncyk7XG4gICAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IGNyb3NzUmVnaW9uUHJlc2lnbmVkVXJsTWlkZGxld2FyZU9wdGlvbnM6IEluaXRpYWxpemVIYW5kbGVyT3B0aW9ucyA9IHtcbiAgc3RlcDogXCJpbml0aWFsaXplXCIsXG4gIHRhZ3M6IFtcIkNST1NTX1JFR0lPTl9QUkVTSUdORURfVVJMXCJdLFxuICBuYW1lOiBcImNyb3NzUmVnaW9uUHJlc2lnbmVkVXJsTWlkZGxld2FyZVwiLFxuICBvdmVycmlkZTogdHJ1ZSxcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRDcm9zc1JlZ2lvblByZXNpZ25lZFVybFBsdWdpbiA9IChjb25maWc6IFByZXZpb3VzbHlSZXNvbHZlZCk6IFBsdWdnYWJsZTxhbnksIGFueT4gPT4gKHtcbiAgYXBwbHlUb1N0YWNrOiAoY2xpZW50U3RhY2spID0+IHtcbiAgICBjbGllbnRTdGFjay5hZGQoY3Jvc3NSZWdpb25QcmVzaWduZWRVcmxNaWRkbGV3YXJlKGNvbmZpZyksIGNyb3NzUmVnaW9uUHJlc2lnbmVkVXJsTWlkZGxld2FyZU9wdGlvbnMpO1xuICB9LFxufSk7XG5cbmZ1bmN0aW9uIGlzQVJOKGlkOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgaWYgKCFpZCkgcmV0dXJuIGZhbHNlO1xuICByZXR1cm4gcmVnQVJOLnRlc3QoaWQpO1xufVxuXG5mdW5jdGlvbiBnZXRFbmRwb2ludEZyb21BUk4oYXJuOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBhcm5BcnIgPSBhcm4uc3BsaXQoXCI6XCIpO1xuICBpZiAoYXJuQXJyLmxlbmd0aCA8IDQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBpbmZlciBlbmRwb2ludCBmcm9tICcke2Fybn0nYCk7XG4gIH1cbiAgcmV0dXJuIGFybkFyclszXTtcbn1cbiJdfQ==
@@ -0,0 +1,26 @@
1
+ var MockSha256 = (function () {
2
+ function MockSha256(secret) {
3
+ }
4
+ MockSha256.prototype.update = function (data) { };
5
+ MockSha256.prototype.digest = function () {
6
+ return Promise.resolve(new Uint8Array(5));
7
+ };
8
+ return MockSha256;
9
+ }());
10
+ export { MockSha256 };
11
+ export var region = function () { return Promise.resolve("mock-region"); };
12
+ export var endpoint = function () {
13
+ return Promise.resolve({
14
+ protocol: "https:",
15
+ path: "/",
16
+ hostname: "ec2.mock-region.amazonaws.com",
17
+ });
18
+ };
19
+ export var credentials = function () {
20
+ return Promise.resolve({
21
+ accessKeyId: "akid",
22
+ secretAccessKey: "secret",
23
+ sessionToken: "session",
24
+ });
25
+ };
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9maXh0dXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBO0lBRUUsb0JBQVksTUFBK0M7SUFBRyxDQUFDO0lBRS9ELDJCQUFNLEdBQU4sVUFBTyxJQUFpQixJQUFHLENBQUM7SUFDNUIsMkJBQU0sR0FBTjtRQUNFLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFDSCxpQkFBQztBQUFELENBQUMsQUFSRCxJQVFDOztBQUVELE1BQU0sQ0FBQyxJQUFNLE1BQU0sR0FBRyxjQUFNLE9BQUEsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBOUIsQ0FBOEIsQ0FBQztBQUUzRCxNQUFNLENBQUMsSUFBTSxRQUFRLEdBQUc7SUFDdEIsT0FBQSxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQ2QsUUFBUSxFQUFFLFFBQVE7UUFDbEIsSUFBSSxFQUFFLEdBQUc7UUFDVCxRQUFRLEVBQUUsK0JBQStCO0tBQzFDLENBQUM7QUFKRixDQUlFLENBQUM7QUFFTCxNQUFNLENBQUMsSUFBTSxXQUFXLEdBQUc7SUFDekIsT0FBQSxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQ2QsV0FBVyxFQUFFLE1BQU07UUFDbkIsZUFBZSxFQUFFLFFBQVE7UUFDekIsWUFBWSxFQUFFLFNBQVM7S0FDeEIsQ0FBQztBQUpGLENBSUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNvdXJjZURhdGEgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuZXhwb3J0IGNsYXNzIE1vY2tTaGEyNTYge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIGNvbnN0cnVjdG9yKHNlY3JldD86IHN0cmluZyB8IEFycmF5QnVmZmVyIHwgQXJyYXlCdWZmZXJWaWV3KSB7fVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIHVwZGF0ZShkYXRhPzogU291cmNlRGF0YSkge31cbiAgZGlnZXN0KCkge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobmV3IFVpbnQ4QXJyYXkoNSkpO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCByZWdpb24gPSAoKSA9PiBQcm9taXNlLnJlc29sdmUoXCJtb2NrLXJlZ2lvblwiKTtcblxuZXhwb3J0IGNvbnN0IGVuZHBvaW50ID0gKCkgPT5cbiAgUHJvbWlzZS5yZXNvbHZlKHtcbiAgICBwcm90b2NvbDogXCJodHRwczpcIixcbiAgICBwYXRoOiBcIi9cIixcbiAgICBob3N0bmFtZTogXCJlYzIubW9jay1yZWdpb24uYW1hem9uYXdzLmNvbVwiLFxuICB9KTtcblxuZXhwb3J0IGNvbnN0IGNyZWRlbnRpYWxzID0gKCkgPT5cbiAgUHJvbWlzZS5yZXNvbHZlKHtcbiAgICBhY2Nlc3NLZXlJZDogXCJha2lkXCIsXG4gICAgc2VjcmV0QWNjZXNzS2V5OiBcInNlY3JldFwiLFxuICAgIHNlc3Npb25Ub2tlbjogXCJzZXNzaW9uXCIsXG4gIH0pO1xuIl19
@@ -0,0 +1,92 @@
1
+ import { __assign, __awaiter, __generator } from "tslib";
2
+ import { HttpRequest } from "@aws-sdk/protocol-http";
3
+ import { SignatureV4 } from "@aws-sdk/signature-v4";
4
+ import { formatUrl } from "@aws-sdk/util-format-url";
5
+ var regARN = /arn:[\w+=/,.@-]+:[\w+=/,.@-]+:([\w+=/,.@-]*)?:[0-9]+:[\w+=/,.@-]+(:[\w+=/,.@-]+)?(:[\w+=/,.@-]+)?/;
6
+ var sourceIdToCommandKeyMap = {
7
+ SourceDBSnapshotIdentifier: "CopyDBSnapshot",
8
+ SourceDBInstanceIdentifier: "CreateDBInstanceReadReplica",
9
+ ReplicationSourceIdentifier: "CreateDBCluster",
10
+ SourceDBClusterSnapshotIdentifier: "CopyDBClusterSnapshot",
11
+ SourceDBInstanceArn: "StartDBInstanceAutomatedBackupsReplication",
12
+ };
13
+ var version = "2014-10-31";
14
+ export function crossRegionPresignedUrlMiddleware(options) {
15
+ var _this = this;
16
+ return function (next) {
17
+ return function (args) { return __awaiter(_this, void 0, void 0, function () {
18
+ var input, region, sourceIdKey, command, sourceRegion, resolvedEndpoint, request, signer, presignedRequest;
19
+ var _a;
20
+ return __generator(this, function (_b) {
21
+ switch (_b.label) {
22
+ case 0:
23
+ input = args.input;
24
+ return [4, options.region()];
25
+ case 1:
26
+ region = _b.sent();
27
+ sourceIdKey = Object.keys(sourceIdToCommandKeyMap).filter(function (sourceKeyId) {
28
+ return input.hasOwnProperty(sourceKeyId);
29
+ })[0];
30
+ if (!sourceIdKey)
31
+ return [2, next(args)];
32
+ command = sourceIdToCommandKeyMap[sourceIdKey];
33
+ if (!(!input.PreSignedUrl && isARN(input[sourceIdKey]) && region !== getEndpointFromARN(input[sourceIdKey]))) return [3, 4];
34
+ sourceRegion = getEndpointFromARN(input[sourceIdKey]);
35
+ return [4, options.endpoint()];
36
+ case 2:
37
+ resolvedEndpoint = _b.sent();
38
+ resolvedEndpoint.hostname = "rds." + sourceRegion + ".amazonaws.com";
39
+ request = new HttpRequest(__assign(__assign({}, resolvedEndpoint), { protocol: "https", headers: {
40
+ host: resolvedEndpoint.hostname,
41
+ }, query: (_a = {
42
+ Action: command,
43
+ Version: version,
44
+ KmsKeyId: input.KmsKeyId,
45
+ DestinationRegion: region
46
+ },
47
+ _a[sourceIdKey] = input[sourceIdKey],
48
+ _a) }));
49
+ signer = new SignatureV4({
50
+ credentials: options.credentials,
51
+ region: sourceRegion,
52
+ service: "rds",
53
+ sha256: options.sha256,
54
+ uriEscapePath: options.signingEscapePath,
55
+ });
56
+ return [4, signer.presign(request, {
57
+ expiresIn: 3600,
58
+ })];
59
+ case 3:
60
+ presignedRequest = _b.sent();
61
+ args = __assign(__assign({}, args), { input: __assign(__assign({}, args.input), { PreSignedUrl: formatUrl(presignedRequest) }) });
62
+ _b.label = 4;
63
+ case 4: return [2, next(args)];
64
+ }
65
+ });
66
+ }); };
67
+ };
68
+ }
69
+ export var crossRegionPresignedUrlMiddlewareOptions = {
70
+ step: "initialize",
71
+ tags: ["CROSS_REGION_PRESIGNED_URL"],
72
+ name: "crossRegionPresignedUrlMiddleware",
73
+ override: true,
74
+ };
75
+ export var getCrossRegionPresignedUrlPlugin = function (config) { return ({
76
+ applyToStack: function (clientStack) {
77
+ clientStack.add(crossRegionPresignedUrlMiddleware(config), crossRegionPresignedUrlMiddlewareOptions);
78
+ },
79
+ }); };
80
+ function isARN(id) {
81
+ if (!id)
82
+ return false;
83
+ return regARN.test(id);
84
+ }
85
+ function getEndpointFromARN(arn) {
86
+ var arnArr = arn.split(":");
87
+ if (arnArr.length < 4) {
88
+ throw new Error("Cannot infer endpoint from '" + arn + "'");
89
+ }
90
+ return arnArr[3];
91
+ }
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFjcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJELElBQU0sTUFBTSxHQUFHLG1HQUFtRyxDQUFDO0FBRW5ILElBQU0sdUJBQXVCLEdBQThCO0lBQ3pELDBCQUEwQixFQUFFLGdCQUFnQjtJQUM1QywwQkFBMEIsRUFBRSw2QkFBNkI7SUFDekQsMkJBQTJCLEVBQUUsaUJBQWlCO0lBQzlDLGlDQUFpQyxFQUFFLHVCQUF1QjtJQUMxRCxtQkFBbUIsRUFBRSw0Q0FBNEM7Q0FDbEUsQ0FBQztBQUVGLElBQU0sT0FBTyxHQUFHLFlBQVksQ0FBQztBQWM3QixNQUFNLFVBQVUsaUNBQWlDLENBQUMsT0FBMkI7SUFBN0UsaUJBa0RDO0lBakRDLE9BQU8sVUFBZ0MsSUFBb0M7UUFDekUsT0FBQSxVQUFPLElBQXFDOzs7Ozs7d0JBQ2xDLEtBQUssR0FBSyxJQUFJLE1BQVQsQ0FBVTt3QkFDUixXQUFNLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBQTs7d0JBQS9CLE1BQU0sR0FBRyxTQUFzQjt3QkFDL0IsV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBQyxXQUFXOzRCQUMxRSxPQUFBLEtBQUssQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDO3dCQUFqQyxDQUFpQyxDQUNsQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUVMLElBQUksQ0FBQyxXQUFXOzRCQUFFLFdBQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFDO3dCQUU5QixPQUFPLEdBQUcsdUJBQXVCLENBQUMsV0FBVyxDQUFDLENBQUM7NkJB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cy1zZGsvcHJvdG9jb2wtaHR0cFwiO1xuaW1wb3J0IHsgU2lnbmF0dXJlVjQgfSBmcm9tIFwiQGF3cy1zZGsvc2lnbmF0dXJlLXY0XCI7XG5pbXBvcnQge1xuICBDcmVkZW50aWFscyxcbiAgRW5kcG9pbnQsXG4gIEhhc2hDb25zdHJ1Y3RvcixcbiAgSW5pdGlhbGl6ZUhhbmRsZXIsXG4gIEluaXRpYWxpemVIYW5kbGVyQXJndW1lbnRzLFxuICBJbml0aWFsaXplSGFuZGxlck9wdGlvbnMsXG4gIEluaXRpYWxpemVIYW5kbGVyT3V0cHV0LFxuICBJbml0aWFsaXplTWlkZGxld2FyZSxcbiAgTWV0YWRhdGFCZWFyZXIsXG4gIFBsdWdnYWJsZSxcbiAgUHJvdmlkZXIsXG59IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuaW1wb3J0IHsgZm9ybWF0VXJsIH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtZm9ybWF0LXVybFwiO1xuXG5jb25zdCByZWdBUk4gPSAvYXJuOltcXHcrPS8sLkAtXSs6W1xcdys9LywuQC1dKzooW1xcdys9LywuQC1dKik/OlswLTldKzpbXFx3Kz0vLC5ALV0rKDpbXFx3Kz0vLC5ALV0rKT8oOltcXHcrPS8sLkAtXSspPy87XG5cbmNvbnN0IHNvdXJjZUlkVG9Db21tYW5kS2V5TWFwOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICBTb3VyY2VEQlNuYXBzaG90SWRlbnRpZmllcjogXCJDb3B5REJTbmFwc2hvdFwiLFxuICBTb3VyY2VEQkluc3RhbmNlSWRlbnRpZmllcjogXCJDcmVhdGVEQkluc3RhbmNlUmVhZFJlcGxpY2FcIixcbiAgUmVwbGljYXRpb25Tb3VyY2VJZGVudGlmaWVyOiBcIkNyZWF0ZURCQ2x1c3RlclwiLCAvLyBUaGlzIGtleSBpcyBvcHRpb25hbC5cbiAgU291cmNlREJDbHVzdGVyU25hcHNob3RJZGVudGlmaWVyOiBcIkNvcHlEQkNsdXN0ZXJTbmFwc2hvdFwiLFxuICBTb3VyY2VEQkluc3RhbmNlQXJuOiBcIlN0YXJ0REJJbnN0YW5jZUF1dG9tYXRlZEJhY2t1cHNSZXBsaWNhdGlvblwiLFxufTtcblxuY29uc3QgdmVyc2lvbiA9IFwiMjAxNC0xMC0zMVwiO1xuXG5pbnRlcmZhY2UgUHJldmlvdXNseVJlc29sdmVkIHtcbiAgY3JlZGVudGlhbHM6IFByb3ZpZGVyPENyZWRlbnRpYWxzPjtcbiAgZW5kcG9pbnQ6IFByb3ZpZGVyPEVuZHBvaW50PjtcbiAgcmVnaW9uOiBQcm92aWRlcjxzdHJpbmc+O1xuICBzaGEyNTY6IEhhc2hDb25zdHJ1Y3RvcjtcbiAgc2lnbmluZ0VzY2FwZVBhdGg6IGJvb2xlYW47XG59XG5cbi8qKlxuICogQ29uZmlnIG9mIHRoZSBtaWRkbGV3YXJlIHRvIGF1dG9tYXRpY2FsbHkgYWRkIHByZXNpZ25lZCBVUkwgdG8gcmVxdWVzdC5cbiAqIFRoZSBwcmVzaWduZWQgVVJMIGlzIGdlbmVyYXRlZCBieSBzaWdWNFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3Jvc3NSZWdpb25QcmVzaWduZWRVcmxNaWRkbGV3YXJlKG9wdGlvbnM6IFByZXZpb3VzbHlSZXNvbHZlZCk6IEluaXRpYWxpemVNaWRkbGV3YXJlPGFueSwgYW55PiB7XG4gIHJldHVybiA8T3V0cHV0IGV4dGVuZHMgTWV0YWRhdGFCZWFyZXI+KG5leHQ6IEluaXRpYWxpemVIYW5kbGVyPGFueSwgT3V0cHV0Pik6IEluaXRpYWxpemVIYW5kbGVyPGFueSwgT3V0cHV0PiA9PlxuICAgIGFzeW5jIChhcmdzOiBJbml0aWFsaXplSGFuZGxlckFyZ3VtZW50czxhbnk+KTogUHJvbWlzZTxJbml0aWFsaXplSGFuZGxlck91dHB1dDxPdXRwdXQ+PiA9PiB7XG4gICAgICBjb25zdCB7IGlucHV0IH0gPSBhcmdzO1xuICAgICAgY29uc3QgcmVnaW9uID0gYXdhaXQgb3B0aW9ucy5yZWdpb24oKTtcbiAgICAgIGNvbnN0IHNvdXJjZUlkS2V5ID0gT2JqZWN0LmtleXMoc291cmNlSWRUb0NvbW1hbmRLZXlNYXApLmZpbHRlcigoc291cmNlS2V5SWQpID0+XG4gICAgICAgIGlucHV0Lmhhc093blByb3BlcnR5KHNvdXJjZUtleUlkKVxuICAgICAgKVswXTtcbiAgICAgIC8vIFNvdXJjZSBpZCBpcyBvcHRpb25hbC5cbiAgICAgIGlmICghc291cmNlSWRLZXkpIHJldHVybiBuZXh0KGFyZ3MpO1xuXG4gICAgICBjb25zdCBjb21tYW5kID0gc291cmNlSWRUb0NvbW1hbmRLZXlNYXBbc291cmNlSWRLZXldO1xuICAgICAgaWYgKCFpbnB1dC5QcmVTaWduZWRVcmwgJiYgaXNBUk4oaW5wdXRbc291cmNlSWRLZXldKSAmJiByZWdpb24gIT09IGdldEVuZHBvaW50RnJvbUFSTihpbnB1dFtzb3VyY2VJZEtleV0pKSB7XG4gICAgICAgIGNvbnN0IHNvdXJjZVJlZ2lvbiA9IGdldEVuZHBvaW50RnJvbUFSTihpbnB1dFtzb3VyY2VJZEtleV0pO1xuICAgICAgICBjb25zdCByZXNvbHZlZEVuZHBvaW50ID0gYXdhaXQgb3B0aW9ucy5lbmRwb2ludCgpO1xuICAgICAgICByZXNvbHZlZEVuZHBvaW50Lmhvc3RuYW1lID0gYHJkcy4ke3NvdXJjZVJlZ2lvbn0uYW1hem9uYXdzLmNvbWA7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgSHR0cFJlcXVlc3Qoe1xuICAgICAgICAgIC4uLnJlc29sdmVkRW5kcG9pbnQsXG4gICAgICAgICAgcHJvdG9jb2w6IFwiaHR0cHNcIixcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICBob3N0OiByZXNvbHZlZEVuZHBvaW50Lmhvc3RuYW1lLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcXVlcnk6IHtcbiAgICAgICAgICAgIEFjdGlvbjogY29tbWFuZCxcbiAgICAgICAgICAgIFZlcnNpb246IHZlcnNpb24sXG4gICAgICAgICAgICBLbXNLZXlJZDogaW5wdXQuS21zS2V5SWQsXG4gICAgICAgICAgICBEZXN0aW5hdGlvblJlZ2lvbjogcmVnaW9uLFxuICAgICAgICAgICAgW3NvdXJjZUlkS2V5XTogaW5wdXRbc291cmNlSWRLZXldLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzaWduZXIgPSBuZXcgU2lnbmF0dXJlVjQoe1xuICAgICAgICAgIGNyZWRlbnRpYWxzOiBvcHRpb25zLmNyZWRlbnRpYWxzLFxuICAgICAgICAgIHJlZ2lvbjogc291cmNlUmVnaW9uLFxuICAgICAgICAgIHNlcnZpY2U6IFwicmRzXCIsXG4gICAgICAgICAgc2hhMjU2OiBvcHRpb25zLnNoYTI1NixcbiAgICAgICAgICB1cmlFc2NhcGVQYXRoOiBvcHRpb25zLnNpZ25pbmdFc2NhcGVQYXRoLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgcHJlc2lnbmVkUmVxdWVzdCA9IGF3YWl0IHNpZ25lci5wcmVzaWduKHJlcXVlc3QsIHtcbiAgICAgICAgICBleHBpcmVzSW46IDM2MDAsXG4gICAgICAgIH0pO1xuICAgICAgICBhcmdzID0ge1xuICAgICAgICAgIC4uLmFyZ3MsXG4gICAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICAgIC4uLmFyZ3MuaW5wdXQsXG4gICAgICAgICAgICBQcmVTaWduZWRVcmw6IGZvcm1hdFVybChwcmVzaWduZWRSZXF1ZXN0KSxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIG5leHQoYXJncyk7XG4gICAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IGNyb3NzUmVnaW9uUHJlc2lnbmVkVXJsTWlkZGxld2FyZU9wdGlvbnM6IEluaXRpYWxpemVIYW5kbGVyT3B0aW9ucyA9IHtcbiAgc3RlcDogXCJpbml0aWFsaXplXCIsXG4gIHRhZ3M6IFtcIkNST1NTX1JFR0lPTl9QUkVTSUdORURfVVJMXCJdLFxuICBuYW1lOiBcImNyb3NzUmVnaW9uUHJlc2lnbmVkVXJsTWlkZGxld2FyZVwiLFxuICBvdmVycmlkZTogdHJ1ZSxcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRDcm9zc1JlZ2lvblByZXNpZ25lZFVybFBsdWdpbiA9IChjb25maWc6IFByZXZpb3VzbHlSZXNvbHZlZCk6IFBsdWdnYWJsZTxhbnksIGFueT4gPT4gKHtcbiAgYXBwbHlUb1N0YWNrOiAoY2xpZW50U3RhY2spID0+IHtcbiAgICBjbGllbnRTdGFjay5hZGQoY3Jvc3NSZWdpb25QcmVzaWduZWRVcmxNaWRkbGV3YXJlKGNvbmZpZyksIGNyb3NzUmVnaW9uUHJlc2lnbmVkVXJsTWlkZGxld2FyZU9wdGlvbnMpO1xuICB9LFxufSk7XG5cbmZ1bmN0aW9uIGlzQVJOKGlkOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgaWYgKCFpZCkgcmV0dXJuIGZhbHNlO1xuICByZXR1cm4gcmVnQVJOLnRlc3QoaWQpO1xufVxuXG5mdW5jdGlvbiBnZXRFbmRwb2ludEZyb21BUk4oYXJuOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBhcm5BcnIgPSBhcm4uc3BsaXQoXCI6XCIpO1xuICBpZiAoYXJuQXJyLmxlbmd0aCA8IDQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBpbmZlciBlbmRwb2ludCBmcm9tICcke2Fybn0nYCk7XG4gIH1cbiAgcmV0dXJuIGFybkFyclszXTtcbn1cbiJdfQ==
File without changes
File without changes
File without changes
File without changes
package/package.json CHANGED
@@ -1,40 +1,41 @@
1
1
  {
2
2
  "name": "@aws-sdk/middleware-sdk-rds",
3
- "version": "3.31.0",
3
+ "version": "3.35.0",
4
4
  "scripts": {
5
+ "build": "yarn build:cjs && yarn build:es && yarn build:types",
5
6
  "build:cjs": "tsc -p tsconfig.cjs.json",
6
7
  "build:es": "tsc -p tsconfig.es.json",
7
- "build": "yarn build:es && yarn build:cjs",
8
- "downlevel-dts": "downlevel-dts dist/types dist/types/ts3.4",
8
+ "build:types": "tsc -p tsconfig.types.json",
9
+ "downlevel-dts": "downlevel-dts dist-types dist-types/ts3.4",
9
10
  "test": "jest"
10
11
  },
11
- "main": "./dist/cjs/index.js",
12
- "module": "./dist/es/index.js",
13
- "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",
14
15
  "author": {
15
16
  "name": "AWS SDK for JavaScript Team",
16
17
  "url": "https://aws.amazon.com/javascript/"
17
18
  },
18
19
  "license": "Apache-2.0",
19
20
  "dependencies": {
20
- "@aws-sdk/protocol-http": "3.29.0",
21
- "@aws-sdk/signature-v4": "3.30.0",
22
- "@aws-sdk/types": "3.29.0",
23
- "@aws-sdk/util-format-url": "3.29.0",
21
+ "@aws-sdk/protocol-http": "3.35.0",
22
+ "@aws-sdk/signature-v4": "3.35.0",
23
+ "@aws-sdk/types": "3.35.0",
24
+ "@aws-sdk/util-format-url": "3.35.0",
24
25
  "tslib": "^2.3.0"
25
26
  },
26
27
  "devDependencies": {
27
28
  "@types/jest": "^26.0.4",
28
29
  "jest": "^26.1.0",
29
- "typescript": "~4.4.2"
30
+ "typescript": "~4.3.5"
30
31
  },
31
32
  "engines": {
32
33
  "node": ">= 10.0.0"
33
34
  },
34
35
  "typesVersions": {
35
36
  "<4.0": {
36
- "dist/types/*": [
37
- "dist/types/ts3.4/*"
37
+ "dist-types/*": [
38
+ "dist-types/ts3.4/*"
38
39
  ]
39
40
  }
40
41
  },
package/tsconfig.cjs.json CHANGED
@@ -1,9 +1,8 @@
1
1
  {
2
2
  "compilerOptions": {
3
- "declarationDir": "./dist/types",
4
- "rootDir": "./src",
5
- "outDir": "./dist/cjs",
6
- "baseUrl": "."
3
+ "baseUrl": ".",
4
+ "outDir": "dist-cjs",
5
+ "rootDir": "src"
7
6
  },
8
7
  "extends": "../../tsconfig.cjs.json",
9
8
  "include": ["src/"]
package/tsconfig.es.json CHANGED
@@ -1,10 +1,9 @@
1
1
  {
2
2
  "compilerOptions": {
3
+ "baseUrl": ".",
3
4
  "lib": ["es5", "es2015.promise", "es2015.collection", "es2015.iterable", "es2015.symbol.wellknown"],
4
- "declarationDir": "./dist/types",
5
- "rootDir": "./src",
6
- "outDir": "./dist/es",
7
- "baseUrl": "."
5
+ "outDir": "dist-es",
6
+ "rootDir": "src"
8
7
  },
9
8
  "extends": "../../tsconfig.es.json",
10
9
  "include": ["src/"]
@@ -0,0 +1,9 @@
1
+ {
2
+ "compilerOptions": {
3
+ "baseUrl": ".",
4
+ "declarationDir": "dist-types",
5
+ "rootDir": "src"
6
+ },
7
+ "extends": "../../tsconfig.types.json",
8
+ "include": ["src/"]
9
+ }
@@ -1,28 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.credentials = exports.endpoint = exports.region = exports.MockSha256 = void 0;
4
- class MockSha256 {
5
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
6
- constructor(secret) { }
7
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
8
- update(data) { }
9
- digest() {
10
- return Promise.resolve(new Uint8Array(5));
11
- }
12
- }
13
- exports.MockSha256 = MockSha256;
14
- const region = () => Promise.resolve("mock-region");
15
- exports.region = region;
16
- const endpoint = () => Promise.resolve({
17
- protocol: "https:",
18
- path: "/",
19
- hostname: "ec2.mock-region.amazonaws.com",
20
- });
21
- exports.endpoint = endpoint;
22
- const credentials = () => Promise.resolve({
23
- accessKeyId: "akid",
24
- secretAccessKey: "secret",
25
- sessionToken: "session",
26
- });
27
- exports.credentials = credentials;
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maXh0dXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLE1BQWEsVUFBVTtJQUNyQiw2REFBNkQ7SUFDN0QsWUFBWSxNQUErQyxJQUFHLENBQUM7SUFDL0QsNkRBQTZEO0lBQzdELE1BQU0sQ0FBQyxJQUFpQixJQUFHLENBQUM7SUFDNUIsTUFBTTtRQUNKLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7Q0FDRjtBQVJELGdDQVFDO0FBRU0sTUFBTSxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUE5QyxRQUFBLE1BQU0sVUFBd0M7QUFFcEQsTUFBTSxRQUFRLEdBQUcsR0FBRyxFQUFFLENBQzNCLE9BQU8sQ0FBQyxPQUFPLENBQUM7SUFDZCxRQUFRLEVBQUUsUUFBUTtJQUNsQixJQUFJLEVBQUUsR0FBRztJQUNULFFBQVEsRUFBRSwrQkFBK0I7Q0FDMUMsQ0FBQyxDQUFDO0FBTFEsUUFBQSxRQUFRLFlBS2hCO0FBRUUsTUFBTSxXQUFXLEdBQUcsR0FBRyxFQUFFLENBQzlCLE9BQU8sQ0FBQyxPQUFPLENBQUM7SUFDZCxXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsUUFBUTtJQUN6QixZQUFZLEVBQUUsU0FBUztDQUN4QixDQUFDLENBQUM7QUFMUSxRQUFBLFdBQVcsZUFLbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTb3VyY2VEYXRhIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbmV4cG9ydCBjbGFzcyBNb2NrU2hhMjU2IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBjb25zdHJ1Y3RvcihzZWNyZXQ/OiBzdHJpbmcgfCBBcnJheUJ1ZmZlciB8IEFycmF5QnVmZmVyVmlldykge31cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICB1cGRhdGUoZGF0YT86IFNvdXJjZURhdGEpIHt9XG4gIGRpZ2VzdCgpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5ldyBVaW50OEFycmF5KDUpKTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgcmVnaW9uID0gKCkgPT4gUHJvbWlzZS5yZXNvbHZlKFwibW9jay1yZWdpb25cIik7XG5cbmV4cG9ydCBjb25zdCBlbmRwb2ludCA9ICgpID0+XG4gIFByb21pc2UucmVzb2x2ZSh7XG4gICAgcHJvdG9jb2w6IFwiaHR0cHM6XCIsXG4gICAgcGF0aDogXCIvXCIsXG4gICAgaG9zdG5hbWU6IFwiZWMyLm1vY2stcmVnaW9uLmFtYXpvbmF3cy5jb21cIixcbiAgfSk7XG5cbmV4cG9ydCBjb25zdCBjcmVkZW50aWFscyA9ICgpID0+XG4gIFByb21pc2UucmVzb2x2ZSh7XG4gICAgYWNjZXNzS2V5SWQ6IFwiYWtpZFwiLFxuICAgIHNlY3JldEFjY2Vzc0tleTogXCJzZWNyZXRcIixcbiAgICBzZXNzaW9uVG9rZW46IFwic2Vzc2lvblwiLFxuICB9KTtcbiJdfQ==
package/dist/cjs/index.js DELETED
@@ -1,93 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getCrossRegionPresignedUrlPlugin = exports.crossRegionPresignedUrlMiddlewareOptions = exports.crossRegionPresignedUrlMiddleware = void 0;
4
- const protocol_http_1 = require("@aws-sdk/protocol-http");
5
- const signature_v4_1 = require("@aws-sdk/signature-v4");
6
- const util_format_url_1 = require("@aws-sdk/util-format-url");
7
- const regARN = /arn:[\w+=/,.@-]+:[\w+=/,.@-]+:([\w+=/,.@-]*)?:[0-9]+:[\w+=/,.@-]+(:[\w+=/,.@-]+)?(:[\w+=/,.@-]+)?/;
8
- const sourceIdToCommandKeyMap = {
9
- SourceDBSnapshotIdentifier: "CopyDBSnapshot",
10
- SourceDBInstanceIdentifier: "CreateDBInstanceReadReplica",
11
- ReplicationSourceIdentifier: "CreateDBCluster",
12
- SourceDBClusterSnapshotIdentifier: "CopyDBClusterSnapshot",
13
- SourceDBInstanceArn: "StartDBInstanceAutomatedBackupsReplication",
14
- };
15
- const version = "2014-10-31";
16
- /**
17
- * Config of the middleware to automatically add presigned URL to request.
18
- * The presigned URL is generated by sigV4
19
- */
20
- function crossRegionPresignedUrlMiddleware(options) {
21
- return (next) => async (args) => {
22
- const { input } = args;
23
- const region = await options.region();
24
- const sourceIdKey = Object.keys(sourceIdToCommandKeyMap).filter((sourceKeyId) => input.hasOwnProperty(sourceKeyId))[0];
25
- // Source id is optional.
26
- if (!sourceIdKey)
27
- return next(args);
28
- const command = sourceIdToCommandKeyMap[sourceIdKey];
29
- if (!input.PreSignedUrl && isARN(input[sourceIdKey]) && region !== getEndpointFromARN(input[sourceIdKey])) {
30
- const sourceRegion = getEndpointFromARN(input[sourceIdKey]);
31
- const resolvedEndpoint = await options.endpoint();
32
- resolvedEndpoint.hostname = `rds.${sourceRegion}.amazonaws.com`;
33
- const request = new protocol_http_1.HttpRequest({
34
- ...resolvedEndpoint,
35
- protocol: "https",
36
- headers: {
37
- host: resolvedEndpoint.hostname,
38
- },
39
- query: {
40
- Action: command,
41
- Version: version,
42
- KmsKeyId: input.KmsKeyId,
43
- DestinationRegion: region,
44
- [sourceIdKey]: input[sourceIdKey],
45
- },
46
- });
47
- const signer = new signature_v4_1.SignatureV4({
48
- credentials: options.credentials,
49
- region: sourceRegion,
50
- service: "rds",
51
- sha256: options.sha256,
52
- uriEscapePath: options.signingEscapePath,
53
- });
54
- const presignedRequest = await signer.presign(request, {
55
- expiresIn: 3600,
56
- });
57
- args = {
58
- ...args,
59
- input: {
60
- ...args.input,
61
- PreSignedUrl: (0, util_format_url_1.formatUrl)(presignedRequest),
62
- },
63
- };
64
- }
65
- return next(args);
66
- };
67
- }
68
- exports.crossRegionPresignedUrlMiddleware = crossRegionPresignedUrlMiddleware;
69
- exports.crossRegionPresignedUrlMiddlewareOptions = {
70
- step: "initialize",
71
- tags: ["CROSS_REGION_PRESIGNED_URL"],
72
- name: "crossRegionPresignedUrlMiddleware",
73
- override: true,
74
- };
75
- const getCrossRegionPresignedUrlPlugin = (config) => ({
76
- applyToStack: (clientStack) => {
77
- clientStack.add(crossRegionPresignedUrlMiddleware(config), exports.crossRegionPresignedUrlMiddlewareOptions);
78
- },
79
- });
80
- exports.getCrossRegionPresignedUrlPlugin = getCrossRegionPresignedUrlPlugin;
81
- function isARN(id) {
82
- if (!id)
83
- return false;
84
- return regARN.test(id);
85
- }
86
- function getEndpointFromARN(arn) {
87
- const arnArr = arn.split(":");
88
- if (arnArr.length < 4) {
89
- throw new Error(`Cannot infer endpoint from '${arn}'`);
90
- }
91
- return arnArr[3];
92
- }
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMERBQXFEO0FBQ3JELHdEQUFvRDtBQWNwRCw4REFBcUQ7QUFFckQsTUFBTSxNQUFNLEdBQUcsbUdBQW1HLENBQUM7QUFFbkgsTUFBTSx1QkFBdUIsR0FBOEI7SUFDekQsMEJBQTBCLEVBQUUsZ0JBQWdCO0lBQzVDLDBCQUEwQixFQUFFLDZCQUE2QjtJQUN6RCwyQkFBMkIsRUFBRSxpQkFBaUI7SUFDOUMsaUNBQWlDLEVBQUUsdUJBQXVCO0lBQzFELG1CQUFtQixFQUFFLDRDQUE0QztDQUNsRSxDQUFDO0FBRUYsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDO0FBVTdCOzs7R0FHRztBQUNILFNBQWdCLGlDQUFpQyxDQUFDLE9BQTJCO0lBQzNFLE9BQU8sQ0FBZ0MsSUFBb0MsRUFBa0MsRUFBRSxDQUM3RyxLQUFLLEVBQUUsSUFBcUMsRUFBNEMsRUFBRTtRQUN4RixNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLE1BQU0sTUFBTSxHQUFHLE1BQU0sT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3RDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUM5RSxLQUFLLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUNsQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ0wseUJBQXlCO1FBQ3pCLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFcEMsTUFBTSxPQUFPLEdBQUcsdUJBQXVCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMs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cHJvdG9jb2wtaHR0cFwiO1xuaW1wb3J0IHsgU2lnbmF0dXJlVjQgfSBmcm9tIFwiQGF3cy1zZGsvc2lnbmF0dXJlLXY0XCI7XG5pbXBvcnQge1xuICBDcmVkZW50aWFscyxcbiAgRW5kcG9pbnQsXG4gIEhhc2hDb25zdHJ1Y3RvcixcbiAgSW5pdGlhbGl6ZUhhbmRsZXIsXG4gIEluaXRpYWxpemVIYW5kbGVyQXJndW1lbnRzLFxuICBJbml0aWFsaXplSGFuZGxlck9wdGlvbnMsXG4gIEluaXRpYWxpemVIYW5kbGVyT3V0cHV0LFxuICBJbml0aWFsaXplTWlkZGxld2FyZSxcbiAgTWV0YWRhdGFCZWFyZXIsXG4gIFBsdWdnYWJsZSxcbiAgUHJvdmlkZXIsXG59IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuaW1wb3J0IHsgZm9ybWF0VXJsIH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtZm9ybWF0LXVybFwiO1xuXG5jb25zdCByZWdBUk4gPSAvYXJuOltcXHcrPS8sLkAtXSs6W1xcdys9LywuQC1dKzooW1xcdys9LywuQC1dKik/OlswLTldKzpbXFx3Kz0vLC5ALV0rKDpbXFx3Kz0vLC5ALV0rKT8oOltcXHcrPS8sLkAtXSspPy87XG5cbmNvbnN0IHNvdXJjZUlkVG9Db21tYW5kS2V5TWFwOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICBTb3VyY2VEQlNuYXBzaG90SWRlbnRpZmllcjogXCJDb3B5REJTbmFwc2hvdFwiLFxuICBTb3VyY2VEQkluc3RhbmNlSWRlbnRpZmllcjogXCJDcmVhdGVEQkluc3RhbmNlUmVhZFJlcGxpY2FcIixcbiAgUmVwbGljYXRpb25Tb3VyY2VJZGVudGlmaWVyOiBcIkNyZWF0ZURCQ2x1c3RlclwiLCAvLyBUaGlzIGtleSBpcyBvcHRpb25hbC5cbiAgU291cmNlREJDbHVzdGVyU25hcHNob3RJZGVudGlmaWVyOiBcIkNvcHlEQkNsdXN0ZXJTbmFwc2hvdFwiLFxuICBTb3VyY2VEQkluc3RhbmNlQXJuOiBcIlN0YXJ0REJJbnN0YW5jZUF1dG9tYXRlZEJhY2t1cHNSZXBsaWNhdGlvblwiLFxufTtcblxuY29uc3QgdmVyc2lvbiA9IFwiMjAxNC0xMC0zMVwiO1xuXG5pbnRlcmZhY2UgUHJldmlvdXNseVJlc29sdmVkIHtcbiAgY3JlZGVudGlhbHM6IFByb3ZpZGVyPENyZWRlbnRpYWxzPjtcbiAgZW5kcG9pbnQ6IFByb3ZpZGVyPEVuZHBvaW50PjtcbiAgcmVnaW9uOiBQcm92aWRlcjxzdHJpbmc+O1xuICBzaGEyNTY6IEhhc2hDb25zdHJ1Y3RvcjtcbiAgc2lnbmluZ0VzY2FwZVBhdGg6IGJvb2xlYW47XG59XG5cbi8qKlxuICogQ29uZmlnIG9mIHRoZSBtaWRkbGV3YXJlIHRvIGF1dG9tYXRpY2FsbHkgYWRkIHByZXNpZ25lZCBVUkwgdG8gcmVxdWVzdC5cbiAqIFRoZSBwcmVzaWduZWQgVVJMIGlzIGdlbmVyYXRlZCBieSBzaWdWNFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3Jvc3NSZWdpb25QcmVzaWduZWRVcmxNaWRkbGV3YXJlKG9wdGlvbnM6IFByZXZpb3VzbHlSZXNvbHZlZCk6IEluaXRpYWxpemVNaWRkbGV3YXJlPGFueSwgYW55PiB7XG4gIHJldHVybiA8T3V0cHV0IGV4dGVuZHMgTWV0YWRhdGFCZWFyZXI+KG5leHQ6IEluaXRpYWxpemVIYW5kbGVyPGFueSwgT3V0cHV0Pik6IEluaXRpYWxpemVIYW5kbGVyPGFueSwgT3V0cHV0PiA9PlxuICAgIGFzeW5jIChhcmdzOiBJbml0aWFsaXplSGFuZGxlckFyZ3VtZW50czxhbnk+KTogUHJvbWlzZTxJbml0aWFsaXplSGFuZGxlck91dHB1dDxPdXRwdXQ+PiA9PiB7XG4gICAgICBjb25zdCB7IGlucHV0IH0gPSBhcmdzO1xuICAgICAgY29uc3QgcmVnaW9uID0gYXdhaXQgb3B0aW9ucy5yZWdpb24oKTtcbiAgICAgIGNvbnN0IHNvdXJjZUlkS2V5ID0gT2JqZWN0LmtleXMoc291cmNlSWRUb0NvbW1hbmRLZXlNYXApLmZpbHRlcigoc291cmNlS2V5SWQpID0+XG4gICAgICAgIGlucHV0Lmhhc093blByb3BlcnR5KHNvdXJjZUtleUlkKVxuICAgICAgKVswXTtcbiAgICAgIC8vIFNvdXJjZSBpZCBpcyBvcHRpb25hbC5cbiAgICAgIGlmICghc291cmNlSWRLZXkpIHJldHVybiBuZXh0KGFyZ3MpO1xuXG4gICAgICBjb25zdCBjb21tYW5kID0gc291cmNlSWRUb0NvbW1hbmRLZXlNYXBbc291cmNlSWRLZXldO1xuICAgICAgaWYgKCFpbnB1dC5QcmVTaWduZWRVcmwgJiYgaXNBUk4oaW5wdXRbc291cmNlSWRLZXldKSAmJiByZWdpb24gIT09IGdldEVuZHBvaW50RnJvbUFSTihpbnB1dFtzb3VyY2VJZEtleV0pKSB7XG4gICAgICAgIGNvbnN0IHNvdXJjZVJlZ2lvbiA9IGdldEVuZHBvaW50RnJvbUFSTihpbnB1dFtzb3VyY2VJZEtleV0pO1xuICAgICAgICBjb25zdCByZXNvbHZlZEVuZHBvaW50ID0gYXdhaXQgb3B0aW9ucy5lbmRwb2ludCgpO1xuICAgICAgICByZXNvbHZlZEVuZHBvaW50Lmhvc3RuYW1lID0gYHJkcy4ke3NvdXJjZVJlZ2lvbn0uYW1hem9uYXdzLmNvbWA7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgSHR0cFJlcXVlc3Qoe1xuICAgICAgICAgIC4uLnJlc29sdmVkRW5kcG9pbnQsXG4gICAgICAgICAgcHJvdG9jb2w6IFwiaHR0cHNcIixcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICBob3N0OiByZXNvbHZlZEVuZHBvaW50Lmhvc3RuYW1lLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcXVlcnk6IHtcbiAgICAgICAgICAgIEFjdGlvbjogY29tbWFuZCxcbiAgICAgICAgICAgIFZlcnNpb246IHZlcnNpb24sXG4gICAgICAgICAgICBLbXNLZXlJZDogaW5wdXQuS21zS2V5SWQsXG4gICAgICAgICAgICBEZXN0aW5hdGlvblJlZ2lvbjogcmVnaW9uLFxuICAgICAgICAgICAgW3NvdXJjZUlkS2V5XTogaW5wdXRbc291cmNlSWRLZXldLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzaWduZXIgPSBuZXcgU2lnbmF0dXJlVjQoe1xuICAgICAgICAgIGNyZWRlbnRpYWxzOiBvcHRpb25zLmNyZWRlbnRpYWxzLFxuICAgICAgICAgIHJlZ2lvbjogc291cmNlUmVnaW9uLFxuICAgICAgICAgIHNlcnZpY2U6IFwicmRzXCIsXG4gICAgICAgICAgc2hhMjU2OiBvcHRpb25zLnNoYTI1NixcbiAgICAgICAgICB1cmlFc2NhcGVQYXRoOiBvcHRpb25zLnNpZ25pbmdFc2NhcGVQYXRoLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgcHJlc2lnbmVkUmVxdWVzdCA9IGF3YWl0IHNpZ25lci5wcmVzaWduKHJlcXVlc3QsIHtcbiAgICAgICAgICBleHBpcmVzSW46IDM2MDAsXG4gICAgICAgIH0pO1xuICAgICAgICBhcmdzID0ge1xuICAgICAgICAgIC4uLmFyZ3MsXG4gICAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICAgIC4uLmFyZ3MuaW5wdXQsXG4gICAgICAgICAgICBQcmVTaWduZWRVcmw6IGZvcm1hdFVybChwcmVzaWduZWRSZXF1ZXN0KSxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIG5leHQoYXJncyk7XG4gICAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IGNyb3NzUmVnaW9uUHJlc2lnbmVkVXJsTWlkZGxld2FyZU9wdGlvbnM6IEluaXRpYWxpemVIYW5kbGVyT3B0aW9ucyA9IHtcbiAgc3RlcDogXCJpbml0aWFsaXplXCIsXG4gIHRhZ3M6IFtcIkNST1NTX1JFR0lPTl9QUkVTSUdORURfVVJMXCJdLFxuICBuYW1lOiBcImNyb3NzUmVnaW9uUHJlc2lnbmVkVXJsTWlkZGxld2FyZVwiLFxuICBvdmVycmlkZTogdHJ1ZSxcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRDcm9zc1JlZ2lvblByZXNpZ25lZFVybFBsdWdpbiA9IChjb25maWc6IFByZXZpb3VzbHlSZXNvbHZlZCk6IFBsdWdnYWJsZTxhbnksIGFueT4gPT4gKHtcbiAgYXBwbHlUb1N0YWNrOiAoY2xpZW50U3RhY2spID0+IHtcbiAgICBjbGllbnRTdGFjay5hZGQoY3Jvc3NSZWdpb25QcmVzaWduZWRVcmxNaWRkbGV3YXJlKGNvbmZpZyksIGNyb3NzUmVnaW9uUHJlc2lnbmVkVXJsTWlkZGxld2FyZU9wdGlvbnMpO1xuICB9LFxufSk7XG5cbmZ1bmN0aW9uIGlzQVJOKGlkOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgaWYgKCFpZCkgcmV0dXJuIGZhbHNlO1xuICByZXR1cm4gcmVnQVJOLnRlc3QoaWQpO1xufVxuXG5mdW5jdGlvbiBnZXRFbmRwb2ludEZyb21BUk4oYXJuOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBhcm5BcnIgPSBhcm4uc3BsaXQoXCI6XCIpO1xuICBpZiAoYXJuQXJyLmxlbmd0aCA8IDQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBpbmZlciBlbmRwb2ludCBmcm9tICcke2Fybn0nYCk7XG4gIH1cbiAgcmV0dXJuIGFybkFyclszXTtcbn1cbiJdfQ==
@@ -1,28 +0,0 @@
1
- var MockSha256 = /** @class */ (function () {
2
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
3
- function MockSha256(secret) {
4
- }
5
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
6
- MockSha256.prototype.update = function (data) { };
7
- MockSha256.prototype.digest = function () {
8
- return Promise.resolve(new Uint8Array(5));
9
- };
10
- return MockSha256;
11
- }());
12
- export { MockSha256 };
13
- export var region = function () { return Promise.resolve("mock-region"); };
14
- export var endpoint = function () {
15
- return Promise.resolve({
16
- protocol: "https:",
17
- path: "/",
18
- hostname: "ec2.mock-region.amazonaws.com",
19
- });
20
- };
21
- export var credentials = function () {
22
- return Promise.resolve({
23
- accessKeyId: "akid",
24
- secretAccessKey: "secret",
25
- sessionToken: "session",
26
- });
27
- };
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maXh0dXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBO0lBQ0UsNkRBQTZEO0lBQzdELG9CQUFZLE1BQStDO0lBQUcsQ0FBQztJQUMvRCw2REFBNkQ7SUFDN0QsMkJBQU0sR0FBTixVQUFPLElBQWlCLElBQUcsQ0FBQztJQUM1QiwyQkFBTSxHQUFOO1FBQ0UsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUNILGlCQUFDO0FBQUQsQ0FBQyxBQVJELElBUUM7O0FBRUQsTUFBTSxDQUFDLElBQU0sTUFBTSxHQUFHLGNBQU0sT0FBQSxPQUFPLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUE5QixDQUE4QixDQUFDO0FBRTNELE1BQU0sQ0FBQyxJQUFNLFFBQVEsR0FBRztJQUN0QixPQUFBLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDZCxRQUFRLEVBQUUsUUFBUTtRQUNsQixJQUFJLEVBQUUsR0FBRztRQUNULFFBQVEsRUFBRSwrQkFBK0I7S0FDMUMsQ0FBQztBQUpGLENBSUUsQ0FBQztBQUVMLE1BQU0sQ0FBQyxJQUFNLFdBQVcsR0FBRztJQUN6QixPQUFBLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDZCxXQUFXLEVBQUUsTUFBTTtRQUNuQixlQUFlLEVBQUUsUUFBUTtRQUN6QixZQUFZLEVBQUUsU0FBUztLQUN4QixDQUFDO0FBSkYsQ0FJRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU291cmNlRGF0YSB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5leHBvcnQgY2xhc3MgTW9ja1NoYTI1NiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgY29uc3RydWN0b3Ioc2VjcmV0Pzogc3RyaW5nIHwgQXJyYXlCdWZmZXIgfCBBcnJheUJ1ZmZlclZpZXcpIHt9XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgdXBkYXRlKGRhdGE/OiBTb3VyY2VEYXRhKSB7fVxuICBkaWdlc3QoKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShuZXcgVWludDhBcnJheSg1KSk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHJlZ2lvbiA9ICgpID0+IFByb21pc2UucmVzb2x2ZShcIm1vY2stcmVnaW9uXCIpO1xuXG5leHBvcnQgY29uc3QgZW5kcG9pbnQgPSAoKSA9PlxuICBQcm9taXNlLnJlc29sdmUoe1xuICAgIHByb3RvY29sOiBcImh0dHBzOlwiLFxuICAgIHBhdGg6IFwiL1wiLFxuICAgIGhvc3RuYW1lOiBcImVjMi5tb2NrLXJlZ2lvbi5hbWF6b25hd3MuY29tXCIsXG4gIH0pO1xuXG5leHBvcnQgY29uc3QgY3JlZGVudGlhbHMgPSAoKSA9PlxuICBQcm9taXNlLnJlc29sdmUoe1xuICAgIGFjY2Vzc0tleUlkOiBcImFraWRcIixcbiAgICBzZWNyZXRBY2Nlc3NLZXk6IFwic2VjcmV0XCIsXG4gICAgc2Vzc2lvblRva2VuOiBcInNlc3Npb25cIixcbiAgfSk7XG4iXX0=
package/dist/es/index.js DELETED
@@ -1,97 +0,0 @@
1
- import { __assign, __awaiter, __generator } from "tslib";
2
- import { HttpRequest } from "@aws-sdk/protocol-http";
3
- import { SignatureV4 } from "@aws-sdk/signature-v4";
4
- import { formatUrl } from "@aws-sdk/util-format-url";
5
- var regARN = /arn:[\w+=/,.@-]+:[\w+=/,.@-]+:([\w+=/,.@-]*)?:[0-9]+:[\w+=/,.@-]+(:[\w+=/,.@-]+)?(:[\w+=/,.@-]+)?/;
6
- var sourceIdToCommandKeyMap = {
7
- SourceDBSnapshotIdentifier: "CopyDBSnapshot",
8
- SourceDBInstanceIdentifier: "CreateDBInstanceReadReplica",
9
- ReplicationSourceIdentifier: "CreateDBCluster",
10
- SourceDBClusterSnapshotIdentifier: "CopyDBClusterSnapshot",
11
- SourceDBInstanceArn: "StartDBInstanceAutomatedBackupsReplication",
12
- };
13
- var version = "2014-10-31";
14
- /**
15
- * Config of the middleware to automatically add presigned URL to request.
16
- * The presigned URL is generated by sigV4
17
- */
18
- export function crossRegionPresignedUrlMiddleware(options) {
19
- var _this = this;
20
- return function (next) {
21
- return function (args) { return __awaiter(_this, void 0, void 0, function () {
22
- var input, region, sourceIdKey, command, sourceRegion, resolvedEndpoint, request, signer, presignedRequest;
23
- var _a;
24
- return __generator(this, function (_b) {
25
- switch (_b.label) {
26
- case 0:
27
- input = args.input;
28
- return [4 /*yield*/, options.region()];
29
- case 1:
30
- region = _b.sent();
31
- sourceIdKey = Object.keys(sourceIdToCommandKeyMap).filter(function (sourceKeyId) {
32
- return input.hasOwnProperty(sourceKeyId);
33
- })[0];
34
- // Source id is optional.
35
- if (!sourceIdKey)
36
- return [2 /*return*/, next(args)];
37
- command = sourceIdToCommandKeyMap[sourceIdKey];
38
- if (!(!input.PreSignedUrl && isARN(input[sourceIdKey]) && region !== getEndpointFromARN(input[sourceIdKey]))) return [3 /*break*/, 4];
39
- sourceRegion = getEndpointFromARN(input[sourceIdKey]);
40
- return [4 /*yield*/, options.endpoint()];
41
- case 2:
42
- resolvedEndpoint = _b.sent();
43
- resolvedEndpoint.hostname = "rds." + sourceRegion + ".amazonaws.com";
44
- request = new HttpRequest(__assign(__assign({}, resolvedEndpoint), { protocol: "https", headers: {
45
- host: resolvedEndpoint.hostname,
46
- }, query: (_a = {
47
- Action: command,
48
- Version: version,
49
- KmsKeyId: input.KmsKeyId,
50
- DestinationRegion: region
51
- },
52
- _a[sourceIdKey] = input[sourceIdKey],
53
- _a) }));
54
- signer = new SignatureV4({
55
- credentials: options.credentials,
56
- region: sourceRegion,
57
- service: "rds",
58
- sha256: options.sha256,
59
- uriEscapePath: options.signingEscapePath,
60
- });
61
- return [4 /*yield*/, signer.presign(request, {
62
- expiresIn: 3600,
63
- })];
64
- case 3:
65
- presignedRequest = _b.sent();
66
- args = __assign(__assign({}, args), { input: __assign(__assign({}, args.input), { PreSignedUrl: formatUrl(presignedRequest) }) });
67
- _b.label = 4;
68
- case 4: return [2 /*return*/, next(args)];
69
- }
70
- });
71
- }); };
72
- };
73
- }
74
- export var crossRegionPresignedUrlMiddlewareOptions = {
75
- step: "initialize",
76
- tags: ["CROSS_REGION_PRESIGNED_URL"],
77
- name: "crossRegionPresignedUrlMiddleware",
78
- override: true,
79
- };
80
- export var getCrossRegionPresignedUrlPlugin = function (config) { return ({
81
- applyToStack: function (clientStack) {
82
- clientStack.add(crossRegionPresignedUrlMiddleware(config), crossRegionPresignedUrlMiddlewareOptions);
83
- },
84
- }); };
85
- function isARN(id) {
86
- if (!id)
87
- return false;
88
- return regARN.test(id);
89
- }
90
- function getEndpointFromARN(arn) {
91
- var arnArr = arn.split(":");
92
- if (arnArr.length < 4) {
93
- throw new Error("Cannot infer endpoint from '" + arn + "'");
94
- }
95
- return arnArr[3];
96
- }
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFjcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJELElBQU0sTUFBTSxHQUFHLG1HQUFtRyxDQUFDO0FBRW5ILElBQU0sdUJBQXVCLEdBQThCO0lBQ3pELDBCQUEwQixFQUFFLGdCQUFnQjtJQUM1QywwQkFBMEIsRUFBRSw2QkFBNkI7SUFDekQsMkJBQTJCLEVBQUUsaUJBQWlCO0lBQzlDLGlDQUFpQyxFQUFFLHVCQUF1QjtJQUMxRCxtQkFBbUIsRUFBRSw0Q0FBNEM7Q0FDbEUsQ0FBQztBQUVGLElBQU0sT0FBTyxHQUFHLFlBQVksQ0FBQztBQVU3Qjs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsaUNBQWlDLENBQUMsT0FBMkI7SUFBN0UsaUJBa0RDO0lBakRDLE9BQU8sVUFBZ0MsSUFBb0M7UUFDekUsT0FBQSxVQUFPLElBQXFDOzs7Ozs7d0JBQ2xDLEtBQUssR0FBSyxJQUFJLE1BQVQsQ0FBVTt3QkFDUixxQkFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUE7O3dCQUEvQixNQUFNLEdBQUcsU0FBc0I7d0JBQy9CLFdBQVcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUMsTUFBTSxDQUFDLFVBQUMsV0FBVzs0QkFDMUUsT0FBQSxLQUFLLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQzt3QkFBakMsQ0FBaUMsQ0FDbEMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDTCx5QkFBeUI7d0JBQ3pCLElBQUksQ0FBQyxXQUFXOzRCQUFFLHNCQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBQzt3QkFFOUIsT0FBTyxHQUFH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WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYXdzLXNkay9wcm90b2NvbC1odHRwXCI7XG5pbXBvcnQgeyBTaWduYXR1cmVWNCB9IGZyb20gXCJAYXdzLXNkay9zaWduYXR1cmUtdjRcIjtcbmltcG9ydCB7XG4gIENyZWRlbnRpYWxzLFxuICBFbmRwb2ludCxcbiAgSGFzaENvbnN0cnVjdG9yLFxuICBJbml0aWFsaXplSGFuZGxlcixcbiAgSW5pdGlhbGl6ZUhhbmRsZXJBcmd1bWVudHMsXG4gIEluaXRpYWxpemVIYW5kbGVyT3B0aW9ucyxcbiAgSW5pdGlhbGl6ZUhhbmRsZXJPdXRwdXQsXG4gIEluaXRpYWxpemVNaWRkbGV3YXJlLFxuICBNZXRhZGF0YUJlYXJlcixcbiAgUGx1Z2dhYmxlLFxuICBQcm92aWRlcixcbn0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyBmb3JtYXRVcmwgfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC1mb3JtYXQtdXJsXCI7XG5cbmNvbnN0IHJlZ0FSTiA9IC9hcm46W1xcdys9LywuQC1dKzpbXFx3Kz0vLC5ALV0rOihbXFx3Kz0vLC5ALV0qKT86WzAtOV0rOltcXHcrPS8sLkAtXSsoOltcXHcrPS8sLkAtXSspPyg6W1xcdys9LywuQC1dKyk/LztcblxuY29uc3Qgc291cmNlSWRUb0NvbW1hbmRLZXlNYXA6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XG4gIFNvdXJjZURCU25hcHNob3RJZGVudGlmaWVyOiBcIkNvcHlEQlNuYXBzaG90XCIsXG4gIFNvdXJjZURCSW5zdGFuY2VJZGVudGlmaWVyOiBcIkNyZWF0ZURCSW5zdGFuY2VSZWFkUmVwbGljYVwiLFxuICBSZXBsaWNhdGlvblNvdXJjZUlkZW50aWZpZXI6IFwiQ3JlYXRlREJDbHVzdGVyXCIsIC8vIFRoaXMga2V5IGlzIG9wdGlvbmFsLlxuICBTb3VyY2VEQkNsdXN0ZXJTbmFwc2hvdElkZW50aWZpZXI6IFwiQ29weURCQ2x1c3RlclNuYXBzaG90XCIsXG4gIFNvdXJjZURCSW5zdGFuY2VBcm46IFwiU3RhcnREQkluc3RhbmNlQXV0b21hdGVkQmFja3Vwc1JlcGxpY2F0aW9uXCIsXG59O1xuXG5jb25zdCB2ZXJzaW9uID0gXCIyMDE0LTEwLTMxXCI7XG5cbmludGVyZmFjZSBQcmV2aW91c2x5UmVzb2x2ZWQge1xuICBjcmVkZW50aWFsczogUHJvdmlkZXI8Q3JlZGVudGlhbHM+O1xuICBlbmRwb2ludDogUHJvdmlkZXI8RW5kcG9pbnQ+O1xuICByZWdpb246IFByb3ZpZGVyPHN0cmluZz47XG4gIHNoYTI1NjogSGFzaENvbnN0cnVjdG9yO1xuICBzaWduaW5nRXNjYXBlUGF0aDogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBDb25maWcgb2YgdGhlIG1pZGRsZXdhcmUgdG8gYXV0b21hdGljYWxseSBhZGQgcHJlc2lnbmVkIFVSTCB0byByZXF1ZXN0LlxuICogVGhlIHByZXNpZ25lZCBVUkwgaXMgZ2VuZXJhdGVkIGJ5IHNpZ1Y0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcm9zc1JlZ2lvblByZXNpZ25lZFVybE1pZGRsZXdhcmUob3B0aW9uczogUHJldmlvdXNseVJlc29sdmVkKTogSW5pdGlhbGl6ZU1pZGRsZXdhcmU8YW55LCBhbnk+IHtcbiAgcmV0dXJuIDxPdXRwdXQgZXh0ZW5kcyBNZXRhZGF0YUJlYXJlcj4obmV4dDogSW5pdGlhbGl6ZUhhbmRsZXI8YW55LCBPdXRwdXQ+KTogSW5pdGlhbGl6ZUhhbmRsZXI8YW55LCBPdXRwdXQ+ID0+XG4gICAgYXN5bmMgKGFyZ3M6IEluaXRpYWxpemVIYW5kbGVyQXJndW1lbnRzPGFueT4pOiBQcm9taXNlPEluaXRpYWxpemVIYW5kbGVyT3V0cHV0PE91dHB1dD4+ID0+IHtcbiAgICAgIGNvbnN0IHsgaW5wdXQgfSA9IGFyZ3M7XG4gICAgICBjb25zdCByZWdpb24gPSBhd2FpdCBvcHRpb25zLnJlZ2lvbigpO1xuICAgICAgY29uc3Qgc291cmNlSWRLZXkgPSBPYmplY3Qua2V5cyhzb3VyY2VJZFRvQ29tbWFuZEtleU1hcCkuZmlsdGVyKChzb3VyY2VLZXlJZCkgPT5cbiAgICAgICAgaW5wdXQuaGFzT3duUHJvcGVydHkoc291cmNlS2V5SWQpXG4gICAgICApWzBdO1xuICAgICAgLy8gU291cmNlIGlkIGlzIG9wdGlvbmFsLlxuICAgICAgaWYgKCFzb3VyY2VJZEtleSkgcmV0dXJuIG5leHQoYXJncyk7XG5cbiAgICAgIGNvbnN0IGNvbW1hbmQgPSBzb3VyY2VJZFRvQ29tbWFuZEtleU1hcFtzb3VyY2VJZEtleV07XG4gICAgICBpZiAoIWlucHV0LlByZVNpZ25lZFVybCAmJiBpc0FSTihpbnB1dFtzb3VyY2VJZEtleV0pICYmIHJlZ2lvbiAhPT0gZ2V0RW5kcG9pbnRGcm9tQVJOKGlucHV0W3NvdXJjZUlkS2V5XSkpIHtcbiAgICAgICAgY29uc3Qgc291cmNlUmVnaW9uID0gZ2V0RW5kcG9pbnRGcm9tQVJOKGlucHV0W3NvdXJjZUlkS2V5XSk7XG4gICAgICAgIGNvbnN0IHJlc29sdmVkRW5kcG9pbnQgPSBhd2FpdCBvcHRpb25zLmVuZHBvaW50KCk7XG4gICAgICAgIHJlc29sdmVkRW5kcG9pbnQuaG9zdG5hbWUgPSBgcmRzLiR7c291cmNlUmVnaW9ufS5hbWF6b25hd3MuY29tYDtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBIdHRwUmVxdWVzdCh7XG4gICAgICAgICAgLi4ucmVzb2x2ZWRFbmRwb2ludCxcbiAgICAgICAgICBwcm90b2NvbDogXCJodHRwc1wiLFxuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgIGhvc3Q6IHJlc29sdmVkRW5kcG9pbnQuaG9zdG5hbWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBxdWVyeToge1xuICAgICAgICAgICAgQWN0aW9uOiBjb21tYW5kLFxuICAgICAgICAgICAgVmVyc2lvbjogdmVyc2lvbixcbiAgICAgICAgICAgIEttc0tleUlkOiBpbnB1dC5LbXNLZXlJZCxcbiAgICAgICAgICAgIERlc3RpbmF0aW9uUmVnaW9uOiByZWdpb24sXG4gICAgICAgICAgICBbc291cmNlSWRLZXldOiBpbnB1dFtzb3VyY2VJZEtleV0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHNpZ25lciA9IG5ldyBTaWduYXR1cmVWNCh7XG4gICAgICAgICAgY3JlZGVudGlhbHM6IG9wdGlvbnMuY3JlZGVudGlhbHMsXG4gICAgICAgICAgcmVnaW9uOiBzb3VyY2VSZWdpb24sXG4gICAgICAgICAgc2VydmljZTogXCJyZHNcIixcbiAgICAgICAgICBzaGEyNTY6IG9wdGlvbnMuc2hhMjU2LFxuICAgICAgICAgIHVyaUVzY2FwZVBhdGg6IG9wdGlvbnMuc2lnbmluZ0VzY2FwZVBhdGgsXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBwcmVzaWduZWRSZXF1ZXN0ID0gYXdhaXQgc2lnbmVyLnByZXNpZ24ocmVxdWVzdCwge1xuICAgICAgICAgIGV4cGlyZXNJbjogMzYwMCxcbiAgICAgICAgfSk7XG4gICAgICAgIGFyZ3MgPSB7XG4gICAgICAgICAgLi4uYXJncyxcbiAgICAgICAgICBpbnB1dDoge1xuICAgICAgICAgICAgLi4uYXJncy5pbnB1dCxcbiAgICAgICAgICAgIFByZVNpZ25lZFVybDogZm9ybWF0VXJsKHByZXNpZ25lZFJlcXVlc3QpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gbmV4dChhcmdzKTtcbiAgICB9O1xufVxuXG5leHBvcnQgY29uc3QgY3Jvc3NSZWdpb25QcmVzaWduZWRVcmxNaWRkbGV3YXJlT3B0aW9uczogSW5pdGlhbGl6ZUhhbmRsZXJPcHRpb25zID0ge1xuICBzdGVwOiBcImluaXRpYWxpemVcIixcbiAgdGFnczogW1wiQ1JPU1NfUkVHSU9OX1BSRVNJR05FRF9VUkxcIl0sXG4gIG5hbWU6IFwiY3Jvc3NSZWdpb25QcmVzaWduZWRVcmxNaWRkbGV3YXJlXCIsXG4gIG92ZXJyaWRlOiB0cnVlLFxufTtcblxuZXhwb3J0IGNvbnN0IGdldENyb3NzUmVnaW9uUHJlc2lnbmVkVXJsUGx1Z2luID0gKGNvbmZpZzogUHJldmlvdXNseVJlc29sdmVkKTogUGx1Z2dhYmxlPGFueSwgYW55PiA9PiAoe1xuICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgIGNsaWVudFN0YWNrLmFkZChjcm9zc1JlZ2lvblByZXNpZ25lZFVybE1pZGRsZXdhcmUoY29uZmlnKSwgY3Jvc3NSZWdpb25QcmVzaWduZWRVcmxNaWRkbGV3YXJlT3B0aW9ucyk7XG4gIH0sXG59KTtcblxuZnVuY3Rpb24gaXNBUk4oaWQ6IHN0cmluZyB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICBpZiAoIWlkKSByZXR1cm4gZmFsc2U7XG4gIHJldHVybiByZWdBUk4udGVzdChpZCk7XG59XG5cbmZ1bmN0aW9uIGdldEVuZHBvaW50RnJvbUFSTihhcm46IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGFybkFyciA9IGFybi5zcGxpdChcIjpcIik7XG4gIGlmIChhcm5BcnIubGVuZ3RoIDwgNCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGluZmVyIGVuZHBvaW50IGZyb20gJyR7YXJufSdgKTtcbiAgfVxuICByZXR1cm4gYXJuQXJyWzNdO1xufVxuIl19