@aws-cdk/toolkit-lib 0.1.7 → 0.1.8
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/build-info.json +2 -2
- package/db.json.gz +0 -0
- package/lib/actions/bootstrap/index.d.ts +0 -1
- package/lib/actions/bootstrap/index.js +13 -6
- package/lib/actions/diff/index.d.ts +19 -15
- package/lib/actions/diff/index.js +4 -1
- package/lib/actions/index.d.ts +1 -0
- package/lib/actions/index.js +2 -1
- package/lib/api/aws-cdk.d.ts +1 -1
- package/lib/api/aws-cdk.js +340 -216
- package/lib/api/aws-cdk.js.map +4 -4
- package/lib/api/cloud-assembly/private/prepare-source.d.ts +49 -39
- package/lib/api/cloud-assembly/private/prepare-source.js +113 -94
- package/lib/api/cloud-assembly/private/source-builder.js +9 -8
- package/lib/api/cloud-assembly/private/stack-assembly.d.ts +1 -1
- package/lib/api/cloud-assembly/private/stack-assembly.js +3 -3
- package/lib/api/shared-private.js +23 -0
- package/lib/api/shared-private.js.map +2 -2
- package/lib/api/shared-public.d.ts +492 -217
- package/lib/api/shared-public.js +904 -36
- package/lib/api/shared-public.js.map +4 -4
- package/lib/index.d.ts +1 -0
- package/lib/index.js +3 -1
- package/lib/private/dispose-polyfill.d.ts +1 -0
- package/lib/private/dispose-polyfill.js +20 -0
- package/lib/toolkit/private/index.d.ts +1 -1
- package/lib/toolkit/private/index.js +4 -4
- package/lib/toolkit/toolkit.d.ts +5 -0
- package/lib/toolkit/toolkit.js +143 -12
- package/package.json +19 -19
|
@@ -2,51 +2,61 @@ import * as cxapi from '@aws-cdk/cx-api';
|
|
|
2
2
|
import type { ToolkitServices } from '../../../toolkit/private';
|
|
3
3
|
import type { IoHelper } from '../../shared-private';
|
|
4
4
|
import type { AppSynthOptions, LoadAssemblyOptions } from '../source-builder';
|
|
5
|
-
export { guessExecutable } from '../../../api/aws-cdk';
|
|
6
5
|
type Env = {
|
|
7
6
|
[key: string]: string;
|
|
8
7
|
};
|
|
9
8
|
type Context = {
|
|
10
9
|
[key: string]: any;
|
|
11
10
|
};
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
11
|
+
export declare class ExecutionEnvironment {
|
|
12
|
+
private readonly ioHelper;
|
|
13
|
+
private readonly sdkProvider;
|
|
14
|
+
private readonly debugFn;
|
|
15
|
+
private _outdir;
|
|
16
|
+
constructor(services: ToolkitServices, props?: {
|
|
17
|
+
outdir?: string;
|
|
18
|
+
});
|
|
19
|
+
/**
|
|
20
|
+
* Turn the given optional output directory into a fixed output directory
|
|
21
|
+
*/
|
|
22
|
+
get outdir(): string;
|
|
23
|
+
/**
|
|
24
|
+
* Guess the executable from the command-line argument
|
|
25
|
+
*
|
|
26
|
+
* Only do this if the file is NOT marked as executable. If it is,
|
|
27
|
+
* we'll defer to the shebang inside the file itself.
|
|
28
|
+
*
|
|
29
|
+
* If we're on Windows, we ALWAYS take the handler, since it's hard to
|
|
30
|
+
* verify if registry associations have or have not been set up for this
|
|
31
|
+
* file type, so we'll assume the worst and take control.
|
|
32
|
+
*/
|
|
33
|
+
guessExecutable(app: string): Promise<any>;
|
|
34
|
+
/**
|
|
35
|
+
* If we don't have region/account defined in context, we fall back to the default SDK behavior
|
|
36
|
+
* where region is retrieved from ~/.aws/config and account is based on default credentials provider
|
|
37
|
+
* chain and then STS is queried.
|
|
38
|
+
*
|
|
39
|
+
* This is done opportunistically: for example, if we can't access STS for some reason or the region
|
|
40
|
+
* is not configured, the context value will be 'null' and there could failures down the line. In
|
|
41
|
+
* some cases, synthesis does not require region/account information at all, so that might be perfectly
|
|
42
|
+
* fine in certain scenarios.
|
|
43
|
+
*/
|
|
44
|
+
defaultEnvVars(): Promise<Env>;
|
|
45
|
+
/**
|
|
46
|
+
* Run code from a different working directory
|
|
47
|
+
*/
|
|
48
|
+
changeDir<T>(block: () => Promise<T>, workingDir?: string): Promise<T>;
|
|
49
|
+
/**
|
|
50
|
+
* Run code with additional environment variables
|
|
51
|
+
*/
|
|
52
|
+
withEnv<T>(env: Env | undefined, block: () => Promise<T>): Promise<T>;
|
|
53
|
+
/**
|
|
54
|
+
* Run code with context setup inside the environment
|
|
55
|
+
*/
|
|
56
|
+
withContext<T>(inputContext: Context, env: Env, synthOpts: AppSynthOptions | undefined, block: (env: Env, context: Context) => Promise<T>): Promise<T>;
|
|
57
|
+
}
|
|
49
58
|
/**
|
|
50
59
|
* Safely create an assembly from a cloud assembly directory
|
|
51
60
|
*/
|
|
52
|
-
export declare function assemblyFromDirectory(assemblyDir: string,
|
|
61
|
+
export declare function assemblyFromDirectory(assemblyDir: string, ioHelper: IoHelper, loadOptions?: LoadAssemblyOptions): Promise<cxapi.CloudAssembly>;
|
|
62
|
+
export {};
|
|
@@ -1,12 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.determineOutputDirectory = determineOutputDirectory;
|
|
5
|
-
exports.prepareDefaultEnvironment = prepareDefaultEnvironment;
|
|
6
|
-
exports.changeDir = changeDir;
|
|
7
|
-
exports.withEnv = withEnv;
|
|
8
|
-
exports.withContext = withContext;
|
|
9
|
-
exports.checkContextOverflowSupport = checkContextOverflowSupport;
|
|
3
|
+
exports.ExecutionEnvironment = void 0;
|
|
10
4
|
exports.assemblyFromDirectory = assemblyFromDirectory;
|
|
11
5
|
const os = require("node:os");
|
|
12
6
|
const path = require("node:path");
|
|
@@ -19,106 +13,131 @@ const aws_cdk_1 = require("../../../api/aws-cdk");
|
|
|
19
13
|
const util_1 = require("../../../private/util");
|
|
20
14
|
const private_1 = require("../../io/private");
|
|
21
15
|
const shared_public_1 = require("../../shared-public");
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
* where region is retrieved from ~/.aws/config and account is based on default credentials provider
|
|
33
|
-
* chain and then STS is queried.
|
|
34
|
-
*
|
|
35
|
-
* This is done opportunistically: for example, if we can't access STS for some reason or the region
|
|
36
|
-
* is not configured, the context value will be 'null' and there could failures down the line. In
|
|
37
|
-
* some cases, synthesis does not require region/account information at all, so that might be perfectly
|
|
38
|
-
* fine in certain scenarios.
|
|
39
|
-
*
|
|
40
|
-
* @param context The context key/value bash.
|
|
41
|
-
*/
|
|
42
|
-
async function prepareDefaultEnvironment(services, props = {}) {
|
|
43
|
-
const logFn = (msg, ...args) => services.ioHelper.notify(private_1.IO.CDK_ASSEMBLY_I0010.msg((0, node_util_1.format)(msg, ...args)));
|
|
44
|
-
const env = await (0, aws_cdk_1.prepareDefaultEnvironment)(services.sdkProvider, logFn);
|
|
45
|
-
if (props.outdir) {
|
|
46
|
-
env[cxapi.OUTDIR_ENV] = props.outdir;
|
|
47
|
-
await logFn('outdir:', props.outdir);
|
|
16
|
+
class ExecutionEnvironment {
|
|
17
|
+
ioHelper;
|
|
18
|
+
sdkProvider;
|
|
19
|
+
debugFn;
|
|
20
|
+
_outdir;
|
|
21
|
+
constructor(services, props = {}) {
|
|
22
|
+
this.ioHelper = services.ioHelper;
|
|
23
|
+
this.sdkProvider = services.sdkProvider;
|
|
24
|
+
this.debugFn = (msg) => this.ioHelper.notify(private_1.IO.DEFAULT_ASSEMBLY_DEBUG.msg(msg));
|
|
25
|
+
this._outdir = props.outdir;
|
|
48
26
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
* Run code from a different working directory
|
|
57
|
-
*/
|
|
58
|
-
async function changeDir(block, workingDir) {
|
|
59
|
-
const originalWorkingDir = process.cwd();
|
|
60
|
-
try {
|
|
61
|
-
if (workingDir) {
|
|
62
|
-
process.chdir(workingDir);
|
|
27
|
+
/**
|
|
28
|
+
* Turn the given optional output directory into a fixed output directory
|
|
29
|
+
*/
|
|
30
|
+
get outdir() {
|
|
31
|
+
if (!this._outdir) {
|
|
32
|
+
const outdir = fs.mkdtempSync(path.join(fs.realpathSync(os.tmpdir()), 'cdk.out'));
|
|
33
|
+
this._outdir = outdir;
|
|
63
34
|
}
|
|
64
|
-
return
|
|
35
|
+
return this._outdir;
|
|
65
36
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
37
|
+
/**
|
|
38
|
+
* Guess the executable from the command-line argument
|
|
39
|
+
*
|
|
40
|
+
* Only do this if the file is NOT marked as executable. If it is,
|
|
41
|
+
* we'll defer to the shebang inside the file itself.
|
|
42
|
+
*
|
|
43
|
+
* If we're on Windows, we ALWAYS take the handler, since it's hard to
|
|
44
|
+
* verify if registry associations have or have not been set up for this
|
|
45
|
+
* file type, so we'll assume the worst and take control.
|
|
46
|
+
*/
|
|
47
|
+
guessExecutable(app) {
|
|
48
|
+
return (0, aws_cdk_1.guessExecutable)(app, this.debugFn);
|
|
70
49
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
50
|
+
/**
|
|
51
|
+
* If we don't have region/account defined in context, we fall back to the default SDK behavior
|
|
52
|
+
* where region is retrieved from ~/.aws/config and account is based on default credentials provider
|
|
53
|
+
* chain and then STS is queried.
|
|
54
|
+
*
|
|
55
|
+
* This is done opportunistically: for example, if we can't access STS for some reason or the region
|
|
56
|
+
* is not configured, the context value will be 'null' and there could failures down the line. In
|
|
57
|
+
* some cases, synthesis does not require region/account information at all, so that might be perfectly
|
|
58
|
+
* fine in certain scenarios.
|
|
59
|
+
*/
|
|
60
|
+
async defaultEnvVars() {
|
|
61
|
+
const debugFn = (msg) => this.ioHelper.notify(private_1.IO.CDK_ASSEMBLY_I0010.msg(msg));
|
|
62
|
+
const env = await (0, aws_cdk_1.prepareDefaultEnvironment)(this.sdkProvider, debugFn);
|
|
63
|
+
env[cxapi.OUTDIR_ENV] = this.outdir;
|
|
64
|
+
await debugFn((0, node_util_1.format)('outdir:', this.outdir));
|
|
65
|
+
// CLI version information
|
|
66
|
+
env[cxapi.CLI_ASM_VERSION_ENV] = cxschema.Manifest.version();
|
|
67
|
+
env[cxapi.CLI_VERSION_ENV] = (0, aws_cdk_1.versionNumber)();
|
|
68
|
+
await debugFn((0, node_util_1.format)('env:', env));
|
|
69
|
+
return env;
|
|
83
70
|
}
|
|
84
|
-
|
|
85
|
-
|
|
71
|
+
/**
|
|
72
|
+
* Run code from a different working directory
|
|
73
|
+
*/
|
|
74
|
+
async changeDir(block, workingDir) {
|
|
75
|
+
const originalWorkingDir = process.cwd();
|
|
76
|
+
try {
|
|
77
|
+
if (workingDir) {
|
|
78
|
+
process.chdir(workingDir);
|
|
79
|
+
}
|
|
80
|
+
return await block();
|
|
81
|
+
}
|
|
82
|
+
finally {
|
|
83
|
+
if (workingDir) {
|
|
84
|
+
process.chdir(originalWorkingDir);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
86
87
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
const contextDir = fs.mkdtempSync(path.join(os.tmpdir(), 'cdk-context'));
|
|
102
|
-
contextOverflowLocation = path.join(contextDir, 'context-overflow.json');
|
|
103
|
-
fs.writeJSONSync(contextOverflowLocation, overflow);
|
|
104
|
-
env[cxapi.CONTEXT_OVERFLOW_LOCATION_ENV] = contextOverflowLocation;
|
|
88
|
+
/**
|
|
89
|
+
* Run code with additional environment variables
|
|
90
|
+
*/
|
|
91
|
+
async withEnv(env = {}, block) {
|
|
92
|
+
const originalEnv = process.env;
|
|
93
|
+
try {
|
|
94
|
+
process.env = {
|
|
95
|
+
...originalEnv,
|
|
96
|
+
...env,
|
|
97
|
+
};
|
|
98
|
+
return await block();
|
|
99
|
+
}
|
|
100
|
+
finally {
|
|
101
|
+
process.env = originalEnv;
|
|
105
102
|
}
|
|
106
|
-
// call the block code with new environment
|
|
107
|
-
return await block(env, context);
|
|
108
103
|
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
104
|
+
/**
|
|
105
|
+
* Run code with context setup inside the environment
|
|
106
|
+
*/
|
|
107
|
+
async withContext(inputContext, env, synthOpts = {}, block) {
|
|
108
|
+
const context = await (0, aws_cdk_1.prepareContext)(synthOptsDefaults(synthOpts), inputContext, env, this.debugFn);
|
|
109
|
+
let contextOverflowLocation = null;
|
|
110
|
+
try {
|
|
111
|
+
const envVariableSizeLimit = os.platform() === 'win32' ? 32760 : 131072;
|
|
112
|
+
const [smallContext, overflow] = (0, util_1.splitBySize)(context, (0, aws_cdk_1.spaceAvailableForContext)(env, envVariableSizeLimit));
|
|
113
|
+
// Store the safe part in the environment variable
|
|
114
|
+
env[cxapi.CONTEXT_ENV] = JSON.stringify(smallContext);
|
|
115
|
+
// If there was any overflow, write it to a temporary file
|
|
116
|
+
if (Object.keys(overflow ?? {}).length > 0) {
|
|
117
|
+
const contextDir = fs.mkdtempSync(path.join(os.tmpdir(), 'cdk-context'));
|
|
118
|
+
contextOverflowLocation = path.join(contextDir, 'context-overflow.json');
|
|
119
|
+
fs.writeJSONSync(contextOverflowLocation, overflow);
|
|
120
|
+
env[cxapi.CONTEXT_OVERFLOW_LOCATION_ENV] = contextOverflowLocation;
|
|
121
|
+
}
|
|
122
|
+
// call the block code with new environment
|
|
123
|
+
return await block(env, context);
|
|
124
|
+
}
|
|
125
|
+
finally {
|
|
126
|
+
if (contextOverflowLocation) {
|
|
127
|
+
fs.removeSync(path.dirname(contextOverflowLocation));
|
|
128
|
+
}
|
|
112
129
|
}
|
|
113
130
|
}
|
|
114
131
|
}
|
|
132
|
+
exports.ExecutionEnvironment = ExecutionEnvironment;
|
|
115
133
|
/**
|
|
116
134
|
* Checks if a given assembly supports context overflow, warn otherwise.
|
|
117
135
|
*
|
|
118
136
|
* @param assembly the assembly to check
|
|
119
137
|
*/
|
|
120
138
|
async function checkContextOverflowSupport(assembly, ioHelper) {
|
|
121
|
-
const
|
|
139
|
+
const traceFn = (msg) => ioHelper.notify(private_1.IO.DEFAULT_ASSEMBLY_TRACE.msg(msg));
|
|
140
|
+
const tree = await (0, aws_cdk_1.loadTree)(assembly, traceFn);
|
|
122
141
|
const frameworkDoesNotSupportContextOverflow = (0, aws_cdk_1.some)(tree, node => {
|
|
123
142
|
const fqn = node.constructInfo?.fqn;
|
|
124
143
|
const version = node.constructInfo?.version;
|
|
@@ -134,7 +153,7 @@ async function checkContextOverflowSupport(assembly, ioHelper) {
|
|
|
134
153
|
/**
|
|
135
154
|
* Safely create an assembly from a cloud assembly directory
|
|
136
155
|
*/
|
|
137
|
-
async function assemblyFromDirectory(assemblyDir,
|
|
156
|
+
async function assemblyFromDirectory(assemblyDir, ioHelper, loadOptions = {}) {
|
|
138
157
|
try {
|
|
139
158
|
const assembly = new cxapi.CloudAssembly(assemblyDir, {
|
|
140
159
|
skipVersionCheck: !(loadOptions.checkVersion ?? true),
|
|
@@ -142,7 +161,7 @@ async function assemblyFromDirectory(assemblyDir, ioHost, loadOptions = {}) {
|
|
|
142
161
|
// We sort as we deploy
|
|
143
162
|
topoSort: false,
|
|
144
163
|
});
|
|
145
|
-
await checkContextOverflowSupport(assembly,
|
|
164
|
+
await checkContextOverflowSupport(assembly, ioHelper);
|
|
146
165
|
return assembly;
|
|
147
166
|
}
|
|
148
167
|
catch (err) {
|
|
@@ -150,7 +169,7 @@ async function assemblyFromDirectory(assemblyDir, ioHost, loadOptions = {}) {
|
|
|
150
169
|
// this means the CLI version is too old.
|
|
151
170
|
// we instruct the user to upgrade.
|
|
152
171
|
const message = 'This AWS CDK Toolkit is not compatible with the AWS CDK library used by your application. Please upgrade to the latest version.';
|
|
153
|
-
await
|
|
172
|
+
await ioHelper.notify(private_1.IO.CDK_ASSEMBLY_E1111.msg(message, { error: err }));
|
|
154
173
|
throw new shared_public_1.ToolkitError(`${message}\n(${err.message}`);
|
|
155
174
|
}
|
|
156
175
|
throw err;
|
|
@@ -166,4 +185,4 @@ function synthOptsDefaults(synthOpts = {}) {
|
|
|
166
185
|
...synthOpts,
|
|
167
186
|
}, true);
|
|
168
187
|
}
|
|
169
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcGFyZS1zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwcmVwYXJlLXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF1QkEsNERBRUM7QUFjRCw4REFlQztBQUtELDhCQWFDO0FBS0QsMEJBWUM7QUFLRCxrQ0ErQkM7QUFPRCxrRUFjQztBQUtELHNEQW9CQztBQTNLRCw4QkFBOEI7QUFDOUIsa0NBQWtDO0FBQ2xDLHlDQUFtQztBQUNuQywyREFBMkQ7QUFDM0QseUNBQXlDO0FBQ3pDLCtCQUErQjtBQUMvQixtQ0FBNkI7QUFDN0Isa0RBQWtLO0FBQ2xLLGdEQUFvRDtBQUVwRCw4Q0FBc0M7QUFFdEMsdURBQW1EO0FBR25ELGdEQUF1RDtBQUE5QywwR0FBQSxlQUFlLE9BQUE7QUFLeEI7O0dBRUc7QUFDSCxTQUFnQix3QkFBd0IsQ0FBQyxNQUFlO0lBQ3RELE9BQU8sTUFBTSxJQUFJLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7QUFDdEYsQ0FBQztBQUVEOzs7Ozs7Ozs7OztHQVdHO0FBQ0ksS0FBSyxVQUFVLHlCQUF5QixDQUFDLFFBQXlCLEVBQUUsUUFBNkIsRUFBRTtJQUN4RyxNQUFNLEtBQUssR0FBRyxDQUFDLEdBQVcsRUFBRSxHQUFHLElBQVMsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsWUFBRSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxJQUFBLGtCQUFNLEVBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZILE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBQSxtQ0FBVSxFQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFFMUQsSUFBSSxLQUFLLENBQUMs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O0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxZQUE2QixFQUFFO0lBQ3hELE9BQU8sSUFBSSxrQkFBUSxDQUFDO1FBQ2xCLEtBQUssRUFBRSxLQUFLO1FBQ1osWUFBWSxFQUFFLElBQUk7UUFDbEIsZ0JBQWdCLEVBQUUsSUFBSTtRQUN0QixhQUFhLEVBQUUsSUFBSTtRQUNuQixZQUFZLEVBQUUsSUFBSTtRQUNsQixHQUFHLFNBQVM7S0FDYixFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ1gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIG9zIGZyb20gJ25vZGU6b3MnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHsgZm9ybWF0IH0gZnJvbSAnbm9kZTp1dGlsJztcbmltcG9ydCAqIGFzIGN4c2NoZW1hIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jeC1hcGknO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHsgbHRlIH0gZnJvbSAnc2VtdmVyJztcbmltcG9ydCB7IHByZXBhcmVEZWZhdWx0RW52aXJvbm1lbnQgYXMgb2xkUHJlcGFyZSwgcHJlcGFyZUNvbnRleHQsIHNwYWNlQXZhaWxhYmxlRm9yQ29udGV4dCwgU2V0dGluZ3MsIGxvYWRUcmVlLCBzb21lLCB2ZXJzaW9uTnVtYmVyIH0gZnJvbSAnLi4vLi4vLi4vYXBpL2F3cy1jZGsnO1xuaW1wb3J0IHsgc3BsaXRCeVNpemUgfSBmcm9tICcuLi8uLi8uLi9wcml2YXRlL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBUb29sa2l0U2VydmljZXMgfSBmcm9tICcuLi8uLi8uLi90b29sa2l0L3ByaXZhdGUnO1xuaW1wb3J0IHsgSU8gfSBmcm9tICcuLi8uLi9pby9wcml2YXRlJztcbmltcG9ydCB0eXBlIHsgSW9IZWxwZXIgfSBmcm9tICcuLi8uLi9zaGFyZWQtcHJpdmF0ZSc7XG5pbXBvcnQgeyBUb29sa2l0RXJyb3IgfSBmcm9tICcuLi8uLi9zaGFyZWQtcHVibGljJztcbmltcG9ydCB0eXBlIHsgQXBwU3ludGhPcHRpb25zLCBMb2FkQXNzZW1ibHlPcHRpb25zIH0gZnJvbSAnLi4vc291cmNlLWJ1aWxkZXInO1xuXG5leHBvcnQgeyBndWVzc0V4ZWN1dGFibGUgfSBmcm9tICcuLi8uLi8uLi9hcGkvYXdzLWNkayc7XG5cbnR5cGUgRW52ID0geyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbnR5cGUgQ29udGV4dCA9IHsgW2tleTogc3RyaW5nXTogYW55IH07XG5cbi8qKlxuICogVHVybiB0aGUgZ2l2ZW4gb3B0aW9uYWwgb3V0cHV0IGRpcmVjdG9yeSBpbnRvIGEgZml4ZWQgb3V0cHV0IGRpcmVjdG9yeVxuICovXG5leHBvcnQgZnVuY3Rpb24gZGV0ZXJtaW5lT3V0cHV0RGlyZWN0b3J5KG91dGRpcj86IHN0cmluZykge1xuICByZXR1cm4gb3V0ZGlyID8/IGZzLm1rZHRlbXBTeW5jKHBhdGguam9pbihmcy5yZWFscGF0aFN5bmMob3MudG1wZGlyKCkpLCAnY2RrLm91dCcpKTtcbn1cblxuLyoqXG4gKiBJZiB3ZSBkb24ndCBoYXZlIHJlZ2lvbi9hY2NvdW50IGRlZmluZWQgaW4gY29udGV4dCwgd2UgZmFsbCBiYWNrIHRvIHRoZSBkZWZhdWx0IFNESyBiZWhhdmlvclxuICogd2hlcmUgcmVnaW9uIGlzIHJldHJpZXZlZCBmcm9tIH4vLmF3cy9jb25maWcgYW5kIGFjY291bnQgaXMgYmFzZWQgb24gZGVmYXVsdCBjcmVkZW50aWFscyBwcm92aWRlclxuICogY2hhaW4gYW5kIHRoZW4gU1RTIGlzIHF1ZXJpZWQuXG4gKlxuICogVGhpcyBpcyBkb25lIG9wcG9ydHVuaXN0aWNhbGx5OiBmb3IgZXhhbXBsZSwgaWYgd2UgY2FuJ3QgYWNjZXNzIFNUUyBmb3Igc29tZSByZWFzb24gb3IgdGhlIHJlZ2lvblxuICogaXMgbm90IGNvbmZpZ3VyZWQsIHRoZSBjb250ZXh0IHZhbHVlIHdpbGwgYmUgJ251bGwnIGFuZCB0aGVyZSBjb3VsZCBmYWlsdXJlcyBkb3duIHRoZSBsaW5lLiBJblxuICogc29tZSBjYXNlcywgc3ludGhlc2lzIGRvZXMgbm90IHJlcXVpcmUgcmVnaW9uL2FjY291bnQgaW5mb3JtYXRpb24gYXQgYWxsLCBzbyB0aGF0IG1pZ2h0IGJlIHBlcmZlY3RseVxuICogZmluZSBpbiBjZXJ0YWluIHNjZW5hcmlvcy5cbiAqXG4gKiBAcGFyYW0gY29udGV4dCBUaGUgY29udGV4dCBrZXkvdmFsdWUgYmFzaC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHByZXBhcmVEZWZhdWx0RW52aXJvbm1lbnQoc2VydmljZXM6IFRvb2xraXRTZXJ2aWNlcywgcHJvcHM6IHsgb3V0ZGlyPzogc3RyaW5nIH0gPSB7fSk6IFByb21pc2U8RW52PiB7XG4gIGNvbnN0IGxvZ0ZuID0gKG1zZzogc3RyaW5nLCAuLi5hcmdzOiBhbnkpID0+IHNlcnZpY2VzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfQVNTRU1CTFlfSTAwMTAubXNnKGZvcm1hdChtc2csIC4uLmFyZ3MpKSk7XG4gIGNvbnN0IGVudiA9IGF3YWl0IG9sZFByZXBhcmUoc2VydmljZXMuc2RrUHJvdmlkZXIsIGxvZ0ZuKTtcblxuICBpZiAocHJvcHMub3V0ZGlyKSB7XG4gICAgZW52W2N4YXBpLk9VVERJUl9FTlZdID0gcHJvcHMub3V0ZGlyO1xuICAgIGF3YWl0IGxvZ0ZuKCdvdXRkaXI6JywgcHJvcHMub3V0ZGlyKTtcbiAgfVxuXG4gIC8vIENMSSB2ZXJzaW9uIGluZm9ybWF0aW9uXG4gIGVudltjeGFwaS5DTElfQVNNX1ZFUlNJT05fRU5WXSA9IGN4c2NoZW1hLk1hbmlmZXN0LnZlcnNpb24oKTtcbiAgZW52W2N4YXBpLkNMSV9WRVJTSU9OX0VOVl0gPSB2ZXJzaW9uTnVtYmVyKCk7XG5cbiAgYXdhaXQgbG9nRm4oJ2VudjonLCBlbnYpO1xuICByZXR1cm4gZW52O1xufVxuXG4vKipcbiAqIFJ1biBjb2RlIGZyb20gYSBkaWZmZXJlbnQgd29ya2luZyBkaXJlY3RvcnlcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNoYW5nZURpcjxUPihibG9jazogKCkgPT4gUHJvbWlzZTxUPiwgd29ya2luZ0Rpcj86IHN0cmluZykge1xuICBjb25zdCBvcmlnaW5hbFdvcmtpbmdEaXIgPSBwcm9jZXNzLmN3ZCgpO1xuICB0cnkge1xuICAgIGlmICh3b3JraW5nRGlyKSB7XG4gICAgICBwcm9jZXNzLmNoZGlyKHdvcmtpbmdEaXIpO1xuICAgIH1cblxuICAgIHJldHVybiBhd2FpdCBibG9jaygpO1xuICB9IGZpbmFsbHkge1xuICAgIGlmICh3b3JraW5nRGlyKSB7XG4gICAgICBwcm9jZXNzLmNoZGlyKG9yaWdpbmFsV29ya2luZ0Rpcik7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogUnVuIGNvZGUgd2l0aCBhZGRpdGlvbmFsIGVudmlyb25tZW50IHZhcmlhYmxlc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd2l0aEVudjxUPihlbnY6IEVudiA9IHt9LCBibG9jazogKCkgPT4gUHJvbWlzZTxUPikge1xuICBjb25zdCBvcmlnaW5hbEVudiA9IHByb2Nlc3MuZW52O1xuICB0cnkge1xuICAgIHByb2Nlc3MuZW52ID0ge1xuICAgICAgLi4ub3JpZ2luYWxFbnYsXG4gICAgICAuLi5lbnYsXG4gICAgfTtcblxuICAgIHJldHVybiBhd2FpdCBibG9jaygpO1xuICB9IGZpbmFsbHkge1xuICAgIHByb2Nlc3MuZW52ID0gb3JpZ2luYWxFbnY7XG4gIH1cbn1cblxuLyoqXG4gKiBSdW4gY29kZSB3aXRoIGNvbnRleHQgc2V0dXAgaW5zaWRlIHRoZSBlbnZpcm9ubWVudFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd2l0aENvbnRleHQ8VD4oXG4gIGlucHV0Q29udGV4dDogQ29udGV4dCxcbiAgZW52OiBFbnYsXG4gIHN5bnRoT3B0czogQXBwU3ludGhPcHRpb25zID0ge30sXG4gIGJsb2NrOiAoZW52OiBFbnYsIGNvbnRleHQ6IENvbnRleHQpID0+IFByb21pc2U8VD4sXG4pIHtcbiAgY29uc3QgY29udGV4dCA9IGF3YWl0IHByZXBhcmVDb250ZXh0KHN5bnRoT3B0c0RlZmF1bHRzKHN5bnRoT3B0cyksIGlucHV0Q29udGV4dCwgZW52KTtcbiAgbGV0IGNvbnRleHRPdmVyZmxvd0xvY2F0aW9uID0gbnVsbDtcblxuICB0cnkge1xuICAgIGNvbnN0IGVudlZhcmlhYmxlU2l6ZUxpbWl0ID0gb3MucGxhdGZvcm0oKSA9PT0gJ3dpbjMyJyA/IDMyNzYwIDogMTMxMDcyO1xuICAgIGNvbnN0IFtzbWFsbENvbnRleHQsIG92ZXJmbG93XSA9IHNwbGl0QnlTaXplKGNvbnRleHQsIHNwYWNlQXZhaWxhYmxlRm9yQ29udGV4dChlbnYsIGVudlZhcmlhYmxlU2l6ZUxpbWl0KSk7XG5cbiAgICAvLyBTdG9yZSB0aGUgc2FmZSBwYXJ0IGluIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZVxuICAgIGVudltjeGFwaS5DT05URVhUX0VOVl0gPSBKU09OLnN0cmluZ2lmeShzbWFsbENvbnRleHQpO1xuXG4gICAgLy8gSWYgdGhlcmUgd2FzIGFueSBvdmVyZmxvdywgd3JpdGUgaXQgdG8gYSB0ZW1wb3JhcnkgZmlsZVxuICAgIGlmIChPYmplY3Qua2V5cyhvdmVyZmxvdyA/PyB7fSkubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgY29udGV4dERpciA9IGZzLm1rZHRlbXBTeW5jKHBhdGguam9pbihvcy50bXBkaXIoKSwgJ2Nkay1jb250ZXh0JykpO1xuICAgICAgY29udGV4dE92ZXJmbG93TG9jYXRpb24gPSBwYXRoLmpvaW4oY29udGV4dERpciwgJ2NvbnRleHQtb3ZlcmZsb3cuanNvbicpO1xuICAgICAgZnMud3JpdGVKU09OU3luYyhjb250ZXh0T3ZlcmZsb3dMb2NhdGlvbiwgb3ZlcmZsb3cpO1xuICAgICAgZW52W2N4YXBpLkNPTlRFWFRfT1ZFUkZMT1dfTE9DQVRJT05fRU5WXSA9IGNvbnRleHRPdmVyZmxvd0xvY2F0aW9uO1xuICAgIH1cblxuICAgIC8vIGNhbGwgdGhlIGJsb2NrIGNvZGUgd2l0aCBuZXcgZW52aXJvbm1lbnRcbiAgICByZXR1cm4gYXdhaXQgYmxvY2soZW52LCBjb250ZXh0KTtcbiAgfSBmaW5hbGx5IHtcbiAgICBpZiAoY29udGV4dE92ZXJmbG93TG9jYXRpb24pIHtcbiAgICAgIGZzLnJlbW92ZVN5bmMocGF0aC5kaXJuYW1lKGNvbnRleHRPdmVyZmxvd0xvY2F0aW9uKSk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGEgZ2l2ZW4gYXNzZW1ibHkgc3VwcG9ydHMgY29udGV4dCBvdmVyZmxvdywgd2FybiBvdGhlcndpc2UuXG4gKlxuICogQHBhcmFtIGFzc2VtYmx5IHRoZSBhc3NlbWJseSB0byBjaGVja1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2hlY2tDb250ZXh0T3ZlcmZsb3dTdXBwb3J0KGFzc2VtYmx5OiBjeGFwaS5DbG91ZEFzc2VtYmx5LCBpb0hlbHBlcjogSW9IZWxwZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgdHJlZSA9IGxvYWRUcmVlKGFzc2VtYmx5LCAobXNnOiBzdHJpbmcpID0+IHZvaWQgaW9IZWxwZXIubm90aWZ5KElPLkRFRkFVTFRfQVNTRU1CTFlfVFJBQ0UubXNnKG1zZykpKTtcbiAgY29uc3QgZnJhbWV3b3JrRG9lc05vdFN1cHBvcnRDb250ZXh0T3ZlcmZsb3cgPSBzb21lKHRyZWUsIG5vZGUgPT4ge1xuICAgIGNvbnN0IGZxbiA9IG5vZGUuY29uc3RydWN0SW5mbz8uZnFuO1xuICAgIGNvbnN0IHZlcnNpb24gPSBub2RlLmNvbnN0cnVjdEluZm8/LnZlcnNpb247XG4gICAgcmV0dXJuIChmcW4gPT09ICdhd3MtY2RrLWxpYi5BcHAnICYmIHZlcnNpb24gIT0gbnVsbCAmJiBsdGUodmVyc2lvbiwgJzIuMzguMCcpKSAvLyB2MlxuICAgIHx8IGZxbiA9PT0gJ0Bhd3MtY2RrL2NvcmUuQXBwJzsgLy8gdjFcbiAgfSk7XG5cbiAgLy8gV2UncmUgZGVhbGluZyB3aXRoIGFuIG9sZCB2ZXJzaW9uIG9mIHRoZSBmcmFtZXdvcmsgaGVyZS4gSXQgaXMgdW5hd2FyZSBvZiB0aGUgdGVtcG9yYXJ5XG4gIC8vIGZpbGUsIHdoaWNoIG1lYW5zIHRoYXQgaXQgd2lsbCBpZ25vcmUgdGhlIGNvbnRleHQgb3ZlcmZsb3cuXG4gIGlmIChmcmFtZXdvcmtEb2VzTm90U3VwcG9ydENvbnRleHRPdmVyZmxvdykge1xuICAgIGF3YWl0IGlvSGVscGVyLm5vdGlmeShJTy5DREtfQVNTRU1CTFlfVzAwMTAubXNnKCdQYXJ0IG9mIHRoZSBjb250ZXh0IGNvdWxkIG5vdCBiZSBzZW50IHRvIHRoZSBhcHBsaWNhdGlvbi4gUGxlYXNlIHVwZGF0ZSB0aGUgQVdTIENESyBsaWJyYXJ5IHRvIHRoZSBsYXRlc3QgdmVyc2lvbi4nKSk7XG4gIH1cbn1cblxuLyoqXG4gKiBTYWZlbHkgY3JlYXRlIGFuIGFzc2VtYmx5IGZyb20gYSBjbG91ZCBhc3NlbWJseSBkaXJlY3RvcnlcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFzc2VtYmx5RnJvbURpcmVjdG9yeShhc3NlbWJseURpcjogc3RyaW5nLCBpb0hvc3Q6IElvSGVscGVyLCBsb2FkT3B0aW9uczogTG9hZEFzc2VtYmx5T3B0aW9ucyA9IHt9KSB7XG4gIHRyeSB7XG4gICAgY29uc3QgYXNzZW1ibHkgPSBuZXcgY3hhcGkuQ2xvdWRBc3NlbWJseShhc3NlbWJseURpciwge1xuICAgICAgc2tpcFZlcnNpb25DaGVjazogIShsb2FkT3B0aW9ucy5jaGVja1ZlcnNpb24gPz8gdHJ1ZSksXG4gICAgICBza2lwRW51bUNoZWNrOiAhKGxvYWRPcHRpb25zLmNoZWNrRW51bXMgPz8gdHJ1ZSksXG4gICAgICAvLyBXZSBzb3J0IGFzIHdlIGRlcGxveVxuICAgICAgdG9wb1NvcnQ6IGZhbHNlLFxuICAgIH0pO1xuICAgIGF3YWl0IGNoZWNrQ29udGV4dE92ZXJmbG93U3VwcG9ydChhc3NlbWJseSwgaW9Ib3N0KTtcbiAgICByZXR1cm4gYXNzZW1ibHk7XG4gIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgaWYgKGVyci5tZXNzYWdlLmluY2x1ZGVzKGN4c2NoZW1hLlZFUlNJT05fTUlTTUFUQ0gpKSB7XG4gICAgICAvLyB0aGlzIG1lYW5zIHRoZSBDTEkgdmVyc2lvbiBpcyB0b28gb2xkLlxuICAgICAgLy8gd2UgaW5zdHJ1Y3QgdGhlIHVzZXIgdG8gdXBncmFkZS5cbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSAnVGhpcyBBV1MgQ0RLIFRvb2xraXQgaXMgbm90IGNvbXBhdGlibGUgd2l0aCB0aGUgQVdTIENESyBsaWJyYXJ5IHVzZWQgYnkgeW91ciBhcHBsaWNhdGlvbi4gUGxlYXNlIHVwZ3JhZGUgdG8gdGhlIGxhdGVzdCB2ZXJzaW9uLic7XG4gICAgICBhd2FpdCBpb0hvc3Qubm90aWZ5KElPLkNES19BU1NFTUJMWV9FMTExMS5tc2cobWVzc2FnZSwgeyBlcnJvcjogZXJyIH0pKTtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoYCR7bWVzc2FnZX1cXG4oJHtlcnIubWVzc2FnZX1gKTtcbiAgICB9XG4gICAgdGhyb3cgZXJyO1xuICB9XG59XG5cbmZ1bmN0aW9uIHN5bnRoT3B0c0RlZmF1bHRzKHN5bnRoT3B0czogQXBwU3ludGhPcHRpb25zID0ge30pOiBTZXR0aW5ncyB7XG4gIHJldHVybiBuZXcgU2V0dGluZ3Moe1xuICAgIGRlYnVnOiBmYWxzZSxcbiAgICBwYXRoTWV0YWRhdGE6IHRydWUsXG4gICAgdmVyc2lvblJlcG9ydGluZzogdHJ1ZSxcbiAgICBhc3NldE1ldGFkYXRhOiB0cnVlLFxuICAgIGFzc2V0U3RhZ2luZzogdHJ1ZSxcbiAgICAuLi5zeW50aE9wdHMsXG4gIH0sIHRydWUpO1xufVxuIl19
|
|
188
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcGFyZS1zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwcmVwYXJlLXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFtTEEsc0RBb0JDO0FBdk1ELDhCQUE4QjtBQUM5QixrQ0FBa0M7QUFDbEMseUNBQW1DO0FBQ25DLDJEQUEyRDtBQUMzRCx5Q0FBeUM7QUFDekMsK0JBQStCO0FBQy9CLG1DQUE2QjtBQUU3QixrREFBbUw7QUFDbkwsZ0RBQW9EO0FBRXBELDhDQUFzQztBQUV0Qyx1REFBbUQ7QUFNbkQsTUFBYSxvQkFBb0I7SUFDZCxRQUFRLENBQVc7SUFDbkIsV0FBVyxDQUFjO0lBQ3pCLE9BQU8sQ0FBaUM7SUFDakQsT0FBTyxDQUFxQjtJQUVwQyxZQUFtQixRQUF5QixFQUFFLFFBQTZCLEVBQUU7UUFDM0UsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQztRQUN4QyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxZQUFFLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDekYsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQzlCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsTUFBTTtRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEIsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNsRixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FB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Q3ZCLFFBQVEsRUFBRSxLQUFLO1NBQ2hCLENBQUMsQ0FBQztRQUNILE1BQU0sMkJBQTJCLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3RELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFBQyxPQUFPLEdBQVEsRUFBRSxDQUFDO1FBQ2xCLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztZQUNwRCx5Q0FBeUM7WUFDekMsbUNBQW1DO1lBQ25DLE1BQU0sT0FBTyxHQUFHLGlJQUFpSSxDQUFDO1lBQ2xKLE1BQU0sUUFBUSxDQUFDLE1BQU0sQ0FBQyxZQUFFLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDMUUsTUFBTSxJQUFJLDRCQUFZLENBQUMsR0FBRyxPQUFPLE1BQU0sR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDeEQsQ0FBQztRQUNELE1BQU0sR0FBRyxDQUFDO0lBQ1osQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLFlBQTZCLEVBQUU7SUFDeEQsT0FBTyxJQUFJLGtCQUFRLENBQUM7UUFDbEIsS0FBSyxFQUFFLEtBQUs7UUFDWixZQUFZLEVBQUUsSUFBSTtRQUNsQixnQkFBZ0IsRUFBRSxJQUFJO1FBQ3RCLGFBQWEsRUFBRSxJQUFJO1FBQ25CLFlBQVksRUFBRSxJQUFJO1FBQ2xCLEdBQUcsU0FBUztLQUNiLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDWCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgb3MgZnJvbSAnbm9kZTpvcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgeyBmb3JtYXQgfSBmcm9tICdub2RlOnV0aWwnO1xuaW1wb3J0ICogYXMgY3hzY2hlbWEgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbmltcG9ydCAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2N4LWFwaSc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgeyBsdGUgfSBmcm9tICdzZW12ZXInO1xuaW1wb3J0IHR5cGUgeyBTZGtQcm92aWRlciB9IGZyb20gJy4uLy4uLy4uL2FwaS9hd3MtY2RrJztcbmltcG9ydCB7IHByZXBhcmVEZWZhdWx0RW52aXJvbm1lbnQgYXMgb2xkUHJlcGFyZSwgcHJlcGFyZUNvbnRleHQsIHNwYWNlQXZhaWxhYmxlRm9yQ29udGV4dCwgU2V0dGluZ3MsIGxvYWRUcmVlLCBzb21lLCB2ZXJzaW9uTnVtYmVyLCBndWVzc0V4ZWN1dGFibGUgfSBmcm9tICcuLi8uLi8uLi9hcGkvYXdzLWNkayc7XG5pbXBvcnQgeyBzcGxpdEJ5U2l6ZSB9IGZyb20gJy4uLy4uLy4uL3ByaXZhdGUvdXRpbCc7XG5pbXBvcnQgdHlwZSB7IFRvb2xraXRTZXJ2aWNlcyB9IGZyb20gJy4uLy4uLy4uL3Rvb2xraXQvcHJpdmF0ZSc7XG5pbXBvcnQgeyBJTyB9IGZyb20gJy4uLy4uL2lvL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBJb0hlbHBlciB9IGZyb20gJy4uLy4uL3NoYXJlZC1wcml2YXRlJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uL3NoYXJlZC1wdWJsaWMnO1xuaW1wb3J0IHR5cGUgeyBBcHBTeW50aE9wdGlvbnMsIExvYWRBc3NlbWJseU9wdGlvbnMgfSBmcm9tICcuLi9zb3VyY2UtYnVpbGRlcic7XG5cbnR5cGUgRW52ID0geyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbnR5cGUgQ29udGV4dCA9IHsgW2tleTogc3RyaW5nXTogYW55IH07XG5cbmV4cG9ydCBjbGFzcyBFeGVjdXRpb25FbnZpcm9ubWVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW9IZWxwZXI6IElvSGVscGVyO1xuICBwcml2YXRlIHJlYWRvbmx5IHNka1Byb3ZpZGVyOiBTZGtQcm92aWRlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBkZWJ1Z0ZuOiAobXNnOiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG4gIHByaXZhdGUgX291dGRpcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihzZXJ2aWNlczogVG9vbGtpdFNlcnZpY2VzLCBwcm9wczogeyBvdXRkaXI/OiBzdHJpbmcgfSA9IHt9KSB7XG4gICAgdGhpcy5pb0hlbHBlciA9IHNlcnZpY2VzLmlvSGVscGVyO1xuICAgIHRoaXMuc2RrUHJvdmlkZXIgPSBzZXJ2aWNlcy5zZGtQcm92aWRlcjtcbiAgICB0aGlzLmRlYnVnRm4gPSAobXNnOiBzdHJpbmcpID0+IHRoaXMuaW9IZWxwZXIubm90aWZ5KElPLkRFRkFVTFRfQVNTRU1CTFlfREVCVUcubXNnKG1zZykpO1xuICAgIHRoaXMuX291dGRpciA9IHByb3BzLm91dGRpcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBUdXJuIHRoZSBnaXZlbiBvcHRpb25hbCBvdXRwdXQgZGlyZWN0b3J5IGludG8gYSBmaXhlZCBvdXRwdXQgZGlyZWN0b3J5XG4gICAqL1xuICBwdWJsaWMgZ2V0IG91dGRpcigpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5fb3V0ZGlyKSB7XG4gICAgICBjb25zdCBvdXRkaXIgPSBmcy5ta2R0ZW1wU3luYyhwYXRoLmpvaW4oZnMucmVhbHBhdGhTeW5jKG9zLnRtcGRpcigpKSwgJ2Nkay5vdXQnKSk7XG4gICAgICB0aGlzLl9vdXRkaXIgPSBvdXRkaXI7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9vdXRkaXI7XG4gIH1cblxuICAvKipcbiAgICogR3Vlc3MgdGhlIGV4ZWN1dGFibGUgZnJvbSB0aGUgY29tbWFuZC1saW5lIGFyZ3VtZW50XG4gICAqXG4gICAqIE9ubHkgZG8gdGhpcyBpZiB0aGUgZmlsZSBpcyBOT1QgbWFya2VkIGFzIGV4ZWN1dGFibGUuIElmIGl0IGlzLFxuICAgKiB3ZSdsbCBkZWZlciB0byB0aGUgc2hlYmFuZyBpbnNpZGUgdGhlIGZpbGUgaXRzZWxmLlxuICAgKlxuICAgKiBJZiB3ZSdyZSBvbiBXaW5kb3dzLCB3ZSBBTFdBWVMgdGFrZSB0aGUgaGFuZGxlciwgc2luY2UgaXQncyBoYXJkIHRvXG4gICAqIHZlcmlmeSBpZiByZWdpc3RyeSBhc3NvY2lhdGlvbnMgaGF2ZSBvciBoYXZlIG5vdCBiZWVuIHNldCB1cCBmb3IgdGhpc1xuICAgKiBmaWxlIHR5cGUsIHNvIHdlJ2xsIGFzc3VtZSB0aGUgd29yc3QgYW5kIHRha2UgY29udHJvbC5cbiAgICovXG4gIHB1YmxpYyBndWVzc0V4ZWN1dGFibGUoYXBwOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gZ3Vlc3NFeGVjdXRhYmxlKGFwcCwgdGhpcy5kZWJ1Z0ZuKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB3ZSBkb24ndCBoYXZlIHJlZ2lvbi9hY2NvdW50IGRlZmluZWQgaW4gY29udGV4dCwgd2UgZmFsbCBiYWNrIHRvIHRoZSBkZWZhdWx0IFNESyBiZWhhdmlvclxuICAgKiB3aGVyZSByZWdpb24gaXMgcmV0cmlldmVkIGZyb20gfi8uYXdzL2NvbmZpZyBhbmQgYWNjb3VudCBpcyBiYXNlZCBvbiBkZWZhdWx0IGNyZWRlbnRpYWxzIHByb3ZpZGVyXG4gICAqIGNoYWluIGFuZCB0aGVuIFNUUyBpcyBxdWVyaWVkLlxuICAgKlxuICAgKiBUaGlzIGlzIGRvbmUgb3Bwb3J0dW5pc3RpY2FsbHk6IGZvciBleGFtcGxlLCBpZiB3ZSBjYW4ndCBhY2Nlc3MgU1RTIGZvciBzb21lIHJlYXNvbiBvciB0aGUgcmVnaW9uXG4gICAqIGlzIG5vdCBjb25maWd1cmVkLCB0aGUgY29udGV4dCB2YWx1ZSB3aWxsIGJlICdudWxsJyBhbmQgdGhlcmUgY291bGQgZmFpbHVyZXMgZG93biB0aGUgbGluZS4gSW5cbiAgICogc29tZSBjYXNlcywgc3ludGhlc2lzIGRvZXMgbm90IHJlcXVpcmUgcmVnaW9uL2FjY291bnQgaW5mb3JtYXRpb24gYXQgYWxsLCBzbyB0aGF0IG1pZ2h0IGJlIHBlcmZlY3RseVxuICAgKiBmaW5lIGluIGNlcnRhaW4gc2NlbmFyaW9zLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGRlZmF1bHRFbnZWYXJzKCk6IFByb21pc2U8RW52PiB7XG4gICAgY29uc3QgZGVidWdGbiA9IChtc2c6IHN0cmluZykgPT4gdGhpcy5pb0hlbHBlci5ub3RpZnkoSU8uQ0RLX0FTU0VNQkxZX0kwMDEwLm1zZyhtc2cpKTtcbiAgICBjb25zdCBlbnYgPSBhd2FpdCBvbGRQcmVwYXJlKHRoaXMuc2RrUHJvdmlkZXIsIGRlYnVnRm4pO1xuXG4gICAgZW52W2N4YXBpLk9VVERJUl9FTlZdID0gdGhpcy5vdXRkaXI7XG4gICAgYXdhaXQgZGVidWdGbihmb3JtYXQoJ291dGRpcjonLCB0aGlzLm91dGRpcikpO1xuXG4gICAgLy8gQ0xJIHZlcnNpb24gaW5mb3JtYXRpb25cbiAgICBlbnZbY3hhcGkuQ0xJX0FTTV9WRVJTSU9OX0VOVl0gPSBjeHNjaGVtYS5NYW5pZmVzdC52ZXJzaW9uKCk7XG4gICAgZW52W2N4YXBpLkNMSV9WRVJTSU9OX0VOVl0gPSB2ZXJzaW9uTnVtYmVyKCk7XG5cbiAgICBhd2FpdCBkZWJ1Z0ZuKGZvcm1hdCgnZW52OicsIGVudikpO1xuICAgIHJldHVybiBlbnY7XG4gIH1cblxuICAvKipcbiAgICogUnVuIGNvZGUgZnJvbSBhIGRpZmZlcmVudCB3b3JraW5nIGRpcmVjdG9yeVxuICAgKi9cbiAgcHVibGljIGFzeW5jIGNoYW5nZURpcjxUPihibG9jazogKCkgPT4gUHJvbWlzZTxUPiwgd29ya2luZ0Rpcj86IHN0cmluZykge1xuICAgIGNvbnN0IG9yaWdpbmFsV29ya2luZ0RpciA9IHByb2Nlc3MuY3dkKCk7XG4gICAgdHJ5IHtcbiAgICAgIGlmICh3b3JraW5nRGlyKSB7XG4gICAgICAgIHByb2Nlc3MuY2hkaXIod29ya2luZ0Rpcik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBhd2FpdCBibG9jaygpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAod29ya2luZ0Rpcikge1xuICAgICAgICBwcm9jZXNzLmNoZGlyKG9yaWdpbmFsV29ya2luZ0Rpcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1biBjb2RlIHdpdGggYWRkaXRpb25hbCBlbnZpcm9ubWVudCB2YXJpYWJsZXNcbiAgICovXG4gIHB1YmxpYyBhc3luYyB3aXRoRW52PFQ+KGVudjogRW52ID0ge30sIGJsb2NrOiAoKSA9PiBQcm9taXNlPFQ+KSB7XG4gICAgY29uc3Qgb3JpZ2luYWxFbnYgPSBwcm9jZXNzLmVudjtcbiAgICB0cnkge1xuICAgICAgcHJvY2Vzcy5lbnYgPSB7XG4gICAgICAgIC4uLm9yaWdpbmFsRW52LFxuICAgICAgICAuLi5lbnYsXG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gYXdhaXQgYmxvY2soKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgcHJvY2Vzcy5lbnYgPSBvcmlnaW5hbEVudjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUnVuIGNvZGUgd2l0aCBjb250ZXh0IHNldHVwIGluc2lkZSB0aGUgZW52aXJvbm1lbnRcbiAgICovXG4gIHB1YmxpYyBhc3luYyB3aXRoQ29udGV4dDxUPihcbiAgICBpbnB1dENvbnRleHQ6IENvbnRleHQsXG4gICAgZW52OiBFbnYsXG4gICAgc3ludGhPcHRzOiBBcHBTeW50aE9wdGlvbnMgPSB7fSxcbiAgICBibG9jazogKGVudjogRW52LCBjb250ZXh0OiBDb250ZXh0KSA9PiBQcm9taXNlPFQ+LFxuICApIHtcbiAgICBjb25zdCBjb250ZXh0ID0gYXdhaXQgcHJlcGFyZUNvbnRleHQoc3ludGhPcHRzRGVmYXVsdHMoc3ludGhPcHRzKSwgaW5wdXRDb250ZXh0LCBlbnYsIHRoaXMuZGVidWdGbik7XG4gICAgbGV0IGNvbnRleHRPdmVyZmxvd0xvY2F0aW9uID0gbnVsbDtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBlbnZWYXJpYWJsZVNpemVMaW1pdCA9IG9zLnBsYXRmb3JtKCkgPT09ICd3aW4zMicgPyAzMjc2MCA6IDEzMTA3MjtcbiAgICAgIGNvbnN0IFtzbWFsbENvbnRleHQsIG92ZXJmbG93XSA9IHNwbGl0QnlTaXplKGNvbnRleHQsIHNwYWNlQXZhaWxhYmxlRm9yQ29udGV4dChlbnYsIGVudlZhcmlhYmxlU2l6ZUxpbWl0KSk7XG5cbiAgICAgIC8vIFN0b3JlIHRoZSBzYWZlIHBhcnQgaW4gdGhlIGVudmlyb25tZW50IHZhcmlhYmxlXG4gICAgICBlbnZbY3hhcGkuQ09OVEVYVF9FTlZdID0gSlNPTi5zdHJpbmdpZnkoc21hbGxDb250ZXh0KTtcblxuICAgICAgLy8gSWYgdGhlcmUgd2FzIGFueSBvdmVyZmxvdywgd3JpdGUgaXQgdG8gYSB0ZW1wb3JhcnkgZmlsZVxuICAgICAgaWYgKE9iamVjdC5rZXlzKG92ZXJmbG93ID8/IHt9KS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IGNvbnRleHREaXIgPSBmcy5ta2R0ZW1wU3luYyhwYXRoLmpvaW4ob3MudG1wZGlyKCksICdjZGstY29udGV4dCcpKTtcbiAgICAgICAgY29udGV4dE92ZXJmbG93TG9jYXRpb24gPSBwYXRoLmpvaW4oY29udGV4dERpciwgJ2NvbnRleHQtb3ZlcmZsb3cuanNvbicpO1xuICAgICAgICBmcy53cml0ZUpTT05TeW5jKGNvbnRleHRPdmVyZmxvd0xvY2F0aW9uLCBvdmVyZmxvdyk7XG4gICAgICAgIGVudltjeGFwaS5DT05URVhUX09WRVJGTE9XX0xPQ0FUSU9OX0VOVl0gPSBjb250ZXh0T3ZlcmZsb3dMb2NhdGlvbjtcbiAgICAgIH1cblxuICAgICAgLy8gY2FsbCB0aGUgYmxvY2sgY29kZSB3aXRoIG5ldyBlbnZpcm9ubWVudFxuICAgICAgcmV0dXJuIGF3YWl0IGJsb2NrKGVudiwgY29udGV4dCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChjb250ZXh0T3ZlcmZsb3dMb2NhdGlvbikge1xuICAgICAgICBmcy5yZW1vdmVTeW5jKHBhdGguZGlybmFtZShjb250ZXh0T3ZlcmZsb3dMb2NhdGlvbikpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIGdpdmVuIGFzc2VtYmx5IHN1cHBvcnRzIGNvbnRleHQgb3ZlcmZsb3csIHdhcm4gb3RoZXJ3aXNlLlxuICpcbiAqIEBwYXJhbSBhc3NlbWJseSB0aGUgYXNzZW1ibHkgdG8gY2hlY2tcbiAqL1xuYXN5bmMgZnVuY3Rpb24gY2hlY2tDb250ZXh0T3ZlcmZsb3dTdXBwb3J0KGFzc2VtYmx5OiBjeGFwaS5DbG91ZEFzc2VtYmx5LCBpb0hlbHBlcjogSW9IZWxwZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgdHJhY2VGbiA9IChtc2c6IHN0cmluZykgPT4gaW9IZWxwZXIubm90aWZ5KElPLkRFRkFVTFRfQVNTRU1CTFlfVFJBQ0UubXNnKG1zZykpO1xuICBjb25zdCB0cmVlID0gYXdhaXQgbG9hZFRyZWUoYXNzZW1ibHksIHRyYWNlRm4pO1xuICBjb25zdCBmcmFtZXdvcmtEb2VzTm90U3VwcG9ydENvbnRleHRPdmVyZmxvdyA9IHNvbWUodHJlZSwgbm9kZSA9PiB7XG4gICAgY29uc3QgZnFuID0gbm9kZS5jb25zdHJ1Y3RJbmZvPy5mcW47XG4gICAgY29uc3QgdmVyc2lvbiA9IG5vZGUuY29uc3RydWN0SW5mbz8udmVyc2lvbjtcbiAgICByZXR1cm4gKGZxbiA9PT0gJ2F3cy1jZGstbGliLkFwcCcgJiYgdmVyc2lvbiAhPSBudWxsICYmIGx0ZSh2ZXJzaW9uLCAnMi4zOC4wJykpIC8vIHYyXG4gICAgfHwgZnFuID09PSAnQGF3cy1jZGsvY29yZS5BcHAnOyAvLyB2MVxuICB9KTtcblxuICAvLyBXZSdyZSBkZWFsaW5nIHdpdGggYW4gb2xkIHZlcnNpb24gb2YgdGhlIGZyYW1ld29yayBoZXJlLiBJdCBpcyB1bmF3YXJlIG9mIHRoZSB0ZW1wb3JhcnlcbiAgLy8gZmlsZSwgd2hpY2ggbWVhbnMgdGhhdCBpdCB3aWxsIGlnbm9yZSB0aGUgY29udGV4dCBvdmVyZmxvdy5cbiAgaWYgKGZyYW1ld29ya0RvZXNOb3RTdXBwb3J0Q29udGV4dE92ZXJmbG93KSB7XG4gICAgYXdhaXQgaW9IZWxwZXIubm90aWZ5KElPLkNES19BU1NFTUJMWV9XMDAxMC5tc2coJ1BhcnQgb2YgdGhlIGNvbnRleHQgY291bGQgbm90IGJlIHNlbnQgdG8gdGhlIGFwcGxpY2F0aW9uLiBQbGVhc2UgdXBkYXRlIHRoZSBBV1MgQ0RLIGxpYnJhcnkgdG8gdGhlIGxhdGVzdCB2ZXJzaW9uLicpKTtcbiAgfVxufVxuXG4vKipcbiAqIFNhZmVseSBjcmVhdGUgYW4gYXNzZW1ibHkgZnJvbSBhIGNsb3VkIGFzc2VtYmx5IGRpcmVjdG9yeVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXNzZW1ibHlGcm9tRGlyZWN0b3J5KGFzc2VtYmx5RGlyOiBzdHJpbmcsIGlvSGVscGVyOiBJb0hlbHBlciwgbG9hZE9wdGlvbnM6IExvYWRBc3NlbWJseU9wdGlvbnMgPSB7fSkge1xuICB0cnkge1xuICAgIGNvbnN0IGFzc2VtYmx5ID0gbmV3IGN4YXBpLkNsb3VkQXNzZW1ibHkoYXNzZW1ibHlEaXIsIHtcbiAgICAgIHNraXBWZXJzaW9uQ2hlY2s6ICEobG9hZE9wdGlvbnMuY2hlY2tWZXJzaW9uID8/IHRydWUpLFxuICAgICAgc2tpcEVudW1DaGVjazogIShsb2FkT3B0aW9ucy5jaGVja0VudW1zID8/IHRydWUpLFxuICAgICAgLy8gV2Ugc29ydCBhcyB3ZSBkZXBsb3lcbiAgICAgIHRvcG9Tb3J0OiBmYWxzZSxcbiAgICB9KTtcbiAgICBhd2FpdCBjaGVja0NvbnRleHRPdmVyZmxvd1N1cHBvcnQoYXNzZW1ibHksIGlvSGVscGVyKTtcbiAgICByZXR1cm4gYXNzZW1ibHk7XG4gIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgaWYgKGVyci5tZXNzYWdlLmluY2x1ZGVzKGN4c2NoZW1hLlZFUlNJT05fTUlTTUFUQ0gpKSB7XG4gICAgICAvLyB0aGlzIG1lYW5zIHRoZSBDTEkgdmVyc2lvbiBpcyB0b28gb2xkLlxuICAgICAgLy8gd2UgaW5zdHJ1Y3QgdGhlIHVzZXIgdG8gdXBncmFkZS5cbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSAnVGhpcyBBV1MgQ0RLIFRvb2xraXQgaXMgbm90IGNvbXBhdGlibGUgd2l0aCB0aGUgQVdTIENESyBsaWJyYXJ5IHVzZWQgYnkgeW91ciBhcHBsaWNhdGlvbi4gUGxlYXNlIHVwZ3JhZGUgdG8gdGhlIGxhdGVzdCB2ZXJzaW9uLic7XG4gICAgICBhd2FpdCBpb0hlbHBlci5ub3RpZnkoSU8uQ0RLX0FTU0VNQkxZX0UxMTExLm1zZyhtZXNzYWdlLCB7IGVycm9yOiBlcnIgfSkpO1xuICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihgJHttZXNzYWdlfVxcbigke2Vyci5tZXNzYWdlfWApO1xuICAgIH1cbiAgICB0aHJvdyBlcnI7XG4gIH1cbn1cblxuZnVuY3Rpb24gc3ludGhPcHRzRGVmYXVsdHMoc3ludGhPcHRzOiBBcHBTeW50aE9wdGlvbnMgPSB7fSk6IFNldHRpbmdzIHtcbiAgcmV0dXJuIG5ldyBTZXR0aW5ncyh7XG4gICAgZGVidWc6IGZhbHNlLFxuICAgIHBhdGhNZXRhZGF0YTogdHJ1ZSxcbiAgICB2ZXJzaW9uUmVwb3J0aW5nOiB0cnVlLFxuICAgIGFzc2V0TWV0YWRhdGE6IHRydWUsXG4gICAgYXNzZXRTdGFnaW5nOiB0cnVlLFxuICAgIC4uLnN5bnRoT3B0cyxcbiAgfSwgdHJ1ZSk7XG59XG4iXX0=
|
|
@@ -26,12 +26,12 @@ class CloudAssemblySourceBuilder {
|
|
|
26
26
|
};
|
|
27
27
|
return new context_aware_source_1.ContextAwareCloudAssembly({
|
|
28
28
|
produce: async () => {
|
|
29
|
-
const
|
|
30
|
-
const env = await
|
|
31
|
-
const assembly = await
|
|
29
|
+
const execution = new prepare_source_1.ExecutionEnvironment(services, { outdir: props.outdir });
|
|
30
|
+
const env = await execution.defaultEnvVars();
|
|
31
|
+
const assembly = await execution.changeDir(async () => execution.withContext(context.all, env, props.synthOptions ?? {}, async (envWithContext, ctx) => execution.withEnv(envWithContext, () => {
|
|
32
32
|
try {
|
|
33
33
|
return builder({
|
|
34
|
-
outdir,
|
|
34
|
+
outdir: execution.outdir,
|
|
35
35
|
context: ctx,
|
|
36
36
|
});
|
|
37
37
|
}
|
|
@@ -94,7 +94,6 @@ class CloudAssemblySourceBuilder {
|
|
|
94
94
|
// if (build) {
|
|
95
95
|
// await execInChildProcess(build, { cwd: props.workingDirectory });
|
|
96
96
|
// }
|
|
97
|
-
const commandLine = await (0, prepare_source_1.guessExecutable)(app);
|
|
98
97
|
const outdir = props.outdir ?? 'cdk.out';
|
|
99
98
|
try {
|
|
100
99
|
fs.mkdirpSync(outdir);
|
|
@@ -103,8 +102,10 @@ class CloudAssemblySourceBuilder {
|
|
|
103
102
|
throw new shared_public_1.ToolkitError(`Could not create output directory at '${outdir}' (${e.message}).`);
|
|
104
103
|
}
|
|
105
104
|
lock = await new aws_cdk_1.RWLock(outdir).acquireWrite();
|
|
106
|
-
const
|
|
107
|
-
|
|
105
|
+
const execution = new prepare_source_1.ExecutionEnvironment(services, { outdir });
|
|
106
|
+
const commandLine = await execution.guessExecutable(app);
|
|
107
|
+
const env = await execution.defaultEnvVars();
|
|
108
|
+
return await execution.withContext(context.all, env, props.synthOptions, async (envWithContext, _ctx) => {
|
|
108
109
|
await (0, exec_1.execInChildProcess)(commandLine.join(' '), {
|
|
109
110
|
eventPublisher: async (type, line) => {
|
|
110
111
|
switch (type) {
|
|
@@ -130,4 +131,4 @@ class CloudAssemblySourceBuilder {
|
|
|
130
131
|
}
|
|
131
132
|
}
|
|
132
133
|
exports.CloudAssemblySourceBuilder = CloudAssemblySourceBuilder;
|
|
133
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzb3VyY2UtYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FBeUM7QUFDekMsK0JBQStCO0FBRy9CLGlFQUFtRTtBQUNuRSxpQ0FBNEM7QUFDNUMscURBQWdLO0FBR2hLLDJDQUEwRDtBQUMxRCw4Q0FBc0M7QUFDdEMsdURBQWtFO0FBR2xFLE1BQXNCLDBCQUEwQjtJQU85Qzs7Ozs7T0FLRztJQUNJLEtBQUssQ0FBQyxtQkFBbUIsQ0FDOUIsT0FBd0IsRUFDeEIsUUFBNkIsRUFBRTtRQUUvQixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3BELE1BQU0sT0FBTyxHQUFHLElBQUksaUJBQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLGtCQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDeEUsTUFBTSxvQkFBb0IsR0FBbUM7WUFDM0QsUUFBUTtZQUNSLE9BQU87WUFDUCxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87U0FDdkIsQ0FBQztRQUVGLE9BQU8sSUFBSSxnREFBeUIsQ0FDbEM7WUFDRSxPQUFPLEVBQUUsS0FBSyxJQUFJLEVBQUU7Z0JBQ2xCLE1BQU0sTUFBTSxHQUFHLElBQUEseUNBQXdCLEVBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN0RCxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUEsMENBQXlCLEVBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztnQkFDbEUsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFBLDBCQUFTLEVBQUMsS0FBSyxJQUFJLEVBQUUsQ0FDMUMsSUFBQSw0QkFBVyxFQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEtBQUssQ0FBQyxZQUFZLElBQUksRUFBRSxFQUFFLEtBQUss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Q0FBQyxnQkFBZ0I7eUJBQzVCLENBQUMsQ0FBQzt3QkFDSCxPQUFPLElBQUEsc0NBQXFCLEVBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7b0JBQ3JGLENBQUMsQ0FBQyxDQUFDO2dCQUNMLENBQUM7d0JBQVMsQ0FBQztvQkFDVCxNQUFNLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQztnQkFDeEIsQ0FBQztZQUNILENBQUM7U0FDRixFQUNELG9CQUFvQixDQUNyQixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBbkpELGdFQW1KQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2N4LWFwaSc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgdHlwZSB7IEFzc2VtYmx5RGlyZWN0b3J5UHJvcHMsIEFzc2VtYmx5U291cmNlUHJvcHMsIElDbG91ZEFzc2VtYmx5U291cmNlIH0gZnJvbSAnLi4vJztcbmltcG9ydCB0eXBlIHsgQ29udGV4dEF3YXJlQ2xvdWRBc3NlbWJseVByb3BzIH0gZnJvbSAnLi9jb250ZXh0LWF3YXJlLXNvdXJjZSc7XG5pbXBvcnQgeyBDb250ZXh0QXdhcmVDbG91ZEFzc2VtYmx5IH0gZnJvbSAnLi9jb250ZXh0LWF3YXJlLXNvdXJjZSc7XG5pbXBvcnQgeyBleGVjSW5DaGlsZFByb2Nlc3MgfSBmcm9tICcuL2V4ZWMnO1xuaW1wb3J0IHsgYXNzZW1ibHlGcm9tRGlyZWN0b3J5LCBjaGFuZ2VEaXIsIGRldGVybWluZU91dHB1dERpcmVjdG9yeSwgZ3Vlc3NFeGVjdXRhYmxlLCBwcmVwYXJlRGVmYXVsdEVudmlyb25tZW50LCB3aXRoQ29udGV4dCwgd2l0aEVudiB9IGZyb20gJy4vcHJlcGFyZS1zb3VyY2UnO1xuaW1wb3J0IHR5cGUgeyBUb29sa2l0U2VydmljZXMgfSBmcm9tICcuLi8uLi8uLi90b29sa2l0L3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBJTG9jayB9IGZyb20gJy4uLy4uL2F3cy1jZGsnO1xuaW1wb3J0IHsgQ29udGV4dCwgUldMb2NrLCBTZXR0aW5ncyB9IGZyb20gJy4uLy4uL2F3cy1jZGsnO1xuaW1wb3J0IHsgSU8gfSBmcm9tICcuLi8uLi9pby9wcml2YXRlJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciwgQXNzZW1ibHlFcnJvciB9IGZyb20gJy4uLy4uL3NoYXJlZC1wdWJsaWMnO1xuaW1wb3J0IHR5cGUgeyBBc3NlbWJseUJ1aWxkZXIgfSBmcm9tICcuLi9zb3VyY2UtYnVpbGRlcic7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDbG91ZEFzc2VtYmx5U291cmNlQnVpbGRlciB7XG4gIC8qKlxuICAgKiBIZWxwZXIgdG8gcHJvdmlkZSB0aGUgQ2xvdWRBc3NlbWJseVNvdXJjZUJ1aWxkZXIgd2l0aCByZXF1aXJlZCB0b29sa2l0IHNlcnZpY2VzXG4gICAqIEBkZXByZWNhdGVkIHRoaXMgc2hvdWxkIG1vdmUgdG8gdGhlIHRvb2xraXQgcmVhbGx5LlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IHNvdXJjZUJ1aWxkZXJTZXJ2aWNlcygpOiBQcm9taXNlPFRvb2xraXRTZXJ2aWNlcz47XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIENsb3VkIEFzc2VtYmx5IGZyb20gYSBDbG91ZCBBc3NlbWJseSBidWlsZGVyIGZ1bmN0aW9uLlxuICAgKiBAcGFyYW0gYnVpbGRlciB0aGUgYnVpbGRlciBmdW5jdGlvblxuICAgKiBAcGFyYW0gcHJvcHMgYWRkaXRpb25hbCBjb25maWd1cmF0aW9uIHByb3BlcnRpZXNcbiAgICogQHJldHVybnMgdGhlIENsb3VkQXNzZW1ibHkgc291cmNlXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZnJvbUFzc2VtYmx5QnVpbGRlcihcbiAgICBidWlsZGVyOiBBc3NlbWJseUJ1aWxkZXIsXG4gICAgcHJvcHM6IEFzc2VtYmx5U291cmNlUHJvcHMgPSB7fSxcbiAgKTogUHJvbWlzZTxJQ2xvdWRBc3NlbWJseVNvdXJjZT4ge1xuICAgIGNvbnN0IHNlcnZpY2VzID0gYXdhaXQgdGhpcy5zb3VyY2VCdWlsZGVyU2VydmljZXMoKTtcbiAgICBjb25zdCBjb250ZXh0ID0gbmV3IENvbnRleHQoeyBiYWc6IG5ldyBTZXR0aW5ncyhwcm9wcy5jb250ZXh0ID8/IHt9KSB9KTtcbiAgICBjb25zdCBjb250ZXh0QXNzZW1ibHlQcm9wczogQ29udGV4dEF3YXJlQ2xvdWRBc3NlbWJseVByb3BzID0ge1xuICAgICAgc2VydmljZXMsXG4gICAgICBjb250ZXh0LFxuICAgICAgbG9va3VwczogcHJvcHMubG9va3VwcyxcbiAgICB9O1xuXG4gICAgcmV0dXJuIG5ldyBDb250ZXh0QXdhcmVDbG91ZEFzc2VtYmx5KFxuICAgICAge1xuICAgICAgICBwcm9kdWNlOiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgY29uc3Qgb3V0ZGlyID0gZGV0ZXJtaW5lT3V0cHV0RGlyZWN0b3J5KHByb3BzLm91dGRpcik7XG4gICAgICAgICAgY29uc3QgZW52ID0gYXdhaXQgcHJlcGFyZURlZmF1bHRFbnZpcm9ubWVudChzZXJ2aWNlcywgeyBvdXRkaXIgfSk7XG4gICAgICAgICAgY29uc3QgYXNzZW1ibHkgPSBhd2FpdCBjaGFuZ2VEaXIoYXN5bmMgKCkgPT5cbiAgICAgICAgICAgIHdpdGhDb250ZXh0KGNvbnRleHQuYWxsLCBlbnYsIHByb3BzLnN5bnRoT3B0aW9ucyA/PyB7fSwgYXN5bmMgKGVudldpdGhDb250ZXh0LCBjdHgpID0+XG4gICAgICAgICAgICAgIHdpdGhFbnYoZW52V2l0aENvbnRleHQsICgpID0+IHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGJ1aWxkZXIoe1xuICAgICAgICAgICAgICAgICAgICBvdXRkaXIsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IGN0eCxcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgICAgICAgICAgICAgICAvLyByZS10aHJvdyB0b29sa2l0IGVycm9ycyB1bmNoYW5nZWRcbiAgICAgICAgICAgICAgICAgIGlmIChUb29sa2l0RXJyb3IuaXNUb29sa2l0RXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgLy8gb3RoZXJ3aXNlLCB3cmFwIGludG8gYW4gYXNzZW1ibHkgZXJyb3JcbiAgICAgICAgICAgICAgICAgIHRocm93IEFzc2VtYmx5RXJyb3Iud2l0aENhdXNlKCdBc3NlbWJseSBidWlsZGVyIGZhaWxlZCcsIGVycm9yKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKSwgcHJvcHMud29ya2luZ0RpcmVjdG9yeSk7XG5cbiAgICAgICAgICBpZiAoY3hhcGkuQ2xvdWRBc3NlbWJseS5pc0Nsb3VkQXNzZW1ibHkoYXNzZW1ibHkpKSB7XG4gICAgICAgICAgICByZXR1cm4gYXNzZW1ibHk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIGFzc2VtYmx5RnJvbURpcmVjdG9yeShhc3NlbWJseS5kaXJlY3RvcnksIHNlcnZpY2VzLmlvSGVscGVyLCBwcm9wcy5sb2FkQXNzZW1ibHlPcHRpb25zKTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBjb250ZXh0QXNzZW1ibHlQcm9wcyxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBDbG91ZCBBc3NlbWJseSBmcm9tIGFuIGV4aXN0aW5nIGFzc2VtYmx5IGRpcmVjdG9yeS5cbiAgICogQHBhcmFtIGRpcmVjdG9yeSB0aGUgZGlyZWN0b3J5IG9mIGEgYWxyZWFkeSBwcm9kdWNlZCBDbG91ZCBBc3NlbWJseS5cbiAgICogQHJldHVybnMgdGhlIENsb3VkQXNzZW1ibHkgc291cmNlXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZnJvbUFzc2VtYmx5RGlyZWN0b3J5KGRpcmVjdG9yeTogc3RyaW5nLCBwcm9wczogQXNzZW1ibHlEaXJlY3RvcnlQcm9wcyA9IHt9KTogUHJvbWlzZTxJQ2xvdWRBc3NlbWJseVNvdXJjZT4ge1xuICAgIGNvbnN0IHNlcnZpY2VzOiBUb29sa2l0U2VydmljZXMgPSBhd2FpdCB0aGlzLnNvdXJjZUJ1aWxkZXJTZXJ2aWNlcygpO1xuICAgIGNvbnN0IGNvbnRleHRBc3NlbWJseVByb3BzOiBDb250ZXh0QXdhcmVDbG91ZEFzc2VtYmx5UHJvcHMgPSB7XG4gICAgICBzZXJ2aWNlcyxcbiAgICAgIGNvbnRleHQ6IG5ldyBDb250ZXh0KCksIC8vIEB0b2RvIHRoZXJlIGlzIHByb2JhYmx5IGEgZGlmZmVyZW5jZSBiZXR3ZWVuIGNvbnRleHRhd2FyZSBhbmQgY29udGV4dGxvb2t1cCBzb3VyY2VzXG4gICAgICBsb29rdXBzOiBmYWxzZSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIG5ldyBDb250ZXh0QXdhcmVDbG91ZEFzc2VtYmx5KFxuICAgICAge1xuICAgICAgICBwcm9kdWNlOiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgLy8gQHRvZG8gYnVpbGRcbiAgICAgICAgICBhd2FpdCBzZXJ2aWNlcy5pb0hlbHBlci5ub3RpZnkoSU8uQ0RLX0FTU0VNQkxZX0kwMTUwLm1zZygnLS1hcHAgcG9pbnRzIHRvIGEgY2xvdWQgYXNzZW1ibHksIHNvIHdlIGJ5cGFzcyBzeW50aCcpKTtcbiAgICAgICAgICByZXR1cm4gYXNzZW1ibHlGcm9tRGlyZWN0b3J5KGRpcmVjdG9yeSwgc2VydmljZXMuaW9IZWxwZXIsIHByb3BzLmxvYWRBc3NlbWJseU9wdGlvbnMpO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGNvbnRleHRBc3NlbWJseVByb3BzLFxuICAgICk7XG4gIH1cbiAgLyoqXG4gICAqIFVzZSBhIGRpcmVjdG9yeSBjb250YWluaW5nIGFuIEFXUyBDREsgYXBwIGFzIHNvdXJjZS5cbiAgICogQHBhcmFtIHByb3BzIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzXG4gICAqIEByZXR1cm5zIHRoZSBDbG91ZEFzc2VtYmx5IHNvdXJjZVxuICAgKi9cbiAgcHVibGljIGFzeW5jIGZyb21DZGtBcHAoYXBwOiBzdHJpbmcsIHByb3BzOiBBc3NlbWJseVNvdXJjZVByb3BzID0ge30pOiBQcm9taXNlPElDbG91ZEFzc2VtYmx5U291cmNlPiB7XG4gICAgY29uc3Qgc2VydmljZXM6IFRvb2xraXRTZXJ2aWNlcyA9IGF3YWl0IHRoaXMuc291cmNlQnVpbGRlclNlcnZpY2VzKCk7XG4gICAgLy8gQHRvZG8gdGhpcyBkZWZpbml0ZWx5IG5lZWRzIHRvIHJlYWQgZmlsZXMgZnJvbSB0aGUgQ1dEXG4gICAgY29uc3QgY29udGV4dCA9IG5ldyBDb250ZXh0KHsgYmFnOiBuZXcgU2V0dGluZ3MocHJvcHMuY29udGV4dCA/PyB7fSkgfSk7XG4gICAgY29uc3QgY29udGV4dEFzc2VtYmx5UHJvcHM6IENvbnRleHRBd2FyZUNsb3VkQXNzZW1ibHlQcm9wcyA9IHtcbiAgICAgIHNlcnZpY2VzLFxuICAgICAgY29udGV4dCxcbiAgICAgIGxvb2t1cHM6IHByb3BzLmxvb2t1cHMsXG4gICAgfTtcblxuICAgIHJldHVybiBuZXcgQ29udGV4dEF3YXJlQ2xvdWRBc3NlbWJseShcbiAgICAgIHtcbiAgICAgICAgcHJvZHVjZTogYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIGxldCBsb2NrOiBJTG9jayB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gQHRvZG8gYnVpbGRcbiAgICAgICAgICAgIC8vIGNvbnN0IGJ1aWxkID0gdGhpcy5wcm9wcy5jb25maWd1cmF0aW9uLnNldHRpbmdzLmdldChbJ2J1aWxkJ10pO1xuICAgICAgICAgICAgLy8gaWYgKGJ1aWxkKSB7XG4gICAgICAgICAgICAvLyAgIGF3YWl0IGV4ZWNJbkNoaWxkUHJvY2VzcyhidWlsZCwgeyBjd2Q6IHByb3BzLndvcmtpbmdEaXJlY3RvcnkgfSk7XG4gICAgICAgICAgICAvLyB9XG5cbiAgICAgICAgICAgIGNvbnN0IGNvbW1hbmRMaW5lID0gYXdhaXQgZ3Vlc3NFeGVjdXRhYmxlKGFwcCk7XG4gICAgICAgICAgICBjb25zdCBvdXRkaXIgPSBwcm9wcy5vdXRkaXIgPz8gJ2Nkay5vdXQnO1xuXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBmcy5ta2RpcnBTeW5jKG91dGRpcik7XG4gICAgICAgICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihgQ291bGQgbm90IGNyZWF0ZSBvdXRwdXQgZGlyZWN0b3J5IGF0ICcke291dGRpcn0nICgke2UubWVzc2FnZX0pLmApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsb2NrID0gYXdhaXQgbmV3IFJXTG9jayhvdXRkaXIpLmFjcXVpcmVXcml0ZSgpO1xuXG4gICAgICAgICAgICBjb25zdCBlbnYgPSBhd2FpdCBwcmVwYXJlRGVmYXVsdEVudmlyb25tZW50KHNlcnZpY2VzLCB7IG91dGRpciB9KTtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCB3aXRoQ29udGV4dChjb250ZXh0LmFsbCwgZW52LCBwcm9wcy5zeW50aE9wdGlvbnMsIGFzeW5jIChlbnZXaXRoQ29udGV4dCwgX2N0eCkgPT4ge1xuICAgICAgICAgICAgICBhd2FpdCBleGVjSW5DaGlsZFByb2Nlc3MoY29tbWFuZExpbmUuam9pbignICcpLCB7XG4gICAgICAgICAgICAgICAgZXZlbnRQdWJsaXNoZXI6IGFzeW5jICh0eXBlLCBsaW5lKSA9PiB7XG4gICAgICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZGF0YV9zdGRvdXQnOlxuICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHNlcnZpY2VzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfQVNTRU1CTFlfSTEwMDEubXNnKGxpbmUpKTtcbiAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZGF0YV9zdGRlcnInOlxuICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHNlcnZpY2VzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfQVNTRU1CTFlfRTEwMDIubXNnKGxpbmUpKTtcbiAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGV4dHJhRW52OiBlbnZXaXRoQ29udGV4dCxcbiAgICAgICAgICAgICAgICBjd2Q6IHByb3BzLndvcmtpbmdEaXJlY3RvcnksXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICByZXR1cm4gYXNzZW1ibHlGcm9tRGlyZWN0b3J5KG91dGRpciwgc2VydmljZXMuaW9IZWxwZXIsIHByb3BzLmxvYWRBc3NlbWJseU9wdGlvbnMpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIGF3YWl0IGxvY2s/LnJlbGVhc2UoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgY29udGV4dEFzc2VtYmx5UHJvcHMsXG4gICAgKTtcbiAgfVxufVxuXG4iXX0=
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzb3VyY2UtYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FBeUM7QUFDekMsK0JBQStCO0FBRy9CLGlFQUFtRTtBQUNuRSxpQ0FBNEM7QUFDNUMscURBQStFO0FBRy9FLDJDQUEwRDtBQUMxRCw4Q0FBc0M7QUFDdEMsdURBQWtFO0FBR2xFLE1BQXNCLDBCQUEwQjtJQU85Qzs7Ozs7T0FLRztJQUNJLEtBQUssQ0FBQyxtQkFBbUIsQ0FDOUIsT0FBd0IsRUFDeEIsUUFBNkIsRUFBRTtRQUUvQixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3BELE1BQU0sT0FBTyxHQUFHLElBQUksaUJBQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLGtCQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDeEUsTUFBTSxvQkFBb0IsR0FBbUM7WUFDM0QsUUFBUTtZQUNSLE9BQU87WUFDUCxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87U0FDdkIsQ0FBQztRQUVGLE9BQU8sSUFBSSxnREFBeUIsQ0FDbEM7WUFDRSxPQUFPLEVBQUUsS0FBSyxJQUFJLEVBQUU7Z0JBQ2xCLE1BQU0sU0FBUyxHQUFHLElBQUkscUNBQW9CLENBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO2dCQUMvRSxNQUFNLEdBQUcsR0FBRyxNQUFNLFNBQVMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDN0MsTUFBTSxRQUFRLEdBQUcsTUFBTSxTQUFTLENBQUMsU0FBUyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQ3BELFNBQVMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLFlBQVksSUFBSSxFQUFF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QUFDLENBQUMsQ0FBQzt3Q0FDaEUsTUFBTTtnQ0FDVixDQUFDOzRCQUNILENBQUM7NEJBQ0QsUUFBUSxFQUFFLGNBQWM7NEJBQ3hCLEdBQUcsRUFBRSxLQUFLLENBQUMsZ0JBQWdCO3lCQUM1QixDQUFDLENBQUM7d0JBQ0gsT0FBTyxJQUFBLHNDQUFxQixFQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO29CQUNyRixDQUFDLENBQUMsQ0FBQztnQkFDTCxDQUFDO3dCQUFTLENBQUM7b0JBQ1QsTUFBTSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7Z0JBQ3hCLENBQUM7WUFDSCxDQUFDO1NBQ0YsRUFDRCxvQkFBb0IsQ0FDckIsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQW5KRCxnRUFtSkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jeC1hcGknO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHR5cGUgeyBBc3NlbWJseURpcmVjdG9yeVByb3BzLCBBc3NlbWJseVNvdXJjZVByb3BzLCBJQ2xvdWRBc3NlbWJseVNvdXJjZSB9IGZyb20gJy4uLyc7XG5pbXBvcnQgdHlwZSB7IENvbnRleHRBd2FyZUNsb3VkQXNzZW1ibHlQcm9wcyB9IGZyb20gJy4vY29udGV4dC1hd2FyZS1zb3VyY2UnO1xuaW1wb3J0IHsgQ29udGV4dEF3YXJlQ2xvdWRBc3NlbWJseSB9IGZyb20gJy4vY29udGV4dC1hd2FyZS1zb3VyY2UnO1xuaW1wb3J0IHsgZXhlY0luQ2hpbGRQcm9jZXNzIH0gZnJvbSAnLi9leGVjJztcbmltcG9ydCB7IEV4ZWN1dGlvbkVudmlyb25tZW50LCBhc3NlbWJseUZyb21EaXJlY3RvcnkgfSBmcm9tICcuL3ByZXBhcmUtc291cmNlJztcbmltcG9ydCB0eXBlIHsgVG9vbGtpdFNlcnZpY2VzIH0gZnJvbSAnLi4vLi4vLi4vdG9vbGtpdC9wcml2YXRlJztcbmltcG9ydCB0eXBlIHsgSUxvY2sgfSBmcm9tICcuLi8uLi9hd3MtY2RrJztcbmltcG9ydCB7IENvbnRleHQsIFJXTG9jaywgU2V0dGluZ3MgfSBmcm9tICcuLi8uLi9hd3MtY2RrJztcbmltcG9ydCB7IElPIH0gZnJvbSAnLi4vLi4vaW8vcHJpdmF0ZSc7XG5pbXBvcnQgeyBUb29sa2l0RXJyb3IsIEFzc2VtYmx5RXJyb3IgfSBmcm9tICcuLi8uLi9zaGFyZWQtcHVibGljJztcbmltcG9ydCB0eXBlIHsgQXNzZW1ibHlCdWlsZGVyIH0gZnJvbSAnLi4vc291cmNlLWJ1aWxkZXInO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ2xvdWRBc3NlbWJseVNvdXJjZUJ1aWxkZXIge1xuICAvKipcbiAgICogSGVscGVyIHRvIHByb3ZpZGUgdGhlIENsb3VkQXNzZW1ibHlTb3VyY2VCdWlsZGVyIHdpdGggcmVxdWlyZWQgdG9vbGtpdCBzZXJ2aWNlc1xuICAgKiBAZGVwcmVjYXRlZCB0aGlzIHNob3VsZCBtb3ZlIHRvIHRoZSB0b29sa2l0IHJlYWxseS5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBzb3VyY2VCdWlsZGVyU2VydmljZXMoKTogUHJvbWlzZTxUb29sa2l0U2VydmljZXM+O1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBDbG91ZCBBc3NlbWJseSBmcm9tIGEgQ2xvdWQgQXNzZW1ibHkgYnVpbGRlciBmdW5jdGlvbi5cbiAgICogQHBhcmFtIGJ1aWxkZXIgdGhlIGJ1aWxkZXIgZnVuY3Rpb25cbiAgICogQHBhcmFtIHByb3BzIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzXG4gICAqIEByZXR1cm5zIHRoZSBDbG91ZEFzc2VtYmx5IHNvdXJjZVxuICAgKi9cbiAgcHVibGljIGFzeW5jIGZyb21Bc3NlbWJseUJ1aWxkZXIoXG4gICAgYnVpbGRlcjogQXNzZW1ibHlCdWlsZGVyLFxuICAgIHByb3BzOiBBc3NlbWJseVNvdXJjZVByb3BzID0ge30sXG4gICk6IFByb21pc2U8SUNsb3VkQXNzZW1ibHlTb3VyY2U+IHtcbiAgICBjb25zdCBzZXJ2aWNlcyA9IGF3YWl0IHRoaXMuc291cmNlQnVpbGRlclNlcnZpY2VzKCk7XG4gICAgY29uc3QgY29udGV4dCA9IG5ldyBDb250ZXh0KHsgYmFnOiBuZXcgU2V0dGluZ3MocHJvcHMuY29udGV4dCA/PyB7fSkgfSk7XG4gICAgY29uc3QgY29udGV4dEFzc2VtYmx5UHJvcHM6IENvbnRleHRBd2FyZUNsb3VkQXNzZW1ibHlQcm9wcyA9IHtcbiAgICAgIHNlcnZpY2VzLFxuICAgICAgY29udGV4dCxcbiAgICAgIGxvb2t1cHM6IHByb3BzLmxvb2t1cHMsXG4gICAgfTtcblxuICAgIHJldHVybiBuZXcgQ29udGV4dEF3YXJlQ2xvdWRBc3NlbWJseShcbiAgICAgIHtcbiAgICAgICAgcHJvZHVjZTogYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGV4ZWN1dGlvbiA9IG5ldyBFeGVjdXRpb25FbnZpcm9ubWVudChzZXJ2aWNlcywgeyBvdXRkaXI6IHByb3BzLm91dGRpciB9KTtcbiAgICAgICAgICBjb25zdCBlbnYgPSBhd2FpdCBleGVjdXRpb24uZGVmYXVsdEVudlZhcnMoKTtcbiAgICAgICAgICBjb25zdCBhc3NlbWJseSA9IGF3YWl0IGV4ZWN1dGlvbi5jaGFuZ2VEaXIoYXN5bmMgKCkgPT5cbiAgICAgICAgICAgIGV4ZWN1dGlvbi53aXRoQ29udGV4dChjb250ZXh0LmFsbCwgZW52LCBwcm9wcy5zeW50aE9wdGlvbnMgPz8ge30sIGFzeW5jIChlbnZXaXRoQ29udGV4dCwgY3R4KSA9PlxuICAgICAgICAgICAgICBleGVjdXRpb24ud2l0aEVudihlbnZXaXRoQ29udGV4dCwgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gYnVpbGRlcih7XG4gICAgICAgICAgICAgICAgICAgIG91dGRpcjogZXhlY3V0aW9uLm91dGRpcixcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDogY3R4LFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgICAgIC8vIHJlLXRocm93IHRvb2xraXQgZXJyb3JzIHVuY2hhbmdlZFxuICAgICAgICAgICAgICAgICAgaWYgKFRvb2xraXRFcnJvci5pc1Rvb2xraXRFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAvLyBvdGhlcndpc2UsIHdyYXAgaW50byBhbiBhc3NlbWJseSBlcnJvclxuICAgICAgICAgICAgICAgICAgdGhyb3cgQXNzZW1ibHlFcnJvci53aXRoQ2F1c2UoJ0Fzc2VtYmx5IGJ1aWxkZXIgZmFpbGVkJywgZXJyb3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApLCBwcm9wcy53b3JraW5nRGlyZWN0b3J5KTtcblxuICAgICAgICAgIGlmIChjeGFwaS5DbG91ZEFzc2VtYmx5LmlzQ2xvdWRBc3NlbWJseShhc3NlbWJseSkpIHtcbiAgICAgICAgICAgIHJldHVybiBhc3NlbWJseTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gYXNzZW1ibHlGcm9tRGlyZWN0b3J5KGFzc2VtYmx5LmRpcmVjdG9yeSwgc2VydmljZXMuaW9IZWxwZXIsIHByb3BzLmxvYWRBc3NlbWJseU9wdGlvbnMpO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGNvbnRleHRBc3NlbWJseVByb3BzLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIENsb3VkIEFzc2VtYmx5IGZyb20gYW4gZXhpc3RpbmcgYXNzZW1ibHkgZGlyZWN0b3J5LlxuICAgKiBAcGFyYW0gZGlyZWN0b3J5IHRoZSBkaXJlY3Rvcnkgb2YgYSBhbHJlYWR5IHByb2R1Y2VkIENsb3VkIEFzc2VtYmx5LlxuICAgKiBAcmV0dXJucyB0aGUgQ2xvdWRBc3NlbWJseSBzb3VyY2VcbiAgICovXG4gIHB1YmxpYyBhc3luYyBmcm9tQXNzZW1ibHlEaXJlY3RvcnkoZGlyZWN0b3J5OiBzdHJpbmcsIHByb3BzOiBBc3NlbWJseURpcmVjdG9yeVByb3BzID0ge30pOiBQcm9taXNlPElDbG91ZEFzc2VtYmx5U291cmNlPiB7XG4gICAgY29uc3Qgc2VydmljZXM6IFRvb2xraXRTZXJ2aWNlcyA9IGF3YWl0IHRoaXMuc291cmNlQnVpbGRlclNlcnZpY2VzKCk7XG4gICAgY29uc3QgY29udGV4dEFzc2VtYmx5UHJvcHM6IENvbnRleHRBd2FyZUNsb3VkQXNzZW1ibHlQcm9wcyA9IHtcbiAgICAgIHNlcnZpY2VzLFxuICAgICAgY29udGV4dDogbmV3IENvbnRleHQoKSwgLy8gQHRvZG8gdGhlcmUgaXMgcHJvYmFibHkgYSBkaWZmZXJlbmNlIGJldHdlZW4gY29udGV4dGF3YXJlIGFuZCBjb250ZXh0bG9va3VwIHNvdXJjZXNcbiAgICAgIGxvb2t1cHM6IGZhbHNlLFxuICAgIH07XG5cbiAgICByZXR1cm4gbmV3IENvbnRleHRBd2FyZUNsb3VkQXNzZW1ibHkoXG4gICAgICB7XG4gICAgICAgIHByb2R1Y2U6IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAvLyBAdG9kbyBidWlsZFxuICAgICAgICAgIGF3YWl0IHNlcnZpY2VzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfQVNTRU1CTFlfSTAxNTAubXNnKCctLWFwcCBwb2ludHMgdG8gYSBjbG91ZCBhc3NlbWJseSwgc28gd2UgYnlwYXNzIHN5bnRoJykpO1xuICAgICAgICAgIHJldHVybiBhc3NlbWJseUZyb21EaXJlY3RvcnkoZGlyZWN0b3J5LCBzZXJ2aWNlcy5pb0hlbHBlciwgcHJvcHMubG9hZEFzc2VtYmx5T3B0aW9ucyk7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgY29udGV4dEFzc2VtYmx5UHJvcHMsXG4gICAgKTtcbiAgfVxuICAvKipcbiAgICogVXNlIGEgZGlyZWN0b3J5IGNvbnRhaW5pbmcgYW4gQVdTIENESyBhcHAgYXMgc291cmNlLlxuICAgKiBAcGFyYW0gcHJvcHMgYWRkaXRpb25hbCBjb25maWd1cmF0aW9uIHByb3BlcnRpZXNcbiAgICogQHJldHVybnMgdGhlIENsb3VkQXNzZW1ibHkgc291cmNlXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZnJvbUNka0FwcChhcHA6IHN0cmluZywgcHJvcHM6IEFzc2VtYmx5U291cmNlUHJvcHMgPSB7fSk6IFByb21pc2U8SUNsb3VkQXNzZW1ibHlTb3VyY2U+IHtcbiAgICBjb25zdCBzZXJ2aWNlczogVG9vbGtpdFNlcnZpY2VzID0gYXdhaXQgdGhpcy5zb3VyY2VCdWlsZGVyU2VydmljZXMoKTtcbiAgICAvLyBAdG9kbyB0aGlzIGRlZmluaXRlbHkgbmVlZHMgdG8gcmVhZCBmaWxlcyBmcm9tIHRoZSBDV0RcbiAgICBjb25zdCBjb250ZXh0ID0gbmV3IENvbnRleHQoeyBiYWc6IG5ldyBTZXR0aW5ncyhwcm9wcy5jb250ZXh0ID8/IHt9KSB9KTtcbiAgICBjb25zdCBjb250ZXh0QXNzZW1ibHlQcm9wczogQ29udGV4dEF3YXJlQ2xvdWRBc3NlbWJseVByb3BzID0ge1xuICAgICAgc2VydmljZXMsXG4gICAgICBjb250ZXh0LFxuICAgICAgbG9va3VwczogcHJvcHMubG9va3VwcyxcbiAgICB9O1xuXG4gICAgcmV0dXJuIG5ldyBDb250ZXh0QXdhcmVDbG91ZEFzc2VtYmx5KFxuICAgICAge1xuICAgICAgICBwcm9kdWNlOiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgbGV0IGxvY2s6IElMb2NrIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBAdG9kbyBidWlsZFxuICAgICAgICAgICAgLy8gY29uc3QgYnVpbGQgPSB0aGlzLnByb3BzLmNvbmZpZ3VyYXRpb24uc2V0dGluZ3MuZ2V0KFsnYnVpbGQnXSk7XG4gICAgICAgICAgICAvLyBpZiAoYnVpbGQpIHtcbiAgICAgICAgICAgIC8vICAgYXdhaXQgZXhlY0luQ2hpbGRQcm9jZXNzKGJ1aWxkLCB7IGN3ZDogcHJvcHMud29ya2luZ0RpcmVjdG9yeSB9KTtcbiAgICAgICAgICAgIC8vIH1cblxuICAgICAgICAgICAgY29uc3Qgb3V0ZGlyID0gcHJvcHMub3V0ZGlyID8/ICdjZGsub3V0JztcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGZzLm1rZGlycFN5bmMob3V0ZGlyKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKGBDb3VsZCBub3QgY3JlYXRlIG91dHB1dCBkaXJlY3RvcnkgYXQgJyR7b3V0ZGlyfScgKCR7ZS5tZXNzYWdlfSkuYCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxvY2sgPSBhd2FpdCBuZXcgUldMb2NrKG91dGRpcikuYWNxdWlyZVdyaXRlKCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGV4ZWN1dGlvbiA9IG5ldyBFeGVjdXRpb25FbnZpcm9ubWVudChzZXJ2aWNlcywgeyBvdXRkaXIgfSk7XG4gICAgICAgICAgICBjb25zdCBjb21tYW5kTGluZSA9IGF3YWl0IGV4ZWN1dGlvbi5ndWVzc0V4ZWN1dGFibGUoYXBwKTtcbiAgICAgICAgICAgIGNvbnN0IGVudiA9IGF3YWl0IGV4ZWN1dGlvbi5kZWZhdWx0RW52VmFycygpO1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IGV4ZWN1dGlvbi53aXRoQ29udGV4dChjb250ZXh0LmFsbCwgZW52LCBwcm9wcy5zeW50aE9wdGlvbnMsIGFzeW5jIChlbnZXaXRoQ29udGV4dCwgX2N0eCkgPT4ge1xuICAgICAgICAgICAgICBhd2FpdCBleGVjSW5DaGlsZFByb2Nlc3MoY29tbWFuZExpbmUuam9pbignICcpLCB7XG4gICAgICAgICAgICAgICAgZXZlbnRQdWJsaXNoZXI6IGFzeW5jICh0eXBlLCBsaW5lKSA9PiB7XG4gICAgICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZGF0YV9zdGRvdXQnOlxuICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHNlcnZpY2VzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfQVNTRU1CTFlfSTEwMDEubXNnKGxpbmUpKTtcbiAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZGF0YV9zdGRlcnInOlxuICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHNlcnZpY2VzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfQVNTRU1CTFlfRTEwMDIubXNnKGxpbmUpKTtcbiAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGV4dHJhRW52OiBlbnZXaXRoQ29udGV4dCxcbiAgICAgICAgICAgICAgICBjd2Q6IHByb3BzLndvcmtpbmdEaXJlY3RvcnksXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICByZXR1cm4gYXNzZW1ibHlGcm9tRGlyZWN0b3J5KG91dGRpciwgc2VydmljZXMuaW9IZWxwZXIsIHByb3BzLmxvYWRBc3NlbWJseU9wdGlvbnMpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIGF3YWl0IGxvY2s/LnJlbGVhc2UoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgY29udGV4dEFzc2VtYmx5UHJvcHMsXG4gICAgKTtcbiAgfVxufVxuXG4iXX0=
|
|
@@ -12,7 +12,7 @@ export declare class StackAssembly extends CloudAssembly implements ICloudAssemb
|
|
|
12
12
|
* @throws when the assembly does not contain any stacks, unless `selector.failOnEmpty` is `false`
|
|
13
13
|
* @throws when individual selection strategies are not satisfied
|
|
14
14
|
*/
|
|
15
|
-
selectStacksV2(selector: StackSelector): StackCollection
|
|
15
|
+
selectStacksV2(selector: StackSelector): Promise<StackCollection>;
|
|
16
16
|
/**
|
|
17
17
|
* Select all stacks.
|
|
18
18
|
*
|
|
@@ -17,7 +17,7 @@ class StackAssembly extends aws_cdk_1.CloudAssembly {
|
|
|
17
17
|
* @throws when the assembly does not contain any stacks, unless `selector.failOnEmpty` is `false`
|
|
18
18
|
* @throws when individual selection strategies are not satisfied
|
|
19
19
|
*/
|
|
20
|
-
selectStacksV2(selector) {
|
|
20
|
+
async selectStacksV2(selector) {
|
|
21
21
|
const asm = this.assembly;
|
|
22
22
|
const topLevelStacks = asm.stacks;
|
|
23
23
|
const allStacks = (0, semver_1.major)(asm.version) < 10 ? asm.stacks : asm.stacksRecursively;
|
|
@@ -43,7 +43,7 @@ class StackAssembly extends aws_cdk_1.CloudAssembly {
|
|
|
43
43
|
}
|
|
44
44
|
return new aws_cdk_1.StackCollection(this, topLevelStacks);
|
|
45
45
|
default:
|
|
46
|
-
const matched = this.selectMatchingStacks(allStacks, patterns, extend);
|
|
46
|
+
const matched = await this.selectMatchingStacks(allStacks, patterns, extend);
|
|
47
47
|
if (selector.strategy === stack_selector_1.StackSelectionStrategy.PATTERN_MUST_MATCH_SINGLE
|
|
48
48
|
&& matched.stackCount !== 1) {
|
|
49
49
|
// @todo text should probably be handled in io host
|
|
@@ -91,4 +91,4 @@ function expandToExtendEnum(extend) {
|
|
|
91
91
|
return undefined;
|
|
92
92
|
}
|
|
93
93
|
}
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stYXNzZW1ibHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzdGFjay1hc3NlbWJseS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxtQ0FBK0I7QUFDL0IsMkNBQXNJO0FBQ3RJLHVEQUFtRDtBQUVuRCxzREFBaUY7QUFHakY7O0dBRUc7QUFDSCxNQUFhLGFBQWMsU0FBUSx1QkFBYTtJQUN2QyxLQUFLLENBQUMsT0FBTztRQUNsQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsY0FBYyxDQUFDLFFBQXVCO1FBQ2pELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDMUIsTUFBTSxjQUFjLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUNsQyxNQUFNLFNBQVMsR0FBRyxJQUFBLGNBQUssRUFBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUM7UUFFL0UsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUM3RCxNQUFNLElBQUksNEJBQVksQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkQsTUFBTSxRQUFRLEdBQUcsSUFBQSwwQkFBZ0IsRUFBQyxRQUFRLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRTNELFFBQVEsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzFCLEtBQUssdUNBQXNCLENBQUMsVUFBVTtnQkFDcEMsT0FBTyxJQUFJLHlCQUFlLENBQUMsSUFBSSxFQUFFLFNB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Q0FBQyxJQUFJO1lBQzVCLE9BQU8sZ0NBQXlCLENBQUMsSUFBSSxDQUFDO1FBQ3hDO1lBQ0UsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2N4LWFwaSc7XG5pbXBvcnQgeyBtYWpvciB9IGZyb20gJ3NlbXZlcic7XG5pbXBvcnQgeyBDbG91ZEFzc2VtYmx5LCBzYW5pdGl6ZVBhdHRlcm5zLCBTdGFja0NvbGxlY3Rpb24sIEV4dGVuZGVkU3RhY2tTZWxlY3Rpb24gYXMgQ2xpRXh0ZW5kZWRTdGFja1NlbGVjdGlvbiB9IGZyb20gJy4uLy4uL2F3cy1jZGsnO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi4vLi4vc2hhcmVkLXB1YmxpYyc7XG5pbXBvcnQgdHlwZSB7IFN0YWNrU2VsZWN0b3IgfSBmcm9tICcuLi9zdGFjay1zZWxlY3Rvcic7XG5pbXBvcnQgeyBFeHBhbmRTdGFja1NlbGVjdGlvbiwgU3RhY2tTZWxlY3Rpb25TdHJhdGVneSB9IGZyb20gJy4uL3N0YWNrLXNlbGVjdG9yJztcbmltcG9ydCB0eXBlIHsgSUNsb3VkQXNzZW1ibHlTb3VyY2UgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQSBzaW5nbGUgQ2xvdWQgQXNzZW1ibHkgd3JhcHBlZCB0byBwcm92aWRlIGFkZGl0aW9uYWwgc3RhY2sgb3BlcmF0aW9ucy5cbiAqL1xuZXhwb3J0IGNsYXNzIFN0YWNrQXNzZW1ibHkgZXh0ZW5kcyBDbG91ZEFzc2VtYmx5IGltcGxlbWVudHMgSUNsb3VkQXNzZW1ibHlTb3VyY2Uge1xuICBwdWJsaWMgYXN5bmMgcHJvZHVjZSgpOiBQcm9taXNlPGN4YXBpLkNsb3VkQXNzZW1ibHk+IHtcbiAgICByZXR1cm4gdGhpcy5hc3NlbWJseTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXByb3ZlZCBzdGFjayBzZWxlY3Rpb24gaW50ZXJmYWNlIHdpdGggYSBzaW5nbGUgc2VsZWN0b3JcbiAgICogQHRocm93cyB3aGVuIHRoZSBhc3NlbWJseSBkb2VzIG5vdCBjb250YWluIGFueSBzdGFja3MsIHVubGVzcyBgc2VsZWN0b3IuZmFpbE9uRW1wdHlgIGlzIGBmYWxzZWBcbiAgICogQHRocm93cyB3aGVuIGluZGl2aWR1YWwgc2VsZWN0aW9uIHN0cmF0ZWdpZXMgYXJlIG5vdCBzYXRpc2ZpZWRcbiAgICovXG4gIHB1YmxpYyBhc3luYyBzZWxlY3RTdGFja3NWMihzZWxlY3RvcjogU3RhY2tTZWxlY3Rvcik6IFByb21pc2U8U3RhY2tDb2xsZWN0aW9uPiB7XG4gICAgY29uc3QgYXNtID0gdGhpcy5hc3NlbWJseTtcbiAgICBjb25zdCB0b3BMZXZlbFN0YWNrcyA9IGFzbS5zdGFja3M7XG4gICAgY29uc3QgYWxsU3RhY2tzID0gbWFqb3IoYXNtLnZlcnNpb24pIDwgMTAgPyBhc20uc3RhY2tzIDogYXNtLnN0YWNrc1JlY3Vyc2l2ZWx5O1xuXG4gICAgaWYgKGFsbFN0YWNrcy5sZW5ndGggPT09IDAgJiYgKHNlbGVjdG9yLmZhaWxPbkVtcHR5ID8/IHRydWUpKSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdUaGlzIGFwcCBjb250YWlucyBubyBzdGFja3MnKTtcbiAgICB9XG5cbiAgICBjb25zdCBleHRlbmQgPSBleHBhbmRUb0V4dGVuZEVudW0oc2VsZWN0b3IuZXhwYW5kKTtcbiAgICBjb25zdCBwYXR0ZXJucyA9IHNhbml0aXplUGF0dGVybnMoc2VsZWN0b3IucGF0dGVybnMgPz8gW10pO1xuXG4gICAgc3dpdGNoIChzZWxlY3Rvci5zdHJhdGVneSkge1xuICAgICAgY2FzZSBTdGFja1NlbGVjdGlvblN0cmF0ZWd5LkFMTF9TVEFDS1M6XG4gICAgICAgIHJldHVybiBuZXcgU3RhY2tDb2xsZWN0aW9uKHRoaXMsIGFsbFN0YWNrcyk7XG4gICAgICBjYXNlIFN0YWNrU2VsZWN0aW9uU3RyYXRlZ3kuTUFJTl9BU1NFTUJMWTpcbiAgICAgICAgaWYgKHRvcExldmVsU3RhY2tzLmxlbmd0aCA8IDEpIHtcbiAgICAgICAgICAvLyBAdG9kbyB0ZXh0IHNob3VsZCBwcm9iYWJseSBiZSBoYW5kbGVkIGluIGlvIGhvc3RcbiAgICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdObyBzdGFjayBmb3VuZCBpbiB0aGUgbWFpbiBjbG91ZCBhc3NlbWJseS4gVXNlIFwibGlzdFwiIHRvIHByaW50IG1hbmlmZXN0Jyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZXh0ZW5kU3RhY2tzKHRvcExldmVsU3RhY2tzLCBhbGxTdGFja3MsIGV4dGVuZCk7XG4gICAgICBjYXNlIFN0YWNrU2VsZWN0aW9uU3RyYXRlZ3kuT05MWV9TSU5HTEU6XG4gICAgICAgIGlmICh0b3BMZXZlbFN0YWNrcy5sZW5ndGggIT09IDEpIHtcbiAgICAgICAgICAvLyBAdG9kbyB0ZXh0IHNob3VsZCBwcm9iYWJseSBiZSBoYW5kbGVkIGluIGlvIGhvc3RcbiAgICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdTaW5jZSB0aGlzIGFwcCBpbmNsdWRlcyBtb3JlIHRoYW4gYSBzaW5nbGUgc3RhY2ssIHNwZWNpZnkgd2hpY2ggc3RhY2tzIHRvIHVzZSAod2lsZGNhcmRzIGFyZSBzdXBwb3J0ZWQpIG9yIHNwZWNpZnkgYC0tYWxsYFxcbicgK1xuICAgICAgICAgIGBTdGFja3M6ICR7YWxsU3RhY2tzLm1hcCh4ID0+IHguaGllcmFyY2hpY2FsSWQpLmpvaW4oJyDCtyAnKX1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IFN0YWNrQ29sbGVjdGlvbih0aGlzLCB0b3BMZXZlbFN0YWNrcyk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBjb25zdCBtYXRjaGVkID0gYXdhaXQgdGhpcy5zZWxlY3RNYXRjaGluZ1N0YWNrcyhhbGxTdGFja3MsIHBhdHRlcm5zLCBleHRlbmQpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgc2VsZWN0b3Iuc3RyYXRlZ3kgPT09IFN0YWNrU2VsZWN0aW9uU3RyYXRlZ3kuUEFUVEVSTl9NVVNUX01BVENIX1NJTkdMRVxuICAgICAgICAgICYmIG1hdGNoZWQuc3RhY2tDb3VudCAhPT0gMVxuICAgICAgICApIHtcbiAgICAgICAgICAvLyBAdG9kbyB0ZXh0IHNob3VsZCBwcm9iYWJseSBiZSBoYW5kbGVkIGluIGlvIGhvc3RcbiAgICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKFxuICAgICAgICAgICAgYFN0YWNrIHNlbGVjdGlvbiBpcyBhbWJpZ3VvdXMsIHBsZWFzZSBjaG9vc2UgYSBzcGVjaWZpYyBzdGFjayBmb3IgaW1wb3J0IFske2FsbFN0YWNrcy5tYXAoeCA9PiB4LmhpZXJhcmNoaWNhbElkKS5qb2luKCcsJyl9XWAsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgc2VsZWN0b3Iuc3RyYXRlZ3kgPT09IFN0YWNrU2VsZWN0aW9uU3RyYXRlZ3kuUEFUVEVSTl9NVVNUX01BVENIXG4gICAgICAgICAgJiYgbWF0Y2hlZC5zdGFja0NvdW50IDwgMVxuICAgICAgICApIHtcbiAgICAgICAgICAvLyBAdG9kbyB0ZXh0IHNob3VsZCBwcm9iYWJseSBiZSBoYW5kbGVkIGluIGlvIGhvc3RcbiAgICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKFxuICAgICAgICAgICAgYFN0YWNrIHNlbGVjdGlvbiBpcyBhbWJpZ3VvdXMsIHBsZWFzZSBjaG9vc2UgYSBzcGVjaWZpYyBzdGFjayBmb3IgaW1wb3J0IFske2FsbFN0YWNrcy5tYXAoeCA9PiB4LmhpZXJhcmNoaWNhbElkKS5qb2luKCcsJyl9XWAsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBtYXRjaGVkO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZWxlY3QgYWxsIHN0YWNrcy5cbiAgICpcbiAgICogVGhpcyBtZXRob2QgbmV2ZXIgdGhyb3dzIGFuZCBjYW4gc2FmZWx5IGJlIHVzZWQgYXMgYSBiYXNpcyBmb3Igb3RoZXIgY2FsY3VsYXRpb25zLlxuICAgKlxuICAgKiBAcmV0dXJucyBhIGBTdGFja0NvbGxlY3Rpb25gIG9mIGFsbCBzdGFja3NcbiAgICovXG4gIHB1YmxpYyBzZWxlY3RBbGxTdGFja3MoKSB7XG4gICAgY29uc3QgYWxsU3RhY2tzID0gbWFqb3IodGhpcy5hc3NlbWJseS52ZXJzaW9uKSA8IDEwID8gdGhpcy5hc3NlbWJseS5zdGFja3MgOiB0aGlzLmFzc2VtYmx5LnN0YWNrc1JlY3Vyc2l2ZWx5O1xuICAgIHJldHVybiBuZXcgU3RhY2tDb2xsZWN0aW9uKHRoaXMsIGFsbFN0YWNrcyk7XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0IGFsbCBzdGFja3MgdGhhdCBoYXZlIHRoZSB2YWxpZGF0ZU9uU3ludGggZmxhZyBldC5cbiAgICpcbiAgICogQHJldHVybnMgYSBgU3RhY2tDb2xsZWN0aW9uYCBvZiBhbGwgc3RhY2tzIHRoYXQgbmVlZHMgdG8gYmUgdmFsaWRhdGVkXG4gICAqL1xuICBwdWJsaWMgc2VsZWN0U3RhY2tzRm9yVmFsaWRhdGlvbigpIHtcbiAgICBjb25zdCBhbGxTdGFja3MgPSB0aGlzLnNlbGVjdEFsbFN0YWNrcygpO1xuICAgIHJldHVybiBhbGxTdGFja3MuZmlsdGVyKChhcnQpID0+IGFydC52YWxpZGF0ZU9uU3ludGggPz8gZmFsc2UpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGV4cGFuZFRvRXh0ZW5kRW51bShleHRlbmQ/OiBFeHBhbmRTdGFja1NlbGVjdGlvbik6IENsaUV4dGVuZGVkU3RhY2tTZWxlY3Rpb24gfCB1bmRlZmluZWQge1xuICBzd2l0Y2ggKGV4dGVuZCkge1xuICAgIGNhc2UgRXhwYW5kU3RhY2tTZWxlY3Rpb24uRE9XTlNUUkVBTTpcbiAgICAgIHJldHVybiBDbGlFeHRlbmRlZFN0YWNrU2VsZWN0aW9uLkRvd25zdHJlYW07XG4gICAgY2FzZSBFeHBhbmRTdGFja1NlbGVjdGlvbi5VUFNUUkVBTTpcbiAgICAgIHJldHVybiBDbGlFeHRlbmRlZFN0YWNrU2VsZWN0aW9uLlVwc3RyZWFtO1xuICAgIGNhc2UgRXhwYW5kU3RhY2tTZWxlY3Rpb24uTk9ORTpcbiAgICAgIHJldHVybiBDbGlFeHRlbmRlZFN0YWNrU2VsZWN0aW9uLk5vbmU7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==
|