cdk-assets 2.38.1 → 2.40.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/lib/private/asset-handler.d.ts +10 -0
- package/lib/private/asset-handler.js +1 -1
- package/lib/private/handlers/container-images.d.ts +3 -0
- package/lib/private/handlers/container-images.js +48 -20
- package/lib/private/handlers/files.d.ts +1 -0
- package/lib/private/handlers/files.js +2 -1
- package/lib/publishing.d.ts +17 -0
- package/lib/publishing.js +40 -6
- package/npm-shrinkwrap.json +10 -10
- package/package.json +6 -6
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
import { IAws } from '../aws';
|
|
2
2
|
import { EventType } from '../progress';
|
|
3
3
|
import { DockerFactory } from './docker';
|
|
4
|
+
/**
|
|
5
|
+
* Handler for asset building and publishing.
|
|
6
|
+
*/
|
|
4
7
|
export interface IAssetHandler {
|
|
8
|
+
/**
|
|
9
|
+
* Build the asset.
|
|
10
|
+
*/
|
|
11
|
+
build(): Promise<void>;
|
|
12
|
+
/**
|
|
13
|
+
* Publish the asset.
|
|
14
|
+
*/
|
|
5
15
|
publish(): Promise<void>;
|
|
6
16
|
}
|
|
7
17
|
export interface IHandlerHost {
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFzc2V0LWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElBd3MgfSBmcm9tICcuLi9hd3MnO1xuaW1wb3J0IHsgRXZlbnRUeXBlIH0gZnJvbSAnLi4vcHJvZ3Jlc3MnO1xuaW1wb3J0IHsgRG9ja2VyRmFjdG9yeSB9IGZyb20gJy4vZG9ja2VyJztcblxuLyoqXG4gKiBIYW5kbGVyIGZvciBhc3NldCBidWlsZGluZyBhbmQgcHVibGlzaGluZy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQXNzZXRIYW5kbGVyIHtcbiAgLyoqXG4gICAqIEJ1aWxkIHRoZSBhc3NldC5cbiAgICovXG4gIGJ1aWxkKCk6IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIFB1Ymxpc2ggdGhlIGFzc2V0LlxuICAgKi9cbiAgcHVibGlzaCgpOiBQcm9taXNlPHZvaWQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElIYW5kbGVySG9zdCB7XG4gIHJlYWRvbmx5IGF3czogSUF3cztcbiAgcmVhZG9ubHkgYWJvcnRlZDogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZG9ja2VyRmFjdG9yeTogRG9ja2VyRmFjdG9yeTtcblxuICBlbWl0TWVzc2FnZSh0eXBlOiBFdmVudFR5cGUsIG06IHN0cmluZyk6IHZvaWQ7XG59Il19
|
|
@@ -4,8 +4,11 @@ export declare class ContainerImageAssetHandler implements IAssetHandler {
|
|
|
4
4
|
private readonly workDir;
|
|
5
5
|
private readonly asset;
|
|
6
6
|
private readonly host;
|
|
7
|
+
private init?;
|
|
7
8
|
constructor(workDir: string, asset: DockerImageManifestEntry, host: IHandlerHost);
|
|
9
|
+
build(): Promise<void>;
|
|
8
10
|
publish(): Promise<void>;
|
|
11
|
+
private initOnce;
|
|
9
12
|
/**
|
|
10
13
|
* Check whether the image already exists in the ECR repo
|
|
11
14
|
*
|
|
@@ -11,39 +11,67 @@ class ContainerImageAssetHandler {
|
|
|
11
11
|
this.asset = asset;
|
|
12
12
|
this.host = host;
|
|
13
13
|
}
|
|
14
|
-
async
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
const account = async () => { var _a; return (_a = (await this.host.aws.discoverCurrentAccount())) === null || _a === void 0 ? void 0 : _a.accountId; };
|
|
18
|
-
const repoUri = await repositoryUri(ecr, destination.repositoryName);
|
|
19
|
-
if (!repoUri) {
|
|
20
|
-
throw new Error(`No ECR repository named '${destination.repositoryName}' in account ${await account()}. Is this account bootstrapped?`);
|
|
21
|
-
}
|
|
22
|
-
const imageUri = `${repoUri}:${destination.imageTag}`;
|
|
23
|
-
if (await this.destinationAlreadyExists(ecr, destination, imageUri)) {
|
|
14
|
+
async build() {
|
|
15
|
+
const initOnce = await this.initOnce();
|
|
16
|
+
if (initOnce.destinationAlreadyExists) {
|
|
24
17
|
return;
|
|
25
18
|
}
|
|
26
19
|
if (this.host.aborted) {
|
|
27
20
|
return;
|
|
28
21
|
}
|
|
29
|
-
const
|
|
30
|
-
repoUri,
|
|
22
|
+
const dockerForBuilding = await this.host.dockerFactory.forBuild({
|
|
23
|
+
repoUri: initOnce.repoUri,
|
|
31
24
|
logger: (m) => this.host.emitMessage(progress_1.EventType.DEBUG, m),
|
|
32
|
-
ecr,
|
|
33
|
-
};
|
|
34
|
-
const dockerForBuilding = await this.host.dockerFactory.forBuild(containerImageDockerOptions);
|
|
25
|
+
ecr: initOnce.ecr,
|
|
26
|
+
});
|
|
35
27
|
const builder = new ContainerImageBuilder(dockerForBuilding, this.workDir, this.asset, this.host);
|
|
36
28
|
const localTagName = await builder.build();
|
|
37
29
|
if (localTagName === undefined || this.host.aborted) {
|
|
38
30
|
return;
|
|
39
31
|
}
|
|
40
|
-
this.host.emitMessage(progress_1.EventType.UPLOAD, `Push ${imageUri}`);
|
|
41
32
|
if (this.host.aborted) {
|
|
42
33
|
return;
|
|
43
34
|
}
|
|
44
|
-
await dockerForBuilding.tag(localTagName, imageUri);
|
|
45
|
-
|
|
46
|
-
|
|
35
|
+
await dockerForBuilding.tag(localTagName, initOnce.imageUri);
|
|
36
|
+
}
|
|
37
|
+
async publish() {
|
|
38
|
+
const initOnce = await this.initOnce();
|
|
39
|
+
if (initOnce.destinationAlreadyExists) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
if (this.host.aborted) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
const dockerForPushing = await this.host.dockerFactory.forEcrPush({
|
|
46
|
+
repoUri: initOnce.repoUri,
|
|
47
|
+
logger: (m) => this.host.emitMessage(progress_1.EventType.DEBUG, m),
|
|
48
|
+
ecr: initOnce.ecr,
|
|
49
|
+
});
|
|
50
|
+
if (this.host.aborted) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
this.host.emitMessage(progress_1.EventType.UPLOAD, `Push ${initOnce.imageUri}`);
|
|
54
|
+
await dockerForPushing.push(initOnce.imageUri);
|
|
55
|
+
}
|
|
56
|
+
async initOnce() {
|
|
57
|
+
if (this.init) {
|
|
58
|
+
return this.init;
|
|
59
|
+
}
|
|
60
|
+
const destination = await placeholders_1.replaceAwsPlaceholders(this.asset.destination, this.host.aws);
|
|
61
|
+
const ecr = await this.host.aws.ecrClient(destination);
|
|
62
|
+
const account = async () => { var _a; return (_a = (await this.host.aws.discoverCurrentAccount())) === null || _a === void 0 ? void 0 : _a.accountId; };
|
|
63
|
+
const repoUri = await repositoryUri(ecr, destination.repositoryName);
|
|
64
|
+
if (!repoUri) {
|
|
65
|
+
throw new Error(`No ECR repository named '${destination.repositoryName}' in account ${await account()}. Is this account bootstrapped?`);
|
|
66
|
+
}
|
|
67
|
+
const imageUri = `${repoUri}:${destination.imageTag}`;
|
|
68
|
+
this.init = {
|
|
69
|
+
imageUri,
|
|
70
|
+
ecr,
|
|
71
|
+
repoUri,
|
|
72
|
+
destinationAlreadyExists: await this.destinationAlreadyExists(ecr, destination, imageUri),
|
|
73
|
+
};
|
|
74
|
+
return this.init;
|
|
47
75
|
}
|
|
48
76
|
/**
|
|
49
77
|
* Check whether the image already exists in the ECR repo
|
|
@@ -159,4 +187,4 @@ async function repositoryUri(ecr, repositoryName) {
|
|
|
159
187
|
return undefined;
|
|
160
188
|
}
|
|
161
189
|
}
|
|
162
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLWltYWdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbnRhaW5lci1pbWFnZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTZCO0FBRzdCLDZDQUEyQztBQUczQyxrREFBeUQ7QUFDekQsb0NBQWlDO0FBRWpDLE1BQWEsMEJBQTBCO0lBQ3JDLFlBQ21CLE9BQWUsRUFDZixLQUErQixFQUMvQixJQUFrQjtRQUZsQixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsVUFBSyxHQUFMLEtBQUssQ0FBMEI7UUFDL0IsU0FBSSxHQUFKLElBQUksQ0FBYztJQUNyQyxDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQU87UUFDbEIsTUFBTSxXQUFXLEdBQUcsTUFBTSxxQ0FBc0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hGLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sT0FBTyxHQUFHLEtBQUssSUFBSSxFQUFFLHdCQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLDBDQUFFLFNBQVMsR0FBQSxDQUFDO1FBQ3RGLE1BQU0sT0FBTyxHQUFHLE1BQU0sYUFBYSxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFckUsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLFdBQVcsQ0FBQyxjQUFjLGdCQUFnQixNQUFNLE9BQU8sRUFBRSxpQ0FBaUMsQ0FBQyxDQUFDO1NBQ3pJO1FBRUQsTUFBTSxRQUFRLEdBQUcsR0FBRyxPQUFPLElBQUksV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRXRELElBQUks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RSxNQUFNLENBQUMsQ0FBQztTQUFFO1FBQ3JELE9BQU8sS0FBSyxDQUFDO0tBQ2Q7QUFDSCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILEtBQUssVUFBVSxhQUFhLENBQUMsR0FBWSxFQUFFLGNBQXNCOztJQUMvRCxJQUFJO1FBQ0YsTUFBTSxRQUFRLEdBQUcsTUFBTSxHQUFHLENBQUMsb0JBQW9CLENBQUMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakcsYUFBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLDBDQUFFLGFBQWEsQ0FBQztLQUN4RDtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLDZCQUE2QixFQUFFO1lBQUUsTUFBTSxDQUFDLENBQUM7U0FBRTtRQUMxRCxPQUFPLFNBQVMsQ0FBQztLQUNsQjtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgRG9ja2VySW1hZ2VEZXN0aW5hdGlvbiB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQgeyBEb2NrZXJJbWFnZU1hbmlmZXN0RW50cnkgfSBmcm9tICcuLi8uLi9hc3NldC1tYW5pZmVzdCc7XG5pbXBvcnQgeyBFdmVudFR5cGUgfSBmcm9tICcuLi8uLi9wcm9ncmVzcyc7XG5pbXBvcnQgeyBJQXNzZXRIYW5kbGVyLCBJSGFuZGxlckhvc3QgfSBmcm9tICcuLi9hc3NldC1oYW5kbGVyJztcbmltcG9ydCB7IERvY2tlciB9IGZyb20gJy4uL2RvY2tlcic7XG5pbXBvcnQgeyByZXBsYWNlQXdzUGxhY2Vob2xkZXJzIH0gZnJvbSAnLi4vcGxhY2Vob2xkZXJzJztcbmltcG9ydCB7IHNoZWxsIH0gZnJvbSAnLi4vc2hlbGwnO1xuXG5leHBvcnQgY2xhc3MgQ29udGFpbmVySW1hZ2VBc3NldEhhbmRsZXIgaW1wbGVtZW50cyBJQXNzZXRIYW5kbGVyIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSB3b3JrRGlyOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhc3NldDogRG9ja2VySW1hZ2VNYW5pZmVzdEVudHJ5LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaG9zdDogSUhhbmRsZXJIb3N0KSB7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcHVibGlzaCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBkZXN0aW5hdGlvbiA9IGF3YWl0IHJlcGxhY2VBd3NQbGFjZWhvbGRlcnModGhpcy5hc3NldC5kZXN0aW5hdGlvbiwgdGhpcy5ob3N0LmF3cyk7XG4gICAgY29uc3QgZWNyID0gYXdhaXQgdGhpcy5ob3N0LmF3cy5lY3JDbGllbnQoZGVzdGluYXRpb24pO1xuICAgIGNvbnN0IGFjY291bnQgPSBhc3luYyAoKSA9PiAoYXdhaXQgdGhpcy5ob3N0LmF3cy5kaXNjb3ZlckN1cnJlbnRBY2NvdW50KCkpPy5hY2NvdW50SWQ7XG4gICAgY29uc3QgcmVwb1VyaSA9IGF3YWl0IHJlcG9zaXRvcnlVcmkoZWNyLCBkZXN0aW5hdGlvbi5yZXBvc2l0b3J5TmFtZSk7XG5cbiAgICBpZiAoIXJlcG9VcmkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gRUNSIHJlcG9zaXRvcnkgbmFtZWQgJyR7ZGVzdGluYXRpb24ucmVwb3NpdG9yeU5hbWV9JyBpbiBhY2NvdW50ICR7YXdhaXQgYWNjb3VudCgpfS4gSXMgdGhpcyBhY2NvdW50IGJvb3RzdHJhcHBlZD9gKTtcbiAgICB9XG5cbiAgICBjb25zdCBpbWFnZVVyaSA9IGAke3JlcG9Vcml9OiR7ZGVzdGluYXRpb24uaW1hZ2VUYWd9YDtcblxuICAgIGlmIChhd2FpdCB0aGlzLmRlc3RpbmF0aW9uQWxyZWFkeUV4aXN0cyhlY3IsIGRlc3RpbmF0aW9uLCBpbWFnZVVyaSkpIHsgcmV0dXJuOyB9XG4gICAgaWYgKHRoaXMuaG9zdC5hYm9ydGVkKSB7IHJldHVybjsgfVxuXG4gICAgY29uc3QgY29udGFpbmVySW1hZ2VEb2NrZXJPcHRpb25zID0ge1xuICAgICAgcmVwb1VyaSxcbiAgICAgIGxvZ2dlcjogKG06IHN0cmluZykgPT4gdGhpcy5ob3N0LmVtaXRNZXNzYWdlKEV2ZW50VHlwZS5ERUJVRywgbSksXG4gICAgICBlY3IsXG4gICAgfTtcblxuICAgIGNvbnN0IGRvY2tlckZvckJ1aWxkaW5nID0gYXdhaXQgdGhpcy5ob3N0LmRvY2tlckZhY3RvcnkuZm9yQnVpbGQoY29udGFpbmVySW1hZ2VEb2NrZXJPcHRpb25zKTtcblxuICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgQ29udGFpbmVySW1hZ2VCdWlsZGVyKGRvY2tlckZvckJ1aWxkaW5nLCB0aGlzLndvcmtEaXIsIHRoaXMuYXNzZXQsIHRoaXMuaG9zdCk7XG4gICAgY29uc3QgbG9jYWxUYWdOYW1lID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuXG4gICAgaWYgKGxvY2FsVGFnTmFtZSA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuaG9zdC5hYm9ydGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5ob3N0LmVtaXRNZXNzYWdlKEV2ZW50VHlwZS5VUExPQUQsIGBQdXNoICR7aW1hZ2VVcml9YCk7XG4gICAgaWYgKHRoaXMuaG9zdC5hYm9ydGVkKSB7IHJldHVybjsgfVxuXG4gICAgYXdhaXQgZG9ja2VyRm9yQnVpbGRpbmcudGFnKGxvY2FsVGFnTmFtZSwgaW1hZ2VVcmkpO1xuXG4gICAgY29uc3QgZG9ja2VyRm9yUHVzaGluZyA9IGF3YWl0IHRoaXMuaG9zdC5kb2NrZXJGYWN0b3J5LmZvckVjclB1c2goY29udGFpbmVySW1hZ2VEb2NrZXJPcHRpb25zKTtcbiAgICBhd2FpdCBkb2NrZXJGb3JQdXNoaW5nLnB1c2goaW1hZ2VVcmkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIHdoZXRoZXIgdGhlIGltYWdlIGFscmVhZHkgZXhpc3RzIGluIHRoZSBFQ1IgcmVwb1xuICAgKlxuICAgKiBVc2UgdGhlIGZpZWxkcyBmcm9tIHRoZSBkZXN0aW5hdGlvbiB0byBkbyB0aGUgYWN0dWFsIGNoZWNrLiBUaGUgaW1hZ2VVcmlcbiAgICogc2hvdWxkIGNvcnJlc3BvbmQgdG8gdGhhdCwgYnV0IGlzIG9ubHkgdXNlZCB0byBwcmludCBEb2NrZXIgaW1hZ2UgbG9jYXRpb25cbiAgICogZm9yIHVzZXIgYmVuZWZpdCAodGhlIGZvcm1hdCBpcyBzbGlnaHRseSBkaWZmZXJlbnQpLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBkZXN0aW5hdGlvbkFscmVhZHlFeGlzdHMoZWNyOiBBV1MuRUNSLCBkZXN0aW5hdGlvbjogRG9ja2VySW1hZ2VEZXN0aW5hdGlvbiwgaW1hZ2VVcmk6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuQ0hFQ0ssIGBDaGVjayAke2ltYWdlVXJpfWApO1xuICAgIGlmIChhd2FpdCBpbWFnZUV4aXN0cyhlY3IsIGRlc3RpbmF0aW9uLnJlcG9zaXRvcnlOYW1lLCBkZXN0aW5hdGlvbi5pbWFnZVRhZykpIHtcbiAgICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuRk9VTkQsIGBGb3VuZCAke2ltYWdlVXJpfWApO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbmNsYXNzIENvbnRhaW5lckltYWdlQnVpbGRlciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9ja2VyOiBEb2NrZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSB3b3JrRGlyOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhc3NldDogRG9ja2VySW1hZ2VNYW5pZmVzdEVudHJ5LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaG9zdDogSUhhbmRsZXJIb3N0KSB7XG4gIH1cblxuICBhc3luYyBidWlsZCgpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiB0aGlzLmFzc2V0LnNvdXJjZS5leGVjdXRhYmxlXG4gICAgICA/IHRoaXMuYnVpbGRFeHRlcm5hbEFzc2V0KHRoaXMuYXNzZXQuc291cmNlLmV4ZWN1dGFibGUpXG4gICAgICA6IHRoaXMuYnVpbGREaXJlY3RvcnlBc3NldCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGEgKGxvY2FsKSBEb2NrZXIgYXNzZXQgZnJvbSBhIGRpcmVjdG9yeSB3aXRoIGEgRG9ja2VyZmlsZVxuICAgKlxuICAgKiBUYWdzIHVuZGVyIGEgZGV0ZXJtaW5pc3RpYywgdW5pcXVlLCBsb2NhbCBpZGVudGlmaWVyIHdpY2ggd2lsbCBza2lwXG4gICAqIHRoZSBidWlsZCBpZiBpdCBhbHJlYWR5IGV4aXN0cy5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgYnVpbGREaXJlY3RvcnlBc3NldCgpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IGxvY2FsVGFnTmFtZSA9IGBjZGthc3NldC0ke3RoaXMuYXNzZXQuaWQuYXNzZXRJZC50b0xvd2VyQ2FzZSgpfWA7XG5cbiAgICBpZiAoIShhd2FpdCB0aGlzLmlzSW1hZ2VDYWNoZWQobG9jYWxUYWdOYW1lKSkpIHtcbiAgICAgIGlmICh0aGlzLmhvc3QuYWJvcnRlZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG5cbiAgICAgIGF3YWl0IHRoaXMuYnVpbGRJbWFnZShsb2NhbFRhZ05hbWUpO1xuICAgIH1cblxuICAgIHJldHVybiBsb2NhbFRhZ05hbWU7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYSAobG9jYWwpIERvY2tlciBhc3NldCBieSBydW5uaW5nIGFuIGV4dGVybmFsIGNvbW1hbmRcbiAgICpcbiAgICogRXh0ZXJuYWwgY29tbWFuZCBpcyByZXNwb25zaWJsZSBmb3IgZGVkdXBsaWNhdGluZyB0aGUgYnVpbGQgaWYgcG9zc2libGUsXG4gICAqIGFuZCBpcyBleHBlY3RlZCB0byByZXR1cm4gdGhlIGdlbmVyYXRlZCBpbWFnZSBpZGVudGlmaWVyIG9uIHN0ZG91dC5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgYnVpbGRFeHRlcm5hbEFzc2V0KGV4ZWN1dGFibGU6IHN0cmluZ1tdLCBjd2Q/OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IGFzc2V0UGF0aCA9IGN3ZCA/PyB0aGlzLndvcmtEaXI7XG5cbiAgICB0aGlzLmhvc3QuZW1pdE1lc3NhZ2UoRXZlbnRUeXBlLkJVSUxELCBgQnVpbGRpbmcgRG9ja2VyIGltYWdlIHVzaW5nIGNvbW1hbmQgJyR7ZXhlY3V0YWJsZX0nYCk7XG4gICAgaWYgKHRoaXMuaG9zdC5hYm9ydGVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cblxuICAgIHJldHVybiAoYXdhaXQgc2hlbGwoZXhlY3V0YWJsZSwgeyBjd2Q6IGFzc2V0UGF0aCwgcXVpZXQ6IHRydWUgfSkpLnRyaW0oKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgYnVpbGRJbWFnZShsb2NhbFRhZ05hbWU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHNvdXJjZSA9IHRoaXMuYXNzZXQuc291cmNlO1xuICAgIGlmICghc291cmNlLmRpcmVjdG9yeSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAnZGlyZWN0b3J5JyBpcyBleHBlY3RlZCBpbiB0aGUgRG9ja2VySW1hZ2UgYXNzZXQgc291cmNlLCBnb3Q6ICR7SlNPTi5zdHJpbmdpZnkoc291cmNlKX1gKTtcbiAgICB9XG5cbiAgICBjb25zdCBmdWxsUGF0aCA9IHBhdGgucmVzb2x2ZSh0aGlzLndvcmtEaXIsIHNvdXJjZS5kaXJlY3RvcnkpO1xuICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuQlVJTEQsIGBCdWlsZGluZyBEb2NrZXIgaW1hZ2UgYXQgJHtmdWxsUGF0aH1gKTtcblxuICAgIGF3YWl0IHRoaXMuZG9ja2VyLmJ1aWxkKHtcbiAgICAgIGRpcmVjdG9yeTogZnVsbFBhdGgsXG4gICAgICB0YWc6IGxvY2FsVGFnTmFtZSxcbiAgICAgIGJ1aWxkQXJnczogc291cmNlLmRvY2tlckJ1aWxkQXJncyxcbiAgICAgIHRhcmdldDogc291cmNlLmRvY2tlckJ1aWxkVGFyZ2V0LFxuICAgICAgZmlsZTogc291cmNlLmRvY2tlckZpbGUsXG4gICAgICBuZXR3b3JrTW9kZTogc291cmNlLm5ldHdvcmtNb2RlLFxuICAgICAgcGxhdGZvcm06IHNvdXJjZS5wbGF0Zm9ybSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgaXNJbWFnZUNhY2hlZChsb2NhbFRhZ05hbWU6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmIChhd2FpdCB0aGlzLmRvY2tlci5leGlzdHMobG9jYWxUYWdOYW1lKSkge1xuICAgICAgdGhpcy5ob3N0LmVtaXRNZXNzYWdlKEV2ZW50VHlwZS5DQUNIRUQsIGBDYWNoZWQgJHtsb2NhbFRhZ05hbWV9YCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gaW1hZ2VFeGlzdHMoZWNyOiBBV1MuRUNSLCByZXBvc2l0b3J5TmFtZTogc3RyaW5nLCBpbWFnZVRhZzogc3RyaW5nKSB7XG4gIHRyeSB7XG4gICAgYXdhaXQgZWNyLmRlc2NyaWJlSW1hZ2VzKHsgcmVwb3NpdG9yeU5hbWUsIGltYWdlSWRzOiBbeyBpbWFnZVRhZyB9XSB9KS5wcm9taXNlKCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBpZiAoZS5jb2RlICE9PSAnSW1hZ2VOb3RGb3VuZEV4Y2VwdGlvbicpIHsgdGhyb3cgZTsgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIFJldHVybiB0aGUgVVJJIGZvciB0aGUgcmVwb3NpdG9yeSB3aXRoIHRoZSBnaXZlbiBuYW1lXG4gKlxuICogUmV0dXJucyB1bmRlZmluZWQgaWYgdGhlIHJlcG9zaXRvcnkgZG9lcyBub3QgZXhpc3QuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHJlcG9zaXRvcnlVcmkoZWNyOiBBV1MuRUNSLCByZXBvc2l0b3J5TmFtZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGVjci5kZXNjcmliZVJlcG9zaXRvcmllcyh7IHJlcG9zaXRvcnlOYW1lczogW3JlcG9zaXRvcnlOYW1lXSB9KS5wcm9taXNlKCk7XG4gICAgcmV0dXJuIChyZXNwb25zZS5yZXBvc2l0b3JpZXMgfHwgW10pWzBdPy5yZXBvc2l0b3J5VXJpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgaWYgKGUuY29kZSAhPT0gJ1JlcG9zaXRvcnlOb3RGb3VuZEV4Y2VwdGlvbicpIHsgdGhyb3cgZTsgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==
|
|
190
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLWltYWdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbnRhaW5lci1pbWFnZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTZCO0FBSTdCLDZDQUEyQztBQUczQyxrREFBeUQ7QUFDekQsb0NBQWlDO0FBU2pDLE1BQWEsMEJBQTBCO0lBR3JDLFlBQ21CLE9BQWUsRUFDZixLQUErQixFQUMvQixJQUFrQjtRQUZsQixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsVUFBSyxHQUFMLEtBQUssQ0FBMEI7UUFDL0IsU0FBSSxHQUFKLElBQUksQ0FBYztJQUNyQyxDQUFDO0lBRU0sS0FBSyxDQUFDLEtBQUs7UUFDaEIsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFdkMsSUFBSSxRQUFRLENBQUMsd0JBQXdCLEVBQUU7WUFBRSxPQUFPO1NBQUU7UUFDbEQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUFFLE9BQU87U0FBRTtRQUVsQyxNQUFNLGlCQUFpQixHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO1lBQy9ELE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTztZQUN6QixNQUFNLEVBQUUsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFTLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUNoRSxHQUFHLEVBQUUsUUFBUSxDQUFDLEdBQUc7U0FDbEIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxPQUFPLEdBQUcsSUFBSSxxQkFBcUIsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xHLE1BQU0sWUFBWSxHQUFHLE1BQU0sT0FBTyxDQUFDLEtBQUssRUFBRSxD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LEVBQUUsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakcsYUFBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLDBDQUFFLGFBQWEsQ0FBQztLQUN4RDtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLDZCQUE2QixFQUFFO1lBQUUsTUFBTSxDQUFDLENBQUM7U0FBRTtRQUMxRCxPQUFPLFNBQVMsQ0FBQztLQUNsQjtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgRG9ja2VySW1hZ2VEZXN0aW5hdGlvbiB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQgdHlwZSAqIGFzIEFXUyBmcm9tICdhd3Mtc2RrJztcbmltcG9ydCB7IERvY2tlckltYWdlTWFuaWZlc3RFbnRyeSB9IGZyb20gJy4uLy4uL2Fzc2V0LW1hbmlmZXN0JztcbmltcG9ydCB7IEV2ZW50VHlwZSB9IGZyb20gJy4uLy4uL3Byb2dyZXNzJztcbmltcG9ydCB7IElBc3NldEhhbmRsZXIsIElIYW5kbGVySG9zdCB9IGZyb20gJy4uL2Fzc2V0LWhhbmRsZXInO1xuaW1wb3J0IHsgRG9ja2VyIH0gZnJvbSAnLi4vZG9ja2VyJztcbmltcG9ydCB7IHJlcGxhY2VBd3NQbGFjZWhvbGRlcnMgfSBmcm9tICcuLi9wbGFjZWhvbGRlcnMnO1xuaW1wb3J0IHsgc2hlbGwgfSBmcm9tICcuLi9zaGVsbCc7XG5cbmludGVyZmFjZSBDb250YWluZXJJbWFnZUFzc2V0SGFuZGxlckluaXQge1xuICByZWFkb25seSBlY3I6IEFXUy5FQ1I7XG4gIHJlYWRvbmx5IHJlcG9Vcmk6IHN0cmluZztcbiAgcmVhZG9ubHkgaW1hZ2VVcmk6IHN0cmluZztcbiAgcmVhZG9ubHkgZGVzdGluYXRpb25BbHJlYWR5RXhpc3RzOiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgQ29udGFpbmVySW1hZ2VBc3NldEhhbmRsZXIgaW1wbGVtZW50cyBJQXNzZXRIYW5kbGVyIHtcbiAgcHJpdmF0ZSBpbml0PzogQ29udGFpbmVySW1hZ2VBc3NldEhhbmRsZXJJbml0O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgd29ya0Rpcjogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXNzZXQ6IERvY2tlckltYWdlTWFuaWZlc3RFbnRyeSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhvc3Q6IElIYW5kbGVySG9zdCkge1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGJ1aWxkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGluaXRPbmNlID0gYXdhaXQgdGhpcy5pbml0T25jZSgpO1xuXG4gICAgaWYgKGluaXRPbmNlLmRlc3RpbmF0aW9uQWxyZWFkeUV4aXN0cykgeyByZXR1cm47IH1cbiAgICBpZiAodGhpcy5ob3N0LmFib3J0ZWQpIHsgcmV0dXJuOyB9XG5cbiAgICBjb25zdCBkb2NrZXJGb3JCdWlsZGluZyA9IGF3YWl0IHRoaXMuaG9zdC5kb2NrZXJGYWN0b3J5LmZvckJ1aWxkKHtcbiAgICAgIHJlcG9Vcmk6IGluaXRPbmNlLnJlcG9VcmksXG4gICAgICBsb2dnZXI6IChtOiBzdHJpbmcpID0+IHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuREVCVUcsIG0pLFxuICAgICAgZWNyOiBpbml0T25jZS5lY3IsXG4gICAgfSk7XG5cbiAgICBjb25zdCBidWlsZGVyID0gbmV3IENvbnRhaW5lckltYWdlQnVpbGRlcihkb2NrZXJGb3JCdWlsZGluZywgdGhpcy53b3JrRGlyLCB0aGlzLmFzc2V0LCB0aGlzLmhvc3QpO1xuICAgIGNvbnN0IGxvY2FsVGFnTmFtZSA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcblxuICAgIGlmIChsb2NhbFRhZ05hbWUgPT09IHVuZGVmaW5lZCB8fCB0aGlzLmhvc3QuYWJvcnRlZCkgeyByZXR1cm47IH1cbiAgICBpZiAodGhpcy5ob3N0LmFib3J0ZWQpIHsgcmV0dXJuOyB9XG5cbiAgICBhd2FpdCBkb2NrZXJGb3JCdWlsZGluZy50YWcobG9jYWxUYWdOYW1lLCBpbml0T25jZS5pbWFnZVVyaSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcHVibGlzaCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBpbml0T25jZSA9IGF3YWl0IHRoaXMuaW5pdE9uY2UoKTtcblxuICAgIGlmIChpbml0T25jZS5kZXN0aW5hdGlvbkFscmVhZHlFeGlzdHMpIHsgcmV0dXJuOyB9XG4gICAgaWYgKHRoaXMuaG9zdC5hYm9ydGVkKSB7IHJldHVybjsgfVxuXG4gICAgY29uc3QgZG9ja2VyRm9yUHVzaGluZyA9IGF3YWl0IHRoaXMuaG9zdC5kb2NrZXJGYWN0b3J5LmZvckVjclB1c2goe1xuICAgICAgcmVwb1VyaTogaW5pdE9uY2UucmVwb1VyaSxcbiAgICAgIGxvZ2dlcjogKG06IHN0cmluZykgPT4gdGhpcy5ob3N0LmVtaXRNZXNzYWdlKEV2ZW50VHlwZS5ERUJVRywgbSksXG4gICAgICBlY3I6IGluaXRPbmNlLmVjcixcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmhvc3QuYWJvcnRlZCkgeyByZXR1cm47IH1cblxuICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuVVBMT0FELCBgUHVzaCAke2luaXRPbmNlLmltYWdlVXJpfWApO1xuICAgIGF3YWl0IGRvY2tlckZvclB1c2hpbmcucHVzaChpbml0T25jZS5pbWFnZVVyaSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGluaXRPbmNlKCk6IFByb21pc2U8Q29udGFpbmVySW1hZ2VBc3NldEhhbmRsZXJJbml0PiB7XG4gICAgaWYgKHRoaXMuaW5pdCkge1xuICAgICAgcmV0dXJuIHRoaXMuaW5pdDtcbiAgICB9XG5cbiAgICBjb25zdCBkZXN0aW5hdGlvbiA9IGF3YWl0IHJlcGxhY2VBd3NQbGFjZWhvbGRlcnModGhpcy5hc3NldC5kZXN0aW5hdGlvbiwgdGhpcy5ob3N0LmF3cyk7XG4gICAgY29uc3QgZWNyID0gYXdhaXQgdGhpcy5ob3N0LmF3cy5lY3JDbGllbnQoZGVzdGluYXRpb24pO1xuICAgIGNvbnN0IGFjY291bnQgPSBhc3luYyAoKSA9PiAoYXdhaXQgdGhpcy5ob3N0LmF3cy5kaXNjb3ZlckN1cnJlbnRBY2NvdW50KCkpPy5hY2NvdW50SWQ7XG5cbiAgICBjb25zdCByZXBvVXJpID0gYXdhaXQgcmVwb3NpdG9yeVVyaShlY3IsIGRlc3RpbmF0aW9uLnJlcG9zaXRvcnlOYW1lKTtcbiAgICBpZiAoIXJlcG9VcmkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gRUNSIHJlcG9zaXRvcnkgbmFtZWQgJyR7ZGVzdGluYXRpb24ucmVwb3NpdG9yeU5hbWV9JyBpbiBhY2NvdW50ICR7YXdhaXQgYWNjb3VudCgpfS4gSXMgdGhpcyBhY2NvdW50IGJvb3RzdHJhcHBlZD9gKTtcbiAgICB9XG5cbiAgICBjb25zdCBpbWFnZVVyaSA9IGAke3JlcG9Vcml9OiR7ZGVzdGluYXRpb24uaW1hZ2VUYWd9YDtcblxuICAgIHRoaXMuaW5pdCA9IHtcbiAgICAgIGltYWdlVXJpLFxuICAgICAgZWNyLFxuICAgICAgcmVwb1VyaSxcbiAgICAgIGRlc3RpbmF0aW9uQWxyZWFkeUV4aXN0czogYXdhaXQgdGhpcy5kZXN0aW5hdGlvbkFscmVhZHlFeGlzdHMoZWNyLCBkZXN0aW5hdGlvbiwgaW1hZ2VVcmkpLFxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5pbml0O1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIHdoZXRoZXIgdGhlIGltYWdlIGFscmVhZHkgZXhpc3RzIGluIHRoZSBFQ1IgcmVwb1xuICAgKlxuICAgKiBVc2UgdGhlIGZpZWxkcyBmcm9tIHRoZSBkZXN0aW5hdGlvbiB0byBkbyB0aGUgYWN0dWFsIGNoZWNrLiBUaGUgaW1hZ2VVcmlcbiAgICogc2hvdWxkIGNvcnJlc3BvbmQgdG8gdGhhdCwgYnV0IGlzIG9ubHkgdXNlZCB0byBwcmludCBEb2NrZXIgaW1hZ2UgbG9jYXRpb25cbiAgICogZm9yIHVzZXIgYmVuZWZpdCAodGhlIGZvcm1hdCBpcyBzbGlnaHRseSBkaWZmZXJlbnQpLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBkZXN0aW5hdGlvbkFscmVhZHlFeGlzdHMoZWNyOiBBV1MuRUNSLCBkZXN0aW5hdGlvbjogRG9ja2VySW1hZ2VEZXN0aW5hdGlvbiwgaW1hZ2VVcmk6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuQ0hFQ0ssIGBDaGVjayAke2ltYWdlVXJpfWApO1xuICAgIGlmIChhd2FpdCBpbWFnZUV4aXN0cyhlY3IsIGRlc3RpbmF0aW9uLnJlcG9zaXRvcnlOYW1lLCBkZXN0aW5hdGlvbi5pbWFnZVRhZykpIHtcbiAgICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuRk9VTkQsIGBGb3VuZCAke2ltYWdlVXJpfWApO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbmNsYXNzIENvbnRhaW5lckltYWdlQnVpbGRlciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9ja2VyOiBEb2NrZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSB3b3JrRGlyOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhc3NldDogRG9ja2VySW1hZ2VNYW5pZmVzdEVudHJ5LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaG9zdDogSUhhbmRsZXJIb3N0KSB7XG4gIH1cblxuICBhc3luYyBidWlsZCgpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiB0aGlzLmFzc2V0LnNvdXJjZS5leGVjdXRhYmxlXG4gICAgICA/IHRoaXMuYnVpbGRFeHRlcm5hbEFzc2V0KHRoaXMuYXNzZXQuc291cmNlLmV4ZWN1dGFibGUpXG4gICAgICA6IHRoaXMuYnVpbGREaXJlY3RvcnlBc3NldCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGEgKGxvY2FsKSBEb2NrZXIgYXNzZXQgZnJvbSBhIGRpcmVjdG9yeSB3aXRoIGEgRG9ja2VyZmlsZVxuICAgKlxuICAgKiBUYWdzIHVuZGVyIGEgZGV0ZXJtaW5pc3RpYywgdW5pcXVlLCBsb2NhbCBpZGVudGlmaWVyIHdpY2ggd2lsbCBza2lwXG4gICAqIHRoZSBidWlsZCBpZiBpdCBhbHJlYWR5IGV4aXN0cy5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgYnVpbGREaXJlY3RvcnlBc3NldCgpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IGxvY2FsVGFnTmFtZSA9IGBjZGthc3NldC0ke3RoaXMuYXNzZXQuaWQuYXNzZXRJZC50b0xvd2VyQ2FzZSgpfWA7XG5cbiAgICBpZiAoIShhd2FpdCB0aGlzLmlzSW1hZ2VDYWNoZWQobG9jYWxUYWdOYW1lKSkpIHtcbiAgICAgIGlmICh0aGlzLmhvc3QuYWJvcnRlZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG5cbiAgICAgIGF3YWl0IHRoaXMuYnVpbGRJbWFnZShsb2NhbFRhZ05hbWUpO1xuICAgIH1cblxuICAgIHJldHVybiBsb2NhbFRhZ05hbWU7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYSAobG9jYWwpIERvY2tlciBhc3NldCBieSBydW5uaW5nIGFuIGV4dGVybmFsIGNvbW1hbmRcbiAgICpcbiAgICogRXh0ZXJuYWwgY29tbWFuZCBpcyByZXNwb25zaWJsZSBmb3IgZGVkdXBsaWNhdGluZyB0aGUgYnVpbGQgaWYgcG9zc2libGUsXG4gICAqIGFuZCBpcyBleHBlY3RlZCB0byByZXR1cm4gdGhlIGdlbmVyYXRlZCBpbWFnZSBpZGVudGlmaWVyIG9uIHN0ZG91dC5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgYnVpbGRFeHRlcm5hbEFzc2V0KGV4ZWN1dGFibGU6IHN0cmluZ1tdLCBjd2Q/OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IGFzc2V0UGF0aCA9IGN3ZCA/PyB0aGlzLndvcmtEaXI7XG5cbiAgICB0aGlzLmhvc3QuZW1pdE1lc3NhZ2UoRXZlbnRUeXBlLkJVSUxELCBgQnVpbGRpbmcgRG9ja2VyIGltYWdlIHVzaW5nIGNvbW1hbmQgJyR7ZXhlY3V0YWJsZX0nYCk7XG4gICAgaWYgKHRoaXMuaG9zdC5hYm9ydGVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cblxuICAgIHJldHVybiAoYXdhaXQgc2hlbGwoZXhlY3V0YWJsZSwgeyBjd2Q6IGFzc2V0UGF0aCwgcXVpZXQ6IHRydWUgfSkpLnRyaW0oKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgYnVpbGRJbWFnZShsb2NhbFRhZ05hbWU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHNvdXJjZSA9IHRoaXMuYXNzZXQuc291cmNlO1xuICAgIGlmICghc291cmNlLmRpcmVjdG9yeSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAnZGlyZWN0b3J5JyBpcyBleHBlY3RlZCBpbiB0aGUgRG9ja2VySW1hZ2UgYXNzZXQgc291cmNlLCBnb3Q6ICR7SlNPTi5zdHJpbmdpZnkoc291cmNlKX1gKTtcbiAgICB9XG5cbiAgICBjb25zdCBmdWxsUGF0aCA9IHBhdGgucmVzb2x2ZSh0aGlzLndvcmtEaXIsIHNvdXJjZS5kaXJlY3RvcnkpO1xuICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuQlVJTEQsIGBCdWlsZGluZyBEb2NrZXIgaW1hZ2UgYXQgJHtmdWxsUGF0aH1gKTtcblxuICAgIGF3YWl0IHRoaXMuZG9ja2VyLmJ1aWxkKHtcbiAgICAgIGRpcmVjdG9yeTogZnVsbFBhdGgsXG4gICAgICB0YWc6IGxvY2FsVGFnTmFtZSxcbiAgICAgIGJ1aWxkQXJnczogc291cmNlLmRvY2tlckJ1aWxkQXJncyxcbiAgICAgIHRhcmdldDogc291cmNlLmRvY2tlckJ1aWxkVGFyZ2V0LFxuICAgICAgZmlsZTogc291cmNlLmRvY2tlckZpbGUsXG4gICAgICBuZXR3b3JrTW9kZTogc291cmNlLm5ldHdvcmtNb2RlLFxuICAgICAgcGxhdGZvcm06IHNvdXJjZS5wbGF0Zm9ybSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgaXNJbWFnZUNhY2hlZChsb2NhbFRhZ05hbWU6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmIChhd2FpdCB0aGlzLmRvY2tlci5leGlzdHMobG9jYWxUYWdOYW1lKSkge1xuICAgICAgdGhpcy5ob3N0LmVtaXRNZXNzYWdlKEV2ZW50VHlwZS5DQUNIRUQsIGBDYWNoZWQgJHtsb2NhbFRhZ05hbWV9YCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gaW1hZ2VFeGlzdHMoZWNyOiBBV1MuRUNSLCByZXBvc2l0b3J5TmFtZTogc3RyaW5nLCBpbWFnZVRhZzogc3RyaW5nKSB7XG4gIHRyeSB7XG4gICAgYXdhaXQgZWNyLmRlc2NyaWJlSW1hZ2VzKHsgcmVwb3NpdG9yeU5hbWUsIGltYWdlSWRzOiBbeyBpbWFnZVRhZyB9XSB9KS5wcm9taXNlKCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBpZiAoZS5jb2RlICE9PSAnSW1hZ2VOb3RGb3VuZEV4Y2VwdGlvbicpIHsgdGhyb3cgZTsgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIFJldHVybiB0aGUgVVJJIGZvciB0aGUgcmVwb3NpdG9yeSB3aXRoIHRoZSBnaXZlbiBuYW1lXG4gKlxuICogUmV0dXJucyB1bmRlZmluZWQgaWYgdGhlIHJlcG9zaXRvcnkgZG9lcyBub3QgZXhpc3QuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHJlcG9zaXRvcnlVcmkoZWNyOiBBV1MuRUNSLCByZXBvc2l0b3J5TmFtZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGVjci5kZXNjcmliZVJlcG9zaXRvcmllcyh7IHJlcG9zaXRvcnlOYW1lczogW3JlcG9zaXRvcnlOYW1lXSB9KS5wcm9taXNlKCk7XG4gICAgcmV0dXJuIChyZXNwb25zZS5yZXBvc2l0b3JpZXMgfHwgW10pWzBdPy5yZXBvc2l0b3J5VXJpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgaWYgKGUuY29kZSAhPT0gJ1JlcG9zaXRvcnlOb3RGb3VuZEV4Y2VwdGlvbicpIHsgdGhyb3cgZTsgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -6,6 +6,7 @@ export declare class FileAssetHandler implements IAssetHandler {
|
|
|
6
6
|
private readonly host;
|
|
7
7
|
private readonly fileCacheRoot;
|
|
8
8
|
constructor(workDir: string, asset: FileManifestEntry, host: IHandlerHost);
|
|
9
|
+
build(): Promise<void>;
|
|
9
10
|
publish(): Promise<void>;
|
|
10
11
|
private packageFile;
|
|
11
12
|
private externalPackageFile;
|
|
@@ -23,6 +23,7 @@ class FileAssetHandler {
|
|
|
23
23
|
this.host = host;
|
|
24
24
|
this.fileCacheRoot = path.join(workDir, '.cache');
|
|
25
25
|
}
|
|
26
|
+
async build() { }
|
|
26
27
|
async publish() {
|
|
27
28
|
const destination = await placeholders_1.replaceAwsPlaceholders(this.asset.destination, this.host.aws);
|
|
28
29
|
const s3Url = `s3://${destination.bucketName}/${destination.objectKey}`;
|
|
@@ -247,4 +248,4 @@ async function cached(cache, key, factory) {
|
|
|
247
248
|
cache.set(key, fresh);
|
|
248
249
|
return fresh;
|
|
249
250
|
}
|
|
250
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmaWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQkFBc0Q7QUFDdEQsNkJBQTZCO0FBQzdCLDBFQUFnRjtBQUNoRiw2QkFBNkI7QUFFN0IsNkNBQTJDO0FBQzNDLHdDQUEwQztBQUUxQywwQ0FBeUM7QUFDekMsa0RBQXlEO0FBQ3pELG9DQUFpQztBQUVqQzs7OztHQUlHO0FBQ0gsTUFBTSxtQkFBbUIsR0FBRyxFQUFFLENBQUM7QUFFL0IsTUFBYSxnQkFBZ0I7SUFHM0IsWUFDbUIsT0FBZSxFQUNmLEtBQXdCLEVBQ3hCLElBQWtCO1FBRmxCLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUN4QixTQUFJLEdBQUosSUFBSSxDQUFjO1FBQ25DLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPO1FBQ2xCLE1BQU0sV0FBVyxHQUFHLE1BQU0scUNBQXNCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4RixNQUFNLEtBQUssR0FBRyxRQUFRLFdBQVcsQ0FBQyxVQUFVLElBQUksV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3hFLE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFTLENBQUMsS0FBSyxFQUFFLFNBQVMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUV6RCxNQUFNLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFD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LEVBQUU7Z0JBQzdCLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQzthQUNuQztZQUNELElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxnREFBZ0QsRUFBRTtnQkFDL0QsT0FBTyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsQ0FBQzthQUNsQztZQUVELElBQUksQ0FBQyxjQUFjLEVBQUUsbUJBQW1CLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUMxRCxPQUFPLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxDQUFDO2FBQ2xDO1lBQ0QsT0FBTyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsQ0FBQztTQUNsQztJQUNILENBQUM7O0FBbkR1Qix3QkFBTSxHQUFHLElBQUksT0FBTyxFQUFtQyxDQUFDO0FBc0RsRixLQUFLLFVBQVUsTUFBTSxDQUFPLEtBQWdCLEVBQUUsR0FBTSxFQUFFLE9BQTZCO0lBQ2pGLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUNsQixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFFLENBQUM7S0FDeEI7SUFFRCxNQUFNLEtBQUssR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN0QixPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVSZWFkU3RyZWFtLCBwcm9taXNlcyBhcyBmcyB9IGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBGaWxlQXNzZXRQYWNrYWdpbmcsIEZpbGVTb3VyY2UgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0ICogYXMgbWltZSBmcm9tICdtaW1lJztcbmltcG9ydCB7IEZpbGVNYW5pZmVzdEVudHJ5IH0gZnJvbSAnLi4vLi4vYXNzZXQtbWFuaWZlc3QnO1xuaW1wb3J0IHsgRXZlbnRUeXBlIH0gZnJvbSAnLi4vLi4vcHJvZ3Jlc3MnO1xuaW1wb3J0IHsgemlwRGlyZWN0b3J5IH0gZnJvbSAnLi4vYXJjaGl2ZSc7XG5pbXBvcnQgeyBJQXNzZXRIYW5kbGVyLCBJSGFuZGxlckhvc3QgfSBmcm9tICcuLi9hc3NldC1oYW5kbGVyJztcbmltcG9ydCB7IHBhdGhFeGlzdHMgfSBmcm9tICcuLi9mcy1leHRyYSc7XG5pbXBvcnQgeyByZXBsYWNlQXdzUGxhY2Vob2xkZXJzIH0gZnJvbSAnLi4vcGxhY2Vob2xkZXJzJztcbmltcG9ydCB7IHNoZWxsIH0gZnJvbSAnLi4vc2hlbGwnO1xuXG4vKipcbiAqIFRoZSBzaXplIG9mIGFuIGVtcHR5IHppcCBmaWxlIGlzIDIyIGJ5dGVzXG4gKlxuICogUmVmOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9aSVBfKGZpbGVfZm9ybWF0KVxuICovXG5jb25zdCBFTVBUWV9aSVBfRklMRV9TSVpFID0gMjI7XG5cbmV4cG9ydCBjbGFzcyBGaWxlQXNzZXRIYW5kbGVyIGltcGxlbWVudHMgSUFzc2V0SGFuZGxlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZmlsZUNhY2hlUm9vdDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgd29ya0Rpcjogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXNzZXQ6IEZpbGVNYW5pZmVzdEVudHJ5LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaG9zdDogSUhhbmRsZXJIb3N0KSB7XG4gICAgdGhpcy5maWxlQ2FjaGVSb290ID0gcGF0aC5qb2luKHdvcmtEaXIsICcuY2FjaGUnKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBwdWJsaXNoKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGRlc3RpbmF0aW9uID0gYXdhaXQgcmVwbGFjZUF3c1BsYWNlaG9sZGVycyh0aGlzLmFzc2V0LmRlc3RpbmF0aW9uLCB0aGlzLmhvc3QuYXdzKTtcbiAgICBjb25zdCBzM1VybCA9IGBzMzovLyR7ZGVzdGluYXRpb24uYnVja2V0TmFtZX0vJHtkZXN0aW5hdGlvbi5vYmplY3RLZXl9YDtcbiAgICBjb25zdCBzMyA9IGF3YWl0IHRoaXMuaG9zdC5hd3MuczNDbGllbnQoZGVzdGluYXRpb24pO1xuICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuQ0hFQ0ssIGBDaGVjayAke3MzVXJsfWApO1xuXG4gICAgY29uc3QgYnVja2V0SW5mbyA9IEJ1Y2tldEluZm9ybWF0aW9uLmZvcih0aGlzLmhvc3QpO1xuXG4gICAgLy8gQSB0aHVuayBmb3IgZGVzY3JpYmluZyB0aGUgY3VycmVudCBhY2NvdW50LiBVc2VkIHdoZW4gd2UgbmVlZCB0byBmb3JtYXQgYW4gZXJyb3JcbiAgICAvLyBtZXNzYWdlLCBub3QgaW4gdGhlIHN1Y2Nlc3MgY2FzZS5cbiAgICBjb25zdCBhY2NvdW50ID0gYXN5bmMgKCkgPT4gKGF3YWl0IHRoaXMuaG9zdC5hd3MuZGlzY292ZXJUYXJnZXRBY2NvdW50KGRlc3RpbmF0aW9uKSk/LmFjY291bnRJZDtcbiAgICBzd2l0Y2ggKGF3YWl0IGJ1Y2tldEluZm8uYnVja2V0T3duZXJzaGlwKHMzLCBkZXN0aW5hdGlvbi5idWNrZXROYW1lKSkge1xuICAgICAgY2FzZSBCdWNrZXRPd25lcnNoaXAuTUlORTpcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEJ1Y2tldE93bmVyc2hpcC5ET0VTX05PVF9FWElTVDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBidWNrZXQgbmFtZWQgJyR7ZGVzdGluYXRpb24uYnVja2V0TmFtZX0nLiBJcyBhY2NvdW50ICR7YXdhaXQgYWNjb3VudCgpfSBib290c3RyYXBwZWQ/YCk7XG4gICAgICBjYXNlIEJ1Y2tldE93bmVyc2hpcC5TT01FT05FX0VMU0VTX09SX05PX0FDQ0VTUzpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBCdWNrZXQgbmFtZWQgJyR7ZGVzdGluYXRpb24uYnVja2V0TmFtZX0nIGV4aXN0cywgYnV0IG5vdCBpbiBhY2NvdW50ICR7YXdhaXQgYWNjb3VudCgpfS4gV3JvbmcgYWNjb3VudD9gKTtcbiAgICB9XG5cbiAgICBpZiAoYXdhaXQgb2JqZWN0RXhpc3RzKHMzLCBkZXN0aW5hdGlvbi5idWNrZXROYW1lLCBkZXN0aW5hdGlvbi5vYmplY3RLZXkpKSB7XG4gICAgICB0aGlzLmhvc3QuZW1pdE1lc3NhZ2UoRXZlbnRUeXBlLkZPVU5ELCBgRm91bmQgJHtzM1VybH1gKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBJZGVudGlmeSB0aGUgdGhlIGJ1Y2tldCBlbmNyeXB0aW9uIHR5cGUgdG8gc2V0IHRoZSBoZWFkZXIgb24gdXBsb2FkXG4gICAgLy8gcmVxdWlyZWQgZm9yIFNDUCBydWxlcyBkZW55aW5nIHVwbG9hZHMgd2l0aG91dCBlbmNyeXB0aW9uIGhlYWRlclxuICAgIGxldCBwYXJhbXNFbmNyeXB0aW9uOiB7W2luZGV4OiBzdHJpbmddOmFueX09IHt9O1xuICAgIGNvbnN0IGVuY3J5cHRpb24yID0gYXdhaXQgYnVja2V0SW5mby5idWNrZXRFbmNyeXB0aW9uKHMzLCBkZXN0aW5hdGlvbi5idWNrZXROYW1lKTtcbiAgICBzd2l0Y2ggKGVuY3J5cHRpb24yLnR5cGUpIHtcbiAgICAgIGNhc2UgJ25vX2VuY3J5cHRpb24nOlxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2FlczI1Nic6XG4gICAgICAgIHBhcmFtc0VuY3J5cHRpb24gPSB7IFNlcnZlclNpZGVFbmNyeXB0aW9uOiAnQUVTMjU2JyB9O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2ttcyc6XG4gICAgICAgIC8vIFdlIG11c3QgaW5jbHVkZSB0aGUga2V5IElEIG90aGVyd2lzZSBTMyB3aWxsIGVuY3J5cHQgd2l0aCB0aGUgZGVmYXVsdCBrZXlcbiAgICAgICAgcGFyYW1zRW5jcnlwdGlvbiA9IHtcbiAgICAgICAgICBTZXJ2ZXJTaWRlRW5jcnlwdGlvbjogJ2F3czprbXMnLFxuICAgICAgICAgIFNTRUtNU0tleUlkOiBlbmNyeXB0aW9uMi5rbXNLZXlJZCxcbiAgICAgICAgfTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdkb2VzX25vdF9leGlzdCc6XG4gICAgICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuREVCVUcsIGBObyBidWNrZXQgbmFtZWQgJyR7ZGVzdGluYXRpb24uYnVja2V0TmFtZX0nLiBJcyBhY2NvdW50ICR7YXdhaXQgYWNjb3VudCgpfSBib290c3RyYXBwZWQ/YCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYWNjZXNzX2RlbmllZCc6XG4gICAgICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuREVCVUcsIGBDb3VsZCBub3QgcmVhZCBlbmNyeXB0aW9uIHNldHRpbmdzIG9mIGJ1Y2tldCAnJHtkZXN0aW5hdGlvbi5idWNrZXROYW1lfSc6IHVwbG9hZGluZyB3aXRoIGRlZmF1bHQgc2V0dGluZ3MgKFwiY2RrIGJvb3RzdHJhcFwiIHRvIHZlcnNpb24gOSBpZiB5b3VyIG9yZ2FuaXphdGlvbidzIHBvbGljaWVzIHByZXZlbnQgYSBzdWNjZXNzZnVsIHVwbG9hZCBvciB0byBnZXQgcmlkIG9mIHRoaXMgbWVzc2FnZSkuYCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmhvc3QuYWJvcnRlZCkgeyByZXR1cm47IH1cbiAgICBjb25zdCBwdWJsaXNoRmlsZSA9IHRoaXMuYXNzZXQuc291cmNlLmV4ZWN1dGFibGUgP1xuICAgICAgYXdhaXQgdGhpcy5leHRlcm5hbFBhY2thZ2VGaWxlKHRoaXMuYXNzZXQuc291cmNlLmV4ZWN1dGFibGUpIDogYXdhaXQgdGhpcy5wYWNrYWdlRmlsZSh0aGlzLmFzc2V0LnNvdXJjZSk7XG5cbiAgICAvLyBBZGQgYSB2YWxpZGF0aW9uIHRvIGNhdGNoIHRoZSBjYXNlcyB3aGVyZSB3ZSdyZSBhY2NpZGVudGFsbHkgcHJvZHVjaW5nIGFuIGVtcHR5IFpJUCBmaWxlIChvciB3b3JzZSxcbiAgICAvLyBhbiBlbXB0eSBmaWxlKVxuICAgIGlmIChwdWJsaXNoRmlsZS5jb250ZW50VHlwZSA9PT0gJ2FwcGxpY2F0aW9uL3ppcCcpIHtcbiAgICAgIGNvbnN0IGZpbGVTaXplID0gKGF3YWl0IGZzLnN0YXQocHVibGlzaEZpbGUucGFja2FnZWRQYXRoKSkuc2l6ZTtcbiAgICAgIGlmIChmaWxlU2l6ZSA8PSBFTVBUWV9aSVBfRklMRV9TSVpFKSB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBbXG4gICAgICAgICAgJ/CfmqggV0FSTklORzogRU1QVFkgWklQIEZJTEUg8J+aqCcsXG4gICAgICAgICAgJycsXG4gICAgICAgICAgJ1ppcHBpbmcgdGhpcyBhc3NldCBwcm9kdWNlZCBhbiBlbXB0eSB6aXAgZmlsZS4gV2UgZG8gbm90IGtub3cgdGhlIHJvb3QgY2F1c2UgZm9yIHRoaXMgeWV0LCBhbmQgd2UgbmVlZCB5b3VyIGhlbHAgdHJhY2tpbmcgaXQgZG93bi4nLFxuICAgICAgICAgICcnLFxuICAgICAgICAgICdQbGVhc2UgdmlzaXQgaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2lzc3Vlcy8xODQ1OSBhbmQgdGVsbCB1czonLFxuICAgICAgICAgICdZb3VyIE9TIHZlcnNpb24sIE5vZGVqcyB2ZXJzaW9uLCBDTEkgdmVyc2lvbiwgcGFja2FnZSBtYW5hZ2VyLCB3aGF0IHRoZSBhc3NldCBpcyBzdXBwb3NlZCB0byBjb250YWluLCB3aGV0aGVyJyxcbiAgICAgICAgICAnb3Igbm90IHRoaXMgZXJyb3IgaXMgcmVwcm9kdWNpYmxlLCB3aGF0IGZpbGVzIGFyZSBpbiB5b3VyIGNkay5vdXQgZGlyZWN0b3J5LCBpZiB5b3UgcmVjZW50bHkgY2hhbmdlZCBhbnl0aGluZywnLFxuICAgICAgICAgICdhbmQgYW55dGhpbmcgZWxzZSB5b3UgdGhpbmsgbWlnaHQgYmUgcmVsZXZhbnQuJyxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICAnVGhlIGRlcGxveW1lbnQgd2lsbCBjb250aW51ZSwgYnV0IGl0IG1heSBmYWlsLiBZb3UgY2FuIHRyeSByZW1vdmluZyB0aGUgY2RrLm91dCBkaXJlY3RvcnkgYW5kIHJ1bm5pbmcgdGhlIGNvbW1hbmQnLFxuICAgICAgICAgICdhZ2FpbjsgbGV0IHVzIGtub3cgaWYgdGhhdCByZXNvbHZlcyBpdC4nLFxuICAgICAgICAgICcnLFxuICAgICAgICAgICdJZiB5b3UgbWVhbnQgdG8gcHJvZHVjZSBhbiBlbXB0eSBhc3NldCBmaWxlIG9uIHB1cnBvc2UsIHlvdSBjYW4gYWRkIGFuIGVtcHR5IGRvdGZpbGUgdG8gdGhlIGFzc2V0IGZvciBub3cnLFxuICAgICAgICAgICd0byBkaXNhYmxlIHRoaXMgbm90aWNlLicsXG4gICAgICAgIF07XG5cbiAgICAgICAgZm9yIChjb25zdCBsaW5lIG9mIG1lc3NhZ2UpIHtcbiAgICAgICAgICB0aGlzLmhvc3QuZW1pdE1lc3NhZ2UoRXZlbnRUeXBlLkZBSUwsIGxpbmUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5ob3N0LmVtaXRNZXNzYWdlKEV2ZW50VHlwZS5VUExPQUQsIGBVcGxvYWQgJHtzM1VybH1gKTtcblxuICAgIGNvbnN0IHBhcmFtcyA9IE9iamVjdC5hc3NpZ24oe30sIHtcbiAgICAgIEJ1Y2tldDogZGVzdGluYXRpb24uYnVja2V0TmFtZSxcbiAgICAgIEtleTogZGVzdGluYXRpb24ub2JqZWN0S2V5LFxuICAgICAgQm9keTogY3JlYXRlUmVhZFN0cmVhbShwdWJsaXNoRmlsZS5wYWNrYWdlZFBhdGgpLFxuICAgICAgQ29udGVudFR5cGU6IHB1Ymxpc2hGaWxlLmNvbnRlbnRUeXBlLFxuICAgIH0sXG4gICAgcGFyYW1zRW5jcnlwdGlvbik7XG5cbiAgICBhd2FpdCBzMy51cGxvYWQocGFyYW1zKS5wcm9taXNlKCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHBhY2thZ2VGaWxlKHNvdXJjZTogRmlsZVNvdXJjZSk6IFByb21pc2U8UGFja2FnZWRGaWxlQXNzZXQ+IHtcbiAgICBpZiAoIXNvdXJjZS5wYXRoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCdwYXRoJyBpcyBleHBlY3RlZCBpbiB0aGUgRmlsZSBhc3NldCBzb3VyY2UsIGdvdDogJHtKU09OLnN0cmluZ2lmeShzb3VyY2UpfWApO1xuICAgIH1cblxuICAgIGNvbnN0IGZ1bGxQYXRoID0gcGF0aC5yZXNvbHZlKHRoaXMud29ya0Rpciwgc291cmNlLnBhdGgpO1xuXG4gICAgaWYgKHNvdXJjZS5wYWNrYWdpbmcgPT09IEZpbGVBc3NldFBhY2thZ2luZy5aSVBfRElSRUNUT1JZKSB7XG4gICAgICBjb25zdCBjb250ZW50VHlwZSA9ICdhcHBsaWNhdGlvbi96aXAnO1xuXG4gICAgICBhd2FpdCBmcy5ta2Rpcih0aGlzLmZpbGVDYWNoZVJvb3QsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgICAgY29uc3QgcGFja2FnZWRQYXRoID0gcGF0aC5qb2luKHRoaXMuZmlsZUNhY2hlUm9vdCwgYCR7dGhpcy5hc3NldC5pZC5hc3NldElkfS56aXBgKTtcblxuICAgICAgaWYgKGF3YWl0IHBhdGhFeGlzdHMocGFja2FnZWRQYXRoKSkge1xuICAgICAgICB0aGlzLmhvc3QuZW1pdE1lc3NhZ2UoRXZlbnRUeXBlLkNBQ0hFRCwgYEZyb20gY2FjaGUgJHtwYWNrYWdlZFBhdGh9YCk7XG4gICAgICAgIHJldHVybiB7IHBhY2thZ2VkUGF0aCwgY29udGVudFR5cGUgfTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5ob3N0LmVtaXRNZXNzYWdlKEV2ZW50VHlwZS5CVUlMRCwgYFppcCAke2Z1bGxQYXRofSAtPiAke3BhY2thZ2VkUGF0aH1gKTtcbiAgICAgIGF3YWl0IHppcERpcmVjdG9yeShmdWxsUGF0aCwgcGFja2FnZWRQYXRoKTtcbiAgICAgIHJldHVybiB7IHBhY2thZ2VkUGF0aCwgY29udGVudFR5cGUgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgY29udGVudFR5cGUgPSBtaW1lLmdldFR5cGUoZnVsbFBhdGgpID8/ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nO1xuICAgICAgcmV0dXJuIHsgcGFja2FnZWRQYXRoOiBmdWxsUGF0aCwgY29udGVudFR5cGUgfTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGV4dGVybmFsUGFja2FnZUZpbGUoZXhlY3V0YWJsZTogc3RyaW5nW10pOiBQcm9taXNlPFBhY2thZ2VkRmlsZUFzc2V0PiB7XG4gICAgdGhpcy5ob3N0LmVtaXRNZXNzYWdlKEV2ZW50VHlwZS5CVUlMRCwgYEJ1aWxkaW5nIGFzc2V0IHNvdXJjZSB1c2luZyBjb21tYW5kOiAnJHtleGVjdXRhYmxlfSdgKTtcblxuICAgIHJldHVybiB7XG4gICAgICBwYWNrYWdlZFBhdGg6IChhd2FpdCBzaGVsbChleGVjdXRhYmxlLCB7IHF1aWV0OiB0cnVlIH0pKS50cmltKCksXG4gICAgICBjb250ZW50VHlwZTogJ2FwcGxpY2F0aW9uL3ppcCcsXG4gICAgfTtcbiAgfVxufVxuXG5lbnVtIEJ1Y2tldE93bmVyc2hpcCB7XG4gIERPRVNfTk9UX0VYSVNULFxuICBNSU5FLFxuICBTT01FT05FX0VMU0VTX09SX05PX0FDQ0VTU1xufVxuXG50eXBlIEJ1Y2tldEVuY3J5cHRpb24gPVxuICB8IHsgcmVhZG9ubHkgdHlwZTogJ25vX2VuY3J5cHRpb24nIH1cbiAgfCB7IHJlYWRvbmx5IHR5cGU6ICdhZXMyNTYnIH1cbiAgfCB7IHJlYWRvbmx5IHR5cGU6ICdrbXMnOyByZWFkb25seSBrbXNLZXlJZD86IHN0cmluZyB9XG4gIHwgeyByZWFkb25seSB0eXBlOiAnYWNjZXNzX2RlbmllZCcgfVxuICB8IHsgcmVhZG9ubHkgdHlwZTogJ2RvZXNfbm90X2V4aXN0JyB9XG4gIDtcblxuYXN5bmMgZnVuY3Rpb24gb2JqZWN0RXhpc3RzKHMzOiBBV1MuUzMsIGJ1Y2tldDogc3RyaW5nLCBrZXk6IHN0cmluZykge1xuICAvKlxuICAgKiBUaGUgb2JqZWN0IGV4aXN0ZW5jZSBjaGVjayBoZXJlIHJlZnJhaW5zIGZyb20gdXNpbmcgdGhlIGBoZWFkT2JqZWN0YCBvcGVyYXRpb24gYmVjYXVzZSB0aGlzXG4gICAqIHdvdWxkIGNyZWF0ZSBhIG5lZ2F0aXZlIGNhY2hlIGVudHJ5LCBtYWtpbmcgR0VULWFmdGVyLVBVVCBldmVudHVhbGx5IGNvbnNpc3RlbnQuIFRoaXMgaGFzIGJlZW5cbiAgICogb2JzZXJ2ZWQgdG8gcmVzdWx0IGluIENsb3VkRm9ybWF0aW9uIGlzc3VpbmcgXCJWYWxpZGF0aW9uRXJyb3I6IFMzIGVycm9yOiBBY2Nlc3MgRGVuaWVkXCIsIGZvclxuICAgKiBleGFtcGxlIGluIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvNjQzMC5cbiAgICpcbiAgICogVG8gcHJldmVudCB0aGlzLCB3ZSBhcmUgaW5zdGVhZCB1c2luZyB0aGUgbGlzdE9iamVjdHNWMiBjYWxsLCB1c2luZyB0aGUgbG9va2VkIHVwIGtleSBhcyB0aGVcbiAgICogcHJlZml4LCBhbmQgbGltaXRpbmcgcmVzdWx0cyB0byAxLiBTaW5jZSB0aGUgbGlzdCBvcGVyYXRpb24gcmV0dXJucyBrZXlzIG9yZGVyZWQgYnkgYmluYXJ5XG4gICAqIFVURi04IHJlcHJlc2VudGF0aW9uLCB0aGUga2V5IHdlIGFyZSBsb29raW5nIGZvciBpcyBndWFyYW50ZWVkIHRvIGFsd2F5cyBiZSB0aGUgZmlyc3QgbWF0Y2hcbiAgICogcmV0dXJuZWQgaWYgaXQgZXhpc3RzLlxuICAgKlxuICAgKiBJZiB0aGUgZmlsZSBpcyB0b28gc21hbGwsIHdlIGRpc2NvdW50IGl0IGFzIGEgY2FjaGUgaGl0LiBUaGVyZSBpcyBhbiBpc3N1ZVxuICAgKiBzb21ld2hlcmUgdGhhdCBzb21ldGltZXMgcHJvZHVjZXMgZW1wdHkgemlwIGZpbGVzLCBhbmQgd2Ugd291bGQgb3RoZXJ3aXNlXG4gICAqIG5ldmVyIHJldHJ5IGJ1aWxkaW5nIHRob3NlIGFzc2V0cyB3aXRob3V0IHVzZXJzIGhhdmluZyB0byBtYW51YWxseSBjbGVhclxuICAgKiB0aGVpciBidWNrZXQsIHdoaWNoIGlzIGEgYmFkIGV4cGVyaWVuY2UuXG4gICAqL1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHMzLmxpc3RPYmplY3RzVjIoeyBCdWNrZXQ6IGJ1Y2tldCwgUHJlZml4OiBrZXksIE1heEtleXM6IDEgfSkucHJvbWlzZSgpO1xuICByZXR1cm4gKFxuICAgIHJlc3BvbnNlLkNvbnRlbnRzICE9IG51bGwgJiZcbiAgICByZXNwb25zZS5Db250ZW50cy5zb21lKFxuICAgICAgKG9iamVjdCkgPT4gb2JqZWN0LktleSA9PT0ga2V5ICYmIChvYmplY3QuU2l6ZSA9PSBudWxsIHx8IG9iamVjdC5TaXplID4gRU1QVFlfWklQX0ZJTEVfU0laRSksXG4gICAgKVxuICApO1xufVxuXG5cbi8qKlxuICogQSBwYWNrYWdlZCBhc3NldCB3aGljaCBjYW4gYmUgdXBsb2FkZWQgKGVpdGhlciBhIHNpbmdsZSBmaWxlIG9yIGRpcmVjdG9yeSlcbiAqL1xuaW50ZXJmYWNlIFBhY2thZ2VkRmlsZUFzc2V0IHtcbiAgLyoqXG4gICAqIFBhdGggb2YgdGhlIGZpbGUgb3IgZGlyZWN0b3J5XG4gICAqL1xuICByZWFkb25seSBwYWNrYWdlZFBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogQ29udGVudCB0eXBlIHRvIGJlIGFkZGVkIGluIHRoZSBTMyB1cGxvYWQgYWN0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gY29udGVudCB0eXBlXG4gICAqL1xuICByZWFkb25seSBjb250ZW50VHlwZT86IHN0cmluZztcbn1cblxuXG4vKipcbiAqIENhY2hlIGZvciBidWNrZXQgaW5mb3JtYXRpb24sIHNvIHdlIGRvbid0IGhhdmUgdG8ga2VlcCBkb2luZyB0aGUgc2FtZSBjYWxscyBhZ2FpbiBhbmQgYWdhaW5cbiAqXG4gKiBXZSBzY29wZSB0aGUgbGlmZXRpbWUgb2YgdGhlIGNhY2hlIHRvIHRoZSBsaWZldGltZSBvZiB0aGUgaG9zdCwgc28gdGhhdCB3ZSBkb24ndCBoYXZlIHRvIGRvXG4gKiBhbnl0aGluZyBzcGVjaWFsIGZvciB0ZXN0cyBhbmQgeWV0IHRoZSBjYWNoZSB3aWxsIGxpdmUgZm9yIHRoZSBlbnRpcmUgbGlmZXRpbWUgb2YgdGhlIGFzc2V0XG4gKiB1cGxvYWQgc2Vzc2lvbiB3aGVuIHVzZWQgYnkgdGhlIENMSS5cbiAqL1xuY2xhc3MgQnVja2V0SW5mb3JtYXRpb24ge1xuICBwdWJsaWMgc3RhdGljIGZvcihob3N0OiBJSGFuZGxlckhvc3QpIHtcbiAgICBjb25zdCBleGlzdGluZyA9IEJ1Y2tldEluZm9ybWF0aW9uLmNhY2hlcy5nZXQoaG9zdCk7XG4gICAgaWYgKGV4aXN0aW5nKSB7IHJldHVybiBleGlzdGluZzsgfVxuXG4gICAgY29uc3QgZnJlc2ggPSBuZXcgQnVja2V0SW5mb3JtYXRpb24oKTtcbiAgICBCdWNrZXRJbmZvcm1hdGlvbi5jYWNoZXMuc2V0KGhvc3QsIGZyZXNoKTtcbiAgICByZXR1cm4gZnJlc2g7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBjYWNoZXMgPSBuZXcgV2Vha01hcDxJSGFuZGxlckhvc3QsIEJ1Y2tldEluZm9ybWF0aW9uPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgb3duZXJzaGlwcyA9IG5ldyBNYXA8c3RyaW5nLCBCdWNrZXRPd25lcnNoaXA+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZW5jcnlwdGlvbnMgPSBuZXcgTWFwPHN0cmluZywgQnVja2V0RW5jcnlwdGlvbj4oKTtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGJ1Y2tldE93bmVyc2hpcChzMzogQVdTLlMzLCBidWNrZXQ6IHN0cmluZyk6IFByb21pc2U8QnVja2V0T3duZXJzaGlwPiB7XG4gICAgcmV0dXJuIGNhY2hlZCh0aGlzLm93bmVyc2hpcHMsIGJ1Y2tldCwgKCkgPT4gdGhpcy5fYnVja2V0T3duZXJzaGlwKHMzLCBidWNrZXQpKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBidWNrZXRFbmNyeXB0aW9uKHMzOiBBV1MuUzMsIGJ1Y2tldDogc3RyaW5nKTogUHJvbWlzZTxCdWNrZXRFbmNyeXB0aW9uPiB7XG4gICAgcmV0dXJuIGNhY2hlZCh0aGlzLmVuY3J5cHRpb25zLCBidWNrZXQsICgpID0+IHRoaXMuX2J1Y2tldEVuY3J5cHRpb24oczMsIGJ1Y2tldCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfYnVja2V0T3duZXJzaGlwKHMzOiBBV1MuUzMsIGJ1Y2tldDogc3RyaW5nKTogUHJvbWlzZTxCdWNrZXRPd25lcnNoaXA+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgczMuZ2V0QnVja2V0TG9jYXRpb24oeyBCdWNrZXQ6IGJ1Y2tldCB9KS5wcm9taXNlKCk7XG4gICAgICByZXR1cm4gQnVja2V0T3duZXJzaGlwLk1JTkU7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKGUuY29kZSA9PT0gJ05vU3VjaEJ1Y2tldCcpIHsgcmV0dXJuIEJ1Y2tldE93bmVyc2hpcC5ET0VTX05PVF9FWElTVDsgfVxuICAgICAgaWYgKFsnQWNjZXNzRGVuaWVkJywgJ0FsbEFjY2Vzc0Rpc2FibGVkJ10uaW5jbHVkZXMoZS5jb2RlKSkgeyByZXR1cm4gQnVja2V0T3duZXJzaGlwLlNPTUVPTkVfRUxTRVNfT1JfTk9fQUNDRVNTOyB9XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX2J1Y2tldEVuY3J5cHRpb24oczM6IEFXUy5TMywgYnVja2V0OiBzdHJpbmcpOiBQcm9taXNlPEJ1Y2tldEVuY3J5cHRpb24+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZW5jcnlwdGlvbiA9IGF3YWl0IHMzLmdldEJ1Y2tldEVuY3J5cHRpb24oeyBCdWNrZXQ6IGJ1Y2tldCB9KS5wcm9taXNlKCk7XG4gICAgICBjb25zdCBsID0gZW5jcnlwdGlvbj8uU2VydmVyU2lkZUVuY3J5cHRpb25Db25maWd1cmF0aW9uPy5SdWxlcz8ubGVuZ3RoID8/IDA7XG4gICAgICBpZiAobCA+IDApIHtcbiAgICAgICAgY29uc3QgYXBwbHkgPSBlbmNyeXB0aW9uPy5TZXJ2ZXJTaWRlRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb24/LlJ1bGVzWzBdPy5BcHBseVNlcnZlclNpZGVFbmNyeXB0aW9uQnlEZWZhdWx0O1xuICAgICAgICBsZXQgc3NlYWxnbyA9IGFwcGx5Py5TU0VBbGdvcml0aG07XG4gICAgICAgIGlmIChzc2VhbGdvID09PSAnQUVTMjU2JykgcmV0dXJuIHsgdHlwZTogJ2FlczI1NicgfTtcbiAgICAgICAgaWYgKHNzZWFsZ28gPT09ICdhd3M6a21zJykgcmV0dXJuIHsgdHlwZTogJ2ttcycsIGttc0tleUlkOiBhcHBseT8uS01TTWFzdGVyS2V5SUQgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7IHR5cGU6ICdub19lbmNyeXB0aW9uJyB9O1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmIChlLmNvZGUgPT09ICdOb1N1Y2hCdWNrZXQnKSB7XG4gICAgICAgIHJldHVybiB7IHR5cGU6ICdkb2VzX25vdF9leGlzdCcgfTtcbiAgICAgIH1cbiAgICAgIGlmIChlLmNvZGUgPT09ICdTZXJ2ZXJTaWRlRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb25Ob3RGb3VuZEVycm9yJykge1xuICAgICAgICByZXR1cm4geyB0eXBlOiAnbm9fZW5jcnlwdGlvbicgfTtcbiAgICAgIH1cblxuICAgICAgaWYgKFsnQWNjZXNzRGVuaWVkJywgJ0FsbEFjY2Vzc0Rpc2FibGVkJ10uaW5jbHVkZXMoZS5jb2RlKSkge1xuICAgICAgICByZXR1cm4geyB0eXBlOiAnYWNjZXNzX2RlbmllZCcgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7IHR5cGU6ICdub19lbmNyeXB0aW9uJyB9O1xuICAgIH1cbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBjYWNoZWQ8QSwgQj4oY2FjaGU6IE1hcDxBLCBCPiwga2V5OiBBLCBmYWN0b3J5OiAoeDogQSkgPT4gUHJvbWlzZTxCPik6IFByb21pc2U8Qj4ge1xuICBpZiAoY2FjaGUuaGFzKGtleSkpIHtcbiAgICByZXR1cm4gY2FjaGUuZ2V0KGtleSkhO1xuICB9XG5cbiAgY29uc3QgZnJlc2ggPSBhd2FpdCBmYWN0b3J5KGtleSk7XG4gIGNhY2hlLnNldChrZXksIGZyZXNoKTtcbiAgcmV0dXJuIGZyZXNoO1xufSJdfQ==
|
|
251
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmaWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQkFBc0Q7QUFDdEQsNkJBQTZCO0FBQzdCLDBFQUFnRjtBQUNoRiw2QkFBNkI7QUFFN0IsNkNBQTJDO0FBQzNDLHdDQUEwQztBQUUxQywwQ0FBeUM7QUFDekMsa0RBQXlEO0FBQ3pELG9DQUFpQztBQUVqQzs7OztHQUlHO0FBQ0gsTUFBTSxtQkFBbUIsR0FBRyxFQUFFLENBQUM7QUFFL0IsTUFBYSxnQkFBZ0I7SUFHM0IsWUFDbUIsT0FBZSxFQUNmLEtBQXdCLEVBQ3hCLElBQWtCO1FBRmxCLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUN4QixTQUFJLEdBQUosSUFBSSxDQUFjO1FBQ25DLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVNLEtBQUssQ0FBQyxLQUFLLEtBQW1CLENBQUM7SUFFL0IsS0FBSyxDQUFDLE9BQU87UUFDbEIsTUFBTSxXQUFXLEdBQUcsTUFBTSxxQ0FBc0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hGLE1BQU0sS0FBSyxHQUFHLFFBQVEsV0FBVyxDQUFDLFVBQVUsSUFBSSxXQUFXLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDeEUsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsb0JBQVMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBRXpELE1BQU0sVUFBVSxHQUFHLGlCQUFpQixDQUFDLEdB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Q1YsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLGNBQWMsRUFBRTtnQkFDN0IsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO2FBQ25DO1lBQ0QsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLGdEQUFnRCxFQUFFO2dCQUMvRCxPQUFPLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxDQUFDO2FBQ2xDO1lBRUQsSUFBSSxDQUFDLGNBQWMsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQzFELE9BQU8sRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLENBQUM7YUFDbEM7WUFDRCxPQUFPLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQzs7QUFuRHVCLHdCQUFNLEdBQUcsSUFBSSxPQUFPLEVBQW1DLENBQUM7QUFzRGxGLEtBQUssVUFBVSxNQUFNLENBQU8sS0FBZ0IsRUFBRSxHQUFNLEVBQUUsT0FBNkI7SUFDakYsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ2xCLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUUsQ0FBQztLQUN4QjtJQUVELE1BQU0sS0FBSyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RCLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZVJlYWRTdHJlYW0sIHByb21pc2VzIGFzIGZzIH0gZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IEZpbGVBc3NldFBhY2thZ2luZywgRmlsZVNvdXJjZSB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQgKiBhcyBtaW1lIGZyb20gJ21pbWUnO1xuaW1wb3J0IHsgRmlsZU1hbmlmZXN0RW50cnkgfSBmcm9tICcuLi8uLi9hc3NldC1tYW5pZmVzdCc7XG5pbXBvcnQgeyBFdmVudFR5cGUgfSBmcm9tICcuLi8uLi9wcm9ncmVzcyc7XG5pbXBvcnQgeyB6aXBEaXJlY3RvcnkgfSBmcm9tICcuLi9hcmNoaXZlJztcbmltcG9ydCB7IElBc3NldEhhbmRsZXIsIElIYW5kbGVySG9zdCB9IGZyb20gJy4uL2Fzc2V0LWhhbmRsZXInO1xuaW1wb3J0IHsgcGF0aEV4aXN0cyB9IGZyb20gJy4uL2ZzLWV4dHJhJztcbmltcG9ydCB7IHJlcGxhY2VBd3NQbGFjZWhvbGRlcnMgfSBmcm9tICcuLi9wbGFjZWhvbGRlcnMnO1xuaW1wb3J0IHsgc2hlbGwgfSBmcm9tICcuLi9zaGVsbCc7XG5cbi8qKlxuICogVGhlIHNpemUgb2YgYW4gZW1wdHkgemlwIGZpbGUgaXMgMjIgYnl0ZXNcbiAqXG4gKiBSZWY6IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1pJUF8oZmlsZV9mb3JtYXQpXG4gKi9cbmNvbnN0IEVNUFRZX1pJUF9GSUxFX1NJWkUgPSAyMjtcblxuZXhwb3J0IGNsYXNzIEZpbGVBc3NldEhhbmRsZXIgaW1wbGVtZW50cyBJQXNzZXRIYW5kbGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBmaWxlQ2FjaGVSb290OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSB3b3JrRGlyOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhc3NldDogRmlsZU1hbmlmZXN0RW50cnksXG4gICAgcHJpdmF0ZSByZWFkb25seSBob3N0OiBJSGFuZGxlckhvc3QpIHtcbiAgICB0aGlzLmZpbGVDYWNoZVJvb3QgPSBwYXRoLmpvaW4od29ya0RpciwgJy5jYWNoZScpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGJ1aWxkKCk6IFByb21pc2U8dm9pZD4ge31cblxuICBwdWJsaWMgYXN5bmMgcHVibGlzaCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBkZXN0aW5hdGlvbiA9IGF3YWl0IHJlcGxhY2VBd3NQbGFjZWhvbGRlcnModGhpcy5hc3NldC5kZXN0aW5hdGlvbiwgdGhpcy5ob3N0LmF3cyk7XG4gICAgY29uc3QgczNVcmwgPSBgczM6Ly8ke2Rlc3RpbmF0aW9uLmJ1Y2tldE5hbWV9LyR7ZGVzdGluYXRpb24ub2JqZWN0S2V5fWA7XG4gICAgY29uc3QgczMgPSBhd2FpdCB0aGlzLmhvc3QuYXdzLnMzQ2xpZW50KGRlc3RpbmF0aW9uKTtcbiAgICB0aGlzLmhvc3QuZW1pdE1lc3NhZ2UoRXZlbnRUeXBlLkNIRUNLLCBgQ2hlY2sgJHtzM1VybH1gKTtcblxuICAgIGNvbnN0IGJ1Y2tldEluZm8gPSBCdWNrZXRJbmZvcm1hdGlvbi5mb3IodGhpcy5ob3N0KTtcblxuICAgIC8vIEEgdGh1bmsgZm9yIGRlc2NyaWJpbmcgdGhlIGN1cnJlbnQgYWNjb3VudC4gVXNlZCB3aGVuIHdlIG5lZWQgdG8gZm9ybWF0IGFuIGVycm9yXG4gICAgLy8gbWVzc2FnZSwgbm90IGluIHRoZSBzdWNjZXNzIGNhc2UuXG4gICAgY29uc3QgYWNjb3VudCA9IGFzeW5jICgpID0+IChhd2FpdCB0aGlzLmhvc3QuYXdzLmRpc2NvdmVyVGFyZ2V0QWNjb3VudChkZXN0aW5hdGlvbikpPy5hY2NvdW50SWQ7XG4gICAgc3dpdGNoIChhd2FpdCBidWNrZXRJbmZvLmJ1Y2tldE93bmVyc2hpcChzMywgZGVzdGluYXRpb24uYnVja2V0TmFtZSkpIHtcbiAgICAgIGNhc2UgQnVja2V0T3duZXJzaGlwLk1JTkU6XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBCdWNrZXRPd25lcnNoaXAuRE9FU19OT1RfRVhJU1Q6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gYnVja2V0IG5hbWVkICcke2Rlc3RpbmF0aW9uLmJ1Y2tldE5hbWV9Jy4gSXMgYWNjb3VudCAke2F3YWl0IGFjY291bnQoKX0gYm9vdHN0cmFwcGVkP2ApO1xuICAgICAgY2FzZSBCdWNrZXRPd25lcnNoaXAuU09NRU9ORV9FTFNFU19PUl9OT19BQ0NFU1M6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQnVja2V0IG5hbWVkICcke2Rlc3RpbmF0aW9uLmJ1Y2tldE5hbWV9JyBleGlzdHMsIGJ1dCBub3QgaW4gYWNjb3VudCAke2F3YWl0IGFjY291bnQoKX0uIFdyb25nIGFjY291bnQ/YCk7XG4gICAgfVxuXG4gICAgaWYgKGF3YWl0IG9iamVjdEV4aXN0cyhzMywgZGVzdGluYXRpb24uYnVja2V0TmFtZSwgZGVzdGluYXRpb24ub2JqZWN0S2V5KSkge1xuICAgICAgdGhpcy5ob3N0LmVtaXRNZXNzYWdlKEV2ZW50VHlwZS5GT1VORCwgYEZvdW5kICR7czNVcmx9YCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gSWRlbnRpZnkgdGhlIHRoZSBidWNrZXQgZW5jcnlwdGlvbiB0eXBlIHRvIHNldCB0aGUgaGVhZGVyIG9uIHVwbG9hZFxuICAgIC8vIHJlcXVpcmVkIGZvciBTQ1AgcnVsZXMgZGVueWluZyB1cGxvYWRzIHdpdGhvdXQgZW5jcnlwdGlvbiBoZWFkZXJcbiAgICBsZXQgcGFyYW1zRW5jcnlwdGlvbjoge1tpbmRleDogc3RyaW5nXTphbnl9PSB7fTtcbiAgICBjb25zdCBlbmNyeXB0aW9uMiA9IGF3YWl0IGJ1Y2tldEluZm8uYnVja2V0RW5jcnlwdGlvbihzMywgZGVzdGluYXRpb24uYnVja2V0TmFtZSk7XG4gICAgc3dpdGNoIChlbmNyeXB0aW9uMi50eXBlKSB7XG4gICAgICBjYXNlICdub19lbmNyeXB0aW9uJzpcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdhZXMyNTYnOlxuICAgICAgICBwYXJhbXNFbmNyeXB0aW9uID0geyBTZXJ2ZXJTaWRlRW5jcnlwdGlvbjogJ0FFUzI1NicgfTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdrbXMnOlxuICAgICAgICAvLyBXZSBtdXN0IGluY2x1ZGUgdGhlIGtleSBJRCBvdGhlcndpc2UgUzMgd2lsbCBlbmNyeXB0IHdpdGggdGhlIGRlZmF1bHQga2V5XG4gICAgICAgIHBhcmFtc0VuY3J5cHRpb24gPSB7XG4gICAgICAgICAgU2VydmVyU2lkZUVuY3J5cHRpb246ICdhd3M6a21zJyxcbiAgICAgICAgICBTU0VLTVNLZXlJZDogZW5jcnlwdGlvbjIua21zS2V5SWQsXG4gICAgICAgIH07XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZG9lc19ub3RfZXhpc3QnOlxuICAgICAgICB0aGlzLmhvc3QuZW1pdE1lc3NhZ2UoRXZlbnRUeXBlLkRFQlVHLCBgTm8gYnVja2V0IG5hbWVkICcke2Rlc3RpbmF0aW9uLmJ1Y2tldE5hbWV9Jy4gSXMgYWNjb3VudCAke2F3YWl0IGFjY291bnQoKX0gYm9vdHN0cmFwcGVkP2ApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2FjY2Vzc19kZW5pZWQnOlxuICAgICAgICB0aGlzLmhvc3QuZW1pdE1lc3NhZ2UoRXZlbnRUeXBlLkRFQlVHLCBgQ291bGQgbm90IHJlYWQgZW5jcnlwdGlvbiBzZXR0aW5ncyBvZiBidWNrZXQgJyR7ZGVzdGluYXRpb24uYnVja2V0TmFtZX0nOiB1cGxvYWRpbmcgd2l0aCBkZWZhdWx0IHNldHRpbmdzIChcImNkayBib290c3RyYXBcIiB0byB2ZXJzaW9uIDkgaWYgeW91ciBvcmdhbml6YXRpb24ncyBwb2xpY2llcyBwcmV2ZW50IGEgc3VjY2Vzc2Z1bCB1cGxvYWQgb3IgdG8gZ2V0IHJpZCBvZiB0aGlzIG1lc3NhZ2UpLmApO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5ob3N0LmFib3J0ZWQpIHsgcmV0dXJuOyB9XG4gICAgY29uc3QgcHVibGlzaEZpbGUgPSB0aGlzLmFzc2V0LnNvdXJjZS5leGVjdXRhYmxlID9cbiAgICAgIGF3YWl0IHRoaXMuZXh0ZXJuYWxQYWNrYWdlRmlsZSh0aGlzLmFzc2V0LnNvdXJjZS5leGVjdXRhYmxlKSA6IGF3YWl0IHRoaXMucGFja2FnZUZpbGUodGhpcy5hc3NldC5zb3VyY2UpO1xuXG4gICAgLy8gQWRkIGEgdmFsaWRhdGlvbiB0byBjYXRjaCB0aGUgY2FzZXMgd2hlcmUgd2UncmUgYWNjaWRlbnRhbGx5IHByb2R1Y2luZyBhbiBlbXB0eSBaSVAgZmlsZSAob3Igd29yc2UsXG4gICAgLy8gYW4gZW1wdHkgZmlsZSlcbiAgICBpZiAocHVibGlzaEZpbGUuY29udGVudFR5cGUgPT09ICdhcHBsaWNhdGlvbi96aXAnKSB7XG4gICAgICBjb25zdCBmaWxlU2l6ZSA9IChhd2FpdCBmcy5zdGF0KHB1Ymxpc2hGaWxlLnBhY2thZ2VkUGF0aCkpLnNpemU7XG4gICAgICBpZiAoZmlsZVNpemUgPD0gRU1QVFlfWklQX0ZJTEVfU0laRSkge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gW1xuICAgICAgICAgICfwn5qoIFdBUk5JTkc6IEVNUFRZIFpJUCBGSUxFIPCfmqgnLFxuICAgICAgICAgICcnLFxuICAgICAgICAgICdaaXBwaW5nIHRoaXMgYXNzZXQgcHJvZHVjZWQgYW4gZW1wdHkgemlwIGZpbGUuIFdlIGRvIG5vdCBrbm93IHRoZSByb290IGNhdXNlIGZvciB0aGlzIHlldCwgYW5kIHdlIG5lZWQgeW91ciBoZWxwIHRyYWNraW5nIGl0IGRvd24uJyxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICAnUGxlYXNlIHZpc2l0IGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvMTg0NTkgYW5kIHRlbGwgdXM6JyxcbiAgICAgICAgICAnWW91ciBPUyB2ZXJzaW9uLCBOb2RlanMgdmVyc2lvbiwgQ0xJIHZlcnNpb24sIHBhY2thZ2UgbWFuYWdlciwgd2hhdCB0aGUgYXNzZXQgaXMgc3VwcG9zZWQgdG8gY29udGFpbiwgd2hldGhlcicsXG4gICAgICAgICAgJ29yIG5vdCB0aGlzIGVycm9yIGlzIHJlcHJvZHVjaWJsZSwgd2hhdCBmaWxlcyBhcmUgaW4geW91ciBjZGsub3V0IGRpcmVjdG9yeSwgaWYgeW91IHJlY2VudGx5IGNoYW5nZWQgYW55dGhpbmcsJyxcbiAgICAgICAgICAnYW5kIGFueXRoaW5nIGVsc2UgeW91IHRoaW5rIG1pZ2h0IGJlIHJlbGV2YW50LicsXG4gICAgICAgICAgJycsXG4gICAgICAgICAgJ1RoZSBkZXBsb3ltZW50IHdpbGwgY29udGludWUsIGJ1dCBpdCBtYXkgZmFpbC4gWW91IGNhbiB0cnkgcmVtb3ZpbmcgdGhlIGNkay5vdXQgZGlyZWN0b3J5IGFuZCBydW5uaW5nIHRoZSBjb21tYW5kJyxcbiAgICAgICAgICAnYWdhaW47IGxldCB1cyBrbm93IGlmIHRoYXQgcmVzb2x2ZXMgaXQuJyxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICAnSWYgeW91IG1lYW50IHRvIHByb2R1Y2UgYW4gZW1wdHkgYXNzZXQgZmlsZSBvbiBwdXJwb3NlLCB5b3UgY2FuIGFkZCBhbiBlbXB0eSBkb3RmaWxlIHRvIHRoZSBhc3NldCBmb3Igbm93JyxcbiAgICAgICAgICAndG8gZGlzYWJsZSB0aGlzIG5vdGljZS4nLFxuICAgICAgICBdO1xuXG4gICAgICAgIGZvciAoY29uc3QgbGluZSBvZiBtZXNzYWdlKSB7XG4gICAgICAgICAgdGhpcy5ob3N0LmVtaXRNZXNzYWdlKEV2ZW50VHlwZS5GQUlMLCBsaW5lKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuVVBMT0FELCBgVXBsb2FkICR7czNVcmx9YCk7XG5cbiAgICBjb25zdCBwYXJhbXMgPSBPYmplY3QuYXNzaWduKHt9LCB7XG4gICAgICBCdWNrZXQ6IGRlc3RpbmF0aW9uLmJ1Y2tldE5hbWUsXG4gICAgICBLZXk6IGRlc3RpbmF0aW9uLm9iamVjdEtleSxcbiAgICAgIEJvZHk6IGNyZWF0ZVJlYWRTdHJlYW0ocHVibGlzaEZpbGUucGFja2FnZWRQYXRoKSxcbiAgICAgIENvbnRlbnRUeXBlOiBwdWJsaXNoRmlsZS5jb250ZW50VHlwZSxcbiAgICB9LFxuICAgIHBhcmFtc0VuY3J5cHRpb24pO1xuXG4gICAgYXdhaXQgczMudXBsb2FkKHBhcmFtcykucHJvbWlzZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBwYWNrYWdlRmlsZShzb3VyY2U6IEZpbGVTb3VyY2UpOiBQcm9taXNlPFBhY2thZ2VkRmlsZUFzc2V0PiB7XG4gICAgaWYgKCFzb3VyY2UucGF0aCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAncGF0aCcgaXMgZXhwZWN0ZWQgaW4gdGhlIEZpbGUgYXNzZXQgc291cmNlLCBnb3Q6ICR7SlNPTi5zdHJpbmdpZnkoc291cmNlKX1gKTtcbiAgICB9XG5cbiAgICBjb25zdCBmdWxsUGF0aCA9IHBhdGgucmVzb2x2ZSh0aGlzLndvcmtEaXIsIHNvdXJjZS5wYXRoKTtcblxuICAgIGlmIChzb3VyY2UucGFja2FnaW5nID09PSBGaWxlQXNzZXRQYWNrYWdpbmcuWklQX0RJUkVDVE9SWSkge1xuICAgICAgY29uc3QgY29udGVudFR5cGUgPSAnYXBwbGljYXRpb24vemlwJztcblxuICAgICAgYXdhaXQgZnMubWtkaXIodGhpcy5maWxlQ2FjaGVSb290LCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgIGNvbnN0IHBhY2thZ2VkUGF0aCA9IHBhdGguam9pbih0aGlzLmZpbGVDYWNoZVJvb3QsIGAke3RoaXMuYXNzZXQuaWQuYXNzZXRJZH0uemlwYCk7XG5cbiAgICAgIGlmIChhd2FpdCBwYXRoRXhpc3RzKHBhY2thZ2VkUGF0aCkpIHtcbiAgICAgICAgdGhpcy5ob3N0LmVtaXRNZXNzYWdlKEV2ZW50VHlwZS5DQUNIRUQsIGBGcm9tIGNhY2hlICR7cGFja2FnZWRQYXRofWApO1xuICAgICAgICByZXR1cm4geyBwYWNrYWdlZFBhdGgsIGNvbnRlbnRUeXBlIH07XG4gICAgICB9XG5cbiAgICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuQlVJTEQsIGBaaXAgJHtmdWxsUGF0aH0gLT4gJHtwYWNrYWdlZFBhdGh9YCk7XG4gICAgICBhd2FpdCB6aXBEaXJlY3RvcnkoZnVsbFBhdGgsIHBhY2thZ2VkUGF0aCk7XG4gICAgICByZXR1cm4geyBwYWNrYWdlZFBhdGgsIGNvbnRlbnRUeXBlIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gbWltZS5nZXRUeXBlKGZ1bGxQYXRoKSA/PyAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJztcbiAgICAgIHJldHVybiB7IHBhY2thZ2VkUGF0aDogZnVsbFBhdGgsIGNvbnRlbnRUeXBlIH07XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBleHRlcm5hbFBhY2thZ2VGaWxlKGV4ZWN1dGFibGU6IHN0cmluZ1tdKTogUHJvbWlzZTxQYWNrYWdlZEZpbGVBc3NldD4ge1xuICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuQlVJTEQsIGBCdWlsZGluZyBhc3NldCBzb3VyY2UgdXNpbmcgY29tbWFuZDogJyR7ZXhlY3V0YWJsZX0nYCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcGFja2FnZWRQYXRoOiAoYXdhaXQgc2hlbGwoZXhlY3V0YWJsZSwgeyBxdWlldDogdHJ1ZSB9KSkudHJpbSgpLFxuICAgICAgY29udGVudFR5cGU6ICdhcHBsaWNhdGlvbi96aXAnLFxuICAgIH07XG4gIH1cbn1cblxuZW51bSBCdWNrZXRPd25lcnNoaXAge1xuICBET0VTX05PVF9FWElTVCxcbiAgTUlORSxcbiAgU09NRU9ORV9FTFNFU19PUl9OT19BQ0NFU1Ncbn1cblxudHlwZSBCdWNrZXRFbmNyeXB0aW9uID1cbiAgfCB7IHJlYWRvbmx5IHR5cGU6ICdub19lbmNyeXB0aW9uJyB9XG4gIHwgeyByZWFkb25seSB0eXBlOiAnYWVzMjU2JyB9XG4gIHwgeyByZWFkb25seSB0eXBlOiAna21zJzsgcmVhZG9ubHkga21zS2V5SWQ/OiBzdHJpbmcgfVxuICB8IHsgcmVhZG9ubHkgdHlwZTogJ2FjY2Vzc19kZW5pZWQnIH1cbiAgfCB7IHJlYWRvbmx5IHR5cGU6ICdkb2VzX25vdF9leGlzdCcgfVxuICA7XG5cbmFzeW5jIGZ1bmN0aW9uIG9iamVjdEV4aXN0cyhzMzogQVdTLlMzLCBidWNrZXQ6IHN0cmluZywga2V5OiBzdHJpbmcpIHtcbiAgLypcbiAgICogVGhlIG9iamVjdCBleGlzdGVuY2UgY2hlY2sgaGVyZSByZWZyYWlucyBmcm9tIHVzaW5nIHRoZSBgaGVhZE9iamVjdGAgb3BlcmF0aW9uIGJlY2F1c2UgdGhpc1xuICAgKiB3b3VsZCBjcmVhdGUgYSBuZWdhdGl2ZSBjYWNoZSBlbnRyeSwgbWFraW5nIEdFVC1hZnRlci1QVVQgZXZlbnR1YWxseSBjb25zaXN0ZW50LiBUaGlzIGhhcyBiZWVuXG4gICAqIG9ic2VydmVkIHRvIHJlc3VsdCBpbiBDbG91ZEZvcm1hdGlvbiBpc3N1aW5nIFwiVmFsaWRhdGlvbkVycm9yOiBTMyBlcnJvcjogQWNjZXNzIERlbmllZFwiLCBmb3JcbiAgICogZXhhbXBsZSBpbiBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvaXNzdWVzLzY0MzAuXG4gICAqXG4gICAqIFRvIHByZXZlbnQgdGhpcywgd2UgYXJlIGluc3RlYWQgdXNpbmcgdGhlIGxpc3RPYmplY3RzVjIgY2FsbCwgdXNpbmcgdGhlIGxvb2tlZCB1cCBrZXkgYXMgdGhlXG4gICAqIHByZWZpeCwgYW5kIGxpbWl0aW5nIHJlc3VsdHMgdG8gMS4gU2luY2UgdGhlIGxpc3Qgb3BlcmF0aW9uIHJldHVybnMga2V5cyBvcmRlcmVkIGJ5IGJpbmFyeVxuICAgKiBVVEYtOCByZXByZXNlbnRhdGlvbiwgdGhlIGtleSB3ZSBhcmUgbG9va2luZyBmb3IgaXMgZ3VhcmFudGVlZCB0byBhbHdheXMgYmUgdGhlIGZpcnN0IG1hdGNoXG4gICAqIHJldHVybmVkIGlmIGl0IGV4aXN0cy5cbiAgICpcbiAgICogSWYgdGhlIGZpbGUgaXMgdG9vIHNtYWxsLCB3ZSBkaXNjb3VudCBpdCBhcyBhIGNhY2hlIGhpdC4gVGhlcmUgaXMgYW4gaXNzdWVcbiAgICogc29tZXdoZXJlIHRoYXQgc29tZXRpbWVzIHByb2R1Y2VzIGVtcHR5IHppcCBmaWxlcywgYW5kIHdlIHdvdWxkIG90aGVyd2lzZVxuICAgKiBuZXZlciByZXRyeSBidWlsZGluZyB0aG9zZSBhc3NldHMgd2l0aG91dCB1c2VycyBoYXZpbmcgdG8gbWFudWFsbHkgY2xlYXJcbiAgICogdGhlaXIgYnVja2V0LCB3aGljaCBpcyBhIGJhZCBleHBlcmllbmNlLlxuICAgKi9cbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzMy5saXN0T2JqZWN0c1YyKHsgQnVja2V0OiBidWNrZXQsIFByZWZpeDoga2V5LCBNYXhLZXlzOiAxIH0pLnByb21pc2UoKTtcbiAgcmV0dXJuIChcbiAgICByZXNwb25zZS5Db250ZW50cyAhPSBudWxsICYmXG4gICAgcmVzcG9uc2UuQ29udGVudHMuc29tZShcbiAgICAgIChvYmplY3QpID0+IG9iamVjdC5LZXkgPT09IGtleSAmJiAob2JqZWN0LlNpemUgPT0gbnVsbCB8fCBvYmplY3QuU2l6ZSA+IEVNUFRZX1pJUF9GSUxFX1NJWkUpLFxuICAgIClcbiAgKTtcbn1cblxuXG4vKipcbiAqIEEgcGFja2FnZWQgYXNzZXQgd2hpY2ggY2FuIGJlIHVwbG9hZGVkIChlaXRoZXIgYSBzaW5nbGUgZmlsZSBvciBkaXJlY3RvcnkpXG4gKi9cbmludGVyZmFjZSBQYWNrYWdlZEZpbGVBc3NldCB7XG4gIC8qKlxuICAgKiBQYXRoIG9mIHRoZSBmaWxlIG9yIGRpcmVjdG9yeVxuICAgKi9cbiAgcmVhZG9ubHkgcGFja2FnZWRQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENvbnRlbnQgdHlwZSB0byBiZSBhZGRlZCBpbiB0aGUgUzMgdXBsb2FkIGFjdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGNvbnRlbnQgdHlwZVxuICAgKi9cbiAgcmVhZG9ubHkgY29udGVudFR5cGU/OiBzdHJpbmc7XG59XG5cblxuLyoqXG4gKiBDYWNoZSBmb3IgYnVja2V0IGluZm9ybWF0aW9uLCBzbyB3ZSBkb24ndCBoYXZlIHRvIGtlZXAgZG9pbmcgdGhlIHNhbWUgY2FsbHMgYWdhaW4gYW5kIGFnYWluXG4gKlxuICogV2Ugc2NvcGUgdGhlIGxpZmV0aW1lIG9mIHRoZSBjYWNoZSB0byB0aGUgbGlmZXRpbWUgb2YgdGhlIGhvc3QsIHNvIHRoYXQgd2UgZG9uJ3QgaGF2ZSB0byBkb1xuICogYW55dGhpbmcgc3BlY2lhbCBmb3IgdGVzdHMgYW5kIHlldCB0aGUgY2FjaGUgd2lsbCBsaXZlIGZvciB0aGUgZW50aXJlIGxpZmV0aW1lIG9mIHRoZSBhc3NldFxuICogdXBsb2FkIHNlc3Npb24gd2hlbiB1c2VkIGJ5IHRoZSBDTEkuXG4gKi9cbmNsYXNzIEJ1Y2tldEluZm9ybWF0aW9uIHtcbiAgcHVibGljIHN0YXRpYyBmb3IoaG9zdDogSUhhbmRsZXJIb3N0KSB7XG4gICAgY29uc3QgZXhpc3RpbmcgPSBCdWNrZXRJbmZvcm1hdGlvbi5jYWNoZXMuZ2V0KGhvc3QpO1xuICAgIGlmIChleGlzdGluZykgeyByZXR1cm4gZXhpc3Rpbmc7IH1cblxuICAgIGNvbnN0IGZyZXNoID0gbmV3IEJ1Y2tldEluZm9ybWF0aW9uKCk7XG4gICAgQnVja2V0SW5mb3JtYXRpb24uY2FjaGVzLnNldChob3N0LCBmcmVzaCk7XG4gICAgcmV0dXJuIGZyZXNoO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgY2FjaGVzID0gbmV3IFdlYWtNYXA8SUhhbmRsZXJIb3N0LCBCdWNrZXRJbmZvcm1hdGlvbj4oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IG93bmVyc2hpcHMgPSBuZXcgTWFwPHN0cmluZywgQnVja2V0T3duZXJzaGlwPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IGVuY3J5cHRpb25zID0gbmV3IE1hcDxzdHJpbmcsIEJ1Y2tldEVuY3J5cHRpb24+KCk7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBidWNrZXRPd25lcnNoaXAoczM6IEFXUy5TMywgYnVja2V0OiBzdHJpbmcpOiBQcm9taXNlPEJ1Y2tldE93bmVyc2hpcD4ge1xuICAgIHJldHVybiBjYWNoZWQodGhpcy5vd25lcnNoaXBzLCBidWNrZXQsICgpID0+IHRoaXMuX2J1Y2tldE93bmVyc2hpcChzMywgYnVja2V0KSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgYnVja2V0RW5jcnlwdGlvbihzMzogQVdTLlMzLCBidWNrZXQ6IHN0cmluZyk6IFByb21pc2U8QnVja2V0RW5jcnlwdGlvbj4ge1xuICAgIHJldHVybiBjYWNoZWQodGhpcy5lbmNyeXB0aW9ucywgYnVja2V0LCAoKSA9PiB0aGlzLl9idWNrZXRFbmNyeXB0aW9uKHMzLCBidWNrZXQpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX2J1Y2tldE93bmVyc2hpcChzMzogQVdTLlMzLCBidWNrZXQ6IHN0cmluZyk6IFByb21pc2U8QnVja2V0T3duZXJzaGlwPiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHMzLmdldEJ1Y2tldExvY2F0aW9uKHsgQnVja2V0OiBidWNrZXQgfSkucHJvbWlzZSgpO1xuICAgICAgcmV0dXJuIEJ1Y2tldE93bmVyc2hpcC5NSU5FO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmIChlLmNvZGUgPT09ICdOb1N1Y2hCdWNrZXQnKSB7IHJldHVybiBCdWNrZXRPd25lcnNoaXAuRE9FU19OT1RfRVhJU1Q7IH1cbiAgICAgIGlmIChbJ0FjY2Vzc0RlbmllZCcsICdBbGxBY2Nlc3NEaXNhYmxlZCddLmluY2x1ZGVzKGUuY29kZSkpIHsgcmV0dXJuIEJ1Y2tldE93bmVyc2hpcC5TT01FT05FX0VMU0VTX09SX05PX0FDQ0VTUzsgfVxuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9idWNrZXRFbmNyeXB0aW9uKHMzOiBBV1MuUzMsIGJ1Y2tldDogc3RyaW5nKTogUHJvbWlzZTxCdWNrZXRFbmNyeXB0aW9uPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGVuY3J5cHRpb24gPSBhd2FpdCBzMy5nZXRCdWNrZXRFbmNyeXB0aW9uKHsgQnVja2V0OiBidWNrZXQgfSkucHJvbWlzZSgpO1xuICAgICAgY29uc3QgbCA9IGVuY3J5cHRpb24/LlNlcnZlclNpZGVFbmNyeXB0aW9uQ29uZmlndXJhdGlvbj8uUnVsZXM/Lmxlbmd0aCA/PyAwO1xuICAgICAgaWYgKGwgPiAwKSB7XG4gICAgICAgIGNvbnN0IGFwcGx5ID0gZW5jcnlwdGlvbj8uU2VydmVyU2lkZUVuY3J5cHRpb25Db25maWd1cmF0aW9uPy5SdWxlc1swXT8uQXBwbHlTZXJ2ZXJTaWRlRW5jcnlwdGlvbkJ5RGVmYXVsdDtcbiAgICAgICAgbGV0IHNzZWFsZ28gPSBhcHBseT8uU1NFQWxnb3JpdGhtO1xuICAgICAgICBpZiAoc3NlYWxnbyA9PT0gJ0FFUzI1NicpIHJldHVybiB7IHR5cGU6ICdhZXMyNTYnIH07XG4gICAgICAgIGlmIChzc2VhbGdvID09PSAnYXdzOmttcycpIHJldHVybiB7IHR5cGU6ICdrbXMnLCBrbXNLZXlJZDogYXBwbHk/LktNU01hc3RlcktleUlEIH07XG4gICAgICB9XG4gICAgICByZXR1cm4geyB0eXBlOiAnbm9fZW5jcnlwdGlvbicgfTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAoZS5jb2RlID09PSAnTm9TdWNoQnVja2V0Jykge1xuICAgICAgICByZXR1cm4geyB0eXBlOiAnZG9lc19ub3RfZXhpc3QnIH07XG4gICAgICB9XG4gICAgICBpZiAoZS5jb2RlID09PSAnU2VydmVyU2lkZUVuY3J5cHRpb25Db25maWd1cmF0aW9uTm90Rm91bmRFcnJvcicpIHtcbiAgICAgICAgcmV0dXJuIHsgdHlwZTogJ25vX2VuY3J5cHRpb24nIH07XG4gICAgICB9XG5cbiAgICAgIGlmIChbJ0FjY2Vzc0RlbmllZCcsICdBbGxBY2Nlc3NEaXNhYmxlZCddLmluY2x1ZGVzKGUuY29kZSkpIHtcbiAgICAgICAgcmV0dXJuIHsgdHlwZTogJ2FjY2Vzc19kZW5pZWQnIH07XG4gICAgICB9XG4gICAgICByZXR1cm4geyB0eXBlOiAnbm9fZW5jcnlwdGlvbicgfTtcbiAgICB9XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gY2FjaGVkPEEsIEI+KGNhY2hlOiBNYXA8QSwgQj4sIGtleTogQSwgZmFjdG9yeTogKHg6IEEpID0+IFByb21pc2U8Qj4pOiBQcm9taXNlPEI+IHtcbiAgaWYgKGNhY2hlLmhhcyhrZXkpKSB7XG4gICAgcmV0dXJuIGNhY2hlLmdldChrZXkpITtcbiAgfVxuXG4gIGNvbnN0IGZyZXNoID0gYXdhaXQgZmFjdG9yeShrZXkpO1xuICBjYWNoZS5zZXQoa2V5LCBmcmVzaCk7XG4gIHJldHVybiBmcmVzaDtcbn0iXX0=
|
package/lib/publishing.d.ts
CHANGED
|
@@ -24,6 +24,18 @@ export interface AssetPublishingOptions {
|
|
|
24
24
|
* @default false
|
|
25
25
|
*/
|
|
26
26
|
readonly publishInParallel?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Whether to build assets
|
|
29
|
+
*
|
|
30
|
+
* @default true
|
|
31
|
+
*/
|
|
32
|
+
readonly buildAssets?: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Whether to publish assets
|
|
35
|
+
*
|
|
36
|
+
* @default true
|
|
37
|
+
*/
|
|
38
|
+
readonly publishAssets?: boolean;
|
|
27
39
|
}
|
|
28
40
|
/**
|
|
29
41
|
* A failure to publish an asset
|
|
@@ -56,6 +68,11 @@ export declare class AssetPublishing implements IPublishProgress {
|
|
|
56
68
|
private aborted;
|
|
57
69
|
private readonly handlerHost;
|
|
58
70
|
private readonly publishInParallel;
|
|
71
|
+
private readonly buildAssets;
|
|
72
|
+
private readonly publishAssets;
|
|
73
|
+
private readonly startMessagePrefix;
|
|
74
|
+
private readonly successMessagePrefix;
|
|
75
|
+
private readonly errorMessagePrefix;
|
|
59
76
|
constructor(manifest: AssetManifest, options: AssetPublishingOptions);
|
|
60
77
|
/**
|
|
61
78
|
* Publish all assets from the manifest
|
package/lib/publishing.js
CHANGED
|
@@ -6,7 +6,7 @@ const handlers_1 = require("./private/handlers");
|
|
|
6
6
|
const progress_1 = require("./progress");
|
|
7
7
|
class AssetPublishing {
|
|
8
8
|
constructor(manifest, options) {
|
|
9
|
-
var _a;
|
|
9
|
+
var _a, _b, _c;
|
|
10
10
|
this.manifest = manifest;
|
|
11
11
|
this.options = options;
|
|
12
12
|
/**
|
|
@@ -19,6 +19,35 @@ class AssetPublishing {
|
|
|
19
19
|
this.assets = manifest.entries;
|
|
20
20
|
this.totalOperations = this.assets.length;
|
|
21
21
|
this.publishInParallel = (_a = options.publishInParallel) !== null && _a !== void 0 ? _a : false;
|
|
22
|
+
this.buildAssets = (_b = options.buildAssets) !== null && _b !== void 0 ? _b : true;
|
|
23
|
+
this.publishAssets = (_c = options.publishAssets) !== null && _c !== void 0 ? _c : true;
|
|
24
|
+
const getMessages = () => {
|
|
25
|
+
if (this.buildAssets && this.publishAssets) {
|
|
26
|
+
return {
|
|
27
|
+
startMessagePrefix: 'Building and publishing',
|
|
28
|
+
successMessagePrefix: 'Built and published',
|
|
29
|
+
errorMessagePrefix: 'Error building and publishing',
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
else if (this.buildAssets) {
|
|
33
|
+
return {
|
|
34
|
+
startMessagePrefix: 'Building',
|
|
35
|
+
successMessagePrefix: 'Built',
|
|
36
|
+
errorMessagePrefix: 'Error building',
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
return {
|
|
41
|
+
startMessagePrefix: 'Publishing',
|
|
42
|
+
successMessagePrefix: 'Published',
|
|
43
|
+
errorMessagePrefix: 'Error publishing',
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
const messages = getMessages();
|
|
48
|
+
this.startMessagePrefix = messages.startMessagePrefix;
|
|
49
|
+
this.successMessagePrefix = messages.successMessagePrefix;
|
|
50
|
+
this.errorMessagePrefix = messages.errorMessagePrefix;
|
|
22
51
|
const self = this;
|
|
23
52
|
this.handlerHost = {
|
|
24
53
|
aws: this.options.aws,
|
|
@@ -43,7 +72,7 @@ class AssetPublishing {
|
|
|
43
72
|
}
|
|
44
73
|
}
|
|
45
74
|
if (((_a = this.options.throwOnError) !== null && _a !== void 0 ? _a : true) && this.failures.length > 0) {
|
|
46
|
-
throw new Error(
|
|
75
|
+
throw new Error(`${this.errorMessagePrefix}: ${this.failures.map(e => e.error.message)}`);
|
|
47
76
|
}
|
|
48
77
|
}
|
|
49
78
|
/**
|
|
@@ -53,16 +82,21 @@ class AssetPublishing {
|
|
|
53
82
|
*/
|
|
54
83
|
async publishAsset(asset) {
|
|
55
84
|
try {
|
|
56
|
-
if (this.progressEvent(progress_1.EventType.START,
|
|
85
|
+
if (this.progressEvent(progress_1.EventType.START, `${this.startMessagePrefix} ${asset.id}`)) {
|
|
57
86
|
return false;
|
|
58
87
|
}
|
|
59
88
|
const handler = handlers_1.makeAssetHandler(this.manifest, asset, this.handlerHost);
|
|
60
|
-
|
|
89
|
+
if (this.buildAssets) {
|
|
90
|
+
await handler.build();
|
|
91
|
+
}
|
|
92
|
+
if (this.publishAssets) {
|
|
93
|
+
await handler.publish();
|
|
94
|
+
}
|
|
61
95
|
if (this.aborted) {
|
|
62
96
|
throw new Error('Aborted');
|
|
63
97
|
}
|
|
64
98
|
this.completedOperations++;
|
|
65
|
-
if (this.progressEvent(progress_1.EventType.SUCCESS,
|
|
99
|
+
if (this.progressEvent(progress_1.EventType.SUCCESS, `${this.successMessagePrefix} ${asset.id}`)) {
|
|
66
100
|
return false;
|
|
67
101
|
}
|
|
68
102
|
}
|
|
@@ -101,4 +135,4 @@ class AssetPublishing {
|
|
|
101
135
|
}
|
|
102
136
|
}
|
|
103
137
|
exports.AssetPublishing = AssetPublishing;
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInB1Ymxpc2hpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsNkNBQWlEO0FBQ2pELGlEQUFzRDtBQUN0RCx5Q0FBbUY7QUE2Q25GLE1BQWEsZUFBZTtJQW1CMUIsWUFBNkIsUUFBdUIsRUFBbUIsT0FBK0I7O1FBQXpFLGFBQVEsR0FBUixRQUFRLENBQWU7UUFBbUIsWUFBTyxHQUFQLE9BQU8sQ0FBd0I7UUFsQnRHOztXQUVHO1FBQ0ksWUFBTyxHQUFXLFVBQVUsQ0FBQztRQU1wQixhQUFRLEdBQUcsSUFBSSxLQUFLLEVBQWUsQ0FBQztRQUk1Qyx3QkFBbUIsR0FBVyxDQUFDLENBQUM7UUFDaEMsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUt0QixJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUM7UUFDL0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUMxQyxJQUFJLENBQUMsaUJBQWlCLFNBQUcsT0FBTyxDQUFDLGlCQUFpQixtQ0FBSSxLQUFLLENBQUM7UUFFNUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxXQUFXLEdBQUc7WUFDakIsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRztZQUNyQixJQUFJLE9BQU8sS0FBSyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMvQyxhQUFhLEVBQUUsSUFBSSxzQkFBYSxFQUFFO1NBQ25DLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsT0FBTzs7UUFDbEIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7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QWMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FBRTtRQUNqRyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztDQUNGO0FBdEdELDBDQXNHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzc2V0TWFuaWZlc3QsIElNYW5pZmVzdEVudHJ5IH0gZnJvbSAnLi9hc3NldC1tYW5pZmVzdCc7XG5pbXBvcnQgeyBJQXdzIH0gZnJvbSAnLi9hd3MnO1xuaW1wb3J0IHsgSUhhbmRsZXJIb3N0IH0gZnJvbSAnLi9wcml2YXRlL2Fzc2V0LWhhbmRsZXInO1xuaW1wb3J0IHsgRG9ja2VyRmFjdG9yeSB9IGZyb20gJy4vcHJpdmF0ZS9kb2NrZXInO1xuaW1wb3J0IHsgbWFrZUFzc2V0SGFuZGxlciB9IGZyb20gJy4vcHJpdmF0ZS9oYW5kbGVycyc7XG5pbXBvcnQgeyBFdmVudFR5cGUsIElQdWJsaXNoUHJvZ3Jlc3MsIElQdWJsaXNoUHJvZ3Jlc3NMaXN0ZW5lciB9IGZyb20gJy4vcHJvZ3Jlc3MnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFzc2V0UHVibGlzaGluZ09wdGlvbnMge1xuICAvKipcbiAgICogRW50cnkgcG9pbnQgZm9yIEFXUyBjbGllbnRcbiAgICovXG4gIHJlYWRvbmx5IGF3czogSUF3cztcblxuICAvKipcbiAgICogTGlzdGVuZXIgZm9yIHByb2dyZXNzIGV2ZW50c1xuICAgKlxuICAgKiBAZGVmYXVsdCBObyBsaXN0ZW5lclxuICAgKi9cbiAgcmVhZG9ubHkgcHJvZ3Jlc3NMaXN0ZW5lcj86IElQdWJsaXNoUHJvZ3Jlc3NMaXN0ZW5lcjtcblxuICAvKipcbiAgICogV2hldGhlciB0byB0aHJvdyBhdCB0aGUgZW5kIGlmIHRoZXJlIHdlcmUgZXJyb3JzXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHRocm93T25FcnJvcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcHVibGlzaCBpbiBwYXJhbGxlbFxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGlzaEluUGFyYWxsZWw/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEEgZmFpbHVyZSB0byBwdWJsaXNoIGFuIGFzc2V0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmFpbGVkQXNzZXQge1xuICAvKipcbiAgICogVGhlIGFzc2V0IHRoYXQgZmFpbGVkIHRvIHB1Ymxpc2hcbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0OiBJTWFuaWZlc3RFbnRyeTtcblxuICAvKipcbiAgICogVGhlIGZhaWx1cmUgdGhhdCBvY2N1cnJlZFxuICAgKi9cbiAgcmVhZG9ubHkgZXJyb3I6IEVycm9yO1xufVxuXG5leHBvcnQgY2xhc3MgQXNzZXRQdWJsaXNoaW5nIGltcGxlbWVudHMgSVB1Ymxpc2hQcm9ncmVzcyB7XG4gIC8qKlxuICAgKiBUaGUgbWVzc2FnZSBmb3IgdGhlIElQdWJsaXNoUHJvZ3Jlc3MgaW50ZXJmYWNlXG4gICAqL1xuICBwdWJsaWMgbWVzc2FnZTogc3RyaW5nID0gJ1N0YXJ0aW5nJztcblxuICAvKipcbiAgICogVGhlIGN1cnJlbnQgYXNzZXQgZm9yIHRoZSBJUHVibGlzaFByb2dyZXNzIGludGVyZmFjZVxuICAgKi9cbiAgcHVibGljIGN1cnJlbnRBc3NldD86IElNYW5pZmVzdEVudHJ5O1xuICBwdWJsaWMgcmVhZG9ubHkgZmFpbHVyZXMgPSBuZXcgQXJyYXk8RmFpbGVkQXNzZXQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXNzZXRzOiBJTWFuaWZlc3RFbnRyeVtdO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdG90YWxPcGVyYXRpb25zOiBudW1iZXI7XG4gIHByaXZhdGUgY29tcGxldGVkT3BlcmF0aW9uczogbnVtYmVyID0gMDtcbiAgcHJpdmF0ZSBhYm9ydGVkID0gZmFsc2U7XG4gIHByaXZhdGUgcmVhZG9ubHkgaGFuZGxlckhvc3Q6IElIYW5kbGVySG9zdDtcbiAgcHJpdmF0ZSByZWFkb25seSBwdWJsaXNoSW5QYXJhbGxlbDogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IG1hbmlmZXN0OiBBc3NldE1hbmlmZXN0LCBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IEFzc2V0UHVibGlzaGluZ09wdGlvbnMpIHtcbiAgICB0aGlzLmFzc2V0cyA9IG1hbmlmZXN0LmVudHJpZXM7XG4gICAgdGhpcy50b3RhbE9wZXJhdGlvbnMgPSB0aGlzLmFzc2V0cy5sZW5ndGg7XG4gICAgdGhpcy5wdWJsaXNoSW5QYXJhbGxlbCA9IG9wdGlvbnMucHVibGlzaEluUGFyYWxsZWwgPz8gZmFsc2U7XG5cbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICB0aGlzLmhhbmRsZXJIb3N0ID0ge1xuICAgICAgYXdzOiB0aGlzLm9wdGlvbnMuYXdzLFxuICAgICAgZ2V0IGFib3J0ZWQoKSB7IHJldHVybiBzZWxmLmFib3J0ZWQ7IH0sXG4gICAgICBlbWl0TWVzc2FnZSh0LCBtKSB7IHNlbGYucHJvZ3Jlc3NFdmVudCh0LCBtKTsgfSxcbiAgICAgIGRvY2tlckZhY3Rvcnk6IG5ldyBEb2NrZXJGYWN0b3J5KCksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQdWJsaXNoIGFsbCBhc3NldHMgZnJvbSB0aGUgbWFuaWZlc3RcbiAgICovXG4gIHB1YmxpYyBhc3luYyBwdWJsaXNoKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLnB1Ymxpc2hJblBhcmFsbGVsKSB7XG4gICAgICBhd2FpdCBQcm9taXNlLmFsbCh0aGlzLmFzc2V0cy5tYXAoYXN5bmMgKGFzc2V0KSA9PiB0aGlzLnB1Ymxpc2hBc3NldChhc3NldCkpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZm9yIChjb25zdCBhc3NldCBvZiB0aGlzLmFzc2V0cykge1xuICAgICAgICBpZiAoIWF3YWl0IHRoaXMucHVibGlzaEFzc2V0KGFzc2V0KSkge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCh0aGlzLm9wdGlvbnMudGhyb3dPbkVycm9yID8/IHRydWUpICYmIHRoaXMuZmFpbHVyZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBFcnJvciBwdWJsaXNoaW5nOiAke3RoaXMuZmFpbHVyZXMubWFwKGUgPT4gZS5lcnJvci5tZXNzYWdlKX1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUHVibGlzaCBhbiBhc3NldC5cbiAgICogQHBhcmFtIGFzc2V0IFRoZSBhc3NldCB0byBwdWJsaXNoXG4gICAqIEByZXR1cm5zIGZhbHNlIHdoZW4gcHVibGlzaGluZyBzaG91bGQgc3RvcFxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBwdWJsaXNoQXNzZXQoYXNzZXQ6IElNYW5pZmVzdEVudHJ5KSB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICh0aGlzLnByb2dyZXNzRXZlbnQoRXZlbnRUeXBlLlNUQVJULCBgUHVibGlzaGluZyAke2Fzc2V0LmlkfWApKSB7IHJldHVybiBmYWxzZTsgfVxuXG4gICAgICBjb25zdCBoYW5kbGVyID0gbWFrZUFzc2V0SGFuZGxlcih0aGlzLm1hbmlmZXN0LCBhc3NldCwgdGhpcy5oYW5kbGVySG9zdCk7XG4gICAgICBhd2FpdCBoYW5kbGVyLnB1Ymxpc2goKTtcblxuICAgICAgaWYgKHRoaXMuYWJvcnRlZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Fib3J0ZWQnKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5jb21wbGV0ZWRPcGVyYXRpb25zKys7XG4gICAgICBpZiAodGhpcy5wcm9ncmVzc0V2ZW50KEV2ZW50VHlwZS5TVUNDRVNTLCBgUHVibGlzaGVkICR7YXNzZXQuaWR9YCkpIHsgcmV0dXJuIGZhbHNlOyB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5mYWlsdXJlcy5wdXNoKHsgYXNzZXQsIGVycm9yOiBlIH0pO1xuICAgICAgdGhpcy5jb21wbGV0ZWRPcGVyYXRpb25zKys7XG4gICAgICBpZiAodGhpcy5wcm9ncmVzc0V2ZW50KEV2ZW50VHlwZS5GQUlMLCBlLm1lc3NhZ2UpKSB7IHJldHVybiBmYWxzZTsgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHVibGljIGdldCBwZXJjZW50Q29tcGxldGUoKSB7XG4gICAgaWYgKHRoaXMudG90YWxPcGVyYXRpb25zID09PSAwKSB7IHJldHVybiAxMDA7IH1cbiAgICByZXR1cm4gTWF0aC5mbG9vcigodGhpcy5jb21wbGV0ZWRPcGVyYXRpb25zIC8gdGhpcy50b3RhbE9wZXJhdGlvbnMpICogMTAwKTtcbiAgfVxuXG4gIHB1YmxpYyBhYm9ydCgpOiB2b2lkIHtcbiAgICB0aGlzLmFib3J0ZWQgPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIGdldCBoYXNGYWlsdXJlcygpIHtcbiAgICByZXR1cm4gdGhpcy5mYWlsdXJlcy5sZW5ndGggPiAwO1xuICB9XG5cbiAgLyoqXG4gICAqIFB1Ymxpc2ggYSBwcm9ncmVzcyBldmVudCB0byB0aGUgbGlzdGVuZXIsIGlmIHByZXNlbnQuXG4gICAqXG4gICAqIFJldHVybnMgd2hldGhlciBhbiBhYm9ydCBpcyByZXF1ZXN0ZWQuIEhlbHBlciB0byBnZXQgcmlkIG9mIHJlcGV0aXRpdmUgY29kZSBpbiBwdWJsaXNoKCkuXG4gICAqL1xuICBwcml2YXRlIHByb2dyZXNzRXZlbnQoZXZlbnQ6IEV2ZW50VHlwZSwgbWVzc2FnZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZTtcbiAgICBpZiAodGhpcy5vcHRpb25zLnByb2dyZXNzTGlzdGVuZXIpIHsgdGhpcy5vcHRpb25zLnByb2dyZXNzTGlzdGVuZXIub25QdWJsaXNoRXZlbnQoZXZlbnQsIHRoaXMpOyB9XG4gICAgcmV0dXJuIHRoaXMuYWJvcnRlZDtcbiAgfVxufSJdfQ==
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInB1Ymxpc2hpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsNkNBQWlEO0FBQ2pELGlEQUFzRDtBQUN0RCx5Q0FBbUY7QUEyRG5GLE1BQWEsZUFBZTtJQXdCMUIsWUFBNkIsUUFBdUIsRUFBbUIsT0FBK0I7O1FBQXpFLGFBQVEsR0FBUixRQUFRLENBQWU7UUFBbUIsWUFBTyxHQUFQLE9BQU8sQ0FBd0I7UUF2QnRHOztXQUVHO1FBQ0ksWUFBTyxHQUFXLFVBQVUsQ0FBQztRQU1wQixhQUFRLEdBQUcsSUFBSSxLQUFLLEVBQWUsQ0FBQztRQUk1Qyx3QkFBbUIsR0FBVyxDQUFDLENBQUM7UUFDaEMsWUFBTyxHQUFHLEtBQUssQ0FBQztRQVV0QixJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUM7UUFDL0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUMxQyxJQUFJLENBQUMsaUJBQWlCLFNBQUcsT0FBTyxDQUFDLGlCQUFpQixtQ0FBSSxLQUFLLENBQUM7UUFDNUQsSUFBSSxDQUFDLFdBQVcsU0FBRyxPQUFPLENBQUMsV0FBVyxtQ0FBSSxJQUFJLENBQUM7UUFDL0MsSUFBSSxDQUFDLGFBQWEsU0FBRyxPQUFPLENBQUMsYUFBYSxtQ0FBSSxJQUFJLENBQUM7UUFFbkQsTUFBTSxXQUFXLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO2dCQUMxQyxPQUFPO29CQUNMLGtCQUFrQixFQUFFLHlCQUF5QjtvQkFDN0Msb0JBQW9CLEVBQUUscUJBQXFCO29CQUMzQyxrQkFBa0IsRUFBRSwrQkFBK0I7aUJBQ3BELENBQUM7YUFDSDtpQkFBTSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQzNCLE9BQU87b0JBQ0wsa0JBQWtCLEVBQUUsVUFBVTtvQkFDOUIsb0JBQW9CLEVBQUUsT0FBTztvQkFDN0Isa0JBQWtCLEVBQUUsZ0JBQWdCO2lCQUNyQyxDQUFDO2FBQ0g7aUJBQU07Z0JBQ0wsT0FBTztvQkFDTCxrQkFBa0IsRUFBRSxZQUFZO29CQUNoQyxvQkFBb0IsRUFBRSxXQUFXO29CQUNqQyxrQkFBa0IsRUFBRSxrQkFBa0I7aUJBQ3ZDLENBQUM7YUFDSDtRQUNILENBQUMsQ0FBQztRQUVGLE1BQU0sUUFBUSxHQUFHLFdBQVcsRUFBRSxDQUFDO1FBRS9CLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxRQUFRLENBQUMsa0JBQWtCLENBQUM7UUFDdEQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQztRQUMxRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsUUFBUSxDQUFDLGtCQUFrQixDQUFDO1FBRXRELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsV0FBVyxHQUFHO1lBQ2pCLEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUc7WUFDckIsSUFBSSxPQUFPLEtBQUssT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUN0QyxXQUFXLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0MsYUFBYSxFQUFFLElBQUksc0JBQWEsRUFBRTtTQUNuQyxDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLE9BQU87O1FBQ2xCLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzFCLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMvRTthQUFNO1lBQ0wsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUMvQixJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFO29CQUNuQyxNQUFNO2lCQUNQO2FBQ0Y7U0FDRjtRQUVELElBQUksT0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksbUNBQUksSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ25FLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUMzRjtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFxQjtRQUM5QyxJQUFJO1lBQ0YsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLG9CQUFTLENBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixJQUFJLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFO2dCQUFFLE9BQU8sS0FBSyxDQUFDO2FBQUU7WUFFcEcsTUFBTSxPQUFPLEdBQUcsMkJBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBRXpFLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDcEIsTUFBTSxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDdkI7WUFFRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQ3RCLE1BQU0sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQ3pCO1lBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQzVCO1lBRUQsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDM0IsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLG9CQUFTLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixJQUFJLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFO2dCQUFFLE9BQU8sS0FBSyxDQUFDO2FBQUU7U0FDekc7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzNCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxvQkFBUyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQUUsT0FBTyxLQUFLLENBQUM7YUFBRTtTQUNyRTtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQVcsZUFBZTtRQUN4QixJQUFJLElBQUksQ0FBQyxlQUFlLEtBQUssQ0FBQyxFQUFFO1lBQUUsT0FBTyxHQUFHLENBQUM7U0FBRTtRQUMvQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQVcsV0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGFBQWEsQ0FBQyxLQUFnQixFQUFFLE9BQWU7UUFDckQsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFO1lBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQUU7UUFDakcsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7Q0FDRjtBQWhKRCwwQ0FnSkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3NldE1hbmlmZXN0LCBJTWFuaWZlc3RFbnRyeSB9IGZyb20gJy4vYXNzZXQtbWFuaWZlc3QnO1xuaW1wb3J0IHsgSUF3cyB9IGZyb20gJy4vYXdzJztcbmltcG9ydCB7IElIYW5kbGVySG9zdCB9IGZyb20gJy4vcHJpdmF0ZS9hc3NldC1oYW5kbGVyJztcbmltcG9ydCB7IERvY2tlckZhY3RvcnkgfSBmcm9tICcuL3ByaXZhdGUvZG9ja2VyJztcbmltcG9ydCB7IG1ha2VBc3NldEhhbmRsZXIgfSBmcm9tICcuL3ByaXZhdGUvaGFuZGxlcnMnO1xuaW1wb3J0IHsgRXZlbnRUeXBlLCBJUHVibGlzaFByb2dyZXNzLCBJUHVibGlzaFByb2dyZXNzTGlzdGVuZXIgfSBmcm9tICcuL3Byb2dyZXNzJztcblxuZXhwb3J0IGludGVyZmFjZSBBc3NldFB1Ymxpc2hpbmdPcHRpb25zIHtcbiAgLyoqXG4gICAqIEVudHJ5IHBvaW50IGZvciBBV1MgY2xpZW50XG4gICAqL1xuICByZWFkb25seSBhd3M6IElBd3M7XG5cbiAgLyoqXG4gICAqIExpc3RlbmVyIGZvciBwcm9ncmVzcyBldmVudHNcbiAgICpcbiAgICogQGRlZmF1bHQgTm8gbGlzdGVuZXJcbiAgICovXG4gIHJlYWRvbmx5IHByb2dyZXNzTGlzdGVuZXI/OiBJUHVibGlzaFByb2dyZXNzTGlzdGVuZXI7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gdGhyb3cgYXQgdGhlIGVuZCBpZiB0aGVyZSB3ZXJlIGVycm9yc1xuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSB0aHJvd09uRXJyb3I/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHB1Ymxpc2ggaW4gcGFyYWxsZWxcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHB1Ymxpc2hJblBhcmFsbGVsPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBidWlsZCBhc3NldHNcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRBc3NldHM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHB1Ymxpc2ggYXNzZXRzXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHB1Ymxpc2hBc3NldHM/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEEgZmFpbHVyZSB0byBwdWJsaXNoIGFuIGFzc2V0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmFpbGVkQXNzZXQge1xuICAvKipcbiAgICogVGhlIGFzc2V0IHRoYXQgZmFpbGVkIHRvIHB1Ymxpc2hcbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0OiBJTWFuaWZlc3RFbnRyeTtcblxuICAvKipcbiAgICogVGhlIGZhaWx1cmUgdGhhdCBvY2N1cnJlZFxuICAgKi9cbiAgcmVhZG9ubHkgZXJyb3I6IEVycm9yO1xufVxuXG5leHBvcnQgY2xhc3MgQXNzZXRQdWJsaXNoaW5nIGltcGxlbWVudHMgSVB1Ymxpc2hQcm9ncmVzcyB7XG4gIC8qKlxuICAgKiBUaGUgbWVzc2FnZSBmb3IgdGhlIElQdWJsaXNoUHJvZ3Jlc3MgaW50ZXJmYWNlXG4gICAqL1xuICBwdWJsaWMgbWVzc2FnZTogc3RyaW5nID0gJ1N0YXJ0aW5nJztcblxuICAvKipcbiAgICogVGhlIGN1cnJlbnQgYXNzZXQgZm9yIHRoZSBJUHVibGlzaFByb2dyZXNzIGludGVyZmFjZVxuICAgKi9cbiAgcHVibGljIGN1cnJlbnRBc3NldD86IElNYW5pZmVzdEVudHJ5O1xuICBwdWJsaWMgcmVhZG9ubHkgZmFpbHVyZXMgPSBuZXcgQXJyYXk8RmFpbGVkQXNzZXQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXNzZXRzOiBJTWFuaWZlc3RFbnRyeVtdO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdG90YWxPcGVyYXRpb25zOiBudW1iZXI7XG4gIHByaXZhdGUgY29tcGxldGVkT3BlcmF0aW9uczogbnVtYmVyID0gMDtcbiAgcHJpdmF0ZSBhYm9ydGVkID0gZmFsc2U7XG4gIHByaXZhdGUgcmVhZG9ubHkgaGFuZGxlckhvc3Q6IElIYW5kbGVySG9zdDtcbiAgcHJpdmF0ZSByZWFkb25seSBwdWJsaXNoSW5QYXJhbGxlbDogYm9vbGVhbjtcbiAgcHJpdmF0ZSByZWFkb25seSBidWlsZEFzc2V0czogYm9vbGVhbjtcbiAgcHJpdmF0ZSByZWFkb25seSBwdWJsaXNoQXNzZXRzOiBib29sZWFuO1xuICBwcml2YXRlIHJlYWRvbmx5IHN0YXJ0TWVzc2FnZVByZWZpeDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHN1Y2Nlc3NNZXNzYWdlUHJlZml4OiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgZXJyb3JNZXNzYWdlUHJlZml4OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBtYW5pZmVzdDogQXNzZXRNYW5pZmVzdCwgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBBc3NldFB1Ymxpc2hpbmdPcHRpb25zKSB7XG4gICAgdGhpcy5hc3NldHMgPSBtYW5pZmVzdC5lbnRyaWVzO1xuICAgIHRoaXMudG90YWxPcGVyYXRpb25zID0gdGhpcy5hc3NldHMubGVuZ3RoO1xuICAgIHRoaXMucHVibGlzaEluUGFyYWxsZWwgPSBvcHRpb25zLnB1Ymxpc2hJblBhcmFsbGVsID8/IGZhbHNlO1xuICAgIHRoaXMuYnVpbGRBc3NldHMgPSBvcHRpb25zLmJ1aWxkQXNzZXRzID8/IHRydWU7XG4gICAgdGhpcy5wdWJsaXNoQXNzZXRzID0gb3B0aW9ucy5wdWJsaXNoQXNzZXRzID8/IHRydWU7XG5cbiAgICBjb25zdCBnZXRNZXNzYWdlcyA9ICgpID0+IHtcbiAgICAgIGlmICh0aGlzLmJ1aWxkQXNzZXRzICYmIHRoaXMucHVibGlzaEFzc2V0cykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHN0YXJ0TWVzc2FnZVByZWZpeDogJ0J1aWxkaW5nIGFuZCBwdWJsaXNoaW5nJyxcbiAgICAgICAgICBzdWNjZXNzTWVzc2FnZVByZWZpeDogJ0J1aWx0IGFuZCBwdWJsaXNoZWQnLFxuICAgICAgICAgIGVycm9yTWVzc2FnZVByZWZpeDogJ0Vycm9yIGJ1aWxkaW5nIGFuZCBwdWJsaXNoaW5nJyxcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5idWlsZEFzc2V0cykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHN0YXJ0TWVzc2FnZVByZWZpeDogJ0J1aWxkaW5nJyxcbiAgICAgICAgICBzdWNjZXNzTWVzc2FnZVByZWZpeDogJ0J1aWx0JyxcbiAgICAgICAgICBlcnJvck1lc3NhZ2VQcmVmaXg6ICdFcnJvciBidWlsZGluZycsXG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHN0YXJ0TWVzc2FnZVByZWZpeDogJ1B1Ymxpc2hpbmcnLFxuICAgICAgICAgIHN1Y2Nlc3NNZXNzYWdlUHJlZml4OiAnUHVibGlzaGVkJyxcbiAgICAgICAgICBlcnJvck1lc3NhZ2VQcmVmaXg6ICdFcnJvciBwdWJsaXNoaW5nJyxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgbWVzc2FnZXMgPSBnZXRNZXNzYWdlcygpO1xuXG4gICAgdGhpcy5zdGFydE1lc3NhZ2VQcmVmaXggPSBtZXNzYWdlcy5zdGFydE1lc3NhZ2VQcmVmaXg7XG4gICAgdGhpcy5zdWNjZXNzTWVzc2FnZVByZWZpeCA9IG1lc3NhZ2VzLnN1Y2Nlc3NNZXNzYWdlUHJlZml4O1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlUHJlZml4ID0gbWVzc2FnZXMuZXJyb3JNZXNzYWdlUHJlZml4O1xuXG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgdGhpcy5oYW5kbGVySG9zdCA9IHtcbiAgICAgIGF3czogdGhpcy5vcHRpb25zLmF3cyxcbiAgICAgIGdldCBhYm9ydGVkKCkgeyByZXR1cm4gc2VsZi5hYm9ydGVkOyB9LFxuICAgICAgZW1pdE1lc3NhZ2UodCwgbSkgeyBzZWxmLnByb2dyZXNzRXZlbnQodCwgbSk7IH0sXG4gICAgICBkb2NrZXJGYWN0b3J5OiBuZXcgRG9ja2VyRmFjdG9yeSgpLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUHVibGlzaCBhbGwgYXNzZXRzIGZyb20gdGhlIG1hbmlmZXN0XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcHVibGlzaCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5wdWJsaXNoSW5QYXJhbGxlbCkge1xuICAgICAgYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5hc3NldHMubWFwKGFzeW5jIChhc3NldCkgPT4gdGhpcy5wdWJsaXNoQXNzZXQoYXNzZXQpKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvciAoY29uc3QgYXNzZXQgb2YgdGhpcy5hc3NldHMpIHtcbiAgICAgICAgaWYgKCFhd2FpdCB0aGlzLnB1Ymxpc2hBc3NldChhc3NldCkpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICgodGhpcy5vcHRpb25zLnRocm93T25FcnJvciA/PyB0cnVlKSAmJiB0aGlzLmZhaWx1cmVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJHt0aGlzLmVycm9yTWVzc2FnZVByZWZpeH06ICR7dGhpcy5mYWlsdXJlcy5tYXAoZSA9PiBlLmVycm9yLm1lc3NhZ2UpfWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQdWJsaXNoIGFuIGFzc2V0LlxuICAgKiBAcGFyYW0gYXNzZXQgVGhlIGFzc2V0IHRvIHB1Ymxpc2hcbiAgICogQHJldHVybnMgZmFsc2Ugd2hlbiBwdWJsaXNoaW5nIHNob3VsZCBzdG9wXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHB1Ymxpc2hBc3NldChhc3NldDogSU1hbmlmZXN0RW50cnkpIHtcbiAgICB0cnkge1xuICAgICAgaWYgKHRoaXMucHJvZ3Jlc3NFdmVudChFdmVudFR5cGUuU1RBUlQsIGAke3RoaXMuc3RhcnRNZXNzYWdlUHJlZml4fSAke2Fzc2V0LmlkfWApKSB7IHJldHVybiBmYWxzZTsgfVxuXG4gICAgICBjb25zdCBoYW5kbGVyID0gbWFrZUFzc2V0SGFuZGxlcih0aGlzLm1hbmlmZXN0LCBhc3NldCwgdGhpcy5oYW5kbGVySG9zdCk7XG5cbiAgICAgIGlmICh0aGlzLmJ1aWxkQXNzZXRzKSB7XG4gICAgICAgIGF3YWl0IGhhbmRsZXIuYnVpbGQoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMucHVibGlzaEFzc2V0cykge1xuICAgICAgICBhd2FpdCBoYW5kbGVyLnB1Ymxpc2goKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuYWJvcnRlZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Fib3J0ZWQnKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5jb21wbGV0ZWRPcGVyYXRpb25zKys7XG4gICAgICBpZiAodGhpcy5wcm9ncmVzc0V2ZW50KEV2ZW50VHlwZS5TVUNDRVNTLCBgJHt0aGlzLnN1Y2Nlc3NNZXNzYWdlUHJlZml4fSAke2Fzc2V0LmlkfWApKSB7IHJldHVybiBmYWxzZTsgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMuZmFpbHVyZXMucHVzaCh7IGFzc2V0LCBlcnJvcjogZSB9KTtcbiAgICAgIHRoaXMuY29tcGxldGVkT3BlcmF0aW9ucysrO1xuICAgICAgaWYgKHRoaXMucHJvZ3Jlc3NFdmVudChFdmVudFR5cGUuRkFJTCwgZS5tZXNzYWdlKSkgeyByZXR1cm4gZmFsc2U7IH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGVyY2VudENvbXBsZXRlKCkge1xuICAgIGlmICh0aGlzLnRvdGFsT3BlcmF0aW9ucyA9PT0gMCkgeyByZXR1cm4gMTAwOyB9XG4gICAgcmV0dXJuIE1hdGguZmxvb3IoKHRoaXMuY29tcGxldGVkT3BlcmF0aW9ucyAvIHRoaXMudG90YWxPcGVyYXRpb25zKSAqIDEwMCk7XG4gIH1cblxuICBwdWJsaWMgYWJvcnQoKTogdm9pZCB7XG4gICAgdGhpcy5hYm9ydGVkID0gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGFzRmFpbHVyZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmFpbHVyZXMubGVuZ3RoID4gMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBQdWJsaXNoIGEgcHJvZ3Jlc3MgZXZlbnQgdG8gdGhlIGxpc3RlbmVyLCBpZiBwcmVzZW50LlxuICAgKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgYW4gYWJvcnQgaXMgcmVxdWVzdGVkLiBIZWxwZXIgdG8gZ2V0IHJpZCBvZiByZXBldGl0aXZlIGNvZGUgaW4gcHVibGlzaCgpLlxuICAgKi9cbiAgcHJpdmF0ZSBwcm9ncmVzc0V2ZW50KGV2ZW50OiBFdmVudFR5cGUsIG1lc3NhZ2U6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2U7XG4gICAgaWYgKHRoaXMub3B0aW9ucy5wcm9ncmVzc0xpc3RlbmVyKSB7IHRoaXMub3B0aW9ucy5wcm9ncmVzc0xpc3RlbmVyLm9uUHVibGlzaEV2ZW50KGV2ZW50LCB0aGlzKTsgfVxuICAgIHJldHVybiB0aGlzLmFib3J0ZWQ7XG4gIH1cbn0iXX0=
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cdk-assets",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.40.0",
|
|
4
4
|
"lockfileVersion": 1,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"dependencies": {
|
|
7
7
|
"@aws-cdk/cloud-assembly-schema": {
|
|
8
|
-
"version": "2.
|
|
8
|
+
"version": "2.40.0",
|
|
9
9
|
"requires": {
|
|
10
10
|
"jsonschema": "^1.4.1",
|
|
11
11
|
"semver": "^7.3.7"
|
|
12
12
|
}
|
|
13
13
|
},
|
|
14
14
|
"@aws-cdk/cx-api": {
|
|
15
|
-
"version": "2.
|
|
15
|
+
"version": "2.40.0",
|
|
16
16
|
"requires": {
|
|
17
|
-
"@aws-cdk/cloud-assembly-schema": "2.
|
|
17
|
+
"@aws-cdk/cloud-assembly-schema": "2.40.0",
|
|
18
18
|
"semver": "^7.3.7"
|
|
19
19
|
}
|
|
20
20
|
},
|
|
@@ -33,9 +33,9 @@
|
|
|
33
33
|
}
|
|
34
34
|
},
|
|
35
35
|
"aws-sdk": {
|
|
36
|
-
"version": "2.
|
|
37
|
-
"integrity": "sha512-
|
|
38
|
-
"resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.
|
|
36
|
+
"version": "2.1206.0",
|
|
37
|
+
"integrity": "sha512-rQckMXO+O1j7RxuC9Ic6+OjroLm4t9vYHCubSeSEj8bJCFEh/1aRO1eiMHcLGhI4jl3LijfTCX56YZJjDp2PdQ==",
|
|
38
|
+
"resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1206.0.tgz#8c5ed249952fb86b29cb4cf037e03b3136247341",
|
|
39
39
|
"requires": {
|
|
40
40
|
"buffer": "4.9.2",
|
|
41
41
|
"events": "1.1.1",
|
|
@@ -777,9 +777,9 @@
|
|
|
777
777
|
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
|
|
778
778
|
},
|
|
779
779
|
"object.assign": {
|
|
780
|
-
"version": "4.1.
|
|
781
|
-
"integrity": "sha512-
|
|
782
|
-
"resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.
|
|
780
|
+
"version": "4.1.4",
|
|
781
|
+
"integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==",
|
|
782
|
+
"resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f",
|
|
783
783
|
"requires": {
|
|
784
784
|
"call-bind": "^1.0.2",
|
|
785
785
|
"define-properties": "^1.1.4",
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cdk-assets",
|
|
3
3
|
"description": "CDK Asset Publishing Tool",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.40.0",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
7
7
|
"bin": {
|
|
@@ -35,17 +35,17 @@
|
|
|
35
35
|
"@types/jest": "^27.5.2",
|
|
36
36
|
"@types/mime": "^2.0.3",
|
|
37
37
|
"@types/mock-fs": "^4.13.1",
|
|
38
|
-
"@types/node": "^14.18.
|
|
38
|
+
"@types/node": "^14.18.26",
|
|
39
39
|
"@types/yargs": "^15.0.14",
|
|
40
|
-
"@aws-cdk/cdk-build-tools": "2.
|
|
40
|
+
"@aws-cdk/cdk-build-tools": "2.40.0",
|
|
41
41
|
"jest": "^27.5.1",
|
|
42
42
|
"jszip": "^3.10.1",
|
|
43
43
|
"mock-fs": "^4.14.0",
|
|
44
|
-
"@aws-cdk/pkglint": "2.
|
|
44
|
+
"@aws-cdk/pkglint": "2.40.0"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@aws-cdk/cloud-assembly-schema": "2.
|
|
48
|
-
"@aws-cdk/cx-api": "2.
|
|
47
|
+
"@aws-cdk/cloud-assembly-schema": "2.40.0",
|
|
48
|
+
"@aws-cdk/cx-api": "2.40.0",
|
|
49
49
|
"archiver": "^5.3.1",
|
|
50
50
|
"aws-sdk": "^2.1093.0",
|
|
51
51
|
"glob": "^7.2.3",
|