cdk-assets 2.152.0 → 3.0.0-rc.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/LICENSE +2 -1
- package/README.md +22 -17
- package/bin/cdk-assets.js +14 -8
- package/bin/docker-credential-cdk-assets.js +2 -2
- package/bin/list.js +2 -3
- package/bin/logging.js +4 -4
- package/bin/publish.js +3 -4
- package/lib/asset-manifest.js +10 -6
- package/lib/aws.d.ts +15 -17
- package/lib/aws.js +63 -58
- package/lib/private/archive.js +6 -5
- package/lib/private/docker-credentials.d.ts +2 -1
- package/lib/private/docker-credentials.js +16 -11
- package/lib/private/docker.d.ts +3 -2
- package/lib/private/docker.js +28 -18
- package/lib/private/fs-extra.js +5 -6
- package/lib/private/handlers/container-images.js +13 -5
- package/lib/private/handlers/files.js +25 -13
- package/lib/private/handlers/index.js +2 -3
- package/lib/private/placeholders.js +2 -3
- package/lib/private/shell.d.ts +0 -2
- package/lib/private/shell.js +10 -8
- package/lib/private/util.js +3 -5
- package/lib/publishing.js +9 -5
- package/npm-shrinkwrap.json +13041 -665
- package/package.json +63 -52
package/LICENSE
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
|
|
1
2
|
Apache License
|
|
2
3
|
Version 2.0, January 2004
|
|
3
4
|
http://www.apache.org/licenses/
|
|
@@ -186,7 +187,7 @@
|
|
|
186
187
|
same "printed page" as the copyright notice for easier
|
|
187
188
|
identification within third-party archives.
|
|
188
189
|
|
|
189
|
-
Copyright
|
|
190
|
+
Copyright [yyyy] [name of copyright owner]
|
|
190
191
|
|
|
191
192
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
192
193
|
you may not use this file except in compliance with the License.
|
package/README.md
CHANGED
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
# cdk-assets
|
|
2
|
+
|
|
2
3
|
<!--BEGIN STABILITY BANNER-->
|
|
3
4
|
|
|
4
5
|
---
|
|
5
6
|
|
|
6
|
-
|
|
7
|
+
> V3 of cdk-assets is still under active development and is subject to non-backward compatible changes while
|
|
8
|
+
> being released with the `rc` suffix.
|
|
9
|
+
>
|
|
10
|
+
> These changes are not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes
|
|
11
|
+
> will be announced in the release notes.
|
|
7
12
|
|
|
8
13
|
---
|
|
9
14
|
|
|
10
15
|
<!--END STABILITY BANNER-->
|
|
11
16
|
|
|
12
|
-
|
|
13
17
|
A tool for publishing CDK assets to AWS environments.
|
|
14
18
|
|
|
15
19
|
## Overview
|
|
@@ -21,9 +25,9 @@ the manifest.
|
|
|
21
25
|
|
|
22
26
|
Currently the following asset types are supported:
|
|
23
27
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
28
|
+
- Files and archives, uploaded to S3
|
|
29
|
+
- Docker Images, uploaded to ECR
|
|
30
|
+
- Files, archives, and Docker images built by external utilities
|
|
27
31
|
|
|
28
32
|
S3 buckets and ECR repositories to upload to are expected to exist already.
|
|
29
33
|
|
|
@@ -31,9 +35,9 @@ We expect assets to be immutable, and we expect that immutability to be
|
|
|
31
35
|
reflected both in the asset ID and in the destination location. This reflects
|
|
32
36
|
itself in the following behaviors:
|
|
33
37
|
|
|
34
|
-
|
|
38
|
+
- If the indicated asset already exists in the given destination location, it
|
|
35
39
|
will not be packaged and uploaded.
|
|
36
|
-
|
|
40
|
+
- If some locally cached artifact (depending on the asset type a file or an
|
|
37
41
|
image in the local Docker cache) already exists named after the asset's ID, it
|
|
38
42
|
will not be packaged, but will be uploaded directly to the destination
|
|
39
43
|
location.
|
|
@@ -49,7 +53,8 @@ asset, or the name of the local Docker image.
|
|
|
49
53
|
|
|
50
54
|
The `cdk-asset` tool can be used programmatically and via the CLI. Use
|
|
51
55
|
programmatic access if you need more control over authentication than the
|
|
52
|
-
default [
|
|
56
|
+
default [AWS SDK for JavaScript v3](https://github.com/aws/aws-sdk-js-v3)
|
|
57
|
+
implementation allows.
|
|
53
58
|
|
|
54
59
|
Command-line use looks like this:
|
|
55
60
|
|
|
@@ -97,12 +102,12 @@ An asset manifest looks like this:
|
|
|
97
102
|
"objectKey": "3dfe2b80b050e7e4e168f84feff678d4.zip"
|
|
98
103
|
}
|
|
99
104
|
}
|
|
100
|
-
}
|
|
105
|
+
}
|
|
101
106
|
},
|
|
102
107
|
"dockerImages": {
|
|
103
108
|
"b48783c58a86f7b8c68a4591c4f9be31": {
|
|
104
109
|
"source": {
|
|
105
|
-
"directory": "dockerdir"
|
|
110
|
+
"directory": "dockerdir"
|
|
106
111
|
},
|
|
107
112
|
"destinations": {
|
|
108
113
|
"us-east-1": {
|
|
@@ -110,13 +115,13 @@ An asset manifest looks like this:
|
|
|
110
115
|
"assumeRoleArn": "arn:aws:iam::12345789012:role/my-account",
|
|
111
116
|
"repositoryName": "MyRepository",
|
|
112
117
|
"imageTag": "b48783c58a86f7b8c68a4591c4f9be31",
|
|
113
|
-
"imageUri": "123456789012.dkr.ecr.us-east-1.amazonaws.com/MyRepository:1234567891b48783c58a86f7b8c68a4591c4f9be31"
|
|
118
|
+
"imageUri": "123456789012.dkr.ecr.us-east-1.amazonaws.com/MyRepository:1234567891b48783c58a86f7b8c68a4591c4f9be31"
|
|
114
119
|
}
|
|
115
120
|
}
|
|
116
121
|
},
|
|
117
122
|
"d92753c58a86f7b8c68a4591c4f9cf28": {
|
|
118
123
|
"source": {
|
|
119
|
-
"executable": ["mytool", "package", "dockerdir"]
|
|
124
|
+
"executable": ["mytool", "package", "dockerdir"]
|
|
120
125
|
},
|
|
121
126
|
"destinations": {
|
|
122
127
|
"us-east-1": {
|
|
@@ -124,7 +129,7 @@ An asset manifest looks like this:
|
|
|
124
129
|
"assumeRoleArn": "arn:aws:iam::12345789012:role/my-account",
|
|
125
130
|
"repositoryName": "MyRepository2",
|
|
126
131
|
"imageTag": "d92753c58a86f7b8c68a4591c4f9cf28",
|
|
127
|
-
"imageUri": "123456789987.dkr.ecr.us-east-1.amazonaws.com/MyRepository2:1234567891b48783c58a86f7b8c68a4591c4f9be31"
|
|
132
|
+
"imageUri": "123456789987.dkr.ecr.us-east-1.amazonaws.com/MyRepository2:1234567891b48783c58a86f7b8c68a4591c4f9be31"
|
|
128
133
|
}
|
|
129
134
|
}
|
|
130
135
|
}
|
|
@@ -137,15 +142,15 @@ An asset manifest looks like this:
|
|
|
137
142
|
The `destination` block of an asset manifest may contain the following region
|
|
138
143
|
and account placeholders:
|
|
139
144
|
|
|
140
|
-
|
|
141
|
-
|
|
145
|
+
- `${AWS::Region}`
|
|
146
|
+
- `${AWS::AccountId}`
|
|
142
147
|
|
|
143
148
|
These will be substituted with the region and account IDs currently configured
|
|
144
149
|
on the AWS SDK (through environment variables or `~/.aws/...` config files).
|
|
145
150
|
|
|
146
|
-
|
|
151
|
+
- The `${AWS::AccountId}` placeholder will _not_ be re-evaluated after
|
|
147
152
|
performing the `AssumeRole` call.
|
|
148
|
-
|
|
153
|
+
- If `${AWS::Region}` is used, it will principally be replaced with the value
|
|
149
154
|
in the `region` key. If the default region is intended, leave the `region`
|
|
150
155
|
key out of the manifest at all.
|
|
151
156
|
|
package/bin/cdk-assets.js
CHANGED
|
@@ -23,12 +23,19 @@ async function main() {
|
|
|
23
23
|
default: '.',
|
|
24
24
|
requiresArg: true,
|
|
25
25
|
})
|
|
26
|
-
.command('ls', 'List assets from the given manifest', command => command, wrapHandler(async (args) => {
|
|
26
|
+
.command('ls', 'List assets from the given manifest', (command) => command, wrapHandler(async (args) => {
|
|
27
27
|
await (0, list_1.list)(args);
|
|
28
28
|
}))
|
|
29
|
-
.command('publish [ASSET..]', 'Publish assets in the given manifest', command => command
|
|
30
|
-
.option('profile', {
|
|
31
|
-
|
|
29
|
+
.command('publish [ASSET..]', 'Publish assets in the given manifest', (command) => command
|
|
30
|
+
.option('profile', {
|
|
31
|
+
type: 'string',
|
|
32
|
+
describe: 'Profile to use from AWS Credentials file',
|
|
33
|
+
})
|
|
34
|
+
.positional('ASSET', {
|
|
35
|
+
type: 'string',
|
|
36
|
+
array: true,
|
|
37
|
+
describe: 'Assets to publish (format: "ASSET[:DEST]"), default all',
|
|
38
|
+
}), wrapHandler(async (args) => {
|
|
32
39
|
await (0, publish_1.publish)({
|
|
33
40
|
path: args.path,
|
|
34
41
|
assets: args.ASSET,
|
|
@@ -39,8 +46,7 @@ async function main() {
|
|
|
39
46
|
.help()
|
|
40
47
|
.strict() // Error on wrong command
|
|
41
48
|
.version(logging_1.VERSION)
|
|
42
|
-
.showHelpOnFail(false)
|
|
43
|
-
.argv;
|
|
49
|
+
.showHelpOnFail(false).argv;
|
|
44
50
|
// Evaluating .argv triggers the parsing but the command gets implicitly executed,
|
|
45
51
|
// so we don't need the output.
|
|
46
52
|
Array.isArray(argv);
|
|
@@ -56,9 +62,9 @@ function wrapHandler(handler) {
|
|
|
56
62
|
await handler(argv);
|
|
57
63
|
};
|
|
58
64
|
}
|
|
59
|
-
main().catch(e => {
|
|
65
|
+
main().catch((e) => {
|
|
60
66
|
// eslint-disable-next-line no-console
|
|
61
67
|
console.error(e.stack);
|
|
62
68
|
process.exitCode = 1;
|
|
63
69
|
});
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWFzc2V0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNkay1hc3NldHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwrQkFBK0I7QUFDL0IsaUNBQThCO0FBQzlCLHVDQUFxRDtBQUNyRCx1Q0FBb0M7QUFDcEMsZ0NBQXVDO0FBRXZDLEtBQUssVUFBVSxJQUFJO0lBQ2pCLE1BQU0sSUFBSSxHQUFHLEtBQUs7U0FDZixLQUFLLENBQUMsaUJBQWlCLENBQUM7U0FDeEIsTUFBTSxDQUFDLFNBQVMsRUFBRTtRQUNqQixLQUFLLEVBQUUsR0FBRztRQUNWLElBQUksRUFBRSxTQUFTO1FBQ2YsSUFBSSxFQUFFLDRCQUE0QjtRQUNsQyxLQUFLLEVBQUUsSUFBSTtRQUNYLE9BQU8sRUFBRSxDQUFDO0tBQ1gsQ0FBQztTQUNELE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDZCxLQUFLLEVBQUUsR0FBRztRQUNWLElBQUksRUFBRSxRQUFRO1FBQ2QsSUFBSSxFQUNGLHdFQUF3RTtZQUN4RSxhQUFhLG1CQUFhLENBQUMsZ0JBQWdCLDJCQUEyQjtRQUN4RSxPQUFPLEVBQUUsR0FBRztRQUNaLFdBQVcsRUFBRSxJQUFJO0tBQ2xCLENBQUM7U0FDRCxPQUFPLENBQ04sSUFBSSxFQUNKLHFDQUFxQyxFQUNyQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxFQUNwQixXQUFXLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFO1FBQ3pCLE1BQU0sSUFBQSxXQUFJLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkIsQ0FBQyxDQUFDLENBQ0g7U0FDQSxPQUFPLENBQ04sbUJBQW1CLEVBQ25CLHNDQUFzQyxFQUN0QyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQ1YsT0FBTztTQUNKLE1BQU0sQ0FBQyxTQUFTLEVBQUU7UUFDakIsSUFBSSxFQUFFLFFBQVE7UUFDZCxRQUFRLEVBQUUsMENBQTBDO0tBQ3JELENBQUM7U0FDRCxVQUFVLENBQUMsT0FBTyxFQUFFO1FBQ25CLElBQUksRUFBRSxRQUFRO1FBQ2QsS0FBSyxFQUFFLElBQUk7UUFDWCxRQUFRLEVBQUUseURBQXlEO0tBQ3BFLENBQUMsRUFDTixXQUFXLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFO1FBQ3pCLE1BQU0sSUFBQSxpQkFBTyxFQUFDO1lBQ1osSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2xCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FDSDtTQUNBLGFBQWEsRUFBRTtTQUNmLElBQUksRUFBRTtTQUNOLE1BQU0sRUFBRSxDQUFDLHlCQUF5QjtTQUNsQyxPQUFPLENBQUMsaUJBQU8sQ0FBQztTQUNoQixjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBRTlCLGtGQUFrRjtJQUNsRiwrQkFBK0I7SUFDL0IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN0QixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLFdBQVcsQ0FBb0MsT0FBNkI7SUFDbkYsT0FBTyxLQUFLLEVBQUUsSUFBTyxFQUFFLEVBQUU7UUFDdkIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsSUFBQSx5QkFBZSxFQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdCLENBQUM7UUFDRCxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QixDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7SUFDakIsc0NBQXNDO0lBQ3RDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLE9BQU8sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgeWFyZ3MgZnJvbSAneWFyZ3MnO1xuaW1wb3J0IHsgbGlzdCB9IGZyb20gJy4vbGlzdCc7XG5pbXBvcnQgeyBzZXRMb2dUaHJlc2hvbGQsIFZFUlNJT04gfSBmcm9tICcuL2xvZ2dpbmcnO1xuaW1wb3J0IHsgcHVibGlzaCB9IGZyb20gJy4vcHVibGlzaCc7XG5pbXBvcnQgeyBBc3NldE1hbmlmZXN0IH0gZnJvbSAnLi4vbGliJztcblxuYXN5bmMgZnVuY3Rpb24gbWFpbigpIHtcbiAgY29uc3QgYXJndiA9IHlhcmdzXG4gICAgLnVzYWdlKCckMCA8Y21kPiBbYXJnc10nKVxuICAgIC5vcHRpb24oJ3ZlcmJvc2UnLCB7XG4gICAgICBhbGlhczogJ3YnLFxuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgZGVzYzogJ0luY3JlYXNlIGxvZ2dpbmcgdmVyYm9zaXR5JyxcbiAgICAgIGNvdW50OiB0cnVlLFxuICAgICAgZGVmYXVsdDogMCxcbiAgICB9KVxuICAgIC5vcHRpb24oJ3BhdGgnLCB7XG4gICAgICBhbGlhczogJ3AnLFxuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICBkZXNjOlxuICAgICAgICAnVGhlIHBhdGggKGZpbGUgb3IgZGlyZWN0b3J5KSB0byBsb2FkIHRoZSBhc3NldHMgZnJvbS4gSWYgYSBkaXJlY3RvcnksICcgK1xuICAgICAgICBgdGhlIGZpbGUgJyR7QXNzZXRNYW5pZmVzdC5ERUZBVUxUX0ZJTEVOQU1FfScgd2lsbCBiZSBsb2FkZWQgZnJvbSBpdC5gLFxuICAgICAgZGVmYXVsdDogJy4nLFxuICAgICAgcmVxdWlyZXNBcmc6IHRydWUsXG4gICAgfSlcbiAgICAuY29tbWFuZChcbiAgICAgICdscycsXG4gICAgICAnTGlzdCBhc3NldHMgZnJvbSB0aGUgZ2l2ZW4gbWFuaWZlc3QnLFxuICAgICAgKGNvbW1hbmQpID0+IGNvbW1hbmQsXG4gICAgICB3cmFwSGFuZGxlcihhc3luYyAoYXJncykgPT4ge1xuICAgICAgICBhd2FpdCBsaXN0KGFyZ3MpO1xuICAgICAgfSlcbiAgICApXG4gICAgLmNvbW1hbmQoXG4gICAgICAncHVibGlzaCBbQVNTRVQuLl0nLFxuICAgICAgJ1B1Ymxpc2ggYXNzZXRzIGluIHRoZSBnaXZlbiBtYW5pZmVzdCcsXG4gICAgICAoY29tbWFuZCkgPT5cbiAgICAgICAgY29tbWFuZFxuICAgICAgICAgIC5vcHRpb24oJ3Byb2ZpbGUnLCB7XG4gICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgIGRlc2NyaWJlOiAnUHJvZmlsZSB0byB1c2UgZnJvbSBBV1MgQ3JlZGVudGlhbHMgZmlsZScsXG4gICAgICAgICAgfSlcbiAgICAgICAgICAucG9zaXRpb25hbCgnQVNTRVQnLCB7XG4gICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgIGFycmF5OiB0cnVlLFxuICAgICAgICAgICAgZGVzY3JpYmU6ICdBc3NldHMgdG8gcHVibGlzaCAoZm9ybWF0OiBcIkFTU0VUWzpERVNUXVwiKSwgZGVmYXVsdCBhbGwnLFxuICAgICAgICAgIH0pLFxuICAgICAgd3JhcEhhbmRsZXIoYXN5bmMgKGFyZ3MpID0+IHtcbiAgICAgICAgYXdhaXQgcHVibGlzaCh7XG4gICAgICAgICAgcGF0aDogYXJncy5wYXRoLFxuICAgICAgICAgIGFzc2V0czogYXJncy5BU1NFVCxcbiAgICAgICAgICBwcm9maWxlOiBhcmdzLnByb2ZpbGUsXG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICApXG4gICAgLmRlbWFuZENvbW1hbmQoKVxuICAgIC5oZWxwKClcbiAgICAuc3RyaWN0KCkgLy8gRXJyb3Igb24gd3JvbmcgY29tbWFuZFxuICAgIC52ZXJzaW9uKFZFUlNJT04pXG4gICAgLnNob3dIZWxwT25GYWlsKGZhbHNlKS5hcmd2O1xuXG4gIC8vIEV2YWx1YXRpbmcgLmFyZ3YgdHJpZ2dlcnMgdGhlIHBhcnNpbmcgYnV0IHRoZSBjb21tYW5kIGdldHMgaW1wbGljaXRseSBleGVjdXRlZCxcbiAgLy8gc28gd2UgZG9uJ3QgbmVlZCB0aGUgb3V0cHV0LlxuICBBcnJheS5pc0FycmF5KGFyZ3YpO1xufVxuXG4vKipcbiAqIFdyYXAgYSBjb21tYW5kJ3MgaGFuZGxlciB3aXRoIHN0YW5kYXJkIHByZS0gYW5kIHBvc3Qtd29ya1xuICovXG5mdW5jdGlvbiB3cmFwSGFuZGxlcjxBIGV4dGVuZHMgeyB2ZXJib3NlPzogbnVtYmVyIH0sIFI+KGhhbmRsZXI6ICh4OiBBKSA9PiBQcm9taXNlPFI+KSB7XG4gIHJldHVybiBhc3luYyAoYXJndjogQSkgPT4ge1xuICAgIGlmIChhcmd2LnZlcmJvc2UpIHtcbiAgICAgIHNldExvZ1RocmVzaG9sZCgndmVyYm9zZScpO1xuICAgIH1cbiAgICBhd2FpdCBoYW5kbGVyKGFyZ3YpO1xuICB9O1xufVxuXG5tYWluKCkuY2F0Y2goKGUpID0+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgY29uc29sZS5lcnJvcihlLnN0YWNrKTtcbiAgcHJvY2Vzcy5leGl0Q29kZSA9IDE7XG59KTtcbiJdfQ==
|
|
@@ -31,9 +31,9 @@ async function main() {
|
|
|
31
31
|
// Write the credentials back to stdout
|
|
32
32
|
fs.writeFileSync(1, JSON.stringify(credentials));
|
|
33
33
|
}
|
|
34
|
-
main().catch(e => {
|
|
34
|
+
main().catch((e) => {
|
|
35
35
|
// eslint-disable-next-line no-console
|
|
36
36
|
console.error(e.stack);
|
|
37
37
|
process.exitCode = 1;
|
|
38
38
|
});
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9ja2VyLWNyZWRlbnRpYWwtY2RrLWFzc2V0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRvY2tlci1jcmVkZW50aWFsLWNkay1hc3NldHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOztBQUVILHlCQUF5QjtBQUN6QixnQ0FBMEM7QUFFMUMsMEVBSTJDO0FBRTNDLEtBQUssVUFBVSxJQUFJO0lBQ2pCLDRGQUE0RjtJQUM1RixrRUFBa0U7SUFDbEUsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUUsQ0FBQztRQUMzRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFBLHlDQUFvQixHQUFFLENBQUM7SUFDdEMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsSUFBQSw2Q0FBd0IsR0FBRSxFQUFFLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBRUQsc0NBQXNDO0lBQ3RDLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDaEUsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFBLGdEQUEyQixFQUFDLElBQUksc0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDaEcsdUNBQXVDO0lBQ3ZDLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztBQUNuRCxDQUFDO0FBRUQsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7SUFDakIsc0NBQXNDO0lBQ3RDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLE9BQU8sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBEb2NrZXIgQ3JlZGVudGlhbCBIZWxwZXIgdG8gcmV0cmlldmUgY3JlZGVudGlhbHMgYmFzZWQgb24gYW4gZXh0ZXJuYWwgY29uZmlndXJhdGlvbiBmaWxlLlxuICogU3VwcG9ydHMgbG9hZGluZyBjcmVkZW50aWFscyBmcm9tIEVDUiByZXBvc2l0b3JpZXMgYW5kIGZyb20gU2VjcmV0cyBNYW5hZ2VyLFxuICogb3B0aW9uYWxseSB2aWEgYW4gYXNzdW1lZCByb2xlLlxuICpcbiAqIFRoZSBvbmx5IG9wZXJhdGlvbiBjdXJyZW50bHkgc3VwcG9ydGVkIGJ5IHRoaXMgY3JlZGVudGlhbCBoZWxwZXIgYXQgdGhpcyB0aW1lIGlzIHRoZSBgZ2V0YFxuICogY29tbWFuZCwgd2hpY2ggcmVjZWl2ZXMgYSBkb21haW4gbmFtZSBhcyBpbnB1dCBvbiBzdGRpbiBhbmQgcmV0dXJucyBhIFVzZXJuYW1lL1NlY3JldCBpblxuICogSlNPTiBmb3JtYXQgb24gc3Rkb3V0LlxuICpcbiAqIElNUE9SVEFOVCAtIFRoZSBjcmVkZW50aWFsIGhlbHBlciBtdXN0IG5vdCBvdXRwdXQgYW55dGhpbmcgZWxzZSBiZXNpZGVzIHRoZSBmaW5hbCBjcmVkZW50aWFsc1xuICogaW4gYW55IHN1Y2Nlc3MgY2FzZTsgZG9pbmcgc28gYnJlYWtzIGRvY2tlcidzIHBhcnNpbmcgb2YgdGhlIG91dHB1dCBhbmQgY2F1c2VzIHRoZSBsb2dpbiB0byBmYWlsLlxuICovXG5cbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCB7IERlZmF1bHRBd3NDbGllbnQgfSBmcm9tICcuLi9saWInO1xuXG5pbXBvcnQge1xuICBjZGtDcmVkZW50aWFsc0NvbmZpZyxcbiAgY2RrQ3JlZGVudGlhbHNDb25maWdGaWxlLFxuICBmZXRjaERvY2tlckxvZ2luQ3JlZGVudGlhbHMsXG59IGZyb20gJy4uL2xpYi9wcml2YXRlL2RvY2tlci1jcmVkZW50aWFscyc7XG5cbmFzeW5jIGZ1bmN0aW9uIG1haW4oKSB7XG4gIC8vIEV4cGVjdGVkIGludm9jYXRpb24gaXMgW25vZGUsIGRvY2tlci1jcmVkZW50aWFsLWNkay1hc3NldHMsIGdldF0gd2l0aCBpbnB1dCBmZWQgdmlhIFNURElOXG4gIC8vIEZvciBvdGhlciB2YWxpZCBkb2NrZXIgY29tbWFuZHMgKHN0b3JlLCBsaXN0LCBlcmFzZSksIHdlIG5vLW9wLlxuICBpZiAocHJvY2Vzcy5hcmd2Lmxlbmd0aCAhPT0gMyB8fCBwcm9jZXNzLmFyZ3ZbMl0gIT09ICdnZXQnKSB7XG4gICAgcHJvY2Vzcy5leGl0KDApO1xuICB9XG5cbiAgY29uc3QgY29uZmlnID0gY2RrQ3JlZGVudGlhbHNDb25maWcoKTtcbiAgaWYgKCFjb25maWcpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHVuYWJsZSB0byBmaW5kIENESyBEb2NrZXIgY3JlZGVudGlhbHMgYXQ6ICR7Y2RrQ3JlZGVudGlhbHNDb25maWdGaWxlKCl9YCk7XG4gIH1cblxuICAvLyBSZWFkIHRoZSBkb21haW4gdG8gZmV0Y2ggZnJvbSBzdGRpblxuICBsZXQgZW5kcG9pbnQgPSBmcy5yZWFkRmlsZVN5bmMoMCwgeyBlbmNvZGluZzogJ3V0Zi04JyB9KS50cmltKCk7XG4gIGNvbnN0IGNyZWRlbnRpYWxzID0gYXdhaXQgZmV0Y2hEb2NrZXJMb2dpbkNyZWRlbnRpYWxzKG5ldyBEZWZhdWx0QXdzQ2xpZW50KCksIGNvbmZpZywgZW5kcG9pbnQpO1xuICAvLyBXcml0ZSB0aGUgY3JlZGVudGlhbHMgYmFjayB0byBzdGRvdXRcbiAgZnMud3JpdGVGaWxlU3luYygxLCBKU09OLnN0cmluZ2lmeShjcmVkZW50aWFscykpO1xufVxuXG5tYWluKCkuY2F0Y2goKGUpID0+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgY29uc29sZS5lcnJvcihlLnN0YWNrKTtcbiAgcHJvY2Vzcy5leGl0Q29kZSA9IDE7XG59KTtcbiJdfQ==
|
package/bin/list.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.list =
|
|
3
|
+
exports.list = list;
|
|
4
4
|
const lib_1 = require("../lib");
|
|
5
5
|
async function list(args) {
|
|
6
6
|
const manifest = lib_1.AssetManifest.fromPath(args.path);
|
|
7
7
|
// eslint-disable-next-line no-console
|
|
8
8
|
console.log(manifest.list().join('\n'));
|
|
9
9
|
}
|
|
10
|
-
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImxpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsZ0NBQXVDO0FBRWhDLEtBQUssVUFBVSxJQUFJLENBQUMsSUFFMUI7SUFDQyxNQUFNLFFBQVEsR0FBRyxtQkFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkQsc0NBQXNDO0lBQ3RDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQzFDLENBQUM7QUFORCxvQkFNQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzc2V0TWFuaWZlc3QgfSBmcm9tICcuLi9saWInO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbGlzdChhcmdzOiB7XG4gIHBhdGg6IHN0cmluZztcbn0pIHtcbiAgY29uc3QgbWFuaWZlc3QgPSBBc3NldE1hbmlmZXN0LmZyb21QYXRoKGFyZ3MucGF0aCk7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gIGNvbnNvbGUubG9nKG1hbmlmZXN0Lmxpc3QoKS5qb2luKCdcXG4nKSk7XG59Il19
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImxpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQSxvQkFJQztBQU5ELGdDQUF1QztBQUVoQyxLQUFLLFVBQVUsSUFBSSxDQUFDLElBQXNCO0lBQy9DLE1BQU0sUUFBUSxHQUFHLG1CQUFhLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuRCxzQ0FBc0M7SUFDdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDMUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzc2V0TWFuaWZlc3QgfSBmcm9tICcuLi9saWInO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbGlzdChhcmdzOiB7IHBhdGg6IHN0cmluZyB9KSB7XG4gIGNvbnN0IG1hbmlmZXN0ID0gQXNzZXRNYW5pZmVzdC5mcm9tUGF0aChhcmdzLnBhdGgpO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICBjb25zb2xlLmxvZyhtYW5pZmVzdC5saXN0KCkuam9pbignXFxuJykpO1xufVxuIl19
|
package/bin/logging.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.VERSION = void 0;
|
|
4
|
+
exports.setLogThreshold = setLogThreshold;
|
|
5
|
+
exports.log = log;
|
|
4
6
|
const fs = require("fs");
|
|
5
7
|
const path = require("path");
|
|
6
8
|
let logThreshold = 'info';
|
|
@@ -13,12 +15,10 @@ const LOG_LEVELS = {
|
|
|
13
15
|
function setLogThreshold(threshold) {
|
|
14
16
|
logThreshold = threshold;
|
|
15
17
|
}
|
|
16
|
-
exports.setLogThreshold = setLogThreshold;
|
|
17
18
|
function log(level, message) {
|
|
18
19
|
if (LOG_LEVELS[level] >= LOG_LEVELS[logThreshold]) {
|
|
19
20
|
// eslint-disable-next-line no-console
|
|
20
21
|
console.error(`${level.padEnd(7, ' ')}: ${message}`);
|
|
21
22
|
}
|
|
22
23
|
}
|
|
23
|
-
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImxvZ2dpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUJBQXlCO0FBQ3pCLDZCQUE2QjtBQUc3QixJQUFJLFlBQVksR0FBYSxNQUFNLENBQUM7QUFFdkIsUUFBQSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxjQUFjLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0FBRTlILE1BQU0sVUFBVSxHQUE2QjtJQUMzQyxPQUFPLEVBQUUsQ0FBQztJQUNWLElBQUksRUFBRSxDQUFDO0lBQ1AsS0FBSyxFQUFFLENBQUM7Q0FDVCxDQUFDO0FBRUYsU0FBZ0IsZUFBZSxDQUFDLFNBQW1CO0lBQ2pELFlBQVksR0FBRyxTQUFTLENBQUM7QUFDM0IsQ0FBQztBQUZELDBDQUVDO0FBRUQsU0FBZ0IsR0FBRyxDQUFDLEtBQWUsRUFBRSxPQUFlO0lBQ2xELElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLFVBQVUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1FBQ2xELHNDQUFzQztRQUN0QyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEtBQUssT0FBTyxFQUFFLENBQUMsQ0FBQztJQUN2RCxDQUFDO0FBQ0gsQ0FBQztBQUxELGtCQUtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcblxuZXhwb3J0IHR5cGUgTG9nTGV2ZWwgPSAndmVyYm9zZScgfCAnaW5mbycgfCAnZXJyb3InO1xubGV0IGxvZ1RocmVzaG9sZDogTG9nTGV2ZWwgPSAnaW5mbyc7XG5cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMocGF0aC5qb2luKF9fZGlybmFtZSwgJy4uJywgJ3BhY2thZ2UuanNvbicpLCB7IGVuY29kaW5nOiAndXRmLTgnIH0pKS52ZXJzaW9uO1xuXG5jb25zdCBMT0dfTEVWRUxTOiBSZWNvcmQ8TG9nTGV2ZWwsIG51bWJlcj4gPSB7XG4gIHZlcmJvc2U6IDEsXG4gIGluZm86IDIsXG4gIGVycm9yOiAzLFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHNldExvZ1RocmVzaG9sZCh0aHJlc2hvbGQ6IExvZ0xldmVsKSB7XG4gIGxvZ1RocmVzaG9sZCA9IHRocmVzaG9sZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvZyhsZXZlbDogTG9nTGV2ZWwsIG1lc3NhZ2U6IHN0cmluZykge1xuICBpZiAoTE9HX0xFVkVMU1tsZXZlbF0gPj0gTE9HX0xFVkVMU1tsb2dUaHJlc2hvbGRdKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICBjb25zb2xlLmVycm9yKGAke2xldmVsLnBhZEVuZCg3LCAnICcpfTogJHttZXNzYWdlfWApO1xuICB9XG59Il19
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImxvZ2dpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBZ0JBLDBDQUVDO0FBRUQsa0JBS0M7QUF6QkQseUJBQXlCO0FBQ3pCLDZCQUE2QjtBQUc3QixJQUFJLFlBQVksR0FBYSxNQUFNLENBQUM7QUFFdkIsUUFBQSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDL0IsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsY0FBYyxDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FDbkYsQ0FBQyxPQUFPLENBQUM7QUFFVixNQUFNLFVBQVUsR0FBNkI7SUFDM0MsT0FBTyxFQUFFLENBQUM7SUFDVixJQUFJLEVBQUUsQ0FBQztJQUNQLEtBQUssRUFBRSxDQUFDO0NBQ1QsQ0FBQztBQUVGLFNBQWdCLGVBQWUsQ0FBQyxTQUFtQjtJQUNqRCxZQUFZLEdBQUcsU0FBUyxDQUFDO0FBQzNCLENBQUM7QUFFRCxTQUFnQixHQUFHLENBQUMsS0FBZSxFQUFFLE9BQWU7SUFDbEQsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksVUFBVSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7UUFDbEQsc0NBQXNDO1FBQ3RDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsS0FBSyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcblxuZXhwb3J0IHR5cGUgTG9nTGV2ZWwgPSAndmVyYm9zZScgfCAnaW5mbycgfCAnZXJyb3InO1xubGV0IGxvZ1RocmVzaG9sZDogTG9nTGV2ZWwgPSAnaW5mbyc7XG5cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gSlNPTi5wYXJzZShcbiAgZnMucmVhZEZpbGVTeW5jKHBhdGguam9pbihfX2Rpcm5hbWUsICcuLicsICdwYWNrYWdlLmpzb24nKSwgeyBlbmNvZGluZzogJ3V0Zi04JyB9KVxuKS52ZXJzaW9uO1xuXG5jb25zdCBMT0dfTEVWRUxTOiBSZWNvcmQ8TG9nTGV2ZWwsIG51bWJlcj4gPSB7XG4gIHZlcmJvc2U6IDEsXG4gIGluZm86IDIsXG4gIGVycm9yOiAzLFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHNldExvZ1RocmVzaG9sZCh0aHJlc2hvbGQ6IExvZ0xldmVsKSB7XG4gIGxvZ1RocmVzaG9sZCA9IHRocmVzaG9sZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvZyhsZXZlbDogTG9nTGV2ZWwsIG1lc3NhZ2U6IHN0cmluZykge1xuICBpZiAoTE9HX0xFVkVMU1tsZXZlbF0gPj0gTE9HX0xFVkVMU1tsb2dUaHJlc2hvbGRdKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICBjb25zb2xlLmVycm9yKGAke2xldmVsLnBhZEVuZCg3LCAnICcpfTogJHttZXNzYWdlfWApO1xuICB9XG59XG4iXX0=
|
package/bin/publish.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.publish =
|
|
3
|
+
exports.publish = publish;
|
|
4
4
|
const logging_1 = require("./logging");
|
|
5
5
|
const lib_1 = require("../lib");
|
|
6
6
|
async function publish(args) {
|
|
7
7
|
let manifest = lib_1.AssetManifest.fromPath(args.path);
|
|
8
8
|
(0, logging_1.log)('verbose', `Loaded manifest from ${args.path}: ${manifest.entries.length} assets found`);
|
|
9
9
|
if (args.assets && args.assets.length > 0) {
|
|
10
|
-
const selection = args.assets.map(a => lib_1.DestinationPattern.parse(a));
|
|
10
|
+
const selection = args.assets.map((a) => lib_1.DestinationPattern.parse(a));
|
|
11
11
|
manifest = manifest.select(selection);
|
|
12
12
|
(0, logging_1.log)('verbose', `Applied selection: ${manifest.entries.length} assets selected.`);
|
|
13
13
|
}
|
|
@@ -25,7 +25,6 @@ async function publish(args) {
|
|
|
25
25
|
process.exitCode = 1;
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
-
exports.publish = publish;
|
|
29
28
|
const EVENT_TO_LEVEL = {
|
|
30
29
|
build: 'verbose',
|
|
31
30
|
cached: 'verbose',
|
|
@@ -42,4 +41,4 @@ class ConsoleProgress {
|
|
|
42
41
|
(0, logging_1.log)(EVENT_TO_LEVEL[type], `[${event.percentComplete}%] ${type}: ${event.message}`);
|
|
43
42
|
}
|
|
44
43
|
}
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInB1Ymxpc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFXQSwwQkEwQkM7QUFyQ0QsdUNBQTBDO0FBQzFDLGdDQVFnQjtBQUVULEtBQUssVUFBVSxPQUFPLENBQUMsSUFBMkQ7SUFDdkYsSUFBSSxRQUFRLEdBQUcsbUJBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pELElBQUEsYUFBRyxFQUFDLFNBQVMsRUFBRSx3QkFBd0IsSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sZUFBZSxDQUFDLENBQUM7SUFFN0YsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzFDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyx3QkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RSxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN0QyxJQUFBLGFBQUcsRUFBQyxTQUFTLEVBQUUsc0JBQXNCLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxtQkFBbUIsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRCxNQUFNLEdBQUcsR0FBRyxJQUFJLHFCQUFlLENBQUMsUUFBUSxFQUFFO1FBQ3hDLEdBQUcsRUFBRSxJQUFJLHNCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDdkMsZ0JBQWdCLEVBQUUsSUFBSSxlQUFlLEVBQUU7UUFDdkMsWUFBWSxFQUFFLEtBQUs7S0FDcEIsQ0FBQyxDQUFDO0lBRUgsTUFBTSxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7SUFFcEIsSUFBSSxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEIsS0FBSyxNQUFNLE9BQU8sSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkMsc0NBQXNDO1lBQ3RDLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakQsQ0FBQztRQUVELE9BQU8sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7QUFDSCxDQUFDO0FBRUQsTUFBTSxjQUFjLEdBQWdDO0lBQ2xELEtBQUssRUFBRSxTQUFTO0lBQ2hCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLEtBQUssRUFBRSxTQUFTO0lBQ2hCLEtBQUssRUFBRSxTQUFTO0lBQ2hCLElBQUksRUFBRSxPQUFPO0lBQ2IsS0FBSyxFQUFFLFNBQVM7SUFDaEIsS0FBSyxFQUFFLE1BQU07SUFDYixPQUFPLEVBQUUsTUFBTTtJQUNmLE1BQU0sRUFBRSxTQUFTO0NBQ2xCLENBQUM7QUFFRixNQUFNLGVBQWU7SUFDWixjQUFjLENBQUMsSUFBZSxFQUFFLEtBQXVCO1FBQzVELElBQUEsYUFBRyxFQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEtBQUssQ0FBQyxlQUFlLE1BQU0sSUFBSSxLQUFLLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGxvZywgTG9nTGV2ZWwgfSBmcm9tICcuL2xvZ2dpbmcnO1xuaW1wb3J0IHtcbiAgQXNzZXRNYW5pZmVzdCxcbiAgQXNzZXRQdWJsaXNoaW5nLFxuICBEZWZhdWx0QXdzQ2xpZW50LFxuICBEZXN0aW5hdGlvblBhdHRlcm4sXG4gIEV2ZW50VHlwZSxcbiAgSVB1Ymxpc2hQcm9ncmVzcyxcbiAgSVB1Ymxpc2hQcm9ncmVzc0xpc3RlbmVyLFxufSBmcm9tICcuLi9saWInO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHVibGlzaChhcmdzOiB7IHBhdGg6IHN0cmluZzsgYXNzZXRzPzogc3RyaW5nW107IHByb2ZpbGU/OiBzdHJpbmcgfSkge1xuICBsZXQgbWFuaWZlc3QgPSBBc3NldE1hbmlmZXN0LmZyb21QYXRoKGFyZ3MucGF0aCk7XG4gIGxvZygndmVyYm9zZScsIGBMb2FkZWQgbWFuaWZlc3QgZnJvbSAke2FyZ3MucGF0aH06ICR7bWFuaWZlc3QuZW50cmllcy5sZW5ndGh9IGFzc2V0cyBmb3VuZGApO1xuXG4gIGlmIChhcmdzLmFzc2V0cyAmJiBhcmdzLmFzc2V0cy5sZW5ndGggPiAwKSB7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gYXJncy5hc3NldHMubWFwKChhKSA9PiBEZXN0aW5hdGlvblBhdHRlcm4ucGFyc2UoYSkpO1xuICAgIG1hbmlmZXN0ID0gbWFuaWZlc3Quc2VsZWN0KHNlbGVjdGlvbik7XG4gICAgbG9nKCd2ZXJib3NlJywgYEFwcGxpZWQgc2VsZWN0aW9uOiAke21hbmlmZXN0LmVudHJpZXMubGVuZ3RofSBhc3NldHMgc2VsZWN0ZWQuYCk7XG4gIH1cblxuICBjb25zdCBwdWIgPSBuZXcgQXNzZXRQdWJsaXNoaW5nKG1hbmlmZXN0LCB7XG4gICAgYXdzOiBuZXcgRGVmYXVsdEF3c0NsaWVudChhcmdzLnByb2ZpbGUpLFxuICAgIHByb2dyZXNzTGlzdGVuZXI6IG5ldyBDb25zb2xlUHJvZ3Jlc3MoKSxcbiAgICB0aHJvd09uRXJyb3I6IGZhbHNlLFxuICB9KTtcblxuICBhd2FpdCBwdWIucHVibGlzaCgpO1xuXG4gIGlmIChwdWIuaGFzRmFpbHVyZXMpIHtcbiAgICBmb3IgKGNvbnN0IGZhaWx1cmUgb2YgcHViLmZhaWx1cmVzKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgY29uc29sZS5lcnJvcignRmFpbHVyZTonLCBmYWlsdXJlLmVycm9yLnN0YWNrKTtcbiAgICB9XG5cbiAgICBwcm9jZXNzLmV4aXRDb2RlID0gMTtcbiAgfVxufVxuXG5jb25zdCBFVkVOVF9UT19MRVZFTDogUmVjb3JkPEV2ZW50VHlwZSwgTG9nTGV2ZWw+ID0ge1xuICBidWlsZDogJ3ZlcmJvc2UnLFxuICBjYWNoZWQ6ICd2ZXJib3NlJyxcbiAgY2hlY2s6ICd2ZXJib3NlJyxcbiAgZGVidWc6ICd2ZXJib3NlJyxcbiAgZmFpbDogJ2Vycm9yJyxcbiAgZm91bmQ6ICd2ZXJib3NlJyxcbiAgc3RhcnQ6ICdpbmZvJyxcbiAgc3VjY2VzczogJ2luZm8nLFxuICB1cGxvYWQ6ICd2ZXJib3NlJyxcbn07XG5cbmNsYXNzIENvbnNvbGVQcm9ncmVzcyBpbXBsZW1lbnRzIElQdWJsaXNoUHJvZ3Jlc3NMaXN0ZW5lciB7XG4gIHB1YmxpYyBvblB1Ymxpc2hFdmVudCh0eXBlOiBFdmVudFR5cGUsIGV2ZW50OiBJUHVibGlzaFByb2dyZXNzKTogdm9pZCB7XG4gICAgbG9nKEVWRU5UX1RPX0xFVkVMW3R5cGVdLCBgWyR7ZXZlbnQucGVyY2VudENvbXBsZXRlfSVdICR7dHlwZX06ICR7ZXZlbnQubWVzc2FnZX1gKTtcbiAgfVxufVxuIl19
|
package/lib/asset-manifest.js
CHANGED
|
@@ -53,10 +53,14 @@ class AssetManifest {
|
|
|
53
53
|
if (selection === undefined) {
|
|
54
54
|
return this;
|
|
55
55
|
}
|
|
56
|
-
const ret = {
|
|
56
|
+
const ret = {
|
|
57
|
+
version: this.manifest.version,
|
|
58
|
+
dockerImages: {},
|
|
59
|
+
files: {},
|
|
60
|
+
};
|
|
57
61
|
for (const assetType of ASSET_TYPES) {
|
|
58
62
|
for (const [assetId, asset] of Object.entries(this.manifest[assetType] || {})) {
|
|
59
|
-
const filteredDestinations = filterDict(asset.destinations, (_, destId) => selection.some(sel => sel.matches(new DestinationIdentifier(assetId, destId))));
|
|
63
|
+
const filteredDestinations = filterDict(asset.destinations, (_, destId) => selection.some((sel) => sel.matches(new DestinationIdentifier(assetId, destId))));
|
|
60
64
|
if (Object.keys(filteredDestinations).length > 0) {
|
|
61
65
|
ret[assetType][assetId] = {
|
|
62
66
|
...asset,
|
|
@@ -198,7 +202,7 @@ class DestinationPattern {
|
|
|
198
202
|
if (!s) {
|
|
199
203
|
throw new Error('Empty string is not a valid destination identifier');
|
|
200
204
|
}
|
|
201
|
-
const parts = s.split(':').map(x => x !== '*' ? x : undefined);
|
|
205
|
+
const parts = s.split(':').map((x) => (x !== '*' ? x : undefined));
|
|
202
206
|
if (parts.length === 1) {
|
|
203
207
|
return new DestinationPattern(parts[0]);
|
|
204
208
|
}
|
|
@@ -215,8 +219,8 @@ class DestinationPattern {
|
|
|
215
219
|
* Whether or not this pattern matches the given identifier
|
|
216
220
|
*/
|
|
217
221
|
matches(id) {
|
|
218
|
-
return (this.assetId === undefined || this.assetId === id.assetId)
|
|
219
|
-
|
|
222
|
+
return ((this.assetId === undefined || this.assetId === id.assetId) &&
|
|
223
|
+
(this.destinationId === undefined || this.destinationId === id.destinationId));
|
|
220
224
|
}
|
|
221
225
|
/**
|
|
222
226
|
* Return a string representation for this asset identifier
|
|
@@ -238,4 +242,4 @@ function prefixTreeChars(xs, prefix = '') {
|
|
|
238
242
|
}
|
|
239
243
|
return ret;
|
|
240
244
|
}
|
|
241
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtbWFuaWZlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhc3NldC1tYW5pZmVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLDBFQUd3QztBQUV4Qzs7R0FFRztBQUNILE1BQWEsYUFBYTtJQU14Qjs7T0FFRztJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBZ0I7UUFDckMsSUFBSSxDQUFDO1lBQ0gsTUFBTSxHQUFHLEdBQUcsZ0NBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNqRCxPQUFPLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDeEQsQ0FBQztRQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsUUFBUSxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQzNFLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBZ0I7UUFDckMsSUFBSSxFQUFFLENBQUM7UUFDUCxJQUFJLENBQUM7WUFDSCxFQUFFLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3QixDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxRQUFRLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDL0UsQ0FBQztRQUNELElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDckIsT0FBTyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFDckYsQ0FBQztRQUNE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Q0FBQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQge1xuICBBc3NldE1hbmlmZXN0IGFzIEFzc2V0TWFuaWZlc3RTY2hlbWEsIERvY2tlckltYWdlRGVzdGluYXRpb24sIERvY2tlckltYWdlU291cmNlLFxuICBGaWxlRGVzdGluYXRpb24sIEZpbGVTb3VyY2UsIE1hbmlmZXN0LFxufSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuXG4vKipcbiAqIEEgbWFuaWZlc3Qgb2YgYXNzZXRzXG4gKi9cbmV4cG9ydCBjbGFzcyBBc3NldE1hbmlmZXN0IHtcbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IG5hbWUgb2YgdGhlIGFzc2V0IG1hbmlmZXN0IGluIGEgY2RrLm91dCBkaXJlY3RvcnlcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9GSUxFTkFNRSA9ICdhc3NldHMuanNvbic7XG5cbiAgLyoqXG4gICAqIExvYWQgYW4gYXNzZXQgbWFuaWZlc3QgZnJvbSB0aGUgZ2l2ZW4gZmlsZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tRmlsZShmaWxlTmFtZTogc3RyaW5nKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG9iaiA9IE1hbmlmZXN0LmxvYWRBc3NldE1hbmlmZXN0KGZpbGVOYW1lKTtcbiAgICAgIHJldHVybiBuZXcgQXNzZXRNYW5pZmVzdChwYXRoLmRpcm5hbWUoZmlsZU5hbWUpLCBvYmopO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5vdCByZWFkIGFzc2V0IG1hbmlmZXN0ICcke2ZpbGVOYW1lfSc6ICR7ZS5tZXNzYWdlfWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIGFuIGFzc2V0IG1hbmlmZXN0IGZyb20gdGhlIGdpdmVuIGZpbGUgb3IgZGlyZWN0b3J5XG4gICAqXG4gICAqIElmIHRoZSBhcmd1bWVudCBnaXZlbiBpcyBhIGRpcmVjdG95LCB0aGUgZGVmYXVsdCBhc3NldCBmaWxlIG5hbWUgd2lsbCBiZSB1c2VkLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tUGF0aChmaWxlUGF0aDogc3RyaW5nKSB7XG4gICAgbGV0IHN0O1xuICAgIHRyeSB7XG4gICAgICBzdCA9IGZzLnN0YXRTeW5jKGZpbGVQYXRoKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IHJlYWQgYXNzZXQgbWFuaWZlc3QgYXQgJyR7ZmlsZVBhdGh9JzogJHtlLm1lc3NhZ2V9YCk7XG4gICAgfVxuICAgIGlmIChzdC5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICByZXR1cm4gQXNzZXRNYW5pZmVzdC5mcm9tRmlsZShwYXRoLmpvaW4oZmlsZVBhdGgsIEFzc2V0TWFuaWZlc3QuREVGQVVMVF9GSUxFTkFNRSkpO1xuICAgIH1cbiAgICByZXR1cm4gQXNzZXRNYW5pZmVzdC5mcm9tRmlsZShmaWxlUGF0aCk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGRpcmVjdG9yeSB3aGVyZSB0aGUgbWFuaWZlc3Qgd2FzIGZvdW5kXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGlyZWN0b3J5OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoZGlyZWN0b3J5OiBzdHJpbmcsIHByaXZhdGUgcmVhZG9ubHkgbWFuaWZlc3Q6IEFzc2V0TWFuaWZlc3RTY2hlbWEpIHtcbiAgICB0aGlzLmRpcmVjdG9yeSA9IGRpcmVjdG9yeTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZWxlY3QgYSBzdWJzZXQgb2YgYXNzZXRzIGFuZCBkZXN0aW5hdGlvbnMgZnJvbSB0aGlzIG1hbmlmZXN0LlxuICAgKlxuICAgKiBPbmx5IGFzc2V0cyB3aXRoIGF0IGxlYXN0IDEgc2VsZWN0ZWQgZGVzdGluYXRpb24gYXJlIHJldGFpbmVkLlxuICAgKlxuICAgKiBJZiBzZWxlY3Rpb24gaXMgbm90IGdpdmVuLCBldmVyeXRoaW5nIGlzIHJldHVybmVkLlxuICAgKi9cbiAgcHVibGljIHNlbGVjdChzZWxlY3Rpb24/OiBEZXN0aW5hdGlvblBhdHRlcm5bXSk6IEFzc2V0TWFuaWZlc3Qge1xuICAgIGlmIChzZWxlY3Rpb24gPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdGhpczsgfVxuXG4gICAgY29uc3QgcmV0OiBBc3NldE1hbmlmZXN0U2NoZW1hICYgUmVxdWlyZWQ8UGljazxBc3NldE1hbmlmZXN0U2NoZW1hLCBBc3NldFR5cGU+PlxuICAgICA9IHsgdmVyc2lvbjogdGhpcy5tYW5pZmVzdC52ZXJzaW9uLCBkb2NrZXJJbWFnZXM6IHt9LCBmaWxlczoge30gfTtcblxuICAgIGZvciAoY29uc3QgYXNzZXRUeXBlIG9mIEFTU0VUX1RZUEVTKSB7XG4gICAgICBmb3IgKGNvbnN0IFthc3NldElkLCBhc3NldF0gb2YgT2JqZWN0LmVudHJpZXModGhpcy5tYW5pZmVzdFthc3NldFR5cGVdIHx8IHt9KSkge1xuICAgICAgICBjb25zdCBmaWx0ZXJlZERlc3RpbmF0aW9ucyA9IGZpbHRlckRpY3QoXG4gICAgICAgICAgYXNzZXQuZGVzdGluYXRpb25zLFxuICAgICAgICAgIChfLCBkZXN0SWQpID0+IHNlbGVjdGlvbi5zb21lKHNlbCA9PiBzZWwubWF0Y2hlcyhuZXcgRGVzdGluYXRpb25JZGVudGlmaWVyKGFzc2V0SWQsIGRlc3RJZCkpKSk7XG5cbiAgICAgICAgaWYgKE9iamVjdC5rZXlzKGZpbHRlcmVkRGVzdGluYXRpb25zKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcmV0W2Fzc2V0VHlwZV1bYXNzZXRJZF0gPSB7XG4gICAgICAgICAgICAuLi5hc3NldCxcbiAgICAgICAgICAgIGRlc3RpbmF0aW9uczogZmlsdGVyZWREZXN0aW5hdGlvbnMsXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXcgQXNzZXRNYW5pZmVzdCh0aGlzLmRpcmVjdG9yeSwgcmV0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXNjcmliZSB0aGUgYXNzZXQgbWFuaWZlc3QgYXMgYSBsaXN0IG9mIHN0cmluZ3NcbiAgICovXG4gIHB1YmxpYyBsaXN0KCkge1xuICAgIHJldHVybiBbXG4gICAgICAuLi5kZXNjcmliZUFzc2V0cygnZmlsZScsIHRoaXMubWFuaWZlc3QuZmlsZXMgfHwge30pLFxuICAgICAgLi4uZGVzY3JpYmVBc3NldHMoJ2RvY2tlci1pbWFnZScsIHRoaXMubWFuaWZlc3QuZG9ja2VySW1hZ2VzIHx8IHt9KSxcbiAgICBdO1xuXG4gICAgZnVuY3Rpb24gZGVzY3JpYmVBc3NldHModHlwZTogc3RyaW5nLCBhc3NldHM6IFJlY29yZDxzdHJpbmcsIHsgc291cmNlOiBhbnk7IGRlc3RpbmF0aW9uczogUmVjb3JkPHN0cmluZywgYW55PiB9Pikge1xuICAgICAgY29uc3QgcmV0ID0gbmV3IEFycmF5PHN0cmluZz4oKTtcbiAgICAgIGZvciAoY29uc3QgW2Fzc2V0SWQsIGFzc2V0XSBvZiBPYmplY3QuZW50cmllcyhhc3NldHMgfHwge30pKSB7XG4gICAgICAgIHJldC5wdXNoKGAke2Fzc2V0SWR9ICR7dHlwZX0gJHtKU09OLnN0cmluZ2lmeShhc3NldC5zb3VyY2UpfWApO1xuXG4gICAgICAgIGNvbnN0IGRlc3RTdHJpbmdzID0gT2JqZWN0LmVudHJpZXMoYXNzZXQuZGVzdGluYXRpb25zKS5tYXAoKFtkZXN0SWQsIGRlc3RdKSA9PiBgICR7YXNzZXRJZH06JHtkZXN0SWR9ICR7SlNPTi5zdHJpbmdpZnkoZGVzdCl9YCk7XG4gICAgICAgIHJldC5wdXNoKC4uLnByZWZpeFRyZWVDaGFycyhkZXN0U3RyaW5ncywgJyAgJykpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJldDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTGlzdCBvZiBhc3NldHMgcGVyIGRlc3RpbmF0aW9uXG4gICAqXG4gICAqIFJldHVybnMgb25lIGFzc2V0IGZvciBldmVyeSBwdWJsaXNoYWJsZSBkZXN0aW5hdGlvbi4gTXVsdGlwbGUgYXNzZXRcbiAgICogZGVzdGluYXRpb25zIG1heSBzaGFyZSB0aGUgc2FtZSBhc3NldCBzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGVudHJpZXMoKTogSU1hbmlmZXN0RW50cnlbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLm1ha2VFbnRyaWVzKHRoaXMubWFuaWZlc3QuZmlsZXMgfHwge30sIEZpbGVNYW5pZmVzdEVudHJ5KSxcbiAgICAgIC4uLm1ha2VFbnRyaWVzKHRoaXMubWFuaWZlc3QuZG9ja2VySW1hZ2VzIHx8IHt9LCBEb2NrZXJJbWFnZU1hbmlmZXN0RW50cnkpLFxuICAgIF07XG4gIH1cblxuICAvKipcbiAgICogTGlzdCBvZiBmaWxlIGFzc2V0cywgc3BsYXQgb3V0IHRvIGRlc3RpbmF0aW9uc1xuICAgKi9cbiAgcHVibGljIGdldCBmaWxlcygpOiBGaWxlTWFuaWZlc3RFbnRyeVtdIHtcbiAgICByZXR1cm4gbWFrZUVudHJpZXModGhpcy5tYW5pZmVzdC5maWxlcyB8fCB7fSwgRmlsZU1hbmlmZXN0RW50cnkpO1xuICB9XG59XG5cbmZ1bmN0aW9uIG1ha2VFbnRyaWVzPEEsIEIsIEM+KFxuICBhc3NldHM6IFJlY29yZDxzdHJpbmcsIHsgc291cmNlOiBBOyBkZXN0aW5hdGlvbnM6IFJlY29yZDxzdHJpbmcsIEI+IH0+LFxuICBjdG9yOiBuZXcgKGlkOiBEZXN0aW5hdGlvbklkZW50aWZpZXIsIHNvdXJjZTogQSwgZGVzdGluYXRpb246IEIpID0+IEMpOiBDW10ge1xuXG4gIGNvbnN0IHJldCA9IG5ldyBBcnJheTxDPigpO1xuICBmb3IgKGNvbnN0IFthc3NldElkLCBhc3NldF0gb2YgT2JqZWN0LmVudHJpZXMoYXNzZXRzKSkge1xuICAgIGZvciAoY29uc3QgW2Rlc3RJZCwgZGVzdGluYXRpb25dIG9mIE9iamVjdC5lbnRyaWVzKGFzc2V0LmRlc3RpbmF0aW9ucykpIHtcbiAgICAgIHJldC5wdXNoKG5ldyBjdG9yKG5ldyBEZXN0aW5hdGlvbklkZW50aWZpZXIoYXNzZXRJZCwgZGVzdElkKSwgYXNzZXQuc291cmNlLCBkZXN0aW5hdGlvbikpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmV0O1xufVxuXG50eXBlIEFzc2V0VHlwZSA9ICdmaWxlcycgfCAnZG9ja2VySW1hZ2VzJztcblxuY29uc3QgQVNTRVRfVFlQRVM6IEFzc2V0VHlwZVtdID0gWydmaWxlcycsICdkb2NrZXJJbWFnZXMnXTtcblxuLyoqXG4gKiBBIHNpbmdsZSBhc3NldCBmcm9tIGFuIGFzc2V0IG1hbmlmZXN0J1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElNYW5pZmVzdEVudHJ5IHtcbiAgLyoqXG4gICAqIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCBhbmQgaXRzIGRlc3RpbmF0aW9uXG4gICAqL1xuICByZWFkb25seSBpZDogRGVzdGluYXRpb25JZGVudGlmaWVyO1xuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBhc3NldFxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUeXBlLWRlcGVuZGVudCBzb3VyY2UgZGF0YVxuICAgKi9cbiAgcmVhZG9ubHkgZ2VuZXJpY1NvdXJjZTogdW5rbm93bjtcblxuICAvKipcbiAgICogVHlwZS1kZXBlbmRlbnQgZGVzdGluYXRpb24gZGF0YVxuICAgKi9cbiAgcmVhZG9ubHkgZ2VuZXJpY0Rlc3RpbmF0aW9uOiB1bmtub3duO1xufVxuXG4vKipcbiAqIEEgbWFuaWZlc3QgZW50cnkgZm9yIGEgZmlsZSBhc3NldFxuICovXG5leHBvcnQgY2xhc3MgRmlsZU1hbmlmZXN0RW50cnkgaW1wbGVtZW50cyBJTWFuaWZlc3RFbnRyeSB7XG4gIHB1YmxpYyByZWFkb25seSBnZW5lcmljU291cmNlOiB1bmtub3duO1xuICBwdWJsaWMgcmVhZG9ubHkgZ2VuZXJpY0Rlc3RpbmF0aW9uOiB1bmtub3duO1xuICBwdWJsaWMgcmVhZG9ubHkgdHlwZSA9ICdmaWxlJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICAvKiogSWRlbnRpZmllciBmb3IgdGhpcyBhc3NldCAqL1xuICAgIHB1YmxpYyByZWFkb25seSBpZDogRGVzdGluYXRpb25JZGVudGlmaWVyLFxuICAgIC8qKiBTb3VyY2Ugb2YgdGhlIGZpbGUgYXNzZXQgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgc291cmNlOiBGaWxlU291cmNlLFxuICAgIC8qKiBEZXN0aW5hdGlvbiBmb3IgdGhlIGZpbGUgYXNzZXQgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgZGVzdGluYXRpb246IEZpbGVEZXN0aW5hdGlvbixcbiAgKSB7XG4gICAgdGhpcy5nZW5lcmljU291cmNlID0gc291cmNlO1xuICAgIHRoaXMuZ2VuZXJpY0Rlc3RpbmF0aW9uID0gZGVzdGluYXRpb247XG4gIH1cbn1cblxuLyoqXG4gKiBBIG1hbmlmZXN0IGVudHJ5IGZvciBhIGRvY2tlciBpbWFnZSBhc3NldFxuICovXG5leHBvcnQgY2xhc3MgRG9ja2VySW1hZ2VNYW5pZmVzdEVudHJ5IGltcGxlbWVudHMgSU1hbmlmZXN0RW50cnkge1xuICBwdWJsaWMgcmVhZG9ubHkgZ2VuZXJpY1NvdXJjZTogdW5rbm93bjtcbiAgcHVibGljIHJlYWRvbmx5IGdlbmVyaWNEZXN0aW5hdGlvbjogdW5rbm93bjtcbiAgcHVibGljIHJlYWRvbmx5IHR5cGUgPSAnZG9ja2VyLWltYWdlJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICAvKiogSWRlbnRpZmllciBmb3IgdGhpcyBhc3NldCAqL1xuICAgIHB1YmxpYyByZWFkb25seSBpZDogRGVzdGluYXRpb25JZGVudGlmaWVyLFxuICAgIC8qKiBTb3VyY2Ugb2YgdGhlIGZpbGUgYXNzZXQgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgc291cmNlOiBEb2NrZXJJbWFnZVNvdXJjZSxcbiAgICAvKiogRGVzdGluYXRpb24gZm9yIHRoZSBmaWxlIGFzc2V0ICovXG4gICAgcHVibGljIHJlYWRvbmx5IGRlc3RpbmF0aW9uOiBEb2NrZXJJbWFnZURlc3RpbmF0aW9uLFxuICApIHtcbiAgICB0aGlzLmdlbmVyaWNTb3VyY2UgPSBzb3VyY2U7XG4gICAgdGhpcy5nZW5lcmljRGVzdGluYXRpb24gPSBkZXN0aW5hdGlvbjtcbiAgfVxufVxuXG4vKipcbiAqIElkZW50aWZ5IGFuIGFzc2V0IGRlc3RpbmF0aW9uIGluIGFuIGFzc2V0IG1hbmlmZXN0XG4gKlxuICogV2hlbiBzdHJpbmdpZmllZCwgdGhpcyB3aWxsIGJlIGEgY29tYmluYXRpb24gb2YgdGhlIHNvdXJjZVxuICogYW5kIGRlc3RpbmF0aW9uIElEcy5cbiAqL1xuZXhwb3J0IGNsYXNzIERlc3RpbmF0aW9uSWRlbnRpZmllciB7XG4gIC8qKlxuICAgKiBJZGVudGlmaWVzIHRoZSBhc3NldCwgYnkgc291cmNlLlxuICAgKlxuICAgKiBUaGUgYXNzZXRJZCB3aWxsIGJlIHRoZSBzYW1lIGJldHdlZW4gYXNzZXRzIHRoYXQgcmVwcmVzZW50XG4gICAqIHRoZSBzYW1lIHBoeXNpY2FsIGZpbGUgb3IgaW1hZ2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXNzZXRJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZGVudGlmaWVzIHRoZSBkZXN0aW5hdGlvbiB3aGVyZSB0aGlzIGFzc2V0IHdpbGwgYmUgcHVibGlzaGVkXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGVzdGluYXRpb25JZDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGFzc2V0SWQ6IHN0cmluZywgZGVzdGluYXRpb25JZDogc3RyaW5nKSB7XG4gICAgdGhpcy5hc3NldElkID0gYXNzZXRJZDtcbiAgICB0aGlzLmRlc3RpbmF0aW9uSWQgPSBkZXN0aW5hdGlvbklkO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBmb3IgdGhpcyBhc3NldCBpZGVudGlmaWVyXG4gICAqL1xuICBwdWJsaWMgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGVzdGluYXRpb25JZCA/IGAke3RoaXMuYXNzZXRJZH06JHt0aGlzLmRlc3RpbmF0aW9uSWR9YCA6IHRoaXMuYXNzZXRJZDtcbiAgfVxufVxuXG5mdW5jdGlvbiBmaWx0ZXJEaWN0PEE+KHhzOiBSZWNvcmQ8c3RyaW5nLCBBPiwgcHJlZDogKHg6IEEsIGtleTogc3RyaW5nKSA9PiBib29sZWFuKTogUmVjb3JkPHN0cmluZywgQT4ge1xuICBjb25zdCByZXQ6IFJlY29yZDxzdHJpbmcsIEE+ID0ge307XG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHhzKSkge1xuICAgIGlmIChwcmVkKHZhbHVlLCBrZXkpKSB7XG4gICAgICByZXRba2V5XSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmV0O1xufVxuXG4vKipcbiAqIEEgZmlsdGVyIHBhdHRlcm4gZm9yIGFuIGRlc3RpbmF0aW9uIGlkZW50aWZpZXJcbiAqL1xuZXhwb3J0IGNsYXNzIERlc3RpbmF0aW9uUGF0dGVybiB7XG4gIC8qKlxuICAgKiBQYXJzZSBhICc6Jy1zZXBhcmF0ZWQgc3RyaW5nIGludG8gYW4gYXNzZXQvZGVzdGluYXRpb24gaWRlbnRpZmllclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBwYXJzZShzOiBzdHJpbmcpIHtcbiAgICBpZiAoIXMpIHsgdGhyb3cgbmV3IEVycm9yKCdFbXB0eSBzdHJpbmcgaXMgbm90IGEgdmFsaWQgZGVzdGluYXRpb24gaWRlbnRpZmllcicpOyB9XG4gICAgY29uc3QgcGFydHMgPSBzLnNwbGl0KCc6JykubWFwKHggPT4geCAhPT0gJyonID8geCA6IHVuZGVmaW5lZCk7XG4gICAgaWYgKHBhcnRzLmxlbmd0aCA9PT0gMSkgeyByZXR1cm4gbmV3IERlc3RpbmF0aW9uUGF0dGVybihwYXJ0c1swXSk7IH1cbiAgICBpZiAocGFydHMubGVuZ3RoID09PSAyKSB7IHJldHVybiBuZXcgRGVzdGluYXRpb25QYXR0ZXJuKHBhcnRzWzBdIHx8IHVuZGVmaW5lZCwgcGFydHNbMV0gfHwgdW5kZWZpbmVkKTsgfVxuICAgIHRocm93IG5ldyBFcnJvcihgQXNzZXQgaWRlbnRpZmllciBtdXN0IGNvbnRhaW4gYXQgbW9zdCAyICc6Jy1zZXBhcmF0ZWQgcGFydHMsIGdvdCAnJHtzfSdgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZGVudGlmaWVzIHRoZSBhc3NldCwgYnkgc291cmNlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGFzc2V0SWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElkZW50aWZpZXMgdGhlIGRlc3RpbmF0aW9uIHdoZXJlIHRoaXMgYXNzZXQgd2lsbCBiZSBwdWJsaXNoZWRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkZXN0aW5hdGlvbklkPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGFzc2V0SWQ/OiBzdHJpbmcsIGRlc3RpbmF0aW9uSWQ/OiBzdHJpbmcpIHtcbiAgICB0aGlzLmFzc2V0SWQgPSBhc3NldElkO1xuICAgIHRoaXMuZGVzdGluYXRpb25JZCA9IGRlc3RpbmF0aW9uSWQ7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdGhpcyBwYXR0ZXJuIG1hdGNoZXMgdGhlIGdpdmVuIGlkZW50aWZpZXJcbiAgICovXG4gIHB1YmxpYyBtYXRjaGVzKGlkOiBEZXN0aW5hdGlvbklkZW50aWZpZXIpIHtcbiAgICByZXR1cm4gKHRoaXMuYXNzZXRJZCA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuYXNzZXRJZCA9PT0gaWQuYXNzZXRJZClcbiAgICAmJiAodGhpcy5kZXN0aW5hdGlvbklkID09PSB1bmRlZmluZWQgfHwgdGhpcy5kZXN0aW5hdGlvbklkID09PSBpZC5kZXN0aW5hdGlvbklkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gZm9yIHRoaXMgYXNzZXQgaWRlbnRpZmllclxuICAgKi9cbiAgcHVibGljIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiBgJHt0aGlzLmFzc2V0SWQgPz8gJyonfToke3RoaXMuZGVzdGluYXRpb25JZCA/PyAnKid9YDtcbiAgfVxufVxuXG4vKipcbiAqIFByZWZpeCBib3gtZHJhd2luZyBjaGFyYWN0ZXJzIHRvIG1ha2UgbGluZXMgbG9vayBsaWtlIGEgaGFuZ2luZyB0cmVlXG4gKi9cbmZ1bmN0aW9uIHByZWZpeFRyZWVDaGFycyh4czogc3RyaW5nW10sIHByZWZpeCA9ICcnKSB7XG4gIGNvbnN0IHJldCA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgeHMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBpc0xhc3QgPSBpID09PSB4cy5sZW5ndGggLSAxO1xuICAgIGNvbnN0IGJveENoYXIgPSBpc0xhc3QgPyAn4pSUJyA6ICfilJwnO1xuICAgIHJldC5wdXNoKGAke3ByZWZpeH0ke2JveENoYXJ9JHt4c1tpXX1gKTtcbiAgfVxuICByZXR1cm4gcmV0O1xufVxuIl19
|
|
245
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtbWFuaWZlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhc3NldC1tYW5pZmVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLDBFQU93QztBQUV4Qzs7R0FFRztBQUNILE1BQWEsYUFBYTtJQU14Qjs7T0FFRztJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBZ0I7UUFDckMsSUFBSSxDQUFDO1lBQ0gsTUFBTSxHQUFHLEdBQUcsZ0NBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNqRCxPQUFPLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDeEQsQ0FBQztRQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsUUFBUSxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQzNFLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBZ0I7UUFDckMsSUFBSSxFQUFFLENBQUM7UUFDUCxJQUFJLENBQUM7WUFDSCxFQUFFLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3QixDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxRQUFRLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDL0UsQ0FBQztRQUNELElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDckIsT0FBTyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFDckYsQ0FBQztRQUNE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LENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHtcbiAgQXNzZXRNYW5pZmVzdCBhcyBBc3NldE1hbmlmZXN0U2NoZW1hLFxuICBEb2NrZXJJbWFnZURlc3RpbmF0aW9uLFxuICBEb2NrZXJJbWFnZVNvdXJjZSxcbiAgRmlsZURlc3RpbmF0aW9uLFxuICBGaWxlU291cmNlLFxuICBNYW5pZmVzdCxcbn0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcblxuLyoqXG4gKiBBIG1hbmlmZXN0IG9mIGFzc2V0c1xuICovXG5leHBvcnQgY2xhc3MgQXNzZXRNYW5pZmVzdCB7XG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCBuYW1lIG9mIHRoZSBhc3NldCBtYW5pZmVzdCBpbiBhIGNkay5vdXQgZGlyZWN0b3J5XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfRklMRU5BTUUgPSAnYXNzZXRzLmpzb24nO1xuXG4gIC8qKlxuICAgKiBMb2FkIGFuIGFzc2V0IG1hbmlmZXN0IGZyb20gdGhlIGdpdmVuIGZpbGVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUZpbGUoZmlsZU5hbWU6IHN0cmluZykge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBvYmogPSBNYW5pZmVzdC5sb2FkQXNzZXRNYW5pZmVzdChmaWxlTmFtZSk7XG4gICAgICByZXR1cm4gbmV3IEFzc2V0TWFuaWZlc3QocGF0aC5kaXJuYW1lKGZpbGVOYW1lKSwgb2JqKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fub3QgcmVhZCBhc3NldCBtYW5pZmVzdCAnJHtmaWxlTmFtZX0nOiAke2UubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTG9hZCBhbiBhc3NldCBtYW5pZmVzdCBmcm9tIHRoZSBnaXZlbiBmaWxlIG9yIGRpcmVjdG9yeVxuICAgKlxuICAgKiBJZiB0aGUgYXJndW1lbnQgZ2l2ZW4gaXMgYSBkaXJlY3RveSwgdGhlIGRlZmF1bHQgYXNzZXQgZmlsZSBuYW1lIHdpbGwgYmUgdXNlZC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVBhdGgoZmlsZVBhdGg6IHN0cmluZykge1xuICAgIGxldCBzdDtcbiAgICB0cnkge1xuICAgICAgc3QgPSBmcy5zdGF0U3luYyhmaWxlUGF0aCk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCByZWFkIGFzc2V0IG1hbmlmZXN0IGF0ICcke2ZpbGVQYXRofSc6ICR7ZS5tZXNzYWdlfWApO1xuICAgIH1cbiAgICBpZiAoc3QuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgcmV0dXJuIEFzc2V0TWFuaWZlc3QuZnJvbUZpbGUocGF0aC5qb2luKGZpbGVQYXRoLCBBc3NldE1hbmlmZXN0LkRFRkFVTFRfRklMRU5BTUUpKTtcbiAgICB9XG4gICAgcmV0dXJuIEFzc2V0TWFuaWZlc3QuZnJvbUZpbGUoZmlsZVBhdGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBkaXJlY3Rvcnkgd2hlcmUgdGhlIG1hbmlmZXN0IHdhcyBmb3VuZFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRpcmVjdG9yeTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGRpcmVjdG9yeTogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbWFuaWZlc3Q6IEFzc2V0TWFuaWZlc3RTY2hlbWFcbiAgKSB7XG4gICAgdGhpcy5kaXJlY3RvcnkgPSBkaXJlY3Rvcnk7XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0IGEgc3Vic2V0IG9mIGFzc2V0cyBhbmQgZGVzdGluYXRpb25zIGZyb20gdGhpcyBtYW5pZmVzdC5cbiAgICpcbiAgICogT25seSBhc3NldHMgd2l0aCBhdCBsZWFzdCAxIHNlbGVjdGVkIGRlc3RpbmF0aW9uIGFyZSByZXRhaW5lZC5cbiAgICpcbiAgICogSWYgc2VsZWN0aW9uIGlzIG5vdCBnaXZlbiwgZXZlcnl0aGluZyBpcyByZXR1cm5lZC5cbiAgICovXG4gIHB1YmxpYyBzZWxlY3Qoc2VsZWN0aW9uPzogRGVzdGluYXRpb25QYXR0ZXJuW10pOiBBc3NldE1hbmlmZXN0IHtcbiAgICBpZiAoc2VsZWN0aW9uID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGNvbnN0IHJldDogQXNzZXRNYW5pZmVzdFNjaGVtYSAmIFJlcXVpcmVkPFBpY2s8QXNzZXRNYW5pZmVzdFNjaGVtYSwgQXNzZXRUeXBlPj4gPSB7XG4gICAgICB2ZXJzaW9uOiB0aGlzLm1hbmlmZXN0LnZlcnNpb24sXG4gICAgICBkb2NrZXJJbWFnZXM6IHt9LFxuICAgICAgZmlsZXM6IHt9LFxuICAgIH07XG5cbiAgICBmb3IgKGNvbnN0IGFzc2V0VHlwZSBvZiBBU1NFVF9UWVBFUykge1xuICAgICAgZm9yIChjb25zdCBbYXNzZXRJZCwgYXNzZXRdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMubWFuaWZlc3RbYXNzZXRUeXBlXSB8fCB7fSkpIHtcbiAgICAgICAgY29uc3QgZmlsdGVyZWREZXN0aW5hdGlvbnMgPSBmaWx0ZXJEaWN0KGFzc2V0LmRlc3RpbmF0aW9ucywgKF8sIGRlc3RJZCkgPT5cbiAgICAgICAgICBzZWxlY3Rpb24uc29tZSgoc2VsKSA9PiBzZWwubWF0Y2hlcyhuZXcgRGVzdGluYXRpb25JZGVudGlmaWVyKGFzc2V0SWQsIGRlc3RJZCkpKVxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChPYmplY3Qua2V5cyhmaWx0ZXJlZERlc3RpbmF0aW9ucykubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHJldFthc3NldFR5cGVdW2Fzc2V0SWRdID0ge1xuICAgICAgICAgICAgLi4uYXNzZXQsXG4gICAgICAgICAgICBkZXN0aW5hdGlvbnM6IGZpbHRlcmVkRGVzdGluYXRpb25zLFxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEFzc2V0TWFuaWZlc3QodGhpcy5kaXJlY3RvcnksIHJldCk7XG4gIH1cblxuICAvKipcbiAgICogRGVzY3JpYmUgdGhlIGFzc2V0IG1hbmlmZXN0IGFzIGEgbGlzdCBvZiBzdHJpbmdzXG4gICAqL1xuICBwdWJsaWMgbGlzdCgpIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4uZGVzY3JpYmVBc3NldHMoJ2ZpbGUnLCB0aGlzLm1hbmlmZXN0LmZpbGVzIHx8IHt9KSxcbiAgICAgIC4uLmRlc2NyaWJlQXNzZXRzKCdkb2NrZXItaW1hZ2UnLCB0aGlzLm1hbmlmZXN0LmRvY2tlckltYWdlcyB8fCB7fSksXG4gICAgXTtcblxuICAgIGZ1bmN0aW9uIGRlc2NyaWJlQXNzZXRzKFxuICAgICAgdHlwZTogc3RyaW5nLFxuICAgICAgYXNzZXRzOiBSZWNvcmQ8c3RyaW5nLCB7IHNvdXJjZTogYW55OyBkZXN0aW5hdGlvbnM6IFJlY29yZDxzdHJpbmcsIGFueT4gfT5cbiAgICApIHtcbiAgICAgIGNvbnN0IHJldCA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gICAgICBmb3IgKGNvbnN0IFthc3NldElkLCBhc3NldF0gb2YgT2JqZWN0LmVudHJpZXMoYXNzZXRzIHx8IHt9KSkge1xuICAgICAgICByZXQucHVzaChgJHthc3NldElkfSAke3R5cGV9ICR7SlNPTi5zdHJpbmdpZnkoYXNzZXQuc291cmNlKX1gKTtcblxuICAgICAgICBjb25zdCBkZXN0U3RyaW5ncyA9IE9iamVjdC5lbnRyaWVzKGFzc2V0LmRlc3RpbmF0aW9ucykubWFwKFxuICAgICAgICAgIChbZGVzdElkLCBkZXN0XSkgPT4gYCAke2Fzc2V0SWR9OiR7ZGVzdElkfSAke0pTT04uc3RyaW5naWZ5KGRlc3QpfWBcbiAgICAgICAgKTtcbiAgICAgICAgcmV0LnB1c2goLi4ucHJlZml4VHJlZUNoYXJzKGRlc3RTdHJpbmdzLCAnICAnKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmV0O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGFzc2V0cyBwZXIgZGVzdGluYXRpb25cbiAgICpcbiAgICogUmV0dXJucyBvbmUgYXNzZXQgZm9yIGV2ZXJ5IHB1Ymxpc2hhYmxlIGRlc3RpbmF0aW9uLiBNdWx0aXBsZSBhc3NldFxuICAgKiBkZXN0aW5hdGlvbnMgbWF5IHNoYXJlIHRoZSBzYW1lIGFzc2V0IHNvdXJjZS5cbiAgICovXG4gIHB1YmxpYyBnZXQgZW50cmllcygpOiBJTWFuaWZlc3RFbnRyeVtdIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4ubWFrZUVudHJpZXModGhpcy5tYW5pZmVzdC5maWxlcyB8fCB7fSwgRmlsZU1hbmlmZXN0RW50cnkpLFxuICAgICAgLi4ubWFrZUVudHJpZXModGhpcy5tYW5pZmVzdC5kb2NrZXJJbWFnZXMgfHwge30sIERvY2tlckltYWdlTWFuaWZlc3RFbnRyeSksXG4gICAgXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGZpbGUgYXNzZXRzLCBzcGxhdCBvdXQgdG8gZGVzdGluYXRpb25zXG4gICAqL1xuICBwdWJsaWMgZ2V0IGZpbGVzKCk6IEZpbGVNYW5pZmVzdEVudHJ5W10ge1xuICAgIHJldHVybiBtYWtlRW50cmllcyh0aGlzLm1hbmlmZXN0LmZpbGVzIHx8IHt9LCBGaWxlTWFuaWZlc3RFbnRyeSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gbWFrZUVudHJpZXM8QSwgQiwgQz4oXG4gIGFzc2V0czogUmVjb3JkPHN0cmluZywgeyBzb3VyY2U6IEE7IGRlc3RpbmF0aW9uczogUmVjb3JkPHN0cmluZywgQj4gfT4sXG4gIGN0b3I6IG5ldyAoaWQ6IERlc3RpbmF0aW9uSWRlbnRpZmllciwgc291cmNlOiBBLCBkZXN0aW5hdGlvbjogQikgPT4gQ1xuKTogQ1tdIHtcbiAgY29uc3QgcmV0ID0gbmV3IEFycmF5PEM+KCk7XG4gIGZvciAoY29uc3QgW2Fzc2V0SWQsIGFzc2V0XSBvZiBPYmplY3QuZW50cmllcyhhc3NldHMpKSB7XG4gICAgZm9yIChjb25zdCBbZGVzdElkLCBkZXN0aW5hdGlvbl0gb2YgT2JqZWN0LmVudHJpZXMoYXNzZXQuZGVzdGluYXRpb25zKSkge1xuICAgICAgcmV0LnB1c2gobmV3IGN0b3IobmV3IERlc3RpbmF0aW9uSWRlbnRpZmllcihhc3NldElkLCBkZXN0SWQpLCBhc3NldC5zb3VyY2UsIGRlc3RpbmF0aW9uKSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXQ7XG59XG5cbnR5cGUgQXNzZXRUeXBlID0gJ2ZpbGVzJyB8ICdkb2NrZXJJbWFnZXMnO1xuXG5jb25zdCBBU1NFVF9UWVBFUzogQXNzZXRUeXBlW10gPSBbJ2ZpbGVzJywgJ2RvY2tlckltYWdlcyddO1xuXG4vKipcbiAqIEEgc2luZ2xlIGFzc2V0IGZyb20gYW4gYXNzZXQgbWFuaWZlc3QnXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSU1hbmlmZXN0RW50cnkge1xuICAvKipcbiAgICogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IGFuZCBpdHMgZGVzdGluYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IGlkOiBEZXN0aW5hdGlvbklkZW50aWZpZXI7XG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIGFzc2V0XG4gICAqL1xuICByZWFkb25seSB0eXBlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFR5cGUtZGVwZW5kZW50IHNvdXJjZSBkYXRhXG4gICAqL1xuICByZWFkb25seSBnZW5lcmljU291cmNlOiB1bmtub3duO1xuXG4gIC8qKlxuICAgKiBUeXBlLWRlcGVuZGVudCBkZXN0aW5hdGlvbiBkYXRhXG4gICAqL1xuICByZWFkb25seSBnZW5lcmljRGVzdGluYXRpb246IHVua25vd247XG59XG5cbi8qKlxuICogQSBtYW5pZmVzdCBlbnRyeSBmb3IgYSBmaWxlIGFzc2V0XG4gKi9cbmV4cG9ydCBjbGFzcyBGaWxlTWFuaWZlc3RFbnRyeSBpbXBsZW1lbnRzIElNYW5pZmVzdEVudHJ5IHtcbiAgcHVibGljIHJlYWRvbmx5IGdlbmVyaWNTb3VyY2U6IHVua25vd247XG4gIHB1YmxpYyByZWFkb25seSBnZW5lcmljRGVzdGluYXRpb246IHVua25vd247XG4gIHB1YmxpYyByZWFkb25seSB0eXBlID0gJ2ZpbGUnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIC8qKiBJZGVudGlmaWVyIGZvciB0aGlzIGFzc2V0ICovXG4gICAgcHVibGljIHJlYWRvbmx5IGlkOiBEZXN0aW5hdGlvbklkZW50aWZpZXIsXG4gICAgLyoqIFNvdXJjZSBvZiB0aGUgZmlsZSBhc3NldCAqL1xuICAgIHB1YmxpYyByZWFkb25seSBzb3VyY2U6IEZpbGVTb3VyY2UsXG4gICAgLyoqIERlc3RpbmF0aW9uIGZvciB0aGUgZmlsZSBhc3NldCAqL1xuICAgIHB1YmxpYyByZWFkb25seSBkZXN0aW5hdGlvbjogRmlsZURlc3RpbmF0aW9uXG4gICkge1xuICAgIHRoaXMuZ2VuZXJpY1NvdXJjZSA9IHNvdXJjZTtcbiAgICB0aGlzLmdlbmVyaWNEZXN0aW5hdGlvbiA9IGRlc3RpbmF0aW9uO1xuICB9XG59XG5cbi8qKlxuICogQSBtYW5pZmVzdCBlbnRyeSBmb3IgYSBkb2NrZXIgaW1hZ2UgYXNzZXRcbiAqL1xuZXhwb3J0IGNsYXNzIERvY2tlckltYWdlTWFuaWZlc3RFbnRyeSBpbXBsZW1lbnRzIElNYW5pZmVzdEVudHJ5IHtcbiAgcHVibGljIHJlYWRvbmx5IGdlbmVyaWNTb3VyY2U6IHVua25vd247XG4gIHB1YmxpYyByZWFkb25seSBnZW5lcmljRGVzdGluYXRpb246IHVua25vd247XG4gIHB1YmxpYyByZWFkb25seSB0eXBlID0gJ2RvY2tlci1pbWFnZSc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgLyoqIElkZW50aWZpZXIgZm9yIHRoaXMgYXNzZXQgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgaWQ6IERlc3RpbmF0aW9uSWRlbnRpZmllcixcbiAgICAvKiogU291cmNlIG9mIHRoZSBmaWxlIGFzc2V0ICovXG4gICAgcHVibGljIHJlYWRvbmx5IHNvdXJjZTogRG9ja2VySW1hZ2VTb3VyY2UsXG4gICAgLyoqIERlc3RpbmF0aW9uIGZvciB0aGUgZmlsZSBhc3NldCAqL1xuICAgIHB1YmxpYyByZWFkb25seSBkZXN0aW5hdGlvbjogRG9ja2VySW1hZ2VEZXN0aW5hdGlvblxuICApIHtcbiAgICB0aGlzLmdlbmVyaWNTb3VyY2UgPSBzb3VyY2U7XG4gICAgdGhpcy5nZW5lcmljRGVzdGluYXRpb24gPSBkZXN0aW5hdGlvbjtcbiAgfVxufVxuXG4vKipcbiAqIElkZW50aWZ5IGFuIGFzc2V0IGRlc3RpbmF0aW9uIGluIGFuIGFzc2V0IG1hbmlmZXN0XG4gKlxuICogV2hlbiBzdHJpbmdpZmllZCwgdGhpcyB3aWxsIGJlIGEgY29tYmluYXRpb24gb2YgdGhlIHNvdXJjZVxuICogYW5kIGRlc3RpbmF0aW9uIElEcy5cbiAqL1xuZXhwb3J0IGNsYXNzIERlc3RpbmF0aW9uSWRlbnRpZmllciB7XG4gIC8qKlxuICAgKiBJZGVudGlmaWVzIHRoZSBhc3NldCwgYnkgc291cmNlLlxuICAgKlxuICAgKiBUaGUgYXNzZXRJZCB3aWxsIGJlIHRoZSBzYW1lIGJldHdlZW4gYXNzZXRzIHRoYXQgcmVwcmVzZW50XG4gICAqIHRoZSBzYW1lIHBoeXNpY2FsIGZpbGUgb3IgaW1hZ2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXNzZXRJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZGVudGlmaWVzIHRoZSBkZXN0aW5hdGlvbiB3aGVyZSB0aGlzIGFzc2V0IHdpbGwgYmUgcHVibGlzaGVkXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGVzdGluYXRpb25JZDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGFzc2V0SWQ6IHN0cmluZywgZGVzdGluYXRpb25JZDogc3RyaW5nKSB7XG4gICAgdGhpcy5hc3NldElkID0gYXNzZXRJZDtcbiAgICB0aGlzLmRlc3RpbmF0aW9uSWQgPSBkZXN0aW5hdGlvbklkO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBmb3IgdGhpcyBhc3NldCBpZGVudGlmaWVyXG4gICAqL1xuICBwdWJsaWMgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGVzdGluYXRpb25JZCA/IGAke3RoaXMuYXNzZXRJZH06JHt0aGlzLmRlc3RpbmF0aW9uSWR9YCA6IHRoaXMuYXNzZXRJZDtcbiAgfVxufVxuXG5mdW5jdGlvbiBmaWx0ZXJEaWN0PEE+KFxuICB4czogUmVjb3JkPHN0cmluZywgQT4sXG4gIHByZWQ6ICh4OiBBLCBrZXk6IHN0cmluZykgPT4gYm9vbGVhblxuKTogUmVjb3JkPHN0cmluZywgQT4ge1xuICBjb25zdCByZXQ6IFJlY29yZDxzdHJpbmcsIEE+ID0ge307XG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHhzKSkge1xuICAgIGlmIChwcmVkKHZhbHVlLCBrZXkpKSB7XG4gICAgICByZXRba2V5XSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmV0O1xufVxuXG4vKipcbiAqIEEgZmlsdGVyIHBhdHRlcm4gZm9yIGFuIGRlc3RpbmF0aW9uIGlkZW50aWZpZXJcbiAqL1xuZXhwb3J0IGNsYXNzIERlc3RpbmF0aW9uUGF0dGVybiB7XG4gIC8qKlxuICAgKiBQYXJzZSBhICc6Jy1zZXBhcmF0ZWQgc3RyaW5nIGludG8gYW4gYXNzZXQvZGVzdGluYXRpb24gaWRlbnRpZmllclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBwYXJzZShzOiBzdHJpbmcpIHtcbiAgICBpZiAoIXMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRW1wdHkgc3RyaW5nIGlzIG5vdCBhIHZhbGlkIGRlc3RpbmF0aW9uIGlkZW50aWZpZXInKTtcbiAgICB9XG4gICAgY29uc3QgcGFydHMgPSBzLnNwbGl0KCc6JykubWFwKCh4KSA9PiAoeCAhPT0gJyonID8geCA6IHVuZGVmaW5lZCkpO1xuICAgIGlmIChwYXJ0cy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHJldHVybiBuZXcgRGVzdGluYXRpb25QYXR0ZXJuKHBhcnRzWzBdKTtcbiAgICB9XG4gICAgaWYgKHBhcnRzLmxlbmd0aCA9PT0gMikge1xuICAgICAgcmV0dXJuIG5ldyBEZXN0aW5hdGlvblBhdHRlcm4ocGFydHNbMF0gfHwgdW5kZWZpbmVkLCBwYXJ0c1sxXSB8fCB1bmRlZmluZWQpO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoYEFzc2V0IGlkZW50aWZpZXIgbXVzdCBjb250YWluIGF0IG1vc3QgMiAnOictc2VwYXJhdGVkIHBhcnRzLCBnb3QgJyR7c30nYCk7XG4gIH1cblxuICAvKipcbiAgICogSWRlbnRpZmllcyB0aGUgYXNzZXQsIGJ5IHNvdXJjZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhc3NldElkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZGVudGlmaWVzIHRoZSBkZXN0aW5hdGlvbiB3aGVyZSB0aGlzIGFzc2V0IHdpbGwgYmUgcHVibGlzaGVkXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGVzdGluYXRpb25JZD86IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihhc3NldElkPzogc3RyaW5nLCBkZXN0aW5hdGlvbklkPzogc3RyaW5nKSB7XG4gICAgdGhpcy5hc3NldElkID0gYXNzZXRJZDtcbiAgICB0aGlzLmRlc3RpbmF0aW9uSWQgPSBkZXN0aW5hdGlvbklkO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRoaXMgcGF0dGVybiBtYXRjaGVzIHRoZSBnaXZlbiBpZGVudGlmaWVyXG4gICAqL1xuICBwdWJsaWMgbWF0Y2hlcyhpZDogRGVzdGluYXRpb25JZGVudGlmaWVyKSB7XG4gICAgcmV0dXJuIChcbiAgICAgICh0aGlzLmFzc2V0SWQgPT09IHVuZGVmaW5lZCB8fCB0aGlzLmFzc2V0SWQgPT09IGlkLmFzc2V0SWQpICYmXG4gICAgICAodGhpcy5kZXN0aW5hdGlvbklkID09PSB1bmRlZmluZWQgfHwgdGhpcy5kZXN0aW5hdGlvbklkID09PSBpZC5kZXN0aW5hdGlvbklkKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIGZvciB0aGlzIGFzc2V0IGlkZW50aWZpZXJcbiAgICovXG4gIHB1YmxpYyB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gYCR7dGhpcy5hc3NldElkID8/ICcqJ306JHt0aGlzLmRlc3RpbmF0aW9uSWQgPz8gJyonfWA7XG4gIH1cbn1cblxuLyoqXG4gKiBQcmVmaXggYm94LWRyYXdpbmcgY2hhcmFjdGVycyB0byBtYWtlIGxpbmVzIGxvb2sgbGlrZSBhIGhhbmdpbmcgdHJlZVxuICovXG5mdW5jdGlvbiBwcmVmaXhUcmVlQ2hhcnMoeHM6IHN0cmluZ1tdLCBwcmVmaXggPSAnJykge1xuICBjb25zdCByZXQgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHhzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgaXNMYXN0ID0gaSA9PT0geHMubGVuZ3RoIC0gMTtcbiAgICBjb25zdCBib3hDaGFyID0gaXNMYXN0ID8gJ+KUlCcgOiAn4pScJztcbiAgICByZXQucHVzaChgJHtwcmVmaXh9JHtib3hDaGFyfSR7eHNbaV19YCk7XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cbiJdfQ==
|
package/lib/aws.d.ts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { ECRClient } from '@aws-sdk/client-ecr';
|
|
2
|
+
import { CompleteMultipartUploadCommandOutput, PutObjectCommandInput, S3Client } from '@aws-sdk/client-s3';
|
|
3
|
+
import { SecretsManagerClient } from '@aws-sdk/client-secrets-manager';
|
|
1
4
|
/**
|
|
2
5
|
* AWS SDK operations required by Asset Publishing
|
|
3
6
|
*/
|
|
@@ -6,9 +9,10 @@ export interface IAws {
|
|
|
6
9
|
discoverDefaultRegion(): Promise<string>;
|
|
7
10
|
discoverCurrentAccount(): Promise<Account>;
|
|
8
11
|
discoverTargetAccount(options: ClientOptions): Promise<Account>;
|
|
9
|
-
s3Client(options: ClientOptions): Promise<
|
|
10
|
-
ecrClient(options: ClientOptions): Promise<
|
|
11
|
-
secretsManagerClient(options: ClientOptions): Promise<
|
|
12
|
+
s3Client(options: ClientOptions): Promise<S3Client>;
|
|
13
|
+
ecrClient(options: ClientOptions): Promise<ECRClient>;
|
|
14
|
+
secretsManagerClient(options: ClientOptions): Promise<SecretsManagerClient>;
|
|
15
|
+
upload(params: PutObjectCommandInput, options?: ClientOptions): Promise<CompleteMultipartUploadCommandOutput>;
|
|
12
16
|
}
|
|
13
17
|
export interface ClientOptions {
|
|
14
18
|
region?: string;
|
|
@@ -36,24 +40,18 @@ export interface Account {
|
|
|
36
40
|
* AWS client using the AWS SDK for JS with no special configuration
|
|
37
41
|
*/
|
|
38
42
|
export declare class DefaultAwsClient implements IAws {
|
|
39
|
-
private readonly
|
|
43
|
+
private readonly profile?;
|
|
40
44
|
private account?;
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
+
private config;
|
|
46
|
+
constructor(profile?: string | undefined);
|
|
47
|
+
s3Client(options: ClientOptions): Promise<S3Client>;
|
|
48
|
+
upload(params: PutObjectCommandInput, options?: ClientOptions): Promise<CompleteMultipartUploadCommandOutput>;
|
|
49
|
+
ecrClient(options: ClientOptions): Promise<ECRClient>;
|
|
50
|
+
secretsManagerClient(options: ClientOptions): Promise<SecretsManagerClient>;
|
|
45
51
|
discoverPartition(): Promise<string>;
|
|
46
52
|
discoverDefaultRegion(): Promise<string>;
|
|
47
53
|
discoverCurrentAccount(): Promise<Account>;
|
|
48
54
|
discoverTargetAccount(options: ClientOptions): Promise<Account>;
|
|
55
|
+
private getAccount;
|
|
49
56
|
private awsOptions;
|
|
50
|
-
/**
|
|
51
|
-
* Explicit manual AssumeRole call
|
|
52
|
-
*
|
|
53
|
-
* Necessary since I can't seem to get the built-in support for ChainableTemporaryCredentials to work.
|
|
54
|
-
*
|
|
55
|
-
* It needs an explicit configuration of `masterCredentials`, we need to put
|
|
56
|
-
* a `DefaultCredentialProverChain()` in there but that is not possible.
|
|
57
|
-
*/
|
|
58
|
-
private assumeRole;
|
|
59
57
|
}
|